@mhmo91/schmancy 0.8.4 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1396) hide show
  1. package/README.md +110 -1
  2. package/ai/animation.md +64 -0
  3. package/ai/area.md +35 -256
  4. package/ai/autocomplete.md +44 -162
  5. package/ai/avatar.md +47 -178
  6. package/ai/badge.md +41 -108
  7. package/ai/busy.md +25 -184
  8. package/ai/button.md +52 -150
  9. package/ai/card.md +42 -215
  10. package/ai/checkbox.md +32 -135
  11. package/ai/chips.md +73 -383
  12. package/ai/code-highlight.md +33 -226
  13. package/ai/content-drawer.md +65 -232
  14. package/ai/date-range.md +43 -198
  15. package/ai/details.md +48 -453
  16. package/ai/dialog.md +55 -164
  17. package/ai/directives.md +258 -405
  18. package/ai/divider.md +15 -137
  19. package/ai/dropdown.md +44 -235
  20. package/ai/form.md +41 -137
  21. package/ai/icons.md +31 -235
  22. package/ai/input.md +50 -210
  23. package/ai/lightbox.md +25 -370
  24. package/ai/list.md +51 -130
  25. package/ai/menu.md +25 -134
  26. package/ai/mixins.md +70 -0
  27. package/ai/nav-drawer.md +30 -184
  28. package/ai/navigation-bar.md +27 -184
  29. package/ai/navigation-rail.md +62 -630
  30. package/ai/notification.md +49 -183
  31. package/ai/progress.md +26 -65
  32. package/ai/radio-group.md +45 -189
  33. package/ai/select.md +49 -209
  34. package/ai/sheet.md +74 -506
  35. package/ai/steps.md +30 -392
  36. package/ai/store.md +60 -247
  37. package/ai/surface.md +58 -245
  38. package/ai/table.md +56 -330
  39. package/ai/tabs.md +31 -176
  40. package/ai/textarea.md +48 -232
  41. package/ai/theme.md +40 -1089
  42. package/ai/tooltip.md +35 -146
  43. package/ai/tree.md +45 -271
  44. package/ai/typography.md +43 -296
  45. package/custom-elements.json +10955 -0
  46. package/dist/ai/animation.md +64 -0
  47. package/dist/ai/area.md +35 -256
  48. package/dist/ai/autocomplete.md +44 -162
  49. package/dist/ai/avatar.md +47 -178
  50. package/dist/ai/badge.md +41 -108
  51. package/dist/ai/busy.md +25 -184
  52. package/dist/ai/button.md +52 -150
  53. package/dist/ai/card.md +42 -215
  54. package/dist/ai/checkbox.md +32 -135
  55. package/dist/ai/chips.md +73 -383
  56. package/dist/ai/code-highlight.md +33 -226
  57. package/dist/ai/content-drawer.md +65 -232
  58. package/dist/ai/date-range.md +43 -198
  59. package/dist/ai/details.md +48 -453
  60. package/dist/ai/dialog.md +55 -164
  61. package/dist/ai/directives.md +258 -405
  62. package/dist/ai/divider.md +15 -137
  63. package/dist/ai/dropdown.md +44 -235
  64. package/dist/ai/form.md +41 -137
  65. package/dist/ai/icons.md +31 -235
  66. package/dist/ai/input.md +50 -210
  67. package/dist/ai/lightbox.md +25 -370
  68. package/dist/ai/list.md +51 -130
  69. package/dist/ai/menu.md +25 -134
  70. package/dist/ai/mixins.md +70 -0
  71. package/dist/ai/nav-drawer.md +30 -184
  72. package/dist/ai/navigation-bar.md +27 -184
  73. package/dist/ai/navigation-rail.md +62 -630
  74. package/dist/ai/notification.md +49 -183
  75. package/dist/ai/progress.md +26 -65
  76. package/dist/ai/radio-group.md +45 -189
  77. package/dist/ai/select.md +49 -209
  78. package/dist/ai/sheet.md +74 -506
  79. package/dist/ai/steps.md +30 -392
  80. package/dist/ai/store.md +60 -247
  81. package/dist/ai/surface.md +58 -245
  82. package/dist/ai/table.md +56 -330
  83. package/dist/ai/tabs.md +31 -176
  84. package/dist/ai/textarea.md +48 -232
  85. package/dist/ai/theme.md +40 -1089
  86. package/dist/ai/tooltip.md +35 -146
  87. package/dist/ai/tree.md +45 -271
  88. package/dist/ai/typography.md +43 -296
  89. package/dist/animation-BK-8BwY8.js +173 -0
  90. package/dist/animation-BK-8BwY8.js.map +1 -0
  91. package/dist/animation-CO_Csq84.cjs +16 -0
  92. package/dist/animation-CO_Csq84.cjs.map +1 -0
  93. package/dist/area-1h9xEpTc.cjs +12 -0
  94. package/dist/area-1h9xEpTc.cjs.map +1 -0
  95. package/dist/area-DbBcfm5p.js +590 -0
  96. package/dist/area-DbBcfm5p.js.map +1 -0
  97. package/dist/area.cjs +1 -2
  98. package/dist/area.js +2 -29
  99. package/dist/audio-DtYYgzYD.cjs +1 -0
  100. package/dist/audio-DtYYgzYD.cjs.map +1 -0
  101. package/dist/audio-kz8UgPTO.js +335 -0
  102. package/dist/audio-kz8UgPTO.js.map +1 -0
  103. package/dist/audio.cjs +1 -2
  104. package/dist/audio.js +3 -9
  105. package/dist/autocomplete-DDVsegep.js +378 -0
  106. package/dist/autocomplete-DDVsegep.js.map +1 -0
  107. package/dist/autocomplete-OE70CcYP.cjs +111 -0
  108. package/dist/autocomplete-OE70CcYP.cjs.map +1 -0
  109. package/dist/autocomplete.cjs +1 -2
  110. package/dist/autocomplete.js +1 -2
  111. package/dist/badge.cjs +1 -2
  112. package/dist/badge.js +2 -6
  113. package/dist/boat-Cf1oJ0ka.cjs +80 -0
  114. package/dist/boat-Cf1oJ0ka.cjs.map +1 -0
  115. package/dist/boat-T8Ov4-yA.js +347 -0
  116. package/dist/boat-T8Ov4-yA.js.map +1 -0
  117. package/dist/boat.cjs +1 -2
  118. package/dist/boat.js +2 -5
  119. package/dist/busy-BD6D5P-l.js +167 -0
  120. package/dist/busy-BD6D5P-l.js.map +1 -0
  121. package/dist/busy-DF9wztWL.cjs +134 -0
  122. package/dist/busy-DF9wztWL.cjs.map +1 -0
  123. package/dist/busy.cjs +1 -2
  124. package/dist/busy.js +1 -2
  125. package/dist/button.cjs +113 -2
  126. package/dist/button.cjs.map +1 -1
  127. package/dist/button.js +398 -5
  128. package/dist/button.js.map +1 -1
  129. package/dist/card-Csvu8UJ9.cjs +177 -0
  130. package/dist/card-Csvu8UJ9.cjs.map +1 -0
  131. package/dist/card-DM_miKMd.js +284 -0
  132. package/dist/card-DM_miKMd.js.map +1 -0
  133. package/dist/card.cjs +1 -2
  134. package/dist/card.js +1 -2
  135. package/dist/charts.cjs +112 -2
  136. package/dist/charts.cjs.map +1 -1
  137. package/dist/charts.js +368 -8
  138. package/dist/charts.js.map +1 -1
  139. package/dist/checkbox-BgGtMaMR.js +610 -0
  140. package/dist/checkbox-BgGtMaMR.js.map +1 -0
  141. package/dist/checkbox-sJujc_ga.cjs +39 -0
  142. package/dist/checkbox-sJujc_ga.cjs.map +1 -0
  143. package/dist/checkbox.cjs +1 -2
  144. package/dist/checkbox.js +2 -5
  145. package/dist/chips-BZaH4wez.js +645 -0
  146. package/dist/chips-BZaH4wez.js.map +1 -0
  147. package/dist/chips-D_e6wijp.cjs +253 -0
  148. package/dist/chips-D_e6wijp.cjs.map +1 -0
  149. package/dist/chips.cjs +1 -2
  150. package/dist/chips.js +3 -10
  151. package/dist/chunk-BCfY8kxB.cjs +1 -0
  152. package/dist/chunk-C_1VqBVD.js +11 -0
  153. package/dist/code-highlight-DlhERv_O.cjs +190 -0
  154. package/dist/code-highlight-DlhERv_O.cjs.map +1 -0
  155. package/dist/code-highlight-Q3cc6ukq.js +290 -0
  156. package/dist/code-highlight-Q3cc6ukq.js.map +1 -0
  157. package/dist/code-highlight.cjs +1 -2
  158. package/dist/code-highlight.js +2 -7
  159. package/dist/components-CRhkB3V2.js +730 -0
  160. package/dist/components-CRhkB3V2.js.map +1 -0
  161. package/dist/components-DnlEYYDs.cjs +73 -0
  162. package/dist/components-DnlEYYDs.cjs.map +1 -0
  163. package/dist/components.cjs +1 -2
  164. package/dist/components.js +2 -5
  165. package/dist/connectivity.cjs +59 -0
  166. package/dist/connectivity.cjs.map +1 -0
  167. package/dist/connectivity.js +86 -0
  168. package/dist/connectivity.js.map +1 -0
  169. package/dist/content-drawer.cjs +1 -2
  170. package/dist/content-drawer.js +2 -13
  171. package/dist/cursor-glow-Ah7VXSj7.js +46 -0
  172. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -0
  173. package/dist/cursor-glow-DtSy_PJd.cjs +1 -0
  174. package/dist/cursor-glow-DtSy_PJd.cjs.map +1 -0
  175. package/dist/date-range-C0IYnvHF.js +946 -0
  176. package/dist/date-range-C0IYnvHF.js.map +1 -0
  177. package/dist/date-range-cymbTDnl.cjs +131 -0
  178. package/dist/date-range-cymbTDnl.cjs.map +1 -0
  179. package/dist/date-range-inline-0ENN4Plz.js +267 -0
  180. package/dist/date-range-inline-0ENN4Plz.js.map +1 -0
  181. package/dist/date-range-inline-Cfwt-ReH.cjs +43 -0
  182. package/dist/date-range-inline-Cfwt-ReH.cjs.map +1 -0
  183. package/dist/date-range-inline.cjs +1 -2
  184. package/dist/date-range-inline.js +2 -5
  185. package/dist/date-range.cjs +1 -2
  186. package/dist/date-range.js +2 -6
  187. package/dist/delay-D1dVP93u.js +346 -0
  188. package/dist/delay-D1dVP93u.js.map +1 -0
  189. package/dist/delay-D6mQLUp-.cjs +9 -0
  190. package/dist/delay-D6mQLUp-.cjs.map +1 -0
  191. package/dist/delay.cjs +1 -2
  192. package/dist/delay.js +2 -6
  193. package/dist/details-CPT_Mi4e.cjs +168 -0
  194. package/dist/details-CPT_Mi4e.cjs.map +1 -0
  195. package/dist/details-Cv4OOrVW.js +293 -0
  196. package/dist/details-Cv4OOrVW.js.map +1 -0
  197. package/dist/details.cjs +1 -2
  198. package/dist/details.js +2 -5
  199. package/dist/dialog-service-NZEvyEK-.js +193 -0
  200. package/dist/dialog-service-NZEvyEK-.js.map +1 -0
  201. package/dist/dialog-service-VnW4gkmE.cjs +1 -0
  202. package/dist/dialog-service-VnW4gkmE.cjs.map +1 -0
  203. package/dist/dialog.cjs +82 -2
  204. package/dist/dialog.cjs.map +1 -1
  205. package/dist/dialog.js +396 -9
  206. package/dist/dialog.js.map +1 -1
  207. package/dist/directives.cjs +108 -2
  208. package/dist/directives.cjs.map +1 -1
  209. package/dist/directives.js +1362 -14
  210. package/dist/directives.js.map +1 -1
  211. package/dist/discovery.cjs +1 -2
  212. package/dist/discovery.cjs.map +1 -1
  213. package/dist/discovery.js +61 -6
  214. package/dist/discovery.js.map +1 -1
  215. package/dist/divider-DDC-kND3.js +87 -0
  216. package/dist/divider-DDC-kND3.js.map +1 -0
  217. package/dist/divider-nZ_2to2N.cjs +57 -0
  218. package/dist/divider-nZ_2to2N.cjs.map +1 -0
  219. package/dist/divider.cjs +1 -2
  220. package/dist/divider.js +1 -2
  221. package/dist/dropdown.cjs +57 -2
  222. package/dist/dropdown.cjs.map +1 -1
  223. package/dist/dropdown.js +160 -5
  224. package/dist/dropdown.js.map +1 -1
  225. package/dist/expand-Bp3N8CcL.js +336 -0
  226. package/dist/expand-Bp3N8CcL.js.map +1 -0
  227. package/dist/expand-Crdts9q_.cjs +141 -0
  228. package/dist/expand-Crdts9q_.cjs.map +1 -0
  229. package/dist/expand.cjs +1 -0
  230. package/dist/expand.js +2 -0
  231. package/dist/extra-B0IZCg0t.cjs +31 -0
  232. package/dist/extra-B0IZCg0t.cjs.map +1 -0
  233. package/dist/extra-DupwhQhC.js +3435 -0
  234. package/dist/extra-DupwhQhC.js.map +1 -0
  235. package/dist/extra.cjs +1 -2
  236. package/dist/extra.js +2 -6
  237. package/dist/float-CQoJ_oSB.cjs +1 -0
  238. package/dist/float-CQoJ_oSB.cjs.map +1 -0
  239. package/dist/float-Dqdc1_S5.js +5 -0
  240. package/dist/float-Dqdc1_S5.js.map +1 -0
  241. package/dist/float.cjs +1 -0
  242. package/dist/float.js +2 -0
  243. package/dist/flow-Bbwn6dRN.cjs +1 -0
  244. package/dist/flow-Bbwn6dRN.cjs.map +1 -0
  245. package/dist/flow-CUj0fDT_.js +386 -0
  246. package/dist/flow-CUj0fDT_.js.map +1 -0
  247. package/dist/form-CW5XNuTg.js +270 -0
  248. package/dist/form-CW5XNuTg.js.map +1 -0
  249. package/dist/form-CvoLqMY7.cjs +1 -0
  250. package/dist/form-CvoLqMY7.cjs.map +1 -0
  251. package/dist/form.cjs +1 -2
  252. package/dist/form.js +1 -2
  253. package/dist/hashContent-DYM21p6t.js +6 -0
  254. package/dist/hashContent-DYM21p6t.js.map +1 -0
  255. package/dist/hashContent-DaeGmY-p.cjs +1 -0
  256. package/dist/hashContent-DaeGmY-p.cjs.map +1 -0
  257. package/dist/icons-BLQHEbIk.cjs +52 -0
  258. package/dist/icons-BLQHEbIk.cjs.map +1 -0
  259. package/dist/icons-Cpfdb7sA.js +161 -0
  260. package/dist/icons-Cpfdb7sA.js.map +1 -0
  261. package/dist/icons.cjs +1 -2
  262. package/dist/icons.js +1 -2
  263. package/dist/iframe-DG6HVYdy.js +44 -0
  264. package/dist/iframe-DG6HVYdy.js.map +1 -0
  265. package/dist/iframe-sJGXBbxT.cjs +24 -0
  266. package/dist/iframe-sJGXBbxT.cjs.map +1 -0
  267. package/dist/iframe.cjs +1 -0
  268. package/dist/iframe.js +2 -0
  269. package/dist/index.cjs +1 -2
  270. package/dist/index.js +69 -285
  271. package/dist/input-BevxycIt.js +364 -0
  272. package/dist/input-BevxycIt.js.map +1 -0
  273. package/dist/input-DGTdmp1Q.cjs +51 -0
  274. package/dist/input-DGTdmp1Q.cjs.map +1 -0
  275. package/dist/input-chip-BWS-SFU4.js +301 -0
  276. package/dist/input-chip-BWS-SFU4.js.map +1 -0
  277. package/dist/input-chip-CKVtjInb.cjs +146 -0
  278. package/dist/input-chip-CKVtjInb.cjs.map +1 -0
  279. package/dist/input.cjs +1 -2
  280. package/dist/input.js +2 -6
  281. package/dist/intersection-BPLpqYEd.js +12 -0
  282. package/dist/intersection-BPLpqYEd.js.map +1 -0
  283. package/dist/intersection-CZpaIHeT.cjs +1 -0
  284. package/dist/intersection-CZpaIHeT.cjs.map +1 -0
  285. package/dist/json.cjs +11 -2
  286. package/dist/json.cjs.map +1 -1
  287. package/dist/json.js +40 -4
  288. package/dist/json.js.map +1 -1
  289. package/dist/layout-4C-6_cre.cjs +1 -0
  290. package/dist/layout-4C-6_cre.cjs.map +1 -0
  291. package/dist/layout-CQdd8UCr.cjs +17 -0
  292. package/dist/layout-CQdd8UCr.cjs.map +1 -0
  293. package/dist/layout-DxLjlDfr.js +267 -0
  294. package/dist/layout-DxLjlDfr.js.map +1 -0
  295. package/dist/layout-yxSlLybo.js +94 -0
  296. package/dist/layout-yxSlLybo.js.map +1 -0
  297. package/dist/layout.cjs +1 -2
  298. package/dist/layout.js +3 -9
  299. package/dist/lightbox-Bjc55lHH.js +678 -0
  300. package/dist/lightbox-Bjc55lHH.js.map +1 -0
  301. package/dist/lightbox-C_863_XU.cjs +202 -0
  302. package/dist/lightbox-C_863_XU.cjs.map +1 -0
  303. package/dist/lightbox.cjs +1 -2
  304. package/dist/lightbox.js +2 -8
  305. package/dist/list-BAqhlzZd.js +105 -0
  306. package/dist/list-BAqhlzZd.js.map +1 -0
  307. package/dist/list-CaXzdN9_.cjs +40 -0
  308. package/dist/list-CaXzdN9_.cjs.map +1 -0
  309. package/dist/list.cjs +1 -2
  310. package/dist/list.js +2 -7
  311. package/dist/litElement.mixin-DN6X9_wD.cjs +1 -0
  312. package/dist/litElement.mixin-DN6X9_wD.cjs.map +1 -0
  313. package/dist/litElement.mixin-Dktub0ri.js +12 -0
  314. package/dist/litElement.mixin-Dktub0ri.js.map +1 -0
  315. package/dist/magnetic-BZGFxAWG.js +47 -0
  316. package/dist/magnetic-BZGFxAWG.js.map +1 -0
  317. package/dist/magnetic-Dux4QwO4.cjs +1 -0
  318. package/dist/magnetic-Dux4QwO4.cjs.map +1 -0
  319. package/dist/mailbox-BvsLXpvy.cjs +1142 -0
  320. package/dist/mailbox-BvsLXpvy.cjs.map +1 -0
  321. package/dist/mailbox-DuMUH4f3.js +1584 -0
  322. package/dist/mailbox-DuMUH4f3.js.map +1 -0
  323. package/dist/mailbox.cjs +1 -2
  324. package/dist/mailbox.js +2 -9
  325. package/dist/map-C2Msv9TQ.cjs +80 -0
  326. package/dist/map-C2Msv9TQ.cjs.map +1 -0
  327. package/dist/map-DkIy1ph7.js +205 -0
  328. package/dist/map-DkIy1ph7.js.map +1 -0
  329. package/dist/map.cjs +1 -2
  330. package/dist/map.js +2 -5
  331. package/dist/menu-DEeDKW5U.js +51 -0
  332. package/dist/menu-DEeDKW5U.js.map +1 -0
  333. package/dist/menu-Mm71lv9k.cjs +23 -0
  334. package/dist/menu-Mm71lv9k.cjs.map +1 -0
  335. package/dist/menu.cjs +1 -2
  336. package/dist/menu.js +1 -2
  337. package/dist/mixins.cjs +1 -2
  338. package/dist/mixins.cjs.map +1 -1
  339. package/dist/mixins.js +59 -12
  340. package/dist/mixins.js.map +1 -1
  341. package/dist/nav-drawer.cjs +1 -2
  342. package/dist/nav-drawer.js +2 -12
  343. package/dist/navigation-bar.cjs +1 -2
  344. package/dist/navigation-bar.js +2 -6
  345. package/dist/navigation-rail.cjs +71 -2
  346. package/dist/navigation-rail.cjs.map +1 -1
  347. package/dist/navigation-rail.js +363 -5
  348. package/dist/navigation-rail.js.map +1 -1
  349. package/dist/notification-K-ug8cKk.js +304 -0
  350. package/dist/notification-K-ug8cKk.js.map +1 -0
  351. package/dist/notification-cTgXEDZ0.cjs +23 -0
  352. package/dist/notification-cTgXEDZ0.cjs.map +1 -0
  353. package/dist/notification.cjs +1 -2
  354. package/dist/notification.js +2 -9
  355. package/dist/option-5rEOmtAm.cjs +43 -0
  356. package/dist/option-5rEOmtAm.cjs.map +1 -0
  357. package/dist/option-TFSKvSjT.js +97 -0
  358. package/dist/option-TFSKvSjT.js.map +1 -0
  359. package/dist/option.cjs +1 -2
  360. package/dist/option.js +1 -2
  361. package/dist/overlay-stack-DQey9Qph.cjs +1 -0
  362. package/dist/overlay-stack-DQey9Qph.cjs.map +1 -0
  363. package/dist/overlay-stack-DT1SdaGW.js +39 -0
  364. package/dist/overlay-stack-DT1SdaGW.js.map +1 -0
  365. package/dist/page.cjs +20 -2
  366. package/dist/page.cjs.map +1 -1
  367. package/dist/page.js +71 -4
  368. package/dist/page.js.map +1 -1
  369. package/dist/progress-Cta3nM-f.js +128 -0
  370. package/dist/progress-Cta3nM-f.js.map +1 -0
  371. package/dist/progress-iu0AMbSg.cjs +51 -0
  372. package/dist/progress-iu0AMbSg.cjs.map +1 -0
  373. package/dist/progress.cjs +1 -2
  374. package/dist/progress.js +1 -2
  375. package/dist/provide-BEyyKlDM.cjs +1 -0
  376. package/dist/provide-BEyyKlDM.cjs.map +1 -0
  377. package/dist/provide-D69zybs5.js +107 -0
  378. package/dist/provide-D69zybs5.js.map +1 -0
  379. package/dist/qr-scanner.cjs +35 -2
  380. package/dist/qr-scanner.cjs.map +1 -1
  381. package/dist/qr-scanner.js +119 -4
  382. package/dist/qr-scanner.js.map +1 -1
  383. package/dist/radio-group-BjSWmYJC.js +105 -0
  384. package/dist/radio-group-BjSWmYJC.js.map +1 -0
  385. package/dist/radio-group-DKPN0T50.cjs +40 -0
  386. package/dist/radio-group-DKPN0T50.cjs.map +1 -0
  387. package/dist/radio-group.cjs +1 -2
  388. package/dist/radio-group.js +2 -6
  389. package/dist/range.cjs +62 -0
  390. package/dist/range.cjs.map +1 -0
  391. package/dist/range.js +85 -0
  392. package/dist/range.js.map +1 -0
  393. package/dist/reduced-motion-D-L12p7G.js +7 -0
  394. package/dist/reduced-motion-D-L12p7G.js.map +1 -0
  395. package/dist/reduced-motion-Ds05GPyz.cjs +1 -0
  396. package/dist/reduced-motion-Ds05GPyz.cjs.map +1 -0
  397. package/dist/rxjs-utils-BSjmI9-Q.js +32 -0
  398. package/dist/rxjs-utils-BSjmI9-Q.js.map +1 -0
  399. package/dist/rxjs-utils-DCsfzeap.cjs +1 -0
  400. package/dist/rxjs-utils-DCsfzeap.cjs.map +1 -0
  401. package/dist/rxjs-utils.cjs +1 -2
  402. package/dist/rxjs-utils.js +2 -14
  403. package/dist/scroll-mayaGGpE.cjs +26 -0
  404. package/dist/scroll-mayaGGpE.cjs.map +1 -0
  405. package/dist/scroll-tG1vaRFO.js +112 -0
  406. package/dist/scroll-tG1vaRFO.js.map +1 -0
  407. package/dist/search-C4dFHYbX.js +91 -0
  408. package/dist/search-C4dFHYbX.js.map +1 -0
  409. package/dist/search-Ds8tt7Et.cjs +1 -0
  410. package/dist/search-Ds8tt7Et.cjs.map +1 -0
  411. package/dist/select-C4YK5Arj.cjs +56 -0
  412. package/dist/select-C4YK5Arj.cjs.map +1 -0
  413. package/dist/select-CepryGGP.js +305 -0
  414. package/dist/select-CepryGGP.js.map +1 -0
  415. package/dist/select.cjs +1 -2
  416. package/dist/select.js +2 -5
  417. package/dist/sheet-Cy4C2-kG.cjs +35 -0
  418. package/dist/sheet-Cy4C2-kG.cjs.map +1 -0
  419. package/dist/sheet-D2uT95S1.js +168 -0
  420. package/dist/sheet-D2uT95S1.js.map +1 -0
  421. package/dist/sheet.cjs +1 -2
  422. package/dist/sheet.js +3 -7
  423. package/dist/sheet.service-Dv5Hwj3k.cjs +1 -0
  424. package/dist/sheet.service-Dv5Hwj3k.cjs.map +1 -0
  425. package/dist/sheet.service-Os8KJGSE.js +86 -0
  426. package/dist/sheet.service-Os8KJGSE.js.map +1 -0
  427. package/dist/slider.cjs +82 -2
  428. package/dist/slider.cjs.map +1 -1
  429. package/dist/slider.js +143 -5
  430. package/dist/slider.js.map +1 -1
  431. package/dist/sound.service-Bu3EQLv2.cjs +1 -0
  432. package/dist/sound.service-Bu3EQLv2.cjs.map +1 -0
  433. package/dist/sound.service-m3BrSfuH.js +2353 -0
  434. package/dist/sound.service-m3BrSfuH.js.map +1 -0
  435. package/dist/src-BLcmKlCH.js +1244 -0
  436. package/dist/src-BLcmKlCH.js.map +1 -0
  437. package/dist/src-tfU0akqI.cjs +269 -0
  438. package/dist/src-tfU0akqI.cjs.map +1 -0
  439. package/dist/steps.cjs +70 -2
  440. package/dist/steps.cjs.map +1 -1
  441. package/dist/steps.js +178 -7
  442. package/dist/steps.js.map +1 -1
  443. package/dist/store-CorvD3bT.cjs +1 -0
  444. package/dist/store-CorvD3bT.cjs.map +1 -0
  445. package/dist/store-DYqDLAvT.js +1654 -0
  446. package/dist/store-DYqDLAvT.js.map +1 -0
  447. package/dist/store.cjs +1 -2
  448. package/dist/store.js +2 -47
  449. package/dist/surface-CiiIYeJN.cjs +7 -0
  450. package/dist/surface-CiiIYeJN.cjs.map +1 -0
  451. package/dist/surface-fXvRpS6s.js +21 -0
  452. package/dist/surface-fXvRpS6s.js.map +1 -0
  453. package/dist/surface.cjs +1 -2
  454. package/dist/surface.js +2 -6
  455. package/dist/surface.mixin-C4hbgyaP.cjs +297 -0
  456. package/dist/surface.mixin-C4hbgyaP.cjs.map +1 -0
  457. package/dist/surface.mixin-DBuxL5aL.js +320 -0
  458. package/dist/surface.mixin-DBuxL5aL.js.map +1 -0
  459. package/dist/table-BRVKlNjl.cjs +63 -0
  460. package/dist/table-BRVKlNjl.cjs.map +1 -0
  461. package/dist/table-BeXnwSsq.js +631 -0
  462. package/dist/table-BeXnwSsq.js.map +1 -0
  463. package/dist/table.cjs +1 -2
  464. package/dist/table.js +2 -6
  465. package/dist/tabs-CBU9Ctqm.cjs +31 -0
  466. package/dist/tabs-CBU9Ctqm.cjs.map +1 -0
  467. package/dist/tabs-y708NWQ2.js +125 -0
  468. package/dist/tabs-y708NWQ2.js.map +1 -0
  469. package/dist/tabs.cjs +1 -2
  470. package/dist/tabs.js +1 -2
  471. package/dist/tailwind.mixin-C4cx3IOr.js +225 -0
  472. package/dist/tailwind.mixin-C4cx3IOr.js.map +1 -0
  473. package/dist/tailwind.mixin-DGiyLbEi.cjs +2 -0
  474. package/dist/tailwind.mixin-DGiyLbEi.cjs.map +1 -0
  475. package/dist/teleport.cjs +1 -2
  476. package/dist/teleport.js +2 -8
  477. package/dist/textarea-BhAoJg8c.cjs +35 -0
  478. package/dist/textarea-BhAoJg8c.cjs.map +1 -0
  479. package/dist/textarea-Bl8-gQEJ.js +195 -0
  480. package/dist/textarea-Bl8-gQEJ.js.map +1 -0
  481. package/dist/textarea.cjs +1 -2
  482. package/dist/textarea.js +1 -2
  483. package/dist/theme-C-vdR-Ic.cjs +181 -0
  484. package/dist/theme-C-vdR-Ic.cjs.map +1 -0
  485. package/dist/theme-DZUpYJn-.js +4121 -0
  486. package/dist/theme-DZUpYJn-.js.map +1 -0
  487. package/dist/theme-button-CwrvpOMK.js +19 -0
  488. package/dist/theme-button-CwrvpOMK.js.map +1 -0
  489. package/dist/theme-button-Cx1iKh7G.cjs +8 -0
  490. package/dist/theme-button-Cx1iKh7G.cjs.map +1 -0
  491. package/dist/theme-button.cjs +1 -2
  492. package/dist/theme-button.js +1 -2
  493. package/dist/theme.cjs +1 -2
  494. package/dist/theme.events-Cv7N4Toe.js +2 -0
  495. package/dist/theme.events-Cv7N4Toe.js.map +1 -0
  496. package/dist/theme.events-DM4H5F2d.cjs +1 -0
  497. package/dist/theme.events-DM4H5F2d.cjs.map +1 -0
  498. package/dist/theme.interface-CXloMUCw.js +276 -0
  499. package/dist/theme.interface-CXloMUCw.js.map +1 -0
  500. package/dist/theme.interface-Da23QAYb.cjs +1 -0
  501. package/dist/theme.interface-Da23QAYb.cjs.map +1 -0
  502. package/dist/theme.js +6 -21
  503. package/dist/theme.service-C_tjlqgy.cjs +1 -0
  504. package/dist/theme.service-C_tjlqgy.cjs.map +1 -0
  505. package/dist/theme.service-D9lEas89.js +108 -0
  506. package/dist/theme.service-D9lEas89.js.map +1 -0
  507. package/dist/tooltip.cjs +6 -2
  508. package/dist/tooltip.cjs.map +1 -1
  509. package/dist/tooltip.js +200 -5
  510. package/dist/tooltip.js.map +1 -1
  511. package/dist/tree.cjs +26 -2
  512. package/dist/tree.cjs.map +1 -1
  513. package/dist/tree.js +64 -4
  514. package/dist/tree.js.map +1 -1
  515. package/dist/tslib.es6-D7BIeDVB.cjs +1 -0
  516. package/dist/tslib.es6-D7BIeDVB.cjs.map +1 -0
  517. package/dist/tslib.es6-ErZEp3OO.js +7 -0
  518. package/dist/tslib.es6-ErZEp3OO.js.map +1 -0
  519. package/dist/types.cjs +1 -2
  520. package/dist/types.cjs.map +1 -1
  521. package/dist/types.js +4 -5
  522. package/dist/types.js.map +1 -1
  523. package/dist/typewriter-CXQIzqPV.cjs +123 -0
  524. package/dist/typewriter-CXQIzqPV.cjs.map +1 -0
  525. package/dist/typewriter-mxVw5dFn.js +700 -0
  526. package/dist/typewriter-mxVw5dFn.js.map +1 -0
  527. package/dist/typewriter.cjs +1 -2
  528. package/dist/typewriter.js +2 -5
  529. package/dist/typography.cjs +282 -2
  530. package/dist/typography.cjs.map +1 -1
  531. package/dist/typography.js +353 -4
  532. package/dist/typography.js.map +1 -1
  533. package/dist/utils-BcaKtQuA.cjs +1 -0
  534. package/dist/utils-BcaKtQuA.cjs.map +1 -0
  535. package/dist/utils-CoU7M2YS.js +259 -0
  536. package/dist/utils-CoU7M2YS.js.map +1 -0
  537. package/dist/utils.cjs +1 -2
  538. package/dist/utils.js +6 -9
  539. package/dist/window-DFMlB1Tq.cjs +59 -0
  540. package/dist/window-DFMlB1Tq.cjs.map +1 -0
  541. package/dist/window-EWYJJC_H.js +548 -0
  542. package/dist/window-EWYJJC_H.js.map +1 -0
  543. package/dist/window.cjs +1 -0
  544. package/dist/window.js +2 -0
  545. package/mixins/baseElement.ts +118 -1
  546. package/mixins/discovery.service.ts +162 -1
  547. package/mixins/formField.mixin.ts +13 -8
  548. package/mixins/index.ts +2 -0
  549. package/mixins/surface.mixin.ts +93 -0
  550. package/mixins/tailwind.css +331 -14
  551. package/package.json +32 -28
  552. package/src/CLAUDE.md +428 -0
  553. package/src/area/.excalidraw +357 -0
  554. package/src/area/area.component.ts +449 -0
  555. package/src/area/area.service.test.ts +1007 -0
  556. package/src/area/area.service.ts +748 -0
  557. package/src/area/ecrypt.ts +7 -0
  558. package/src/area/index.ts +7 -0
  559. package/src/area/lazy.ts +83 -0
  560. package/src/area/readme.md +338 -0
  561. package/src/area/route.component.ts +79 -0
  562. package/src/area/router-guide.md +360 -0
  563. package/src/area/router.types.ts +101 -0
  564. package/src/area/utils.ts +354 -0
  565. package/src/audio/emotional-sounds.ts +940 -0
  566. package/src/audio/index.ts +53 -0
  567. package/src/audio/sound.service.ts +1079 -0
  568. package/src/autocomplete/README.md +485 -0
  569. package/src/autocomplete/autocomplete.scss +24 -0
  570. package/src/autocomplete/autocomplete.ts +733 -0
  571. package/src/autocomplete/index.ts +1 -0
  572. package/src/avatar.ts +164 -0
  573. package/src/badge/badge.ts +286 -0
  574. package/src/badge/index.ts +1 -0
  575. package/src/boat/boat.ts +664 -0
  576. package/src/boat/index.ts +1 -0
  577. package/src/busy/busy.ts +39 -0
  578. package/src/busy/index.ts +2 -0
  579. package/src/busy/spinner.ts +165 -0
  580. package/src/button/button.ts +382 -0
  581. package/src/button/icon-button.ts +287 -0
  582. package/src/button/index.ts +2 -0
  583. package/src/card/actions.ts +28 -0
  584. package/src/card/card.ts +319 -0
  585. package/src/card/content.ts +24 -0
  586. package/src/card/index.ts +4 -0
  587. package/src/card/media.ts +77 -0
  588. package/src/charts/area-chart.ts +495 -0
  589. package/src/charts/index.ts +4 -0
  590. package/src/charts/pills.ts +350 -0
  591. package/src/charts/types.ts +66 -0
  592. package/src/charts/utils.ts +65 -0
  593. package/src/checkbox/checkbox.ts +122 -0
  594. package/src/checkbox/index.ts +1 -0
  595. package/src/chips/assist-chip.ts +261 -0
  596. package/src/chips/chips.ts +259 -0
  597. package/src/chips/filter-chip.ts +255 -0
  598. package/src/chips/index.ts +5 -0
  599. package/src/chips/input-chip.ts +408 -0
  600. package/src/chips/suggestion-chip.ts +266 -0
  601. package/src/code-highlight/code-highlight.ts +344 -0
  602. package/src/code-highlight/code-preview.ts +123 -0
  603. package/src/code-highlight/index.ts +3 -0
  604. package/src/components/form-elements/index.ts +1 -0
  605. package/src/components/form-elements/payment-card-form.ts +331 -0
  606. package/src/components/index.ts +1 -0
  607. package/src/connectivity/connectivity-status.ts +153 -0
  608. package/src/connectivity/index.ts +1 -0
  609. package/src/content-drawer/context.ts +13 -0
  610. package/src/content-drawer/drawer.service.ts +148 -0
  611. package/src/content-drawer/drawer.ts +183 -0
  612. package/src/content-drawer/index.ts +5 -0
  613. package/src/content-drawer/main.ts +83 -0
  614. package/src/content-drawer/readme.md +709 -0
  615. package/src/content-drawer/sheet.ts +180 -0
  616. package/src/date-range/date-range-dialog.ts +230 -0
  617. package/src/date-range/date-range-helpers.ts +135 -0
  618. package/src/date-range/date-range-presets.ts +220 -0
  619. package/src/date-range/date-range.ts +530 -0
  620. package/src/date-range/date-utils.ts +58 -0
  621. package/src/date-range/index.ts +2 -0
  622. package/src/date-range-inline/date-range-inline.ts +522 -0
  623. package/src/date-range-inline/index.ts +2 -0
  624. package/src/delay/delay.ts +136 -0
  625. package/src/delay/index.ts +1 -0
  626. package/src/details/details.ts +429 -0
  627. package/src/details/index.ts +1 -0
  628. package/src/dialog/dialog-base.mixin.ts +565 -0
  629. package/src/dialog/dialog-events.ts +17 -0
  630. package/src/dialog/dialog-service.ts +482 -0
  631. package/src/dialog/dialog.component.ts +394 -0
  632. package/src/dialog/index.ts +3 -0
  633. package/src/directives/animate-text.ts +551 -0
  634. package/src/directives/color.ts +41 -0
  635. package/src/directives/confirm-click.ts +350 -0
  636. package/src/directives/cursor-glow.ts +142 -0
  637. package/src/directives/cycle-text.ts +496 -0
  638. package/src/directives/depth-of-field.ts +83 -0
  639. package/src/directives/drag.ts +370 -0
  640. package/src/directives/gravity.ts +117 -0
  641. package/src/directives/index.ts +19 -0
  642. package/src/directives/intersect.ts +204 -0
  643. package/src/directives/layout.ts +261 -0
  644. package/src/directives/liquid.ts +150 -0
  645. package/src/directives/living-border.ts +166 -0
  646. package/src/directives/long-press.ts +150 -0
  647. package/src/directives/magnetic.ts +133 -0
  648. package/src/directives/nebula.ts +773 -0
  649. package/src/directives/reduced-motion.ts +30 -0
  650. package/src/directives/reveal.ts +158 -0
  651. package/src/directives/ripple.ts +102 -0
  652. package/src/directives/typewriter.ts +349 -0
  653. package/src/discovery/discovery.service.ts +210 -0
  654. package/src/discovery/index.ts +1 -0
  655. package/src/divider/divider.ts +100 -0
  656. package/src/divider/index.ts +1 -0
  657. package/src/dropdown/dropdown-component.ts +264 -0
  658. package/src/dropdown/dropdown-content.ts +108 -0
  659. package/src/dropdown/index.ts +2 -0
  660. package/src/expand/expand-root.component.ts +278 -0
  661. package/src/expand/expand.component.ts +287 -0
  662. package/src/expand/index.ts +2 -0
  663. package/src/extra/countries/countries.data.ts +196 -0
  664. package/src/extra/countries/countries.ts +107 -0
  665. package/src/extra/countries/index.ts +2 -0
  666. package/src/extra/index.ts +2 -0
  667. package/src/extra/timezone/index.ts +2 -0
  668. package/src/extra/timezone/timezone.ts +116 -0
  669. package/src/extra/timezone/timezones.data.ts +2546 -0
  670. package/src/float/float.ts +18 -0
  671. package/src/float/index.ts +1 -0
  672. package/src/form/form-v2.ts +268 -0
  673. package/src/form/form.ts +194 -0
  674. package/src/form/index.ts +2 -0
  675. package/src/icons/icon.ts +293 -0
  676. package/src/icons/index.ts +1 -0
  677. package/src/icons/readme.md +37 -0
  678. package/src/iframe/iframe.ts +98 -0
  679. package/src/iframe/index.ts +1 -0
  680. package/src/index.ts +69 -0
  681. package/src/input/index.ts +8 -0
  682. package/src/input/input.scss +211 -0
  683. package/src/input/input.ts +951 -0
  684. package/src/json/index.ts +1 -0
  685. package/src/json/json.ts +55 -0
  686. package/src/layout/flex/flex.scss +4 -0
  687. package/src/layout/flex/flex.ts +74 -0
  688. package/src/layout/flex/index.ts +1 -0
  689. package/src/layout/grid/.readme +79 -0
  690. package/src/layout/grid/grid.scss +5 -0
  691. package/src/layout/grid/grid.ts +121 -0
  692. package/src/layout/grid/index.ts +1 -0
  693. package/src/layout/index.ts +5 -0
  694. package/src/layout/layout.ts +122 -0
  695. package/src/layout/scroll/index.ts +1 -0
  696. package/src/layout/scroll/scroll.ts +351 -0
  697. package/src/layout/v2/flex.ts +243 -0
  698. package/src/layout/v2/grid.ts +93 -0
  699. package/src/layout/v2/index.ts +1 -0
  700. package/src/lightbox/flip-directive.ts +270 -0
  701. package/src/lightbox/index.ts +4 -0
  702. package/src/lightbox/lightbox-service.ts +378 -0
  703. package/src/lightbox/lightbox.directive.ts +256 -0
  704. package/src/lightbox/lightbox.ts +417 -0
  705. package/src/list/context.ts +3 -0
  706. package/src/list/index.ts +3 -0
  707. package/src/list/list-item.ts +94 -0
  708. package/src/list/list.ts +87 -0
  709. package/src/list/readme.md +62 -0
  710. package/src/mailbox/README.md +131 -0
  711. package/src/mailbox/email-editor.ts +1071 -0
  712. package/src/mailbox/email-layout-selector.ts +58 -0
  713. package/src/mailbox/email-recipients.ts +594 -0
  714. package/src/mailbox/email-template-picker.ts +296 -0
  715. package/src/mailbox/email-viewer.ts +715 -0
  716. package/src/mailbox/index.ts +31 -0
  717. package/src/mailbox/mailbox.ts +363 -0
  718. package/src/mailbox/types.ts +181 -0
  719. package/src/map/index.ts +1 -0
  720. package/src/map/map.ts +483 -0
  721. package/src/menu/index.ts +2 -0
  722. package/src/menu/menu-item.ts +26 -0
  723. package/src/menu/menu.ts +83 -0
  724. package/src/nav-drawer/$navbar.ts +51 -0
  725. package/src/nav-drawer/appbar.ts +26 -0
  726. package/src/nav-drawer/content.ts +32 -0
  727. package/src/nav-drawer/context.ts +6 -0
  728. package/src/nav-drawer/drawer.ts +128 -0
  729. package/src/nav-drawer/index.ts +6 -0
  730. package/src/nav-drawer/navbar.ts +191 -0
  731. package/src/navigation-bar/index.ts +2 -0
  732. package/src/navigation-bar/navigation-bar-item.ts +417 -0
  733. package/src/navigation-bar/navigation-bar.ts +482 -0
  734. package/src/navigation-rail/index.ts +2 -0
  735. package/src/navigation-rail/navigation-rail-item.ts +443 -0
  736. package/src/navigation-rail/navigation-rail.ts +492 -0
  737. package/src/notification/index.ts +6 -0
  738. package/src/notification/notification-service.ts +324 -0
  739. package/src/notification/notification.scss +117 -0
  740. package/src/notification/notification.ts +263 -0
  741. package/src/notification/notify.ts +207 -0
  742. package/src/notification/outlet.ts +16 -0
  743. package/src/option/index.ts +1 -0
  744. package/src/option/option.ts +180 -0
  745. package/src/page/index.ts +1 -0
  746. package/src/page/page.ts +135 -0
  747. package/src/progress/index.ts +1 -0
  748. package/src/progress/progress.ts +143 -0
  749. package/src/qr-scanner/index.ts +1 -0
  750. package/src/qr-scanner/qr-scanner.ts +240 -0
  751. package/src/radio-group/index.ts +2 -0
  752. package/src/radio-group/radio-button.ts +81 -0
  753. package/src/radio-group/radio-group.scss +4 -0
  754. package/src/radio-group/radio-group.ts +110 -0
  755. package/src/radio-group/readme.md +315 -0
  756. package/src/range/index.ts +1 -0
  757. package/src/range/range.ts +102 -0
  758. package/src/rxjs-utils/index.ts +6 -0
  759. package/src/rxjs-utils/mutation-observer.ts +22 -0
  760. package/src/rxjs-utils/waitForElement.ts +33 -0
  761. package/src/rxjs-utils/waitForElementAll.ts +34 -0
  762. package/src/rxjs-utils/waitForElements.ts +40 -0
  763. package/src/rxjs-utils/waitForElementsAll.ts +42 -0
  764. package/src/rxjs-utils/waitUntil.ts +16 -0
  765. package/src/select/README.md +405 -0
  766. package/src/select/index.ts +2 -0
  767. package/src/select/select.ts +766 -0
  768. package/src/sheet/hook.ts +40 -0
  769. package/src/sheet/index.ts +2 -0
  770. package/src/sheet/sheet.service.ts +235 -0
  771. package/src/sheet/sheet.ts +236 -0
  772. package/src/slider/index.ts +2 -0
  773. package/src/slider/slide.ts +107 -0
  774. package/src/slider/slider.ts +164 -0
  775. package/src/steps/index.ts +3 -0
  776. package/src/steps/schmancy-step.ts +213 -0
  777. package/src/steps/schmancy-steps-container.ts +109 -0
  778. package/src/steps/steps.context.ts +23 -0
  779. package/src/store/context-array.ts +358 -0
  780. package/src/store/context-collection.ts +218 -0
  781. package/src/store/context-create.ts +284 -0
  782. package/src/store/context-object.ts +298 -0
  783. package/src/store/filter-directive.ts +614 -0
  784. package/src/store/immer-integration.ts +99 -0
  785. package/src/store/index.ts +10 -0
  786. package/src/store/selector-hook.ts +259 -0
  787. package/src/store/selectors.ts +289 -0
  788. package/src/store/storage-manager.ts +269 -0
  789. package/src/store/store.class.ts +239 -0
  790. package/src/store/types.ts +327 -0
  791. package/src/surface/context.ts +3 -0
  792. package/src/surface/index.ts +1 -0
  793. package/src/surface/surface.styles.ts +334 -0
  794. package/src/surface/surface.ts +59 -0
  795. package/src/table/index.ts +2 -0
  796. package/src/table/row.ts +60 -0
  797. package/src/table/table.ts +266 -0
  798. package/src/tabs/Readme.md +397 -0
  799. package/src/tabs/context.ts +5 -0
  800. package/src/tabs/index.ts +4 -0
  801. package/src/tabs/tab.ts +39 -0
  802. package/src/tabs/tabs-compatibility.ts +20 -0
  803. package/src/tabs/tabs-group.ts +184 -0
  804. package/src/teleport/.excalidraw +2511 -0
  805. package/src/teleport/index.ts +2 -0
  806. package/src/teleport/readme.md +91 -0
  807. package/src/teleport/teleport.component.ts +132 -0
  808. package/src/teleport/teleport.service.ts +139 -0
  809. package/src/teleport/watcher.ts +20 -0
  810. package/src/textarea/index.ts +1 -0
  811. package/src/textarea/textarea.scss +54 -0
  812. package/src/textarea/textarea.ts +432 -0
  813. package/src/theme/context.ts +28 -0
  814. package/src/theme/index.ts +17 -0
  815. package/src/theme/theme-audio-player.ts +470 -0
  816. package/src/theme/theme-controller-boat.ts +49 -0
  817. package/src/theme/theme-controller-example.md +152 -0
  818. package/src/theme/theme-controller.ts +205 -0
  819. package/src/theme/theme.component.ts +305 -0
  820. package/src/theme/theme.events.ts +59 -0
  821. package/src/theme/theme.format.ts +417 -0
  822. package/src/theme/theme.interface.ts +399 -0
  823. package/src/theme/theme.service.ts +520 -0
  824. package/src/theme/theme.style.css +619 -0
  825. package/src/theme-button/index.ts +1 -0
  826. package/src/theme-button/theme-button.ts +35 -0
  827. package/src/tooltip/index.ts +2 -0
  828. package/src/tooltip/tooltip.directive.ts +277 -0
  829. package/src/tooltip/tooltip.ts +216 -0
  830. package/src/tree/README.md +59 -0
  831. package/src/tree/index.ts +1 -0
  832. package/src/tree/tree.ts +132 -0
  833. package/src/types/events.ts +5 -0
  834. package/src/types/index.ts +3 -0
  835. package/src/types/mood-audio.types.ts +220 -0
  836. package/src/types/surface.ts +52 -0
  837. package/src/typewriter/IMPROVEMENTS.md +174 -0
  838. package/src/typewriter/QUICK_REFERENCE.md +166 -0
  839. package/src/typewriter/index.ts +1 -0
  840. package/src/typewriter/test-typewriter.html +97 -0
  841. package/src/typewriter/typewriter.ts +376 -0
  842. package/src/typography/index.ts +1 -0
  843. package/src/typography/typography.ts +448 -0
  844. package/src/utils/animation.ts +418 -0
  845. package/src/utils/hashContent.ts +12 -0
  846. package/src/utils/index.ts +6 -0
  847. package/src/utils/intersection.ts +22 -0
  848. package/src/utils/number.ts +529 -0
  849. package/src/utils/overlay-stack.ts +101 -0
  850. package/src/utils/search.ts +322 -0
  851. package/src/vite-env.d.ts +2 -0
  852. package/src/window/index.ts +10 -0
  853. package/src/window/window-manager.ts +204 -0
  854. package/src/window/window-position.ts +136 -0
  855. package/src/window/window-registry.ts +34 -0
  856. package/src/window/window.ts +724 -0
  857. package/types/mixins/baseElement.d.ts +12 -0
  858. package/types/mixins/discovery.service.d.ts +72 -0
  859. package/types/mixins/index.d.ts +2 -0
  860. package/types/mixins/surface.mixin.d.ts +39 -0
  861. package/types/src/area/area.service.d.ts +2 -0
  862. package/types/src/badge/badge.d.ts +1 -1
  863. package/types/src/boat/boat.d.ts +40 -33
  864. package/types/src/button/icon-button.d.ts +10 -0
  865. package/types/src/chips/filter-chip.d.ts +0 -12
  866. package/types/src/connectivity/connectivity-status.d.ts +25 -0
  867. package/types/src/connectivity/index.d.ts +1 -0
  868. package/types/src/content-drawer/drawer.service.d.ts +3 -0
  869. package/types/src/date-range/date-range.d.ts +2 -0
  870. package/types/src/details/details.d.ts +26 -2
  871. package/types/src/dialog/dialog-base.mixin.d.ts +7 -3
  872. package/types/src/dialog/dialog-service.d.ts +27 -1
  873. package/types/src/dialog/dialog.component.d.ts +35 -1
  874. package/types/src/directives/animate-text.d.ts +67 -0
  875. package/types/src/directives/color.d.ts +2 -3
  876. package/types/src/directives/confirm-click.d.ts +38 -0
  877. package/types/src/directives/cursor-glow.d.ts +38 -0
  878. package/types/src/directives/cycle-text.d.ts +44 -0
  879. package/types/src/directives/depth-of-field.d.ts +38 -0
  880. package/types/src/directives/drag.d.ts +8 -8
  881. package/types/src/directives/gravity.d.ts +40 -0
  882. package/types/src/directives/index.d.ts +16 -2
  883. package/types/src/directives/intersect.d.ts +60 -0
  884. package/types/src/directives/layout.d.ts +62 -0
  885. package/types/src/directives/liquid.d.ts +38 -0
  886. package/types/src/directives/living-border.d.ts +39 -0
  887. package/types/src/directives/long-press.d.ts +38 -0
  888. package/types/src/directives/magnetic.d.ts +35 -0
  889. package/types/src/directives/nebula.d.ts +80 -0
  890. package/types/src/directives/reduced-motion.d.ts +2 -0
  891. package/types/src/directives/reveal.d.ts +54 -0
  892. package/types/src/directives/ripple.d.ts +15 -5
  893. package/types/src/directives/typewriter.d.ts +50 -0
  894. package/types/src/discovery/discovery.service.d.ts +72 -0
  895. package/types/src/expand/expand-root.component.d.ts +30 -0
  896. package/types/src/expand/expand.component.d.ts +38 -0
  897. package/types/src/expand/index.d.ts +2 -0
  898. package/types/src/float/float.d.ts +14 -0
  899. package/types/src/float/index.d.ts +1 -0
  900. package/types/src/icons/icon.d.ts +14 -0
  901. package/types/src/iframe/iframe.d.ts +37 -0
  902. package/types/src/iframe/index.d.ts +1 -0
  903. package/types/src/index.d.ts +6 -1
  904. package/types/src/input/index.d.ts +1 -1
  905. package/types/src/layout/scroll/scroll.d.ts +11 -0
  906. package/types/src/lightbox/lightbox.d.ts +1 -0
  907. package/types/src/mailbox/email-recipients.d.ts +2 -2
  908. package/types/src/mailbox/types.d.ts +1 -1
  909. package/types/src/navigation-bar/navigation-bar.d.ts +17 -0
  910. package/types/src/notification/notification.d.ts +1 -0
  911. package/types/src/page/page.d.ts +6 -0
  912. package/types/src/range/index.d.ts +1 -0
  913. package/types/src/range/range.d.ts +25 -0
  914. package/types/src/sheet/sheet.d.ts +0 -1
  915. package/types/src/steps/schmancy-steps-container.d.ts +8 -6
  916. package/types/src/surface/surface.d.ts +4 -27
  917. package/types/src/surface/surface.styles.d.ts +31 -0
  918. package/types/src/tabs/tab.d.ts +1 -0
  919. package/types/src/textarea/textarea.d.ts +3 -2
  920. package/types/src/theme/context.d.ts +2 -282
  921. package/types/src/theme/theme.component.d.ts +9 -1
  922. package/types/src/theme/theme.format.d.ts +1 -1
  923. package/types/src/theme/theme.interface.d.ts +8 -1
  924. package/types/src/theme/theme.service.d.ts +20 -282
  925. package/types/src/types/surface.d.ts +27 -1
  926. package/types/src/typography/typography.d.ts +17 -3
  927. package/types/src/utils/animation.d.ts +254 -0
  928. package/types/src/utils/index.d.ts +2 -0
  929. package/types/src/utils/number.d.ts +18 -2
  930. package/types/src/utils/overlay-stack.d.ts +54 -0
  931. package/types/src/window/index.d.ts +3 -0
  932. package/types/src/window/window-manager.d.ts +49 -0
  933. package/types/src/window/window-position.d.ts +64 -0
  934. package/types/src/window/window-registry.d.ts +28 -0
  935. package/types/src/window/window.d.ts +67 -0
  936. package/ai/animated-text.md +0 -116
  937. package/ai/audio.md +0 -241
  938. package/ai/boat.md +0 -53
  939. package/ai/component-relationships.md +0 -93
  940. package/ai/context.md +0 -572
  941. package/ai/countries.md +0 -271
  942. package/ai/date-range-inline.md +0 -262
  943. package/ai/delay.md +0 -158
  944. package/ai/index.md +0 -112
  945. package/ai/layout.md +0 -187
  946. package/ai/mailbox.md +0 -530
  947. package/ai/map.md +0 -234
  948. package/ai/navigation-bar-item.md +0 -259
  949. package/ai/option.md +0 -173
  950. package/ai/payment-card-form.md +0 -242
  951. package/ai/slider.md +0 -227
  952. package/ai/spinner.md +0 -165
  953. package/ai/teleport.md +0 -197
  954. package/ai/template.md +0 -144
  955. package/ai/theme-button.md +0 -173
  956. package/ai/timezone.md +0 -276
  957. package/ai/typewriter.md +0 -335
  958. package/dist/_commonjsHelpers-Dw9sPFZy.js +0 -7
  959. package/dist/_commonjsHelpers-Dw9sPFZy.js.map +0 -1
  960. package/dist/_commonjsHelpers-k2hpEU-q.cjs +0 -2
  961. package/dist/_commonjsHelpers-k2hpEU-q.cjs.map +0 -1
  962. package/dist/ai/animated-text.md +0 -116
  963. package/dist/ai/audio.md +0 -241
  964. package/dist/ai/boat.md +0 -53
  965. package/dist/ai/component-relationships.md +0 -93
  966. package/dist/ai/context.md +0 -572
  967. package/dist/ai/countries.md +0 -271
  968. package/dist/ai/date-range-inline.md +0 -262
  969. package/dist/ai/delay.md +0 -158
  970. package/dist/ai/index.md +0 -112
  971. package/dist/ai/layout.md +0 -187
  972. package/dist/ai/mailbox.md +0 -530
  973. package/dist/ai/map.md +0 -234
  974. package/dist/ai/navigation-bar-item.md +0 -259
  975. package/dist/ai/option.md +0 -173
  976. package/dist/ai/payment-card-form.md +0 -242
  977. package/dist/ai/slider.md +0 -227
  978. package/dist/ai/spinner.md +0 -165
  979. package/dist/ai/teleport.md +0 -197
  980. package/dist/ai/template.md +0 -144
  981. package/dist/ai/theme-button.md +0 -173
  982. package/dist/ai/timezone.md +0 -276
  983. package/dist/ai/typewriter.md +0 -335
  984. package/dist/animated-text-B3DQRJBy.cjs +0 -37
  985. package/dist/animated-text-B3DQRJBy.cjs.map +0 -1
  986. package/dist/animated-text-BAj4-6hE.js +0 -76
  987. package/dist/animated-text-BAj4-6hE.js.map +0 -1
  988. package/dist/animated-text.cjs +0 -2
  989. package/dist/animated-text.cjs.map +0 -1
  990. package/dist/animated-text.js +0 -2
  991. package/dist/animated-text.js.map +0 -1
  992. package/dist/area.cjs.map +0 -1
  993. package/dist/area.component-CP4DZ0d8.js +0 -330
  994. package/dist/area.component-CP4DZ0d8.js.map +0 -1
  995. package/dist/area.component-ChxSLt16.cjs +0 -12
  996. package/dist/area.component-ChxSLt16.cjs.map +0 -1
  997. package/dist/area.js.map +0 -1
  998. package/dist/audio.cjs.map +0 -1
  999. package/dist/audio.js.map +0 -1
  1000. package/dist/autocomplete-CAaVSg4g.cjs +0 -112
  1001. package/dist/autocomplete-CAaVSg4g.cjs.map +0 -1
  1002. package/dist/autocomplete-CGbACUYd.js +0 -333
  1003. package/dist/autocomplete-CGbACUYd.js.map +0 -1
  1004. package/dist/autocomplete.cjs.map +0 -1
  1005. package/dist/autocomplete.js.map +0 -1
  1006. package/dist/avatar-nWOZXEsW.cjs +0 -273
  1007. package/dist/avatar-nWOZXEsW.cjs.map +0 -1
  1008. package/dist/avatar-rLCF6MSI.js +0 -895
  1009. package/dist/avatar-rLCF6MSI.js.map +0 -1
  1010. package/dist/badge.cjs.map +0 -1
  1011. package/dist/badge.js.map +0 -1
  1012. package/dist/boat-Ckt9v__d.js +0 -301
  1013. package/dist/boat-Ckt9v__d.js.map +0 -1
  1014. package/dist/boat-yNAZ2LLB.cjs +0 -97
  1015. package/dist/boat-yNAZ2LLB.cjs.map +0 -1
  1016. package/dist/boat.cjs.map +0 -1
  1017. package/dist/boat.js.map +0 -1
  1018. package/dist/busy.cjs.map +0 -1
  1019. package/dist/busy.js.map +0 -1
  1020. package/dist/card.cjs.map +0 -1
  1021. package/dist/card.js.map +0 -1
  1022. package/dist/checkbox-BnAlpsJN.cjs +0 -40
  1023. package/dist/checkbox-BnAlpsJN.cjs.map +0 -1
  1024. package/dist/checkbox-D22yfGe3.js +0 -526
  1025. package/dist/checkbox-D22yfGe3.js.map +0 -1
  1026. package/dist/checkbox.cjs.map +0 -1
  1027. package/dist/checkbox.js.map +0 -1
  1028. package/dist/chips.cjs.map +0 -1
  1029. package/dist/chips.js.map +0 -1
  1030. package/dist/code-highlight.cjs.map +0 -1
  1031. package/dist/code-highlight.js.map +0 -1
  1032. package/dist/code-preview-DPlQayFd.js +0 -967
  1033. package/dist/code-preview-DPlQayFd.js.map +0 -1
  1034. package/dist/code-preview-jPnX60FF.cjs +0 -193
  1035. package/dist/code-preview-jPnX60FF.cjs.map +0 -1
  1036. package/dist/components.cjs.map +0 -1
  1037. package/dist/components.js.map +0 -1
  1038. package/dist/consume-5D1qfVWM.js +0 -38
  1039. package/dist/consume-5D1qfVWM.js.map +0 -1
  1040. package/dist/consume-edta5ng5.cjs +0 -2
  1041. package/dist/consume-edta5ng5.cjs.map +0 -1
  1042. package/dist/content-drawer.cjs.map +0 -1
  1043. package/dist/content-drawer.js.map +0 -1
  1044. package/dist/context-create-B_S-sD5B.js +0 -1107
  1045. package/dist/context-create-B_S-sD5B.js.map +0 -1
  1046. package/dist/context-create-DTybDbZp.cjs +0 -2
  1047. package/dist/context-create-DTybDbZp.cjs.map +0 -1
  1048. package/dist/date-range-GFm5NG33.js +0 -639
  1049. package/dist/date-range-GFm5NG33.js.map +0 -1
  1050. package/dist/date-range-inline-CgX2o0FP.cjs +0 -44
  1051. package/dist/date-range-inline-CgX2o0FP.cjs.map +0 -1
  1052. package/dist/date-range-inline-DTQLESAZ.js +0 -197
  1053. package/dist/date-range-inline-DTQLESAZ.js.map +0 -1
  1054. package/dist/date-range-inline.cjs.map +0 -1
  1055. package/dist/date-range-inline.js.map +0 -1
  1056. package/dist/date-range-ug3B9CFT.cjs +0 -119
  1057. package/dist/date-range-ug3B9CFT.cjs.map +0 -1
  1058. package/dist/date-range.cjs.map +0 -1
  1059. package/dist/date-range.js.map +0 -1
  1060. package/dist/delay-CWtBL0VD.cjs +0 -10
  1061. package/dist/delay-CWtBL0VD.cjs.map +0 -1
  1062. package/dist/delay-DEe1CmHc.js +0 -288
  1063. package/dist/delay-DEe1CmHc.js.map +0 -1
  1064. package/dist/delay.cjs.map +0 -1
  1065. package/dist/delay.js.map +0 -1
  1066. package/dist/details-D-LXW23W.js +0 -100
  1067. package/dist/details-D-LXW23W.js.map +0 -1
  1068. package/dist/details-DVke77dU.cjs +0 -55
  1069. package/dist/details-DVke77dU.cjs.map +0 -1
  1070. package/dist/details.cjs.map +0 -1
  1071. package/dist/details.js.map +0 -1
  1072. package/dist/dialog-service-C86xTS8q.cjs +0 -2
  1073. package/dist/dialog-service-C86xTS8q.cjs.map +0 -1
  1074. package/dist/dialog-service-D9E3jLAR.js +0 -118
  1075. package/dist/dialog-service-D9E3jLAR.js.map +0 -1
  1076. package/dist/dialog.component-BM0D-hK9.cjs +0 -48
  1077. package/dist/dialog.component-BM0D-hK9.cjs.map +0 -1
  1078. package/dist/dialog.component-a7FlKhGD.js +0 -145
  1079. package/dist/dialog.component-a7FlKhGD.js.map +0 -1
  1080. package/dist/discovery.service-BbYjU5x8.js +0 -21
  1081. package/dist/discovery.service-BbYjU5x8.js.map +0 -1
  1082. package/dist/discovery.service-BpGCuXPd.cjs +0 -2
  1083. package/dist/discovery.service-BpGCuXPd.cjs.map +0 -1
  1084. package/dist/divider-CzTpxOqt.js +0 -84
  1085. package/dist/divider-CzTpxOqt.js.map +0 -1
  1086. package/dist/divider-D8KStUhN.cjs +0 -58
  1087. package/dist/divider-D8KStUhN.cjs.map +0 -1
  1088. package/dist/divider.cjs.map +0 -1
  1089. package/dist/divider.js.map +0 -1
  1090. package/dist/dropdown-content-CngZN3vv.cjs +0 -58
  1091. package/dist/dropdown-content-CngZN3vv.cjs.map +0 -1
  1092. package/dist/dropdown-content-DCn-g0-f.js +0 -147
  1093. package/dist/dropdown-content-DCn-g0-f.js.map +0 -1
  1094. package/dist/email-recipients-BhntMZMf.cjs +0 -1173
  1095. package/dist/email-recipients-BhntMZMf.cjs.map +0 -1
  1096. package/dist/email-recipients-BzjAKNJ0.js +0 -1733
  1097. package/dist/email-recipients-BzjAKNJ0.js.map +0 -1
  1098. package/dist/emotional-sounds-BRnFhww6.js +0 -234
  1099. package/dist/emotional-sounds-BRnFhww6.js.map +0 -1
  1100. package/dist/emotional-sounds-DVGhmoZf.cjs +0 -2
  1101. package/dist/emotional-sounds-DVGhmoZf.cjs.map +0 -1
  1102. package/dist/extra.cjs.map +0 -1
  1103. package/dist/extra.js.map +0 -1
  1104. package/dist/flex-5dR48zie.js +0 -183
  1105. package/dist/flex-5dR48zie.js.map +0 -1
  1106. package/dist/flex-oHl2EfYB.cjs +0 -18
  1107. package/dist/flex-oHl2EfYB.cjs.map +0 -1
  1108. package/dist/flow-D0e7hGXO.cjs +0 -2
  1109. package/dist/flow-D0e7hGXO.cjs.map +0 -1
  1110. package/dist/flow-DXYqC9OA.js +0 -340
  1111. package/dist/flow-DXYqC9OA.js.map +0 -1
  1112. package/dist/form-BlPiAPt7.cjs +0 -2
  1113. package/dist/form-BlPiAPt7.cjs.map +0 -1
  1114. package/dist/form-BxVM6JTn.js +0 -141
  1115. package/dist/form-BxVM6JTn.js.map +0 -1
  1116. package/dist/form.cjs.map +0 -1
  1117. package/dist/form.js.map +0 -1
  1118. package/dist/formField.mixin-BCGA7Ea3.js +0 -48
  1119. package/dist/formField.mixin-BCGA7Ea3.js.map +0 -1
  1120. package/dist/formField.mixin-BfJMifU9.cjs +0 -2
  1121. package/dist/formField.mixin-BfJMifU9.cjs.map +0 -1
  1122. package/dist/height-CfECBO2j.js +0 -44
  1123. package/dist/height-CfECBO2j.js.map +0 -1
  1124. package/dist/height-Z70qJYJK.cjs +0 -2
  1125. package/dist/height-Z70qJYJK.cjs.map +0 -1
  1126. package/dist/icon-DHEXr3c-.cjs +0 -49
  1127. package/dist/icon-DHEXr3c-.cjs.map +0 -1
  1128. package/dist/icon-DYpLoegR.js +0 -84
  1129. package/dist/icon-DYpLoegR.js.map +0 -1
  1130. package/dist/icon-button-CmZBLHWC.js +0 -164
  1131. package/dist/icon-button-CmZBLHWC.js.map +0 -1
  1132. package/dist/icon-button-IbSX8C98.cjs +0 -70
  1133. package/dist/icon-button-IbSX8C98.cjs.map +0 -1
  1134. package/dist/icons.cjs.map +0 -1
  1135. package/dist/icons.js.map +0 -1
  1136. package/dist/index-CCi1otmh.cjs +0 -2
  1137. package/dist/index-CCi1otmh.cjs.map +0 -1
  1138. package/dist/index-CW6PhEkx.js +0 -17
  1139. package/dist/index-CW6PhEkx.js.map +0 -1
  1140. package/dist/index.cjs.map +0 -1
  1141. package/dist/index.js.map +0 -1
  1142. package/dist/input-BByjYlgl.cjs +0 -51
  1143. package/dist/input-BByjYlgl.cjs.map +0 -1
  1144. package/dist/input-D0cQ9DOY.js +0 -237
  1145. package/dist/input-D0cQ9DOY.js.map +0 -1
  1146. package/dist/input-chip-B5ErXgCB.js +0 -206
  1147. package/dist/input-chip-B5ErXgCB.js.map +0 -1
  1148. package/dist/input-chip-DkWaTciP.cjs +0 -147
  1149. package/dist/input-chip-DkWaTciP.cjs.map +0 -1
  1150. package/dist/input.cjs.map +0 -1
  1151. package/dist/input.js.map +0 -1
  1152. package/dist/intersection-CJxzz8c-.js +0 -15
  1153. package/dist/intersection-CJxzz8c-.js.map +0 -1
  1154. package/dist/intersection-CVvaDv96.cjs +0 -2
  1155. package/dist/intersection-CVvaDv96.cjs.map +0 -1
  1156. package/dist/json-BZVe74np.cjs +0 -12
  1157. package/dist/json-BZVe74np.cjs.map +0 -1
  1158. package/dist/json-PKewOWuJ.js +0 -51
  1159. package/dist/json-PKewOWuJ.js.map +0 -1
  1160. package/dist/layout.cjs.map +0 -1
  1161. package/dist/layout.js.map +0 -1
  1162. package/dist/lightbox-service-D-0JtxB1.cjs +0 -202
  1163. package/dist/lightbox-service-D-0JtxB1.cjs.map +0 -1
  1164. package/dist/lightbox-service-DZMnb1eU.js +0 -458
  1165. package/dist/lightbox-service-DZMnb1eU.js.map +0 -1
  1166. package/dist/lightbox.cjs.map +0 -1
  1167. package/dist/lightbox.js.map +0 -1
  1168. package/dist/list-B_2m7l3g.cjs +0 -17
  1169. package/dist/list-B_2m7l3g.cjs.map +0 -1
  1170. package/dist/list-CW56LV-v.js +0 -69
  1171. package/dist/list-CW56LV-v.js.map +0 -1
  1172. package/dist/list.cjs.map +0 -1
  1173. package/dist/list.js.map +0 -1
  1174. package/dist/litElement.mixin-CrpeGpZ7.cjs +0 -2
  1175. package/dist/litElement.mixin-CrpeGpZ7.cjs.map +0 -1
  1176. package/dist/litElement.mixin-DHZXtvYq.js +0 -15
  1177. package/dist/litElement.mixin-DHZXtvYq.js.map +0 -1
  1178. package/dist/mailbox.cjs.map +0 -1
  1179. package/dist/mailbox.js.map +0 -1
  1180. package/dist/map-2Hl60a0A.js +0 -175
  1181. package/dist/map-2Hl60a0A.js.map +0 -1
  1182. package/dist/map-DyPS9G7M.cjs +0 -81
  1183. package/dist/map-DyPS9G7M.cjs.map +0 -1
  1184. package/dist/map.cjs.map +0 -1
  1185. package/dist/map.js.map +0 -1
  1186. package/dist/media-CS8HpKnK.cjs +0 -152
  1187. package/dist/media-CS8HpKnK.cjs.map +0 -1
  1188. package/dist/media-DtWbcRxL.js +0 -244
  1189. package/dist/media-DtWbcRxL.js.map +0 -1
  1190. package/dist/menu-Caju5-zd.js +0 -60
  1191. package/dist/menu-Caju5-zd.js.map +0 -1
  1192. package/dist/menu-rX5RPAI2.cjs +0 -24
  1193. package/dist/menu-rX5RPAI2.cjs.map +0 -1
  1194. package/dist/menu.cjs.map +0 -1
  1195. package/dist/menu.js.map +0 -1
  1196. package/dist/nav-drawer.cjs.map +0 -1
  1197. package/dist/nav-drawer.js.map +0 -1
  1198. package/dist/navigation-bar.cjs.map +0 -1
  1199. package/dist/navigation-bar.js.map +0 -1
  1200. package/dist/navigation-rail-Ctketq5a.js +0 -256
  1201. package/dist/navigation-rail-Ctketq5a.js.map +0 -1
  1202. package/dist/navigation-rail-DC9_oSIM.cjs +0 -79
  1203. package/dist/navigation-rail-DC9_oSIM.cjs.map +0 -1
  1204. package/dist/notification-service-CUlfXqmj.js +0 -155
  1205. package/dist/notification-service-CUlfXqmj.js.map +0 -1
  1206. package/dist/notification-service-DknbpqTt.cjs +0 -19
  1207. package/dist/notification-service-DknbpqTt.cjs.map +0 -1
  1208. package/dist/notification.cjs.map +0 -1
  1209. package/dist/notification.js.map +0 -1
  1210. package/dist/notify-DJSOWTxv.js +0 -35
  1211. package/dist/notify-DJSOWTxv.js.map +0 -1
  1212. package/dist/notify-DickIEHW.cjs +0 -2
  1213. package/dist/notify-DickIEHW.cjs.map +0 -1
  1214. package/dist/number-B7aCRYnH.cjs +0 -2
  1215. package/dist/number-B7aCRYnH.cjs.map +0 -1
  1216. package/dist/number-BhTiptLA.js +0 -99
  1217. package/dist/number-BhTiptLA.js.map +0 -1
  1218. package/dist/option-Bng41-rY.js +0 -77
  1219. package/dist/option-Bng41-rY.js.map +0 -1
  1220. package/dist/option-DYT5Rkgy.cjs +0 -44
  1221. package/dist/option-DYT5Rkgy.cjs.map +0 -1
  1222. package/dist/option.cjs.map +0 -1
  1223. package/dist/option.js.map +0 -1
  1224. package/dist/page-BLn9gtSd.cjs +0 -20
  1225. package/dist/page-BLn9gtSd.cjs.map +0 -1
  1226. package/dist/page-D-ROcQDd.js +0 -48
  1227. package/dist/page-D-ROcQDd.js.map +0 -1
  1228. package/dist/payment-card-form-5UtfWzoW.cjs +0 -74
  1229. package/dist/payment-card-form-5UtfWzoW.cjs.map +0 -1
  1230. package/dist/payment-card-form-BJa4RgF2.js +0 -515
  1231. package/dist/payment-card-form-BJa4RgF2.js.map +0 -1
  1232. package/dist/pills-BS5rZ6C3.js +0 -346
  1233. package/dist/pills-BS5rZ6C3.js.map +0 -1
  1234. package/dist/pills-Blf7IAeq.cjs +0 -113
  1235. package/dist/pills-Blf7IAeq.cjs.map +0 -1
  1236. package/dist/progress-DlhYniW_.cjs +0 -35
  1237. package/dist/progress-DlhYniW_.cjs.map +0 -1
  1238. package/dist/progress-yTIX6EqC.js +0 -56
  1239. package/dist/progress-yTIX6EqC.js.map +0 -1
  1240. package/dist/progress.cjs.map +0 -1
  1241. package/dist/progress.js.map +0 -1
  1242. package/dist/provide-BxZ2kn_p.cjs +0 -2
  1243. package/dist/provide-BxZ2kn_p.cjs.map +0 -1
  1244. package/dist/provide-tcktw8xB.js +0 -100
  1245. package/dist/provide-tcktw8xB.js.map +0 -1
  1246. package/dist/qr-scanner-DOs7uNS_.cjs +0 -29
  1247. package/dist/qr-scanner-DOs7uNS_.cjs.map +0 -1
  1248. package/dist/qr-scanner-DjZ8mgHV.js +0 -743
  1249. package/dist/qr-scanner-DjZ8mgHV.js.map +0 -1
  1250. package/dist/radio-button-N_PrrxKB.cjs +0 -41
  1251. package/dist/radio-button-N_PrrxKB.cjs.map +0 -1
  1252. package/dist/radio-button-me3SRHGu.js +0 -115
  1253. package/dist/radio-button-me3SRHGu.js.map +0 -1
  1254. package/dist/radio-group.cjs.map +0 -1
  1255. package/dist/radio-group.js.map +0 -1
  1256. package/dist/ripple-BgJXbNSP.js +0 -124
  1257. package/dist/ripple-BgJXbNSP.js.map +0 -1
  1258. package/dist/ripple-x6sTX02K.cjs +0 -16
  1259. package/dist/ripple-x6sTX02K.cjs.map +0 -1
  1260. package/dist/rxjs-utils.cjs.map +0 -1
  1261. package/dist/rxjs-utils.js.map +0 -1
  1262. package/dist/schmancy-steps-container-J6P-NNNj.js +0 -156
  1263. package/dist/schmancy-steps-container-J6P-NNNj.js.map +0 -1
  1264. package/dist/schmancy-steps-container-T57BKMzi.cjs +0 -70
  1265. package/dist/schmancy-steps-container-T57BKMzi.cjs.map +0 -1
  1266. package/dist/scroll-C_gfUgjn.js +0 -87
  1267. package/dist/scroll-C_gfUgjn.js.map +0 -1
  1268. package/dist/scroll-CecsowP7.cjs +0 -27
  1269. package/dist/scroll-CecsowP7.cjs.map +0 -1
  1270. package/dist/search-B1s7thB0.cjs +0 -2
  1271. package/dist/search-B1s7thB0.cjs.map +0 -1
  1272. package/dist/search-DxxnLa5u.js +0 -95
  1273. package/dist/search-DxxnLa5u.js.map +0 -1
  1274. package/dist/select-BBA0gBHf.js +0 -280
  1275. package/dist/select-BBA0gBHf.js.map +0 -1
  1276. package/dist/select-D9oCjv7N.cjs +0 -57
  1277. package/dist/select-D9oCjv7N.cjs.map +0 -1
  1278. package/dist/select.cjs.map +0 -1
  1279. package/dist/select.js.map +0 -1
  1280. package/dist/selector-hook-9w2auh2O.cjs +0 -2
  1281. package/dist/selector-hook-9w2auh2O.cjs.map +0 -1
  1282. package/dist/selector-hook-CHV4kDMd.js +0 -319
  1283. package/dist/selector-hook-CHV4kDMd.js.map +0 -1
  1284. package/dist/sheet-0oUfBmXX.cjs +0 -15
  1285. package/dist/sheet-0oUfBmXX.cjs.map +0 -1
  1286. package/dist/sheet-CNcDT3VP.js +0 -97
  1287. package/dist/sheet-CNcDT3VP.js.map +0 -1
  1288. package/dist/sheet.cjs.map +0 -1
  1289. package/dist/sheet.js.map +0 -1
  1290. package/dist/sheet.service-2MobB-9z.js +0 -68
  1291. package/dist/sheet.service-2MobB-9z.js.map +0 -1
  1292. package/dist/sheet.service-su_7yDQ-.cjs +0 -2
  1293. package/dist/sheet.service-su_7yDQ-.cjs.map +0 -1
  1294. package/dist/slider-CV-Ehp_5.cjs +0 -83
  1295. package/dist/slider-CV-Ehp_5.cjs.map +0 -1
  1296. package/dist/slider-CkE-iFUy.js +0 -161
  1297. package/dist/slider-CkE-iFUy.js.map +0 -1
  1298. package/dist/sound.service-Nza4c6wv.js +0 -102
  1299. package/dist/sound.service-Nza4c6wv.js.map +0 -1
  1300. package/dist/sound.service-eRirZw59.cjs +0 -2
  1301. package/dist/sound.service-eRirZw59.cjs.map +0 -1
  1302. package/dist/spinner-Bfn8KC-9.cjs +0 -135
  1303. package/dist/spinner-Bfn8KC-9.cjs.map +0 -1
  1304. package/dist/spinner-DiMbWXp9.js +0 -168
  1305. package/dist/spinner-DiMbWXp9.js.map +0 -1
  1306. package/dist/store.cjs.map +0 -1
  1307. package/dist/store.js.map +0 -1
  1308. package/dist/suggestion-chip-CEDqUNoS.js +0 -481
  1309. package/dist/suggestion-chip-CEDqUNoS.js.map +0 -1
  1310. package/dist/suggestion-chip-HhsLtZXR.cjs +0 -271
  1311. package/dist/suggestion-chip-HhsLtZXR.cjs.map +0 -1
  1312. package/dist/surface-CW3H23Va.cjs +0 -199
  1313. package/dist/surface-CW3H23Va.cjs.map +0 -1
  1314. package/dist/surface-eBfnSwQS.js +0 -220
  1315. package/dist/surface-eBfnSwQS.js.map +0 -1
  1316. package/dist/surface.cjs.map +0 -1
  1317. package/dist/surface.js.map +0 -1
  1318. package/dist/table-D0tiSL_u.cjs +0 -64
  1319. package/dist/table-D0tiSL_u.cjs.map +0 -1
  1320. package/dist/table-Dmo4TvTx.js +0 -561
  1321. package/dist/table-Dmo4TvTx.js.map +0 -1
  1322. package/dist/table.cjs.map +0 -1
  1323. package/dist/table.js.map +0 -1
  1324. package/dist/tabs-compatibility-Bit6y6en.js +0 -104
  1325. package/dist/tabs-compatibility-Bit6y6en.js.map +0 -1
  1326. package/dist/tabs-compatibility-Vq_2-ekz.cjs +0 -35
  1327. package/dist/tabs-compatibility-Vq_2-ekz.cjs.map +0 -1
  1328. package/dist/tabs.cjs.map +0 -1
  1329. package/dist/tabs.js.map +0 -1
  1330. package/dist/tailwind.mixin-Bp_PR6yc.js +0 -67
  1331. package/dist/tailwind.mixin-Bp_PR6yc.js.map +0 -1
  1332. package/dist/tailwind.mixin-Cp4PyXok.cjs +0 -2
  1333. package/dist/tailwind.mixin-Cp4PyXok.cjs.map +0 -1
  1334. package/dist/teleport.cjs.map +0 -1
  1335. package/dist/teleport.js.map +0 -1
  1336. package/dist/textarea-B1d1QCqT.js +0 -134
  1337. package/dist/textarea-B1d1QCqT.js.map +0 -1
  1338. package/dist/textarea-DG8CHhZA.cjs +0 -44
  1339. package/dist/textarea-DG8CHhZA.cjs.map +0 -1
  1340. package/dist/textarea.cjs.map +0 -1
  1341. package/dist/textarea.js.map +0 -1
  1342. package/dist/theme-button-CPL6Eaqd.cjs +0 -9
  1343. package/dist/theme-button-CPL6Eaqd.cjs.map +0 -1
  1344. package/dist/theme-button-CrLuMQNe.js +0 -27
  1345. package/dist/theme-button-CrLuMQNe.js.map +0 -1
  1346. package/dist/theme-button.cjs.map +0 -1
  1347. package/dist/theme-button.js.map +0 -1
  1348. package/dist/theme-controller-boat-CXbNJSI3.cjs +0 -178
  1349. package/dist/theme-controller-boat-CXbNJSI3.cjs.map +0 -1
  1350. package/dist/theme-controller-boat-CzSmjyKq.js +0 -1159
  1351. package/dist/theme-controller-boat-CzSmjyKq.js.map +0 -1
  1352. package/dist/theme.cjs.map +0 -1
  1353. package/dist/theme.events-CPSLaOlR.js +0 -6
  1354. package/dist/theme.events-CPSLaOlR.js.map +0 -1
  1355. package/dist/theme.events-Car6U_SQ.cjs +0 -2
  1356. package/dist/theme.events-Car6U_SQ.cjs.map +0 -1
  1357. package/dist/theme.interface-BLfE5J_1.js +0 -5
  1358. package/dist/theme.interface-BLfE5J_1.js.map +0 -1
  1359. package/dist/theme.interface-BMeNadVb.cjs +0 -2
  1360. package/dist/theme.interface-BMeNadVb.cjs.map +0 -1
  1361. package/dist/theme.js.map +0 -1
  1362. package/dist/timezone-4vwX0BgA.js +0 -112
  1363. package/dist/timezone-4vwX0BgA.js.map +0 -1
  1364. package/dist/timezone-BxvQcqe1.cjs +0 -32
  1365. package/dist/timezone-BxvQcqe1.cjs.map +0 -1
  1366. package/dist/tooltip-CjdvBf4X.js +0 -119
  1367. package/dist/tooltip-CjdvBf4X.js.map +0 -1
  1368. package/dist/tooltip-ZtnGjoJd.cjs +0 -7
  1369. package/dist/tooltip-ZtnGjoJd.cjs.map +0 -1
  1370. package/dist/tree-CBEjV7jP.js +0 -65
  1371. package/dist/tree-CBEjV7jP.js.map +0 -1
  1372. package/dist/tree-DP5U00NA.cjs +0 -27
  1373. package/dist/tree-DP5U00NA.cjs.map +0 -1
  1374. package/dist/tslib.es6-DgOcxv4s.cjs +0 -2
  1375. package/dist/tslib.es6-DgOcxv4s.cjs.map +0 -1
  1376. package/dist/tslib.es6-ujVQHAQ4.js +0 -10
  1377. package/dist/tslib.es6-ujVQHAQ4.js.map +0 -1
  1378. package/dist/typewriter-C6kFjLcX.cjs +0 -124
  1379. package/dist/typewriter-C6kFjLcX.cjs.map +0 -1
  1380. package/dist/typewriter-Eo5qXoGC.js +0 -555
  1381. package/dist/typewriter-Eo5qXoGC.js.map +0 -1
  1382. package/dist/typewriter.cjs.map +0 -1
  1383. package/dist/typewriter.js.map +0 -1
  1384. package/dist/typography-C_1gdM2I.js +0 -264
  1385. package/dist/typography-C_1gdM2I.js.map +0 -1
  1386. package/dist/typography-DGyjlLCE.cjs +0 -243
  1387. package/dist/typography-DGyjlLCE.cjs.map +0 -1
  1388. package/dist/utils-C38P63L6.cjs +0 -2
  1389. package/dist/utils-C38P63L6.cjs.map +0 -1
  1390. package/dist/utils-CYOVFxSx.js +0 -150
  1391. package/dist/utils-CYOVFxSx.js.map +0 -1
  1392. package/dist/utils.cjs.map +0 -1
  1393. package/dist/utils.js.map +0 -1
  1394. package/types/src/animated-text/animated-text.d.ts +0 -30
  1395. package/types/src/animated-text/index.d.ts +0 -1
  1396. package/types/src/directives/height.d.ts +0 -20
@@ -1,155 +0,0 @@
1
- import { BehaviorSubject as _, NEVER as f, timer as E, interval as I } from "rxjs";
2
- import { switchMap as v, takeUntil as x, map as T, distinctUntilChanged as k, tap as D } from "rxjs/operators";
3
- import "lit/directives/class-map.js";
4
- import "lit/directives/style-map.js";
5
- import { property as h, state as y, customElement as O } from "lit/decorators.js";
6
- import "./tailwind.mixin-Bp_PR6yc.js";
7
- import { $ as M } from "./litElement.mixin-DHZXtvYq.js";
8
- import { html as u } from "lit";
9
- import "./sound.service-Nza4c6wv.js";
10
- import { $ as b } from "./emotional-sounds-BRnFhww6.js";
11
- var A = Object.defineProperty, U = Object.getOwnPropertyDescriptor, r = (e, t, s, o) => {
12
- for (var i, a = o > 1 ? void 0 : o ? U(t, s) : t, d = e.length - 1; d >= 0; d--) (i = e[d]) && (a = (o ? i(t, s, a) : i(a)) || a);
13
- return o && a && A(t, s, a), a;
14
- };
15
- let n = class extends M(":host{display:block}.notification{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px 32px 12px 12px;background:var(--schmancy-sys-color-surface-container);border-radius:var(--schmancy-sys-shape-corner-extraLarge, 16px);box-shadow:var(--schmancy-sys-elevation-1);color:var(--schmancy-sys-color-surface-on);max-width:320px;overflow:hidden;transition:box-shadow .2s ease}.notification.hovered{box-shadow:var(--schmancy-sys-elevation-2)}.emoji{font-size:20px;line-height:1;flex-shrink:0;margin-top:1px}.content{flex:1;min-width:0}.title{font-weight:500;font-size:13px;line-height:1.4;margin-bottom:2px;letter-spacing:.01em}.info .title{color:var(--schmancy-sys-color-primary-default)}.success .title{color:var(--schmancy-sys-color-success-default)}.warning .title{color:var(--schmancy-sys-color-tertiary-default)}.error .title{color:var(--schmancy-sys-color-error-default)}.message{font-size:13px;line-height:1.4;opacity:.75;letter-spacing:.01em}.close{position:absolute;top:8px;right:6px;background:none;border:none;font-size:16px;font-weight:300;color:var(--schmancy-sys-color-surface-onVariant);cursor:pointer;padding:4px 6px;line-height:1;opacity:.4;border-radius:var(--schmancy-sys-shape-corner-full, 50%);transition:opacity .2s ease}.close:hover{opacity:.8}.close:focus-visible{outline:none;opacity:1;box-shadow:0 0 0 2px var(--schmancy-sys-color-primary-default)}.progress{position:absolute;bottom:0;left:0;height:2px;transition:width 16ms linear;border-radius:2px;opacity:.7}.info .progress{background:var(--schmancy-sys-color-primary-container)}.success .progress{background:var(--schmancy-sys-color-success-container)}.warning .progress{background:var(--schmancy-sys-color-tertiary-container)}.error .progress{background:var(--schmancy-sys-color-error-container)}") {
16
- constructor() {
17
- super(...arguments), this.title = "", this.message = "", this.type = "info", this.closable = !0, this.duration = 5e3, this.id = `notification-${Date.now()}-${Math.floor(1e4 * Math.random())}`, this.playSound = !0, this.showProgress = !1, this.startPosition = { x: 0, y: 0 }, this._visible = !0, this._progress = 100, this._hovered = !1, this._closing = !1, this.paused$ = new _(!1), this.startTime = 0, this.pausedAt = 0, this.elapsedBeforePause = 0;
18
- }
19
- connectedCallback() {
20
- super.connectedCallback(), this.style.position = "fixed", this.style.top = "16px", this.style.right = "16px", this.style.zIndex = "10001", this.style.opacity = "0", this.updateComplete.then(() => {
21
- this.animateIn();
22
- }), this.duration > 0 && (this.setupAutoClose(), this.setupProgressUpdates()), this.playSound && this._playSound();
23
- }
24
- async animateIn() {
25
- const e = this.getBoundingClientRect(), t = e.left + e.width / 2, s = e.top + e.height / 2, o = (function(i, a, d = "up", S = 0.3) {
26
- const P = (i.x + a.x) / 2, m = (i.y + a.y) / 2, $ = Math.sqrt(Math.pow(a.x - i.x, 2) + Math.pow(a.y - i.y, 2)), g = Math.min($ * S, 150);
27
- return { x: P, y: d === "up" ? m - g : m + g };
28
- })(this.startPosition, { x: t, y: s }, "up", 0.3);
29
- await this.animate([{ transform: `translate(${this.startPosition.x - t}px, ${this.startPosition.y - s}px) scale(0.1)`, opacity: 0 }, { transform: `translate(${o.x - t}px, ${o.y - s}px) scale(0.6)`, opacity: 0.9, offset: 0.5 }, { transform: "translate(0, 0) scale(1)", opacity: 1 }], { duration: 400, easing: "cubic-bezier(0.34, 1.2, 0.64, 1)", fill: "forwards" }).finished;
30
- }
31
- setupAutoClose() {
32
- this.duration <= 0 || (this.startTime = Date.now(), this.elapsedBeforePause = 0, this.paused$.pipe(v((e) => {
33
- if (e) return this.pausedAt = Date.now(), this.elapsedBeforePause += this.pausedAt - this.startTime, f;
34
- {
35
- this.startTime = Date.now();
36
- const t = this.duration - this.elapsedBeforePause;
37
- return t <= 0 ? (this.close(), f) : E(t);
38
- }
39
- }), x(this.disconnecting)).subscribe(() => this.close()));
40
- }
41
- setupProgressUpdates() {
42
- this.duration <= 0 || I(16).pipe(v(() => this.paused$.pipe(T((e) => {
43
- if (e) return this._progress;
44
- const t = this.elapsedBeforePause + (Date.now() - this.startTime);
45
- return Math.max(0, this.duration - t) / this.duration * 100;
46
- }))), k(), D((e) => {
47
- this._progress = e;
48
- }), x(this.disconnecting)).subscribe();
49
- }
50
- _playSound() {
51
- this.dispatchEvent(new CustomEvent("playsound", { detail: { type: this.type }, bubbles: !0, composed: !0 }));
52
- }
53
- _handleMouseEnter() {
54
- this._hovered = !0, this.paused$.next(!0);
55
- }
56
- _handleMouseLeave() {
57
- this._hovered = !1, this.paused$.next(!1);
58
- }
59
- async close() {
60
- this._closing || (this._closing = !0, this._visible = !1, await this.animate([{ transform: "translate(0, 0) scale(1)", opacity: 1 }, { transform: "translate(0, -20px) scale(0.8)", opacity: 0 }], { duration: 200, easing: "cubic-bezier(0.4, 0, 1, 1)", fill: "forwards" }).finished, this.dispatchEvent(new CustomEvent("close", { detail: { id: this.id }, bubbles: !0, composed: !0 })));
61
- }
62
- _getEmoji() {
63
- switch (this.type) {
64
- case "success":
65
- return "✅";
66
- case "warning":
67
- return "⚠️";
68
- case "error":
69
- return "❌";
70
- default:
71
- return "💡";
72
- }
73
- }
74
- render() {
75
- return !this._visible && this._closing ? u`` : u`
76
- <div
77
- class="notification ${this.type} ${this._closing ? "closing" : ""} ${this._hovered ? "hovered" : ""}"
78
- role="alert"
79
- @mouseenter=${this._handleMouseEnter}
80
- @mouseleave=${this._handleMouseLeave}
81
- >
82
- <span class="emoji">${this._getEmoji()}</span>
83
- <div class="content">
84
- ${this.title ? u`<div class="title">${this.title}</div>` : ""}
85
- <div class="message">${this.message}</div>
86
- </div>
87
- ${this.closable ? u`
88
- <button class="close" aria-label="Close notification" @click=${this.close}>x</button>
89
- ` : ""}
90
- ${this.showProgress || this.duration > 0 ? u`<div class="progress" style="width: ${this._progress}%"></div>` : ""}
91
- </div>
92
- `;
93
- }
94
- };
95
- r([h({ type: String })], n.prototype, "title", 2), r([h({ type: String })], n.prototype, "message", 2), r([h({ type: String })], n.prototype, "type", 2), r([h({ type: Boolean })], n.prototype, "closable", 2), r([h({ type: Number })], n.prototype, "duration", 2), r([h({ type: String })], n.prototype, "id", 2), r([h({ type: Boolean })], n.prototype, "playSound", 2), r([h({ type: Boolean })], n.prototype, "showProgress", 2), r([h({ type: Object })], n.prototype, "startPosition", 2), r([y()], n.prototype, "_visible", 2), r([y()], n.prototype, "_progress", 2), r([y()], n.prototype, "_hovered", 2), r([y()], n.prototype, "_closing", 2), n = r([O("sch-notification")], n);
96
- const C = { info: "curious", success: "content", warning: "anxious", error: "disappointed" };
97
- let w = { x: window.innerWidth - 100, y: 50 };
98
- typeof window < "u" && window.addEventListener("mousedown", (e) => {
99
- w = { x: e.clientX, y: e.clientY };
100
- }, { capture: !0, passive: !0 });
101
- let c = null;
102
- const p = class p {
103
- constructor() {
104
- this.notificationStack = [], this.audioVolume = 0.1, b.setVolume(this.audioVolume);
105
- }
106
- static getInstance() {
107
- return p.instance || (p.instance = new p()), p.instance;
108
- }
109
- notify(t) {
110
- const s = { ...p.DEFAULT_OPTIONS, ...t, duration: t.duration ?? p.DEFAULT_OPTIONS.duration }, o = s.id || `notification-${Date.now()}-${Math.floor(1e4 * Math.random())}`;
111
- this.notificationStack.push(o), c && (c.remove(), c = null);
112
- const i = document.createElement("sch-notification");
113
- return i.id = o, i.title = s.title || "", i.message = s.message, i.type = s.type || "info", i.duration = s.duration || 1e3, i.closable = s.closable !== !1, i.playSound = !1, i.showProgress = s.showProgress || !1, i.startPosition = { ...w }, s.playSound !== !1 && b.play(C[i.type]), i.addEventListener("close", () => {
114
- const a = this.notificationStack.indexOf(o);
115
- a > -1 && this.notificationStack.splice(a, 1), i.remove(), c === i && (c = null);
116
- }), document.body.appendChild(i), c = i, o;
117
- }
118
- dismiss(t) {
119
- let s;
120
- if (t) {
121
- const o = this.notificationStack.indexOf(t);
122
- o > -1 && (this.notificationStack.splice(o, 1), s = t);
123
- } else s = this.notificationStack.pop();
124
- s && c && c.id === s && c.close();
125
- }
126
- update(t, s) {
127
- c && c.id === t && (s.title !== void 0 && (c.title = s.title), s.message !== void 0 && (c.message = s.message), s.type !== void 0 && (c.type = s.type));
128
- }
129
- info(t, s = {}) {
130
- return this.notify({ message: t ?? "", type: "info", duration: t ? s.duration ?? p.TYPE_DURATIONS.info : 1, ...s });
131
- }
132
- success(t, s = {}) {
133
- return this.notify({ message: t ?? "", type: "success", duration: t ? s.duration ?? p.TYPE_DURATIONS.success : 1, ...s });
134
- }
135
- warning(t, s = {}) {
136
- return this.notify({ message: t ?? "", type: "warning", duration: t ? s.duration ?? p.TYPE_DURATIONS.warning : 1, ...s });
137
- }
138
- error(t, s = {}) {
139
- return this.notify({ message: t ?? "", type: "error", duration: t ? s.duration ?? p.TYPE_DURATIONS.error : 1, ...s });
140
- }
141
- customDuration(t, s, o = {}) {
142
- return this.notify({ message: t, duration: s, ...o });
143
- }
144
- persistent(t, s = {}) {
145
- return this.notify({ message: t, duration: 0, ...s });
146
- }
147
- };
148
- p.DEFAULT_OPTIONS = { duration: 1e3, closable: !0, playSound: !0 }, p.TYPE_DURATIONS = { success: 1500, info: 2e3, warning: 2500, error: 2500 };
149
- let l = p;
150
- const W = { show: (e) => l.getInstance().notify(e), info: (e, t = {}) => l.getInstance().info(e, t), success: (e, t = {}) => l.getInstance().success(e, t), warning: (e, t = {}) => l.getInstance().warning(e, t), error: (e, t = {}) => l.getInstance().error(e, t), customDuration: (e, t, s = {}) => l.getInstance().customDuration(e, t, s), persistent: (e, t = {}) => l.getInstance().persistent(e, t), dismiss: (e) => l.getInstance().dismiss(e), update: (e, t) => l.getInstance().update(e, t) };
151
- export {
152
- W as $,
153
- n as S
154
- };
155
- //# sourceMappingURL=notification-service-CUlfXqmj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification-service-CUlfXqmj.js","sources":["../src/notification/notification.ts","../src/notification/notification-service.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { BehaviorSubject, timer, interval, NEVER } from 'rxjs'\nimport { switchMap, takeUntil, map, tap, distinctUntilChanged } from 'rxjs/operators'\nimport style from './notification.scss?inline'\n\nexport type NotificationType = 'info' | 'success' | 'warning' | 'error'\n\n/**\n * Calculate a point on an arc between two points\n */\nfunction calculateArcPoint(\n\tstart: { x: number; y: number },\n\tend: { x: number; y: number },\n\tarcDirection: 'up' | 'down' = 'up',\n\tintensity: number = 0.3,\n): { x: number; y: number } {\n\tconst midX = (start.x + end.x) / 2\n\tconst midY = (start.y + end.y) / 2\n\tconst distance = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2))\n\tconst arcHeight = Math.min(distance * intensity, 150)\n\treturn {\n\t\tx: midX,\n\t\ty: arcDirection === 'up' ? midY - arcHeight : midY + arcHeight,\n\t}\n}\n\n/**\n * @fires close - When notification is closed\n */\n@customElement('sch-notification')\nexport default class SchmancyNotification extends $LitElement(style) {\n\t@property({ type: String }) title = ''\n\t@property({ type: String }) message = ''\n\t@property({ type: String }) type: NotificationType = 'info'\n\t@property({ type: Boolean }) closable = true\n\t@property({ type: Number }) duration = 5000 // 0 means no auto-close\n\t@property({ type: String }) id = `notification-${Date.now()}-${Math.floor(Math.random() * 10000)}`\n\t@property({ type: Boolean }) playSound = true\n\t@property({ type: Boolean }) showProgress = false // Show indeterminate progress bar\n\t@property({ type: Object }) startPosition: { x: number; y: number } = { x: 0, y: 0 }\n\n\t@state() private _visible = true\n\t@state() private _progress = 100\n\t@state() private _hovered = false\n\t@state() private _closing = false\n\n\tprivate paused$ = new BehaviorSubject<boolean>(false)\n\tprivate startTime = 0\n\tprivate pausedAt = 0\n\tprivate elapsedBeforePause = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Set fixed positioning for blackbird animation\n\t\tthis.style.position = 'fixed'\n\t\tthis.style.top = '16px'\n\t\tthis.style.right = '16px'\n\t\tthis.style.zIndex = '10001'\n\t\tthis.style.opacity = '0'\n\n\t\t// Animate in after first render\n\t\tthis.updateComplete.then(() => {\n\t\t\tthis.animateIn()\n\t\t})\n\n\t\tif (this.duration > 0) {\n\t\t\tthis.setupAutoClose()\n\t\t\tthis.setupProgressUpdates()\n\t\t}\n\n\t\tif (this.playSound) {\n\t\t\tthis._playSound()\n\t\t}\n\t}\n\n\tprivate async animateIn() {\n\t\t// Get the notification element's final position\n\t\tconst rect = this.getBoundingClientRect()\n\t\tconst targetX = rect.left + rect.width / 2\n\t\tconst targetY = rect.top + rect.height / 2\n\n\t\t// Calculate arc point for upward arc\n\t\tconst arcPoint = calculateArcPoint(this.startPosition, { x: targetX, y: targetY }, 'up', 0.3)\n\n\t\t// Animate from click position to final position with arc\n\t\tawait this.animate(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\ttransform: `translate(${this.startPosition.x - targetX}px, ${this.startPosition.y - targetY}px) scale(0.1)`,\n\t\t\t\t\topacity: 0,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttransform: `translate(${arcPoint.x - targetX}px, ${arcPoint.y - targetY}px) scale(0.6)`,\n\t\t\t\t\topacity: 0.9,\n\t\t\t\t\toffset: 0.5,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttransform: 'translate(0, 0) scale(1)',\n\t\t\t\t\topacity: 1,\n\t\t\t\t},\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 400,\n\t\t\t\teasing: 'cubic-bezier(0.34, 1.2, 0.64, 1)',\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t).finished\n\t}\n\n\tprivate setupAutoClose() {\n\t\tif (this.duration <= 0) return\n\n\t\tthis.startTime = Date.now()\n\t\tthis.elapsedBeforePause = 0\n\n\t\tthis.paused$\n\t\t\t.pipe(\n\t\t\t\tswitchMap(paused => {\n\t\t\t\t\tif (paused) {\n\t\t\t\t\t\tthis.pausedAt = Date.now()\n\t\t\t\t\t\tthis.elapsedBeforePause += this.pausedAt - this.startTime\n\t\t\t\t\t\treturn NEVER\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.startTime = Date.now()\n\t\t\t\t\t\tconst remaining = this.duration - this.elapsedBeforePause\n\t\t\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\t\t\tthis.close()\n\t\t\t\t\t\t\treturn NEVER\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn timer(remaining)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => this.close())\n\t}\n\n\tprivate setupProgressUpdates() {\n\t\tif (this.duration <= 0) return\n\n\t\tinterval(16)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() =>\n\t\t\t\t\tthis.paused$.pipe(\n\t\t\t\t\t\tmap(paused => {\n\t\t\t\t\t\t\tif (paused) return this._progress\n\t\t\t\t\t\t\tconst elapsed = this.elapsedBeforePause + (Date.now() - this.startTime)\n\t\t\t\t\t\t\tconst remaining = Math.max(0, this.duration - elapsed)\n\t\t\t\t\t\t\treturn (remaining / this.duration) * 100\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(progress => {\n\t\t\t\t\tthis._progress = progress\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate _playSound() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('playsound', {\n\t\t\t\tdetail: { type: this.type },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate _handleMouseEnter() {\n\t\tthis._hovered = true\n\t\tthis.paused$.next(true)\n\t}\n\n\tprivate _handleMouseLeave() {\n\t\tthis._hovered = false\n\t\tthis.paused$.next(false)\n\t}\n\n\tpublic async close() {\n\t\tif (this._closing) return\n\t\tthis._closing = true\n\t\tthis._visible = false\n\n\t\t// Animate out before dispatching close event\n\t\tawait this.animate(\n\t\t\t[\n\t\t\t\t{ transform: 'translate(0, 0) scale(1)', opacity: 1 },\n\t\t\t\t{ transform: 'translate(0, -20px) scale(0.8)', opacity: 0 },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 200,\n\t\t\t\teasing: 'cubic-bezier(0.4, 0, 1, 1)',\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t).finished\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('close', {\n\t\t\t\tdetail: { id: this.id },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate _getEmoji(): string {\n\t\tswitch (this.type) {\n\t\t\tcase 'success':\n\t\t\t\treturn '\\u2705'\n\t\t\tcase 'warning':\n\t\t\t\treturn '\\u26A0\\uFE0F'\n\t\t\tcase 'error':\n\t\t\t\treturn '\\u274C'\n\t\t\tdefault:\n\t\t\t\treturn '\\u{1F4A1}'\n\t\t}\n\t}\n\n\trender() {\n\t\tif (!this._visible && this._closing) return html``\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"notification ${this.type} ${this._closing ? 'closing' : ''} ${this._hovered ? 'hovered' : ''}\"\n\t\t\t\trole=\"alert\"\n\t\t\t\t@mouseenter=${this._handleMouseEnter}\n\t\t\t\t@mouseleave=${this._handleMouseLeave}\n\t\t\t>\n\t\t\t\t<span class=\"emoji\">${this._getEmoji()}</span>\n\t\t\t\t<div class=\"content\">\n\t\t\t\t\t${this.title ? html`<div class=\"title\">${this.title}</div>` : ''}\n\t\t\t\t\t<div class=\"message\">${this.message}</div>\n\t\t\t\t</div>\n\t\t\t\t${this.closable\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<button class=\"close\" aria-label=\"Close notification\" @click=${this.close}>x</button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t\t${this.showProgress || this.duration > 0\n\t\t\t\t\t? html`<div class=\"progress\" style=\"width: ${this._progress}%\"></div>`\n\t\t\t\t\t: ''}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-notification': SchmancyNotification\n\t}\n}\n","import { $sounds, type Feeling } from '../audio'\nimport SchmancyNotification, { NotificationType } from './notification'\n\nexport interface NotificationOptions {\n\tid?: string\n\ttitle?: string\n\tmessage: string\n\ttype?: NotificationType\n\tduration?: number\n\tclosable?: boolean\n\tplaySound?: boolean\n\tshowProgress?: boolean\n}\n\nconst typeToFeeling: Record<NotificationType, Feeling> = {\n\tinfo: 'curious',\n\tsuccess: 'content',\n\twarning: 'anxious',\n\terror: 'disappointed',\n}\n\n// Track last mouse position\nlet lastClickPosition = { x: window.innerWidth - 100, y: 50 }\n\n// Global mousedown listener to track click position\nif (typeof window !== 'undefined') {\n\twindow.addEventListener(\n\t\t'mousedown',\n\t\t(e: MouseEvent) => {\n\t\t\tlastClickPosition = { x: e.clientX, y: e.clientY }\n\t\t},\n\t\t{ capture: true, passive: true },\n\t)\n}\n\n// Track current notification element\nlet currentNotification: SchmancyNotification | null = null\n\n/**\n * Notification service for centralized notification management.\n * Provides a simple API for showing notifications.\n */\nexport class NotificationService {\n\tprivate static instance: NotificationService\n\tprivate notificationStack: string[] = []\n\tprivate audioVolume = 0.1\n\n\t// Default notification options\n\tprivate static DEFAULT_OPTIONS: Partial<NotificationOptions> = {\n\t\tduration: 1000, // 1 seconds - long enough to be readable\n\t\tclosable: true,\n\t\tplaySound: true,\n\t}\n\n\t// Type-specific default durations (in milliseconds)\n\tprivate static TYPE_DURATIONS: Record<NotificationType, number> = {\n\t\tsuccess: 1500, // 1.5 seconds - quick confirmation\n\t\tinfo: 2000, // 2 seconds - informational\n\t\twarning: 2500, // 2.5 seconds - needs attention\n\t\terror: 2500, // 2.5 seconds - important\n\t}\n\n\t// Private constructor for singleton pattern\n\tprivate constructor() {\n\t\t$sounds.setVolume(this.audioVolume)\n\t}\n\n\t/**\n\t * Get the singleton instance\n\t */\n\tpublic static getInstance(): NotificationService {\n\t\tif (!NotificationService.instance) {\n\t\t\tNotificationService.instance = new NotificationService()\n\t\t}\n\t\treturn NotificationService.instance\n\t}\n\n\t/**\n\t * Show a notification\n\t * @returns The ID of the created notification\n\t */\n\tpublic notify(options: NotificationOptions): string {\n\t\t// Apply default options\n\t\tconst completeOptions = {\n\t\t\t...NotificationService.DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t// Override with duraton from options if provided, otherwise use default\n\t\t\tduration: options.duration ?? NotificationService.DEFAULT_OPTIONS.duration,\n\t\t}\n\n\t\tconst id = completeOptions.id || `notification-${Date.now()}-${Math.floor(Math.random() * 10000)}`\n\n\t\t// Add to stack for tracking\n\t\tthis.notificationStack.push(id)\n\n\t\t// Remove existing notification if any (only 1 at a time)\n\t\tif (currentNotification) {\n\t\t\tcurrentNotification.remove()\n\t\t\tcurrentNotification = null\n\t\t}\n\n\t\t// Create the notification element directly\n\t\tconst notification = document.createElement('sch-notification') as SchmancyNotification\n\t\tnotification.id = id\n\t\tnotification.title = completeOptions.title || ''\n\t\tnotification.message = completeOptions.message\n\t\tnotification.type = completeOptions.type || 'info'\n\t\tnotification.duration = completeOptions.duration || 1000\n\t\tnotification.closable = completeOptions.closable !== false\n\t\tnotification.playSound = false // We handle sound here\n\t\tnotification.showProgress = completeOptions.showProgress || false\n\t\tnotification.startPosition = { ...lastClickPosition }\n\n\t\t// Play sound if enabled\n\t\tif (completeOptions.playSound !== false) {\n\t\t\t$sounds.play(typeToFeeling[notification.type])\n\t\t}\n\n\t\t// Listen for close event\n\t\tnotification.addEventListener('close', () => {\n\t\t\tconst index = this.notificationStack.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.notificationStack.splice(index, 1)\n\t\t\t}\n\t\t\tnotification.remove()\n\t\t\tif (currentNotification === notification) {\n\t\t\t\tcurrentNotification = null\n\t\t\t}\n\t\t})\n\n\t\t// Append to body\n\t\tdocument.body.appendChild(notification)\n\t\tcurrentNotification = notification\n\n\t\treturn id\n\t}\n\n\t/**\n\t * Dismiss a notification\n\t * @param id Optional notification ID. If not provided, dismisses the most recent notification\n\t */\n\tpublic dismiss(id?: string): void {\n\t\tlet targetId: string | undefined\n\n\t\tif (id) {\n\t\t\t// Remove specific notification from stack\n\t\t\tconst index = this.notificationStack.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.notificationStack.splice(index, 1)\n\t\t\t\ttargetId = id\n\t\t\t}\n\t\t} else {\n\t\t\t// Remove most recent notification (last in stack)\n\t\t\ttargetId = this.notificationStack.pop()\n\t\t}\n\n\t\tif (targetId && currentNotification && currentNotification.id === targetId) {\n\t\t\tcurrentNotification.close()\n\t\t}\n\t}\n\n\t/**\n\t * Update a notification's content\n\t */\n\tpublic update(id: string, options: Partial<NotificationOptions>): void {\n\t\tif (currentNotification && currentNotification.id === id) {\n\t\t\tif (options.title !== undefined) currentNotification.title = options.title\n\t\t\tif (options.message !== undefined) currentNotification.message = options.message\n\t\t\tif (options.type !== undefined) currentNotification.type = options.type\n\t\t}\n\t}\n\n\t/**\n\t * Show an info notification\n\t */\n\tpublic info(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'info',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.info) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a success notification\n\t */\n\tpublic success(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'success',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.success) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a warning notification\n\t */\n\tpublic warning(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'warning',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.warning) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show an error notification\n\t */\n\tpublic error(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'error',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.error) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a notification with a custom duration\n\t */\n\tpublic customDuration(\n\t\tmessage: string,\n\t\tduration: number,\n\t\toptions: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {},\n\t): string {\n\t\treturn this.notify({\n\t\t\tmessage,\n\t\t\tduration,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a persistent notification (won't auto-dismiss)\n\t */\n\tpublic persistent(message: string, options: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage,\n\t\t\tduration: 0, // Zero duration means no auto-close\n\t\t\t...options,\n\t\t})\n\t}\n}\n\n/**\n * Global notification utility - provides a quick way to show notifications\n */\nexport const $notify = {\n\t/**\n\t * Show a notification\n\t */\n\tshow: (options: NotificationOptions): string => {\n\t\treturn NotificationService.getInstance().notify(options)\n\t},\n\n\t/**\n\t * Show an info notification\n\t */\n\tinfo: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().info(message, options)\n\t},\n\n\t/**\n\t * Show a success notification\n\t */\n\tsuccess: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().success(message, options)\n\t},\n\n\t/**\n\t * Show a warning notification\n\t */\n\twarning: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().warning(message, options)\n\t},\n\n\t/**\n\t * Show an error notification\n\t */\n\terror: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().error(message, options)\n\t},\n\n\t/**\n\t * Show a notification with a custom duration\n\t * @param message The notification message\n\t * @param duration Duration in milliseconds before auto-dismissing (0 for no auto-dismiss)\n\t * @param options Additional notification options\n\t */\n\tcustomDuration: (\n\t\tmessage: string,\n\t\tduration: number,\n\t\toptions: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {},\n\t): string => {\n\t\treturn NotificationService.getInstance().customDuration(message, duration, options)\n\t},\n\n\t/**\n\t * Show a persistent notification that won't auto-dismiss\n\t */\n\tpersistent: (message: string, options: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {}): string => {\n\t\treturn NotificationService.getInstance().persistent(message, options)\n\t},\n\n\t/**\n\t * Dismiss a notification\n\t * @param id Optional notification ID. If not provided, dismisses the most recent notification (queue-like behavior)\n\t */\n\tdismiss: (id?: string): void => {\n\t\treturn NotificationService.getInstance().dismiss(id)\n\t},\n\n\t/**\n\t * Update a notification's content\n\t */\n\tupdate: (id: string, options: Partial<NotificationOptions>): void => {\n\t\treturn NotificationService.getInstance().update(id, options)\n\t},\n}\n\nexport default NotificationService\n"],"names":["SchmancyNotification","$LitElement","constructor","super","arguments","this","title","message","type","closable","duration","id","Date","now","Math","floor","random","playSound","showProgress","startPosition","x","y","_visible","_progress","_hovered","_closing","paused$","BehaviorSubject","startTime","pausedAt","elapsedBeforePause","connectedCallback","style","position","top","right","zIndex","opacity","updateComplete","then","animateIn","setupAutoClose","setupProgressUpdates","_playSound","rect","getBoundingClientRect","targetX","left","width","targetY","height","arcPoint","start","end","arcDirection","intensity","midX","midY","distance","sqrt","pow","arcHeight","min","animate","transform","offset","easing","fill","finished","pipe","switchMap","paused","NEVER","remaining","close","timer","takeUntil","disconnecting","subscribe","interval","map","elapsed","max","distinctUntilChanged","tap","progress","dispatchEvent","CustomEvent","detail","bubbles","composed","_handleMouseEnter","next","_handleMouseLeave","_getEmoji","render","html","__decorateClass","property","String","prototype","Boolean","Number","Object","state","customElement","typeToFeeling","info","success","warning","error","lastClickPosition","window","innerWidth","addEventListener","e","clientX","clientY","capture","passive","currentNotification","NotificationService","notificationStack","audioVolume","$sounds","setVolume","instance","options","completeOptions","DEFAULT_OPTIONS","push","remove","notification","document","createElement","play","index","indexOf","splice","body","appendChild","targetId","pop","notify","TYPE_DURATIONS","_$","$notify","show","getInstance","customDuration","persistent","dismiss","update"],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- "use strict";const u=require("rxjs"),l=require("rxjs/operators");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const a=require("lit/decorators.js");require("./tailwind.mixin-Cp4PyXok.cjs");const S=require("./litElement.mixin-CrpeGpZ7.cjs"),y=require("lit");require("./sound.service-eRirZw59.cjs");const g=require("./emotional-sounds-DVGhmoZf.cjs");var $=Object.defineProperty,P=Object.getOwnPropertyDescriptor,r=(s,t,e,o)=>{for(var i,n=o>1?void 0:o?P(t,e):t,d=s.length-1;d>=0;d--)(i=s[d])&&(n=(o?i(t,e,n):i(n))||n);return o&&n&&$(t,e,n),n};exports.SchmancyNotification=class extends S.$LitElement(":host{display:block}.notification{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px 32px 12px 12px;background:var(--schmancy-sys-color-surface-container);border-radius:var(--schmancy-sys-shape-corner-extraLarge, 16px);box-shadow:var(--schmancy-sys-elevation-1);color:var(--schmancy-sys-color-surface-on);max-width:320px;overflow:hidden;transition:box-shadow .2s ease}.notification.hovered{box-shadow:var(--schmancy-sys-elevation-2)}.emoji{font-size:20px;line-height:1;flex-shrink:0;margin-top:1px}.content{flex:1;min-width:0}.title{font-weight:500;font-size:13px;line-height:1.4;margin-bottom:2px;letter-spacing:.01em}.info .title{color:var(--schmancy-sys-color-primary-default)}.success .title{color:var(--schmancy-sys-color-success-default)}.warning .title{color:var(--schmancy-sys-color-tertiary-default)}.error .title{color:var(--schmancy-sys-color-error-default)}.message{font-size:13px;line-height:1.4;opacity:.75;letter-spacing:.01em}.close{position:absolute;top:8px;right:6px;background:none;border:none;font-size:16px;font-weight:300;color:var(--schmancy-sys-color-surface-onVariant);cursor:pointer;padding:4px 6px;line-height:1;opacity:.4;border-radius:var(--schmancy-sys-shape-corner-full, 50%);transition:opacity .2s ease}.close:hover{opacity:.8}.close:focus-visible{outline:none;opacity:1;box-shadow:0 0 0 2px var(--schmancy-sys-color-primary-default)}.progress{position:absolute;bottom:0;left:0;height:2px;transition:width 16ms linear;border-radius:2px;opacity:.7}.info .progress{background:var(--schmancy-sys-color-primary-container)}.success .progress{background:var(--schmancy-sys-color-success-container)}.warning .progress{background:var(--schmancy-sys-color-tertiary-container)}.error .progress{background:var(--schmancy-sys-color-error-container)}"){constructor(){super(...arguments),this.title="",this.message="",this.type="info",this.closable=!0,this.duration=5e3,this.id=`notification-${Date.now()}-${Math.floor(1e4*Math.random())}`,this.playSound=!0,this.showProgress=!1,this.startPosition={x:0,y:0},this._visible=!0,this._progress=100,this._hovered=!1,this._closing=!1,this.paused$=new u.BehaviorSubject(!1),this.startTime=0,this.pausedAt=0,this.elapsedBeforePause=0}connectedCallback(){super.connectedCallback(),this.style.position="fixed",this.style.top="16px",this.style.right="16px",this.style.zIndex="10001",this.style.opacity="0",this.updateComplete.then(()=>{this.animateIn()}),this.duration>0&&(this.setupAutoClose(),this.setupProgressUpdates()),this.playSound&&this._playSound()}async animateIn(){const s=this.getBoundingClientRect(),t=s.left+s.width/2,e=s.top+s.height/2,o=(function(i,n,d="up",x=.3){const b=(i.x+n.x)/2,m=(i.y+n.y)/2,w=Math.sqrt(Math.pow(n.x-i.x,2)+Math.pow(n.y-i.y,2)),f=Math.min(w*x,150);return{x:b,y:d==="up"?m-f:m+f}})(this.startPosition,{x:t,y:e},"up",.3);await this.animate([{transform:`translate(${this.startPosition.x-t}px, ${this.startPosition.y-e}px) scale(0.1)`,opacity:0},{transform:`translate(${o.x-t}px, ${o.y-e}px) scale(0.6)`,opacity:.9,offset:.5},{transform:"translate(0, 0) scale(1)",opacity:1}],{duration:400,easing:"cubic-bezier(0.34, 1.2, 0.64, 1)",fill:"forwards"}).finished}setupAutoClose(){this.duration<=0||(this.startTime=Date.now(),this.elapsedBeforePause=0,this.paused$.pipe(l.switchMap(s=>{if(s)return this.pausedAt=Date.now(),this.elapsedBeforePause+=this.pausedAt-this.startTime,u.NEVER;{this.startTime=Date.now();const t=this.duration-this.elapsedBeforePause;return t<=0?(this.close(),u.NEVER):u.timer(t)}}),l.takeUntil(this.disconnecting)).subscribe(()=>this.close()))}setupProgressUpdates(){this.duration<=0||u.interval(16).pipe(l.switchMap(()=>this.paused$.pipe(l.map(s=>{if(s)return this._progress;const t=this.elapsedBeforePause+(Date.now()-this.startTime);return Math.max(0,this.duration-t)/this.duration*100}))),l.distinctUntilChanged(),l.tap(s=>{this._progress=s}),l.takeUntil(this.disconnecting)).subscribe()}_playSound(){this.dispatchEvent(new CustomEvent("playsound",{detail:{type:this.type},bubbles:!0,composed:!0}))}_handleMouseEnter(){this._hovered=!0,this.paused$.next(!0)}_handleMouseLeave(){this._hovered=!1,this.paused$.next(!1)}async close(){this._closing||(this._closing=!0,this._visible=!1,await this.animate([{transform:"translate(0, 0) scale(1)",opacity:1},{transform:"translate(0, -20px) scale(0.8)",opacity:0}],{duration:200,easing:"cubic-bezier(0.4, 0, 1, 1)",fill:"forwards"}).finished,this.dispatchEvent(new CustomEvent("close",{detail:{id:this.id},bubbles:!0,composed:!0})))}_getEmoji(){switch(this.type){case"success":return"✅";case"warning":return"⚠️";case"error":return"❌";default:return"💡"}}render(){return!this._visible&&this._closing?y.html``:y.html`
2
- <div
3
- class="notification ${this.type} ${this._closing?"closing":""} ${this._hovered?"hovered":""}"
4
- role="alert"
5
- @mouseenter=${this._handleMouseEnter}
6
- @mouseleave=${this._handleMouseLeave}
7
- >
8
- <span class="emoji">${this._getEmoji()}</span>
9
- <div class="content">
10
- ${this.title?y.html`<div class="title">${this.title}</div>`:""}
11
- <div class="message">${this.message}</div>
12
- </div>
13
- ${this.closable?y.html`
14
- <button class="close" aria-label="Close notification" @click=${this.close}>x</button>
15
- `:""}
16
- ${this.showProgress||this.duration>0?y.html`<div class="progress" style="width: ${this._progress}%"></div>`:""}
17
- </div>
18
- `}},r([a.property({type:String})],exports.SchmancyNotification.prototype,"title",2),r([a.property({type:String})],exports.SchmancyNotification.prototype,"message",2),r([a.property({type:String})],exports.SchmancyNotification.prototype,"type",2),r([a.property({type:Boolean})],exports.SchmancyNotification.prototype,"closable",2),r([a.property({type:Number})],exports.SchmancyNotification.prototype,"duration",2),r([a.property({type:String})],exports.SchmancyNotification.prototype,"id",2),r([a.property({type:Boolean})],exports.SchmancyNotification.prototype,"playSound",2),r([a.property({type:Boolean})],exports.SchmancyNotification.prototype,"showProgress",2),r([a.property({type:Object})],exports.SchmancyNotification.prototype,"startPosition",2),r([a.state()],exports.SchmancyNotification.prototype,"_visible",2),r([a.state()],exports.SchmancyNotification.prototype,"_progress",2),r([a.state()],exports.SchmancyNotification.prototype,"_hovered",2),r([a.state()],exports.SchmancyNotification.prototype,"_closing",2),exports.SchmancyNotification=r([a.customElement("sch-notification")],exports.SchmancyNotification);const N={info:"curious",success:"content",warning:"anxious",error:"disappointed"};let v={x:window.innerWidth-100,y:50};typeof window<"u"&&window.addEventListener("mousedown",s=>{v={x:s.clientX,y:s.clientY}},{capture:!0,passive:!0});let c=null;const p=class p{constructor(){this.notificationStack=[],this.audioVolume=.1,g.$sounds.setVolume(this.audioVolume)}static getInstance(){return p.instance||(p.instance=new p),p.instance}notify(t){const e={...p.DEFAULT_OPTIONS,...t,duration:t.duration??p.DEFAULT_OPTIONS.duration},o=e.id||`notification-${Date.now()}-${Math.floor(1e4*Math.random())}`;this.notificationStack.push(o),c&&(c.remove(),c=null);const i=document.createElement("sch-notification");return i.id=o,i.title=e.title||"",i.message=e.message,i.type=e.type||"info",i.duration=e.duration||1e3,i.closable=e.closable!==!1,i.playSound=!1,i.showProgress=e.showProgress||!1,i.startPosition={...v},e.playSound!==!1&&g.$sounds.play(N[i.type]),i.addEventListener("close",()=>{const n=this.notificationStack.indexOf(o);n>-1&&this.notificationStack.splice(n,1),i.remove(),c===i&&(c=null)}),document.body.appendChild(i),c=i,o}dismiss(t){let e;if(t){const o=this.notificationStack.indexOf(t);o>-1&&(this.notificationStack.splice(o,1),e=t)}else e=this.notificationStack.pop();e&&c&&c.id===e&&c.close()}update(t,e){c&&c.id===t&&(e.title!==void 0&&(c.title=e.title),e.message!==void 0&&(c.message=e.message),e.type!==void 0&&(c.type=e.type))}info(t,e={}){return this.notify({message:t??"",type:"info",duration:t?e.duration??p.TYPE_DURATIONS.info:1,...e})}success(t,e={}){return this.notify({message:t??"",type:"success",duration:t?e.duration??p.TYPE_DURATIONS.success:1,...e})}warning(t,e={}){return this.notify({message:t??"",type:"warning",duration:t?e.duration??p.TYPE_DURATIONS.warning:1,...e})}error(t,e={}){return this.notify({message:t??"",type:"error",duration:t?e.duration??p.TYPE_DURATIONS.error:1,...e})}customDuration(t,e,o={}){return this.notify({message:t,duration:e,...o})}persistent(t,e={}){return this.notify({message:t,duration:0,...e})}};p.DEFAULT_OPTIONS={duration:1e3,closable:!0,playSound:!0},p.TYPE_DURATIONS={success:1500,info:2e3,warning:2500,error:2500};let h=p;const E={show:s=>h.getInstance().notify(s),info:(s,t={})=>h.getInstance().info(s,t),success:(s,t={})=>h.getInstance().success(s,t),warning:(s,t={})=>h.getInstance().warning(s,t),error:(s,t={})=>h.getInstance().error(s,t),customDuration:(s,t,e={})=>h.getInstance().customDuration(s,t,e),persistent:(s,t={})=>h.getInstance().persistent(s,t),dismiss:s=>h.getInstance().dismiss(s),update:(s,t)=>h.getInstance().update(s,t)};exports.$notify=E;
19
- //# sourceMappingURL=notification-service-DknbpqTt.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification-service-DknbpqTt.cjs","sources":["../src/notification/notification.ts","../src/notification/notification-service.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { BehaviorSubject, timer, interval, NEVER } from 'rxjs'\nimport { switchMap, takeUntil, map, tap, distinctUntilChanged } from 'rxjs/operators'\nimport style from './notification.scss?inline'\n\nexport type NotificationType = 'info' | 'success' | 'warning' | 'error'\n\n/**\n * Calculate a point on an arc between two points\n */\nfunction calculateArcPoint(\n\tstart: { x: number; y: number },\n\tend: { x: number; y: number },\n\tarcDirection: 'up' | 'down' = 'up',\n\tintensity: number = 0.3,\n): { x: number; y: number } {\n\tconst midX = (start.x + end.x) / 2\n\tconst midY = (start.y + end.y) / 2\n\tconst distance = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2))\n\tconst arcHeight = Math.min(distance * intensity, 150)\n\treturn {\n\t\tx: midX,\n\t\ty: arcDirection === 'up' ? midY - arcHeight : midY + arcHeight,\n\t}\n}\n\n/**\n * @fires close - When notification is closed\n */\n@customElement('sch-notification')\nexport default class SchmancyNotification extends $LitElement(style) {\n\t@property({ type: String }) title = ''\n\t@property({ type: String }) message = ''\n\t@property({ type: String }) type: NotificationType = 'info'\n\t@property({ type: Boolean }) closable = true\n\t@property({ type: Number }) duration = 5000 // 0 means no auto-close\n\t@property({ type: String }) id = `notification-${Date.now()}-${Math.floor(Math.random() * 10000)}`\n\t@property({ type: Boolean }) playSound = true\n\t@property({ type: Boolean }) showProgress = false // Show indeterminate progress bar\n\t@property({ type: Object }) startPosition: { x: number; y: number } = { x: 0, y: 0 }\n\n\t@state() private _visible = true\n\t@state() private _progress = 100\n\t@state() private _hovered = false\n\t@state() private _closing = false\n\n\tprivate paused$ = new BehaviorSubject<boolean>(false)\n\tprivate startTime = 0\n\tprivate pausedAt = 0\n\tprivate elapsedBeforePause = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Set fixed positioning for blackbird animation\n\t\tthis.style.position = 'fixed'\n\t\tthis.style.top = '16px'\n\t\tthis.style.right = '16px'\n\t\tthis.style.zIndex = '10001'\n\t\tthis.style.opacity = '0'\n\n\t\t// Animate in after first render\n\t\tthis.updateComplete.then(() => {\n\t\t\tthis.animateIn()\n\t\t})\n\n\t\tif (this.duration > 0) {\n\t\t\tthis.setupAutoClose()\n\t\t\tthis.setupProgressUpdates()\n\t\t}\n\n\t\tif (this.playSound) {\n\t\t\tthis._playSound()\n\t\t}\n\t}\n\n\tprivate async animateIn() {\n\t\t// Get the notification element's final position\n\t\tconst rect = this.getBoundingClientRect()\n\t\tconst targetX = rect.left + rect.width / 2\n\t\tconst targetY = rect.top + rect.height / 2\n\n\t\t// Calculate arc point for upward arc\n\t\tconst arcPoint = calculateArcPoint(this.startPosition, { x: targetX, y: targetY }, 'up', 0.3)\n\n\t\t// Animate from click position to final position with arc\n\t\tawait this.animate(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\ttransform: `translate(${this.startPosition.x - targetX}px, ${this.startPosition.y - targetY}px) scale(0.1)`,\n\t\t\t\t\topacity: 0,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttransform: `translate(${arcPoint.x - targetX}px, ${arcPoint.y - targetY}px) scale(0.6)`,\n\t\t\t\t\topacity: 0.9,\n\t\t\t\t\toffset: 0.5,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttransform: 'translate(0, 0) scale(1)',\n\t\t\t\t\topacity: 1,\n\t\t\t\t},\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 400,\n\t\t\t\teasing: 'cubic-bezier(0.34, 1.2, 0.64, 1)',\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t).finished\n\t}\n\n\tprivate setupAutoClose() {\n\t\tif (this.duration <= 0) return\n\n\t\tthis.startTime = Date.now()\n\t\tthis.elapsedBeforePause = 0\n\n\t\tthis.paused$\n\t\t\t.pipe(\n\t\t\t\tswitchMap(paused => {\n\t\t\t\t\tif (paused) {\n\t\t\t\t\t\tthis.pausedAt = Date.now()\n\t\t\t\t\t\tthis.elapsedBeforePause += this.pausedAt - this.startTime\n\t\t\t\t\t\treturn NEVER\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.startTime = Date.now()\n\t\t\t\t\t\tconst remaining = this.duration - this.elapsedBeforePause\n\t\t\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\t\t\tthis.close()\n\t\t\t\t\t\t\treturn NEVER\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn timer(remaining)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => this.close())\n\t}\n\n\tprivate setupProgressUpdates() {\n\t\tif (this.duration <= 0) return\n\n\t\tinterval(16)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() =>\n\t\t\t\t\tthis.paused$.pipe(\n\t\t\t\t\t\tmap(paused => {\n\t\t\t\t\t\t\tif (paused) return this._progress\n\t\t\t\t\t\t\tconst elapsed = this.elapsedBeforePause + (Date.now() - this.startTime)\n\t\t\t\t\t\t\tconst remaining = Math.max(0, this.duration - elapsed)\n\t\t\t\t\t\t\treturn (remaining / this.duration) * 100\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(progress => {\n\t\t\t\t\tthis._progress = progress\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate _playSound() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('playsound', {\n\t\t\t\tdetail: { type: this.type },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate _handleMouseEnter() {\n\t\tthis._hovered = true\n\t\tthis.paused$.next(true)\n\t}\n\n\tprivate _handleMouseLeave() {\n\t\tthis._hovered = false\n\t\tthis.paused$.next(false)\n\t}\n\n\tpublic async close() {\n\t\tif (this._closing) return\n\t\tthis._closing = true\n\t\tthis._visible = false\n\n\t\t// Animate out before dispatching close event\n\t\tawait this.animate(\n\t\t\t[\n\t\t\t\t{ transform: 'translate(0, 0) scale(1)', opacity: 1 },\n\t\t\t\t{ transform: 'translate(0, -20px) scale(0.8)', opacity: 0 },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 200,\n\t\t\t\teasing: 'cubic-bezier(0.4, 0, 1, 1)',\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t).finished\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('close', {\n\t\t\t\tdetail: { id: this.id },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate _getEmoji(): string {\n\t\tswitch (this.type) {\n\t\t\tcase 'success':\n\t\t\t\treturn '\\u2705'\n\t\t\tcase 'warning':\n\t\t\t\treturn '\\u26A0\\uFE0F'\n\t\t\tcase 'error':\n\t\t\t\treturn '\\u274C'\n\t\t\tdefault:\n\t\t\t\treturn '\\u{1F4A1}'\n\t\t}\n\t}\n\n\trender() {\n\t\tif (!this._visible && this._closing) return html``\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"notification ${this.type} ${this._closing ? 'closing' : ''} ${this._hovered ? 'hovered' : ''}\"\n\t\t\t\trole=\"alert\"\n\t\t\t\t@mouseenter=${this._handleMouseEnter}\n\t\t\t\t@mouseleave=${this._handleMouseLeave}\n\t\t\t>\n\t\t\t\t<span class=\"emoji\">${this._getEmoji()}</span>\n\t\t\t\t<div class=\"content\">\n\t\t\t\t\t${this.title ? html`<div class=\"title\">${this.title}</div>` : ''}\n\t\t\t\t\t<div class=\"message\">${this.message}</div>\n\t\t\t\t</div>\n\t\t\t\t${this.closable\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<button class=\"close\" aria-label=\"Close notification\" @click=${this.close}>x</button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t\t${this.showProgress || this.duration > 0\n\t\t\t\t\t? html`<div class=\"progress\" style=\"width: ${this._progress}%\"></div>`\n\t\t\t\t\t: ''}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-notification': SchmancyNotification\n\t}\n}\n","import { $sounds, type Feeling } from '../audio'\nimport SchmancyNotification, { NotificationType } from './notification'\n\nexport interface NotificationOptions {\n\tid?: string\n\ttitle?: string\n\tmessage: string\n\ttype?: NotificationType\n\tduration?: number\n\tclosable?: boolean\n\tplaySound?: boolean\n\tshowProgress?: boolean\n}\n\nconst typeToFeeling: Record<NotificationType, Feeling> = {\n\tinfo: 'curious',\n\tsuccess: 'content',\n\twarning: 'anxious',\n\terror: 'disappointed',\n}\n\n// Track last mouse position\nlet lastClickPosition = { x: window.innerWidth - 100, y: 50 }\n\n// Global mousedown listener to track click position\nif (typeof window !== 'undefined') {\n\twindow.addEventListener(\n\t\t'mousedown',\n\t\t(e: MouseEvent) => {\n\t\t\tlastClickPosition = { x: e.clientX, y: e.clientY }\n\t\t},\n\t\t{ capture: true, passive: true },\n\t)\n}\n\n// Track current notification element\nlet currentNotification: SchmancyNotification | null = null\n\n/**\n * Notification service for centralized notification management.\n * Provides a simple API for showing notifications.\n */\nexport class NotificationService {\n\tprivate static instance: NotificationService\n\tprivate notificationStack: string[] = []\n\tprivate audioVolume = 0.1\n\n\t// Default notification options\n\tprivate static DEFAULT_OPTIONS: Partial<NotificationOptions> = {\n\t\tduration: 1000, // 1 seconds - long enough to be readable\n\t\tclosable: true,\n\t\tplaySound: true,\n\t}\n\n\t// Type-specific default durations (in milliseconds)\n\tprivate static TYPE_DURATIONS: Record<NotificationType, number> = {\n\t\tsuccess: 1500, // 1.5 seconds - quick confirmation\n\t\tinfo: 2000, // 2 seconds - informational\n\t\twarning: 2500, // 2.5 seconds - needs attention\n\t\terror: 2500, // 2.5 seconds - important\n\t}\n\n\t// Private constructor for singleton pattern\n\tprivate constructor() {\n\t\t$sounds.setVolume(this.audioVolume)\n\t}\n\n\t/**\n\t * Get the singleton instance\n\t */\n\tpublic static getInstance(): NotificationService {\n\t\tif (!NotificationService.instance) {\n\t\t\tNotificationService.instance = new NotificationService()\n\t\t}\n\t\treturn NotificationService.instance\n\t}\n\n\t/**\n\t * Show a notification\n\t * @returns The ID of the created notification\n\t */\n\tpublic notify(options: NotificationOptions): string {\n\t\t// Apply default options\n\t\tconst completeOptions = {\n\t\t\t...NotificationService.DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t// Override with duraton from options if provided, otherwise use default\n\t\t\tduration: options.duration ?? NotificationService.DEFAULT_OPTIONS.duration,\n\t\t}\n\n\t\tconst id = completeOptions.id || `notification-${Date.now()}-${Math.floor(Math.random() * 10000)}`\n\n\t\t// Add to stack for tracking\n\t\tthis.notificationStack.push(id)\n\n\t\t// Remove existing notification if any (only 1 at a time)\n\t\tif (currentNotification) {\n\t\t\tcurrentNotification.remove()\n\t\t\tcurrentNotification = null\n\t\t}\n\n\t\t// Create the notification element directly\n\t\tconst notification = document.createElement('sch-notification') as SchmancyNotification\n\t\tnotification.id = id\n\t\tnotification.title = completeOptions.title || ''\n\t\tnotification.message = completeOptions.message\n\t\tnotification.type = completeOptions.type || 'info'\n\t\tnotification.duration = completeOptions.duration || 1000\n\t\tnotification.closable = completeOptions.closable !== false\n\t\tnotification.playSound = false // We handle sound here\n\t\tnotification.showProgress = completeOptions.showProgress || false\n\t\tnotification.startPosition = { ...lastClickPosition }\n\n\t\t// Play sound if enabled\n\t\tif (completeOptions.playSound !== false) {\n\t\t\t$sounds.play(typeToFeeling[notification.type])\n\t\t}\n\n\t\t// Listen for close event\n\t\tnotification.addEventListener('close', () => {\n\t\t\tconst index = this.notificationStack.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.notificationStack.splice(index, 1)\n\t\t\t}\n\t\t\tnotification.remove()\n\t\t\tif (currentNotification === notification) {\n\t\t\t\tcurrentNotification = null\n\t\t\t}\n\t\t})\n\n\t\t// Append to body\n\t\tdocument.body.appendChild(notification)\n\t\tcurrentNotification = notification\n\n\t\treturn id\n\t}\n\n\t/**\n\t * Dismiss a notification\n\t * @param id Optional notification ID. If not provided, dismisses the most recent notification\n\t */\n\tpublic dismiss(id?: string): void {\n\t\tlet targetId: string | undefined\n\n\t\tif (id) {\n\t\t\t// Remove specific notification from stack\n\t\t\tconst index = this.notificationStack.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.notificationStack.splice(index, 1)\n\t\t\t\ttargetId = id\n\t\t\t}\n\t\t} else {\n\t\t\t// Remove most recent notification (last in stack)\n\t\t\ttargetId = this.notificationStack.pop()\n\t\t}\n\n\t\tif (targetId && currentNotification && currentNotification.id === targetId) {\n\t\t\tcurrentNotification.close()\n\t\t}\n\t}\n\n\t/**\n\t * Update a notification's content\n\t */\n\tpublic update(id: string, options: Partial<NotificationOptions>): void {\n\t\tif (currentNotification && currentNotification.id === id) {\n\t\t\tif (options.title !== undefined) currentNotification.title = options.title\n\t\t\tif (options.message !== undefined) currentNotification.message = options.message\n\t\t\tif (options.type !== undefined) currentNotification.type = options.type\n\t\t}\n\t}\n\n\t/**\n\t * Show an info notification\n\t */\n\tpublic info(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'info',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.info) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a success notification\n\t */\n\tpublic success(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'success',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.success) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a warning notification\n\t */\n\tpublic warning(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'warning',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.warning) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show an error notification\n\t */\n\tpublic error(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'error',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.error) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a notification with a custom duration\n\t */\n\tpublic customDuration(\n\t\tmessage: string,\n\t\tduration: number,\n\t\toptions: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {},\n\t): string {\n\t\treturn this.notify({\n\t\t\tmessage,\n\t\t\tduration,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a persistent notification (won't auto-dismiss)\n\t */\n\tpublic persistent(message: string, options: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage,\n\t\t\tduration: 0, // Zero duration means no auto-close\n\t\t\t...options,\n\t\t})\n\t}\n}\n\n/**\n * Global notification utility - provides a quick way to show notifications\n */\nexport const $notify = {\n\t/**\n\t * Show a notification\n\t */\n\tshow: (options: NotificationOptions): string => {\n\t\treturn NotificationService.getInstance().notify(options)\n\t},\n\n\t/**\n\t * Show an info notification\n\t */\n\tinfo: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().info(message, options)\n\t},\n\n\t/**\n\t * Show a success notification\n\t */\n\tsuccess: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().success(message, options)\n\t},\n\n\t/**\n\t * Show a warning notification\n\t */\n\twarning: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().warning(message, options)\n\t},\n\n\t/**\n\t * Show an error notification\n\t */\n\terror: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().error(message, options)\n\t},\n\n\t/**\n\t * Show a notification with a custom duration\n\t * @param message The notification message\n\t * @param duration Duration in milliseconds before auto-dismissing (0 for no auto-dismiss)\n\t * @param options Additional notification options\n\t */\n\tcustomDuration: (\n\t\tmessage: string,\n\t\tduration: number,\n\t\toptions: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {},\n\t): string => {\n\t\treturn NotificationService.getInstance().customDuration(message, duration, options)\n\t},\n\n\t/**\n\t * Show a persistent notification that won't auto-dismiss\n\t */\n\tpersistent: (message: string, options: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {}): string => {\n\t\treturn NotificationService.getInstance().persistent(message, options)\n\t},\n\n\t/**\n\t * Dismiss a notification\n\t * @param id Optional notification ID. If not provided, dismisses the most recent notification (queue-like behavior)\n\t */\n\tdismiss: (id?: string): void => {\n\t\treturn NotificationService.getInstance().dismiss(id)\n\t},\n\n\t/**\n\t * Update a notification's content\n\t */\n\tupdate: (id: string, options: Partial<NotificationOptions>): void => {\n\t\treturn NotificationService.getInstance().update(id, options)\n\t},\n}\n\nexport default NotificationService\n"],"names":["SchmancyNotification","$LitElement","constructor","super","arguments","this","title","message","type","closable","duration","id","Date","now","Math","floor","random","playSound","showProgress","startPosition","x","y","_visible","_progress","_hovered","_closing","paused$","BehaviorSubject","startTime","pausedAt","elapsedBeforePause","connectedCallback","style","position","top","right","zIndex","opacity","updateComplete","then","animateIn","setupAutoClose","setupProgressUpdates","_playSound","rect","getBoundingClientRect","targetX","left","width","targetY","height","arcPoint","start","end","arcDirection","intensity","midX","midY","distance","sqrt","pow","arcHeight","min","animate","transform","offset","easing","fill","finished","pipe","switchMap","paused","NEVER","remaining","close","timer","takeUntil","disconnecting","subscribe","interval","map","elapsed","max","distinctUntilChanged","tap","progress","dispatchEvent","CustomEvent","detail","bubbles","composed","_handleMouseEnter","next","_handleMouseLeave","_getEmoji","html","__decorateClass","property","String","prototype","Boolean","Number","Object","state","customElement","typeToFeeling","info","success","warning","error","lastClickPosition","window","innerWidth","addEventListener","e","clientX","clientY","capture","passive","currentNotification","NotificationService","notificationStack","audioVolume","$sounds","setVolume","getInstance","instance","options","completeOptions","DEFAULT_OPTIONS","push","remove","notification","document","createElement","play","index","indexOf","splice","body","appendChild","targetId","pop","notify","TYPE_DURATIONS","_u","$notify","show","customDuration","persistent","dismiss","update"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,35 +0,0 @@
1
- import { tap as g, catchError as d, finalize as u } from "rxjs";
2
- import { $ as r } from "./notification-service-CUlfXqmj.js";
3
- function p(s) {
4
- return (t) => {
5
- let o;
6
- return s.loadingMessage && (o = r.show({ message: s.loadingMessage, type: s.loadingType || "info", duration: 0, showProgress: !0 })), t.pipe(g((e) => {
7
- if (o && typeof e == "object" && e !== null) {
8
- let a;
9
- if ("progress" in e && typeof e.progress == "number") a = e.progress;
10
- else if ("loaded" in e && "total" in e) {
11
- const i = e.loaded, n = e.total;
12
- typeof i == "number" && typeof n == "number" && n > 0 && (a = i / n * 100);
13
- }
14
- a !== void 0 && r.update?.(o, { message: `${s.loadingMessage} (${Math.round(a)}%)` });
15
- }
16
- typeof e == "object" && e !== null && ("progress" in e || "loaded" in e && "total" in e) || (o && s.autoDismissLoading !== !1 && (r.dismiss(o), o = void 0), s.successMessage && r.show({ message: s.successMessage, type: s.successType || "success", duration: s.successDuration ?? 2e3 }));
17
- }), d((e) => {
18
- if (o && s.autoDismissLoading !== !1 && (r.dismiss(o), o = void 0), s.errorMessage) {
19
- const a = typeof s.errorMessage == "function" ? s.errorMessage(e) : s.errorMessage;
20
- r.show({ message: a, type: s.errorType || "error", duration: s.errorDuration ?? 3e3 });
21
- }
22
- throw e;
23
- }), u(() => {
24
- o && s.autoDismissLoading !== !1 && r.dismiss(o);
25
- }));
26
- };
27
- }
28
- function m(s, t, o) {
29
- return p({ loadingMessage: s, successMessage: t || void 0, errorMessage: o || void 0, autoDismissLoading: !0 });
30
- }
31
- export {
32
- m as a,
33
- p as n
34
- };
35
- //# sourceMappingURL=notify-DJSOWTxv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notify-DJSOWTxv.js","sources":["../src/notification/notify.ts"],"sourcesContent":["import { Observable, tap, finalize, catchError } from 'rxjs'\r\nimport { $notify, NotificationOptions } from './notification-service'\r\n\r\nexport interface NotifyOptions {\r\n\t/**\r\n\t * Message to show while the operation is in progress\r\n\t */\r\n\tloadingMessage?: string\r\n\t/**\r\n\t * Message to show when the operation completes successfully\r\n\t */\r\n\tsuccessMessage?: string\r\n\t/**\r\n\t * Message to show when the operation fails (can be a function to format error)\r\n\t */\r\n\terrorMessage?: string | ((error: any) => string)\r\n\t/**\r\n\t * Type of notification for loading state\r\n\t */\r\n\tloadingType?: NotificationOptions['type']\r\n\t/**\r\n\t * Type of notification for success state\r\n\t */\r\n\tsuccessType?: NotificationOptions['type']\r\n\t/**\r\n\t * Type of notification for error state\r\n\t */\r\n\terrorType?: NotificationOptions['type']\r\n\t/**\r\n\t * Whether to auto-dismiss the loading notification on complete/error\r\n\t */\r\n\tautoDismissLoading?: boolean\r\n\t/**\r\n\t * Duration for success notification (ms). Use 0 for persistent\r\n\t */\r\n\tsuccessDuration?: number\r\n\t/**\r\n\t * Duration for error notification (ms). Use 0 for persistent\r\n\t */\r\n\terrorDuration?: number\r\n}\r\n\r\n/**\r\n * Wraps an Observable with notification lifecycle management.\r\n * Shows a loading notification with progress indicator, then auto-dismisses and shows success/error notification.\r\n * \r\n * @example\r\n * ```typescript\r\n * // Basic usage with progress indicator\r\n * someApiCall().pipe(\r\n * notify({\r\n * loadingMessage: 'Loading data...',\r\n * successMessage: 'Data loaded successfully!',\r\n * errorMessage: 'Failed to load data'\r\n * })\r\n * ).subscribe()\r\n * \r\n * // With custom durations\r\n * saveData().pipe(\r\n * notify({\r\n * loadingMessage: 'Saving...',\r\n * successMessage: 'Saved!',\r\n * successDuration: 5000, // Success stays for 5 seconds\r\n * errorMessage: (err) => `Save failed: ${err.message}`,\r\n * errorDuration: 0 // Error is persistent until dismissed\r\n * })\r\n * ).subscribe()\r\n * \r\n * // Full configuration example\r\n * uploadFile().pipe(\r\n * notify({\r\n * loadingMessage: 'Uploading file...',\r\n * loadingType: 'info',\r\n * successMessage: 'Upload complete!',\r\n * successType: 'success',\r\n * successDuration: 3000,\r\n * errorMessage: (err) => `Upload failed: ${err.message}`,\r\n * errorType: 'error',\r\n * errorDuration: 10000,\r\n * autoDismissLoading: true\r\n * })\r\n * ).subscribe()\r\n * ```\r\n */\r\nexport function notify<T>(options: NotifyOptions) {\r\n\treturn (source: Observable<T>): Observable<T> => {\r\n\t\tlet loadingNotificationId: string | undefined\r\n\r\n\t\t// Show loading notification if message provided\r\n\t\tif (options.loadingMessage) {\r\n\t\t\tloadingNotificationId = $notify.show({\r\n\t\t\t\tmessage: options.loadingMessage,\r\n\t\t\t\ttype: options.loadingType || 'info',\r\n\t\t\t\tduration: 0, // Persistent until dismissed\r\n\t\t\t\tshowProgress: true, // Show indeterminate progress by default\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn source.pipe(\r\n\t\t\ttap((value) => {\r\n\t\t\t\t// Check if the emitted value contains progress information\r\n\t\t\t\t// Common patterns: { progress: number }, { loaded: number, total: number }, etc.\r\n\t\t\t\tif (loadingNotificationId && typeof value === 'object' && value !== null) {\r\n\t\t\t\t\tlet progress: number | undefined\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Check for different progress patterns\r\n\t\t\t\t\tif ('progress' in value && typeof (value as any).progress === 'number') {\r\n\t\t\t\t\t\tprogress = (value as any).progress\r\n\t\t\t\t\t} else if ('loaded' in value && 'total' in value) {\r\n\t\t\t\t\t\tconst loaded = (value as any).loaded\r\n\t\t\t\t\t\tconst total = (value as any).total\r\n\t\t\t\t\t\tif (typeof loaded === 'number' && typeof total === 'number' && total > 0) {\r\n\t\t\t\t\t\t\tprogress = (loaded / total) * 100\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Update notification with progress if available\r\n\t\t\t\t\tif (progress !== undefined) {\r\n\t\t\t\t\t\t// We need to update the progress of the notification\r\n\t\t\t\t\t\t// For now, we'll update the message to show progress percentage\r\n\t\t\t\t\t\t$notify.update?.(loadingNotificationId, {\r\n\t\t\t\t\t\t\tmessage: `${options.loadingMessage} (${Math.round(progress)}%)`,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// Check if this is the final success emission (not a progress update)\r\n\t\t\t\t// Typically file uploads emit progress events then a final result\r\n\t\t\t\tconst isProgressUpdate = typeof value === 'object' && value !== null && \r\n\t\t\t\t\t('progress' in value || ('loaded' in value && 'total' in value))\r\n\t\t\t\t\r\n\t\t\t\tif (!isProgressUpdate) {\r\n\t\t\t\t\t// On successful final emission, dismiss loading and show success\r\n\t\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t\t\tloadingNotificationId = undefined\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (options.successMessage) {\r\n\t\t\t\t\t\t$notify.show({\r\n\t\t\t\t\t\t\tmessage: options.successMessage,\r\n\t\t\t\t\t\t\ttype: options.successType || 'success',\r\n\t\t\t\t\t\t\tduration: options.successDuration ?? 2000,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tcatchError((error) => {\r\n\t\t\t\t// On error, dismiss loading and show error\r\n\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t\tloadingNotificationId = undefined\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (options.errorMessage) {\r\n\t\t\t\t\tconst message = typeof options.errorMessage === 'function' \r\n\t\t\t\t\t\t? options.errorMessage(error)\r\n\t\t\t\t\t\t: options.errorMessage\r\n\t\t\t\t\t\r\n\t\t\t\t\t$notify.show({\r\n\t\t\t\t\t\tmessage,\r\n\t\t\t\t\t\ttype: options.errorType || 'error',\r\n\t\t\t\t\t\tduration: options.errorDuration ?? 3000,\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Re-throw the error to maintain the error flow\r\n\t\t\t\tthrow error\r\n\t\t\t}),\r\n\t\t\tfinalize(() => {\r\n\t\t\t\t// Clean up any remaining loading notification\r\n\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t)\r\n\t}\r\n}\r\n\r\n/**\r\n * Simplified version for API calls that just need loading and auto-dismiss.\r\n * Perfect for fire-and-forget operations where you want to show progress.\r\n * \r\n * @example\r\n * ```typescript\r\n * downloadData().pipe(\r\n * notifyProgress('Downloading...')\r\n * ).subscribe()\r\n * \r\n * // With custom messages\r\n * saveDocument().pipe(\r\n * notifyProgress('Saving document...', 'Document saved!', 'Save failed')\r\n * ).subscribe()\r\n * ```\r\n */\r\nexport function notifyProgress<T>(\r\n\tloadingMessage: string,\r\n\tsuccessMessage?: string,\r\n\terrorMessage?: string\r\n) {\r\n\treturn notify<T>({\r\n\t\tloadingMessage,\r\n\t\tsuccessMessage: successMessage || undefined,\r\n\t\terrorMessage: errorMessage || undefined,\r\n\t\tautoDismissLoading: true,\r\n\t})\r\n}"],"names":["notify","options","source","loadingNotificationId","loadingMessage","$notify","show","message","type","loadingType","duration","showProgress","pipe","tap","value","progress","loaded","total","update","Math","round","autoDismissLoading","dismiss","successMessage","successType","successDuration","catchError","error","errorMessage","errorType","errorDuration","finalize","notifyProgress"],"mappings":";;AAoFO,SAASA,EAAUC;AACzB,SAAQC,CAAAA,MAAAA;AACP,QAAIC;AAYJ,WATIF,EAAQG,mBACXD,IAAwBE,EAAQC,KAAK,EACpCC,SAASN,EAAQG,gBACjBI,MAAMP,EAAQQ,eAAe,QAC7BC,UAAU,GACVC,iBAAc,CAAA,IAITT,EAAOU,KACbC,EAAKC,OAAAA;AAGJ,UAAIX,KAA0C,OAAVW,KAAU,YAAYA,MAAU,MAAM;AACzE,YAAIC;AAGJ,YAAI,cAAcD,KAA4C,OAA3BA,EAAcC,YAAa,SAC7DA,CAAAA,IAAYD,EAAcC;AAAAA,iBAChB,YAAYD,KAAS,WAAWA,GAAO;AACjD,gBAAME,IAAUF,EAAcE,QACxBC,IAASH,EAAcG;AACP,iBAAXD,KAAW,YAA6B,OAAVC,KAAU,YAAYA,IAAQ,MACtEF,IAAYC,IAASC,IAAS;AAAA,QAEhC;AAAA,QAGIF,MAHJ,UAMCV,EAAQa,SAASf,GAAuB,EACvCI,SAAS,GAAGN,EAAQG,cAAAA,KAAmBe,KAAKC,MAAML,CAAAA,CAAAA,KAAAA,CAAAA;AAAAA,MAGrD;AAI0C,MAAA,OAAVD,KAAU,YAAYA,MAAU,SAC9D,cAAcA,KAAU,YAAYA,KAAS,WAAWA,OAIrDX,KAAyBF,EAAQoB,uBAAjClB,OACHE,EAAQiB,QAAQnB,CAAAA,GAChBA,IAAAA,SAGGF,EAAQsB,kBACXlB,EAAQC,KAAK,EACZC,SAASN,EAAQsB,gBACjBf,MAAMP,EAAQuB,eAAe,WAC7Bd,UAAUT,EAAQwB,mBAAmB,IAAA,CAAA;AAAA,IAAA,CAAA,GAKzCC,EAAYC;AAOX,UALIxB,KAAyBF,EAAQoB,uBAAjClB,OACHE,EAAQiB,QAAQnB,CAAAA,GAChBA,aAGGF,EAAQ2B,cAAc;AACzB,cAAMrB,IAA0C,OAAzBN,EAAQ2B,gBAAiB,aAC7C3B,EAAQ2B,aAAaD,CAAAA,IACrB1B,EAAQ2B;AAEXvB,QAAAA,EAAQC,KAAK,EACZC,SAAAA,GACAC,MAAMP,EAAQ4B,aAAa,SAC3BnB,UAAUT,EAAQ6B,iBAAiB,IAAA,CAAA;AAAA,MAErC;AAGA,YAAMH;AAAAA,IAAAA,CAAAA,GAEPI,EAAS,MAAA;AAEJ5B,MAAAA,KAAyBF,EAAQoB,uBAAjClB,MACHE,EAAQiB,QAAQnB;;;AAKrB;AAkBO,SAAS6B,EACf5B,GACAmB,GACAK;AAEA,SAAO5B,EAAU,EAChBI,gBAAAA,GACAmB,gBAAgBA,aAChBK,cAAcA,aACdP,oBAAAA,GAAoB,CAAA;AAEtB;"}
@@ -1,2 +0,0 @@
1
- "use strict";const a=require("rxjs"),i=require("./notification-service-DknbpqTt.cjs");function u(s){return t=>{let o;return s.loadingMessage&&(o=i.$notify.show({message:s.loadingMessage,type:s.loadingType||"info",duration:0,showProgress:!0})),t.pipe(a.tap(e=>{if(o&&typeof e=="object"&&e!==null){let r;if("progress"in e&&typeof e.progress=="number")r=e.progress;else if("loaded"in e&&"total"in e){const g=e.loaded,n=e.total;typeof g=="number"&&typeof n=="number"&&n>0&&(r=g/n*100)}r!==void 0&&i.$notify.update?.(o,{message:`${s.loadingMessage} (${Math.round(r)}%)`})}typeof e=="object"&&e!==null&&("progress"in e||"loaded"in e&&"total"in e)||(o&&s.autoDismissLoading!==!1&&(i.$notify.dismiss(o),o=void 0),s.successMessage&&i.$notify.show({message:s.successMessage,type:s.successType||"success",duration:s.successDuration??2e3}))}),a.catchError(e=>{if(o&&s.autoDismissLoading!==!1&&(i.$notify.dismiss(o),o=void 0),s.errorMessage){const r=typeof s.errorMessage=="function"?s.errorMessage(e):s.errorMessage;i.$notify.show({message:r,type:s.errorType||"error",duration:s.errorDuration??3e3})}throw e}),a.finalize(()=>{o&&s.autoDismissLoading!==!1&&i.$notify.dismiss(o)}))}}exports.notify=u,exports.notifyProgress=function(s,t,o){return u({loadingMessage:s,successMessage:t||void 0,errorMessage:o||void 0,autoDismissLoading:!0})};
2
- //# sourceMappingURL=notify-DickIEHW.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notify-DickIEHW.cjs","sources":["../src/notification/notify.ts"],"sourcesContent":["import { Observable, tap, finalize, catchError } from 'rxjs'\r\nimport { $notify, NotificationOptions } from './notification-service'\r\n\r\nexport interface NotifyOptions {\r\n\t/**\r\n\t * Message to show while the operation is in progress\r\n\t */\r\n\tloadingMessage?: string\r\n\t/**\r\n\t * Message to show when the operation completes successfully\r\n\t */\r\n\tsuccessMessage?: string\r\n\t/**\r\n\t * Message to show when the operation fails (can be a function to format error)\r\n\t */\r\n\terrorMessage?: string | ((error: any) => string)\r\n\t/**\r\n\t * Type of notification for loading state\r\n\t */\r\n\tloadingType?: NotificationOptions['type']\r\n\t/**\r\n\t * Type of notification for success state\r\n\t */\r\n\tsuccessType?: NotificationOptions['type']\r\n\t/**\r\n\t * Type of notification for error state\r\n\t */\r\n\terrorType?: NotificationOptions['type']\r\n\t/**\r\n\t * Whether to auto-dismiss the loading notification on complete/error\r\n\t */\r\n\tautoDismissLoading?: boolean\r\n\t/**\r\n\t * Duration for success notification (ms). Use 0 for persistent\r\n\t */\r\n\tsuccessDuration?: number\r\n\t/**\r\n\t * Duration for error notification (ms). Use 0 for persistent\r\n\t */\r\n\terrorDuration?: number\r\n}\r\n\r\n/**\r\n * Wraps an Observable with notification lifecycle management.\r\n * Shows a loading notification with progress indicator, then auto-dismisses and shows success/error notification.\r\n * \r\n * @example\r\n * ```typescript\r\n * // Basic usage with progress indicator\r\n * someApiCall().pipe(\r\n * notify({\r\n * loadingMessage: 'Loading data...',\r\n * successMessage: 'Data loaded successfully!',\r\n * errorMessage: 'Failed to load data'\r\n * })\r\n * ).subscribe()\r\n * \r\n * // With custom durations\r\n * saveData().pipe(\r\n * notify({\r\n * loadingMessage: 'Saving...',\r\n * successMessage: 'Saved!',\r\n * successDuration: 5000, // Success stays for 5 seconds\r\n * errorMessage: (err) => `Save failed: ${err.message}`,\r\n * errorDuration: 0 // Error is persistent until dismissed\r\n * })\r\n * ).subscribe()\r\n * \r\n * // Full configuration example\r\n * uploadFile().pipe(\r\n * notify({\r\n * loadingMessage: 'Uploading file...',\r\n * loadingType: 'info',\r\n * successMessage: 'Upload complete!',\r\n * successType: 'success',\r\n * successDuration: 3000,\r\n * errorMessage: (err) => `Upload failed: ${err.message}`,\r\n * errorType: 'error',\r\n * errorDuration: 10000,\r\n * autoDismissLoading: true\r\n * })\r\n * ).subscribe()\r\n * ```\r\n */\r\nexport function notify<T>(options: NotifyOptions) {\r\n\treturn (source: Observable<T>): Observable<T> => {\r\n\t\tlet loadingNotificationId: string | undefined\r\n\r\n\t\t// Show loading notification if message provided\r\n\t\tif (options.loadingMessage) {\r\n\t\t\tloadingNotificationId = $notify.show({\r\n\t\t\t\tmessage: options.loadingMessage,\r\n\t\t\t\ttype: options.loadingType || 'info',\r\n\t\t\t\tduration: 0, // Persistent until dismissed\r\n\t\t\t\tshowProgress: true, // Show indeterminate progress by default\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn source.pipe(\r\n\t\t\ttap((value) => {\r\n\t\t\t\t// Check if the emitted value contains progress information\r\n\t\t\t\t// Common patterns: { progress: number }, { loaded: number, total: number }, etc.\r\n\t\t\t\tif (loadingNotificationId && typeof value === 'object' && value !== null) {\r\n\t\t\t\t\tlet progress: number | undefined\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Check for different progress patterns\r\n\t\t\t\t\tif ('progress' in value && typeof (value as any).progress === 'number') {\r\n\t\t\t\t\t\tprogress = (value as any).progress\r\n\t\t\t\t\t} else if ('loaded' in value && 'total' in value) {\r\n\t\t\t\t\t\tconst loaded = (value as any).loaded\r\n\t\t\t\t\t\tconst total = (value as any).total\r\n\t\t\t\t\t\tif (typeof loaded === 'number' && typeof total === 'number' && total > 0) {\r\n\t\t\t\t\t\t\tprogress = (loaded / total) * 100\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Update notification with progress if available\r\n\t\t\t\t\tif (progress !== undefined) {\r\n\t\t\t\t\t\t// We need to update the progress of the notification\r\n\t\t\t\t\t\t// For now, we'll update the message to show progress percentage\r\n\t\t\t\t\t\t$notify.update?.(loadingNotificationId, {\r\n\t\t\t\t\t\t\tmessage: `${options.loadingMessage} (${Math.round(progress)}%)`,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// Check if this is the final success emission (not a progress update)\r\n\t\t\t\t// Typically file uploads emit progress events then a final result\r\n\t\t\t\tconst isProgressUpdate = typeof value === 'object' && value !== null && \r\n\t\t\t\t\t('progress' in value || ('loaded' in value && 'total' in value))\r\n\t\t\t\t\r\n\t\t\t\tif (!isProgressUpdate) {\r\n\t\t\t\t\t// On successful final emission, dismiss loading and show success\r\n\t\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t\t\tloadingNotificationId = undefined\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (options.successMessage) {\r\n\t\t\t\t\t\t$notify.show({\r\n\t\t\t\t\t\t\tmessage: options.successMessage,\r\n\t\t\t\t\t\t\ttype: options.successType || 'success',\r\n\t\t\t\t\t\t\tduration: options.successDuration ?? 2000,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tcatchError((error) => {\r\n\t\t\t\t// On error, dismiss loading and show error\r\n\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t\tloadingNotificationId = undefined\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (options.errorMessage) {\r\n\t\t\t\t\tconst message = typeof options.errorMessage === 'function' \r\n\t\t\t\t\t\t? options.errorMessage(error)\r\n\t\t\t\t\t\t: options.errorMessage\r\n\t\t\t\t\t\r\n\t\t\t\t\t$notify.show({\r\n\t\t\t\t\t\tmessage,\r\n\t\t\t\t\t\ttype: options.errorType || 'error',\r\n\t\t\t\t\t\tduration: options.errorDuration ?? 3000,\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Re-throw the error to maintain the error flow\r\n\t\t\t\tthrow error\r\n\t\t\t}),\r\n\t\t\tfinalize(() => {\r\n\t\t\t\t// Clean up any remaining loading notification\r\n\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t)\r\n\t}\r\n}\r\n\r\n/**\r\n * Simplified version for API calls that just need loading and auto-dismiss.\r\n * Perfect for fire-and-forget operations where you want to show progress.\r\n * \r\n * @example\r\n * ```typescript\r\n * downloadData().pipe(\r\n * notifyProgress('Downloading...')\r\n * ).subscribe()\r\n * \r\n * // With custom messages\r\n * saveDocument().pipe(\r\n * notifyProgress('Saving document...', 'Document saved!', 'Save failed')\r\n * ).subscribe()\r\n * ```\r\n */\r\nexport function notifyProgress<T>(\r\n\tloadingMessage: string,\r\n\tsuccessMessage?: string,\r\n\terrorMessage?: string\r\n) {\r\n\treturn notify<T>({\r\n\t\tloadingMessage,\r\n\t\tsuccessMessage: successMessage || undefined,\r\n\t\terrorMessage: errorMessage || undefined,\r\n\t\tautoDismissLoading: true,\r\n\t})\r\n}"],"names":["notify","options","source","loadingNotificationId","loadingMessage","$notify","show","message","type","loadingType","duration","showProgress","pipe","tap","value","progress","loaded","total","update","Math","round","autoDismissLoading","dismiss","successMessage","successType","successDuration","catchError","error","errorMessage","errorType","errorDuration","finalize"],"mappings":"sFAoFO,SAASA,EAAUC,EAAAA,CACzB,OAAQC,IACP,IAAIC,EAYJ,OATIF,EAAQG,iBACXD,EAAwBE,EAAAA,QAAQC,KAAK,CACpCC,QAASN,EAAQG,eACjBI,KAAMP,EAAQQ,aAAe,OAC7BC,SAAU,EACVC,aAAAA,EAAc,CAAA,GAITT,EAAOU,KACbC,EAAAA,IAAKC,IAGJ,GAAIX,UAAgCW,GAAU,UAAYA,IAAU,KAAM,CACzE,IAAIC,EAGJ,GAAI,aAAcD,UAAiBA,EAAcC,UAAa,SAC7DA,EAAYD,EAAcC,iBAChB,WAAYD,GAAS,UAAWA,EAAO,CACjD,MAAME,EAAUF,EAAcE,OACxBC,EAASH,EAAcG,aAClBD,GAAW,UAA6B,OAAVC,GAAU,UAAYA,EAAQ,IACtEF,EAAYC,EAASC,EAAS,IAEhC,CAGIF,YAGHV,EAAAA,QAAQa,SAASf,EAAuB,CACvCI,QAAS,GAAGN,EAAQG,cAAAA,KAAmBe,KAAKC,MAAML,CAAAA,CAAAA,IAAAA,CAAAA,CAGrD,CAI0C,OAAVD,GAAU,UAAYA,IAAU,OAC9D,aAAcA,GAAU,WAAYA,GAAS,UAAWA,KAIrDX,GAAyBF,EAAQoB,qBAAjClB,KACHE,EAAAA,QAAQiB,QAAQnB,CAAAA,EAChBA,EAAAA,QAGGF,EAAQsB,gBACXlB,EAAAA,QAAQC,KAAK,CACZC,QAASN,EAAQsB,eACjBf,KAAMP,EAAQuB,aAAe,UAC7Bd,SAAUT,EAAQwB,iBAAmB,GAAA,CAAA,EAAA,CAAA,EAKzCC,EAAAA,WAAYC,GAAAA,CAOX,GALIxB,GAAyBF,EAAQoB,qBAAjClB,KACHE,EAAAA,QAAQiB,QAAQnB,CAAAA,EAChBA,EAAAA,QAGGF,EAAQ2B,aAAc,CACzB,MAAMrB,EAA0C,OAAzBN,EAAQ2B,cAAiB,WAC7C3B,EAAQ2B,aAAaD,GACrB1B,EAAQ2B,aAEXvB,EAAAA,QAAQC,KAAK,CACZC,QAAAA,EACAC,KAAMP,EAAQ4B,WAAa,QAC3BnB,SAAUT,EAAQ6B,eAAiB,GAAA,CAAA,CAErC,CAGA,MAAMH,CAAAA,CAAAA,EAEPI,EAAAA,SAAS,IAAA,CAEJ5B,GAAyBF,EAAQoB,qBAAjClB,IACHE,EAAAA,QAAQiB,QAAQnB,MAKrB,yCAkBO,SACNC,EACAmB,EACAK,GAEA,OAAO5B,EAAU,CAChBI,eAAAA,EACAmB,eAAgBA,GAAAA,OAChBK,aAAcA,GAAAA,OACdP,mBAAAA,EAAoB,CAAA,CAEtB"}
@@ -1,2 +0,0 @@
1
- "use strict";exports.Numbers=class{roundNumber(t,n=2){const r=Math.pow(10,n);return Math.round(t*r)/r}formatNumber(t,n="de-DE",r={}){return new Intl.NumberFormat(n,r).format(t)}parseToPureNumber(t,n=","){const r=t.replace(n,".");return parseFloat(r)}doIt(t,n=2,r="de-DE",u={}){const o=this.roundNumber(t,n);return this.formatNumber(o,r,u)}formatCurrency(t,n="€"){return`${n}${this.doIt(t)}`}formatDelta(t,n="€"){return`${t>0?"↑":t<0?"↓":"→"} ${n}${this.doIt(Math.abs(t))}`}getDeltaClass(t){return t>0?"text-error-default":t<0?"text-primary-default":"text-neutral"}toMixedFraction(t,n=16,r=4){const u=t<0;t=Math.abs(t);const o=Math.floor(t);let d=t-o;if(d<1/Math.pow(10,n))return u?`-${o}`:`${o}`;const{numerator:s,denominator:$}=this.decimalToFraction(d,n,r);return o===0?u?`-${s}/${$}`:`${s}/${$}`:u?`-${o} ${s}/${$}`:`${o} ${s}/${$}`}decimalToFraction(t,n,r=4){if(t===0)return{numerator:0,denominator:1};let u=1/0,o=0,d=1;const s=[];r>=5&&s.push({n:1,d:5},{n:2,d:5},{n:3,d:5},{n:4,d:5}),r>=6&&s.push({n:1,d:6},{n:5,d:6}),r>=8&&s.push({n:1,d:8},{n:3,d:8},{n:5,d:8},{n:7,d:8}),r>=10&&s.push({n:1,d:10},{n:3,d:10},{n:7,d:10},{n:9,d:10}),r>=12&&s.push({n:1,d:12},{n:5,d:12},{n:7,d:12},{n:11,d:12}),r>=16&&s.push({n:1,d:16},{n:3,d:16},{n:5,d:16},{n:7,d:16},{n:9,d:16},{n:11,d:16},{n:13,d:16},{n:15,d:16});const $=[{n:1,d:2},{n:1,d:3},{n:2,d:3},{n:1,d:4},{n:3,d:4},...s];for(const e of $)if(e.d<=r){const c=Math.abs(t-e.n/e.d);if(c<u&&(u=c,o=e.n,d=e.d,c<1/Math.pow(10,n)))return{numerator:e.n,denominator:e.d}}for(let e=1;e<=r;e++){const c=Math.round(t*e),i=Math.abs(t-c/e);i<u&&(u=i,o=c,d=e)}if(u>1/Math.pow(10,n/2)&&r>4){let e=1,c=0,i=0,a=1,h=t;do{let p=Math.floor(h),l=e;if(e=p*e+c,c=l,l=i,i=p*i+a,a=l,h=1/(h-p),Math.abs(t-e/i)<1/Math.pow(10,n)||i>r)return i>r?{numerator:o,denominator:d}:{numerator:e,denominator:i}}while(h!==1/0);o=e,d=i}const m=this.findGCD(o,d);return{numerator:o/m,denominator:d/m}}findGCD(t,n){return n===0?t:this.findGCD(n,t%n)}formatMixedFraction(t,n="ascii",r=16,u=4){const o=this.toMixedFraction(t,r,u);if(n==="ascii")return o;const d=o.startsWith("-"),s=d?o.substring(1):o,$=s.includes(" ");if(!s.includes("/"))return o;let m="",e=s;if($){const a=s.split(" ");m=a[0],e=a[1]}const[c,i]=e.split("/");if(n==="unicode"){const a=this.getUnicodeFraction(parseInt(c),parseInt(i));return a?d?`-${m}${$?" ":""}${a}`:`${m}${$?" ":""}${a}`:o}if(n==="superscript"){const a=this.toSuperscript(c),h=this.toSubscript(i);return $?d?`-${m} ${a}⁄${h}`:`${m} ${a}⁄${h}`:d?`-${a}⁄${h}`:`${a}⁄${h}`}return o}getUnicodeFraction(t,n){return{"1/4":"¼","1/2":"½","3/4":"¾","1/3":"⅓","2/3":"⅔","1/5":"⅕","2/5":"⅖","3/5":"⅗","4/5":"⅘","1/6":"⅙","5/6":"⅚","1/7":"⅐","1/8":"⅛","3/8":"⅜","5/8":"⅝","7/8":"⅞","1/9":"⅑","1/10":"⅒"}[`${t}/${n}`]||null}toSuperscript(t){const n={0:"⁰",1:"¹",2:"²",3:"³",4:"⁴",5:"⁵",6:"⁶",7:"⁷",8:"⁸",9:"⁹","-":"⁻"};return t.split("").map(r=>n[r]||r).join("")}toSubscript(t){const n={0:"₀",1:"₁",2:"₂",3:"₃",4:"₄",5:"₅",6:"₆",7:"₇",8:"₈",9:"₉","-":"₋"};return t.split("").map(r=>n[r]||r).join("")}};
2
- //# sourceMappingURL=number-B7aCRYnH.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"number-B7aCRYnH.cjs","sources":["../src/utils/number.ts"],"sourcesContent":["export class Numbers {\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 * @param {number} number - The number to format.\n * @param {string} [locale='de-DE'] - The locale string (e.g., 'de-DE' for German).\n * @param {Intl.NumberFormatOptions} [options={}] - Additional formatting options.\n * @returns {string} - The formatted number as a string.\n */\n formatNumber(\n number: number,\n locale: string = \"de-DE\",\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 * @param {number} number - The number to process.\n * @param {number} [decimalPlaces=2] - The number of decimal places to round to.\n * @param {string} [locale='de-DE'] - The locale string.\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 = \"de-DE\",\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"],"names":["number","decimalPlaces","factor","Math","pow","round","locale","options","Intl","NumberFormat","format","numberString","decimalSeparator","normalizedString","replace","parseFloat","roundedNumber","this","roundNumber","formatNumber","amount","currency","doIt","delta","abs","precision","maxDenominator","isNegative","wholePart","floor","decimalPart","numerator","denominator","decimalToFraction","decimal","bestError","Infinity","bestNumerator","bestDenominator","additionalFractions","push","n","d","allFractions","frac","error","n1","n2","d1","d2","b","a","aux","gcd","findGCD","basicFraction","toMixedFraction","startsWith","withoutSign","substring","hasMixedPart","includes","fractionPart","parts","split","unicodeFraction","getUnicodeFraction","parseInt","superNumerator","toSuperscript","subDenominator","toSubscript","str","superscriptMap","map","char","join","subscriptMap"],"mappings":"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"}