package Ġcom . example . tod olist . ui . common Ċ Ċ import Ġandroidx . compose . Composable Ċ import Ġandroidx . compose . state Ċ import Ġandroidx . compose . unary Plus Ċ import Ġandroidx . ui . core .* Ċ import Ġandroidx . ui . foundation . Dialog Ċ import Ġandroidx . ui . foundation . shape . corner . Rounded Corner Shape Ċ import Ġandroidx . ui . graphics . Color Ċ import Ġandroidx . ui . layout .* Ċ import Ġandroidx . ui . material .* Ċ import Ġandroidx . ui . material . surface . Surface Ċ import Ġandroidx . ui . tool ing . preview . Preview Ċ import Ġcom . example . tod olist . ui . light Theme Colors Ċ import Ġcom . example . tod olist . ui . theme Typography Ċ Ċ @ Composable Ċ fun ĠDialog Button ( ĊĠĠĠ Ġdisabled : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġbutton Text : ĠString , ĊĠĠĠ Ġdialog Title : ĠString Ġ= Ġbutton Text , ĊĠĠĠ Ġdefault Visible : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġon Apply : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġchildren : Ġ@ Composable () Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġ( visible , Ġon Visible Changed ) Ġ= Ġ+ state Ġ{ Ġdefault Visible Ġ} ĊĊĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠ Ġbutton Text , ĊĠĠĠĠĠĠĠ Ġstyle Ġ= ĠCont ained ButtonStyle (), ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġon Visible Changed ( true ) Ġ} ĊĠĠĠ Ġ) ĊĠĠĠ Ġif Ġ( visible ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDialog Form ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġdialog Title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisabled Ġ= Ġdisabled , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClose Ġ= Ġ{ Ġon Visible Changed ( false ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Apply Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Visible Changed ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchildren () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠDialog Form ( ĊĠĠĠ Ġtitle : ĠString , ĊĠĠĠ Ġdisabled : ĠBoolean , ĊĠĠĠ Ġon Apply : Ġ() Ġ-> ĠUnit , ĊĠĠĠ ĠonClose : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġchildren : Ġ@ Composable () Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠDialog ( onClose Request Ġ= ĠonClose ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMaterial Theme ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= Ġlight Theme Colors , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġty pography Ġ= Ġtheme Typography ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSurface ( shape Ġ= ĠRo unded Corner Shape ( 4 . dp )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContainer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchildren () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHeight Spacer ( height Ġ= Ġ 2 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Actions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisabled Ġ= Ġdisabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Apply Ġ= Ġon Apply , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClose Ġ= ĠonClose ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠDialog Title ( title Text : ĠString ) Ġ{ ĊĠĠĠ ĠContainer ( ĊĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Center Left , ĊĠĠĠĠĠĠĠ Ġpadding Ġ= ĠEdgeInsets ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ= Ġ 2 4 . dp , Ġtop Ġ= Ġ 2 4 . dp , Ġright Ġ= Ġ 2 4 . dp , Ġbottom Ġ= Ġ 0 . dp ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Style Ġ= Ġ(+ Material Theme . typography ()). h 6 ĊĠĠĠĠĠĠĠ ĠCurrent TextStyle Provider ( text Style ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( title Text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠDialog Actions ( ĊĠĠĠ Ġdisabled : ĠBoolean , ĊĠĠĠ Ġon Apply : Ġ() Ġ-> ĠUnit , ĊĠĠĠ ĠonClose : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠContainer ( ĊĠĠĠĠĠĠĠ ĠEx pan ded Width , ĊĠĠĠĠĠĠĠ Ġpadding Ġ= ĠEdgeInsets ( all Ġ= Ġ 8 . dp ), ĊĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Center Right ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( disabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Apply ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠCont ained ButtonStyle (). copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . Light Gray ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Apply ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġon Apply ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWidth Spacer ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Dismiss ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠCont ained ButtonStyle (). copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . Transparent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClose ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview Ċ @ Composable Ċ fun ĠPreview Dialog Actions () Ġ{ ĊĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠ ĠDialog Actions ( disabled Ġ= Ġtrue , Ġon Apply Ġ= Ġ{}, ĠonClose Ġ= Ġ{}) ĊĠĠĠĠĠĠĠ ĠDialog Actions ( disabled Ġ= Ġfalse , Ġon Apply Ġ= Ġ{}, ĠonClose Ġ= Ġ{}) ĊĠĠĠ Ġ} Ċ }