package Ġcom . i dex . ui . components Ċ Ċ import Ġandroidx . compose . foundation . Ambient Indication Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . take OrElse Ċ import Ġandroidx . compose . ui . text . TextStyle Ċ import Ġandroidx . compose . ui . text . font . Font Family Ċ import Ġandroidx . compose . ui . text . font . Font Weight Ċ import Ġandroidx . compose . ui . unit . sp ĊĊ Ċ object ĠI dex Theme Ġ{ Ċ ĉ val Ġcolors Ċĉ ĉ @ Composable Ċĉ ĉ @ Composable Contract ( readonly Ġ= Ġtrue ) Ċĉ ĉ get () Ġ= ĠAmb ient Colors Theme . current ĊĉĊ ĉ val Ġty pography Ċĉ ĉ @ Composable Ċĉ ĉ @ Composable Contract ( readonly Ġ= Ġtrue ) Ċĉ ĉ get () Ġ= ĠAmb ient Typography . current Ċ } Ċ Ċ @ Composable Ċ fun ĠI dex Theme ( colors : ĠColors , Ġty pography : ĠTypography , Ġcontent : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{ Ċ ĉ Providers ( Ċĉ ĉ Ambient Colors Theme Ġprovides Ġcolors , Ċĉ ĉ Ambient Typography Ġprovides Ġty pography , Ċĉ ĉ Ambient Indication Ġprovides ĠI dex Indication , Ċĉ ĉ content Ġ= Ġcontent Ċ ĉ ) Ċ } ĊĊ Ċ /// ĠColors Ċ Ċ @ Immutable Ċ data Ġclass ĠColors ( Ċ ĉ val Ġprimary : ĠColor , Ċ ĉ val Ġprimary Variant : ĠColor , Ċ ĉ val Ġon Primary : ĠColor , ĊĉĊ ĉ val Ġsecondary : ĠColor , Ċ ĉ val Ġsecondary Variant : ĠColor , Ċ ĉ val Ġon Secondary : ĠColor , ĊĉĊ ĉ val Ġbackground : ĠColor , Ċ ĉ val Ġon Background : ĠColor , ĊĉĊ ĉ val Ġsurface : ĠColor , Ċ ĉ val Ġon Surface : ĠColor , ĊĉĊ ĉ val Ġerror : ĠColor , Ċ ĉ val ĠonError : ĠColor , ĊĉĊ ĉ val Ġis Light : ĠBoolean Ċ ) ĊĊ Ċ fun ĠColors . content Color For ( color : ĠColor ) Ġ= Ġwhen ( color ) Ġ{ Ċ ĉ primary Ġ-> Ġon Primary Ċ ĉ secondary Ġ-> Ġon Secondary Ċ ĉ background Ġ-> Ġon Background Ċ ĉ surface Ġ-> Ġon Surface Ċ ĉ error Ġ-> ĠonError Ċ ĉ else Ġ-> ĠColor . Unspecified Ċ } Ċ Ċ @ Composable Ċ fun Ġcontent Color For ( color : ĠColor ) Ġ= Ċ ĉ I dex Theme . colors . content Color For ( color ). take OrElse Ġ{ ĠAmb ient Content Color . current Ġ} Ċ Ċ private Ġval ĠAmb ient Colors Theme Ġ= Ġambient Of < Colors >() ĊĊ Ċ /// ĠTypography Ċ Ċ /** Ċ Ġ* ĠClass Ġholding Ġty pography Ġdefinitions . Ċ Ġ* Ċ Ġ* Ġ@ property Ġh 1 Ġh 1 Ġis Ġthe Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċ Ġ* ĠFor Ġhead lines , Ġyou Ġcan Ġchoose Ġan Ġexpress ive Ġfont , Ġsuch Ġas Ġa Ġdisplay , Ġhand written , Ġor Ġscript Ċ Ġ* Ġstyle . ĠThese Ġun conventional Ġfont Ġdesign s Ġhave Ġdetails Ġand Ġin tric acy Ġthat Ġhelp Ġat tract Ġthe Ġeye . Ċ Ġ* Ġ@ property Ġh 2 Ġh 2 Ġis Ġthe Ġsecond Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċ Ġ* ĠFor Ġhead lines , Ġyou Ġcan Ġchoose Ġan Ġexpress ive Ġfont , Ġsuch Ġas Ġa Ġdisplay , Ġhand written , Ġor Ġscript Ċ Ġ* Ġstyle . ĠThese Ġun conventional Ġfont Ġdesign s Ġhave Ġdetails Ġand Ġin tric acy Ġthat Ġhelp Ġat tract Ġthe Ġeye . Ċ Ġ* Ġ@ property Ġh 3 Ġh 3 Ġis Ġthe Ġthird Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċ Ġ* ĠFor Ġhead lines , Ġyou Ġcan Ġchoose Ġan Ġexpress ive Ġfont , Ġsuch Ġas Ġa Ġdisplay , Ġhand written , Ġor Ġscript Ċ Ġ* Ġstyle . ĠThese Ġun conventional Ġfont Ġdesign s Ġhave Ġdetails Ġand Ġin tric acy Ġthat Ġhelp Ġat tract Ġthe Ġeye . Ċ Ġ* Ġ@ property Ġh 4 Ġh 4 Ġis Ġthe Ġfourth Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċ Ġ* ĠFor Ġhead lines , Ġyou Ġcan Ġchoose Ġan Ġexpress ive Ġfont , Ġsuch Ġas Ġa Ġdisplay , Ġhand written , Ġor Ġscript Ċ Ġ* Ġstyle . ĠThese Ġun conventional Ġfont Ġdesign s Ġhave Ġdetails Ġand Ġin tric acy Ġthat Ġhelp Ġat tract Ġthe Ġeye . Ċ Ġ* Ġ@ property Ġh 5 Ġh 5 Ġis Ġthe Ġf ifth Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċ Ġ* ĠFor Ġhead lines , Ġyou Ġcan Ġchoose Ġan Ġexpress ive Ġfont , Ġsuch Ġas Ġa Ġdisplay , Ġhand written , Ġor Ġscript Ċ Ġ* Ġstyle . ĠThese Ġun conventional Ġfont Ġdesign s Ġhave Ġdetails Ġand Ġin tric acy Ġthat Ġhelp Ġat tract Ġthe Ġeye . Ċ Ġ* Ġ@ property Ġh 6 Ġh 6 Ġis Ġthe Ġsix th Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċ Ġ* ĠFor Ġhead lines , Ġyou Ġcan Ġchoose Ġan Ġexpress ive Ġfont , Ġsuch Ġas Ġa Ġdisplay , Ġhand written , Ġor Ġscript Ċ Ġ* Ġstyle . ĠThese Ġun conventional Ġfont Ġdesign s Ġhave Ġdetails Ġand Ġin tric acy Ġthat Ġhelp Ġat tract Ġthe Ġeye . Ċ Ġ* Ġ@ property Ġsubtitle 1 Ġsubtitle 1 Ġis Ġthe Ġlargest Ġsubtitle , Ġand Ġis Ġtypically Ġreserved Ġfor Ċ Ġ* Ġmedium - emp hasis Ġtext Ġthat Ġis Ġshorter Ġin Ġlength . ĠSerif Ġor Ġsans Ġserif Ġtype faces Ġwork Ġwell Ġfor Ċ Ġ* Ġsub titles . Ċ Ġ* Ġ@ property Ġsubtitle 2 Ġsubtitle 2 Ġis Ġthe Ġsmallest Ġsubtitle , Ġand Ġis Ġtypically Ġreserved Ġfor Ċ Ġ* Ġmedium - emp hasis Ġtext Ġthat Ġis Ġshorter Ġin Ġlength . ĠSerif Ġor Ġsans Ġserif Ġtype faces Ġwork Ġwell Ġfor Ċ Ġ* Ġsub titles . Ċ Ġ* Ġ@ property Ġbody 1 Ġbody 1 Ġis Ġthe Ġlargest Ġbody , Ġand Ġis Ġtypically Ġused Ġfor Ġlong - form Ġwriting Ġas Ġit Ċ Ġ* Ġworks Ġwell Ġfor Ġsmall Ġtext Ġsizes . ĠFor Ġlonger Ġsections Ġof Ġtext , Ġa Ġserif Ġor Ġsans Ġserif Ġtype face Ċ Ġ* Ġis Ġrecommended . Ċ Ġ* Ġ@ property Ġbody 2 Ġbody 2 Ġis Ġthe Ġsmallest Ġbody , Ġand Ġis Ġtypically Ġused Ġfor Ġlong - form Ġwriting Ġas Ġit Ċ Ġ* Ġworks Ġwell Ġfor Ġsmall Ġtext Ġsizes . ĠFor Ġlonger Ġsections Ġof Ġtext , Ġa Ġserif Ġor Ġsans Ġserif Ġtype face Ċ Ġ* Ġis Ġrecommended . Ċ Ġ* Ġ@ property Ġbutton Ġbutton Ġtext Ġis Ġa Ġcall Ġto Ġaction Ġused Ġin Ġdifferent Ġtypes Ġof Ġbuttons Ġ( such Ġas Ċ Ġ* Ġtext , Ġoutlined Ġand Ġcontained Ġbuttons ) Ġand Ġin Ġtabs , Ġdialog s , Ġand Ġcards . ĠButton Ġtext Ġis Ċ Ġ* Ġtypically Ġsans Ġserif , Ġusing Ġall Ġcaps Ġtext . Ċ Ġ* Ġ@ property Ġcaption Ġcaption Ġis Ġone Ġof Ġthe Ġsmallest Ġfont Ġsizes . ĠIt Ġis Ġused Ġs paring ly Ġto Ċ Ġ* Ġannotate Ġimag ery Ġor Ġto Ġintroduce Ġa Ġheadline . Ċ Ġ* Ġ@ property Ġover line Ġover line Ġis Ġone Ġof Ġthe Ġsmallest Ġfont Ġsizes . ĠIt Ġis Ġused Ġs paring ly Ġto Ċ Ġ* Ġannotate Ġimag ery Ġor Ġto Ġintroduce Ġa Ġheadline . Ċ Ġ*/ Ċ @ Immutable Ċ data Ġclass ĠTypography Ġinternal Ġconstructor ( Ċ ĉ val Ġh 1 : ĠTextStyle , Ċ ĉ val Ġh 2 : ĠTextStyle , Ċ ĉ val Ġh 3 : ĠTextStyle , Ċ ĉ val Ġh 4 : ĠTextStyle , Ċ ĉ val Ġh 5 : ĠTextStyle , Ċ ĉ val Ġh 6 : ĠTextStyle , Ċ ĉ val Ġsubtitle 1 : ĠTextStyle , Ċ ĉ val Ġsubtitle 2 : ĠTextStyle , Ċ ĉ val Ġbody 1 : ĠTextStyle , Ċ ĉ val Ġbody 2 : ĠTextStyle , Ċ ĉ val Ġbutton : ĠTextStyle , Ċ ĉ val Ġcaption : ĠTextStyle , Ċ ĉ val Ġover line : ĠTextStyle Ċ ) Ġ{ Ċ ĉ /** Ċĉ Ġ* ĠConstructor Ġto Ġcreate Ġa Ġ[ Typography ]. ĠFor Ġinformation Ġon Ġthe Ġtypes Ġof Ġstyle Ġdefined Ġin Ċĉ Ġ* Ġthis Ġconstructor , Ġsee Ġthe Ġproperty Ġdocumentation Ġfor Ġ[ Typography ]. Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġdefault Font Family Ġthe Ġdefault Ġ[ Font Family ] Ġto Ġbe Ġused Ġfor Ġ[ TextStyle ] s Ġprovided Ġin Ċĉ Ġ* Ġthis Ġconstructor . ĠThis Ġdefault Ġwill Ġbe Ġused Ġif Ġthe Ġ[ Font Family ] Ġon Ġthe Ġ[ TextStyle ] Ġis Ġ` null `. Ċĉ Ġ* Ġ@ param Ġh 1 Ġh 1 Ġis Ġthe Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċĉ Ġ* Ġ@ param Ġh 2 Ġh 2 Ġis Ġthe Ġsecond Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċĉ Ġ* Ġ@ param Ġh 3 Ġh 3 Ġis Ġthe Ġthird Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċĉ Ġ* Ġ@ param Ġh 4 Ġh 4 Ġis Ġthe Ġfourth Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċĉ Ġ* Ġ@ param Ġh 5 Ġh 5 Ġis Ġthe Ġf ifth Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċĉ Ġ* Ġ@ param Ġh 6 Ġh 6 Ġis Ġthe Ġsix th Ġlargest Ġheadline , Ġreserved Ġfor Ġshort , Ġimportant Ġtext Ġor Ġnumer als . Ċĉ Ġ* Ġ@ param Ġsubtitle 1 Ġsubtitle 1 Ġis Ġthe Ġlargest Ġsubtitle , Ġand Ġis Ġtypically Ġreserved Ġfor Ċĉ Ġ* Ġmedium - emp hasis Ġtext Ġthat Ġis Ġshorter Ġin Ġlength . Ċĉ Ġ* Ġ@ param Ġsubtitle 2 Ġsubtitle 2 Ġis Ġthe Ġsmallest Ġsubtitle , Ġand Ġis Ġtypically Ġreserved Ġfor Ċĉ Ġ* Ġmedium - emp hasis Ġtext Ġthat Ġis Ġshorter Ġin Ġlength . Ċĉ Ġ* Ġ@ param Ġbody 1 Ġbody 1 Ġis Ġthe Ġlargest Ġbody , Ġand Ġis Ġtypically Ġused Ġfor Ġlong - form Ġwriting Ġas Ġit Ċĉ Ġ* Ġworks Ġwell Ġfor Ġsmall Ġtext Ġsizes . Ċĉ Ġ* Ġ@ param Ġbody 2 Ġbody 2 Ġis Ġthe Ġsmallest Ġbody , Ġand Ġis Ġtypically Ġused Ġfor Ġlong - form Ġwriting Ġas Ġit Ċĉ Ġ* Ġworks Ġwell Ġfor Ġsmall Ġtext Ġsizes . Ċĉ Ġ* Ġ@ param Ġbutton Ġbutton Ġtext Ġis Ġa Ġcall Ġto Ġaction Ġused Ġin Ġdifferent Ġtypes Ġof Ġbuttons Ġ( such Ġas Ċĉ Ġ* Ġtext , Ġoutlined Ġand Ġcontained Ġbuttons ) Ġand Ġin Ġtabs , Ġdialog s , Ġand Ġcards . Ċĉ Ġ* Ġ@ param Ġcaption Ġcaption Ġis Ġone Ġof Ġthe Ġsmallest Ġfont Ġsizes . ĠIt Ġis Ġused Ġs paring ly Ġto Ġannotate Ċĉ Ġ* Ġimag ery Ġor Ġto Ġintroduce Ġa Ġheadline . Ċĉ Ġ* Ġ@ param Ġover line Ġover line Ġis Ġone Ġof Ġthe Ġsmallest Ġfont Ġsizes . ĠIt Ġis Ġused Ġs paring ly Ġto Ġannotate Ċĉ Ġ* Ġimag ery Ġor Ġto Ġintroduce Ġa Ġheadline . Ċĉ Ġ*/ Ċ ĉ constructor ( Ċĉ ĉ default Font Family : ĠFont Family Ġ= ĠFont Family . Default , Ċĉ ĉ h 1 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Light , Ċĉĉ ĉ fontSize Ġ= Ġ 9 6 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ(- 1 . 5 ). sp Ċĉ ĉ ), Ċĉ ĉ h 2 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Light , Ċĉĉ ĉ fontSize Ġ= Ġ 6 0 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ(- 0 . 5 ). sp Ċĉ ĉ ), Ċĉ ĉ h 3 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Normal , Ċĉĉ ĉ fontSize Ġ= Ġ 4 8 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . sp Ċĉ ĉ ), Ċĉ ĉ h 4 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Normal , Ċĉĉ ĉ fontSize Ġ= Ġ 3 4 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . 2 5 . sp Ċĉ ĉ ), Ċĉ ĉ h 5 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Normal , Ċĉĉ ĉ fontSize Ġ= Ġ 2 4 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . sp Ċĉ ĉ ), Ċĉ ĉ h 6 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Medium , Ċĉĉ ĉ fontSize Ġ= Ġ 2 0 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . 1 5 . sp Ċĉ ĉ ), Ċĉ ĉ subtitle 1 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Normal , Ċĉĉ ĉ fontSize Ġ= Ġ 1 6 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . 1 5 . sp Ċĉ ĉ ), Ċĉ ĉ subtitle 2 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Medium , Ċĉĉ ĉ fontSize Ġ= Ġ 1 4 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . 1 . sp Ċĉ ĉ ), Ċĉ ĉ body 1 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Normal , Ċĉĉ ĉ fontSize Ġ= Ġ 1 6 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . 5 . sp Ċĉ ĉ ), Ċĉ ĉ body 2 : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Normal , Ċĉĉ ĉ fontSize Ġ= Ġ 1 4 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . 2 5 . sp Ċĉ ĉ ), Ċĉ ĉ button : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Medium , Ċĉĉ ĉ fontSize Ġ= Ġ 1 4 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 1 . 2 5 . sp Ċĉ ĉ ), Ċĉ ĉ caption : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Normal , Ċĉĉ ĉ fontSize Ġ= Ġ 1 2 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 0 . 4 . sp Ċĉ ĉ ), Ċĉ ĉ over line : ĠTextStyle Ġ= ĠTextStyle ( Ċĉĉ ĉ font Weight Ġ= ĠFontWeight . Normal , Ċĉĉ ĉ fontSize Ġ= Ġ 1 0 . sp , Ċĉĉ ĉ letter Spacing Ġ= Ġ 1 . 5 . sp Ċĉ ĉ ) Ċ ĉ ) Ġ: Ġthis ( Ċĉ ĉ h 1 Ġ= Ġh 1 . with Default Font Family ( default Font Family ), Ċĉ ĉ h 2 Ġ= Ġh 2 . with Default Font Family ( default Font Family ), Ċĉ ĉ h 3 Ġ= Ġh 3 . with Default Font Family ( default Font Family ), Ċĉ ĉ h 4 Ġ= Ġh 4 . with Default Font Family ( default Font Family ), Ċĉ ĉ h 5 Ġ= Ġh 5 . with Default Font Family ( default Font Family ), Ċĉ ĉ h 6 Ġ= Ġh 6 . with Default Font Family ( default Font Family ), Ċĉ ĉ subtitle 1 Ġ= Ġsubtitle 1 . with Default Font Family ( default Font Family ), Ċĉ ĉ subtitle 2 Ġ= Ġsubtitle 2 . with Default Font Family ( default Font Family ), Ċĉ ĉ body 1 Ġ= Ġbody 1 . with Default Font Family ( default Font Family ), Ċĉ ĉ body 2 Ġ= Ġbody 2 . with Default Font Family ( default Font Family ), Ċĉ ĉ button Ġ= Ġbutton . with Default Font Family ( default Font Family ), Ċĉ ĉ caption Ġ= Ġcaption . with Default Font Family ( default Font Family ), Ċĉ ĉ over line Ġ= Ġover line . with Default Font Family ( default Font Family ) Ċ ĉ ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ return Ġ[ this ] Ġif Ġthere Ġis Ġa Ġ[ Font Family ] Ġdefined , Ġotherwise Ġcopies Ġ[ this ] Ġwith Ġ[ default ] Ġas Ċ Ġ* Ġthe Ġ[ Font Family ]. Ċ Ġ*/ Ċ private Ġfun ĠTextStyle . with Default Font Family ( default : ĠFont Family ): ĠTextStyle Ġ{ Ċ ĉ return Ġif ( fontFamily Ġ!= Ġnull ) Ġthis Ġelse Ġcopy ( fontFamily Ġ= Ġdefault ) Ċ } Ċ Ċ private Ġval ĠAmb ient Typography Ġ= Ġstatic Ambient Of Ġ{ ĠTypography () Ġ} ĊĊĊ