@mhmo91/schmancy 0.10.36 → 0.10.38

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 (572) hide show
  1. package/custom-elements.json +54 -31
  2. package/dist/SchmancyElement-BNnyBOwk.js +286 -0
  3. package/dist/{SchmancyElement-C3CpdNsi.js.map → SchmancyElement-BNnyBOwk.js.map} +1 -1
  4. package/dist/SchmancyElement-C41uPa6l.cjs +2 -0
  5. package/dist/{SchmancyElement-BBzRWB1w.cjs.map → SchmancyElement-C41uPa6l.cjs.map} +1 -1
  6. package/dist/agent/schmancy.agent.js +2432 -2361
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +4 -22
  9. package/dist/area-2FrTZI_T.cjs +21 -0
  10. package/dist/area-2FrTZI_T.cjs.map +1 -0
  11. package/dist/{area-BA96mwFY.js → area-KVDzhT4s.js} +4 -4
  12. package/dist/area-KVDzhT4s.js.map +1 -0
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +2 -2
  15. package/dist/{audio-D52h1jAT.js → audio-D3gnp15Y.js} +1 -1
  16. package/dist/{audio-D52h1jAT.js.map → audio-D3gnp15Y.js.map} +1 -1
  17. package/dist/{audio-B_jT9Xr7.cjs → audio-EaD0Ggfh.cjs} +1 -1
  18. package/dist/{audio-B_jT9Xr7.cjs.map → audio-EaD0Ggfh.cjs.map} +1 -1
  19. package/dist/audio.cjs +1 -1
  20. package/dist/audio.js +2 -2
  21. package/dist/autocomplete-DMmxsvUe.cjs +115 -0
  22. package/dist/autocomplete-DMmxsvUe.cjs.map +1 -0
  23. package/dist/{autocomplete-CI4QJXAN.js → autocomplete-DWiEqlQf.js} +96 -96
  24. package/dist/autocomplete-DWiEqlQf.js.map +1 -0
  25. package/dist/autocomplete.cjs +1 -1
  26. package/dist/autocomplete.js +1 -1
  27. package/dist/avatar.cjs +1 -1
  28. package/dist/avatar.js +3 -3
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/{boat-_N1x5U_3.js → boat-DmyG7y1V.js} +4 -4
  32. package/dist/{boat-_N1x5U_3.js.map → boat-DmyG7y1V.js.map} +1 -1
  33. package/dist/{boat-I4B1UNMc.cjs → boat-dB1_qLm0.cjs} +1 -1
  34. package/dist/{boat-I4B1UNMc.cjs.map → boat-dB1_qLm0.cjs.map} +1 -1
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/breadcrumb.cjs +3 -3
  38. package/dist/breadcrumb.cjs.map +1 -1
  39. package/dist/breadcrumb.js +4 -4
  40. package/dist/breadcrumb.js.map +1 -1
  41. package/dist/{busy-BIUonyPk.cjs → busy-Cj_PV7oC.cjs} +1 -1
  42. package/dist/{busy-BIUonyPk.cjs.map → busy-Cj_PV7oC.cjs.map} +1 -1
  43. package/dist/{busy-CCB3qKnh.js → busy-enYCTssB.js} +2 -2
  44. package/dist/{busy-CCB3qKnh.js.map → busy-enYCTssB.js.map} +1 -1
  45. package/dist/busy.cjs +1 -1
  46. package/dist/busy.js +1 -1
  47. package/dist/{button-C89bPnHt.js → button-BQSOVnHn.js} +10 -9
  48. package/dist/button-BQSOVnHn.js.map +1 -0
  49. package/dist/button-WRmXlNyw.cjs +62 -0
  50. package/dist/button-WRmXlNyw.cjs.map +1 -0
  51. package/dist/button.cjs +6 -6
  52. package/dist/button.cjs.map +1 -1
  53. package/dist/button.js +17 -16
  54. package/dist/button.js.map +1 -1
  55. package/dist/{card-CFsCgJKZ.js → card-BHTz1GwB.js} +16 -16
  56. package/dist/card-BHTz1GwB.js.map +1 -0
  57. package/dist/{card-BO93_oxQ.cjs → card-ThG_ZaQE.cjs} +3 -3
  58. package/dist/card-ThG_ZaQE.cjs.map +1 -0
  59. package/dist/card.cjs +1 -1
  60. package/dist/card.js +1 -1
  61. package/dist/{checkbox-CFUBUFtW.cjs → checkbox-C4zeib84.cjs} +2 -2
  62. package/dist/{checkbox-CFUBUFtW.cjs.map → checkbox-C4zeib84.cjs.map} +1 -1
  63. package/dist/{checkbox-Bh7q0djq.js → checkbox-Ce0DlAdW.js} +6 -6
  64. package/dist/{checkbox-Bh7q0djq.js.map → checkbox-Ce0DlAdW.js.map} +1 -1
  65. package/dist/checkbox.cjs +1 -1
  66. package/dist/checkbox.js +1 -1
  67. package/dist/{chips-BfzpsyV1.cjs → chips-B1jui8Pe.cjs} +3 -3
  68. package/dist/chips-B1jui8Pe.cjs.map +1 -0
  69. package/dist/{chips-6YaoRmeG.js → chips-DAy6v93f.js} +20 -19
  70. package/dist/chips-DAy6v93f.js.map +1 -0
  71. package/dist/chips.cjs +1 -1
  72. package/dist/chips.js +2 -2
  73. package/dist/connectivity.cjs +1 -1
  74. package/dist/connectivity.js +3 -3
  75. package/dist/content-drawer.cjs +1 -1
  76. package/dist/content-drawer.js +1 -1
  77. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
  78. package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
  79. package/dist/{date-range-N-A249O9.cjs → date-range-BUaPgbTZ.cjs} +2 -2
  80. package/dist/date-range-BUaPgbTZ.cjs.map +1 -0
  81. package/dist/{date-range-CEo_Kjqw.js → date-range-NTpoA1in.js} +4 -4
  82. package/dist/date-range-NTpoA1in.js.map +1 -0
  83. package/dist/{date-range-inline-DFopysWF.cjs → date-range-inline-D0I6k84h.cjs} +1 -1
  84. package/dist/{date-range-inline-DFopysWF.cjs.map → date-range-inline-D0I6k84h.cjs.map} +1 -1
  85. package/dist/{date-range-inline-BwialV9j.js → date-range-inline-DjRdMZ1z.js} +2 -2
  86. package/dist/{date-range-inline-BwialV9j.js.map → date-range-inline-DjRdMZ1z.js.map} +1 -1
  87. package/dist/date-range-inline.cjs +1 -1
  88. package/dist/date-range-inline.js +1 -1
  89. package/dist/date-range.cjs +1 -1
  90. package/dist/date-range.js +1 -1
  91. package/dist/delay.cjs +1 -1
  92. package/dist/delay.js +2 -2
  93. package/dist/{details-GtpfI2hA.js → details-CY49XVfp.js} +43 -35
  94. package/dist/details-CY49XVfp.js.map +1 -0
  95. package/dist/details-DQNj2oaU.cjs +164 -0
  96. package/dist/details-DQNj2oaU.cjs.map +1 -0
  97. package/dist/details.cjs +1 -1
  98. package/dist/details.js +1 -1
  99. package/dist/{directives-CvYGSW_a.cjs → directives-Bb0S1DKZ.cjs} +4 -4
  100. package/dist/directives-Bb0S1DKZ.cjs.map +1 -0
  101. package/dist/{directives-C2dXgpCY.js → directives-Bfm1lkoy.js} +30 -23
  102. package/dist/directives-Bfm1lkoy.js.map +1 -0
  103. package/dist/directives.cjs +1 -1
  104. package/dist/directives.js +2 -2
  105. package/dist/{divider-D0pGX2VB.js → divider-BeyX_C0A.js} +2 -2
  106. package/dist/{divider-D0pGX2VB.js.map → divider-BeyX_C0A.js.map} +1 -1
  107. package/dist/{divider-rNsWCvMi.cjs → divider-Ck2C1sKl.cjs} +1 -1
  108. package/dist/{divider-rNsWCvMi.cjs.map → divider-Ck2C1sKl.cjs.map} +1 -1
  109. package/dist/divider.cjs +1 -1
  110. package/dist/divider.js +1 -1
  111. package/dist/dropdown.cjs +1 -1
  112. package/dist/dropdown.js +2 -2
  113. package/dist/{expand-FcKAzJta.js → expand-BYsSEtp6.js} +53 -53
  114. package/dist/expand-BYsSEtp6.js.map +1 -0
  115. package/dist/expand-CUF163mg.cjs +141 -0
  116. package/dist/expand-CUF163mg.cjs.map +1 -0
  117. package/dist/expand.cjs +1 -1
  118. package/dist/expand.js +1 -1
  119. package/dist/fab.cjs +1 -1
  120. package/dist/fab.js +2 -2
  121. package/dist/{float-CQ1WEp3M.js → float-Cgllk_H9.js} +2 -2
  122. package/dist/{float-CQ1WEp3M.js.map → float-Cgllk_H9.js.map} +1 -1
  123. package/dist/{float-CDjgxWyy.cjs → float-OvqX0nqG.cjs} +1 -1
  124. package/dist/{float-CDjgxWyy.cjs.map → float-OvqX0nqG.cjs.map} +1 -1
  125. package/dist/float.cjs +1 -1
  126. package/dist/float.js +1 -1
  127. package/dist/form-4GKROq2P.cjs +27 -0
  128. package/dist/form-4GKROq2P.cjs.map +1 -0
  129. package/dist/{form-H24puioV.js → form-DxaV_Ose.js} +39 -39
  130. package/dist/form-DxaV_Ose.js.map +1 -0
  131. package/dist/form.cjs +3 -3
  132. package/dist/form.cjs.map +1 -1
  133. package/dist/form.js +34 -34
  134. package/dist/form.js.map +1 -1
  135. package/dist/gravity-6pL6CfIr.cjs.map +1 -1
  136. package/dist/gravity-sVK3zGBF.js.map +1 -1
  137. package/dist/handover/agent-runtime-followups.md +1 -1
  138. package/dist/handover/agent-runtime-v1.md +3 -3
  139. package/dist/{icons-DBxfN91B.js → icons-CJ2mXcBi.js} +9 -9
  140. package/dist/icons-CJ2mXcBi.js.map +1 -0
  141. package/dist/icons-sZ-LybA9.cjs +24 -0
  142. package/dist/icons-sZ-LybA9.cjs.map +1 -0
  143. package/dist/icons.cjs +1 -1
  144. package/dist/icons.js +1 -1
  145. package/dist/{iframe-BDVElN8z.js → iframe-DWvN5nGB.js} +11 -11
  146. package/dist/iframe-DWvN5nGB.js.map +1 -0
  147. package/dist/{iframe-CG-z9qev.cjs → iframe-DpCv-QH2.cjs} +7 -7
  148. package/dist/iframe-DpCv-QH2.cjs.map +1 -0
  149. package/dist/iframe.cjs +1 -1
  150. package/dist/iframe.js +1 -1
  151. package/dist/index.cjs +1 -1
  152. package/dist/index.js +37 -37
  153. package/dist/{input-Bt_o4sYo.js → input-BCCHz6tB.js} +7 -7
  154. package/dist/input-BCCHz6tB.js.map +1 -0
  155. package/dist/{input-B14Nn6xD.cjs → input-Z-3N5JMv.cjs} +2 -2
  156. package/dist/input-Z-3N5JMv.cjs.map +1 -0
  157. package/dist/{input-chip-DEqO0DXc.js → input-chip-BOrcKH-H.js} +2 -2
  158. package/dist/{input-chip-DEqO0DXc.js.map → input-chip-BOrcKH-H.js.map} +1 -1
  159. package/dist/{input-chip-ugYu9Fn9.cjs → input-chip-ChAgRCXZ.cjs} +1 -1
  160. package/dist/{input-chip-ugYu9Fn9.cjs.map → input-chip-ChAgRCXZ.cjs.map} +1 -1
  161. package/dist/input.cjs +1 -1
  162. package/dist/input.js +1 -1
  163. package/dist/json.cjs +1 -1
  164. package/dist/json.js +3 -3
  165. package/dist/kbd.cjs +1 -1
  166. package/dist/kbd.js +2 -2
  167. package/dist/{layout-BJ_43VrH.js → layout-CFiG3lNT.js} +1 -1
  168. package/dist/{layout-BJ_43VrH.js.map → layout-CFiG3lNT.js.map} +1 -1
  169. package/dist/{layout-DF9ZaQ-b.cjs → layout-DZ4dpLh9.cjs} +1 -1
  170. package/dist/{layout-DF9ZaQ-b.cjs.map → layout-DZ4dpLh9.cjs.map} +1 -1
  171. package/dist/layout.cjs +1 -1
  172. package/dist/layout.js +2 -2
  173. package/dist/lazy-BaAiIUru.js +19 -0
  174. package/dist/lazy-BaAiIUru.js.map +1 -0
  175. package/dist/lazy-C-7a4FAe.cjs +1 -0
  176. package/dist/lazy-C-7a4FAe.cjs.map +1 -0
  177. package/dist/{lightbox-ZmuoBBFT.js → lightbox-B7Y4Nij_.js} +2 -2
  178. package/dist/lightbox-B7Y4Nij_.js.map +1 -0
  179. package/dist/{lightbox-B47Zoqv-.cjs → lightbox-Dpwsn8Qr.cjs} +1 -1
  180. package/dist/lightbox-Dpwsn8Qr.cjs.map +1 -0
  181. package/dist/lightbox.cjs +1 -1
  182. package/dist/lightbox.js +1 -1
  183. package/dist/{list-CaSWrlG2.cjs → list-BhM-6dAi.cjs} +1 -1
  184. package/dist/{list-CaSWrlG2.cjs.map → list-BhM-6dAi.cjs.map} +1 -1
  185. package/dist/{list-C47xzld_.js → list-C5WVoIfJ.js} +2 -2
  186. package/dist/{list-C47xzld_.js.map → list-C5WVoIfJ.js.map} +1 -1
  187. package/dist/list.cjs +1 -1
  188. package/dist/list.js +1 -1
  189. package/dist/magnetic-DKtc4umC.cjs.map +1 -1
  190. package/dist/magnetic-DaOOv5Dz.js.map +1 -1
  191. package/dist/{menu-8RObM6Ie.js → menu-CBAAJoHu.js} +3 -3
  192. package/dist/{menu-8RObM6Ie.js.map → menu-CBAAJoHu.js.map} +1 -1
  193. package/dist/{menu-Jpsy85SX.cjs → menu-DFQjJk3H.cjs} +1 -1
  194. package/dist/{menu-Jpsy85SX.cjs.map → menu-DFQjJk3H.cjs.map} +1 -1
  195. package/dist/menu.cjs +1 -1
  196. package/dist/menu.js +1 -1
  197. package/dist/{mixins-DTzfFVyv.js → mixins-DGBI7YPO.js} +11 -11
  198. package/dist/mixins-DGBI7YPO.js.map +1 -0
  199. package/dist/{mixins-DPdzC9ZH.cjs → mixins-fIpzhVMd.cjs} +1 -1
  200. package/dist/mixins-fIpzhVMd.cjs.map +1 -0
  201. package/dist/mixins.cjs +1 -1
  202. package/dist/mixins.js +2 -2
  203. package/dist/nav-drawer.cjs +1 -1
  204. package/dist/nav-drawer.js +1 -1
  205. package/dist/navigation-bar.cjs +1 -1
  206. package/dist/navigation-bar.js +1 -1
  207. package/dist/navigation-rail.cjs +3 -3
  208. package/dist/navigation-rail.cjs.map +1 -1
  209. package/dist/navigation-rail.js +11 -10
  210. package/dist/navigation-rail.js.map +1 -1
  211. package/dist/notification-B6yDL91t.cjs +24 -0
  212. package/dist/notification-B6yDL91t.cjs.map +1 -0
  213. package/dist/{notification-Ccktcj9H.js → notification-BB9OBRCr.js} +22 -22
  214. package/dist/notification-BB9OBRCr.js.map +1 -0
  215. package/dist/notification.cjs +1 -1
  216. package/dist/notification.js +1 -1
  217. package/dist/{option-CkMxwBqU.js → option-B21ImL0k.js} +2 -2
  218. package/dist/{option-CkMxwBqU.js.map → option-B21ImL0k.js.map} +1 -1
  219. package/dist/{option-0aNiVB3Q.cjs → option-CJQM5I9q.cjs} +1 -1
  220. package/dist/{option-0aNiVB3Q.cjs.map → option-CJQM5I9q.cjs.map} +1 -1
  221. package/dist/option.cjs +1 -1
  222. package/dist/option.js +1 -1
  223. package/dist/{overlay-H3Wt_dgQ.js → overlay-CWsihJ-E.js} +75 -67
  224. package/dist/overlay-CWsihJ-E.js.map +1 -0
  225. package/dist/overlay-DkIX9Ig3.cjs +58 -0
  226. package/dist/overlay-DkIX9Ig3.cjs.map +1 -0
  227. package/dist/overlay.cjs +1 -1
  228. package/dist/{overlay.confirm-body-Dxn_wNm3.js → overlay.confirm-body-CPqqPNks.js} +10 -10
  229. package/dist/overlay.confirm-body-CPqqPNks.js.map +1 -0
  230. package/dist/{overlay.confirm-body-CR9xaqOE.cjs → overlay.confirm-body-DwTfiNlV.cjs} +3 -3
  231. package/dist/overlay.confirm-body-DwTfiNlV.cjs.map +1 -0
  232. package/dist/overlay.js +4 -4
  233. package/dist/overlay.service-DU1nqh6A.cjs +1 -0
  234. package/dist/{overlay.service-DEj3rfRr.cjs.map → overlay.service-DU1nqh6A.cjs.map} +1 -1
  235. package/dist/{overlay.service-C46kOtUi.js → overlay.service-KTgBxjFb.js} +4 -4
  236. package/dist/{overlay.service-C46kOtUi.js.map → overlay.service-KTgBxjFb.js.map} +1 -1
  237. package/dist/{progress-zs18GR6C.cjs → progress-B-Qg44XY.cjs} +1 -1
  238. package/dist/{progress-zs18GR6C.cjs.map → progress-B-Qg44XY.cjs.map} +1 -1
  239. package/dist/{progress-BK7gSq8j.js → progress-CUSS1sNz.js} +2 -2
  240. package/dist/{progress-BK7gSq8j.js.map → progress-CUSS1sNz.js.map} +1 -1
  241. package/dist/progress.cjs +1 -1
  242. package/dist/progress.js +1 -1
  243. package/dist/{radio-group-1HCpzRUB.js → radio-group-AHLvrN8O.js} +7 -7
  244. package/dist/radio-group-AHLvrN8O.js.map +1 -0
  245. package/dist/{radio-group-DbYlyPc-.cjs → radio-group-BEtvCSS1.cjs} +2 -2
  246. package/dist/radio-group-BEtvCSS1.cjs.map +1 -0
  247. package/dist/radio-group.cjs +1 -1
  248. package/dist/radio-group.js +1 -1
  249. package/dist/range.cjs +1 -1
  250. package/dist/range.js +2 -2
  251. package/dist/select-BWpV2iv-.cjs +56 -0
  252. package/dist/select-BWpV2iv-.cjs.map +1 -0
  253. package/dist/{select-CEyhNtZ2.js → select-Cawz88lG.js} +46 -46
  254. package/dist/select-Cawz88lG.js.map +1 -0
  255. package/dist/select.cjs +1 -1
  256. package/dist/select.js +1 -1
  257. package/dist/skeleton.cjs +1 -1
  258. package/dist/skeleton.js +2 -2
  259. package/dist/skills/SKILL.md +17 -11
  260. package/dist/skills/overlay.md +14 -7
  261. package/dist/skills/schmancy/SKILL.md +17 -11
  262. package/dist/skills/schmancy/overlay.md +14 -7
  263. package/dist/skills/schmancy/steps.md +68 -34
  264. package/dist/skills/steps.md +68 -34
  265. package/dist/slider.cjs +1 -1
  266. package/dist/slider.js +2 -2
  267. package/dist/{sound.service-DO4SmUUT.js → sound.service-CK-5zob-.js} +4 -3
  268. package/dist/sound.service-CK-5zob-.js.map +1 -0
  269. package/dist/{sound.service-G_8GV_6L.cjs → sound.service-D2GGaBXc.cjs} +1 -1
  270. package/dist/sound.service-D2GGaBXc.cjs.map +1 -0
  271. package/dist/{splash-screen-B1mM4_xz.js → splash-screen-BUEtjHXC.js} +13 -13
  272. package/dist/splash-screen-BUEtjHXC.js.map +1 -0
  273. package/dist/{splash-screen-cbz4bxjB.cjs → splash-screen-DqPuipox.cjs} +6 -6
  274. package/dist/splash-screen-DqPuipox.cjs.map +1 -0
  275. package/dist/splash-screen.cjs +1 -1
  276. package/dist/splash-screen.js +1 -1
  277. package/dist/{src-tncsWsTY.js → src-CIqAj3Eh.js} +45 -45
  278. package/dist/src-CIqAj3Eh.js.map +1 -0
  279. package/dist/{src-czeiuT1m.cjs → src-CYqBQTyt.cjs} +6 -6
  280. package/dist/src-CYqBQTyt.cjs.map +1 -0
  281. package/dist/{state-Cx0aoL5e.cjs → state-BxDNox-2.cjs} +1 -1
  282. package/dist/{state-Cx0aoL5e.cjs.map → state-BxDNox-2.cjs.map} +1 -1
  283. package/dist/{state-DJDp3N7J.js → state-CnZCDMT0.js} +9 -9
  284. package/dist/{state-DJDp3N7J.js.map → state-CnZCDMT0.js.map} +1 -1
  285. package/dist/state.cjs +1 -1
  286. package/dist/state.js +2 -2
  287. package/dist/steps.cjs +35 -19
  288. package/dist/steps.cjs.map +1 -1
  289. package/dist/steps.js +96 -73
  290. package/dist/steps.js.map +1 -1
  291. package/dist/{surface-CYBl8_a3.js → surface-BMdG3dKQ.js} +2 -2
  292. package/dist/{surface-CYBl8_a3.js.map → surface-BMdG3dKQ.js.map} +1 -1
  293. package/dist/{surface-C3cxTcJD.cjs → surface-CWwYD_z2.cjs} +1 -1
  294. package/dist/{surface-C3cxTcJD.cjs.map → surface-CWwYD_z2.cjs.map} +1 -1
  295. package/dist/surface.cjs +1 -1
  296. package/dist/surface.js +1 -1
  297. package/dist/switch.cjs +4 -4
  298. package/dist/switch.cjs.map +1 -1
  299. package/dist/switch.js +11 -11
  300. package/dist/switch.js.map +1 -1
  301. package/dist/table.cjs +1 -1
  302. package/dist/table.js +2 -2
  303. package/dist/{tabs-DHy93Q3N.js → tabs-CDQYDc6v.js} +2 -2
  304. package/dist/{tabs-DHy93Q3N.js.map → tabs-CDQYDc6v.js.map} +1 -1
  305. package/dist/{tabs-ORQ_Zd43.cjs → tabs-CbD9E1gd.cjs} +1 -1
  306. package/dist/{tabs-ORQ_Zd43.cjs.map → tabs-CbD9E1gd.cjs.map} +1 -1
  307. package/dist/tabs.cjs +1 -1
  308. package/dist/tabs.js +1 -1
  309. package/dist/teleport.cjs +1 -1
  310. package/dist/teleport.js +1 -1
  311. package/dist/textarea-Brgi-vD2.cjs +43 -0
  312. package/dist/textarea-Brgi-vD2.cjs.map +1 -0
  313. package/dist/{textarea-DHIMt-ly.js → textarea-MPyrMi-S.js} +4 -4
  314. package/dist/textarea-MPyrMi-S.js.map +1 -0
  315. package/dist/textarea.cjs +1 -1
  316. package/dist/textarea.js +1 -1
  317. package/dist/{theme-CJpjkqHr.cjs → theme-BMbXoqi0.cjs} +1 -1
  318. package/dist/{theme-CJpjkqHr.cjs.map → theme-BMbXoqi0.cjs.map} +1 -1
  319. package/dist/{theme-CgI9PRco.js → theme-DZu-xmVp.js} +5 -5
  320. package/dist/{theme-CgI9PRco.js.map → theme-DZu-xmVp.js.map} +1 -1
  321. package/dist/{theme-button--FuBkuVr.cjs → theme-button-B0OLb-43.cjs} +1 -1
  322. package/dist/{theme-button--FuBkuVr.cjs.map → theme-button-B0OLb-43.cjs.map} +1 -1
  323. package/dist/{theme-button-D-FXb3oO.js → theme-button-D_qGvEYs.js} +2 -2
  324. package/dist/{theme-button-D-FXb3oO.js.map → theme-button-D_qGvEYs.js.map} +1 -1
  325. package/dist/theme-button.cjs +1 -1
  326. package/dist/theme-button.js +1 -1
  327. package/dist/theme.cjs +1 -1
  328. package/dist/theme.js +3 -3
  329. package/dist/{theme.service-BfTK1Wtl.js → theme.service-7VkM-hVf.js} +15 -11
  330. package/dist/theme.service-7VkM-hVf.js.map +1 -0
  331. package/dist/theme.service-B15FdjOS.cjs +1 -0
  332. package/dist/theme.service-B15FdjOS.cjs.map +1 -0
  333. package/dist/tree.cjs +4 -4
  334. package/dist/tree.cjs.map +1 -1
  335. package/dist/tree.js +8 -8
  336. package/dist/tree.js.map +1 -1
  337. package/dist/{typography-CxA3sx9B.cjs → typography-D4Fo1UGh.cjs} +3 -3
  338. package/dist/{typography-CxA3sx9B.cjs.map → typography-D4Fo1UGh.cjs.map} +1 -1
  339. package/dist/{typography-BEGLfHwz.js → typography-SZhjb_4R.js} +9 -9
  340. package/dist/{typography-BEGLfHwz.js.map → typography-SZhjb_4R.js.map} +1 -1
  341. package/dist/typography.cjs +1 -1
  342. package/dist/typography.js +1 -1
  343. package/dist/visually-hidden.cjs +1 -1
  344. package/dist/visually-hidden.js +2 -2
  345. package/dist/{window-B_n4P9az.js → window-BDVyrBnk.js} +101 -100
  346. package/dist/window-BDVyrBnk.js.map +1 -0
  347. package/dist/window-BbBYjm7R.cjs +59 -0
  348. package/dist/window-BbBYjm7R.cjs.map +1 -0
  349. package/dist/window.cjs +1 -1
  350. package/dist/window.js +1 -1
  351. package/package.json +1 -1
  352. package/skills/schmancy/SKILL.md +17 -11
  353. package/skills/schmancy/overlay.md +14 -7
  354. package/skills/schmancy/steps.md +68 -34
  355. package/src/area/area.component.ts +1 -1
  356. package/src/area/area.service.test.ts +2 -2
  357. package/src/area/area.service.ts +1 -1
  358. package/src/area/lazy.ts +87 -83
  359. package/src/audio/sound.service.ts +3 -3
  360. package/src/breadcrumb/breadcrumb.ts +2 -2
  361. package/src/button/button.ts +11 -11
  362. package/src/button/icon-button.ts +18 -18
  363. package/src/card/card.ts +16 -16
  364. package/src/content-drawer/drawer.ts +6 -6
  365. package/src/details/details.ts +55 -55
  366. package/src/directives/ai-badge.ts +2 -1
  367. package/src/directives/animate-text.ts +2 -1
  368. package/src/directives/art/art.directive.ts +2 -1
  369. package/src/directives/battery.ts +2 -1
  370. package/src/directives/confirm-click.ts +5 -3
  371. package/src/directives/cursor-glow.ts +2 -1
  372. package/src/directives/cycle-text.ts +2 -1
  373. package/src/directives/depth-of-field.ts +2 -1
  374. package/src/directives/drag.ts +4 -2
  375. package/src/directives/fyi.ts +2 -1
  376. package/src/directives/gravity.ts +2 -1
  377. package/src/directives/hummingbird.ts +2 -1
  378. package/src/directives/intersect.ts +3 -2
  379. package/src/directives/liquid.ts +2 -1
  380. package/src/directives/living-border.ts +2 -1
  381. package/src/directives/long-press.ts +2 -1
  382. package/src/directives/magnetic.ts +2 -1
  383. package/src/directives/missed-punch.ts +2 -1
  384. package/src/directives/nebula.ts +6 -5
  385. package/src/directives/overflow-within.ts +2 -1
  386. package/src/directives/reveal.ts +193 -118
  387. package/src/directives/urgent.ts +2 -1
  388. package/src/directives/working-snake.ts +2 -1
  389. package/src/expand/expand-root.component.ts +27 -27
  390. package/src/expand/expand.component.ts +48 -48
  391. package/src/form/fields/autocomplete/autocomplete.ts +154 -154
  392. package/src/form/fields/checkbox/checkbox.ts +4 -4
  393. package/src/form/fields/chips/chips.ts +2 -2
  394. package/src/form/fields/chips/filter-chip.ts +15 -15
  395. package/src/form/fields/date-range/date-range.ts +2 -2
  396. package/src/form/fields/input/input.ts +12 -12
  397. package/src/form/fields/radio-group/radio-button.ts +2 -2
  398. package/src/form/fields/radio-group/radio-group.ts +3 -3
  399. package/src/form/fields/select/select.ts +56 -56
  400. package/src/form/fields/switch/switch.ts +10 -10
  401. package/src/form/fields/textarea/textarea.ts +2 -2
  402. package/src/form/form-summary.ts +33 -33
  403. package/src/form/form.ts +45 -45
  404. package/src/icons/icon.ts +10 -8
  405. package/src/iframe/iframe.ts +11 -11
  406. package/src/lightbox/flip-directive.ts +2 -1
  407. package/src/lightbox/lightbox.directive.ts +2 -1
  408. package/src/nav-drawer/navbar.ts +3 -3
  409. package/src/navigation-rail/navigation-rail.ts +10 -10
  410. package/src/notification/notification.ts +22 -22
  411. package/src/overlay/overlay.component.ts +106 -83
  412. package/src/overlay/overlay.confirm-body.ts +4 -4
  413. package/src/overlay/overlay.service.ts +3 -3
  414. package/src/overlay/overlay.types.ts +4 -2
  415. package/src/splash-screen/splash-screen.ts +11 -11
  416. package/src/state/index.ts +12 -12
  417. package/src/state/schmancy-context.ts +9 -9
  418. package/src/steps/index.ts +1 -1
  419. package/src/steps/schmancy-step.ts +91 -65
  420. package/src/steps/{schmancy-steps-container.ts → schmancy-steps.ts} +18 -38
  421. package/src/steps/steps.context.ts +5 -4
  422. package/src/steps/steps.test.ts +120 -0
  423. package/src/teleport/teleport.component.ts +2 -2
  424. package/src/theme/theme.service.ts +17 -17
  425. package/src/tree/tree.ts +7 -7
  426. package/src/typography/typography.ts +7 -7
  427. package/src/window/window-manager.ts +20 -20
  428. package/src/window/window.ts +100 -100
  429. package/types/mixins/SchmancyElement.d.ts +3 -2
  430. package/types/mixins/formField.mixin.d.ts +1 -1
  431. package/types/src/area/area.service.d.ts +1 -1
  432. package/types/src/area/lazy.d.ts +0 -6
  433. package/types/src/audio/sound.service.d.ts +1 -2
  434. package/types/src/breadcrumb/breadcrumb.d.ts +1 -1
  435. package/types/src/button/button.d.ts +3 -3
  436. package/types/src/button/icon-button.d.ts +6 -7
  437. package/types/src/card/card.d.ts +5 -5
  438. package/types/src/content-drawer/drawer.d.ts +1 -1
  439. package/types/src/details/details.d.ts +2 -21
  440. package/types/src/directives/ai-badge.d.ts +2 -2
  441. package/types/src/directives/animate-text.d.ts +2 -2
  442. package/types/src/directives/art/art.directive.d.ts +2 -2
  443. package/types/src/directives/battery.d.ts +2 -2
  444. package/types/src/directives/confirm-click.d.ts +2 -2
  445. package/types/src/directives/cursor-glow.d.ts +2 -2
  446. package/types/src/directives/cycle-text.d.ts +2 -2
  447. package/types/src/directives/depth-of-field.d.ts +2 -2
  448. package/types/src/directives/drag.d.ts +4 -4
  449. package/types/src/directives/fyi.d.ts +2 -2
  450. package/types/src/directives/gravity.d.ts +2 -2
  451. package/types/src/directives/hummingbird.d.ts +2 -2
  452. package/types/src/directives/intersect.d.ts +2 -2
  453. package/types/src/directives/liquid.d.ts +2 -2
  454. package/types/src/directives/living-border.d.ts +2 -2
  455. package/types/src/directives/long-press.d.ts +2 -2
  456. package/types/src/directives/magnetic.d.ts +2 -2
  457. package/types/src/directives/missed-punch.d.ts +2 -2
  458. package/types/src/directives/nebula.d.ts +2 -2
  459. package/types/src/directives/overflow-within.d.ts +2 -2
  460. package/types/src/directives/reveal.d.ts +17 -7
  461. package/types/src/directives/urgent.d.ts +2 -2
  462. package/types/src/directives/working-snake.d.ts +2 -2
  463. package/types/src/expand/expand-root.component.d.ts +8 -8
  464. package/types/src/expand/expand.component.d.ts +11 -11
  465. package/types/src/form/fields/autocomplete/autocomplete.d.ts +29 -29
  466. package/types/src/form/fields/checkbox/checkbox.d.ts +1 -1
  467. package/types/src/form/fields/chips/chips.d.ts +1 -1
  468. package/types/src/form/fields/chips/filter-chip.d.ts +1 -2
  469. package/types/src/form/fields/input/input.d.ts +3 -3
  470. package/types/src/form/fields/radio-group/radio-button.d.ts +1 -1
  471. package/types/src/form/fields/radio-group/radio-group.d.ts +1 -1
  472. package/types/src/form/fields/select/select.d.ts +8 -8
  473. package/types/src/form/fields/switch/switch.d.ts +3 -3
  474. package/types/src/form/fields/textarea/textarea.d.ts +1 -1
  475. package/types/src/form/form-summary.d.ts +7 -7
  476. package/types/src/form/form.d.ts +11 -11
  477. package/types/src/icons/icon.d.ts +2 -2
  478. package/types/src/iframe/iframe.d.ts +3 -3
  479. package/types/src/lightbox/flip-directive.d.ts +2 -2
  480. package/types/src/lightbox/lightbox.directive.d.ts +2 -2
  481. package/types/src/nav-drawer/navbar.d.ts +1 -1
  482. package/types/src/navigation-rail/navigation-rail.d.ts +2 -2
  483. package/types/src/notification/notification.d.ts +8 -8
  484. package/types/src/overlay/overlay.component.d.ts +16 -16
  485. package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
  486. package/types/src/overlay/overlay.types.d.ts +4 -2
  487. package/types/src/splash-screen/splash-screen.d.ts +2 -2
  488. package/types/src/state/index.d.ts +1 -1
  489. package/types/src/state/schmancy-context.d.ts +3 -3
  490. package/types/src/steps/index.d.ts +1 -1
  491. package/types/src/steps/schmancy-step.d.ts +8 -23
  492. package/types/src/steps/{schmancy-steps-container.d.ts → schmancy-steps.d.ts} +8 -9
  493. package/types/src/steps/steps.context.d.ts +2 -1
  494. package/types/src/steps/steps.test.d.ts +2 -0
  495. package/types/src/teleport/teleport.component.d.ts +1 -1
  496. package/types/src/theme/theme.service.d.ts +1 -4
  497. package/types/src/tree/tree.d.ts +3 -3
  498. package/types/src/typography/typography.d.ts +1 -1
  499. package/types/src/window/window-manager.d.ts +2 -2
  500. package/types/src/window/window.d.ts +20 -20
  501. package/dist/SchmancyElement-BBzRWB1w.cjs +0 -2
  502. package/dist/SchmancyElement-C3CpdNsi.js +0 -284
  503. package/dist/area-BA96mwFY.js.map +0 -1
  504. package/dist/area-DtyQDdOF.cjs +0 -21
  505. package/dist/area-DtyQDdOF.cjs.map +0 -1
  506. package/dist/autocomplete-Bts5Jwwr.cjs +0 -115
  507. package/dist/autocomplete-Bts5Jwwr.cjs.map +0 -1
  508. package/dist/autocomplete-CI4QJXAN.js.map +0 -1
  509. package/dist/button-C89bPnHt.js.map +0 -1
  510. package/dist/button-CkwQH-g3.cjs +0 -62
  511. package/dist/button-CkwQH-g3.cjs.map +0 -1
  512. package/dist/card-BO93_oxQ.cjs.map +0 -1
  513. package/dist/card-CFsCgJKZ.js.map +0 -1
  514. package/dist/chips-6YaoRmeG.js.map +0 -1
  515. package/dist/chips-BfzpsyV1.cjs.map +0 -1
  516. package/dist/date-range-CEo_Kjqw.js.map +0 -1
  517. package/dist/date-range-N-A249O9.cjs.map +0 -1
  518. package/dist/details-BLRPV8sY.cjs +0 -164
  519. package/dist/details-BLRPV8sY.cjs.map +0 -1
  520. package/dist/details-GtpfI2hA.js.map +0 -1
  521. package/dist/directives-C2dXgpCY.js.map +0 -1
  522. package/dist/directives-CvYGSW_a.cjs.map +0 -1
  523. package/dist/expand-FcKAzJta.js.map +0 -1
  524. package/dist/expand-tffQHGbZ.cjs +0 -141
  525. package/dist/expand-tffQHGbZ.cjs.map +0 -1
  526. package/dist/form-H24puioV.js.map +0 -1
  527. package/dist/form-VYhbbir3.cjs +0 -27
  528. package/dist/form-VYhbbir3.cjs.map +0 -1
  529. package/dist/icons-B_a1HStW.cjs +0 -24
  530. package/dist/icons-B_a1HStW.cjs.map +0 -1
  531. package/dist/icons-DBxfN91B.js.map +0 -1
  532. package/dist/iframe-BDVElN8z.js.map +0 -1
  533. package/dist/iframe-CG-z9qev.cjs.map +0 -1
  534. package/dist/input-B14Nn6xD.cjs.map +0 -1
  535. package/dist/input-Bt_o4sYo.js.map +0 -1
  536. package/dist/lazy-CayEFyC3.cjs +0 -1
  537. package/dist/lazy-CayEFyC3.cjs.map +0 -1
  538. package/dist/lazy-D-bO2r4m.js +0 -13
  539. package/dist/lazy-D-bO2r4m.js.map +0 -1
  540. package/dist/lightbox-B47Zoqv-.cjs.map +0 -1
  541. package/dist/lightbox-ZmuoBBFT.js.map +0 -1
  542. package/dist/mixins-DPdzC9ZH.cjs.map +0 -1
  543. package/dist/mixins-DTzfFVyv.js.map +0 -1
  544. package/dist/notification-Ccktcj9H.js.map +0 -1
  545. package/dist/notification-DSkB-sn0.cjs +0 -24
  546. package/dist/notification-DSkB-sn0.cjs.map +0 -1
  547. package/dist/overlay-BS-ta-zq.cjs +0 -58
  548. package/dist/overlay-BS-ta-zq.cjs.map +0 -1
  549. package/dist/overlay-H3Wt_dgQ.js.map +0 -1
  550. package/dist/overlay.confirm-body-CR9xaqOE.cjs.map +0 -1
  551. package/dist/overlay.confirm-body-Dxn_wNm3.js.map +0 -1
  552. package/dist/overlay.service-DEj3rfRr.cjs +0 -1
  553. package/dist/radio-group-1HCpzRUB.js.map +0 -1
  554. package/dist/radio-group-DbYlyPc-.cjs.map +0 -1
  555. package/dist/select-B-SSmUDe.cjs +0 -56
  556. package/dist/select-B-SSmUDe.cjs.map +0 -1
  557. package/dist/select-CEyhNtZ2.js.map +0 -1
  558. package/dist/sound.service-DO4SmUUT.js.map +0 -1
  559. package/dist/sound.service-G_8GV_6L.cjs.map +0 -1
  560. package/dist/splash-screen-B1mM4_xz.js.map +0 -1
  561. package/dist/splash-screen-cbz4bxjB.cjs.map +0 -1
  562. package/dist/src-czeiuT1m.cjs.map +0 -1
  563. package/dist/src-tncsWsTY.js.map +0 -1
  564. package/dist/textarea-CEUaDURR.cjs +0 -43
  565. package/dist/textarea-CEUaDURR.cjs.map +0 -1
  566. package/dist/textarea-DHIMt-ly.js.map +0 -1
  567. package/dist/theme.service-BfTK1Wtl.js.map +0 -1
  568. package/dist/theme.service-Dg7LO0Qz.cjs +0 -1
  569. package/dist/theme.service-Dg7LO0Qz.cjs.map +0 -1
  570. package/dist/window-B_n4P9az.js.map +0 -1
  571. package/dist/window-Vl1u1-EG.cjs +0 -59
  572. package/dist/window-Vl1u1-EG.cjs.map +0 -1
@@ -1,284 +0,0 @@
1
- import { Observable as e, Subject as t, fromEvent as n, race as r, timer as i } from "rxjs";
2
- import { defaultIfEmpty as a, map as o, take as s, takeUntil as c } from "rxjs/operators";
3
- import { classMap as l } from "lit/directives/class-map.js";
4
- import { styleMap as u } from "lit/directives/style-map.js";
5
- import { consume as d, createContext as f } from "@lit/context";
6
- import { LitElement as p, unsafeCSS as m } from "lit";
7
- import { SignalWatcher as h } from "@lit-labs/signals";
8
- var g = "schmancy-discover", _ = "schmancy-discover-response";
9
- function v(t, r = 100) {
10
- let s = `${t}-where-are-you`, l = `${t}-here-i-am`;
11
- return new e((e) => {
12
- let t = n(window, l).pipe(c(i(r)), o((e) => e.detail.component), a(null)).subscribe((t) => {
13
- e.next(t), e.complete();
14
- });
15
- return window.dispatchEvent(new CustomEvent(s, {
16
- bubbles: !0,
17
- composed: !0
18
- })), () => t.unsubscribe();
19
- });
20
- }
21
- function y(...t) {
22
- return t.length === 0 ? new e((e) => {
23
- e.next(null), e.complete();
24
- }) : r(...t.map((e) => v(e)));
25
- }
26
- function b(t, r = 150) {
27
- let l = `discover-${Date.now()}-${Math.random().toString(36).slice(2)}`;
28
- return new e((e) => {
29
- let u = n(window, _).pipe(c(i(r)), o((e) => e.detail), o((e) => e.requestId === l ? e.element : null), s(1), a(null)).subscribe((t) => {
30
- e.next(t), e.complete();
31
- });
32
- return window.dispatchEvent(new CustomEvent(g, {
33
- detail: {
34
- selector: t,
35
- requestId: l
36
- },
37
- bubbles: !0,
38
- composed: !0
39
- })), () => u.unsubscribe();
40
- });
41
- }
42
- function x(t, r = 150) {
43
- let a = `discover-all-${Date.now()}-${Math.random().toString(36).slice(2)}`, o = [];
44
- return new e((e) => {
45
- let s = n(window, _).pipe(c(i(r))).subscribe({
46
- next: (e) => {
47
- e.detail.requestId === a && o.push(e.detail.element);
48
- },
49
- complete: () => {
50
- e.next(o), e.complete();
51
- }
52
- });
53
- return window.dispatchEvent(new CustomEvent(g, {
54
- detail: {
55
- selector: t,
56
- requestId: a
57
- },
58
- bubbles: !0,
59
- composed: !0
60
- })), () => s.unsubscribe();
61
- });
62
- }
63
- function S(e, t = 150) {
64
- return /^[#.\[]/.test(e) ? b(e, t) : v(e, t);
65
- }
66
- var C = f("theme-context");
67
- function w(e, t, n, r) {
68
- var i, a = arguments.length, o = a < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r;
69
- if (typeof Reflect == "object" && typeof Reflect.decorate == "function") o = Reflect.decorate(e, t, n, r);
70
- else for (var s = e.length - 1; s >= 0; s--) (i = e[s]) && (o = (a < 3 ? i(o) : a > 3 ? i(t, n, o) : i(t, n)) || o);
71
- return a > 3 && o && Object.defineProperty(t, n, o), o;
72
- }
73
- var T = (e) => {
74
- class r extends e {
75
- constructor(...e) {
76
- super(...e), this.disconnecting = new t();
77
- }
78
- get locale() {
79
- return this._theme?.locale ?? (typeof navigator < "u" ? navigator.language : "de-DE");
80
- }
81
- get stableId() {
82
- if (this._stableId) return this._stableId;
83
- let e = [];
84
- for (let t = this; t?.parentElement && e.length < 5; t = t.parentElement) {
85
- let n = t.tagName.toLowerCase(), r = Array.from(t.parentElement.children).filter((e) => e.tagName === t.tagName);
86
- e.unshift(r.length > 1 ? `${n}:nth-of-type(${r.indexOf(t) + 1})` : n);
87
- }
88
- let t = Array.from(e.join(">")).reduce((e, t) => Math.imul(31, e) + t.charCodeAt(0) | 0, 0);
89
- return this._stableId = `el-${Math.abs(t).toString(36)}`;
90
- }
91
- get uid() {
92
- return this.getAttribute("uid") || (this._uid ||= `el-${crypto.randomUUID()}`, this._uid);
93
- }
94
- set uid(e) {
95
- e ? this.setAttribute("uid", e) : this.removeAttribute("uid");
96
- }
97
- dispatchScopedEvent(e, t, n = {}) {
98
- let { bubbles: r = !1, composed: i = !0 } = n;
99
- this.dispatchEvent(new CustomEvent(`${e}::${this.uid}`, {
100
- detail: t,
101
- bubbles: r,
102
- composed: i
103
- })), this.dispatchEvent(new CustomEvent(e, {
104
- detail: t,
105
- bubbles: r,
106
- composed: i
107
- }));
108
- }
109
- classMap(e) {
110
- let t = {};
111
- return Object.keys(e).forEach((n) => {
112
- n.trim().split(" ").filter(Boolean).forEach((r) => {
113
- t[r] = e[n];
114
- });
115
- }), l(t);
116
- }
117
- styleMap(e) {
118
- return u(e);
119
- }
120
- connectedCallback() {
121
- super.connectedCallback(), this.setupDiscoveryResponse();
122
- }
123
- setupDiscoveryResponse() {
124
- let e = this.tagName.toLowerCase(), t = `${e}-here-i-am`;
125
- n(window, `${e}-where-are-you`).pipe(c(this.disconnecting)).subscribe(() => {
126
- window.dispatchEvent(new CustomEvent(t, {
127
- detail: { component: this },
128
- bubbles: !0,
129
- composed: !0
130
- }));
131
- }), n(window, g).pipe(c(this.disconnecting)).subscribe(({ detail: { selector: e, requestId: t } }) => {
132
- let n = null;
133
- if (e.startsWith("#")) {
134
- let t = e.slice(1);
135
- this.id !== t && this.uid !== t || (n = this);
136
- }
137
- !n && this.shadowRoot && (n = this.shadowRoot.querySelector(e)), n && window.dispatchEvent(new CustomEvent(_, {
138
- detail: {
139
- requestId: t,
140
- element: n
141
- },
142
- bubbles: !0,
143
- composed: !0
144
- }));
145
- });
146
- }
147
- discover(e) {
148
- return v(e);
149
- }
150
- disconnectedCallback() {
151
- this.disconnecting.next(!0), this.disconnecting.complete(), super.disconnectedCallback();
152
- }
153
- }
154
- return w([d({
155
- context: C,
156
- subscribe: !0
157
- })], r.prototype, "_theme", void 0), r;
158
- }, E = m("/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:\"\"}}}@layer theme{:root,:host{--color-primary-default:var(--schmancy-sys-color-primary-default);--color-primary:var(--schmancy-sys-color-primary-default);--color-error:var(--schmancy-sys-color-error-default);--font-mono:var(--schmancy-font-family), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-x-6{inset-inline:1.5rem}.-top-12{top:-3rem}.top-0{top:0}.top-1\\/2{top:50%}.top-2{top:.5rem}.top-4{top:1rem}.top-8{top:2rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-\\[-3\\.5rem\\]{bottom:-3.5rem}.left-0{left:0}.left-1\\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\\[calc\\(100\\%\\+8px\\)\\]{left:calc(100% + 8px)}.isolate{isolation:isolate}.z-0{z-index:0}.z-5{z-index:5}.z-10{z-index:10}.z-20{z-index:20}.z-49{z-index:49}.z-50{z-index:50}.z-100{z-index:100}.z-1000{z-index:1000}.z-9998{z-index:9998}.z-\\[1000\\]{z-index:1000}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:-.25rem}.mx-auto{margin-inline:auto}.my-0\\.5{margin-block:.125rem}.my-4{margin-block:1rem}.-mt-2\\.5{margin-top:-.625rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.-mr-1{margin-right:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.-ml-2\\.5{margin-left:-.625rem}.-ml-px{margin-left:-1px}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-\\[0\\.38em\\]{margin-left:.38em}.ml-px{margin-left:1px}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.size-3{width:.75rem;height:.75rem}.size-5{width:1.25rem;height:1.25rem}.size-8{width:2rem;height:2rem}.size-10{width:2.5rem;height:2.5rem}.size-14{width:3.5rem;height:3.5rem}.size-24{width:6rem;height:6rem}.size-\\[18px\\]{width:18px;height:18px}.h-0\\.5{height:.125rem}.h-1{height:.25rem}.h-1\\.5{height:.375rem}.h-2{height:.5rem}.h-2\\.5{height:.625rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-64{height:16rem}.h-\\[90dvh\\]{height:90dvh}.h-\\[240px\\]{height:240px}.h-\\[250px\\]{height:250px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\\[80vh\\]{max-height:80vh}.max-h-\\[90dvh\\]{max-height:90dvh}.max-h-\\[90vh\\]{max-height:90vh}.min-h-0{min-height:0}.min-h-12{min-height:3rem}.min-h-14{min-height:3.5rem}.min-h-\\[32px\\]{min-height:32px}.min-h-\\[36px\\]{min-height:36px}.min-h-\\[40px\\]{min-height:40px}.min-h-\\[50px\\]{min-height:50px}.min-h-\\[60px\\]{min-height:60px}.min-h-\\[400px\\]{min-height:400px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-0\\.5{width:.125rem}.w-1{width:.25rem}.w-1\\.5{width:.375rem}.w-1\\/3{width:33.3333%}.w-2{width:.5rem}.w-2\\.5{width:.625rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-60{width:15rem}.w-\\[240px\\]{width:240px}.w-\\[250px\\]{width:250px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-14{max-width:3.5rem}.max-w-\\[90vw\\]{max-width:90vw}.max-w-\\[168px\\]{max-width:168px}.max-w-\\[360px\\]{max-width:360px}.max-w-\\[720px\\]{max-width:720px}.max-w-\\[min\\(480px\\,calc\\(100vw-2rem\\)\\)\\]{max-width:min(480px,100vw - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.min-w-0{min-width:0}.min-w-4{min-width:1rem}.min-w-14{min-width:3.5rem}.min-w-16{min-width:4rem}.min-w-\\[6px\\]{min-width:6px}.min-w-\\[16px\\]{min-width:16px}.min-w-\\[48px\\]{min-width:48px}.min-w-\\[120px\\]{min-width:120px}.min-w-\\[140px\\]{min-width:140px}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1{--tw-translate-x:calc(.25rem * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\\[ripple_600ms_linear\\]{animation:.6s linear ripple}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-x{resize:horizontal}.resize-y{resize:vertical}.appearance-none{appearance:none}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-cols-\\[auto_1fr\\]{grid-template-columns:auto 1fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.grid-rows-\\[auto_1fr\\]{grid-template-rows:auto 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-stretch{justify-items:stretch}.gap-0\\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-\\[8px\\]{gap:8px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(.25rem * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(.25rem * 2) * calc(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\\[8px\\]{border-radius:8px}.rounded-\\[22px\\]{border-radius:22px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.25rem}.rounded-xl{border-radius:.75rem}.rounded-t-\\[28px\\]{border-top-left-radius:28px;border-top-right-radius:28px}.rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.rounded-tl-2xl{border-top-left-radius:1rem}.rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.rounded-tr-2xl{border-top-right-radius:1rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-br-2xl{border-bottom-right-radius:1rem}.rounded-bl-2xl{border-bottom-left-radius:1rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-r-4{border-right-style:var(--tw-border-style);border-right-width:4px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--schmancy-sys-color-outlineVariant\\)\\]{border-color:var(--schmancy-sys-color-outlineVariant)}.border-error-default{border-color:var(--schmancy-sys-color-error-default)}.border-info-default{border-color:var(--schmancy-sys-color-info-default)}.border-outline{border-color:var(--schmancy-sys-color-outline)}.border-outline-variant,.border-outline-variant\\/30{border-color:var(--schmancy-sys-color-outlineVariant)}@supports (color:color-mix(in lab, red, red)){.border-outline-variant\\/30{border-color:color-mix(in oklab, var(--schmancy-sys-color-outlineVariant) 30%, transparent)}}.border-outline\\/20{border-color:var(--schmancy-sys-color-outline)}@supports (color:color-mix(in lab, red, red)){.border-outline\\/20{border-color:color-mix(in oklab, var(--schmancy-sys-color-outline) 20%, transparent)}}.border-outlineVariant{border-color:var(--schmancy-sys-color-outlineVariant)}.border-primary-default{border-color:var(--schmancy-sys-color-primary-default)}.border-secondary-default{border-color:var(--schmancy-sys-color-secondary-default)}.border-success-default{border-color:var(--schmancy-sys-color-success-default)}.border-surface-container{border-color:var(--schmancy-sys-color-surface-container)}.border-surface-default{border-color:var(--schmancy-sys-color-surface-default)}.border-surface-on\\/8{border-color:var(--schmancy-sys-color-surface-on)}@supports (color:color-mix(in lab, red, red)){.border-surface-on\\/8{border-color:color-mix(in oklab, var(--schmancy-sys-color-surface-on) 8%, transparent)}}.border-transparent{border-color:#0000}.border-warning-default{border-color:var(--schmancy-sys-color-warning-default)}.border-white{border-color:#fff}.bg-\\[\\#ff0000\\]{background-color:red}.bg-\\[var\\(--schmancy-sys-color-X\\)\\]{background-color:var(--schmancy-sys-color-X)}.bg-black{background-color:#000}.bg-black\\/95{background-color:oklab(0% none none/.95)}.bg-black\\/\\[0\\.07\\]{background-color:oklab(0% none none/.07)}.bg-error{background-color:var(--schmancy-sys-color-error-default)}.bg-error-container{background-color:var(--schmancy-sys-color-error-container)}.bg-error-default,.bg-error-default\\/70{background-color:var(--schmancy-sys-color-error-default)}@supports (color:color-mix(in lab, red, red)){.bg-error-default\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-error-default) 70%, transparent)}}.bg-error\\/70{background-color:var(--schmancy-sys-color-error-default)}@supports (color:color-mix(in lab, red, red)){.bg-error\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-error-default) 70%, transparent)}}.bg-info-container{background-color:var(--schmancy-sys-color-info-container)}.bg-info-default{background-color:var(--schmancy-sys-color-info-default)}.bg-outlineVariant{background-color:var(--schmancy-sys-color-outlineVariant)}.bg-primary{background-color:var(--schmancy-sys-color-primary-default)}.bg-primary-container,.bg-primary-container\\/20{background-color:var(--schmancy-sys-color-primary-container)}@supports (color:color-mix(in lab, red, red)){.bg-primary-container\\/20{background-color:color-mix(in oklab, var(--schmancy-sys-color-primary-container) 20%, transparent)}}.bg-primary-default,.bg-primary-default\\/70{background-color:var(--schmancy-sys-color-primary-default)}@supports (color:color-mix(in lab, red, red)){.bg-primary-default\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-primary-default) 70%, transparent)}}.bg-primary-on{background-color:var(--schmancy-sys-color-primary-on)}.bg-primary-onContainer{background-color:var(--schmancy-sys-color-primary-onContainer)}.bg-primary\\/40{background-color:var(--schmancy-sys-color-primary-default)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/40{background-color:color-mix(in oklab, var(--schmancy-sys-color-primary-default) 40%, transparent)}}.bg-primary\\/70{background-color:var(--schmancy-sys-color-primary-default)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-primary-default) 70%, transparent)}}.bg-scrim{background-color:var(--schmancy-sys-color-scrim)}.bg-secondary{background-color:var(--schmancy-sys-color-secondary-default)}.bg-secondary-container{background-color:var(--schmancy-sys-color-secondary-container)}.bg-secondary-default,.bg-secondary-default\\/70{background-color:var(--schmancy-sys-color-secondary-default)}@supports (color:color-mix(in lab, red, red)){.bg-secondary-default\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-secondary-default) 70%, transparent)}}.bg-secondary-onContainer{background-color:var(--schmancy-sys-color-secondary-onContainer)}.bg-secondary\\/15{background-color:var(--schmancy-sys-color-secondary-default)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\\/15{background-color:color-mix(in oklab, var(--schmancy-sys-color-secondary-default) 15%, transparent)}}.bg-secondary\\/40{background-color:var(--schmancy-sys-color-secondary-default)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\\/40{background-color:color-mix(in oklab, var(--schmancy-sys-color-secondary-default) 40%, transparent)}}.bg-secondary\\/70{background-color:var(--schmancy-sys-color-secondary-default)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-secondary-default) 70%, transparent)}}.bg-success{background-color:var(--schmancy-sys-color-success-default)}.bg-success-container{background-color:var(--schmancy-sys-color-success-container)}.bg-success-default,.bg-success-default\\/70{background-color:var(--schmancy-sys-color-success-default)}@supports (color:color-mix(in lab, red, red)){.bg-success-default\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-success-default) 70%, transparent)}}.bg-success\\/10{background-color:var(--schmancy-sys-color-success-default)}@supports (color:color-mix(in lab, red, red)){.bg-success\\/10{background-color:color-mix(in oklab, var(--schmancy-sys-color-success-default) 10%, transparent)}}.bg-success\\/70{background-color:var(--schmancy-sys-color-success-default)}@supports (color:color-mix(in lab, red, red)){.bg-success\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-success-default) 70%, transparent)}}.bg-surface-bright{background-color:var(--schmancy-sys-color-surface-bright)}.bg-surface-container,.bg-surface-container\\/10{background-color:var(--schmancy-sys-color-surface-container)}@supports (color:color-mix(in lab, red, red)){.bg-surface-container\\/10{background-color:color-mix(in oklab, var(--schmancy-sys-color-surface-container) 10%, transparent)}}.bg-surface-container\\/20{background-color:var(--schmancy-sys-color-surface-container)}@supports (color:color-mix(in lab, red, red)){.bg-surface-container\\/20{background-color:color-mix(in oklab, var(--schmancy-sys-color-surface-container) 20%, transparent)}}.bg-surface-container\\/85{background-color:var(--schmancy-sys-color-surface-container)}@supports (color:color-mix(in lab, red, red)){.bg-surface-container\\/85{background-color:color-mix(in oklab, var(--schmancy-sys-color-surface-container) 85%, transparent)}}.bg-surface-containerHigh{background-color:var(--schmancy-sys-color-surface-containerHigh)}.bg-surface-containerHighest{background-color:var(--schmancy-sys-color-surface-containerHighest)}.bg-surface-containerLow{background-color:var(--schmancy-sys-color-surface-containerLow)}.bg-surface-containerLowest{background-color:var(--schmancy-sys-color-surface-containerLowest)}.bg-surface-default{background-color:var(--schmancy-sys-color-surface-default)}.bg-surface-dim{background-color:var(--schmancy-sys-color-surface-dim)}.bg-surface-high{background-color:var(--schmancy-sys-color-surface-high)}.bg-surface-highest{background-color:var(--schmancy-sys-color-surface-highest)}.bg-surface-low{background-color:var(--schmancy-sys-color-surface-low)}.bg-surface-lowest,.bg-surface-lowest\\/55{background-color:var(--schmancy-sys-color-surface-lowest)}@supports (color:color-mix(in lab, red, red)){.bg-surface-lowest\\/55{background-color:color-mix(in oklab, var(--schmancy-sys-color-surface-lowest) 55%, transparent)}}.bg-surface-on{background-color:var(--schmancy-sys-color-surface-on)}.bg-surface\\/70{background-color:var(--schmancy-sys-color-surface-default)}@supports (color:color-mix(in lab, red, red)){.bg-surface\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-surface-default) 70%, transparent)}}.bg-tertiary{background-color:var(--schmancy-sys-color-tertiary-default)}.bg-tertiary-container{background-color:var(--schmancy-sys-color-tertiary-container)}.bg-tertiary-default,.bg-tertiary-default\\/70{background-color:var(--schmancy-sys-color-tertiary-default)}@supports (color:color-mix(in lab, red, red)){.bg-tertiary-default\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-tertiary-default) 70%, transparent)}}.bg-tertiary-onContainer{background-color:var(--schmancy-sys-color-tertiary-onContainer)}.bg-tertiary\\/40{background-color:var(--schmancy-sys-color-tertiary-default)}@supports (color:color-mix(in lab, red, red)){.bg-tertiary\\/40{background-color:color-mix(in oklab, var(--schmancy-sys-color-tertiary-default) 40%, transparent)}}.bg-tertiary\\/70{background-color:var(--schmancy-sys-color-tertiary-default)}@supports (color:color-mix(in lab, red, red)){.bg-tertiary\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-tertiary-default) 70%, transparent)}}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--schmancy-sys-color-warning-default)}.bg-warning-container{background-color:var(--schmancy-sys-color-warning-container)}.bg-warning-default,.bg-warning\\/70{background-color:var(--schmancy-sys-color-warning-default)}@supports (color:color-mix(in lab, red, red)){.bg-warning\\/70{background-color:color-mix(in oklab, var(--schmancy-sys-color-warning-default) 70%, transparent)}}.bg-white\\/15{background-color:oklab(100% 0 5.96046e-8/.15)}.bg-white\\/20{background-color:oklab(100% 0 5.96046e-8/.2)}.bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.from-surface-on\\/20{--tw-gradient-from:var(--schmancy-sys-color-surface-on)}@supports (color:color-mix(in lab, red, red)){.from-surface-on\\/20{--tw-gradient-from:color-mix(in oklab, var(--schmancy-sys-color-surface-on) 20%, transparent)}}.from-surface-on\\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-12{padding:3rem}.px-1{padding-inline:.25rem}.px-1\\.5{padding-inline:.375rem}.px-2{padding-inline:.5rem}.px-2\\.5{padding-inline:.625rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-5{padding-inline:1.25rem}.px-6{padding-inline:1.5rem}.px-7{padding-inline:1.75rem}.py-0\\.75{padding-block:.1875rem}.py-1{padding-block:.25rem}.py-1\\.5{padding-block:.375rem}.py-2{padding-block:.5rem}.py-2\\.5{padding-block:.625rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.ps-4{padding-inline-start:1rem}.pe-5{padding-inline-end:1.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.pt-10{padding-top:2.5rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pb-6{padding-bottom:1.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--schmancy-font-family), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace}.text-2xl{font-size:1.5rem;line-height:var(--tw-leading,calc(2 / 1.5))}.text-4xl{font-size:2.25rem;line-height:var(--tw-leading,calc(2.5 / 2.25))}.text-base{font-size:1rem;line-height:var(--tw-leading,calc(1.5 / 1))}.text-lg{font-size:1.125rem;line-height:var(--tw-leading,calc(1.75 / 1.125))}.text-sm{font-size:.875rem;line-height:var(--tw-leading,calc(1.25 / .875))}.text-xl{font-size:1.25rem;line-height:var(--tw-leading,calc(1.75 / 1.25))}.text-xs{font-size:.75rem;line-height:var(--tw-leading,calc(1 / .75))}.text-\\[8px\\]{font-size:8px}.text-\\[10px\\]{font-size:10px}.text-\\[18px\\]{font-size:18px}.leading-3{--tw-leading:calc(.25rem * 3);line-height:.75rem}.leading-4{--tw-leading:calc(.25rem * 4);line-height:1rem}.leading-5{--tw-leading:calc(.25rem * 5);line-height:1.25rem}.leading-6{--tw-leading:calc(.25rem * 6);line-height:1.5rem}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:1.25;line-height:1.25}.font-bold{--tw-font-weight:700;font-weight:700}.font-medium{--tw-font-weight:500;font-weight:500}.font-semibold{--tw-font-weight:600;font-weight:600}.tracking-\\[0\\.01em\\]{--tw-tracking:.01em;letter-spacing:.01em}.tracking-\\[0\\.1px\\]{--tw-tracking:.1px;letter-spacing:.1px}.tracking-wide{--tw-tracking:.025em;letter-spacing:.025em}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-\\[\\#000\\]{color:#000}.text-error,.text-error-default{color:var(--schmancy-sys-color-error-default)}.text-error-on{color:var(--schmancy-sys-color-error-on)}.text-error-onContainer{color:var(--schmancy-sys-color-error-onContainer)}.text-info-default{color:var(--schmancy-sys-color-info-default)}.text-info-on{color:var(--schmancy-sys-color-info-on)}.text-info-onContainer{color:var(--schmancy-sys-color-info-onContainer)}.text-primary-container{color:var(--schmancy-sys-color-primary-container)}.text-primary-default{color:var(--schmancy-sys-color-primary-default)}.text-primary-on{color:var(--schmancy-sys-color-primary-on)}.text-primary-onContainer{color:var(--schmancy-sys-color-primary-onContainer)}.text-secondary-default{color:var(--schmancy-sys-color-secondary-default)}.text-secondary-on{color:var(--schmancy-sys-color-secondary-on)}.text-secondary-onContainer{color:var(--schmancy-sys-color-secondary-onContainer)}.text-success,.text-success-default{color:var(--schmancy-sys-color-success-default)}.text-success-on{color:var(--schmancy-sys-color-success-on)}.text-success-on-container,.text-success-onContainer{color:var(--schmancy-sys-color-success-onContainer)}.text-surface-on{color:var(--schmancy-sys-color-surface-on)}.text-surface-on-variant{color:var(--schmancy-sys-color-surface-onVariant)}.text-surface-on\\/40{color:var(--schmancy-sys-color-surface-on)}@supports (color:color-mix(in lab, red, red)){.text-surface-on\\/40{color:color-mix(in oklab, var(--schmancy-sys-color-surface-on) 40%, transparent)}}.text-surface-onVariant{color:var(--schmancy-sys-color-surface-onVariant)}.text-tertiary-default{color:var(--schmancy-sys-color-tertiary-default)}.text-tertiary-on{color:var(--schmancy-sys-color-tertiary-on)}.text-tertiary-onContainer{color:var(--schmancy-sys-color-tertiary-onContainer)}.text-warning-default{color:var(--schmancy-sys-color-warning-default)}.text-warning-on{color:var(--schmancy-sys-color-warning-on)}.text-warning-onContainer{color:var(--schmancy-sys-color-warning-onContainer)}.text-white{color:#fff}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.caret-transparent{caret-color:#0000}.opacity-0{opacity:0}.opacity-1{opacity:.01}.opacity-30{opacity:.3}.opacity-38{opacity:.38}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-85{opacity:.85}.opacity-100{opacity:1}.opacity-\\[0\\.12\\]{opacity:.12}.opacity-\\[0\\.38\\]{opacity:.38}.opacity-\\[var\\(--schmancy-sys-state-disabled-opacity\\)\\]{opacity:var(--schmancy-sys-state-disabled-opacity)}.opacity-\\[var\\(--schmancy-sys-state-pressed-opacity\\)\\]{opacity:var(--schmancy-sys-state-pressed-opacity)}.shadow-1{--tw-shadow:var(--schmancy-sys-elevation-1);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[0_0_20px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:0 0 20px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[inset_0_1px_1px_0_rgba\\(255\\,255\\,255\\,0\\.2\\)\\]{--tw-shadow:inset 0 1px 1px 0 var(--tw-shadow-color,#fff3);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[inset_0_1px_2px_0_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:inset 0 1px 2px 0 var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-overlay{--tw-shadow:0 1px 2px var(--tw-shadow-color,#00000014), 0 28px 60px -20px var(--tw-shadow-color,#00000073), inset 0 1px 0 0 var(--tw-shadow-color,var(--schmancy-sys-color-surface-on))}@supports (color:color-mix(in lab, red, red)){.shadow-overlay{--tw-shadow:0 1px 2px var(--tw-shadow-color,#00000014), 0 28px 60px -20px var(--tw-shadow-color,#00000073), inset 0 1px 0 0 var(--tw-shadow-color,color-mix(in srgb, var(--schmancy-sys-color-surface-on) 8%, transparent))}}.shadow-overlay{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-overlay-anchored{--tw-shadow:0 1px 2px var(--tw-shadow-color,#00000014), 0 12px 28px -12px var(--tw-shadow-color,#00000059), inset 0 1px 0 0 var(--tw-shadow-color,var(--schmancy-sys-color-surface-on))}@supports (color:color-mix(in lab, red, red)){.shadow-overlay-anchored{--tw-shadow:0 1px 2px var(--tw-shadow-color,#00000014), 0 12px 28px -12px var(--tw-shadow-color,#00000059), inset 0 1px 0 0 var(--tw-shadow-color,color-mix(in srgb, var(--schmancy-sys-color-surface-on) 8%, transparent))}}.shadow-overlay-anchored{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-error-default{--tw-ring-color:var(--schmancy-sys-color-error-default)}.ring-primary{--tw-ring-color:var(--schmancy-sys-color-primary-default)}.ring-secondary-default{--tw-ring-color:var(--schmancy-sys-color-secondary-default)}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-offset-4{outline-offset:4px}.outline-error-default{outline-color:var(--schmancy-sys-color-error-default)}.outline-secondary-default{outline-color:var(--schmancy-sys-color-secondary-default)}.brightness-110{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\\[16px\\]{--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xs{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-brightness-105{--tw-backdrop-brightness:brightness(105%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:cubic-bezier(.4, 0, 1, 1);transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{--tw-ease:cubic-bezier(.4, 0, .2, 1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:cubic-bezier(0, 0, .2, 1);transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\\[opacity\\]{will-change:opacity}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\\:scale-125:is(:where(.group):hover *){--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\\:border-primary-default:is(:where(.group):hover *){border-color:var(--schmancy-sys-color-primary-default)}.group-hover\\:bg-primary-container:is(:where(.group):hover *){background-color:var(--schmancy-sys-color-primary-container)}.group-hover\\:bg-primary-default:is(:where(.group):hover *){background-color:var(--schmancy-sys-color-primary-default)}.group-hover\\:bg-surface-containerHighest:is(:where(.group):hover *){background-color:var(--schmancy-sys-color-surface-containerHighest)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\\:shadow-lg:is(:where(.group):hover *){--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:top-1\\/2:before{content:var(--tw-content);top:50%}.before\\:left-1\\/2:before{content:var(--tw-content);left:50%}.before\\:h-0:before{content:var(--tw-content);height:0}.before\\:h-\\[200\\%\\]:before{content:var(--tw-content);height:200%}.before\\:w-0:before{content:var(--tw-content);width:0}.before\\:w-\\[200\\%\\]:before{content:var(--tw-content);width:200%}.before\\:-translate-x-1\\/2:before{content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.before\\:-translate-y-1\\/2:before{content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.before\\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\\:bg-current:before{content:var(--tw-content);background-color:currentColor}.before\\:opacity-0:before{content:var(--tw-content);opacity:0}.before\\:opacity-12:before{content:var(--tw-content);opacity:.12}.before\\:transition-all:before{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.before\\:duration-300:before{content:var(--tw-content);--tw-duration:.3s;transition-duration:.3s}.before\\:content-\\[\\\"\\\"\\]:before{--tw-content:\"\";content:var(--tw-content)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:right-3:after{content:var(--tw-content);right:.75rem}.after\\:bottom-\\[-4px\\]:after{content:var(--tw-content);bottom:-4px}.after\\:left-3:after{content:var(--tw-content);left:.75rem}.after\\:h-px:after{content:var(--tw-content);height:1px}.after\\:bg-outline-variant:after{content:var(--tw-content);background-color:var(--schmancy-sys-color-outlineVariant)}.after\\:opacity-12:after{content:var(--tw-content);opacity:.12}.focus-within\\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\\:ring-error-default:focus-within{--tw-ring-color:var(--schmancy-sys-color-error-default)}.focus-within\\:ring-secondary-default:focus-within{--tw-ring-color:var(--schmancy-sys-color-secondary-default)}.focus-within\\:ring-inset:focus-within{--tw-ring-inset:inset}@media (hover:hover){.hover\\:z-\\[100\\]:hover{z-index:100}.hover\\:translate-x-0:hover{--tw-translate-x:calc(.25rem * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:scale-\\[1\\.02\\]:hover{scale:1.02}.hover\\:border-outlineVariant:hover{border-color:var(--schmancy-sys-color-outlineVariant)}.hover\\:bg-error-container:hover{background-color:var(--schmancy-sys-color-error-container)}.hover\\:bg-error-default:hover{background-color:var(--schmancy-sys-color-error-default)}.hover\\:bg-error-on:hover{background-color:var(--schmancy-sys-color-error-on)}.hover\\:bg-info-container:hover{background-color:var(--schmancy-sys-color-info-container)}.hover\\:bg-info-default:hover{background-color:var(--schmancy-sys-color-info-default)}.hover\\:bg-info-on:hover{background-color:var(--schmancy-sys-color-info-on)}.hover\\:bg-primary-container:hover{background-color:var(--schmancy-sys-color-primary-container)}.hover\\:bg-primary-default:hover{background-color:var(--schmancy-sys-color-primary-default)}.hover\\:bg-primary-on:hover{background-color:var(--schmancy-sys-color-primary-on)}.hover\\:bg-secondary-container:hover{background-color:var(--schmancy-sys-color-secondary-container)}.hover\\:bg-secondary-default:hover{background-color:var(--schmancy-sys-color-secondary-default)}.hover\\:bg-secondary-on:hover{background-color:var(--schmancy-sys-color-secondary-on)}.hover\\:bg-success-container:hover{background-color:var(--schmancy-sys-color-success-container)}.hover\\:bg-success-default:hover{background-color:var(--schmancy-sys-color-success-default)}.hover\\:bg-success-on:hover{background-color:var(--schmancy-sys-color-success-on)}.hover\\:bg-surface-containerHigh:hover{background-color:var(--schmancy-sys-color-surface-containerHigh)}.hover\\:bg-surface-containerHighest:hover{background-color:var(--schmancy-sys-color-surface-containerHighest)}.hover\\:bg-surface-containerLow:hover{background-color:var(--schmancy-sys-color-surface-containerLow)}.hover\\:bg-surface-high:hover{background-color:var(--schmancy-sys-color-surface-high)}.hover\\:bg-surface-on:hover,.hover\\:bg-surface-on\\/5:hover{background-color:var(--schmancy-sys-color-surface-on)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-surface-on\\/5:hover{background-color:color-mix(in oklab, var(--schmancy-sys-color-surface-on) 5%, transparent)}}.hover\\:bg-surface-onVariant:hover{background-color:var(--schmancy-sys-color-surface-onVariant)}.hover\\:bg-warning-container:hover{background-color:var(--schmancy-sys-color-warning-container)}.hover\\:bg-warning-default:hover{background-color:var(--schmancy-sys-color-warning-default)}.hover\\:bg-warning-on:hover{background-color:var(--schmancy-sys-color-warning-on)}.hover\\:bg-white\\/25:hover{background-color:oklab(100% 0 5.96046e-8/.25)}.hover\\:bg-white\\/30:hover{background-color:oklab(100% 0 5.96046e-8/.3)}.hover\\:text-surface-on:hover{color:var(--schmancy-sys-color-surface-on)}.hover\\:opacity-8:hover{opacity:.08}.hover\\:opacity-80:hover{opacity:.8}.hover\\:opacity-100:hover{opacity:1}.hover\\:opacity-\\[0\\.08\\]:hover{opacity:.08}.hover\\:opacity-\\[var\\(--schmancy-sys-state-hover-opacity\\)\\]:hover{opacity:var(--schmancy-sys-state-hover-opacity)}.hover\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\:shadow-xs:hover{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\\:brightness-95:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\\:brightness-\\[0\\.92\\]:hover{--tw-brightness:brightness(.92);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\\:brightness-\\[0\\.98\\]:hover{--tw-brightness:brightness(.98);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\\:border-secondary-default:focus{border-color:var(--schmancy-sys-color-secondary-default)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-error-default:focus{--tw-ring-color:var(--schmancy-sys-color-error-default)}.focus\\:ring-primary-container:focus{--tw-ring-color:var(--schmancy-sys-color-primary-container)}.focus\\:ring-secondary-default:focus{--tw-ring-color:var(--schmancy-sys-color-secondary-default)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\\:outline-1:focus{outline-style:var(--tw-outline-style);outline-width:1px}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus\\:ring-inset:focus{--tw-ring-inset:inset}.focus-visible\\:z-1:focus-visible{z-index:1}.focus-visible\\:opacity-10:focus-visible,.focus-visible\\:opacity-\\[0\\.10\\]:focus-visible{opacity:.1}.focus-visible\\:opacity-\\[var\\(--schmancy-sys-state-focus-opacity\\)\\]:focus-visible{opacity:var(--schmancy-sys-state-focus-opacity)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-primary-default\\/50:focus-visible{--tw-ring-color:var(--schmancy-sys-color-primary-default)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-primary-default\\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--schmancy-sys-color-primary-default) 50%, transparent)}}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-0:focus-visible{outline-offset:0px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-primary:focus-visible,.focus-visible\\:outline-primary-default:focus-visible{outline-color:var(--schmancy-sys-color-primary-default)}.focus-visible\\:outline-solid:focus-visible{--tw-outline-style:solid;outline-style:solid}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\\:bg-surface-on\\/8:active{background-color:var(--schmancy-sys-color-surface-on)}@supports (color:color-mix(in lab, red, red)){.active\\:bg-surface-on\\/8:active{background-color:color-mix(in oklab, var(--schmancy-sys-color-surface-on) 8%, transparent)}}.active\\:opacity-10:active,.active\\:opacity-\\[0\\.10\\]:active{opacity:.1}.active\\:brightness-90:active{--tw-brightness:brightness(90%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.active\\:brightness-\\[0\\.85\\]:active{--tw-brightness:brightness(.85);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}@media (prefers-reduced-motion:reduce){.motion-reduce\\:hidden{display:none}}@media (width>=40rem){.sm\\:top-2{top:.5rem}.sm\\:right-2{right:.5rem}.sm\\:bottom-\\[-3rem\\]{bottom:-3rem}.sm\\:left-4{left:1rem}.sm\\:-mx-2{margin-inline:-.5rem}.sm\\:mt-1{margin-top:.25rem}.sm\\:mt-4{margin-top:1rem}.sm\\:ml-6{margin-left:1.5rem}.sm\\:ml-10{margin-left:2.5rem}.sm\\:h-5{height:1.25rem}.sm\\:h-12{height:3rem}.sm\\:min-h-\\[40px\\]{min-height:40px}.sm\\:w-5{width:1.25rem}.sm\\:px-2{padding-inline:.5rem}.sm\\:px-3{padding-inline:.75rem}.sm\\:py-2{padding-block:.5rem}.sm\\:py-3{padding-block:.75rem}.sm\\:pb-8{padding-bottom:2rem}.sm\\:text-3xl{font-size:1.875rem;line-height:var(--tw-leading,calc(2.25 / 1.875))}}@media (width>=48rem){.md\\:top-4{top:1rem}.md\\:right-4{right:1rem}.md\\:bottom-\\[-3\\.5rem\\]{bottom:-3.5rem}.md\\:text-4xl{font-size:2.25rem;line-height:var(--tw-leading,calc(2.5 / 2.25))}.md\\:text-base{font-size:1rem;line-height:var(--tw-leading,calc(1.5 / 1))}}@media (width>=64rem){.lg\\:flex{display:flex}.lg\\:hidden{display:none}.lg\\:text-lg{font-size:1.125rem;line-height:var(--tw-leading,calc(1.75 / 1.125))}}.\\[\\&\\>\\.ripple\\]\\:scale-100>.ripple{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}@layer schmancy.tokens;@layer schmancy.base{:host,:root{font-family:var(--schmancy-font-family);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:host,:root{--lightningcss-light: ;--lightningcss-dark:initial}}:host,:host *,*{touch-action:pan-x pan-y}.interactive{transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .4s,filter .2s}.interactive:hover{filter:brightness(1.03);box-shadow:0 4px 20px -6px var(--schmancy-sys-color-primary-default);transform:translateY(-1px)}@supports (color:color-mix(in lab, red, red)){.interactive:hover{box-shadow:0 4px 20px -6px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 18%, transparent)}}.interactive:active{filter:brightness(.96);box-shadow:none;transition-duration:.1s;transform:scale(.97)}@media (prefers-reduced-motion:reduce){.interactive{transition:filter .15s}.interactive:hover{box-shadow:none;transform:none}.interactive:active{transform:none}}}@layer schmancy.components;@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-pan-x{syntax:\"*\";inherits:false}@property --tw-pan-y{syntax:\"*\";inherits:false}@property --tw-pinch-zoom{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:\"*\";inherits:false}@property --tw-gradient-from{syntax:\"<color>\";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:\"<color>\";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:\"<color>\";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:\"*\";inherits:false}@property --tw-gradient-via-stops{syntax:\"*\";inherits:false}@property --tw-gradient-from-position{syntax:\"<length-percentage>\";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:\"<length-percentage>\";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:\"<length-percentage>\";inherits:false;initial-value:100%}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@keyframes pulse{50%{opacity:.5}}"), D = (e) => {
159
- class t extends p {
160
- static {
161
- this.styles = [m(e), E];
162
- }
163
- }
164
- return t;
165
- }, O = (e) => {
166
- class t extends T(D(e)) {
167
- constructor(...e) {
168
- super(...e), this.disconnectedCallback = () => {
169
- super.disconnectedCallback();
170
- };
171
- }
172
- }
173
- return t;
174
- }, k = Symbol.for("schmancy.state.activeHost.stack"), A = globalThis;
175
- A[k] ??= { stack: [void 0] };
176
- var j = A[k].stack;
177
- if (typeof Promise < "u" && !("t" in Promise.prototype)) {
178
- Object.defineProperty(Promise.prototype, "t", {
179
- value: !0,
180
- configurable: !1,
181
- enumerable: !1,
182
- writable: !1
183
- });
184
- let e = Promise.prototype.then;
185
- Promise.prototype.then = function(t, n) {
186
- let r = j[j.length - 1], i = t && ((e) => {
187
- j.push(r);
188
- try {
189
- return t(e);
190
- } finally {
191
- j.pop();
192
- }
193
- }), a = n && ((e) => {
194
- j.push(r);
195
- try {
196
- return n(e);
197
- } finally {
198
- j.pop();
199
- }
200
- });
201
- return e.call(this, i, a);
202
- };
203
- }
204
- var M = {
205
- run(e, t) {
206
- j.push(e);
207
- try {
208
- return t();
209
- } finally {
210
- j.pop();
211
- }
212
- },
213
- get: () => j[j.length - 1]
214
- }, N = Symbol.for("schmancy.state.activeHost.eventHost"), P = globalThis[N] ??= {
215
- host: void 0,
216
- scheduled: !1
217
- };
218
- function F(e) {
219
- P.host = e, P.scheduled || (P.scheduled = !0, queueMicrotask(() => {
220
- P.scheduled = !1, P.host = void 0;
221
- }));
222
- }
223
- function I() {
224
- let e = M.get();
225
- return e === void 0 ? P.host === void 0 ? typeof document < "u" && document.activeElement instanceof HTMLElement ? document.activeElement : void 0 : P.host : e;
226
- }
227
- function L(e) {
228
- return Symbol.for(`schmancy.state:${e}`);
229
- }
230
- var R = h(T(p));
231
- function z(e) {
232
- return e === "constructor" || !!e.startsWith("_$");
233
- }
234
- var B = /* @__PURE__ */ new WeakSet();
235
- function V(e) {
236
- let t = e.prototype;
237
- for (; t && t !== HTMLElement.prototype && !B.has(t);) {
238
- B.add(t);
239
- let e = Object.getOwnPropertyDescriptors(t);
240
- for (let [n, r] of Object.entries(e)) {
241
- if (z(n) || typeof r.value != "function" || !r.configurable) continue;
242
- let e = r.value;
243
- Object.defineProperty(t, n, {
244
- ...r,
245
- value: function(...t) {
246
- return M.run(this, () => e.apply(this, t));
247
- }
248
- });
249
- }
250
- t = Object.getPrototypeOf(t);
251
- }
252
- }
253
- var H = /* @__PURE__ */ new WeakMap(), U = class extends R {
254
- constructor() {
255
- super(), this._abortController = new AbortController(), this.disconnectedSignal = this._abortController.signal, V(this.constructor);
256
- }
257
- static finalizeStyles(e) {
258
- return [...super.finalizeStyles(e), E];
259
- }
260
- addEventListener(e, t, n) {
261
- t == null ? super.addEventListener(e, t, n) : super.addEventListener(e, function(e, t) {
262
- let n = H.get(t);
263
- if (n) return n;
264
- let r = function(n) {
265
- M.run(e, () => {
266
- typeof t == "function" ? t.call(this, n) : t.handleEvent(n);
267
- });
268
- };
269
- return H.set(t, r), r;
270
- }(this, t), n);
271
- }
272
- removeEventListener(e, t, n) {
273
- if (t == null) return void super.removeEventListener(e, t, n);
274
- let r = H.get(t);
275
- super.removeEventListener(e, r ?? t, n);
276
- }
277
- disconnectedCallback() {
278
- this._abortController.abort(), super.disconnectedCallback();
279
- }
280
- };
281
- function W(e) {
282
- return (t) => (V(t), customElements.define(e, t), t);
283
- }
284
- export { v as _, I as a, E as c, C as d, g as f, y as g, x as h, F as i, T as l, S as m, W as n, L as o, _ as p, M as r, O as s, U as t, w as u, b as v };
@@ -1 +0,0 @@
1
- {"version":3,"file":"area-BA96mwFY.js","names":[],"sources":["../src/area/area.service.ts","../src/area/route.component.ts","../src/area/router.types.ts","../src/area/area.component.ts","../src/area/ecrypt.ts","../src/area/utils.ts"],"sourcesContent":["import {\n\tbufferTime,\n\tcatchError,\n\tdistinctUntilChanged,\n\tEMPTY,\n\tfilter,\n\tfromEvent,\n\tmap,\n\tObservable,\n\tof,\n\tReplaySubject,\n\tshareReplay,\n\tskip,\n\tstartWith,\n\tSubject,\n\tSubscription,\n\ttap,\n\ttimeout,\n\tzip\n} from 'rxjs'\nimport { SchmancyTeleportation } from '../teleport'\nimport { ActiveRoute, AreaSubscription, RouteAction } from './router.types'\n\nexport const routerHistory = new Subject<RouteAction>()\n\nexport const FINDING_MORTIES = 'FINDING_MORTIES'\nexport const HERE_RICKY = 'HERE_RICKY'\nexport type HERE_RICKY_EVENT = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\nexport type FINDING_MORTIES_EVENT = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\n\n// WeakMap for better memory management of area subjects\nconst areaSubjectsCache = new WeakMap<AreaService, Map<string, ReplaySubject<ActiveRoute>>>()\n\n// Track navigation source to prevent history conflicts\ntype NavigationSource = 'programmatic' | 'browser' | 'initial'\n\nclass AreaService implements AreaSubscription {\n\tprivate static instance: AreaService\n\tpublic prettyURL = false\n\tpublic mode: 'SILENT' | 'HISTORY' = 'HISTORY'\n\tpublic request = new ReplaySubject<RouteAction>(1)\n\tpublic current = new Map<string, ActiveRoute>()\n\tpublic $current = new ReplaySubject<Map<string, ActiveRoute>>(1)\n\t\n\t// Create a dictionary of ReplaySubjects for area-specific subscriptions\n\tprivate get areaSubjects(): Map<string, ReplaySubject<ActiveRoute>> {\n\t\tlet subjects = areaSubjectsCache.get(this)\n\t\tif (!subjects) {\n\t\t\tsubjects = new Map()\n\t\t\tareaSubjectsCache.set(this, subjects)\n\t\t}\n\t\treturn subjects\n\t}\n\t\n\tpublic enableHistoryMode = true\n\tprivate findingMortiesEvent = new CustomEvent<FINDING_MORTIES_EVENT['detail']>(FINDING_MORTIES)\n\tprivate disposed = false\n\tpublic isProcessingPopstate = false\n\tprivate unloadSubscription?: Subscription\n\n\tconstructor() {\n\t\tthis.$current.next(this.current)\n\t\t\n\t\t// Subscribe to current changes to update area-specific subjects\n\t\tthis.$current.subscribe(currentAreas => {\n\t\t\tif (this.disposed) return\n\t\t\t\n\t\t\t// For each area in the current map\n\t\t\tcurrentAreas.forEach((route, areaName) => {\n\t\t\t\t// Get or create a subject for this area\n\t\t\t\tconst areaSubject = this.getOrCreateAreaSubject(areaName)\n\t\t\t\t// Emit the updated route to area-specific subscribers\n\t\t\t\tareaSubject.next(route)\n\t\t\t})\n\t\t})\n\n\t\t// Initialize from browser state if available\n\t\tthis.initializeFromBrowserState()\n\n\t\t// Setup unload subscription using RxJS\n\t\tif (typeof window !== 'undefined') {\n\t\t\tthis.unloadSubscription = fromEvent(window, 'unload').subscribe(() => {\n\t\t\t\tthis.dispose()\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * Initialize router state from browser history state\n\t */\n\tprivate initializeFromBrowserState() {\n\t\ttry {\n\t\t\tconst browserState = history.state\n\t\t\tif (browserState && browserState.schmancyAreas) {\n\t\t\t\tObject.entries(browserState.schmancyAreas).forEach(([areaName, route]) => {\n\t\t\t\t\tthis.current.set(areaName, route as ActiveRoute)\n\t\t\t\t})\n\t\t\t\tthis.$current.next(this.current)\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('Failed to initialize from browser state:', error)\n\t\t}\n\t}\n\n\t/**\n\t * Get or create a ReplaySubject for a specific area with proper cleanup\n\t */\n\tprivate getOrCreateAreaSubject(areaName: string): ReplaySubject<ActiveRoute> {\n\t\tlet subject = this.areaSubjects.get(areaName)\n\t\t\n\t\tif (!subject || subject.closed) {\n\t\t\tsubject = new ReplaySubject<ActiveRoute>(1)\n\t\t\tthis.areaSubjects.set(areaName, subject)\n\t\t\t\n\t\t\t// If the area already exists in current, emit it immediately\n\t\t\tconst currentRoute = this.current.get(areaName)\n\t\t\tif (currentRoute) {\n\t\t\t\tsubject.next({\n\t\t\t\t\t...currentRoute,\n\t\t\t\t\t// Ensure state, params and props are initialized if undefined\n\t\t\t\t\tstate: currentRoute.state || {},\n\t\t\t\t\tparams: currentRoute.params || {},\n\t\t\t\t\tprops: currentRoute.props || {}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn subject\n\t}\n\n\t/**\n\t * Subscribe to a specific area with caching\n\t */\n\ton(areaName: string, skipCurrent = false): Observable<ActiveRoute> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\n\t\tconst areaSubject = this.getOrCreateAreaSubject(areaName)\n\t\tconst observable = areaSubject.asObservable().pipe(\n\t\t\t// Add distinct to prevent duplicate emissions - includes state, params, and props\n\t\t\tdistinctUntilChanged((a, b) =>\n\t\t\t\ta.component === b.component &&\n\t\t\t\tJSON.stringify(a.state) === JSON.stringify(b.state) &&\n\t\t\t\tJSON.stringify(a.params) === JSON.stringify(b.params) &&\n\t\t\t\tJSON.stringify(a.props) === JSON.stringify(b.props)\n\t\t\t),\n\t\t\t// Share the subscription\n\t\t\tshareReplay(1)\n\t\t)\n\n\t\treturn skipCurrent ? observable.pipe(skip(1)) : observable\n\t}\n\t\n\t/**\n\t * Subscribe to all areas\n\t */\n\tall(skipCurrent = false): Observable<Map<string, ActiveRoute>> {\n\t\tconst observable = this.$current.asObservable().pipe(\n\t\t\tshareReplay(1)\n\t\t)\n\t\treturn skipCurrent ? observable.pipe(skip(1)) : observable\n\t}\n\t\n\t/**\n\t * Get state from an area with type safety\n\t */\n\tgetState<T = unknown>(areaName: string): Observable<T> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\treturn this.on(areaName).pipe(\n\t\t\tmap(route => route.state),\n\t\t\tfilter((state): state is NonNullable<Record<string, unknown>> => \n\t\t\t\tstate !== undefined && state !== null\n\t\t\t),\n\t\t\tdistinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n\t\t\tmap(state => state as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting state for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get params from an area with type safety\n\t * Emits current value immediately on subscription via startWith\n\t * URL query params are MERGED with route params (URL takes precedence for redirects like _rp_oid)\n\t */\n\tparams<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): Observable<T> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\n\t\tconst routeParams = (this.current.get(areaName)?.params ?? {}) as Record<string, unknown>\n\n\t\t// ALWAYS merge URL query params - they take precedence (handles external OAuth-style redirects)\n\t\tlet currentParams = { ...routeParams }\n\t\tif (typeof window !== 'undefined' && window.location.search) {\n\t\t\tconst urlParams = new URLSearchParams(window.location.search)\n\t\t\turlParams.forEach((value, key) => {\n\t\t\t\tcurrentParams[key] = value\n\t\t\t})\n\t\t}\n\n\t\treturn this.on(areaName).pipe(\n\t\t\tmap(route => (route.params ?? {}) as T),\n\t\t\tstartWith(currentParams as T),\n\t\t\tdistinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting params for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get a specific param from an area with null safety\n\t */\n\tparam<T = unknown>(areaName: string, key: string): Observable<T> {\n\t\tif (!areaName || !key) {\n\t\t\tthrow new Error('Area name and key are required')\n\t\t}\n\t\t\n\t\treturn this.params<Record<string, unknown>>(areaName).pipe(\n\t\t\tmap(params => params[key]),\n\t\t\tfilter((value): value is NonNullable<unknown> => value !== undefined),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(value => value as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting param \"${key}\" for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get props from an area with type safety\n\t */\n\tprops<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): Observable<T> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\treturn this.on(areaName).pipe(\n\t\t\tmap(route => route.props),\n\t\t\tfilter((props): props is NonNullable<Record<string, unknown>> => \n\t\t\t\tprops !== undefined && props !== null\n\t\t\t),\n\t\t\tdistinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n\t\t\tmap(props => props as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting props for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get a specific prop from an area with null safety\n\t */\n\tprop<T = unknown>(areaName: string, key: string): Observable<T> {\n\t\tif (!areaName || !key) {\n\t\t\tthrow new Error('Area name and key are required')\n\t\t}\n\t\t\n\t\treturn this.props<Record<string, unknown>>(areaName).pipe(\n\t\t\tmap(props => props[key]),\n\t\t\tfilter((value): value is NonNullable<unknown> => value !== undefined),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(value => value as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting prop \"${key}\" for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\n\t/**\n\t * Find teleportation components\n\t */\n\tfind() {\n\t\treturn zip([\n\t\t\tfromEvent<HERE_RICKY_EVENT>(window, HERE_RICKY).pipe(\n\t\t\t\tmap(e => e.detail),\n\t\t\t\tbufferTime(0),\n\t\t\t),\n\t\t\tof(1).pipe(tap(() => window.dispatchEvent(this.findingMortiesEvent))),\n\t\t]).pipe(\n\t\t\tmap(([component]) => component),\n\t\t\ttimeout(1),\n\t\t\tcatchError(() => EMPTY)\n\t\t)\n\t}\n\n\t/**\n\t * Push a new route action with validation\n\t */\n\tpush(r: RouteAction) {\n\t\tif (!r.area) {\n\t\t\tthrow new Error('Area is required for route action')\n\t\t}\n\t\t\n\t\t// Prevent processing during popstate handling\n\t\tif (this.isProcessingPopstate) {\n\t\t\treturn\n\t\t}\n\t\t\n\t\t// Ensure state, params and props are initialized\n\t\tconst routeAction: RouteAction = {\n\t\t\t...r,\n\t\t\tstate: r.state || {},\n\t\t\tparams: r.params || {},\n\t\t\tprops: r.props || {},\n\t\t\t_source: 'programmatic' as NavigationSource\n\t\t}\n\t\t\n\t\t// Add to history if enabled\n\t\tif (this.enableHistoryMode) {\n\t\t\trouterHistory.next(routeAction)\n\t\t}\n\t\t\n\t\tthis.request.next(routeAction)\n\t\t// Emit an area-specific event for those who want to listen directly to DOM events\n\t\tthis.dispatchAreaEvent(routeAction.area, routeAction)\n\t}\n\n\t/**\n\t * Internal method to update route from browser navigation\n\t * This should only be called by area components during popstate handling\n\t */\n\t_updateFromBrowser(routeAction: RouteAction) {\n\t\tconst enhancedRoute: RouteAction = {\n\t\t\t...routeAction,\n\t\t\tstate: routeAction.state || {},\n\t\t\tparams: routeAction.params || {},\n\t\t\tprops: routeAction.props || {},\n\t\t\t_source: 'browser' as NavigationSource\n\t\t}\n\t\t\n\t\tthis.isProcessingPopstate = true\n\t\tthis.request.next(enhancedRoute)\n\t\tthis.isProcessingPopstate = false\n\t}\n\n\t/**\n\t * Update browser history state (called by area components)\n\t */\n\t_updateBrowserHistory(areaName: string, route: ActiveRoute, historyStrategy?: string, clearQueryParams?: string[] | boolean | null, customPath?: string) {\n\t\tif (!this.enableHistoryMode) return\n\n\t\ttry {\n\t\t\t// Get current browser state or create new one\n\t\t\tconst currentState = history.state || {}\n\t\t\tconst schmancyAreas = currentState.schmancyAreas || {}\n\n\t\t\t// Update the specific area - only include non-empty state/params/props\n\t\t\tconst areaData: any = {\n\t\t\t\tcomponent: route.component,\n\t\t\t\tarea: route.area\n\t\t\t}\n\n\t\t\t// Only include state if it has content\n\t\t\tif (route.state && Object.keys(route.state).length > 0) {\n\t\t\t\tareaData.state = route.state\n\t\t\t}\n\n\t\t\t// Only include params if it has content\n\t\t\tif (route.params && Object.keys(route.params).length > 0) {\n\t\t\t\tareaData.params = route.params\n\t\t\t}\n\n\t\t\t// Only include props if it has content\n\t\t\tif (route.props && Object.keys(route.props).length > 0) {\n\t\t\t\tareaData.props = route.props\n\t\t\t}\n\n\t\t\tschmancyAreas[areaName] = areaData\n\n\t\t\tconst newState = {\n\t\t\t\t...currentState,\n\t\t\t\tschmancyAreas\n\t\t\t}\n\n\t\t\t// Create clean URL with optional custom path\n\t\t\tconst url = this.createCleanURL(schmancyAreas, clearQueryParams, customPath)\n\n\t\t\t// Update browser history\n\t\t\tif (historyStrategy === 'replace' || historyStrategy === 'pop') {\n\t\t\t\thistory.replaceState(newState, '', url)\n\t\t\t} else if (historyStrategy === 'push' || !historyStrategy) {\n\t\t\t\thistory.pushState(newState, '', url)\n\t\t\t}\n\t\t\t// 'silent' strategy doesn't update browser history\n\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to update browser history:', error)\n\t\t}\n\t}\n\n\t/**\n\t * Create a clean URL from area states\n\t */\n\tprivate createCleanURL(areas: Record<string, ActiveRoute>, clearQueryParams?: string[] | boolean | null, customPath?: string): string {\n\t\tlet basePath = '/'\n\n\t\t// If custom path is provided, use it directly (completely replaces the path)\n\t\tif (customPath) {\n\t\t\tbasePath = customPath\n\t\t\t// Ensure it starts with /\n\t\t\tif (!basePath.startsWith('/')) {\n\t\t\t\tbasePath = '/' + basePath\n\t\t\t}\n\t\t\t// Ensure base path ends with / for appending encoded state\n\t\t\tif (!basePath.endsWith('/')) {\n\t\t\t\tbasePath += '/'\n\t\t\t}\n\t\t} else {\n\t\t\t// Get the current base path (everything except the last segment which might be encoded state)\n\t\t\tconst currentPath = location.pathname\n\t\t\tconst pathSegments = currentPath.split('/')\n\n\t\t\t// Check if the last segment is encoded state (contains { or %7B)\n\t\t\tconst lastSegment = pathSegments[pathSegments.length - 1]\n\t\t\tif (lastSegment && (lastSegment.includes('{') || lastSegment.includes('%7B'))) {\n\t\t\t\t// Remove the encoded state segment to get the base path\n\t\t\t\tpathSegments.pop()\n\t\t\t\tbasePath = pathSegments.join('/') || '/'\n\t\t\t} else {\n\t\t\t\t// Keep the current path as base path\n\t\t\t\tbasePath = currentPath\n\t\t\t}\n\n\t\t\t// Ensure base path ends properly\n\t\t\tif (basePath !== '/' && !basePath.endsWith('/')) {\n\t\t\t\tbasePath += '/'\n\t\t\t}\n\t\t}\n\n\t\t// Handle query parameters\n\t\tlet queryString = ''\n\n\t\tif (clearQueryParams !== true) {\n\t\t\t// Get current query params\n\t\t\tconst urlParams = new URLSearchParams(location.search)\n\n\t\t\t// Add params from all areas to query string\n\t\t\tObject.values(areas).forEach(route => {\n\t\t\t\tif (route.params && Object.keys(route.params).length > 0) {\n\t\t\t\t\tObject.entries(route.params).forEach(([key, value]) => {\n\t\t\t\t\t\tif (value !== null && value !== undefined) {\n\t\t\t\t\t\t\turlParams.set(key, String(value))\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// Clear specific params if provided\n\t\t\tif (Array.isArray(clearQueryParams)) {\n\t\t\t\tclearQueryParams.forEach(param => urlParams.delete(param))\n\t\t\t}\n\n\t\t\t// Convert back to string\n\t\t\tqueryString = urlParams.toString()\n\t\t\tqueryString = queryString ? `?${queryString}` : ''\n\t\t}\n\t\t// If clearQueryParams === true, queryString remains empty (all params cleared)\n\n\t\tif (this.prettyURL) {\n\t\t\t// Create pretty URLs - customize this based on your routing needs\n\t\t\tconst mainArea = areas.main\n\t\t\tif (mainArea) {\n\t\t\t\tlet path = basePath === '/' ? `/${mainArea.component}` : `${basePath}${mainArea.component}`\n\n\t\t\t\t// Add simple params to URL\n\t\t\t\tconst searchParams = new URLSearchParams(queryString)\n\t\t\t\tif (mainArea.params) {\n\t\t\t\t\tObject.entries(mainArea.params).forEach(([key, value]) => {\n\t\t\t\t\t\tif (typeof value === 'string' || typeof value === 'number') {\n\t\t\t\t\t\t\tsearchParams.set(key, String(value))\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst query = searchParams.toString()\n\t\t\t\treturn path + (query ? `?${query}` : '')\n\t\t\t}\n\t\t}\n\n\t\t// Fallback to encoded state in URL (original behavior)\n\t\ttry {\n\t\t\t// Clean up empty objects before encoding\n\t\t\ttype CleanRoute = Omit<ActiveRoute, 'area'>\n\t\t\tconst cleanedAreas: Record<string, CleanRoute> = {}\n\t\t\tObject.entries(areas).forEach(([areaName, route]) => {\n\t\t\t\tconst cleanRoute: CleanRoute = { component: route.component }\n\n\t\t\t\t// Only include state if it has content\n\t\t\t\tif (route.state && Object.keys(route.state).length > 0) {\n\t\t\t\t\tcleanRoute.state = route.state\n\t\t\t\t}\n\n\t\t\t\t// Only include params if it has content\n\t\t\t\tif (route.params && Object.keys(route.params).length > 0) {\n\t\t\t\t\tcleanRoute.params = route.params\n\t\t\t\t}\n\n\t\t\t\t// Only include props if it has content\n\t\t\t\tif (route.props && Object.keys(route.props).length > 0) {\n\t\t\t\t\tcleanRoute.props = route.props\n\t\t\t\t}\n\n\t\t\t\tcleanedAreas[areaName] = cleanRoute\n\t\t\t})\n\n\t\t\t// If cleanedAreas is empty, preserve the base path\n\t\t\tif (Object.keys(cleanedAreas).length === 0) {\n\t\t\t\tconst cleanBasePath = basePath === '/' ? '' : basePath.replace(/\\/$/, '')\n\t\t\t\treturn `${cleanBasePath}${queryString}`\n\t\t\t}\n\n\t\t\tconst encoded = encodeURIComponent(JSON.stringify(cleanedAreas))\n\t\t\tconst cleanBasePath = basePath === '/' ? '' : basePath.replace(/\\/$/, '')\n\t\t\treturn `${cleanBasePath}/${encoded}${queryString}`\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to encode URL state:', error)\n\t\t\treturn location.pathname\n\t\t}\n\t}\n\n\t/**\n\t * Restore state from browser history state\n\t */\n\trestoreFromBrowserState(browserState: any): Record<string, ActiveRoute> {\n\t\ttry {\n\t\t\tif (browserState && browserState.schmancyAreas) {\n\t\t\t\treturn browserState.schmancyAreas\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to restore from browser state:', error)\n\t\t}\n\t\t\n\t\t// Fallback to URL parsing (original behavior)\n\t\treturn this.parseStateFromURL()\n\t}\n\n\t/**\n\t * Parse state from URL (fallback method)\n\t */\n\tprivate parseStateFromURL(): Record<string, ActiveRoute> {\n\t\tconst pathname = location.pathname.split('/').pop()\n\t\tif (!pathname) return {}\n\t\t\n\t\ttry {\n\t\t\tconst decoded = decodeURIComponent(pathname)\n\t\t\tconst parsed = JSON.parse(decoded)\n\t\t\t\n\t\t\tif (typeof parsed === 'object' && parsed !== null) {\n\t\t\t\treturn parsed\n\t\t\t}\n\t\t} catch {\n\t\t\t// Ignore parse errors\n\t\t}\n\t\t\n\t\treturn {}\n\t}\n\t\n\t/**\n\t * Dispatch a DOM event for a specific area change\n\t */\n\tprivate dispatchAreaEvent(areaName: string, routeAction: RouteAction) {\n\t\tconst eventName = `schmancy-area-${areaName}-changed`\n\t\tconst event = new CustomEvent(eventName, { \n\t\t\tdetail: { \n\t\t\t\tarea: areaName,\n\t\t\t\tcomponent: routeAction.component,\n\t\t\t\tstate: routeAction.state,\n\t\t\t\tparams: routeAction.params,\n\t\t\t\tprops: routeAction.props,\n\t\t\t\thistoryStrategy: routeAction.historyStrategy\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t})\n\t\twindow.dispatchEvent(event)\n\t}\n\n\t/**\n\t * Remove an area from the current state\n\t */\n\tpop(name: string) {\n\t\tif (!name) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\n\t\t// Before removing from current map, emit a clearing signal to the area's subject\n\t\t// This notifies the area component to clear itself\n\t\tconst areaSubject = this.areaSubjects.get(name)\n\t\tif (areaSubject && !areaSubject.closed) {\n\t\t\t// Send a route with null component to signal clearing\n\t\t\tareaSubject.next({\n\t\t\t\tcomponent: null as any,\n\t\t\t\tstate: {},\n\t\t\t\tarea: name,\n\t\t\t\tparams: {},\n\t\t\t\tprops: {}\n\t\t\t})\n\t\t}\n\n\t\t// Send a clearing signal through the request pipeline\n\t\t// This ensures the area component receives the signal to clear\n\t\tthis.request.next({\n\t\t\tarea: name,\n\t\t\tcomponent: null as any,\n\t\t\tstate: {},\n\t\t\tparams: {},\n\t\t\tprops: {},\n\t\t\thistoryStrategy: 'silent' as any,\n\t\t\t_source: 'programmatic' as NavigationSource\n\t\t})\n\n\t\t// Remove from current map\n\t\tthis.current.delete(name)\n\t\tthis.$current.next(this.current)\n\n\t\t// Update browser history\n\t\tif (this.enableHistoryMode) {\n\t\t\ttry {\n\t\t\t\tconst currentState = history.state || {}\n\t\t\t\tconst schmancyAreas = { ...currentState.schmancyAreas }\n\t\t\t\tdelete schmancyAreas[name]\n\n\t\t\t\tconst newState = {\n\t\t\t\t\t...currentState,\n\t\t\t\t\tschmancyAreas\n\t\t\t\t}\n\n\t\t\t\tconst url = this.createCleanURL(schmancyAreas)\n\t\t\t\thistory.replaceState(newState, '', url)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to update history after pop:', error)\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * Clear all areas\n\t */\n\tclear() {\n\t\t// Complete all area subjects\n\t\tthis.areaSubjects.forEach(subject => subject.complete())\n\t\tthis.areaSubjects.clear()\n\n\t\t// Clear current state\n\t\tthis.current.clear()\n\t\tthis.$current.next(this.current)\n\n\t\t// Update URL\n\t\tif (this.enableHistoryMode) {\n\t\t\tconst url = this.createCleanURL({})\n\t\t\thistory.replaceState({ schmancyAreas: {} }, '', url)\n\t\t}\n\t}\n\t\n\t/**\n\t * Dispose of the service and clean up resources\n\t */\n\tdispose() {\n\t\tif (this.disposed) return\n\n\t\tthis.disposed = true\n\n\t\t// Unsubscribe from unload event\n\t\tif (this.unloadSubscription) {\n\t\t\tthis.unloadSubscription.unsubscribe()\n\t\t\tthis.unloadSubscription = undefined\n\t\t}\n\n\t\t// Complete all subjects\n\t\tthis.areaSubjects.forEach(subject => subject.complete())\n\t\tthis.areaSubjects.clear()\n\n\t\tthis.request.complete()\n\t\tthis.$current.complete()\n\t\trouterHistory.complete()\n\n\t\t// Clear references\n\t\tthis.current.clear()\n\t\tareaSubjectsCache.delete(this)\n\t}\n\t\n\t/**\n\t * Get singleton instance\n\t */\n\tstatic getInstance() {\n\t\tif (!AreaService.instance) {\n\t\t\tAreaService.instance = new AreaService()\n\t\t}\n\t\treturn AreaService.instance\n\t}\n\n\t/**\n\t * Get current state from URL (deprecated - use browser state instead)\n\t */\n\tget state(): Record<string, unknown> {\n\t\t// Try browser state first\n\t\ttry {\n\t\t\tconst browserState = history.state\n\t\t\tif (browserState && browserState.schmancyAreas) {\n\t\t\t\treturn browserState.schmancyAreas\n\t\t\t}\n\t\t} catch {\n\t\t\t// Fallback to URL parsing\n\t\t}\n\t\t\n\t\t// Fallback to URL parsing (original behavior)\n\t\treturn this.parseStateFromURL()\n\t}\n\t\n\t/**\n\t * Check if an area exists in current state\n\t */\n\thasArea(areaName: string): boolean {\n\t\treturn this.current.has(areaName)\n\t}\n\t\n\t/**\n\t * Get all active area names\n\t */\n\tgetActiveAreas(): string[] {\n\t\treturn Array.from(this.current.keys())\n\t}\n\t\n\t/**\n\t * Get route for a specific area synchronously\n\t */\n\tgetRoute(areaName: string): ActiveRoute | undefined {\n\t\treturn this.current.get(areaName)\n\t}\n}\n\n/**\n * Area router singleton. Drives named `<schmancy-area>` outlets in the DOM\n * — imperative push / pop, URL-synced, state-restoring. Pair with\n * `lazy(() => import('./view'))` for code-split routes.\n *\n * @service\n * @summary Imperative outlet-based router for `<schmancy-area>` elements.\n * @method push({ area, component, params?, state? }) - Navigate an area to a component.\n * @method pop(areaName) - Pop the top entry off an area's stack.\n * @method current$(areaName) - Observable of the active route state for an area.\n */\nexport const area = AreaService.getInstance()\nexport default area","import { SchmancyElement } from '@mixins/index';\nimport { css, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { Observable } from 'rxjs';\nimport { LazyComponent } from './lazy';\n\nexport type ObservableGuardResult = Observable<boolean>;\n\n// Component types that can be passed to routes\nexport type RouteComponent =\n | string // Tag name\n | CustomElementConstructor // Constructor function\n | HTMLElement // Existing element\n | LazyComponent<CustomElementConstructor>\n\nexport interface RouteConfig {\n when: string;\n component: RouteComponent;\n exact?: boolean;\n guard?: ObservableGuardResult;\n}\n\nexport type SchmancyRouteRedirectEvent = CustomEvent<{\n blockedRoute: string;\n area: string;\n params: Record<string, string>;\n state: Record<string, unknown>;\n redirectTarget?: unknown;\n}>;\n\n/**\n * A marker component that holds route configuration.\n * This component doesn't render anything - it's used by schmancy-area\n * to configure routing via slot change detection.\n *\n * @fires {SchmancyRouteRedirectEvent} redirect - Fired by the parent schmancy-area\n * on this element when the route's guard emits false. Listen with `@redirect`.\n *\n * @example\n * ```html\n * <schmancy-area>\n * <schmancy-route\n * when=\"users\"\n * .component=${UserComponent}\n * exact\n * ></schmancy-route>\n * </schmancy-area>\n * ```\n */\n@customElement('schmancy-route')\nexport class SchmancyRoute extends SchmancyElement {\n\tstatic styles = [css`\n :host {\n display: none;\n }\n`]\n\n @property({ type: String })\n when!: string;\n\n @property({ type: Object })\n component!: RouteComponent;\n\n @property({ type: Boolean })\n exact?: boolean = false;\n\n @property({ type: Object })\n guard?:ObservableGuardResult ;\n\n /**\n * Returns the route configuration object\n */\n getConfig(): RouteConfig {\n return {\n when: this.when,\n component: this.component,\n exact: this.exact,\n guard: this.guard\n };\n }\n\n render() {\n // This is a marker component - no visual output\n return html``;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-route': SchmancyRoute;\n }\n}","import { LazyComponent } from './lazy'\n\n/**\n * Component type accepted by area router, drawer, and sheet services\n */\nexport type ComponentType = CustomElementConstructor | string | HTMLElement | LazyComponent<any>\n\nexport type RouteAction = {\n\tcomponent: ComponentType\n\tarea: string\n\tstate?: Record<string, unknown>\n\tparams?: Record<string, unknown>\n\tprops?: Record<string, unknown> // Alias for params\n\thistoryStrategy?: THistoryStrategy\n\tclearQueryParams?: string[] | boolean | null\n\tanimationDuration?: number // Animation duration in milliseconds (0 = instant/no animation, default = 150ms)\n\tpath?: string // Override the URL path (e.g., '/order-tracking') - completely replaces the base path\n\t_source?: 'programmatic' | 'browser' | 'initial' // Internal use only\n}\n\nexport type ActiveRoute = {\n\tcomponent: string\n\tarea: string\n\tstate?: Record<string, unknown>\n\tparams?: Record<string, unknown>\n\tprops?: Record<string, unknown>\n}\n\n/**\n * Interface for subscribing to area changes\n */\nexport interface AreaSubscription {\n\t/**\n\t * Subscribe to a specific area\n\t * @param areaName Name of the area to subscribe to\n\t * @param skipCurrent Whether to skip the current value\n\t * @returns Observable of the active route for the specified area\n\t */\n\ton(areaName: string, skipCurrent?: boolean): import('rxjs').Observable<ActiveRoute>\n\t\n\t/**\n\t * Subscribe to all areas\n\t * @param skipCurrent Whether to skip the current value\n\t * @returns Observable of all active routes\n\t */\n\tall(skipCurrent?: boolean): import('rxjs').Observable<Map<string, ActiveRoute>>\n\t\n\t/**\n\t * Get state from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @returns Observable of the area's state\n\t */\n\tgetState<T = unknown>(areaName: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get params from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @returns Observable of the area's params\n\t */\n\tparams<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get a specific param from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @param key Key of the param to select\n\t * @returns Observable of the param value\n\t */\n\tparam<T = unknown>(areaName: string, key: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get props from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @returns Observable of the area's props\n\t */\n\tprops<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get a specific prop from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @param key Key of the prop to select\n\t * @returns Observable of the prop value\n\t */\n\tprop<T = unknown>(areaName: string, key: string): import('rxjs').Observable<T>\n}\n\nexport type THistoryStrategy = 'push' | 'replace' | 'pop' | 'silent'\n\nexport enum HISTORY_STRATEGY {\n\tpush = 'push',\n\treplace = 'replace',\n\tpop = 'pop',\n\tsilent = 'silent',\n}\n\n/**\n * Browser history state structure used by Schmancy Area\n */\nexport interface SchmancyHistoryState {\n\tschmancyAreas: Record<string, ActiveRoute>\n\t[key: string]: any // Allow other apps to store additional state\n}","import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport {\n\tEMPTY,\n\tcatchError,\n\tdistinctUntilChanged,\n\tfilter,\n\tfrom,\n\tfromEvent,\n\tmap,\n\tmerge,\n\tof,\n\tswitchMap,\n\ttakeUntil,\n\ttap,\n} from 'rxjs'\nimport { area } from './area.service'\nimport { RouteComponent, SchmancyRoute } from './route.component'\nimport { ActiveRoute, HISTORY_STRATEGY, RouteAction } from './router.types'\n\n@customElement('schmancy-area')\nexport class SchmancyArea extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\tmin-height: 0;\n\t\tmin-width: 0;\n\t\tcontain: layout style;\n\t}\n\t::slotted(:not(schmancy-route)) {\n\t\tdisplay: block;\n\t\tbox-sizing: border-box;\n\t\tmin-height: 100%;\n\t\twidth: 100%;\n\t}\n`]\n\n\t@property() name!: string\n\n\t@property() default!: RouteComponent\n\n\t@queryAssignedElements({ selector: 'schmancy-route', flatten: true })\n\tprivate routes!: SchmancyRoute[]\n\n\tprotected firstUpdated(): void {\n\t\tif (!this.name) throw new Error('Area name is required')\n\n\t\tmerge(\n\t\t\t// Programmatic navigation\n\t\t\tarea.request.pipe(\n\t\t\t\tfilter(({ area }) => area === this.name),\n\t\t\t),\n\n\t\t\t// Initial URL parse\n\t\t\tof(null).pipe(\n\t\t\t\tmap(() => {\n\t\t\t\t\tconst path = location.pathname\n\t\t\t\t\tconst lastSegment = path.split('/').pop() || ''\n\t\t\t\t\tif (lastSegment && (lastSegment.includes('{') || lastSegment.includes('%7B'))) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst parsed = JSON.parse(decodeURIComponent(lastSegment))\n\t\t\t\t\t\t\tif (typeof parsed === 'object' && parsed !== null && parsed[this.name]) {\n\t\t\t\t\t\t\t\tconst r = parsed[this.name]\n\t\t\t\t\t\t\t\treturn { area: this.name, component: r.component, state: r.state || {}, params: r.params || {}, props: r.props || {}, historyStrategy: HISTORY_STRATEGY.replace } as RouteAction\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch {}\n\t\t\t\t\t}\n\t\t\t\t\tconst matchingSegment = path.split('/').filter(Boolean).find(seg => this.routes?.some(r => r.when === seg))\n\t\t\t\t\tif (matchingSegment) {\n\t\t\t\t\t\treturn { area: this.name, component: matchingSegment, state: {}, params: {}, historyStrategy: HISTORY_STRATEGY.silent } as RouteAction\n\t\t\t\t\t}\n\t\t\t\t\treturn this.default\n\t\t\t\t\t\t? { area: this.name, component: this.default, state: {}, params: {}, historyStrategy: HISTORY_STRATEGY.silent } as RouteAction\n\t\t\t\t\t\t: null\n\t\t\t\t}),\n\t\t\t),\n\n\t\t\t// Browser back/forward\n\t\t\tfromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\tmap(() => {\n\t\t\t\t\tif (history.state?.schmancyAreas?.[this.name]) {\n\t\t\t\t\t\tconst s = history.state.schmancyAreas[this.name]\n\t\t\t\t\t\treturn { area: this.name, component: s.component, state: s.state || {}, params: s.params || {}, props: s.props || {}, historyStrategy: HISTORY_STRATEGY.pop } as RouteAction\n\t\t\t\t\t}\n\t\t\t\t\tconst path = location.pathname\n\t\t\t\t\tconst lastSegment = path.split('/').pop() || ''\n\t\t\t\t\tif (lastSegment && (lastSegment.includes('{') || lastSegment.includes('%7B'))) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst parsed = JSON.parse(decodeURIComponent(lastSegment))\n\t\t\t\t\t\t\tif (typeof parsed === 'object' && parsed !== null && parsed[this.name]) {\n\t\t\t\t\t\t\t\tconst r = parsed[this.name]\n\t\t\t\t\t\t\t\treturn { area: this.name, component: r.component, state: r.state || {}, params: r.params || {}, props: r.props || {}, historyStrategy: HISTORY_STRATEGY.replace } as RouteAction\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch {}\n\t\t\t\t\t}\n\t\t\t\t\tconst matchingSegment = path.split('/').filter(Boolean).find(seg => this.routes?.some(r => r.when === seg))\n\t\t\t\t\tif (matchingSegment) {\n\t\t\t\t\t\treturn { area: this.name, component: matchingSegment, state: {}, params: {}, historyStrategy: HISTORY_STRATEGY.silent } as RouteAction\n\t\t\t\t\t}\n\t\t\t\t\treturn this.default\n\t\t\t\t\t\t? { area: this.name, component: this.default, state: {}, params: {}, historyStrategy: HISTORY_STRATEGY.silent } as RouteAction\n\t\t\t\t\t\t: null\n\t\t\t\t}),\n\t\t\t),\n\t\t).pipe(\n\t\t\tfilter((r): r is RouteAction => r !== null),\n\n\t\t\t// Per-navigation error isolation — one bad nav skips, outer stream keeps flowing\n\t\t\tswitchMap(action => of(action).pipe(\n\t\t\t\t// Step 1: resolve component + find matched route\n\t\t\t\tswitchMap(action => {\n\t\t\t\t\tlet component: RouteComponent | null = action.component\n\t\t\t\t\tlet matchedRoute: SchmancyRoute | undefined\n\n\t\t\t\t\tif (typeof component === 'string' && this.routes) {\n\t\t\t\t\t\tmatchedRoute = this.routes.find(r => r.when === component)\n\t\t\t\t\t\tif (matchedRoute) component = matchedRoute.component\n\t\t\t\t\t}\n\t\t\t\t\tif (!matchedRoute && component instanceof HTMLElement && this.routes) {\n\t\t\t\t\t\tmatchedRoute = this.routes.find(r => r.when === component.tagName.toLowerCase())\n\t\t\t\t\t}\n\t\t\t\t\tif (!matchedRoute && typeof component === 'function' && 'preload' in component) {\n\t\t\t\t\t\treturn from(\n\t\t\t\t\t\t\t(component as () => Promise<{ default: CustomElementConstructor }>)().then(m => ({\n\t\t\t\t\t\t\t\t...action,\n\t\t\t\t\t\t\t\tcomponent: m.default as RouteComponent,\n\t\t\t\t\t\t\t\tmatchedRoute: this.routes?.find(r => r.when === (customElements.getName(m.default) ?? '')) ?? undefined,\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\treturn of({ ...action, component, matchedRoute })\n\t\t\t\t}),\n\n\t\t\t\t// Step 2: guard check\n\t\t\t\tswitchMap(carry => {\n\t\t\t\t\tif (!carry.matchedRoute?.guard) return of(carry)\n\t\t\t\t\treturn carry.matchedRoute.guard.pipe(\n\t\t\t\t\t\tswitchMap(allowed => {\n\t\t\t\t\t\t\tif (allowed) return of(carry)\n\t\t\t\t\t\t\tcarry.matchedRoute?.dispatchEvent(new CustomEvent('redirect', {\n\t\t\t\t\t\t\t\tdetail: { blockedRoute: carry.matchedRoute?.when ?? 'unknown', area: this.name, params: carry.params || {}, state: carry.state || {} },\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\treturn EMPTY\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\n\t\t\t\t// Step 3: load lazy component (after guard, for perf)\n\t\t\t\tswitchMap(carry => {\n\t\t\t\t\tif (!(typeof carry.component === 'function' && 'preload' in carry.component)) return of(carry)\n\t\t\t\t\treturn from(\n\t\t\t\t\t\t(carry.component as () => Promise<{ default: CustomElementConstructor }>)()\n\t\t\t\t\t\t\t.then(m => ({ ...carry, component: m.default as RouteComponent }))\n\t\t\t\t\t)\n\t\t\t\t}),\n\n\t\t\t\t// Step 4: dedup key\n\t\t\t\tmap(carry => {\n\t\t\t\t\tconst c = carry.component\n\t\t\t\t\tconst id =\n\t\t\t\t\t\t!c || c === '' ? 'null'\n\t\t\t\t\t\t: typeof c === 'string' ? c\n\t\t\t\t\t\t: c instanceof HTMLElement ? c.tagName.toLowerCase()\n\t\t\t\t\t\t: typeof c === 'function' ? c.name || 'CustomElement'\n\t\t\t\t\t\t: 'null'\n\t\t\t\t\treturn { ...carry, key: `${id}${JSON.stringify(carry.params)}${JSON.stringify(carry.state)}${JSON.stringify(carry.props)}` }\n\t\t\t\t}),\n\n\t\t\t\tcatchError(err => {\n\t\t\t\t\tconsole.error(`[${this.name}] Navigation error:`, err)\n\t\t\t\t\treturn EMPTY\n\t\t\t\t}),\n\t\t\t)),\n\n\t\t\tdistinctUntilChanged((a, b) => a.key === b.key),\n\n\t\t\t// Step 5: instantiate element\n\t\t\tmap(carry => {\n\t\t\t\tconst c = carry.component\n\t\t\t\tlet element: HTMLElement | null = null\n\t\t\t\tif (typeof c === 'string' && c !== '') {\n\t\t\t\t\ttry { element = document.createElement(c) } catch { console.error(`[${this.name}] Failed to create element:`, c) }\n\t\t\t\t} else if (c instanceof HTMLElement) {\n\t\t\t\t\telement = c\n\t\t\t\t} else if (typeof c === 'function') {\n\t\t\t\t\ttry { element = new (c as CustomElementConstructor)() } catch (e) { console.error(`[${this.name}] Failed to instantiate:`, e) }\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tif (carry.params) Object.assign(element, carry.params)\n\t\t\t\t\tif (carry.props) Object.assign(element, carry.props)\n\t\t\t\t\tif (carry.state) Object.assign(element, { state: carry.state })\n\t\t\t\t}\n\t\t\t\treturn { ...carry, element }\n\t\t\t}),\n\n\t\t\t// Step 6: swap DOM, write area state, update history\n\t\t\ttap(carry => {\n\t\t\t\tconst old = Array.from(this.children).find(c => !(c instanceof SchmancyRoute)) as HTMLElement | undefined\n\t\t\t\tconst { element } = carry\n\n\t\t\t\tif (!element) { old?.remove(); return }\n\n\t\t\t\tconst duration = carry.animationDuration ?? 150\n\n\t\t\t\tif (duration === 0) {\n\t\t\t\t\told?.remove()\n\t\t\t\t\tthis.appendChild(element)\n\t\t\t\t\tthis.scrollTop = 0\n\t\t\t\t} else if (old) {\n\t\t\t\t\told.style.willChange = 'opacity'\n\t\t\t\t\telement.style.willChange = 'opacity'\n\t\t\t\t\told.style.contentVisibility = 'hidden'\n\t\t\t\t\told.animate([{ opacity: 1 }, { opacity: 0 }], { duration, easing: 'ease-out' }).finished\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tif (!this.isConnected) return\n\t\t\t\t\t\t\told.remove()\n\t\t\t\t\t\t\tthis.appendChild(element)\n\t\t\t\t\t\t\tthis.scrollTop = 0\n\t\t\t\t\t\t\treturn element.animate([{ opacity: 0 }, { opacity: 1 }], { duration, easing: 'ease-in' }).finished\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(() => (element.style.willChange = 'auto'))\n\t\t\t\t} else {\n\t\t\t\t\tthis.appendChild(element)\n\t\t\t\t\tthis.scrollTop = 0\n\t\t\t\t\telement.animate([{ opacity: 0 }, { opacity: 1 }], {\n\t\t\t\t\t\tduration: duration > 100 ? Math.max(100, duration * 0.66) : duration,\n\t\t\t\t\t\teasing: 'ease-in',\n\t\t\t\t\t}).finished.then(() => (element.style.willChange = 'auto'))\n\t\t\t\t}\n\n\t\t\t\tconst activeRoute: ActiveRoute = {\n\t\t\t\t\tcomponent: element.tagName.toLowerCase(),\n\t\t\t\t\tstate: carry.state || {},\n\t\t\t\t\tarea: this.name,\n\t\t\t\t\tparams: carry.params || {},\n\t\t\t\t\tprops: carry.props || {},\n\t\t\t\t}\n\t\t\t\tarea.current.set(this.name, activeRoute)\n\t\t\t\tarea.$current.next(area.current)\n\n\t\t\t\tif (area.enableHistoryMode) {\n\t\t\t\t\tarea._updateBrowserHistory(\n\t\t\t\t\t\tthis.name,\n\t\t\t\t\t\tactiveRoute,\n\t\t\t\t\t\tcarry.historyStrategy ?? HISTORY_STRATEGY.push,\n\t\t\t\t\t\tcarry.clearQueryParams,\n\t\t\t\t\t\tcarry.path,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}),\n\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tarea.pop(this.name)\n\t}\n\n\trender() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-area': SchmancyArea\n\t}\n}\n","export function encodeData(data: string): string {\n\treturn btoa(data)\n}\n\nexport function decodeData(encodedData: string): string {\n\treturn atob(encodedData)\n}\n","import { RouteComponent } from './route.component'\nimport { RouteAction, ActiveRoute } from './router.types'\n\n/**\n * Compare two custom element constructors for equality\n * @param constructor1 First constructor to compare\n * @param constructor2 Second constructor to compare\n * @returns true if constructors are functionally equivalent\n */\nexport function compareCustomElementConstructors(\n\tconstructor1: CustomElementConstructor | Function,\n\tconstructor2: CustomElementConstructor | Function,\n): boolean {\n\t// Quick reference check\n\tif (constructor1 === constructor2) {\n\t\treturn true\n\t}\n\n\t// Check if both are functions\n\tif (typeof constructor1 !== 'function' || typeof constructor2 !== 'function') {\n\t\treturn false\n\t}\n\n\t// Compare by name (handles minification)\n\tif (constructor1.name && constructor2.name && constructor1.name === constructor2.name) {\n\t\treturn true\n\t}\n\n\t// Compare observed attributes if available\n\tconst obs1 = (constructor1 as any).observedAttributes\n\tconst obs2 = (constructor2 as any).observedAttributes\n\n\tif (obs1 && obs2) {\n\t\tif (Array.isArray(obs1) && Array.isArray(obs2)) {\n\t\t\tif (obs1.length !== obs2.length) return false\n\t\t\treturn obs1.every((attr, i) => attr === obs2[i])\n\t\t}\n\t}\n\n\t// Try to compare prototypes\n\ttry {\n\t\tconst proto1 = constructor1.prototype\n\t\tconst proto2 = constructor2.prototype\n\n\t\t// Check if they have the same prototype chain\n\t\tif (Object.getPrototypeOf(proto1) === Object.getPrototypeOf(proto2)) {\n\t\t\t// Check if they have the same property names\n\t\t\tconst keys1 = Object.getOwnPropertyNames(proto1).toSorted()\n\t\t\tconst keys2 = Object.getOwnPropertyNames(proto2).toSorted()\n\n\t\t\treturn keys1.length === keys2.length && keys1.every((key, i) => key === keys2[i])\n\t\t}\n\t} catch {\n\t\t// Ignore prototype access errors\n\t}\n\n\treturn false\n}\n\n/**\n * Normalize a component tag name for comparison\n * @param tagName Tag name to normalize\n * @returns Normalized tag name\n */\nexport function normalizeTagName(tagName: string): string {\n\treturn tagName.toLowerCase().replace(/[^a-z0-9]/g, '') // Remove all non-alphanumeric characters\n}\n\n/**\n * Get tag name from a component\n * @param component Component to get tag name from\n * @returns Tag name or null if unable to determine\n */\nexport function getTagName(component: RouteComponent): string | null {\n\tif (typeof component === 'string') {\n\t\treturn component.toLowerCase()\n\t}\n\n\tif (component instanceof HTMLElement) {\n\t\treturn component.tagName.toLowerCase()\n\t}\n\n\tif (typeof component === 'function') {\n\t\t// Try to get custom element name from constructor\n\t\tconst name = component.name\n\t\tif (name) {\n\t\t\t// Convert PascalCase to kebab-case\n\t\t\treturn name\n\t\t\t\t.replace(/([A-Z])/g, '-$1')\n\t\t\t\t.toLowerCase()\n\t\t\t\t.replace(/^-/, '')\n\t\t}\n\t}\n\n\treturn null\n}\n\n/**\n * Deep merge two objects\n * @param target Target object\n * @param source Source object to merge\n * @returns Merged object\n */\nexport function deepMerge<T extends Record<string, any>>(target: T, source: Partial<T>): T {\n\tconst output = { ...target }\n\n\tfor (const key in source) {\n\t\tif (source.hasOwnProperty(key)) {\n\t\t\tconst sourceValue = source[key]\n\t\t\tconst targetValue = output[key]\n\n\t\t\tif (isObject(sourceValue) && isObject(targetValue)) {\n\t\t\t\toutput[key] = deepMerge(targetValue, sourceValue)\n\t\t\t} else {\n\t\t\t\toutput[key] = sourceValue as T[Extract<keyof T, string>]\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output\n}\n\n/**\n * Check if value is a plain object\n * @param obj Value to check\n * @returns true if value is a plain object\n */\nexport function isObject(obj: any): obj is Record<string, any> {\n\treturn (\n\t\tobj !== null &&\n\t\ttypeof obj === 'object' &&\n\t\tobj.constructor === Object &&\n\t\tObject.prototype.toString.call(obj) === '[object Object]'\n\t)\n}\n\n/**\n * Debounce a function\n * @param func Function to debounce\n * @param wait Wait time in milliseconds\n * @returns Debounced function\n */\nexport function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void {\n\tlet timeout: ReturnType<typeof setTimeout> | null = null\n\n\treturn function (this: any, ...args: Parameters<T>) {\n\t\t// oxlint-disable-next-line typescript/no-this-alias\n\t\tconst context = this\n\n\t\tif (timeout !== null) {\n\t\t\tclearTimeout(timeout)\n\t\t}\n\n\t\ttimeout = setTimeout(() => {\n\t\t\tfunc.apply(context, args)\n\t\t\ttimeout = null\n\t\t}, wait)\n\t}\n}\n\n/**\n * Create a URL-safe string from route state\n * @param state Route state object\n * @returns URL-safe encoded string\n */\nexport function encodeRouteState(state: Record<string, unknown>): string {\n\ttry {\n\t\tconst json = JSON.stringify(state)\n\t\treturn encodeURIComponent(json)\n\t} catch (error) {\n\t\tconsole.error('Failed to encode route state:', error)\n\t\treturn ''\n\t}\n}\n\n/**\n * Decode a URL-safe string to route state\n * @param encoded Encoded string\n * @returns Decoded route state or empty object\n */\nexport function decodeRouteState(encoded: string): Record<string, unknown> {\n\tif (!encoded) return {}\n\n\ttry {\n\t\tconst decoded = decodeURIComponent(encoded)\n\t\tconst parsed = JSON.parse(decoded)\n\n\t\tif (isObject(parsed)) {\n\t\t\treturn parsed\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('Failed to decode route state:', error)\n\t}\n\n\treturn {}\n}\n\n/**\n * Compare two route actions for equality\n * @param a First route action\n * @param b Second route action\n * @returns true if route actions are equal\n */\nexport function compareRouteActions(a: RouteAction, b: RouteAction): boolean {\n\t// Compare areas\n\tif (a.area !== b.area) return false\n\n\t// Compare components\n\tif (typeof a.component !== typeof b.component) return false\n\n\tif (typeof a.component === 'string' && typeof b.component === 'string') {\n\t\tif (normalizeTagName(a.component) !== normalizeTagName(b.component)) {\n\t\t\treturn false\n\t\t}\n\t} else if (typeof a.component === 'function' && typeof b.component === 'function') {\n\t\tif (!compareCustomElementConstructors(a.component, b.component)) {\n\t\t\treturn false\n\t\t}\n\t} else if (a.component !== b.component) {\n\t\treturn false\n\t}\n\n\t// Compare state\n\tif (JSON.stringify(a.state || {}) !== JSON.stringify(b.state || {})) {\n\t\treturn false\n\t}\n\n\t// Compare params\n\tif (JSON.stringify(a.params || {}) !== JSON.stringify(b.params || {})) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Compare two active routes for equality\n * @param a First active route\n * @param b Second active route\n * @returns true if active routes are equal\n */\nexport function compareActiveRoutes(a: ActiveRoute, b: ActiveRoute): boolean {\n\treturn (\n\t\ta.area === b.area &&\n\t\ta.component === b.component &&\n\t\tJSON.stringify(a.state || {}) === JSON.stringify(b.state || {}) &&\n\t\tJSON.stringify(a.params || {}) === JSON.stringify(b.params || {})\n\t)\n}\n\n/**\n * Create a cache key from a route action\n * @param route Route action\n * @returns Cache key string\n */\nexport function createRouteCacheKey(route: RouteAction): string {\n\tconst tagName = getTagName(route.component) || 'unknown'\n\tconst stateHash = simpleHash(JSON.stringify(route.state || {}))\n\tconst paramsHash = simpleHash(JSON.stringify(route.params || {}))\n\n\treturn `${route.area}:${tagName}:${stateHash}:${paramsHash}`\n}\n\n/**\n * Simple hash function for creating cache keys\n * @param str String to hash\n * @returns Hash string\n */\nfunction simpleHash(str: string): string {\n\tlet hash = 0\n\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst char = str.charCodeAt(i)\n\t\thash = (hash << 5) - hash + char\n\t\thash = hash & hash // Convert to 32-bit integer\n\t}\n\n\treturn Math.abs(hash).toString(36)\n}\n\n/**\n * Sanitize route state to remove sensitive data\n * @param state Route state\n * @param keysToRemove Keys to remove from state\n * @returns Sanitized state\n */\nexport function sanitizeRouteState(\n\tstate: Record<string, unknown>,\n\tkeysToRemove: string[] = ['password', 'token', 'secret', 'apiKey'],\n): Record<string, unknown> {\n\tconst sanitized: Record<string, unknown> = {}\n\n\tfor (const key in state) {\n\t\tif (state.hasOwnProperty(key) && !keysToRemove.includes(key)) {\n\t\t\tconst value = state[key]\n\n\t\t\tif (isObject(value)) {\n\t\t\t\tsanitized[key] = sanitizeRouteState(value, keysToRemove)\n\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\tsanitized[key] = value.map(item => (isObject(item) ? sanitizeRouteState(item, keysToRemove) : item))\n\t\t\t} else {\n\t\t\t\tsanitized[key] = value\n\t\t\t}\n\t\t}\n\t}\n\n\treturn sanitized\n}\n\n/**\n * Extract query parameters from URL\n * @param url URL string or URLSearchParams\n * @returns Object with query parameters\n */\nexport function extractQueryParams(url?: string | URLSearchParams): Record<string, string> {\n\tconst params: Record<string, string> = {}\n\n\tlet searchParams: URLSearchParams\n\n\tif (url instanceof URLSearchParams) {\n\t\tsearchParams = url\n\t} else if (typeof url === 'string') {\n\t\tconst urlObj = new URL(url, window.location.origin)\n\t\tsearchParams = urlObj.searchParams\n\t} else {\n\t\tsearchParams = new URLSearchParams(window.location.search)\n\t}\n\n\tsearchParams.forEach((value, key) => {\n\t\tparams[key] = value\n\t})\n\n\treturn params\n}\n\n/**\n * Build query string from parameters object\n * @param params Parameters object\n * @returns Query string with leading '?'\n */\nexport function buildQueryString(params: Record<string, string | number | boolean>): string {\n\tconst searchParams = new URLSearchParams()\n\n\tfor (const key in params) {\n\t\tif (params.hasOwnProperty(key)) {\n\t\t\tconst value = params[key]\n\t\t\tif (value !== undefined && value !== null && value !== '') {\n\t\t\t\tsearchParams.set(key, String(value))\n\t\t\t}\n\t\t}\n\t}\n\n\tconst queryString = searchParams.toString()\n\treturn queryString ? `?${queryString}` : ''\n}\n"],"mappings":";;;;;AAuBA,IAAa,IAAgB,IAAI,KAEpB,IAAkB,mBAClB,IAAa,cASpB,oBAAoB,IAAI,QAAA,GAmtBjB,IA9sBb,MAAM,EAAA;CASL,IAAA,eAAY;EACX,IAAI,IAAW,EAAkB,IAAI,IAAA;EAKrC,OAJK,MACJ,oBAAW,IAAI,IAAA,GACf,EAAkB,IAAI,MAAM,CAAA,IAEtB;CACR;CAQA,cAAA;EAAA,KAAA,YAAA,CAtBmB,GAAA,KAAA,OACiB,WAAA,KAAA,UACnB,IAAI,EAA2B,CAAA,GAAA,KAAA,0BAC/B,IAAI,IAAA,GAAA,KAAA,WACH,IAAI,EAAwC,CAAA,GAAA,KAAA,oBAAA,CAYnC,GAAA,KAAA,sBACG,IAAI,YAA6C,CAAA,GAAA,KAAA,WAAA,CAC5D,GAAA,KAAA,uBAAA,CACW,GAI7B,KAAK,SAAS,KAAK,KAAK,OAAA,GAGxB,KAAK,SAAS,WAAU,MAAA;GACnB,KAAK,YAGT,EAAa,SAAS,GAAO,MAAA;IAI5B,KAFyB,uBAAuB,CAAA,EAEpC,KAAK,CAAA;GAAA,CAAA;EAAA,CAAA,GAKnB,KAAK,2BAAA,GAGiB,OAAX,SAAW,QACrB,KAAK,qBAAqB,EAAU,QAAQ,QAAA,EAAU,gBAAA;GACrD,KAAK,QAAA;EAAA,CAAA;CAGR;CAKA,6BAAA;EACC,IAAA;GACC,IAAM,IAAe,QAAQ;GACzB,KAAgB,EAAa,kBAChC,OAAO,QAAQ,EAAa,aAAA,EAAe,SAAA,CAAU,GAAU,OAAA;IAC9D,KAAK,QAAQ,IAAI,GAAU,CAAA;GAAA,CAAA,GAE5B,KAAK,SAAS,KAAK,KAAK,OAAA;EAE1B,QAAS,CAET;CACD;CAKA,uBAA+B,GAAA;EAC9B,IAAI,IAAU,KAAK,aAAa,IAAI,CAAA;EAEpC,IAAA,CAAK,KAAW,EAAQ,QAAQ;GAC/B,IAAU,IAAI,EAA2B,CAAA,GACzC,KAAK,aAAa,IAAI,GAAU,CAAA;GAGhC,IAAM,IAAe,KAAK,QAAQ,IAAI,CAAA;GAClC,KACH,EAAQ,KAAK;IAAA,GACT;IAEH,OAAO,EAAa,SAAS,CAAC;IAC9B,QAAQ,EAAa,UAAU,CAAC;IAChC,OAAO,EAAa,SAAS,CAAC;GAAA,CAAA;EAGjC;EAEA,OAAO;CACR;CAKA,GAAG,GAAkB,IAAA,CAAc,GAAA;EAClC,IAAA,CAAK,GACJ,MAAU,MAAM,uBAAA;EAIjB,IAAM,IADc,KAAK,uBAAuB,CAAA,EACjB,aAAA,EAAe,KAE7C,GAAsB,GAAG,MACxB,EAAE,cAAc,EAAE,aAClB,KAAK,UAAU,EAAE,KAAA,MAAW,KAAK,UAAU,EAAE,KAAA,KAC7C,KAAK,UAAU,EAAE,MAAA,MAAY,KAAK,UAAU,EAAE,MAAA,KAC9C,KAAK,UAAU,EAAE,KAAA,MAAW,KAAK,UAAU,EAAE,KAAA,CAAA,GAG9C,EAAY,CAAA,CAAA;EAGb,OAAO,IAAc,EAAW,KAAK,EAAK,CAAA,CAAA,IAAM;CACjD;CAKA,IAAI,IAAA,CAAc,GAAA;EACjB,IAAM,IAAa,KAAK,SAAS,aAAA,EAAe,KAC/C,EAAY,CAAA,CAAA;EAEb,OAAO,IAAc,EAAW,KAAK,EAAK,CAAA,CAAA,IAAM;CACjD;CAKA,SAAsB,GAAA;EACrB,IAAA,CAAK,GACJ,MAAU,MAAM,uBAAA;EAGjB,OAAO,KAAK,GAAG,CAAA,EAAU,KACxB,GAAI,MAAS,EAAM,KAAA,GACnB,GAAQ,MACP,KAAA,IAAA,GAED,GAAsB,GAAG,MAAM,KAAK,UAAU,CAAA,MAAO,KAAK,UAAU,CAAA,CAAA,GACpE,GAAI,MAAS,CAAA,GACb,GAAW,MAEH,CAAA,CAAA;CAGV;CAOA,OAAoE,GAAA;EACnE,IAAA,CAAK,GACJ,MAAU,MAAM,uBAAA;EAMjB,IAAI,IAAgB,EAAA,GAHC,KAAK,QAAQ,IAAI,CAAA,GAAW,UAAU,CAAC,EAAA;EAW5D,OAPsB,OAAX,SAAW,OAAe,OAAO,SAAS,UAEpD,IADsB,gBAAgB,OAAO,SAAS,MAAA,EAC5C,SAAS,GAAO,MAAA;GACzB,EAAc,KAAO;EAAA,CAAA,GAIhB,KAAK,GAAG,CAAA,EAAU,KACxB,GAAI,MAAU,EAAM,UAAU,CAAC,CAAA,GAC/B,EAAU,CAAA,GACV,GAAsB,GAAG,MAAM,KAAK,UAAU,CAAA,MAAO,KAAK,UAAU,CAAA,CAAA,GACpE,GAAW,MAEH,CAAA,CAAA;CAGV;CAKA,MAAmB,GAAkB,GAAA;EACpC,IAAA,CAAK,KAAA,CAAa,GACjB,MAAU,MAAM,gCAAA;EAGjB,OAAO,KAAK,OAAgC,CAAA,EAAU,KACrD,GAAI,MAAU,EAAO,EAAA,GACrB,GAAQ,MAAyC,MAAzC,KAAmD,CAAV,GACjD,EAAA,GACA,GAAI,MAAS,CAAA,GACb,GAAW,MAEH,CAAA,CAAA;CAGV;CAKA,MAAmE,GAAA;EAClE,IAAA,CAAK,GACJ,MAAU,MAAM,uBAAA;EAGjB,OAAO,KAAK,GAAG,CAAA,EAAU,KACxB,GAAI,MAAS,EAAM,KAAA,GACnB,GAAQ,MACP,KAAA,IAAA,GAED,GAAsB,GAAG,MAAM,KAAK,UAAU,CAAA,MAAO,KAAK,UAAU,CAAA,CAAA,GACpE,GAAI,MAAS,CAAA,GACb,GAAW,MAEH,CAAA,CAAA;CAGV;CAKA,KAAkB,GAAkB,GAAA;EACnC,IAAA,CAAK,KAAA,CAAa,GACjB,MAAU,MAAM,gCAAA;EAGjB,OAAO,KAAK,MAA+B,CAAA,EAAU,KACpD,GAAI,MAAS,EAAM,EAAA,GACnB,GAAQ,MAAyC,MAAzC,KAAmD,CAAV,GACjD,EAAA,GACA,GAAI,MAAS,CAAA,GACb,GAAW,MAEH,CAAA,CAAA;CAGV;CAKA,OAAA;EACC,OAAO,EAAI,CACV,EAA4B,QAAQ,CAAA,EAAY,KAC/C,GAAI,MAAK,EAAE,MAAA,GACX,EAAW,CAAA,CAAA,GAEZ,EAAG,CAAA,EAAG,KAAK,QAAU,OAAO,cAAc,KAAK,mBAAA,CAAA,CAAA,CAAA,CAAA,EAC7C,KACF,GAAA,CAAM,OAAe,CAAA,GACrB,EAAQ,CAAA,GACR,QAAiB,CAAA,CAAA;CAEnB;CAKA,KAAK,GAAA;EACJ,IAAA,CAAK,EAAE,MACN,MAAU,MAAM,mCAAA;EAIjB,IAAI,KAAK,sBACR;EAID,IAAM,IAA2B;GAAA,GAC7B;GACH,OAAO,EAAE,SAAS,CAAC;GACnB,QAAQ,EAAE,UAAU,CAAC;GACrB,OAAO,EAAE,SAAS,CAAC;GACnB,SAAS;EAAA;EAIN,KAAK,qBACR,EAAc,KAAK,CAAA,GAGpB,KAAK,QAAQ,KAAK,CAAA,GAElB,KAAK,kBAAkB,EAAY,MAAM,CAAA;CAC1C;CAMA,mBAAmB,GAAA;EAClB,IAAM,IAA6B;GAAA,GAC/B;GACH,OAAO,EAAY,SAAS,CAAC;GAC7B,QAAQ,EAAY,UAAU,CAAC;GAC/B,OAAO,EAAY,SAAS,CAAC;GAC7B,SAAS;EAAA;EAGV,KAAK,uBAAA,CAAuB,GAC5B,KAAK,QAAQ,KAAK,CAAA,GAClB,KAAK,uBAAA,CAAuB;CAC7B;CAKA,sBAAsB,GAAkB,GAAoB,GAA0B,GAA8C,GAAA;EACnI,IAAK,KAAK,mBAEV,IAAA;GAEC,IAAM,IAAe,QAAQ,SAAS,CAAC,GACjC,IAAgB,EAAa,iBAAiB,CAAC,GAG/C,IAAgB;IACrB,WAAW,EAAM;IACjB,MAAM,EAAM;GAAA;GAIT,EAAM,SAAS,OAAO,KAAK,EAAM,KAAA,EAAO,SAAS,MACpD,EAAS,QAAQ,EAAM,QAIpB,EAAM,UAAU,OAAO,KAAK,EAAM,MAAA,EAAQ,SAAS,MACtD,EAAS,SAAS,EAAM,SAIrB,EAAM,SAAS,OAAO,KAAK,EAAM,KAAA,EAAO,SAAS,MACpD,EAAS,QAAQ,EAAM,QAGxB,EAAc,KAAY;GAE1B,IAAM,IAAW;IAAA,GACb;IACH,eAAA;GAAA,GAIK,IAAM,KAAK,eAAe,GAAe,GAAkB,CAAA;GAGzC,AAApB,MAAoB,aAAa,MAAoB,QACxD,QAAQ,aAAa,GAAU,IAAI,CAAA,IACzB,MAAoB,UAAW,KACzC,QAAQ,UAAU,GAAU,IAAI,CAAA;EAIlC,QAAS,CAET;CACD;CAKA,eAAuB,GAAoC,GAA8C,GAAA;EACxG,IAAI,IAAW;EAGf,IAAI,GACH,IAAW,GAEN,EAAS,WAAW,GAAA,MACxB,IAAW,MAAM,IAGb,EAAS,SAAS,GAAA,MACtB,KAAY;OAEP;GAEN,IAAM,IAAc,SAAS,UACvB,IAAe,EAAY,MAAM,GAAA,GAGjC,IAAc,EAAa,EAAa,SAAS;GACnD,MAAgB,EAAY,SAAS,GAAA,KAAQ,EAAY,SAAS,KAAA,MAErE,EAAa,IAAA,GACb,IAAW,EAAa,KAAK,GAAA,KAAQ,OAGrC,IAAW,GAIR,MAAa,OAAQ,EAAS,SAAS,GAAA,MAC1C,KAAY;EAEd;EAGA,IAAI,IAAc;EAElB,IAAA,CAAyB,MAArB,GAA2B;GAE9B,IAAM,IAAY,IAAI,gBAAgB,SAAS,MAAA;GAG/C,OAAO,OAAO,CAAA,EAAO,SAAQ,MAAA;IACxB,EAAM,UAAU,OAAO,KAAK,EAAM,MAAA,EAAQ,SAAS,KACtD,OAAO,QAAQ,EAAM,MAAA,EAAQ,SAAA,CAAU,GAAK,OAAA;KACvC,AAAA,KAAA,QACH,EAAU,IAAI,GAAK,OAAO,CAAA,CAAA;IAAA,CAAA;GAAA,CAAA,GAO1B,MAAM,QAAQ,CAAA,KACjB,EAAiB,SAAQ,MAAS,EAAU,OAAO,CAAA,CAAA,GAIpD,IAAc,EAAU,SAAA,GACxB,IAAc,IAAc,IAAI,MAAgB;EACjD;EAGA,IAAI,KAAK,WAAW;GAEnB,IAAM,IAAW,EAAM;GACvB,IAAI,GAAU;IACb,IAAI,IAAO,MAAa,MAAM,IAAI,EAAS,cAAc,GAAG,IAAW,EAAS,aAG1E,IAAe,IAAI,gBAAgB,CAAA;IACrC,EAAS,UACZ,OAAO,QAAQ,EAAS,MAAA,EAAQ,SAAA,CAAU,GAAK,OAAA;KACzB,AAAA,OAAV,KAAU,YAA6B,OAAV,KAAU,YACjD,EAAa,IAAI,GAAK,OAAO,CAAA,CAAA;IAAA,CAAA;IAKhC,IAAM,IAAQ,EAAa,SAAA;IAC3B,OAAO,KAAQ,IAAQ,IAAI,MAAU;GACtC;EACD;EAGA,IAAA;GAGC,IAAM,IAA2C,CAAC;GAuBlD,IAtBA,OAAO,QAAQ,CAAA,EAAO,SAAA,CAAU,GAAU,OAAA;IACzC,IAAM,IAAyB,EAAE,WAAW,EAAM,UAAA;IAG9C,EAAM,SAAS,OAAO,KAAK,EAAM,KAAA,EAAO,SAAS,MACpD,EAAW,QAAQ,EAAM,QAItB,EAAM,UAAU,OAAO,KAAK,EAAM,MAAA,EAAQ,SAAS,MACtD,EAAW,SAAS,EAAM,SAIvB,EAAM,SAAS,OAAO,KAAK,EAAM,KAAA,EAAO,SAAS,MACpD,EAAW,QAAQ,EAAM,QAG1B,EAAa,KAAY;GAAA,CAAA,GAItB,OAAO,KAAK,CAAA,EAAc,WAAW,GAExC,OAAO,GADe,MAAa,MAAM,KAAK,EAAS,QAAQ,OAAO,EAAA,IAC5C;GAG3B,IAAM,IAAU,mBAAmB,KAAK,UAAU,CAAA,CAAA;GAElD,OAAO,GADe,MAAa,MAAM,KAAK,EAAS,QAAQ,OAAO,EAAA,EAAA,GAC3C,IAAU;EACtC,QAAS;GAER,OAAO,SAAS;EACjB;CACD;CAKA,wBAAwB,GAAA;EACvB,IAAA;GACC,IAAI,KAAgB,EAAa,eAChC,OAAO,EAAa;EAEtB,QAAS,CAET;EAGA,OAAO,KAAK,kBAAA;CACb;CAKA,oBAAA;EACC,IAAM,IAAW,SAAS,SAAS,MAAM,GAAA,EAAK,IAAA;EAC9C,IAAA,CAAK,GAAU,OAAO,CAAC;EAEvB,IAAA;GAEC,IAAM,IAAS,KAAK,MADJ,mBAAmB,CAAA,CAAA;GAGnC,IAAsB,OAAX,KAAW,YAAY,GACjC,OAAO;EAET,QAAA,CAEA;EAEA,OAAO,CAAC;CACT;CAKA,kBAA0B,GAAkB,GAAA;EAC3C,IACM,IAAQ,IAAI,YADA,iBAAiB,EAAA,WACM;GACxC,QAAQ;IACP,MAAM;IACN,WAAW,EAAY;IACvB,OAAO,EAAY;IACnB,QAAQ,EAAY;IACpB,OAAO,EAAY;IACnB,iBAAiB,EAAY;GAAA;GAE9B,SAAA,CAAS;GACT,UAAA,CAAU;EAAA,CAAA;EAEX,OAAO,cAAc,CAAA;CACtB;CAKA,IAAI,GAAA;EACH,IAAA,CAAK,GACJ,MAAU,MAAM,uBAAA;EAKjB,IAAM,IAAc,KAAK,aAAa,IAAI,CAAA;EA6B1C,IA5BI,KAAA,CAAgB,EAAY,UAE/B,EAAY,KAAK;GAChB,WAAW;GACX,OAAO,CAAC;GACR,MAAM;GACN,QAAQ,CAAC;GACT,OAAO,CAAC;EAAA,CAAA,GAMV,KAAK,QAAQ,KAAK;GACjB,MAAM;GACN,WAAW;GACX,OAAO,CAAC;GACR,QAAQ,CAAC;GACT,OAAO,CAAC;GACR,iBAAiB;GACjB,SAAS;EAAA,CAAA,GAIV,KAAK,QAAQ,OAAO,CAAA,GACpB,KAAK,SAAS,KAAK,KAAK,OAAA,GAGpB,KAAK,mBACR,IAAA;GACC,IAAM,IAAe,QAAQ,SAAS,CAAC,GACjC,IAAgB,EAAA,GAAK,EAAa,cAAA;GAAA,OACjC,EAAc;GAErB,IAAM,IAAW;IAAA,GACb;IACH,eAAA;GAAA,GAGK,IAAM,KAAK,eAAe,CAAA;GAChC,QAAQ,aAAa,GAAU,IAAI,CAAA;EACpC,QAAS,CAET;CAEF;CAKA,QAAA;EAUC,IARA,KAAK,aAAa,SAAQ,MAAW,EAAQ,SAAA,CAAA,GAC7C,KAAK,aAAa,MAAA,GAGlB,KAAK,QAAQ,MAAA,GACb,KAAK,SAAS,KAAK,KAAK,OAAA,GAGpB,KAAK,mBAAmB;GAC3B,IAAM,IAAM,KAAK,eAAe,CAAC,CAAA;GACjC,QAAQ,aAAa,EAAE,eAAe,CAAC,EAAA,GAAK,IAAI,CAAA;EACjD;CACD;CAKA,UAAA;EACK,KAAK,aAET,KAAK,WAAA,CAAW,GAGZ,AAEH,KAAK,wBADL,KAAK,mBAAmB,YAAA,GACnB,KAAqB,IAI3B,KAAK,aAAa,SAAQ,MAAW,EAAQ,SAAA,CAAA,GAC7C,KAAK,aAAa,MAAA,GAElB,KAAK,QAAQ,SAAA,GACb,KAAK,SAAS,SAAA,GACd,EAAc,SAAA,GAGd,KAAK,QAAQ,MAAA,GACb,EAAkB,OAAO,IAAA;CAC1B;CAKA,OAAA,cAAO;EAIN,OAHK,AACJ,EAAY,aAAW,IAAI,KAErB,EAAY;CACpB;CAKA,IAAA,QAAI;EAEH,IAAA;GACC,IAAM,IAAe,QAAQ;GAC7B,IAAI,KAAgB,EAAa,eAChC,OAAO,EAAa;EAEtB,QAAA,CAEA;EAGA,OAAO,KAAK,kBAAA;CACb;CAKA,QAAQ,GAAA;EACP,OAAO,KAAK,QAAQ,IAAI,CAAA;CACzB;CAKA,iBAAA;EACC,OAAO,MAAM,KAAK,KAAK,QAAQ,KAAA,CAAA;CAChC;CAKA,SAAS,GAAA;EACR,OAAO,KAAK,QAAQ,IAAI,CAAA;CACzB;AAAA,EAc+B,YAAA,GCpsBzB,IAAA,cAA4B,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,QAAA,CAcf;CAAA;CAAA;EAAA,KAAA,SAbH,CAAC,CAAG;;;;;;CAqBnB,YAAA;EACE,OAAO;GACL,MAAM,KAAK;GACX,WAAW,KAAK;GAChB,OAAO,KAAK;GACZ,OAAO,KAAK;EAAA;CAEhB;CAEA,SAAA;EAEE,OAAO,CAAI;CACb;AAAA;AAAA,EAAA,CA3BC,EAAS,EAAE,MAAM,OAAA,CAAA,CAAA,GAAQ,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAGzB,EAAS,EAAE,MAAM,OAAA,CAAA,CAAA,GAAQ,EAAA,WAAA,aAAA,KAAA,CAAA,GAAA,EAAA,CAGzB,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,GAAS,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,MAAM,OAAA,CAAA,CAAA,GAAQ,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CAjB3B,EAAc,gBAAA,CAAA,GAAgB,CAAA;ACsC/B,IAAY,IAAL,SAAA,GAAA;CAAA,OACN,EAAA,OAAA,QACA,EAAA,UAAA,WACA,EAAA,MAAA,OACA,EAAA,SAAA,UAAA;AACD,EAAA,CAAA,CAAA,GCtEO,IAAA,cAA2B,EAAA;CAAA;EAAA,KAAA,SACjB,CAAC,CAAG;;;;;;;;;;;;;;;;;;CAyBpB,eAAA;EACC,IAAA,CAAK,KAAK,MAAM,MAAU,MAAM,uBAAA;EAEhC,EAEC,EAAK,QAAQ,KACZ,GAAA,EAAU,MAAA,QAAW,MAAS,KAAK,IAAA,CAAA,GAIpC,EAAG,IAAA,EAAM,KACR,QAAA;GACC,IAAM,IAAO,SAAS,UAChB,IAAc,EAAK,MAAM,GAAA,EAAK,IAAA,KAAS;GAC7C,IAAI,MAAgB,EAAY,SAAS,GAAA,KAAQ,EAAY,SAAS,KAAA,IACrE,IAAA;IACC,IAAM,IAAS,KAAK,MAAM,mBAAmB,CAAA,CAAA;IAC7C,IAAsB,OAAX,KAAW,YAAY,KAAmB,EAAO,KAAK,OAAO;KACvE,IAAM,IAAI,EAAO,KAAK;KACtB,OAAO;MAAE,MAAM,KAAK;MAAM,WAAW,EAAE;MAAW,OAAO,EAAE,SAAS,CAAC;MAAG,QAAQ,EAAE,UAAU,CAAC;MAAG,OAAO,EAAE,SAAS,CAAC;MAAG,iBAAiB,EAAiB;KAAA;IACzJ;GACD,QAAA,CAAS;GAEV,IAAM,IAAkB,EAAK,MAAM,GAAA,EAAK,OAAO,OAAA,EAAS,MAAK,MAAO,KAAK,QAAQ,MAAK,MAAK,EAAE,SAAS,CAAA,CAAA;GACtG,OAAI,IACI;IAAE,MAAM,KAAK;IAAM,WAAW;IAAiB,OAAO,CAAC;IAAG,QAAQ,CAAC;IAAG,iBAAiB,EAAiB;GAAA,IAEzG,KAAK,UACT;IAAE,MAAM,KAAK;IAAM,WAAW,KAAK;IAAS,OAAO,CAAC;IAAG,QAAQ,CAAC;IAAG,iBAAiB,EAAiB;GAAA,IACrG;EAAA,CAAA,CAAA,GAKL,EAAyB,QAAQ,UAAA,EAAY,KAC5C,QAAA;GACC,IAAI,QAAQ,OAAO,gBAAgB,KAAK,OAAO;IAC9C,IAAM,IAAI,QAAQ,MAAM,cAAc,KAAK;IAC3C,OAAO;KAAE,MAAM,KAAK;KAAM,WAAW,EAAE;KAAW,OAAO,EAAE,SAAS,CAAC;KAAG,QAAQ,EAAE,UAAU,CAAC;KAAG,OAAO,EAAE,SAAS,CAAC;KAAG,iBAAiB,EAAiB;IAAA;GACzJ;GACA,IAAM,IAAO,SAAS,UAChB,IAAc,EAAK,MAAM,GAAA,EAAK,IAAA,KAAS;GAC7C,IAAI,MAAgB,EAAY,SAAS,GAAA,KAAQ,EAAY,SAAS,KAAA,IACrE,IAAA;IACC,IAAM,IAAS,KAAK,MAAM,mBAAmB,CAAA,CAAA;IAC7C,IAAsB,OAAX,KAAW,YAAY,KAAmB,EAAO,KAAK,OAAO;KACvE,IAAM,IAAI,EAAO,KAAK;KACtB,OAAO;MAAE,MAAM,KAAK;MAAM,WAAW,EAAE;MAAW,OAAO,EAAE,SAAS,CAAC;MAAG,QAAQ,EAAE,UAAU,CAAC;MAAG,OAAO,EAAE,SAAS,CAAC;MAAG,iBAAiB,EAAiB;KAAA;IACzJ;GACD,QAAA,CAAS;GAEV,IAAM,IAAkB,EAAK,MAAM,GAAA,EAAK,OAAO,OAAA,EAAS,MAAK,MAAO,KAAK,QAAQ,MAAK,MAAK,EAAE,SAAS,CAAA,CAAA;GACtG,OAAI,IACI;IAAE,MAAM,KAAK;IAAM,WAAW;IAAiB,OAAO,CAAC;IAAG,QAAQ,CAAC;IAAG,iBAAiB,EAAiB;GAAA,IAEzG,KAAK,UACT;IAAE,MAAM,KAAK;IAAM,WAAW,KAAK;IAAS,OAAO,CAAC;IAAG,QAAQ,CAAC;IAAG,iBAAiB,EAAiB;GAAA,IACrG;EAAA,CAAA,CAAA,CAAA,EAGJ,KACD,GAAQ,MAAwB,MAAM,IAAN,GAGhC,GAAU,MAAU,EAAG,CAAA,EAAQ,KAE9B,GAAU,MAAA;GACT,IACI,GADA,IAAmC,EAAO;GAU9C,OAPyB,OAAd,KAAc,YAAY,KAAK,WACzC,IAAe,KAAK,OAAO,MAAK,MAAK,EAAE,SAAS,CAAA,GAC5C,MAAc,IAAY,EAAa,aAAA,CAEvC,KAAgB,aAAqB,eAAe,KAAK,WAC7D,IAAe,KAAK,OAAO,MAAK,MAAK,EAAE,SAAS,EAAU,QAAQ,YAAA,CAAA,IAAA,CAE9D,KAAqC,OAAd,KAAc,cAAc,aAAa,IAC7D,EACL,EAAA,EAAqE,MAAK,OAAA;IAAA,GACvE;IACH,WAAW,EAAE;IACb,cAAc,KAAK,QAAQ,MAAK,MAAK,EAAE,UAAU,eAAe,QAAQ,EAAE,OAAA,KAAY,GAAA,KAAA,KAAQ;GAAA,EAAA,CAAA,IAI1F,EAAG;IAAA,GAAK;IAAQ,WAAA;IAAW,cAAA;GAAA,CAAA;EAAA,CAAA,GAInC,GAAU,MACJ,EAAM,cAAc,QAClB,EAAM,aAAa,MAAM,KAC/B,GAAU,MACL,IAAgB,EAAG,CAAA,KACvB,EAAM,cAAc,cAAc,IAAI,YAAY,YAAY;GAC7D,QAAQ;IAAE,cAAc,EAAM,cAAc,QAAQ;IAAW,MAAM,KAAK;IAAM,QAAQ,EAAM,UAAU,CAAC;IAAG,OAAO,EAAM,SAAS,CAAC;GAAA;GACnI,SAAA,CAAS;GACT,UAAA,CAAU;EAAA,CAAA,CAAA,GAEJ,EAAA,CAAA,IAT8B,EAAG,CAAA,CAAA,GAe3C,GAAU,MACwB,OAApB,EAAM,aAAc,cAAc,aAAa,EAAM,YAC3D,EACL,EAAM,UAAA,EACL,MAAK,OAAA;GAAA,GAAW;GAAO,WAAW,EAAE;EAAA,EAAA,CAAA,IAH8C,EAAG,CAAA,CAAA,GAQzF,GAAI,MAAA;GACH,IAAM,IAAI,EAAM,WACV,IACJ,KAAK,MAAM,KACG,OAAN,KAAM,WAAW,IACxB,aAAa,cAAc,EAAE,QAAQ,YAAA,IACxB,OAAN,KAAM,aAAa,EAAE,QAAQ,kBACpC,SAJe;GAKlB,OAAO;IAAA,GAAK;IAAO,KAAK,GAAG,IAAK,KAAK,UAAU,EAAM,MAAA,IAAU,KAAK,UAAU,EAAM,KAAA,IAAS,KAAK,UAAU,EAAM,KAAA;GAAA;EAAA,CAAA,GAGnH,GAAW,MAEH,CAAA,CAAA,CAAA,GAIT,GAAsB,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAA,GAG3C,GAAI,MAAA;GACH,IAAM,IAAI,EAAM,WACZ,IAA8B;GAClC,IAAiB,OAAN,KAAM,YAAY,MAAM,IAClC,IAAA;IAAM,IAAU,SAAS,cAAc,CAAA;GAAG,QAAA,CAAuE;QAC3G,IAAI,aAAa,aACvB,IAAU;QACJ,IAAiB,OAAN,KAAM,YACvB,IAAA;IAAM,IAAU,IAAK;GAAiC,QAAS,CAA+D;GAO/H,OALI,MACC,EAAM,UAAQ,OAAO,OAAO,GAAS,EAAM,MAAA,GAC3C,EAAM,SAAO,OAAO,OAAO,GAAS,EAAM,KAAA,GAC1C,EAAM,SAAO,OAAO,OAAO,GAAS,EAAE,OAAO,EAAM,MAAA,CAAA,IAEjD;IAAA,GAAK;IAAO,SAAA;GAAA;EAAA,CAAA,GAIpB,GAAI,MAAA;GACH,IAAM,IAAM,MAAM,KAAK,KAAK,QAAA,EAAU,MAAK,MAAA,EAAO,aAAa,EAAA,GAAA,EACzD,SAAE,MAAY;GAEpB,IAAA,CAAK,GAA0B,OAAA,KAAf,GAAK,OAAA;GAErB,IAAM,IAAW,EAAM,qBAAqB;GAE3B,AAAb,MAAa,KAChB,GAAK,OAAA,GACL,KAAK,YAAY,CAAA,GACjB,KAAK,YAAY,KACP,KACV,EAAI,MAAM,aAAa,WACvB,EAAQ,MAAM,aAAa,WAC3B,EAAI,MAAM,oBAAoB,UAC9B,EAAI,QAAQ,CAAC,EAAE,SAAS,EAAA,GAAK,EAAE,SAAS,EAAA,CAAA,GAAM;IAAE,UAAA;IAAU,QAAQ;GAAA,CAAA,EAAc,SAC9E,WAAA;IACA,IAAK,KAAK,aAIV,OAHA,EAAI,OAAA,GACJ,KAAK,YAAY,CAAA,GACjB,KAAK,YAAY,GACV,EAAQ,QAAQ,CAAC,EAAE,SAAS,EAAA,GAAK,EAAE,SAAS,EAAA,CAAA,GAAM;KAAE,UAAA;KAAU,QAAQ;IAAA,CAAA,EAAa;GAAA,CAAA,EAE1F,WAAY,EAAQ,MAAM,aAAa,MAAA,MAEzC,KAAK,YAAY,CAAA,GACjB,KAAK,YAAY,GACjB,EAAQ,QAAQ,CAAC,EAAE,SAAS,EAAA,GAAK,EAAE,SAAS,EAAA,CAAA,GAAM;IACjD,UAAU,IAAW,MAAM,KAAK,IAAI,KAAgB,MAAX,CAAA,IAAmB;IAC5D,QAAQ;GAAA,CAAA,EACN,SAAS,WAAY,EAAQ,MAAM,aAAa,MAAA;GAGpD,IAAM,IAA2B;IAChC,WAAW,EAAQ,QAAQ,YAAA;IAC3B,OAAO,EAAM,SAAS,CAAC;IACvB,MAAM,KAAK;IACX,QAAQ,EAAM,UAAU,CAAC;IACzB,OAAO,EAAM,SAAS,CAAC;GAAA;GAExB,EAAK,QAAQ,IAAI,KAAK,MAAM,CAAA,GAC5B,EAAK,SAAS,KAAK,EAAK,OAAA,GAEpB,EAAK,qBACR,EAAK,sBACJ,KAAK,MACL,GACA,EAAM,mBAAmB,EAAiB,MAC1C,EAAM,kBACN,EAAM,IAAA;EAAA,CAAA,GAKT,EAAU,KAAK,aAAA,CAAA,EACd,UAAA;CACH;CAEA,uBAAA;EACC,MAAM,qBAAA,GACN,EAAK,IAAI,KAAK,IAAA;CACf;CAEA,SAAA;EACC,OAAO,CAAI;CACZ;AAAA;AC5QD,SAAgB,EAAW,GAAA;CAC1B,OAAO,KAAK,CAAA;AACb;AAEA,SAAgB,EAAW,GAAA;CAC1B,OAAO,KAAK,CAAA;AACb;ACGA,SAAgB,EACf,GACA,GAAA;CAGA,IAAI,MAAiB,GACpB,OAAA,CAAO;CAIR,IAA4B,OAAjB,KAAiB,cAAsC,OAAjB,KAAiB,YACjE,OAAA,CAAO;CAIR,IAAI,EAAa,QAAQ,EAAa,QAAQ,EAAa,SAAS,EAAa,MAChF,OAAA,CAAO;CAIR,IAAM,IAAQ,EAAqB,oBAC7B,IAAQ,EAAqB;CAEnC,IAAI,KAAQ,KACP,MAAM,QAAQ,CAAA,KAAS,MAAM,QAAQ,CAAA,GACxC,OAAI,EAAK,WAAW,EAAK,UAClB,EAAK,OAAO,GAAM,MAAM,MAAS,EAAK,EAAA;CAK/C,IAAA;EACC,IAAM,IAAS,EAAa,WACtB,IAAS,EAAa;EAG5B,IAAI,OAAO,eAAe,CAAA,MAAY,OAAO,eAAe,CAAA,GAAS;GAEpE,IAAM,IAAQ,OAAO,oBAAoB,CAAA,EAAQ,SAAA,GAC3C,IAAQ,OAAO,oBAAoB,CAAA,EAAQ,SAAA;GAEjD,OAAO,EAAM,WAAW,EAAM,UAAU,EAAM,OAAO,GAAK,MAAM,MAAQ,EAAM,EAAA;EAC/E;CACD,QAAA,CAEA;CAEA,OAAA,CAAO;AACR;AAOA,SAAgB,EAAiB,GAAA;CAChC,OAAO,EAAQ,YAAA,EAAc,QAAQ,cAAc,EAAA;AACpD;AAOA,SAAgB,EAAW,GAAA;CAC1B,IAAyB,OAAd,KAAc,UACxB,OAAO,EAAU,YAAA;CAGlB,IAAI,aAAqB,aACxB,OAAO,EAAU,QAAQ,YAAA;CAG1B,IAAyB,OAAd,KAAc,YAAY;EAEpC,IAAM,IAAO,EAAU;EACvB,IAAI,GAEH,OAAO,EACL,QAAQ,YAAY,KAAA,EACpB,YAAA,EACA,QAAQ,MAAM,EAAA;CAElB;CAEA,OAAO;AACR;AAQA,SAAgB,EAAyC,GAAW,GAAA;CACnE,IAAM,IAAS,EAAA,GAAK,EAAA;CAEpB,KAAK,IAAM,KAAO,GACjB,IAAI,EAAO,eAAe,CAAA,GAAM;EAC/B,IAAM,IAAc,EAAO,IACrB,IAAc,EAAO;EAEvB,EAAS,CAAA,KAAgB,EAAS,CAAA,IACrC,EAAO,KAAO,EAAU,GAAa,CAAA,IAErC,EAAO,KAAO;CAEhB;CAGD,OAAO;AACR;AAOA,SAAgB,EAAS,GAAA;CACxB,OAEgB,OAAR,KAAQ,cADf,KAEA,EAAI,gBAAgB,UACpB,OAAO,UAAU,SAAS,KAAK,CAAA,MAAS;AAE1C;AAQA,SAAgB,EAA4C,GAAS,GAAA;CACpE,IAAI,IAAgD;CAEpD,OAAO,SAAA,GAAwB,GAAA;EAE9B,IAAM,IAAU;EAEA,AAAZ,MAAY,QACf,aAAa,CAAA,GAGd,IAAU,iBAAA;GACT,EAAK,MAAM,GAAS,CAAA,GACpB,IAAU;EAAA,GACR,CAAA;CACJ;AACD;AAOA,SAAgB,EAAiB,GAAA;CAChC,IAAA;EACC,IAAM,IAAO,KAAK,UAAU,CAAA;EAC5B,OAAO,mBAAmB,CAAA;CAC3B,QAAS;EAER,OAAO;CACR;AACD;AAOA,SAAgB,EAAiB,GAAA;CAChC,IAAA,CAAK,GAAS,OAAO,CAAC;CAEtB,IAAA;EAEC,IAAM,IAAS,KAAK,MADJ,mBAAmB,CAAA,CAAA;EAGnC,IAAI,EAAS,CAAA,GACZ,OAAO;CAET,QAAS,CAET;CAEA,OAAO,CAAC;AACT;AAQA,SAAgB,EAAoB,GAAgB,GAAA;CAKnD,IAHI,EAAE,SAAS,EAAE,QAGjB,OAAW,EAAE,aAAA,OAAqB,EAAE,WAAW,OAAA,CAAO;CAEtD,IAA2B,OAAhB,EAAE,aAAc,YAAmC,OAAhB,EAAE,aAAc,UAAd;MAC3C,EAAiB,EAAE,SAAA,MAAe,EAAiB,EAAE,SAAA,GACxD,OAAA,CAAO;QAEF,IAA2B,OAAhB,EAAE,aAAc,cAAqC,OAAhB,EAAE,aAAc,YAAd;MAAA,CACnD,EAAiC,EAAE,WAAW,EAAE,SAAA,GACpD,OAAA,CAAO;QAEF,IAAI,EAAE,cAAc,EAAE,WAC5B,OAAA,CAAO;CAIR,OAAI,KAAK,UAAU,EAAE,SAAS,CAAC,CAAA,MAAO,KAAK,UAAU,EAAE,SAAS,CAAC,CAAA,KAK7D,KAAK,UAAU,EAAE,UAAU,CAAC,CAAA,MAAO,KAAK,UAAU,EAAE,UAAU,CAAC,CAAA;AAKpE;AAQA,SAAgB,EAAoB,GAAgB,GAAA;CACnD,OACC,EAAE,SAAS,EAAE,QACb,EAAE,cAAc,EAAE,aAClB,KAAK,UAAU,EAAE,SAAS,CAAC,CAAA,MAAO,KAAK,UAAU,EAAE,SAAS,CAAC,CAAA,KAC7D,KAAK,UAAU,EAAE,UAAU,CAAC,CAAA,MAAO,KAAK,UAAU,EAAE,UAAU,CAAC,CAAA;AAEjE;AAOA,SAAgB,EAAoB,GAAA;CACnC,IAAM,IAAU,EAAW,EAAM,SAAA,KAAc,WACzC,IAAY,EAAW,KAAK,UAAU,EAAM,SAAS,CAAC,CAAA,CAAA,GACtD,IAAa,EAAW,KAAK,UAAU,EAAM,UAAU,CAAC,CAAA,CAAA;CAE9D,OAAO,GAAG,EAAM,KAAA,GAAQ,EAAA,GAAW,EAAA,GAAa;AACjD;AAOA,SAAS,EAAW,GAAA;CACnB,IAAI,IAAO;CAEX,KAAK,IAAI,IAAI,GAAG,IAAI,EAAI,QAAQ,KAE/B,KAAQ,KAAQ,KAAK,IADR,EAAI,WAAW,CAAA,GAE5B,KAAc;CAGf,OAAO,KAAK,IAAI,CAAA,EAAM,SAAS,EAAA;AAChC;AAQA,SAAgB,EACf,GACA,IAAyB;CAAC;CAAY;CAAS;CAAU;AAAA,GAAA;CAEzD,IAAM,IAAqC,CAAC;CAE5C,KAAK,IAAM,KAAO,GACjB,IAAI,EAAM,eAAe,CAAA,KAAA,CAAS,EAAa,SAAS,CAAA,GAAM;EAC7D,IAAM,IAAQ,EAAM;EAEhB,EAAS,CAAA,IACZ,EAAU,KAAO,EAAmB,GAAO,CAAA,IACjC,MAAM,QAAQ,CAAA,IACxB,EAAU,KAAO,EAAM,KAAI,MAAS,EAAS,CAAA,IAAQ,EAAmB,GAAM,CAAA,IAAgB,CAAA,IAE9F,EAAU,KAAO;CAEnB;CAGD,OAAO;AACR;AAOA,SAAgB,EAAmB,GAAA;CAClC,IAAM,IAAiC,CAAC,GAEpC;CAeJ,OAZC,IADG,aAAe,kBACH,IACU,OAAR,KAAQ,WAEV,IADI,IAAI,GAAK,OAAO,SAAS,MAAA,EACtB,eAEP,IAAI,gBAAgB,OAAO,SAAS,MAAA,GAGpD,EAAa,SAAS,GAAO,MAAA;EAC5B,EAAO,KAAO;CAAA,CAAA,GAGR;AACR;AAOA,SAAgB,EAAiB,GAAA;CAChC,IAAM,IAAe,IAAI,gBAAA;CAEzB,KAAK,IAAM,KAAO,GACjB,IAAI,EAAO,eAAe,CAAA,GAAM;EAC/B,IAAM,IAAQ,EAAO;EACjB,AAAA,KAAA,QAAyC,MAAU,MACtD,EAAa,IAAI,GAAK,OAAO,CAAA,CAAA;CAE/B;CAGD,IAAM,IAAc,EAAa,SAAA;CACjC,OAAO,IAAc,IAAI,MAAgB;AAC1C;AAAA,EAAA,CFzTE,EAAA,CAAA,GAAS,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAET,EAAA,CAAA,GAAS,EAAA,WAAA,WAAA,KAAA,CAAA,GAAA,EAAA,CAET,EAAsB;CAAE,UAAU;CAAkB,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,UAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CAxBpE,EAAc,eAAA,CAAA,GAAe,CAAA;AAAA,SAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA"}