package Ġcom . sem icolon . design . button Ċ Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . border Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . interaction . Mutable Interaction Source Ċ import Ġandroidx . compose . foundation . interaction . collect Is Pressed As State Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . draw . clip Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . p ainter . Painter Ċ import Ġandroidx . compose . ui . text . TextStyle Ċ import Ġandroidx . compose . ui . text . style . Text Decoration Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ import Ġcom . sem icolon . design . util . Circular ProgressBar Ċ Ċ @ Composable Ċ fun ĠBasic Fill Button ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġdefault Color : ĠColor , ĊĠĠĠ Ġpressed Color : ĠColor , ĊĠĠĠ Ġdisabled Color : ĠColor , ĊĠĠĠ Ġdefault TextColor : ĠColor , ĊĠĠĠ Ġdisabled TextColor : ĠColor , ĊĠĠĠ Ġis Enabled : ĠBoolean , ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠBasic Big Button ( ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠ Ġdefault Color Ġ= Ġdefault Color , ĊĠĠĠĠĠĠĠ Ġpressed Color Ġ= Ġpressed Color , ĊĠĠĠĠĠĠĠ Ġdisabled Color Ġ= Ġdisabled Color , ĊĠĠĠĠĠĠĠ Ġdefault TextColor Ġ= Ġdefault TextColor , ĊĠĠĠĠĠĠĠ Ġdisabled TextColor Ġ= Ġdisabled TextColor , ĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġis Enabled , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width (), ĊĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠBasic Large Button ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġdefault Color : ĠColor , ĊĠĠĠ Ġpressed Color : ĠColor , ĊĠĠĠ Ġdisabled Color : ĠColor , ĊĠĠĠ Ġdefault TextColor : ĠColor , ĊĠĠĠ Ġdisabled TextColor : ĠColor , ĊĠĠĠ Ġoutline Color : ĠColor ? Ġ= Ġnull , ĊĠĠĠ Ġis Enabled : ĠBoolean , ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġfixed Modifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( 1 2 . dp )) ĊĠĠĠ Ġif Ġ( outline Color Ġ!= Ġnull Ġ&& Ġis Enabled ) ĊĠĠĠĠĠĠĠ Ġfixed Modifier Ġ= Ġfixed Modifier . border ( 1 . dp , Ġoutline Color , ĠRo unded Corner Shape ( 1 2 . dp )) ĊĠĠĠ ĠBasic Big Button ( ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠ Ġdefault Color Ġ= Ġdefault Color , ĊĠĠĠĠĠĠĠ Ġpressed Color Ġ= Ġpressed Color , ĊĠĠĠĠĠĠĠ Ġdisabled Color Ġ= Ġdisabled Color , ĊĠĠĠĠĠĠĠ Ġdefault TextColor Ġ= Ġdefault TextColor , ĊĠĠĠĠĠĠĠ Ġdisabled TextColor Ġ= Ġdisabled TextColor , ĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġis Enabled , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġfixed Modifier , ĊĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠBasic Medium Button ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġdefault Color : ĠColor , ĊĠĠĠ Ġpressed Color : ĠColor , ĊĠĠĠ Ġdisabled Color : ĠColor , ĊĠĠĠ Ġdefault TextColor : ĠColor , ĊĠĠĠ Ġdisabled TextColor : ĠColor , ĊĠĠĠ Ġoutline Color : ĠColor ? Ġ= Ġnull , ĊĠĠĠ Ġis Enabled : ĠBoolean , ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġfixed Modifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠ Ġ. width ( 1 6 0 . dp ) ĊĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( 1 2 . dp )) ĊĠĠĠ Ġif Ġ( outline Color Ġ!= Ġnull Ġ&& Ġis Enabled ) ĊĠĠĠĠĠĠĠ Ġfixed Modifier Ġ= Ġfixed Modifier . border ( 1 . dp , Ġoutline Color , ĠRo unded Corner Shape ( 1 2 . dp )) ĊĠĠĠ ĠBasic Big Button ( ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠ Ġdefault Color Ġ= Ġdefault Color , ĊĠĠĠĠĠĠĠ Ġpressed Color Ġ= Ġpressed Color , ĊĠĠĠĠĠĠĠ Ġdisabled Color Ġ= Ġdisabled Color , ĊĠĠĠĠĠĠĠ Ġdefault TextColor Ġ= Ġdefault TextColor , ĊĠĠĠĠĠĠĠ Ġdisabled TextColor Ġ= Ġdisabled TextColor , ĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġis Enabled , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġfixed Modifier , ĊĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠBasic Big Button ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġdefault Color : ĠColor , ĊĠĠĠ Ġpressed Color : ĠColor , ĊĠĠĠ Ġdisabled Color : ĠColor , ĊĠĠĠ Ġdefault TextColor : ĠColor , ĊĠĠĠ Ġdisabled TextColor : ĠColor , ĊĠĠĠ Ġis Enabled : ĠBoolean , ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval ĠtextColor Ġ= Ġif Ġ( isEnabled ) Ġdefault TextColor Ġelse Ġdisabled TextColor ĊĠĠĠ ĠBasic Button ( ĊĠĠĠĠĠĠĠ Ġdefault Color Ġ= Ġdefault Color , ĊĠĠĠĠĠĠĠ Ġpressed Color Ġ= Ġpressed Color , ĊĠĠĠĠĠĠĠ Ġdisabled Color Ġ= Ġdisabled Color , ĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġis Enabled , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 5 2 . dp ), ĊĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġtext , ĠfontSize Ġ= Ġ 1 4 . sp , Ġcolor Ġ= ĠtextColor ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠBasic Small Button ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġdefault Color : ĠColor , ĊĠĠĠ Ġpressed Color : ĠColor , ĊĠĠĠ Ġdisabled Color : ĠColor , ĊĠĠĠ Ġdefault Content Color : ĠColor , ĊĠĠĠ Ġdisabled Content Color : ĠColor , ĊĠĠĠ Ġoutline Color : ĠColor ? Ġ= Ġnull , ĊĠĠĠ ĠprogressBar Color : ĠColor Ġ= ĠColor . Black , ĊĠĠĠ ĠprogressBar BackgroundColor : ĠColor Ġ= ĠColor . Transparent , ĊĠĠĠ Ġis Enabled : ĠBoolean , ĊĠĠĠ ĠisLoading : ĠBoolean , ĊĠĠĠ Ġunderline Effect : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġicon : ĠP ainter ? Ġ= Ġnull , ĊĠĠĠ Ġicon Position : ĠIcon Position Ġ= ĠIcon Position . LEFT , ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġfixed Modifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( 4 . dp )) ĊĠĠĠ Ġif Ġ( outline Color Ġ!= Ġnull Ġ&& Ġis Enabled ) ĊĠĠĠĠĠĠĠ Ġfixed Modifier Ġ= Ġfixed Modifier . border ( 1 . dp , Ġoutline Color , ĠRo unded Corner Shape ( 4 . dp )) ĊĠĠĠ Ġval Ġcontent Color Ġ= Ġif Ġ( isEnabled ) Ġdefault Content Color Ġelse Ġdisabled Content Color ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( horizontal Ġ= Ġ 1 6 . dp , Ġvertical Ġ= Ġ 8 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBasic Button ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Color Ġ= Ġdefault Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpressed Color Ġ= Ġpressed Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisabled Color Ġ= Ġdisabled Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġis Enabled , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= ĠisLoading , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġfixed Modifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 3 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wrap Content Width (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier . padding ( horizontal Ġ= Ġ 1 6 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Alignment Ġ= ĠAlignment . Center Vert ically ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isLoading Ġ&& Ġicon Ġ!= Ġnull Ġ&& Ġicon Position Ġ== ĠIcon Position . LEFT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġicon , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt int Ġ= Ġcontent Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. width ( 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . width ( 4 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 1 4 . sp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġcontent Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠTextStyle ( text Decoration Ġ= Ġif Ġ( it Ġ&& Ġunderline Effect ) ĠText Decoration . Underline Ġelse ĠText Decoration . None ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isLoading Ġ&& Ġicon Ġ!= Ġnull Ġ&& Ġicon Position Ġ== ĠIcon Position . RIGHT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . width ( 4 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġicon , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt int Ġ= Ġcontent Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. width ( 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isLoading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . width ( 4 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircular ProgressBar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Color Ġ= ĠprogressBar Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠprogressBar BackgroundColor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 1 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. width ( 1 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠBasic Button ( ĊĠĠĠ Ġdefault Color : ĠColor , ĊĠĠĠ Ġpressed Color : ĠColor , ĊĠĠĠ Ġdisabled Color : ĠColor , ĊĠĠĠ Ġis Enabled : ĠBoolean , ĊĠĠĠ ĠisLoading : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġcontents : Ġ@ Composable Ġ( is Pressed : ĠBoolean ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġinteraction Source Ġ= Ġremember Ġ{ ĠMutable Interaction Source () Ġ} ĊĠĠĠ Ġval Ġis Pressed Ġ= Ġinteraction Source . collect Is Pressed As State () ĊĠĠĠ Ġval Ġbutton Color Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ(! isEnabled ) Ġdisabled Color Ġelse Ġif Ġ( is Pressed . value ) Ġpressed Color Ġelse Ġdefault Color ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( button Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinteraction Source Ġ= Ġinteraction Source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindication Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġis Enabled Ġ&& Ġ! isLoading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĠonClick () Ġ}, ĊĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontents ( is Pressed . value ) ĊĠĠĠ Ġ} Ċ } Ċ