package Ġdev . pet us ka . k mdc . core Ċ Ċ import Ġandroidx . compose . runtime .* Ċ import Ġkotlinx . browser . window Ċ import Ġorg . jetbrains . compose . web . attributes . Attrs Scope Ċ import Ġorg . jetbrains . compose . web . dom . Attr Builder Context Ċ import Ġorg . jetbrains . compose . web . dom . Element Scope Ċ import Ġorg . w 3 c . dom . Element Ċ Ċ public Ġtype alias ĠAttr s Builder < T > Ġ= ĠAttr Builder Context < T > Ċ public Ġtype alias ĠContent Builder < T > Ġ= Ġorg . jetbrains . compose . web . dom . Content Builder < T > Ċ public Ġtype alias ĠM DC Attrs Raw < T > Ġ= Ġ@ M DC Attrs Dsl ĠAttr s Builder < T > Ċ public Ġtype alias ĠM DC Content Raw < T > Ġ= Ġ@ M DC Content Dsl ĠContent Builder < T > Ċ public Ġtype alias ĠBuilder < T > Ġ= ĠT . () Ġ-> ĠUnit Ċ public Ġtype alias ĠM DC Attrs < T > Ġ= Ġ@ M DC Attrs Dsl ĠBuilder < T > Ċ public Ġtype alias ĠM DC Content < T > Ġ= Ġ@ Composable Ġ@ M DC Content Dsl ĠBuilder < T > Ċ public Ġtype alias ĠM DC Component Init < S > Ġ= Ġ@ Composable ĠS .( ĊĠ Ġcontent : Ġ@ Composable ĠS . () Ġ-> ĠUnit Ċ ) Ġ-> ĠUnit Ċ Ċ private Ġexternal Ġval Ġprocess : Ġdynamic Ċ internal Ġval Ġdebug Ġ= Ġprocess . env . NODE _ ENV Ġ== Ġ" development " Ċ Ċ /** Ċ Ġ* ĠRe inter pre ts Ġ[ M DC Content ] Ġlambda Ġas Ġa Ġparent Ġ[ Content Builder ] Ġlambda , Ċ Ġ* Ġconverting Ġimplicit Ġ[ Element Scope ]< [ E ]> Ġto Ġ[ S ] Ġvia Ġ[ unsafe Cast ]. Ċ Ġ* ĠThis Ġshould Ġonly Ġbe Ġused Ġfor Ġcontrolled Ġscope Ġtypes Ġwhich Ġdo Ġnot Ġhave Ġany Ġmember Ġproperties Ġor Ġfunctions . Ċ Ġ* Ġ@ receiver Ġlambda Ġto Ġreinterpret Ċ Ġ* Ġ@ return Ġre inter pre ted Ġlambda Ġthat Ġimplies Ġ[ S ] Ġon Ġinvocation Ċ Ġ*/ Ċ @ KM DC Internal API Ċ public Ġfun Ġ< S Ġ: ĠElement Scope < E >, ĠE Ġ: ĠElement > ĠM DC Content < S > ?. reinterpret (): ĠContent Builder < E >? Ġ{ ĊĠ Ġreturn Ġthis ?. let Ġ{ Ġ{ Ġunsafe Cast < S >(). it () Ġ} Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠRe inter pre ts Ġ[ M DC Content ] Ġlambda Ġas Ġa Ġparent Ġ[ Content Builder ] Ġlambda , Ċ Ġ* Ġconverting Ġimplicit Ġ[ Element Scope ]< [ E ]> Ġto Ġ[ S ] Ġvia Ġ[ scope ] Ġprovider . Ċ Ġ* ĠThis Ġis Ġsafe Ġand Ġcan Ġbe Ġused Ġfor Ġun controlled Ġscope Ġtypes Ġwhich Ġhave Ġmember Ġproperties Ġor Ġfunctions . Ċ Ġ* Ġ@ receiver Ġlambda Ġto Ġreinterpret Ċ Ġ* Ġ@ param ĠS Ċ Ġ* Ġ@ param ĠE Ċ Ġ* Ġ@ param Ġscope Ġprovider Ċ Ġ* Ġ@ return Ġre inter pre ted Ġlambda Ġthat Ġimplies Ġ[ S ] Ġon Ġinvocation Ċ Ġ*/ Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< S Ġ: ĠElement Scope < E >, ĠE Ġ: ĠElement > ĠM DC Content < S > ?. reinterpret ( ĊĠ Ġcross inline Ġscope : Ġ( Element Scope < E >) Ġ-> ĠS Ċ ): ĠContent Builder < E >? Ġ{ ĊĠ Ġreturn Ġthis ?. let Ġ{ Ġ{ Ġscope ( this ). it () Ġ} Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠApplies Ġ[ M DC Attrs ]< [ T ]> Ġto Ġ[ Attrs Builder ]< [ E ] >, Ġconverting Ġimplicit Ġ[ Attrs Scope ]< [ E ]> Ġto Ġ[ T ] Ġvia Ġ[ unsafe Cast ]. Ċ Ġ* ĠThis Ġshould Ġonly Ġbe Ġused Ġfor Ġcontrolled Ġscope Ġtypes Ġwhich Ġdo Ġnot Ġhave Ġany Ġmember Ġproperties Ġor Ġfunctions . Ċ Ġ* Ġ@ receiver Ġscope Ġto Ġapply Ġ[ block ] Ġto Ċ Ġ* Ġ@ param ĠE Ċ Ġ* Ġ@ param ĠT Ċ Ġ* Ġ@ param Ġblock Ġto Ġimp ly Ġand Ġapply Ċ Ġ*/ Ċ @ KM DC Internal API Ċ public Ġfun Ġ< E Ġ: ĠElement , ĠT Ġ: ĠAttr s Scope < E >> ĠAttr s Scope < E >. apply Attrs ( block : ĠM DC Attrs < T > ?) Ġ{ ĊĠ Ġblock ?. invoke ( unsafe Cast < T >()) Ċ } Ċ Ċ /** Ċ Ġ* ĠApplies Ġ[ M DC Content ]< [ T ]> Ġto Ġ[ Content Builder ]< [ E ] >, Ġconverting Ġimplicit Ġ[ Element Scope ]< [ E ]> Ġto Ġ[ T ] Ġvia Ġ[ unsafe Cast ]. Ċ Ġ* ĠThis Ġshould Ġonly Ġbe Ġused Ġfor Ġcontrolled Ġscope Ġtypes Ġwhich Ġdo Ġnot Ġhave Ġany Ġmember Ġproperties Ġor Ġfunctions . Ċ Ġ* Ġ@ receiver Ġscope Ġto Ġapply Ġ[ block ] Ġto Ċ Ġ* Ġ@ param ĠE Ċ Ġ* Ġ@ param ĠT Ċ Ġ* Ġ@ param Ġblock Ġto Ġimp ly Ġand Ġapply Ċ Ġ*/ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġfun Ġ< E Ġ: ĠElement , ĠT Ġ: ĠElement Scope < E >> ĠElement Scope < E >. apply Content ( block : ĠM DC Content < T > ?) Ġ{ ĊĠ Ġblock ?. invoke ( unsafe Cast < T >()) Ċ } Ċ Ċ /** Ċ Ġ* ĠApplies Ġ[ M DC Content ]< [ T ]> Ġto Ġ[ Content Builder ]< [ E ] >, Ġconverting Ġimplicit Ġ[ Element Scope ]< [ E ]> Ġto Ġ[ T ] Ġvia Ġ[ scope ] Ġprovider . Ċ Ġ* ĠThis Ġis Ġsafe Ġand Ġcan Ġbe Ġused Ġfor Ġun controlled Ġscope Ġtypes Ġwhich Ġhave Ġmember Ġproperties Ġor Ġfunctions . Ċ Ġ* Ġ@ receiver Ġscope Ġto Ġapply Ġ[ block ] Ġto Ċ Ġ* Ġ@ param ĠE Ċ Ġ* Ġ@ param ĠT Ċ Ġ* Ġ@ param Ġblock Ġto Ġimp ly Ġand Ġapply Ċ Ġ* Ġ@ param Ġscope Ġprovider Ċ Ġ*/ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< E Ġ: ĠElement , ĠT Ġ: ĠElement Scope < E >> ĠElement Scope < E >. apply Content ( ĊĠ Ġno inline Ġblock : ĠM DC Content < T > ?, ĊĠ Ġscope : Ġ( Element Scope < E >) Ġ-> ĠT Ċ ) Ġ{ ĊĠ Ġblock ?. let Ġ{ Ġscope ( this ). it () Ġ} Ċ } Ċ Ċ @ KM DC Internal API Ċ public Ġinline Ġfun Ġ< T Ġ: ĠAny > Ġjs Object ( builder : ĠBuilder < T > Ġ= Ġ{ Ġ}): ĠT Ġ= Ġjs (" ({}) "). unsafe Cast < T >(). apply ( builder ) Ċ Ċ internal Ġconst Ġval ĠK mdc Counter Key Ġ= Ġ"_ k mdc Counter " Ġ// ĠNE VER ĠE VER ĠCHANGE ĠTHIS Ċ Ċ /** Ċ Ġ* ĠWe 're Ġhook ing Ġit Ġup Ġto Ġglobal Ġcontext Ġto Ġavoid Ġduplicate Ġcounters Ċ Ġ* Ġin Ġcase Ġmultiple Ġk mdc Ġversions Ġsomehow Ġmake Ġit Ġinto Ġthe Ġsame Ġproject Ċ Ġ*/ Ċ private Ġval Ġnext Dom Element Id : ĠInt ĊĠ Ġget () Ġ{ ĊĠĠĠ Ġval Ġdynamic Window Ġ= Ġwindow . as Dynamic () ĊĠĠĠ Ġval Ġnext Ġ= Ġ( dynamic Window [ K mdc Counter Key ] Ġ?: Ġ 0 ) Ġ+ Ġ 1 ĊĠĠĠ Ġdynamic Window [ K mdc Counter Key ] Ġ= Ġnext ĊĠĠĠ Ġreturn Ġnext . unsafe Cast < Int >() ĊĠ Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġnew Ġunique ĠDOM Ġelement ĠID . Ċ Ġ* Ċ Ġ* ĠGu arante es Ġ 2 ^ 5 3 - 1 Ġsequential ĠIDs , Ġgood Ġfor Ġ 2 8 Ġmillion ĠIDs Ġper Ġsecond Ġover Ġa Ġperiod Ġof Ġten Ġyears . Ċ Ġ*/ Ċ @ KM DC Internal API Ċ public Ġfun Ġunique Dom Element Id (): ĠString Ġ= Ġ" k mdc -$ next Dom Element Id " Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġnew Ġunique ĠDOM Ġelement ĠID Ġand Ġre members Ġit Ġbetween Ġre composition s . Ċ Ġ* Ċ Ġ* ĠGu arante es Ġ 2 ^ 5 3 - 1 Ġsequential ĠIDs , Ġgood Ġfor Ġ 2 8 Ġmillion ĠIDs Ġper Ġsecond Ġover Ġa Ġperiod Ġof Ġten Ġyears . Ċ Ġ*/ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġfun Ġremember Unique Dom Element Id ( suffix : ĠString ? Ġ= Ġnull ): ĠString Ġ= ĊĠ Ġremember Ġ{ Ġunique Dom Element Id () Ġ+ Ġ( suffix ?. let Ġ{ Ġ"- $ it " Ġ} Ġ?: Ġ"") Ġ} Ċ Ċ @ Composable Ċ @ KM DC Internal API Ċ public Ġfun Ġ< T > Ġremember Mutable State Of ( initial : ĠT ): ĠMutable State < T > Ġ= Ġremember Ġ{ Ġmutable State Of ( initial ) Ġ} Ċ Ċ @ KM DC Internal API Ċ public Ġfun Ġ< T > Ġstrict Composition Local Of (): ĠPro vid able Composition Local < T > Ġ= ĊĠ Ġcomposition Local Of Ġ{ Ġerror (" Composition Local Ġundefined ") Ġ} Ċ