@mhmo91/schmancy 0.8.6 → 0.9.3
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.
- package/README.md +54 -1
- package/ai/INDEX.md +321 -0
- package/ai/animation.md +64 -0
- package/ai/area.md +170 -237
- package/ai/audio.md +50 -222
- package/ai/autocomplete.md +44 -162
- package/ai/avatar.md +47 -178
- package/ai/badge.md +41 -108
- package/ai/boat.md +35 -41
- package/ai/busy.md +25 -184
- package/ai/button.md +52 -150
- package/ai/card.md +42 -215
- package/ai/charts.md +93 -0
- package/ai/checkbox.md +32 -135
- package/ai/chips.md +73 -383
- package/ai/code-highlight.md +33 -226
- package/ai/connectivity.md +36 -0
- package/ai/content-drawer.md +65 -232
- package/ai/date-range-inline.md +40 -258
- package/ai/date-range.md +43 -198
- package/ai/delay.md +31 -139
- package/ai/details.md +48 -453
- package/ai/dialog.md +55 -164
- package/ai/directives.md +258 -405
- package/ai/discovery.md +67 -0
- package/ai/divider.md +15 -137
- package/ai/dropdown.md +44 -235
- package/ai/expand.md +63 -0
- package/ai/extra.md +59 -0
- package/ai/float.md +14 -0
- package/ai/form.md +41 -137
- package/ai/icons.md +31 -235
- package/ai/iframe.md +44 -0
- package/ai/input.md +50 -210
- package/ai/json.md +33 -0
- package/ai/layout.md +45 -169
- package/ai/lightbox.md +25 -370
- package/ai/list.md +51 -130
- package/ai/mailbox.md +80 -508
- package/ai/map.md +47 -226
- package/ai/menu.md +25 -134
- package/ai/mixins.md +201 -0
- package/ai/nav-drawer.md +30 -184
- package/ai/navigation-bar.md +27 -184
- package/ai/navigation-rail.md +62 -630
- package/ai/notification.md +49 -183
- package/ai/option.md +30 -160
- package/ai/page.md +42 -0
- package/ai/progress.md +26 -65
- package/ai/qr-scanner.md +51 -0
- package/ai/radio-group.md +45 -189
- package/ai/range.md +47 -0
- package/ai/rxjs-utils.md +60 -0
- package/ai/select.md +49 -209
- package/ai/sheet.md +74 -506
- package/ai/slider.md +30 -214
- package/ai/steps.md +30 -392
- package/ai/store.md +173 -251
- package/ai/surface.md +58 -245
- package/ai/table.md +56 -330
- package/ai/tabs.md +31 -176
- package/ai/teleport.md +35 -177
- package/ai/textarea.md +48 -232
- package/ai/theme-button.md +16 -163
- package/ai/theme.md +40 -1089
- package/ai/tooltip.md +35 -146
- package/ai/tree.md +45 -271
- package/ai/typewriter.md +28 -317
- package/ai/typography.md +43 -296
- package/ai/utils.md +95 -0
- package/ai/window.md +67 -0
- package/custom-elements.json +10955 -0
- package/dist/ai/INDEX.md +321 -0
- package/dist/ai/animation.md +64 -0
- package/dist/ai/area.md +170 -237
- package/dist/ai/audio.md +50 -222
- package/dist/ai/autocomplete.md +44 -162
- package/dist/ai/avatar.md +47 -178
- package/dist/ai/badge.md +41 -108
- package/dist/ai/boat.md +35 -41
- package/dist/ai/busy.md +25 -184
- package/dist/ai/button.md +52 -150
- package/dist/ai/card.md +42 -215
- package/dist/ai/charts.md +93 -0
- package/dist/ai/checkbox.md +32 -135
- package/dist/ai/chips.md +73 -383
- package/dist/ai/code-highlight.md +33 -226
- package/dist/ai/connectivity.md +36 -0
- package/dist/ai/content-drawer.md +65 -232
- package/dist/ai/date-range-inline.md +40 -258
- package/dist/ai/date-range.md +43 -198
- package/dist/ai/delay.md +31 -139
- package/dist/ai/details.md +48 -453
- package/dist/ai/dialog.md +55 -164
- package/dist/ai/directives.md +258 -405
- package/dist/ai/discovery.md +67 -0
- package/dist/ai/divider.md +15 -137
- package/dist/ai/dropdown.md +44 -235
- package/dist/ai/expand.md +63 -0
- package/dist/ai/extra.md +59 -0
- package/dist/ai/float.md +14 -0
- package/dist/ai/form.md +41 -137
- package/dist/ai/icons.md +31 -235
- package/dist/ai/iframe.md +44 -0
- package/dist/ai/input.md +50 -210
- package/dist/ai/json.md +33 -0
- package/dist/ai/layout.md +45 -169
- package/dist/ai/lightbox.md +25 -370
- package/dist/ai/list.md +51 -130
- package/dist/ai/mailbox.md +80 -508
- package/dist/ai/map.md +47 -226
- package/dist/ai/menu.md +25 -134
- package/dist/ai/mixins.md +201 -0
- package/dist/ai/nav-drawer.md +30 -184
- package/dist/ai/navigation-bar.md +27 -184
- package/dist/ai/navigation-rail.md +62 -630
- package/dist/ai/notification.md +49 -183
- package/dist/ai/option.md +30 -160
- package/dist/ai/page.md +42 -0
- package/dist/ai/progress.md +26 -65
- package/dist/ai/qr-scanner.md +51 -0
- package/dist/ai/radio-group.md +45 -189
- package/dist/ai/range.md +47 -0
- package/dist/ai/rxjs-utils.md +60 -0
- package/dist/ai/select.md +49 -209
- package/dist/ai/sheet.md +74 -506
- package/dist/ai/slider.md +30 -214
- package/dist/ai/steps.md +30 -392
- package/dist/ai/store.md +173 -251
- package/dist/ai/surface.md +58 -245
- package/dist/ai/table.md +56 -330
- package/dist/ai/tabs.md +31 -176
- package/dist/ai/teleport.md +35 -177
- package/dist/ai/textarea.md +48 -232
- package/dist/ai/theme-button.md +16 -163
- package/dist/ai/theme.md +40 -1089
- package/dist/ai/tooltip.md +35 -146
- package/dist/ai/tree.md +45 -271
- package/dist/ai/typewriter.md +28 -317
- package/dist/ai/typography.md +43 -296
- package/dist/ai/utils.md +95 -0
- package/dist/ai/window.md +67 -0
- package/dist/animation-BK-8BwY8.js +173 -0
- package/dist/animation-BK-8BwY8.js.map +1 -0
- package/dist/animation-CO_Csq84.cjs +16 -0
- package/dist/animation-CO_Csq84.cjs.map +1 -0
- package/dist/area-CC8fUnra.js +590 -0
- package/dist/area-CC8fUnra.js.map +1 -0
- package/dist/area-wnWUAHEn.cjs +12 -0
- package/dist/area-wnWUAHEn.cjs.map +1 -0
- package/dist/area.cjs +1 -2
- package/dist/area.js +2 -29
- package/dist/audio-DtYYgzYD.cjs +1 -0
- package/dist/audio-DtYYgzYD.cjs.map +1 -0
- package/dist/audio-kz8UgPTO.js +335 -0
- package/dist/audio-kz8UgPTO.js.map +1 -0
- package/dist/audio.cjs +1 -2
- package/dist/audio.js +3 -9
- package/dist/autocomplete-B2Z3WK_7.cjs +111 -0
- package/dist/autocomplete-B2Z3WK_7.cjs.map +1 -0
- package/dist/autocomplete-CJ7YgtKN.js +378 -0
- package/dist/autocomplete-CJ7YgtKN.js.map +1 -0
- package/dist/autocomplete.cjs +1 -2
- package/dist/autocomplete.js +1 -2
- package/dist/badge.cjs +1 -2
- package/dist/badge.js +2 -6
- package/dist/boat-B57_4TzJ.cjs +80 -0
- package/dist/boat-B57_4TzJ.cjs.map +1 -0
- package/dist/boat-C9eU6NO-.js +347 -0
- package/dist/boat-C9eU6NO-.js.map +1 -0
- package/dist/boat.cjs +1 -2
- package/dist/boat.js +2 -5
- package/dist/busy--6oimtop.cjs +134 -0
- package/dist/busy--6oimtop.cjs.map +1 -0
- package/dist/busy-CGZXy0h-.js +167 -0
- package/dist/busy-CGZXy0h-.js.map +1 -0
- package/dist/busy.cjs +1 -2
- package/dist/busy.js +1 -2
- package/dist/button.cjs +113 -2
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +398 -5
- package/dist/button.js.map +1 -1
- package/dist/card-BGJ0Hb1O.cjs +177 -0
- package/dist/card-BGJ0Hb1O.cjs.map +1 -0
- package/dist/card-C-ee-l5O.js +284 -0
- package/dist/card-C-ee-l5O.js.map +1 -0
- package/dist/card.cjs +1 -2
- package/dist/card.js +1 -2
- package/dist/charts.cjs +112 -2
- package/dist/charts.cjs.map +1 -1
- package/dist/charts.js +368 -8
- package/dist/charts.js.map +1 -1
- package/dist/checkbox-DuYaKoDZ.cjs +39 -0
- package/dist/checkbox-DuYaKoDZ.cjs.map +1 -0
- package/dist/checkbox-FRcorDrD.js +610 -0
- package/dist/checkbox-FRcorDrD.js.map +1 -0
- package/dist/checkbox.cjs +1 -2
- package/dist/checkbox.js +2 -5
- package/dist/chips-BpA0A-qr.cjs +253 -0
- package/dist/chips-BpA0A-qr.cjs.map +1 -0
- package/dist/chips-CyzNbKJD.js +645 -0
- package/dist/chips-CyzNbKJD.js.map +1 -0
- package/dist/chips.cjs +1 -2
- package/dist/chips.js +3 -10
- package/dist/chunk-BCfY8kxB.cjs +1 -0
- package/dist/chunk-C_1VqBVD.js +11 -0
- package/dist/code-highlight-C7O9ltXm.js +290 -0
- package/dist/code-highlight-C7O9ltXm.js.map +1 -0
- package/dist/code-highlight-DsBdSQBG.cjs +190 -0
- package/dist/code-highlight-DsBdSQBG.cjs.map +1 -0
- package/dist/code-highlight.cjs +1 -2
- package/dist/code-highlight.js +2 -7
- package/dist/components-CkMvOiTR.js +730 -0
- package/dist/components-CkMvOiTR.js.map +1 -0
- package/dist/components-dDI3xeIf.cjs +73 -0
- package/dist/components-dDI3xeIf.cjs.map +1 -0
- package/dist/components.cjs +1 -2
- package/dist/components.js +2 -5
- package/dist/connectivity.cjs +59 -0
- package/dist/connectivity.cjs.map +1 -0
- package/dist/connectivity.js +86 -0
- package/dist/connectivity.js.map +1 -0
- package/dist/content-drawer.cjs +1 -2
- package/dist/content-drawer.js +2 -13
- package/dist/cursor-glow-Ah7VXSj7.js +46 -0
- package/dist/cursor-glow-Ah7VXSj7.js.map +1 -0
- package/dist/cursor-glow-DtSy_PJd.cjs +1 -0
- package/dist/cursor-glow-DtSy_PJd.cjs.map +1 -0
- package/dist/date-range-70zhLUKE.cjs +131 -0
- package/dist/date-range-70zhLUKE.cjs.map +1 -0
- package/dist/date-range-BrN_Bs6_.js +946 -0
- package/dist/date-range-BrN_Bs6_.js.map +1 -0
- package/dist/date-range-inline-CPzD-tIv.cjs +43 -0
- package/dist/date-range-inline-CPzD-tIv.cjs.map +1 -0
- package/dist/date-range-inline-Cp294DxR.js +267 -0
- package/dist/date-range-inline-Cp294DxR.js.map +1 -0
- package/dist/date-range-inline.cjs +1 -2
- package/dist/date-range-inline.js +2 -5
- package/dist/date-range.cjs +1 -2
- package/dist/date-range.js +2 -6
- package/dist/delay-COcAkBqB.cjs +9 -0
- package/dist/delay-COcAkBqB.cjs.map +1 -0
- package/dist/delay-IV0Swce2.js +346 -0
- package/dist/delay-IV0Swce2.js.map +1 -0
- package/dist/delay.cjs +1 -2
- package/dist/delay.js +2 -6
- package/dist/details-CuKmr3Qw.js +293 -0
- package/dist/details-CuKmr3Qw.js.map +1 -0
- package/dist/details-DgWkPqmt.cjs +168 -0
- package/dist/details-DgWkPqmt.cjs.map +1 -0
- package/dist/details.cjs +1 -2
- package/dist/details.js +2 -5
- package/dist/dialog-service-NZEvyEK-.js +193 -0
- package/dist/dialog-service-NZEvyEK-.js.map +1 -0
- package/dist/dialog-service-VnW4gkmE.cjs +1 -0
- package/dist/dialog-service-VnW4gkmE.cjs.map +1 -0
- package/dist/dialog.cjs +82 -2
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +396 -9
- package/dist/dialog.js.map +1 -1
- package/dist/directives.cjs +108 -2
- package/dist/directives.cjs.map +1 -1
- package/dist/directives.js +1362 -14
- package/dist/directives.js.map +1 -1
- package/dist/discovery.cjs +1 -2
- package/dist/discovery.cjs.map +1 -1
- package/dist/discovery.js +61 -6
- package/dist/discovery.js.map +1 -1
- package/dist/divider-BWoUbfgZ.js +87 -0
- package/dist/divider-BWoUbfgZ.js.map +1 -0
- package/dist/divider-BghtrMbn.cjs +57 -0
- package/dist/divider-BghtrMbn.cjs.map +1 -0
- package/dist/divider.cjs +1 -2
- package/dist/divider.js +1 -2
- package/dist/dropdown.cjs +57 -2
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js +160 -5
- package/dist/dropdown.js.map +1 -1
- package/dist/expand-CJU9m4ga.js +336 -0
- package/dist/expand-CJU9m4ga.js.map +1 -0
- package/dist/expand-XyDE5SsO.cjs +141 -0
- package/dist/expand-XyDE5SsO.cjs.map +1 -0
- package/dist/expand.cjs +1 -0
- package/dist/expand.js +2 -0
- package/dist/extra-BxXFmW1w.js +3435 -0
- package/dist/extra-BxXFmW1w.js.map +1 -0
- package/dist/extra-CsrRKKqE.cjs +31 -0
- package/dist/extra-CsrRKKqE.cjs.map +1 -0
- package/dist/extra.cjs +1 -2
- package/dist/extra.js +2 -6
- package/dist/float-BD86t_NU.js +5 -0
- package/dist/float-BD86t_NU.js.map +1 -0
- package/dist/float-DBv1FINW.cjs +1 -0
- package/dist/float-DBv1FINW.cjs.map +1 -0
- package/dist/float.cjs +1 -0
- package/dist/float.js +2 -0
- package/dist/flow-Bbwn6dRN.cjs +1 -0
- package/dist/flow-Bbwn6dRN.cjs.map +1 -0
- package/dist/flow-CUj0fDT_.js +386 -0
- package/dist/flow-CUj0fDT_.js.map +1 -0
- package/dist/form-Cp5-I_ZV.js +270 -0
- package/dist/form-Cp5-I_ZV.js.map +1 -0
- package/dist/form-D0bIeDWT.cjs +1 -0
- package/dist/form-D0bIeDWT.cjs.map +1 -0
- package/dist/form.cjs +1 -2
- package/dist/form.js +1 -2
- package/dist/hashContent-DYM21p6t.js +6 -0
- package/dist/hashContent-DYM21p6t.js.map +1 -0
- package/dist/hashContent-DaeGmY-p.cjs +1 -0
- package/dist/hashContent-DaeGmY-p.cjs.map +1 -0
- package/dist/icons-BpU0_l92.js +161 -0
- package/dist/icons-BpU0_l92.js.map +1 -0
- package/dist/icons-D8w_20mO.cjs +52 -0
- package/dist/icons-D8w_20mO.cjs.map +1 -0
- package/dist/icons.cjs +1 -2
- package/dist/icons.js +1 -2
- package/dist/iframe-BjwxA2Pg.cjs +24 -0
- package/dist/iframe-BjwxA2Pg.cjs.map +1 -0
- package/dist/iframe-tY1GY5g1.js +44 -0
- package/dist/iframe-tY1GY5g1.js.map +1 -0
- package/dist/iframe.cjs +1 -0
- package/dist/iframe.js +2 -0
- package/dist/index.cjs +1 -2
- package/dist/index.js +69 -285
- package/dist/input-BnfTpRN9.js +364 -0
- package/dist/input-BnfTpRN9.js.map +1 -0
- package/dist/input-BwxwognS.cjs +51 -0
- package/dist/input-BwxwognS.cjs.map +1 -0
- package/dist/input-chip-CkM2aYmO.js +301 -0
- package/dist/input-chip-CkM2aYmO.js.map +1 -0
- package/dist/input-chip-MjOwX5EY.cjs +146 -0
- package/dist/input-chip-MjOwX5EY.cjs.map +1 -0
- package/dist/input.cjs +1 -2
- package/dist/input.js +2 -6
- package/dist/intersection-BPLpqYEd.js +12 -0
- package/dist/intersection-BPLpqYEd.js.map +1 -0
- package/dist/intersection-CZpaIHeT.cjs +1 -0
- package/dist/intersection-CZpaIHeT.cjs.map +1 -0
- package/dist/json.cjs +11 -2
- package/dist/json.cjs.map +1 -1
- package/dist/json.js +40 -4
- package/dist/json.js.map +1 -1
- package/dist/layout-4C-6_cre.cjs +1 -0
- package/dist/layout-4C-6_cre.cjs.map +1 -0
- package/dist/layout-BV0EeyUS.cjs +17 -0
- package/dist/layout-BV0EeyUS.cjs.map +1 -0
- package/dist/layout-CJSlZlFL.js +267 -0
- package/dist/layout-CJSlZlFL.js.map +1 -0
- package/dist/layout-yxSlLybo.js +94 -0
- package/dist/layout-yxSlLybo.js.map +1 -0
- package/dist/layout.cjs +1 -2
- package/dist/layout.js +3 -9
- package/dist/lightbox-CpNMZHZW.cjs +202 -0
- package/dist/lightbox-CpNMZHZW.cjs.map +1 -0
- package/dist/lightbox-groqGmJH.js +678 -0
- package/dist/lightbox-groqGmJH.js.map +1 -0
- package/dist/lightbox.cjs +1 -2
- package/dist/lightbox.js +2 -8
- package/dist/list-CyHd0Zc2.cjs +40 -0
- package/dist/list-CyHd0Zc2.cjs.map +1 -0
- package/dist/list-DzkqT_r-.js +105 -0
- package/dist/list-DzkqT_r-.js.map +1 -0
- package/dist/list.cjs +1 -2
- package/dist/list.js +2 -7
- package/dist/litElement.mixin-BG6_-nYX.cjs +1 -0
- package/dist/litElement.mixin-BG6_-nYX.cjs.map +1 -0
- package/dist/litElement.mixin-Dm-4L8zL.js +12 -0
- package/dist/litElement.mixin-Dm-4L8zL.js.map +1 -0
- package/dist/magnetic-BZGFxAWG.js +47 -0
- package/dist/magnetic-BZGFxAWG.js.map +1 -0
- package/dist/magnetic-Dux4QwO4.cjs +1 -0
- package/dist/magnetic-Dux4QwO4.cjs.map +1 -0
- package/dist/mailbox-BcqnXYVP.js +1584 -0
- package/dist/mailbox-BcqnXYVP.js.map +1 -0
- package/dist/mailbox-C5eYTd7p.cjs +1142 -0
- package/dist/mailbox-C5eYTd7p.cjs.map +1 -0
- package/dist/mailbox.cjs +1 -2
- package/dist/mailbox.js +2 -9
- package/dist/map-BncheFt5.cjs +80 -0
- package/dist/map-BncheFt5.cjs.map +1 -0
- package/dist/map-C0o1PgLE.js +205 -0
- package/dist/map-C0o1PgLE.js.map +1 -0
- package/dist/map.cjs +1 -2
- package/dist/map.js +2 -5
- package/dist/menu-uwqlQbLd.js +51 -0
- package/dist/menu-uwqlQbLd.js.map +1 -0
- package/dist/menu-yXzwJZFf.cjs +23 -0
- package/dist/menu-yXzwJZFf.cjs.map +1 -0
- package/dist/menu.cjs +1 -2
- package/dist/menu.js +1 -2
- package/dist/mixins.cjs +1 -2
- package/dist/mixins.cjs.map +1 -1
- package/dist/mixins.js +59 -12
- package/dist/mixins.js.map +1 -1
- package/dist/nav-drawer.cjs +1 -2
- package/dist/nav-drawer.js +2 -12
- package/dist/navigation-bar.cjs +1 -2
- package/dist/navigation-bar.js +2 -6
- package/dist/navigation-rail.cjs +71 -2
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +363 -5
- package/dist/navigation-rail.js.map +1 -1
- package/dist/notification-BjwTfLAl.cjs +23 -0
- package/dist/notification-BjwTfLAl.cjs.map +1 -0
- package/dist/notification-DzYT4deA.js +304 -0
- package/dist/notification-DzYT4deA.js.map +1 -0
- package/dist/notification.cjs +1 -2
- package/dist/notification.js +2 -9
- package/dist/option-BJsD3u2D.cjs +43 -0
- package/dist/option-BJsD3u2D.cjs.map +1 -0
- package/dist/option-JFHxgiYl.js +97 -0
- package/dist/option-JFHxgiYl.js.map +1 -0
- package/dist/option.cjs +1 -2
- package/dist/option.js +1 -2
- package/dist/overlay-stack-DQey9Qph.cjs +1 -0
- package/dist/overlay-stack-DQey9Qph.cjs.map +1 -0
- package/dist/overlay-stack-DT1SdaGW.js +39 -0
- package/dist/overlay-stack-DT1SdaGW.js.map +1 -0
- package/dist/page.cjs +20 -2
- package/dist/page.cjs.map +1 -1
- package/dist/page.js +71 -4
- package/dist/page.js.map +1 -1
- package/dist/progress-BUh5WBqx.js +128 -0
- package/dist/progress-BUh5WBqx.js.map +1 -0
- package/dist/progress-BoRmyGAa.cjs +51 -0
- package/dist/progress-BoRmyGAa.cjs.map +1 -0
- package/dist/progress.cjs +1 -2
- package/dist/progress.js +1 -2
- package/dist/provide-8MrDz_qX.js +107 -0
- package/dist/provide-8MrDz_qX.js.map +1 -0
- package/dist/provide-CDkxgjHb.cjs +1 -0
- package/dist/provide-CDkxgjHb.cjs.map +1 -0
- package/dist/qr-scanner.cjs +35 -2
- package/dist/qr-scanner.cjs.map +1 -1
- package/dist/qr-scanner.js +119 -4
- package/dist/qr-scanner.js.map +1 -1
- package/dist/radio-group-DbOWUPhi.js +105 -0
- package/dist/radio-group-DbOWUPhi.js.map +1 -0
- package/dist/radio-group-rhrvhB5X.cjs +40 -0
- package/dist/radio-group-rhrvhB5X.cjs.map +1 -0
- package/dist/radio-group.cjs +1 -2
- package/dist/radio-group.js +2 -6
- package/dist/range.cjs +62 -0
- package/dist/range.cjs.map +1 -0
- package/dist/range.js +85 -0
- package/dist/range.js.map +1 -0
- package/dist/reduced-motion-D-L12p7G.js +7 -0
- package/dist/reduced-motion-D-L12p7G.js.map +1 -0
- package/dist/reduced-motion-Ds05GPyz.cjs +1 -0
- package/dist/reduced-motion-Ds05GPyz.cjs.map +1 -0
- package/dist/rxjs-utils-BSjmI9-Q.js +32 -0
- package/dist/rxjs-utils-BSjmI9-Q.js.map +1 -0
- package/dist/rxjs-utils-DCsfzeap.cjs +1 -0
- package/dist/rxjs-utils-DCsfzeap.cjs.map +1 -0
- package/dist/rxjs-utils.cjs +1 -2
- package/dist/rxjs-utils.js +2 -14
- package/dist/scroll-BE9W9PF2.cjs +26 -0
- package/dist/scroll-BE9W9PF2.cjs.map +1 -0
- package/dist/scroll-qGks1R0k.js +112 -0
- package/dist/scroll-qGks1R0k.js.map +1 -0
- package/dist/search-C4dFHYbX.js +91 -0
- package/dist/search-C4dFHYbX.js.map +1 -0
- package/dist/search-Ds8tt7Et.cjs +1 -0
- package/dist/search-Ds8tt7Et.cjs.map +1 -0
- package/dist/select-D9sgBRjU.js +305 -0
- package/dist/select-D9sgBRjU.js.map +1 -0
- package/dist/select-DXU2kzg4.cjs +56 -0
- package/dist/select-DXU2kzg4.cjs.map +1 -0
- package/dist/select.cjs +1 -2
- package/dist/select.js +2 -5
- package/dist/sheet-CIxCCJ3H.js +168 -0
- package/dist/sheet-CIxCCJ3H.js.map +1 -0
- package/dist/sheet-CeX6BbNp.cjs +35 -0
- package/dist/sheet-CeX6BbNp.cjs.map +1 -0
- package/dist/sheet.cjs +1 -2
- package/dist/sheet.js +3 -7
- package/dist/sheet.service-CAB7weBc.js +86 -0
- package/dist/sheet.service-CAB7weBc.js.map +1 -0
- package/dist/sheet.service-DPAp7E3x.cjs +1 -0
- package/dist/sheet.service-DPAp7E3x.cjs.map +1 -0
- package/dist/slider.cjs +82 -2
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +143 -5
- package/dist/slider.js.map +1 -1
- package/dist/sound.service-Bu3EQLv2.cjs +1 -0
- package/dist/sound.service-Bu3EQLv2.cjs.map +1 -0
- package/dist/sound.service-m3BrSfuH.js +2353 -0
- package/dist/sound.service-m3BrSfuH.js.map +1 -0
- package/dist/src-CbO5kJ2O.js +1244 -0
- package/dist/src-CbO5kJ2O.js.map +1 -0
- package/dist/src-SraDxEeg.cjs +269 -0
- package/dist/src-SraDxEeg.cjs.map +1 -0
- package/dist/steps.cjs +70 -2
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +178 -7
- package/dist/steps.js.map +1 -1
- package/dist/store-CorvD3bT.cjs +1 -0
- package/dist/store-CorvD3bT.cjs.map +1 -0
- package/dist/store-DYqDLAvT.js +1654 -0
- package/dist/store-DYqDLAvT.js.map +1 -0
- package/dist/store.cjs +1 -2
- package/dist/store.js +2 -47
- package/dist/surface-DuH0pm2v.cjs +7 -0
- package/dist/surface-DuH0pm2v.cjs.map +1 -0
- package/dist/surface-eN_Jy2MJ.js +21 -0
- package/dist/surface-eN_Jy2MJ.js.map +1 -0
- package/dist/surface.cjs +1 -2
- package/dist/surface.js +2 -6
- package/dist/surface.mixin-CIXgN6iw.cjs +297 -0
- package/dist/surface.mixin-CIXgN6iw.cjs.map +1 -0
- package/dist/surface.mixin-D9jv1sKG.js +320 -0
- package/dist/surface.mixin-D9jv1sKG.js.map +1 -0
- package/dist/table-C9rRQJEB.cjs +63 -0
- package/dist/table-C9rRQJEB.cjs.map +1 -0
- package/dist/table-Dg_tUGB_.js +631 -0
- package/dist/table-Dg_tUGB_.js.map +1 -0
- package/dist/table.cjs +1 -2
- package/dist/table.js +2 -6
- package/dist/tabs-BbFC9omR.js +125 -0
- package/dist/tabs-BbFC9omR.js.map +1 -0
- package/dist/tabs-soTL-x4G.cjs +31 -0
- package/dist/tabs-soTL-x4G.cjs.map +1 -0
- package/dist/tabs.cjs +1 -2
- package/dist/tabs.js +1 -2
- package/dist/tailwind.mixin-BIVhjNvD.js +225 -0
- package/dist/tailwind.mixin-BIVhjNvD.js.map +1 -0
- package/dist/tailwind.mixin-DSuEu-y3.cjs +2 -0
- package/dist/tailwind.mixin-DSuEu-y3.cjs.map +1 -0
- package/dist/teleport.cjs +1 -2
- package/dist/teleport.js +2 -8
- package/dist/textarea-DaRUJ0ri.cjs +35 -0
- package/dist/textarea-DaRUJ0ri.cjs.map +1 -0
- package/dist/textarea-hChvHbNM.js +195 -0
- package/dist/textarea-hChvHbNM.js.map +1 -0
- package/dist/textarea.cjs +1 -2
- package/dist/textarea.js +1 -2
- package/dist/theme-B0M8Hlyo.js +4121 -0
- package/dist/theme-B0M8Hlyo.js.map +1 -0
- package/dist/theme-ZYH2MqX9.cjs +181 -0
- package/dist/theme-ZYH2MqX9.cjs.map +1 -0
- package/dist/theme-button-BtlX_Zgd.js +19 -0
- package/dist/theme-button-BtlX_Zgd.js.map +1 -0
- package/dist/theme-button-Dvqg-rE_.cjs +8 -0
- package/dist/theme-button-Dvqg-rE_.cjs.map +1 -0
- package/dist/theme-button.cjs +1 -2
- package/dist/theme-button.js +1 -2
- package/dist/theme.cjs +1 -2
- package/dist/theme.events-Cv7N4Toe.js +2 -0
- package/dist/theme.events-Cv7N4Toe.js.map +1 -0
- package/dist/theme.events-DM4H5F2d.cjs +1 -0
- package/dist/theme.events-DM4H5F2d.cjs.map +1 -0
- package/dist/theme.interface-CXloMUCw.js +276 -0
- package/dist/theme.interface-CXloMUCw.js.map +1 -0
- package/dist/theme.interface-Da23QAYb.cjs +1 -0
- package/dist/theme.interface-Da23QAYb.cjs.map +1 -0
- package/dist/theme.js +6 -21
- package/dist/theme.service-C_tjlqgy.cjs +1 -0
- package/dist/theme.service-C_tjlqgy.cjs.map +1 -0
- package/dist/theme.service-D9lEas89.js +108 -0
- package/dist/theme.service-D9lEas89.js.map +1 -0
- package/dist/tooltip.cjs +6 -2
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js +200 -5
- package/dist/tooltip.js.map +1 -1
- package/dist/tree.cjs +26 -2
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +64 -4
- package/dist/tree.js.map +1 -1
- package/dist/tslib.es6-D7BIeDVB.cjs +1 -0
- package/dist/tslib.es6-D7BIeDVB.cjs.map +1 -0
- package/dist/tslib.es6-ErZEp3OO.js +7 -0
- package/dist/tslib.es6-ErZEp3OO.js.map +1 -0
- package/dist/types.cjs +1 -2
- package/dist/types.cjs.map +1 -1
- package/dist/types.js +4 -5
- package/dist/types.js.map +1 -1
- package/dist/typewriter-CCel8Nta.js +700 -0
- package/dist/typewriter-CCel8Nta.js.map +1 -0
- package/dist/typewriter-Cf9f2bdx.cjs +123 -0
- package/dist/typewriter-Cf9f2bdx.cjs.map +1 -0
- package/dist/typewriter.cjs +1 -2
- package/dist/typewriter.js +2 -5
- package/dist/typography.cjs +282 -2
- package/dist/typography.cjs.map +1 -1
- package/dist/typography.js +353 -4
- package/dist/typography.js.map +1 -1
- package/dist/utils-BcaKtQuA.cjs +1 -0
- package/dist/utils-BcaKtQuA.cjs.map +1 -0
- package/dist/utils-CoU7M2YS.js +259 -0
- package/dist/utils-CoU7M2YS.js.map +1 -0
- package/dist/utils.cjs +1 -2
- package/dist/utils.js +6 -9
- package/dist/window-B9_14c12.cjs +59 -0
- package/dist/window-B9_14c12.cjs.map +1 -0
- package/dist/window-CbgdwOZD.js +548 -0
- package/dist/window-CbgdwOZD.js.map +1 -0
- package/dist/window.cjs +1 -0
- package/dist/window.js +2 -0
- package/mixins/baseElement.ts +118 -1
- package/mixins/discovery.service.ts +162 -1
- package/mixins/formField.mixin.ts +13 -8
- package/mixins/index.ts +2 -0
- package/mixins/surface.mixin.ts +93 -0
- package/mixins/tailwind.css +331 -14
- package/package.json +32 -28
- package/src/CLAUDE.md +428 -0
- package/src/area/.excalidraw +357 -0
- package/src/area/area.component.ts +449 -0
- package/src/area/area.service.test.ts +1007 -0
- package/src/area/area.service.ts +748 -0
- package/src/area/ecrypt.ts +7 -0
- package/src/area/index.ts +7 -0
- package/src/area/lazy.ts +83 -0
- package/src/area/readme.md +338 -0
- package/src/area/route.component.ts +79 -0
- package/src/area/router-guide.md +360 -0
- package/src/area/router.types.ts +101 -0
- package/src/area/utils.ts +354 -0
- package/src/audio/emotional-sounds.ts +940 -0
- package/src/audio/index.ts +53 -0
- package/src/audio/sound.service.ts +1079 -0
- package/src/autocomplete/README.md +485 -0
- package/src/autocomplete/autocomplete.scss +24 -0
- package/src/autocomplete/autocomplete.ts +733 -0
- package/src/autocomplete/index.ts +1 -0
- package/src/avatar.ts +164 -0
- package/src/badge/badge.ts +286 -0
- package/src/badge/index.ts +1 -0
- package/src/boat/boat.ts +664 -0
- package/src/boat/index.ts +1 -0
- package/src/busy/busy.ts +39 -0
- package/src/busy/index.ts +2 -0
- package/src/busy/spinner.ts +165 -0
- package/src/button/button.ts +382 -0
- package/src/button/icon-button.ts +287 -0
- package/src/button/index.ts +2 -0
- package/src/card/actions.ts +28 -0
- package/src/card/card.ts +319 -0
- package/src/card/content.ts +24 -0
- package/src/card/index.ts +4 -0
- package/src/card/media.ts +77 -0
- package/src/charts/area-chart.ts +495 -0
- package/src/charts/index.ts +4 -0
- package/src/charts/pills.ts +350 -0
- package/src/charts/types.ts +66 -0
- package/src/charts/utils.ts +65 -0
- package/src/checkbox/checkbox.ts +122 -0
- package/src/checkbox/index.ts +1 -0
- package/src/chips/assist-chip.ts +261 -0
- package/src/chips/chips.ts +259 -0
- package/src/chips/filter-chip.ts +255 -0
- package/src/chips/index.ts +5 -0
- package/src/chips/input-chip.ts +408 -0
- package/src/chips/suggestion-chip.ts +266 -0
- package/src/code-highlight/code-highlight.ts +344 -0
- package/src/code-highlight/code-preview.ts +123 -0
- package/src/code-highlight/index.ts +3 -0
- package/src/components/form-elements/index.ts +1 -0
- package/src/components/form-elements/payment-card-form.ts +331 -0
- package/src/components/index.ts +1 -0
- package/src/connectivity/connectivity-status.ts +153 -0
- package/src/connectivity/index.ts +1 -0
- package/src/content-drawer/context.ts +13 -0
- package/src/content-drawer/drawer.service.ts +148 -0
- package/src/content-drawer/drawer.ts +183 -0
- package/src/content-drawer/index.ts +5 -0
- package/src/content-drawer/main.ts +83 -0
- package/src/content-drawer/readme.md +709 -0
- package/src/content-drawer/sheet.ts +180 -0
- package/src/date-range/date-range-dialog.ts +230 -0
- package/src/date-range/date-range-helpers.ts +135 -0
- package/src/date-range/date-range-presets.ts +220 -0
- package/src/date-range/date-range.ts +530 -0
- package/src/date-range/date-utils.ts +58 -0
- package/src/date-range/index.ts +2 -0
- package/src/date-range-inline/date-range-inline.ts +522 -0
- package/src/date-range-inline/index.ts +2 -0
- package/src/delay/delay.ts +136 -0
- package/src/delay/index.ts +1 -0
- package/src/details/details.ts +429 -0
- package/src/details/index.ts +1 -0
- package/src/dialog/dialog-base.mixin.ts +565 -0
- package/src/dialog/dialog-events.ts +17 -0
- package/src/dialog/dialog-service.ts +482 -0
- package/src/dialog/dialog.component.ts +394 -0
- package/src/dialog/index.ts +3 -0
- package/src/directives/animate-text.ts +551 -0
- package/src/directives/color.ts +41 -0
- package/src/directives/confirm-click.ts +350 -0
- package/src/directives/cursor-glow.ts +142 -0
- package/src/directives/cycle-text.ts +496 -0
- package/src/directives/depth-of-field.ts +83 -0
- package/src/directives/drag.ts +370 -0
- package/src/directives/gravity.ts +117 -0
- package/src/directives/index.ts +19 -0
- package/src/directives/intersect.ts +204 -0
- package/src/directives/layout.ts +261 -0
- package/src/directives/liquid.ts +150 -0
- package/src/directives/living-border.ts +166 -0
- package/src/directives/long-press.ts +150 -0
- package/src/directives/magnetic.ts +133 -0
- package/src/directives/nebula.ts +773 -0
- package/src/directives/reduced-motion.ts +30 -0
- package/src/directives/reveal.ts +158 -0
- package/src/directives/ripple.ts +102 -0
- package/src/directives/typewriter.ts +349 -0
- package/src/discovery/discovery.service.ts +210 -0
- package/src/discovery/index.ts +1 -0
- package/src/divider/divider.ts +100 -0
- package/src/divider/index.ts +1 -0
- package/src/dropdown/dropdown-component.ts +264 -0
- package/src/dropdown/dropdown-content.ts +108 -0
- package/src/dropdown/index.ts +2 -0
- package/src/expand/expand-root.component.ts +278 -0
- package/src/expand/expand.component.ts +287 -0
- package/src/expand/index.ts +2 -0
- package/src/extra/countries/countries.data.ts +196 -0
- package/src/extra/countries/countries.ts +107 -0
- package/src/extra/countries/index.ts +2 -0
- package/src/extra/index.ts +2 -0
- package/src/extra/timezone/index.ts +2 -0
- package/src/extra/timezone/timezone.ts +116 -0
- package/src/extra/timezone/timezones.data.ts +2546 -0
- package/src/float/float.ts +18 -0
- package/src/float/index.ts +1 -0
- package/src/form/form-v2.ts +268 -0
- package/src/form/form.ts +194 -0
- package/src/form/index.ts +2 -0
- package/src/icons/icon.ts +293 -0
- package/src/icons/index.ts +1 -0
- package/src/icons/readme.md +37 -0
- package/src/iframe/iframe.ts +98 -0
- package/src/iframe/index.ts +1 -0
- package/src/index.ts +69 -0
- package/src/input/index.ts +8 -0
- package/src/input/input.scss +211 -0
- package/src/input/input.ts +951 -0
- package/src/json/index.ts +1 -0
- package/src/json/json.ts +55 -0
- package/src/layout/flex/flex.scss +4 -0
- package/src/layout/flex/flex.ts +74 -0
- package/src/layout/flex/index.ts +1 -0
- package/src/layout/grid/.readme +79 -0
- package/src/layout/grid/grid.scss +5 -0
- package/src/layout/grid/grid.ts +121 -0
- package/src/layout/grid/index.ts +1 -0
- package/src/layout/index.ts +5 -0
- package/src/layout/layout.ts +122 -0
- package/src/layout/scroll/index.ts +1 -0
- package/src/layout/scroll/scroll.ts +351 -0
- package/src/layout/v2/flex.ts +243 -0
- package/src/layout/v2/grid.ts +93 -0
- package/src/layout/v2/index.ts +1 -0
- package/src/lightbox/flip-directive.ts +270 -0
- package/src/lightbox/index.ts +4 -0
- package/src/lightbox/lightbox-service.ts +378 -0
- package/src/lightbox/lightbox.directive.ts +256 -0
- package/src/lightbox/lightbox.ts +417 -0
- package/src/list/context.ts +3 -0
- package/src/list/index.ts +3 -0
- package/src/list/list-item.ts +94 -0
- package/src/list/list.ts +87 -0
- package/src/list/readme.md +62 -0
- package/src/mailbox/README.md +131 -0
- package/src/mailbox/email-editor.ts +1071 -0
- package/src/mailbox/email-layout-selector.ts +58 -0
- package/src/mailbox/email-recipients.ts +594 -0
- package/src/mailbox/email-template-picker.ts +296 -0
- package/src/mailbox/email-viewer.ts +715 -0
- package/src/mailbox/index.ts +31 -0
- package/src/mailbox/mailbox.ts +363 -0
- package/src/mailbox/types.ts +181 -0
- package/src/map/index.ts +1 -0
- package/src/map/map.ts +483 -0
- package/src/menu/index.ts +2 -0
- package/src/menu/menu-item.ts +26 -0
- package/src/menu/menu.ts +83 -0
- package/src/nav-drawer/$navbar.ts +51 -0
- package/src/nav-drawer/appbar.ts +26 -0
- package/src/nav-drawer/content.ts +32 -0
- package/src/nav-drawer/context.ts +6 -0
- package/src/nav-drawer/drawer.ts +128 -0
- package/src/nav-drawer/index.ts +6 -0
- package/src/nav-drawer/navbar.ts +191 -0
- package/src/navigation-bar/index.ts +2 -0
- package/src/navigation-bar/navigation-bar-item.ts +417 -0
- package/src/navigation-bar/navigation-bar.ts +482 -0
- package/src/navigation-rail/index.ts +2 -0
- package/src/navigation-rail/navigation-rail-item.ts +443 -0
- package/src/navigation-rail/navigation-rail.ts +492 -0
- package/src/notification/index.ts +6 -0
- package/src/notification/notification-service.ts +324 -0
- package/src/notification/notification.scss +117 -0
- package/src/notification/notification.ts +263 -0
- package/src/notification/notify.ts +207 -0
- package/src/notification/outlet.ts +16 -0
- package/src/option/index.ts +1 -0
- package/src/option/option.ts +180 -0
- package/src/page/index.ts +1 -0
- package/src/page/page.ts +135 -0
- package/src/progress/index.ts +1 -0
- package/src/progress/progress.ts +143 -0
- package/src/qr-scanner/index.ts +1 -0
- package/src/qr-scanner/qr-scanner.ts +240 -0
- package/src/radio-group/index.ts +2 -0
- package/src/radio-group/radio-button.ts +81 -0
- package/src/radio-group/radio-group.scss +4 -0
- package/src/radio-group/radio-group.ts +110 -0
- package/src/radio-group/readme.md +315 -0
- package/src/range/index.ts +1 -0
- package/src/range/range.ts +102 -0
- package/src/rxjs-utils/index.ts +6 -0
- package/src/rxjs-utils/mutation-observer.ts +22 -0
- package/src/rxjs-utils/waitForElement.ts +33 -0
- package/src/rxjs-utils/waitForElementAll.ts +34 -0
- package/src/rxjs-utils/waitForElements.ts +40 -0
- package/src/rxjs-utils/waitForElementsAll.ts +42 -0
- package/src/rxjs-utils/waitUntil.ts +16 -0
- package/src/select/README.md +405 -0
- package/src/select/index.ts +2 -0
- package/src/select/select.ts +766 -0
- package/src/sheet/hook.ts +40 -0
- package/src/sheet/index.ts +2 -0
- package/src/sheet/sheet.service.ts +235 -0
- package/src/sheet/sheet.ts +236 -0
- package/src/slider/index.ts +2 -0
- package/src/slider/slide.ts +107 -0
- package/src/slider/slider.ts +164 -0
- package/src/steps/index.ts +3 -0
- package/src/steps/schmancy-step.ts +213 -0
- package/src/steps/schmancy-steps-container.ts +109 -0
- package/src/steps/steps.context.ts +23 -0
- package/src/store/context-array.ts +358 -0
- package/src/store/context-collection.ts +218 -0
- package/src/store/context-create.ts +284 -0
- package/src/store/context-object.ts +298 -0
- package/src/store/filter-directive.ts +614 -0
- package/src/store/immer-integration.ts +99 -0
- package/src/store/index.ts +10 -0
- package/src/store/selector-hook.ts +259 -0
- package/src/store/selectors.ts +289 -0
- package/src/store/storage-manager.ts +269 -0
- package/src/store/store.class.ts +239 -0
- package/src/store/types.ts +327 -0
- package/src/surface/context.ts +3 -0
- package/src/surface/index.ts +1 -0
- package/src/surface/surface.styles.ts +334 -0
- package/src/surface/surface.ts +59 -0
- package/src/table/index.ts +2 -0
- package/src/table/row.ts +60 -0
- package/src/table/table.ts +266 -0
- package/src/tabs/Readme.md +397 -0
- package/src/tabs/context.ts +5 -0
- package/src/tabs/index.ts +4 -0
- package/src/tabs/tab.ts +39 -0
- package/src/tabs/tabs-compatibility.ts +20 -0
- package/src/tabs/tabs-group.ts +184 -0
- package/src/teleport/.excalidraw +2511 -0
- package/src/teleport/index.ts +2 -0
- package/src/teleport/readme.md +91 -0
- package/src/teleport/teleport.component.ts +132 -0
- package/src/teleport/teleport.service.ts +139 -0
- package/src/teleport/watcher.ts +20 -0
- package/src/textarea/index.ts +1 -0
- package/src/textarea/textarea.scss +54 -0
- package/src/textarea/textarea.ts +432 -0
- package/src/theme/context.ts +28 -0
- package/src/theme/index.ts +17 -0
- package/src/theme/theme-audio-player.ts +470 -0
- package/src/theme/theme-controller-boat.ts +49 -0
- package/src/theme/theme-controller-example.md +152 -0
- package/src/theme/theme-controller.ts +205 -0
- package/src/theme/theme.component.ts +305 -0
- package/src/theme/theme.events.ts +59 -0
- package/src/theme/theme.format.ts +417 -0
- package/src/theme/theme.interface.ts +399 -0
- package/src/theme/theme.service.ts +520 -0
- package/src/theme/theme.style.css +619 -0
- package/src/theme-button/index.ts +1 -0
- package/src/theme-button/theme-button.ts +35 -0
- package/src/tooltip/index.ts +2 -0
- package/src/tooltip/tooltip.directive.ts +277 -0
- package/src/tooltip/tooltip.ts +216 -0
- package/src/tree/README.md +59 -0
- package/src/tree/index.ts +1 -0
- package/src/tree/tree.ts +132 -0
- package/src/types/events.ts +5 -0
- package/src/types/index.ts +3 -0
- package/src/types/mood-audio.types.ts +220 -0
- package/src/types/surface.ts +52 -0
- package/src/typewriter/IMPROVEMENTS.md +174 -0
- package/src/typewriter/QUICK_REFERENCE.md +166 -0
- package/src/typewriter/index.ts +1 -0
- package/src/typewriter/test-typewriter.html +97 -0
- package/src/typewriter/typewriter.ts +376 -0
- package/src/typography/index.ts +1 -0
- package/src/typography/typography.ts +448 -0
- package/src/utils/animation.ts +418 -0
- package/src/utils/hashContent.ts +12 -0
- package/src/utils/index.ts +6 -0
- package/src/utils/intersection.ts +22 -0
- package/src/utils/number.ts +529 -0
- package/src/utils/overlay-stack.ts +101 -0
- package/src/utils/search.ts +322 -0
- package/src/vite-env.d.ts +2 -0
- package/src/window/index.ts +10 -0
- package/src/window/window-manager.ts +204 -0
- package/src/window/window-position.ts +136 -0
- package/src/window/window-registry.ts +34 -0
- package/src/window/window.ts +724 -0
- package/types/mixins/baseElement.d.ts +12 -0
- package/types/mixins/discovery.service.d.ts +72 -0
- package/types/mixins/index.d.ts +2 -0
- package/types/mixins/surface.mixin.d.ts +39 -0
- package/types/src/area/area.service.d.ts +2 -0
- package/types/src/badge/badge.d.ts +1 -1
- package/types/src/boat/boat.d.ts +40 -33
- package/types/src/button/icon-button.d.ts +10 -0
- package/types/src/chips/filter-chip.d.ts +0 -12
- package/types/src/connectivity/connectivity-status.d.ts +25 -0
- package/types/src/connectivity/index.d.ts +1 -0
- package/types/src/content-drawer/drawer.service.d.ts +3 -0
- package/types/src/date-range/date-range.d.ts +2 -0
- package/types/src/details/details.d.ts +26 -2
- package/types/src/dialog/dialog-base.mixin.d.ts +7 -3
- package/types/src/dialog/dialog-service.d.ts +27 -1
- package/types/src/dialog/dialog.component.d.ts +35 -1
- package/types/src/directives/animate-text.d.ts +67 -0
- package/types/src/directives/color.d.ts +2 -3
- package/types/src/directives/confirm-click.d.ts +38 -0
- package/types/src/directives/cursor-glow.d.ts +38 -0
- package/types/src/directives/cycle-text.d.ts +44 -0
- package/types/src/directives/depth-of-field.d.ts +38 -0
- package/types/src/directives/drag.d.ts +8 -8
- package/types/src/directives/gravity.d.ts +40 -0
- package/types/src/directives/index.d.ts +16 -2
- package/types/src/directives/intersect.d.ts +60 -0
- package/types/src/directives/layout.d.ts +62 -0
- package/types/src/directives/liquid.d.ts +38 -0
- package/types/src/directives/living-border.d.ts +39 -0
- package/types/src/directives/long-press.d.ts +38 -0
- package/types/src/directives/magnetic.d.ts +35 -0
- package/types/src/directives/nebula.d.ts +80 -0
- package/types/src/directives/reduced-motion.d.ts +2 -0
- package/types/src/directives/reveal.d.ts +54 -0
- package/types/src/directives/ripple.d.ts +15 -5
- package/types/src/directives/typewriter.d.ts +50 -0
- package/types/src/discovery/discovery.service.d.ts +72 -0
- package/types/src/expand/expand-root.component.d.ts +30 -0
- package/types/src/expand/expand.component.d.ts +38 -0
- package/types/src/expand/index.d.ts +2 -0
- package/types/src/float/float.d.ts +14 -0
- package/types/src/float/index.d.ts +1 -0
- package/types/src/icons/icon.d.ts +14 -0
- package/types/src/iframe/iframe.d.ts +37 -0
- package/types/src/iframe/index.d.ts +1 -0
- package/types/src/index.d.ts +6 -1
- package/types/src/input/index.d.ts +1 -1
- package/types/src/layout/scroll/scroll.d.ts +11 -0
- package/types/src/lightbox/lightbox.d.ts +1 -0
- package/types/src/mailbox/email-recipients.d.ts +2 -2
- package/types/src/mailbox/types.d.ts +1 -1
- package/types/src/navigation-bar/navigation-bar.d.ts +17 -0
- package/types/src/notification/notification.d.ts +1 -0
- package/types/src/page/page.d.ts +6 -0
- package/types/src/range/index.d.ts +1 -0
- package/types/src/range/range.d.ts +25 -0
- package/types/src/sheet/sheet.d.ts +0 -1
- package/types/src/steps/schmancy-steps-container.d.ts +8 -6
- package/types/src/surface/surface.d.ts +4 -27
- package/types/src/surface/surface.styles.d.ts +31 -0
- package/types/src/tabs/tab.d.ts +1 -0
- package/types/src/textarea/textarea.d.ts +3 -2
- package/types/src/theme/context.d.ts +2 -282
- package/types/src/theme/theme.component.d.ts +9 -1
- package/types/src/theme/theme.format.d.ts +1 -1
- package/types/src/theme/theme.interface.d.ts +8 -1
- package/types/src/theme/theme.service.d.ts +20 -282
- package/types/src/types/surface.d.ts +27 -1
- package/types/src/typography/typography.d.ts +17 -3
- package/types/src/utils/animation.d.ts +254 -0
- package/types/src/utils/index.d.ts +2 -0
- package/types/src/utils/number.d.ts +18 -2
- package/types/src/utils/overlay-stack.d.ts +54 -0
- package/types/src/window/index.d.ts +3 -0
- package/types/src/window/window-manager.d.ts +49 -0
- package/types/src/window/window-position.d.ts +64 -0
- package/types/src/window/window-registry.d.ts +28 -0
- package/types/src/window/window.d.ts +67 -0
- package/ai/animated-text.md +0 -116
- package/ai/component-relationships.md +0 -93
- package/ai/context.md +0 -572
- package/ai/countries.md +0 -271
- package/ai/index.md +0 -112
- package/ai/navigation-bar-item.md +0 -259
- package/ai/payment-card-form.md +0 -242
- package/ai/spinner.md +0 -165
- package/ai/template.md +0 -144
- package/ai/timezone.md +0 -276
- package/dist/_commonjsHelpers-Dw9sPFZy.js +0 -7
- package/dist/_commonjsHelpers-Dw9sPFZy.js.map +0 -1
- package/dist/_commonjsHelpers-k2hpEU-q.cjs +0 -2
- package/dist/_commonjsHelpers-k2hpEU-q.cjs.map +0 -1
- package/dist/ai/animated-text.md +0 -116
- package/dist/ai/component-relationships.md +0 -93
- package/dist/ai/context.md +0 -572
- package/dist/ai/countries.md +0 -271
- package/dist/ai/index.md +0 -112
- package/dist/ai/navigation-bar-item.md +0 -259
- package/dist/ai/payment-card-form.md +0 -242
- package/dist/ai/spinner.md +0 -165
- package/dist/ai/template.md +0 -144
- package/dist/ai/timezone.md +0 -276
- package/dist/animated-text-B3DQRJBy.cjs +0 -37
- package/dist/animated-text-B3DQRJBy.cjs.map +0 -1
- package/dist/animated-text-BAj4-6hE.js +0 -76
- package/dist/animated-text-BAj4-6hE.js.map +0 -1
- package/dist/animated-text.cjs +0 -2
- package/dist/animated-text.cjs.map +0 -1
- package/dist/animated-text.js +0 -2
- package/dist/animated-text.js.map +0 -1
- package/dist/area.cjs.map +0 -1
- package/dist/area.component-CP4DZ0d8.js +0 -330
- package/dist/area.component-CP4DZ0d8.js.map +0 -1
- package/dist/area.component-ChxSLt16.cjs +0 -12
- package/dist/area.component-ChxSLt16.cjs.map +0 -1
- package/dist/area.js.map +0 -1
- package/dist/audio.cjs.map +0 -1
- package/dist/audio.js.map +0 -1
- package/dist/autocomplete-CAaVSg4g.cjs +0 -112
- package/dist/autocomplete-CAaVSg4g.cjs.map +0 -1
- package/dist/autocomplete-CGbACUYd.js +0 -333
- package/dist/autocomplete-CGbACUYd.js.map +0 -1
- package/dist/autocomplete.cjs.map +0 -1
- package/dist/autocomplete.js.map +0 -1
- package/dist/avatar-nWOZXEsW.cjs +0 -273
- package/dist/avatar-nWOZXEsW.cjs.map +0 -1
- package/dist/avatar-rLCF6MSI.js +0 -895
- package/dist/avatar-rLCF6MSI.js.map +0 -1
- package/dist/badge.cjs.map +0 -1
- package/dist/badge.js.map +0 -1
- package/dist/boat-Ckt9v__d.js +0 -301
- package/dist/boat-Ckt9v__d.js.map +0 -1
- package/dist/boat-yNAZ2LLB.cjs +0 -97
- package/dist/boat-yNAZ2LLB.cjs.map +0 -1
- package/dist/boat.cjs.map +0 -1
- package/dist/boat.js.map +0 -1
- package/dist/busy.cjs.map +0 -1
- package/dist/busy.js.map +0 -1
- package/dist/card.cjs.map +0 -1
- package/dist/card.js.map +0 -1
- package/dist/checkbox-BnAlpsJN.cjs +0 -40
- package/dist/checkbox-BnAlpsJN.cjs.map +0 -1
- package/dist/checkbox-D22yfGe3.js +0 -526
- package/dist/checkbox-D22yfGe3.js.map +0 -1
- package/dist/checkbox.cjs.map +0 -1
- package/dist/checkbox.js.map +0 -1
- package/dist/chips.cjs.map +0 -1
- package/dist/chips.js.map +0 -1
- package/dist/code-highlight.cjs.map +0 -1
- package/dist/code-highlight.js.map +0 -1
- package/dist/code-preview-DPlQayFd.js +0 -967
- package/dist/code-preview-DPlQayFd.js.map +0 -1
- package/dist/code-preview-jPnX60FF.cjs +0 -193
- package/dist/code-preview-jPnX60FF.cjs.map +0 -1
- package/dist/components.cjs.map +0 -1
- package/dist/components.js.map +0 -1
- package/dist/consume-5D1qfVWM.js +0 -38
- package/dist/consume-5D1qfVWM.js.map +0 -1
- package/dist/consume-edta5ng5.cjs +0 -2
- package/dist/consume-edta5ng5.cjs.map +0 -1
- package/dist/content-drawer.cjs.map +0 -1
- package/dist/content-drawer.js.map +0 -1
- package/dist/context-create-B_S-sD5B.js +0 -1107
- package/dist/context-create-B_S-sD5B.js.map +0 -1
- package/dist/context-create-DTybDbZp.cjs +0 -2
- package/dist/context-create-DTybDbZp.cjs.map +0 -1
- package/dist/date-range-GFm5NG33.js +0 -639
- package/dist/date-range-GFm5NG33.js.map +0 -1
- package/dist/date-range-inline-CgX2o0FP.cjs +0 -44
- package/dist/date-range-inline-CgX2o0FP.cjs.map +0 -1
- package/dist/date-range-inline-DTQLESAZ.js +0 -197
- package/dist/date-range-inline-DTQLESAZ.js.map +0 -1
- package/dist/date-range-inline.cjs.map +0 -1
- package/dist/date-range-inline.js.map +0 -1
- package/dist/date-range-ug3B9CFT.cjs +0 -119
- package/dist/date-range-ug3B9CFT.cjs.map +0 -1
- package/dist/date-range.cjs.map +0 -1
- package/dist/date-range.js.map +0 -1
- package/dist/delay-CWtBL0VD.cjs +0 -10
- package/dist/delay-CWtBL0VD.cjs.map +0 -1
- package/dist/delay-DEe1CmHc.js +0 -288
- package/dist/delay-DEe1CmHc.js.map +0 -1
- package/dist/delay.cjs.map +0 -1
- package/dist/delay.js.map +0 -1
- package/dist/details-D-LXW23W.js +0 -100
- package/dist/details-D-LXW23W.js.map +0 -1
- package/dist/details-DVke77dU.cjs +0 -55
- package/dist/details-DVke77dU.cjs.map +0 -1
- package/dist/details.cjs.map +0 -1
- package/dist/details.js.map +0 -1
- package/dist/dialog-service-C86xTS8q.cjs +0 -2
- package/dist/dialog-service-C86xTS8q.cjs.map +0 -1
- package/dist/dialog-service-D9E3jLAR.js +0 -118
- package/dist/dialog-service-D9E3jLAR.js.map +0 -1
- package/dist/dialog.component-BM0D-hK9.cjs +0 -48
- package/dist/dialog.component-BM0D-hK9.cjs.map +0 -1
- package/dist/dialog.component-a7FlKhGD.js +0 -145
- package/dist/dialog.component-a7FlKhGD.js.map +0 -1
- package/dist/discovery.service-BbYjU5x8.js +0 -21
- package/dist/discovery.service-BbYjU5x8.js.map +0 -1
- package/dist/discovery.service-BpGCuXPd.cjs +0 -2
- package/dist/discovery.service-BpGCuXPd.cjs.map +0 -1
- package/dist/divider-CzTpxOqt.js +0 -84
- package/dist/divider-CzTpxOqt.js.map +0 -1
- package/dist/divider-D8KStUhN.cjs +0 -58
- package/dist/divider-D8KStUhN.cjs.map +0 -1
- package/dist/divider.cjs.map +0 -1
- package/dist/divider.js.map +0 -1
- package/dist/dropdown-content-CngZN3vv.cjs +0 -58
- package/dist/dropdown-content-CngZN3vv.cjs.map +0 -1
- package/dist/dropdown-content-DCn-g0-f.js +0 -147
- package/dist/dropdown-content-DCn-g0-f.js.map +0 -1
- package/dist/email-recipients-BhntMZMf.cjs +0 -1173
- package/dist/email-recipients-BhntMZMf.cjs.map +0 -1
- package/dist/email-recipients-BzjAKNJ0.js +0 -1733
- package/dist/email-recipients-BzjAKNJ0.js.map +0 -1
- package/dist/emotional-sounds-BRnFhww6.js +0 -234
- package/dist/emotional-sounds-BRnFhww6.js.map +0 -1
- package/dist/emotional-sounds-DVGhmoZf.cjs +0 -2
- package/dist/emotional-sounds-DVGhmoZf.cjs.map +0 -1
- package/dist/extra.cjs.map +0 -1
- package/dist/extra.js.map +0 -1
- package/dist/flex-5dR48zie.js +0 -183
- package/dist/flex-5dR48zie.js.map +0 -1
- package/dist/flex-oHl2EfYB.cjs +0 -18
- package/dist/flex-oHl2EfYB.cjs.map +0 -1
- package/dist/flow-D0e7hGXO.cjs +0 -2
- package/dist/flow-D0e7hGXO.cjs.map +0 -1
- package/dist/flow-DXYqC9OA.js +0 -340
- package/dist/flow-DXYqC9OA.js.map +0 -1
- package/dist/form-BlPiAPt7.cjs +0 -2
- package/dist/form-BlPiAPt7.cjs.map +0 -1
- package/dist/form-BxVM6JTn.js +0 -141
- package/dist/form-BxVM6JTn.js.map +0 -1
- package/dist/form.cjs.map +0 -1
- package/dist/form.js.map +0 -1
- package/dist/formField.mixin-BCGA7Ea3.js +0 -48
- package/dist/formField.mixin-BCGA7Ea3.js.map +0 -1
- package/dist/formField.mixin-BfJMifU9.cjs +0 -2
- package/dist/formField.mixin-BfJMifU9.cjs.map +0 -1
- package/dist/height-CfECBO2j.js +0 -44
- package/dist/height-CfECBO2j.js.map +0 -1
- package/dist/height-Z70qJYJK.cjs +0 -2
- package/dist/height-Z70qJYJK.cjs.map +0 -1
- package/dist/icon-DHEXr3c-.cjs +0 -49
- package/dist/icon-DHEXr3c-.cjs.map +0 -1
- package/dist/icon-DYpLoegR.js +0 -84
- package/dist/icon-DYpLoegR.js.map +0 -1
- package/dist/icon-button-CmZBLHWC.js +0 -164
- package/dist/icon-button-CmZBLHWC.js.map +0 -1
- package/dist/icon-button-IbSX8C98.cjs +0 -70
- package/dist/icon-button-IbSX8C98.cjs.map +0 -1
- package/dist/icons.cjs.map +0 -1
- package/dist/icons.js.map +0 -1
- package/dist/index-CCi1otmh.cjs +0 -2
- package/dist/index-CCi1otmh.cjs.map +0 -1
- package/dist/index-CW6PhEkx.js +0 -17
- package/dist/index-CW6PhEkx.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/input-BByjYlgl.cjs +0 -51
- package/dist/input-BByjYlgl.cjs.map +0 -1
- package/dist/input-D0cQ9DOY.js +0 -237
- package/dist/input-D0cQ9DOY.js.map +0 -1
- package/dist/input-chip-B5ErXgCB.js +0 -206
- package/dist/input-chip-B5ErXgCB.js.map +0 -1
- package/dist/input-chip-DkWaTciP.cjs +0 -147
- package/dist/input-chip-DkWaTciP.cjs.map +0 -1
- package/dist/input.cjs.map +0 -1
- package/dist/input.js.map +0 -1
- package/dist/intersection-CJxzz8c-.js +0 -15
- package/dist/intersection-CJxzz8c-.js.map +0 -1
- package/dist/intersection-CVvaDv96.cjs +0 -2
- package/dist/intersection-CVvaDv96.cjs.map +0 -1
- package/dist/json-BZVe74np.cjs +0 -12
- package/dist/json-BZVe74np.cjs.map +0 -1
- package/dist/json-PKewOWuJ.js +0 -51
- package/dist/json-PKewOWuJ.js.map +0 -1
- package/dist/layout.cjs.map +0 -1
- package/dist/layout.js.map +0 -1
- package/dist/lightbox-service-D-0JtxB1.cjs +0 -202
- package/dist/lightbox-service-D-0JtxB1.cjs.map +0 -1
- package/dist/lightbox-service-DZMnb1eU.js +0 -458
- package/dist/lightbox-service-DZMnb1eU.js.map +0 -1
- package/dist/lightbox.cjs.map +0 -1
- package/dist/lightbox.js.map +0 -1
- package/dist/list-B_2m7l3g.cjs +0 -17
- package/dist/list-B_2m7l3g.cjs.map +0 -1
- package/dist/list-CW56LV-v.js +0 -69
- package/dist/list-CW56LV-v.js.map +0 -1
- package/dist/list.cjs.map +0 -1
- package/dist/list.js.map +0 -1
- package/dist/litElement.mixin-CrpeGpZ7.cjs +0 -2
- package/dist/litElement.mixin-CrpeGpZ7.cjs.map +0 -1
- package/dist/litElement.mixin-DHZXtvYq.js +0 -15
- package/dist/litElement.mixin-DHZXtvYq.js.map +0 -1
- package/dist/mailbox.cjs.map +0 -1
- package/dist/mailbox.js.map +0 -1
- package/dist/map-2Hl60a0A.js +0 -175
- package/dist/map-2Hl60a0A.js.map +0 -1
- package/dist/map-DyPS9G7M.cjs +0 -81
- package/dist/map-DyPS9G7M.cjs.map +0 -1
- package/dist/map.cjs.map +0 -1
- package/dist/map.js.map +0 -1
- package/dist/media-CS8HpKnK.cjs +0 -152
- package/dist/media-CS8HpKnK.cjs.map +0 -1
- package/dist/media-DtWbcRxL.js +0 -244
- package/dist/media-DtWbcRxL.js.map +0 -1
- package/dist/menu-Caju5-zd.js +0 -60
- package/dist/menu-Caju5-zd.js.map +0 -1
- package/dist/menu-rX5RPAI2.cjs +0 -24
- package/dist/menu-rX5RPAI2.cjs.map +0 -1
- package/dist/menu.cjs.map +0 -1
- package/dist/menu.js.map +0 -1
- package/dist/nav-drawer.cjs.map +0 -1
- package/dist/nav-drawer.js.map +0 -1
- package/dist/navigation-bar.cjs.map +0 -1
- package/dist/navigation-bar.js.map +0 -1
- package/dist/navigation-rail-Ctketq5a.js +0 -256
- package/dist/navigation-rail-Ctketq5a.js.map +0 -1
- package/dist/navigation-rail-DC9_oSIM.cjs +0 -79
- package/dist/navigation-rail-DC9_oSIM.cjs.map +0 -1
- package/dist/notification-service-CUlfXqmj.js +0 -155
- package/dist/notification-service-CUlfXqmj.js.map +0 -1
- package/dist/notification-service-DknbpqTt.cjs +0 -19
- package/dist/notification-service-DknbpqTt.cjs.map +0 -1
- package/dist/notification.cjs.map +0 -1
- package/dist/notification.js.map +0 -1
- package/dist/notify-DJSOWTxv.js +0 -35
- package/dist/notify-DJSOWTxv.js.map +0 -1
- package/dist/notify-DickIEHW.cjs +0 -2
- package/dist/notify-DickIEHW.cjs.map +0 -1
- package/dist/number-B7aCRYnH.cjs +0 -2
- package/dist/number-B7aCRYnH.cjs.map +0 -1
- package/dist/number-BhTiptLA.js +0 -99
- package/dist/number-BhTiptLA.js.map +0 -1
- package/dist/option-Bng41-rY.js +0 -77
- package/dist/option-Bng41-rY.js.map +0 -1
- package/dist/option-DYT5Rkgy.cjs +0 -44
- package/dist/option-DYT5Rkgy.cjs.map +0 -1
- package/dist/option.cjs.map +0 -1
- package/dist/option.js.map +0 -1
- package/dist/page-BLn9gtSd.cjs +0 -20
- package/dist/page-BLn9gtSd.cjs.map +0 -1
- package/dist/page-D-ROcQDd.js +0 -48
- package/dist/page-D-ROcQDd.js.map +0 -1
- package/dist/payment-card-form-5UtfWzoW.cjs +0 -74
- package/dist/payment-card-form-5UtfWzoW.cjs.map +0 -1
- package/dist/payment-card-form-BJa4RgF2.js +0 -515
- package/dist/payment-card-form-BJa4RgF2.js.map +0 -1
- package/dist/pills-BS5rZ6C3.js +0 -346
- package/dist/pills-BS5rZ6C3.js.map +0 -1
- package/dist/pills-Blf7IAeq.cjs +0 -113
- package/dist/pills-Blf7IAeq.cjs.map +0 -1
- package/dist/progress-DlhYniW_.cjs +0 -35
- package/dist/progress-DlhYniW_.cjs.map +0 -1
- package/dist/progress-yTIX6EqC.js +0 -56
- package/dist/progress-yTIX6EqC.js.map +0 -1
- package/dist/progress.cjs.map +0 -1
- package/dist/progress.js.map +0 -1
- package/dist/provide-BxZ2kn_p.cjs +0 -2
- package/dist/provide-BxZ2kn_p.cjs.map +0 -1
- package/dist/provide-tcktw8xB.js +0 -100
- package/dist/provide-tcktw8xB.js.map +0 -1
- package/dist/qr-scanner-DOs7uNS_.cjs +0 -29
- package/dist/qr-scanner-DOs7uNS_.cjs.map +0 -1
- package/dist/qr-scanner-DjZ8mgHV.js +0 -743
- package/dist/qr-scanner-DjZ8mgHV.js.map +0 -1
- package/dist/radio-button-N_PrrxKB.cjs +0 -41
- package/dist/radio-button-N_PrrxKB.cjs.map +0 -1
- package/dist/radio-button-me3SRHGu.js +0 -115
- package/dist/radio-button-me3SRHGu.js.map +0 -1
- package/dist/radio-group.cjs.map +0 -1
- package/dist/radio-group.js.map +0 -1
- package/dist/ripple-BgJXbNSP.js +0 -124
- package/dist/ripple-BgJXbNSP.js.map +0 -1
- package/dist/ripple-x6sTX02K.cjs +0 -16
- package/dist/ripple-x6sTX02K.cjs.map +0 -1
- package/dist/rxjs-utils.cjs.map +0 -1
- package/dist/rxjs-utils.js.map +0 -1
- package/dist/schmancy-steps-container-J6P-NNNj.js +0 -156
- package/dist/schmancy-steps-container-J6P-NNNj.js.map +0 -1
- package/dist/schmancy-steps-container-T57BKMzi.cjs +0 -70
- package/dist/schmancy-steps-container-T57BKMzi.cjs.map +0 -1
- package/dist/scroll-C_gfUgjn.js +0 -87
- package/dist/scroll-C_gfUgjn.js.map +0 -1
- package/dist/scroll-CecsowP7.cjs +0 -27
- package/dist/scroll-CecsowP7.cjs.map +0 -1
- package/dist/search-B1s7thB0.cjs +0 -2
- package/dist/search-B1s7thB0.cjs.map +0 -1
- package/dist/search-DxxnLa5u.js +0 -95
- package/dist/search-DxxnLa5u.js.map +0 -1
- package/dist/select-BBA0gBHf.js +0 -280
- package/dist/select-BBA0gBHf.js.map +0 -1
- package/dist/select-D9oCjv7N.cjs +0 -57
- package/dist/select-D9oCjv7N.cjs.map +0 -1
- package/dist/select.cjs.map +0 -1
- package/dist/select.js.map +0 -1
- package/dist/selector-hook-9w2auh2O.cjs +0 -2
- package/dist/selector-hook-9w2auh2O.cjs.map +0 -1
- package/dist/selector-hook-CHV4kDMd.js +0 -319
- package/dist/selector-hook-CHV4kDMd.js.map +0 -1
- package/dist/sheet-0oUfBmXX.cjs +0 -15
- package/dist/sheet-0oUfBmXX.cjs.map +0 -1
- package/dist/sheet-CNcDT3VP.js +0 -97
- package/dist/sheet-CNcDT3VP.js.map +0 -1
- package/dist/sheet.cjs.map +0 -1
- package/dist/sheet.js.map +0 -1
- package/dist/sheet.service-2MobB-9z.js +0 -68
- package/dist/sheet.service-2MobB-9z.js.map +0 -1
- package/dist/sheet.service-su_7yDQ-.cjs +0 -2
- package/dist/sheet.service-su_7yDQ-.cjs.map +0 -1
- package/dist/slider-CV-Ehp_5.cjs +0 -83
- package/dist/slider-CV-Ehp_5.cjs.map +0 -1
- package/dist/slider-CkE-iFUy.js +0 -161
- package/dist/slider-CkE-iFUy.js.map +0 -1
- package/dist/sound.service-Nza4c6wv.js +0 -102
- package/dist/sound.service-Nza4c6wv.js.map +0 -1
- package/dist/sound.service-eRirZw59.cjs +0 -2
- package/dist/sound.service-eRirZw59.cjs.map +0 -1
- package/dist/spinner-Bfn8KC-9.cjs +0 -135
- package/dist/spinner-Bfn8KC-9.cjs.map +0 -1
- package/dist/spinner-DiMbWXp9.js +0 -168
- package/dist/spinner-DiMbWXp9.js.map +0 -1
- package/dist/store.cjs.map +0 -1
- package/dist/store.js.map +0 -1
- package/dist/suggestion-chip-CEDqUNoS.js +0 -481
- package/dist/suggestion-chip-CEDqUNoS.js.map +0 -1
- package/dist/suggestion-chip-HhsLtZXR.cjs +0 -271
- package/dist/suggestion-chip-HhsLtZXR.cjs.map +0 -1
- package/dist/surface-CW3H23Va.cjs +0 -199
- package/dist/surface-CW3H23Va.cjs.map +0 -1
- package/dist/surface-eBfnSwQS.js +0 -220
- package/dist/surface-eBfnSwQS.js.map +0 -1
- package/dist/surface.cjs.map +0 -1
- package/dist/surface.js.map +0 -1
- package/dist/table-D0tiSL_u.cjs +0 -64
- package/dist/table-D0tiSL_u.cjs.map +0 -1
- package/dist/table-Dmo4TvTx.js +0 -561
- package/dist/table-Dmo4TvTx.js.map +0 -1
- package/dist/table.cjs.map +0 -1
- package/dist/table.js.map +0 -1
- package/dist/tabs-compatibility-Bit6y6en.js +0 -104
- package/dist/tabs-compatibility-Bit6y6en.js.map +0 -1
- package/dist/tabs-compatibility-Vq_2-ekz.cjs +0 -35
- package/dist/tabs-compatibility-Vq_2-ekz.cjs.map +0 -1
- package/dist/tabs.cjs.map +0 -1
- package/dist/tabs.js.map +0 -1
- package/dist/tailwind.mixin-Bp_PR6yc.js +0 -67
- package/dist/tailwind.mixin-Bp_PR6yc.js.map +0 -1
- package/dist/tailwind.mixin-Cp4PyXok.cjs +0 -2
- package/dist/tailwind.mixin-Cp4PyXok.cjs.map +0 -1
- package/dist/teleport.cjs.map +0 -1
- package/dist/teleport.js.map +0 -1
- package/dist/textarea-B1d1QCqT.js +0 -134
- package/dist/textarea-B1d1QCqT.js.map +0 -1
- package/dist/textarea-DG8CHhZA.cjs +0 -44
- package/dist/textarea-DG8CHhZA.cjs.map +0 -1
- package/dist/textarea.cjs.map +0 -1
- package/dist/textarea.js.map +0 -1
- package/dist/theme-button-CPL6Eaqd.cjs +0 -9
- package/dist/theme-button-CPL6Eaqd.cjs.map +0 -1
- package/dist/theme-button-CrLuMQNe.js +0 -27
- package/dist/theme-button-CrLuMQNe.js.map +0 -1
- package/dist/theme-button.cjs.map +0 -1
- package/dist/theme-button.js.map +0 -1
- package/dist/theme-controller-boat-CXbNJSI3.cjs +0 -178
- package/dist/theme-controller-boat-CXbNJSI3.cjs.map +0 -1
- package/dist/theme-controller-boat-CzSmjyKq.js +0 -1159
- package/dist/theme-controller-boat-CzSmjyKq.js.map +0 -1
- package/dist/theme.cjs.map +0 -1
- package/dist/theme.events-CPSLaOlR.js +0 -6
- package/dist/theme.events-CPSLaOlR.js.map +0 -1
- package/dist/theme.events-Car6U_SQ.cjs +0 -2
- package/dist/theme.events-Car6U_SQ.cjs.map +0 -1
- package/dist/theme.interface-BLfE5J_1.js +0 -5
- package/dist/theme.interface-BLfE5J_1.js.map +0 -1
- package/dist/theme.interface-BMeNadVb.cjs +0 -2
- package/dist/theme.interface-BMeNadVb.cjs.map +0 -1
- package/dist/theme.js.map +0 -1
- package/dist/timezone-4vwX0BgA.js +0 -112
- package/dist/timezone-4vwX0BgA.js.map +0 -1
- package/dist/timezone-BxvQcqe1.cjs +0 -32
- package/dist/timezone-BxvQcqe1.cjs.map +0 -1
- package/dist/tooltip-CjdvBf4X.js +0 -119
- package/dist/tooltip-CjdvBf4X.js.map +0 -1
- package/dist/tooltip-ZtnGjoJd.cjs +0 -7
- package/dist/tooltip-ZtnGjoJd.cjs.map +0 -1
- package/dist/tree-CBEjV7jP.js +0 -65
- package/dist/tree-CBEjV7jP.js.map +0 -1
- package/dist/tree-DP5U00NA.cjs +0 -27
- package/dist/tree-DP5U00NA.cjs.map +0 -1
- package/dist/tslib.es6-DgOcxv4s.cjs +0 -2
- package/dist/tslib.es6-DgOcxv4s.cjs.map +0 -1
- package/dist/tslib.es6-ujVQHAQ4.js +0 -10
- package/dist/tslib.es6-ujVQHAQ4.js.map +0 -1
- package/dist/typewriter-C6kFjLcX.cjs +0 -124
- package/dist/typewriter-C6kFjLcX.cjs.map +0 -1
- package/dist/typewriter-Eo5qXoGC.js +0 -555
- package/dist/typewriter-Eo5qXoGC.js.map +0 -1
- package/dist/typewriter.cjs.map +0 -1
- package/dist/typewriter.js.map +0 -1
- package/dist/typography-C_1gdM2I.js +0 -264
- package/dist/typography-C_1gdM2I.js.map +0 -1
- package/dist/typography-DGyjlLCE.cjs +0 -243
- package/dist/typography-DGyjlLCE.cjs.map +0 -1
- package/dist/utils-C38P63L6.cjs +0 -2
- package/dist/utils-C38P63L6.cjs.map +0 -1
- package/dist/utils-CYOVFxSx.js +0 -150
- package/dist/utils-CYOVFxSx.js.map +0 -1
- package/dist/utils.cjs.map +0 -1
- package/dist/utils.js.map +0 -1
- package/types/src/animated-text/animated-text.d.ts +0 -30
- package/types/src/animated-text/index.d.ts +0 -1
- 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":""}
|
package/dist/notification.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notification.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
package/dist/notify-DJSOWTxv.js
DELETED
|
@@ -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;"}
|
package/dist/notify-DickIEHW.cjs
DELETED
|
@@ -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"}
|
package/dist/number-B7aCRYnH.cjs
DELETED
|
@@ -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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"}
|