@mhmo91/schmancy 0.9.28 → 0.10.2

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 (1049) hide show
  1. package/custom-elements.json +1005 -2215
  2. package/dist/active-host-CcIa2tmW.cjs +1 -0
  3. package/dist/active-host-CcIa2tmW.cjs.map +1 -0
  4. package/dist/active-host-CvNYoprt.js +57 -0
  5. package/dist/active-host-CvNYoprt.js.map +1 -0
  6. package/dist/agent/{flow-CvG1fLW5.js.map → flow-CaPi2G8y.js.map} +1 -1
  7. package/dist/agent/{rolldown-runtime-BIIoCavz.js → rolldown-runtime-DsMetpgY.js} +2 -9
  8. package/dist/agent/schmancy.agent.js +12678 -7791
  9. package/dist/agent/schmancy.agent.js.map +1 -1
  10. package/dist/agent/schmancy.manifest.json +265 -1453
  11. package/dist/agent/{vendor-highlight-Dow87ZL_.js → vendor-highlight-CHJZQQB7.js} +85 -90
  12. package/dist/agent/{vendor-highlight-Dow87ZL_.js.map → vendor-highlight-CHJZQQB7.js.map} +1 -1
  13. package/dist/agent/{vendor-jsqr-Bl4iAtKC.js → vendor-jsqr-r7GNh4P3.js} +1 -1
  14. package/dist/agent/{vendor-jsqr-Bl4iAtKC.js.map → vendor-jsqr-r7GNh4P3.js.map} +1 -1
  15. package/dist/agent/{vendor-material-color-DcL7ZPxx.js.map → vendor-material-color-Be96dpGE.js.map} +1 -1
  16. package/dist/{animation-hXFClrIn.js.map → animation-BK-8BwY8.js.map} +1 -1
  17. package/dist/{animation-CQRdLgzX.cjs.map → animation-CO_Csq84.cjs.map} +1 -1
  18. package/dist/{area-BGBCMC79.js → area-DHVANBbr.js} +20 -15
  19. package/dist/area-DHVANBbr.js.map +1 -0
  20. package/dist/area-ZupIezvU.cjs +12 -0
  21. package/dist/area-ZupIezvU.cjs.map +1 -0
  22. package/dist/area.cjs +1 -1
  23. package/dist/area.js +2 -2
  24. package/dist/{audio-Dvr-RBzE.cjs → audio-CluX8Qpq.cjs} +1 -1
  25. package/dist/{audio-Dvr-RBzE.cjs.map → audio-CluX8Qpq.cjs.map} +1 -1
  26. package/dist/{audio-ql6nvY0y.js → audio-DcXphulJ.js} +1 -1
  27. package/dist/{audio-ql6nvY0y.js.map → audio-DcXphulJ.js.map} +1 -1
  28. package/dist/audio.cjs +1 -1
  29. package/dist/audio.js +2 -2
  30. package/dist/autocomplete-Bn525CTp.cjs +115 -0
  31. package/dist/autocomplete-Bn525CTp.cjs.map +1 -0
  32. package/dist/{autocomplete-C2P0Soht.js → autocomplete-pHvsyfbH.js} +29 -26
  33. package/dist/autocomplete-pHvsyfbH.js.map +1 -0
  34. package/dist/autocomplete.cjs +1 -1
  35. package/dist/autocomplete.js +1 -1
  36. package/dist/avatar.cjs +7 -0
  37. package/dist/avatar.cjs.map +1 -0
  38. package/dist/avatar.js +87 -0
  39. package/dist/avatar.js.map +1 -0
  40. package/dist/badge.cjs +1 -1
  41. package/dist/badge.js +1 -1
  42. package/dist/boat-IyEtsNI4.cjs +80 -0
  43. package/dist/boat-IyEtsNI4.cjs.map +1 -0
  44. package/dist/{boat-DXZ0k7oa.js → boat-_Yv3M6YM.js} +43 -54
  45. package/dist/boat-_Yv3M6YM.js.map +1 -0
  46. package/dist/boat.cjs +1 -1
  47. package/dist/boat.js +1 -1
  48. package/dist/breadcrumb.cjs +4 -4
  49. package/dist/breadcrumb.cjs.map +1 -1
  50. package/dist/breadcrumb.js +16 -11
  51. package/dist/breadcrumb.js.map +1 -1
  52. package/dist/{busy-DGYhpTnO.cjs → busy-CjM39APN.cjs} +4 -4
  53. package/dist/busy-CjM39APN.cjs.map +1 -0
  54. package/dist/{busy-iRjq6Nvd.js → busy-Ck2IXJ4r.js} +14 -9
  55. package/dist/busy-Ck2IXJ4r.js.map +1 -0
  56. package/dist/busy.cjs +1 -1
  57. package/dist/busy.js +1 -1
  58. package/dist/button.cjs +24 -24
  59. package/dist/button.cjs.map +1 -1
  60. package/dist/button.js +42 -37
  61. package/dist/button.js.map +1 -1
  62. package/dist/{card-DjYnCckw.cjs → card-DIxDuuth.cjs} +6 -6
  63. package/dist/card-DIxDuuth.cjs.map +1 -0
  64. package/dist/{card-wUTjx0EC.js → card-DUWZmMHc.js} +41 -30
  65. package/dist/card-DUWZmMHc.js.map +1 -0
  66. package/dist/card.cjs +1 -1
  67. package/dist/card.js +1 -1
  68. package/dist/charts.cjs +5 -5
  69. package/dist/charts.cjs.map +1 -1
  70. package/dist/charts.js +21 -16
  71. package/dist/charts.js.map +1 -1
  72. package/dist/checkbox-CGdFXuWQ.cjs +39 -0
  73. package/dist/checkbox-CGdFXuWQ.cjs.map +1 -0
  74. package/dist/{checkbox-VBSenxgb.js → checkbox-DPS1mWG-.js} +86 -82
  75. package/dist/checkbox-DPS1mWG-.js.map +1 -0
  76. package/dist/checkbox.cjs +1 -1
  77. package/dist/checkbox.js +1 -1
  78. package/dist/{chips-BDS9lkPa.js → chips-BnnXQSA-.js} +146 -136
  79. package/dist/chips-BnnXQSA-.js.map +1 -0
  80. package/dist/{chips-D6ptH5re.cjs → chips-UoFbwmlG.cjs} +19 -19
  81. package/dist/chips-UoFbwmlG.cjs.map +1 -0
  82. package/dist/chips.cjs +1 -1
  83. package/dist/chips.js +2 -2
  84. package/dist/{code-highlight-BzRmBZzz.cjs → code-highlight-CMilN0B8.cjs} +15 -15
  85. package/dist/code-highlight-CMilN0B8.cjs.map +1 -0
  86. package/dist/{code-highlight-Bi91XHJN.js → code-highlight-kFUJ1Eet.js} +37 -40
  87. package/dist/code-highlight-kFUJ1Eet.js.map +1 -0
  88. package/dist/code-highlight.cjs +1 -1
  89. package/dist/code-highlight.js +1 -1
  90. package/dist/connectivity.cjs +2 -2
  91. package/dist/connectivity.cjs.map +1 -1
  92. package/dist/connectivity.js +10 -7
  93. package/dist/connectivity.js.map +1 -1
  94. package/dist/content-drawer.cjs +1 -1
  95. package/dist/content-drawer.js +2 -2
  96. package/dist/context-Bdu1xt0W.js +3 -0
  97. package/dist/{context-BerzpUhI.js.map → context-Bdu1xt0W.js.map} +1 -1
  98. package/dist/context-daN5G6HS.cjs +1 -0
  99. package/dist/{context-C6dHUHhi.cjs.map → context-daN5G6HS.cjs.map} +1 -1
  100. package/dist/{cursor-glow-BydlDInj.js → cursor-glow-Ah7VXSj7.js} +1 -1
  101. package/dist/{cursor-glow-BydlDInj.js.map → cursor-glow-Ah7VXSj7.js.map} +1 -1
  102. package/dist/{cursor-glow-Duw9jHmh.cjs → cursor-glow-Bulq-38P.cjs} +1 -1
  103. package/dist/{cursor-glow-Duw9jHmh.cjs.map → cursor-glow-Bulq-38P.cjs.map} +1 -1
  104. package/dist/date-range-BIyrzTRZ.cjs +131 -0
  105. package/dist/date-range-BIyrzTRZ.cjs.map +1 -0
  106. package/dist/{date-range-ClTMg1AB.js → date-range-DOstCIg8.js} +16 -17
  107. package/dist/date-range-DOstCIg8.js.map +1 -0
  108. package/dist/date-range-inline-4P7zqeVe.cjs +43 -0
  109. package/dist/{date-range-inline-B9Dp2z6C.cjs.map → date-range-inline-4P7zqeVe.cjs.map} +1 -1
  110. package/dist/{date-range-inline-CpKG6qt2.js → date-range-inline-BVycTWLb.js} +5 -5
  111. package/dist/{date-range-inline-CpKG6qt2.js.map → date-range-inline-BVycTWLb.js.map} +1 -1
  112. package/dist/date-range-inline.cjs +1 -1
  113. package/dist/date-range-inline.js +1 -1
  114. package/dist/date-range.cjs +1 -1
  115. package/dist/date-range.js +1 -1
  116. package/dist/delay.cjs +9 -1
  117. package/dist/delay.cjs.map +1 -0
  118. package/dist/delay.js +77 -2
  119. package/dist/delay.js.map +1 -0
  120. package/dist/{details-Cz9ok9si.cjs → details-BJBbZOO6.cjs} +9 -9
  121. package/dist/details-BJBbZOO6.cjs.map +1 -0
  122. package/dist/{details-CPjlqQD4.js → details-DPc5GxPa.js} +19 -18
  123. package/dist/details-DPc5GxPa.js.map +1 -0
  124. package/dist/details.cjs +1 -1
  125. package/dist/details.js +1 -1
  126. package/dist/{dialog-service-DH-tjPuE.js → dialog-service-DI9PPy4H.js} +2 -2
  127. package/dist/dialog-service-DI9PPy4H.js.map +1 -0
  128. package/dist/{dialog-service-CzDO08Gy.cjs → dialog-service-DJd5L0f5.cjs} +1 -1
  129. package/dist/dialog-service-DJd5L0f5.cjs.map +1 -0
  130. package/dist/dialog.cjs +2 -2
  131. package/dist/dialog.cjs.map +1 -1
  132. package/dist/dialog.js +13 -14
  133. package/dist/dialog.js.map +1 -1
  134. package/dist/directives.cjs +2 -11
  135. package/dist/directives.cjs.map +1 -1
  136. package/dist/directives.js +141 -227
  137. package/dist/directives.js.map +1 -1
  138. package/dist/discovery.cjs +1 -1
  139. package/dist/discovery.cjs.map +1 -1
  140. package/dist/discovery.js +1 -1
  141. package/dist/discovery.js.map +1 -1
  142. package/dist/{divider-ghgyw5CU.js → divider-BvJsmSPH.js} +11 -9
  143. package/dist/divider-BvJsmSPH.js.map +1 -0
  144. package/dist/{divider-CILo3_vi.cjs → divider-DPT3XnG5.cjs} +3 -3
  145. package/dist/divider-DPT3XnG5.cjs.map +1 -0
  146. package/dist/divider.cjs +1 -1
  147. package/dist/divider.js +1 -1
  148. package/dist/dropdown.cjs +4 -4
  149. package/dist/dropdown.cjs.map +1 -1
  150. package/dist/dropdown.js +29 -28
  151. package/dist/dropdown.js.map +1 -1
  152. package/dist/{expand-CbjBr_Ds.js → expand-BMzocdtj.js} +24 -20
  153. package/dist/expand-BMzocdtj.js.map +1 -0
  154. package/dist/expand-CTqBWVXo.cjs +141 -0
  155. package/dist/expand-CTqBWVXo.cjs.map +1 -0
  156. package/dist/expand.cjs +1 -1
  157. package/dist/expand.js +1 -1
  158. package/dist/{extra-DK9MQtPJ.js → extra-BeHlUhzv.js} +19 -14
  159. package/dist/extra-BeHlUhzv.js.map +1 -0
  160. package/dist/{extra-BZeZOMBI.cjs → extra-h_cuxRII.cjs} +6 -6
  161. package/dist/extra-h_cuxRII.cjs.map +1 -0
  162. package/dist/extra.cjs +1 -1
  163. package/dist/extra.js +1 -1
  164. package/dist/{float-BfCvGeY9.js → float-CTc1xxqH.js} +2 -2
  165. package/dist/{float-BfCvGeY9.js.map → float-CTc1xxqH.js.map} +1 -1
  166. package/dist/float-CwVBs11k.cjs +1 -0
  167. package/dist/{float-CuZ8LOgB.cjs.map → float-CwVBs11k.cjs.map} +1 -1
  168. package/dist/float.cjs +1 -1
  169. package/dist/float.js +1 -1
  170. package/dist/{form-rCZqoAoK.js → form-BtwOBMZ9.js} +1 -1
  171. package/dist/form-BtwOBMZ9.js.map +1 -0
  172. package/dist/{form-wI58M85H.cjs → form-CSJp687X.cjs} +1 -1
  173. package/dist/form-CSJp687X.cjs.map +1 -0
  174. package/dist/form.cjs +1 -1
  175. package/dist/form.js +1 -1
  176. package/dist/handover/agent-runtime-followups.md +1 -1
  177. package/dist/handover/agent-runtime-v1.md +3 -3
  178. package/dist/handover/claude-design-brief.md +19 -54
  179. package/dist/handover/claude-design-setup.md +57 -0
  180. package/dist/{hashContent-B2IntJQf.js.map → hashContent-1ARKIsx9.js.map} +1 -1
  181. package/dist/{hashContent-CahnEuut.cjs.map → hashContent-Bp5S6T4U.cjs.map} +1 -1
  182. package/dist/{icons-Drq4kKy2.js → icons-BbCVrcas.js} +27 -24
  183. package/dist/icons-BbCVrcas.js.map +1 -0
  184. package/dist/icons-qEQW4pjM.cjs +52 -0
  185. package/dist/icons-qEQW4pjM.cjs.map +1 -0
  186. package/dist/icons.cjs +1 -1
  187. package/dist/icons.js +1 -1
  188. package/dist/{iframe-BmyHW8km.js → iframe-BJfDIEJf.js} +17 -11
  189. package/dist/iframe-BJfDIEJf.js.map +1 -0
  190. package/dist/iframe-D6HTruav.cjs +24 -0
  191. package/dist/iframe-D6HTruav.cjs.map +1 -0
  192. package/dist/iframe.cjs +1 -1
  193. package/dist/iframe.js +1 -1
  194. package/dist/index.cjs +1 -1
  195. package/dist/index.js +77 -77
  196. package/dist/{input-Bc3bVISm.js → input-LTK3cctF.js} +34 -34
  197. package/dist/input-LTK3cctF.js.map +1 -0
  198. package/dist/input-U26axtcs.cjs +51 -0
  199. package/dist/input-U26axtcs.cjs.map +1 -0
  200. package/dist/{input-chip-DN-cwf11.cjs → input-chip-CADXt0X5.cjs} +2 -2
  201. package/dist/input-chip-CADXt0X5.cjs.map +1 -0
  202. package/dist/{input-chip-BQrjpjaQ.js → input-chip-Ch-aCs3c.js} +7 -4
  203. package/dist/input-chip-Ch-aCs3c.js.map +1 -0
  204. package/dist/input.cjs +1 -1
  205. package/dist/input.js +1 -1
  206. package/dist/json.cjs +1 -1
  207. package/dist/json.cjs.map +1 -1
  208. package/dist/json.js +7 -5
  209. package/dist/json.js.map +1 -1
  210. package/dist/kbd.cjs +2 -2
  211. package/dist/kbd.cjs.map +1 -1
  212. package/dist/kbd.js +9 -7
  213. package/dist/kbd.js.map +1 -1
  214. package/dist/{layout-fjM1DWlF.js → layout-C4xmnU4n.js} +1 -1
  215. package/dist/{layout-fjM1DWlF.js.map → layout-C4xmnU4n.js.map} +1 -1
  216. package/dist/{layout-CTfRXQoz.cjs → layout-Dmh6fxh0.cjs} +1 -1
  217. package/dist/{layout-CTfRXQoz.cjs.map → layout-Dmh6fxh0.cjs.map} +1 -1
  218. package/dist/layout.cjs +1 -1
  219. package/dist/layout.js +2 -3
  220. package/dist/{lazy-D6R5N5v4.js.map → lazy-B0ia54tT.js.map} +1 -1
  221. package/dist/{lazy-BDNnH_r7.cjs.map → lazy-Dq9mRRjT.cjs.map} +1 -1
  222. package/dist/lightbox-DbYUSfVl.cjs +202 -0
  223. package/dist/lightbox-DbYUSfVl.cjs.map +1 -0
  224. package/dist/{lightbox-CY52Z_ig.js → lightbox-DqG2z3Cn.js} +13 -12
  225. package/dist/lightbox-DqG2z3Cn.js.map +1 -0
  226. package/dist/lightbox.cjs +1 -1
  227. package/dist/lightbox.js +1 -1
  228. package/dist/list-CLX4sSAw.cjs +40 -0
  229. package/dist/list-CLX4sSAw.cjs.map +1 -0
  230. package/dist/{list-D7wUxu1C.js → list-D6-_E5ZD.js} +26 -21
  231. package/dist/list-D6-_E5ZD.js.map +1 -0
  232. package/dist/list.cjs +1 -1
  233. package/dist/list.js +1 -1
  234. package/dist/{magnetic-CVXEkYTA.cjs → magnetic-BH0TsofV.cjs} +1 -1
  235. package/dist/{magnetic-CVXEkYTA.cjs.map → magnetic-BH0TsofV.cjs.map} +1 -1
  236. package/dist/{magnetic-BhXebqF3.js → magnetic-BZGFxAWG.js} +2 -2
  237. package/dist/{magnetic-BhXebqF3.js.map → magnetic-BZGFxAWG.js.map} +1 -1
  238. package/dist/{mailbox-DLiBGJhY.cjs → mailbox-Ct6iYe-4.cjs} +64 -66
  239. package/dist/mailbox-Ct6iYe-4.cjs.map +1 -0
  240. package/dist/{mailbox--EN-JhjV.js → mailbox-DsPII8HR.js} +137 -126
  241. package/dist/mailbox-DsPII8HR.js.map +1 -0
  242. package/dist/mailbox.cjs +1 -1
  243. package/dist/mailbox.js +1 -1
  244. package/dist/{map-B0S_q3ma.js → map-Dhy3ta9v.js} +11 -9
  245. package/dist/map-Dhy3ta9v.js.map +1 -0
  246. package/dist/map-WXeVkx2K.cjs +80 -0
  247. package/dist/map-WXeVkx2K.cjs.map +1 -0
  248. package/dist/map.cjs +1 -1
  249. package/dist/map.js +1 -1
  250. package/dist/{menu-COeFpb6n.js → menu-Bhd3EapX.js} +15 -10
  251. package/dist/menu-Bhd3EapX.js.map +1 -0
  252. package/dist/{menu-3edZGQ1x.cjs → menu-Cg2aaDjs.cjs} +5 -5
  253. package/dist/menu-Cg2aaDjs.cjs.map +1 -0
  254. package/dist/menu.cjs +1 -1
  255. package/dist/menu.js +1 -1
  256. package/dist/mixins-CcIWET41.js +627 -0
  257. package/dist/mixins-CcIWET41.js.map +1 -0
  258. package/dist/mixins-De3xfjrm.cjs +298 -0
  259. package/dist/mixins-De3xfjrm.cjs.map +1 -0
  260. package/dist/mixins.cjs +1 -1
  261. package/dist/mixins.js +2 -87
  262. package/dist/nav-drawer.cjs +1 -1
  263. package/dist/nav-drawer.js +2 -2
  264. package/dist/navigation-bar.cjs +1 -1
  265. package/dist/navigation-bar.js +1 -1
  266. package/dist/navigation-rail.cjs +3 -3
  267. package/dist/navigation-rail.cjs.map +1 -1
  268. package/dist/navigation-rail.js +15 -16
  269. package/dist/navigation-rail.js.map +1 -1
  270. package/dist/{notification-CC-TFN5v.js → notification-CVLqQ8c_.js} +40 -38
  271. package/dist/notification-CVLqQ8c_.js.map +1 -0
  272. package/dist/notification-D_PQjBSf.cjs +23 -0
  273. package/dist/notification-D_PQjBSf.cjs.map +1 -0
  274. package/dist/notification.cjs +1 -1
  275. package/dist/notification.js +1 -1
  276. package/dist/option-DDU_goh1.cjs +43 -0
  277. package/dist/option-DDU_goh1.cjs.map +1 -0
  278. package/dist/{option-BwAF4nAw.js → option-rm4HebVs.js} +9 -7
  279. package/dist/option-rm4HebVs.js.map +1 -0
  280. package/dist/option.cjs +1 -1
  281. package/dist/option.js +1 -1
  282. package/dist/{overlay-stack-7bs4ZNnh.cjs → overlay-stack-BprhAE9a.cjs} +1 -1
  283. package/dist/{overlay-stack-7bs4ZNnh.cjs.map → overlay-stack-BprhAE9a.cjs.map} +1 -1
  284. package/dist/{overlay-stack-DXPYHPhk.js → overlay-stack-CAQno0CK.js} +1 -1
  285. package/dist/{overlay-stack-DXPYHPhk.js.map → overlay-stack-CAQno0CK.js.map} +1 -1
  286. package/dist/overlay.cjs +43 -45
  287. package/dist/overlay.cjs.map +1 -1
  288. package/dist/overlay.js +684 -268
  289. package/dist/overlay.js.map +1 -1
  290. package/dist/page.cjs +3 -3
  291. package/dist/page.cjs.map +1 -1
  292. package/dist/page.js +15 -13
  293. package/dist/page.js.map +1 -1
  294. package/dist/{components-DZgJWHdZ.js → payment-card-form-C0dHYZIv.js} +21 -22
  295. package/dist/{components-DZgJWHdZ.js.map → payment-card-form-C0dHYZIv.js.map} +1 -1
  296. package/dist/payment-card-form-DNvmZxs4.cjs +73 -0
  297. package/dist/{components-DkmEgyAc.cjs.map → payment-card-form-DNvmZxs4.cjs.map} +1 -1
  298. package/dist/payment-card-form.cjs +1 -0
  299. package/dist/payment-card-form.js +2 -0
  300. package/dist/{progress-Bk_Q1Shy.js → progress-BRerM5Bn.js} +16 -13
  301. package/dist/progress-BRerM5Bn.js.map +1 -0
  302. package/dist/{progress-Yz6EMNSu.cjs → progress-U3LQkpM2.cjs} +3 -3
  303. package/dist/progress-U3LQkpM2.cjs.map +1 -0
  304. package/dist/progress.cjs +1 -1
  305. package/dist/progress.js +1 -1
  306. package/dist/qr-scanner.cjs +5 -5
  307. package/dist/qr-scanner.cjs.map +1 -1
  308. package/dist/qr-scanner.js +14 -15
  309. package/dist/qr-scanner.js.map +1 -1
  310. package/dist/{radio-group-BcdcjLNC.js → radio-group-BZ2WoOXJ.js} +14 -12
  311. package/dist/radio-group-BZ2WoOXJ.js.map +1 -0
  312. package/dist/radio-group-D7mm-yvJ.cjs +40 -0
  313. package/dist/radio-group-D7mm-yvJ.cjs.map +1 -0
  314. package/dist/radio-group.cjs +1 -1
  315. package/dist/radio-group.js +1 -1
  316. package/dist/range.cjs +2 -2
  317. package/dist/range.cjs.map +1 -1
  318. package/dist/range.js +9 -7
  319. package/dist/range.js.map +1 -1
  320. package/dist/{reduced-motion-BZTLqAyl.js.map → reduced-motion-D-L12p7G.js.map} +1 -1
  321. package/dist/{reduced-motion-9RjNnhIg.cjs.map → reduced-motion-Ds-HjMzn.cjs.map} +1 -1
  322. package/dist/{rxjs-utils-DJbZRjp3.cjs.map → rxjs-utils-Csnks202.cjs.map} +1 -1
  323. package/dist/{rxjs-utils-CKTnEKUH.js.map → rxjs-utils-d-ivVN84.js.map} +1 -1
  324. package/dist/rxjs-utils.cjs +1 -1
  325. package/dist/rxjs-utils.js +1 -1
  326. package/dist/scroll-DJTjNIT_.cjs +26 -0
  327. package/dist/scroll-DJTjNIT_.cjs.map +1 -0
  328. package/dist/{scroll-DXQv0ejL.js → scroll-qL-HkMdP.js} +9 -7
  329. package/dist/scroll-qL-HkMdP.js.map +1 -0
  330. package/dist/search-BLCRsxIC.cjs +1 -0
  331. package/dist/{search-CwMav5QB.cjs.map → search-BLCRsxIC.cjs.map} +1 -1
  332. package/dist/{search-CvUZRLF1.js → search-BTz7-Rev.js} +1 -1
  333. package/dist/{search-CvUZRLF1.js.map → search-BTz7-Rev.js.map} +1 -1
  334. package/dist/{select-BV4lK2zy.cjs → select-BvA7v-gL.cjs} +6 -6
  335. package/dist/select-BvA7v-gL.cjs.map +1 -0
  336. package/dist/{select-DKyGWDsG.js → select-CnPXUeSf.js} +23 -20
  337. package/dist/select-CnPXUeSf.js.map +1 -0
  338. package/dist/select.cjs +1 -1
  339. package/dist/select.js +1 -1
  340. package/dist/{sheet-C3TLKItO.js → sheet-BRL07BB4.js} +22 -20
  341. package/dist/sheet-BRL07BB4.js.map +1 -0
  342. package/dist/sheet-BYQJAHQn.cjs +35 -0
  343. package/dist/sheet-BYQJAHQn.cjs.map +1 -0
  344. package/dist/sheet.cjs +1 -1
  345. package/dist/sheet.js +2 -2
  346. package/dist/sheet.service-B25bsrYG.cjs +1 -0
  347. package/dist/{sheet.service-RcDBwHmv.cjs.map → sheet.service-B25bsrYG.cjs.map} +1 -1
  348. package/dist/{sheet.service-Dlv20Zfc.js → sheet.service-SPQ8oLCi.js} +3 -3
  349. package/dist/{sheet.service-Dlv20Zfc.js.map → sheet.service-SPQ8oLCi.js.map} +1 -1
  350. package/dist/skeleton.cjs +2 -2
  351. package/dist/skeleton.cjs.map +1 -1
  352. package/dist/skeleton.js +9 -7
  353. package/dist/skeleton.js.map +1 -1
  354. package/dist/skills/INDEX.md +1 -1
  355. package/dist/skills/SKILL.md +17 -5
  356. package/dist/skills/mixins.md +78 -20
  357. package/dist/skills/schmancy/INDEX.md +1 -1
  358. package/dist/skills/schmancy/SKILL.md +17 -5
  359. package/dist/skills/schmancy/mixins.md +78 -20
  360. package/dist/skills/schmancy/state.md +501 -0
  361. package/dist/skills/schmancy/theme.md +15 -0
  362. package/dist/skills/schmancy/timeline-tile.md +95 -0
  363. package/dist/skills/state.md +501 -0
  364. package/dist/skills/theme.md +15 -0
  365. package/dist/skills/timeline-tile.md +95 -0
  366. package/dist/slider.cjs +5 -5
  367. package/dist/slider.cjs.map +1 -1
  368. package/dist/slider.js +18 -13
  369. package/dist/slider.js.map +1 -1
  370. package/dist/sound.service-BGs6m0Cm.cjs +1 -0
  371. package/dist/sound.service-BGs6m0Cm.cjs.map +1 -0
  372. package/dist/{sound.service-DWZe6swU.js → sound.service-kKfsN0m-.js} +3 -3
  373. package/dist/sound.service-kKfsN0m-.js.map +1 -0
  374. package/dist/splash-screen-BDt4PInk.cjs +41 -0
  375. package/dist/splash-screen-BDt4PInk.cjs.map +1 -0
  376. package/dist/{splash-screen-DbI5RgBf.js → splash-screen-C8JCqX5L.js} +12 -9
  377. package/dist/splash-screen-C8JCqX5L.js.map +1 -0
  378. package/dist/splash-screen.cjs +1 -1
  379. package/dist/splash-screen.js +1 -1
  380. package/dist/src-CpRNClhg.cjs +263 -0
  381. package/dist/src-CpRNClhg.cjs.map +1 -0
  382. package/dist/{src-00DfxCJq.js → src-CqdnWGgr.js} +299 -351
  383. package/dist/src-CqdnWGgr.js.map +1 -0
  384. package/dist/state-BusMG6sM.js +868 -0
  385. package/dist/state-BusMG6sM.js.map +1 -0
  386. package/dist/state-DNdCPITt.cjs +1 -0
  387. package/dist/state-DNdCPITt.cjs.map +1 -0
  388. package/dist/state.cjs +1 -0
  389. package/dist/state.js +3 -0
  390. package/dist/steps.cjs +10 -10
  391. package/dist/steps.cjs.map +1 -1
  392. package/dist/steps.js +29 -24
  393. package/dist/steps.js.map +1 -1
  394. package/dist/surface-C8jQy8Ym.js +24 -0
  395. package/dist/surface-C8jQy8Ym.js.map +1 -0
  396. package/dist/surface-Du2Y4vXd.cjs +7 -0
  397. package/dist/surface-Du2Y4vXd.cjs.map +1 -0
  398. package/dist/surface.cjs +1 -1
  399. package/dist/surface.js +1 -1
  400. package/dist/switch.cjs +2 -2
  401. package/dist/switch.cjs.map +1 -1
  402. package/dist/switch.js +7 -5
  403. package/dist/switch.js.map +1 -1
  404. package/dist/table.cjs +72 -1
  405. package/dist/table.cjs.map +1 -0
  406. package/dist/table.js +174 -2
  407. package/dist/table.js.map +1 -0
  408. package/dist/tabs-0RfeCa00.cjs +31 -0
  409. package/dist/tabs-0RfeCa00.cjs.map +1 -0
  410. package/dist/{tabs-Ce55RbwF.js → tabs-Cyahh9Q6.js} +22 -22
  411. package/dist/tabs-Cyahh9Q6.js.map +1 -0
  412. package/dist/tabs.cjs +1 -1
  413. package/dist/tabs.js +1 -1
  414. package/dist/teleport.cjs +1 -1
  415. package/dist/teleport.js +2 -2
  416. package/dist/{textarea-DjN1D9u0.js → textarea-CXCcTVnf.js} +30 -28
  417. package/dist/textarea-CXCcTVnf.js.map +1 -0
  418. package/dist/textarea-jqRrLxmo.cjs +39 -0
  419. package/dist/textarea-jqRrLxmo.cjs.map +1 -0
  420. package/dist/textarea.cjs +1 -1
  421. package/dist/textarea.js +1 -1
  422. package/dist/{theme-pbxlt72h.js → theme-2KZW2Rfs.js} +45 -41
  423. package/dist/{theme-pbxlt72h.js.map → theme-2KZW2Rfs.js.map} +1 -1
  424. package/dist/theme-Hjz9sCN-.cjs +181 -0
  425. package/dist/{theme-B-IJ2r7Q.cjs.map → theme-Hjz9sCN-.cjs.map} +1 -1
  426. package/dist/{theme-button-CEMeAUOL.js → theme-button-9uF1eoHz.js} +3 -4
  427. package/dist/theme-button-9uF1eoHz.js.map +1 -0
  428. package/dist/theme-button-C7QIbke1.cjs +8 -0
  429. package/dist/theme-button-C7QIbke1.cjs.map +1 -0
  430. package/dist/theme-button.cjs +1 -1
  431. package/dist/theme-button.js +1 -1
  432. package/dist/theme.cjs +1 -1
  433. package/dist/{theme.events-NuihzD_p.js.map → theme.events-Cv7N4Toe.js.map} +1 -1
  434. package/dist/{theme.events-DakXxZeP.cjs.map → theme.events-DM4H5F2d.cjs.map} +1 -1
  435. package/dist/{theme.interface-DTwkuAKJ.cjs.map → theme.interface-D9l33b-M.cjs.map} +1 -1
  436. package/dist/{theme.interface-Buged9Cg.js.map → theme.interface-DnVNre4O.js.map} +1 -1
  437. package/dist/theme.js +5 -5
  438. package/dist/theme.service-BrUbGoeQ.cjs +1 -0
  439. package/dist/theme.service-BrUbGoeQ.cjs.map +1 -0
  440. package/dist/{theme.service-cOfPrtfe.js → theme.service-CmbOGMA8.js} +4 -4
  441. package/dist/theme.service-CmbOGMA8.js.map +1 -0
  442. package/dist/timeline.cjs +277 -0
  443. package/dist/timeline.cjs.map +1 -0
  444. package/dist/timeline.js +326 -0
  445. package/dist/timeline.js.map +1 -0
  446. package/dist/tree.cjs +2 -2
  447. package/dist/tree.cjs.map +1 -1
  448. package/dist/tree.js +15 -13
  449. package/dist/tree.js.map +1 -1
  450. package/dist/typewriter.cjs +10 -123
  451. package/dist/typewriter.cjs.map +1 -1
  452. package/dist/typewriter.js +90 -212
  453. package/dist/typewriter.js.map +1 -1
  454. package/dist/typography.cjs +3 -3
  455. package/dist/typography.cjs.map +1 -1
  456. package/dist/typography.js +18 -112
  457. package/dist/typography.js.map +1 -1
  458. package/dist/utils-Cr-YO4Np.cjs +1 -0
  459. package/dist/utils-Cr-YO4Np.cjs.map +1 -0
  460. package/dist/{utils-Bp2jhyZc.js → utils-hp-DnFf5.js} +16 -6
  461. package/dist/utils-hp-DnFf5.js.map +1 -0
  462. package/dist/utils.cjs +1 -1
  463. package/dist/utils.js +4 -5
  464. package/dist/visually-hidden.cjs +2 -2
  465. package/dist/visually-hidden.cjs.map +1 -1
  466. package/dist/visually-hidden.js +7 -5
  467. package/dist/visually-hidden.js.map +1 -1
  468. package/dist/{window-CrjZdf7Y.js → window-C7yY9yp5.js} +28 -30
  469. package/dist/window-C7yY9yp5.js.map +1 -0
  470. package/dist/window-DtUOWiAj.cjs +59 -0
  471. package/dist/window-DtUOWiAj.cjs.map +1 -0
  472. package/dist/window.cjs +1 -1
  473. package/dist/window.js +1 -1
  474. package/package.json +15 -4
  475. package/plugins/vite-plugin-schmancy-auto-import.ts +143 -0
  476. package/plugins/vite-plugin-schmancy-manifest.ts +438 -0
  477. package/skills/schmancy/INDEX.md +1 -1
  478. package/skills/schmancy/SKILL.md +17 -5
  479. package/skills/schmancy/mixins.md +78 -20
  480. package/skills/schmancy/state.md +501 -0
  481. package/skills/schmancy/theme.md +15 -0
  482. package/skills/schmancy/timeline-tile.md +95 -0
  483. package/src/agent/agent-bundle.test.ts +71 -54
  484. package/src/agent/agent-entry.ts +5 -21
  485. package/src/agent/helpers.ts +159 -0
  486. package/src/agent/schmancy-skill.ts +71 -0
  487. package/src/agent/virtual-manifest.d.ts +1 -12
  488. package/src/area/area.component.ts +7 -19
  489. package/src/area/area.service.test.ts +4 -5
  490. package/src/area/area.service.ts +4 -3
  491. package/src/area/route.component.ts +17 -4
  492. package/src/area/utils.ts +3 -2
  493. package/src/audio/emotional-sounds.ts +0 -2
  494. package/src/audio/sound.service.ts +7 -13
  495. package/src/autocomplete/autocomplete.ts +18 -21
  496. package/src/{avatar.ts → avatar/avatar.ts} +2 -2
  497. package/src/avatar/index.ts +1 -0
  498. package/src/badge/badge.ts +4 -3
  499. package/src/boat/boat.ts +28 -36
  500. package/src/breadcrumb/breadcrumb.ts +11 -19
  501. package/src/busy/busy.ts +4 -3
  502. package/src/busy/spinner.ts +4 -3
  503. package/src/button/button.ts +6 -11
  504. package/src/button/icon-button.ts +8 -12
  505. package/src/card/actions.ts +4 -12
  506. package/src/card/card.ts +5 -23
  507. package/src/card/content.ts +4 -12
  508. package/src/card/media.ts +4 -9
  509. package/src/charts/area-chart.ts +7 -4
  510. package/src/charts/pills.ts +6 -4
  511. package/src/checkbox/checkbox.test.ts +2 -2
  512. package/src/checkbox/checkbox.ts +3 -9
  513. package/src/chips/assist-chip.ts +6 -14
  514. package/src/chips/chips.ts +7 -21
  515. package/src/chips/filter-chip.ts +4 -3
  516. package/src/chips/input-chip.ts +10 -9
  517. package/src/chips/suggestion-chip.ts +10 -12
  518. package/src/code-highlight/code-highlight.ts +28 -59
  519. package/src/code-highlight/code-preview.ts +11 -9
  520. package/src/connectivity/connectivity-status.ts +4 -3
  521. package/src/content-drawer/drawer.ts +5 -3
  522. package/src/content-drawer/main.ts +5 -3
  523. package/src/content-drawer/sheet.ts +6 -4
  524. package/src/date-range/date-range-dialog.ts +2 -2
  525. package/src/date-range/date-range.ts +3 -2
  526. package/src/delay/delay.ts +2 -2
  527. package/src/details/details.ts +4 -17
  528. package/src/dialog/dialog-service.ts +2 -0
  529. package/src/dialog/dialog.component.ts +9 -9
  530. package/src/directives/drag.ts +1 -9
  531. package/src/directives/index.ts +0 -1
  532. package/src/discovery/discovery.service.ts +1 -1
  533. package/src/divider/divider.ts +5 -14
  534. package/src/dropdown/dropdown-component.ts +5 -16
  535. package/src/dropdown/dropdown-content.ts +7 -14
  536. package/src/expand/expand-root.component.ts +5 -15
  537. package/src/expand/expand.component.ts +4 -17
  538. package/src/extra/countries/countries.ts +5 -13
  539. package/src/extra/timezone/timezone.ts +7 -12
  540. package/src/form/form.test.ts +2 -2
  541. package/src/form/form.ts +2 -9
  542. package/src/icons/icon.ts +4 -3
  543. package/src/iframe/iframe.ts +13 -4
  544. package/src/index.ts +3 -3
  545. package/src/input/input.ts +6 -13
  546. package/src/json/json.ts +4 -3
  547. package/src/kbd/kbd.ts +4 -3
  548. package/src/layout/index.ts +1 -5
  549. package/src/layout/scroll/scroll.ts +5 -8
  550. package/src/lightbox/flip-directive.ts +1 -1
  551. package/src/lightbox/lightbox.ts +5 -14
  552. package/src/list/list-item.ts +4 -13
  553. package/src/list/list.ts +12 -10
  554. package/src/mailbox/email-editor.ts +17 -11
  555. package/src/mailbox/email-layout-selector.ts +2 -2
  556. package/src/mailbox/email-recipients.ts +13 -8
  557. package/src/mailbox/email-template-picker.ts +6 -5
  558. package/src/mailbox/email-viewer.ts +5 -3
  559. package/src/mailbox/mailbox.ts +6 -5
  560. package/src/map/map.ts +8 -6
  561. package/src/menu/menu-item.ts +5 -16
  562. package/src/menu/menu.ts +27 -13
  563. package/src/nav-drawer/appbar.ts +4 -14
  564. package/src/nav-drawer/content.ts +5 -14
  565. package/src/nav-drawer/drawer.ts +5 -18
  566. package/src/nav-drawer/navbar.ts +3 -17
  567. package/src/navigation-bar/navigation-bar-item.ts +8 -6
  568. package/src/navigation-bar/navigation-bar.ts +19 -19
  569. package/src/navigation-rail/navigation-rail-item.ts +9 -5
  570. package/src/navigation-rail/navigation-rail.ts +10 -14
  571. package/src/notification/notification-service.ts +0 -2
  572. package/src/notification/notification.ts +6 -3
  573. package/src/option/option.ts +4 -3
  574. package/src/overlay/overlay.animations.ts +183 -37
  575. package/src/overlay/overlay.component.ts +397 -190
  576. package/src/overlay/overlay.confirm-body.ts +21 -7
  577. package/src/overlay/overlay.gestures.ts +72 -36
  578. package/src/overlay/overlay.layout.ts +103 -1
  579. package/src/overlay/overlay.positioning.ts +301 -0
  580. package/src/overlay/overlay.service.ts +81 -3
  581. package/src/overlay/overlay.stack.ts +8 -10
  582. package/src/overlay/overlay.types.ts +83 -5
  583. package/src/page/page.ts +16 -11
  584. package/src/payment-card-form/index.ts +1 -0
  585. package/src/{components/form-elements → payment-card-form}/payment-card-form.ts +23 -23
  586. package/src/progress/progress.ts +5 -3
  587. package/src/qr-scanner/qr-scanner.ts +7 -30
  588. package/src/radio-group/radio-button.ts +3 -13
  589. package/src/radio-group/radio-group.ts +5 -22
  590. package/src/range/range.ts +4 -3
  591. package/src/rxjs-utils/waitForElements.ts +1 -1
  592. package/src/rxjs-utils/waitForElementsAll.ts +1 -1
  593. package/src/select/select.ts +10 -18
  594. package/src/sheet/hook.ts +1 -1
  595. package/src/sheet/sheet.ts +5 -20
  596. package/src/skeleton/skeleton.ts +4 -3
  597. package/src/slider/slide.ts +5 -3
  598. package/src/slider/slider.ts +5 -3
  599. package/src/splash-screen/splash-screen.ts +5 -3
  600. package/src/state/CLAUDE.md +161 -0
  601. package/src/state/MIGRATION.md +258 -0
  602. package/src/state/SCOPING.md +134 -0
  603. package/src/state/active-host.ts +190 -0
  604. package/src/state/index.ts +877 -0
  605. package/src/state/persist.ts +208 -0
  606. package/src/state/schmancy-context.ts +130 -0
  607. package/src/state/state.test-d.ts +227 -0
  608. package/src/state/state.test.ts +868 -0
  609. package/src/steps/schmancy-step.ts +5 -3
  610. package/src/steps/schmancy-steps-container.ts +5 -3
  611. package/src/surface/surface.ts +14 -9
  612. package/src/switch/switch.test.ts +2 -2
  613. package/src/switch/switch.ts +8 -10
  614. package/src/table/row.ts +7 -4
  615. package/src/table/table.ts +17 -14
  616. package/src/tabs/index.ts +0 -2
  617. package/src/tabs/tab.ts +2 -2
  618. package/src/tabs/tabs-group.ts +7 -4
  619. package/src/teleport/teleport.component.ts +5 -3
  620. package/src/textarea/textarea.ts +6 -12
  621. package/src/theme/theme-audio-player.ts +7 -5
  622. package/src/theme/theme-controller.ts +2 -2
  623. package/src/theme/theme.component.ts +22 -15
  624. package/src/theme/theme.service.ts +6 -7
  625. package/src/theme/theme.style.css +1 -0
  626. package/src/theme-button/theme-button.ts +2 -2
  627. package/src/timeline/index.ts +1 -0
  628. package/src/timeline/timeline-tile.ts +431 -0
  629. package/src/tree/tree.ts +4 -16
  630. package/src/typewriter/index.ts +1 -1
  631. package/src/typography/typography.ts +5 -98
  632. package/src/utils/intersection.ts +5 -1
  633. package/src/utils/overlay-stack.ts +1 -1
  634. package/src/utils/search.ts +2 -2
  635. package/src/visually-hidden/visually-hidden.ts +4 -3
  636. package/src/window/window-position.ts +3 -6
  637. package/src/window/window.ts +9 -7
  638. package/types/mixins/SchmancyElement.d.ts +49 -0
  639. package/types/mixins/formField.mixin.d.ts +4 -2
  640. package/types/mixins/index.d.ts +1 -0
  641. package/types/mixins/litElement.mixin.d.ts +11 -0
  642. package/types/src/agent/agent-entry.d.ts +2 -19
  643. package/types/src/agent/helpers.d.ts +0 -27
  644. package/types/src/agent/schmancy-skill.d.ts +3 -5
  645. package/types/src/area/area.component.d.ts +3 -17
  646. package/types/src/area/route.component.d.ts +14 -4
  647. package/types/src/audio/emotional-sounds.d.ts +0 -1
  648. package/types/src/audio/sound.service.d.ts +1 -1
  649. package/types/src/autocomplete/autocomplete.d.ts +4 -15
  650. package/types/src/{avatar.d.ts → avatar/avatar.d.ts} +2 -3
  651. package/types/src/avatar/index.d.ts +1 -0
  652. package/types/src/badge/badge.d.ts +3 -3
  653. package/types/src/boat/boat.d.ts +3 -2
  654. package/types/src/breadcrumb/breadcrumb.d.ts +9 -19
  655. package/types/src/busy/busy.d.ts +3 -3
  656. package/types/src/busy/spinner.d.ts +3 -3
  657. package/types/src/button/button.d.ts +4 -10
  658. package/types/src/button/icon-button.d.ts +5 -11
  659. package/types/src/card/actions.d.ts +3 -12
  660. package/types/src/card/card.d.ts +4 -24
  661. package/types/src/card/content.d.ts +3 -12
  662. package/types/src/card/media.d.ts +3 -9
  663. package/types/src/charts/area-chart.d.ts +3 -3
  664. package/types/src/charts/pills.d.ts +3 -3
  665. package/types/src/checkbox/checkbox.d.ts +3 -10
  666. package/types/src/chips/assist-chip.d.ts +5 -15
  667. package/types/src/chips/chips.d.ts +3 -17
  668. package/types/src/chips/filter-chip.d.ts +3 -3
  669. package/types/src/chips/input-chip.d.ts +9 -10
  670. package/types/src/chips/suggestion-chip.d.ts +9 -13
  671. package/types/src/code-highlight/code-highlight.d.ts +4 -11
  672. package/types/src/code-highlight/code-preview.d.ts +3 -3
  673. package/types/src/connectivity/connectivity-status.d.ts +3 -3
  674. package/types/src/content-drawer/drawer.d.ts +4 -4
  675. package/types/src/content-drawer/main.d.ts +3 -3
  676. package/types/src/content-drawer/sheet.d.ts +4 -4
  677. package/types/src/date-range/date-range-dialog.d.ts +2 -3
  678. package/types/src/date-range/date-range.d.ts +2 -3
  679. package/types/src/delay/delay.d.ts +2 -3
  680. package/types/src/details/details.d.ts +3 -14
  681. package/types/src/dialog/dialog.component.d.ts +9 -9
  682. package/types/src/directives/drag.d.ts +1 -3
  683. package/types/src/directives/index.d.ts +0 -1
  684. package/types/src/divider/divider.d.ts +3 -14
  685. package/types/src/dropdown/dropdown-component.d.ts +4 -17
  686. package/types/src/dropdown/dropdown-content.d.ts +6 -14
  687. package/types/src/expand/expand-root.component.d.ts +4 -14
  688. package/types/src/expand/expand.component.d.ts +3 -17
  689. package/types/src/extra/countries/countries.d.ts +3 -13
  690. package/types/src/extra/timezone/timezone.d.ts +4 -11
  691. package/types/src/form/form.d.ts +2 -9
  692. package/types/src/icons/icon.d.ts +3 -3
  693. package/types/src/iframe/iframe.d.ts +5 -3
  694. package/types/src/index.d.ts +3 -3
  695. package/types/src/input/input.d.ts +4 -11
  696. package/types/src/json/json.d.ts +3 -3
  697. package/types/src/kbd/kbd.d.ts +3 -3
  698. package/types/src/layout/index.d.ts +0 -4
  699. package/types/src/layout/scroll/scroll.d.ts +4 -8
  700. package/types/src/lightbox/lightbox.d.ts +3 -14
  701. package/types/src/list/list-item.d.ts +3 -13
  702. package/types/src/list/list.d.ts +11 -10
  703. package/types/src/mailbox/email-editor.d.ts +3 -3
  704. package/types/src/mailbox/email-layout-selector.d.ts +2 -3
  705. package/types/src/mailbox/email-recipients.d.ts +7 -3
  706. package/types/src/mailbox/email-template-picker.d.ts +4 -4
  707. package/types/src/mailbox/email-viewer.d.ts +3 -3
  708. package/types/src/mailbox/mailbox.d.ts +4 -4
  709. package/types/src/map/map.d.ts +4 -3
  710. package/types/src/menu/menu-item.d.ts +3 -16
  711. package/types/src/menu/menu.d.ts +25 -13
  712. package/types/src/nav-drawer/appbar.d.ts +3 -14
  713. package/types/src/nav-drawer/content.d.ts +3 -14
  714. package/types/src/nav-drawer/drawer.d.ts +3 -18
  715. package/types/src/nav-drawer/navbar.d.ts +3 -18
  716. package/types/src/navigation-bar/navigation-bar-item.d.ts +7 -6
  717. package/types/src/navigation-bar/navigation-bar.d.ts +13 -7
  718. package/types/src/navigation-rail/navigation-rail-item.d.ts +9 -6
  719. package/types/src/navigation-rail/navigation-rail.d.ts +10 -15
  720. package/types/src/notification/notification-service.d.ts +0 -1
  721. package/types/src/notification/notification.d.ts +3 -3
  722. package/types/src/option/option.d.ts +3 -3
  723. package/types/src/overlay/overlay.animations.d.ts +54 -6
  724. package/types/src/overlay/overlay.component.d.ts +39 -15
  725. package/types/src/overlay/overlay.confirm-body.d.ts +4 -4
  726. package/types/src/overlay/overlay.gestures.d.ts +26 -17
  727. package/types/src/overlay/overlay.layout.d.ts +27 -1
  728. package/types/src/overlay/overlay.positioning.d.ts +87 -0
  729. package/types/src/overlay/overlay.stack.d.ts +0 -2
  730. package/types/src/overlay/overlay.types.d.ts +59 -5
  731. package/types/src/page/page.d.ts +14 -11
  732. package/types/src/{components/form-elements → payment-card-form}/payment-card-form.d.ts +2 -3
  733. package/types/src/progress/progress.d.ts +3 -3
  734. package/types/src/qr-scanner/qr-scanner.d.ts +3 -3
  735. package/types/src/radio-group/radio-button.d.ts +3 -12
  736. package/types/src/radio-group/radio-group.d.ts +4 -20
  737. package/types/src/range/range.d.ts +3 -3
  738. package/types/src/rxjs-utils/waitForElements.d.ts +1 -1
  739. package/types/src/rxjs-utils/waitForElementsAll.d.ts +1 -1
  740. package/types/src/select/select.d.ts +4 -15
  741. package/types/src/sheet/sheet.d.ts +3 -20
  742. package/types/src/skeleton/skeleton.d.ts +3 -3
  743. package/types/src/slider/slide.d.ts +3 -2
  744. package/types/src/slider/slider.d.ts +3 -3
  745. package/types/src/splash-screen/splash-screen.d.ts +3 -3
  746. package/types/src/state/active-host.d.ts +23 -0
  747. package/types/src/state/index.d.ts +145 -0
  748. package/types/src/state/persist.d.ts +14 -0
  749. package/types/src/state/schmancy-context.d.ts +32 -0
  750. package/types/src/state/state.test-d.d.ts +131 -0
  751. package/types/src/state/state.test.d.ts +1 -0
  752. package/types/src/steps/schmancy-step.d.ts +3 -3
  753. package/types/src/steps/schmancy-steps-container.d.ts +3 -3
  754. package/types/src/surface/surface.d.ts +13 -5
  755. package/types/src/switch/switch.d.ts +7 -11
  756. package/types/src/table/row.d.ts +2 -3
  757. package/types/src/table/table.d.ts +4 -11
  758. package/types/src/tabs/index.d.ts +0 -2
  759. package/types/src/tabs/tab.d.ts +2 -3
  760. package/types/src/tabs/tabs-group.d.ts +3 -3
  761. package/types/src/teleport/teleport.component.d.ts +3 -3
  762. package/types/src/textarea/textarea.d.ts +5 -12
  763. package/types/src/theme/theme-audio-player.d.ts +3 -3
  764. package/types/src/theme/theme-controller.d.ts +2 -2
  765. package/types/src/theme/theme.component.d.ts +18 -13
  766. package/types/src/theme-button/theme-button.d.ts +2 -3
  767. package/types/src/timeline/index.d.ts +1 -0
  768. package/types/src/timeline/timeline-tile.d.ts +44 -0
  769. package/types/src/tree/tree.d.ts +3 -16
  770. package/types/src/typewriter/index.d.ts +1 -1
  771. package/types/src/typography/typography.d.ts +3 -36
  772. package/types/src/visually-hidden/visually-hidden.d.ts +3 -3
  773. package/types/src/window/window.d.ts +3 -3
  774. package/dist/agent/index.es-Dymj8REP.js +0 -489
  775. package/dist/agent/index.es-Dymj8REP.js.map +0 -1
  776. package/dist/area-BGBCMC79.js.map +0 -1
  777. package/dist/area-D7l9KR2N.cjs +0 -12
  778. package/dist/area-D7l9KR2N.cjs.map +0 -1
  779. package/dist/autocomplete-BPD5uraA.cjs +0 -115
  780. package/dist/autocomplete-BPD5uraA.cjs.map +0 -1
  781. package/dist/autocomplete-C2P0Soht.js.map +0 -1
  782. package/dist/boat-BkIO-0No.cjs +0 -80
  783. package/dist/boat-BkIO-0No.cjs.map +0 -1
  784. package/dist/boat-DXZ0k7oa.js.map +0 -1
  785. package/dist/busy-DGYhpTnO.cjs.map +0 -1
  786. package/dist/busy-iRjq6Nvd.js.map +0 -1
  787. package/dist/card-DjYnCckw.cjs.map +0 -1
  788. package/dist/card-wUTjx0EC.js.map +0 -1
  789. package/dist/checkbox-CiYEtw9F.cjs +0 -39
  790. package/dist/checkbox-CiYEtw9F.cjs.map +0 -1
  791. package/dist/checkbox-VBSenxgb.js.map +0 -1
  792. package/dist/chips-BDS9lkPa.js.map +0 -1
  793. package/dist/chips-D6ptH5re.cjs.map +0 -1
  794. package/dist/code-highlight-Bi91XHJN.js.map +0 -1
  795. package/dist/code-highlight-BzRmBZzz.cjs.map +0 -1
  796. package/dist/components-DkmEgyAc.cjs +0 -73
  797. package/dist/components.cjs +0 -1
  798. package/dist/components.js +0 -2
  799. package/dist/context-BerzpUhI.js +0 -3
  800. package/dist/context-C6dHUHhi.cjs +0 -1
  801. package/dist/date-range-BmFxTXiU.cjs +0 -131
  802. package/dist/date-range-BmFxTXiU.cjs.map +0 -1
  803. package/dist/date-range-ClTMg1AB.js.map +0 -1
  804. package/dist/date-range-inline-B9Dp2z6C.cjs +0 -43
  805. package/dist/delay-BHODnTg-.cjs +0 -9
  806. package/dist/delay-BHODnTg-.cjs.map +0 -1
  807. package/dist/delay-Dlk0A3he.js +0 -347
  808. package/dist/delay-Dlk0A3he.js.map +0 -1
  809. package/dist/details-CPjlqQD4.js.map +0 -1
  810. package/dist/details-Cz9ok9si.cjs.map +0 -1
  811. package/dist/dialog-service-CzDO08Gy.cjs.map +0 -1
  812. package/dist/dialog-service-DH-tjPuE.js.map +0 -1
  813. package/dist/divider-CILo3_vi.cjs.map +0 -1
  814. package/dist/divider-ghgyw5CU.js.map +0 -1
  815. package/dist/expand-CbjBr_Ds.js.map +0 -1
  816. package/dist/expand-r3OrSoDk.cjs +0 -141
  817. package/dist/expand-r3OrSoDk.cjs.map +0 -1
  818. package/dist/extra-BZeZOMBI.cjs.map +0 -1
  819. package/dist/extra-DK9MQtPJ.js.map +0 -1
  820. package/dist/float-CuZ8LOgB.cjs +0 -1
  821. package/dist/flow-BPDtbhLe.js +0 -386
  822. package/dist/flow-BPDtbhLe.js.map +0 -1
  823. package/dist/flow-Dn9AZktE.cjs +0 -1
  824. package/dist/flow-Dn9AZktE.cjs.map +0 -1
  825. package/dist/form-rCZqoAoK.js.map +0 -1
  826. package/dist/form-wI58M85H.cjs.map +0 -1
  827. package/dist/handover/agent-runtime-v2-loopback.md +0 -71
  828. package/dist/handover/claude-design-v2-paste.md +0 -42
  829. package/dist/icons-Drq4kKy2.js.map +0 -1
  830. package/dist/icons-DtdhaZdc.cjs +0 -52
  831. package/dist/icons-DtdhaZdc.cjs.map +0 -1
  832. package/dist/iframe-BkwwWIbQ.cjs +0 -24
  833. package/dist/iframe-BkwwWIbQ.cjs.map +0 -1
  834. package/dist/iframe-BmyHW8km.js.map +0 -1
  835. package/dist/index.es-BgmFX1JM.cjs +0 -1
  836. package/dist/index.es-BgmFX1JM.cjs.map +0 -1
  837. package/dist/index.es-CLyb_o3Y.js +0 -489
  838. package/dist/index.es-CLyb_o3Y.js.map +0 -1
  839. package/dist/input-BGNZlfL8.cjs +0 -51
  840. package/dist/input-BGNZlfL8.cjs.map +0 -1
  841. package/dist/input-Bc3bVISm.js.map +0 -1
  842. package/dist/input-chip-BQrjpjaQ.js.map +0 -1
  843. package/dist/input-chip-DN-cwf11.cjs.map +0 -1
  844. package/dist/intersection-BrXp4YTO.js +0 -12
  845. package/dist/intersection-BrXp4YTO.js.map +0 -1
  846. package/dist/intersection-DqBqnpgh.cjs +0 -1
  847. package/dist/intersection-DqBqnpgh.cjs.map +0 -1
  848. package/dist/layout-7eyMBmZk.cjs +0 -17
  849. package/dist/layout-7eyMBmZk.cjs.map +0 -1
  850. package/dist/layout-Ox6nJkzC.js +0 -268
  851. package/dist/layout-Ox6nJkzC.js.map +0 -1
  852. package/dist/lightbox-CY52Z_ig.js.map +0 -1
  853. package/dist/lightbox-H8Uq3AXy.cjs +0 -202
  854. package/dist/lightbox-H8Uq3AXy.cjs.map +0 -1
  855. package/dist/list-BGjVo6zb.cjs +0 -40
  856. package/dist/list-BGjVo6zb.cjs.map +0 -1
  857. package/dist/list-D7wUxu1C.js.map +0 -1
  858. package/dist/litElement.mixin-CszkJuNl.js +0 -12
  859. package/dist/litElement.mixin-CszkJuNl.js.map +0 -1
  860. package/dist/litElement.mixin-qh5-IIUq.cjs +0 -1
  861. package/dist/litElement.mixin-qh5-IIUq.cjs.map +0 -1
  862. package/dist/mailbox--EN-JhjV.js.map +0 -1
  863. package/dist/mailbox-DLiBGJhY.cjs.map +0 -1
  864. package/dist/map-B0S_q3ma.js.map +0 -1
  865. package/dist/map-EDQN0I6e.cjs +0 -80
  866. package/dist/map-EDQN0I6e.cjs.map +0 -1
  867. package/dist/menu-3edZGQ1x.cjs.map +0 -1
  868. package/dist/menu-COeFpb6n.js.map +0 -1
  869. package/dist/metric.cjs +0 -69
  870. package/dist/metric.cjs.map +0 -1
  871. package/dist/metric.js +0 -93
  872. package/dist/metric.js.map +0 -1
  873. package/dist/mixins.cjs.map +0 -1
  874. package/dist/mixins.js.map +0 -1
  875. package/dist/notification-CC-TFN5v.js.map +0 -1
  876. package/dist/notification-P4c-kFdH.cjs +0 -23
  877. package/dist/notification-P4c-kFdH.cjs.map +0 -1
  878. package/dist/option-BwAF4nAw.js.map +0 -1
  879. package/dist/option-Cu0ertuF.cjs +0 -43
  880. package/dist/option-Cu0ertuF.cjs.map +0 -1
  881. package/dist/progress-Bk_Q1Shy.js.map +0 -1
  882. package/dist/progress-Yz6EMNSu.cjs.map +0 -1
  883. package/dist/provide-CYgj58u_.cjs +0 -1
  884. package/dist/provide-CYgj58u_.cjs.map +0 -1
  885. package/dist/provide-ydIskwf2.js +0 -107
  886. package/dist/provide-ydIskwf2.js.map +0 -1
  887. package/dist/radio-group-BcdcjLNC.js.map +0 -1
  888. package/dist/radio-group-BpBz5tRA.cjs +0 -40
  889. package/dist/radio-group-BpBz5tRA.cjs.map +0 -1
  890. package/dist/scroll-DXQv0ejL.js.map +0 -1
  891. package/dist/scroll-DbZMTv0K.cjs +0 -26
  892. package/dist/scroll-DbZMTv0K.cjs.map +0 -1
  893. package/dist/search-CwMav5QB.cjs +0 -1
  894. package/dist/select-BV4lK2zy.cjs.map +0 -1
  895. package/dist/select-DKyGWDsG.js.map +0 -1
  896. package/dist/sheet-BAI_jH1t.cjs +0 -35
  897. package/dist/sheet-BAI_jH1t.cjs.map +0 -1
  898. package/dist/sheet-C3TLKItO.js.map +0 -1
  899. package/dist/sheet.service-RcDBwHmv.cjs +0 -1
  900. package/dist/skills/schmancy/store.md +0 -126
  901. package/dist/skills/store.md +0 -126
  902. package/dist/sound.service-BEN6Xjy_.cjs +0 -1
  903. package/dist/sound.service-BEN6Xjy_.cjs.map +0 -1
  904. package/dist/sound.service-DWZe6swU.js.map +0 -1
  905. package/dist/splash-screen-DbI5RgBf.js.map +0 -1
  906. package/dist/splash-screen-DoHRTHi8.cjs +0 -41
  907. package/dist/splash-screen-DoHRTHi8.cjs.map +0 -1
  908. package/dist/src-00DfxCJq.js.map +0 -1
  909. package/dist/src-C_JjQovE.cjs +0 -269
  910. package/dist/src-C_JjQovE.cjs.map +0 -1
  911. package/dist/store-CjFHCSDb.cjs +0 -1
  912. package/dist/store-CjFHCSDb.cjs.map +0 -1
  913. package/dist/store-CjzZDQt8.js +0 -1654
  914. package/dist/store-CjzZDQt8.js.map +0 -1
  915. package/dist/store.cjs +0 -1
  916. package/dist/store.js +0 -2
  917. package/dist/surface-D-GWBcsh.cjs +0 -7
  918. package/dist/surface-D-GWBcsh.cjs.map +0 -1
  919. package/dist/surface-D23JtxYP.js +0 -22
  920. package/dist/surface-D23JtxYP.js.map +0 -1
  921. package/dist/surface.mixin-DqMwoddO.js +0 -320
  922. package/dist/surface.mixin-DqMwoddO.js.map +0 -1
  923. package/dist/surface.mixin-DxOi-xo0.cjs +0 -297
  924. package/dist/surface.mixin-DxOi-xo0.cjs.map +0 -1
  925. package/dist/table-C7b73kdg.cjs +0 -63
  926. package/dist/table-C7b73kdg.cjs.map +0 -1
  927. package/dist/table-CTrhV9-k.js +0 -631
  928. package/dist/table-CTrhV9-k.js.map +0 -1
  929. package/dist/tabs-Ce55RbwF.js.map +0 -1
  930. package/dist/tabs-DAzB8O7w.cjs +0 -31
  931. package/dist/tabs-DAzB8O7w.cjs.map +0 -1
  932. package/dist/tailwind.mixin-DRI1oTYQ.cjs +0 -2
  933. package/dist/tailwind.mixin-DRI1oTYQ.cjs.map +0 -1
  934. package/dist/tailwind.mixin-mdQR3BEO.js +0 -219
  935. package/dist/tailwind.mixin-mdQR3BEO.js.map +0 -1
  936. package/dist/textarea-DjN1D9u0.js.map +0 -1
  937. package/dist/textarea-PuHxBvJA.cjs +0 -39
  938. package/dist/textarea-PuHxBvJA.cjs.map +0 -1
  939. package/dist/theme-B-IJ2r7Q.cjs +0 -181
  940. package/dist/theme-button-BSbYmS4p.cjs +0 -8
  941. package/dist/theme-button-BSbYmS4p.cjs.map +0 -1
  942. package/dist/theme-button-CEMeAUOL.js.map +0 -1
  943. package/dist/theme.service-DxJPUGlu.cjs +0 -1
  944. package/dist/theme.service-DxJPUGlu.cjs.map +0 -1
  945. package/dist/theme.service-cOfPrtfe.js.map +0 -1
  946. package/dist/tslib.es6-Cnt75pb6.cjs +0 -1
  947. package/dist/tslib.es6-Cnt75pb6.cjs.map +0 -1
  948. package/dist/tslib.es6-DMzzJKHV.js +0 -7
  949. package/dist/tslib.es6-DMzzJKHV.js.map +0 -1
  950. package/dist/utils-Bp2jhyZc.js.map +0 -1
  951. package/dist/utils-CBPQvxNW.cjs +0 -1
  952. package/dist/utils-CBPQvxNW.cjs.map +0 -1
  953. package/dist/window-CrjZdf7Y.js.map +0 -1
  954. package/dist/window-DTUARSrU.cjs +0 -59
  955. package/dist/window-DTUARSrU.cjs.map +0 -1
  956. package/skills/schmancy/store.md +0 -126
  957. package/src/components/form-elements/index.ts +0 -1
  958. package/src/components/index.ts +0 -1
  959. package/src/layout/flex/flex.scss +0 -4
  960. package/src/layout/flex/flex.ts +0 -74
  961. package/src/layout/flex/index.ts +0 -1
  962. package/src/layout/grid/.readme +0 -79
  963. package/src/layout/grid/grid.scss +0 -5
  964. package/src/layout/grid/grid.ts +0 -121
  965. package/src/layout/grid/index.ts +0 -1
  966. package/src/layout/layout.ts +0 -122
  967. package/src/layout/v2/flex.ts +0 -243
  968. package/src/layout/v2/index.ts +0 -1
  969. package/src/metric/index.ts +0 -1
  970. package/src/metric/metric.ts +0 -127
  971. package/src/store/context-array.ts +0 -358
  972. package/src/store/context-collection.ts +0 -218
  973. package/src/store/context-create.ts +0 -284
  974. package/src/store/context-object.ts +0 -298
  975. package/src/store/filter-directive.ts +0 -614
  976. package/src/store/index.ts +0 -10
  977. package/src/store/selector-hook.ts +0 -259
  978. package/src/store/selectors.ts +0 -289
  979. package/src/store/storage-manager.ts +0 -269
  980. package/src/store/store.class.ts +0 -239
  981. package/src/store/types.ts +0 -327
  982. package/src/tabs/tabs-compatibility.ts +0 -20
  983. package/src/typewriter/typewriter.ts +0 -410
  984. package/types/src/agent/index.d.ts +0 -1
  985. package/types/src/area/route.test.d.ts +0 -20
  986. package/types/src/button/button.test.d.ts +0 -1
  987. package/types/src/chips/chip.d.ts +0 -3
  988. package/types/src/components/index.d.ts +0 -1
  989. package/types/src/content-drawer/$sheet.d.ts +0 -14
  990. package/types/src/dialog/dailog.d.ts +0 -116
  991. package/types/src/dialog/dialog-content.d.ts +0 -17
  992. package/types/src/directives/guard.d.ts +0 -1
  993. package/types/src/directives/visibility.d.ts +0 -11
  994. package/types/src/form/form-v2.d.ts +0 -22
  995. package/types/src/input/input-v2.d.ts +0 -250
  996. package/types/src/layout/flex/flex.d.ts +0 -26
  997. package/types/src/layout/flex/index.d.ts +0 -1
  998. package/types/src/layout/grid/grid.d.ts +0 -39
  999. package/types/src/layout/grid/index.d.ts +0 -1
  1000. package/types/src/layout/layout.d.ts +0 -59
  1001. package/types/src/layout/v2/flex.d.ts +0 -65
  1002. package/types/src/layout/v2/grid.d.ts +0 -51
  1003. package/types/src/layout/v2/index.d.ts +0 -1
  1004. package/types/src/lightbox/flip.directive.d.ts +0 -22
  1005. package/types/src/metric/index.d.ts +0 -1
  1006. package/types/src/metric/metric.d.ts +0 -39
  1007. package/types/src/notification/outlet.d.ts +0 -10
  1008. package/types/src/sheet/header.d.ts +0 -10
  1009. package/types/src/store/context-array.d.ts +0 -83
  1010. package/types/src/store/context-collection.d.ts +0 -74
  1011. package/types/src/store/context-create.d.ts +0 -43
  1012. package/types/src/store/context-object.d.ts +0 -46
  1013. package/types/src/store/filter-directive.d.ts +0 -116
  1014. package/types/src/store/immer-integration.d.ts +0 -54
  1015. package/types/src/store/index.d.ts +0 -10
  1016. package/types/src/store/selector-hook.d.ts +0 -46
  1017. package/types/src/store/selectors.d.ts +0 -90
  1018. package/types/src/store/storage-manager.d.ts +0 -48
  1019. package/types/src/store/store.class.d.ts +0 -73
  1020. package/types/src/store/types.d.ts +0 -241
  1021. package/types/src/tabs/tabs-compatibility.d.ts +0 -13
  1022. package/types/src/theme/theme.elevation.d.ts +0 -131
  1023. package/types/src/theme/theme.motion.d.ts +0 -198
  1024. package/types/src/theme/theme.shape.d.ts +0 -144
  1025. package/types/src/theme/theme.state.d.ts +0 -546
  1026. package/types/src/theme/theme.typography.d.ts +0 -74
  1027. package/types/src/tooltip/tooltip.d.ts +0 -33
  1028. package/types/src/typewriter/typewriter.d.ts +0 -94
  1029. /package/dist/agent/{flow-CvG1fLW5.js → flow-CaPi2G8y.js} +0 -0
  1030. /package/dist/agent/{vendor-material-color-DcL7ZPxx.js → vendor-material-color-Be96dpGE.js} +0 -0
  1031. /package/dist/{animation-hXFClrIn.js → animation-BK-8BwY8.js} +0 -0
  1032. /package/dist/{animation-CQRdLgzX.cjs → animation-CO_Csq84.cjs} +0 -0
  1033. /package/dist/{decorate-D_utPUsC.js → decorate-23nYs4Le.js} +0 -0
  1034. /package/dist/{decorate-F9CuyeHg.cjs → decorate-DpFmy0nm.cjs} +0 -0
  1035. /package/dist/{hashContent-B2IntJQf.js → hashContent-1ARKIsx9.js} +0 -0
  1036. /package/dist/{hashContent-CahnEuut.cjs → hashContent-Bp5S6T4U.cjs} +0 -0
  1037. /package/dist/{lazy-D6R5N5v4.js → lazy-B0ia54tT.js} +0 -0
  1038. /package/dist/{lazy-BDNnH_r7.cjs → lazy-Dq9mRRjT.cjs} +0 -0
  1039. /package/dist/{reduced-motion-BZTLqAyl.js → reduced-motion-D-L12p7G.js} +0 -0
  1040. /package/dist/{reduced-motion-9RjNnhIg.cjs → reduced-motion-Ds-HjMzn.cjs} +0 -0
  1041. /package/dist/{rxjs-utils-DJbZRjp3.cjs → rxjs-utils-Csnks202.cjs} +0 -0
  1042. /package/dist/{rxjs-utils-CKTnEKUH.js → rxjs-utils-d-ivVN84.js} +0 -0
  1043. /package/dist/{theme.events-NuihzD_p.js → theme.events-Cv7N4Toe.js} +0 -0
  1044. /package/dist/{theme.events-DakXxZeP.cjs → theme.events-DM4H5F2d.cjs} +0 -0
  1045. /package/dist/{theme.interface-DTwkuAKJ.cjs → theme.interface-D9l33b-M.cjs} +0 -0
  1046. /package/dist/{theme.interface-Buged9Cg.js → theme.interface-DnVNre4O.js} +0 -0
  1047. /package/src/{directives/typewriter.ts → typewriter/typewriter.directive.ts} +0 -0
  1048. /package/types/src/{components/form-elements → payment-card-form}/index.d.ts +0 -0
  1049. /package/types/src/{directives/typewriter.d.ts → typewriter/typewriter.directive.d.ts} +0 -0
@@ -1,91 +1,16 @@
1
- import { t as e } from "./tailwind.mixin-mdQR3BEO.js";
2
- import { t } from "./decorate-D_utPUsC.js";
1
+ import { s as e } from "./mixins-CcIWET41.js";
2
+ import { t } from "./decorate-23nYs4Le.js";
3
3
  import { fromEvent as n } from "rxjs";
4
4
  import { filter as r, takeUntil as i, tap as a } from "rxjs/operators";
5
5
  import { customElement as o, property as s } from "lit/decorators.js";
6
6
  import { css as c, html as l } from "lit";
7
7
  import { createRef as u, ref as d } from "lit/directives/ref.js";
8
- import { html as f, literal as p } from "lit/static-html.js";
9
- var m = {
10
- display: {
11
- type: "display",
12
- token: "lg"
13
- },
14
- "display-lg": {
15
- type: "display",
16
- token: "lg"
17
- },
18
- "display-md": {
19
- type: "display",
20
- token: "md"
21
- },
22
- "display-sm": {
23
- type: "display",
24
- token: "sm"
25
- },
26
- "heading-lg": {
27
- type: "headline",
28
- token: "lg"
29
- },
30
- "heading-md": {
31
- type: "headline",
32
- token: "md"
33
- },
34
- "heading-sm": {
35
- type: "headline",
36
- token: "sm"
37
- },
38
- "title-lg": {
39
- type: "title",
40
- token: "lg"
41
- },
42
- "title-md": {
43
- type: "title",
44
- token: "md"
45
- },
46
- "title-sm": {
47
- type: "title",
48
- token: "sm"
49
- },
50
- "body-lg": {
51
- type: "body",
52
- token: "lg"
53
- },
54
- "body-md": {
55
- type: "body",
56
- token: "md"
57
- },
58
- "body-sm": {
59
- type: "body",
60
- token: "sm"
61
- },
62
- "label-lg": {
63
- type: "label",
64
- token: "lg"
65
- },
66
- "label-md": {
67
- type: "label",
68
- token: "md"
69
- },
70
- "label-sm": {
71
- type: "label",
72
- token: "sm"
73
- },
74
- caption: {
75
- type: "label",
76
- token: "sm"
77
- }
78
- }, h = {
79
- h1: p`h1`,
80
- h2: p`h2`,
81
- h3: p`h3`,
82
- h4: p`h4`,
83
- h5: p`h5`,
84
- h6: p`h6`,
85
- p: p`p`,
86
- span: p`span`,
87
- div: p`div`
88
- }, g = class extends e(c`
8
+ var f = class extends e {
9
+ constructor(...e) {
10
+ super(...e), this.type = "body", this.token = "md", this.editable = !1, this.value = "", this.placeholder = "", this._editRef = u();
11
+ }
12
+ static {
13
+ this.styles = [c`
89
14
  :host {
90
15
  display: block;
91
16
  font-family: inherit;
@@ -361,9 +286,7 @@ var m = {
361
286
  display: block;
362
287
  opacity: 0.35;
363
288
  }
364
- `) {
365
- constructor(...e) {
366
- super(...e), this.type = "body", this.token = "md", this.editable = !1, this.value = "", this.placeholder = "", this._editRef = u();
289
+ `];
367
290
  }
368
291
  static {
369
292
  this.shadowRootOptions = {
@@ -371,12 +294,6 @@ var m = {
371
294
  delegatesFocus: !0
372
295
  };
373
296
  }
374
- willUpdate(e) {
375
- if (super.willUpdate?.(e), e.has("preset") && this.preset && m[this.preset]) {
376
- let { type: e, token: t } = m[this.preset];
377
- this.type = e, this.token = t;
378
- }
379
- }
380
297
  selectAll() {
381
298
  let e = this._editRef.value;
382
299
  if (!e) return;
@@ -411,42 +328,31 @@ var m = {
411
328
  }
412
329
  }
413
330
  render() {
414
- if (this.editable) return l`<div
331
+ return this.editable ? l`<div
415
332
  ${d(this._editRef)}
416
333
  class="edit"
417
334
  contenteditable="true"
418
335
  data-placeholder=${this.placeholder ?? ""}
419
- ></div>`;
420
- if (this.as && h[this.as]) {
421
- let e = h[this.as];
422
- return f`<${e}><slot></slot></${e}>`;
423
- }
424
- return l`<slot></slot>`;
336
+ ></div>` : l`<slot></slot>`;
425
337
  }
426
338
  };
427
339
  t([s({
428
340
  type: String,
429
341
  reflect: !0
430
- })], g.prototype, "type", void 0), t([s({
431
- type: String,
432
- reflect: !0
433
- })], g.prototype, "preset", void 0), t([s({
434
- type: String,
435
- reflect: !0
436
- })], g.prototype, "as", void 0), t([s({
342
+ })], f.prototype, "type", void 0), t([s({
437
343
  type: String,
438
344
  reflect: !0
439
- })], g.prototype, "token", void 0), t([s({
345
+ })], f.prototype, "token", void 0), t([s({
440
346
  type: String,
441
347
  reflect: !0
442
- })], g.prototype, "align", void 0), t([s({
348
+ })], f.prototype, "align", void 0), t([s({
443
349
  type: String,
444
350
  reflect: !0
445
- })], g.prototype, "weight", void 0), t([s({
351
+ })], f.prototype, "weight", void 0), t([s({
446
352
  type: String,
447
353
  reflect: !0
448
- })], g.prototype, "transform", void 0), t([s({ type: Number })], g.prototype, "maxLines", void 0), t([s({
354
+ })], f.prototype, "transform", void 0), t([s({ type: Number })], f.prototype, "maxLines", void 0), t([s({
449
355
  type: Boolean,
450
356
  reflect: !0
451
- })], g.prototype, "editable", void 0), t([s({ type: String })], g.prototype, "value", void 0), t([s({ type: String })], g.prototype, "placeholder", void 0), g = t([o("schmancy-typography")], g);
452
- export { g as SchmancyTypography };
357
+ })], f.prototype, "editable", void 0), t([s({ type: String })], f.prototype, "value", void 0), t([s({ type: String })], f.prototype, "placeholder", void 0), f = t([o("schmancy-typography")], f);
358
+ export { f as SchmancyTypography };
@@ -1 +1 @@
1
- {"version":3,"file":"typography.js","names":[],"sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html, type PropertyValues } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { html as staticHtml, literal } from 'lit/static-html.js'\nimport { fromEvent } from 'rxjs'\nimport { filter, tap, takeUntil } from 'rxjs/operators'\n\n/**\n * Preset → (type, token) shorthand. Saves the two-decision-per-text-node\n * fatigue that 50+ typography nodes in a single page cause.\n */\nexport type TypographyPreset =\n\t| 'display' | 'display-lg' | 'display-md' | 'display-sm'\n\t| 'heading-lg' | 'heading-md' | 'heading-sm'\n\t| 'title-lg' | 'title-md' | 'title-sm'\n\t| 'body-lg' | 'body-md' | 'body-sm'\n\t| 'label-lg' | 'label-md' | 'label-sm'\n\t| 'caption'\n\nconst PRESET_MAP: Record<TypographyPreset, { type: string; token: string }> = {\n\t'display': { type: 'display', token: 'lg' },\n\t'display-lg': { type: 'display', token: 'lg' },\n\t'display-md': { type: 'display', token: 'md' },\n\t'display-sm': { type: 'display', token: 'sm' },\n\t'heading-lg': { type: 'headline', token: 'lg' },\n\t'heading-md': { type: 'headline', token: 'md' },\n\t'heading-sm': { type: 'headline', token: 'sm' },\n\t'title-lg': { type: 'title', token: 'lg' },\n\t'title-md': { type: 'title', token: 'md' },\n\t'title-sm': { type: 'title', token: 'sm' },\n\t'body-lg': { type: 'body', token: 'lg' },\n\t'body-md': { type: 'body', token: 'md' },\n\t'body-sm': { type: 'body', token: 'sm' },\n\t'label-lg': { type: 'label', token: 'lg' },\n\t'label-md': { type: 'label', token: 'md' },\n\t'label-sm': { type: 'label', token: 'sm' },\n\t'caption': { type: 'label', token: 'sm' },\n}\n\n/**\n * Allowed semantic tag names for the `as` prop. Closed enum so we can\n * use `literal` template parts safely with `lit/static-html`.\n */\nexport type TypographyTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div'\n\nconst TAG_LITERALS: Record<TypographyTag, ReturnType<typeof literal>> = {\n\th1: literal`h1`,\n\th2: literal`h2`,\n\th3: literal`h3`,\n\th4: literal`h4`,\n\th5: literal`h5`,\n\th6: literal`h6`,\n\tp: literal`p`,\n\tspan: literal`span`,\n\tdiv: literal`div`,\n}\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n * @fires change - When `editable` is true, fires on blur or Enter with `detail.value` set to the new text content. Not fired when `editable` is unset (the default).\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Type-based weight defaults (when using Tailwind classes without token) */\n\t:host([type='display']),\n\t:host([type='headline']),\n\t:host([type='body']) {\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='label']),\n\t:host([type='subtitle']),\n\t:host([type='title']) {\n\t\tfont-weight: 500;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n\n\t:host([editable]) {\n\t\tcursor: text;\n\t\tborder-radius: 4px;\n\t\ttransition: background 150ms;\n\t\tmin-height: 1em;\n\t}\n\t/* Editable div lives in shadow DOM so light DOM (Lit markers) is untouched */\n\t.edit {\n\t\toutline: none;\n\t\tmin-height: 1em;\n\t\tfont: inherit;\n\t\tcolor: inherit;\n\t\tletter-spacing: inherit;\n\t\tline-height: inherit;\n\t}\n\t.edit:empty::before {\n\t\tcontent: attr(data-placeholder);\n\t\tpointer-events: none;\n\t\tdisplay: block;\n\t\topacity: 0.35;\n\t}\n`) {\n\tstatic shadowRootOptions: ShadowRootInit = {\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * Shorthand for picking a (type, token) pair in one go. When set, derives\n\t * `type` and `token` automatically — saves the two-decisions-per-text-node\n\t * fatigue that hits when a single page has 50+ typography nodes.\n\t *\n\t * @attr preset\n\t * @type {TypographyPreset}\n\t * @example <schmancy-typography preset=\"heading-md\">Title</schmancy-typography>\n\t */\n\t@property({ type: String, reflect: true })\n\tpreset?: TypographyPreset\n\n\t/**\n\t * Render the slot wrapped in the requested semantic HTML element so screen\n\t * readers expose the right role / heading level. Without `as`, the slot\n\t * sits directly in the shadow root and the host is a generic element.\n\t *\n\t * @attr as\n\t * @type {TypographyTag}\n\t * @example <schmancy-typography preset=\"heading-md\" as=\"h2\">Section</schmancy-typography>\n\t */\n\t@property({ type: String, reflect: true })\n\tas?: TypographyTag\n\n\t/**\n\t * @attr token - The size token.\n\t * @deprecated Prefer using Tailwind responsive text classes for better responsive design.\n\t * Set token=\"\" and use class=\"text-sm md:text-base lg:text-lg\" instead.\n\t * Example: <schmancy-typography type=\"display\" token=\"\" class=\"text-2xl sm:text-3xl md:text-4xl\">\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl' | ''}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number })\n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\t/** When true, the element becomes contenteditable and dispatches 'change' events on blur/Enter */\n\t@property({ type: Boolean, reflect: true }) editable = false\n\t/** The text value when in editable mode. Set via property binding: .value=${...} */\n\t@property({ type: String }) value = ''\n\t/** Placeholder shown when editable and empty */\n\t@property({ type: String }) placeholder = ''\n\n\tprivate _editRef = createRef<HTMLDivElement>()\n\n\tprotected override willUpdate(changed: PropertyValues): void {\n\t\tsuper.willUpdate?.(changed)\n\t\t// `preset` shorthand expands to (type, token) so the existing CSS\n\t\t// selectors keep matching without duplicating the size scale.\n\t\tif (changed.has('preset') && this.preset && PRESET_MAP[this.preset]) {\n\t\t\tconst { type, token } = PRESET_MAP[this.preset]\n\t\t\tthis.type = type as typeof this.type\n\t\t\tthis.token = token as typeof this.token\n\t\t}\n\t}\n\n\t/** Focus and select all text in editable mode */\n\tselectAll() {\n\t\tconst el = this._editRef.value\n\t\tif (!el) return\n\t\tel.focus()\n\t\tconst sel = window.getSelection()\n\t\tif (sel && el.textContent) {\n\t\t\tconst range = document.createRange()\n\t\t\trange.selectNodeContents(el)\n\t\t\tsel.removeAllRanges()\n\t\t\tsel.addRange(range)\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tfromEvent<FocusEvent>(this, 'focusout').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\ttap(() => {\n\t\t\t\tconst el = this._editRef.value\n\t\t\t\tif (!el) return\n\t\t\t\tconst newValue = el.innerText.trim()\n\t\t\t\tif (newValue !== this.value) {\n\t\t\t\t\tthis.dispatchEvent(new CustomEvent('change', {\n\t\t\t\t\t\tdetail: { value: newValue },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t\t// Ensure truly empty so :empty CSS placeholder works\n\t\t\t\tif (!newValue) el.textContent = ''\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\t// Clean stray <br> / whitespace nodes so :empty CSS matches\n\t\tfromEvent(this, 'input').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\ttap(() => {\n\t\t\t\tconst el = this._editRef.value\n\t\t\t\tif (el && !el.innerText.trim()) el.textContent = ''\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\tfromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\tfilter(e => e.key === 'Enter'),\n\t\t\ttap(e => { e.preventDefault(); (this._editRef.value ?? this).blur() }),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\t}\n\n\tprotected updated(changedProperties: Map<string, unknown>): void {\n\t\tsuper.updated(changedProperties)\n\t\tif (changedProperties.has('maxLines')) {\n\t\t\t// Remove all line-clamp classes\n\t\t\tthis.classList.remove('line-clamp-1', 'line-clamp-2', 'line-clamp-3', 'line-clamp-4', 'line-clamp-5', 'line-clamp-6')\n\t\t\t// Add the appropriate one\n\t\t\tif (this.maxLines) {\n\t\t\t\tthis.classList.add(`line-clamp-${this.maxLines}`)\n\t\t\t}\n\t\t}\n\t\tif ((changedProperties.has('value') || changedProperties.has('editable')) && this.editable) {\n\t\t\tconst el = this._editRef.value\n\t\t\tif (el && document.activeElement !== el) {\n\t\t\t\tif (this.value) {\n\t\t\t\t\tel.innerText = this.value\n\t\t\t\t} else {\n\t\t\t\t\tel.textContent = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\tif (this.editable) {\n\t\t\treturn html`<div\n\t\t\t\t${ref(this._editRef)}\n\t\t\t\tclass=\"edit\"\n\t\t\t\tcontenteditable=\"true\"\n\t\t\t\tdata-placeholder=${this.placeholder ?? ''}\n\t\t\t></div>`\n\t\t}\n\t\t// `as` wraps the slot in the requested semantic tag so heading levels\n\t\t// land in the accessibility tree. Without `as` the slot is bare and\n\t\t// the host element carries the visual styling only.\n\t\tif (this.as && TAG_LITERALS[this.as]) {\n\t\t\tconst tag = TAG_LITERALS[this.as]\n\t\t\treturn staticHtml`<${tag}><slot></slot></${tag}>`\n\t\t}\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"mappings":"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"}
1
+ {"version":3,"file":"typography.js","names":[],"sources":["../src/typography/typography.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { fromEvent } from 'rxjs'\nimport { filter, tap, takeUntil } from 'rxjs/operators'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Type-based weight defaults (when using Tailwind classes without token) */\n\t:host([type='display']),\n\t:host([type='headline']),\n\t:host([type='body']) {\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='label']),\n\t:host([type='subtitle']),\n\t:host([type='title']) {\n\t\tfont-weight: 500;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n\n\t:host([editable]) {\n\t\tcursor: text;\n\t\tborder-radius: 4px;\n\t\ttransition: background 150ms;\n\t\tmin-height: 1em;\n\t}\n\t/* Editable div lives in shadow DOM so light DOM (Lit markers) is untouched */\n\t.edit {\n\t\toutline: none;\n\t\tmin-height: 1em;\n\t\tfont: inherit;\n\t\tcolor: inherit;\n\t\tletter-spacing: inherit;\n\t\tline-height: inherit;\n\t}\n\t.edit:empty::before {\n\t\tcontent: attr(data-placeholder);\n\t\tpointer-events: none;\n\t\tdisplay: block;\n\t\topacity: 0.35;\n\t}\n`];\n\tstatic shadowRootOptions: ShadowRootInit = {\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The size token.\n\t * @deprecated Prefer using Tailwind responsive text classes for better responsive design.\n\t * Set token=\"\" and use class=\"text-sm md:text-base lg:text-lg\" instead.\n\t * Example: <schmancy-typography type=\"display\" token=\"\" class=\"text-2xl sm:text-3xl md:text-4xl\">\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl' | ''}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number })\n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\t/** When true, the element becomes contenteditable and dispatches 'change' events on blur/Enter */\n\t@property({ type: Boolean, reflect: true }) editable = false\n\t/** The text value when in editable mode. Set via property binding: .value=${...} */\n\t@property({ type: String }) value = ''\n\t/** Placeholder shown when editable and empty */\n\t@property({ type: String }) placeholder = ''\n\n\tprivate _editRef = createRef<HTMLDivElement>()\n\n\t/** Focus and select all text in editable mode */\n\tselectAll() {\n\t\tconst el = this._editRef.value\n\t\tif (!el) return\n\t\tel.focus()\n\t\tconst sel = window.getSelection()\n\t\tif (sel && el.textContent) {\n\t\t\tconst range = document.createRange()\n\t\t\trange.selectNodeContents(el)\n\t\t\tsel.removeAllRanges()\n\t\t\tsel.addRange(range)\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tfromEvent<FocusEvent>(this, 'focusout').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\ttap(() => {\n\t\t\t\tconst el = this._editRef.value\n\t\t\t\tif (!el) return\n\t\t\t\tconst newValue = el.innerText.trim()\n\t\t\t\tif (newValue !== this.value) {\n\t\t\t\t\tthis.dispatchEvent(new CustomEvent('change', {\n\t\t\t\t\t\tdetail: { value: newValue },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t\t// Ensure truly empty so :empty CSS placeholder works\n\t\t\t\tif (!newValue) el.textContent = ''\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\t// Clean stray <br> / whitespace nodes so :empty CSS matches\n\t\tfromEvent(this, 'input').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\ttap(() => {\n\t\t\t\tconst el = this._editRef.value\n\t\t\t\tif (el && !el.innerText.trim()) el.textContent = ''\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\tfromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\tfilter(() => this.editable),\n\t\t\tfilter(e => e.key === 'Enter'),\n\t\t\ttap(e => { e.preventDefault(); (this._editRef.value ?? this).blur() }),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\t}\n\n\tprotected updated(changedProperties: Map<string, unknown>): void {\n\t\tsuper.updated(changedProperties)\n\t\tif (changedProperties.has('maxLines')) {\n\t\t\t// Remove all line-clamp classes\n\t\t\tthis.classList.remove('line-clamp-1', 'line-clamp-2', 'line-clamp-3', 'line-clamp-4', 'line-clamp-5', 'line-clamp-6')\n\t\t\t// Add the appropriate one\n\t\t\tif (this.maxLines) {\n\t\t\t\tthis.classList.add(`line-clamp-${this.maxLines}`)\n\t\t\t}\n\t\t}\n\t\tif ((changedProperties.has('value') || changedProperties.has('editable')) && this.editable) {\n\t\t\tconst el = this._editRef.value\n\t\t\tif (el && document.activeElement !== el) {\n\t\t\t\tif (this.value) {\n\t\t\t\t\tel.innerText = this.value\n\t\t\t\t} else {\n\t\t\t\t\tel.textContent = ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\tif (this.editable) {\n\t\t\treturn html`<div\n\t\t\t\t${ref(this._editRef)}\n\t\t\t\tclass=\"edit\"\n\t\t\t\tcontenteditable=\"true\"\n\t\t\t\tdata-placeholder=${this.placeholder ?? ''}\n\t\t\t></div>`\n\t\t}\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ require(`./chunk-CncqDLb2.cjs`),require(`./animation-CO_Csq84.cjs`),require(`./overlay-stack-BprhAE9a.cjs`);let e=require(`rxjs`);function t(t,n={threshold:.5}){return new e.Observable(e=>{let r=new IntersectionObserver(t=>{e.next(t)},n);return Array.isArray(t)?t.forEach(e=>r.observe(e)):r.observe(t),()=>{r.disconnect()}})}var n=class{constructor(){this.systemLocale=typeof navigator<`u`&&navigator.language?navigator.language:`de-DE`}roundNumber(e,t=2){let n=10**t;return Math.round(e*n)/n}formatNumber(e,t=this.systemLocale,n={}){return new Intl.NumberFormat(t,n).format(e)}parseToPureNumber(e,t=`,`){let n=e.replace(t,`.`);return parseFloat(n)}doIt(e,t=2,n=this.systemLocale,r={}){let i=this.roundNumber(e,t);return this.formatNumber(i,n,r)}formatCurrency(e,t=`€`){return`${t}${this.doIt(e)}`}formatDelta(e,t=`€`){return`${e>0?`↑`:e<0?`↓`:`→`} ${t}${this.doIt(Math.abs(e))}`}getDeltaClass(e){return e>0?`text-error-default`:e<0?`text-primary-default`:`text-neutral`}toMixedFraction(e,t=16,n=4){let r=e<0;e=Math.abs(e);let i=Math.floor(e),a=e-i;if(a<1/10**t)return r?`-${i}`:`${i}`;let{numerator:o,denominator:s}=this.decimalToFraction(a,t,n);return i===0?r?`-${o}/${s}`:`${o}/${s}`:r?`-${i} ${o}/${s}`:`${i} ${o}/${s}`}decimalToFraction(e,t,n=4){if(e===0)return{numerator:0,denominator:1};let r=1/0,i=0,a=1,o=[];n>=5&&o.push({n:1,d:5},{n:2,d:5},{n:3,d:5},{n:4,d:5}),n>=6&&o.push({n:1,d:6},{n:5,d:6}),n>=8&&o.push({n:1,d:8},{n:3,d:8},{n:5,d:8},{n:7,d:8}),n>=10&&o.push({n:1,d:10},{n:3,d:10},{n:7,d:10},{n:9,d:10}),n>=12&&o.push({n:1,d:12},{n:5,d:12},{n:7,d:12},{n:11,d:12}),n>=16&&o.push({n:1,d:16},{n:3,d:16},{n:5,d:16},{n:7,d:16},{n:9,d:16},{n:11,d:16},{n:13,d:16},{n:15,d:16});let s=[{n:1,d:2},{n:1,d:3},{n:2,d:3},{n:1,d:4},{n:3,d:4},...o];for(let o of s)if(o.d<=n){let n=Math.abs(e-o.n/o.d);if(n<r&&(r=n,i=o.n,a=o.d,n<1/10**t))return{numerator:o.n,denominator:o.d}}for(let t=1;t<=n;t++){let n=Math.round(e*t),o=Math.abs(e-n/t);o<r&&(r=o,i=n,a=t)}if(r>1/10**(t/2)&&n>4){let r=1,o=0,s=0,c=1,l=e;do{let u=Math.floor(l),d=r;if(r=u*r+o,o=d,d=s,s=u*s+c,c=d,l=1/(l-u),Math.abs(e-r/s)<1/10**t||s>n)return s>n?{numerator:i,denominator:a}:{numerator:r,denominator:s}}while(l!==1/0);i=r,a=s}let c=this.findGCD(i,a);return{numerator:i/c,denominator:a/c}}findGCD(e,t){return t===0?e:this.findGCD(t,e%t)}formatMixedFraction(e,t=`ascii`,n=16,r=4){let i=this.toMixedFraction(e,n,r);if(t===`ascii`)return i;let a=i.startsWith(`-`),o=a?i.substring(1):i,s=o.includes(` `);if(!o.includes(`/`))return i;let c=``,l=o;if(s){let e=o.split(` `);c=e[0],l=e[1]}let[u,d]=l.split(`/`);if(t===`unicode`){let e=this.getUnicodeFraction(parseInt(u),parseInt(d));return e?a?`-${c}${s?` `:``}${e}`:`${c}${s?` `:``}${e}`:i}if(t===`superscript`){let e=this.toSuperscript(u),t=this.toSubscript(d);return s?a?`-${c} ${e}⁄${t}`:`${c} ${e}⁄${t}`:a?`-${e}⁄${t}`:`${e}⁄${t}`}return i}getUnicodeFraction(e,t){return{"1/4":`¼`,"1/2":`½`,"3/4":`¾`,"1/3":`⅓`,"2/3":`⅔`,"1/5":`⅕`,"2/5":`⅖`,"3/5":`⅗`,"4/5":`⅘`,"1/6":`⅙`,"5/6":`⅚`,"1/7":`⅐`,"1/8":`⅛`,"3/8":`⅜`,"5/8":`⅝`,"7/8":`⅞`,"1/9":`⅑`,"1/10":`⅒`}[`${e}/${t}`]||null}toSuperscript(e){let t={0:`⁰`,1:`¹`,2:`²`,3:`³`,4:`⁴`,5:`⁵`,6:`⁶`,7:`⁷`,8:`⁸`,9:`⁹`,"-":`⁻`};return e.split(``).map(e=>t[e]||e).join(``)}toSubscript(e){let t={0:`₀`,1:`₁`,2:`₂`,3:`₃`,4:`₄`,5:`₅`,6:`₆`,7:`₇`,8:`₈`,9:`₉`,"-":`₋`};return e.split(``).map(e=>t[e]||e).join(``)}};new n,Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-Cr-YO4Np.cjs","names":[],"sources":["../src/utils/intersection.ts","../src/utils/number.ts"],"sourcesContent":["import { Observable } from 'rxjs'\n\nexport function intersection$(\n\telement: Element | Element[],\n\toptions = {\n\t\tthreshold: 0.5,\n\t},\n) {\n\treturn new Observable(subscriber => {\n\t\tconst observer = new IntersectionObserver(entries => {\n\t\t\tsubscriber.next(entries) // Emit the entries array\n\t\t}, options)\n\n\t\t// Observe each element\n\t\tif (Array.isArray(element)) {\n\t\t\telement.forEach(el => observer.observe(el))\n\t\t} else {\n\t\t\tobserver.observe(element)\n\t\t}\n\n\t\t// Cleanup on unsubscription\n\t\treturn () => {\n\t\t\tobserver.disconnect()\n\t\t}\n\t})\n}\n","/**\n * Gets the user's system locale from browser settings.\n * Falls back to 'de-DE' if not available (e.g., in Node.js environment).\n */\nconst getSystemLocale = (): string => {\n if (typeof navigator !== 'undefined' && navigator.language) {\n return navigator.language\n }\n return 'de-DE'\n}\n\nexport class Numbers {\n /**\n * The system locale detected from user's browser/OS settings.\n * Use this for display formatting. For exports, use explicit locale like 'de-DE'.\n */\n readonly systemLocale = getSystemLocale()\n\n /**\n * Rounds a number to the specified number of decimal places.\n * @param {number} number - The number to round.\n * @param {number} [decimalPlaces=2] - The number of decimal places to round to.\n * @returns {number} - The rounded number.\n */\n roundNumber(number: number, decimalPlaces: number = 2): number {\n const factor = Math.pow(10, decimalPlaces);\n return Math.round(number * factor) / factor;\n }\n\n /**\n * Formats a number according to the specified locale and options.\n * Uses the user's system locale by default for display formatting.\n *\n * @param {number} number - The number to format.\n * @param {string} [locale] - The locale string (e.g., 'de-DE'). Defaults to system locale.\n * @param {Intl.NumberFormatOptions} [options={}] - Additional formatting options.\n * @returns {string} - The formatted number as a string.\n *\n * @example\n * // Uses system locale (e.g., user's browser setting)\n * numbers.formatNumber(1234.56)\n *\n * // Explicit locale for exports (bank systems expect German format)\n * numbers.formatNumber(1234.56, 'de-DE', { useGrouping: false })\n */\n formatNumber(\n number: number,\n locale: string = this.systemLocale,\n options: Intl.NumberFormatOptions = {},\n ): string {\n return new Intl.NumberFormat(locale, options).format(number);\n }\n\n /**\n * Parses a string with a specified decimal separator into a number.\n * @param {string} numberString - The string to parse.\n * @param {string} [decimalSeparator=','] - The decimal separator used in the string.\n * @returns {number} - The parsed number.\n */\n parseToPureNumber(\n numberString: string,\n decimalSeparator: string = \",\",\n ): number {\n const normalizedString = numberString.replace(decimalSeparator, \".\");\n return parseFloat(normalizedString);\n }\n\n /**\n * Rounds a number to the specified decimal places and formats it according to the specified locale and options.\n * Uses the user's system locale by default.\n *\n * @param {number} number - The number to process.\n * @param {number} [decimalPlaces=2] - The number of decimal places to round to.\n * @param {string} [locale] - The locale string. Defaults to system locale.\n * @param {Intl.NumberFormatOptions} [options={}] - Additional formatting options.\n * @returns {string} - The formatted number as a string.\n */\n doIt(\n number: number,\n decimalPlaces: number = 2,\n locale: string = this.systemLocale,\n options: Intl.NumberFormatOptions = {},\n ): string {\n const roundedNumber = this.roundNumber(number, decimalPlaces);\n return this.formatNumber(roundedNumber, locale, options);\n }\n\n /**\n * Format a currency amount consistently across the application\n *\n * @param amount The amount to format\n * @param currency The currency symbol to display (default: '€')\n * @returns Formatted amount with currency symbol\n */\n formatCurrency(amount: number, currency: string = \"€\"): string {\n return `${currency}${this.doIt(amount)}`;\n }\n\n /**\n * Format a delta value with appropriate directional indicator\n *\n * @param delta The delta amount to format\n * @param currency The currency symbol to display (default: '€')\n * @returns Formatted delta with direction indicator and currency symbol\n */\n formatDelta(delta: number, currency: string = \"€\"): string {\n const symbol = delta > 0 ? \"↑\" : delta < 0 ? \"↓\" : \"→\";\n return `${symbol} ${currency}${this.doIt(Math.abs(delta))}`;\n }\n\n /**\n * Get CSS class for delta value\n *\n * @param delta The delta amount\n * @returns CSS class based on delta direction\n */\n getDeltaClass(delta: number): string {\n return delta > 0\n ? \"text-error-default\"\n : delta < 0\n ? \"text-primary-default\"\n : \"text-neutral\";\n }\n\n /**\n * Converts a decimal number to a mixed fraction string\n * For example: 1.5 becomes \"1 1/2\", 2.25 becomes \"2 1/4\"\n *\n * @param number The decimal number to convert\n * @param precision The precision level for fraction approximation (default: 16)\n * @param maxDenominator The maximum allowed denominator (default: 4)\n * @returns A string representing the mixed fraction\n */\n toMixedFraction(\n number: number,\n precision: number = 16,\n maxDenominator: number = 4,\n ): string {\n // Handle negative numbers\n const isNegative = number < 0;\n number = Math.abs(number);\n\n // Extract whole number part\n const wholePart = Math.floor(number);\n\n // Extract decimal part and convert to fraction\n let decimalPart = number - wholePart;\n\n // If the decimal part is very small or zero, just return the whole number\n if (decimalPart < 1 / Math.pow(10, precision)) {\n return isNegative ? `-${wholePart}` : `${wholePart}`;\n }\n\n // Find the best fraction approximation using precision and max denominator\n const { numerator, denominator } = this.decimalToFraction(\n decimalPart,\n precision,\n maxDenominator,\n );\n\n // Format based on whether there's a whole part\n if (wholePart === 0) {\n return isNegative\n ? `-${numerator}/${denominator}`\n : `${numerator}/${denominator}`;\n } else {\n return isNegative\n ? `-${wholePart} ${numerator}/${denominator}`\n : `${wholePart} ${numerator}/${denominator}`;\n }\n }\n\n /**\n * Converts a decimal to a simplified fraction with a maximum denominator\n *\n * @param decimal The decimal part to convert (0 <= decimal < 1)\n * @param precision The precision level for approximation\n * @param maxDenominator The maximum allowed denominator (default: 4)\n * @returns Object containing numerator and denominator\n */\n private decimalToFraction(\n decimal: number,\n precision: number,\n maxDenominator: number = 4,\n ): { numerator: number; denominator: number } {\n if (decimal === 0) {\n return { numerator: 0, denominator: 1 };\n }\n\n // Initialize best approximation\n let bestError = Infinity;\n let bestNumerator = 0;\n let bestDenominator = 1;\n\n // Check common fractions first for better user experience\n // Filter to only include fractions with denominators <= maxDenominator\n const commonFractions = [\n { n: 1, d: 2 }, // 1/2\n { n: 1, d: 3 }, // 1/3\n { n: 2, d: 3 }, // 2/3\n { n: 1, d: 4 }, // 1/4\n { n: 3, d: 4 }, // 3/4\n ];\n\n // Add additional fractions only if maxDenominator allows\n const additionalFractions = [];\n if (maxDenominator >= 5) {\n additionalFractions.push(\n { n: 1, d: 5 }, // 1/5\n { n: 2, d: 5 }, // 2/5\n { n: 3, d: 5 }, // 3/5\n { n: 4, d: 5 }, // 4/5\n );\n }\n if (maxDenominator >= 6) {\n additionalFractions.push(\n { n: 1, d: 6 }, // 1/6\n { n: 5, d: 6 }, // 5/6\n );\n }\n if (maxDenominator >= 8) {\n additionalFractions.push(\n { n: 1, d: 8 }, // 1/8\n { n: 3, d: 8 }, // 3/8\n { n: 5, d: 8 }, // 5/8\n { n: 7, d: 8 }, // 7/8\n );\n }\n if (maxDenominator >= 10) {\n additionalFractions.push(\n { n: 1, d: 10 }, // 1/10\n { n: 3, d: 10 }, // 3/10\n { n: 7, d: 10 }, // 7/10\n { n: 9, d: 10 }, // 9/10\n );\n }\n if (maxDenominator >= 12) {\n additionalFractions.push(\n { n: 1, d: 12 }, // 1/12\n { n: 5, d: 12 }, // 5/12\n { n: 7, d: 12 }, // 7/12\n { n: 11, d: 12 }, // 11/12\n );\n }\n if (maxDenominator >= 16) {\n additionalFractions.push(\n { n: 1, d: 16 }, // 1/16\n { n: 3, d: 16 }, // 3/16\n { n: 5, d: 16 }, // 5/16\n { n: 7, d: 16 }, // 7/16\n { n: 9, d: 16 }, // 9/16\n { n: 11, d: 16 }, // 11/16\n { n: 13, d: 16 }, // 13/16\n { n: 15, d: 16 }, // 15/16\n );\n }\n\n // Combine all applicable fractions\n const allFractions = [...commonFractions, ...additionalFractions];\n\n // Check common fractions first\n for (const frac of allFractions) {\n if (frac.d <= maxDenominator) {\n const error = Math.abs(decimal - frac.n / frac.d);\n if (error < bestError) {\n bestError = error;\n bestNumerator = frac.n;\n bestDenominator = frac.d;\n\n // If we're very close to a common fraction, just use it\n if (error < 1 / Math.pow(10, precision)) {\n return { numerator: frac.n, denominator: frac.d };\n }\n }\n }\n }\n\n // If no suitable common fraction found, use a more sophisticated approach\n // for denominators up to maxDenominator\n\n // Find the best approximation with denominator <= maxDenominator\n for (let d = 1; d <= maxDenominator; d++) {\n // Find best numerator for this denominator\n const n = Math.round(decimal * d);\n const error = Math.abs(decimal - n / d);\n\n if (error < bestError) {\n bestError = error;\n bestNumerator = n;\n bestDenominator = d;\n }\n }\n\n // Only use continued fraction expansion if we're significantly off\n // and maxDenominator allows for larger denominators\n if (bestError > 1 / Math.pow(10, precision / 2) && maxDenominator > 4) {\n // Implementation of continued fraction expansion\n let n1 = 1,\n n2 = 0;\n let d1 = 0,\n d2 = 1;\n let b = decimal;\n\n do {\n let a = Math.floor(b);\n let aux = n1;\n n1 = a * n1 + n2;\n n2 = aux;\n\n aux = d1;\n d1 = a * d1 + d2;\n d2 = aux;\n\n b = 1 / (b - a);\n\n // Calculate the current approximation\n const currentError = Math.abs(decimal - n1 / d1);\n\n // If we hit the precision limit or if the denominator gets too large, use this approximation\n if (currentError < 1 / Math.pow(10, precision) || d1 > maxDenominator) {\n // If d1 exceeds maxDenominator, return the previous best result\n if (d1 > maxDenominator) {\n return { numerator: bestNumerator, denominator: bestDenominator };\n }\n\n // Otherwise return this result\n return { numerator: n1, denominator: d1 };\n }\n } while (b !== Infinity);\n\n bestNumerator = n1;\n bestDenominator = d1;\n }\n\n // Simplify the fraction\n const gcd = this.findGCD(bestNumerator, bestDenominator);\n return {\n numerator: bestNumerator / gcd,\n denominator: bestDenominator / gcd,\n };\n }\n\n /**\n * Calculates the greatest common divisor of two numbers\n */\n private findGCD(a: number, b: number): number {\n return b === 0 ? a : this.findGCD(b, a % b);\n }\n\n /**\n * Alternative method to get a formatted mixed fraction with a specified format\n *\n * @param number The decimal number to convert\n * @param format The format specification ('unicode', 'ascii', 'superscript')\n * @param precision The precision level for fraction approximation\n * @param maxDenominator The maximum allowed denominator (default: 4)\n * @returns A formatted string representing the mixed fraction\n */\n formatMixedFraction(\n number: number,\n format: \"unicode\" | \"ascii\" | \"superscript\" = \"ascii\",\n precision: number = 16,\n maxDenominator: number = 4,\n ): string {\n // Get the basic mixed fraction\n const basicFraction = this.toMixedFraction(\n number,\n precision,\n maxDenominator,\n );\n\n // If the format is ascii, just return the basic fraction\n if (format === \"ascii\") {\n return basicFraction;\n }\n\n // For unicode and superscript formats, we need to parse the basic fraction\n const isNegative = basicFraction.startsWith(\"-\");\n const withoutSign = isNegative ? basicFraction.substring(1) : basicFraction;\n\n // Check if it's a pure fraction or mixed fraction\n const hasMixedPart = withoutSign.includes(\" \");\n\n if (!withoutSign.includes(\"/\")) {\n // If there's no fraction part, just return the number\n return basicFraction;\n }\n\n let wholePart = \"\";\n let fractionPart = withoutSign;\n\n if (hasMixedPart) {\n // Split the whole and fraction parts\n const parts = withoutSign.split(\" \");\n wholePart = parts[0];\n fractionPart = parts[1];\n }\n\n // Split the fraction part into numerator and denominator\n const [numerator, denominator] = fractionPart.split(\"/\");\n\n if (format === \"unicode\") {\n // Try to find a unicode fraction character\n const unicodeFraction = this.getUnicodeFraction(\n parseInt(numerator),\n parseInt(denominator),\n );\n\n if (unicodeFraction) {\n return isNegative\n ? `-${wholePart}${hasMixedPart ? \" \" : \"\"}${unicodeFraction}`\n : `${wholePart}${hasMixedPart ? \" \" : \"\"}${unicodeFraction}`;\n }\n\n // Fallback to basic format if no unicode fraction is available\n return basicFraction;\n }\n\n // Handle superscript format\n if (format === \"superscript\") {\n const superNumerator = this.toSuperscript(numerator);\n const subDenominator = this.toSubscript(denominator);\n\n if (hasMixedPart) {\n return isNegative\n ? `-${wholePart} ${superNumerator}⁄${subDenominator}`\n : `${wholePart} ${superNumerator}⁄${subDenominator}`;\n } else {\n return isNegative\n ? `-${superNumerator}⁄${subDenominator}`\n : `${superNumerator}⁄${subDenominator}`;\n }\n }\n\n // Fallback to basic format\n return basicFraction;\n }\n\n /**\n * Gets the Unicode fraction character if available\n *\n * @param numerator The numerator\n * @param denominator The denominator\n * @returns Unicode fraction character or null if not available\n */\n private getUnicodeFraction(\n numerator: number,\n denominator: number,\n ): string | null {\n // Map common fractions to their Unicode characters\n const fractionMap: Record<string, string> = {\n \"1/4\": \"¼\",\n \"1/2\": \"½\",\n \"3/4\": \"¾\",\n \"1/3\": \"⅓\",\n \"2/3\": \"⅔\",\n \"1/5\": \"⅕\",\n \"2/5\": \"⅖\",\n \"3/5\": \"⅗\",\n \"4/5\": \"⅘\",\n \"1/6\": \"⅙\",\n \"5/6\": \"⅚\",\n \"1/7\": \"⅐\",\n \"1/8\": \"⅛\",\n \"3/8\": \"⅜\",\n \"5/8\": \"⅝\",\n \"7/8\": \"⅞\",\n \"1/9\": \"⅑\",\n \"1/10\": \"⅒\",\n };\n\n const key = `${numerator}/${denominator}`;\n return fractionMap[key] || null;\n }\n\n /**\n * Converts digits to superscript\n */\n private toSuperscript(str: string): string {\n const superscriptMap: Record<string, string> = {\n \"0\": \"⁰\",\n \"1\": \"¹\",\n \"2\": \"²\",\n \"3\": \"³\",\n \"4\": \"⁴\",\n \"5\": \"⁵\",\n \"6\": \"⁶\",\n \"7\": \"⁷\",\n \"8\": \"⁸\",\n \"9\": \"⁹\",\n \"-\": \"⁻\",\n };\n\n return str\n .split(\"\")\n .map((char) => superscriptMap[char] || char)\n .join(\"\");\n }\n\n /**\n * Converts digits to subscript\n */\n private toSubscript(str: string): string {\n const subscriptMap: Record<string, string> = {\n \"0\": \"₀\",\n \"1\": \"₁\",\n \"2\": \"₂\",\n \"3\": \"₃\",\n \"4\": \"₄\",\n \"5\": \"₅\",\n \"6\": \"₆\",\n \"7\": \"₇\",\n \"8\": \"₈\",\n \"9\": \"₉\",\n \"-\": \"₋\",\n };\n\n return str\n .split(\"\")\n .map((char) => subscriptMap[char] || char)\n .join(\"\");\n }\n}\n\n\n\nconst numbers = new Numbers()\n\nexport default numbers"],"mappings":"kIAEA,SAAgB,EACf,EACA,EAAU,CACT,UAAW,GAAA,CAAA,CAGZ,OAAO,IAAI,EAAA,WAAW,GAAA,CACrB,IAAM,EAAW,IAAI,qBAAqB,GAAA,CACzC,EAAW,KAAK,EAAA,EACd,EAAA,CAUH,OAPI,MAAM,QAAQ,EAAA,CACjB,EAAQ,QAAQ,GAAM,EAAS,QAAQ,EAAA,CAAA,CAEvC,EAAS,QAAQ,EAAA,KAIlB,CACC,EAAS,YAAA,GAAA,CClBZ,IAOa,EAAb,KAAA,CAAA,aAAA,CAAA,KAAA,aAN2B,OAAd,UAAc,KAAe,UAAU,SACzC,UAAU,SAEZ,QAgBP,YAAY,EAAgB,EAAwB,EAAA,CAClD,IAAM,EAAkB,IAAI,EAC5B,OAAO,KAAK,MAAM,EAAS,EAAA,CAAU,EAmBvC,aACE,EACA,EAAiB,KAAK,aACtB,EAAoC,EAAA,CAAA,CAEpC,OAAO,IAAI,KAAK,aAAa,EAAQ,EAAA,CAAS,OAAO,EAAA,CASvD,kBACE,EACA,EAA2B,IAAA,CAE3B,IAAM,EAAmB,EAAa,QAAQ,EAAkB,IAAA,CAChE,OAAO,WAAW,EAAA,CAapB,KACE,EACA,EAAwB,EACxB,EAAiB,KAAK,aACtB,EAAoC,EAAA,CAAA,CAEpC,IAAM,EAAgB,KAAK,YAAY,EAAQ,EAAA,CAC/C,OAAO,KAAK,aAAa,EAAe,EAAQ,EAAA,CAUlD,eAAe,EAAgB,EAAmB,IAAA,CAChD,MAAO,GAAG,IAAW,KAAK,KAAK,EAAA,GAUjC,YAAY,EAAe,EAAmB,IAAA,CAE5C,MAAO,GADQ,EAAQ,EAAI,IAAM,EAAQ,EAAI,IAAM,IAAA,GAC/B,IAAW,KAAK,KAAK,KAAK,IAAI,EAAA,CAAA,GASpD,cAAc,EAAA,CACZ,OAAO,EAAQ,EACX,qBACA,EAAQ,EACN,uBACA,eAYR,gBACE,EACA,EAAoB,GACpB,EAAyB,EAAA,CAGzB,IAAM,EAAa,EAAS,EAC5B,EAAS,KAAK,IAAI,EAAA,CAGlB,IAAM,EAAY,KAAK,MAAM,EAAA,CAGzB,EAAc,EAAS,EAG3B,GAAI,EAAc,EAAa,IAAI,EACjC,OAAO,EAAa,IAAI,IAAc,GAAG,IAI3C,GAAA,CAAM,UAAE,EAAA,YAAW,GAAgB,KAAK,kBACtC,EACA,EACA,EAAA,CAIF,OAAI,IAAc,EACT,EACH,IAAI,EAAA,GAAa,IACjB,GAAG,EAAA,GAAa,IAEb,EACH,IAAI,EAAA,GAAa,EAAA,GAAa,IAC9B,GAAG,EAAA,GAAa,EAAA,GAAa,IAYrC,kBACE,EACA,EACA,EAAyB,EAAA,CAEzB,GAAI,IAAY,EACd,MAAO,CAAE,UAAW,EAAG,YAAa,EAAA,CAItC,IAAI,EAAY,IACZ,EAAgB,EAChB,EAAkB,EAahB,EAAsB,EAAA,CACxB,GAAkB,GACpB,EAAoB,KAClB,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CAAA,CAGX,GAAkB,GACpB,EAAoB,KAClB,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CAAA,CAGX,GAAkB,GACpB,EAAoB,KAClB,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CAAA,CAGX,GAAkB,IACpB,EAAoB,KAClB,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CAAA,CAGX,GAAkB,IACpB,EAAoB,KAClB,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,GAAI,EAAG,GAAA,CAAA,CAGZ,GAAkB,IACpB,EAAoB,KAClB,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,EAAG,EAAG,GAAA,CACX,CAAE,EAAG,GAAI,EAAG,GAAA,CACZ,CAAE,EAAG,GAAI,EAAG,GAAA,CACZ,CAAE,EAAG,GAAI,EAAG,GAAA,CAAA,CAKhB,IAAM,EAAe,CA7DnB,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CACX,CAAE,EAAG,EAAG,EAAG,EAAA,CAAA,GAyDgC,EAAA,CAG7C,IAAK,IAAM,KAAQ,EACjB,GAAI,EAAK,GAAK,EAAgB,CAC5B,IAAM,EAAQ,KAAK,IAAI,EAAU,EAAK,EAAI,EAAK,EAAA,CAC/C,GAAI,EAAQ,IACV,EAAY,EACZ,EAAgB,EAAK,EACrB,EAAkB,EAAK,EAGnB,EAAQ,EAAa,IAAI,GAC3B,MAAO,CAAE,UAAW,EAAK,EAAG,YAAa,EAAK,EAAA,CAUtD,IAAK,IAAI,EAAI,EAAG,GAAK,EAAgB,IAAK,CAExC,IAAM,EAAI,KAAK,MAAM,EAAU,EAAA,CACzB,EAAQ,KAAK,IAAI,EAAU,EAAI,EAAA,CAEjC,EAAQ,IACV,EAAY,EACZ,EAAgB,EAChB,EAAkB,GAMtB,GAAI,EAAY,EAAa,KAAI,EAAY,IAAM,EAAiB,EAAG,CAErE,IAAI,EAAK,EACP,EAAK,EACH,EAAK,EACP,EAAK,EACH,EAAI,EAER,EAAG,CACD,IAAI,EAAI,KAAK,MAAM,EAAA,CACf,EAAM,EAcV,GAbA,EAAK,EAAI,EAAK,EACd,EAAK,EAEL,EAAM,EACN,EAAK,EAAI,EAAK,EACd,EAAK,EAEL,EAAI,GAAK,EAAI,GAGQ,KAAK,IAAI,EAAU,EAAK,EAAA,CAG1B,EAAa,IAAI,GAAc,EAAK,EAErD,OAAI,EAAK,EACA,CAAE,UAAW,EAAe,YAAa,EAAA,CAI3C,CAAE,UAAW,EAAI,YAAa,EAAA,OAEhC,IAAM,KAEf,EAAgB,EAChB,EAAkB,EAIpB,IAAM,EAAM,KAAK,QAAQ,EAAe,EAAA,CACxC,MAAO,CACL,UAAW,EAAgB,EAC3B,YAAa,EAAkB,EAAA,CAOnC,QAAgB,EAAW,EAAA,CACzB,OAAO,IAAM,EAAI,EAAI,KAAK,QAAQ,EAAG,EAAI,EAAA,CAY3C,oBACE,EACA,EAA8C,QAC9C,EAAoB,GACpB,EAAyB,EAAA,CAGzB,IAAM,EAAgB,KAAK,gBACzB,EACA,EACA,EAAA,CAIF,GAAI,IAAW,QACb,OAAO,EAIT,IAAM,EAAa,EAAc,WAAW,IAAA,CACtC,EAAc,EAAa,EAAc,UAAU,EAAA,CAAK,EAGxD,EAAe,EAAY,SAAS,IAAA,CAE1C,GAAA,CAAK,EAAY,SAAS,IAAA,CAExB,OAAO,EAGT,IAAI,EAAY,GACZ,EAAe,EAEnB,GAAI,EAAc,CAEhB,IAAM,EAAQ,EAAY,MAAM,IAAA,CAChC,EAAY,EAAM,GAClB,EAAe,EAAM,GAIvB,GAAA,CAAO,EAAW,GAAe,EAAa,MAAM,IAAA,CAEpD,GAAI,IAAW,UAAW,CAExB,IAAM,EAAkB,KAAK,mBAC3B,SAAS,EAAA,CACT,SAAS,EAAA,CAAA,CAGX,OAAI,EACK,EACH,IAAI,IAAY,EAAe,IAAM,KAAK,IAC1C,GAAG,IAAY,EAAe,IAAM,KAAK,IAIxC,EAIT,GAAI,IAAW,cAAe,CAC5B,IAAM,EAAiB,KAAK,cAAc,EAAA,CACpC,EAAiB,KAAK,YAAY,EAAA,CAExC,OAAI,EACK,EACH,IAAI,EAAA,GAAa,EAAA,GAAkB,IACnC,GAAG,EAAA,GAAa,EAAA,GAAkB,IAE/B,EACH,IAAI,EAAA,GAAkB,IACtB,GAAG,EAAA,GAAkB,IAK7B,OAAO,EAUT,mBACE,EACA,EAAA,CAyBA,MAAO,CArBL,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,OAAQ,IAAA,CAIS,GADJ,EAAA,GAAa,MACD,KAM7B,cAAsB,EAAA,CACpB,IAAM,EAAyC,CAC7C,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,IAAK,IAAA,CAGP,OAAO,EACJ,MAAM,GAAA,CACN,IAAK,GAAS,EAAe,IAAS,EAAA,CACtC,KAAK,GAAA,CAMV,YAAoB,EAAA,CAClB,IAAM,EAAuC,CAC3C,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,IAAK,IAAA,CAGP,OAAO,EACJ,MAAM,GAAA,CACN,IAAK,GAAS,EAAa,IAAS,EAAA,CACpC,KAAK,GAAA,GAMI,IAAI,EAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA,CAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
@@ -1,7 +1,17 @@
1
- import "./animation-hXFClrIn.js";
2
- import "./overlay-stack-DXPYHPhk.js";
3
- import "./intersection-BrXp4YTO.js";
4
- var e = class {
1
+ import "./animation-BK-8BwY8.js";
2
+ import "./overlay-stack-CAQno0CK.js";
3
+ import { Observable as e } from "rxjs";
4
+ function t(t, n = { threshold: .5 }) {
5
+ return new e((e) => {
6
+ let r = new IntersectionObserver((t) => {
7
+ e.next(t);
8
+ }, n);
9
+ return Array.isArray(t) ? t.forEach((e) => r.observe(e)) : r.observe(t), () => {
10
+ r.disconnect();
11
+ };
12
+ });
13
+ }
14
+ var n = class {
5
15
  constructor() {
6
16
  this.systemLocale = typeof navigator < "u" && navigator.language ? navigator.language : "de-DE";
7
17
  }
@@ -255,5 +265,5 @@ var e = class {
255
265
  return e.split("").map((e) => t[e] || e).join("");
256
266
  }
257
267
  };
258
- new e();
259
- export { e as t };
268
+ new n();
269
+ export { t as n, n as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-hp-DnFf5.js","names":[],"sources":["../src/utils/intersection.ts","../src/utils/number.ts"],"sourcesContent":["import { Observable } from 'rxjs'\n\nexport function intersection$(\n\telement: Element | Element[],\n\toptions = {\n\t\tthreshold: 0.5,\n\t},\n) {\n\treturn new Observable(subscriber => {\n\t\tconst observer = new IntersectionObserver(entries => {\n\t\t\tsubscriber.next(entries) // Emit the entries array\n\t\t}, options)\n\n\t\t// Observe each element\n\t\tif (Array.isArray(element)) {\n\t\t\telement.forEach(el => observer.observe(el))\n\t\t} else {\n\t\t\tobserver.observe(element)\n\t\t}\n\n\t\t// Cleanup on unsubscription\n\t\treturn () => {\n\t\t\tobserver.disconnect()\n\t\t}\n\t})\n}\n","/**\n * Gets the user's system locale from browser settings.\n * Falls back to 'de-DE' if not available (e.g., in Node.js environment).\n */\nconst getSystemLocale = (): string => {\n if (typeof navigator !== 'undefined' && navigator.language) {\n return navigator.language\n }\n return 'de-DE'\n}\n\nexport class Numbers {\n /**\n * The system locale detected from user's browser/OS settings.\n * Use this for display formatting. For exports, use explicit locale like 'de-DE'.\n */\n readonly systemLocale = getSystemLocale()\n\n /**\n * Rounds a number to the specified number of decimal places.\n * @param {number} number - The number to round.\n * @param {number} [decimalPlaces=2] - The number of decimal places to round to.\n * @returns {number} - The rounded number.\n */\n roundNumber(number: number, decimalPlaces: number = 2): number {\n const factor = Math.pow(10, decimalPlaces);\n return Math.round(number * factor) / factor;\n }\n\n /**\n * Formats a number according to the specified locale and options.\n * Uses the user's system locale by default for display formatting.\n *\n * @param {number} number - The number to format.\n * @param {string} [locale] - The locale string (e.g., 'de-DE'). Defaults to system locale.\n * @param {Intl.NumberFormatOptions} [options={}] - Additional formatting options.\n * @returns {string} - The formatted number as a string.\n *\n * @example\n * // Uses system locale (e.g., user's browser setting)\n * numbers.formatNumber(1234.56)\n *\n * // Explicit locale for exports (bank systems expect German format)\n * numbers.formatNumber(1234.56, 'de-DE', { useGrouping: false })\n */\n formatNumber(\n number: number,\n locale: string = this.systemLocale,\n options: Intl.NumberFormatOptions = {},\n ): string {\n return new Intl.NumberFormat(locale, options).format(number);\n }\n\n /**\n * Parses a string with a specified decimal separator into a number.\n * @param {string} numberString - The string to parse.\n * @param {string} [decimalSeparator=','] - The decimal separator used in the string.\n * @returns {number} - The parsed number.\n */\n parseToPureNumber(\n numberString: string,\n decimalSeparator: string = \",\",\n ): number {\n const normalizedString = numberString.replace(decimalSeparator, \".\");\n return parseFloat(normalizedString);\n }\n\n /**\n * Rounds a number to the specified decimal places and formats it according to the specified locale and options.\n * Uses the user's system locale by default.\n *\n * @param {number} number - The number to process.\n * @param {number} [decimalPlaces=2] - The number of decimal places to round to.\n * @param {string} [locale] - The locale string. Defaults to system locale.\n * @param {Intl.NumberFormatOptions} [options={}] - Additional formatting options.\n * @returns {string} - The formatted number as a string.\n */\n doIt(\n number: number,\n decimalPlaces: number = 2,\n locale: string = this.systemLocale,\n options: Intl.NumberFormatOptions = {},\n ): string {\n const roundedNumber = this.roundNumber(number, decimalPlaces);\n return this.formatNumber(roundedNumber, locale, options);\n }\n\n /**\n * Format a currency amount consistently across the application\n *\n * @param amount The amount to format\n * @param currency The currency symbol to display (default: '€')\n * @returns Formatted amount with currency symbol\n */\n formatCurrency(amount: number, currency: string = \"€\"): string {\n return `${currency}${this.doIt(amount)}`;\n }\n\n /**\n * Format a delta value with appropriate directional indicator\n *\n * @param delta The delta amount to format\n * @param currency The currency symbol to display (default: '€')\n * @returns Formatted delta with direction indicator and currency symbol\n */\n formatDelta(delta: number, currency: string = \"€\"): string {\n const symbol = delta > 0 ? \"↑\" : delta < 0 ? \"↓\" : \"→\";\n return `${symbol} ${currency}${this.doIt(Math.abs(delta))}`;\n }\n\n /**\n * Get CSS class for delta value\n *\n * @param delta The delta amount\n * @returns CSS class based on delta direction\n */\n getDeltaClass(delta: number): string {\n return delta > 0\n ? \"text-error-default\"\n : delta < 0\n ? \"text-primary-default\"\n : \"text-neutral\";\n }\n\n /**\n * Converts a decimal number to a mixed fraction string\n * For example: 1.5 becomes \"1 1/2\", 2.25 becomes \"2 1/4\"\n *\n * @param number The decimal number to convert\n * @param precision The precision level for fraction approximation (default: 16)\n * @param maxDenominator The maximum allowed denominator (default: 4)\n * @returns A string representing the mixed fraction\n */\n toMixedFraction(\n number: number,\n precision: number = 16,\n maxDenominator: number = 4,\n ): string {\n // Handle negative numbers\n const isNegative = number < 0;\n number = Math.abs(number);\n\n // Extract whole number part\n const wholePart = Math.floor(number);\n\n // Extract decimal part and convert to fraction\n let decimalPart = number - wholePart;\n\n // If the decimal part is very small or zero, just return the whole number\n if (decimalPart < 1 / Math.pow(10, precision)) {\n return isNegative ? `-${wholePart}` : `${wholePart}`;\n }\n\n // Find the best fraction approximation using precision and max denominator\n const { numerator, denominator } = this.decimalToFraction(\n decimalPart,\n precision,\n maxDenominator,\n );\n\n // Format based on whether there's a whole part\n if (wholePart === 0) {\n return isNegative\n ? `-${numerator}/${denominator}`\n : `${numerator}/${denominator}`;\n } else {\n return isNegative\n ? `-${wholePart} ${numerator}/${denominator}`\n : `${wholePart} ${numerator}/${denominator}`;\n }\n }\n\n /**\n * Converts a decimal to a simplified fraction with a maximum denominator\n *\n * @param decimal The decimal part to convert (0 <= decimal < 1)\n * @param precision The precision level for approximation\n * @param maxDenominator The maximum allowed denominator (default: 4)\n * @returns Object containing numerator and denominator\n */\n private decimalToFraction(\n decimal: number,\n precision: number,\n maxDenominator: number = 4,\n ): { numerator: number; denominator: number } {\n if (decimal === 0) {\n return { numerator: 0, denominator: 1 };\n }\n\n // Initialize best approximation\n let bestError = Infinity;\n let bestNumerator = 0;\n let bestDenominator = 1;\n\n // Check common fractions first for better user experience\n // Filter to only include fractions with denominators <= maxDenominator\n const commonFractions = [\n { n: 1, d: 2 }, // 1/2\n { n: 1, d: 3 }, // 1/3\n { n: 2, d: 3 }, // 2/3\n { n: 1, d: 4 }, // 1/4\n { n: 3, d: 4 }, // 3/4\n ];\n\n // Add additional fractions only if maxDenominator allows\n const additionalFractions = [];\n if (maxDenominator >= 5) {\n additionalFractions.push(\n { n: 1, d: 5 }, // 1/5\n { n: 2, d: 5 }, // 2/5\n { n: 3, d: 5 }, // 3/5\n { n: 4, d: 5 }, // 4/5\n );\n }\n if (maxDenominator >= 6) {\n additionalFractions.push(\n { n: 1, d: 6 }, // 1/6\n { n: 5, d: 6 }, // 5/6\n );\n }\n if (maxDenominator >= 8) {\n additionalFractions.push(\n { n: 1, d: 8 }, // 1/8\n { n: 3, d: 8 }, // 3/8\n { n: 5, d: 8 }, // 5/8\n { n: 7, d: 8 }, // 7/8\n );\n }\n if (maxDenominator >= 10) {\n additionalFractions.push(\n { n: 1, d: 10 }, // 1/10\n { n: 3, d: 10 }, // 3/10\n { n: 7, d: 10 }, // 7/10\n { n: 9, d: 10 }, // 9/10\n );\n }\n if (maxDenominator >= 12) {\n additionalFractions.push(\n { n: 1, d: 12 }, // 1/12\n { n: 5, d: 12 }, // 5/12\n { n: 7, d: 12 }, // 7/12\n { n: 11, d: 12 }, // 11/12\n );\n }\n if (maxDenominator >= 16) {\n additionalFractions.push(\n { n: 1, d: 16 }, // 1/16\n { n: 3, d: 16 }, // 3/16\n { n: 5, d: 16 }, // 5/16\n { n: 7, d: 16 }, // 7/16\n { n: 9, d: 16 }, // 9/16\n { n: 11, d: 16 }, // 11/16\n { n: 13, d: 16 }, // 13/16\n { n: 15, d: 16 }, // 15/16\n );\n }\n\n // Combine all applicable fractions\n const allFractions = [...commonFractions, ...additionalFractions];\n\n // Check common fractions first\n for (const frac of allFractions) {\n if (frac.d <= maxDenominator) {\n const error = Math.abs(decimal - frac.n / frac.d);\n if (error < bestError) {\n bestError = error;\n bestNumerator = frac.n;\n bestDenominator = frac.d;\n\n // If we're very close to a common fraction, just use it\n if (error < 1 / Math.pow(10, precision)) {\n return { numerator: frac.n, denominator: frac.d };\n }\n }\n }\n }\n\n // If no suitable common fraction found, use a more sophisticated approach\n // for denominators up to maxDenominator\n\n // Find the best approximation with denominator <= maxDenominator\n for (let d = 1; d <= maxDenominator; d++) {\n // Find best numerator for this denominator\n const n = Math.round(decimal * d);\n const error = Math.abs(decimal - n / d);\n\n if (error < bestError) {\n bestError = error;\n bestNumerator = n;\n bestDenominator = d;\n }\n }\n\n // Only use continued fraction expansion if we're significantly off\n // and maxDenominator allows for larger denominators\n if (bestError > 1 / Math.pow(10, precision / 2) && maxDenominator > 4) {\n // Implementation of continued fraction expansion\n let n1 = 1,\n n2 = 0;\n let d1 = 0,\n d2 = 1;\n let b = decimal;\n\n do {\n let a = Math.floor(b);\n let aux = n1;\n n1 = a * n1 + n2;\n n2 = aux;\n\n aux = d1;\n d1 = a * d1 + d2;\n d2 = aux;\n\n b = 1 / (b - a);\n\n // Calculate the current approximation\n const currentError = Math.abs(decimal - n1 / d1);\n\n // If we hit the precision limit or if the denominator gets too large, use this approximation\n if (currentError < 1 / Math.pow(10, precision) || d1 > maxDenominator) {\n // If d1 exceeds maxDenominator, return the previous best result\n if (d1 > maxDenominator) {\n return { numerator: bestNumerator, denominator: bestDenominator };\n }\n\n // Otherwise return this result\n return { numerator: n1, denominator: d1 };\n }\n } while (b !== Infinity);\n\n bestNumerator = n1;\n bestDenominator = d1;\n }\n\n // Simplify the fraction\n const gcd = this.findGCD(bestNumerator, bestDenominator);\n return {\n numerator: bestNumerator / gcd,\n denominator: bestDenominator / gcd,\n };\n }\n\n /**\n * Calculates the greatest common divisor of two numbers\n */\n private findGCD(a: number, b: number): number {\n return b === 0 ? a : this.findGCD(b, a % b);\n }\n\n /**\n * Alternative method to get a formatted mixed fraction with a specified format\n *\n * @param number The decimal number to convert\n * @param format The format specification ('unicode', 'ascii', 'superscript')\n * @param precision The precision level for fraction approximation\n * @param maxDenominator The maximum allowed denominator (default: 4)\n * @returns A formatted string representing the mixed fraction\n */\n formatMixedFraction(\n number: number,\n format: \"unicode\" | \"ascii\" | \"superscript\" = \"ascii\",\n precision: number = 16,\n maxDenominator: number = 4,\n ): string {\n // Get the basic mixed fraction\n const basicFraction = this.toMixedFraction(\n number,\n precision,\n maxDenominator,\n );\n\n // If the format is ascii, just return the basic fraction\n if (format === \"ascii\") {\n return basicFraction;\n }\n\n // For unicode and superscript formats, we need to parse the basic fraction\n const isNegative = basicFraction.startsWith(\"-\");\n const withoutSign = isNegative ? basicFraction.substring(1) : basicFraction;\n\n // Check if it's a pure fraction or mixed fraction\n const hasMixedPart = withoutSign.includes(\" \");\n\n if (!withoutSign.includes(\"/\")) {\n // If there's no fraction part, just return the number\n return basicFraction;\n }\n\n let wholePart = \"\";\n let fractionPart = withoutSign;\n\n if (hasMixedPart) {\n // Split the whole and fraction parts\n const parts = withoutSign.split(\" \");\n wholePart = parts[0];\n fractionPart = parts[1];\n }\n\n // Split the fraction part into numerator and denominator\n const [numerator, denominator] = fractionPart.split(\"/\");\n\n if (format === \"unicode\") {\n // Try to find a unicode fraction character\n const unicodeFraction = this.getUnicodeFraction(\n parseInt(numerator),\n parseInt(denominator),\n );\n\n if (unicodeFraction) {\n return isNegative\n ? `-${wholePart}${hasMixedPart ? \" \" : \"\"}${unicodeFraction}`\n : `${wholePart}${hasMixedPart ? \" \" : \"\"}${unicodeFraction}`;\n }\n\n // Fallback to basic format if no unicode fraction is available\n return basicFraction;\n }\n\n // Handle superscript format\n if (format === \"superscript\") {\n const superNumerator = this.toSuperscript(numerator);\n const subDenominator = this.toSubscript(denominator);\n\n if (hasMixedPart) {\n return isNegative\n ? `-${wholePart} ${superNumerator}⁄${subDenominator}`\n : `${wholePart} ${superNumerator}⁄${subDenominator}`;\n } else {\n return isNegative\n ? `-${superNumerator}⁄${subDenominator}`\n : `${superNumerator}⁄${subDenominator}`;\n }\n }\n\n // Fallback to basic format\n return basicFraction;\n }\n\n /**\n * Gets the Unicode fraction character if available\n *\n * @param numerator The numerator\n * @param denominator The denominator\n * @returns Unicode fraction character or null if not available\n */\n private getUnicodeFraction(\n numerator: number,\n denominator: number,\n ): string | null {\n // Map common fractions to their Unicode characters\n const fractionMap: Record<string, string> = {\n \"1/4\": \"¼\",\n \"1/2\": \"½\",\n \"3/4\": \"¾\",\n \"1/3\": \"⅓\",\n \"2/3\": \"⅔\",\n \"1/5\": \"⅕\",\n \"2/5\": \"⅖\",\n \"3/5\": \"⅗\",\n \"4/5\": \"⅘\",\n \"1/6\": \"⅙\",\n \"5/6\": \"⅚\",\n \"1/7\": \"⅐\",\n \"1/8\": \"⅛\",\n \"3/8\": \"⅜\",\n \"5/8\": \"⅝\",\n \"7/8\": \"⅞\",\n \"1/9\": \"⅑\",\n \"1/10\": \"⅒\",\n };\n\n const key = `${numerator}/${denominator}`;\n return fractionMap[key] || null;\n }\n\n /**\n * Converts digits to superscript\n */\n private toSuperscript(str: string): string {\n const superscriptMap: Record<string, string> = {\n \"0\": \"⁰\",\n \"1\": \"¹\",\n \"2\": \"²\",\n \"3\": \"³\",\n \"4\": \"⁴\",\n \"5\": \"⁵\",\n \"6\": \"⁶\",\n \"7\": \"⁷\",\n \"8\": \"⁸\",\n \"9\": \"⁹\",\n \"-\": \"⁻\",\n };\n\n return str\n .split(\"\")\n .map((char) => superscriptMap[char] || char)\n .join(\"\");\n }\n\n /**\n * Converts digits to subscript\n */\n private toSubscript(str: string): string {\n const subscriptMap: Record<string, string> = {\n \"0\": \"₀\",\n \"1\": \"₁\",\n \"2\": \"₂\",\n \"3\": \"₃\",\n \"4\": \"₄\",\n \"5\": \"₅\",\n \"6\": \"₆\",\n \"7\": \"₇\",\n \"8\": \"₈\",\n \"9\": \"₉\",\n \"-\": \"₋\",\n };\n\n return str\n .split(\"\")\n .map((char) => subscriptMap[char] || char)\n .join(\"\");\n }\n}\n\n\n\nconst numbers = new Numbers()\n\nexport default numbers"],"mappings":"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"}
package/dist/utils.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./search-CwMav5QB.cjs`),t=require(`./animation-CQRdLgzX.cjs`),n=require(`./overlay-stack-7bs4ZNnh.cjs`),r=require(`./intersection-DqBqnpgh.cjs`),i=require(`./utils-CBPQvxNW.cjs`);exports.ANIMATION_CSS_VARS=t.t,exports.BLACKBIRD_EASING=t.n,exports.DURATION_BACKDROP=t.r,exports.DURATION_ENTER=t.i,exports.DURATION_EXIT=t.a,exports.EASE_IN=t.o,exports.EASE_OUT=t.s,exports.GRID_ANIMATION_CSS=t.c,exports.Numbers=i.t,exports.SPRING_BOUNCY=t.l,exports.SPRING_GENTLE=t.u,exports.SPRING_SMOOTH=t.d,exports.SPRING_SNAPPY=t.f,exports.createAnimation=t.p,exports.createDismissAnimation=t.m,exports.createRevealAnimation=t.h,exports.createScaleAnimation=t.g,exports.getEasing=t._,exports.intersection$=r.t,exports.overlayStack=n.t,exports.prefersReducedMotion=t.v,exports.similarity=e.t,exports.tailwindAnimations=t.y;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./search-BLCRsxIC.cjs`),t=require(`./animation-CO_Csq84.cjs`),n=require(`./overlay-stack-BprhAE9a.cjs`),r=require(`./utils-Cr-YO4Np.cjs`);exports.ANIMATION_CSS_VARS=t.t,exports.BLACKBIRD_EASING=t.n,exports.DURATION_BACKDROP=t.r,exports.DURATION_ENTER=t.i,exports.DURATION_EXIT=t.a,exports.EASE_IN=t.o,exports.EASE_OUT=t.s,exports.GRID_ANIMATION_CSS=t.c,exports.Numbers=r.t,exports.SPRING_BOUNCY=t.l,exports.SPRING_GENTLE=t.u,exports.SPRING_SMOOTH=t.d,exports.SPRING_SNAPPY=t.f,exports.createAnimation=t.p,exports.createDismissAnimation=t.m,exports.createRevealAnimation=t.h,exports.createScaleAnimation=t.g,exports.getEasing=t._,exports.intersection$=r.n,exports.overlayStack=n.t,exports.prefersReducedMotion=t.v,exports.similarity=e.t,exports.tailwindAnimations=t.y;
package/dist/utils.js CHANGED
@@ -1,6 +1,5 @@
1
- import { t as e } from "./search-CvUZRLF1.js";
2
- import { _ as t, a as n, c as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _, v, y } from "./animation-hXFClrIn.js";
3
- import { t as b } from "./overlay-stack-DXPYHPhk.js";
4
- import { t as x } from "./intersection-BrXp4YTO.js";
5
- import { t as S } from "./utils-Bp2jhyZc.js";
1
+ import { t as e } from "./search-BTz7-Rev.js";
2
+ import { _ as t, a as n, c as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _, v, y } from "./animation-BK-8BwY8.js";
3
+ import { t as b } from "./overlay-stack-CAQno0CK.js";
4
+ import { n as x, t as S } from "./utils-hp-DnFf5.js";
6
5
  export { g as ANIMATION_CSS_VARS, d as BLACKBIRD_EASING, m as DURATION_BACKDROP, c as DURATION_ENTER, n as DURATION_EXIT, f as EASE_IN, h as EASE_OUT, r as GRID_ANIMATION_CSS, S as Numbers, l as SPRING_BOUNCY, _ as SPRING_GENTLE, i as SPRING_SMOOTH, a as SPRING_SNAPPY, p as createAnimation, u as createDismissAnimation, s as createRevealAnimation, o as createScaleAnimation, t as getEasing, x as intersection$, b as overlayStack, v as prefersReducedMotion, e as similarity, y as tailwindAnimations };
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./tailwind.mixin-DRI1oTYQ.cjs`),t=require(`./decorate-F9CuyeHg.cjs`);require(`./mixins.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends e.t(r.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-De3xfjrm.cjs`),t=require(`./decorate-DpFmy0nm.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends e.s{static{this.styles=[r.css`
2
2
  :host {
3
3
  position: absolute;
4
4
  width: 1px;
@@ -10,4 +10,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./ch
10
10
  white-space: nowrap;
11
11
  border-width: 0;
12
12
  }
13
- `){render(){return r.html`<slot></slot>`}};i=t.t([(0,n.customElement)(`schmancy-visually-hidden`)],i),Object.defineProperty(exports,`SchmancyVisuallyHidden`,{enumerable:!0,get:function(){return i}});
13
+ `]}render(){return r.html`<slot></slot>`}};i=t.t([(0,n.customElement)(`schmancy-visually-hidden`)],i),Object.defineProperty(exports,`SchmancyVisuallyHidden`,{enumerable:!0,get:function(){return i}});
@@ -1 +1 @@
1
- {"version":3,"file":"visually-hidden.cjs","names":[],"sources":["../src/visually-hidden/visually-hidden.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * Hides content visually while keeping it in the accessibility tree. Use for\n * screen-reader-only labels, supplemental descriptions, and live-region text\n * that sighted users don't need to see.\n *\n * Uses the WCAG-recommended clip pattern rather than `display: none` or\n * `visibility: hidden` so assistive tech still reads the content.\n *\n * @element schmancy-visually-hidden\n * @slot - Content hidden from sighted users but exposed to assistive tech.\n */\n@customElement('schmancy-visually-hidden')\nexport class SchmancyVisuallyHidden extends TailwindElement(css`\n\t:host {\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\tpadding: 0;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tclip: rect(0, 0, 0, 0);\n\t\twhite-space: nowrap;\n\t\tborder-width: 0;\n\t}\n`) {\n\trender() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-visually-hidden': SchmancyVisuallyHidden\n\t}\n}\n"],"mappings":"qQAgBO,IAAA,EAAA,cAAqC,EAAA,EAAgB,EAAA,GAAG;;;;;;;;;;;;GAa9D,QAAA,CACC,MAAO,GAAA,IAAI,kBAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAfE,2BAAA,CAAA,CAA2B,EAAA,CAAA,OAAA,eAAA,QAAA,yBAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"visually-hidden.cjs","names":[],"sources":["../src/visually-hidden/visually-hidden.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * Hides content visually while keeping it in the accessibility tree. Use for\n * screen-reader-only labels, supplemental descriptions, and live-region text\n * that sighted users don't need to see.\n *\n * Uses the WCAG-recommended clip pattern rather than `display: none` or\n * `visibility: hidden` so assistive tech still reads the content.\n *\n * @element schmancy-visually-hidden\n * @slot - Content hidden from sighted users but exposed to assistive tech.\n */\n@customElement('schmancy-visually-hidden')\nexport class SchmancyVisuallyHidden extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\tpadding: 0;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tclip: rect(0, 0, 0, 0);\n\t\twhite-space: nowrap;\n\t\tborder-width: 0;\n\t}\n`];\n\trender() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-visually-hidden': SchmancyVisuallyHidden\n\t}\n}\n"],"mappings":"qOAgBO,IAAA,EAAA,cAAqC,EAAA,CAAA,CAAA,OAAA,KAAA,OAC3B,CAAC,EAAA,GAAG;;;;;;;;;;;;GAapB,QAAA,CACC,MAAO,GAAA,IAAI,kBAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAhBE,2BAAA,CAAA,CAA2B,EAAA,CAAA,OAAA,eAAA,QAAA,yBAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
@@ -1,9 +1,10 @@
1
- import { t as e } from "./tailwind.mixin-mdQR3BEO.js";
2
- import { t } from "./decorate-D_utPUsC.js";
3
- import "./mixins.js";
1
+ import { s as e } from "./mixins-CcIWET41.js";
2
+ import { t } from "./decorate-23nYs4Le.js";
4
3
  import { customElement as n } from "lit/decorators.js";
5
4
  import { css as r, html as i } from "lit";
6
- var a = class extends e(r`
5
+ var a = class extends e {
6
+ static {
7
+ this.styles = [r`
7
8
  :host {
8
9
  position: absolute;
9
10
  width: 1px;
@@ -15,7 +16,8 @@ var a = class extends e(r`
15
16
  white-space: nowrap;
16
17
  border-width: 0;
17
18
  }
18
- `) {
19
+ `];
20
+ }
19
21
  render() {
20
22
  return i`<slot></slot>`;
21
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"visually-hidden.js","names":[],"sources":["../src/visually-hidden/visually-hidden.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * Hides content visually while keeping it in the accessibility tree. Use for\n * screen-reader-only labels, supplemental descriptions, and live-region text\n * that sighted users don't need to see.\n *\n * Uses the WCAG-recommended clip pattern rather than `display: none` or\n * `visibility: hidden` so assistive tech still reads the content.\n *\n * @element schmancy-visually-hidden\n * @slot - Content hidden from sighted users but exposed to assistive tech.\n */\n@customElement('schmancy-visually-hidden')\nexport class SchmancyVisuallyHidden extends TailwindElement(css`\n\t:host {\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\tpadding: 0;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tclip: rect(0, 0, 0, 0);\n\t\twhite-space: nowrap;\n\t\tborder-width: 0;\n\t}\n`) {\n\trender() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-visually-hidden': SchmancyVisuallyHidden\n\t}\n}\n"],"mappings":";;;;;AAgBO,IAAA,IAAA,cAAqC,EAAgB,CAAG;;;;;;;;;;;;;CAa9D,SAAA;AACC,SAAO,CAAI;;;AAAA,IAAA,EAAA,CAfZ,EAAc,2BAAA,CAAA,EAA2B,EAAA;AAAA,SAAA,KAAA"}
1
+ {"version":3,"file":"visually-hidden.js","names":[],"sources":["../src/visually-hidden/visually-hidden.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * Hides content visually while keeping it in the accessibility tree. Use for\n * screen-reader-only labels, supplemental descriptions, and live-region text\n * that sighted users don't need to see.\n *\n * Uses the WCAG-recommended clip pattern rather than `display: none` or\n * `visibility: hidden` so assistive tech still reads the content.\n *\n * @element schmancy-visually-hidden\n * @slot - Content hidden from sighted users but exposed to assistive tech.\n */\n@customElement('schmancy-visually-hidden')\nexport class SchmancyVisuallyHidden extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\tpadding: 0;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tclip: rect(0, 0, 0, 0);\n\t\twhite-space: nowrap;\n\t\tborder-width: 0;\n\t}\n`];\n\trender() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-visually-hidden': SchmancyVisuallyHidden\n\t}\n}\n"],"mappings":";;;;AAgBO,IAAA,IAAA,cAAqC,EAAA;CAAA;AAAA,OAAA,SAC3B,CAAC,CAAG;;;;;;;;;;;;;;CAapB,SAAA;AACC,SAAO,CAAI;;;AAAA,IAAA,EAAA,CAhBZ,EAAc,2BAAA,CAAA,EAA2B,EAAA;AAAA,SAAA,KAAA"}
@@ -1,11 +1,10 @@
1
- import { t as e } from "./decorate-D_utPUsC.js";
2
- import { t } from "./litElement.mixin-CszkJuNl.js";
3
- import "./mixins.js";
4
- import { d as n, f as r } from "./animation-hXFClrIn.js";
5
- import { t as i } from "./reduced-motion-BZTLqAyl.js";
6
- import { t as a } from "./cursor-glow-BydlDInj.js";
7
- import { n as o } from "./theme.service-cOfPrtfe.js";
8
- import { t as s } from "./overlay-stack-DXPYHPhk.js";
1
+ import { s as e } from "./mixins-CcIWET41.js";
2
+ import { t } from "./decorate-23nYs4Le.js";
3
+ import { d as n, f as r } from "./animation-BK-8BwY8.js";
4
+ import { t as i } from "./reduced-motion-D-L12p7G.js";
5
+ import { t as a } from "./cursor-glow-Ah7VXSj7.js";
6
+ import { n as o } from "./theme.service-CmbOGMA8.js";
7
+ import { t as s } from "./overlay-stack-CAQno0CK.js";
9
8
  import { BehaviorSubject as c, EMPTY as l, Observable as u, animationFrameScheduler as d, auditTime as f, catchError as p, distinctUntilChanged as m, filter as h, finalize as g, from as _, fromEvent as v, map as y, merge as b, switchMap as x, take as S, takeUntil as C, tap as w } from "rxjs";
10
9
  import { classMap as T } from "lit/directives/class-map.js";
11
10
  import { styleMap as E } from "lit/directives/style-map.js";
@@ -143,11 +142,7 @@ function B(e, t, n) {
143
142
  for (let e = 0; e < 10 && t.some((e) => {
144
143
  return t = r, n = e.bounds, !(t.left >= n.left + n.width || t.left + t.width <= n.left || t.top >= n.top + n.height || t.top + t.height <= n.top);
145
144
  var t, n;
146
- }); e++) r = {
147
- ...r,
148
- left: r.left + 44,
149
- top: r.top + 44
150
- };
145
+ }); e++) r.left += 44, r.top += 44;
151
146
  return function(e, t) {
152
147
  return {
153
148
  width: e.width,
@@ -157,16 +152,7 @@ function B(e, t, n) {
157
152
  };
158
153
  }(r, n);
159
154
  }
160
- var V = 48, H = class extends t(A`
161
- :host {
162
- display: contents;
163
- position: relative;
164
- z-index: 1000;
165
- }
166
- :host([hidden]) {
167
- display: none !important;
168
- }
169
- `) {
155
+ var V = 48, H = class extends e {
170
156
  static {
171
157
  R = this;
172
158
  }
@@ -186,6 +172,18 @@ var V = 48, H = class extends t(A`
186
172
  }
187
173
  };
188
174
  }
175
+ static {
176
+ this.styles = [A`
177
+ :host {
178
+ display: contents;
179
+ position: relative;
180
+ z-index: 1000;
181
+ }
182
+ :host([hidden]) {
183
+ display: none !important;
184
+ }
185
+ `];
186
+ }
189
187
  get panelWidth() {
190
188
  return this.expandedWidth ?? "min(360px, calc(100vw - 32px))";
191
189
  }
@@ -199,7 +197,7 @@ var V = 48, H = class extends t(A`
199
197
  return "inset(0px 0px 0px 0px round 12px)";
200
198
  }
201
199
  get elevation() {
202
- return this.open ? "4" : this.lowered ? "1" : "3";
200
+ return this.open ? 4 : this.lowered ? 1 : 3;
203
201
  }
204
202
  _applyContainerPosition() {
205
203
  let e = this._containerRef.value;
@@ -480,7 +478,7 @@ var V = 48, H = class extends t(A`
480
478
  <schmancy-surface
481
479
  ${P(this._containerRef)}
482
480
  type="glass"
483
- elevation="${this.elevation}"
481
+ .elevation=${this.elevation}
484
482
  class=${t}
485
483
  style=${n}
486
484
  aria-expanded=${this.open}
@@ -534,15 +532,15 @@ var V = 48, H = class extends t(A`
534
532
  `;
535
533
  }
536
534
  };
537
- e([O({ type: String })], H.prototype, "id", void 0), e([O({ type: String })], H.prototype, "expandedWidth", void 0), e([O({ type: String })], H.prototype, "expandedHeight", void 0), e([O({
535
+ t([O({ type: String })], H.prototype, "id", void 0), t([O({ type: String })], H.prototype, "expandedWidth", void 0), t([O({ type: String })], H.prototype, "expandedHeight", void 0), t([O({
538
536
  type: Boolean,
539
537
  reflect: !0
540
- })], H.prototype, "lowered", void 0), e([O({ type: String })], H.prototype, "corner", void 0), e([O({ type: Boolean })], H.prototype, "resizable", void 0), e([O({ type: Boolean })], H.prototype, "freePosition", void 0), e([O({
538
+ })], H.prototype, "lowered", void 0), t([O({ type: String })], H.prototype, "corner", void 0), t([O({ type: Boolean })], H.prototype, "resizable", void 0), t([O({ type: Boolean })], H.prototype, "freePosition", void 0), t([O({
541
539
  type: String,
542
540
  reflect: !0
543
- })], H.prototype, "visualState", void 0), e([O({ type: Number })], H.prototype, "minWidth", void 0), e([O({ type: Number })], H.prototype, "minHeight", void 0), e([O({
541
+ })], H.prototype, "visualState", void 0), t([O({ type: Number })], H.prototype, "minWidth", void 0), t([O({ type: Number })], H.prototype, "minHeight", void 0), t([O({
544
542
  type: Boolean,
545
543
  reflect: !0
546
- })], H.prototype, "open", void 0), e([k()], H.prototype, "_hasOpened", void 0), e([k()], H.prototype, "_focused", void 0), e([k()], H.prototype, "_currentCorner", void 0);
547
- var U = H = R = e([D("schmancy-window")], H);
544
+ })], H.prototype, "open", void 0), t([k()], H.prototype, "_hasOpened", void 0), t([k()], H.prototype, "_focused", void 0), t([k()], H.prototype, "_currentCorner", void 0);
545
+ var U = H = R = t([D("schmancy-window")], H);
548
546
  export { z as n, U as t };