package Ġb aa ah s . app . ui . model Ċ Ċ import Ġb aa ah s . ui . as Text Node Ċ import Ġb aa ah s . ui . unary Minus Ċ import Ġb aa ah s . ui . value Ċ import Ġkotlinx . css .* Ċ import Ġkotlinx . css . properties . Line Height Ċ import Ġkotlinx . js . js o Ċ import Ġm ui . material .* Ċ import Ġm ui . material . styles . Theme Ċ import Ġorg . w 3 c . dom . events . Event Ċ import Ġreact . R Builder Ċ import Ġreact . RE lement Builder Ċ import Ġreact . build Element Ċ import Ġreact . dom . html . InputType Ċ import Ġstyled . StyleSheet Ċ import Ġb aa ah s . app . ui . controls . Styles Ġas ĠControl Styles Ċ Ċ class ĠModel Editor Styles ( val Ġtheme : ĠTheme ) Ġ: ĠStyleSheet (" app - ui - model - editor ", Ġis Static Ġ= Ġtrue ) Ġ{ ĊĠĠĠ Ġval Ġeditor Pan es Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay Ġ= ĠDisplay . grid ĊĠĠĠĠĠĠĠ Ġgrid Template Columns Ġ= ĠGrid Template Columns ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGrid Auto Rows . min Max ( 1 5 . em , Ġ 1 5 . pct ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGrid Auto Rows . auto , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGrid Auto Rows . min Max ( 2 0 . em , Ġ 2 0 . pct ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġgrid Template Rows Ġ= ĠGrid Template Rows ( 1 0 0 . pct ) ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 1 0 0 . pct ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġnavigator Pane Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay Ġ= ĠDisplay . grid ĊĠĠĠĠĠĠĠ Ġgrid Template Rows Ġ= ĠGrid Template Rows ( Grid Auto Rows . min Content , ĠGrid Auto Rows . auto ) ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 1 0 0 . pct ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġnavigator Pane Content Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ ĠminHeight Ġ= Ġ 0 . px ĊĠĠĠĠĠĠĠ Ġoverflow Ġ= ĠOverflow . scroll ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġentity List Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġchild (" li ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Ġ= ĠDisplay . flex ĊĠĠĠĠĠĠĠĠĠĠĠ ĠflexDirection Ġ= ĠFlex Direction . column ĊĠĠĠĠĠĠĠĠĠĠĠ ĠalignItems Ġ= ĠAlign . inherit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġvisual izer Pane Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġposition Ġ= ĠPosition . relative ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 1 0 0 . pct ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġvisual izer Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġposition Ġ= ĠPosition . absolute ĊĠĠĠĠĠĠĠ Ġtop Ġ= Ġ 0 . px ĊĠĠĠĠĠĠĠ Ġleft Ġ= Ġ 0 . px ĊĠĠĠĠĠĠĠ Ġbottom Ġ= Ġ 0 . px ĊĠĠĠĠĠĠĠ Ġright Ġ= Ġ 0 . px ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġvisual izer Toolbar Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġposition Ġ= ĠPosition . absolute ĊĠĠĠĠĠĠĠ Ġdisplay Ġ= ĠDisplay . flex ĊĠĠĠĠĠĠĠ ĠflexDirection Ġ= ĠFlex Direction . column ĊĠĠĠĠĠĠĠ Ġtop Ġ= Ġ 1 0 . px ĊĠĠĠĠĠĠĠ Ġleft Ġ= Ġ 1 0 . px ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠColor ( theme . palette . background . paper ). with Alpha (. 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġproperties Pane Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay Ġ= ĠDisplay . grid ĊĠĠĠĠĠĠĠ Ġgrid Template Rows Ġ= ĠGrid Template Rows ( Grid Auto Rows . min Content , ĠGrid Auto Rows . auto ) ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 1 0 0 . pct ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġproperties Pane Content Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ ĠminHeight Ġ= Ġ 0 . px ĊĠĠĠĠĠĠĠ Ġoverflow Ġ= ĠOverflow . scroll ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġproperties Edit Section Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġwhite Space Ġ= ĠWhite Space . nowrap Ċ // ĠĠĠĠĠĠĠ Ġcolor Ġ= Ġtheme . palette . primary . contrast Text Ċ // ĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġtheme . palette . primary . main ĊĊĠĠĠĠĠĠĠ Ġinput Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġtheme . palette . primary . contrast Text ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ. 8 . em ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġheader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠColor . inherit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= ĠLinear Dimension . inherit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . inherit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline Height Ġ= ĠLine Height . inherit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpadding Ġ= Ġ". 5 em Ġ 0 Ġ 0 Ġ 0 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġgrid Size Input Ġby Ġcss ( properties Edit Section ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 5 . em ĊĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . right ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtransform Edit Section Ġby Ġcss ( properties Edit Section ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinput Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 5 . em ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . right ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpartial Underline Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Ġ= ĠLinear Dimension . inherit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 1 0 0 . pct Ġ- Ġ 1 . 5 . em ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠNumber ?> ĠR Builder . number TextField ( ĊĠĠĠĠĠĠĠ Ġlabel : ĠString , ĊĠĠĠĠĠĠĠ Ġvalue : ĠT , ĊĠĠĠĠĠĠĠ Ġad orn ment : Ġ( RE lement Builder < Input Ad orn ment Props >. () Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġplaceholder : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠonChange : Ġ( T ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcached OnChange Ġ= ĠonChange . as Dynamic (). cached OnClick Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġevent : ĠEvent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumeric Value Ġ= Ġevent . currentTarget . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. if Blank Ġ{ Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . toDouble () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange ( numeric Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĠonChange . as Dynamic (). cached OnClick Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠTextField < Standard TextField Props > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . type Ġ= ĠInput Type . number ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . margin Ġ= ĠFormControl Margin . dense ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . size Ġ= ĠSize . small ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . variant Ġ= Ġ" standard " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . placeholder Ġ= Ġplaceholder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . Input Props Ġ= Ġj so Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclasses Ġ= Ġj so Ġ{ Ġthis . underline Ġ= Ġ- partial Underline Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠSize . small ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmargin Ġ= ĠInput Base Margin . dense ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad orn ment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ad orn ment Ġ= Ġbuild Element Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInput Ad orn ment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . position Ġ= ĠInput Ad orn ment Position . end ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad orn ment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . Input Label Props Ġ= Ġj so Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . classes Ġ= Ġj so Ġ{ Ġthis . root Ġ= Ġ- Control Styles . input Label Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshrink Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . onChange Ġ= Ġcached OnChange ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġattrs . value Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . label Ġ= Ġlabel . as Text Node () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }