package Ġcom . cop per leaf . ball ast . examples . web . internal . bul ma Ċ Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġorg . jetbrains . compose . web . attributes . InputType Ċ import Ġorg . jetbrains . compose . web . attributes . selected Ċ import Ġorg . jetbrains . compose . web . dom . Checkbox Input Ċ import Ġorg . jetbrains . compose . web . dom . Div Ċ import Ġorg . jetbrains . compose . web . dom . Input Ċ import Ġorg . jetbrains . compose . web . dom . Label Ċ import Ġorg . jetbrains . compose . web . dom . Option Ċ import Ġorg . jetbrains . compose . web . dom . Progress Ċ import Ġorg . jetbrains . compose . web . dom . Select Ċ import Ġorg . jetbrains . compose . web . dom . Text ĊĊ Ċ @ Composable Ċ fun ĠB ul ma FormField ( ĊĠĠĠ ĠfieldName : ĠString , ĊĠĠĠ Ġcontent : Ġ@ Composable Ġ() Ġ-> ĠUnit , Ċ ) Ġ{ ĊĠĠĠ ĠDiv ({ Ġclasses (" field ") Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ ĠLabel ( attrs Ġ= Ġ{ Ġclasses (" label ") Ġ}) Ġ{ ĠText ( fieldName ) Ġ} ĊĠĠĠĠĠĠĠ ĠDiv ({ Ġclasses (" control ") Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ @ Composable Ċ fun Ġ< T Ġ: ĠAny > ĠB ul ma Select ( ĊĠĠĠ ĠfieldName : ĠString , ĊĠĠĠ Ġitems : ĠList < T >, ĊĠĠĠ Ġitem Value : Ġ( T ) Ġ-> ĠString , ĊĊĠĠĠ Ġselected Value : ĠT ?, ĊĠĠĠ Ġon Value Change : Ġ( T ) Ġ-> ĠUnit , ĊĊĠĠĠ Ġcolor : ĠB ul ma Color Ġ= ĠB ul ma Color . Primary , ĊĠĠĠ Ġsize : ĠB ul ma Size Ġ= ĠB ul ma Size . Default , ĊĊĠĠĠ Ġitem Content : Ġ@ Composable Ġ( T ) Ġ-> ĠUnit , Ċ ) Ġ{ ĊĠĠĠ ĠB ul ma FormField ( fieldName ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDiv ({ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClass List Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= Ġ" select " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( color Ġ!= ĠB ul ma Color . Default ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= Ġcolor . css Class ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( size Ġ!= ĠB ul ma Size . Default ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= Ġsize . css Class ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSelect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Item Ġ= Ġitems . first Ġ{ Ġitem Value ( it ) Ġ== Ġitem . value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change ( selected Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . stopPropagation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems . forEach Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġitem Value ( item ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġ== Ġselected Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Content ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠB ul ma Input ( ĊĠĠĠ ĠfieldName : ĠString , ĊĠĠĠ Ġvalue : ĠString , ĊĠĠĠ Ġon Value Change : Ġ( String ) Ġ-> ĠUnit , Ċ ) Ġ{ ĊĠĠĠ ĠB ul ma FormField ( fieldName ) Ġ{ ĊĠĠĠĠĠĠĠ ĠInput ( type Ġ= ĠInput Type . Text ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclasses (" input ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Input Ġ{ Ġevent Ġ-> Ġon Value Change ( event . value ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠB ul ma Checkbox ( ĊĠĠĠ ĠfieldName : ĠString , ĊĠĠĠ Ġvalue : ĠBoolean , ĊĠĠĠ Ġon Value Change : Ġ( Boolean ) Ġ-> ĠUnit , Ċ ) Ġ{ ĊĠĠĠ ĠLabel ( attrs Ġ= Ġ{ Ġclasses (" label ") Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ ĠCheckbox Input ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġvalue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change ( event . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . stopPropagation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠText ( fieldName ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠB ul ma Progress () Ġ{ ĊĠĠĠ ĠProgress ({ ĊĠĠĠĠĠĠĠ ĠClass List Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= Ġ" progress " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= Ġ" is - small " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ