from __future__ import annotations from rio import Component, Column, Text, page, Rectangle from elm.services import PreloadService @page(name="Rules", url_segment="rules") class RulesPage(Component): def build(self) -> Component: return Column( Rectangle( content=Column( Rectangle( content=Rectangle( content=Text("Regeln", margin=0.5, selectable=False, overflow="wrap"), fill=self.session.theme.header_box_background_color, margin=0.4 ), stroke_width=0.1, stroke_color=self.session.theme.box_border_color, ), *[Column( Text( rule.split(":")[0], font_size=0.8 if self.session.is_mobile() else 1.2, fill=self.session.theme.primary_color, overflow="wrap" ), Text( rule.split(":")[1].strip(), font_size=0.7 if self.session.is_mobile() else 1, overflow="wrap", margin_left=1 ), margin=1, spacing=1 ) for rule in self.session[PreloadService].rules] ), fill=self.session.theme.box_color, stroke_width=0.1, stroke_color=self.session.theme.box_border_color ), Rectangle( content=Column( Rectangle( content=Rectangle( content=Text("AGB", margin=0.5, selectable=False, overflow="wrap"), fill=self.session.theme.header_box_background_color, margin=0.4 ), stroke_width=0.1, stroke_color=self.session.theme.box_border_color, ), *[Column( Text( text=paragraph, font_size=0.8 if self.session.is_mobile() else 1.2, fill=self.session.theme.primary_color, overflow="wrap" ), *[Text( section, font_size=0.7 if self.session.is_mobile() else 1, overflow="wrap", margin_left=1 ) for section in self.session[PreloadService].gtc[paragraph]], margin=1, spacing=1 ) for paragraph in self.session[PreloadService].gtc] ), fill=self.session.theme.box_color, stroke_width=0.1, stroke_color=self.session.theme.box_border_color ), grow_x=True, grow_y=True, spacing=1, margin=0 if self.session.is_mobile() else 1 )