@mhmo91/schmancy 0.10.27 → 0.10.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/custom-elements.json +12 -2
  2. package/dist/agent/{overlay.confirm-body-BZoUgkdK.js → overlay.confirm-body-BFYWMa45.js} +1799 -855
  3. package/dist/agent/overlay.confirm-body-BFYWMa45.js.map +1 -0
  4. package/dist/agent/schmancy.agent.js +2677 -3668
  5. package/dist/agent/schmancy.agent.js.map +1 -1
  6. package/dist/agent/schmancy.manifest.json +1 -2
  7. package/dist/{area-C_Yvjmad.js → area-D5wIy4Fn.js} +1 -1
  8. package/dist/{area-C_Yvjmad.js.map → area-D5wIy4Fn.js.map} +1 -1
  9. package/dist/{area-BSVOYQDA.cjs → area-HXuLLQnN.cjs} +1 -1
  10. package/dist/{area-BSVOYQDA.cjs.map → area-HXuLLQnN.cjs.map} +1 -1
  11. package/dist/area.cjs +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-C6I1mfOT.js → autocomplete-DCkkdDON.js} +2 -2
  14. package/dist/{autocomplete-C6I1mfOT.js.map → autocomplete-DCkkdDON.js.map} +1 -1
  15. package/dist/{autocomplete-B50VXUzw.cjs → autocomplete-hj2AQyEF.cjs} +1 -1
  16. package/dist/{autocomplete-B50VXUzw.cjs.map → autocomplete-hj2AQyEF.cjs.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/avatar.cjs +1 -1
  20. package/dist/avatar.js +1 -1
  21. package/dist/badge.cjs +1 -1
  22. package/dist/badge.js +1 -1
  23. package/dist/{boat-DVQBNkk5.cjs → boat-B_5F_rFr.cjs} +1 -1
  24. package/dist/{boat-DVQBNkk5.cjs.map → boat-B_5F_rFr.cjs.map} +1 -1
  25. package/dist/{boat-C94QZ4Zt.js → boat-BfgbRnhA.js} +1 -1
  26. package/dist/{boat-C94QZ4Zt.js.map → boat-BfgbRnhA.js.map} +1 -1
  27. package/dist/boat.cjs +1 -1
  28. package/dist/boat.js +1 -1
  29. package/dist/breadcrumb.cjs +1 -1
  30. package/dist/breadcrumb.js +1 -1
  31. package/dist/{busy--bNb42rM.js → busy-D6tAS-kW.js} +1 -1
  32. package/dist/{busy--bNb42rM.js.map → busy-D6tAS-kW.js.map} +1 -1
  33. package/dist/{busy-DuxFvEkY.cjs → busy-zIt9bTZn.cjs} +1 -1
  34. package/dist/{busy-DuxFvEkY.cjs.map → busy-zIt9bTZn.cjs.map} +1 -1
  35. package/dist/busy.cjs +1 -1
  36. package/dist/busy.js +1 -1
  37. package/dist/{button-DAFZ5A4O.cjs → button-8oMffyiO.cjs} +1 -1
  38. package/dist/{button-DAFZ5A4O.cjs.map → button-8oMffyiO.cjs.map} +1 -1
  39. package/dist/{button-B7b9L_h5.js → button-D7AejvfK.js} +1 -1
  40. package/dist/{button-B7b9L_h5.js.map → button-D7AejvfK.js.map} +1 -1
  41. package/dist/button.cjs +1 -1
  42. package/dist/button.js +2 -2
  43. package/dist/{card-DZPd24Sn.cjs → card-CTucMMgp.cjs} +1 -1
  44. package/dist/{card-DZPd24Sn.cjs.map → card-CTucMMgp.cjs.map} +1 -1
  45. package/dist/{card-ixzxOW-Q.js → card-CUt9fm_4.js} +1 -1
  46. package/dist/{card-ixzxOW-Q.js.map → card-CUt9fm_4.js.map} +1 -1
  47. package/dist/card.cjs +1 -1
  48. package/dist/card.js +1 -1
  49. package/dist/{checkbox-DdGpepTh.js → checkbox-DMmqe2OO.js} +1 -1
  50. package/dist/{checkbox-DdGpepTh.js.map → checkbox-DMmqe2OO.js.map} +1 -1
  51. package/dist/{checkbox-Bi_Fm2mf.cjs → checkbox-DrKsfzC4.cjs} +1 -1
  52. package/dist/{checkbox-Bi_Fm2mf.cjs.map → checkbox-DrKsfzC4.cjs.map} +1 -1
  53. package/dist/checkbox.cjs +1 -1
  54. package/dist/checkbox.js +1 -1
  55. package/dist/{chips-DWQMZErr.cjs → chips-B1yQgLyW.cjs} +1 -1
  56. package/dist/{chips-DWQMZErr.cjs.map → chips-B1yQgLyW.cjs.map} +1 -1
  57. package/dist/{chips-DLTynyVB.js → chips-DRGsqDMA.js} +2 -2
  58. package/dist/{chips-DLTynyVB.js.map → chips-DRGsqDMA.js.map} +1 -1
  59. package/dist/chips.cjs +1 -1
  60. package/dist/chips.js +2 -2
  61. package/dist/connectivity.cjs +1 -1
  62. package/dist/connectivity.js +1 -1
  63. package/dist/content-drawer.cjs +1 -1
  64. package/dist/content-drawer.js +1 -1
  65. package/dist/{date-range-BgGQyxOC.cjs → date-range-BeF0dW1W.cjs} +6 -1
  66. package/dist/date-range-BeF0dW1W.cjs.map +1 -0
  67. package/dist/{date-range-CT6ckjmV.js → date-range-TDF-f0ss.js} +90 -82
  68. package/dist/date-range-TDF-f0ss.js.map +1 -0
  69. package/dist/{date-range-inline-nPWIs-3C.cjs → date-range-inline-BnhQZTK0.cjs} +1 -1
  70. package/dist/{date-range-inline-nPWIs-3C.cjs.map → date-range-inline-BnhQZTK0.cjs.map} +1 -1
  71. package/dist/{date-range-inline-Ho3CENTh.js → date-range-inline-JLsmcle2.js} +1 -1
  72. package/dist/{date-range-inline-Ho3CENTh.js.map → date-range-inline-JLsmcle2.js.map} +1 -1
  73. package/dist/date-range-inline.cjs +1 -1
  74. package/dist/date-range-inline.js +1 -1
  75. package/dist/date-range.cjs +1 -1
  76. package/dist/date-range.js +1 -1
  77. package/dist/delay.cjs +1 -1
  78. package/dist/delay.js +1 -1
  79. package/dist/{details-CcMTvYo7.js → details-ChMhQpcY.js} +1 -1
  80. package/dist/{details-CcMTvYo7.js.map → details-ChMhQpcY.js.map} +1 -1
  81. package/dist/{details-BnRWMZdt.cjs → details-T75tUASO.cjs} +1 -1
  82. package/dist/{details-BnRWMZdt.cjs.map → details-T75tUASO.cjs.map} +1 -1
  83. package/dist/details.cjs +1 -1
  84. package/dist/details.js +1 -1
  85. package/dist/{divider-CZCj0ioH.js → divider-D69bhEUY.js} +1 -1
  86. package/dist/{divider-CZCj0ioH.js.map → divider-D69bhEUY.js.map} +1 -1
  87. package/dist/{divider-C6yJSL1c.cjs → divider-DopO0yKi.cjs} +1 -1
  88. package/dist/{divider-C6yJSL1c.cjs.map → divider-DopO0yKi.cjs.map} +1 -1
  89. package/dist/divider.cjs +1 -1
  90. package/dist/divider.js +1 -1
  91. package/dist/dropdown.cjs +1 -1
  92. package/dist/dropdown.js +1 -1
  93. package/dist/{expand-D4EhwOYh.cjs → expand-C386rVT8.cjs} +1 -1
  94. package/dist/{expand-D4EhwOYh.cjs.map → expand-C386rVT8.cjs.map} +1 -1
  95. package/dist/{expand-Cc6ogXsR.js → expand-KLSx5dea.js} +2 -2
  96. package/dist/{expand-Cc6ogXsR.js.map → expand-KLSx5dea.js.map} +1 -1
  97. package/dist/expand.cjs +1 -1
  98. package/dist/expand.js +1 -1
  99. package/dist/{float-BvI3HTtB.js → float-BoPLNysg.js} +1 -1
  100. package/dist/{float-BvI3HTtB.js.map → float-BoPLNysg.js.map} +1 -1
  101. package/dist/{float-B8EPc_OG.cjs → float-DyaPI0qO.cjs} +1 -1
  102. package/dist/{float-B8EPc_OG.cjs.map → float-DyaPI0qO.cjs.map} +1 -1
  103. package/dist/float.cjs +1 -1
  104. package/dist/float.js +1 -1
  105. package/dist/{form-C4eFgFwF.cjs → form-CGIJlQyP.cjs} +4 -19
  106. package/dist/form-CGIJlQyP.cjs.map +1 -0
  107. package/dist/{form-CGe9rVox.js → form-CYeMWHmy.js} +10 -90
  108. package/dist/form-CYeMWHmy.js.map +1 -0
  109. package/dist/form.cjs +18 -1
  110. package/dist/form.cjs.map +1 -0
  111. package/dist/form.js +93 -9
  112. package/dist/form.js.map +1 -0
  113. package/dist/handover/agent-runtime-followups.md +1 -1
  114. package/dist/handover/agent-runtime-v1.md +3 -3
  115. package/dist/{icon-B1eZr2ZL.js → icons-BUQNMhjw.js} +1 -1
  116. package/dist/{icon-CgIXAvKI.cjs.map → icons-BUQNMhjw.js.map} +1 -1
  117. package/dist/{icon-CgIXAvKI.cjs → icons-CJUA5bfI.cjs} +1 -1
  118. package/dist/icons-CJUA5bfI.cjs.map +1 -0
  119. package/dist/icons.cjs +1 -1
  120. package/dist/icons.js +1 -1
  121. package/dist/{iframe-CmpAZc61.js → iframe-CbL0jCo1.js} +1 -1
  122. package/dist/{iframe-CmpAZc61.js.map → iframe-CbL0jCo1.js.map} +1 -1
  123. package/dist/{iframe-BO3BpRLH.cjs → iframe-pn7MIeH8.cjs} +1 -1
  124. package/dist/{iframe-BO3BpRLH.cjs.map → iframe-pn7MIeH8.cjs.map} +1 -1
  125. package/dist/iframe.cjs +1 -1
  126. package/dist/iframe.js +1 -1
  127. package/dist/index.cjs +1 -1
  128. package/dist/index.js +33 -32
  129. package/dist/{input-_Hft9vov.js → input-C1h5lLiJ.js} +1 -1
  130. package/dist/{input-_Hft9vov.js.map → input-C1h5lLiJ.js.map} +1 -1
  131. package/dist/{input-5YL2oUBr.cjs → input-Cmc0IoUP.cjs} +1 -1
  132. package/dist/{input-5YL2oUBr.cjs.map → input-Cmc0IoUP.cjs.map} +1 -1
  133. package/dist/{input-chip-DKMNpcED.cjs → input-chip-B0X_CodJ.cjs} +1 -1
  134. package/dist/{input-chip-DKMNpcED.cjs.map → input-chip-B0X_CodJ.cjs.map} +1 -1
  135. package/dist/{input-chip-BNTojQT6.js → input-chip-DqAR4nPD.js} +1 -1
  136. package/dist/{input-chip-BNTojQT6.js.map → input-chip-DqAR4nPD.js.map} +1 -1
  137. package/dist/input.cjs +1 -1
  138. package/dist/input.js +1 -1
  139. package/dist/json.cjs +1 -1
  140. package/dist/json.js +2 -2
  141. package/dist/kbd.cjs +1 -1
  142. package/dist/kbd.js +1 -1
  143. package/dist/layout.cjs +1 -1
  144. package/dist/layout.js +1 -1
  145. package/dist/{lightbox-t4dvb8_A.cjs → lightbox-BiNK_plj.cjs} +1 -1
  146. package/dist/{lightbox-t4dvb8_A.cjs.map → lightbox-BiNK_plj.cjs.map} +1 -1
  147. package/dist/{lightbox-CKlYcnHV.js → lightbox-C3zomJ-r.js} +1 -1
  148. package/dist/{lightbox-CKlYcnHV.js.map → lightbox-C3zomJ-r.js.map} +1 -1
  149. package/dist/lightbox.cjs +1 -1
  150. package/dist/lightbox.js +1 -1
  151. package/dist/{list-B6QhxgRJ.js → list-Bbmp1uMa.js} +1 -1
  152. package/dist/{list-B6QhxgRJ.js.map → list-Bbmp1uMa.js.map} +1 -1
  153. package/dist/{list-21mWtDKg.cjs → list-CbM9w9OM.cjs} +1 -1
  154. package/dist/{list-21mWtDKg.cjs.map → list-CbM9w9OM.cjs.map} +1 -1
  155. package/dist/list.cjs +1 -1
  156. package/dist/list.js +1 -1
  157. package/dist/{menu-Cu5G4vcR.cjs → menu-Bfay8vF8.cjs} +2 -2
  158. package/dist/{menu-Cu5G4vcR.cjs.map → menu-Bfay8vF8.cjs.map} +1 -1
  159. package/dist/{menu-CjOgPSOG.js → menu-Ph2hboJd.js} +3 -3
  160. package/dist/{menu-CjOgPSOG.js.map → menu-Ph2hboJd.js.map} +1 -1
  161. package/dist/menu.cjs +1 -1
  162. package/dist/menu.js +1 -1
  163. package/dist/mixins-BfazlmLD.js +627 -0
  164. package/dist/{mixins-8dT5j6CS.js.map → mixins-BfazlmLD.js.map} +1 -1
  165. package/dist/mixins-CxGRIPYQ.cjs +242 -0
  166. package/dist/{mixins-BF3Vj8_c.cjs.map → mixins-CxGRIPYQ.cjs.map} +1 -1
  167. package/dist/mixins.cjs +1 -1
  168. package/dist/mixins.js +1 -1
  169. package/dist/nav-drawer.cjs +1 -1
  170. package/dist/nav-drawer.js +1 -1
  171. package/dist/navigation-bar.cjs +1 -1
  172. package/dist/navigation-bar.js +1 -1
  173. package/dist/navigation-rail.cjs +1 -1
  174. package/dist/navigation-rail.js +1 -1
  175. package/dist/{notification-CcNoBFEJ.cjs → notification-DT_cAi8U.cjs} +1 -1
  176. package/dist/{notification-CcNoBFEJ.cjs.map → notification-DT_cAi8U.cjs.map} +1 -1
  177. package/dist/{notification-CDKBKh63.js → notification-Du5FRbYp.js} +2 -2
  178. package/dist/{notification-CDKBKh63.js.map → notification-Du5FRbYp.js.map} +1 -1
  179. package/dist/notification.cjs +1 -1
  180. package/dist/notification.js +1 -1
  181. package/dist/{option-BWfmDJvm.js → option-B7y4FhOn.js} +1 -1
  182. package/dist/{option-BWfmDJvm.js.map → option-B7y4FhOn.js.map} +1 -1
  183. package/dist/{option-DejeqOad.cjs → option-Cl5Q987d.cjs} +1 -1
  184. package/dist/{option-DejeqOad.cjs.map → option-Cl5Q987d.cjs.map} +1 -1
  185. package/dist/option.cjs +1 -1
  186. package/dist/option.js +1 -1
  187. package/dist/{overlay-D3c_NY18.js → overlay-B79m-KXf.js} +90 -141
  188. package/dist/overlay-B79m-KXf.js.map +1 -0
  189. package/dist/overlay-CRwfhbyi.cjs +43 -0
  190. package/dist/overlay-CRwfhbyi.cjs.map +1 -0
  191. package/dist/overlay.cjs +1 -1
  192. package/dist/{overlay.confirm-body-B_v0ivkn.js → overlay.confirm-body-CW_spktW.js} +7 -19
  193. package/dist/overlay.confirm-body-CW_spktW.js.map +1 -0
  194. package/dist/{overlay.confirm-body-B2ntyquG.cjs → overlay.confirm-body-CxOomuN6.cjs} +3 -12
  195. package/dist/overlay.confirm-body-CxOomuN6.cjs.map +1 -0
  196. package/dist/overlay.js +3 -3
  197. package/dist/{overlay.service-B3FjXCqc.js → overlay.service-DsBb_UwG.js} +31 -27
  198. package/dist/{overlay.service-B3FjXCqc.js.map → overlay.service-DsBb_UwG.js.map} +1 -1
  199. package/dist/overlay.service-fb3KaMiP.cjs +1 -0
  200. package/dist/{overlay.service-BkSeqXIv.cjs.map → overlay.service-fb3KaMiP.cjs.map} +1 -1
  201. package/dist/{progress-CFcmO0wv.js → progress-CMwUEDB1.js} +1 -1
  202. package/dist/{progress-CFcmO0wv.js.map → progress-CMwUEDB1.js.map} +1 -1
  203. package/dist/{progress-6_rb3Ah9.cjs → progress-fnGrmHpm.cjs} +1 -1
  204. package/dist/{progress-6_rb3Ah9.cjs.map → progress-fnGrmHpm.cjs.map} +1 -1
  205. package/dist/progress.cjs +1 -1
  206. package/dist/progress.js +1 -1
  207. package/dist/{radio-group-_WZg8EKM.cjs → radio-group-DQRJGMgS.cjs} +1 -1
  208. package/dist/{radio-group-_WZg8EKM.cjs.map → radio-group-DQRJGMgS.cjs.map} +1 -1
  209. package/dist/{radio-group-Bd8y9QpX.js → radio-group-Zb0fies1.js} +1 -1
  210. package/dist/{radio-group-Bd8y9QpX.js.map → radio-group-Zb0fies1.js.map} +1 -1
  211. package/dist/radio-group.cjs +1 -1
  212. package/dist/radio-group.js +1 -1
  213. package/dist/range.cjs +1 -1
  214. package/dist/range.js +1 -1
  215. package/dist/{select-Czpl1ztD.js → select-BJJKYtEi.js} +1 -1
  216. package/dist/{select-Czpl1ztD.js.map → select-BJJKYtEi.js.map} +1 -1
  217. package/dist/{select-BaioT3yY.cjs → select-C-acFFtV.cjs} +1 -1
  218. package/dist/{select-BaioT3yY.cjs.map → select-C-acFFtV.cjs.map} +1 -1
  219. package/dist/select.cjs +1 -1
  220. package/dist/select.js +1 -1
  221. package/dist/skeleton.cjs +1 -1
  222. package/dist/skeleton.js +1 -1
  223. package/dist/slider.cjs +1 -1
  224. package/dist/slider.js +1 -1
  225. package/dist/{splash-screen-YtTVkJg8.js → splash-screen-CCDpzGg_.js} +1 -1
  226. package/dist/{splash-screen-YtTVkJg8.js.map → splash-screen-CCDpzGg_.js.map} +1 -1
  227. package/dist/{splash-screen-3FtgdVy3.cjs → splash-screen-CGnhHDB_.cjs} +1 -1
  228. package/dist/{splash-screen-3FtgdVy3.cjs.map → splash-screen-CGnhHDB_.cjs.map} +1 -1
  229. package/dist/splash-screen.cjs +1 -1
  230. package/dist/splash-screen.js +1 -1
  231. package/dist/{src-0LIdvAX6.cjs → src-C0MzzF_S.cjs} +1 -1
  232. package/dist/{src-0LIdvAX6.cjs.map → src-C0MzzF_S.cjs.map} +1 -1
  233. package/dist/{src-BJHws7IS.js → src-CUcUMK0M.js} +31 -31
  234. package/dist/{src-BJHws7IS.js.map → src-CUcUMK0M.js.map} +1 -1
  235. package/dist/steps.cjs +1 -1
  236. package/dist/steps.js +1 -1
  237. package/dist/{surface-CVxyQPln.js → surface-CLcc26d2.js} +1 -1
  238. package/dist/{surface-CVxyQPln.js.map → surface-CLcc26d2.js.map} +1 -1
  239. package/dist/{surface-BNvxLEDN.cjs → surface-DPzlMMYX.cjs} +1 -1
  240. package/dist/{surface-BNvxLEDN.cjs.map → surface-DPzlMMYX.cjs.map} +1 -1
  241. package/dist/surface.cjs +1 -1
  242. package/dist/surface.js +1 -1
  243. package/dist/switch.cjs +1 -1
  244. package/dist/switch.js +1 -1
  245. package/dist/table.cjs +1 -1
  246. package/dist/table.js +1 -1
  247. package/dist/{tabs-CnPXvZuZ.js → tabs-BvEal6oS.js} +1 -1
  248. package/dist/{tabs-CnPXvZuZ.js.map → tabs-BvEal6oS.js.map} +1 -1
  249. package/dist/{tabs-DTU7748z.cjs → tabs-DEKOKYrn.cjs} +1 -1
  250. package/dist/{tabs-DTU7748z.cjs.map → tabs-DEKOKYrn.cjs.map} +1 -1
  251. package/dist/tabs.cjs +1 -1
  252. package/dist/tabs.js +1 -1
  253. package/dist/teleport.cjs +1 -1
  254. package/dist/teleport.js +1 -1
  255. package/dist/{textarea-mQPsppmd.js → textarea-CH62STRD.js} +1 -1
  256. package/dist/{textarea-mQPsppmd.js.map → textarea-CH62STRD.js.map} +1 -1
  257. package/dist/{textarea-Bqth6Q8P.cjs → textarea-Cjlsy3y9.cjs} +1 -1
  258. package/dist/{textarea-Bqth6Q8P.cjs.map → textarea-Cjlsy3y9.cjs.map} +1 -1
  259. package/dist/textarea.cjs +1 -1
  260. package/dist/textarea.js +1 -1
  261. package/dist/{theme-D4HGKt7N.cjs → theme-CG3Gpne7.cjs} +1 -1
  262. package/dist/{theme-D4HGKt7N.cjs.map → theme-CG3Gpne7.cjs.map} +1 -1
  263. package/dist/{theme-button-LP-Dgr17.cjs → theme-button-CEc_Kl54.cjs} +1 -1
  264. package/dist/{theme-button-LP-Dgr17.cjs.map → theme-button-CEc_Kl54.cjs.map} +1 -1
  265. package/dist/{theme-button-Jap7G_IH.js → theme-button-oWeOoeSw.js} +1 -1
  266. package/dist/{theme-button-Jap7G_IH.js.map → theme-button-oWeOoeSw.js.map} +1 -1
  267. package/dist/theme-button.cjs +1 -1
  268. package/dist/theme-button.js +1 -1
  269. package/dist/{theme-BJqpv4cG.js → theme-z82BIRuw.js} +1 -1
  270. package/dist/{theme-BJqpv4cG.js.map → theme-z82BIRuw.js.map} +1 -1
  271. package/dist/theme.cjs +1 -1
  272. package/dist/theme.js +2 -2
  273. package/dist/tree.cjs +1 -1
  274. package/dist/tree.js +1 -1
  275. package/dist/{typography-Bc4MmSal.cjs → typography-CjAvaB88.cjs} +1 -1
  276. package/dist/{typography-Bc4MmSal.cjs.map → typography-CjAvaB88.cjs.map} +1 -1
  277. package/dist/{typography-BJMm6b0b.js → typography-DP82e3GJ.js} +1 -1
  278. package/dist/{typography-BJMm6b0b.js.map → typography-DP82e3GJ.js.map} +1 -1
  279. package/dist/typography.cjs +1 -1
  280. package/dist/typography.js +1 -1
  281. package/dist/visually-hidden.cjs +1 -1
  282. package/dist/visually-hidden.js +1 -1
  283. package/dist/{window-DZTjkE24.js → window-BkPXY-8m.js} +1 -1
  284. package/dist/{window-DZTjkE24.js.map → window-BkPXY-8m.js.map} +1 -1
  285. package/dist/{window-CNu_WnsY.cjs → window-aVXgfw__.cjs} +1 -1
  286. package/dist/{window-CNu_WnsY.cjs.map → window-aVXgfw__.cjs.map} +1 -1
  287. package/dist/window.cjs +1 -1
  288. package/dist/window.js +1 -1
  289. package/package.json +1 -1
  290. package/src/form/fields/date-range/date-range-dialog.ts +8 -1
  291. package/src/form/form.ts +5 -1
  292. package/src/menu/menu.ts +4 -1
  293. package/src/overlay/overlay.animations.ts +0 -29
  294. package/src/overlay/overlay.component.ts +30 -38
  295. package/src/overlay/overlay.confirm-body.ts +3 -15
  296. package/src/overlay/overlay.layout.ts +11 -53
  297. package/src/overlay/overlay.stack.test.ts +113 -0
  298. package/src/overlay/overlay.types.ts +17 -11
  299. package/types/src/form/fields/date-range/date-range-dialog.d.ts +1 -0
  300. package/types/src/form/form.d.ts +1 -0
  301. package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
  302. package/types/src/overlay/overlay.layout.d.ts +10 -30
  303. package/types/src/overlay/overlay.stack.test.d.ts +1 -0
  304. package/types/src/overlay/overlay.types.d.ts +17 -11
  305. package/dist/agent/overlay.confirm-body-BZoUgkdK.js.map +0 -1
  306. package/dist/date-range-BgGQyxOC.cjs.map +0 -1
  307. package/dist/date-range-CT6ckjmV.js.map +0 -1
  308. package/dist/form-C4eFgFwF.cjs.map +0 -1
  309. package/dist/form-CGe9rVox.js.map +0 -1
  310. package/dist/icon-B1eZr2ZL.js.map +0 -1
  311. package/dist/mixins-8dT5j6CS.js +0 -627
  312. package/dist/mixins-BF3Vj8_c.cjs +0 -242
  313. package/dist/overlay-D3c_NY18.js.map +0 -1
  314. package/dist/overlay-Dv2utO4C.cjs +0 -43
  315. package/dist/overlay-Dv2utO4C.cjs.map +0 -1
  316. package/dist/overlay.confirm-body-B2ntyquG.cjs.map +0 -1
  317. package/dist/overlay.confirm-body-B_v0ivkn.js.map +0 -1
  318. package/dist/overlay.service-BkSeqXIv.cjs +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.confirm-body-BFYWMa45.js","names":["__decorate","isFunction","isFunction","isFunction","Symbol_observable","isFunction","isFunction","isFunction","isFunction","isFunction","isFunction","Symbol_observable","isFunction","isFunction","Symbol_iterator","isFunction","Symbol_observable","isFunction","iterator","Symbol_iterator","isFunction","isArray","isFunction","isFunction","asyncScheduler","isFunction","t","i","s","e","h","o","n","r","l","c","a","u","d","f","v","m","p","y","b","S","M","j","t","e","i","e","s","i","r","t","n","i","o","e","r","s","t","s","n","s","t","s","e","i","s","t","e","t","c","t","t","t","e","s","o","n","r","i","c","i","e","h","r","o","n","c","l","p","d","u","f","t","s","o","e","t","r","n","r","t","e","e","t","o","t","s","i","t","e","r","o","i","s","t","h","e","n","o","o","i","n","e","l","c","f","r","s","m","h","o","r","h","n","e","t","i","o","n","s","r","t","h","i","i","s","l","o","r","t","t","o","r","#data","#db","#opening","o","t","n","s","i","t"],"sources":["../../node_modules/tslib/tslib.es6.mjs","../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../node_modules/rxjs/dist/esm5/internal/Subscription.js","../../node_modules/rxjs/dist/esm5/internal/config.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../node_modules/rxjs/dist/esm5/internal/util/noop.js","../../node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../node_modules/rxjs/dist/esm5/internal/util/identity.js","../../node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../node_modules/rxjs/dist/esm5/internal/Observable.js","../../node_modules/rxjs/dist/esm5/internal/util/lift.js","../../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js","../../node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../../node_modules/rxjs/dist/esm5/internal/Subject.js","../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","../../node_modules/rxjs/dist/esm5/internal/Scheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/async.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js","../../node_modules/rxjs/dist/esm5/internal/observable/empty.js","../../node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","../../node_modules/rxjs/dist/esm5/internal/util/args.js","../../node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","../../node_modules/rxjs/dist/esm5/internal/util/isPromise.js","../../node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","../../node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","../../node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","../../node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","../../node_modules/rxjs/dist/esm5/internal/util/isIterable.js","../../node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","../../node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","../../node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","../../node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","../../node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js","../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","../../node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js","../../node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","../../node_modules/rxjs/dist/esm5/internal/observable/from.js","../../node_modules/rxjs/dist/esm5/internal/util/isDate.js","../../node_modules/rxjs/dist/esm5/internal/operators/map.js","../../node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js","../../node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","../../node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","../../node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","../../node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","../../node_modules/rxjs/dist/esm5/internal/observable/concat.js","../../node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js","../../node_modules/rxjs/dist/esm5/internal/observable/timer.js","../../node_modules/rxjs/dist/esm5/internal/observable/merge.js","../../node_modules/rxjs/dist/esm5/internal/operators/filter.js","../../node_modules/rxjs/dist/esm5/internal/operators/audit.js","../../node_modules/rxjs/dist/esm5/internal/operators/auditTime.js","../../node_modules/rxjs/dist/esm5/internal/operators/catchError.js","../../node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js","../../node_modules/rxjs/dist/esm5/internal/operators/take.js","../../node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","../../node_modules/rxjs/dist/esm5/internal/operators/startWith.js","../../node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js","../../node_modules/rxjs/dist/esm5/internal/operators/tap.js","../../node_modules/lit-html/lit-html.js","../../node_modules/lit-html/directive.js","../../node_modules/lit-html/directives/class-map.js","../../node_modules/lit-html/directives/style-map.js","../../mixins/discovery.service.ts","../../node_modules/@lit/context/lib/context-request-event.js","../../node_modules/@lit/context/lib/create-context.js","../../node_modules/@lit/context/lib/controllers/context-consumer.js","../../node_modules/@lit/context/lib/value-notifier.js","../../node_modules/@lit/context/lib/controllers/context-provider.js","../../node_modules/@lit/context/lib/decorators/provide.js","../../node_modules/@lit/context/lib/decorators/consume.js","../../src/theme/context.ts","../../mixins/baseElement.ts","../../node_modules/@lit/reactive-element/decorators/custom-element.js","../../node_modules/@lit/reactive-element/css-tag.js","../../node_modules/@lit/reactive-element/reactive-element.js","../../node_modules/@lit/reactive-element/decorators/property.js","../../node_modules/@lit/reactive-element/decorators/state.js","../../node_modules/@lit/reactive-element/decorators/base.js","../../node_modules/@lit/reactive-element/decorators/query.js","../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../node_modules/lit-element/lit-element.js","../../node_modules/signal-polyfill/dist/index.js","../../node_modules/@lit-labs/signals/lib/signal-watcher.js","../../node_modules/lit-html/directive-helpers.js","../../node_modules/lit-html/async-directive.js","../../node_modules/@lit-labs/signals/lib/watch.js","../../node_modules/@lit-labs/signals/lib/html-tag.js","../../node_modules/@lit-labs/signals/index.js","../../mixins/tailwind.css?inline","../../mixins/tailwind.mixin.ts","../../src/state/active-host.ts","../../mixins/SchmancyElement.ts","../../mixins/formField.mixin.ts","../../src/surface/surface.styles.ts","../../mixins/surface.mixin.ts","../../node_modules/immer/dist/immer.mjs","../../src/state/persist.ts","../../src/state/schmancy-context.ts","../../src/state/index.ts","../../node_modules/lit-html/directives/if-defined.js","../../node_modules/lit-html/directives/ref.js","../../node_modules/lit-html/directives/when.js","../../src/utils/animation.ts","../../src/directives/reduced-motion.ts","../../src/directives/gravity.ts","../../src/directives/magnetic.ts","../../src/button/context.ts","../../src/button/button.ts","../../src/form/form-state.ts","../../src/form/form.ts","../../src/form/fields/input/input.scss?inline","../../src/form/fields/input/input.ts","../../node_modules/lit-html/directives/choose.js","../../src/typography/typography.ts","../../src/overlay/overlay.confirm-body.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Subscription } from '../Subscription';\nexport var animationFrameProvider = {\n schedule: function (callback) {\n var request = requestAnimationFrame;\n var cancel = cancelAnimationFrame;\n var delegate = animationFrameProvider.delegate;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n var handle = request(function (timestamp) {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); });\n },\n requestAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n cancelAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n delegate: undefined,\n};\n//# sourceMappingURL=animationFrameProvider.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nvar AnimationFrameAction = (function (_super) {\n __extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (delay != null ? delay > 0 : this.delay > 0) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n var actions = scheduler.actions;\n if (id != null && id === scheduler._scheduled && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n __extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId;\n if (action) {\n flushId = action.id;\n }\n else {\n flushId = this._scheduled;\n this._scheduled = undefined;\n }\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport var animationFrame = animationFrameScheduler;\n//# sourceMappingURL=animationFrame.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator;\n executeSchedule(subscriber, scheduler, function () {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return function () { return isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { map } from \"../operators/map\";\nvar isArray = Array.isArray;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(function (args) { return callOrApply(fn, args); });\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { __read } from \"tslib\";\nimport { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nvar nodeEventEmitterMethods = ['addListener', 'removeListener'];\nvar eventTargetMethods = ['addEventListener', 'removeEventListener'];\nvar jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n var _a = __read(isEventTarget(target)\n ? eventTargetMethods.map(function (methodName) { return function (handler) { return target[methodName](eventName, handler, options); }; })\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [], 2), add = _a[0], remove = _a[1];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap(function (subTarget) { return fromEvent(subTarget, eventName, options); })(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return subscriber.next(1 < args.length ? args : args[0]);\n };\n add(handler);\n return function () { return remove(handler); };\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return function (methodName) { return function (handler) { return target[methodName](eventName, handler); }; };\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable(function (subscriber) {\n var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n var n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n//# sourceMappingURL=timer.js.map","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n var concurrent = popNumber(args, Infinity);\n var sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=filter.js.map","import { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function audit(durationSelector) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n var durationSubscriber = null;\n var isComplete = false;\n var endDuration = function () {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n isComplete && subscriber.complete();\n };\n var cleanupDuration = function () {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, function () {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=audit.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=defaultIfEmpty.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector) {\n if (keySelector === void 0) { keySelector = identity; }\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate(function (source, subscriber) {\n var previousKey;\n var first = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = popScheduler(values);\n return operate(function (source, subscriber) {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate(function (source, subscriber) {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function () { return subscriber.complete(); }, noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=takeUntil.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n var tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error: error, complete: complete }\n : observerOrNext;\n return tapObserver\n ? operate(function (source, subscriber) {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n var isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, function () {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, function (err) {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, function () {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.2\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter(s=>t[s]).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter(t=>\"\"!==t)));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`},\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n","import { fromEvent, timer, race, Observable } from 'rxjs'\nimport { takeUntil, map, defaultIfEmpty, take } from 'rxjs/operators'\n\n/**\n * Global discovery event names\n */\nconst DISCOVER_EVENT = 'schmancy-discover'\nconst DISCOVER_RESPONSE_EVENT = 'schmancy-discover-response'\n\n/**\n * Discovery request detail\n */\ninterface DiscoverRequest {\n\tselector: string\n\trequestId: string\n}\n\n/**\n * Discovery response detail\n */\ninterface DiscoverResponse {\n\trequestId: string\n\telement: HTMLElement\n}\n\n/**\n * Discover a component in the DOM using the WhereAreYou/HereIAm pattern.\n *\n * @param componentTag - The tag name of the component to discover (e.g., 'schmancy-navigation-rail')\n * @param timeout - How long to wait for a response in milliseconds (default: 100)\n * @returns Observable that emits the discovered component or null if not found\n */\nexport function discoverComponent<T extends HTMLElement>(\n\tcomponentTag: string,\n\ttimeout = 100,\n): Observable<T | null> {\n\tconst whereAreYouEvent = `${componentTag}-where-are-you`\n\tconst hereIAmEvent = `${componentTag}-here-i-am`\n\n\treturn new Observable(subscriber => {\n\t\t// Listen for response first (you were right!)\n\t\tconst subscription = fromEvent<CustomEvent>(window, hereIAmEvent)\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(timer(timeout)),\n\t\t\t\tmap(e => e.detail.component as T),\n\t\t\t\tdefaultIfEmpty(null),\n\t\t\t)\n\t\t\t.subscribe(component => {\n\t\t\t\tsubscriber.next(component)\n\t\t\t\tsubscriber.complete()\n\t\t\t})\n\n\t\t// Then dispatch discovery request\n\t\twindow.dispatchEvent(\n\t\t\tnew CustomEvent(whereAreYouEvent, {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\n\t\t// Return cleanup function\n\t\treturn () => subscription.unsubscribe()\n\t})\n}\n\n/**\n * Discover any of multiple components using race.\n * Returns the first component that responds.\n *\n * @param componentTags - Array of component tag names to discover\n * @returns Observable that emits the first discovered component or null if none found\n */\nexport function discoverAnyComponent<T extends HTMLElement>(...componentTags: string[]): Observable<T | null> {\n\tif (componentTags.length === 0) {\n\t\treturn new Observable(subscriber => {\n\t\t\tsubscriber.next(null)\n\t\t\tsubscriber.complete()\n\t\t})\n\t}\n\n\treturn race(...componentTags.map(tag => discoverComponent<T>(tag)))\n}\n\n/**\n * Universal element discovery - finds ANY element by CSS selector across shadow DOM boundaries.\n * Uses event-based discovery pattern - no DOM traversal needed.\n *\n * How it works:\n * 1. Broadcasts a discovery request event on window\n * 2. All $LitElement components receive this event and check their shadow DOM\n * 3. If a match is found, they respond with the element\n *\n * @param selector - CSS selector (e.g., '#my-id', '.my-class', '[data-attr]')\n * @param timeout - How long to wait for a response in milliseconds (default: 150)\n * @returns Observable that emits the discovered element or null if not found\n *\n * @example\n * ```typescript\n * // Find element by ID across shadow boundaries\n * discoverElement('#app-card').subscribe(el => {\n * if (el) console.log('Found:', el)\n * })\n *\n * // Find element by class\n * discoverElement('.special-button').subscribe(el => {...})\n * ```\n */\nexport function discoverElement<T extends HTMLElement>(\n\tselector: string,\n\ttimeout = 150,\n): Observable<T | null> {\n\tconst requestId = `discover-${Date.now()}-${Math.random().toString(36).slice(2)}`\n\n\treturn new Observable(subscriber => {\n\t\t// Listen for response first\n\t\tconst subscription = fromEvent<CustomEvent<DiscoverResponse>>(window, DISCOVER_RESPONSE_EVENT)\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(timer(timeout)),\n\t\t\t\tmap(e => e.detail),\n\t\t\t\t// Filter for our specific request\n\t\t\t\tmap(detail => (detail.requestId === requestId ? (detail.element as T) : null)),\n\t\t\t\t// Only take the first non-null response\n\t\t\t\ttake(1),\n\t\t\t\tdefaultIfEmpty(null),\n\t\t\t)\n\t\t\t.subscribe(element => {\n\t\t\t\tsubscriber.next(element)\n\t\t\t\tsubscriber.complete()\n\t\t\t})\n\n\t\t// Broadcast discovery request\n\t\twindow.dispatchEvent(\n\t\t\tnew CustomEvent<DiscoverRequest>(DISCOVER_EVENT, {\n\t\t\t\tdetail: { selector, requestId },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\n\t\treturn () => subscription.unsubscribe()\n\t})\n}\n\n/**\n * Discover multiple elements matching a selector.\n * Collects all responses within the timeout period.\n *\n * @param selector - CSS selector\n * @param timeout - How long to collect responses (default: 150ms)\n * @returns Observable that emits array of discovered elements\n */\nexport function discoverAllElements<T extends HTMLElement>(\n\tselector: string,\n\ttimeout = 150,\n): Observable<T[]> {\n\tconst requestId = `discover-all-${Date.now()}-${Math.random().toString(36).slice(2)}`\n\tconst elements: T[] = []\n\n\treturn new Observable(subscriber => {\n\t\t// Collect all responses\n\t\tconst subscription = fromEvent<CustomEvent<DiscoverResponse>>(window, DISCOVER_RESPONSE_EVENT)\n\t\t\t.pipe(takeUntil(timer(timeout)))\n\t\t\t.subscribe({\n\t\t\t\tnext: e => {\n\t\t\t\t\tif (e.detail.requestId === requestId) {\n\t\t\t\t\t\telements.push(e.detail.element as T)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tsubscriber.next(elements)\n\t\t\t\t\tsubscriber.complete()\n\t\t\t\t},\n\t\t\t})\n\n\t\t// Broadcast discovery request\n\t\twindow.dispatchEvent(\n\t\t\tnew CustomEvent<DiscoverRequest>(DISCOVER_EVENT, {\n\t\t\t\tdetail: { selector, requestId },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\n\t\treturn () => subscription.unsubscribe()\n\t})\n}\n\n/**\n * Smart discovery - automatically detects if input is a CSS selector or component tag.\n *\n * @param query - CSS selector (starts with #, ., [) OR component tag name\n * @param timeout - How long to wait (default: 150ms)\n * @returns Observable that emits the discovered element or null\n *\n * @example\n * ```typescript\n * // CSS selector - uses discoverElement\n * discover('#my-element').subscribe(...)\n *\n * // Component tag - uses discoverComponent\n * discover('schmancy-fancy').subscribe(...)\n * ```\n */\nexport function discover<T extends HTMLElement>(\n\tquery: string,\n\ttimeout = 150,\n): Observable<T | null> {\n\t// Check if it's a CSS selector (starts with #, ., or [)\n\tconst isCssSelector = /^[#.\\[]/.test(query)\n\n\tif (isCssSelector) {\n\t\treturn discoverElement<T>(query, timeout)\n\t}\n\n\t// Otherwise treat as component tag name\n\treturn discoverComponent<T>(query, timeout)\n}\n\n// Export event names for use in baseElement\nexport { DISCOVER_EVENT, DISCOVER_RESPONSE_EVENT }\nexport type { DiscoverRequest, DiscoverResponse }\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e,o){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.contextTarget=t,this.callback=e,this.subscribe=o??!1}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=i,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextProvider as t}from\"../controllers/context-provider.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e({context:e}){return(n,i)=>{const r=new WeakMap;if(\"object\"==typeof i)return{get(){return n.get.call(this)},set(t){return r.get(this).setValue(t),n.set.call(this,t)},init(n){return r.set(this,new t(this,{context:e,initialValue:n})),n}};{n.constructor.addInitializer((n=>{r.set(n,new t(n,{context:e}))}));const o=Object.getOwnPropertyDescriptor(n,i);let s;if(void 0===o){const t=new WeakMap;s={get(){return t.get(this)},set(e){r.get(this).setValue(e),t.set(this,e)},configurable:!0,enumerable:!0}}else{const t=o.set;s={...o,set(e){r.get(this).setValue(e),t?.call(this,e)}}}return void Object.defineProperty(n,i,s)}}}export{e as provide};\n//# sourceMappingURL=provide.js.map\n","import{ContextConsumer as t}from\"../controllers/context-consumer.js\";\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function c({context:c,subscribe:e}){return(o,n)=>{\"object\"==typeof n?n.addInitializer((function(){new t(this,{context:c,callback:t=>{o.set.call(this,t)},subscribe:e})})):o.constructor.addInitializer((o=>{new t(o,{context:c,callback:t=>{o[n]=t},subscribe:e})}))}}export{c as consume};\n//# sourceMappingURL=consume.js.map\n","import { createContext } from '@lit/context'\nimport { TSchmancyTheme } from './theme.interface'\n\n/**\n * Lit Context for sharing theme configuration across components.\\n *\n * This context is provided by SchmancyThemeComponent and can be consumed\n * by any child component to access the current theme configuration.\n *\n * @type {Context<Partial<TSchmancyTheme>>}\n *\n * @example\n * ```typescript\n * import { consume } from '@lit/context'\n * import { themeContext } from '@schmancy/theme'\n *\n * class MyComponent extends LitElement {\n * @consume({ context: themeContext })\n * theme?: Partial<TSchmancyTheme>\n *\n * render() {\n * // Access theme variables\n * const primaryColor = this.theme?.sys?.color?.primary?.default\n * // ...\n * }\n * }\n * ```\n */\nexport const themeContext = createContext<Partial<TSchmancyTheme>>('theme-context')\n","import type { Constructor } from './constructor'\nimport { LitElement } from 'lit'\nimport { Subject, fromEvent, Observable } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { styleMap } from 'lit/directives/style-map.js'\nimport { discoverComponent, DISCOVER_EVENT, DISCOVER_RESPONSE_EVENT, type DiscoverRequest } from './discovery.service'\nimport { consume } from '@lit/context'\nimport { themeContext } from '../src/theme/context'\nimport type { TSchmancyTheme } from '../src/theme/theme.interface'\n\nexport declare class IBaseMixin {\n\tdisconnecting: Subject<boolean>\n\tclassMap: typeof classMap\n\tstyleMap: typeof styleMap\n\tdiscover<T extends HTMLElement>(tag: string): Observable<T | null>\n\treadonly stableId: string\n\tuid: string\n\t/**\n\t * Current locale from theme context. Use with Intl.NumberFormat/DateTimeFormat.\n\t * Defaults to navigator.language if no theme provider is found.\n\t * @example new Intl.NumberFormat(this.locale).format(1234.56)\n\t */\n\treadonly locale: string\n\tdispatchScopedEvent<T>(eventName: string, detail?: T, options?: { bubbles?: boolean; composed?: boolean }): void\n}\n\nexport const BaseElement = <T extends Constructor<LitElement>>(superClass: T) => {\n\tclass BaseElement extends superClass {\n\t\tdisconnecting = new Subject<boolean>()\n\t\tprivate _stableId?: string\n\t\tprivate _uid?: string\n\n\t\t@consume({ context: themeContext, subscribe: true })\n\t\tprivate _theme?: Partial<TSchmancyTheme>\n\n\t\t/** Current locale from theme context. Falls back to navigator.language. */\n\t\tget locale(): string {\n\t\t\treturn this._theme?.locale ?? (typeof navigator !== 'undefined' ? navigator.language : 'de-DE')\n\t\t}\n\n\t\t/** Stable ID from DOM path - lazy, only computed on first access */\n\t\tget stableId(): string {\n\t\t\tif (this._stableId) return this._stableId\n\t\t\tconst path: string[] = []\n\t\t\tfor (let el: Element | null = this; el?.parentElement && path.length < 5; el = el.parentElement) {\n\t\t\t\tconst tag = el.tagName.toLowerCase()\n\t\t\t\tconst siblings = Array.from(el.parentElement.children).filter(c => c.tagName === el!.tagName)\n\t\t\t\tpath.unshift(siblings.length > 1 ? `${tag}:nth-of-type(${siblings.indexOf(el) + 1})` : tag)\n\t\t\t}\n\t\t\tconst hash = Array.from(path.join('>')).reduce((h, c) => Math.imul(31, h) + c.charCodeAt(0) | 0, 0)\n\t\t\treturn this._stableId = `el-${Math.abs(hash).toString(36)}`\n\t\t}\n\n\t\t/**\n\t\t * Unique instance ID - can be overridden via attribute, otherwise auto-generated.\n\t\t * Usage: <my-component uid=\"custom-id\"> or let it auto-generate\n\t\t */\n\t\tget uid(): string {\n\t\t\t// Check if uid was set via attribute\n\t\t\tconst attrUid = this.getAttribute('uid')\n\t\t\tif (attrUid) return attrUid\n\n\t\t\t// Auto-generate if not set\n\t\t\tif (!this._uid) {\n\t\t\t\tthis._uid = `el-${crypto.randomUUID()}`\n\t\t\t}\n\t\t\treturn this._uid\n\t\t}\n\n\t\tset uid(value: string) {\n\t\t\tif (value) {\n\t\t\t\tthis.setAttribute('uid', value)\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute('uid')\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Dispatch an event scoped to this component instance.\n\t\t * Emits BOTH scoped event (eventName::uid) and generic event for backward compatibility.\n\t\t * This prevents event collision between multiple instances of the same component.\n\t\t */\n\t\tdispatchScopedEvent<T>(eventName: string, detail?: T, options: { bubbles?: boolean; composed?: boolean } = {}): void {\n\t\t\tconst { bubbles = false, composed = true } = options\n\n\t\t\t// Emit scoped event for new code\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent(`${eventName}::${this.uid}`, {\n\t\t\t\t\tdetail,\n\t\t\t\t\tbubbles,\n\t\t\t\t\tcomposed,\n\t\t\t\t})\n\t\t\t)\n\n\t\t\t// Emit generic event for backward compatibility\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent(eventName, {\n\t\t\t\t\tdetail,\n\t\t\t\t\tbubbles,\n\t\t\t\t\tcomposed,\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\n\t\tclassMap(classes: Record<string, boolean>) {\n\t\t\tconst newClasses: Record<string, boolean> = {}\n\t\t\tObject.keys(classes).forEach(key => {\n\t\t\t\tkey\n\t\t\t\t\t.trim()\n\t\t\t\t\t.split(' ')\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.forEach(k => {\n\t\t\t\t\t\tnewClasses[k] = classes[key]\n\t\t\t\t\t})\n\t\t\t})\n\t\t\treturn classMap(newClasses)\n\t\t}\n\n\t\tstyleMap(styles: Record<string, string | number>) {\n\t\t\treturn styleMap(styles)\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tsuper.connectedCallback()\n\t\t\tthis.setupDiscoveryResponse()\n\t\t}\n\n\t\tprivate setupDiscoveryResponse() {\n\t\t\tconst tagName = this.tagName.toLowerCase()\n\t\t\tconst whereAreYouEvent = `${tagName}-where-are-you`\n\t\t\tconst hereIAmEvent = `${tagName}-here-i-am`\n\n\t\t\t// 1. Component tag discovery (e.g., 'schmancy-fancy-where-are-you')\n\t\t\tfromEvent(window, whereAreYouEvent)\n\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent(hereIAmEvent, {\n\t\t\t\t\t\t\tdetail: { component: this },\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t})\n\n\t\t\t// 2. CSS selector discovery (e.g., '#app-card', '.my-class', '[uid=\"xyz\"]')\n\t\t\tfromEvent<CustomEvent<DiscoverRequest>>(window, DISCOVER_EVENT)\n\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t.subscribe(({ detail: { selector, requestId } }) => {\n\t\t\t\t\tlet found: Element | null = null\n\n\t\t\t\t\t// Check if selector matches this component's id or uid\n\t\t\t\t\tif (selector.startsWith('#')) {\n\t\t\t\t\t\tconst id = selector.slice(1)\n\t\t\t\t\t\tif (this.id === id || this.uid === id) {\n\t\t\t\t\t\t\tfound = this\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check our shadow DOM for matching element\n\t\t\t\t\tif (!found && this.shadowRoot) {\n\t\t\t\t\t\tfound = this.shadowRoot.querySelector(selector)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (found) {\n\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\tnew CustomEvent(DISCOVER_RESPONSE_EVENT, {\n\t\t\t\t\t\t\t\tdetail: { requestId, element: found },\n\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\t// Make discover public to match the interface\n\t\tdiscover<T extends HTMLElement>(tag: string): Observable<T | null> {\n\t\t\treturn discoverComponent<T>(tag)\n\t\t}\n\n\t\tdisconnectedCallback() {\n\t\t\tthis.disconnecting.next(true)\n\t\t\tthis.disconnecting.complete()\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\treturn BaseElement as Constructor<IBaseMixin> & T\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o){return(e,n)=>{const{slot:r,selector:s}=o??{},c=\"slot\"+(r?`[name=${r}]`:\":not([name])\");return t(e,n,{get(){const t=this.renderRoot?.querySelector(c),e=t?.assignedElements(o)??[];return void 0===s?e:e.filter(t=>t.matches(s))}})}}export{o as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateIn = (member, obj) => {\n if (Object(obj) !== obj)\n throw TypeError('Cannot use the \"in\" operator on this value');\n return member.has(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultEquals(a, b) {\n return Object.is(a, b);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet activeConsumer = null;\nlet inNotificationPhase = false;\nlet epoch = 1;\nconst SIGNAL = /* @__PURE__ */ Symbol(\"SIGNAL\");\nfunction setActiveConsumer(consumer) {\n const prev = activeConsumer;\n activeConsumer = consumer;\n return prev;\n}\nfunction getActiveConsumer() {\n return activeConsumer;\n}\nfunction isInNotificationPhase() {\n return inNotificationPhase;\n}\nconst REACTIVE_NODE = {\n version: 0,\n lastCleanEpoch: 0,\n dirty: false,\n producerNode: void 0,\n producerLastReadVersion: void 0,\n producerIndexOfThis: void 0,\n nextProducerIndex: 0,\n liveConsumerNode: void 0,\n liveConsumerIndexOfThis: void 0,\n consumerAllowSignalWrites: false,\n consumerIsAlwaysLive: false,\n producerMustRecompute: () => false,\n producerRecomputeValue: () => {\n },\n consumerMarkedDirty: () => {\n },\n consumerOnSignalRead: () => {\n }\n};\nfunction producerAccessed(node) {\n if (inNotificationPhase) {\n throw new Error(\n typeof ngDevMode !== \"undefined\" && ngDevMode ? `Assertion error: signal read during notification phase` : \"\"\n );\n }\n if (activeConsumer === null) {\n return;\n }\n activeConsumer.consumerOnSignalRead(node);\n const idx = activeConsumer.nextProducerIndex++;\n assertConsumerNode(activeConsumer);\n if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {\n if (consumerIsLive(activeConsumer)) {\n const staleProducer = activeConsumer.producerNode[idx];\n producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);\n }\n }\n if (activeConsumer.producerNode[idx] !== node) {\n activeConsumer.producerNode[idx] = node;\n activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0;\n }\n activeConsumer.producerLastReadVersion[idx] = node.version;\n}\nfunction producerIncrementEpoch() {\n epoch++;\n}\nfunction producerUpdateValueVersion(node) {\n if (!node.dirty && node.lastCleanEpoch === epoch) {\n return;\n }\n if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n return;\n }\n node.producerRecomputeValue(node);\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n}\nfunction producerNotifyConsumers(node) {\n if (node.liveConsumerNode === void 0) {\n return;\n }\n const prev = inNotificationPhase;\n inNotificationPhase = true;\n try {\n for (const consumer of node.liveConsumerNode) {\n if (!consumer.dirty) {\n consumerMarkDirty(consumer);\n }\n }\n } finally {\n inNotificationPhase = prev;\n }\n}\nfunction producerUpdatesAllowed() {\n return (activeConsumer == null ? void 0 : activeConsumer.consumerAllowSignalWrites) !== false;\n}\nfunction consumerMarkDirty(node) {\n var _a;\n node.dirty = true;\n producerNotifyConsumers(node);\n (_a = node.consumerMarkedDirty) == null ? void 0 : _a.call(node.wrapper ?? node);\n}\nfunction consumerBeforeComputation(node) {\n node && (node.nextProducerIndex = 0);\n return setActiveConsumer(node);\n}\nfunction consumerAfterComputation(node, prevConsumer) {\n setActiveConsumer(prevConsumer);\n if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) {\n return;\n }\n if (consumerIsLive(node)) {\n for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n while (node.producerNode.length > node.nextProducerIndex) {\n node.producerNode.pop();\n node.producerLastReadVersion.pop();\n node.producerIndexOfThis.pop();\n }\n}\nfunction consumerPollProducersForChange(node) {\n assertConsumerNode(node);\n for (let i = 0; i < node.producerNode.length; i++) {\n const producer = node.producerNode[i];\n const seenVersion = node.producerLastReadVersion[i];\n if (seenVersion !== producer.version) {\n return true;\n }\n producerUpdateValueVersion(producer);\n if (seenVersion !== producer.version) {\n return true;\n }\n }\n return false;\n}\nfunction producerAddLiveConsumer(node, consumer, indexOfThis) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (node.liveConsumerNode.length === 0) {\n (_a = node.watched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);\n }\n }\n node.liveConsumerIndexOfThis.push(indexOfThis);\n return node.liveConsumerNode.push(consumer) - 1;\n}\nfunction producerRemoveLiveConsumerAtIndex(node, idx) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (typeof ngDevMode !== \"undefined\" && ngDevMode && idx >= node.liveConsumerNode.length) {\n throw new Error(\n `Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`\n );\n }\n if (node.liveConsumerNode.length === 1) {\n (_a = node.unwatched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n const lastIdx = node.liveConsumerNode.length - 1;\n node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];\n node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];\n node.liveConsumerNode.length--;\n node.liveConsumerIndexOfThis.length--;\n if (idx < node.liveConsumerNode.length) {\n const idxProducer = node.liveConsumerIndexOfThis[idx];\n const consumer = node.liveConsumerNode[idx];\n assertConsumerNode(consumer);\n consumer.producerIndexOfThis[idxProducer] = idx;\n }\n}\nfunction consumerIsLive(node) {\n var _a;\n return node.consumerIsAlwaysLive || (((_a = node == null ? void 0 : node.liveConsumerNode) == null ? void 0 : _a.length) ?? 0) > 0;\n}\nfunction assertConsumerNode(node) {\n node.producerNode ?? (node.producerNode = []);\n node.producerIndexOfThis ?? (node.producerIndexOfThis = []);\n node.producerLastReadVersion ?? (node.producerLastReadVersion = []);\n}\nfunction assertProducerNode(node) {\n node.liveConsumerNode ?? (node.liveConsumerNode = []);\n node.liveConsumerIndexOfThis ?? (node.liveConsumerIndexOfThis = []);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction computedGet(node) {\n producerUpdateValueVersion(node);\n producerAccessed(node);\n if (node.value === ERRORED) {\n throw node.error;\n }\n return node.value;\n}\nfunction createComputed(computation) {\n const node = Object.create(COMPUTED_NODE);\n node.computation = computation;\n const computed = () => computedGet(node);\n computed[SIGNAL] = node;\n return computed;\n}\nconst UNSET = /* @__PURE__ */ Symbol(\"UNSET\");\nconst COMPUTING = /* @__PURE__ */ Symbol(\"COMPUTING\");\nconst ERRORED = /* @__PURE__ */ Symbol(\"ERRORED\");\nconst COMPUTED_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n producerMustRecompute(node) {\n return node.value === UNSET || node.value === COMPUTING;\n },\n producerRecomputeValue(node) {\n if (node.value === COMPUTING) {\n throw new Error(\"Detected cycle in computations.\");\n }\n const oldValue = node.value;\n node.value = COMPUTING;\n const prevConsumer = consumerBeforeComputation(node);\n let newValue;\n let wasEqual = false;\n try {\n newValue = node.computation.call(node.wrapper);\n const oldOk = oldValue !== UNSET && oldValue !== ERRORED;\n wasEqual = oldOk && node.equal.call(node.wrapper, oldValue, newValue);\n } catch (err) {\n newValue = ERRORED;\n node.error = err;\n } finally {\n consumerAfterComputation(node, prevConsumer);\n }\n if (wasEqual) {\n node.value = oldValue;\n return;\n }\n node.value = newValue;\n node.version++;\n }\n };\n})();\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultThrowError() {\n throw new Error();\n}\nlet throwInvalidWriteToSignalErrorFn = defaultThrowError;\nfunction throwInvalidWriteToSignalError() {\n throwInvalidWriteToSignalErrorFn();\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction createSignal(initialValue) {\n const node = Object.create(SIGNAL_NODE);\n node.value = initialValue;\n const getter = () => {\n producerAccessed(node);\n return node.value;\n };\n getter[SIGNAL] = node;\n return getter;\n}\nfunction signalGetFn() {\n producerAccessed(this);\n return this.value;\n}\nfunction signalSetFn(node, newValue) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n if (!node.equal.call(node.wrapper, node.value, newValue)) {\n node.value = newValue;\n signalValueChanged(node);\n }\n}\nconst SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n equal: defaultEquals,\n value: void 0\n };\n})();\nfunction signalValueChanged(node) {\n node.version++;\n producerIncrementEpoch();\n producerNotifyConsumers(node);\n}\n/**\n * @license\n * Copyright 2024 Bloomberg Finance L.P.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst NODE = Symbol(\"node\");\nvar Signal;\n((Signal2) => {\n var _a, _brand, brand_fn, _b, _brand2, brand_fn2;\n class State {\n constructor(initialValue, options = {}) {\n __privateAdd(this, _brand);\n __publicField(this, _a);\n const ref = createSignal(initialValue);\n const node = ref[SIGNAL];\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.get\");\n return signalGetFn.call(this[NODE]);\n }\n set(newValue) {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.set\");\n if (isInNotificationPhase()) {\n throw new Error(\"Writes to signals not permitted during Watcher callback\");\n }\n const ref = this[NODE];\n signalSetFn(ref, newValue);\n }\n }\n _a = NODE;\n _brand = new WeakSet();\n brand_fn = function() {\n };\n Signal2.isState = (s) => typeof s === \"object\" && __privateIn(_brand, s);\n Signal2.State = State;\n class Computed {\n // Create a Signal which evaluates to the value returned by the callback.\n // Callback is called with this signal as the parameter.\n constructor(computation, options) {\n __privateAdd(this, _brand2);\n __publicField(this, _b);\n const ref = createComputed(computation);\n const node = ref[SIGNAL];\n node.consumerAllowSignalWrites = true;\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isComputed)(this))\n throw new TypeError(\"Wrong receiver type for Signal.Computed.prototype.get\");\n return computedGet(this[NODE]);\n }\n }\n _b = NODE;\n _brand2 = new WeakSet();\n brand_fn2 = function() {\n };\n Signal2.isComputed = (c) => typeof c === \"object\" && __privateIn(_brand2, c);\n Signal2.Computed = Computed;\n ((subtle2) => {\n var _a2, _brand3, brand_fn3, _assertSignals, assertSignals_fn;\n function untrack(cb) {\n let output;\n let prevActiveConsumer = null;\n try {\n prevActiveConsumer = setActiveConsumer(null);\n output = cb();\n } finally {\n setActiveConsumer(prevActiveConsumer);\n }\n return output;\n }\n subtle2.untrack = untrack;\n function introspectSources(sink) {\n var _a3;\n if (!(0, Signal2.isComputed)(sink) && !(0, Signal2.isWatcher)(sink)) {\n throw new TypeError(\"Called introspectSources without a Computed or Watcher argument\");\n }\n return ((_a3 = sink[NODE].producerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSources = introspectSources;\n function introspectSinks(signal) {\n var _a3;\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called introspectSinks without a Signal argument\");\n }\n return ((_a3 = signal[NODE].liveConsumerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSinks = introspectSinks;\n function hasSinks(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called hasSinks without a Signal argument\");\n }\n const liveConsumerNode = signal[NODE].liveConsumerNode;\n if (!liveConsumerNode)\n return false;\n return liveConsumerNode.length > 0;\n }\n subtle2.hasSinks = hasSinks;\n function hasSources(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isWatcher)(signal)) {\n throw new TypeError(\"Called hasSources without a Computed or Watcher argument\");\n }\n const producerNode = signal[NODE].producerNode;\n if (!producerNode)\n return false;\n return producerNode.length > 0;\n }\n subtle2.hasSources = hasSources;\n class Watcher {\n // When a (recursive) source of Watcher is written to, call this callback,\n // if it hasn't already been called since the last `watch` call.\n // No signals may be read or written during the notify.\n constructor(notify) {\n __privateAdd(this, _brand3);\n __privateAdd(this, _assertSignals);\n __publicField(this, _a2);\n let node = Object.create(REACTIVE_NODE);\n node.wrapper = this;\n node.consumerMarkedDirty = notify;\n node.consumerIsAlwaysLive = true;\n node.consumerAllowSignalWrites = false;\n node.producerNode = [];\n this[NODE] = node;\n }\n // Add these signals to the Watcher's set, and set the watcher to run its\n // notify callback next time any signal in the set (or one of its dependencies) changes.\n // Can be called with no arguments just to reset the \"notified\" state, so that\n // the notify callback will be invoked again.\n watch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n node.dirty = false;\n const prev = setActiveConsumer(node);\n for (const signal of signals) {\n producerAccessed(signal[NODE]);\n }\n setActiveConsumer(prev);\n }\n // Remove these signals from the watched set (e.g., for an effect which is disposed)\n unwatch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n assertConsumerNode(node);\n for (let i = node.producerNode.length - 1; i >= 0; i--) {\n if (signals.includes(node.producerNode[i].wrapper)) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n const lastIdx = node.producerNode.length - 1;\n node.producerNode[i] = node.producerNode[lastIdx];\n node.producerIndexOfThis[i] = node.producerIndexOfThis[lastIdx];\n node.producerNode.length--;\n node.producerIndexOfThis.length--;\n node.nextProducerIndex--;\n if (i < node.producerNode.length) {\n const idxConsumer = node.producerIndexOfThis[i];\n const producer = node.producerNode[i];\n assertProducerNode(producer);\n producer.liveConsumerIndexOfThis[idxConsumer] = i;\n }\n }\n }\n }\n // Returns the set of computeds in the Watcher's set which are still yet\n // to be re-evaluated\n getPending() {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called getPending without Watcher receiver\");\n }\n const node = this[NODE];\n return node.producerNode.filter((n) => n.dirty).map((n) => n.wrapper);\n }\n }\n _a2 = NODE;\n _brand3 = new WeakSet();\n brand_fn3 = function() {\n };\n _assertSignals = new WeakSet();\n assertSignals_fn = function(signals) {\n for (const signal of signals) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called watch/unwatch without a Computed or State argument\");\n }\n }\n };\n Signal2.isWatcher = (w) => __privateIn(_brand3, w);\n subtle2.Watcher = Watcher;\n function currentComputed() {\n var _a3;\n return (_a3 = getActiveConsumer()) == null ? void 0 : _a3.wrapper;\n }\n subtle2.currentComputed = currentComputed;\n subtle2.watched = Symbol(\"watched\");\n subtle2.unwatched = Symbol(\"unwatched\");\n })(Signal2.subtle || (Signal2.subtle = {}));\n})(Signal || (Signal = {}));\nexport {\n Signal\n};\n","import{Signal as t}from\"signal-polyfill\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */let i=!1;const s=new t.subtle.Watcher(()=>{i||(i=!0,queueMicrotask(()=>{i=!1;for(const t of s.getPending())t.get();s.watch()}))}),h=Symbol(\"SignalWatcherBrand\"),e=new FinalizationRegistry(i=>{i.unwatch(...t.subtle.introspectSources(i))}),n=new WeakMap;function o(i){return!0===i[h]?(console.warn(\"SignalWatcher should not be applied to the same class more than once.\"),i):class extends i{constructor(){super(...arguments),this._$St=new Map,this._$So=new t.State(0),this._$Si=!1}_$Sl(){var t,i;const s=[],h=[];this._$St.forEach((t,i)=>{((null==t?void 0:t.beforeUpdate)?s:h).push(i)});const e=null===(t=this.h)||void 0===t?void 0:t.getPending().filter(t=>t!==this._$Su&&!this._$St.has(t));s.forEach(t=>t.get()),null===(i=this._$Su)||void 0===i||i.get(),e.forEach(t=>t.get()),h.forEach(t=>t.get())}_$Sv(){this.isUpdatePending||queueMicrotask(()=>{this.isUpdatePending||this._$Sl()})}_$S_(){if(void 0!==this.h)return;this._$Su=new t.Computed(()=>{this._$So.get(),super.performUpdate()});const i=this.h=new t.subtle.Watcher(function(){const t=n.get(this);void 0!==t&&(!1===t._$Si&&(new Set(this.getPending()).has(t._$Su)?t.requestUpdate():t._$Sv()),this.watch())});n.set(i,this),e.register(this,i),i.watch(this._$Su),i.watch(...Array.from(this._$St).map(([t])=>t))}_$Sp(){if(void 0===this.h)return;let i=!1;this.h.unwatch(...t.subtle.introspectSources(this.h).filter(t=>{var s;const h=!0!==(null===(s=this._$St.get(t))||void 0===s?void 0:s.manualDispose);return h&&this._$St.delete(t),i||(i=!h),h})),i||(this._$Su=void 0,this.h=void 0,this._$St.clear())}updateEffect(i,s){var h;this._$S_();const e=new t.Computed(()=>{i()});return this.h.watch(e),this._$St.set(e,s),null!==(h=null==s?void 0:s.beforeUpdate)&&void 0!==h&&h?t.subtle.untrack(()=>e.get()):this.updateComplete.then(()=>t.subtle.untrack(()=>e.get())),()=>{this._$St.delete(e),this.h.unwatch(e),!1===this.isConnected&&this._$Sp()}}performUpdate(){this.isUpdatePending&&(this._$S_(),this._$Si=!0,this._$So.set(this._$So.get()+1),this._$Si=!1,this._$Sl())}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){super.disconnectedCallback(),queueMicrotask(()=>{!1===this.isConnected&&this._$Sp()})}}}export{o as SignalWatcher};\n//# sourceMappingURL=signal-watcher.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],!1),o(r[i]);else null!=r&&(s(r,!1),o(r));else s(this,i)}const c=i=>{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{directive as i}from\"lit/directive.js\";import{AsyncDirective as t}from\"lit/async-directive.js\";import{Signal as s}from\"signal-polyfill\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet o=!1;const n=new s.subtle.Watcher(async()=>{o||(o=!0,queueMicrotask(()=>{o=!1;for(const i of n.getPending())i.get();n.watch()}))});class r extends t{_$S_(){var i,t;void 0===this._$Sm&&(this._$Sj=new s.Computed(()=>{var i;const t=null===(i=this._$SW)||void 0===i?void 0:i.get();return this.setValue(t),t}),this._$Sm=null!==(t=null===(i=this._$Sk)||void 0===i?void 0:i.h)&&void 0!==t?t:n,this._$Sm.watch(this._$Sj),s.subtle.untrack(()=>{var i;return null===(i=this._$Sj)||void 0===i?void 0:i.get()}))}_$Sp(){void 0!==this._$Sm&&(this._$Sm.unwatch(this._$SW),this._$Sm=void 0)}render(i){return s.subtle.untrack(()=>i.get())}update(i,[t]){var o,n;return null!==(o=this._$Sk)&&void 0!==o||(this._$Sk=null===(n=i.options)||void 0===n?void 0:n.host),t!==this._$SW&&void 0!==this._$SW&&this._$Sp(),this._$SW=t,this._$S_(),s.subtle.untrack(()=>this._$SW.get())}disconnected(){this._$Sp()}reconnected(){this._$S_()}}const h=i(r);export{r as WatchDirective,h as watch};\n//# sourceMappingURL=watch.js.map\n","import{html as o,svg as t}from\"lit/html.js\";import{watch as s}from\"./watch.js\";import{Signal as i}from\"signal-polyfill\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const m=o=>(t,...m)=>o(t,...m.map(o=>o instanceof i.State||o instanceof i.Computed?s(o):o)),l=m(o),r=m(t);export{l as html,r as svg,m as withWatch};\n//# sourceMappingURL=html-tag.js.map\n","import{Signal as t}from\"signal-polyfill\";export*from\"signal-polyfill\";export{SignalWatcher}from\"./lib/signal-watcher.js\";export{WatchDirective,watch}from\"./lib/watch.js\";export{html,svg,withWatch}from\"./lib/html-tag.js\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=t.State,o=t.Computed,r=(l,o)=>new t.State(l,o),i=(l,o)=>new t.Computed(l,o);export{o as Computed,l as State,i as computed,r as signal};\n//# sourceMappingURL=index.js.map\n","@import 'tailwindcss';\n\n/* Tell Tailwind's content scanner to also look at the library source,\n which lives one level up from this file. Without this, consumers whose\n Vite root sits outside the library (e.g. the demo at `/demo/`) only get\n utilities for classes typed in their own source — library classes like\n `bg-primary-default`, `border-outline`, `text-primary-on` silently no-op. */\n@source \"../src/**/*.{ts,tsx,js,jsx,html}\";\n\n/* Cascade-layer order contract. Consumer (unlayered) CSS always overrides\n library styles regardless of specificity. Library-internal tokens and\n components live in named layers so consumers can target them precisely. */\n@layer schmancy.tokens, schmancy.base, schmancy.components;\n\n@layer schmancy.base {\n:host,\n:root {\n\tfont-family: var(--schmancy-font-family);\n\t/* Advertise both schemes so UA form controls, scrollbars, and\n\t `light-dark()` all render correctly until a theme resolves it. */\n\tcolor-scheme: light dark;\n}\n:host,\n:host *,\n* {\n\t/* pan-x pan-y allows scrolling but disables pinch-zoom */\n\ttouch-action: pan-x pan-y;\n}\n\n/* Interactive: luminous lift on hover, spring compress on active */\n.interactive {\n\ttransition:\n\t\ttransform 300ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\tbox-shadow 400ms ease,\n\t\tfilter 200ms ease;\n}\n.interactive:hover {\n\ttransform: translateY(-1px);\n\tfilter: brightness(1.03);\n\tbox-shadow: 0 4px 20px -6px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 18%, transparent);\n}\n.interactive:active {\n\ttransform: scale(0.97);\n\tfilter: brightness(0.96);\n\tbox-shadow: none;\n\ttransition-duration: 100ms;\n}\n@media (prefers-reduced-motion: reduce) {\n\t.interactive { transition: filter 150ms ease; }\n\t.interactive:hover { transform: none; box-shadow: none; }\n\t.interactive:active { transform: none; }\n}\n@theme inline {\n\t--md-ref-typeface-brand: var(--schmancy-font-family);\n\t--md-ref-typeface-plain: var(--schmancy-font-family);\n\t--md-sys-color-primary: var(--schmancy-sys-color-primary-default);\n\t--md-sys-color-secondary: var(--schmancy-sys-color-secondary-default);\n\n\t--*: initial;\n\t--border-style: solid;\n\t--spacing: 4px;\n\t--color-scrim: var(--schmancy-sys-color-scrim);\n\t--color-outline-default: var(--schmancy-sys-color-outline);\n\t--color-outline-variant: var(--schmancy-sys-color-outlineVariant);\n\t/* Shorthand alias */\n\t--color-outline: var(--schmancy-sys-color-outline);\n\t--color-surface-default: var(--schmancy-sys-color-surface-default);\n\t--color-surface-dim: var(--schmancy-sys-color-surface-dim);\n\t--color-surface-bright: var(--schmancy-sys-color-surface-bright);\n\t--color-surface-container: var(--schmancy-sys-color-surface-container);\n\t--color-surface-low: var(--schmancy-sys-color-surface-low);\n\t--color-surface-high: var(--schmancy-sys-color-surface-high);\n\t--color-surface-highest: var(--schmancy-sys-color-surface-highest);\n\t--color-surface-lowest: var(--schmancy-sys-color-surface-lowest);\n\t/* CamelCase variants for Tailwind compatibility */\n\t--color-surface-containerLow: var(--schmancy-sys-color-surface-containerLow);\n\t--color-surface-containerHigh: var(--schmancy-sys-color-surface-containerHigh);\n\t--color-surface-containerLowest: var(--schmancy-sys-color-surface-containerLowest);\n\t--color-surface-containerHighest: var(--schmancy-sys-color-surface-containerHighest);\n\t--color-surface-on: var(--schmancy-sys-color-surface-on);\n\t--color-surface-on-variant: var(--schmancy-sys-color-surface-onVariant);\n\t--color-primary-default: var(--schmancy-sys-color-primary-default);\n\t--color-primary-on: var(--schmancy-sys-color-primary-on);\n\t--color-primary-container: var(--schmancy-sys-color-primary-container);\n\t--color-primary-on-container: var(--schmancy-sys-color-primary-onContainer);\n\t--color-secondary-default: var(--schmancy-sys-color-secondary-default);\n\t--color-secondary-on: var(--schmancy-sys-color-secondary-on);\n\t--color-secondary-container: var(--schmancy-sys-color-secondary-container);\n\t--color-secondary-on-container: var(--schmancy-sys-color-secondary-onContainer);\n\t--color-tertiary-default: var(--schmancy-sys-color-tertiary-default);\n\t--color-tertiary-on: var(--schmancy-sys-color-tertiary-on);\n\t--color-tertiary-container: var(--schmancy-sys-color-tertiary-container);\n\t--color-tertiary-on-container: var(--schmancy-sys-color-tertiary-onContainer);\n\t--color-error-default: var(--schmancy-sys-color-error-default);\n\t--color-error-on: var(--schmancy-sys-color-error-on);\n\t--color-error-container: var(--schmancy-sys-color-error-container);\n\t--color-error-on-container: var(--schmancy-sys-color-error-onContainer);\n\t--color-success-default: var(--schmancy-sys-color-success-default);\n\t--color-success-on: var(--schmancy-sys-color-success-on);\n\t--color-success-container: var(--schmancy-sys-color-success-container);\n\t--color-success-on-container: var(--schmancy-sys-color-success-onContainer);\n\t--color-warning-default: var(--schmancy-sys-color-warning-default);\n\t--color-warning-on: var(--schmancy-sys-color-warning-on);\n\t--color-warning-container: var(--schmancy-sys-color-warning-container);\n\t--color-warning-on-container: var(--schmancy-sys-color-warning-onContainer);\n\t--color-info-default: var(--schmancy-sys-color-info-default);\n\t--color-info-on: var(--schmancy-sys-color-info-on);\n\t--color-info-container: var(--schmancy-sys-color-info-container);\n\t--color-info-on-container: var(--schmancy-sys-color-info-onContainer);\n\n\t/* DEPRECATED: camelCase aliases for backward compatibility - use hyphenated format instead */\n\t--color-outlineVariant: var(--schmancy-sys-color-outlineVariant);\n\t--color-surface-onVariant: var(--schmancy-sys-color-surface-onVariant);\n\t--color-primary-onContainer: var(--schmancy-sys-color-primary-onContainer);\n\t--color-secondary-onContainer: var(--schmancy-sys-color-secondary-onContainer);\n\t--color-tertiary-onContainer: var(--schmancy-sys-color-tertiary-onContainer);\n\t--color-error-onContainer: var(--schmancy-sys-color-error-onContainer);\n\t--color-success-onContainer: var(--schmancy-sys-color-success-onContainer);\n\t--color-warning-onContainer: var(--schmancy-sys-color-warning-onContainer);\n\t--color-info-onContainer: var(--schmancy-sys-color-info-onContainer);\n\n\t/* Shorthand aliases (maps to -default variant) */\n\t--color-primary: var(--schmancy-sys-color-primary-default);\n\t--color-secondary: var(--schmancy-sys-color-secondary-default);\n\t--color-tertiary: var(--schmancy-sys-color-tertiary-default);\n\t--color-error: var(--schmancy-sys-color-error-default);\n\t--color-success: var(--schmancy-sys-color-success-default);\n\t--color-warning: var(--schmancy-sys-color-warning-default);\n\t--color-info: var(--schmancy-sys-color-info-default);\n\t--color-surface: var(--schmancy-sys-color-surface-default);\n\n\t--shadow-0: var(--schmancy-sys-elevation-0);\n\t--shadow-1: var(--schmancy-sys-elevation-1);\n\t--shadow-2: var(--schmancy-sys-elevation-2);\n\t--shadow-3: var(--schmancy-sys-elevation-3);\n\t--shadow-4: var(--schmancy-sys-elevation-4);\n\t--shadow-5: var(--schmancy-sys-elevation-5);\n\t--outline-1: var(--schmancy-sys-outline-1);\n\n\t/* Luminous glow elevation — light-based depth for futuristic UI\n\t Use shadow-glow-{1-5} classes. Glow intensifies with level. */\n\t--shadow-glow-1: 0 2px 12px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent);\n\t--shadow-glow-2: 0 4px 20px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 22%, transparent);\n\t--shadow-glow-3: 0 8px 32px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 28%, transparent);\n\t--shadow-glow-4: 0 12px 44px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 35%, transparent);\n\t--shadow-glow-5: 0 20px 60px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 42%, transparent);\n\n\t/* Frosted-glass overlay shadows — use shadow-overlay (centered/sheet) and shadow-overlay-anchored (popover) */\n\t--shadow-overlay:\n\t\t0 1px 2px color-mix(in srgb, #000 8%, transparent),\n\t\t0 28px 60px -20px color-mix(in srgb, #000 45%, transparent),\n\t\tinset 0 1px 0 0 color-mix(in srgb, var(--schmancy-sys-color-surface-on) 8%, transparent);\n\t--shadow-overlay-anchored:\n\t\t0 1px 2px color-mix(in srgb, #000 8%, transparent),\n\t\t0 12px 28px -12px color-mix(in srgb, #000 35%, transparent),\n\t\tinset 0 1px 0 0 color-mix(in srgb, var(--schmancy-sys-color-surface-on) 8%, transparent);\n\t--font-sans:\n\t\tvar(--schmancy-font-family), ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n\t\t'Segoe UI Symbol', 'Noto Color Emoji';\n\t--font-serif: var(--schmancy-font-family), ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;\n\t--font-mono:\n\t\tvar(--schmancy-font-family), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',\n\t\t'Courier New', monospace;\n\t--color-black: #000;\n\t--color-white: #fff;\n\t--spacing: 0.25rem;\n\t--breakpoint-sm: 40rem;\n\t--breakpoint-md: 48rem;\n\t--breakpoint-lg: 64rem;\n\t--breakpoint-xl: 80rem;\n\t--breakpoint-2xl: 96rem;\n\t--container-3xs: 16rem;\n\t--container-2xs: 18rem;\n\t--container-xs: 20rem;\n\t--container-sm: 24rem;\n\t--container-md: 28rem;\n\t--container-lg: 32rem;\n\t--container-xl: 36rem;\n\t--container-2xl: 42rem;\n\t--container-3xl: 48rem;\n\t--container-4xl: 56rem;\n\t--container-5xl: 64rem;\n\t--container-6xl: 72rem;\n\t--container-7xl: 80rem;\n\t--text-xs: 0.75rem;\n\t--text-xs--line-height: calc(1 / 0.75);\n\t--text-sm: 0.875rem;\n\t--text-sm--line-height: calc(1.25 / 0.875);\n\t--text-base: 1rem;\n\t--text-base--line-height: calc(1.5 / 1);\n\t--text-lg: 1.125rem;\n\t--text-lg--line-height: calc(1.75 / 1.125);\n\t--text-xl: 1.25rem;\n\t--text-xl--line-height: calc(1.75 / 1.25);\n\t--text-2xl: 1.5rem;\n\t--text-2xl--line-height: calc(2 / 1.5);\n\t--text-3xl: 1.875rem;\n\t--text-3xl--line-height: calc(2.25 / 1.875);\n\t--text-4xl: 2.25rem;\n\t--text-4xl--line-height: calc(2.5 / 2.25);\n\t--text-5xl: 3rem;\n\t--text-5xl--line-height: 1;\n\t--text-6xl: 3.75rem;\n\t--text-6xl--line-height: 1;\n\t--text-7xl: 4.5rem;\n\t--text-7xl--line-height: 1;\n\t--text-8xl: 6rem;\n\t--text-8xl--line-height: 1;\n\t--text-9xl: 8rem;\n\t--text-9xl--line-height: 1;\n\t--font-weight-thin: 100;\n\t--font-weight-extralight: 200;\n\t--font-weight-light: 300;\n\t--font-weight-normal: 400;\n\t--font-weight-medium: 500;\n\t--font-weight-semibold: 600;\n\t--font-weight-bold: 700;\n\t--font-weight-extrabold: 800;\n\t--font-weight-black: 900;\n\t--tracking-tighter: -0.05em;\n\t--tracking-tight: -0.025em;\n\t--tracking-normal: 0em;\n\t--tracking-wide: 0.025em;\n\t--tracking-wider: 0.05em;\n\t--tracking-widest: 0.1em;\n\t--leading-tight: 1.25;\n\t--leading-snug: 1.375;\n\t--leading-normal: 1.5;\n\t--leading-relaxed: 1.625;\n\t--leading-loose: 2;\n\t--radius-xs: 0.125rem;\n\t--radius-sm: 0.25rem;\n\t--radius-md: 0.375rem;\n\t--radius-lg: 0.5rem;\n\t--radius-xl: 0.75rem;\n\t--radius-2xl: 1rem;\n\t--radius-3xl: 1.5rem;\n\t--radius-4xl: 2rem;\n\t--shadow-2xs: 0 1px rgb(0 0 0 / 0.05);\n\t--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n\t--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n\t--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n\t--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n\t--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n\t--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n\t--inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);\n\t--inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);\n\t--inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);\n\t--drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);\n\t--drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);\n\t--drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);\n\t--drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);\n\t--drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);\n\t--drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);\n\t--blur-xs: 4px;\n\t--blur-sm: 8px;\n\t--blur-md: 12px;\n\t--blur-lg: 16px;\n\t--blur-xl: 24px;\n\t--blur-2xl: 40px;\n\t--blur-3xl: 64px;\n\t--perspective-dramatic: 100px;\n\t--perspective-near: 300px;\n\t--perspective-normal: 500px;\n\t--perspective-midrange: 800px;\n\t--perspective-distant: 1200px;\n\t--aspect-video: 16 / 9;\n\t--ease-in: cubic-bezier(0.4, 0, 1, 1);\n\t--ease-out: cubic-bezier(0, 0, 0.2, 1);\n\t--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n\t--animate-spin: spin 1s linear infinite;\n\t--animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n\t--animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n\t--animate-bounce: bounce 1s infinite;\n\t/* ========================================================================\n\t ANIMATION SYSTEM\n\n\t A comprehensive, reusable animation library organized by category.\n\t All animations use CSS custom properties for easy customization.\n\n\t NAMING CONVENTION:\n\t - Entrance animations: *-in (fade-in, slide-in, pop-in)\n\t - Exit animations: *-out (fade-out, slide-out)\n\t - Looping animations: descriptive name (float, pulse, shimmer)\n\n\t USAGE:\n\t - Use `animate-{name}` class in Tailwind\n\t - Combine with `opacity-0` for entrance animations\n\t - Use `animation-delay` via style attribute for staggered effects\n\t ======================================================================== */\n\n\t/* ------------------------------------------------------------------------\n\t TAILWIND DEFAULT ANIMATIONS\n\t Standard animations from Tailwind CSS\n\t ------------------------------------------------------------------------ */\n\t@keyframes spin {\n\t\tto { transform: rotate(360deg); }\n\t}\n\t@keyframes ping {\n\t\t75%, 100% { transform: scale(2); opacity: 0; }\n\t}\n\t@keyframes pulse {\n\t\t50% { opacity: 0.5; }\n\t}\n\t@keyframes bounce {\n\t\t0%, 100% {\n\t\t\ttransform: translateY(-25%);\n\t\t\tanimation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n\t\t}\n\t\t50% {\n\t\t\ttransform: none;\n\t\t\tanimation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n\t\t}\n\t}\n\n\t/* ------------------------------------------------------------------------\n\t ENTRANCE ANIMATIONS\n\t One-shot animations for elements entering the viewport.\n\t All use `forwards` fill-mode to maintain end state.\n\t ------------------------------------------------------------------------ */\n\n\t/* Fade In - Simple opacity transition */\n\t--animate-fade-in: fade-in 0.5s ease forwards;\n\t@keyframes fade-in {\n\t\tfrom { opacity: 0; }\n\t\tto { opacity: 1; }\n\t}\n\n\t/* Fade In Up - Fade with upward movement (subtle) */\n\t--animate-fade-in-up: fade-in-up 0.5s ease forwards;\n\t@keyframes fade-in-up {\n\t\tfrom { opacity: 0; transform: translateY(20px); }\n\t\tto { opacity: 1; transform: translateY(0); }\n\t}\n\n\t/* Fade In Up Large - Fade with larger upward movement + scale */\n\t--animate-fade-in-up-lg: fade-in-up-lg 0.6s cubic-bezier(0.34, 1.2, 0.64, 1) forwards;\n\t@keyframes fade-in-up-lg {\n\t\tfrom { opacity: 0; transform: translateY(30px) scale(0.95); }\n\t\tto { opacity: 1; transform: translateY(0) scale(1); }\n\t}\n\n\t/* Slide In Left - Enter from left side */\n\t--animate-slide-in-left: slide-in-left 0.5s ease forwards;\n\t@keyframes slide-in-left {\n\t\tfrom { opacity: 0; transform: translateX(-30px); }\n\t\tto { opacity: 1; transform: translateX(0); }\n\t}\n\n\t/* Slide In Right - Enter from right side */\n\t--animate-slide-in-right: slide-in-right 0.5s ease forwards;\n\t@keyframes slide-in-right {\n\t\tfrom { opacity: 0; transform: translateX(30px); }\n\t\tto { opacity: 1; transform: translateX(0); }\n\t}\n\n\t/* Pop In - Scale up with bounce easing */\n\t--animate-pop-in: pop-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;\n\t@keyframes pop-in {\n\t\tfrom { opacity: 0; transform: scale(0.8); }\n\t\tto { opacity: 1; transform: scale(1); }\n\t}\n\n\t/* Expand In - Subtle scale + translate entrance */\n\t--animate-expand-in: expand-in 0.5s ease forwards;\n\t@keyframes expand-in {\n\t\tfrom { opacity: 0; transform: scale(0.95) translateY(10px); }\n\t\tto { opacity: 1; transform: scale(1) translateY(0); }\n\t}\n\n\t/* Converge In - Dramatic entrance with overshoot */\n\t--animate-converge-in: converge-in 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;\n\t@keyframes converge-in {\n\t\t0% { opacity: 0; transform: scale(0) translateY(50px); }\n\t\t60% { opacity: 1; transform: scale(1.1) translateY(-10px); }\n\t\t100% { opacity: 1; transform: scale(1) translateY(0); }\n\t}\n\n\t/* Spin In - Rotate + scale entrance */\n\t--animate-spin-in: spin-in 0.6s cubic-bezier(0.34, 1.2, 0.64, 1) forwards;\n\t@keyframes spin-in {\n\t\tfrom { opacity: 0; transform: scale(0) rotate(-180deg); }\n\t\tto { opacity: 1; transform: scale(1) rotate(0deg); }\n\t}\n\n\t/* Scatter In - Scale from 0 to partial opacity (for decorative elements) */\n\t--animate-scatter-in: scatter-in 1s ease forwards;\n\t@keyframes scatter-in {\n\t\tfrom { opacity: 0; transform: scale(0); }\n\t\tto { opacity: 0.2; transform: scale(1); }\n\t}\n\n\t/* ------------------------------------------------------------------------\n\t LOOPING ANIMATIONS - PULSE VARIANTS\n\t Continuous pulsing effects for attention/status indicators.\n\t ------------------------------------------------------------------------ */\n\n\t/* Pulse Opacity - Simple opacity pulse */\n\t--animate-pulse-opacity: pulse-opacity 2s ease-in-out infinite;\n\t@keyframes pulse-opacity {\n\t\t0%, 100% { opacity: 1; }\n\t\t50% { opacity: 0.5; }\n\t}\n\n\t/* Pulse Scale - Scale + opacity pulse (for status dots) */\n\t--animate-pulse-scale: pulse-scale 1.5s ease infinite;\n\t@keyframes pulse-scale {\n\t\t0%, 100% { transform: scale(1); opacity: 1; }\n\t\t50% { transform: scale(1.3); opacity: 0.6; }\n\t}\n\n\t/* Pulse Glow - Scale + dynamic box-shadow (for highlighted elements) */\n\t--animate-pulse-glow: pulse-glow 2s ease infinite;\n\t@keyframes pulse-glow {\n\t\t0%, 100% {\n\t\t\ttransform: scale(1);\n\t\t\tbox-shadow: 0 0 20px var(--schmancy-sys-color-primary-default);\n\t\t}\n\t\t50% {\n\t\t\ttransform: scale(1.05);\n\t\t\tbox-shadow: 0 0 40px var(--schmancy-sys-color-primary-default);\n\t\t}\n\t}\n\n\t/* Pulse Ring - Expanding ring effect (for ripples) */\n\t--animate-pulse-ring: pulse-ring 2s ease-out infinite;\n\t@keyframes pulse-ring {\n\t\t0% { transform: scale(0.8); opacity: 0.6; }\n\t\t100% { transform: scale(2); opacity: 0; }\n\t}\n\n\t/* ------------------------------------------------------------------------\n\t LOOPING ANIMATIONS - FLOAT VARIANTS\n\t Gentle floating/hovering effects for ambient motion.\n\t ------------------------------------------------------------------------ */\n\n\t/* Float - Simple vertical float */\n\t--animate-float: float 3s ease-in-out infinite;\n\t@keyframes float {\n\t\t0%, 100% { transform: translateY(0); }\n\t\t50% { transform: translateY(-8px); }\n\t}\n\n\t/* Float Particle - Vertical float with scale + opacity (for particles) */\n\t--animate-float-particle: float-particle 4s ease-in-out infinite;\n\t@keyframes float-particle {\n\t\t0%, 100% { transform: translateY(0) scale(1); opacity: 0.6; }\n\t\t50% { transform: translateY(-30px) scale(1.2); opacity: 0.3; }\n\t}\n\n\t/* Float Chaos - Multi-axis chaotic movement (for scattered elements) */\n\t--animate-float-chaos: float-chaos 8s ease-in-out infinite;\n\t@keyframes float-chaos {\n\t\t0% { transform: translateY(0) rotate(0deg) scale(1); }\n\t\t25% { transform: translateY(-30px) rotate(15deg) scale(1.1); }\n\t\t50% { transform: translateY(-10px) rotate(-10deg) scale(0.95); }\n\t\t75% { transform: translateY(-40px) rotate(8deg) scale(1.05); }\n\t\t100% { transform: translateY(0) rotate(0deg) scale(1); }\n\t}\n\n\t/* ------------------------------------------------------------------------\n\t LOOPING ANIMATIONS - ROTATION\n\t Continuous rotation effects.\n\t ------------------------------------------------------------------------ */\n\n\t/* Rotate Orbit - Slow continuous rotation (for orbital elements) */\n\t--animate-rotate-orbit: rotate-orbit 20s linear infinite;\n\t@keyframes rotate-orbit {\n\t\tfrom { transform: rotate(0deg); }\n\t\tto { transform: rotate(360deg); }\n\t}\n\n\t/* ------------------------------------------------------------------------\n\t LOOPING ANIMATIONS - MOVEMENT EFFECTS\n\t Horizontal/directional movement for progress/flow indicators.\n\t ------------------------------------------------------------------------ */\n\n\t/* Shimmer - Left-to-right shine effect (use with overflow:hidden) */\n\t--animate-shimmer: shimmer 2s ease-in-out infinite;\n\t@keyframes shimmer {\n\t\t0% { left: -100%; }\n\t\t50%, 100% { left: 100%; }\n\t}\n\n\t/* Scan Vertical - Top-to-bottom scanning line */\n\t--animate-scan-vertical: scan-vertical 2s ease-in-out infinite;\n\t@keyframes scan-vertical {\n\t\t0% { top: 0; opacity: 0; }\n\t\t10% { opacity: 1; }\n\t\t90% { opacity: 1; }\n\t\t100% { top: 100%; opacity: 0; }\n\t}\n\n\t/* Scan Horizontal - Left-to-right scanning */\n\t--animate-scan-horizontal: scan-horizontal 2s ease-in-out infinite;\n\t@keyframes scan-horizontal {\n\t\t0% { left: -100%; }\n\t\t100% { left: 100%; }\n\t}\n\n\t/* Flow - Continuous left-to-right flow (for progress connectors) */\n\t--animate-flow: flow 2s ease-in-out infinite;\n\t@keyframes flow {\n\t\t0% { left: -50%; }\n\t\t100% { left: 150%; }\n\t}\n\n\t/* Line Float - Horizontal line traversal with opacity (for decorative lines) */\n\t--animate-line-float: line-float 4s ease-in-out infinite;\n\t@keyframes line-float {\n\t\t0%, 100% { transform: translateX(-100%) scaleX(0.5); opacity: 0; }\n\t\t50% { transform: translateX(100%) scaleX(1); opacity: 0.3; }\n\t}\n\n\t/* ------------------------------------------------------------------------\n\t KINETIC STATE — Physics-based feedback animations.\n\t UI communicates through motion, not icons.\n\t ------------------------------------------------------------------------ */\n\n\t/* Breathe — gentle living pulse for loading/active states */\n\t--animate-breathe: breathe 2.5s ease-in-out infinite;\n\t@keyframes breathe {\n\t\t0%, 100% { transform: scale(1); opacity: 1; }\n\t\t50% { transform: scale(1.015); opacity: 0.88; }\n\t}\n\n\t/* Glow Pulse — luminous throb for highlighted elements */\n\t--animate-glow-pulse: glow-pulse 2s ease-in-out infinite;\n\t@keyframes glow-pulse {\n\t\t0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--schmancy-sys-color-primary-default) 30%, transparent); }\n\t\t50% { box-shadow: 0 0 24px 4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent); }\n\t}\n\n\t/* Kinetic Shake — physics-damped error feedback */\n\t--animate-kinetic-shake: kinetic-shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97);\n\t@keyframes kinetic-shake {\n\t\t0%, 100% { transform: translateX(0); }\n\t\t10% { transform: translateX(-6px); }\n\t\t20% { transform: translateX(5px); }\n\t\t30% { transform: translateX(-4px); }\n\t\t40% { transform: translateX(3px); }\n\t\t50% { transform: translateX(-2px); }\n\t\t60% { transform: translateX(1px); }\n\t}\n\n\t/* Scale Tap — spring-physics tap response */\n\t--animate-scale-tap: scale-tap 250ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\t@keyframes scale-tap {\n\t\t0% { transform: scale(1); }\n\t\t40% { transform: scale(0.94); }\n\t\t100% { transform: scale(1); }\n\t}\n\n\t/* Glow In — luminous entrance with depth */\n\t--animate-glow-in: glow-in 0.6s cubic-bezier(0.34, 1.2, 0.64, 1) forwards;\n\t@keyframes glow-in {\n\t\tfrom {\n\t\t\tbox-shadow: 0 0 0 0 transparent;\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.96);\n\t\t}\n\t\tto {\n\t\t\tbox-shadow: 0 8px 32px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 20%, transparent);\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* ------------------------------------------------------------------------\n\t CUSTOM EASING CURVES\n\t Reusable timing functions for consistent animation feel.\n\t ------------------------------------------------------------------------ */\n\t--ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);\n\t--ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);\n\t--ease-snap: cubic-bezier(0.34, 1.2, 0.64, 1);\n}\n} /* end @layer schmancy.base */\n","import { CSSResult, LitElement, unsafeCSS } from 'lit'\n\nimport style from './tailwind.css?inline'\nimport { BaseElement, IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\n\nexport declare class ITailwindElementMixin {\n\tstyles: (typeof CSSResult)[]\n}\n\nexport const tailwindStyles = unsafeCSS(style)\n\nconst TailwindElementBase = <T extends CSSResult>(componentStyle?: T) => {\n\tclass TailwindMixinClass extends LitElement {\n\t\tstatic styles = [unsafeCSS(componentStyle), tailwindStyles]\n\t}\n\treturn TailwindMixinClass as Constructor<LitElement> /* see \"typing the subclass\" below */\n}\n\nexport const TailwindElement = <T extends CSSResult>(componentStyle?: T) => {\n\tclass TailwindMixinClass extends BaseElement(TailwindElementBase(componentStyle)) {\n\t\tdisconnectedCallback = () => {\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\treturn TailwindMixinClass as Constructor<CustomElementConstructor> &\n\t\tConstructor<ITailwindElementMixin> &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin>\n}\n","// `_`-prefixed identifiers below are an intentional naming convention for\n// module-private infrastructure. `_activeHost` is exported only so the\n// $LitElement mixin can wrap render/lifecycle in `_activeHost.run`; the\n// underscore signals \"not part of the public state API.\"\n/* oxlint-disable no-underscore-dangle */\n\n// Active-host tracker for context-aware state resolution.\n//\n// Polyfills the TC39 `AsyncContext.Variable` propagation primitive using a\n// stack + a one-time `Promise.prototype.then` patch. The stack value carries\n// across `await`, `queueMicrotask`, RxJS subscription callbacks, and any\n// other code path that ultimately routes through `Promise.then`. This is the\n// same capture-and-restore technique zone.js, async-hooks, and the various\n// AsyncContext userland polyfills use.\n//\n// Why we own this:\n// - The TC39 proposal is at stage 2; no official polyfill ships from TC39.\n// - The `async-context@1.0.0` package on npm is unrelated (a 2014 Node\n// callback helper), and the available userland polyfills either depend\n// on zone.js (~50 KB) or are Node-only / hobby quality.\n// - The patch surface is ~30 lines, idempotent, preserves Promise\n// semantics (delegates to the original `then`, so `Symbol.species` and\n// subclassing work unchanged), and decommissions cleanly the day a real\n// polyfill or native AsyncContext lands (drop the file, swap the\n// `_activeHost` export for the standard primitive).\n//\n// Known limitation — native await on a native Promise: V8's await\n// optimization (since 7.x) skips the spec-prescribed\n// `Promise.resolve(x).then(continuation)` step, so userland `then`\n// patches don't intercept the resumption. Class methods that mutate\n// state across an `await` boundary will fall back to the\n// module-scoped global, not the active-host's isolated copy. To\n// preserve the host across awaits, either keep the mutation in the\n// synchronous prelude before the first `await`, or explicitly chain\n// with `.then()` (which still routes through the patched method).\n// A real fix requires either a build-time async-function transform\n// or native AsyncContext.Variable in the runtime.\n//\n// resolveActiveHost() fallback chain:\n// 1. Stack value set by `_activeHost.run(host, fn)` — covers render(),\n// Lit lifecycle methods, and class-method handlers (all wrapped by\n// SchmancyElement's prototype-chain wrap).\n// 2. The closest `<schmancy-context>` whose subtree currently has an\n// in-flight DOM event. The element installs capture-phase listeners\n// that publish itself as the event-host while the synchronous\n// handler chain runs; the slot clears via microtask. Covers\n// template-bound inline arrow handlers attached to descendants.\n// 3. document.activeElement — keyboard handlers in focus.\n// 4. undefined → caller falls back to the module-scoped global instance.\n\n// Singleton across any number of schmancy module copies (source + dist, ESM\n// + CJS, hoisted vs. nested node_modules) via the runtime-global symbol\n// registry. The first copy to load creates the slot; later copies reuse it.\n// Without this, two stacks → mixins push to one, state reads from the other,\n// and active-host context is lost across the boundary.\nconst STACK_KEY = Symbol.for('schmancy.state.activeHost.stack')\ntype StackSlot = { stack: Array<HTMLElement | undefined> }\nconst _g = globalThis as { [STACK_KEY]?: StackSlot }\n_g[STACK_KEY] ??= { stack: [undefined] }\nconst _stack = _g[STACK_KEY].stack\n\n// One-time Promise.prototype.then patch at module init. Each .then() call\n// captures the stack head at chain time; firing the callback restores that\n// captured value for the duration of the callback. The guard property\n// prevents double-patching across HMR / duplicate module loads.\ndeclare global {\n\tinterface Promise<T> {\n\t\t// Marker symbol so we can detect (and skip) re-patching.\n\t\treadonly __schmancyActiveHostPatched?: true\n\t}\n}\n\n// Patching Promise.prototype is the entire mechanism this module exists to\n// provide — the lint rules below intentionally do not apply.\n/* oxlint-disable no-extend-native, unicorn/no-thenable */\nif (typeof Promise !== 'undefined' && !('__schmancyActiveHostPatched' in Promise.prototype)) {\n\tObject.defineProperty(Promise.prototype, '__schmancyActiveHostPatched', {\n\t\tvalue: true,\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\twritable: false,\n\t})\n\tconst _origThen = Promise.prototype.then\n\t// Replace with our wrapper. We delegate to the original `then` via\n\t// `_origThen.call(this, …)` so Promise subclassing / Symbol.species behave\n\t// exactly as before — the only added work is the stack push/pop around\n\t// each user callback.\n\tPromise.prototype.then = function schmancyThen<T, R1, R2>(\n\t\tthis: Promise<T>,\n\t\tonfulfilled?: ((value: T) => R1 | PromiseLike<R1>) | null,\n\t\tonrejected?: ((reason: unknown) => R2 | PromiseLike<R2>) | null,\n\t): Promise<R1 | R2> {\n\t\tconst captured = _stack[_stack.length - 1]\n\t\tconst wrapFulfilled = onfulfilled\n\t\t\t? (v: T): R1 | PromiseLike<R1> => {\n\t\t\t\t\t_stack.push(captured)\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn onfulfilled(v)\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t_stack.pop()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t: onfulfilled\n\t\tconst wrapRejected = onrejected\n\t\t\t? (r: unknown): R2 | PromiseLike<R2> => {\n\t\t\t\t\t_stack.push(captured)\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn onrejected(r)\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t_stack.pop()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t: onrejected\n\t\treturn _origThen.call(this, wrapFulfilled, wrapRejected) as Promise<R1 | R2>\n\t}\n}\n/* oxlint-enable no-extend-native, unicorn/no-thenable */\n\nexport const _activeHost = {\n\t/** Run `fn` with `host` as the active host for the duration of `fn` and\n\t * any awaits / microtasks / Promise chains that descend from it. */\n\trun<R>(host: HTMLElement | undefined, fn: () => R): R {\n\t\t_stack.push(host)\n\t\ttry {\n\t\t\treturn fn()\n\t\t} finally {\n\t\t\t_stack.pop()\n\t\t}\n\t},\n\t/** The current active host, or undefined if no `run()` is on the stack. */\n\tget(): HTMLElement | undefined {\n\t\treturn _stack[_stack.length - 1]\n\t},\n}\n\n// Tier 2 of the resolveActiveHost() fallback chain. A `<schmancy-context>`\n// publishes itself here from a capture-phase event listener attached to\n// itself; the slot clears in the next microtask, after the synchronous\n// event-handler chain has run. `window.event` is unreliable across both\n// engines and time (it can outlive its event — a stale `message` event\n// from postMessage can leak BODY for arbitrary later resolution calls), so\n// we own this slot rather than read the legacy global.\n//\n// Singleton across module copies for the same reason as `_stack` above.\nconst EVENT_HOST_KEY = Symbol.for('schmancy.state.activeHost.eventHost')\ntype EventHostSlot = { host: HTMLElement | undefined; scheduled: boolean }\nconst _eventHostSlot: EventHostSlot =\n\t((globalThis as { [EVENT_HOST_KEY]?: EventHostSlot })[EVENT_HOST_KEY] ??= {\n\t\thost: undefined,\n\t\tscheduled: false,\n\t})\n\n/** Publish `host` as the active event-host. The slot self-clears at the\n * end of the current microtask checkpoint — long enough for the entire\n * synchronous event-handler chain to read it, short enough that no\n * later, unrelated microtask sees a stale value. */\nexport function _publishEventHost(host: HTMLElement): void {\n\t_eventHostSlot.host = host\n\tif (_eventHostSlot.scheduled) return\n\t_eventHostSlot.scheduled = true\n\tqueueMicrotask(() => {\n\t\t_eventHostSlot.scheduled = false\n\t\t_eventHostSlot.host = undefined\n\t})\n}\n\nexport function resolveActiveHost(): HTMLElement | undefined {\n\t// 1. Stack (set by _activeHost.run).\n\tconst fromStack = _activeHost.get()\n\tif (fromStack !== undefined) return fromStack\n\n\t// 2. Closest <schmancy-context> with an in-flight event in its subtree.\n\tif (_eventHostSlot.host !== undefined) return _eventHostSlot.host\n\n\t// 3. document.activeElement — keyboard / focus handlers.\n\tif (typeof document !== 'undefined' && document.activeElement instanceof HTMLElement) {\n\t\treturn document.activeElement\n\t}\n\n\t// 4. undefined — caller falls back to module-scoped.\n\treturn undefined\n}\n\n/** Stable context key for a state namespace. `Symbol.for(...)` so the same\n * namespace string yields the same symbol across module boundaries — the\n * ContextProvider on `<schmancy-context>` and the ContextRequestEvent\n * dispatched by a state read must agree on identity. */\nexport function stateContextKey(namespace: string): symbol {\n\treturn Symbol.for(`schmancy.state:${namespace}`)\n}\n","import { LitElement, type CSSResultGroup, type CSSResultOrNative } from 'lit'\nimport { SignalWatcher } from '@lit-labs/signals'\nimport { BaseElement, type IBaseMixin } from './baseElement'\nimport { tailwindStyles } from './tailwind.mixin'\nimport type { Constructor } from './constructor'\nimport { _activeHost } from '../src/state/active-host'\n\n// Cast to instance-only Constructor + a narrow static surface for `finalizeStyles`.\n// Avoids exposing LitElement's full static side (which has `protected static\n// shadowRootOptions`); that would conflict with subclasses that declare their own\n// `protected static shadowRootOptions = { ..., delegatesFocus: true }` to widen\n// visibility — same shape TailwindElement uses.\ntype StaticFinalizeStyles = {\n\tfinalizeStyles(styles?: CSSResultGroup): CSSResultOrNative[]\n}\nconst SchmancyElementBase = SignalWatcher(BaseElement(LitElement)) as unknown as\n\tCustomElementConstructor & Constructor<LitElement> & Constructor<IBaseMixin> & StaticFinalizeStyles\n\n// ---------------------------------------------------------------------------\n// Active-host integration. Two layers:\n//\n// (1) Prototype-chain wrap. The first instance of every concrete subclass\n// triggers a walk that wraps every function-typed descriptor on the\n// chain (up to but not including HTMLElement.prototype) with\n// `_activeHost.run(this, …)`. Catches `render()`, every Lit lifecycle\n// hook, and every user-defined class method (sync or async — the host\n// propagates across `await` via the Promise.then patch in\n// `active-host.ts`). Idempotent: each prototype object is wrapped at\n// most once, regardless of how many subclasses share it.\n//\n// (2) `addEventListener` override. Listeners attached imperatively to\n// the host run inside `_activeHost.run(this, …)`. We keep an\n// `original→wrapped` map so `removeEventListener` finds the wrapped\n// listener.\n//\n// Inline arrow handlers attached via Lit templates (`@click=${() => …}`)\n// are not wrapped at this layer — Lit attaches them to *child* elements,\n// not the host. They resolve correctly via the\n// `window.event.composedPath()` fallback in `resolveActiveHost()`: a\n// `context-request` dispatched from the click target bubbles (composed)\n// up to the enclosing `<schmancy-context>` provider.\n// ---------------------------------------------------------------------------\n\n// Lit's internal protocol methods (e.g. `_$attributeToProperty`) are\n// framework plumbing; wrapping them risks breaking Lit's update scheduling\n// for no semantic gain — the host is already on the stack from the wrap of\n// the public lifecycle methods that call them.\nfunction shouldSkipMethod(key: string): boolean {\n\tif (key === 'constructor') return true\n\tif (key.startsWith('_$')) return true\n\treturn false\n}\n\nconst wrappedProtos = new WeakSet<object>()\n\nfunction wrapPrototypeChain(ctor: { prototype: object }): void {\n\tlet proto: object | null = ctor.prototype\n\twhile (proto && proto !== HTMLElement.prototype) {\n\t\tif (wrappedProtos.has(proto)) break\n\t\twrappedProtos.add(proto)\n\t\tconst descs = Object.getOwnPropertyDescriptors(proto)\n\t\tfor (const [key, desc] of Object.entries(descs)) {\n\t\t\tif (shouldSkipMethod(key)) continue\n\t\t\tif (typeof desc.value !== 'function') continue\n\t\t\tif (!desc.configurable) continue\n\t\t\tconst original = desc.value as (...args: unknown[]) => unknown\n\t\t\tObject.defineProperty(proto, key, {\n\t\t\t\t...desc,\n\t\t\t\tvalue: function wrappedForActiveHost(this: HTMLElement, ...args: unknown[]) {\n\t\t\t\t\treturn _activeHost.run(this, () => original.apply(this, args))\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t\tproto = Object.getPrototypeOf(proto) as object | null\n\t}\n}\n\ntype AnyListener = EventListener | EventListenerObject\nconst listenerWrapCache = new WeakMap<AnyListener, EventListener>()\n\nfunction wrapHostListener(host: HTMLElement, listener: AnyListener): EventListener {\n\tconst cached = listenerWrapCache.get(listener)\n\tif (cached) return cached\n\tconst wrapped: EventListener = function wrappedHostListener(this: unknown, evt: Event) {\n\t\t_activeHost.run(host, () => {\n\t\t\tif (typeof listener === 'function') {\n\t\t\t\t;(listener as EventListener).call(this, evt)\n\t\t\t} else {\n\t\t\t\tlistener.handleEvent(evt)\n\t\t\t}\n\t\t})\n\t}\n\tlistenerWrapCache.set(listener, wrapped)\n\treturn wrapped\n}\n\n/**\n * Base class for Schmancy components. A concrete named class — not a mixin\n * factory — so DevTools shows `SchmancyElement` in the prototype chain and\n * `extends SchmancyElement` reads like `extends LitElement` for new\n * contributors.\n *\n * Composes:\n * 1. `LitElement` — Lit base\n * 2. `BaseElement` — `disconnecting` Subject, classMap/styleMap,\n * discovery, `stableId`, `uid`, `locale`\n * 3. `SignalWatcher` — auto-tracks every signal read in `render()`\n *\n * Tailwind styles are injected automatically via `finalizeStyles` — subclasses\n * just declare their own component-local styles in `static styles`:\n *\n * @customElement('my-card')\n * class MyCard extends SchmancyElement {\n * static styles = [css`:host { display: block }`]\n * render() { return html`<slot></slot>` }\n * }\n *\n * Cleanup primitives (both fire on disconnect):\n * - `disconnecting: Subject<void>` — RxJS, used with `takeUntil`\n * - `disconnectedSignal: AbortSignal` — native, used with `fetch`,\n * `addEventListener`, or any AbortSignal-aware API\n *\n * Never wrap with `SignalWatcher` again — it is already part of the base.\n * `SignalWatcher(SchmancyElement)` creates two nested Computeds and panics\n * with \"Detected cycle in computations\" at runtime; the pre-edit lint\n * (`NO_SIGNAL_WATCHER_WRAP`) blocks it as belt-and-suspenders.\n */\nexport class SchmancyElement extends SchmancyElementBase {\n\tprivate _abortController = new AbortController()\n\n\t/** AbortSignal that fires when the element disconnects. */\n\treadonly disconnectedSignal: AbortSignal = this._abortController.signal\n\n\tconstructor() {\n\t\tsuper()\n\t\twrapPrototypeChain(this.constructor as { prototype: object })\n\t}\n\n\tstatic override finalizeStyles(\n\t\tstyles?: CSSResultGroup,\n\t): CSSResultOrNative[] {\n\t\treturn [...super.finalizeStyles(styles), tailwindStyles]\n\t}\n\n\toverride addEventListener(\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject | null,\n\t\toptions?: boolean | AddEventListenerOptions,\n\t): void {\n\t\tif (listener == null) {\n\t\t\tsuper.addEventListener(type, listener, options)\n\t\t\treturn\n\t\t}\n\t\tsuper.addEventListener(type, wrapHostListener(this, listener), options)\n\t}\n\n\toverride removeEventListener(\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject | null,\n\t\toptions?: boolean | EventListenerOptions,\n\t): void {\n\t\tif (listener == null) {\n\t\t\tsuper.removeEventListener(type, listener, options)\n\t\t\treturn\n\t\t}\n\t\tconst wrapped = listenerWrapCache.get(listener)\n\t\tsuper.removeEventListener(type, wrapped ?? (listener as EventListener), options)\n\t}\n\n\toverride disconnectedCallback() {\n\t\tthis._abortController.abort()\n\t\tsuper.disconnectedCallback()\n\t}\n}\n\n/**\n * Decorator: `@schmancyElement('tag-name')`. The standard way to register\n * a `SchmancyElement` subclass.\n *\n * Drop-in replacement for Lit's `@customElement`. The difference is\n * timing: this decorator wraps the prototype's methods with\n * `_activeHost.run` BEFORE calling `customElements.define`.\n *\n * Why this matters: the HTML spec captures the element's lifecycle\n * callback references (`connectedCallback`, `disconnectedCallback`, etc.)\n * off the prototype at `customElements.define` time, and the browser\n * invokes those cached references for the element's lifecycle — it does\n * NOT re-look-up the prototype each time. SchmancyElement's constructor\n * installs the active-host wrap on first instantiation, which is strictly\n * later than `define`, so the browser ends up calling unwrapped\n * lifecycle callbacks. Reads inside `connectedCallback` then fall through\n * to `document.activeElement`, miss the enclosing `<schmancy-context>`,\n * and resolve to the module-scoped global instead of the isolated copy.\n *\n * Use this decorator for any subclass that:\n * - Reads or writes a state-singleton inside `connectedCallback` or\n * `disconnectedCallback`, AND\n * - May appear inside a `<schmancy-context>` subtree.\n *\n * For elements that never touch state in lifecycle callbacks, plain\n * `@customElement` from `lit/decorators.js` still works — the\n * constructor's wrap covers everything else (render, class methods,\n * event handlers attached via the prototype). The two decorators are\n * interchangeable for those cases.\n */\nexport function schmancyElement(tagName: string) {\n\treturn <T extends CustomElementConstructor>(cls: T): T => {\n\t\twrapPrototypeChain(cls as { prototype: object })\n\t\tcustomElements.define(tagName, cls)\n\t\treturn cls\n\t}\n}\n","import { CSSResult, LitElement, PropertyValueMap } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\nimport { ITailwindElementMixin } from './tailwind.mixin'\nimport { SchmancyElement } from './SchmancyElement'\n\n/**\n * Cross-realm brand used by `<schmancy-form>` to discover form fields by\n * inheritance rather than tag-name allowlists. `Symbol.for` puts the symbol in\n * the global registry so detection works across module realms/bundles.\n */\nexport const SCHMANCY_FORM_FIELD = Symbol.for('schmancy.form-field')\n\n/**\n * Composed event a field dispatches in `connectedCallback`. `<schmancy-form>`\n * subscribes via `fromEvent(this, FIELD_CONNECT_EVENT)` and adds the field to\n * its registry. No matching disconnect event — composed events from a\n * disconnected node have an empty composed path; cleanup is via `isConnected`\n * filter at iteration time.\n */\nexport const FIELD_CONNECT_EVENT = 'schmancy:field:connect'\n\n/**\n * Validation modes.\n * - `dirty` (default per Revolute) — show errors only after value diverged.\n * - `touched` — show errors after first blur, even if value unchanged.\n * - `always` — show errors immediately (live search).\n * - `submitted` — hold all errors until submit (wizard step).\n * - `length` — fire validation only when `value.length` reaches `maxlength`\n * (Stripe pattern for predictable-length fields: ZIP, phone, card number).\n */\nexport type ValidateOn = 'always' | 'touched' | 'dirty' | 'submitted' | 'length'\n\n/**\n * Per-field error-message override map. Keys are `ValidityState` flag names;\n * values are the message to display when that flag is set. Unset flags fall\n * back to the mixin's hardcoded defaults (English).\n *\n * Use for i18n or domain-specific copy:\n * ```ts\n * <schmancy-input\n * .errorMessages=${{ valueMissing: 'Adresse e-mail requise', typeMismatch: 'Format e-mail invalide' }}\n * type=\"email\" required\n * ></schmancy-input>\n * ```\n */\nexport type ErrorMessages = Partial<Record<keyof ValidityState, string>>\n\n/**\n * Interface defining the properties and methods that the FormFieldMixin adds.\n */\nexport interface IFormFieldMixin extends Element {\n\tname: string\n\tvalue: string | string[] | boolean | number | undefined\n\tlabel: string\n\trequired: boolean\n\tdisabled: boolean\n\treadonly: boolean\n\terror: boolean\n\tvalidationMessage: string\n\thint?: string\n\tid: string\n\n\t/** Set to `true` once the user has blurred the field at least once. */\n\ttouched: boolean\n\t/** `true` when the current value differs from the captured default. */\n\tdirty: boolean\n\t/** Inverse of `dirty`. */\n\tpristine: boolean\n\t/** Set to `true` by `<schmancy-form>` on submit (forces error display). */\n\tsubmitted: boolean\n\t/** Validation mode — controls when errors display. Default `'dirty'`. */\n\tvalidateOn: ValidateOn\n\n\t/**\n\t * Per-field error-message override map (i18n hook). See `ErrorMessages`.\n\t * Unset keys fall back to the mixin's hardcoded English defaults.\n\t */\n\terrorMessages?: ErrorMessages\n\n\t/**\n\t * `ElementInternals` instance attached by the mixin. Exposed so subclasses\n\t * with non-standard validity semantics (date-range, multi-select) can\n\t * surface platform `ValidityStateFlags` directly via\n\t * `internals.setValidity({ valueMissing: true })` rather than rolling their\n\t * own `attachInternals` call.\n\t */\n\tinternals: ElementInternals | undefined\n\n\tform: HTMLFormElement | null\n\n\tcheckValidity(): boolean\n\treportValidity(): boolean\n\tsetCustomValidity(message: string): void\n\n\t/** Mark the field as touched (component should call on blur). */\n\tmarkTouched(): void\n\t/** Mark the field as submitted (called by `<schmancy-form>` on submit). */\n\tmarkSubmitted(): void\n\t/**\n\t * Clear the `submitted` flag without resetting value/touched/error.\n\t * Used by wizards: stepping back from step N to step N-1 should not\n\t * leave step N-1's fields in aggressive \"show all errors\" mode.\n\t */\n\tclearSubmitted(): void\n\n\t/**\n\t * `true` while an async validator is in flight. Broadcast as\n\t * `:state(validating)`. `<schmancy-form>` blocks submit until every\n\t * registered field's `isValidating` is back to `false`.\n\t */\n\tisValidating: boolean\n\n\t/**\n\t * Run an async validator. While the promise is pending, `isValidating` is\n\t * `true` and `:state(validating)` is broadcast. On resolve, the returned\n\t * string is passed to `setCustomValidity` — empty string clears any\n\t * existing custom error; non-empty marks the field invalid with that\n\t * message.\n\t *\n\t * Submitting the form while a validator is pending is queued — the form\n\t * waits for `Promise.all(pending validators)` to settle before proceeding.\n\t */\n\trunAsyncValidator(fn: () => Promise<string>): Promise<void>\n\n\t/**\n\t * Whether the gate for showing validation errors is open right now. Exposed\n\t * so subclasses with custom error-display channels (e.g. select renders\n\t * errors on a child input) can keep their gate consistent with the mixin's.\n\t * Subclasses should not override this — extend the truth table by changing\n\t * `validateOn` instead.\n\t */\n\t_shouldShowError(): boolean\n\n\ttoFormEntries(): Array<[string, FormDataEntryValue]>\n\tresetForm(): void\n\n\temitChange(detail: any): void\n}\n\n/** Predicate used by `<schmancy-form>` to detect mixin descendants. */\nexport function isSchmancyFormField(el: unknown): el is IFormFieldMixin {\n\treturn !!el && typeof el === 'object' && (el as any).constructor?.[SCHMANCY_FORM_FIELD] === true\n}\n\n/**\n * A mixin that adds form field capabilities to a LitElement class.\n * Components that extend this mixin are automatically discovered and\n * collected by `<schmancy-form>` — no tag-name registration needed.\n *\n * Subclasses may override `toFormEntries()` to contribute multiple\n * name/value pairs to FormData (e.g. date-range, tag-input).\n *\n * @example\n * ```ts\n * class MyInput extends FormFieldMixin(TailwindElement(css`...`)) {\n * // Your component code here\n * }\n * ```\n */\nexport function FormFieldMixin<T extends Constructor<LitElement>>(superClass: T) {\n\tclass FormFieldMixinClass extends superClass {\n\t\tstatic formAssociated = true\n\n\t\t/** Brand for cross-realm detection by `<schmancy-form>`. */\n\t\tstatic readonly [SCHMANCY_FORM_FIELD] = true\n\n\t\t// Element internals for form association\n\t\tinternals: ElementInternals | undefined\n\n\t\t/** Value snapshot captured at first render, used by `resetForm()`. */\n\t\tprotected _defaultValue: string | string[] | boolean | number | undefined = undefined\n\n\t\t@property({ type: String })\n\t\tname: string = ''\n\n\t\t@property({ reflect: true })\n\t\tvalue: string | string[] | boolean | number | undefined = ''\n\n\t\t@property({ type: String })\n\t\tlabel: string = ''\n\n\t\t@property({ type: Boolean, reflect: true })\n\t\trequired: boolean = false\n\n\t\t@property({ type: Boolean, reflect: true })\n\t\tdisabled: boolean = false\n\n\t\t@property({ type: Boolean, reflect: true })\n\t\treadonly: boolean = false\n\n\t\t@property({ type: Boolean, reflect: true })\n\t\terror: boolean = false\n\n\t\t@property({ type: String })\n\t\tvalidationMessage: string = ''\n\n\t\t@property({ type: String })\n\t\thint?: string\n\n\t\t@property({ reflect: true })\n\t\toverride id: string = `schmancy-field-${Date.now()}-${Math.floor(Math.random() * 1000)}`\n\n\t\t// ----- Validation UX state (Revolute contract) -----\n\n\t\t/** True after the user has blurred the field at least once. */\n\t\t@state() touched: boolean = false\n\n\t\t/** Set by `<schmancy-form>` on submit; persists until `resetForm()`. */\n\t\t@state() submitted: boolean = false\n\n\t\t/**\n\t\t * When errors display. Default `'dirty'` — the autofocus+cancel anti-pattern\n\t\t * is avoided because pristine fields never show errors until submit.\n\t\t */\n\t\t@property({ type: String, reflect: true })\n\t\tvalidateOn: ValidateOn = 'dirty'\n\n\t\t/**\n\t\t * Optional override for the validity-flag → message map. See\n\t\t * `ErrorMessages`. Unset keys fall back to the mixin's defaults.\n\t\t */\n\t\t@property({ attribute: false })\n\t\terrorMessages?: ErrorMessages\n\n\t\t/** True when value has been changed from the captured default. */\n\t\tget dirty(): boolean {\n\t\t\treturn this._defaultValue !== undefined && this.value !== this._defaultValue\n\t\t}\n\n\t\tget pristine(): boolean {\n\t\t\treturn !this.dirty\n\t\t}\n\n\t\tmarkTouched(): void {\n\t\t\tif (!this.touched) this.touched = true\n\t\t}\n\n\t\tmarkSubmitted(): void {\n\t\t\tif (!this.submitted) this.submitted = true\n\t\t}\n\n\t\tclearSubmitted(): void {\n\t\t\tif (this.submitted) this.submitted = false\n\t\t}\n\n\t\t/**\n\t\t * Reactive flag set while an async validator is in flight. Read by\n\t\t * `<schmancy-form>` to gate submit; broadcast as `:state(validating)`\n\t\t * for CSS spinner targeting.\n\t\t */\n\t\t@state() isValidating: boolean = false\n\n\t\tasync runAsyncValidator(fn: () => Promise<string>): Promise<void> {\n\t\t\tif (this.isValidating) {\n\t\t\t\t// Cancel-by-supersede semantics — a new call wins; the previous\n\t\t\t\t// is best-effort and its result is dropped if it resolves later.\n\t\t\t\tthis._asyncValidatorEpoch++\n\t\t\t}\n\t\t\tconst epoch = ++this._asyncValidatorEpoch\n\t\t\tthis.isValidating = true\n\t\t\ttry {\n\t\t\t\tconst message = await fn()\n\t\t\t\tif (epoch !== this._asyncValidatorEpoch) return // superseded\n\t\t\t\tthis.setCustomValidity(message)\n\t\t\t} finally {\n\t\t\t\tif (epoch === this._asyncValidatorEpoch) {\n\t\t\t\t\tthis.isValidating = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tprivate _asyncValidatorEpoch: number = 0\n\n\t\t/**\n\t\t * Whether `checkValidity()` should display errors right now.\n\t\t * `submitted` overrides every mode — once a submit attempt happens, the\n\t\t * field stays in live-correction mode (Phase 3) for the rest of the\n\t\t * session, and `resetForm()` is the only way back. The leading\n\t\t * underscore marks this as an internal API: subclasses may call it but\n\t\t * should not override it (extend the truth table by changing\n\t\t * `validateOn` instead).\n\t\t */\n\t\t_shouldShowError(): boolean {\n\t\t\tif (this.submitted) return true\n\t\t\tswitch (this.validateOn) {\n\t\t\t\tcase 'always':\n\t\t\t\t\treturn true\n\t\t\t\tcase 'touched':\n\t\t\t\t\treturn this.touched\n\t\t\t\tcase 'dirty':\n\t\t\t\t\treturn this.dirty\n\t\t\t\tcase 'submitted':\n\t\t\t\t\treturn false\n\t\t\t\tcase 'length':\n\t\t\t\t\t// Predictable-length fields: validate once value reaches the\n\t\t\t\t\t// maxlength constraint. Stripe pattern. Falls back to dirty\n\t\t\t\t\t// if no maxlength is set.\n\t\t\t\t\tif (typeof this.value === 'string') {\n\t\t\t\t\t\tconst max = (this as unknown as { maxlength?: number }).maxlength\n\t\t\t\t\t\tif (typeof max === 'number' && max > 0) {\n\t\t\t\t\t\t\treturn this.value.length >= max\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this.dirty\n\t\t\t}\n\t\t}\n\n\t\tconstructor(...args: any[]) {\n\t\t\tsuper(...args)\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\n\t\toverride connectedCallback(): void {\n\t\t\tsuper.connectedCallback()\n\t\t\t// Register with any ancestor <schmancy-form> via composed event.\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent(FIELD_CONNECT_EVENT, {\n\t\t\t\t\tdetail: this,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\n\t\t/** The form this element is associated with (native FACE behavior). */\n\t\tget form(): HTMLFormElement | null {\n\t\t\treturn this.internals?.form ?? null\n\t\t}\n\n\t\tprotected firstUpdated(changedProps: PropertyValueMap<any>): void {\n\t\t\tsuper.firstUpdated?.(changedProps)\n\t\t\tif (this._defaultValue === undefined) this._defaultValue = this.value\n\t\t\t// Sync platform validity (`internals.setValidity`) once after first\n\t\t\t// render so `<form>.checkValidity()` and `:invalid` reflect truth\n\t\t\t// even when no property change has fired through `willUpdate` yet\n\t\t\t// (e.g. for required-empty fields with class-field-initialized\n\t\t\t// defaults that Lit doesn't see as \"changed\" on the first cycle).\n\t\t\tthis.checkValidity()\n\t\t}\n\n\t\tprotected willUpdate(changedProps: PropertyValueMap<any>): void {\n\t\t\tsuper.willUpdate(changedProps)\n\n\t\t\tif (changedProps.has('value')) {\n\t\t\t\tthis.internals?.setFormValue(this.value as string | File | FormData | null)\n\t\t\t\t// :state(dirty) tracks value-vs-default; recompute on every value change.\n\t\t\t\tif (this.dirty) this.internals?.states.add('dirty')\n\t\t\t\telse this.internals?.states.delete('dirty')\n\t\t\t\t// Always sync platform validity (internals.setValidity) so\n\t\t\t\t// `<form>.checkValidity()` and `:invalid` reflect truth, even\n\t\t\t\t// while the visual `error` gate stays closed for pristine\n\t\t\t\t// fields under `validateOn: 'dirty'`. The visibility gate is\n\t\t\t\t// inside checkValidity() itself.\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\n\t\t\tif (changedProps.has('required') || changedProps.has('disabled')) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\n\t\t\tif (changedProps.has('isValidating')) {\n\t\t\t\tif (this.isValidating) this.internals?.states.add('validating')\n\t\t\t\telse this.internals?.states.delete('validating')\n\t\t\t}\n\n\t\t\tif (changedProps.has('touched')) {\n\t\t\t\tif (this.touched) this.internals?.states.add('touched')\n\t\t\t\telse this.internals?.states.delete('touched')\n\t\t\t\t// Phase 2 — blur on a dirty field. Validate to surface the error.\n\t\t\t\tif (this.touched && this.dirty) this.checkValidity()\n\t\t\t}\n\n\t\t\tif (changedProps.has('submitted')) {\n\t\t\t\tif (this.submitted) {\n\t\t\t\t\tthis.internals?.states.add('submitted')\n\t\t\t\t\t// Phase 4 — submit forces error display regardless of dirty/touched.\n\t\t\t\t\tthis.checkValidity()\n\t\t\t\t} else {\n\t\t\t\t\tthis.internals?.states.delete('submitted')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Note: we do not write to `internals.setValidity` from willUpdate\n\t\t\t// based on `error` / `validationMessage` changes. `checkValidity`\n\t\t\t// and `setCustomValidity` are the sole writers — overwriting the\n\t\t\t// validity flags from willUpdate would clobber structured flags\n\t\t\t// set by subclass overrides (e.g. input.ts surfaces typeMismatch /\n\t\t\t// patternMismatch / tooShort / etc.).\n\n\t\t\tif (changedProps.has('error')) {\n\t\t\t\tif (this.error) this.internals?.states.add('invalid')\n\t\t\t\telse this.internals?.states.delete('invalid')\n\t\t\t\t// ARIA reflection through ElementInternals reaches AT through shadow DOM.\n\t\t\t\tif (this.internals) this.internals.ariaInvalid = this.error ? 'true' : 'false'\n\t\t\t}\n\n\t\t\tif (changedProps.has('required') || changedProps.has('disabled')) {\n\t\t\t\tif (this.required) this.internals?.states.add('required')\n\t\t\t\telse this.internals?.states.delete('required')\n\t\t\t\t// Suppress aria-required when disabled — disabled fields shouldn't\n\t\t\t\t// announce as required to assistive tech.\n\t\t\t\tif (this.internals) {\n\t\t\t\t\tthis.internals.ariaRequired = this.required && !this.disabled ? 'true' : 'false'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (changedProps.has('disabled')) {\n\t\t\t\tif (this.disabled) this.internals?.states.add('disabled')\n\t\t\t\telse this.internals?.states.delete('disabled')\n\t\t\t}\n\t\t\tif (changedProps.has('readonly')) {\n\t\t\t\tif (this.readonly) this.internals?.states.add('readonly')\n\t\t\t\telse this.internals?.states.delete('readonly')\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Native FACE lifecycle — called by the browser when the owning form\n\t\t * is reset. Delegates to `resetForm()` so subclasses have one\n\t\t * override point for both programmatic and user-initiated resets.\n\t\t */\n\t\tformResetCallback(): void {\n\t\t\tthis.resetForm()\n\t\t}\n\n\t\t/** Native FACE lifecycle — called when the form's disabled state changes. */\n\t\tformDisabledCallback(disabled: boolean): void {\n\t\t\tthis.disabled = disabled\n\t\t}\n\n\t\t/**\n\t\t * Native FACE lifecycle — restore value after bfcache / form autofill.\n\t\t */\n\t\tformStateRestoreCallback(state: string | File | FormData | null): void {\n\t\t\tif (state == null) return\n\t\t\tthis.value = state as any\n\t\t}\n\n\t\t/** Override to customize reset behavior; default restores `_defaultValue`. */\n\t\tresetForm(): void {\n\t\t\tthis.value = this._defaultValue ?? ''\n\t\t\tthis.error = false\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.touched = false\n\t\t\tthis.submitted = false\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t/**\n\t\t * Contribute entries to a parent FormData. Default: a single\n\t\t * `[name, value]` pair when `name` is set and value is meaningful.\n\t\t * Override for multi-entry controls (e.g. date range).\n\t\t */\n\t\ttoFormEntries(): Array<[string, FormDataEntryValue]> {\n\t\t\tif (!this.name || this.disabled) return []\n\t\t\tconst v = this.value\n\t\t\tif (v === undefined || v === null || v === '') return []\n\t\t\tif (Array.isArray(v)) return v.map(item => [this.name, String(item)] as [string, FormDataEntryValue])\n\t\t\tif (typeof v === 'boolean') return v ? [[this.name, 'on']] : []\n\t\t\treturn [[this.name, String(v)]]\n\t\t}\n\n\t\tcheckValidity(): boolean {\n\t\t\tif (this.disabled) {\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tconst requiredFailed =\n\t\t\t\tthis.required && (this.value === '' || this.value === undefined || this.value === null)\n\t\t\t// Custom errors set via setCustomValidity() are platform-truth too —\n\t\t\t// preserve them through re-validation cycles.\n\t\t\tconst customErrorSet = !!this.internals?.validity?.customError\n\t\t\tconst isValid = !requiredFailed && !customErrorSet\n\t\t\tconst requiredMessage =\n\t\t\t\tthis.errorMessages?.valueMissing ?? 'This field is required'\n\t\t\tconst defaultMessage = requiredFailed ? requiredMessage : 'Invalid value'\n\n\t\t\t// Platform validity (read by `form.checkValidity()` and `:invalid`)\n\t\t\t// is always set to the truth — independent of the visual gate.\n\t\t\tif (requiredFailed) {\n\t\t\t\tthis.internals?.setValidity(\n\t\t\t\t\t{ valueMissing: true },\n\t\t\t\t\tthis.validationMessage || defaultMessage,\n\t\t\t\t)\n\t\t\t} else if (!customErrorSet) {\n\t\t\t\t// No required failure, no custom error — clear flags.\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t}\n\t\t\t// (customErrorSet branch falls through — leave the custom validity intact.)\n\n\t\t\t// Visual `error` flag is gated. The returned boolean tells the caller\n\t\t\t// the truth; only the in-component error display is suppressed for\n\t\t\t// pristine fields under `validateOn: 'dirty'`.\n\t\t\tif (this._shouldShowError()) {\n\t\t\t\tthis.error = !isValid\n\t\t\t\tif (!isValid && !this.validationMessage) {\n\t\t\t\t\tthis.validationMessage = defaultMessage\n\t\t\t\t} else if (isValid) {\n\t\t\t\t\tthis.validationMessage = ''\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn isValid\n\t\t}\n\n\t\treportValidity(): boolean {\n\t\t\tconst isValid = this.checkValidity()\n\t\t\tif (!isValid) this.internals?.reportValidity()\n\t\t\treturn isValid\n\t\t}\n\n\t\tsetCustomValidity(message: string): void {\n\t\t\tthis.validationMessage = message\n\t\t\tthis.error = message !== ''\n\t\t\tif (message) {\n\t\t\t\tthis.internals?.setValidity({ customError: true }, message)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t}\n\t\t}\n\n\t\temitChange(detail: any): void {\n\t\t\tif ('dispatchScopedEvent' in this && typeof this.dispatchScopedEvent === 'function') {\n\t\t\t\tthis.dispatchScopedEvent('change', detail, { bubbles: true })\n\t\t\t} else {\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\t\tdetail,\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn FormFieldMixinClass as Constructor<IFormFieldMixin> & T\n}\n\n/**\n * A convenience function that composes FormFieldMixin with SchmancyElement\n * to create a base class for Schmancy form components. Subclasses gain the\n * full SchmancyElement stack (SignalWatcher, _activeHost wrap, AbortSignal,\n * automatic Tailwind injection) plus the form-field semantics.\n */\nexport function SchmancyFormField<T extends CSSResult>(componentStyle?: T) {\n\tclass StyledSchmancyElement extends SchmancyElement {\n\t\tstatic styles = componentStyle ? [componentStyle] : []\n\t}\n\treturn FormFieldMixin(StyledSchmancyElement) as unknown as Constructor<IFormFieldMixin> &\n\t\tConstructor<ITailwindElementMixin> &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin>\n}\n","import { css } from 'lit'\n\n/**\n * Luminous Glass surface type styles.\n *\n * Depth model: blur intensity + opacity replaces M3 tonal hierarchy.\n * - solid: opaque ground (0 blur, 100% opacity)\n * - subtle: frosted panel (4px blur, ~72% opacity)\n * - glass: full frosted glass (20px blur, ~55% opacity)\n * - luminous: glass + glow halo (24px blur, ~22% opacity)\n */\nexport const surfaceTypeStyles = css`\n\t/* ================================================================\n\t STRUCTURAL TYPES — All-glass depth model.\n\t Nothing is opaque. Every layer is translucent.\n\t Blur creates readability. Light borders isolate layers.\n\t Rule: text must ALWAYS be readable on every surface.\n\t ================================================================ */\n\n\t/* Solid — dense glass, high readability ground layer (no blur — 92% opacity is enough) */\n\t:host([type='solid']) {\n\t\t--glass-base: var(--schmancy-sys-color-surface-lowest);\n\t\t--glass-tint: var(--schmancy-sys-color-surface-on);\n\t\tbackground: color-mix(in srgb, var(--glass-base) 92%, transparent);\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t/* Subtle — frosted glass, clearly readable */\n\t:host([type='subtle']) {\n\t\t--glass-base: var(--schmancy-sys-color-surface-container);\n\t\t--glass-tint: var(--schmancy-sys-color-surface-on);\n\t\tbackground: color-mix(in srgb, var(--glass-base) 78%, transparent);\n\t\tbackdrop-filter: blur(8px) saturate(130%);\n\t\t-webkit-backdrop-filter: blur(8px) saturate(130%);\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t/* Glass — frosted glass, blur ensures readability */\n\t:host([type='glass']) {\n\t\t--glass-base: var(--schmancy-sys-color-surface-lowest);\n\t\t--glass-tint: var(--schmancy-sys-color-surface-on);\n\n\t\tbackground: color-mix(in srgb, var(--glass-base) 55%, transparent);\n\t\tbackdrop-filter: blur(16px) saturate(180%) brightness(1.05);\n\t\t-webkit-backdrop-filter: blur(16px) saturate(180%) brightness(1.05);\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tcontain: content;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tisolation: isolate;\n\t}\n\n\t/* Luminous — glass + glow halo, heavy blur keeps readability */\n\t:host([type='luminous']) {\n\t\t--glass-base: var(--schmancy-sys-color-surface-lowest);\n\t\t--glass-tint: var(--schmancy-sys-color-surface-on);\n\t\t--glow-color: var(--schmancy-sys-color-primary-default);\n\n\t\tbackground: color-mix(in srgb, var(--glass-base) 42%, transparent);\n\t\tbackdrop-filter: blur(20px) saturate(200%) brightness(1.08);\n\t\t-webkit-backdrop-filter: blur(20px) saturate(200%) brightness(1.08);\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tcontain: content;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tisolation: isolate;\n\t}\n\n\t/* ================================================================\n\t UTILITY TYPES\n\t ================================================================ */\n\n\t/* Transparent — no background */\n\t:host([type='transparent']) {\n\t\tbackground-color: transparent;\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t/* Outlined — border with luminous hover potential */\n\t:host([type='outlined']) {\n\t\tbackground-color: transparent;\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tborder: 1px solid var(--schmancy-sys-color-outlineVariant);\n\t\ttransition: border-color 300ms ease, box-shadow 300ms ease;\n\t}\n\n\t/* ================================================================\n\t SEMANTIC TYPES — tinted glass for status/role\n\t ================================================================ */\n\n\t:host([type='primary']) {\n\t\tbackground: color-mix(in srgb, var(--schmancy-sys-color-primary-default) 12%, transparent);\n\t\tbackdrop-filter: blur(4px) saturate(140%);\n\t\t-webkit-backdrop-filter: blur(4px) saturate(140%);\n\t\tcolor: var(--schmancy-sys-color-primary-default);\n\t}\n\t:host([type='secondary']) {\n\t\tbackground: color-mix(in srgb, var(--schmancy-sys-color-secondary-default) 12%, transparent);\n\t\tbackdrop-filter: blur(4px) saturate(140%);\n\t\t-webkit-backdrop-filter: blur(4px) saturate(140%);\n\t\tcolor: var(--schmancy-sys-color-secondary-default);\n\t}\n\t:host([type='tertiary']) {\n\t\tbackground: color-mix(in srgb, var(--schmancy-sys-color-tertiary-default) 12%, transparent);\n\t\tbackdrop-filter: blur(4px) saturate(140%);\n\t\t-webkit-backdrop-filter: blur(4px) saturate(140%);\n\t\tcolor: var(--schmancy-sys-color-tertiary-default);\n\t}\n\t:host([type='error']) {\n\t\tbackground: color-mix(in srgb, var(--schmancy-sys-color-error-default) 12%, transparent);\n\t\tbackdrop-filter: blur(4px) saturate(140%);\n\t\t-webkit-backdrop-filter: blur(4px) saturate(140%);\n\t\tcolor: var(--schmancy-sys-color-error-onContainer);\n\t}\n\t:host([type='success']) {\n\t\tbackground: color-mix(in srgb, var(--schmancy-sys-color-success-default) 12%, transparent);\n\t\tbackdrop-filter: blur(4px) saturate(140%);\n\t\t-webkit-backdrop-filter: blur(4px) saturate(140%);\n\t\tcolor: var(--schmancy-sys-color-success-onContainer);\n\t}\n\t:host([type='warning']) {\n\t\tbackground: color-mix(in srgb, var(--schmancy-sys-color-warning-default) 12%, transparent);\n\t\tbackdrop-filter: blur(4px) saturate(140%);\n\t\t-webkit-backdrop-filter: blur(4px) saturate(140%);\n\t\tcolor: var(--schmancy-sys-color-warning-onContainer);\n\t}\n\t:host([type='info']) {\n\t\tbackground: color-mix(in srgb, var(--schmancy-sys-color-info-default) 12%, transparent);\n\t\tbackdrop-filter: blur(4px) saturate(140%);\n\t\t-webkit-backdrop-filter: blur(4px) saturate(140%);\n\t\tcolor: var(--schmancy-sys-color-info-onContainer);\n\t}\n\n\t/* ================================================================\n\t LEGACY M3 ALIASES — backward compatibility\n\t Old type names render as their new Luminous Glass equivalents.\n\t ================================================================ */\n\n\t/* solid aliases — dense glass */\n\t:host([type='surface']),\n\t:host([type='surfaceDim']),\n\t:host([type='surfaceBright']),\n\t:host([type='containerLowest']) {\n\t\t--glass-base: var(--schmancy-sys-color-surface-lowest);\n\t\t--glass-tint: var(--schmancy-sys-color-surface-on);\n\t\tbackground: color-mix(in srgb, var(--glass-base) 92%, transparent);\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t/* subtle aliases — frosted glass */\n\t:host([type='containerLow']),\n\t:host([type='container']) {\n\t\t--glass-base: var(--schmancy-sys-color-surface-container);\n\t\t--glass-tint: var(--schmancy-sys-color-surface-on);\n\t\tbackground: color-mix(in srgb, var(--glass-base) 78%, transparent);\n\t\tbackdrop-filter: blur(8px) saturate(130%);\n\t\t-webkit-backdrop-filter: blur(8px) saturate(130%);\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t/* glass aliases */\n\t:host([type='containerHigh']),\n\t:host([type='containerHighest']),\n\t:host([type='glassOforim']) {\n\t\t--glass-base: var(--schmancy-sys-color-surface-lowest);\n\t\t--glass-tint: var(--schmancy-sys-color-surface-on);\n\n\t\tbackground: color-mix(in srgb, var(--glass-base) 55%, transparent);\n\t\tbackdrop-filter: blur(16px) saturate(180%) brightness(1.05);\n\t\t-webkit-backdrop-filter: blur(16px) saturate(180%) brightness(1.05);\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tisolation: isolate;\n\t}\n\n\t/* ================================================================\n\t REDUCED MOTION — disable glass animations\n\t ================================================================ */\n`\n\n/**\n * Surface rounded corner styles\n */\nexport const surfaceRoundedStyles = css`\n\t:host([rounded='none']) {\n\t\tborder-radius: 0;\n\t}\n\t:host([rounded='top']) {\n\t\tborder-radius: var(--schmancy-sys-shape-corner-large) var(--schmancy-sys-shape-corner-large) 0 0;\n\t}\n\t:host([rounded='left']) {\n\t\tborder-radius: var(--schmancy-sys-shape-corner-large) 0 0 var(--schmancy-sys-shape-corner-large);\n\t}\n\t:host([rounded='right']) {\n\t\tborder-radius: 0 var(--schmancy-sys-shape-corner-large) var(--schmancy-sys-shape-corner-large) 0;\n\t}\n\t:host([rounded='bottom']) {\n\t\tborder-radius: 0 0 var(--schmancy-sys-shape-corner-large) var(--schmancy-sys-shape-corner-large);\n\t}\n\t:host([rounded='all']) {\n\t\tborder-radius: var(--schmancy-sys-shape-corner-large);\n\t}\n`\n\n/**\n * Luminous glow elevation — replaces M3 dark drop shadows with primary-colored glow.\n * No ::after tint overlay — depth comes from glow intensity, not surface tint.\n */\nexport const surfaceElevationStyles = css`\n\t:host([elevation='1']) {\n\t\tbox-shadow: 0 2px 12px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent);\n\t\tposition: relative;\n\t}\n\t:host([elevation='2']) {\n\t\tbox-shadow: 0 4px 20px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 22%, transparent);\n\t\tposition: relative;\n\t}\n\t:host([elevation='3']) {\n\t\tbox-shadow: 0 8px 32px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 28%, transparent);\n\t\tposition: relative;\n\t}\n\t:host([elevation='4']) {\n\t\tbox-shadow: 0 12px 44px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 35%, transparent);\n\t\tposition: relative;\n\t}\n\t:host([elevation='5']) {\n\t\tbox-shadow: 0 20px 60px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 42%, transparent);\n\t\tposition: relative;\n\t}\n`\n\n/**\n * Surface clickable styles - luminous hover, spring active\n */\nexport const surfaceClickableStyles = css`\n\t:host([clickable]) {\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t\t-webkit-tap-highlight-color: transparent;\n\t\ttransition:\n\t\t\tfilter 200ms ease,\n\t\t\ttransform 300ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\t\tbox-shadow 400ms ease;\n\t}\n\t:host([clickable]:hover) {\n\t\tfilter: brightness(1.03);\n\t}\n\t:host([clickable]:active) {\n\t\tfilter: brightness(0.96);\n\t\ttransform: scale(0.98);\n\t\ttransition-duration: 100ms;\n\t}\n\t:host([clickable]:focus-visible) {\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\n\t\toutline-offset: 2px;\n\t}\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host([clickable]) { transition: filter 150ms ease; }\n\t\t:host([clickable]:hover) { transform: none; box-shadow: none; }\n\t\t:host([clickable]:active) { transform: none; }\n\t}\n`\n\n/**\n * Combined surface styles - includes all surface styling capabilities\n */\nexport const surfaceStyles = css`\n\t${surfaceTypeStyles}\n\t${surfaceRoundedStyles}\n\t${surfaceElevationStyles}\n\t${surfaceClickableStyles}\n`\n","import type { Constructor } from './constructor'\nimport { CSSResultGroup, CSSResultOrNative, LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport type { TSurfaceColor } from '../src/types/surface'\nimport { surfaceStyles } from '../src/surface/surface.styles'\n\nexport type SchmancySurfaceRounded = 'none' | 'top' | 'left' | 'right' | 'bottom' | 'all'\nexport type SchmancySurfaceElevation = 0 | 1 | 2 | 3 | 4 | 5\n\nexport declare class ISurfaceMixin {\n\trounded: SchmancySurfaceRounded\n\televation: SchmancySurfaceElevation\n\ttype: TSurfaceColor\n\tclickable: boolean\n}\n\n/**\n * SurfaceMixin - Adds surface styling properties AND styles to any LitElement\n *\n * Uses Lit's finalizeStyles hook to inject surfaceStyles CSS for all surface type selectors.\n * This is the recommended pattern for mixins that need to add styles.\n *\n * Provides these reflected properties:\n * - `rounded`: 'none' | 'top' | 'left' | 'right' | 'bottom' | 'all' - Corner rounding\n * - `elevation`: 0-5 - Shadow depth level\n * - `type`: TSurfaceColor - Surface color variant (26+ options)\n *\n * Usage:\n * ```typescript\n * import { SurfaceMixin } from '@mixins/surface.mixin'\n *\n * @customElement('my-component')\n * class MyComponent extends SurfaceMixin(TailwindElement(css`\n * :host { display: block; }\n * `)) {\n * // Component now has type, fill, rounded, elevation properties\n * // AND surfaceStyles are automatically included\n * }\n * ```\n */\nexport const SurfaceMixin = <T extends Constructor<LitElement>>(superClass: T) => {\n\tclass SurfaceMixinClass extends superClass {\n\t\t/**\n\t\t * Override finalizeStyles to inject surfaceStyles.\n\t\t * This is the Lit-recommended way for mixins to add styles.\n\t\t */\n\t\tprotected static finalizeStyles(styles?: CSSResultGroup): CSSResultOrNative[] {\n\t\t\t// Get parent's finalized styles using LitElement's method\n\t\t\tconst parentStyles = (superClass as unknown as typeof LitElement).finalizeStyles(styles)\n\t\t\t// Append surfaceStyles at the end (higher specificity)\n\t\t\treturn [...parentStyles, surfaceStyles as CSSResultOrNative]\n\t\t}\n\n\t\t/**\n\t\t * Specifies the rounding style of the component's corners.\n\t\t * @default 'none'\n\t\t */\n\t\t@property({ reflect: true })\n\t\trounded: SchmancySurfaceRounded = 'none'\n\n\t\t/**\n\t\t * Defines the elevation level (shadow depth) of the surface.\n\t\t * @default 0\n\t\t */\n\t\t@property({ type: Number, reflect: true })\n\t\televation: SchmancySurfaceElevation = 0\n\n\t\t/**\n\t\t * Specifies the surface type for styling.\n\t\t * @default 'container'\n\t\t */\n\t\t@property({ reflect: true })\n\t\ttype: TSurfaceColor = 'subtle'\n\n\t\t/**\n\t\t * Makes the surface interactive with hover, active states and cursor pointer.\n\t\t * @default false\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\tclickable = false\n\t}\n\treturn SurfaceMixinClass as Constructor<ISurfaceMixin> & T\n}\n","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = isFunction(e) ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar O = Object;\nvar getPrototypeOf = O.getPrototypeOf;\nvar CONSTRUCTOR = \"constructor\";\nvar PROTOTYPE = \"prototype\";\nvar CONFIGURABLE = \"configurable\";\nvar ENUMERABLE = \"enumerable\";\nvar WRITABLE = \"writable\";\nvar VALUE = \"value\";\nvar isDraft = (value) => !!value && !!value[DRAFT_STATE];\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || isArray(value) || !!value[DRAFTABLE] || !!value[CONSTRUCTOR]?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString();\nvar cachedCtorStrings = /* @__PURE__ */ new WeakMap();\nfunction isPlainObject(value) {\n if (!value || !isObjectish(value))\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null || proto === O[PROTOTYPE])\n return true;\n const Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR];\n if (Ctor === Object)\n return true;\n if (!isFunction(Ctor))\n return false;\n let ctorString = cachedCtorStrings.get(Ctor);\n if (ctorString === void 0) {\n ctorString = Function.toString.call(Ctor);\n cachedCtorStrings.set(Ctor, ctorString);\n }\n return ctorString === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter, strict = true) {\n if (getArchtype(obj) === 0 /* Object */) {\n const keys = strict ? Reflect.ownKeys(obj) : O.keys(obj);\n keys.forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nvar has = (thing, prop, type = getArchtype(thing)) => type === 2 /* Map */ ? thing.has(prop) : O[PROTOTYPE].hasOwnProperty.call(thing, prop);\nvar get = (thing, prop, type = getArchtype(thing)) => (\n // @ts-ignore\n type === 2 /* Map */ ? thing.get(prop) : thing[prop]\n);\nvar set = (thing, propOrOldValue, value, type = getArchtype(thing)) => {\n if (type === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (type === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n};\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nvar isArray = Array.isArray;\nvar isMap = (target) => target instanceof Map;\nvar isSet = (target) => target instanceof Set;\nvar isObjectish = (target) => typeof target === \"object\";\nvar isFunction = (target) => typeof target === \"function\";\nvar isBoolean = (target) => typeof target === \"boolean\";\nfunction isArrayIndex(value) {\n const n = +value;\n return Number.isInteger(n) && String(n) === value;\n}\nvar getProxyDraft = (value) => {\n if (!isObjectish(value))\n return null;\n return value?.[DRAFT_STATE];\n};\nvar latest = (state) => state.copy_ || state.base_;\nvar getValue = (value) => {\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value;\n};\nvar getFinalValue = (state) => state.modified_ ? state.copy_ : state.base_;\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (isArray(base))\n return Array[PROTOTYPE].slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = O.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc[WRITABLE] === false) {\n desc[WRITABLE] = true;\n desc[CONFIGURABLE] = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n [CONFIGURABLE]: true,\n [WRITABLE]: true,\n // could live with !!desc.set as well here...\n [ENUMERABLE]: desc[ENUMERABLE],\n [VALUE]: base[key]\n };\n }\n return O.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = O.create(proto);\n return O.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n O.defineProperties(obj, {\n set: dontMutateMethodOverride,\n add: dontMutateMethodOverride,\n clear: dontMutateMethodOverride,\n delete: dontMutateMethodOverride\n });\n }\n O.freeze(obj);\n if (deep)\n each(\n obj,\n (_key, value) => {\n freeze(value, true);\n },\n false\n );\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nvar dontMutateMethodOverride = {\n [VALUE]: dontMutateFrozenCollections\n};\nfunction isFrozen(obj) {\n if (obj === null || !isObjectish(obj))\n return true;\n return O.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar PluginMapSet = \"MapSet\";\nvar PluginPatches = \"Patches\";\nvar PluginArrayMethods = \"ArrayMethods\";\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nvar isPluginLoaded = (pluginKey) => !!plugins[pluginKey];\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nvar getCurrentScope = () => currentScope;\nvar createScope = (parent_, immer_) => ({\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0,\n handledSet_: /* @__PURE__ */ new Set(),\n processedForPatches_: /* @__PURE__ */ new Set(),\n mapSetPlugin_: isPluginLoaded(PluginMapSet) ? getPlugin(PluginMapSet) : void 0,\n arrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods) ? getPlugin(PluginArrayMethods) : void 0\n});\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n scope.patchPlugin_ = getPlugin(PluginPatches);\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nvar enterScope = (immer2) => currentScope = createScope(currentScope, immer2);\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n }\n const { patchPlugin_ } = scope;\n if (patchPlugin_) {\n patchPlugin_.generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope\n );\n }\n } else {\n result = finalize(scope, baseDraft);\n }\n maybeFreeze(scope, result, true);\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n const finalValue = handleValue(value, rootScope.handledSet_, rootScope);\n return finalValue;\n }\n if (!isSameScope(state, rootScope)) {\n return value;\n }\n if (!state.modified_) {\n return state.base_;\n }\n if (!state.finalized_) {\n const { callbacks_ } = state;\n if (callbacks_) {\n while (callbacks_.length > 0) {\n const callback = callbacks_.pop();\n callback(rootScope);\n }\n }\n generatePatchesAndFinalize(state, rootScope);\n }\n return state.copy_;\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\nfunction markStateFinalized(state) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n}\nvar isSameScope = (state, rootScope) => state.scope_ === rootScope;\nvar EMPTY_LOCATIONS_RESULT = [];\nfunction updateDraftInParent(parent, draftValue, finalizedValue, originalKey) {\n const parentCopy = latest(parent);\n const parentType = parent.type_;\n if (originalKey !== void 0) {\n const currentValue = get(parentCopy, originalKey, parentType);\n if (currentValue === draftValue) {\n set(parentCopy, originalKey, finalizedValue, parentType);\n return;\n }\n }\n if (!parent.draftLocations_) {\n const draftLocations = parent.draftLocations_ = /* @__PURE__ */ new Map();\n each(parentCopy, (key, value) => {\n if (isDraft(value)) {\n const keys = draftLocations.get(value) || [];\n keys.push(key);\n draftLocations.set(value, keys);\n }\n });\n }\n const locations = parent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT;\n for (const location of locations) {\n set(parentCopy, location, finalizedValue, parentType);\n }\n}\nfunction registerChildFinalizationCallback(parent, child, key) {\n parent.callbacks_.push(function childCleanup(rootScope) {\n const state = child;\n if (!state || !isSameScope(state, rootScope)) {\n return;\n }\n rootScope.mapSetPlugin_?.fixSetContents(state);\n const finalizedValue = getFinalValue(state);\n updateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key);\n generatePatchesAndFinalize(state, rootScope);\n });\n}\nfunction generatePatchesAndFinalize(state, rootScope) {\n const shouldFinalize = state.modified_ && !state.finalized_ && (state.type_ === 3 /* Set */ || state.type_ === 1 /* Array */ && state.allIndicesReassigned_ || (state.assigned_?.size ?? 0) > 0);\n if (shouldFinalize) {\n const { patchPlugin_ } = rootScope;\n if (patchPlugin_) {\n const basePath = patchPlugin_.getPath(state);\n if (basePath) {\n patchPlugin_.generatePatches_(state, basePath, rootScope);\n }\n }\n markStateFinalized(state);\n }\n}\nfunction handleCrossReference(target, key, value) {\n const { scope_ } = target;\n if (isDraft(value)) {\n const state = value[DRAFT_STATE];\n if (isSameScope(state, scope_)) {\n state.callbacks_.push(function crossReferenceCleanup() {\n prepareCopy(target);\n const finalizedValue = getFinalValue(state);\n updateDraftInParent(target, value, finalizedValue, key);\n });\n }\n } else if (isDraftable(value)) {\n target.callbacks_.push(function nestedDraftCleanup() {\n const targetCopy = latest(target);\n if (target.type_ === 3 /* Set */) {\n if (targetCopy.has(value)) {\n handleValue(value, scope_.handledSet_, scope_);\n }\n } else {\n if (get(targetCopy, key, target.type_) === value) {\n if (scope_.drafts_.length > 1 && (target.assigned_.get(key) ?? false) === true && target.copy_) {\n handleValue(\n get(target.copy_, key, target.type_),\n scope_.handledSet_,\n scope_\n );\n }\n }\n }\n });\n }\n}\nfunction handleValue(target, handledSet, rootScope) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return target;\n }\n if (isDraft(target) || handledSet.has(target) || !isDraftable(target) || isFrozen(target)) {\n return target;\n }\n handledSet.add(target);\n each(target, (key, value) => {\n if (isDraft(value)) {\n const state = value[DRAFT_STATE];\n if (isSameScope(state, rootScope)) {\n const updatedValue = getFinalValue(state);\n set(target, key, updatedValue, target.type_);\n markStateFinalized(state);\n }\n } else if (isDraftable(value)) {\n handleValue(value, handledSet, rootScope);\n }\n });\n return target;\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const baseIsArray = isArray(base);\n const state = {\n type_: baseIsArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n // actually instantiated in `prepareCopy()`\n assigned_: void 0,\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false,\n // `callbacks` actually gets assigned in `createProxy`\n callbacks_: void 0\n };\n let target = state;\n let traps = objectTraps;\n if (baseIsArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return [proxy, state];\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n let arrayPlugin = state.scope_.arrayMethodsPlugin_;\n const isArrayWithStringProp = state.type_ === 1 /* Array */ && typeof prop === \"string\";\n if (isArrayWithStringProp) {\n if (arrayPlugin?.isArrayOperationMethod(prop)) {\n return arrayPlugin.createMethodInterceptor(state, prop);\n }\n }\n const source = latest(state);\n if (!has(source, prop, state.type_)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (isArrayWithStringProp && state.operationMethod && arrayPlugin?.isMutatingArrayMethod(\n state.operationMethod\n ) && isArrayIndex(prop)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n const childKey = state.type_ === 1 /* Array */ ? +prop : prop;\n const childDraft = createProxy(state.scope_, value, state, childKey);\n return state.copy_[childKey] = childDraft;\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_.set(prop, false);\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop, state.type_)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_.set(prop, true);\n handleCrossReference(state, prop, value);\n return true;\n },\n deleteProperty(state, prop) {\n prepareCopy(state);\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_.set(prop, false);\n markChanged(state);\n } else {\n state.assigned_.delete(prop);\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n [WRITABLE]: true,\n [CONFIGURABLE]: state.type_ !== 1 /* Array */ || prop !== \"length\",\n [ENUMERABLE]: desc[ENUMERABLE],\n [VALUE]: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\nfor (let key in objectTraps) {\n let fn = objectTraps[key];\n arrayTraps[key] = function() {\n const args = arguments;\n args[0] = args[0][0];\n return fn.apply(this, args);\n };\n}\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? VALUE in desc ? desc[VALUE] : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n this.useStrictIteration_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (isFunction(base) && !isFunction(recipe)) {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (!isFunction(recipe))\n die(6);\n if (patchListener !== void 0 && !isFunction(patchListener))\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(scope, base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || !isObjectish(base)) {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(PluginPatches).generateReplacementPatches_(base, result, {\n patches_: p,\n inversePatches_: ip\n });\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (isFunction(base)) {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (isBoolean(config?.autoFreeze))\n this.setAutoFreeze(config.autoFreeze);\n if (isBoolean(config?.useStrictShallowCopy))\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n if (isBoolean(config?.useStrictIteration))\n this.setUseStrictIteration(config.useStrictIteration);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(scope, base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n /**\n * Pass false to use faster iteration that skips non-enumerable properties\n * but still handles symbols for compatibility.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\n setUseStrictIteration(value) {\n this.useStrictIteration_ = value;\n }\n shouldUseStrictIteration() {\n return this.useStrictIteration_;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(PluginPatches).applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(rootScope, value, parent, key) {\n const [draft, state] = isMap(value) ? getPlugin(PluginMapSet).proxyMap_(value, parent) : isSet(value) ? getPlugin(PluginMapSet).proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent?.scope_ ?? getCurrentScope();\n scope.drafts_.push(draft);\n state.callbacks_ = parent?.callbacks_ ?? [];\n state.key_ = key;\n if (parent && key !== void 0) {\n registerChildFinalizationCallback(parent, state, key);\n } else {\n state.callbacks_.push(function rootDraftCleanup(rootScope2) {\n rootScope2.mapSetPlugin_?.fixSetContents(state);\n const { patchPlugin_ } = rootScope2;\n if (state.modified_ && patchPlugin_) {\n patchPlugin_.generatePatches_(state, [], rootScope2);\n }\n });\n }\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n let strict = true;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n strict = state.scope_.immer_.shouldUseStrictIteration();\n } else {\n copy = shallowCopy(value, true);\n }\n each(\n copy,\n (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n },\n strict\n );\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n function getPath(state, path = []) {\n if (state.key_ !== void 0) {\n const parentCopy = state.parent_.copy_ ?? state.parent_.base_;\n const proxyDraft = getProxyDraft(get(parentCopy, state.key_));\n const valueAtKey = get(parentCopy, state.key_);\n if (valueAtKey === void 0) {\n return null;\n }\n if (valueAtKey !== state.draft_ && valueAtKey !== state.base_ && valueAtKey !== state.copy_) {\n return null;\n }\n if (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n return null;\n }\n const isSet2 = state.parent_.type_ === 3 /* Set */;\n let key;\n if (isSet2) {\n const setParent = state.parent_;\n key = Array.from(setParent.drafts_.keys()).indexOf(state.key_);\n } else {\n key = state.key_;\n }\n if (!(isSet2 && parentCopy.size > key || has(parentCopy, key))) {\n return null;\n }\n path.push(key);\n }\n if (state.parent_) {\n return getPath(state.parent_, path);\n }\n path.reverse();\n try {\n resolvePath(state.copy_, path);\n } catch (e) {\n return null;\n }\n return path;\n }\n function resolvePath(base, path) {\n let current2 = base;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n current2 = get(current2, key);\n if (!isObjectish(current2) || current2 === null) {\n throw new Error(`Cannot resolve path at '${path.join(\"/\")}'`);\n }\n }\n return current2;\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, scope) {\n if (state.scope_.processedForPatches_.has(state)) {\n return;\n }\n state.scope_.processedForPatches_.add(state);\n const { patches_, inversePatches_ } = scope;\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n case 1 /* Array */:\n return generateArrayPatches(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n const allReassigned = state.allIndicesReassigned_ === true;\n for (let i = 0; i < base_.length; i++) {\n const copiedItem = copy_[i];\n const baseItem = base_[i];\n const isAssigned = allReassigned || assigned_?.get(i.toString());\n if (isAssigned && copiedItem !== baseItem) {\n const childState = copiedItem?.[DRAFT_STATE];\n if (childState && childState.modified_) {\n continue;\n }\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copiedItem)\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(baseItem)\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_, type_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key, type_);\n const value = get(copy_, key, type_);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(\n op === REMOVE ? { op, path } : { op, path, value: clonePatchValueIfNeeded(value) }\n );\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, scope) {\n const { patches_, inversePatches_ } = scope;\n patches_.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches_.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === CONSTRUCTOR))\n die(errorOffset + 3);\n if (isFunction(base) && p === PROTOTYPE)\n die(errorOffset + 3);\n base = get(base, p);\n if (!isObjectish(base))\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(PluginPatches, {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_,\n getPath\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false,\n callbacks_: []\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n handleCrossReference(state, key, value);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(state.scope_, value, state, key);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n const map = new DraftMap(target, parent);\n return [map, map[DRAFT_STATE]];\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false,\n assigned_: void 0,\n callbacks_: []\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n handleCrossReference(state, value, value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n const set2 = new DraftSet(target, parent);\n return [set2, set2[DRAFT_STATE]];\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(state.scope_, value, state, value);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n function fixSetContents(target) {\n if (target.type_ === 3 /* Set */ && target.copy_) {\n const copy = new Set(target.copy_);\n target.copy_.clear();\n copy.forEach((value) => {\n target.copy_.add(getValue(value));\n });\n }\n }\n loadPlugin(PluginMapSet, { proxyMap_, proxySet_, fixSetContents });\n}\n\n// src/plugins/arrayMethods.ts\nfunction enableArrayMethods() {\n const SHIFTING_METHODS = /* @__PURE__ */ new Set([\"shift\", \"unshift\"]);\n const QUEUE_METHODS = /* @__PURE__ */ new Set([\"push\", \"pop\"]);\n const RESULT_RETURNING_METHODS = /* @__PURE__ */ new Set([\n ...QUEUE_METHODS,\n ...SHIFTING_METHODS\n ]);\n const REORDERING_METHODS = /* @__PURE__ */ new Set([\"reverse\", \"sort\"]);\n const MUTATING_METHODS = /* @__PURE__ */ new Set([\n ...RESULT_RETURNING_METHODS,\n ...REORDERING_METHODS,\n \"splice\"\n ]);\n const FIND_METHODS = /* @__PURE__ */ new Set([\"find\", \"findLast\"]);\n const NON_MUTATING_METHODS = /* @__PURE__ */ new Set([\n \"filter\",\n \"slice\",\n \"concat\",\n \"flat\",\n ...FIND_METHODS,\n \"findIndex\",\n \"findLastIndex\",\n \"some\",\n \"every\",\n \"indexOf\",\n \"lastIndexOf\",\n \"includes\",\n \"join\",\n \"toString\",\n \"toLocaleString\"\n ]);\n function isMutatingArrayMethod(method) {\n return MUTATING_METHODS.has(method);\n }\n function isNonMutatingArrayMethod(method) {\n return NON_MUTATING_METHODS.has(method);\n }\n function isArrayOperationMethod(method) {\n return isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method);\n }\n function enterOperation(state, method) {\n state.operationMethod = method;\n }\n function exitOperation(state) {\n state.operationMethod = void 0;\n }\n function executeArrayMethod(state, operation, markLength = true) {\n prepareCopy(state);\n const result = operation();\n markChanged(state);\n if (markLength)\n state.assigned_.set(\"length\", true);\n return result;\n }\n function markAllIndicesReassigned(state) {\n state.allIndicesReassigned_ = true;\n }\n function normalizeSliceIndex(index, length) {\n if (index < 0) {\n return Math.max(length + index, 0);\n }\n return Math.min(index, length);\n }\n function handleInsertedValues(state, startIndex, values) {\n for (let i = 0; i < values.length; i++) {\n const index = startIndex + i;\n state.assigned_.set(index, true);\n handleCrossReference(state, index, values[i]);\n }\n }\n function handleSimpleOperation(state, method, args) {\n return executeArrayMethod(state, () => {\n const lengthBefore = state.copy_.length;\n const result = state.copy_[method](...args);\n if (SHIFTING_METHODS.has(method)) {\n markAllIndicesReassigned(state);\n }\n if (method === \"push\" && args.length > 0) {\n handleInsertedValues(state, lengthBefore, args);\n } else if (method === \"unshift\" && args.length > 0) {\n handleInsertedValues(state, 0, args);\n }\n return RESULT_RETURNING_METHODS.has(method) ? result : state.draft_;\n });\n }\n function handleReorderingOperation(state, method, args) {\n return executeArrayMethod(\n state,\n () => {\n ;\n state.copy_[method](...args);\n markAllIndicesReassigned(state);\n return state.draft_;\n },\n false\n );\n }\n function createMethodInterceptor(state, originalMethod) {\n return function interceptedMethod(...args) {\n const method = originalMethod;\n enterOperation(state, method);\n try {\n if (isMutatingArrayMethod(method)) {\n if (RESULT_RETURNING_METHODS.has(method)) {\n return handleSimpleOperation(state, method, args);\n }\n if (REORDERING_METHODS.has(method)) {\n return handleReorderingOperation(state, method, args);\n }\n if (method === \"splice\") {\n const res = executeArrayMethod(\n state,\n () => state.copy_.splice(...args)\n );\n markAllIndicesReassigned(state);\n if (args.length > 2) {\n const startIndex = normalizeSliceIndex(\n args[0] ?? 0,\n state.copy_.length\n );\n handleInsertedValues(state, startIndex, args.slice(2));\n }\n return res;\n }\n } else {\n return handleNonMutatingOperation(state, method, args);\n }\n } finally {\n exitOperation(state);\n }\n };\n }\n function handleNonMutatingOperation(state, method, args) {\n const source = latest(state);\n if (method === \"filter\") {\n const predicate = args[0];\n const result = [];\n for (let i = 0; i < source.length; i++) {\n if (predicate(source[i], i, source)) {\n result.push(state.draft_[i]);\n }\n }\n return result;\n }\n if (FIND_METHODS.has(method)) {\n const predicate = args[0];\n const isForward = method === \"find\";\n const step = isForward ? 1 : -1;\n const start = isForward ? 0 : source.length - 1;\n for (let i = start; i >= 0 && i < source.length; i += step) {\n if (predicate(source[i], i, source)) {\n return state.draft_[i];\n }\n }\n return void 0;\n }\n if (method === \"slice\") {\n const rawStart = args[0] ?? 0;\n const rawEnd = args[1] ?? source.length;\n const start = normalizeSliceIndex(rawStart, source.length);\n const end = normalizeSliceIndex(rawEnd, source.length);\n const result = [];\n for (let i = start; i < end; i++) {\n result.push(state.draft_[i]);\n }\n return result;\n }\n return source[method](...args);\n }\n loadPlugin(PluginArrayMethods, {\n createMethodInterceptor,\n isArrayOperationMethod,\n isMutatingArrayMethod\n });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(immer);\nvar setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(immer);\nvar setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(immer);\nvar applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);\nvar createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);\nvar finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);\nvar castDraft = (value) => value;\nvar castImmutable = (value) => value;\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableArrayMethods,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictIteration,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","// Storage adapters for the state() module. Lifted from the v1\n// store/storage-manager.ts and tightened — same four backends\n// (memory / local / session / indexeddb), same Map/Set JSON tunnel,\n// gives the state() factory a uniform async interface to load + save.\n//\n// The microtask write-debouncer lives in state.ts (the consumer of\n// this module) — adapters here are plain load/save/clear.\n\nexport type StorageBackend = 'memory' | 'local' | 'session' | 'indexeddb'\n\nexport interface StorageAdapter<T> {\n\tload(): Promise<T | null>\n\tsave(value: T): Promise<void>\n\tclear(): Promise<void>\n\tclose?(): Promise<void>\n}\n\nexport class StateStorageError<T = unknown> extends Error {\n\treadonly cause?: T\n\treadonly context?: Record<string, unknown>\n\treadonly timestamp: Date\n\tconstructor(message: string, cause?: T, context?: Record<string, unknown>) {\n\t\tsuper(message)\n\t\tthis.name = 'StateStorageError'\n\t\tthis.cause = cause\n\t\tthis.context = context\n\t\tthis.timestamp = new Date()\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// JSON tunnel for Map/Set values stored in string-backed storage.\n// IDB stores native objects so doesn't need this — only used by local/session.\n\nconst MAP_TAG = '__schmancy_state_Map'\nconst SET_TAG = '__schmancy_state_Set'\n\ninterface TaggedMap {\n\t$kind: typeof MAP_TAG\n\tentries: Array<[unknown, unknown]>\n}\ninterface TaggedSet {\n\t$kind: typeof SET_TAG\n\tvalues: unknown[]\n}\n\nfunction replacer(_key: string, value: unknown): unknown {\n\tif (value instanceof Map) {\n\t\treturn { $kind: MAP_TAG, entries: Array.from(value.entries()) } satisfies TaggedMap\n\t}\n\tif (value instanceof Set) {\n\t\treturn { $kind: SET_TAG, values: Array.from(value.values()) } satisfies TaggedSet\n\t}\n\treturn value\n}\n\nfunction reviver(_key: string, value: unknown): unknown {\n\tif (value && typeof value === 'object' && '$kind' in value) {\n\t\tconst tagged = value as { $kind: unknown; entries?: unknown; values?: unknown }\n\t\tconst kind = tagged.$kind\n\t\tif (kind === MAP_TAG) {\n\t\t\tif (!Array.isArray(tagged.entries)) return value\n\t\t\tconst ok = tagged.entries.every(e => Array.isArray(e) && e.length === 2)\n\t\t\tif (!ok) return value\n\t\t\treturn new Map(tagged.entries as Iterable<readonly [unknown, unknown]>)\n\t\t}\n\t\tif (kind === SET_TAG) {\n\t\t\tif (!Array.isArray(tagged.values)) return value\n\t\t\treturn new Set(tagged.values)\n\t\t}\n\t}\n\treturn value\n}\n\n// ---------------------------------------------------------------------------\n\nclass MemoryAdapter<T> implements StorageAdapter<T> {\n\t#data: T | null = null\n\tasync load(): Promise<T | null> {\n\t\treturn this.#data\n\t}\n\tasync save(value: T): Promise<void> {\n\t\tthis.#data = value\n\t}\n\tasync clear(): Promise<void> {\n\t\tthis.#data = null\n\t}\n}\n\nclass WebStorageAdapter<T> implements StorageAdapter<T> {\n\tconstructor(\n\t\tprivate readonly storage: Storage,\n\t\tprivate readonly key: string,\n\t\tprivate readonly label: string,\n\t) {}\n\tasync load(): Promise<T | null> {\n\t\ttry {\n\t\t\tconst raw = this.storage.getItem(this.key)\n\t\t\treturn raw ? (JSON.parse(raw, reviver) as T) : null\n\t\t} catch (err) {\n\t\t\tconsole.error(`[state] ${this.label} load failed (${this.key}):`, err)\n\t\t\treturn null\n\t\t}\n\t}\n\tasync save(value: T): Promise<void> {\n\t\ttry {\n\t\t\tthis.storage.setItem(this.key, JSON.stringify(value, replacer))\n\t\t} catch (err) {\n\t\t\tthrow new StateStorageError(\n\t\t\t\t`[state] ${this.label} save failed (${this.key})`,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t}\n\tasync clear(): Promise<void> {\n\t\tthis.storage.removeItem(this.key)\n\t}\n}\n\nclass IndexedDBAdapter<T> implements StorageAdapter<T> {\n\tprivate static readonly DB_NAME = 'SchmancyState'\n\tprivate static readonly STORE_NAME = 'states'\n\tprivate static readonly DB_VERSION = 1\n\n\t#db: IDBDatabase | null = null\n\t#opening: Promise<IDBDatabase> | null = null\n\n\tconstructor(private readonly key: string) {}\n\n\tprivate openDB(): Promise<IDBDatabase> {\n\t\tif (this.#db) return Promise.resolve(this.#db)\n\t\tif (this.#opening) return this.#opening\n\t\tthis.#opening = new Promise<IDBDatabase>((resolve, reject) => {\n\t\t\tconst req = indexedDB.open(IndexedDBAdapter.DB_NAME, IndexedDBAdapter.DB_VERSION)\n\t\t\treq.onupgradeneeded = () => {\n\t\t\t\tconst db = req.result\n\t\t\t\tif (!db.objectStoreNames.contains(IndexedDBAdapter.STORE_NAME)) {\n\t\t\t\t\tdb.createObjectStore(IndexedDBAdapter.STORE_NAME)\n\t\t\t\t}\n\t\t\t}\n\t\t\treq.addEventListener('success', () => {\n\t\t\t\tthis.#db = req.result\n\t\t\t\tresolve(req.result)\n\t\t\t}, { once: true })\n\t\t\treq.addEventListener('error', () => reject(req.error), { once: true })\n\t\t})\n\t\treturn this.#opening\n\t}\n\n\tasync load(): Promise<T | null> {\n\t\ttry {\n\t\t\tconst db = await this.openDB()\n\t\t\treturn await new Promise<T | null>((resolve, reject) => {\n\t\t\t\tconst tx = db.transaction(IndexedDBAdapter.STORE_NAME, 'readonly')\n\t\t\t\tconst req = tx.objectStore(IndexedDBAdapter.STORE_NAME).get(this.key)\n\t\t\t\treq.addEventListener('success', () => resolve((req.result ?? null) as T | null), { once: true })\n\t\t\t\treq.addEventListener('error', () => reject(req.error), { once: true })\n\t\t\t})\n\t\t} catch (err) {\n\t\t\tconsole.error(`[state] IDB load failed (${this.key}):`, err)\n\t\t\treturn null\n\t\t}\n\t}\n\n\tasync save(value: T): Promise<void> {\n\t\tconst db = await this.openDB()\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\tconst tx = db.transaction(IndexedDBAdapter.STORE_NAME, 'readwrite')\n\t\t\tconst req = tx.objectStore(IndexedDBAdapter.STORE_NAME).put(value, this.key)\n\t\t\treq.addEventListener('success', () => resolve(), { once: true })\n\t\t\treq.addEventListener('error', () => reject(\n\t\t\t\tnew StateStorageError(`[state] IDB save failed (${this.key})`, req.error),\n\t\t\t), { once: true })\n\t\t})\n\t}\n\n\tasync clear(): Promise<void> {\n\t\tconst db = await this.openDB()\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\tconst tx = db.transaction(IndexedDBAdapter.STORE_NAME, 'readwrite')\n\t\t\tconst req = tx.objectStore(IndexedDBAdapter.STORE_NAME).delete(this.key)\n\t\t\treq.addEventListener('success', () => resolve(), { once: true })\n\t\t\treq.addEventListener('error', () => reject(req.error), { once: true })\n\t\t})\n\t}\n\n\tasync close(): Promise<void> {\n\t\tif (this.#db) {\n\t\t\tthis.#db.close()\n\t\t\tthis.#db = null\n\t\t}\n\t\tthis.#opening = null\n\t}\n}\n\nexport function createAdapter<T>(backend: StorageBackend, key: string): StorageAdapter<T> {\n\tswitch (backend) {\n\t\tcase 'local':\n\t\t\treturn new WebStorageAdapter<T>(localStorage, key, 'localStorage')\n\t\tcase 'session':\n\t\t\treturn new WebStorageAdapter<T>(sessionStorage, key, 'sessionStorage')\n\t\tcase 'indexeddb':\n\t\t\treturn new IndexedDBAdapter<T>(key)\n\t\tcase 'memory':\n\t\tdefault:\n\t\t\treturn new MemoryAdapter<T>()\n\t}\n}\n","// `<schmancy-context provides={[cart, …]}>` — declarative state isolation.\n//\n// Mounts one isolated copy of each provided state under the element. Reads\n// and writes from descendants resolve to the isolated copy via the\n// `@lit/context` request protocol; descendants outside any `<schmancy-context>`\n// continue to read/write the module-scoped global. The isolated copy is\n// initialised with a snapshot of `tmpl.value` at mount time so the subtree\n// starts from \"current global state, then diverges.\"\n//\n// Lifetime: each isolated copy lives exactly as long as this element is\n// connected. `disconnectedCallback` destroys all isolated copies; their\n// pending writes flush, their adapters close.\n\nimport { LitElement, html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { ContextProvider, createContext, type Context } from '@lit/context'\nimport { _publishEventHost, stateContextKey } from './active-host'\n\n// Curated set of DOM event types that descendants are likely to bind state-\n// mutating handlers to. The capture-phase listener publishes `this` as the\n// active event-host before the event reaches the target; descendants whose\n// inline handlers (or any code reached during the synchronous chain) call a\n// state mutator can resolve back to the isolated copy this context provides.\nconst EVENT_TYPES = [\n\t'click',\n\t'dblclick',\n\t'submit',\n\t'change',\n\t'input',\n\t'keydown',\n\t'keyup',\n\t'keypress',\n\t'pointerdown',\n\t'pointerup',\n\t'mousedown',\n\t'mouseup',\n\t'focus',\n\t'blur',\n\t'paste',\n\t'drop',\n] as const\n\n/** Duck-typed view of what the `state()` factory hands out, restricted to the\n * bits `<schmancy-context>` needs. Kept internal — consumers see the full\n * `State<>` type and never refer to this. */\nexport interface StateTemplate {\n\treadonly namespace: string\n\treadonly value: unknown\n\t/** Internal hook the factory adds to every state instance. Builds a fresh\n\t * per-context copy seeded with the current value, sharing nothing with the\n\t * global instance. The returned object exposes `destroy()` so the context\n\t * element can flush + close on disconnect. */\n\t_isolatedInstance(): { destroy(): void } & Record<string | symbol, unknown>\n}\n\nexport class SchmancyContext extends LitElement {\n\t/** States to isolate under this subtree. Pass the same instances you import\n\t * at module scope (e.g. `provides={[cart, menu]}`). Outside this element\n\t * they continue to behave as module-scoped globals; descendants of this\n\t * element see a per-element isolated copy. */\n\t@property({ attribute: false }) provides: readonly StateTemplate[] = []\n\n\t// Per-mount records. Keep both the provider (so we can release it on\n\t// disconnect) and the isolated instance (so we can destroy it).\n\tprivate _scoped: Array<{\n\t\tisolated: { destroy(): void }\n\t\tprovider: ContextProvider<Context<unknown, unknown>>\n\t}> = []\n\n\tprivate _publishEventTargetAsHost = (e: Event): void => {\n\t\t// Publish the deepest event target (across shadow boundaries) rather\n\t\t// than `this`. The downstream `ContextRequestEvent` will be dispatched\n\t\t// from this host and must bubble up through `<schmancy-context>` to\n\t\t// reach our `ContextProvider`. `@lit/context` skips self-registration\n\t\t// (`consumerHost === this.host` ⇒ no-op), so dispatching from\n\t\t// schmancy-context itself would silently fall back to the global.\n\t\tconst path = e.composedPath()\n\t\tfor (const node of path) {\n\t\t\tif (node instanceof HTMLElement) {\n\t\t\t\t_publishEventHost(node)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\toverride connectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfor (const tmpl of this.provides) {\n\t\t\tconst isolated = tmpl._isolatedInstance()\n\t\t\tconst ctx = createContext<unknown>(stateContextKey(tmpl.namespace))\n\t\t\t// ContextProvider auto-wires via the host's ReactiveControllerHost\n\t\t\t// interface (LitElement satisfies it). It listens for\n\t\t\t// `context-request` events and responds with `isolated` for any\n\t\t\t// requester whose `event.context === ctx`.\n\t\t\tconst provider = new ContextProvider(this, { context: ctx, initialValue: isolated })\n\t\t\tthis._scoped.push({ isolated, provider })\n\t\t}\n\t\tfor (const type of EVENT_TYPES) {\n\t\t\tthis.addEventListener(type, this._publishEventTargetAsHost, { capture: true })\n\t\t}\n\t}\n\n\toverride disconnectedCallback(): void {\n\t\tfor (const type of EVENT_TYPES) {\n\t\t\tthis.removeEventListener(type, this._publishEventTargetAsHost, { capture: true })\n\t\t}\n\t\tfor (const entry of this._scoped) {\n\t\t\tentry.isolated.destroy()\n\t\t}\n\t\tthis._scoped = []\n\t\tsuper.disconnectedCallback()\n\t}\n\n\toverride render() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\n// Imperative define so a second load (source + dist) is a no-op rather than\n// a throw — the registry is process-global; whichever class wins serves the\n// element identity for the page.\nif (!customElements.get('schmancy-context')) {\n\tcustomElements.define('schmancy-context', SchmancyContext)\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-context': SchmancyContext\n\t}\n}\n","// @mhmo91/schmancy/state — reactive state primitive.\n//\n// Module-scoped singletons keyed by namespace. Each state exposes:\n// - `value: T` current snapshot (defaultValue while loading)\n// - `signal: Signal.State<T>` raw TC39 signal (use with computed())\n// - `$: Observable<T>` RxJS surface (auto-emits on change, microtask-coalesced)\n// - `ready: Promise<void>` resolves once initial load attempt completes\n// - `loaded: boolean` runtime flag — `value` reflects stored data\n//\n// Three call shapes:\n// const cart = state<CartState>('hannah/cart').session({ items: [], total: 0 })\n// const cart = state('hannah/cart').session(initialCart) // typed-const\n// declare module '@mhmo91/schmancy/state' { // registry\n// interface SchmancyStateRegistry { 'hannah/cart': CartState }\n// }\n// const cart = state('hannah/cart').session({ items: [], total: 0 })\n\nimport { Signal } from '@lit-labs/signals'\n// `@lit/context` re-exports `ContextRequestEvent` as `ContextEvent` from\n// its public entry. Same class, just a shorter public name.\nimport { ContextEvent as ContextRequestEvent, createContext } from '@lit/context'\nimport { Observable } from 'rxjs'\nimport { produce, type Draft } from 'immer'\n\nimport { createAdapter, type StorageAdapter, type StorageBackend } from './persist'\nimport { resolveActiveHost, stateContextKey } from './active-host'\n// Side-effect import: registers the `<schmancy-context>` element so users\n// only need to import from `@mhmo91/schmancy/state` to get both the factory\n// and the scoping primitive.\nimport './schmancy-context'\n\nexport type { StorageBackend } from './persist'\nexport { Signal } from '@lit-labs/signals'\nexport { _activeHost } from './active-host'\nexport { SchmancyContext } from './schmancy-context'\n\n// ---------------------------------------------------------------------------\n// Public type surface\n// ---------------------------------------------------------------------------\n\nconst stateBrand: unique symbol = Symbol('schmancy.state')\nconst namespaceBrand: unique symbol = Symbol('schmancy.state.namespace')\n\n/**\n * Open registry — augment via `declare module '@mhmo91/schmancy/state'` to\n * bind a TypeScript type to a namespace string. Augmenting flips that\n * namespace to overload (A) of the factory: zero ceremony at the call\n * site, T comes from the registry.\n */\nexport interface SchmancyStateRegistry {}\n\nexport type RegisteredNamespace = keyof SchmancyStateRegistry & string\n\n/** Feature-prefix convention enforced at compile time. */\nexport type FeatureNamespace = `${string}/${string}`\n\nexport type AssertNovel<NS extends string> = NS extends RegisteredNamespace\n\t? never & { readonly __error: `Namespace \"${NS}\" already registered` }\n\t: NS\n\nexport type SyncStorage = Exclude<StorageBackend, 'indexeddb'>\nexport type AsyncStorage = Extract<StorageBackend, 'indexeddb'>\nexport type IsAsync<S extends StorageBackend> = S extends AsyncStorage ? true : false\n\n// Detect explicit null/undefined in T's union — works in BOTH strict and\n// non-strict tsconfigs. The relaxed `null extends T` form fires for every\n// T when strictNullChecks is off, which classifies every shape as\n// 'nullable'. Distributing `T extends null/undefined` is a structural\n// subtype check that doesn't depend on strict mode.\ntype _Has<T, U> = T extends U ? true : never\ntype _IsNullable<T> = [_Has<T, null> | _Has<T, undefined>] extends [never] ? false : true\n\n/**\n * Shape classifier — drives the variant write API per T. Order: structural\n * shapes first (Map / Set / Array), primitives, then nullable-union check,\n * then plain object.\n */\nexport type Kind<T> = [T] extends [Map<unknown, unknown>]\n\t? 'map'\n\t: [T] extends [Set<unknown>]\n\t\t? 'set'\n\t\t: [T] extends [readonly unknown[]]\n\t\t\t? 'array'\n\t\t\t: [T] extends [string | number | boolean | bigint | symbol]\n\t\t\t\t? 'primitive'\n\t\t\t\t: _IsNullable<T> extends true\n\t\t\t\t\t? 'nullable'\n\t\t\t\t\t: [T] extends [object]\n\t\t\t\t\t\t? 'object'\n\t\t\t\t\t\t: 'unknown'\n\nexport interface ObjectAPI<T> {\n\tset(patch: Partial<T>, merge?: boolean): void\n\treplace(next: T): void\n\tupdate(recipe: (draft: Draft<T>) => void): void\n\tdelete<K extends keyof T>(key: K): void\n}\n\nexport interface MapAPI<T> {\n\tset: T extends Map<infer K, infer V> ? (key: K, value: V) => void : never\n\treplace(next: T): void\n\tdelete: T extends Map<infer K, unknown> ? (key: K) => void : never\n\tclear(): void\n}\n\nexport interface SetAPI<T> {\n\tadd: T extends Set<infer U> ? (value: U) => void : never\n\tdelete: T extends Set<infer U> ? (value: U) => boolean : never\n\ttoggle: T extends Set<infer U> ? (value: U) => void : never\n\treplace(next: T): void\n\tclear(): void\n}\n\nexport interface ArrayAPI<T> {\n\tpush: T extends readonly (infer U)[] ? (...items: U[]) => void : never\n\treplace(next: T): void\n\tupdate(recipe: (draft: Draft<T>) => void): void\n\tclear(): void\n}\n\nexport interface ScalarAPI<T> {\n\tset(next: T): void\n\treplace(next: T): void\n}\n\nexport type WriteAPI<T> = Kind<T> extends 'map'\n\t? MapAPI<T>\n\t: Kind<T> extends 'set'\n\t\t? SetAPI<T>\n\t\t: Kind<T> extends 'array'\n\t\t\t? ArrayAPI<T>\n\t\t\t: Kind<T> extends 'object'\n\t\t\t\t? ObjectAPI<T>\n\t\t\t\t: ScalarAPI<T>\n\nexport interface BaseAPI<NS extends string, T, S extends StorageBackend> {\n\treadonly [stateBrand]: true\n\treadonly namespace: NS & { readonly [namespaceBrand]: NS }\n\treadonly storage: S\n\t/**\n\t * Current value. For sync backends (memory/local/session) the load is\n\t * synchronous, so the type narrows to `T`. For `idb` the load is genuinely\n\t * async — `value` is `T | undefined` until `ready` resolves. Read with\n\t * `state.value ?? state.defaultValue` if you don't care about the\n\t * pre-load distinction; await `state.ready` if you do.\n\t */\n\treadonly value: IsAsync<S> extends true ? T | undefined : T\n\treadonly defaultValue: T\n\treadonly ready: Promise<void>\n\treadonly loaded: boolean\n\treadonly signal: Signal.State<T>\n\treadonly $: Observable<T>\n\tdestroy(): void\n\t/** Internal: build a fresh per-`<schmancy-context>` copy seeded with the\n\t * current value. Exposed on the type so a state can be passed to\n\t * `<schmancy-context provides={[…]}>` without casts. Not for end-user\n\t * code — the leading underscore signals \"internal API\". */\n\t_isolatedInstance(): { destroy(): void } & Record<string | symbol, unknown>\n}\n\nexport interface SyncState<NS extends string, T, S extends SyncStorage>\n\textends BaseAPI<NS, T, S>,\n\t\tDisposable {\n\t[Symbol.dispose](): void\n}\n\nexport interface AsyncState<NS extends string, T>\n\textends BaseAPI<NS, T, 'indexeddb'>,\n\t\tDisposable,\n\t\tAsyncDisposable {\n\t[Symbol.dispose](): void\n\t[Symbol.asyncDispose](): Promise<void>\n}\n\nexport type State<NS extends string, T, S extends StorageBackend> = S extends AsyncStorage\n\t? AsyncState<NS, T> & WriteAPI<T>\n\t: SyncState<NS, T, S extends SyncStorage ? S : never> & WriteAPI<T>\n\nexport interface NamespaceHandlePinned<NS extends string, T> {\n\tmemory(initial: T): State<NS, T, 'memory'>\n\tlocal(initial: T): State<NS, T, 'local'>\n\tsession(initial: T): State<NS, T, 'session'>\n\tidb(initial: T): State<NS, T, 'indexeddb'>\n}\n\nexport interface NamespaceHandleInferred<NS extends string> {\n\tmemory<U>(initial: U): State<NS, U, 'memory'>\n\tlocal<U>(initial: U): State<NS, U, 'local'>\n\tsession<U>(initial: U): State<NS, U, 'session'>\n\tidb<U>(initial: U): State<NS, U, 'indexeddb'>\n}\n\n// ---------------------------------------------------------------------------\n// Runtime — variant detection + state instance construction\n// ---------------------------------------------------------------------------\n\ntype RuntimeKind = 'map' | 'set' | 'array' | 'object' | 'scalar'\n\nfunction detectKind(value: unknown): RuntimeKind {\n\tif (value instanceof Map) return 'map'\n\tif (value instanceof Set) return 'set'\n\tif (Array.isArray(value)) return 'array'\n\tif (value === null || value === undefined) return 'scalar'\n\tif (typeof value !== 'object') return 'scalar'\n\treturn 'object'\n}\n\n// Globalize the namespace-claim set so any number of schmancy module copies\n// share a single registry. Without this, source-state and dist-state would\n// each maintain their own `claimed` set and could both register the same\n// namespace, producing two singletons with the same name.\n//\n// Module Federation is the load-driver here: when web bundles its own copy\n// of schmancy/state and so does owl (the remote), both modules execute and\n// each tries to register every namespace its consumers declare. The global\n// claim Set is what dedupes that. The instance map below is what makes the\n// dedup TRANSPARENT — `state('user/state').memory(null)` returns the same\n// bound singleton the first caller got, so consumers don't need to know\n// who arrived first.\nconst CLAIMED_KEY = Symbol.for('schmancy.state.claimed')\nconst INSTANCES_KEY = Symbol.for('schmancy.state.instances')\nconst __claimedSlot = (globalThis as { [CLAIMED_KEY]?: Set<string> })\n__claimedSlot[CLAIMED_KEY] ??= new Set<string>()\nconst claimed = __claimedSlot[CLAIMED_KEY]!\nconst __instancesSlot = (globalThis as { [INSTANCES_KEY]?: Map<string, unknown> })\n__instancesSlot[INSTANCES_KEY] ??= new Map<string, unknown>()\nconst instances = __instancesSlot[INSTANCES_KEY]!\n\n// ---------------------------------------------------------------------------\n// Context resolution.\n//\n// Every read (`value`, `signal`, `$`) and write (`set`, `replace`, `update`,\n// `delete`, `push`, `add`, `toggle`, `clear`) on a state instance routes\n// through `resolveContextual`. It asks \"is this call happening inside a\n// `<schmancy-context provides={[...]}>` subtree?\" by dispatching a\n// `context-request` event from the active host (resolved via the layered\n// fallback in `active-host.ts`). If a provider responds, the call routes to\n// the per-context isolated instance; otherwise it falls through to the\n// module-scoped global. The decision is cached per-host-per-namespace in a\n// WeakMap so repeat reads stay O(1).\n// ---------------------------------------------------------------------------\n\n// Globalize the per-host resolver cache so that a write through one schmancy\n// copy and a read through another resolve to the same target object — the\n// cache keys are DOM elements (process-global), but the cache itself must\n// also be shared.\nconst CACHE_KEY = Symbol.for('schmancy.state.hostResolverCache')\nconst __cacheSlot = (globalThis as {\n\t[CACHE_KEY]?: WeakMap<HTMLElement, Map<string, unknown>>\n})\n__cacheSlot[CACHE_KEY] ??= new WeakMap<HTMLElement, Map<string, unknown>>()\nconst hostResolverCache = __cacheSlot[CACHE_KEY]!\n\nfunction resolveContextual(namespace: string, fallback: unknown): unknown {\n\tconst host = resolveActiveHost()\n\tif (host === undefined) return fallback\n\n\tconst cached = hostResolverCache.get(host)?.get(namespace)\n\tif (cached !== undefined) return cached\n\n\tlet resolved: unknown = undefined\n\tconst ctx = createContext<unknown>(stateContextKey(namespace))\n\thost.dispatchEvent(\n\t\tnew ContextRequestEvent(ctx, host, value => {\n\t\t\tresolved = value\n\t\t}),\n\t)\n\n\tconst result = resolved !== undefined ? resolved : fallback\n\tlet perHost = hostResolverCache.get(host)\n\tif (!perHost) {\n\t\tperHost = new Map<string, unknown>()\n\t\thostResolverCache.set(host, perHost)\n\t}\n\tperHost.set(namespace, result)\n\treturn result\n}\n\ninterface InternalState {\n\tsignal: Signal.State<unknown>\n\tstorage: StorageBackend\n\tadapter: StorageAdapter<unknown>\n\tpendingWrite: Promise<void> | null\n\tscheduledWrite: boolean\n\tdisposed: boolean\n}\n\nfunction scheduleWrite(internal: InternalState): void {\n\tif (internal.scheduledWrite || internal.disposed) return\n\tinternal.scheduledWrite = true\n\tqueueMicrotask(() => {\n\t\tinternal.scheduledWrite = false\n\t\tif (internal.disposed) return\n\t\tinternal.pendingWrite = internal.adapter.save(internal.signal.get()).catch(err => {\n\t\t\tconsole.error('[state] save failed:', err)\n\t\t})\n\t})\n}\n\nfunction signalToObservable<T>(signal: Signal.State<T>): Observable<T> {\n\treturn new Observable<T>(subscriber => {\n\t\tsubscriber.next(signal.get())\n\t\tlet scheduled = false\n\t\tconst watcher = new Signal.subtle.Watcher(() => {\n\t\t\tif (scheduled) return\n\t\t\tscheduled = true\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tscheduled = false\n\t\t\t\tif (subscriber.closed) return\n\t\t\t\tsubscriber.next(signal.get())\n\t\t\t\twatcher.watch(signal)\n\t\t\t})\n\t\t})\n\t\twatcher.watch(signal)\n\t\treturn () => watcher.unwatch(signal)\n\t})\n}\n\nfunction buildWriteApi(internal: InternalState, kind: RuntimeKind): Record<string, unknown> {\n\tconst commit = (next: unknown): void => {\n\t\tif (internal.disposed) return\n\t\tinternal.signal.set(next)\n\t\tscheduleWrite(internal)\n\t}\n\n\tconst common = {\n\t\treplace: (next: unknown) => commit(next),\n\t}\n\n\tswitch (kind) {\n\t\tcase 'object':\n\t\t\treturn {\n\t\t\t\t...common,\n\t\t\t\tset(patch: Record<string, unknown>, merge = true) {\n\t\t\t\t\tconst current = internal.signal.get() as Record<string, unknown>\n\t\t\t\t\tcommit(merge ? { ...current, ...patch } : patch)\n\t\t\t\t},\n\t\t\t\tupdate(recipe: (draft: unknown) => void) {\n\t\t\t\t\tcommit(produce(internal.signal.get(), recipe))\n\t\t\t\t},\n\t\t\t\tdelete(key: string) {\n\t\t\t\t\tconst current = internal.signal.get() as Record<string, unknown>\n\t\t\t\t\tconst next = { ...current }\n\t\t\t\t\tdelete next[key]\n\t\t\t\t\tcommit(next)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'map':\n\t\t\treturn {\n\t\t\t\t...common,\n\t\t\t\tset(key: unknown, value: unknown) {\n\t\t\t\t\tconst current = internal.signal.get() as Map<unknown, unknown>\n\t\t\t\t\tconst next = new Map(current)\n\t\t\t\t\tnext.set(key, value)\n\t\t\t\t\tcommit(next)\n\t\t\t\t},\n\t\t\t\tdelete(key: unknown) {\n\t\t\t\t\tconst current = internal.signal.get() as Map<unknown, unknown>\n\t\t\t\t\tconst next = new Map(current)\n\t\t\t\t\tnext.delete(key)\n\t\t\t\t\tcommit(next)\n\t\t\t\t},\n\t\t\t\tclear() {\n\t\t\t\t\tcommit(new Map())\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'set':\n\t\t\treturn {\n\t\t\t\t...common,\n\t\t\t\tadd(value: unknown) {\n\t\t\t\t\tconst current = internal.signal.get() as Set<unknown>\n\t\t\t\t\tif (current.has(value)) return\n\t\t\t\t\tconst next = new Set(current)\n\t\t\t\t\tnext.add(value)\n\t\t\t\t\tcommit(next)\n\t\t\t\t},\n\t\t\t\tdelete(value: unknown): boolean {\n\t\t\t\t\tconst current = internal.signal.get() as Set<unknown>\n\t\t\t\t\tif (!current.has(value)) return false\n\t\t\t\t\tconst next = new Set(current)\n\t\t\t\t\tnext.delete(value)\n\t\t\t\t\tcommit(next)\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t\ttoggle(value: unknown) {\n\t\t\t\t\tconst current = internal.signal.get() as Set<unknown>\n\t\t\t\t\tconst next = new Set(current)\n\t\t\t\t\tif (next.has(value)) {\n\t\t\t\t\t\tnext.delete(value)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnext.add(value)\n\t\t\t\t\t}\n\t\t\t\t\tcommit(next)\n\t\t\t\t},\n\t\t\t\tclear() {\n\t\t\t\t\tcommit(new Set())\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'array':\n\t\t\treturn {\n\t\t\t\t...common,\n\t\t\t\tpush(...items: unknown[]) {\n\t\t\t\t\tconst current = internal.signal.get() as unknown[]\n\t\t\t\t\tcommit([...current, ...items])\n\t\t\t\t},\n\t\t\t\tupdate(recipe: (draft: unknown) => void) {\n\t\t\t\t\tcommit(produce(internal.signal.get(), recipe))\n\t\t\t\t},\n\t\t\t\tclear() {\n\t\t\t\t\tcommit([])\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'scalar':\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\t...common,\n\t\t\t\tset(next: unknown) {\n\t\t\t\t\tcommit(next)\n\t\t\t\t},\n\t\t\t}\n\t}\n}\n\ninterface CreateInstanceArgs {\n\tnamespace: string\n\tinitial: unknown\n\tstorage: StorageBackend\n}\n\ninterface CreateInstanceOptions {\n\t/** When true, the returned instance is a per-`<schmancy-context>` copy:\n\t * it does NOT claim the namespace in `claimed`, it does NOT route reads\n\t * or writes through `resolveContextual` (so it can serve as the\n\t * resolution target without recursion), and it does NOT expose\n\t * `_isolatedInstance` (you only isolate the global). */\n\tisolated?: boolean\n}\n\nfunction reportLoadError(err: unknown): void {\n\tconsole.error('[state] load failed:', err)\n}\n\nfunction createInstance(args: CreateInstanceArgs, options: CreateInstanceOptions = {}): unknown {\n\tconst { namespace, initial, storage } = args\n\tconst isolated = options.isolated === true\n\tconst adapter = createAdapter<unknown>(storage, namespace)\n\tconst signal = new Signal.State<unknown>(initial)\n\tconst internal: InternalState = {\n\t\tsignal,\n\t\tstorage,\n\t\tadapter,\n\t\tpendingWrite: null,\n\t\tscheduledWrite: false,\n\t\tdisposed: false,\n\t}\n\n\tlet loaded = false\n\tconst applyLoaded = (stored: unknown): void => {\n\t\tif (internal.disposed) return\n\t\tif (stored !== null && stored !== undefined) {\n\t\t\tinternal.signal.set(stored)\n\t\t}\n\t}\n\tconst markLoaded = (): boolean => (loaded = true)\n\tconst ready = adapter\n\t\t.load()\n\t\t.then(applyLoaded, reportLoadError)\n\t\t.then(markLoaded)\n\t\t.then(() => undefined)\n\n\tconst observable = signalToObservable(signal)\n\tconst writeApi = buildWriteApi(internal, detectKind(initial))\n\n\tasync function flushAndClose(): Promise<void> {\n\t\t// Wait for any in-flight write, then any scheduled microtask write.\n\t\tif (internal.pendingWrite) await internal.pendingWrite\n\t\t// Drain a possibly-still-scheduled microtask:\n\t\tawait new Promise<void>(resolve => queueMicrotask(resolve))\n\t\tif (internal.pendingWrite) await internal.pendingWrite\n\t\tif (adapter.close) await adapter.close()\n\t}\n\n\tconst dispose = (): void => {\n\t\tif (internal.disposed) return\n\t\tinternal.disposed = true\n\t\t// Fire-and-forget close for sync backends; AsyncDisposable variant\n\t\t// has its own awaited path via Symbol.asyncDispose.\n\t\tvoid flushAndClose()\n\t\tclaimed.delete(namespace)\n\t}\n\n\tconst asyncDispose = async (): Promise<void> => {\n\t\tif (internal.disposed) return\n\t\tinternal.disposed = true\n\t\tawait flushAndClose()\n\t\tclaimed.delete(namespace)\n\t}\n\n\t// Build the instance with explicit property definitions so the `value`\n\t// and `loaded` getters stay live. (A `{ ...base }` spread invokes the\n\t// getter once at spread time and freezes the result — that snapshot\n\t// then disagrees with the signal on every subsequent write.)\n\tconst instance: Record<string | symbol, unknown> = Object.assign(Object.create(null) as object, {\n\t\t[stateBrand]: true,\n\t\tnamespace,\n\t\tstorage,\n\t\tdefaultValue: initial,\n\t\tready,\n\t\tdestroy: dispose,\n\t\t[Symbol.dispose]: dispose,\n\t})\n\n\tObject.defineProperty(instance, 'loaded', {\n\t\tget: () => loaded,\n\t\tenumerable: true,\n\t})\n\n\tif (storage === 'indexeddb') {\n\t\tinstance[Symbol.asyncDispose] = asyncDispose\n\t}\n\n\tif (isolated) {\n\t\t// Per-context copy. Reads and writes go straight to its own signal —\n\t\t// no resolveContextual call, so it serves as a recursion-free\n\t\t// resolution target.\n\t\tObject.defineProperty(instance, 'value', {\n\t\t\tget: () => signal.get(),\n\t\t\tenumerable: true,\n\t\t})\n\t\tinstance.signal = signal\n\t\tinstance.$ = observable\n\t\tObject.assign(instance, writeApi)\n\t\treturn instance\n\t}\n\n\t// Global instance. Every public read/write resolves through the active\n\t// host: inside a `<schmancy-context provides={[…]}>` it routes to the\n\t// per-context copy; outside, it falls back to this same instance and\n\t// reads/writes its own signal directly. The cache in `resolveContextual`\n\t// keeps the lookup O(1) past the first hit.\n\tconst isolatedTarget: Record<string | symbol, unknown> = Object.assign(Object.create(null), {\n\t\tsignal,\n\t\t$: observable,\n\t\t...writeApi,\n\t})\n\tObject.defineProperty(isolatedTarget, 'value', {\n\t\tget: () => signal.get(),\n\t\tenumerable: true,\n\t})\n\n\tObject.defineProperty(instance, 'value', {\n\t\tget: () => (resolveContextual(namespace, isolatedTarget) as { value: unknown }).value,\n\t\tenumerable: true,\n\t})\n\tObject.defineProperty(instance, 'signal', {\n\t\tget: () =>\n\t\t\t(resolveContextual(namespace, isolatedTarget) as { signal: Signal.State<unknown> }).signal,\n\t\tenumerable: true,\n\t})\n\tObject.defineProperty(instance, '$', {\n\t\tget: () =>\n\t\t\t(resolveContextual(namespace, isolatedTarget) as { $: Observable<unknown> }).$,\n\t\tenumerable: true,\n\t})\n\tfor (const key of Object.keys(writeApi)) {\n\t\tinstance[key] = (...args: unknown[]): unknown => {\n\t\t\tconst target = resolveContextual(namespace, isolatedTarget) as Record<\n\t\t\t\tstring,\n\t\t\t\t(...a: unknown[]) => unknown\n\t\t\t>\n\t\t\treturn target[key](...args)\n\t\t}\n\t}\n\n\t// Hook used by `<schmancy-context>` to mint a per-context copy seeded\n\t// with the current value. Internal: not part of the public State<> type.\n\tinstance._isolatedInstance = (): unknown =>\n\t\tcreateInstance(\n\t\t\t{ namespace, initial: signal.get(), storage: 'memory' },\n\t\t\t{ isolated: true },\n\t\t)\n\n\treturn instance\n}\n\nfunction makeHandle(namespace: string): Record<string, (initial: unknown) => unknown> {\n\t// Idempotent on `(namespace, storage)`. The first caller for a given\n\t// namespace+storage combination creates the instance; later callers get\n\t// the same instance back regardless of `initial`. (Initial value is\n\t// scoped to construction by definition.) This makes the factory safe\n\t// under module-duplication conditions — Module Federation's loadShare\n\t// proxies, multiple build-time copies of schmancy, dev/HMR re-evaluation.\n\tclaimed.add(namespace)\n\tconst ensure = (storage: 'memory' | 'local' | 'session' | 'indexeddb') =>\n\t\t(initial: unknown) => {\n\t\t\tconst key = `${namespace}@${storage}`\n\t\t\tconst cached = instances.get(key)\n\t\t\tif (cached !== undefined) return cached\n\t\t\tconst instance = createInstance({ namespace, initial, storage })\n\t\t\tinstances.set(key, instance)\n\t\t\treturn instance\n\t\t}\n\treturn {\n\t\tmemory: ensure('memory'),\n\t\tlocal: ensure('local'),\n\t\tsession: ensure('session'),\n\t\tidb: ensure('indexeddb'),\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Three-overload factory.\n// (A) registered → pinned T from registry\n// (C) unregistered, no type arg → inferred T (typed-const flow)\n// (B) unregistered, explicit type arg → pinned T\n// Order matters for resolution; do not reorder.\n// ---------------------------------------------------------------------------\n\nexport function state<NS extends RegisteredNamespace>(\n\tnamespace: NS,\n): NamespaceHandlePinned<NS, SchmancyStateRegistry[NS]>\n\nexport function state<const NS extends FeatureNamespace>(\n\tnamespace: NS extends RegisteredNamespace ? never : AssertNovel<NS>,\n): NamespaceHandleInferred<NS>\n\nexport function state<T, const NS extends FeatureNamespace = FeatureNamespace>(\n\tnamespace: NS extends RegisteredNamespace ? never : AssertNovel<NS>,\n): NamespaceHandlePinned<NS, T>\n\nexport function state(namespace: unknown): unknown {\n\tif (typeof namespace !== 'string') {\n\t\tthrow new TypeError('[state] namespace must be a string')\n\t}\n\tif (!namespace.includes('/')) {\n\t\tthrow new TypeError(\n\t\t\t`[state] namespace \"${namespace}\" must follow the \"feature/name\" convention.`,\n\t\t)\n\t}\n\treturn makeHandle(namespace)\n}\n\n// ---------------------------------------------------------------------------\n// Derived state — re-export the upstream computed primitive directly.\n// Reading state.value (which calls signal.get() under the hood) inside a\n// computed callback auto-tracks the dependency.\n// ---------------------------------------------------------------------------\n\nexport { computed } from '@lit-labs/signals'\n\n// ---------------------------------------------------------------------------\n// effect(fn) — run a side-effect function whenever any signal it reads\n// changes. Returns a Disposable so the effect can be cleaned up.\n//\n// const stop = effect(() => {\n// document.title = `${cart.value.items.length} items`\n// })\n// ...later...\n// stop[Symbol.dispose]()\n//\n// The effect runs once eagerly to register dependencies, then re-runs\n// (microtask-coalesced) whenever any read signal changes.\n// ---------------------------------------------------------------------------\n\nexport interface EffectHandle extends Disposable {\n\t[Symbol.dispose](): void\n}\n\nexport function effect(fn: () => void): EffectHandle {\n\tlet scheduled = false\n\tlet disposed = false\n\tlet watcher: Signal.subtle.Watcher | undefined\n\n\tconst run = (): void => {\n\t\tif (disposed) return\n\t\t// Wrap fn in a Computed so signal reads are tracked. The computed's\n\t\t// value is unused — we only care about the dependency graph it builds.\n\t\tconst computation = new Signal.Computed(() => {\n\t\t\tfn()\n\t\t\treturn undefined\n\t\t})\n\t\t// Reading the computed registers our Watcher as a sink for every\n\t\t// signal the fn touches.\n\t\twatcher?.unwatch()\n\t\twatcher = new Signal.subtle.Watcher(() => {\n\t\t\tif (scheduled || disposed) return\n\t\t\tscheduled = true\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tscheduled = false\n\t\t\t\tif (disposed) return\n\t\t\t\trun()\n\t\t\t})\n\t\t})\n\t\twatcher.watch(computation)\n\t\tcomputation.get()\n\t}\n\n\trun()\n\n\treturn {\n\t\t[Symbol.dispose](): void {\n\t\t\tif (disposed) return\n\t\t\tdisposed = true\n\t\t\twatcher?.unwatch()\n\t\t\twatcher = undefined\n\t\t},\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Observable → state bridge.\n// ---------------------------------------------------------------------------\n\nexport interface FromObservableOptions {\n\tstorage?: StorageBackend\n}\n\n/**\n * Lift an Observable into a state(). The state is initialized with\n * `initial`, then updates on every Observable emission. Cleanup on\n * dispose unsubscribes the source.\n */\nexport function stateFromObservable<T, NS extends FeatureNamespace>(\n\tobservable: Observable<T>,\n\tnamespace: NS,\n\tinitial: T,\n\toptions: FromObservableOptions = {},\n): State<NS, T, 'memory'> {\n\tconst storage = options.storage ?? 'memory'\n\tconst handle = makeHandle(namespace)\n\tconst inst = handle[storage](initial) as State<NS, T, 'memory'> & {\n\t\treadonly signal: Signal.State<T>\n\t\t[Symbol.dispose](): void\n\t}\n\tconst subscription = observable.subscribe({\n\t\tnext: value => inst.signal.set(value),\n\t\terror: err => console.error(`[state] from(${namespace}) source errored:`, err),\n\t})\n\tconst originalDispose = inst[Symbol.dispose].bind(inst)\n\t;(inst as { [Symbol.dispose]: () => void })[Symbol.dispose] = () => {\n\t\tsubscription.unsubscribe()\n\t\toriginalDispose()\n\t}\n\treturn inst\n}\n\n// ---------------------------------------------------------------------------\n// bindState(host, source) — Lit ReactiveController helper for one-way binding.\n//\n// Subscribes in hostConnected, unsubscribes in hostDisconnected, calls\n// host.requestUpdate() on every emission. Returned object exposes the same\n// `value` and `$` surface as the source so render code reads naturally:\n//\n// class CartView extends LitElement {\n// cart = bindState(this, cartState)\n// render() { return html`Items: ${this.cart.value.items.length}` }\n// }\n//\n// Decorator (`@observe`) form is deliberately deferred — schmancy's\n// tsconfig still uses experimentalDecorators=true and flipping to\n// TC39 native produces ~9k errors across the codebase. The helper\n// gives the same lifecycle guarantees with zero tsconfig churn.\n// ---------------------------------------------------------------------------\n\nimport type { ReactiveController, ReactiveControllerHost } from 'lit'\n\n/** Permissive duck-typed contract — v1 IStore<T>, v2 State<>, and\n * computed() outputs (`Signal.Computed<T>` wrapped in a thin shim) all\n * satisfy it once you supply a `value` getter and an Observable `$`. */\nexport interface ObservableState<T> {\n\treadonly value: T\n\treadonly $: Observable<T>\n}\n\nexport interface BoundState<T> {\n\treadonly value: T\n\treadonly $: Observable<T>\n}\n\nclass BindStateController<T> implements ReactiveController {\n\tprivate subscription: import('rxjs').Subscription | undefined\n\tprivate latest: T\n\tconstructor(\n\t\tprivate readonly host: ReactiveControllerHost,\n\t\tprivate readonly source: ObservableState<T>,\n\t) {\n\t\tthis.latest = source.value\n\t\thost.addController(this)\n\t}\n\tget value(): T {\n\t\treturn this.latest\n\t}\n\tget $(): Observable<T> {\n\t\treturn this.source.$\n\t}\n\thostConnected(): void {\n\t\tthis.subscription = this.source.$.subscribe(v => {\n\t\t\tthis.latest = v\n\t\t\tthis.host.requestUpdate()\n\t\t})\n\t}\n\thostDisconnected(): void {\n\t\tthis.subscription?.unsubscribe()\n\t\tthis.subscription = undefined\n\t}\n}\n\nexport function bindState<T>(\n\thost: ReactiveControllerHost,\n\tsource: ObservableState<T>,\n): BoundState<T> {\n\treturn new BindStateController(host, source)\n}\n\n// ---------------------------------------------------------------------------\n// @observe(source) — legacy property decorator for one-way binding.\n//\n// Usage:\n// class CartView extends LitElement {\n// @observe(cart) cart!: CartState\n// render() { return html`Items: ${this.cart.items.length}` }\n// }\n//\n// Reads return the latest value emitted by the source (falling back to\n// `source.value` before the first emission). Caller writes are dropped\n// with a dev-mode warning — the source is the single source of truth.\n//\n// Per-instance subscription is wired via Lit's static `addInitializer`,\n// which runs at instance construction and gives the decorator access to\n// the host. A `ReactiveController` handles the lifecycle: subscribe in\n// `hostConnected`, unsubscribe in `hostDisconnected`. Multiple `@observe`\n// decorators on the same class register independent controllers — no\n// init-order bookkeeping, no prototype-walking.\n//\n// Legacy decorator (matches the rest of schmancy's @property / @state /\n// @query family). Works under the existing `experimentalDecorators: true`\n// tsconfig — no migration required.\n// ---------------------------------------------------------------------------\n\ninterface ObserveHost extends ReactiveControllerHost {\n\taddController(controller: ReactiveController): void\n}\n\ninterface LitElementCtor {\n\taddInitializer(initializer: (host: ObserveHost) => void): void\n}\n\nexport function observe<T>(source: ObservableState<T>) {\n\treturn function (proto: object, propertyKey: string | symbol): void {\n\t\tconst storageKey = Symbol(`__observe_${String(propertyKey)}`)\n\n\t\t// Per-prototype accessor — reads return the latest cached value,\n\t\t// falling back to `source.value` before the first emission lands.\n\t\t// Writes from callers are dropped with a dev warning.\n\t\tObject.defineProperty(proto, propertyKey, {\n\t\t\tget(this: Record<symbol, T>): T {\n\t\t\t\tconst cached = this[storageKey]\n\t\t\t\treturn cached !== undefined ? cached : source.value\n\t\t\t},\n\t\t\tset(_value: T): void {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`@observe: field \"${String(propertyKey)}\" is read-only — write ignored. ` +\n\t\t\t\t\t\t`Update the source state directly.`,\n\t\t\t\t)\n\t\t\t},\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t})\n\n\t\t// Per-instance subscription via Lit's addInitializer hook.\n\t\tconst ctor = proto.constructor as unknown as LitElementCtor\n\t\tif (typeof ctor.addInitializer !== 'function') {\n\t\t\tthrow new TypeError(\n\t\t\t\t`@observe requires a Lit ReactiveElement subclass — ${proto.constructor.name} ` +\n\t\t\t\t\t`does not provide static addInitializer.`,\n\t\t\t)\n\t\t}\n\n\t\tctor.addInitializer((host: ObserveHost) => {\n\t\t\tlet subscription: import('rxjs').Subscription | undefined\n\t\t\thost.addController({\n\t\t\t\thostConnected(): void {\n\t\t\t\t\tsubscription = source.$.subscribe(value => {\n\t\t\t\t\t\t;(host as unknown as Record<symbol, T>)[storageKey] = value\n\t\t\t\t\t\thost.requestUpdate()\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\thostDisconnected(): void {\n\t\t\t\t\tsubscription?.unsubscribe()\n\t\t\t\t\tsubscription = undefined\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t}\n}\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import{nothing as t}from\"../lit-html.js\";import{AsyncDirective as i}from\"../async-directive.js\";import{directive as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=()=>new h;class h{}const o=new WeakMap,n=s(class extends i{render(i){return t}update(i,[s]){const e=s!==this.G;return e&&void 0!==this.G&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.G=s,this.ht=i.options?.host,this.rt(this.ct=i.element)),t}rt(t){if(this.isConnected||(t=void 0),\"function\"==typeof this.G){const i=this.ht??globalThis;let s=o.get(i);void 0===s&&(s=new WeakMap,o.set(i,s)),void 0!==s.get(this.G)&&this.G.call(this.ht,void 0),s.set(this.G,t),void 0!==t&&this.G.call(this.ht,t)}else this.G.value=t}get lt(){return\"function\"==typeof this.G?o.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});export{e as createRef,n as ref};\n//# sourceMappingURL=ref.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n,r,t){return n?r(n):t?.(n)}export{n as when};\n//# sourceMappingURL=when.js.map\n","/**\n * Blackbird Animation System\n *\n * A comprehensive animation system using spring physics for natural,\n * organic motion. Named after the smooth, arcing flight patterns of birds.\n *\n * Features:\n * - Spring physics via CSS linear() (88% browser support)\n * - Cubic-bezier fallbacks for older browsers\n * - Typed interfaces for Web Animations API\n * - CSS custom properties for Tailwind integration\n * - Multiple presets: smooth, snappy, bouncy\n *\n * @see https://www.joshwcomeau.com/animation/linear-timing-function/\n * @see https://developer.chrome.com/docs/css-ui/css-linear-easing-function\n */\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/** Spring configuration parameters */\nexport interface SpringConfig {\n\t/** Spring stiffness (higher = faster) */\n\tstiffness: number\n\t/** Damping ratio (higher = less bounce) */\n\tdamping: number\n\t/** Mass (higher = slower) */\n\tmass: number\n}\n\n/** Animation preset with all timing values */\nexport interface AnimationPreset {\n\t/** Human-readable name */\n\tname: string\n\t/** Duration in milliseconds */\n\tduration: number\n\t/** CSS linear() easing function (modern browsers) */\n\teasing: string\n\t/** Cubic-bezier fallback (all browsers) */\n\teasingFallback: string\n\t/** Spring configuration used to generate this preset */\n\tspring: SpringConfig\n}\n\n/** Keyframe options for Web Animations API */\nexport interface BlackbirdKeyframes {\n\t/** Starting state */\n\tfrom: Keyframe\n\t/** Ending state */\n\tto: Keyframe\n}\n\n/** Complete animation configuration */\nexport interface BlackbirdAnimation {\n\tkeyframes: Keyframe[]\n\toptions: KeyframeAnimationOptions\n}\n\n// =============================================================================\n// SPRING PRESETS\n// =============================================================================\n\n/**\n * Smooth preset - Apple-style, subtle overshoot\n * Best for: Details, accordions, content reveals\n */\nexport const SPRING_SMOOTH: AnimationPreset = {\n\tname: 'smooth',\n\tduration: 500,\n\teasing: `linear(\n\t\t0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%,\n\t\t0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50%, 1.015 54.8%,\n\t\t1.017 63.3%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.34, 1.56, 0.64, 1)',\n\tspring: { stiffness: 100, damping: 15, mass: 1 },\n}\n\n/**\n * Snappy preset - Quick with minimal overshoot\n * Best for: Buttons, toggles, quick interactions\n */\nexport const SPRING_SNAPPY: AnimationPreset = {\n\tname: 'snappy',\n\tduration: 300,\n\teasing: `linear(\n\t\t0, 0.009, 0.035 2.1%, 0.141 4.4%, 0.723 15.5%, 0.938 23.8%,\n\t\t1.017 30.2%, 1.041 37.3%, 1.026 52.4%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.22, 1.25, 0.36, 1)',\n\tspring: { stiffness: 200, damping: 20, mass: 1 },\n}\n\n/**\n * Bouncy preset - Playful with noticeable overshoot\n * Best for: Notifications, celebrations, attention-grabbing\n */\nexport const SPRING_BOUNCY: AnimationPreset = {\n\tname: 'bouncy',\n\tduration: 600,\n\teasing: `linear(\n\t\t0, 0.004, 0.016 2.3%, 0.065 4.8%, 0.258 9.9%, 0.489 15%,\n\t\t0.683 20.1%, 0.847 25.4%, 0.963 30.6%, 1.039 36%, 1.086 41.8%,\n\t\t1.107 48.1%, 1.101 55.1%, 1.064 73.1%, 1.026 85.2%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.34, 1.8, 0.64, 1)',\n\tspring: { stiffness: 100, damping: 10, mass: 1 },\n}\n\n/**\n * Gentle preset - Slow, smooth, no overshoot\n * Best for: Page transitions, modal backgrounds, subtle reveals\n */\nexport const SPRING_GENTLE: AnimationPreset = {\n\tname: 'gentle',\n\tduration: 700,\n\teasing: `linear(\n\t\t0, 0.002, 0.009 2.6%, 0.036 5.3%, 0.153 11.3%, 0.352 18.5%,\n\t\t0.554 25.4%, 0.733 32.6%, 0.865 40.2%, 0.945 48.5%,\n\t\t0.984 58.2%, 0.997 70.5%, 1\n\t)`,\n\teasingFallback: 'cubic-bezier(0.4, 0, 0.2, 1)',\n\tspring: { stiffness: 80, damping: 25, mass: 1.2 },\n}\n\n// =============================================================================\n// LEGACY EXPORTS (backwards compatibility)\n// =============================================================================\n\n/** @deprecated Use SPRING_SMOOTH.easingFallback instead */\nexport const BLACKBIRD_EASING = SPRING_SMOOTH.easingFallback\n\n/** Standard easing for smooth transitions */\nexport const EASE_OUT = 'ease-out'\nexport const EASE_IN = 'ease-in'\n\n/** Standard durations */\nexport const DURATION_ENTER = SPRING_SNAPPY.duration\nexport const DURATION_EXIT = 150\nexport const DURATION_BACKDROP = 200\n\n// =============================================================================\n// CSS CUSTOM PROPERTIES\n// =============================================================================\n\n/**\n * CSS custom properties for use in stylesheets.\n * These can be injected into :root or a component's styles.\n *\n * @example\n * ```css\n * :root {\n * ${ANIMATION_CSS_VARS}\n * }\n *\n * .element {\n * transition: transform var(--blackbird-duration-smooth) var(--blackbird-easing-smooth);\n * }\n * ```\n */\nexport const ANIMATION_CSS_VARS = `\n\t/* Blackbird Animation System - Spring Physics */\n\n\t/* Smooth preset (Apple-style) */\n\t--blackbird-duration-smooth: ${SPRING_SMOOTH.duration}ms;\n\t--blackbird-easing-smooth: ${SPRING_SMOOTH.easingFallback};\n\t--blackbird-easing-smooth-spring: ${SPRING_SMOOTH.easing};\n\n\t/* Snappy preset (quick interactions) */\n\t--blackbird-duration-snappy: ${SPRING_SNAPPY.duration}ms;\n\t--blackbird-easing-snappy: ${SPRING_SNAPPY.easingFallback};\n\t--blackbird-easing-snappy-spring: ${SPRING_SNAPPY.easing};\n\n\t/* Bouncy preset (playful) */\n\t--blackbird-duration-bouncy: ${SPRING_BOUNCY.duration}ms;\n\t--blackbird-easing-bouncy: ${SPRING_BOUNCY.easingFallback};\n\t--blackbird-easing-bouncy-spring: ${SPRING_BOUNCY.easing};\n\n\t/* Gentle preset (subtle) */\n\t--blackbird-duration-gentle: ${SPRING_GENTLE.duration}ms;\n\t--blackbird-easing-gentle: ${SPRING_GENTLE.easingFallback};\n\t--blackbird-easing-gentle-spring: ${SPRING_GENTLE.easing};\n`\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Get the appropriate easing function based on browser support.\n * Uses linear() if supported, falls back to cubic-bezier.\n */\nexport function getEasing(preset: AnimationPreset): string {\n\t// Feature detect linear() support\n\tif (typeof CSS !== 'undefined' && CSS.supports?.('animation-timing-function', 'linear(0, 1)')) {\n\t\treturn preset.easing\n\t}\n\treturn preset.easingFallback\n}\n\n/**\n * Check if the browser supports reduced motion preference.\n */\nexport function prefersReducedMotion(): boolean {\n\treturn typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches\n}\n\n/**\n * Create a Web Animations API animation configuration.\n *\n * @example\n * ```ts\n * const anim = createAnimation(SPRING_SMOOTH, {\n * from: { opacity: 0, transform: 'translateY(-16px)' },\n * to: { opacity: 1, transform: 'translateY(0)' }\n * })\n *\n * element.animate(anim.keyframes, anim.options)\n * ```\n */\nexport function createAnimation(preset: AnimationPreset, keyframes: BlackbirdKeyframes): BlackbirdAnimation {\n\t// Respect reduced motion preference\n\tif (prefersReducedMotion()) {\n\t\treturn {\n\t\t\tkeyframes: [keyframes.to],\n\t\t\toptions: { duration: 0, fill: 'forwards' },\n\t\t}\n\t}\n\n\treturn {\n\t\tkeyframes: [keyframes.from, keyframes.to],\n\t\toptions: {\n\t\t\tduration: preset.duration,\n\t\t\teasing: preset.easingFallback, // Web Animations API doesn't support linear() well\n\t\t\tfill: 'forwards',\n\t\t},\n\t}\n}\n\n/**\n * Create a reveal animation (fade in + slide up).\n * Common pattern for content appearing.\n */\nexport function createRevealAnimation(\n\tpreset: AnimationPreset = SPRING_SMOOTH,\n\tdistance = 16,\n): BlackbirdAnimation {\n\treturn createAnimation(preset, {\n\t\tfrom: { opacity: 0, transform: `translateY(-${distance}px) scale(0.96)` },\n\t\tto: { opacity: 1, transform: 'translateY(0) scale(1)' },\n\t})\n}\n\n/**\n * Create a dismiss animation (fade out + slide up).\n * Common pattern for content disappearing.\n */\nexport function createDismissAnimation(\n\tpreset: AnimationPreset = SPRING_SMOOTH,\n\tdistance = 12,\n): BlackbirdAnimation {\n\tconst anim = createAnimation(preset, {\n\t\tfrom: { opacity: 1, transform: 'translateY(0) scale(1)' },\n\t\tto: { opacity: 0, transform: `translateY(-${distance}px) scale(0.97)` },\n\t})\n\n\t// Dismiss is slightly faster\n\tif (anim.options.duration) {\n\t\tanim.options.duration = (anim.options.duration as number) * 0.7\n\t}\n\n\treturn anim\n}\n\n/**\n * Create a scale animation (pop in/out).\n * Common pattern for buttons and interactive elements.\n */\nexport function createScaleAnimation(\n\tpreset: AnimationPreset = SPRING_SNAPPY,\n\tfromScale = 0.9,\n\ttoScale = 1,\n): BlackbirdAnimation {\n\treturn createAnimation(preset, {\n\t\tfrom: { opacity: fromScale < toScale ? 0 : 1, transform: `scale(${fromScale})` },\n\t\tto: { opacity: fromScale < toScale ? 1 : 0, transform: `scale(${toScale})` },\n\t})\n}\n\n// =============================================================================\n// TAILWIND UTILITIES (for use in tailwind.config.js)\n// =============================================================================\n\n/**\n * Tailwind CSS animation utilities configuration.\n * Import this into your tailwind.config.js to add Blackbird animations.\n *\n * @example\n * ```js\n * // tailwind.config.js\n * const { tailwindAnimations } = require('@mhmo91/schmancy/utils/animation')\n *\n * module.exports = {\n * theme: {\n * extend: {\n * ...tailwindAnimations\n * }\n * }\n * }\n * ```\n */\nexport const tailwindAnimations = {\n\ttransitionTimingFunction: {\n\t\t'spring-smooth': SPRING_SMOOTH.easingFallback,\n\t\t'spring-snappy': SPRING_SNAPPY.easingFallback,\n\t\t'spring-bouncy': SPRING_BOUNCY.easingFallback,\n\t\t'spring-gentle': SPRING_GENTLE.easingFallback,\n\t},\n\ttransitionDuration: {\n\t\t'spring-smooth': `${SPRING_SMOOTH.duration}ms`,\n\t\t'spring-snappy': `${SPRING_SNAPPY.duration}ms`,\n\t\t'spring-bouncy': `${SPRING_BOUNCY.duration}ms`,\n\t\t'spring-gentle': `${SPRING_GENTLE.duration}ms`,\n\t},\n\tkeyframes: {\n\t\t'blackbird-reveal': {\n\t\t\t'0%': { opacity: '0', transform: 'translateY(-16px) scale(0.96)' },\n\t\t\t'100%': { opacity: '1', transform: 'translateY(0) scale(1)' },\n\t\t},\n\t\t'blackbird-dismiss': {\n\t\t\t'0%': { opacity: '1', transform: 'translateY(0) scale(1)' },\n\t\t\t'100%': { opacity: '0', transform: 'translateY(-12px) scale(0.97)' },\n\t\t},\n\t\t'blackbird-scale-in': {\n\t\t\t'0%': { opacity: '0', transform: 'scale(0.9)' },\n\t\t\t'100%': { opacity: '1', transform: 'scale(1)' },\n\t\t},\n\t\t'blackbird-scale-out': {\n\t\t\t'0%': { opacity: '1', transform: 'scale(1)' },\n\t\t\t'100%': { opacity: '0', transform: 'scale(0.9)' },\n\t\t},\n\t\t'blackbird-slide-up': {\n\t\t\t'0%': { transform: 'translateY(100%)' },\n\t\t\t'100%': { transform: 'translateY(0)' },\n\t\t},\n\t\t'blackbird-slide-down': {\n\t\t\t'0%': { transform: 'translateY(0)' },\n\t\t\t'100%': { transform: 'translateY(100%)' },\n\t\t},\n\t},\n\tanimation: {\n\t\t'blackbird-reveal': `blackbird-reveal ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-dismiss': `blackbird-dismiss ${SPRING_SMOOTH.duration * 0.7}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-scale-in': `blackbird-scale-in ${SPRING_SNAPPY.duration}ms ${SPRING_SNAPPY.easingFallback} forwards`,\n\t\t'blackbird-scale-out': `blackbird-scale-out ${SPRING_SNAPPY.duration * 0.7}ms ${SPRING_SNAPPY.easingFallback} forwards`,\n\t\t'blackbird-slide-up': `blackbird-slide-up ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-slide-down': `blackbird-slide-down ${SPRING_SMOOTH.duration * 0.7}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t},\n}\n\n// =============================================================================\n// CSS-IN-JS UTILITIES (for Lit components)\n// =============================================================================\n\n/**\n * CSS string with spring-based grid animation for details/accordions.\n * Use with grid-template-rows for smooth height animation.\n *\n * @example\n * ```ts\n * import { css } from 'lit'\n * import { GRID_ANIMATION_CSS } from '@mhmo91/schmancy'\n *\n * static styles = css`\n * ${GRID_ANIMATION_CSS}\n *\n * .content {\n * display: grid;\n * grid-template-rows: 0fr;\n * }\n * .content[data-open='true'] {\n * grid-template-rows: 1fr;\n * }\n * `\n * ```\n */\nexport const GRID_ANIMATION_CSS = `\n\t/* Grid-based height animation with spring physics */\n\t.blackbird-grid {\n\t\tdisplay: grid;\n\t\tgrid-template-rows: 0fr;\n\t\toverflow: hidden;\n\t\ttransition: grid-template-rows ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback};\n\t}\n\n\t/* Use spring easing when linear() is supported */\n\t@supports (animation-timing-function: linear(0, 1)) {\n\t\t.blackbird-grid {\n\t\t\ttransition: grid-template-rows ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easing};\n\t\t}\n\t}\n\n\t.blackbird-grid[data-open='true'],\n\t.blackbird-grid.open {\n\t\tgrid-template-rows: 1fr;\n\t}\n\n\t.blackbird-grid > * {\n\t\toverflow: hidden;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\t.blackbird-grid {\n\t\t\ttransition: none;\n\t\t}\n\t}\n`\n","import { BehaviorSubject, fromEvent } from 'rxjs'\nimport { map, startWith } from 'rxjs/operators'\n\n/**\n * Shared reactive reduced-motion preference.\n *\n * All physics directives observe this — if the user toggles reduced motion\n * while the page is open, directives respond immediately.\n *\n * @example\n * ```ts\n * import { reducedMotion$ } from './reduced-motion'\n * if (reducedMotion$.value) return // skip animation\n * ```\n */\nconst mediaQuery = typeof window !== 'undefined'\n\t? window.matchMedia('(prefers-reduced-motion: reduce)')\n\t: undefined\n\nexport const reducedMotion$ = new BehaviorSubject<boolean>(mediaQuery?.matches ?? false)\n\n// Reactively listen for changes via RxJS\nif (mediaQuery) {\n\tfromEvent<MediaQueryListEvent>(mediaQuery, 'change').pipe(\n\t\tmap(e => e.matches),\n\t\tstartWith(mediaQuery.matches),\n\t).subscribe(matches => {\n\t\treducedMotion$.next(matches)\n\t})\n}\n","import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { from, EMPTY } from 'rxjs'\nimport { take, catchError, tap } from 'rxjs/operators'\nimport { SPRING_SMOOTH, SPRING_BOUNCY } from '../utils/animation'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface GravityOptions {\n\t/** Mass: 0.5 (light/bouncy) to 2.0 (heavy/damped). Default: 1.0 */\n\tmass?: number\n\t/** Fall distance in pixels (default: 30) */\n\tdistance?: number\n\t/** Delay before falling in ms (default: 0) */\n\tdelay?: number\n\t/** Stagger delay per item for lists — multiply by index (default: 0) */\n\tstagger?: number\n}\n\n/**\n * Gravity directive — elements fall into place and settle with mass-based bounce.\n *\n * Only animates ONCE on first render. Re-renders do not re-trigger.\n * Disconnecting and reconnecting re-triggers the animation.\n *\n * @example\n * ```html\n * <schmancy-card ${gravity()}>content</schmancy-card>\n *\n * ${repeat(items, item => item.id, (item, i) => html`\n * <div ${gravity({ stagger: 50 * i, mass: 0.8 })}>...</div>\n * `)}\n * ```\n */\nclass GravityDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate animation?: Animation\n\tprivate hasAnimated = false\n\tprivate options?: GravityOptions\n\n\trender(_options?: GravityOptions) {\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [GravityOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('gravity directive must be used on an element')\n\t\t}\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.options = options\n\n\t\tif (this.hasAnimated) return undefined\n\t\tif (reducedMotion$.value) {\n\t\t\tthis.hasAnimated = true\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst mass = Math.max(0.3, Math.min(3.0, options?.mass ?? 1.0))\n\t\tconst distance = options?.distance ?? 30\n\t\tconst delay = (options?.delay ?? 0) + (options?.stagger ?? 0)\n\n\t\tthis.animate(mass, distance, delay)\n\t\tthis.hasAnimated = true\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.hasAnimated = false\n\t\tif (this.options && !reducedMotion$.value) {\n\t\t\tconst mass = Math.max(0.3, Math.min(3.0, this.options.mass ?? 1.0))\n\t\t\tconst distance = this.options.distance ?? 30\n\t\t\tconst delay = (this.options.delay ?? 0) + (this.options.stagger ?? 0)\n\t\t\tthis.animate(mass, distance, delay)\n\t\t\tthis.hasAnimated = true\n\t\t}\n\t}\n\n\tprivate animate(mass: number, distance: number, delay: number) {\n\t\tconst preset = mass < 0.7 ? SPRING_BOUNCY : SPRING_SMOOTH\n\t\tconst duration = preset.duration * (1 / Math.sqrt(mass))\n\t\tconst fallDistance = distance * (1 / mass)\n\n\t\tthis.animation?.cancel()\n\n\t\tthis.element.style.willChange = 'transform, opacity'\n\t\tthis.animation = this.element.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: `translateY(-${fallDistance}px)` },\n\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration,\n\t\t\t\tdelay,\n\t\t\t\teasing: preset.easingFallback,\n\t\t\t\tfill: 'backwards',\n\t\t\t},\n\t\t)\n\n\t\t// RxJS cleanup instead of raw .then()\n\t\tfrom(this.animation.finished).pipe(\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tthis.element.style.willChange = ''\n\t\t\t\tthis.animation = undefined\n\t\t\t}),\n\t\t\tcatchError(() => EMPTY), // Animation cancelled — no cleanup needed\n\t\t).subscribe()\n\t}\n\n\toverride disconnected() {\n\t\tthis.animation?.cancel()\n\t\tthis.animation = undefined\n\t}\n}\n\nexport const gravity = directive(GravityDirective)\n","import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { SPRING_SNAPPY } from '../utils/animation'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface MagneticOptions {\n\t/** Max displacement in pixels (default: 4) */\n\tstrength?: number\n\t/** Activation radius in pixels (default: 100) */\n\tradius?: number\n}\n\n/**\n * Magnetic directive — elements lean toward the cursor with spring physics.\n *\n * Uses `style.translate` (CSS individual transform) so it composes\n * with existing transforms on the element.\n *\n * @example\n * ```html\n * <schmancy-button ${magnetic()}>Submit</schmancy-button>\n * <schmancy-icon-button ${magnetic({ strength: 6, radius: 120 })}>add</schmancy-icon-button>\n * ```\n */\nclass MagneticDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate strength = 4\n\tprivate radius = 100\n\tprivate prevKey?: string\n\tprivate cachedRect?: DOMRect\n\n\trender(_options?: MagneticOptions) {\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [MagneticOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('magnetic directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.strength = options?.strength ?? 4\n\t\tthis.radius = options?.radius ?? 100\n\n\t\tthis.element.style.transition = `translate ${SPRING_SNAPPY.duration}ms ${SPRING_SNAPPY.easingFallback}`\n\n\t\tthis.teardown$.next()\n\t\tthis.setupMagnetic()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.setupMagnetic()\n\t}\n\n\tprivate setupMagnetic() {\n\t\tif (reducedMotion$.value) return\n\n\t\tconst target = this.element.parentElement ?? document\n\n\t\tconst enter$ = fromEvent(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tthis.element.style.willChange = 'translate'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(target, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\tconst centerX = rect.left + rect.width / 2\n\t\t\t\tconst centerY = rect.top + rect.height / 2\n\t\t\t\tconst dx = e.clientX - centerX\n\t\t\t\tconst dy = e.clientY - centerY\n\t\t\t\tconst distance = Math.sqrt(dx * dx + dy * dy)\n\n\t\t\t\tif (distance < this.radius && distance > 0) {\n\t\t\t\t\tconst pull = (1 - distance / this.radius) * this.strength\n\t\t\t\t\treturn { x: (dx / distance) * pull, y: (dy / distance) * pull }\n\t\t\t\t}\n\t\t\t\treturn { x: 0, y: 0 }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(target, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tthis.element.style.willChange = ''\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn { x: 0, y: 0 }\n\t\t\t}),\n\t\t)\n\n\t\t// Also tear down if user enables reduced motion\n\t\tconst motionChange$ = reducedMotion$.pipe(\n\t\t\tmap(reduced => {\n\t\t\t\tif (reduced) {\n\t\t\t\t\tthis.element.style.translate = ''\n\t\t\t\t\tthis.element.style.willChange = ''\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$, motionChange$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos) {\n\t\t\t\t\tthis.element.style.translate = `${pos.x}px ${pos.y}px`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tif (this.element) {\n\t\t\tthis.element.style.translate = ''\n\t\t\tthis.element.style.willChange = ''\n\t\t}\n\t}\n}\n\nexport const magnetic = directive(MagneticDirective)\n","import { createContext } from '@lit/context'\n\nexport type SchmancyButtonSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg'\n\n/**\n * Provided by `<schmancy-button>` to its descendants so children\n * (e.g. `<schmancy-icon>`) can auto-size against the enclosing button.\n */\nexport const SchmancyButtonSizeContext = createContext<SchmancyButtonSize>('schmancy-button-size')\n","import { provide } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { magnetic } from '../directives/magnetic'\nimport { SchmancyButtonSizeContext, type SchmancyButtonSize } from './context'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'tonal' | 'outlined' | 'text'\nexport type ButtonColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'neutral'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n * @csspart base - The underlying native `<button>` (or `<a>` when `href` is set).\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends SchmancyElement {\n\tstatic styles = [css`:host{\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t\ttouch-action: manipulation;\n\t\tborder-radius: 1rem;\n\t\ttransition:\n\t\t\tbox-shadow 300ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\t\ttransform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n\t:host([width=\"full\"]) {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t}\n\t:host(:hover:not([disabled])) {\n\t\tbox-shadow: 0 4px 16px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 20%, transparent);\n\t}\n\t:host(:active:not([disabled])) {\n\t\ttransform: scale(0.97);\n\t\tbox-shadow: 0 1px 4px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 10%, transparent);\n\t\ttransition-duration: 100ms;\n\t}\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host { transition: none; }\n\t\t:host(:hover:not([disabled])) { box-shadow: none; }\n\t\t:host(:active:not([disabled])) { transform: none; box-shadow: none; }\n\t}\n\t:host *,\n\t* {\n\t\ttouch-action: manipulation;\n\t}`]\n\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\tstatic formAssociated = true\n\tprivate internals: ElementInternals | undefined\n\t/**\n\t * When this button is `type=\"submit\"` and lives inside a <schmancy-form>,\n\t * the observer mirrors the form's `aria-busy` attribute onto this button\n\t * while a submit is in flight. Stays focusable; disabled buttons drop from\n\t * the tab order and are unreachable to AT (WCAG 2.2 AA).\n\t */\n\tprivate _formBusyObserver?: MutationObserver\n\n\tconstructor() {\n\t\tsuper()\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch {\n\t\t\tthis.internals = undefined\n\t\t}\n\t\t// Translate clicks into native form semantics so the button works\n\t\t// inside any <form>, not just inside <schmancy-form>.\n\t\tthis.addEventListener('click', (e: MouseEvent) => {\n\t\t\tif (this.disabled) {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopImmediatePropagation()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst form = this.internals?.form\n\t\t\tif (!form) return\n\t\t\tif (this.type === 'submit') {\n\t\t\t\te.preventDefault()\n\t\t\t\tform.requestSubmit()\n\t\t\t} else if (this.type === 'reset') {\n\t\t\t\te.preventDefault()\n\t\t\t\tform.reset()\n\t\t\t}\n\t\t})\n\t}\n\n\t/** Associated form, when placed inside a <form>. */\n\tget form(): HTMLFormElement | null {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\tformDisabledCallback(disabled: boolean): void {\n\t\tthis.disabled = disabled\n\t}\n\n\toverride connectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\t// Mirror the closest <schmancy-form>'s aria-busy onto this submit button\n\t\t// so the user gets a visible busy state during async submit handlers.\n\t\t// Schmancy-form sets aria-busy=\"true\" while status === 'submitting'.\n\t\tif (this.type !== 'submit') return\n\t\tconst form = this.closest('schmancy-form') as HTMLElement | null\n\t\tif (!form) return\n\t\tconst sync = () => {\n\t\t\tconst busy = form.getAttribute('aria-busy') === 'true'\n\t\t\tif (busy) {\n\t\t\t\tthis.setAttribute('aria-busy', 'true')\n\t\t\t\tthis.internals?.states.add('submitting')\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute('aria-busy')\n\t\t\t\tthis.internals?.states.delete('submitting')\n\t\t\t}\n\t\t}\n\t\tsync()\n\t\tthis._formBusyObserver = new MutationObserver(sync)\n\t\tthis._formBusyObserver.observe(form, { attributes: true, attributeFilter: ['aria-busy'] })\n\t}\n\n\toverride disconnectedCallback(): void {\n\t\tthis._formBusyObserver?.disconnect()\n\t\tthis._formBusyObserver = undefined\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The color of the button.\n\t * @attr\n\t * @default Depends on variant: 'primary' for filled/elevated/outlined/text, 'secondary' for tonal\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic color?: ButtonColor\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property({ reflect: true })\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The size of the button.\n\t * Provided as `SchmancyButtonSizeContext` to descendant elements so children\n\t * (e.g. `<schmancy-icon>`) can auto-size against the enclosing button.\n\t * @attr\n\t * @type {'xxs' | 'xs' | 'sm' | 'md' | 'lg'}\n\t * @default 'md'\n\t * @public\n\t */\n\t@provide({ context: SchmancyButtonSizeContext })\n\t@property({ type: String })\n\tpublic size: SchmancyButtonSize = 'md'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\t/**\n\t * Get the effective color based on variant if not explicitly set\n\t * M3 spec: filled = primary, tonal = secondary, others = primary\n\t */\n\tprotected get effectiveColor(): ButtonColor {\n\t\tif (this.color) return this.color\n\n\t\t// Map 'tonal' to 'filled tonal' for checking\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant\n\n\t\t// M3 defaults: tonal uses secondary, others use primary\n\t\treturn effectiveVariant === 'filled tonal' ? 'secondary' : 'primary'\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\t// M3 spec: icon sizes scale with button size\n\t\tconst sizeMap = {\n\t\t\txxs: 'w-3 h-3', // 12px for 24px button (ultra-compact)\n\t\t\txs: 'w-4 h-4', // 16px for 32px button (M3 dense)\n\t\t\tsm: 'w-5 h-5', // 20px for 40px button (M3 default)\n\t\t\tmd: 'w-6 h-6', // 24px for 48px button (M3 large)\n\t\t\tlg: 'w-7 h-7' // 28px for 56px button (M3 extra large)\n\t\t}\n\t\treturn [sizeMap[this.size], 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 transition-all duration-200 relative rounded-2xl flex justify-center items-center outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden flex-1 overflow-hidden':\n\t\t\t\ttrue,\n\t\t\t// Height - M3 spec: 24dp (xxs) → 32dp (dense) → 40dp (default) → 48dp (large) → 56dp (XL)\n\t\t\t'h-6': this.size === 'xxs', // 24px - Ultra-compact\n\t\t\t'h-8': this.size === 'xs', // 32px - M3 dense/compact\n\t\t\t'h-10': this.size === 'sm', // 40px - M3 default\n\t\t\t'h-12': this.size === 'md', // 48px - M3 large\n\t\t\t'h-14': this.size === 'lg', // 56px - M3 extra large\n\t\t\t// Padding - M3 spec: horizontal padding 24dp default, scaled proportionally\n\t\t\t'py-1 px-2': this.size === 'xxs', // 4px/8px for 24px height\n\t\t\t'py-2 px-4': this.size === 'xs', // 8px/16px for 32px height\n\t\t\t'py-2.5 px-5': this.size === 'sm', // 10px/20px for 40px height\n\t\t\t'py-3 px-6': this.size === 'md', // 12px/24px for 48px height (M3 default)\n\t\t\t'py-4 px-7': this.size === 'lg', // 16px/28px for 56px height\n\t\t\t// Typography - M3 spec: label-large (14px) default, scaled\n\t\t\t'text-[10px] font-medium leading-3': this.size === 'xxs', // 10px\n\t\t\t'text-xs font-medium leading-4': this.size === 'xs', // 12px\n\t\t\t'text-sm font-medium leading-5': this.size === 'sm' || this.size === 'md', // 14px - M3 label-large\n\t\t\t'text-base font-medium leading-6': this.size === 'lg', // 16px\n\t\t\t// Letter spacing - M3 spec\n\t\t\t'tracking-[0.1px]': true,\n\t\t\t// Gap - Scaled with size\n\t\t\t'gap-0.5': this.size === 'xxs', // 2px\n\t\t\t'gap-1': this.size === 'xs', // 4px\n\t\t\t'gap-1.5': this.size === 'sm', // 6px\n\t\t\t'gap-2': this.size === 'md', // 8px\n\t\t\t'gap-2.5': this.size === 'lg', // 10px\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t// Elevated variant\n\t\t\t'bg-surface-low shadow-xs': effectiveVariant === 'elevated',\n\t\t\t// Outlined variant\n\t\t\t'bg-transparent border-1 border-solid': effectiveVariant === 'outlined',\n\t\t\t'border-outline': effectiveVariant === 'outlined' && this.effectiveColor === 'primary',\n\t\t\t'border-success-default': effectiveVariant === 'outlined' && this.effectiveColor === 'success',\n\t\t\t'border-error-default': effectiveVariant === 'outlined' && this.effectiveColor === 'error',\n\t\t\t'border-warning-default': effectiveVariant === 'outlined' && this.effectiveColor === 'warning',\n\t\t\t'border-info-default': effectiveVariant === 'outlined' && this.effectiveColor === 'info',\n\t\t\t'border-secondary-default': effectiveVariant === 'outlined' && this.effectiveColor === 'secondary',\n\t\t\t'border-outline-variant': effectiveVariant === 'outlined' && this.effectiveColor === 'neutral',\n\t\t\t// Filled variant - background colors\n\t\t\t'bg-primary-default': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'bg-secondary-default': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'bg-success-default': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'bg-error-default': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'bg-warning-default': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'bg-info-default': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'bg-surface-containerHighest': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Filled variant - text colors\n\t\t\t'text-primary-on': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-on': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'text-success-on': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'text-error-on': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'text-warning-on': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'text-info-on': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'text-surface-on': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal variant - background colors\n\t\t\t'bg-primary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'bg-secondary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'bg-success-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'bg-error-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'bg-warning-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'bg-info-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t'bg-surface-containerLow': effectiveVariant === 'filled tonal' && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal variant - text colors\n\t\t\t'text-primary-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'text-success-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'text-error-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'text-warning-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'text-info-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t// Text and elevated variants - text colors\n\t\t\t'text-primary-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'secondary',\n\t\t\t'text-success-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'success',\n\t\t\t'text-error-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'error',\n\t\t\t'text-warning-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'warning',\n\t\t\t'text-info-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'info',\n\t\t\t'text-surface-onVariant': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined' || effectiveVariant === 'filled tonal') && this.effectiveColor === 'neutral',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-2xl': true,\n\t\t\t// M3 focus and pressed states\n\t\t\t'focus-visible:opacity-[0.10]': true, // M3 focus state\n\t\t\t'active:opacity-[0.10]': true, // M3 pressed state\n\t\t\t// Filled variant hover\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-on': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-on': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-on': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-on': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-on': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-on': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Outlined, elevated, text variants hover\n\t\t\t'hover:bg-primary-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-onVariant': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal hover\n\t\t\t'hover:bg-primary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-containerLow': effectiveVariant === 'filled tonal' && this.effectiveColor === 'neutral',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\t${magnetic({ strength: 3, radius: 60 })}\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\t${magnetic({ strength: 3, radius: 60 })}\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","/**\n * Form-level submit state — consumed by `<schmancy-form>` and any descendant\n * (e.g. `<schmancy-button type=\"submit\">` to drive its loading/aria-busy).\n *\n * `<schmancy-form>` wraps its render output in `<schmancy-context\n * .provides=${[formSubmitState]}>` so each instance gets an isolated copy\n * via the schmancy state library's resolveContextual mechanism. Reads of\n * `formSubmitState.value` and writes via `formSubmitState.set(...)` inside\n * the form's subtree resolve to the per-form copy automatically — no\n * `@lit/context` plumbing in user code.\n */\n\nimport { state } from '../state'\n\nexport type FormError = {\n\tmessage: string\n\tcode?: string\n}\n\nexport type FormSubmitState = {\n\tstatus: 'idle' | 'submitting' | 'success' | 'error'\n\terror: FormError | null\n\t/** Increments on every submit attempt — RHF parity. */\n\tsubmitCount: number\n}\n\nexport const formSubmitState = state<FormSubmitState>('schmancy/form-submit').memory({\n\tstatus: 'idle',\n\terror: null,\n\tsubmitCount: 0,\n})\n","/**\n * `<schmancy-form>` — schmancy form owner with isolated submit state.\n *\n * Architecture:\n * - Extends `SchmancyElement` (shadow DOM, RxJS + `disconnecting` conventions).\n * - Renders content inside `<schmancy-context .provides=${[formSubmitState]}>`\n * so each form instance gets an isolated copy of the submit state via the\n * schmancy state library — no `@lit/context` plumbing in user code.\n * - Inner `<form novalidate>` is the native-semantics trigger for Enter-key\n * submit and `type=submit` button activation.\n * - Fields self-register via `FIELD_CONNECT_EVENT` (composed event from\n * `FormFieldMixin.connectedCallback`). Stale refs (from disconnected\n * fields) are filtered by `isConnected` at iteration time.\n *\n * Schema seam — pass any `{ parse(input): T }` object (zod, valibot, ArkType,\n * etc.) via the `schema` property to get typed `submit` event detail.\n */\n\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\nimport { SchmancyElement } from '../../mixins'\nimport { FIELD_CONNECT_EVENT, type IFormFieldMixin } from '../../mixins/formField.mixin'\nimport { formSubmitState, type FormSubmitState, type FormError } from './form-state'\n\n/** Structural type matching zod, valibot, ArkType, etc. — any schema with `.parse()`. */\nexport interface ParseSchema<T = unknown> {\n\tparse(input: unknown): T\n}\n\nconst isButton = (node: EventTarget): node is HTMLElement => {\n\tif (!(node instanceof HTMLElement)) return false\n\treturn node.tagName === 'BUTTON' || node.tagName === 'SCHMANCY-BUTTON'\n}\n\n/** Submit event detail. `data` is typed when `schema` is set. */\nexport type SchmancyFormSubmitDetail<T = Record<string, FormDataEntryValue>> = {\n\tdata: T\n\tformData: FormData\n\t/**\n\t * Register a promise that gates the form's success/error state. If unused,\n\t * the form synchronously flips to `success` after dispatch. If used,\n\t * `success`/`error` reflect the promise's outcome.\n\t */\n\tuntil(p: Promise<unknown>): void\n}\n\n@customElement('schmancy-form')\nexport default class SchmancyForm<TSchema extends ParseSchema | undefined = undefined>\n\textends SchmancyElement {\n\tstatic styles = css`\n\t\t:host { display: block; }\n\t`\n\n\tpublic static readonly tagName: string = 'schmancy-form'\n\n\t/**\n\t * Optional schema for parsing FormData on submit. Anything with a\n\t * `.parse(input)` method works (zod, valibot, ArkType). When set, the\n\t * `submit` event's `detail.data` is typed `z.infer<TSchema>`.\n\t */\n\t@property({ attribute: false })\n\tschema?: TSchema\n\n\t/** Skip built-in browser constraint validation. Mirrors `<form novalidate>`. */\n\t@property({ type: Boolean })\n\tnovalidate: boolean = true\n\n\tprivate _fields = new Set<IFormFieldMixin>()\n\tprivate _submitting = false\n\n\t/**\n\t * Local mirror of the submit-state status — drives the inline live region\n\t * synchronously. Independent of the schmancy-state library's resolution\n\t * chain (which has known cross-await fallback semantics) so the AT-facing\n\t * announcement is always correct for this form instance.\n\t */\n\t@state() private _liveStatus: 'idle' | 'submitting' | 'success' | 'error' = 'idle'\n\t@state() private _liveError: string = ''\n\tprivate _internals: ElementInternals | undefined = (() => {\n\t\ttry {\n\t\t\treturn this.attachInternals()\n\t\t} catch {\n\t\t\treturn undefined\n\t\t}\n\t})()\n\n\toverride connectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Forbid nested <schmancy-form>.\n\t\tif (this.parentElement?.closest('schmancy-form')) {\n\t\t\tconsole.error('[schmancy-form] nested <schmancy-form> is not supported')\n\t\t\treturn\n\t\t}\n\n\t\t// Field registry — composed event from FormFieldMixin.connectedCallback.\n\t\tfromEvent<CustomEvent<IFormFieldMixin>>(this, FIELD_CONNECT_EVENT)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => this._fields.add(e.detail))\n\n\t\t// Submit-trigger interception — slotted descendants live in light DOM\n\t\t// while the inner <form> is in shadow DOM, so native form-association\n\t\t// across the shadow boundary doesn't work for `<button type=submit>`.\n\t\t// Capture clicks on type=submit buttons (native + schmancy-button) and\n\t\t// Enter keys on registered fields, then call the inner form's\n\t\t// requestSubmit() which fires the same native submit event handler\n\t\t// chain that a directly-associated button would have triggered.\n\t\tfromEvent<MouseEvent>(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => this._maybeRequestSubmit(e))\n\t\tfromEvent<KeyboardEvent>(this, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\tif (e.key !== 'Enter' || e.shiftKey) return\n\t\t\t\t// Skip Enter inside <textarea> (newline) and contenteditable.\n\t\t\t\tconst target = e.target as HTMLElement | null\n\t\t\t\tif (target?.tagName === 'TEXTAREA') return\n\t\t\t\tif (target?.isContentEditable) return\n\t\t\t\tthis._maybeRequestSubmit(e)\n\t\t\t})\n\t}\n\n\tprivate _maybeRequestSubmit(e: Event): void {\n\t\t// On click: trigger only when the target is a type=submit button.\n\t\t// On keydown(Enter): always trigger if focus is on a registered field.\n\t\t// type=reset is handled separately in _maybeReset.\n\t\tif (e.type === 'click') {\n\t\t\tconst path = e.composedPath()\n\t\t\tconst resetBtn = path.find(\n\t\t\t\tnode => isButton(node) && node.getAttribute('type') === 'reset',\n\t\t\t)\n\t\t\tif (resetBtn) {\n\t\t\t\te.preventDefault()\n\t\t\t\tconst form = this.shadowRoot?.querySelector('form')\n\t\t\t\tform?.reset()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst submitBtn = path.find(\n\t\t\t\tnode => isButton(node) && node.getAttribute('type') === 'submit',\n\t\t\t)\n\t\t\tif (!submitBtn) return\n\t\t\te.preventDefault()\n\t\t}\n\t\tconst form = this.shadowRoot?.querySelector('form')\n\t\tform?.requestSubmit()\n\t}\n\n\t/** Active fields — drops stale refs from disconnected nodes. */\n\tprivate get _activeFields(): IFormFieldMixin[] {\n\t\treturn [...this._fields].filter(f => f.isConnected)\n\t}\n\n\tprivate async _onSubmit(e: SubmitEvent): Promise<void> {\n\t\te.preventDefault()\n\t\te.stopPropagation()\n\t\tif (this._submitting) return\n\n\t\t// If any field has an async validator pending, wait for them all to\n\t\t// settle before deciding validity. This is the hard-block model: the\n\t\t// user clicks submit, the form holds (aria-busy=\"true\"), waits for\n\t\t// validators, then proceeds with the truth they reported.\n\t\tconst pendingValidators = this._activeFields.filter(f => f.isValidating)\n\t\tif (pendingValidators.length > 0) {\n\t\t\tthis._broadcastStatus('submitting')\n\t\t\tawait new Promise<void>(resolve => {\n\t\t\t\tconst tick = () => {\n\t\t\t\t\tif (this._activeFields.every(f => !f.isValidating)) resolve()\n\t\t\t\t\telse requestAnimationFrame(tick)\n\t\t\t\t}\n\t\t\t\ttick()\n\t\t\t})\n\t\t}\n\n\t\t// Phase 4 — submit forces error display on every field.\n\t\tthis._activeFields.forEach(f => f.markSubmitted())\n\n\t\t// Validate; success path entered ONLY if all valid.\n\t\tconst allValid = this._activeFields.every(f => f.checkValidity())\n\t\tconst fs = formSubmitState.value\n\t\tif (!allValid) {\n\t\t\tformSubmitState.set({\n\t\t\t\t...fs,\n\t\t\t\tstatus: 'error',\n\t\t\t\terror: { message: 'Validation failed' },\n\t\t\t})\n\t\t\tthis._broadcastStatus('error', 'Validation failed. Please correct the highlighted fields.')\n\t\t\tconst firstInvalid = this._activeFields.find(f => f.error) as unknown as\n\t\t\t\t| HTMLElement\n\t\t\t\t| undefined\n\t\t\tfirstInvalid?.focus()\n\t\t\treturn\n\t\t}\n\n\t\tthis._submitting = true\n\t\tformSubmitState.set({\n\t\t\t...fs,\n\t\t\tstatus: 'submitting',\n\t\t\terror: null,\n\t\t\tsubmitCount: fs.submitCount + 1,\n\t\t})\n\t\tthis._broadcastStatus('submitting')\n\n\t\t// Build payload from the registered fields' contracted toFormEntries().\n\t\tconst formData = new FormData()\n\t\tfor (const field of this._activeFields) {\n\t\t\tfor (const [k, v] of field.toFormEntries()) formData.append(k, v)\n\t\t}\n\t\tconst raw = Object.fromEntries(formData)\n\t\tconst data = this.schema ? this.schema.parse(raw) : raw\n\n\t\t// Awaitable submit — consumers register promises via e.detail.until(p).\n\t\tconst pending: Promise<unknown>[] = []\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancyFormSubmitDetail<unknown>>('submit', {\n\t\t\t\tdetail: {\n\t\t\t\t\tdata,\n\t\t\t\t\tformData,\n\t\t\t\t\tuntil: (p: Promise<unknown>) => pending.push(p),\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\n\t\ttry {\n\t\t\tawait Promise.all(pending)\n\t\t\tformSubmitState.set({\n\t\t\t\t...formSubmitState.value,\n\t\t\t\tstatus: 'success',\n\t\t\t\terror: null,\n\t\t\t})\n\t\t\tthis._broadcastStatus('success')\n\t\t} catch (err) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err)\n\t\t\tformSubmitState.set({\n\t\t\t\t...formSubmitState.value,\n\t\t\t\tstatus: 'error',\n\t\t\t\terror: { message },\n\t\t\t})\n\t\t\tthis._broadcastStatus('error', message)\n\t\t} finally {\n\t\t\tthis._submitting = false\n\t\t}\n\t}\n\n\tprivate _onReset(e: Event): void {\n\t\te.stopPropagation()\n\t\tthis._activeFields.forEach(f => f.resetForm())\n\t\tformSubmitState.set({ status: 'idle', error: null, submitCount: 0 })\n\t\tthis._broadcastStatus('idle')\n\t\tthis.dispatchEvent(new CustomEvent('reset'))\n\t}\n\n\tprivate _broadcastStatus(status: FormSubmitState['status'], errorMessage?: string): void {\n\t\tthis._liveStatus = status\n\t\tthis._liveError = errorMessage ?? ''\n\t\tconst states = this._internals?.states\n\t\tif (states) {\n\t\t\tfor (const s of ['submitting', 'success', 'error', 'idle']) states.delete(s)\n\t\t\tstates.add(status)\n\t\t}\n\t\t// aria-busy on the host while submitting (WCAG 2.2 AA — disabled buttons\n\t\t// drop from tab order; keep them focusable, signal busy via aria).\n\t\tif (status === 'submitting') this.setAttribute('aria-busy', 'true')\n\t\telse this.removeAttribute('aria-busy')\n\t\t// Public formstate event — external state stores subscribe without\n\t\t// having to consume formSubmitState directly.\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<FormSubmitState>('formstate', {\n\t\t\t\tdetail: { ...formSubmitState.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Server-side error mapping (RHF `setError(name, ...)`-equivalent).\n\t * Sets `setCustomValidity(message)` on the matching field and ensures the\n\t * error displays by marking it submitted.\n\t */\n\tpublic setFieldError(name: string, message: string): boolean {\n\t\tconst field = this._activeFields.find(f => f.name === name)\n\t\tif (!field) return false\n\t\tfield.setCustomValidity(message)\n\t\tfield.markSubmitted()\n\t\treturn true\n\t}\n\n\t/**\n\t * Top-of-form error (RHF `setError('root.serverError', ...)`-equivalent).\n\t * Flips form status to 'error' with a structured `FormError`.\n\t */\n\tpublic setFormError(message: string, code?: string): void {\n\t\tformSubmitState.set({\n\t\t\t...formSubmitState.value,\n\t\t\tstatus: 'error',\n\t\t\terror: { message, code } as FormError,\n\t\t})\n\t\tthis._broadcastStatus('error', message)\n\t}\n\n\t/**\n\t * Clear the `submitted` flag on every registered field without resetting\n\t * their values. Wizard pattern: stepping back from a later step should not\n\t * leave the earlier step's fields in aggressive \"show all errors\" mode\n\t * (which `submitted = true` triggers via the `_shouldShowError()` gate).\n\t *\n\t * Pristine fields with `validateOn: 'dirty'` go quiet again. Fields the\n\t * user actually dirtied keep showing their errors (correct UX — those are\n\t * still genuine mistakes the user can see).\n\t */\n\tpublic clearSubmitted(): void {\n\t\tthis._activeFields.forEach(f => f.clearSubmitted())\n\t\tformSubmitState.set({\n\t\t\t...formSubmitState.value,\n\t\t\tstatus: 'idle',\n\t\t\terror: null,\n\t\t})\n\t\tthis._broadcastStatus('idle')\n\t}\n\n\t/** Programmatically submit via the native submitter pipeline. */\n\tpublic submit(): boolean {\n\t\tconst form = this.shadowRoot?.querySelector('form')\n\t\tif (!form) return false\n\t\tform.requestSubmit()\n\t\treturn true\n\t}\n\n\t/** Programmatically reset via native `form.reset()`. */\n\tpublic reset(): void {\n\t\tconst form = this.shadowRoot?.querySelector('form')\n\t\tform?.reset()\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\treturn this._activeFields.every(f => f.reportValidity())\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\treturn this._activeFields.every(f => f.checkValidity())\n\t}\n\n\t/** Snapshot of current form values from the registered fields. */\n\tpublic getFormData(): FormData {\n\t\tconst formData = new FormData()\n\t\tfor (const field of this._activeFields) {\n\t\t\tfor (const [k, v] of field.toFormEntries()) formData.append(k, v)\n\t\t}\n\t\treturn formData\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<schmancy-context .provides=${[formSubmitState]}>\n\t\t\t\t<form\n\t\t\t\t\t?novalidate=${this.novalidate}\n\t\t\t\t\t@submit=${this._onSubmit}\n\t\t\t\t\t@reset=${this._onReset}\n\t\t\t\t>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</form>\n\t\t\t\t<!--\n\t\t\t\t\tForm-level live region — assistive tech announces server-side\n\t\t\t\t\tform errors (validation summary, network failure, server reject)\n\t\t\t\t\there. Visually hidden via the .sr-only convention; consumers\n\t\t\t\t\trender their own visible banner from formSubmitState if they\n\t\t\t\t\twant one. Empty content while idle/submitting/success — only\n\t\t\t\t\terror states populate the region. WCAG 4.1.3 (Status Messages).\n\t\t\t\t-->\n\t\t\t\t<div\n\t\t\t\t\trole=\"status\"\n\t\t\t\t\taria-live=\"assertive\"\n\t\t\t\t\taria-atomic=\"true\"\n\t\t\t\t\tclass=\"sr-only\"\n\t\t\t\t>${this._liveStatus === 'error' ? this._liveError : ''}</div>\n\t\t\t</schmancy-context>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-form': SchmancyForm\n\t}\n}\n\n// Retained type surfaces — kept exported because downstream code may import\n// them as documentation. The new implementation no longer uses them\n// internally.\n\nexport interface FormElement extends HTMLElement {\n\tname?: string\n\tvalue?: string\n\tdisabled?: boolean\n\ttype?: string\n\tdefaultValue?: string\n}\n\nexport interface CheckableFormElement extends FormElement {\n\tchecked?: boolean\n}\n\nexport interface ValidatableFormElement extends FormElement {\n\treportValidity?: () => boolean\n\tcheckValidity?: () => boolean\n}\n\nexport interface FormEventMap {\n\tsubmit: CustomEvent<SchmancyFormSubmitDetail<unknown>>\n\treset: CustomEvent\n\tformstate: CustomEvent<FormSubmitState>\n}\n"," @reference \"tailwindcss\";\n\n:host {\n\t@apply block w-full min-w-0;\n\t/* Ensure no constraints on mobile */\n\tmax-width: 100%;\n\tbox-sizing: border-box;\n}\n\n/* Date input container needs special handling on mobile */\n.date-input-container {\n\t@apply w-full;\n\t/* Explicit width for mobile Safari */\n\twidth: 100% !important;\n\tmax-width: 100% !important;\n\tmin-width: 0;\n}\n\n/* Reset native input styles for consistency */\ninput {\n\t/* Remove all native styling */\n\t@apply appearance-none rounded-[8px];\n\t/* Prevent Safari zoom on focus */\n\tfont-size: 16px;\n\twidth: -webkit-fill-available;\n\t/* Ensure border radius is applied */\n\tborder-radius: 8px;\n\t/* Smooth transitions for luminous focus */\n\ttransition:\n\t\tbox-shadow 300ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\tborder-color 200ms ease;\n}\n\n/* Luminous focus glow — light-based depth on focus */\ninput:focus {\n\tbox-shadow:\n\t\t0 0 0 1px var(--schmancy-sys-color-secondary-default),\n\t\t0 0 16px -4px color-mix(in srgb, var(--schmancy-sys-color-secondary-default) 20%, transparent);\n}\n\n/* Luminous error glow — red glow on error focus */\ninput[aria-invalid=\"true\"] {\n\tbox-shadow: 0 0 12px -4px color-mix(in srgb, var(--schmancy-sys-color-error-default) 15%, transparent);\n}\ninput[aria-invalid=\"true\"]:focus {\n\tbox-shadow:\n\t\t0 0 0 1px var(--schmancy-sys-color-error-default),\n\t\t0 0 16px -4px color-mix(in srgb, var(--schmancy-sys-color-error-default) 25%, transparent);\n}\n\n@media (prefers-reduced-motion: reduce) {\n\tinput { transition: none; }\n}\n\n/* Remove number input spinners */\ninput[type='number']::-webkit-inner-spin-button,\ninput[type='number']::-webkit-outer-spin-button {\n\t-webkit-appearance: none;\n\tappearance: none;\n\t@apply m-0;\n}\n\ninput[type='number'] {\n\t-moz-appearance: textfield;\n\tappearance: textfield;\n}\n\n/* Autofill styling */\n@keyframes onAutoFillStart {\n\tfrom {}\n\tto {}\n}\n\ninput:-webkit-autofill {\n\tanimation-name: onAutoFillStart;\n\t/* Use box-shadow trick to override autofill background */\n\t-webkit-box-shadow: 0 0 0 30px var(--schmancy-sys-color-surface-highest) inset !important;\n\t-webkit-text-fill-color: var(--schmancy-sys-color-surface-on) !important;\n}\n\n/* Simplified autofill for all browsers */\ninput:autofill {\n\tbackground-color: var(--schmancy-sys-color-surface-highest) !important;\n\tcolor: var(--schmancy-sys-color-surface-on) !important;\n}\n\n/* Date and datetime inputs need special handling */\ninput[type=\"date\"],\ninput[type=\"datetime-local\"],\ninput[type=\"time\"],\ninput[type=\"month\"],\ninput[type=\"week\"] {\n\t/* Ensure consistent height and padding */\n\t@apply block w-full rounded-[8px];\n\t/* Reset WebKit styling */\n\t-webkit-appearance: none;\n\tappearance: none;\n\t/* Ensure text doesn't get cut off */\n\tline-height: inherit;\n\t/* Force full width on mobile */\n\twidth: 100% !important;\n\tmin-width: 100%;\n\tmax-width: 100%;\n\t/* Remove any default margins */\n\tmargin: 0;\n\t/* Force border radius */\n\tborder-radius: 8px !important;\n\toverflow: hidden;\n}\n\n/* WebKit date/time edit container - this is what needs centering */\ninput::-webkit-datetime-edit,\ninput::-webkit-datetime-edit-fields-wrapper {\n\t/* Center the date/time fields vertically */\n\tdisplay: flex;\n\talign-items: center;\n\theight: 100%;\n\t/* Ensure full width on mobile */\n\twidth: 100%;\n\tpadding: 0;\n\tmargin: 0;\n}\n\ninput::-webkit-datetime-edit {\n\t/* Ensure the edit container fills available space */\n\tflex: 1;\n\twidth: 100%;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n\t/* Make fields wrapper expand */\n\tflex: 1;\n\twidth: 100%;\n\tjustify-content: space-between;\n}\n\ninput::-webkit-datetime-edit-text {\n\t/* Ensure separators are also centered */\n\tdisplay: flex;\n\talign-items: center;\n}\n\n/* Individual date fields */\ninput::-webkit-datetime-edit-day-field,\ninput::-webkit-datetime-edit-month-field,\ninput::-webkit-datetime-edit-year-field,\ninput::-webkit-datetime-edit-hour-field,\ninput::-webkit-datetime-edit-minute-field,\ninput::-webkit-datetime-edit-second-field,\ninput::-webkit-datetime-edit-millisecond-field,\ninput::-webkit-datetime-edit-meridiem-field {\n\t/* Ensure fields don't shrink */\n\tflex-shrink: 0;\n\tpadding: 0 2px;\n}\n\n/* Safari date input calendar icon */\ninput[type=\"date\"]::-webkit-calendar-picker-indicator,\ninput[type=\"datetime-local\"]::-webkit-calendar-picker-indicator,\ninput[type=\"time\"]::-webkit-calendar-picker-indicator,\ninput[type=\"month\"]::-webkit-calendar-picker-indicator,\ninput[type=\"week\"]::-webkit-calendar-picker-indicator {\n\t/* Make the calendar icon more subtle */\n\topacity: 0.5;\n\tcursor: pointer;\n}\n\n/* Firefox date input styling */\n@-moz-document url-prefix() {\n\tinput[type=\"date\"],\n\tinput[type=\"datetime-local\"],\n\tinput[type=\"time\"] {\n\t\t/* Firefox needs explicit height */\n\t\tmin-height: inherit;\n\t}\n}\n\n/* iOS Safari specific fixes */\n@supports (-webkit-touch-callout: none) {\n\tinput[type=\"date\"],\n\tinput[type=\"datetime-local\"],\n\tinput[type=\"time\"],\n\tinput[type=\"month\"],\n\tinput[type=\"week\"] {\n\t\t/* iOS Safari needs explicit width */\n\t\twidth: -webkit-fill-available !important;\n\t\twidth: fill-available !important;\n\t\t/* Remove default iOS styling */\n\t\t-webkit-appearance: none;\n\t\tappearance: none;\n\t\tborder-radius: 0;\n\t\t/* Remove default padding that causes issues */\n\t\tpadding-left: 12px !important;\n\t\tpadding-right: 12px !important;\n\t}\n\t\n\t/* Target shadow DOM elements on iOS */\n\tinput::-webkit-datetime-edit {\n\t\t/* Force full width */\n\t\twidth: 100% !important;\n\t\tpadding-left: 0 !important;\n\t\tpadding-right: 0 !important;\n\t}\n\t\n\tinput::-webkit-datetime-edit-fields-wrapper {\n\t\t/* Ensure proper spacing on mobile */\n\t\twidth: 100% !important;\n\t\tpadding: 0 !important;\n\t\tmargin: 0 !important;\n\t}\n}\n","import { html, LitElement, nothing, unsafeCSS } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map, takeUntil, timer } from 'rxjs'\n\nimport { SchmancyFormField } from '@mixins/index'\n\n// Import styles\nimport style from './input.scss?inline'\n\n// If you want to be form-associated, define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t\t'sch-input': SchmancyInput\n\t}\n}\n\ntype EventDetails = {\n\tvalue: string\n}\n\n/**\n * Custom events the component may emit:\n * - 'input': on every keystroke\n * - 'change': on native blur/change\n * - 'enter': specifically when user presses Enter\n */\nexport type SchmancyInputInputEvent = CustomEvent<EventDetails>\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\nexport type SchmancyInputEnterEvent = CustomEvent<EventDetails>\n\n/**\n * Size variants for the input - M3 spec aligned.\n * - xxs: Ultra-compact (24dp) - for menu cards, compact UIs\n * - xs: Dense/compact (32dp) - M3 density -3\n * - sm: Default (40dp) - M3 density 0\n * - md: Standard (48dp) - M3 large\n * - lg: Extra large (56dp) - M3 extra large\n */\nexport type InputSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg'\n\n/**\n * Enhanced version of the SchmancyInput component with improved form integration\n * and compatibility with legacy API.\n *\n * This component uses the native form association API and maintains parity with\n * native input behaviors while providing a stylish, accessible interface.\n *\n * @prop {string} name - Name attribute for form submission (inherited from FormFieldMixin)\n * @prop {string} label - Label text for the form field (inherited from FormFieldMixin)\n * @prop {boolean} required - Whether the field is required (inherited from FormFieldMixin)\n * @prop {boolean} disabled - Whether the field is disabled (inherited from FormFieldMixin)\n * @prop {boolean} readonly - Whether the field is read-only (inherited from FormFieldMixin)\n * @prop {boolean} error - Whether the field is in an error state (inherited from FormFieldMixin)\n * @prop {string} validationMessage - The validation message to display (inherited from FormFieldMixin)\n * @prop {string} hint - Optional hint text to display below the field (inherited from FormFieldMixin)\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends SchmancyFormField(unsafeCSS(style)) {\n\t// ----------------------------\n\t// A) Public properties\n\t// ----------------------------\n\n\t/** Auto-incrementing counter for generating unique IDs */\n\tstatic _idCounter = 0\n\n\t/** Override value to be string only for input element */\n\t@property({ type: String, reflect: true })\n\tpublic override value = ''\n\n\n\t/**\n\t * The type of input. (e.g. 'text', 'password', 'email', etc.)\n\t */\n\t@property({ reflect: true })\n\tpublic type: HTMLInputElement['type'] = 'text'\n\n\n\t@property()\n\tpublic placeholder = ''\n\n\n\t/** Pattern validation attribute. */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\n\t/** If true, we visually show a pointer cursor even if readOnly. */\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/** Whether browser spellcheck is enabled. */\n\t@property({ type: Boolean, reflect: true })\n\tpublic spellcheck = false\n\n\t/**\n\t * Text alignment within the input.\n\t * - 'left' | 'center' | 'right'\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic align: 'left' | 'center' | 'right' = 'left'\n\n\t/** inputmode attribute (affects on-screen keyboards in mobile). */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t@property({ type: Number, reflect: true })\n\tpublic minlength?: number\n\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t@property()\n\tpublic min?: string\n\n\t@property()\n\tpublic max?: string\n\n\t@property({ reflect: true })\n\tpublic step?: string = 'any'\n\n\t/** If true, auto-focus this input on first render. */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/** Autocomplete/autofill hints. */\n\t@property({ type: String, reflect: true })\n\tpublic autocomplete: AutoFill = 'on'\n\n\t/**\n\t * tabIndex for focusing by tab key. Typically 0 or -1.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic override tabIndex = 0\n\n\n\t/**\n\t * The size of the input.\n\t * - 'xxs': Ultra-compact size (24px) - for menu cards\n\t * - 'xs': Extra small, very compact size (32px)\n\t * - 'sm': Small, compact size (40px)\n\t * - 'md': Medium size (default) (48px)\n\t * - 'lg': Large size (56px)\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic size: InputSize = 'md'\n\n\t/**\n\t * For datalist support\n\t */\n\t@property({ type: String })\n\tpublic list?: string\n\n\n\t// ----------------------------\n\t// B) Queries & Refs\n\t// ----------------------------\n\t@query('input') private inputElement!: HTMLInputElement\n\tprivate inputRef = createRef<HTMLInputElement>()\n\n\t// ----------------------------\n\t// C) Internal States\n\t// ----------------------------\n\n\t/**\n\t * For integration with browser's autofill support\n\t */\n\t@state()\n\tprivate isAutofilled = false\n\n\t// `touched`, `dirty`, `submitted`, and `validateOn` come from FormFieldMixin.\n\t// `_defaultValue` (mixin) replaces the old `defaultValue` field.\n\n\t// ----------------------------\n\t// D) Form-associated logic\n\t// ----------------------------\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true, // so focus() goes to <input>\n\t}\n\n\t/**\n\t * If user did not provide an ID, auto-generate one so <label for=\"...\">\n\t * and various aria-* attributes can reference it.\n\t */\n\tprotected override willUpdate(changedProps: Map<PropertyKey, unknown>) {\n\t\tif (!this.id) {\n\t\t\tthis.id = `sch-input-${SchmancyInput._idCounter++}`\n\t\t}\n\t\tsuper.willUpdate(changedProps as never)\n\t}\n\n\n\t// `updated()` removed — FormFieldMixin's `willUpdate` recomputes `dirty`,\n\t// triggers `checkValidity()` when `_shouldShowError()` is true, and updates\n\t// `:state(dirty)` automatically.\n\t//\n\t// Default value capture is also handled by the mixin (`firstUpdated` sets\n\t// `_defaultValue` from `value`).\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Form reset and submit are now handled by the mixin via FACE callbacks\n\t\t// (`formResetCallback`) and by `<schmancy-form>`'s submit sweep\n\t\t// (`markSubmitted()`). No manual form listeners needed.\n\t\tthis.setupExternalLabelAssociation()\n\t}\n\n\t/**\n\t * Set up external label association for native HTML label support\n\t */\n\tprivate setupExternalLabelAssociation() {\n\t\tif (this.id) {\n\t\t\tconst setupLabelClickListener = () => {\n\t\t\t\tconst labels = document.querySelectorAll(`label[for=\"${this.id}\"]`)\n\t\t\t\tlabels.forEach(label => {\n\t\t\t\t\t// Use RxJS for label click events\n\t\t\t\t\tfromEvent(label, 'click')\n\t\t\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t\t\t.subscribe(() => {\n\t\t\t\t\t\t\tthis.focus()\n\t\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// Initialize after DOM is ready\n\t\t\tif (document.readyState === 'complete') {\n\t\t\t\tsetupLabelClickListener()\n\t\t\t} else {\n\t\t\t\t// Use RxJS for DOMContentLoaded event\n\t\t\t\tfromEvent(document, 'DOMContentLoaded')\n\t\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t\t.subscribe(setupLabelClickListener)\n\t\t\t}\n\t\t}\n\t}\n\n\t// `disconnectedCallback`, `resetToDefault`, `shouldShowValidation`, and\n\t// `validateInput` are gone — the mixin's `willUpdate` runs `checkValidity()`\n\t// at the right moments (Phase 2/3/4 of the validation contract) and\n\t// `formResetCallback` → `resetForm()` handles reset.\n\n\t/**\n\t * Check validity. Folds in the inner native input's structured\n\t * `ValidityState` flags (`typeMismatch`, `patternMismatch`, `tooShort`,\n\t * `tooLong`, `rangeUnderflow`, `rangeOverflow`, `stepMismatch`, `badInput`)\n\t * via `internals.setValidity` so consumers can target specific flags via\n\t * `field.validity.<flag>` and `:state(value-missing|type-mismatch|…)`.\n\t *\n\t * The visual `error` flag is still gated by the mixin's `_shouldShowError()`.\n\t */\n\t/**\n\t * Re-run checkValidity AFTER render so the native inner input's `.value`\n\t * binding has propagated. The mixin's willUpdate fires checkValidity too\n\t * early — at that point native.validity still reflects the previous value.\n\t */\n\tprotected override updated(changedProps: Map<PropertyKey, unknown>) {\n\t\tsuper.updated?.(changedProps)\n\t\tif (\n\t\t\tchangedProps.has('value') ||\n\t\t\tchangedProps.has('required') ||\n\t\t\tchangedProps.has('type') ||\n\t\t\tchangedProps.has('pattern') ||\n\t\t\tchangedProps.has('min') ||\n\t\t\tchangedProps.has('max') ||\n\t\t\tchangedProps.has('minlength') ||\n\t\t\tchangedProps.has('maxlength')\n\t\t) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\n\t/**\n\t * Pick the first matching `errorMessages` override for the failing flags.\n\t * Order matches the natural priority of validity flags (valueMissing\n\t * before more specific ones — empty trumps malformed).\n\t */\n\tprivate _firstMatchingErrorMessage(v: ValidityState): string | undefined {\n\t\tconst m = this.errorMessages\n\t\tif (!m) return undefined\n\t\tif (v.valueMissing && m.valueMissing) return m.valueMissing\n\t\tif (v.typeMismatch && m.typeMismatch) return m.typeMismatch\n\t\tif (v.patternMismatch && m.patternMismatch) return m.patternMismatch\n\t\tif (v.tooShort && m.tooShort) return m.tooShort\n\t\tif (v.tooLong && m.tooLong) return m.tooLong\n\t\tif (v.rangeUnderflow && m.rangeUnderflow) return m.rangeUnderflow\n\t\tif (v.rangeOverflow && m.rangeOverflow) return m.rangeOverflow\n\t\tif (v.stepMismatch && m.stepMismatch) return m.stepMismatch\n\t\tif (v.badInput && m.badInput) return m.badInput\n\t\treturn undefined\n\t}\n\n\tpublic override checkValidity() {\n\t\t// Prefer @query (always live) over @ref (may lag during initial paint).\n\t\tconst native = this.inputElement ?? this.inputRef.value\n\t\tconst v = native?.validity\n\t\tif (v && !v.valid) {\n\t\t\t// Surface the native flags. valueMissing also surfaces here when\n\t\t\t// `required` + empty — overrides the mixin's coarse check.\n\t\t\tconst flags: ValidityStateFlags = {\n\t\t\t\tvalueMissing: v.valueMissing || undefined,\n\t\t\t\ttypeMismatch: v.typeMismatch || undefined,\n\t\t\t\tpatternMismatch: v.patternMismatch || undefined,\n\t\t\t\ttooShort: v.tooShort || undefined,\n\t\t\t\ttooLong: v.tooLong || undefined,\n\t\t\t\trangeUnderflow: v.rangeUnderflow || undefined,\n\t\t\t\trangeOverflow: v.rangeOverflow || undefined,\n\t\t\t\tstepMismatch: v.stepMismatch || undefined,\n\t\t\t\tbadInput: v.badInput || undefined,\n\t\t\t\tcustomError: v.customError || undefined,\n\t\t\t}\n\t\t\t// errorMessages override: pick the first matching flag and use the\n\t\t\t// consumer-provided copy. Falls back to the native browser message.\n\t\t\tconst overrideMessage = this._firstMatchingErrorMessage(v)\n\t\t\tthis.internals?.setValidity(\n\t\t\t\tflags,\n\t\t\t\toverrideMessage || native.validationMessage || this.validationMessage || 'Invalid value',\n\t\t\t)\n\t\t\tif (this._shouldShowError()) {\n\t\t\t\tthis.error = true\n\t\t\t\t// Always reflect the current flag's message — previous\n\t\t\t\t// validationMessage may be stale (different flag).\n\t\t\t\tconst newMessage = overrideMessage || native.validationMessage\n\t\t\t\tif (newMessage) this.validationMessage = newMessage\n\t\t\t\t// Mirror flags into :state() so CSS can target specifics.\n\t\t\t\tfor (const flag of [\n\t\t\t\t\t'value-missing',\n\t\t\t\t\t'type-mismatch',\n\t\t\t\t\t'pattern-mismatch',\n\t\t\t\t\t'too-short',\n\t\t\t\t\t'too-long',\n\t\t\t\t\t'range-underflow',\n\t\t\t\t\t'range-overflow',\n\t\t\t\t\t'step-mismatch',\n\t\t\t\t\t'bad-input',\n\t\t\t\t]) {\n\t\t\t\t\tthis.internals?.states.delete(flag)\n\t\t\t\t}\n\t\t\t\tif (v.valueMissing) this.internals?.states.add('value-missing')\n\t\t\t\tif (v.typeMismatch) this.internals?.states.add('type-mismatch')\n\t\t\t\tif (v.patternMismatch) this.internals?.states.add('pattern-mismatch')\n\t\t\t\tif (v.tooShort) this.internals?.states.add('too-short')\n\t\t\t\tif (v.tooLong) this.internals?.states.add('too-long')\n\t\t\t\tif (v.rangeUnderflow) this.internals?.states.add('range-underflow')\n\t\t\t\tif (v.rangeOverflow) this.internals?.states.add('range-overflow')\n\t\t\t\tif (v.stepMismatch) this.internals?.states.add('step-mismatch')\n\t\t\t\tif (v.badInput) this.internals?.states.add('bad-input')\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t\t// Native says valid — but the mixin's `required` check might still\n\t\t// fire (mixin checks `value === ''` directly, native may treat empty\n\t\t// differently for type=email/url with no value).\n\t\tconst parentValid = super.checkValidity()\n\t\tif (parentValid) {\n\t\t\t// Clear specific-flag :state() entries.\n\t\t\tfor (const flag of [\n\t\t\t\t'value-missing',\n\t\t\t\t'type-mismatch',\n\t\t\t\t'pattern-mismatch',\n\t\t\t\t'too-short',\n\t\t\t\t'too-long',\n\t\t\t\t'range-underflow',\n\t\t\t\t'range-overflow',\n\t\t\t\t'step-mismatch',\n\t\t\t\t'bad-input',\n\t\t\t]) {\n\t\t\t\tthis.internals?.states.delete(flag)\n\t\t\t}\n\t\t}\n\t\treturn parentValid\n\t}\n\n\t/**\n\t * Show validation UI and check validity.\n\t * Marks the field as submitted so the mixin's gate flips to \"always show.\"\n\t */\n\tpublic override reportValidity() {\n\t\tthis.markSubmitted()\n\t\tconst inputValid = this.inputRef.value?.reportValidity() ?? true\n\t\tconst parentValid = super.reportValidity()\n\t\treturn inputValid && parentValid\n\t}\n\n\t/** Set a custom validation error on both the inner input and the mixin. */\n\tpublic override setCustomValidity(message: string) {\n\t\tif (this.inputRef.value) {\n\t\t\tthis.inputRef.value.setCustomValidity(message)\n\t\t}\n\t\tsuper.setCustomValidity(message)\n\t}\n\n\t// ----------------------------\n\t// E) Lifecycle Hooks & Event Handlers\n\t// ----------------------------\n\tfirstUpdated() {\n\t\t// Autofocus if desired\n\t\tif (this.autofocus) {\n\t\t\t// Schedule focus after initial render — RxJS timer for cancel-on-disconnect.\n\t\t\ttimer(0)\n\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t.subscribe(() => this.focus())\n\t\t}\n\n\t\t// Subscribe to input events\n\t\tthis.setupInputEvents()\n\t\tthis.setupFocusBlurEvents()\n\t\tthis.setupAutofillDetection()\n\t\tthis.setupEnterKeyEvents()\n\t}\n\n\t/**\n\t * Set up input event handling for value changes\n\t */\n\tprivate setupInputEvents() {\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(ev => {\n\t\t\t\t\t// Stop native event from bubbling - we'll dispatch our own custom event\n\t\t\t\t\tev.stopPropagation()\n\n\t\t\t\t\t// Capture all input event properties for complete event forwarding\n\t\t\t\t\tconst inputEvent = ev as InputEvent\n\t\t\t\t\tconst target = ev.target as HTMLInputElement\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: target.value,\n\t\t\t\t\t\tinputType: inputEvent.inputType,\n\t\t\t\t\t\tdata: inputEvent.data,\n\t\t\t\t\t\tisComposing: inputEvent.isComposing,\n\t\t\t\t\t\toriginalEvent: ev,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(eventData => {\n\t\t\t\t// Update component value\n\t\t\t\tthis.value = eventData.value\n\n\t\t\t\t// `dirty` is a getter on the mixin (value vs _defaultValue) — no manual set.\n\n\t\t\t\t// Fire custom 'input' event with extended details\n\t\t\t\tconst customEvent = new CustomEvent<EventDetails>('input', {\n\t\t\t\t\tdetail: { value: eventData.value },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t})\n\n\t\t\t\t// Add additional properties to match native events more closely\n\t\t\t\tObject.defineProperties(customEvent, {\n\t\t\t\t\tinputType: { value: eventData.inputType },\n\t\t\t\t\tdata: { value: eventData.data },\n\t\t\t\t\tisComposing: { value: eventData.isComposing },\n\t\t\t\t})\n\n\t\t\t\tthis.dispatchEvent(customEvent)\n\n\t\t\t\t// Mixin's willUpdate runs checkValidity() on value-change when\n\t\t\t\t// _shouldShowError() is true — no manual validateInput() call.\n\t\t\t})\n\n\t\t// Subscribe to native change events (usually on blur)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(ev => {\n\t\t\t\t\t// Stop native event from bubbling - we'll dispatch our own custom event\n\t\t\t\t\tev.stopPropagation()\n\t\t\t\t\treturn (ev.target as HTMLInputElement).value\n\t\t\t\t}),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.emitChange({ value })\n\t\t\t\t// Validation runs automatically via mixin's willUpdate.\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up focus/blur event handling\n\t */\n\tprivate setupFocusBlurEvents() {\n\t\tfromEvent<FocusEvent>(this.inputElement, 'focus')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(ev => {\n\t\t\t\t// Create a custom focus event that includes standard props\n\t\t\t\tconst focusEvent = new CustomEvent('focus', {\n\t\t\t\t\tbubbles: ev.bubbles,\n\t\t\t\t\tcancelable: ev.cancelable,\n\t\t\t\t\tcomposed: ev.composed,\n\t\t\t\t})\n\n\t\t\t\t// Add focus-specific properties\n\t\t\t\tObject.defineProperties(focusEvent, {\n\t\t\t\t\trelatedTarget: { value: ev.relatedTarget },\n\t\t\t\t})\n\n\t\t\t\tthis.dispatchEvent(focusEvent)\n\t\t\t})\n\n\t\tfromEvent<FocusEvent>(this.inputElement, 'blur')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(ev => {\n\t\t\t\t// Mark as touched on blur — mixin's willUpdate handles the rest\n\t\t\t\t// (validates if dirty, broadcasts :state(touched), etc.).\n\t\t\t\tthis.markTouched()\n\n\t\t\t\t// Create a custom blur event that includes standard props\n\t\t\t\tconst blurEvent = new CustomEvent('blur', {\n\t\t\t\t\tbubbles: ev.bubbles,\n\t\t\t\t\tcancelable: ev.cancelable,\n\t\t\t\t\tcomposed: ev.composed,\n\t\t\t\t})\n\n\t\t\t\t// Add blur-specific properties\n\t\t\t\tObject.defineProperties(blurEvent, {\n\t\t\t\t\trelatedTarget: { value: ev.relatedTarget },\n\t\t\t\t})\n\n\t\t\t\tthis.dispatchEvent(blurEvent)\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up autofill detection\n\t */\n\tprivate setupAutofillDetection() {\n\t\t// Detect autofill animation (Chrome, etc.)\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(\n\t\t\t\tfilter(ev => ev.animationName === 'onAutoFillStart'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(ev => {\n\t\t\t\tconst { value } = ev.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.isAutofilled = true\n\t\t\t\t// `dirty` is a getter on the mixin — recomputes from value vs _defaultValue.\n\n\t\t\t\t// Dispatch autofill event for integration with autofill systems\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('autofill', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\n\t\t\t\t// Also propagate as a change event like browsers do\n\t\t\t\tthis.emitChange({ value })\n\t\t\t})\n\n\t\t// Detect end of autofill (Chrome)\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(\n\t\t\t\tfilter(ev => ev.animationName === 'onAutoFillCancel'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.isAutofilled = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up enter key event handling\n\t */\n\tprivate setupEnterKeyEvents() {\n\t\t// Listen for Enter on keydown\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(ev => ev.key === 'Enter'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(ev => {\n\t\t\t\tconst { value } = ev.target as HTMLInputElement\n\t\t\t\t\n\t\t\t\t// Update value if changed (mixin recomputes dirty automatically)\n\t\t\t\tif (this.value !== value) {\n\t\t\t\t\tthis.value = value\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Blur the input to trigger change event naturally\n\t\t\t\t// This mimics what happens when you tab out of the field\n\t\t\t\tthis.inputElement.blur()\n\n\t\t\t\t// Dispatch enhanced enter event\n\t\t\t\tconst enterEvent = new CustomEvent<EventDetails>('enter', {\n\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t})\n\n\t\t\t\t// Add extra keyboard event props\n\t\t\t\tObject.defineProperties(enterEvent, {\n\t\t\t\t\tkey: { value: 'Enter' },\n\t\t\t\t\tcode: { value: 'Enter' },\n\t\t\t\t\tkeyCode: { value: 13 },\n\t\t\t\t\twhich: { value: 13 },\n\t\t\t\t})\n\n\t\t\t\tthis.dispatchEvent(enterEvent)\n\t\t\t})\n\t}\n\n\t// ----------------------------\n\t// F) Utility Methods\n\t// ----------------------------\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the native validity state of the inner <input>. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Sets the selection range. Mirrors native input.setSelectionRange\n\t */\n\tpublic setSelectionRange(start: number, end: number, direction?: 'forward' | 'backward' | 'none') {\n\t\tthis.inputRef.value?.setSelectionRange(start, end, direction)\n\t}\n\n\t/**\n\t * Returns the selected text within the input (start position)\n\t */\n\tpublic get selectionStart(): number | null {\n\t\treturn this.inputRef.value?.selectionStart ?? null\n\t}\n\n\t/**\n\t * Returns the selected text within the input (end position)\n\t */\n\tpublic get selectionEnd(): number | null {\n\t\treturn this.inputRef.value?.selectionEnd ?? null\n\t}\n\n\t/**\n\t * Returns the direction of selection\n\t */\n\tpublic get selectionDirection(): 'forward' | 'backward' | 'none' | null {\n\t\treturn this.inputRef.value?.selectionDirection ?? null\n\t}\n\n\t/**\n\t * Sets the range of text to be selected.\n\t */\n\tpublic setRangeText(\n\t\treplacement: string,\n\t\tstart?: number,\n\t\tend?: number,\n\t\tselectMode?: 'select' | 'start' | 'end' | 'preserve',\n\t) {\n\t\tif (start !== undefined && end !== undefined) {\n\t\t\tthis.inputRef.value?.setRangeText(replacement, start, end, selectMode)\n\t\t} else {\n\t\t\tthis.inputRef.value?.setRangeText(replacement)\n\t\t}\n\t}\n\n\t/**\n\t * Override to forward focus to the internal <input>.\n\t * Also dispatch a 'focus' event for external listeners.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Override to forward clicks to the internal <input>.\n\t * Also dispatch a 'click' event for external listeners.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/** Forward blur to the internal <input>. */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\t// ----------------------------\n\t// G) Rendering\n\t// ----------------------------\n\tprotected override render() {\n\t\t// Determine height and padding based on size - M3 spec aligned\n\t\tconst getHeightAndPadding = () => {\n\t\t\tswitch (this.size) {\n\t\t\t\tcase 'xxs':\n\t\t\t\t\t// Ultra-compact: 24dp height\n\t\t\t\t\treturn {\n\t\t\t\t\t\theight: '24px',\n\t\t\t\t\t\tpadding: '0 8px',\n\t\t\t\t\t\tfontSize: '0.625rem', // 10px\n\t\t\t\t\t}\n\t\t\t\tcase 'xs':\n\t\t\t\t\t// M3 dense: 32dp height\n\t\t\t\t\treturn {\n\t\t\t\t\t\theight: '32px',\n\t\t\t\t\t\tpadding: '0 12px',\n\t\t\t\t\t\tfontSize: '0.75rem', // 12px\n\t\t\t\t\t}\n\t\t\t\tcase 'sm':\n\t\t\t\t\t// M3 default: 40dp height\n\t\t\t\t\treturn {\n\t\t\t\t\t\theight: '40px',\n\t\t\t\t\t\tpadding: '0 16px',\n\t\t\t\t\t\tfontSize: '0.875rem', // 14px - M3 body-large\n\t\t\t\t\t}\n\t\t\t\tcase 'lg':\n\t\t\t\t\t// M3 extra large: 56dp height\n\t\t\t\t\treturn {\n\t\t\t\t\t\theight: '56px',\n\t\t\t\t\t\tpadding: '0 20px',\n\t\t\t\t\t\tfontSize: '1rem', // 16px\n\t\t\t\t\t}\n\t\t\t\tcase 'md':\n\t\t\t\tdefault:\n\t\t\t\t\t// M3 standard: 48dp height\n\t\t\t\t\treturn {\n\t\t\t\t\t\theight: '48px',\n\t\t\t\t\t\tpadding: '0 16px',\n\t\t\t\t\t\tfontSize: '0.875rem', // 14px - M3 body-large\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst { height, padding, fontSize } = getHeightAndPadding()\n\n\t\t// Check if it's a date-type input\n\t\tconst isDateType = ['date', 'datetime-local', 'time', 'month', 'week'].includes(this.type)\n\n\t\tconst inputClasses = {\n\t\t\t// Base styles - outlined rounded input\n\t\t\t'block w-full min-w-0 rounded-2xl border bg-surface-containerLowest text-surface-on': true,\n\t\t\t// Border color\n\t\t\t'border-outline': !this.error,\n\t\t\t'border-error-default': this.error,\n\t\t\t// Focus styles\n\t\t\t'outline-secondary-default focus:outline-1 focus:border-secondary-default': true,\n\t\t\t// Disabled styles\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t// Placeholder\n\t\t\t'placeholder:text-muted': true,\n\t\t\t// Ring styles (subtle focus ring)\n\t\t\t'ring-0 focus:ring-1 focus:ring-inset': true,\n\t\t\t// Ring colors based on error state\n\t\t\t'focus:ring-secondary-default': !this.error,\n\t\t\t'focus:ring-error-default': this.error,\n\t\t\t// Readonly styles\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t// Text alignment (date inputs always left-aligned)\n\t\t\t'text-left': this.align === 'left' || isDateType,\n\t\t\t'text-center': this.align === 'center' && !isDateType,\n\t\t\t'text-right': this.align === 'right' && !isDateType,\n\t\t\t// Autofill\n\t\t\tautofilled: this.isAutofilled,\n\t\t}\n\n\t\tconst labelClasses = {\n\t\t\t'block mb-1 font-medium': true,\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'text-[10px]': this.size === 'xxs',\n\t\t\t'text-xs': this.size === 'xs',\n\t\t\t'text-sm': this.size === 'sm',\n\t\t\t'text-base': this.size === 'md',\n\t\t\t'text-lg': this.size === 'lg',\n\t\t\t'text-primary-default': !this.error,\n\t\t\t'text-error-default': this.error,\n\t\t}\n\n\t\tconst styles = {\n\t\t\theight,\n\t\t\tpadding,\n\t\t\tfontSize,\n\t\t\t// Ensure vertical centering for all input types\n\t\t\tlineHeight: height,\n\t\t}\n\n\t\t/**\n\t\t * - If `this.label` is present, we render a proper `<label for=\"${this.id}\">`.\n\t\t * - If not, we add an aria-label to the <input> for better accessibility.\n\t\t * - If there's a `hint`, we reference it via aria-describedby.\n\t\t * - If there's an error, we set aria-invalid and could set aria-errormessage.\n\t\t */\n\t\treturn html`\n\t\t\t<div class=\"w-full min-w-0 ${isDateType ? 'date-input-container' : ''}\">\n\t\t\t\t${when(\n\t\t\t\t\tthis.label,\n\t\t\t\t\t() => html`\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t\t\tclass=${this.classMap(labelClasses)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.label}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\n\t\t\t\t<input\n\t\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t\tid=${this.id}\n\t\t\t\t\tname=${this.name}\n\t\t\t\t\tclass=${this.classMap(inputClasses)}\n\t\t\t\t\tstyle=${this.styleMap(styles)}\n\t\t\t\t\t.value=${this.value}\n\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\t\t.spellcheck=${this.spellcheck}\n\t\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t\t\t.step=${this.step ?? ''}\n\t\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\t\tlist=${ifDefined(this.list)}\n\t\t\t\t\t?required=${this.required}\n\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t?readonly=${this.readonly}\n\t\t\t\t\taria-invalid=${this.error ? 'true' : 'false'}\n\t\t\t\t\taria-required=${this.required ? 'true' : 'false'}\n\t\t\t\t\taria-labelledby=${this.label ? `label-${this.id}` : nothing}\n\t\t\t\t\taria-describedby=${this.hint || this.validationMessage ? `hint-${this.id}` : nothing}\n\t\t\t\t\taria-label=${ifDefined(!this.label ? this.placeholder || 'Input' : undefined)}\n\t\t\t\t/>\n\n\t\t\t\t${when(\n\t\t\t\t\tthis.hint || (this.error && this.validationMessage),\n\t\t\t\t\t() => html`\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tid=\"hint-${this.id}\"\n\t\t\t\t\t\t\tclass=\"mt-1 text-sm ${this.error ? 'text-error-default' : 'text-surface-onVariant'}\"\n\t\t\t\t\t\t\trole=${ifDefined(this.error ? 'alert' : undefined)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.error && this.validationMessage ? this.validationMessage : this.hint}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\n/**\n * Register the component with the legacy tag name for backward compatibility\n * @prop {string} label - Label text for the form field (inherited from FormFieldMixin)\n * @prop {boolean} required - Whether the field is required (inherited from FormFieldMixin)\n * @prop {boolean} disabled - Whether the field is disabled (inherited from FormFieldMixin)\n * @prop {boolean} readonly - Whether the field is read-only (inherited from FormFieldMixin)\n * @prop {boolean} error - Whether the field is in an error state (inherited from FormFieldMixin)\n * @prop {string} validationMessage - The validation message to display (inherited from FormFieldMixin)\n * @prop {string} hint - Optional hint text to display below the field (inherited from FormFieldMixin)\n */\n@customElement('sch-input')\nexport class SchmancyInputCompat extends SchmancyInput {}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst r=(r,o,t)=>{for(const t of o)if(t[0]===r)return(0,t[1])();return t?.()};export{r as choose};\n//# sourceMappingURL=choose.js.map\n","import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { fromEvent } from 'rxjs'\nimport { filter, tap, takeUntil } from 'rxjs/operators'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Type-based weight defaults (when using Tailwind classes without token) */\n\t:host([type='display']),\n\t:host([type='headline']),\n\t:host([type='body']) {\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='label']),\n\t:host([type='subtitle']),\n\t:host([type='title']) {\n\t\tfont-weight: 500;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n\n\t:host([editable]) {\n\t\tcursor: text;\n\t\tborder-radius: 4px;\n\t\ttransition: background 150ms;\n\t\tmin-height: 1em;\n\t}\n\t/* Editable div lives in shadow DOM so light DOM (Lit markers) is untouched */\n\t.edit {\n\t\toutline: none;\n\t\tmin-height: 1em;\n\t\tfont: inherit;\n\t\tcolor: inherit;\n\t\tletter-spacing: inherit;\n\t\tline-height: inherit;\n\t}\n\t.edit:empty::before {\n\t\tcontent: attr(data-placeholder);\n\t\tpointer-events: none;\n\t\tdisplay: block;\n\t\topacity: 0.35;\n\t}\n`];\n\tstatic shadowRootOptions: ShadowRootInit = {\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The size token.\n\t * @deprecated Prefer using Tailwind responsive text classes for better responsive design.\n\t * Set token=\"\" and use class=\"text-sm md:text-base lg:text-lg\" instead.\n\t * Example: <schmancy-typography type=\"display\" token=\"\" class=\"text-2xl sm:text-3xl md:text-4xl\">\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl' | ''}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number })\n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\t/** When true, the element becomes contenteditable and dispatches 'change' events on blur/Enter */\n\t@property({ type: Boolean, reflect: true }) editable = false\n\t/** The text value when in editable mode. Set via property binding: .value=${...} */\n\t@property({ type: String }) value = ''\n\t/** Placeholder shown when editable and empty */\n\t@property({ type: String }) placeholder = ''\n\n\tprivate _editRef = createRef<HTMLDivElement>()\n\n\t/** Focus and select all text in editable mode */\n\tselectAll() {\n\t\tconst el = this._editRef.value\n\t\tif (!el) return\n\t\tel.focus()\n\t\tconst sel = window.getSelection()\n\t\tif (sel && el.textContent) {\n\t\t\tconst range = document.createRange()\n\t\t\trange.selectNodeContents(el)\n\t\t\tsel.removeAllRanges()\n\t\t\tsel.addRange(range)\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tfromEvent<FocusEvent>(this, 'focusout').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\ttap(() => {\n\t\t\t\tconst el = this._editRef.value\n\t\t\t\tif (!el) return\n\t\t\t\tconst newValue = el.innerText.trim()\n\t\t\t\tif (newValue !== this.value) {\n\t\t\t\t\tthis.dispatchEvent(new CustomEvent('change', {\n\t\t\t\t\t\tdetail: { value: newValue },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t\t// Ensure truly empty so :empty CSS placeholder works\n\t\t\t\tif (!newValue) el.textContent = ''\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\t// Clean stray <br> / whitespace nodes so :empty CSS matches\n\t\tfromEvent(this, 'input').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\ttap(() => {\n\t\t\t\tconst el = this._editRef.value\n\t\t\t\tif (el && !el.innerText.trim()) el.textContent = ''\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\tfromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\tfilter(e => e.key === 'Enter'),\n\t\t\ttap(e => { e.preventDefault(); (this._editRef.value ?? this).blur() }),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\t}\n\n\tprotected updated(changedProperties: Map<string, unknown>): void {\n\t\tsuper.updated(changedProperties)\n\t\tif (changedProperties.has('maxLines')) {\n\t\t\t// Remove all line-clamp classes\n\t\t\tthis.classList.remove('line-clamp-1', 'line-clamp-2', 'line-clamp-3', 'line-clamp-4', 'line-clamp-5', 'line-clamp-6')\n\t\t\t// Add the appropriate one\n\t\t\tif (this.maxLines) {\n\t\t\t\tthis.classList.add(`line-clamp-${this.maxLines}`)\n\t\t\t}\n\t\t}\n\t\tif ((changedProperties.has('value') || changedProperties.has('editable')) && this.editable) {\n\t\t\tconst el = this._editRef.value\n\t\t\tif (el && document.activeElement !== el) {\n\t\t\t\tif (this.value) {\n\t\t\t\t\tel.innerText = this.value\n\t\t\t\t} else {\n\t\t\t\t\tel.textContent = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\tif (this.editable) {\n\t\t\treturn html`<div\n\t\t\t\t${ref(this._editRef)}\n\t\t\t\tclass=\"edit\"\n\t\t\t\tcontenteditable=\"true\"\n\t\t\t\tdata-placeholder=${this.placeholder ?? ''}\n\t\t\t></div>`\n\t\t}\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}","import { SchmancyElement } from '@mixins/index'\nimport { css, html, type TemplateResult } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { choose } from 'lit/directives/choose.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { gravity } from '../directives/gravity'\nimport type SchmancyInput from '../form/fields/input/input'\n\nimport '../form/form'\nimport '../form/fields/input/input'\nimport '../typography/typography'\nimport '../button/button'\n\n/**\n * Internal body component used by the `confirm()` / `prompt()` sugar.\n *\n * `overlay.service.ts` lazy-imports this body via `await import('./overlay.confirm-body')`\n * so by mount time `schmancy-button`, `schmancy-input`, `schmancy-typography`,\n * and `schmancy-icon` are all registered.\n *\n * Emits a `close` CustomEvent with the typed result; the overlay picks\n * that up as the primary return channel. For custom-styled confirms,\n * callers pass their own component to `show()`.\n */\n@customElement('schmancy-overlay-prompt-body')\nexport class SchmancyOverlayPromptBody extends SchmancyElement {\n\tstatic styles = [css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\tmin-width: 280px;\n\t\t\tmax-width: 480px;\n\t\t}\n\t`]\n\n\t@property({ type: String }) heading?: string\n\t@property({ type: String }) subtitle?: string\n\t@property({ type: String }) message?: string\n\t@property({ type: String, attribute: 'confirm-text' }) confirmText = 'Confirm'\n\t@property({ type: String, attribute: 'cancel-text' }) cancelText = 'Cancel'\n\t@property({ type: String, reflect: true }) variant: 'default' | 'danger' = 'default'\n\n\t/** Presence of `mode` switches between confirm (boolean) and prompt (string). */\n\t@property({ type: String }) mode: 'confirm' | 'prompt' = 'confirm'\n\t@property({ type: String }) label?: string\n\t@property({ type: String, attribute: 'default-value' }) defaultValue = ''\n\t@property({ type: String }) placeholder?: string\n\t@property({ type: String, attribute: 'input-type' })\n\tinputType:\n\t\t| 'text'\n\t\t| 'email'\n\t\t| 'password'\n\t\t| 'tel'\n\t\t| 'url'\n\t\t| 'number'\n\t\t| 'search'\n\t\t| 'date'\n\t\t| 'time'\n\t\t| 'datetime-local' = 'text'\n\t@property({ type: String }) pattern?: string\n\t@property({ type: Boolean }) required = false\n\n\t@query('schmancy-input') private _schmancyInput?: SchmancyInput\n\n\toverride firstUpdated(): void {\n\t\tif (this.mode === 'prompt') {\n\t\t\tthis._schmancyInput?.focus()\n\t\t}\n\t}\n\n\tprivate dismiss(value: boolean | string | null): void {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('close', {\n\t\t\t\tdetail: value,\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleCancel = (): void => {\n\t\tthis.dismiss(this.mode === 'prompt' ? null : false)\n\t}\n\n\tprivate handleConfirm = (): void => {\n\t\tif (this.mode === 'prompt') {\n\t\t\tif (this._schmancyInput && !this._schmancyInput.reportValidity()) return\n\t\t\tthis.dismiss(this._schmancyInput?.value ?? '')\n\t\t} else {\n\t\t\tthis.dismiss(true)\n\t\t}\n\t}\n\n\tprivate handleSubmit = (e: Event): void => {\n\t\te.preventDefault()\n\t\tthis.handleConfirm()\n\t}\n\n\tprotected render(): TemplateResult {\n\t\treturn html`\n\t\t\t<schmancy-form @submit=${this.handleSubmit} class=\"p-6\">\n\t\t\t\t<div class=\"flex flex-col gap-3\">\n\t\t\t\t\t${when(\n\t\t\t\t\t\tthis.heading,\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t\t\t${gravity({ delay: 0, mass: 0.8 })}\n\t\t\t\t\t\t\t\ttype=\"headline\"\n\t\t\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t\t\t>${this.heading}</schmancy-typography>\n\t\t\t\t\t\t`,\n\t\t\t\t\t)}\n\n\t\t\t\t\t${when(\n\t\t\t\t\t\tthis.subtitle,\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t\t\t${gravity({ delay: 60, mass: 0.9 })}\n\t\t\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\t\t\ttoken=\"md\"\n\t\t\t\t\t\t\t\tclass=\"opacity-70\"\n\t\t\t\t\t\t\t>${this.subtitle}</schmancy-typography>\n\t\t\t\t\t\t`,\n\t\t\t\t\t)}\n\n\t\t\t\t\t${choose(\n\t\t\t\t\t\tthis.mode,\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'prompt',\n\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\t\t${gravity({ delay: 120, mass: 1.0 })}\n\t\t\t\t\t\t\t\t\t\t.label=${this.label ?? ''}\n\t\t\t\t\t\t\t\t\t\t.value=${this.defaultValue}\n\t\t\t\t\t\t\t\t\t\t.type=${this.inputType}\n\t\t\t\t\t\t\t\t\t\tplaceholder=${ifDefined(this.placeholder)}\n\t\t\t\t\t\t\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t\t\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\t\tthis.message,\n\t\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t\t\t\t\t\t\t${gravity({ delay: 180, mass: 1.0 })}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\t\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"opacity-70\"\n\t\t\t\t\t\t\t\t\t\t\t>${this.message}</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t],\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\tthis.message,\n\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t\t\t\t\t${gravity({ delay: 60, mass: 0.9 })}\n\t\t\t\t\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\t\t\t\t\ttoken=\"md\"\n\t\t\t\t\t\t\t\t\t\tclass=\"opacity-70\"\n\t\t\t\t\t\t\t\t\t>${this.message}</schmancy-typography>\n\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t`,\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<div ${gravity({ delay: 180, mass: 1.0 })} class=\"flex justify-end gap-2 mt-6\">\n\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t@click=${this.handleCancel}\n\t\t\t\t\t>${this.cancelText}</schmancy-button>\n\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\tcolor=${this.variant === 'danger' ? 'error' : 'primary'}\n\t\t\t\t\t>${this.confirmText}</schmancy-button>\n\t\t\t\t</div>\n\t\t\t</schmancy-form>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-overlay-prompt-body': SchmancyOverlayPromptBody\n\t}\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,114,118,119,120,131],"mappings":"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"}