@mhmo91/schmancy 0.10.6 → 0.10.7

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 (394) hide show
  1. package/README.md +11 -0
  2. package/custom-elements.json +11 -880
  3. package/dist/agent/{flow-3RrZM-e7.js.map → flow-CvG1fLW5.js.map} +1 -1
  4. package/dist/agent/schmancy.agent.js +5223 -10404
  5. package/dist/agent/schmancy.agent.js.map +1 -1
  6. package/dist/agent/schmancy.manifest.json +4 -537
  7. package/dist/agent/{vendor-material-color-33Mj762T.js.map → vendor-material-color-DcL7ZPxx.js.map} +1 -1
  8. package/dist/{area-oZjYJlUy.cjs → area-8IBAXzbC.cjs} +1 -1
  9. package/dist/{area-oZjYJlUy.cjs.map → area-8IBAXzbC.cjs.map} +1 -1
  10. package/dist/{area-CIZZ5tbB.js → area-DSW_LYXQ.js} +1 -1
  11. package/dist/{area-CIZZ5tbB.js.map → area-DSW_LYXQ.js.map} +1 -1
  12. package/dist/area.cjs +1 -1
  13. package/dist/area.js +1 -1
  14. package/dist/{autocomplete-X20i6D62.cjs → autocomplete-9PLjlFYt.cjs} +1 -1
  15. package/dist/{autocomplete-X20i6D62.cjs.map → autocomplete-9PLjlFYt.cjs.map} +1 -1
  16. package/dist/{autocomplete-C1oDLuol.js → autocomplete-CXwwmUbC.js} +2 -2
  17. package/dist/{autocomplete-C1oDLuol.js.map → autocomplete-CXwwmUbC.js.map} +1 -1
  18. package/dist/autocomplete.cjs +1 -1
  19. package/dist/autocomplete.js +1 -1
  20. package/dist/avatar.cjs +1 -1
  21. package/dist/avatar.js +2 -2
  22. package/dist/badge.cjs +1 -1
  23. package/dist/badge.js +1 -1
  24. package/dist/{boat-CUx58Gwe.cjs → boat-CpGNeWav.cjs} +1 -1
  25. package/dist/{boat-CUx58Gwe.cjs.map → boat-CpGNeWav.cjs.map} +1 -1
  26. package/dist/{boat-CpE0yAlK.js → boat-Dwn5oXd8.js} +1 -1
  27. package/dist/{boat-CpE0yAlK.js.map → boat-Dwn5oXd8.js.map} +1 -1
  28. package/dist/boat.cjs +1 -1
  29. package/dist/boat.js +1 -1
  30. package/dist/breadcrumb.cjs +1 -1
  31. package/dist/breadcrumb.js +1 -1
  32. package/dist/{busy-D1DKZhgV.cjs → busy-CUUgvimY.cjs} +1 -1
  33. package/dist/{busy-D1DKZhgV.cjs.map → busy-CUUgvimY.cjs.map} +1 -1
  34. package/dist/{busy-C9n-DUY4.js → busy-Cjm1BYVC.js} +1 -1
  35. package/dist/{busy-C9n-DUY4.js.map → busy-Cjm1BYVC.js.map} +1 -1
  36. package/dist/busy.cjs +1 -1
  37. package/dist/busy.js +1 -1
  38. package/dist/button.cjs +1 -1
  39. package/dist/button.js +1 -1
  40. package/dist/{card-B3hN-qzk.js → card-BR22oYCL.js} +1 -1
  41. package/dist/{card-B3hN-qzk.js.map → card-BR22oYCL.js.map} +1 -1
  42. package/dist/{card-DZJ7qjf2.cjs → card-BjZ_WRr3.cjs} +1 -1
  43. package/dist/{card-DZJ7qjf2.cjs.map → card-BjZ_WRr3.cjs.map} +1 -1
  44. package/dist/card.cjs +1 -1
  45. package/dist/card.js +1 -1
  46. package/dist/{checkbox-DapdzDow.cjs → checkbox-2e8v7CNg.cjs} +1 -1
  47. package/dist/{checkbox-DapdzDow.cjs.map → checkbox-2e8v7CNg.cjs.map} +1 -1
  48. package/dist/{checkbox-CvmB1ev9.js → checkbox-CsADwyfu.js} +1 -1
  49. package/dist/{checkbox-CvmB1ev9.js.map → checkbox-CsADwyfu.js.map} +1 -1
  50. package/dist/checkbox.cjs +1 -1
  51. package/dist/checkbox.js +1 -1
  52. package/dist/{chips-C8Y3_3ke.js → chips-C9HwVbGT.js} +2 -2
  53. package/dist/{chips-C8Y3_3ke.js.map → chips-C9HwVbGT.js.map} +1 -1
  54. package/dist/{chips-7g6mWRuh.cjs → chips-DPCcO55o.cjs} +1 -1
  55. package/dist/{chips-7g6mWRuh.cjs.map → chips-DPCcO55o.cjs.map} +1 -1
  56. package/dist/chips.cjs +1 -1
  57. package/dist/chips.js +2 -2
  58. package/dist/connectivity.cjs +1 -1
  59. package/dist/connectivity.js +1 -1
  60. package/dist/content-drawer.cjs +1 -1
  61. package/dist/content-drawer.js +1 -1
  62. package/dist/{date-range-ZfUl4duV.cjs → date-range-63-FC7gD.cjs} +1 -1
  63. package/dist/{date-range-ZfUl4duV.cjs.map → date-range-63-FC7gD.cjs.map} +1 -1
  64. package/dist/{date-range-DdcaPX7C.js → date-range-CFaP-8Os.js} +2 -2
  65. package/dist/{date-range-DdcaPX7C.js.map → date-range-CFaP-8Os.js.map} +1 -1
  66. package/dist/{date-range-inline-QQmIWhZ4.js → date-range-inline-BCuK_XCv.js} +1 -1
  67. package/dist/{date-range-inline-QQmIWhZ4.js.map → date-range-inline-BCuK_XCv.js.map} +1 -1
  68. package/dist/{date-range-inline-D-d7N6bh.cjs → date-range-inline-Cpdqd-8B.cjs} +1 -1
  69. package/dist/{date-range-inline-D-d7N6bh.cjs.map → date-range-inline-Cpdqd-8B.cjs.map} +1 -1
  70. package/dist/date-range-inline.cjs +1 -1
  71. package/dist/date-range-inline.js +1 -1
  72. package/dist/date-range.cjs +1 -1
  73. package/dist/date-range.js +1 -1
  74. package/dist/delay.cjs +1 -1
  75. package/dist/delay.js +1 -1
  76. package/dist/{details-Dpjh-XnJ.js → details-0dOlqHHL.js} +1 -1
  77. package/dist/{details-Dpjh-XnJ.js.map → details-0dOlqHHL.js.map} +1 -1
  78. package/dist/{details-3rL6UQU8.cjs → details-qKikJIyH.cjs} +1 -1
  79. package/dist/{details-3rL6UQU8.cjs.map → details-qKikJIyH.cjs.map} +1 -1
  80. package/dist/details.cjs +1 -1
  81. package/dist/details.js +1 -1
  82. package/dist/{divider-BdfEKQsH.js → divider-BxkIl0H1.js} +1 -1
  83. package/dist/{divider-BdfEKQsH.js.map → divider-BxkIl0H1.js.map} +1 -1
  84. package/dist/{divider-CutXDz3F.cjs → divider-CX9mmWZ8.cjs} +1 -1
  85. package/dist/{divider-CutXDz3F.cjs.map → divider-CX9mmWZ8.cjs.map} +1 -1
  86. package/dist/divider.cjs +1 -1
  87. package/dist/divider.js +1 -1
  88. package/dist/dropdown.cjs +1 -1
  89. package/dist/dropdown.js +1 -1
  90. package/dist/{expand-DM6zfZf7.cjs → expand-891JuQuN.cjs} +1 -1
  91. package/dist/{expand-DM6zfZf7.cjs.map → expand-891JuQuN.cjs.map} +1 -1
  92. package/dist/{expand-DrgMPJbu.js → expand-BeAx94MP.js} +2 -2
  93. package/dist/{expand-DrgMPJbu.js.map → expand-BeAx94MP.js.map} +1 -1
  94. package/dist/expand.cjs +1 -1
  95. package/dist/expand.js +1 -1
  96. package/dist/{float-1iihPek5.js → float-BPF2WO4L.js} +1 -1
  97. package/dist/{float-1iihPek5.js.map → float-BPF2WO4L.js.map} +1 -1
  98. package/dist/{float-Ckyk85XG.cjs → float-D7vvODxx.cjs} +1 -1
  99. package/dist/{float-Ckyk85XG.cjs.map → float-D7vvODxx.cjs.map} +1 -1
  100. package/dist/float.cjs +1 -1
  101. package/dist/float.js +1 -1
  102. package/dist/{form-BF1c3Dk1.js.map → form-CFvwnfuJ.js.map} +1 -1
  103. package/dist/{form-DeO5XX3b.cjs.map → form-Ceijw1aA.cjs.map} +1 -1
  104. package/dist/form.cjs +1 -1
  105. package/dist/form.js +1 -1
  106. package/dist/handover/agent-runtime-followups.md +1 -1
  107. package/dist/handover/agent-runtime-v1.md +3 -3
  108. package/dist/{icons-DUkcTZAY.js → icons-BKxW_7QR.js} +1 -1
  109. package/dist/{icons-DUkcTZAY.js.map → icons-BKxW_7QR.js.map} +1 -1
  110. package/dist/{icons-CV-fiGcW.cjs → icons-QSdo-8h9.cjs} +1 -1
  111. package/dist/{icons-CV-fiGcW.cjs.map → icons-QSdo-8h9.cjs.map} +1 -1
  112. package/dist/icons.cjs +1 -1
  113. package/dist/icons.js +1 -1
  114. package/dist/{iframe-C9tj7F6Y.js → iframe-BxvbhyTS.js} +1 -1
  115. package/dist/{iframe-C9tj7F6Y.js.map → iframe-BxvbhyTS.js.map} +1 -1
  116. package/dist/{iframe-DF97oGtZ.cjs → iframe-CMKV-bm8.cjs} +1 -1
  117. package/dist/{iframe-DF97oGtZ.cjs.map → iframe-CMKV-bm8.cjs.map} +1 -1
  118. package/dist/iframe.cjs +1 -1
  119. package/dist/iframe.js +1 -1
  120. package/dist/index.cjs +1 -1
  121. package/dist/index.js +52 -58
  122. package/dist/{input-TW9G3n7X.cjs → input-BFhJU74_.cjs} +1 -1
  123. package/dist/{input-TW9G3n7X.cjs.map → input-BFhJU74_.cjs.map} +1 -1
  124. package/dist/{input-DE7x223Y.js → input-DIqaR8Mr.js} +1 -1
  125. package/dist/{input-DE7x223Y.js.map → input-DIqaR8Mr.js.map} +1 -1
  126. package/dist/{input-chip-BdoaVw_D.js → input-chip-D9tlSk_2.js} +1 -1
  127. package/dist/{input-chip-BdoaVw_D.js.map → input-chip-D9tlSk_2.js.map} +1 -1
  128. package/dist/{input-chip-Do48eI5r.cjs → input-chip-w09qTt7J.cjs} +1 -1
  129. package/dist/{input-chip-Do48eI5r.cjs.map → input-chip-w09qTt7J.cjs.map} +1 -1
  130. package/dist/input.cjs +1 -1
  131. package/dist/input.js +1 -1
  132. package/dist/json.cjs +1 -1
  133. package/dist/json.js +2 -2
  134. package/dist/kbd.cjs +1 -1
  135. package/dist/kbd.js +1 -1
  136. package/dist/layout.cjs +1 -1
  137. package/dist/layout.js +1 -1
  138. package/dist/{lightbox-sPfnYzjJ.cjs → lightbox-CK035jsx.cjs} +1 -1
  139. package/dist/{lightbox-sPfnYzjJ.cjs.map → lightbox-CK035jsx.cjs.map} +1 -1
  140. package/dist/{lightbox-DcutIyjx.js → lightbox-GChmL3Ff.js} +1 -1
  141. package/dist/{lightbox-DcutIyjx.js.map → lightbox-GChmL3Ff.js.map} +1 -1
  142. package/dist/lightbox.cjs +1 -1
  143. package/dist/lightbox.js +1 -1
  144. package/dist/{list-C4vasUly.cjs → list-B3P37zlH.cjs} +1 -1
  145. package/dist/{list-C4vasUly.cjs.map → list-B3P37zlH.cjs.map} +1 -1
  146. package/dist/{list-BWrtrdgs.js → list-J-Fz24Z1.js} +1 -1
  147. package/dist/{list-BWrtrdgs.js.map → list-J-Fz24Z1.js.map} +1 -1
  148. package/dist/list.cjs +1 -1
  149. package/dist/list.js +1 -1
  150. package/dist/{menu-3yXDZusj.cjs → menu-BnFd8CwU.cjs} +1 -1
  151. package/dist/{menu-3yXDZusj.cjs.map → menu-BnFd8CwU.cjs.map} +1 -1
  152. package/dist/{menu-CxChOxWT.js → menu-DHTlUwXS.js} +2 -2
  153. package/dist/{menu-CxChOxWT.js.map → menu-DHTlUwXS.js.map} +1 -1
  154. package/dist/menu.cjs +1 -1
  155. package/dist/menu.js +1 -1
  156. package/dist/mixins-47_CZk7q.cjs +298 -0
  157. package/dist/{mixins-Db7gjDah.cjs.map → mixins-47_CZk7q.cjs.map} +1 -1
  158. package/dist/mixins-PBJJGiiP.js +627 -0
  159. package/dist/{mixins-Dw6hVfy-.js.map → mixins-PBJJGiiP.js.map} +1 -1
  160. package/dist/mixins.cjs +1 -1
  161. package/dist/mixins.js +1 -1
  162. package/dist/nav-drawer.cjs +1 -1
  163. package/dist/nav-drawer.js +1 -1
  164. package/dist/navigation-bar.cjs +1 -1
  165. package/dist/navigation-bar.js +1 -1
  166. package/dist/navigation-rail.cjs +1 -1
  167. package/dist/navigation-rail.js +1 -1
  168. package/dist/{notification-DKYy9qVe.cjs → notification-B6YBL0hx.cjs} +1 -1
  169. package/dist/{notification-DKYy9qVe.cjs.map → notification-B6YBL0hx.cjs.map} +1 -1
  170. package/dist/{notification-ycbUBbOu.js → notification-C-5Bv3vj.js} +2 -2
  171. package/dist/{notification-ycbUBbOu.js.map → notification-C-5Bv3vj.js.map} +1 -1
  172. package/dist/notification.cjs +1 -1
  173. package/dist/notification.js +1 -1
  174. package/dist/{option-DtOhMd3k.js → option-B7q6VXCu.js} +1 -1
  175. package/dist/{option-DtOhMd3k.js.map → option-B7q6VXCu.js.map} +1 -1
  176. package/dist/{option-zgVge3BH.cjs → option-DVQRa3nr.cjs} +1 -1
  177. package/dist/{option-zgVge3BH.cjs.map → option-DVQRa3nr.cjs.map} +1 -1
  178. package/dist/option.cjs +1 -1
  179. package/dist/option.js +1 -1
  180. package/dist/overlay.cjs +1 -1
  181. package/dist/{overlay.confirm-body-AFqYBqrI.js → overlay.confirm-body-CAY5xK1n.js} +1 -1
  182. package/dist/{overlay.confirm-body-AFqYBqrI.js.map → overlay.confirm-body-CAY5xK1n.js.map} +1 -1
  183. package/dist/{overlay.confirm-body-DctQLDao.cjs → overlay.confirm-body-XZtErofy.cjs} +1 -1
  184. package/dist/{overlay.confirm-body-DctQLDao.cjs.map → overlay.confirm-body-XZtErofy.cjs.map} +1 -1
  185. package/dist/overlay.js +3 -3
  186. package/dist/{overlay.service-B9On2-Aa.js → overlay.service-BZE_lwKO.js} +2 -2
  187. package/dist/{overlay.service-B9On2-Aa.js.map → overlay.service-BZE_lwKO.js.map} +1 -1
  188. package/dist/{overlay.service-k2nCE4pi.cjs → overlay.service-Oyjrw831.cjs} +1 -1
  189. package/dist/{overlay.service-k2nCE4pi.cjs.map → overlay.service-Oyjrw831.cjs.map} +1 -1
  190. package/dist/page.cjs +1 -1
  191. package/dist/page.js +2 -2
  192. package/dist/{progress-BFWzmTlz.js → progress-BHXLYs9i.js} +1 -1
  193. package/dist/{progress-BFWzmTlz.js.map → progress-BHXLYs9i.js.map} +1 -1
  194. package/dist/{progress-C4TGG2eN.cjs → progress-D99bumkC.cjs} +1 -1
  195. package/dist/{progress-C4TGG2eN.cjs.map → progress-D99bumkC.cjs.map} +1 -1
  196. package/dist/progress.cjs +1 -1
  197. package/dist/progress.js +1 -1
  198. package/dist/{radio-group-DTNAW5dd.js → radio-group-BYra5_q1.js} +1 -1
  199. package/dist/{radio-group-DTNAW5dd.js.map → radio-group-BYra5_q1.js.map} +1 -1
  200. package/dist/{radio-group-xLRp1g57.cjs → radio-group-DYsycLmD.cjs} +1 -1
  201. package/dist/{radio-group-xLRp1g57.cjs.map → radio-group-DYsycLmD.cjs.map} +1 -1
  202. package/dist/radio-group.cjs +1 -1
  203. package/dist/radio-group.js +1 -1
  204. package/dist/range.cjs +1 -1
  205. package/dist/range.js +1 -1
  206. package/dist/{rxjs-utils-BK8VMe3K.js.map → rxjs-utils-CVeJQ9KG.js.map} +1 -1
  207. package/dist/{rxjs-utils-DhOKenkS.cjs.map → rxjs-utils-DCUHg_Ml.cjs.map} +1 -1
  208. package/dist/rxjs-utils.cjs +1 -1
  209. package/dist/rxjs-utils.js +1 -1
  210. package/dist/{scroll-BCmdqSQU.js → scroll-TqNWZ0lo.js} +1 -1
  211. package/dist/{scroll-BCmdqSQU.js.map → scroll-TqNWZ0lo.js.map} +1 -1
  212. package/dist/{scroll-Bdgb-vRy.cjs → scroll-cayCBOrq.cjs} +1 -1
  213. package/dist/{scroll-Bdgb-vRy.cjs.map → scroll-cayCBOrq.cjs.map} +1 -1
  214. package/dist/{select-Cv5t_PT3.cjs → select-CRdSmlLq.cjs} +1 -1
  215. package/dist/{select-Cv5t_PT3.cjs.map → select-CRdSmlLq.cjs.map} +1 -1
  216. package/dist/{select-COGARE0b.js → select-nzq0qFlF.js} +2 -2
  217. package/dist/{select-COGARE0b.js.map → select-nzq0qFlF.js.map} +1 -1
  218. package/dist/select.cjs +1 -1
  219. package/dist/select.js +1 -1
  220. package/dist/skeleton.cjs +1 -1
  221. package/dist/skeleton.js +1 -1
  222. package/dist/skills/INDEX.md +9 -3
  223. package/dist/skills/schmancy/INDEX.md +9 -3
  224. package/dist/slider.cjs +1 -1
  225. package/dist/slider.js +1 -1
  226. package/dist/{splash-screen-DbGbGttg.js → splash-screen-BJeIiJ_e.js} +1 -1
  227. package/dist/{splash-screen-DbGbGttg.js.map → splash-screen-BJeIiJ_e.js.map} +1 -1
  228. package/dist/{splash-screen-B8rFbjqT.cjs → splash-screen-BMLQXzDq.cjs} +1 -1
  229. package/dist/{splash-screen-B8rFbjqT.cjs.map → splash-screen-BMLQXzDq.cjs.map} +1 -1
  230. package/dist/splash-screen.cjs +1 -1
  231. package/dist/splash-screen.js +1 -1
  232. package/dist/{src-b8D-Ec-Q.cjs → src-DE11tq2Q.cjs} +1 -1
  233. package/dist/{src-b8D-Ec-Q.cjs.map → src-DE11tq2Q.cjs.map} +1 -1
  234. package/dist/{src-YRir9pOP.js → src-qvWlNoMO.js} +34 -40
  235. package/dist/{src-YRir9pOP.js.map → src-qvWlNoMO.js.map} +1 -1
  236. package/dist/steps.cjs +1 -1
  237. package/dist/steps.js +1 -1
  238. package/dist/{surface-BvudRtf5.cjs → surface-D426MFLR.cjs} +1 -1
  239. package/dist/{surface-BvudRtf5.cjs.map → surface-D426MFLR.cjs.map} +1 -1
  240. package/dist/{surface-BE7sGTBt.js → surface-DG7Cmm9V.js} +1 -1
  241. package/dist/{surface-BE7sGTBt.js.map → surface-DG7Cmm9V.js.map} +1 -1
  242. package/dist/surface.cjs +1 -1
  243. package/dist/surface.js +1 -1
  244. package/dist/switch.cjs +1 -1
  245. package/dist/switch.js +1 -1
  246. package/dist/table.cjs +1 -1
  247. package/dist/table.js +1 -1
  248. package/dist/{tabs-DIzCRsA3.js → tabs-B7siJkM5.js} +1 -1
  249. package/dist/{tabs-DIzCRsA3.js.map → tabs-B7siJkM5.js.map} +1 -1
  250. package/dist/{tabs-C0XKld1Z.cjs → tabs-t3nMfg1F.cjs} +1 -1
  251. package/dist/{tabs-C0XKld1Z.cjs.map → tabs-t3nMfg1F.cjs.map} +1 -1
  252. package/dist/tabs.cjs +1 -1
  253. package/dist/tabs.js +1 -1
  254. package/dist/teleport.cjs +1 -1
  255. package/dist/teleport.js +1 -1
  256. package/dist/{textarea-UbZzBwqm.js → textarea-DSxHCCle.js} +1 -1
  257. package/dist/{textarea-UbZzBwqm.js.map → textarea-DSxHCCle.js.map} +1 -1
  258. package/dist/{textarea-BCDCGCJd.cjs → textarea-o9vysorM.cjs} +1 -1
  259. package/dist/{textarea-BCDCGCJd.cjs.map → textarea-o9vysorM.cjs.map} +1 -1
  260. package/dist/textarea.cjs +1 -1
  261. package/dist/textarea.js +1 -1
  262. package/dist/{theme-CIsI-sFj.cjs → theme-Ce9eIP05.cjs} +1 -1
  263. package/dist/{theme-CIsI-sFj.cjs.map → theme-Ce9eIP05.cjs.map} +1 -1
  264. package/dist/{theme-Qh-yPEPL.js → theme-XO3nHDbW.js} +2 -2
  265. package/dist/{theme-Qh-yPEPL.js.map → theme-XO3nHDbW.js.map} +1 -1
  266. package/dist/{theme-button-CjTnfs9x.js → theme-button-DNutDO1j.js} +1 -1
  267. package/dist/{theme-button-CjTnfs9x.js.map → theme-button-DNutDO1j.js.map} +1 -1
  268. package/dist/{theme-button-Dv1D_Vil.cjs → theme-button-H7PRz_bg.cjs} +1 -1
  269. package/dist/{theme-button-Dv1D_Vil.cjs.map → theme-button-H7PRz_bg.cjs.map} +1 -1
  270. package/dist/theme-button.cjs +1 -1
  271. package/dist/theme-button.js +1 -1
  272. package/dist/theme.cjs +1 -1
  273. package/dist/{theme.interface-v7SkAnDH.js.map → theme.interface-B9TjbSBF.js.map} +1 -1
  274. package/dist/{theme.interface-BeW-sz_g.cjs.map → theme.interface-BujperTo.cjs.map} +1 -1
  275. package/dist/theme.js +3 -3
  276. package/dist/tree.cjs +1 -1
  277. package/dist/tree.js +1 -1
  278. package/dist/typography.cjs +1 -1
  279. package/dist/typography.js +1 -1
  280. package/dist/{utils-CJ9y2Jz9.cjs.map → utils-Dt5PpmaQ.cjs.map} +1 -1
  281. package/dist/{utils-BfOze6Tk.js.map → utils-kND2Z9Xg.js.map} +1 -1
  282. package/dist/utils.cjs +1 -1
  283. package/dist/utils.js +1 -1
  284. package/dist/visually-hidden.cjs +1 -1
  285. package/dist/visually-hidden.js +1 -1
  286. package/dist/{window-9HOUXrTU.cjs → window-BaoSwgGE.cjs} +1 -1
  287. package/dist/{window-9HOUXrTU.cjs.map → window-BaoSwgGE.cjs.map} +1 -1
  288. package/dist/{window-B_55dzk0.js → window-KnLWhQ3S.js} +1 -1
  289. package/dist/{window-B_55dzk0.js.map → window-KnLWhQ3S.js.map} +1 -1
  290. package/dist/window.cjs +1 -1
  291. package/dist/window.js +1 -1
  292. package/package.json +4 -4
  293. package/skills/schmancy/INDEX.md +9 -3
  294. package/src/index.ts +0 -6
  295. package/types/src/index.d.ts +0 -6
  296. package/dist/agent/vendor-jsqr-BUVwyoGC.js +0 -10212
  297. package/dist/agent/vendor-jsqr-BUVwyoGC.js.map +0 -1
  298. package/dist/charts.cjs +0 -112
  299. package/dist/charts.cjs.map +0 -1
  300. package/dist/charts.js +0 -374
  301. package/dist/charts.js.map +0 -1
  302. package/dist/extra-B6gFu4_1.js +0 -3440
  303. package/dist/extra-B6gFu4_1.js.map +0 -1
  304. package/dist/extra-DJRYaOXe.cjs +0 -31
  305. package/dist/extra-DJRYaOXe.cjs.map +0 -1
  306. package/dist/extra.cjs +0 -1
  307. package/dist/extra.js +0 -2
  308. package/dist/map-BAQ9FEB6.cjs +0 -80
  309. package/dist/map-BAQ9FEB6.cjs.map +0 -1
  310. package/dist/map-CEreveeI.js +0 -208
  311. package/dist/map-CEreveeI.js.map +0 -1
  312. package/dist/map.cjs +0 -1
  313. package/dist/map.js +0 -2
  314. package/dist/mixins-Db7gjDah.cjs +0 -298
  315. package/dist/mixins-Dw6hVfy-.js +0 -627
  316. package/dist/payment-card-form-Be1-OVlL.js +0 -729
  317. package/dist/payment-card-form-Be1-OVlL.js.map +0 -1
  318. package/dist/payment-card-form-CNnGePG4.cjs +0 -73
  319. package/dist/payment-card-form-CNnGePG4.cjs.map +0 -1
  320. package/dist/payment-card-form.cjs +0 -1
  321. package/dist/payment-card-form.js +0 -2
  322. package/dist/qr-scanner.cjs +0 -35
  323. package/dist/qr-scanner.cjs.map +0 -1
  324. package/dist/qr-scanner.js +0 -123
  325. package/dist/qr-scanner.js.map +0 -1
  326. package/dist/skills/charts.md +0 -93
  327. package/dist/skills/extra.md +0 -59
  328. package/dist/skills/map.md +0 -55
  329. package/dist/skills/qr-scanner.md +0 -51
  330. package/dist/skills/schmancy/charts.md +0 -93
  331. package/dist/skills/schmancy/extra.md +0 -59
  332. package/dist/skills/schmancy/map.md +0 -55
  333. package/dist/skills/schmancy/qr-scanner.md +0 -51
  334. package/dist/skills/schmancy/timeline-tile.md +0 -95
  335. package/dist/skills/timeline-tile.md +0 -95
  336. package/dist/timeline.cjs +0 -277
  337. package/dist/timeline.cjs.map +0 -1
  338. package/dist/timeline.js +0 -326
  339. package/dist/timeline.js.map +0 -1
  340. package/skills/schmancy/charts.md +0 -93
  341. package/skills/schmancy/extra.md +0 -59
  342. package/skills/schmancy/map.md +0 -55
  343. package/skills/schmancy/qr-scanner.md +0 -51
  344. package/skills/schmancy/timeline-tile.md +0 -95
  345. package/src/charts/area-chart.ts +0 -498
  346. package/src/charts/index.ts +0 -4
  347. package/src/charts/pills.ts +0 -352
  348. package/src/charts/types.ts +0 -66
  349. package/src/charts/utils.ts +0 -65
  350. package/src/extra/countries/countries.data.ts +0 -196
  351. package/src/extra/countries/countries.ts +0 -109
  352. package/src/extra/countries/index.ts +0 -2
  353. package/src/extra/index.ts +0 -2
  354. package/src/extra/timezone/index.ts +0 -2
  355. package/src/extra/timezone/timezone.ts +0 -118
  356. package/src/extra/timezone/timezones.data.ts +0 -2546
  357. package/src/map/index.ts +0 -1
  358. package/src/map/map.ts +0 -485
  359. package/src/payment-card-form/index.ts +0 -1
  360. package/src/payment-card-form/payment-card-form.ts +0 -331
  361. package/src/qr-scanner/index.ts +0 -1
  362. package/src/qr-scanner/qr-scanner.ts +0 -242
  363. package/src/timeline/index.ts +0 -1
  364. package/src/timeline/timeline-tile.ts +0 -431
  365. package/types/src/charts/area-chart.d.ts +0 -58
  366. package/types/src/charts/index.d.ts +0 -4
  367. package/types/src/charts/pills.d.ts +0 -51
  368. package/types/src/charts/types.d.ts +0 -62
  369. package/types/src/charts/utils.d.ts +0 -28
  370. package/types/src/extra/countries/countries.d.ts +0 -26
  371. package/types/src/extra/countries/countries.data.d.ts +0 -5
  372. package/types/src/extra/countries/index.d.ts +0 -2
  373. package/types/src/extra/index.d.ts +0 -2
  374. package/types/src/extra/timezone/index.d.ts +0 -2
  375. package/types/src/extra/timezone/timezone.d.ts +0 -34
  376. package/types/src/extra/timezone/timezones.data.d.ts +0 -7
  377. package/types/src/map/index.d.ts +0 -1
  378. package/types/src/map/map.d.ts +0 -130
  379. package/types/src/payment-card-form/index.d.ts +0 -1
  380. package/types/src/payment-card-form/payment-card-form.d.ts +0 -85
  381. package/types/src/qr-scanner/index.d.ts +0 -1
  382. package/types/src/qr-scanner/qr-scanner.d.ts +0 -26
  383. package/types/src/timeline/index.d.ts +0 -1
  384. package/types/src/timeline/timeline-tile.d.ts +0 -44
  385. /package/dist/agent/{flow-3RrZM-e7.js → flow-CvG1fLW5.js} +0 -0
  386. /package/dist/agent/{vendor-material-color-33Mj762T.js → vendor-material-color-DcL7ZPxx.js} +0 -0
  387. /package/dist/{form-BF1c3Dk1.js → form-CFvwnfuJ.js} +0 -0
  388. /package/dist/{form-DeO5XX3b.cjs → form-Ceijw1aA.cjs} +0 -0
  389. /package/dist/{rxjs-utils-BK8VMe3K.js → rxjs-utils-CVeJQ9KG.js} +0 -0
  390. /package/dist/{rxjs-utils-DhOKenkS.cjs → rxjs-utils-DCUHg_Ml.cjs} +0 -0
  391. /package/dist/{theme.interface-v7SkAnDH.js → theme.interface-B9TjbSBF.js} +0 -0
  392. /package/dist/{theme.interface-BeW-sz_g.cjs → theme.interface-BujperTo.cjs} +0 -0
  393. /package/dist/{utils-CJ9y2Jz9.cjs → utils-Dt5PpmaQ.cjs} +0 -0
  394. /package/dist/{utils-BfOze6Tk.js → utils-kND2Z9Xg.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { s as e } from "./mixins-Dw6hVfy-.js";
1
+ import { s as e } from "./mixins-PBJJGiiP.js";
2
2
  import { t } from "./decorate-23nYs4Le.js";
3
3
  import { customElement as n, query as r } from "lit/decorators.js";
4
4
  import { html as i } from "lit";
@@ -1 +1 @@
1
- {"version":3,"file":"theme-button-CjTnfs9x.js","names":[],"sources":["../src/theme-button/theme-button.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\n@customElement('schmancy-theme-button')\nexport default class SchmancyThemeButton extends SchmancyElement {\n\t@query('#color') color!: HTMLElement\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-button\n\t\t\t\t@click=${() => {\n\t\t\t\t\t// Trigger any other effects you have\n\t\t\t\t\t// $newSchmancyTheme.next(undefined)\n\n\t\t\t\t\t// Native Web Animations API usage:\n\t\t\t\t\tthis.color.animate([{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }], {\n\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t// fill: 'forwards', // Use if you want it to remain rotated at 360°\n\t\t\t\t\t\t// easing: 'ease-out', // Or another easing function\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t\tvariant=\"text\"\n\t\t\t>\n\t\t\t\t<schmancy-icon id=\"color\">palette</schmancy-icon>\n\t\t\t</schmancy-button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-theme-button': SchmancyThemeButton\n\t}\n}\n"],"mappings":";;;;AAKe,IAAA,IAAA,cAAkC,EAAA;CAGhD,SAAA;AACC,SAAO,CAAI;;;AAOR,QAAK,MAAM,QAAQ,CAAC,EAAE,WAAW,gBAAA,EAAkB,EAAE,WAAW,kBAAA,CAAA,EAAqB,EACpF,UAAU,KAAA,CAAA;IAAA;;;;;;;;GAXd,EAAM,SAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAFhB,EAAc,wBAAA,CAAA,EAAwB,EAAA"}
1
+ {"version":3,"file":"theme-button-DNutDO1j.js","names":[],"sources":["../src/theme-button/theme-button.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\n@customElement('schmancy-theme-button')\nexport default class SchmancyThemeButton extends SchmancyElement {\n\t@query('#color') color!: HTMLElement\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-button\n\t\t\t\t@click=${() => {\n\t\t\t\t\t// Trigger any other effects you have\n\t\t\t\t\t// $newSchmancyTheme.next(undefined)\n\n\t\t\t\t\t// Native Web Animations API usage:\n\t\t\t\t\tthis.color.animate([{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }], {\n\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t// fill: 'forwards', // Use if you want it to remain rotated at 360°\n\t\t\t\t\t\t// easing: 'ease-out', // Or another easing function\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t\tvariant=\"text\"\n\t\t\t>\n\t\t\t\t<schmancy-icon id=\"color\">palette</schmancy-icon>\n\t\t\t</schmancy-button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-theme-button': SchmancyThemeButton\n\t}\n}\n"],"mappings":";;;;AAKe,IAAA,IAAA,cAAkC,EAAA;CAGhD,SAAA;AACC,SAAO,CAAI;;;AAOR,QAAK,MAAM,QAAQ,CAAC,EAAE,WAAW,gBAAA,EAAkB,EAAE,WAAW,kBAAA,CAAA,EAAqB,EACpF,UAAU,KAAA,CAAA;IAAA;;;;;;;;GAXd,EAAM,SAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAFhB,EAAc,wBAAA,CAAA,EAAwB,EAAA"}
@@ -1,4 +1,4 @@
1
- require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-Db7gjDah.cjs`),t=require(`./decorate-DpFmy0nm.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends e.s{render(){return r.html`
1
+ require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-47_CZk7q.cjs`),t=require(`./decorate-DpFmy0nm.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends e.s{render(){return r.html`
2
2
  <schmancy-button
3
3
  @click=${()=>{this.color.animate([{transform:`rotate(0deg)`},{transform:`rotate(360deg)`}],{duration:300})}}
4
4
  variant="text"
@@ -1 +1 @@
1
- {"version":3,"file":"theme-button-Dv1D_Vil.cjs","names":[],"sources":["../src/theme-button/theme-button.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\n@customElement('schmancy-theme-button')\nexport default class SchmancyThemeButton extends SchmancyElement {\n\t@query('#color') color!: HTMLElement\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-button\n\t\t\t\t@click=${() => {\n\t\t\t\t\t// Trigger any other effects you have\n\t\t\t\t\t// $newSchmancyTheme.next(undefined)\n\n\t\t\t\t\t// Native Web Animations API usage:\n\t\t\t\t\tthis.color.animate([{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }], {\n\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t// fill: 'forwards', // Use if you want it to remain rotated at 360°\n\t\t\t\t\t\t// easing: 'ease-out', // Or another easing function\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t\tvariant=\"text\"\n\t\t\t>\n\t\t\t\t<schmancy-icon id=\"color\">palette</schmancy-icon>\n\t\t\t</schmancy-button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-theme-button': SchmancyThemeButton\n\t}\n}\n"],"mappings":"kKAKe,IAAA,EAAA,cAAkC,EAAA,CAAA,CAGhD,QAAA,CACC,MAAO,GAAA,IAAI;;kBAOR,KAAK,MAAM,QAAQ,CAAC,CAAE,UAAW,eAAA,CAAkB,CAAE,UAAW,iBAAA,CAAA,CAAqB,CACpF,SAAU,IAAA,CAAA,EAAA;;;;;uBAXR,SAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAFF,wBAAA,CAAA,CAAwB,EAAA"}
1
+ {"version":3,"file":"theme-button-H7PRz_bg.cjs","names":[],"sources":["../src/theme-button/theme-button.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\n@customElement('schmancy-theme-button')\nexport default class SchmancyThemeButton extends SchmancyElement {\n\t@query('#color') color!: HTMLElement\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-button\n\t\t\t\t@click=${() => {\n\t\t\t\t\t// Trigger any other effects you have\n\t\t\t\t\t// $newSchmancyTheme.next(undefined)\n\n\t\t\t\t\t// Native Web Animations API usage:\n\t\t\t\t\tthis.color.animate([{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }], {\n\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t// fill: 'forwards', // Use if you want it to remain rotated at 360°\n\t\t\t\t\t\t// easing: 'ease-out', // Or another easing function\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t\tvariant=\"text\"\n\t\t\t>\n\t\t\t\t<schmancy-icon id=\"color\">palette</schmancy-icon>\n\t\t\t</schmancy-button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-theme-button': SchmancyThemeButton\n\t}\n}\n"],"mappings":"kKAKe,IAAA,EAAA,cAAkC,EAAA,CAAA,CAGhD,QAAA,CACC,MAAO,GAAA,IAAI;;kBAOR,KAAK,MAAM,QAAQ,CAAC,CAAE,UAAW,eAAA,CAAkB,CAAE,UAAW,iBAAA,CAAA,CAAqB,CACpF,SAAU,IAAA,CAAA,EAAA;;;;;uBAXR,SAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAFF,wBAAA,CAAA,CAAwB,EAAA"}
@@ -1 +1 @@
1
- require(`./theme-button-Dv1D_Vil.cjs`);
1
+ require(`./theme-button-H7PRz_bg.cjs`);
@@ -1 +1 @@
1
- import "./theme-button-CjTnfs9x.js";
1
+ import "./theme-button-DNutDO1j.js";
package/dist/theme.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./mixins-Db7gjDah.cjs`),t=require(`./theme.service-Cfk88qHK.cjs`),n=require(`./theme.interface-BeW-sz_g.cjs`),r=require(`./theme-CIsI-sFj.cjs`);exports.SchmancyGenerateMoodAudioEvent=r.n,exports.SchmancyTheme=n.t,Object.defineProperty(exports,`SchmancyThemeAudioPlayer`,{enumerable:!0,get:function(){return r.r}}),Object.defineProperty(exports,`SchmancyThemeComponent`,{enumerable:!0,get:function(){return r.a}}),Object.defineProperty(exports,`SchmancyThemeController`,{enumerable:!0,get:function(){return r.i}}),Object.defineProperty(exports,`SchmancyThemeControllerBoat`,{enumerable:!0,get:function(){return r.t}}),exports.ThemeHereIAm=t.r,exports.ThemeWhereAreYou=t.i,exports.createDarkTonalPaletteFromBaseColor=r.s,exports.createLightTonalPaletteFromBaseColor=r.c,exports.formatTheme=r.l,exports.schmancyTheme=t.t,exports.tailwindStyles=r.o,exports.theme=t.n,exports.themeContext=e.d;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./mixins-47_CZk7q.cjs`),t=require(`./theme.service-Cfk88qHK.cjs`),n=require(`./theme.interface-BujperTo.cjs`),r=require(`./theme-Ce9eIP05.cjs`);exports.SchmancyGenerateMoodAudioEvent=r.n,exports.SchmancyTheme=n.t,Object.defineProperty(exports,`SchmancyThemeAudioPlayer`,{enumerable:!0,get:function(){return r.r}}),Object.defineProperty(exports,`SchmancyThemeComponent`,{enumerable:!0,get:function(){return r.a}}),Object.defineProperty(exports,`SchmancyThemeController`,{enumerable:!0,get:function(){return r.i}}),Object.defineProperty(exports,`SchmancyThemeControllerBoat`,{enumerable:!0,get:function(){return r.t}}),exports.ThemeHereIAm=t.r,exports.ThemeWhereAreYou=t.i,exports.createDarkTonalPaletteFromBaseColor=r.s,exports.createLightTonalPaletteFromBaseColor=r.c,exports.formatTheme=r.l,exports.schmancyTheme=t.t,exports.tailwindStyles=r.o,exports.theme=t.n,exports.themeContext=e.d;
@@ -1 +1 @@
1
- {"version":3,"file":"theme.interface-v7SkAnDH.js","names":[],"sources":["../src/theme/theme.interface.ts"],"sourcesContent":["/**\n * Material Design 3 Theme Definition\n * Complete theme system following Material Design 3 specifications\n * @see https://m3.material.io/foundations/customization\n *\n * @internal\n */\nconst ThemeDef = {\n\tsys: {\n\t\t// M3 Color System - Complete tonal palette support\n\t\tcolor: {\n\t\t\t// Neutral colors\n\t\t\tscrim: 'var(--schmancy-sys-color-scrim)',\n\t\t\toutline: 'var(--schmancy-sys-color-outline)',\n\t\t\toutlineVariant: 'var(--schmancy-sys-color-outlineVariant)',\n\t\t\tshadow: 'var(--schmancy-sys-color-shadow)',\n\n\t\t\t// Surface colors with complete tonal values\n\t\t\tsurface: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-surface-default)',\n\t\t\t\tdim: 'var(--schmancy-sys-color-surface-dim)',\n\t\t\t\tbright: 'var(--schmancy-sys-color-surface-bright)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-surface-container)',\n\t\t\t\tcontainerLow: 'var(--schmancy-sys-color-surface-containerLow)',\n\t\t\t\tcontainerLowest: 'var(--schmancy-sys-color-surface-containerLowest)',\n\t\t\t\tcontainerHigh: 'var(--schmancy-sys-color-surface-containerHigh)',\n\t\t\t\tcontainerHighest: 'var(--schmancy-sys-color-surface-containerHighest)',\n\t\t\t\ton: 'var(--schmancy-sys-color-surface-on)',\n\t\t\t\tonVariant: 'var(--schmancy-sys-color-surface-onVariant)',\n\t\t\t\ttint: 'var(--schmancy-sys-color-surface-tint)',\n\t\t\t\t// Inverse colors\n\t\t\t\tinverse: 'var(--schmancy-sys-color-inverse-surface)',\n\t\t\t\tinverseOn: 'var(--schmancy-sys-color-inverse-onSurface)',\n\t\t\t\t// Deprecated mappings for backward compatibility\n\t\t\t\tlow: 'var(--schmancy-sys-color-surface-containerLow)',\n\t\t\t\thigh: 'var(--schmancy-sys-color-surface-containerHigh)',\n\t\t\t\thighest: 'var(--schmancy-sys-color-surface-containerHighest)',\n\t\t\t\tlowest: 'var(--schmancy-sys-color-surface-containerLowest)',\n\t\t\t},\n\n\t\t\t// Primary color roles with fixed variants\n\t\t\tprimary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-primary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-primary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-primary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-primary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-primary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-primary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-primary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-primary-onFixedVariant)',\n\t\t\t\tinverse: 'var(--schmancy-sys-color-inverse-primary)',\n\t\t\t},\n\n\t\t\t// Secondary color roles with fixed variants\n\t\t\tsecondary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-secondary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-secondary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-secondary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-secondary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-secondary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-secondary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-secondary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-secondary-onFixedVariant)',\n\t\t\t},\n\n\t\t\t// Tertiary color roles with fixed variants\n\t\t\ttertiary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-tertiary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-tertiary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-tertiary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-tertiary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-tertiary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-tertiary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-tertiary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-tertiary-onFixedVariant)',\n\t\t\t},\n\n\t\t\t// Error color roles\n\t\t\terror: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-error-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-error-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-error-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-error-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Success\n\t\t\tsuccess: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-success-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-success-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-success-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-success-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Warning\n\t\t\twarning: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-warning-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-warning-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-warning-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-warning-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Info\n\t\t\tinfo: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-info-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-info-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-info-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-info-onContainer)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Typography System\n\t\ttypography: {\n\t\t\t// Display styles\n\t\t\tdisplay: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-display-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-display-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-display-small)',\n\t\t\t},\n\t\t\t// Headline styles\n\t\t\theadline: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-headline-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-headline-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-headline-small)',\n\t\t\t},\n\t\t\t// Title styles\n\t\t\ttitle: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-title-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-title-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-title-small)',\n\t\t\t},\n\t\t\t// Body styles\n\t\t\tbody: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-body-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-body-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-body-small)',\n\t\t\t},\n\t\t\t// Label styles\n\t\t\tlabel: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-label-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-label-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-label-small)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Shape System\n\t\tshape: {\n\t\t\tcorner: {\n\t\t\t\tnone: 'var(--schmancy-sys-shape-corner-none)',\n\t\t\t\textraSmall: 'var(--schmancy-sys-shape-corner-extraSmall)',\n\t\t\t\tsmall: 'var(--schmancy-sys-shape-corner-small)',\n\t\t\t\tmedium: 'var(--schmancy-sys-shape-corner-medium)',\n\t\t\t\tlarge: 'var(--schmancy-sys-shape-corner-large)',\n\t\t\t\textraLarge: 'var(--schmancy-sys-shape-corner-extraLarge)',\n\t\t\t\tfull: 'var(--schmancy-sys-shape-corner-full)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Elevation System with tinted shadows\n\t\televation: {\n\t\t\t0: 'var(--schmancy-sys-elevation-0)',\n\t\t\t1: 'var(--schmancy-sys-elevation-1)',\n\t\t\t2: 'var(--schmancy-sys-elevation-2)',\n\t\t\t3: 'var(--schmancy-sys-elevation-3)',\n\t\t\t4: 'var(--schmancy-sys-elevation-4)',\n\t\t\t5: 'var(--schmancy-sys-elevation-5)',\n\t\t},\n\n\t\t// M3 Motion System\n\t\tmotion: {\n\t\t\t// Easing tokens\n\t\t\teasing: {\n\t\t\t\temphasized: 'var(--schmancy-sys-motion-easing-emphasized)',\n\t\t\t\temphasizedDecelerate: 'var(--schmancy-sys-motion-easing-emphasized-decelerate)',\n\t\t\t\temphasizedAccelerate: 'var(--schmancy-sys-motion-easing-emphasized-accelerate)',\n\t\t\t\tstandard: 'var(--schmancy-sys-motion-easing-standard)',\n\t\t\t\tstandardDecelerate: 'var(--schmancy-sys-motion-easing-standard-decelerate)',\n\t\t\t\tstandardAccelerate: 'var(--schmancy-sys-motion-easing-standard-accelerate)',\n\t\t\t\tlegacy: 'var(--schmancy-sys-motion-easing-legacy)',\n\t\t\t\tlinear: 'var(--schmancy-sys-motion-easing-linear)',\n\t\t\t},\n\t\t\t// Duration tokens\n\t\t\tduration: {\n\t\t\t\tshort1: 'var(--schmancy-sys-motion-duration-short1)',\n\t\t\t\tshort2: 'var(--schmancy-sys-motion-duration-short2)',\n\t\t\t\tshort3: 'var(--schmancy-sys-motion-duration-short3)',\n\t\t\t\tshort4: 'var(--schmancy-sys-motion-duration-short4)',\n\t\t\t\tmedium1: 'var(--schmancy-sys-motion-duration-medium1)',\n\t\t\t\tmedium2: 'var(--schmancy-sys-motion-duration-medium2)',\n\t\t\t\tmedium3: 'var(--schmancy-sys-motion-duration-medium3)',\n\t\t\t\tmedium4: 'var(--schmancy-sys-motion-duration-medium4)',\n\t\t\t\tlong1: 'var(--schmancy-sys-motion-duration-long1)',\n\t\t\t\tlong2: 'var(--schmancy-sys-motion-duration-long2)',\n\t\t\t\tlong3: 'var(--schmancy-sys-motion-duration-long3)',\n\t\t\t\tlong4: 'var(--schmancy-sys-motion-duration-long4)',\n\t\t\t\textraLong1: 'var(--schmancy-sys-motion-duration-extraLong1)',\n\t\t\t\textraLong2: 'var(--schmancy-sys-motion-duration-extraLong2)',\n\t\t\t\textraLong3: 'var(--schmancy-sys-motion-duration-extraLong3)',\n\t\t\t\textraLong4: 'var(--schmancy-sys-motion-duration-extraLong4)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 State Layers\n\t\tstate: {\n\t\t\topacity: {\n\t\t\t\thover: 'var(--schmancy-sys-state-hover-opacity)',\n\t\t\t\tfocus: 'var(--schmancy-sys-state-focus-opacity)',\n\t\t\t\tpressed: 'var(--schmancy-sys-state-pressed-opacity)',\n\t\t\t\tdragged: 'var(--schmancy-sys-state-dragged-opacity)',\n\t\t\t\tdisabled: 'var(--schmancy-sys-state-disabled-opacity)',\n\t\t\t\tdisabledContainer: 'var(--schmancy-sys-state-disabled-container-opacity)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Spacing System\n\t\tspacing: {\n\t\t\t0: 'var(--schmancy-sys-spacing-0)',\n\t\t\t1: 'var(--schmancy-sys-spacing-1)',\n\t\t\t2: 'var(--schmancy-sys-spacing-2)',\n\t\t\t3: 'var(--schmancy-sys-spacing-3)',\n\t\t\t4: 'var(--schmancy-sys-spacing-4)',\n\t\t\t5: 'var(--schmancy-sys-spacing-5)',\n\t\t\t6: 'var(--schmancy-sys-spacing-6)',\n\t\t\t7: 'var(--schmancy-sys-spacing-7)',\n\t\t\t8: 'var(--schmancy-sys-spacing-8)',\n\t\t\t9: 'var(--schmancy-sys-spacing-9)',\n\t\t\t10: 'var(--schmancy-sys-spacing-10)',\n\t\t\t11: 'var(--schmancy-sys-spacing-11)',\n\t\t\t12: 'var(--schmancy-sys-spacing-12)',\n\t\t},\n\n\t\t// Legacy outline for backward compatibility\n\t\toutline: {\n\t\t\t1: 'var(--schmancy-sys-outline-1)',\n\t\t},\n\t},\n\n\t// Reference palette - complete tonal values\n\tref: {\n\t\tpalette: {\n\t\t\t// Primary tonal palette\n\t\t\tprimary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-primary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-primary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-primary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-primary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-primary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-primary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-primary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-primary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-primary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-primary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-primary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-primary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-primary-100)',\n\t\t\t},\n\t\t\t// Secondary tonal palette\n\t\t\tsecondary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-secondary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-secondary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-secondary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-secondary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-secondary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-secondary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-secondary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-secondary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-secondary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-secondary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-secondary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-secondary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-secondary-100)',\n\t\t\t},\n\t\t\t// Tertiary tonal palette\n\t\t\ttertiary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-tertiary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-tertiary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-tertiary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-tertiary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-tertiary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-tertiary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-tertiary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-tertiary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-tertiary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-tertiary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-tertiary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-tertiary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-tertiary-100)',\n\t\t\t},\n\t\t\t// Neutral tonal palette\n\t\t\tneutral: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-neutral-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-neutral-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-neutral-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-neutral-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-neutral-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-neutral-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-neutral-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-neutral-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-neutral-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-neutral-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-neutral-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-neutral-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-neutral-100)',\n\t\t\t},\n\t\t\t// Neutral variant tonal palette\n\t\t\tneutralVariant: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-neutralVariant-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-neutralVariant-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-neutralVariant-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-neutralVariant-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-neutralVariant-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-neutralVariant-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-neutralVariant-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-neutralVariant-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-neutralVariant-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-neutralVariant-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-neutralVariant-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-neutralVariant-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-neutralVariant-100)',\n\t\t\t},\n\t\t\t// Error tonal palette\n\t\t\terror: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-error-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-error-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-error-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-error-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-error-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-error-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-error-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-error-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-error-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-error-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-error-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-error-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-error-100)',\n\t\t\t},\n\t\t},\n\t},\n}\nconst theme = {\n\ttheme: ThemeDef,\n}\n\n/**\n * Type definition for the Schmancy Material Design 3 theme configuration.\n * Complete theme system with colors, typography, shape, motion, and state layers.\n *\n * @typedef {Object} TSchmancyTheme\n *\n * @example\n * ```typescript\n * import type { TSchmancyTheme } from '@schmancy/theme'\n *\n * const myTheme: Partial<TSchmancyTheme> = {\n * sys: {\n * color: {\n * primary: {\n * default: '#6750A4',\n * container: '#EADDFF'\n * }\n * },\n * shape: {\n * corner: {\n * medium: '12px'\n * }\n * }\n * }\n * }\n * ```\n */\nexport type TSchmancyTheme = (typeof theme)[keyof typeof theme] & {\n\t/**\n\t * Locale for number/date formatting (BCP 47 language tag).\n\t * Defaults to navigator.language, can be overridden via schmancy-theme locale attribute.\n\t * @example \"de-DE\", \"en-US\", \"ar-SA\"\n\t */\n\tlocale: string\n}\n\n/**\n * Default Schmancy theme configuration object.\n * Provides access to all theme CSS variables through JavaScript.\n *\n * @constant {TSchmancyTheme}\n *\n * @example\n * ```typescript\n * import { SchmancyTheme } from '@schmancy/theme'\n *\n * // Access primary color variable\n * const primaryColor = SchmancyTheme.sys.color.primary.default\n * // Returns: 'var(--schmancy-sys-color-primary-default)'\n * ```\n */\nconst SchmancyTheme: TSchmancyTheme = {\n\t...ThemeDef,\n\tlocale: typeof navigator !== 'undefined' ? navigator.language : 'de-DE',\n}\n\nexport { SchmancyTheme }\n"],"mappings":"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"}
1
+ {"version":3,"file":"theme.interface-B9TjbSBF.js","names":[],"sources":["../src/theme/theme.interface.ts"],"sourcesContent":["/**\n * Material Design 3 Theme Definition\n * Complete theme system following Material Design 3 specifications\n * @see https://m3.material.io/foundations/customization\n *\n * @internal\n */\nconst ThemeDef = {\n\tsys: {\n\t\t// M3 Color System - Complete tonal palette support\n\t\tcolor: {\n\t\t\t// Neutral colors\n\t\t\tscrim: 'var(--schmancy-sys-color-scrim)',\n\t\t\toutline: 'var(--schmancy-sys-color-outline)',\n\t\t\toutlineVariant: 'var(--schmancy-sys-color-outlineVariant)',\n\t\t\tshadow: 'var(--schmancy-sys-color-shadow)',\n\n\t\t\t// Surface colors with complete tonal values\n\t\t\tsurface: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-surface-default)',\n\t\t\t\tdim: 'var(--schmancy-sys-color-surface-dim)',\n\t\t\t\tbright: 'var(--schmancy-sys-color-surface-bright)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-surface-container)',\n\t\t\t\tcontainerLow: 'var(--schmancy-sys-color-surface-containerLow)',\n\t\t\t\tcontainerLowest: 'var(--schmancy-sys-color-surface-containerLowest)',\n\t\t\t\tcontainerHigh: 'var(--schmancy-sys-color-surface-containerHigh)',\n\t\t\t\tcontainerHighest: 'var(--schmancy-sys-color-surface-containerHighest)',\n\t\t\t\ton: 'var(--schmancy-sys-color-surface-on)',\n\t\t\t\tonVariant: 'var(--schmancy-sys-color-surface-onVariant)',\n\t\t\t\ttint: 'var(--schmancy-sys-color-surface-tint)',\n\t\t\t\t// Inverse colors\n\t\t\t\tinverse: 'var(--schmancy-sys-color-inverse-surface)',\n\t\t\t\tinverseOn: 'var(--schmancy-sys-color-inverse-onSurface)',\n\t\t\t\t// Deprecated mappings for backward compatibility\n\t\t\t\tlow: 'var(--schmancy-sys-color-surface-containerLow)',\n\t\t\t\thigh: 'var(--schmancy-sys-color-surface-containerHigh)',\n\t\t\t\thighest: 'var(--schmancy-sys-color-surface-containerHighest)',\n\t\t\t\tlowest: 'var(--schmancy-sys-color-surface-containerLowest)',\n\t\t\t},\n\n\t\t\t// Primary color roles with fixed variants\n\t\t\tprimary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-primary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-primary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-primary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-primary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-primary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-primary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-primary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-primary-onFixedVariant)',\n\t\t\t\tinverse: 'var(--schmancy-sys-color-inverse-primary)',\n\t\t\t},\n\n\t\t\t// Secondary color roles with fixed variants\n\t\t\tsecondary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-secondary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-secondary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-secondary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-secondary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-secondary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-secondary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-secondary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-secondary-onFixedVariant)',\n\t\t\t},\n\n\t\t\t// Tertiary color roles with fixed variants\n\t\t\ttertiary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-tertiary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-tertiary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-tertiary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-tertiary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-tertiary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-tertiary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-tertiary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-tertiary-onFixedVariant)',\n\t\t\t},\n\n\t\t\t// Error color roles\n\t\t\terror: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-error-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-error-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-error-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-error-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Success\n\t\t\tsuccess: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-success-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-success-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-success-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-success-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Warning\n\t\t\twarning: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-warning-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-warning-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-warning-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-warning-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Info\n\t\t\tinfo: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-info-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-info-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-info-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-info-onContainer)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Typography System\n\t\ttypography: {\n\t\t\t// Display styles\n\t\t\tdisplay: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-display-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-display-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-display-small)',\n\t\t\t},\n\t\t\t// Headline styles\n\t\t\theadline: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-headline-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-headline-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-headline-small)',\n\t\t\t},\n\t\t\t// Title styles\n\t\t\ttitle: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-title-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-title-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-title-small)',\n\t\t\t},\n\t\t\t// Body styles\n\t\t\tbody: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-body-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-body-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-body-small)',\n\t\t\t},\n\t\t\t// Label styles\n\t\t\tlabel: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-label-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-label-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-label-small)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Shape System\n\t\tshape: {\n\t\t\tcorner: {\n\t\t\t\tnone: 'var(--schmancy-sys-shape-corner-none)',\n\t\t\t\textraSmall: 'var(--schmancy-sys-shape-corner-extraSmall)',\n\t\t\t\tsmall: 'var(--schmancy-sys-shape-corner-small)',\n\t\t\t\tmedium: 'var(--schmancy-sys-shape-corner-medium)',\n\t\t\t\tlarge: 'var(--schmancy-sys-shape-corner-large)',\n\t\t\t\textraLarge: 'var(--schmancy-sys-shape-corner-extraLarge)',\n\t\t\t\tfull: 'var(--schmancy-sys-shape-corner-full)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Elevation System with tinted shadows\n\t\televation: {\n\t\t\t0: 'var(--schmancy-sys-elevation-0)',\n\t\t\t1: 'var(--schmancy-sys-elevation-1)',\n\t\t\t2: 'var(--schmancy-sys-elevation-2)',\n\t\t\t3: 'var(--schmancy-sys-elevation-3)',\n\t\t\t4: 'var(--schmancy-sys-elevation-4)',\n\t\t\t5: 'var(--schmancy-sys-elevation-5)',\n\t\t},\n\n\t\t// M3 Motion System\n\t\tmotion: {\n\t\t\t// Easing tokens\n\t\t\teasing: {\n\t\t\t\temphasized: 'var(--schmancy-sys-motion-easing-emphasized)',\n\t\t\t\temphasizedDecelerate: 'var(--schmancy-sys-motion-easing-emphasized-decelerate)',\n\t\t\t\temphasizedAccelerate: 'var(--schmancy-sys-motion-easing-emphasized-accelerate)',\n\t\t\t\tstandard: 'var(--schmancy-sys-motion-easing-standard)',\n\t\t\t\tstandardDecelerate: 'var(--schmancy-sys-motion-easing-standard-decelerate)',\n\t\t\t\tstandardAccelerate: 'var(--schmancy-sys-motion-easing-standard-accelerate)',\n\t\t\t\tlegacy: 'var(--schmancy-sys-motion-easing-legacy)',\n\t\t\t\tlinear: 'var(--schmancy-sys-motion-easing-linear)',\n\t\t\t},\n\t\t\t// Duration tokens\n\t\t\tduration: {\n\t\t\t\tshort1: 'var(--schmancy-sys-motion-duration-short1)',\n\t\t\t\tshort2: 'var(--schmancy-sys-motion-duration-short2)',\n\t\t\t\tshort3: 'var(--schmancy-sys-motion-duration-short3)',\n\t\t\t\tshort4: 'var(--schmancy-sys-motion-duration-short4)',\n\t\t\t\tmedium1: 'var(--schmancy-sys-motion-duration-medium1)',\n\t\t\t\tmedium2: 'var(--schmancy-sys-motion-duration-medium2)',\n\t\t\t\tmedium3: 'var(--schmancy-sys-motion-duration-medium3)',\n\t\t\t\tmedium4: 'var(--schmancy-sys-motion-duration-medium4)',\n\t\t\t\tlong1: 'var(--schmancy-sys-motion-duration-long1)',\n\t\t\t\tlong2: 'var(--schmancy-sys-motion-duration-long2)',\n\t\t\t\tlong3: 'var(--schmancy-sys-motion-duration-long3)',\n\t\t\t\tlong4: 'var(--schmancy-sys-motion-duration-long4)',\n\t\t\t\textraLong1: 'var(--schmancy-sys-motion-duration-extraLong1)',\n\t\t\t\textraLong2: 'var(--schmancy-sys-motion-duration-extraLong2)',\n\t\t\t\textraLong3: 'var(--schmancy-sys-motion-duration-extraLong3)',\n\t\t\t\textraLong4: 'var(--schmancy-sys-motion-duration-extraLong4)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 State Layers\n\t\tstate: {\n\t\t\topacity: {\n\t\t\t\thover: 'var(--schmancy-sys-state-hover-opacity)',\n\t\t\t\tfocus: 'var(--schmancy-sys-state-focus-opacity)',\n\t\t\t\tpressed: 'var(--schmancy-sys-state-pressed-opacity)',\n\t\t\t\tdragged: 'var(--schmancy-sys-state-dragged-opacity)',\n\t\t\t\tdisabled: 'var(--schmancy-sys-state-disabled-opacity)',\n\t\t\t\tdisabledContainer: 'var(--schmancy-sys-state-disabled-container-opacity)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Spacing System\n\t\tspacing: {\n\t\t\t0: 'var(--schmancy-sys-spacing-0)',\n\t\t\t1: 'var(--schmancy-sys-spacing-1)',\n\t\t\t2: 'var(--schmancy-sys-spacing-2)',\n\t\t\t3: 'var(--schmancy-sys-spacing-3)',\n\t\t\t4: 'var(--schmancy-sys-spacing-4)',\n\t\t\t5: 'var(--schmancy-sys-spacing-5)',\n\t\t\t6: 'var(--schmancy-sys-spacing-6)',\n\t\t\t7: 'var(--schmancy-sys-spacing-7)',\n\t\t\t8: 'var(--schmancy-sys-spacing-8)',\n\t\t\t9: 'var(--schmancy-sys-spacing-9)',\n\t\t\t10: 'var(--schmancy-sys-spacing-10)',\n\t\t\t11: 'var(--schmancy-sys-spacing-11)',\n\t\t\t12: 'var(--schmancy-sys-spacing-12)',\n\t\t},\n\n\t\t// Legacy outline for backward compatibility\n\t\toutline: {\n\t\t\t1: 'var(--schmancy-sys-outline-1)',\n\t\t},\n\t},\n\n\t// Reference palette - complete tonal values\n\tref: {\n\t\tpalette: {\n\t\t\t// Primary tonal palette\n\t\t\tprimary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-primary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-primary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-primary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-primary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-primary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-primary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-primary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-primary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-primary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-primary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-primary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-primary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-primary-100)',\n\t\t\t},\n\t\t\t// Secondary tonal palette\n\t\t\tsecondary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-secondary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-secondary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-secondary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-secondary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-secondary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-secondary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-secondary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-secondary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-secondary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-secondary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-secondary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-secondary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-secondary-100)',\n\t\t\t},\n\t\t\t// Tertiary tonal palette\n\t\t\ttertiary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-tertiary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-tertiary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-tertiary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-tertiary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-tertiary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-tertiary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-tertiary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-tertiary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-tertiary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-tertiary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-tertiary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-tertiary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-tertiary-100)',\n\t\t\t},\n\t\t\t// Neutral tonal palette\n\t\t\tneutral: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-neutral-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-neutral-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-neutral-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-neutral-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-neutral-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-neutral-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-neutral-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-neutral-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-neutral-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-neutral-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-neutral-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-neutral-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-neutral-100)',\n\t\t\t},\n\t\t\t// Neutral variant tonal palette\n\t\t\tneutralVariant: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-neutralVariant-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-neutralVariant-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-neutralVariant-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-neutralVariant-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-neutralVariant-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-neutralVariant-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-neutralVariant-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-neutralVariant-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-neutralVariant-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-neutralVariant-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-neutralVariant-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-neutralVariant-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-neutralVariant-100)',\n\t\t\t},\n\t\t\t// Error tonal palette\n\t\t\terror: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-error-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-error-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-error-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-error-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-error-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-error-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-error-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-error-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-error-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-error-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-error-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-error-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-error-100)',\n\t\t\t},\n\t\t},\n\t},\n}\nconst theme = {\n\ttheme: ThemeDef,\n}\n\n/**\n * Type definition for the Schmancy Material Design 3 theme configuration.\n * Complete theme system with colors, typography, shape, motion, and state layers.\n *\n * @typedef {Object} TSchmancyTheme\n *\n * @example\n * ```typescript\n * import type { TSchmancyTheme } from '@schmancy/theme'\n *\n * const myTheme: Partial<TSchmancyTheme> = {\n * sys: {\n * color: {\n * primary: {\n * default: '#6750A4',\n * container: '#EADDFF'\n * }\n * },\n * shape: {\n * corner: {\n * medium: '12px'\n * }\n * }\n * }\n * }\n * ```\n */\nexport type TSchmancyTheme = (typeof theme)[keyof typeof theme] & {\n\t/**\n\t * Locale for number/date formatting (BCP 47 language tag).\n\t * Defaults to navigator.language, can be overridden via schmancy-theme locale attribute.\n\t * @example \"de-DE\", \"en-US\", \"ar-SA\"\n\t */\n\tlocale: string\n}\n\n/**\n * Default Schmancy theme configuration object.\n * Provides access to all theme CSS variables through JavaScript.\n *\n * @constant {TSchmancyTheme}\n *\n * @example\n * ```typescript\n * import { SchmancyTheme } from '@schmancy/theme'\n *\n * // Access primary color variable\n * const primaryColor = SchmancyTheme.sys.color.primary.default\n * // Returns: 'var(--schmancy-sys-color-primary-default)'\n * ```\n */\nconst SchmancyTheme: TSchmancyTheme = {\n\t...ThemeDef,\n\tlocale: typeof navigator !== 'undefined' ? navigator.language : 'de-DE',\n}\n\nexport { SchmancyTheme }\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme.interface-BeW-sz_g.cjs","names":[],"sources":["../src/theme/theme.interface.ts"],"sourcesContent":["/**\n * Material Design 3 Theme Definition\n * Complete theme system following Material Design 3 specifications\n * @see https://m3.material.io/foundations/customization\n *\n * @internal\n */\nconst ThemeDef = {\n\tsys: {\n\t\t// M3 Color System - Complete tonal palette support\n\t\tcolor: {\n\t\t\t// Neutral colors\n\t\t\tscrim: 'var(--schmancy-sys-color-scrim)',\n\t\t\toutline: 'var(--schmancy-sys-color-outline)',\n\t\t\toutlineVariant: 'var(--schmancy-sys-color-outlineVariant)',\n\t\t\tshadow: 'var(--schmancy-sys-color-shadow)',\n\n\t\t\t// Surface colors with complete tonal values\n\t\t\tsurface: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-surface-default)',\n\t\t\t\tdim: 'var(--schmancy-sys-color-surface-dim)',\n\t\t\t\tbright: 'var(--schmancy-sys-color-surface-bright)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-surface-container)',\n\t\t\t\tcontainerLow: 'var(--schmancy-sys-color-surface-containerLow)',\n\t\t\t\tcontainerLowest: 'var(--schmancy-sys-color-surface-containerLowest)',\n\t\t\t\tcontainerHigh: 'var(--schmancy-sys-color-surface-containerHigh)',\n\t\t\t\tcontainerHighest: 'var(--schmancy-sys-color-surface-containerHighest)',\n\t\t\t\ton: 'var(--schmancy-sys-color-surface-on)',\n\t\t\t\tonVariant: 'var(--schmancy-sys-color-surface-onVariant)',\n\t\t\t\ttint: 'var(--schmancy-sys-color-surface-tint)',\n\t\t\t\t// Inverse colors\n\t\t\t\tinverse: 'var(--schmancy-sys-color-inverse-surface)',\n\t\t\t\tinverseOn: 'var(--schmancy-sys-color-inverse-onSurface)',\n\t\t\t\t// Deprecated mappings for backward compatibility\n\t\t\t\tlow: 'var(--schmancy-sys-color-surface-containerLow)',\n\t\t\t\thigh: 'var(--schmancy-sys-color-surface-containerHigh)',\n\t\t\t\thighest: 'var(--schmancy-sys-color-surface-containerHighest)',\n\t\t\t\tlowest: 'var(--schmancy-sys-color-surface-containerLowest)',\n\t\t\t},\n\n\t\t\t// Primary color roles with fixed variants\n\t\t\tprimary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-primary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-primary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-primary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-primary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-primary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-primary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-primary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-primary-onFixedVariant)',\n\t\t\t\tinverse: 'var(--schmancy-sys-color-inverse-primary)',\n\t\t\t},\n\n\t\t\t// Secondary color roles with fixed variants\n\t\t\tsecondary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-secondary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-secondary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-secondary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-secondary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-secondary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-secondary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-secondary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-secondary-onFixedVariant)',\n\t\t\t},\n\n\t\t\t// Tertiary color roles with fixed variants\n\t\t\ttertiary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-tertiary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-tertiary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-tertiary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-tertiary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-tertiary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-tertiary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-tertiary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-tertiary-onFixedVariant)',\n\t\t\t},\n\n\t\t\t// Error color roles\n\t\t\terror: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-error-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-error-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-error-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-error-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Success\n\t\t\tsuccess: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-success-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-success-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-success-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-success-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Warning\n\t\t\twarning: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-warning-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-warning-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-warning-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-warning-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Info\n\t\t\tinfo: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-info-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-info-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-info-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-info-onContainer)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Typography System\n\t\ttypography: {\n\t\t\t// Display styles\n\t\t\tdisplay: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-display-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-display-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-display-small)',\n\t\t\t},\n\t\t\t// Headline styles\n\t\t\theadline: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-headline-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-headline-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-headline-small)',\n\t\t\t},\n\t\t\t// Title styles\n\t\t\ttitle: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-title-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-title-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-title-small)',\n\t\t\t},\n\t\t\t// Body styles\n\t\t\tbody: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-body-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-body-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-body-small)',\n\t\t\t},\n\t\t\t// Label styles\n\t\t\tlabel: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-label-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-label-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-label-small)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Shape System\n\t\tshape: {\n\t\t\tcorner: {\n\t\t\t\tnone: 'var(--schmancy-sys-shape-corner-none)',\n\t\t\t\textraSmall: 'var(--schmancy-sys-shape-corner-extraSmall)',\n\t\t\t\tsmall: 'var(--schmancy-sys-shape-corner-small)',\n\t\t\t\tmedium: 'var(--schmancy-sys-shape-corner-medium)',\n\t\t\t\tlarge: 'var(--schmancy-sys-shape-corner-large)',\n\t\t\t\textraLarge: 'var(--schmancy-sys-shape-corner-extraLarge)',\n\t\t\t\tfull: 'var(--schmancy-sys-shape-corner-full)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Elevation System with tinted shadows\n\t\televation: {\n\t\t\t0: 'var(--schmancy-sys-elevation-0)',\n\t\t\t1: 'var(--schmancy-sys-elevation-1)',\n\t\t\t2: 'var(--schmancy-sys-elevation-2)',\n\t\t\t3: 'var(--schmancy-sys-elevation-3)',\n\t\t\t4: 'var(--schmancy-sys-elevation-4)',\n\t\t\t5: 'var(--schmancy-sys-elevation-5)',\n\t\t},\n\n\t\t// M3 Motion System\n\t\tmotion: {\n\t\t\t// Easing tokens\n\t\t\teasing: {\n\t\t\t\temphasized: 'var(--schmancy-sys-motion-easing-emphasized)',\n\t\t\t\temphasizedDecelerate: 'var(--schmancy-sys-motion-easing-emphasized-decelerate)',\n\t\t\t\temphasizedAccelerate: 'var(--schmancy-sys-motion-easing-emphasized-accelerate)',\n\t\t\t\tstandard: 'var(--schmancy-sys-motion-easing-standard)',\n\t\t\t\tstandardDecelerate: 'var(--schmancy-sys-motion-easing-standard-decelerate)',\n\t\t\t\tstandardAccelerate: 'var(--schmancy-sys-motion-easing-standard-accelerate)',\n\t\t\t\tlegacy: 'var(--schmancy-sys-motion-easing-legacy)',\n\t\t\t\tlinear: 'var(--schmancy-sys-motion-easing-linear)',\n\t\t\t},\n\t\t\t// Duration tokens\n\t\t\tduration: {\n\t\t\t\tshort1: 'var(--schmancy-sys-motion-duration-short1)',\n\t\t\t\tshort2: 'var(--schmancy-sys-motion-duration-short2)',\n\t\t\t\tshort3: 'var(--schmancy-sys-motion-duration-short3)',\n\t\t\t\tshort4: 'var(--schmancy-sys-motion-duration-short4)',\n\t\t\t\tmedium1: 'var(--schmancy-sys-motion-duration-medium1)',\n\t\t\t\tmedium2: 'var(--schmancy-sys-motion-duration-medium2)',\n\t\t\t\tmedium3: 'var(--schmancy-sys-motion-duration-medium3)',\n\t\t\t\tmedium4: 'var(--schmancy-sys-motion-duration-medium4)',\n\t\t\t\tlong1: 'var(--schmancy-sys-motion-duration-long1)',\n\t\t\t\tlong2: 'var(--schmancy-sys-motion-duration-long2)',\n\t\t\t\tlong3: 'var(--schmancy-sys-motion-duration-long3)',\n\t\t\t\tlong4: 'var(--schmancy-sys-motion-duration-long4)',\n\t\t\t\textraLong1: 'var(--schmancy-sys-motion-duration-extraLong1)',\n\t\t\t\textraLong2: 'var(--schmancy-sys-motion-duration-extraLong2)',\n\t\t\t\textraLong3: 'var(--schmancy-sys-motion-duration-extraLong3)',\n\t\t\t\textraLong4: 'var(--schmancy-sys-motion-duration-extraLong4)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 State Layers\n\t\tstate: {\n\t\t\topacity: {\n\t\t\t\thover: 'var(--schmancy-sys-state-hover-opacity)',\n\t\t\t\tfocus: 'var(--schmancy-sys-state-focus-opacity)',\n\t\t\t\tpressed: 'var(--schmancy-sys-state-pressed-opacity)',\n\t\t\t\tdragged: 'var(--schmancy-sys-state-dragged-opacity)',\n\t\t\t\tdisabled: 'var(--schmancy-sys-state-disabled-opacity)',\n\t\t\t\tdisabledContainer: 'var(--schmancy-sys-state-disabled-container-opacity)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Spacing System\n\t\tspacing: {\n\t\t\t0: 'var(--schmancy-sys-spacing-0)',\n\t\t\t1: 'var(--schmancy-sys-spacing-1)',\n\t\t\t2: 'var(--schmancy-sys-spacing-2)',\n\t\t\t3: 'var(--schmancy-sys-spacing-3)',\n\t\t\t4: 'var(--schmancy-sys-spacing-4)',\n\t\t\t5: 'var(--schmancy-sys-spacing-5)',\n\t\t\t6: 'var(--schmancy-sys-spacing-6)',\n\t\t\t7: 'var(--schmancy-sys-spacing-7)',\n\t\t\t8: 'var(--schmancy-sys-spacing-8)',\n\t\t\t9: 'var(--schmancy-sys-spacing-9)',\n\t\t\t10: 'var(--schmancy-sys-spacing-10)',\n\t\t\t11: 'var(--schmancy-sys-spacing-11)',\n\t\t\t12: 'var(--schmancy-sys-spacing-12)',\n\t\t},\n\n\t\t// Legacy outline for backward compatibility\n\t\toutline: {\n\t\t\t1: 'var(--schmancy-sys-outline-1)',\n\t\t},\n\t},\n\n\t// Reference palette - complete tonal values\n\tref: {\n\t\tpalette: {\n\t\t\t// Primary tonal palette\n\t\t\tprimary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-primary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-primary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-primary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-primary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-primary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-primary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-primary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-primary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-primary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-primary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-primary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-primary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-primary-100)',\n\t\t\t},\n\t\t\t// Secondary tonal palette\n\t\t\tsecondary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-secondary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-secondary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-secondary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-secondary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-secondary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-secondary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-secondary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-secondary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-secondary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-secondary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-secondary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-secondary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-secondary-100)',\n\t\t\t},\n\t\t\t// Tertiary tonal palette\n\t\t\ttertiary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-tertiary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-tertiary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-tertiary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-tertiary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-tertiary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-tertiary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-tertiary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-tertiary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-tertiary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-tertiary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-tertiary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-tertiary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-tertiary-100)',\n\t\t\t},\n\t\t\t// Neutral tonal palette\n\t\t\tneutral: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-neutral-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-neutral-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-neutral-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-neutral-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-neutral-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-neutral-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-neutral-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-neutral-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-neutral-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-neutral-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-neutral-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-neutral-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-neutral-100)',\n\t\t\t},\n\t\t\t// Neutral variant tonal palette\n\t\t\tneutralVariant: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-neutralVariant-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-neutralVariant-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-neutralVariant-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-neutralVariant-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-neutralVariant-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-neutralVariant-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-neutralVariant-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-neutralVariant-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-neutralVariant-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-neutralVariant-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-neutralVariant-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-neutralVariant-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-neutralVariant-100)',\n\t\t\t},\n\t\t\t// Error tonal palette\n\t\t\terror: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-error-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-error-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-error-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-error-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-error-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-error-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-error-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-error-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-error-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-error-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-error-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-error-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-error-100)',\n\t\t\t},\n\t\t},\n\t},\n}\nconst theme = {\n\ttheme: ThemeDef,\n}\n\n/**\n * Type definition for the Schmancy Material Design 3 theme configuration.\n * Complete theme system with colors, typography, shape, motion, and state layers.\n *\n * @typedef {Object} TSchmancyTheme\n *\n * @example\n * ```typescript\n * import type { TSchmancyTheme } from '@schmancy/theme'\n *\n * const myTheme: Partial<TSchmancyTheme> = {\n * sys: {\n * color: {\n * primary: {\n * default: '#6750A4',\n * container: '#EADDFF'\n * }\n * },\n * shape: {\n * corner: {\n * medium: '12px'\n * }\n * }\n * }\n * }\n * ```\n */\nexport type TSchmancyTheme = (typeof theme)[keyof typeof theme] & {\n\t/**\n\t * Locale for number/date formatting (BCP 47 language tag).\n\t * Defaults to navigator.language, can be overridden via schmancy-theme locale attribute.\n\t * @example \"de-DE\", \"en-US\", \"ar-SA\"\n\t */\n\tlocale: string\n}\n\n/**\n * Default Schmancy theme configuration object.\n * Provides access to all theme CSS variables through JavaScript.\n *\n * @constant {TSchmancyTheme}\n *\n * @example\n * ```typescript\n * import { SchmancyTheme } from '@schmancy/theme'\n *\n * // Access primary color variable\n * const primaryColor = SchmancyTheme.sys.color.primary.default\n * // Returns: 'var(--schmancy-sys-color-primary-default)'\n * ```\n */\nconst SchmancyTheme: TSchmancyTheme = {\n\t...ThemeDef,\n\tlocale: typeof navigator !== 'undefined' ? navigator.language : 'de-DE',\n}\n\nexport { SchmancyTheme }\n"],"mappings":"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"}
1
+ {"version":3,"file":"theme.interface-BujperTo.cjs","names":[],"sources":["../src/theme/theme.interface.ts"],"sourcesContent":["/**\n * Material Design 3 Theme Definition\n * Complete theme system following Material Design 3 specifications\n * @see https://m3.material.io/foundations/customization\n *\n * @internal\n */\nconst ThemeDef = {\n\tsys: {\n\t\t// M3 Color System - Complete tonal palette support\n\t\tcolor: {\n\t\t\t// Neutral colors\n\t\t\tscrim: 'var(--schmancy-sys-color-scrim)',\n\t\t\toutline: 'var(--schmancy-sys-color-outline)',\n\t\t\toutlineVariant: 'var(--schmancy-sys-color-outlineVariant)',\n\t\t\tshadow: 'var(--schmancy-sys-color-shadow)',\n\n\t\t\t// Surface colors with complete tonal values\n\t\t\tsurface: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-surface-default)',\n\t\t\t\tdim: 'var(--schmancy-sys-color-surface-dim)',\n\t\t\t\tbright: 'var(--schmancy-sys-color-surface-bright)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-surface-container)',\n\t\t\t\tcontainerLow: 'var(--schmancy-sys-color-surface-containerLow)',\n\t\t\t\tcontainerLowest: 'var(--schmancy-sys-color-surface-containerLowest)',\n\t\t\t\tcontainerHigh: 'var(--schmancy-sys-color-surface-containerHigh)',\n\t\t\t\tcontainerHighest: 'var(--schmancy-sys-color-surface-containerHighest)',\n\t\t\t\ton: 'var(--schmancy-sys-color-surface-on)',\n\t\t\t\tonVariant: 'var(--schmancy-sys-color-surface-onVariant)',\n\t\t\t\ttint: 'var(--schmancy-sys-color-surface-tint)',\n\t\t\t\t// Inverse colors\n\t\t\t\tinverse: 'var(--schmancy-sys-color-inverse-surface)',\n\t\t\t\tinverseOn: 'var(--schmancy-sys-color-inverse-onSurface)',\n\t\t\t\t// Deprecated mappings for backward compatibility\n\t\t\t\tlow: 'var(--schmancy-sys-color-surface-containerLow)',\n\t\t\t\thigh: 'var(--schmancy-sys-color-surface-containerHigh)',\n\t\t\t\thighest: 'var(--schmancy-sys-color-surface-containerHighest)',\n\t\t\t\tlowest: 'var(--schmancy-sys-color-surface-containerLowest)',\n\t\t\t},\n\n\t\t\t// Primary color roles with fixed variants\n\t\t\tprimary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-primary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-primary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-primary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-primary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-primary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-primary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-primary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-primary-onFixedVariant)',\n\t\t\t\tinverse: 'var(--schmancy-sys-color-inverse-primary)',\n\t\t\t},\n\n\t\t\t// Secondary color roles with fixed variants\n\t\t\tsecondary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-secondary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-secondary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-secondary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-secondary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-secondary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-secondary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-secondary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-secondary-onFixedVariant)',\n\t\t\t},\n\n\t\t\t// Tertiary color roles with fixed variants\n\t\t\ttertiary: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-tertiary-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-tertiary-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-tertiary-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-tertiary-onContainer)',\n\t\t\t\tfixed: 'var(--schmancy-sys-color-tertiary-fixed)',\n\t\t\t\tfixedDim: 'var(--schmancy-sys-color-tertiary-fixedDim)',\n\t\t\t\tonFixed: 'var(--schmancy-sys-color-tertiary-onFixed)',\n\t\t\t\tonFixedVariant: 'var(--schmancy-sys-color-tertiary-onFixedVariant)',\n\t\t\t},\n\n\t\t\t// Error color roles\n\t\t\terror: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-error-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-error-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-error-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-error-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Success\n\t\t\tsuccess: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-success-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-success-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-success-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-success-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Warning\n\t\t\twarning: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-warning-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-warning-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-warning-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-warning-onContainer)',\n\t\t\t},\n\n\t\t\t// Extended color roles - Info\n\t\t\tinfo: {\n\t\t\t\tdefault: 'var(--schmancy-sys-color-info-default)',\n\t\t\t\ton: 'var(--schmancy-sys-color-info-on)',\n\t\t\t\tcontainer: 'var(--schmancy-sys-color-info-container)',\n\t\t\t\tonContainer: 'var(--schmancy-sys-color-info-onContainer)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Typography System\n\t\ttypography: {\n\t\t\t// Display styles\n\t\t\tdisplay: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-display-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-display-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-display-small)',\n\t\t\t},\n\t\t\t// Headline styles\n\t\t\theadline: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-headline-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-headline-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-headline-small)',\n\t\t\t},\n\t\t\t// Title styles\n\t\t\ttitle: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-title-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-title-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-title-small)',\n\t\t\t},\n\t\t\t// Body styles\n\t\t\tbody: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-body-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-body-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-body-small)',\n\t\t\t},\n\t\t\t// Label styles\n\t\t\tlabel: {\n\t\t\t\tlarge: 'var(--schmancy-sys-typescale-label-large)',\n\t\t\t\tmedium: 'var(--schmancy-sys-typescale-label-medium)',\n\t\t\t\tsmall: 'var(--schmancy-sys-typescale-label-small)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Shape System\n\t\tshape: {\n\t\t\tcorner: {\n\t\t\t\tnone: 'var(--schmancy-sys-shape-corner-none)',\n\t\t\t\textraSmall: 'var(--schmancy-sys-shape-corner-extraSmall)',\n\t\t\t\tsmall: 'var(--schmancy-sys-shape-corner-small)',\n\t\t\t\tmedium: 'var(--schmancy-sys-shape-corner-medium)',\n\t\t\t\tlarge: 'var(--schmancy-sys-shape-corner-large)',\n\t\t\t\textraLarge: 'var(--schmancy-sys-shape-corner-extraLarge)',\n\t\t\t\tfull: 'var(--schmancy-sys-shape-corner-full)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Elevation System with tinted shadows\n\t\televation: {\n\t\t\t0: 'var(--schmancy-sys-elevation-0)',\n\t\t\t1: 'var(--schmancy-sys-elevation-1)',\n\t\t\t2: 'var(--schmancy-sys-elevation-2)',\n\t\t\t3: 'var(--schmancy-sys-elevation-3)',\n\t\t\t4: 'var(--schmancy-sys-elevation-4)',\n\t\t\t5: 'var(--schmancy-sys-elevation-5)',\n\t\t},\n\n\t\t// M3 Motion System\n\t\tmotion: {\n\t\t\t// Easing tokens\n\t\t\teasing: {\n\t\t\t\temphasized: 'var(--schmancy-sys-motion-easing-emphasized)',\n\t\t\t\temphasizedDecelerate: 'var(--schmancy-sys-motion-easing-emphasized-decelerate)',\n\t\t\t\temphasizedAccelerate: 'var(--schmancy-sys-motion-easing-emphasized-accelerate)',\n\t\t\t\tstandard: 'var(--schmancy-sys-motion-easing-standard)',\n\t\t\t\tstandardDecelerate: 'var(--schmancy-sys-motion-easing-standard-decelerate)',\n\t\t\t\tstandardAccelerate: 'var(--schmancy-sys-motion-easing-standard-accelerate)',\n\t\t\t\tlegacy: 'var(--schmancy-sys-motion-easing-legacy)',\n\t\t\t\tlinear: 'var(--schmancy-sys-motion-easing-linear)',\n\t\t\t},\n\t\t\t// Duration tokens\n\t\t\tduration: {\n\t\t\t\tshort1: 'var(--schmancy-sys-motion-duration-short1)',\n\t\t\t\tshort2: 'var(--schmancy-sys-motion-duration-short2)',\n\t\t\t\tshort3: 'var(--schmancy-sys-motion-duration-short3)',\n\t\t\t\tshort4: 'var(--schmancy-sys-motion-duration-short4)',\n\t\t\t\tmedium1: 'var(--schmancy-sys-motion-duration-medium1)',\n\t\t\t\tmedium2: 'var(--schmancy-sys-motion-duration-medium2)',\n\t\t\t\tmedium3: 'var(--schmancy-sys-motion-duration-medium3)',\n\t\t\t\tmedium4: 'var(--schmancy-sys-motion-duration-medium4)',\n\t\t\t\tlong1: 'var(--schmancy-sys-motion-duration-long1)',\n\t\t\t\tlong2: 'var(--schmancy-sys-motion-duration-long2)',\n\t\t\t\tlong3: 'var(--schmancy-sys-motion-duration-long3)',\n\t\t\t\tlong4: 'var(--schmancy-sys-motion-duration-long4)',\n\t\t\t\textraLong1: 'var(--schmancy-sys-motion-duration-extraLong1)',\n\t\t\t\textraLong2: 'var(--schmancy-sys-motion-duration-extraLong2)',\n\t\t\t\textraLong3: 'var(--schmancy-sys-motion-duration-extraLong3)',\n\t\t\t\textraLong4: 'var(--schmancy-sys-motion-duration-extraLong4)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 State Layers\n\t\tstate: {\n\t\t\topacity: {\n\t\t\t\thover: 'var(--schmancy-sys-state-hover-opacity)',\n\t\t\t\tfocus: 'var(--schmancy-sys-state-focus-opacity)',\n\t\t\t\tpressed: 'var(--schmancy-sys-state-pressed-opacity)',\n\t\t\t\tdragged: 'var(--schmancy-sys-state-dragged-opacity)',\n\t\t\t\tdisabled: 'var(--schmancy-sys-state-disabled-opacity)',\n\t\t\t\tdisabledContainer: 'var(--schmancy-sys-state-disabled-container-opacity)',\n\t\t\t},\n\t\t},\n\n\t\t// M3 Spacing System\n\t\tspacing: {\n\t\t\t0: 'var(--schmancy-sys-spacing-0)',\n\t\t\t1: 'var(--schmancy-sys-spacing-1)',\n\t\t\t2: 'var(--schmancy-sys-spacing-2)',\n\t\t\t3: 'var(--schmancy-sys-spacing-3)',\n\t\t\t4: 'var(--schmancy-sys-spacing-4)',\n\t\t\t5: 'var(--schmancy-sys-spacing-5)',\n\t\t\t6: 'var(--schmancy-sys-spacing-6)',\n\t\t\t7: 'var(--schmancy-sys-spacing-7)',\n\t\t\t8: 'var(--schmancy-sys-spacing-8)',\n\t\t\t9: 'var(--schmancy-sys-spacing-9)',\n\t\t\t10: 'var(--schmancy-sys-spacing-10)',\n\t\t\t11: 'var(--schmancy-sys-spacing-11)',\n\t\t\t12: 'var(--schmancy-sys-spacing-12)',\n\t\t},\n\n\t\t// Legacy outline for backward compatibility\n\t\toutline: {\n\t\t\t1: 'var(--schmancy-sys-outline-1)',\n\t\t},\n\t},\n\n\t// Reference palette - complete tonal values\n\tref: {\n\t\tpalette: {\n\t\t\t// Primary tonal palette\n\t\t\tprimary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-primary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-primary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-primary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-primary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-primary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-primary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-primary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-primary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-primary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-primary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-primary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-primary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-primary-100)',\n\t\t\t},\n\t\t\t// Secondary tonal palette\n\t\t\tsecondary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-secondary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-secondary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-secondary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-secondary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-secondary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-secondary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-secondary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-secondary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-secondary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-secondary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-secondary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-secondary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-secondary-100)',\n\t\t\t},\n\t\t\t// Tertiary tonal palette\n\t\t\ttertiary: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-tertiary-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-tertiary-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-tertiary-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-tertiary-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-tertiary-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-tertiary-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-tertiary-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-tertiary-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-tertiary-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-tertiary-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-tertiary-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-tertiary-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-tertiary-100)',\n\t\t\t},\n\t\t\t// Neutral tonal palette\n\t\t\tneutral: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-neutral-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-neutral-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-neutral-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-neutral-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-neutral-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-neutral-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-neutral-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-neutral-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-neutral-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-neutral-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-neutral-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-neutral-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-neutral-100)',\n\t\t\t},\n\t\t\t// Neutral variant tonal palette\n\t\t\tneutralVariant: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-neutralVariant-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-neutralVariant-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-neutralVariant-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-neutralVariant-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-neutralVariant-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-neutralVariant-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-neutralVariant-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-neutralVariant-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-neutralVariant-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-neutralVariant-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-neutralVariant-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-neutralVariant-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-neutralVariant-100)',\n\t\t\t},\n\t\t\t// Error tonal palette\n\t\t\terror: {\n\t\t\t\t0: 'var(--schmancy-ref-palette-error-0)',\n\t\t\t\t10: 'var(--schmancy-ref-palette-error-10)',\n\t\t\t\t20: 'var(--schmancy-ref-palette-error-20)',\n\t\t\t\t30: 'var(--schmancy-ref-palette-error-30)',\n\t\t\t\t40: 'var(--schmancy-ref-palette-error-40)',\n\t\t\t\t50: 'var(--schmancy-ref-palette-error-50)',\n\t\t\t\t60: 'var(--schmancy-ref-palette-error-60)',\n\t\t\t\t70: 'var(--schmancy-ref-palette-error-70)',\n\t\t\t\t80: 'var(--schmancy-ref-palette-error-80)',\n\t\t\t\t90: 'var(--schmancy-ref-palette-error-90)',\n\t\t\t\t95: 'var(--schmancy-ref-palette-error-95)',\n\t\t\t\t99: 'var(--schmancy-ref-palette-error-99)',\n\t\t\t\t100: 'var(--schmancy-ref-palette-error-100)',\n\t\t\t},\n\t\t},\n\t},\n}\nconst theme = {\n\ttheme: ThemeDef,\n}\n\n/**\n * Type definition for the Schmancy Material Design 3 theme configuration.\n * Complete theme system with colors, typography, shape, motion, and state layers.\n *\n * @typedef {Object} TSchmancyTheme\n *\n * @example\n * ```typescript\n * import type { TSchmancyTheme } from '@schmancy/theme'\n *\n * const myTheme: Partial<TSchmancyTheme> = {\n * sys: {\n * color: {\n * primary: {\n * default: '#6750A4',\n * container: '#EADDFF'\n * }\n * },\n * shape: {\n * corner: {\n * medium: '12px'\n * }\n * }\n * }\n * }\n * ```\n */\nexport type TSchmancyTheme = (typeof theme)[keyof typeof theme] & {\n\t/**\n\t * Locale for number/date formatting (BCP 47 language tag).\n\t * Defaults to navigator.language, can be overridden via schmancy-theme locale attribute.\n\t * @example \"de-DE\", \"en-US\", \"ar-SA\"\n\t */\n\tlocale: string\n}\n\n/**\n * Default Schmancy theme configuration object.\n * Provides access to all theme CSS variables through JavaScript.\n *\n * @constant {TSchmancyTheme}\n *\n * @example\n * ```typescript\n * import { SchmancyTheme } from '@schmancy/theme'\n *\n * // Access primary color variable\n * const primaryColor = SchmancyTheme.sys.color.primary.default\n * // Returns: 'var(--schmancy-sys-color-primary-default)'\n * ```\n */\nconst SchmancyTheme: TSchmancyTheme = {\n\t...ThemeDef,\n\tlocale: typeof navigator !== 'undefined' ? navigator.language : 'de-DE',\n}\n\nexport { SchmancyTheme }\n"],"mappings":"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"}
package/dist/theme.js CHANGED
@@ -1,5 +1,5 @@
1
- import { d as e } from "./mixins-Dw6hVfy-.js";
1
+ import { d as e } from "./mixins-PBJJGiiP.js";
2
2
  import { i as t, n, r, t as i } from "./theme.service-DIUo1mBP.js";
3
- import { t as a } from "./theme.interface-v7SkAnDH.js";
4
- import { a as o, c as s, i as c, l, n as u, o as d, r as f, s as p, t as m } from "./theme-Qh-yPEPL.js";
3
+ import { t as a } from "./theme.interface-B9TjbSBF.js";
4
+ import { a as o, c as s, i as c, l, n as u, o as d, r as f, s as p, t as m } from "./theme-XO3nHDbW.js";
5
5
  export { u as SchmancyGenerateMoodAudioEvent, a as SchmancyTheme, f as SchmancyThemeAudioPlayer, o as SchmancyThemeComponent, c as SchmancyThemeController, m as SchmancyThemeControllerBoat, r as ThemeHereIAm, t as ThemeWhereAreYou, p as createDarkTonalPaletteFromBaseColor, s as createLightTonalPaletteFromBaseColor, l as formatTheme, i as schmancyTheme, d as tailwindStyles, n as theme, e as themeContext };
package/dist/tree.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-Db7gjDah.cjs`),t=require(`./decorate-DpFmy0nm.cjs`);let n=require(`rxjs`),r=require(`lit/decorators.js`),i=require(`lit`);var a=class extends e.s{constructor(...e){super(...e),this.open=!1,this._a11yId=`schmancy-tree-${Math.random().toString(36).slice(2,10)}`,this._internals=(()=>{try{return this.attachInternals()}catch{return}})()}static{this.styles=[i.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-47_CZk7q.cjs`),t=require(`./decorate-DpFmy0nm.cjs`);let n=require(`rxjs`),r=require(`lit/decorators.js`),i=require(`lit`);var a=class extends e.s{constructor(...e){super(...e),this.open=!1,this._a11yId=`schmancy-tree-${Math.random().toString(36).slice(2,10)}`,this._internals=(()=>{try{return this.attachInternals()}catch{return}})()}static{this.styles=[i.css`
2
2
  :host {
3
3
  display: block;
4
4
  position: relative;
package/dist/tree.js CHANGED
@@ -1,4 +1,4 @@
1
- import { s as e } from "./mixins-Dw6hVfy-.js";
1
+ import { s as e } from "./mixins-PBJJGiiP.js";
2
2
  import { t } from "./decorate-23nYs4Le.js";
3
3
  import { fromEvent as n, merge as r, switchMap as i, takeUntil as a, tap as o, zip as s } from "rxjs";
4
4
  import { customElement as c, property as l, query as u } from "lit/decorators.js";
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-Db7gjDah.cjs`),t=require(`./decorate-DpFmy0nm.cjs`);let n=require(`rxjs`),r=require(`rxjs/operators`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`lit/directives/ref.js`);var s=class extends e.s{constructor(...e){super(...e),this.type=`body`,this.token=`md`,this.editable=!1,this.value=``,this.placeholder=``,this._editRef=(0,o.createRef)()}static{this.styles=[a.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-47_CZk7q.cjs`),t=require(`./decorate-DpFmy0nm.cjs`);let n=require(`rxjs`),r=require(`rxjs/operators`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`lit/directives/ref.js`);var s=class extends e.s{constructor(...e){super(...e),this.type=`body`,this.token=`md`,this.editable=!1,this.value=``,this.placeholder=``,this._editRef=(0,o.createRef)()}static{this.styles=[a.css`
2
2
  :host {
3
3
  display: block;
4
4
  font-family: inherit;
@@ -1,4 +1,4 @@
1
- import { s as e } from "./mixins-Dw6hVfy-.js";
1
+ import { s as e } from "./mixins-PBJJGiiP.js";
2
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";
@@ -1 +1 @@
1
- {"version":3,"file":"utils-CJ9y2Jz9.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":"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"}
1
+ {"version":3,"file":"utils-Dt5PpmaQ.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 +1 @@
1
- {"version":3,"file":"utils-BfOze6Tk.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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"}
1
+ {"version":3,"file":"utils-kND2Z9Xg.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-BLCRsxIC.cjs`),t=require(`./animation-CO_Csq84.cjs`),n=require(`./overlay-stack-DPIe_aYv.cjs`),r=require(`./utils-CJ9y2Jz9.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;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./search-BLCRsxIC.cjs`),t=require(`./animation-CO_Csq84.cjs`),n=require(`./overlay-stack-DPIe_aYv.cjs`),r=require(`./utils-Dt5PpmaQ.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,5 +1,5 @@
1
1
  import { t as e } from "./search-BTz7-Rev.js";
2
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
3
  import { t as b } from "./overlay-stack-DCDS17uj.js";
4
- import { n as x, t as S } from "./utils-BfOze6Tk.js";
4
+ import { n as x, t as S } from "./utils-kND2Z9Xg.js";
5
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(`./mixins-Db7gjDah.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`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-47_CZk7q.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;
@@ -1,4 +1,4 @@
1
- import { s as e } from "./mixins-Dw6hVfy-.js";
1
+ import { s as e } from "./mixins-PBJJGiiP.js";
2
2
  import { t } from "./decorate-23nYs4Le.js";
3
3
  import { customElement as n } from "lit/decorators.js";
4
4
  import { css as r, html as i } from "lit";