@mhmo91/schmancy 0.8.6 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -1
- package/ai/animation.md +64 -0
- package/ai/area.md +35 -256
- package/ai/autocomplete.md +44 -162
- package/ai/avatar.md +47 -178
- package/ai/badge.md +41 -108
- package/ai/busy.md +25 -184
- package/ai/button.md +52 -150
- package/ai/card.md +42 -215
- package/ai/checkbox.md +32 -135
- package/ai/chips.md +73 -383
- package/ai/code-highlight.md +33 -226
- package/ai/content-drawer.md +65 -232
- package/ai/date-range.md +43 -198
- package/ai/details.md +48 -453
- package/ai/dialog.md +55 -164
- package/ai/directives.md +258 -405
- package/ai/divider.md +15 -137
- package/ai/dropdown.md +44 -235
- package/ai/form.md +41 -137
- package/ai/icons.md +31 -235
- package/ai/input.md +50 -210
- package/ai/lightbox.md +25 -370
- package/ai/list.md +51 -130
- package/ai/menu.md +25 -134
- package/ai/mixins.md +70 -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/progress.md +26 -65
- package/ai/radio-group.md +45 -189
- package/ai/select.md +49 -209
- package/ai/sheet.md +74 -506
- package/ai/steps.md +30 -392
- package/ai/store.md +60 -247
- package/ai/surface.md +58 -245
- package/ai/table.md +56 -330
- package/ai/tabs.md +31 -176
- package/ai/textarea.md +48 -232
- package/ai/theme.md +40 -1089
- package/ai/tooltip.md +35 -146
- package/ai/tree.md +45 -271
- package/ai/typography.md +43 -296
- package/custom-elements.json +10955 -0
- package/dist/ai/animation.md +64 -0
- package/dist/ai/area.md +35 -256
- package/dist/ai/autocomplete.md +44 -162
- package/dist/ai/avatar.md +47 -178
- package/dist/ai/badge.md +41 -108
- package/dist/ai/busy.md +25 -184
- package/dist/ai/button.md +52 -150
- package/dist/ai/card.md +42 -215
- 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/content-drawer.md +65 -232
- package/dist/ai/date-range.md +43 -198
- package/dist/ai/details.md +48 -453
- package/dist/ai/dialog.md +55 -164
- package/dist/ai/directives.md +258 -405
- package/dist/ai/divider.md +15 -137
- package/dist/ai/dropdown.md +44 -235
- package/dist/ai/form.md +41 -137
- package/dist/ai/icons.md +31 -235
- package/dist/ai/input.md +50 -210
- package/dist/ai/lightbox.md +25 -370
- package/dist/ai/list.md +51 -130
- package/dist/ai/menu.md +25 -134
- package/dist/ai/mixins.md +70 -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/progress.md +26 -65
- package/dist/ai/radio-group.md +45 -189
- package/dist/ai/select.md +49 -209
- package/dist/ai/sheet.md +74 -506
- package/dist/ai/steps.md +30 -392
- package/dist/ai/store.md +60 -247
- package/dist/ai/surface.md +58 -245
- package/dist/ai/table.md +56 -330
- package/dist/ai/tabs.md +31 -176
- package/dist/ai/textarea.md +48 -232
- package/dist/ai/theme.md +40 -1089
- package/dist/ai/tooltip.md +35 -146
- package/dist/ai/tree.md +45 -271
- package/dist/ai/typography.md +43 -296
- 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-1h9xEpTc.cjs +12 -0
- package/dist/area-1h9xEpTc.cjs.map +1 -0
- package/dist/area-DbBcfm5p.js +590 -0
- package/dist/area-DbBcfm5p.js.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-DDVsegep.js +378 -0
- package/dist/autocomplete-DDVsegep.js.map +1 -0
- package/dist/autocomplete-OE70CcYP.cjs +111 -0
- package/dist/autocomplete-OE70CcYP.cjs.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-Cf1oJ0ka.cjs +80 -0
- package/dist/boat-Cf1oJ0ka.cjs.map +1 -0
- package/dist/boat-T8Ov4-yA.js +347 -0
- package/dist/boat-T8Ov4-yA.js.map +1 -0
- package/dist/boat.cjs +1 -2
- package/dist/boat.js +2 -5
- package/dist/busy-BD6D5P-l.js +167 -0
- package/dist/busy-BD6D5P-l.js.map +1 -0
- package/dist/busy-DF9wztWL.cjs +134 -0
- package/dist/busy-DF9wztWL.cjs.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-Csvu8UJ9.cjs +177 -0
- package/dist/card-Csvu8UJ9.cjs.map +1 -0
- package/dist/card-DM_miKMd.js +284 -0
- package/dist/card-DM_miKMd.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-BgGtMaMR.js +610 -0
- package/dist/checkbox-BgGtMaMR.js.map +1 -0
- package/dist/checkbox-sJujc_ga.cjs +39 -0
- package/dist/checkbox-sJujc_ga.cjs.map +1 -0
- package/dist/checkbox.cjs +1 -2
- package/dist/checkbox.js +2 -5
- package/dist/chips-BZaH4wez.js +645 -0
- package/dist/chips-BZaH4wez.js.map +1 -0
- package/dist/chips-D_e6wijp.cjs +253 -0
- package/dist/chips-D_e6wijp.cjs.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-DlhERv_O.cjs +190 -0
- package/dist/code-highlight-DlhERv_O.cjs.map +1 -0
- package/dist/code-highlight-Q3cc6ukq.js +290 -0
- package/dist/code-highlight-Q3cc6ukq.js.map +1 -0
- package/dist/code-highlight.cjs +1 -2
- package/dist/code-highlight.js +2 -7
- package/dist/components-CRhkB3V2.js +730 -0
- package/dist/components-CRhkB3V2.js.map +1 -0
- package/dist/components-DnlEYYDs.cjs +73 -0
- package/dist/components-DnlEYYDs.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-C0IYnvHF.js +946 -0
- package/dist/date-range-C0IYnvHF.js.map +1 -0
- package/dist/date-range-cymbTDnl.cjs +131 -0
- package/dist/date-range-cymbTDnl.cjs.map +1 -0
- package/dist/date-range-inline-0ENN4Plz.js +267 -0
- package/dist/date-range-inline-0ENN4Plz.js.map +1 -0
- package/dist/date-range-inline-Cfwt-ReH.cjs +43 -0
- package/dist/date-range-inline-Cfwt-ReH.cjs.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-D1dVP93u.js +346 -0
- package/dist/delay-D1dVP93u.js.map +1 -0
- package/dist/delay-D6mQLUp-.cjs +9 -0
- package/dist/delay-D6mQLUp-.cjs.map +1 -0
- package/dist/delay.cjs +1 -2
- package/dist/delay.js +2 -6
- package/dist/details-CPT_Mi4e.cjs +168 -0
- package/dist/details-CPT_Mi4e.cjs.map +1 -0
- package/dist/details-Cv4OOrVW.js +293 -0
- package/dist/details-Cv4OOrVW.js.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-DDC-kND3.js +87 -0
- package/dist/divider-DDC-kND3.js.map +1 -0
- package/dist/divider-nZ_2to2N.cjs +57 -0
- package/dist/divider-nZ_2to2N.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-Bp3N8CcL.js +336 -0
- package/dist/expand-Bp3N8CcL.js.map +1 -0
- package/dist/expand-Crdts9q_.cjs +141 -0
- package/dist/expand-Crdts9q_.cjs.map +1 -0
- package/dist/expand.cjs +1 -0
- package/dist/expand.js +2 -0
- package/dist/extra-B0IZCg0t.cjs +31 -0
- package/dist/extra-B0IZCg0t.cjs.map +1 -0
- package/dist/extra-DupwhQhC.js +3435 -0
- package/dist/extra-DupwhQhC.js.map +1 -0
- package/dist/extra.cjs +1 -2
- package/dist/extra.js +2 -6
- package/dist/float-CQoJ_oSB.cjs +1 -0
- package/dist/float-CQoJ_oSB.cjs.map +1 -0
- package/dist/float-Dqdc1_S5.js +5 -0
- package/dist/float-Dqdc1_S5.js.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-CW5XNuTg.js +270 -0
- package/dist/form-CW5XNuTg.js.map +1 -0
- package/dist/form-CvoLqMY7.cjs +1 -0
- package/dist/form-CvoLqMY7.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-BLQHEbIk.cjs +52 -0
- package/dist/icons-BLQHEbIk.cjs.map +1 -0
- package/dist/icons-Cpfdb7sA.js +161 -0
- package/dist/icons-Cpfdb7sA.js.map +1 -0
- package/dist/icons.cjs +1 -2
- package/dist/icons.js +1 -2
- package/dist/iframe-DG6HVYdy.js +44 -0
- package/dist/iframe-DG6HVYdy.js.map +1 -0
- package/dist/iframe-sJGXBbxT.cjs +24 -0
- package/dist/iframe-sJGXBbxT.cjs.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-BevxycIt.js +364 -0
- package/dist/input-BevxycIt.js.map +1 -0
- package/dist/input-DGTdmp1Q.cjs +51 -0
- package/dist/input-DGTdmp1Q.cjs.map +1 -0
- package/dist/input-chip-BWS-SFU4.js +301 -0
- package/dist/input-chip-BWS-SFU4.js.map +1 -0
- package/dist/input-chip-CKVtjInb.cjs +146 -0
- package/dist/input-chip-CKVtjInb.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-CQdd8UCr.cjs +17 -0
- package/dist/layout-CQdd8UCr.cjs.map +1 -0
- package/dist/layout-DxLjlDfr.js +267 -0
- package/dist/layout-DxLjlDfr.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-Bjc55lHH.js +678 -0
- package/dist/lightbox-Bjc55lHH.js.map +1 -0
- package/dist/lightbox-C_863_XU.cjs +202 -0
- package/dist/lightbox-C_863_XU.cjs.map +1 -0
- package/dist/lightbox.cjs +1 -2
- package/dist/lightbox.js +2 -8
- package/dist/list-BAqhlzZd.js +105 -0
- package/dist/list-BAqhlzZd.js.map +1 -0
- package/dist/list-CaXzdN9_.cjs +40 -0
- package/dist/list-CaXzdN9_.cjs.map +1 -0
- package/dist/list.cjs +1 -2
- package/dist/list.js +2 -7
- package/dist/litElement.mixin-DN6X9_wD.cjs +1 -0
- package/dist/litElement.mixin-DN6X9_wD.cjs.map +1 -0
- package/dist/litElement.mixin-Dktub0ri.js +12 -0
- package/dist/litElement.mixin-Dktub0ri.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-BvsLXpvy.cjs +1142 -0
- package/dist/mailbox-BvsLXpvy.cjs.map +1 -0
- package/dist/mailbox-DuMUH4f3.js +1584 -0
- package/dist/mailbox-DuMUH4f3.js.map +1 -0
- package/dist/mailbox.cjs +1 -2
- package/dist/mailbox.js +2 -9
- package/dist/map-C2Msv9TQ.cjs +80 -0
- package/dist/map-C2Msv9TQ.cjs.map +1 -0
- package/dist/map-DkIy1ph7.js +205 -0
- package/dist/map-DkIy1ph7.js.map +1 -0
- package/dist/map.cjs +1 -2
- package/dist/map.js +2 -5
- package/dist/menu-DEeDKW5U.js +51 -0
- package/dist/menu-DEeDKW5U.js.map +1 -0
- package/dist/menu-Mm71lv9k.cjs +23 -0
- package/dist/menu-Mm71lv9k.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-K-ug8cKk.js +304 -0
- package/dist/notification-K-ug8cKk.js.map +1 -0
- package/dist/notification-cTgXEDZ0.cjs +23 -0
- package/dist/notification-cTgXEDZ0.cjs.map +1 -0
- package/dist/notification.cjs +1 -2
- package/dist/notification.js +2 -9
- package/dist/option-5rEOmtAm.cjs +43 -0
- package/dist/option-5rEOmtAm.cjs.map +1 -0
- package/dist/option-TFSKvSjT.js +97 -0
- package/dist/option-TFSKvSjT.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-Cta3nM-f.js +128 -0
- package/dist/progress-Cta3nM-f.js.map +1 -0
- package/dist/progress-iu0AMbSg.cjs +51 -0
- package/dist/progress-iu0AMbSg.cjs.map +1 -0
- package/dist/progress.cjs +1 -2
- package/dist/progress.js +1 -2
- package/dist/provide-BEyyKlDM.cjs +1 -0
- package/dist/provide-BEyyKlDM.cjs.map +1 -0
- package/dist/provide-D69zybs5.js +107 -0
- package/dist/provide-D69zybs5.js.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-BjSWmYJC.js +105 -0
- package/dist/radio-group-BjSWmYJC.js.map +1 -0
- package/dist/radio-group-DKPN0T50.cjs +40 -0
- package/dist/radio-group-DKPN0T50.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-mayaGGpE.cjs +26 -0
- package/dist/scroll-mayaGGpE.cjs.map +1 -0
- package/dist/scroll-tG1vaRFO.js +112 -0
- package/dist/scroll-tG1vaRFO.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-C4YK5Arj.cjs +56 -0
- package/dist/select-C4YK5Arj.cjs.map +1 -0
- package/dist/select-CepryGGP.js +305 -0
- package/dist/select-CepryGGP.js.map +1 -0
- package/dist/select.cjs +1 -2
- package/dist/select.js +2 -5
- package/dist/sheet-Cy4C2-kG.cjs +35 -0
- package/dist/sheet-Cy4C2-kG.cjs.map +1 -0
- package/dist/sheet-D2uT95S1.js +168 -0
- package/dist/sheet-D2uT95S1.js.map +1 -0
- package/dist/sheet.cjs +1 -2
- package/dist/sheet.js +3 -7
- package/dist/sheet.service-Dv5Hwj3k.cjs +1 -0
- package/dist/sheet.service-Dv5Hwj3k.cjs.map +1 -0
- package/dist/sheet.service-Os8KJGSE.js +86 -0
- package/dist/sheet.service-Os8KJGSE.js.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-BLcmKlCH.js +1244 -0
- package/dist/src-BLcmKlCH.js.map +1 -0
- package/dist/src-tfU0akqI.cjs +269 -0
- package/dist/src-tfU0akqI.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-CiiIYeJN.cjs +7 -0
- package/dist/surface-CiiIYeJN.cjs.map +1 -0
- package/dist/surface-fXvRpS6s.js +21 -0
- package/dist/surface-fXvRpS6s.js.map +1 -0
- package/dist/surface.cjs +1 -2
- package/dist/surface.js +2 -6
- package/dist/surface.mixin-C4hbgyaP.cjs +297 -0
- package/dist/surface.mixin-C4hbgyaP.cjs.map +1 -0
- package/dist/surface.mixin-DBuxL5aL.js +320 -0
- package/dist/surface.mixin-DBuxL5aL.js.map +1 -0
- package/dist/table-BRVKlNjl.cjs +63 -0
- package/dist/table-BRVKlNjl.cjs.map +1 -0
- package/dist/table-BeXnwSsq.js +631 -0
- package/dist/table-BeXnwSsq.js.map +1 -0
- package/dist/table.cjs +1 -2
- package/dist/table.js +2 -6
- package/dist/tabs-CBU9Ctqm.cjs +31 -0
- package/dist/tabs-CBU9Ctqm.cjs.map +1 -0
- package/dist/tabs-y708NWQ2.js +125 -0
- package/dist/tabs-y708NWQ2.js.map +1 -0
- package/dist/tabs.cjs +1 -2
- package/dist/tabs.js +1 -2
- package/dist/tailwind.mixin-C4cx3IOr.js +225 -0
- package/dist/tailwind.mixin-C4cx3IOr.js.map +1 -0
- package/dist/tailwind.mixin-DGiyLbEi.cjs +2 -0
- package/dist/tailwind.mixin-DGiyLbEi.cjs.map +1 -0
- package/dist/teleport.cjs +1 -2
- package/dist/teleport.js +2 -8
- package/dist/textarea-BhAoJg8c.cjs +35 -0
- package/dist/textarea-BhAoJg8c.cjs.map +1 -0
- package/dist/textarea-Bl8-gQEJ.js +195 -0
- package/dist/textarea-Bl8-gQEJ.js.map +1 -0
- package/dist/textarea.cjs +1 -2
- package/dist/textarea.js +1 -2
- package/dist/theme-C-vdR-Ic.cjs +181 -0
- package/dist/theme-C-vdR-Ic.cjs.map +1 -0
- package/dist/theme-DZUpYJn-.js +4121 -0
- package/dist/theme-DZUpYJn-.js.map +1 -0
- package/dist/theme-button-CwrvpOMK.js +19 -0
- package/dist/theme-button-CwrvpOMK.js.map +1 -0
- package/dist/theme-button-Cx1iKh7G.cjs +8 -0
- package/dist/theme-button-Cx1iKh7G.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-CXQIzqPV.cjs +123 -0
- package/dist/typewriter-CXQIzqPV.cjs.map +1 -0
- package/dist/typewriter-mxVw5dFn.js +700 -0
- package/dist/typewriter-mxVw5dFn.js.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-DFMlB1Tq.cjs +59 -0
- package/dist/window-DFMlB1Tq.cjs.map +1 -0
- package/dist/window-EWYJJC_H.js +548 -0
- package/dist/window-EWYJJC_H.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/audio.md +0 -241
- package/ai/boat.md +0 -53
- package/ai/component-relationships.md +0 -93
- package/ai/context.md +0 -572
- package/ai/countries.md +0 -271
- package/ai/date-range-inline.md +0 -262
- package/ai/delay.md +0 -158
- package/ai/index.md +0 -112
- package/ai/layout.md +0 -187
- package/ai/mailbox.md +0 -530
- package/ai/map.md +0 -234
- package/ai/navigation-bar-item.md +0 -259
- package/ai/option.md +0 -173
- package/ai/payment-card-form.md +0 -242
- package/ai/slider.md +0 -227
- package/ai/spinner.md +0 -165
- package/ai/teleport.md +0 -197
- package/ai/template.md +0 -144
- package/ai/theme-button.md +0 -173
- package/ai/timezone.md +0 -276
- package/ai/typewriter.md +0 -335
- 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/audio.md +0 -241
- package/dist/ai/boat.md +0 -53
- 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/date-range-inline.md +0 -262
- package/dist/ai/delay.md +0 -158
- package/dist/ai/index.md +0 -112
- package/dist/ai/layout.md +0 -187
- package/dist/ai/mailbox.md +0 -530
- package/dist/ai/map.md +0 -234
- package/dist/ai/navigation-bar-item.md +0 -259
- package/dist/ai/option.md +0 -173
- package/dist/ai/payment-card-form.md +0 -242
- package/dist/ai/slider.md +0 -227
- package/dist/ai/spinner.md +0 -165
- package/dist/ai/teleport.md +0 -197
- package/dist/ai/template.md +0 -144
- package/dist/ai/theme-button.md +0 -173
- package/dist/ai/timezone.md +0 -276
- package/dist/ai/typewriter.md +0 -335
- 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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-service-C86xTS8q.cjs","sources":["../src/dialog/dialog-events.ts","../src/dialog/dialog-service.ts"],"sourcesContent":["// Dialog discovery event constants\r\nexport const DialogWhereAreYouRicky = 'are-you-there-dialog'\r\nexport const DialogHereMorty = 'yes-dialog-here'\r\n\r\n// Event interfaces\r\nexport interface DialogWhereAreYouRickyEvent extends CustomEvent {\r\n detail: {\r\n uid: string\r\n }\r\n}\r\n\r\nexport interface DialogHereMortyEvent extends CustomEvent {\r\n detail: {\r\n dialog: any // Will be schmancy-dialog instance\r\n theme?: any // Will be schmancy-theme instance\r\n }\r\n}","import { render, TemplateResult } from 'lit'\nimport { defaultIfEmpty, forkJoin, fromEvent, map, of, Subject, Subscription, switchMap, takeUntil, tap, timer } from 'rxjs'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.events'\nimport { SchmancyDialog } from './dialog.component'\nimport { DialogHereMorty, DialogHereMortyEvent, DialogWhereAreYouRicky } from './dialog-events'\n\n/**\n * Dialog service options interface\n */\nexport interface DialogOptions {\n\ttitle?: string\n\tsubtitle?: string\n\tmessage?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tvariant?: 'default' | 'danger'\n\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\tonConfirm?: () => void\n\tonCancel?: () => void\n\thideActions?: boolean\n\ttargetContainer?: HTMLElement\n}\n\ninterface DialogTarget {\n\toptions: DialogOptions\n\ttype: 'confirm' | 'component'\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\tresolve?: (value: boolean) => void\n\treject?: (reason?: unknown) => void\n}\n\n/**\n * Dialog service for centralized dialog management.\n * Uses a single unified SchmancyDialog component for all dialog types.\n */\nexport class DialogService {\n\tprivate static instance: DialogService\n\n\tprivate static DEFAULT_OPTIONS: Partial<DialogOptions> = {\n\t\ttitle: undefined,\n\t\tsubtitle: undefined,\n\t\tconfirmText: undefined,\n\t\tcancelText: undefined,\n\t\tvariant: 'default',\n\t}\n\n\t// Single array to track all dialogs\n\tprivate activeDialogs: SchmancyDialog[] = []\n\n\tprivate dialogSubject = new Subject<DialogTarget>()\n\tprivate dismissSubject = new Subject<string>()\n\n\tprivate constructor() {\n\t\tthis.setupDialogOpeningLogic()\n\t\tthis.setupDialogDismissLogic()\n\t}\n\n\tpublic static getInstance(): DialogService {\n\t\tif (!DialogService.instance) {\n\t\t\tDialogService.instance = new DialogService()\n\t\t}\n\t\treturn DialogService.instance\n\t}\n\n\tprivate setupDialogOpeningLogic() {\n\t\tthis.dialogSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<ThemeHereIAmEvent>(window, ThemeHereIAm).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail.theme),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\tconst uid = `dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(ThemeWhereAreYou, {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t;(target as { uid?: string }).uid = uid\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\tmap(([theme, target]) => {\n\t\t\t\t\tconst targetContainer =\n\t\t\t\t\t\ttheme ||\n\t\t\t\t\t\ttarget.options.targetContainer ||\n\t\t\t\t\t\t(document.querySelector('schmancy-theme') as HTMLElement) ||\n\t\t\t\t\t\tdocument.body\n\n\t\t\t\t\tconst uid = (target as { uid?: string }).uid!\n\t\t\t\t\tconst dialog = document.createElement('schmancy-dialog') as SchmancyDialog\n\t\t\t\t\tdialog.setAttribute('uid', uid)\n\t\t\t\t\ttargetContainer.appendChild(dialog)\n\n\t\t\t\t\treturn { dialog, target }\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\tconst options = target.options\n\n\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t// Configure for confirm mode\n\t\t\t\t\t\tdialog.title = options.title\n\t\t\t\t\t\tdialog.subtitle = options.subtitle\n\t\t\t\t\t\tdialog.message = options.message\n\t\t\t\t\t\tdialog.confirmText = options.confirmText ?? 'Confirm'\n\t\t\t\t\t\tdialog.cancelText = options.cancelText ?? 'Cancel'\n\t\t\t\t\t\tdialog.variant = options.variant ?? 'default'\n\n\t\t\t\t\t\t// Handle custom content slot\n\t\t\t\t\t\tif (options.content) {\n\t\t\t\t\t\t\tconst contentContainer = document.createElement('div')\n\t\t\t\t\t\t\tcontentContainer.slot = 'content'\n\n\t\t\t\t\t\t\tif (typeof options.content === 'function') {\n\t\t\t\t\t\t\t\tconst result = options.content()\n\t\t\t\t\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\t\t\t\t\tcontentContainer.appendChild(result)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trender(result, contentContainer)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (options.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tcontentContainer.appendChild(options.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(options.content, contentContainer)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdialog.appendChild(contentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Configure for content mode\n\t\t\t\t\t\tdialog.hideActions = true\n\n\t\t\t\t\t\tif (target.content) {\n\t\t\t\t\t\t\tconst contentContainer = document.createElement('div')\n\t\t\t\t\t\t\tcontentContainer.style.height = '100%'\n\t\t\t\t\t\t\tcontentContainer.style.width = '100%'\n\t\t\t\t\t\t\tcontentContainer.classList.add('schmancy-dialog-content-container')\n\n\t\t\t\t\t\t\tif (typeof target.content === 'function') {\n\t\t\t\t\t\t\t\tconst result = target.content()\n\t\t\t\t\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\t\t\t\t\tcontentContainer.appendChild(result)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trender(result, contentContainer)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tcontentContainer.appendChild(target.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(target.content, contentContainer)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdialog.appendChild(contentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.activeDialogs.push(dialog)\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\tconst position = target.options.position || this.getCenteredPosition()\n\n\t\t\t\t\tdialog\n\t\t\t\t\t\t.show(position)\n\t\t\t\t\t\t.then((result: boolean) => {\n\t\t\t\t\t\t\ttarget.resolve?.(result)\n\n\t\t\t\t\t\t\t// Cleanup\n\t\t\t\t\t\t\tconst index = this.activeDialogs.indexOf(dialog)\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\tthis.activeDialogs.splice(index, 1)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Clean up content\n\t\t\t\t\t\t\tconst contentEl = dialog.querySelector('[slot=\"content\"]')\n\t\t\t\t\t\t\tif (contentEl) dialog.removeChild(contentEl)\n\n\t\t\t\t\t\t\tconst contentContainer = dialog.querySelector('.schmancy-dialog-content-container')\n\t\t\t\t\t\t\tif (contentContainer?.parentNode) {\n\t\t\t\t\t\t\t\tcontentContainer.parentNode.removeChild(contentContainer)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Clean up event subscriptions\n\t\t\t\t\t\t\tconst eventSubscriptions = (dialog as unknown as { _eventSubscriptions?: Subscription[] })\n\t\t\t\t\t\t\t\t._eventSubscriptions\n\t\t\t\t\t\t\teventSubscriptions?.forEach(sub => sub.unsubscribe())\n\n\t\t\t\t\t\t\t// Remove from DOM\n\t\t\t\t\t\t\tdialog.parentElement?.removeChild(dialog)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\t\t\ttarget.reject?.(error)\n\t\t\t\t\t\t})\n\n\t\t\t\t\t// Set up event listeners\n\t\t\t\t\tconst eventSubscriptions: Subscription[] = []\n\n\t\t\t\t\tif (target.options.onConfirm) {\n\t\t\t\t\t\tconst confirmSub = fromEvent(dialog, 'confirm').subscribe(() => {\n\t\t\t\t\t\t\ttarget.options.onConfirm!()\n\t\t\t\t\t\t\tconfirmSub.unsubscribe()\n\t\t\t\t\t\t})\n\t\t\t\t\t\teventSubscriptions.push(confirmSub)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target.options.onCancel) {\n\t\t\t\t\t\tconst cancelSub = fromEvent(dialog, 'cancel').subscribe(() => {\n\t\t\t\t\t\t\ttarget.options.onCancel!()\n\t\t\t\t\t\t\tcancelSub.unsubscribe()\n\t\t\t\t\t\t})\n\t\t\t\t\t\teventSubscriptions.push(cancelSub)\n\t\t\t\t\t}\n\n\t\t\t\t\t;(dialog as unknown as { _eventSubscriptions: Subscription[] })._eventSubscriptions = eventSubscriptions\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate setupDialogDismissLogic() {\n\t\tthis.dismissSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<DialogHereMortyEvent>(window, DialogHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(DialogWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([response]) => {\n\t\t\t\t\tif (response?.dialog) {\n\t\t\t\t\t\tresponse.dialog.hide(false)\n\n\t\t\t\t\t\tconst eventSubscriptions = (response.dialog as unknown as { _eventSubscriptions?: Subscription[] })\n\t\t\t\t\t\t\t._eventSubscriptions\n\t\t\t\t\t\teventSubscriptions?.forEach(sub => sub.unsubscribe())\n\n\t\t\t\t\t\tconst index = this.activeDialogs.indexOf(response.dialog as SchmancyDialog)\n\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\tthis.activeDialogs.splice(index, 1)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresponse.dialog.parentElement?.removeChild(response.dialog)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tpublic confirm(options: DialogOptions): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst completeOptions = {\n\t\t\t\t...DialogService.DEFAULT_OPTIONS,\n\t\t\t\t...options,\n\t\t\t}\n\n\t\t\tif (!completeOptions.position) {\n\t\t\t\tcompleteOptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next({\n\t\t\t\toptions: completeOptions,\n\t\t\t\ttype: 'confirm',\n\t\t\t\tcontent: completeOptions.content,\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic component(\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions: Omit<DialogOptions, 'content' | 'message'> = {},\n\t): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!options.position) {\n\t\t\t\toptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next({\n\t\t\t\toptions: options as DialogOptions,\n\t\t\t\ttype: 'component',\n\t\t\t\tcontent,\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic dismiss(): boolean {\n\t\tif (this.activeDialogs.length > 0) {\n\t\t\tconst dialog = this.activeDialogs[this.activeDialogs.length - 1]\n\t\t\tconst uid = dialog.getAttribute('uid')\n\n\t\t\tif (uid) {\n\t\t\t\tthis.dismissSubject.next(uid)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\tpublic close(): boolean {\n\t\treturn this.dismiss()\n\t}\n\n\tpublic ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tconfirmText: 'Confirm',\n\t\t\tcancelText: 'Cancel',\n\t\t\tposition: event,\n\t\t})\n\t}\n\n\tpublic danger(options: Omit<DialogOptions, 'variant'>): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\t...options,\n\t\t\tvariant: 'danger',\n\t\t})\n\t}\n\n\tprivate getCenteredPosition(): { x: number; y: number } {\n\t\treturn {\n\t\t\tx: window.innerWidth / 2,\n\t\t\ty: window.innerHeight / 2,\n\t\t}\n\t}\n}\n\n/**\n * Global dialog utility\n */\nexport const $dialog = {\n\tconfirm: (options: DialogOptions): Promise<boolean> => {\n\t\treturn DialogService.getInstance().confirm(options)\n\t},\n\n\task: (message: string, event?: MouseEvent | TouchEvent): Promise<boolean> => {\n\t\treturn DialogService.getInstance().ask(message, event)\n\t},\n\n\tdanger: (options: Omit<DialogOptions, 'variant'>): Promise<boolean> => {\n\t\treturn DialogService.getInstance().danger(options)\n\t},\n\n\tcomponent: (\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions?: Omit<DialogOptions, 'content' | 'message'>,\n\t): Promise<boolean> => {\n\t\treturn DialogService.getInstance().component(content, options)\n\t},\n\n\tdismiss: (): boolean => {\n\t\treturn DialogService.getInstance().dismiss()\n\t},\n\n\tclose: (): boolean => {\n\t\treturn DialogService.getInstance().close()\n\t},\n}\n\nexport default DialogService\n"],"names":["DialogWhereAreYouRicky","DialogHereMorty","DialogService","this","activeDialogs","dialogSubject","Subject","dismissSubject","setupDialogOpeningLogic","setupDialogDismissLogic","instance","pipe","switchMap","forkJoin","fromEvent","window","ThemeHereIAm","takeUntil","timer","map","e","detail","theme","defaultIfEmpty","of","target","tap","uid","Date","now","Math","random","toString","substring","dispatchEvent","CustomEvent","ThemeWhereAreYou","bubbles","composed","targetContainer","options","document","querySelector","body","dialog","createElement","setAttribute","appendChild","type","title","subtitle","message","confirmText","cancelText","variant","content","contentContainer","slot","result","HTMLElement","render","hideActions","style","height","width","classList","add","push","position","getCenteredPosition","show","then","resolve","index","indexOf","splice","contentEl","removeChild","parentNode","_eventSubscriptions","forEach","sub","unsubscribe","parentElement","catch","error","reject","eventSubscriptions","onConfirm","confirmSub","subscribe","onCancel","cancelSub","response","hide","Promise","completeOptions","DEFAULT_OPTIONS","next","dismiss","length","getAttribute","event","confirm","x","innerWidth","y","innerHeight","_s","$dialog","getInstance","ask","danger","component","close"],"mappings":"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"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { render as d } from "lit";
|
|
2
|
-
import { Subject as g, switchMap as f, forkJoin as b, fromEvent as l, of as v, takeUntil as C, timer as w, map as m, defaultIfEmpty as y, tap as r } from "rxjs";
|
|
3
|
-
import { a as E, T as S } from "./theme.events-CPSLaOlR.js";
|
|
4
|
-
const T = "are-you-there-dialog", x = "yes-dialog-here", c = class c {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.activeDialogs = [], this.dialogSubject = new g(), this.dismissSubject = new g(), this.setupDialogOpeningLogic(), this.setupDialogDismissLogic();
|
|
7
|
-
}
|
|
8
|
-
static getInstance() {
|
|
9
|
-
return c.instance || (c.instance = new c()), c.instance;
|
|
10
|
-
}
|
|
11
|
-
setupDialogOpeningLogic() {
|
|
12
|
-
this.dialogSubject.pipe(f((e) => b([l(window, E).pipe(C(w(50)), m((t) => t.detail.theme), y(void 0)), v(e).pipe(r(() => {
|
|
13
|
-
const t = `dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
14
|
-
window.dispatchEvent(new CustomEvent(S, { bubbles: !0, composed: !0 })), e.uid = t;
|
|
15
|
-
}))])), m(([e, t]) => {
|
|
16
|
-
const n = e || t.options.targetContainer || document.querySelector("schmancy-theme") || document.body, i = t.uid, o = document.createElement("schmancy-dialog");
|
|
17
|
-
return o.setAttribute("uid", i), n.appendChild(o), { dialog: o, target: t };
|
|
18
|
-
}), r(({ dialog: e, target: t }) => {
|
|
19
|
-
const n = t.options;
|
|
20
|
-
if (t.type === "confirm") {
|
|
21
|
-
if (e.title = n.title, e.subtitle = n.subtitle, e.message = n.message, e.confirmText = n.confirmText ?? "Confirm", e.cancelText = n.cancelText ?? "Cancel", e.variant = n.variant ?? "default", n.content) {
|
|
22
|
-
const i = document.createElement("div");
|
|
23
|
-
if (i.slot = "content", typeof n.content == "function") {
|
|
24
|
-
const o = n.content();
|
|
25
|
-
o instanceof HTMLElement ? i.appendChild(o) : d(o, i);
|
|
26
|
-
} else n.content instanceof HTMLElement ? i.appendChild(n.content) : d(n.content, i);
|
|
27
|
-
e.appendChild(i);
|
|
28
|
-
}
|
|
29
|
-
} else if (e.hideActions = !0, t.content) {
|
|
30
|
-
const i = document.createElement("div");
|
|
31
|
-
if (i.style.height = "100%", i.style.width = "100%", i.classList.add("schmancy-dialog-content-container"), typeof t.content == "function") {
|
|
32
|
-
const o = t.content();
|
|
33
|
-
o instanceof HTMLElement ? i.appendChild(o) : d(o, i);
|
|
34
|
-
} else t.content instanceof HTMLElement ? i.appendChild(t.content) : d(t.content, i);
|
|
35
|
-
e.appendChild(i);
|
|
36
|
-
}
|
|
37
|
-
this.activeDialogs.push(e);
|
|
38
|
-
}), r(({ dialog: e, target: t }) => {
|
|
39
|
-
const n = t.options.position || this.getCenteredPosition();
|
|
40
|
-
e.show(n).then((o) => {
|
|
41
|
-
t.resolve?.(o);
|
|
42
|
-
const u = this.activeDialogs.indexOf(e);
|
|
43
|
-
u !== -1 && this.activeDialogs.splice(u, 1);
|
|
44
|
-
const h = e.querySelector('[slot="content"]');
|
|
45
|
-
h && e.removeChild(h);
|
|
46
|
-
const p = e.querySelector(".schmancy-dialog-content-container");
|
|
47
|
-
p?.parentNode && p.parentNode.removeChild(p), e._eventSubscriptions?.forEach((D) => D.unsubscribe()), e.parentElement?.removeChild(e);
|
|
48
|
-
}).catch((o) => {
|
|
49
|
-
t.reject?.(o);
|
|
50
|
-
});
|
|
51
|
-
const i = [];
|
|
52
|
-
if (t.options.onConfirm) {
|
|
53
|
-
const o = l(e, "confirm").subscribe(() => {
|
|
54
|
-
t.options.onConfirm(), o.unsubscribe();
|
|
55
|
-
});
|
|
56
|
-
i.push(o);
|
|
57
|
-
}
|
|
58
|
-
if (t.options.onCancel) {
|
|
59
|
-
const o = l(e, "cancel").subscribe(() => {
|
|
60
|
-
t.options.onCancel(), o.unsubscribe();
|
|
61
|
-
});
|
|
62
|
-
i.push(o);
|
|
63
|
-
}
|
|
64
|
-
e._eventSubscriptions = i;
|
|
65
|
-
})).subscribe();
|
|
66
|
-
}
|
|
67
|
-
setupDialogDismissLogic() {
|
|
68
|
-
this.dismissSubject.pipe(f((e) => b([l(window, x).pipe(C(w(100)), m((t) => t.detail), y(void 0)), v(e).pipe(r(() => {
|
|
69
|
-
window.dispatchEvent(new CustomEvent(T, { detail: { uid: e }, bubbles: !0, composed: !0 }));
|
|
70
|
-
}))])), r(([e]) => {
|
|
71
|
-
if (e?.dialog) {
|
|
72
|
-
e.dialog.hide(!1), e.dialog._eventSubscriptions?.forEach((i) => i.unsubscribe());
|
|
73
|
-
const n = this.activeDialogs.indexOf(e.dialog);
|
|
74
|
-
n !== -1 && this.activeDialogs.splice(n, 1), e.dialog.parentElement?.removeChild(e.dialog);
|
|
75
|
-
}
|
|
76
|
-
})).subscribe();
|
|
77
|
-
}
|
|
78
|
-
confirm(e) {
|
|
79
|
-
return new Promise((t, n) => {
|
|
80
|
-
const i = { ...c.DEFAULT_OPTIONS, ...e };
|
|
81
|
-
i.position || (i.position = this.getCenteredPosition()), this.dialogSubject.next({ options: i, type: "confirm", content: i.content, resolve: t, reject: n });
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
component(e, t = {}) {
|
|
85
|
-
return new Promise((n, i) => {
|
|
86
|
-
t.position || (t.position = this.getCenteredPosition()), this.dialogSubject.next({ options: t, type: "component", content: e, resolve: n, reject: i });
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
dismiss() {
|
|
90
|
-
if (this.activeDialogs.length > 0) {
|
|
91
|
-
const e = this.activeDialogs[this.activeDialogs.length - 1].getAttribute("uid");
|
|
92
|
-
if (e) return this.dismissSubject.next(e), !0;
|
|
93
|
-
}
|
|
94
|
-
return !1;
|
|
95
|
-
}
|
|
96
|
-
close() {
|
|
97
|
-
return this.dismiss();
|
|
98
|
-
}
|
|
99
|
-
ask(e, t) {
|
|
100
|
-
return this.confirm({ message: e, confirmText: "Confirm", cancelText: "Cancel", position: t });
|
|
101
|
-
}
|
|
102
|
-
danger(e) {
|
|
103
|
-
return this.confirm({ ...e, variant: "danger" });
|
|
104
|
-
}
|
|
105
|
-
getCenteredPosition() {
|
|
106
|
-
return { x: window.innerWidth / 2, y: window.innerHeight / 2 };
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
c.DEFAULT_OPTIONS = { title: void 0, subtitle: void 0, confirmText: void 0, cancelText: void 0, variant: "default" };
|
|
110
|
-
let s = c;
|
|
111
|
-
const P = { confirm: (a) => s.getInstance().confirm(a), ask: (a, e) => s.getInstance().ask(a, e), danger: (a) => s.getInstance().danger(a), component: (a, e) => s.getInstance().component(a, e), dismiss: () => s.getInstance().dismiss(), close: () => s.getInstance().close() };
|
|
112
|
-
export {
|
|
113
|
-
P as $,
|
|
114
|
-
s as D,
|
|
115
|
-
T as a,
|
|
116
|
-
x as b
|
|
117
|
-
};
|
|
118
|
-
//# sourceMappingURL=dialog-service-D9E3jLAR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-service-D9E3jLAR.js","sources":["../src/dialog/dialog-events.ts","../src/dialog/dialog-service.ts"],"sourcesContent":["// Dialog discovery event constants\r\nexport const DialogWhereAreYouRicky = 'are-you-there-dialog'\r\nexport const DialogHereMorty = 'yes-dialog-here'\r\n\r\n// Event interfaces\r\nexport interface DialogWhereAreYouRickyEvent extends CustomEvent {\r\n detail: {\r\n uid: string\r\n }\r\n}\r\n\r\nexport interface DialogHereMortyEvent extends CustomEvent {\r\n detail: {\r\n dialog: any // Will be schmancy-dialog instance\r\n theme?: any // Will be schmancy-theme instance\r\n }\r\n}","import { render, TemplateResult } from 'lit'\nimport { defaultIfEmpty, forkJoin, fromEvent, map, of, Subject, Subscription, switchMap, takeUntil, tap, timer } from 'rxjs'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.events'\nimport { SchmancyDialog } from './dialog.component'\nimport { DialogHereMorty, DialogHereMortyEvent, DialogWhereAreYouRicky } from './dialog-events'\n\n/**\n * Dialog service options interface\n */\nexport interface DialogOptions {\n\ttitle?: string\n\tsubtitle?: string\n\tmessage?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tvariant?: 'default' | 'danger'\n\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\tonConfirm?: () => void\n\tonCancel?: () => void\n\thideActions?: boolean\n\ttargetContainer?: HTMLElement\n}\n\ninterface DialogTarget {\n\toptions: DialogOptions\n\ttype: 'confirm' | 'component'\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\tresolve?: (value: boolean) => void\n\treject?: (reason?: unknown) => void\n}\n\n/**\n * Dialog service for centralized dialog management.\n * Uses a single unified SchmancyDialog component for all dialog types.\n */\nexport class DialogService {\n\tprivate static instance: DialogService\n\n\tprivate static DEFAULT_OPTIONS: Partial<DialogOptions> = {\n\t\ttitle: undefined,\n\t\tsubtitle: undefined,\n\t\tconfirmText: undefined,\n\t\tcancelText: undefined,\n\t\tvariant: 'default',\n\t}\n\n\t// Single array to track all dialogs\n\tprivate activeDialogs: SchmancyDialog[] = []\n\n\tprivate dialogSubject = new Subject<DialogTarget>()\n\tprivate dismissSubject = new Subject<string>()\n\n\tprivate constructor() {\n\t\tthis.setupDialogOpeningLogic()\n\t\tthis.setupDialogDismissLogic()\n\t}\n\n\tpublic static getInstance(): DialogService {\n\t\tif (!DialogService.instance) {\n\t\t\tDialogService.instance = new DialogService()\n\t\t}\n\t\treturn DialogService.instance\n\t}\n\n\tprivate setupDialogOpeningLogic() {\n\t\tthis.dialogSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<ThemeHereIAmEvent>(window, ThemeHereIAm).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail.theme),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\tconst uid = `dialog-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(ThemeWhereAreYou, {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t;(target as { uid?: string }).uid = uid\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\tmap(([theme, target]) => {\n\t\t\t\t\tconst targetContainer =\n\t\t\t\t\t\ttheme ||\n\t\t\t\t\t\ttarget.options.targetContainer ||\n\t\t\t\t\t\t(document.querySelector('schmancy-theme') as HTMLElement) ||\n\t\t\t\t\t\tdocument.body\n\n\t\t\t\t\tconst uid = (target as { uid?: string }).uid!\n\t\t\t\t\tconst dialog = document.createElement('schmancy-dialog') as SchmancyDialog\n\t\t\t\t\tdialog.setAttribute('uid', uid)\n\t\t\t\t\ttargetContainer.appendChild(dialog)\n\n\t\t\t\t\treturn { dialog, target }\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\tconst options = target.options\n\n\t\t\t\t\tif (target.type === 'confirm') {\n\t\t\t\t\t\t// Configure for confirm mode\n\t\t\t\t\t\tdialog.title = options.title\n\t\t\t\t\t\tdialog.subtitle = options.subtitle\n\t\t\t\t\t\tdialog.message = options.message\n\t\t\t\t\t\tdialog.confirmText = options.confirmText ?? 'Confirm'\n\t\t\t\t\t\tdialog.cancelText = options.cancelText ?? 'Cancel'\n\t\t\t\t\t\tdialog.variant = options.variant ?? 'default'\n\n\t\t\t\t\t\t// Handle custom content slot\n\t\t\t\t\t\tif (options.content) {\n\t\t\t\t\t\t\tconst contentContainer = document.createElement('div')\n\t\t\t\t\t\t\tcontentContainer.slot = 'content'\n\n\t\t\t\t\t\t\tif (typeof options.content === 'function') {\n\t\t\t\t\t\t\t\tconst result = options.content()\n\t\t\t\t\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\t\t\t\t\tcontentContainer.appendChild(result)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trender(result, contentContainer)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (options.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tcontentContainer.appendChild(options.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(options.content, contentContainer)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdialog.appendChild(contentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Configure for content mode\n\t\t\t\t\t\tdialog.hideActions = true\n\n\t\t\t\t\t\tif (target.content) {\n\t\t\t\t\t\t\tconst contentContainer = document.createElement('div')\n\t\t\t\t\t\t\tcontentContainer.style.height = '100%'\n\t\t\t\t\t\t\tcontentContainer.style.width = '100%'\n\t\t\t\t\t\t\tcontentContainer.classList.add('schmancy-dialog-content-container')\n\n\t\t\t\t\t\t\tif (typeof target.content === 'function') {\n\t\t\t\t\t\t\t\tconst result = target.content()\n\t\t\t\t\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\t\t\t\t\tcontentContainer.appendChild(result)\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trender(result, contentContainer)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.content instanceof HTMLElement) {\n\t\t\t\t\t\t\t\tcontentContainer.appendChild(target.content)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trender(target.content, contentContainer)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdialog.appendChild(contentContainer)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.activeDialogs.push(dialog)\n\t\t\t\t}),\n\t\t\t\ttap(({ dialog, target }) => {\n\t\t\t\t\tconst position = target.options.position || this.getCenteredPosition()\n\n\t\t\t\t\tdialog\n\t\t\t\t\t\t.show(position)\n\t\t\t\t\t\t.then((result: boolean) => {\n\t\t\t\t\t\t\ttarget.resolve?.(result)\n\n\t\t\t\t\t\t\t// Cleanup\n\t\t\t\t\t\t\tconst index = this.activeDialogs.indexOf(dialog)\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\tthis.activeDialogs.splice(index, 1)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Clean up content\n\t\t\t\t\t\t\tconst contentEl = dialog.querySelector('[slot=\"content\"]')\n\t\t\t\t\t\t\tif (contentEl) dialog.removeChild(contentEl)\n\n\t\t\t\t\t\t\tconst contentContainer = dialog.querySelector('.schmancy-dialog-content-container')\n\t\t\t\t\t\t\tif (contentContainer?.parentNode) {\n\t\t\t\t\t\t\t\tcontentContainer.parentNode.removeChild(contentContainer)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Clean up event subscriptions\n\t\t\t\t\t\t\tconst eventSubscriptions = (dialog as unknown as { _eventSubscriptions?: Subscription[] })\n\t\t\t\t\t\t\t\t._eventSubscriptions\n\t\t\t\t\t\t\teventSubscriptions?.forEach(sub => sub.unsubscribe())\n\n\t\t\t\t\t\t\t// Remove from DOM\n\t\t\t\t\t\t\tdialog.parentElement?.removeChild(dialog)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\t\t\ttarget.reject?.(error)\n\t\t\t\t\t\t})\n\n\t\t\t\t\t// Set up event listeners\n\t\t\t\t\tconst eventSubscriptions: Subscription[] = []\n\n\t\t\t\t\tif (target.options.onConfirm) {\n\t\t\t\t\t\tconst confirmSub = fromEvent(dialog, 'confirm').subscribe(() => {\n\t\t\t\t\t\t\ttarget.options.onConfirm!()\n\t\t\t\t\t\t\tconfirmSub.unsubscribe()\n\t\t\t\t\t\t})\n\t\t\t\t\t\teventSubscriptions.push(confirmSub)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target.options.onCancel) {\n\t\t\t\t\t\tconst cancelSub = fromEvent(dialog, 'cancel').subscribe(() => {\n\t\t\t\t\t\t\ttarget.options.onCancel!()\n\t\t\t\t\t\t\tcancelSub.unsubscribe()\n\t\t\t\t\t\t})\n\t\t\t\t\t\teventSubscriptions.push(cancelSub)\n\t\t\t\t\t}\n\n\t\t\t\t\t;(dialog as unknown as { _eventSubscriptions: Subscription[] })._eventSubscriptions = eventSubscriptions\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate setupDialogDismissLogic() {\n\t\tthis.dismissSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<DialogHereMortyEvent>(window, DialogHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(DialogWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([response]) => {\n\t\t\t\t\tif (response?.dialog) {\n\t\t\t\t\t\tresponse.dialog.hide(false)\n\n\t\t\t\t\t\tconst eventSubscriptions = (response.dialog as unknown as { _eventSubscriptions?: Subscription[] })\n\t\t\t\t\t\t\t._eventSubscriptions\n\t\t\t\t\t\teventSubscriptions?.forEach(sub => sub.unsubscribe())\n\n\t\t\t\t\t\tconst index = this.activeDialogs.indexOf(response.dialog as SchmancyDialog)\n\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\tthis.activeDialogs.splice(index, 1)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresponse.dialog.parentElement?.removeChild(response.dialog)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tpublic confirm(options: DialogOptions): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst completeOptions = {\n\t\t\t\t...DialogService.DEFAULT_OPTIONS,\n\t\t\t\t...options,\n\t\t\t}\n\n\t\t\tif (!completeOptions.position) {\n\t\t\t\tcompleteOptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next({\n\t\t\t\toptions: completeOptions,\n\t\t\t\ttype: 'confirm',\n\t\t\t\tcontent: completeOptions.content,\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic component(\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions: Omit<DialogOptions, 'content' | 'message'> = {},\n\t): Promise<boolean> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!options.position) {\n\t\t\t\toptions.position = this.getCenteredPosition()\n\t\t\t}\n\n\t\t\tthis.dialogSubject.next({\n\t\t\t\toptions: options as DialogOptions,\n\t\t\t\ttype: 'component',\n\t\t\t\tcontent,\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic dismiss(): boolean {\n\t\tif (this.activeDialogs.length > 0) {\n\t\t\tconst dialog = this.activeDialogs[this.activeDialogs.length - 1]\n\t\t\tconst uid = dialog.getAttribute('uid')\n\n\t\t\tif (uid) {\n\t\t\t\tthis.dismissSubject.next(uid)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\tpublic close(): boolean {\n\t\treturn this.dismiss()\n\t}\n\n\tpublic ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tconfirmText: 'Confirm',\n\t\t\tcancelText: 'Cancel',\n\t\t\tposition: event,\n\t\t})\n\t}\n\n\tpublic danger(options: Omit<DialogOptions, 'variant'>): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\t...options,\n\t\t\tvariant: 'danger',\n\t\t})\n\t}\n\n\tprivate getCenteredPosition(): { x: number; y: number } {\n\t\treturn {\n\t\t\tx: window.innerWidth / 2,\n\t\t\ty: window.innerHeight / 2,\n\t\t}\n\t}\n}\n\n/**\n * Global dialog utility\n */\nexport const $dialog = {\n\tconfirm: (options: DialogOptions): Promise<boolean> => {\n\t\treturn DialogService.getInstance().confirm(options)\n\t},\n\n\task: (message: string, event?: MouseEvent | TouchEvent): Promise<boolean> => {\n\t\treturn DialogService.getInstance().ask(message, event)\n\t},\n\n\tdanger: (options: Omit<DialogOptions, 'variant'>): Promise<boolean> => {\n\t\treturn DialogService.getInstance().danger(options)\n\t},\n\n\tcomponent: (\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions?: Omit<DialogOptions, 'content' | 'message'>,\n\t): Promise<boolean> => {\n\t\treturn DialogService.getInstance().component(content, options)\n\t},\n\n\tdismiss: (): boolean => {\n\t\treturn DialogService.getInstance().dismiss()\n\t},\n\n\tclose: (): boolean => {\n\t\treturn DialogService.getInstance().close()\n\t},\n}\n\nexport default DialogService\n"],"names":["DialogWhereAreYouRicky","DialogHereMorty","DialogService","constructor","this","activeDialogs","dialogSubject","Subject","dismissSubject","setupDialogOpeningLogic","setupDialogDismissLogic","getInstance","instance","pipe","switchMap","forkJoin","fromEvent","window","ThemeHereIAm","takeUntil","timer","map","e","detail","theme","defaultIfEmpty","of","target","tap","uid","Date","now","Math","random","toString","substring","dispatchEvent","CustomEvent","ThemeWhereAreYou","bubbles","composed","targetContainer","options","document","querySelector","body","dialog","createElement","setAttribute","appendChild","type","title","subtitle","message","confirmText","cancelText","variant","content","contentContainer","slot","result","HTMLElement","render","hideActions","style","height","width","classList","add","push","position","getCenteredPosition","show","then","resolve","index","indexOf","splice","contentEl","removeChild","parentNode","_eventSubscriptions","forEach","sub","unsubscribe","parentElement","catch","error","reject","eventSubscriptions","onConfirm","confirmSub","subscribe","onCancel","cancelSub","response","hide","Promise","completeOptions","DEFAULT_OPTIONS","next","dismiss","length","getAttribute","close","event","confirm","x","innerWidth","y","innerHeight","_g","$dialog","ask","danger","component"],"mappings":"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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";const p=require("rxjs"),y=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 g=require("./litElement.mixin-CrpeGpZ7.cjs"),r=require("lit"),d=require("lit/directives/when.js"),l=require("@floating-ui/dom"),u=require("./dialog-service-C86xTS8q.cjs"),m=e=>class extends e{constructor(){super(...arguments),this.position={x:0,y:0}}getDialogElement(){return null}async show(t){let i,s;if(this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=void 0),t)if("clientX"in t)i=t.clientX,s=t.clientY;else if("touches"in t&&t.touches.length)i=t.touches[0].clientX,s=t.touches[0].clientY;else{const n=t;i=n.x,s=n.y}else i=window.innerWidth/2,s=window.innerHeight/2;return this.position={x:i,y:s},this.virtualReference={getBoundingClientRect:()=>new DOMRect(i,s,0,0)},this.requestUpdate(),await this.updateComplete,this.setAttribute("active",""),this.setupPositioning(),new Promise(n=>{this.resolvePromise=n})}hide(t=!1){this.removeAttribute("active"),this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=void 0),this.resolvePromise&&(this.resolvePromise(t),this.resolvePromise=void 0)}isCentered(){const t=.3*window.innerWidth,i=.3*window.innerHeight;return Math.abs(this.position.x-window.innerWidth/2)<t&&Math.abs(this.position.y-window.innerHeight/2)<i}setupPositioning(){const t=this.getDialogElement();t&&(this.isCentered()||this.virtualReference&&(this.cleanupAutoUpdate=l.autoUpdate(this.virtualReference,t,()=>this.updatePosition(t),{ancestorScroll:!0,ancestorResize:!0,elementResize:!0}),this.updatePosition(t)))}async updatePosition(t){if(!this.virtualReference)return;const{x:i,y:s}=await l.computePosition(this.virtualReference,t,{strategy:"fixed",middleware:[l.offset(8),l.autoPlacement({padding:16,allowedPlacements:["top-start","top-end","bottom-start","bottom-end","left-start","left-end","right-start","right-end"]}),l.shift({padding:16}),l.size({padding:16,apply({availableWidth:n,elements:o}){o.floating.style.maxWidth=`${n}px`}})]});Object.assign(t.style,{position:"fixed",left:`${Math.round(i)}px`,top:`${Math.round(s)}px`,transform:"none"})}disconnectedCallback(){this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=void 0),super.disconnectedCallback()}};var f=Object.defineProperty,v=Object.getOwnPropertyDescriptor,c=(e,t,i,s)=>{for(var n,o=s>1?void 0:s?v(t,i):t,h=e.length-1;h>=0;h--)(n=e[h])&&(o=(s?n(t,i,o):n(o))||o);return s&&o&&f(t,i,o),o};exports.SchmancyDialog=class extends m(g.$LitElement(r.css`
|
|
2
|
-
:host {
|
|
3
|
-
position: fixed;
|
|
4
|
-
z-index: 10000;
|
|
5
|
-
inset: 0;
|
|
6
|
-
display: none;
|
|
7
|
-
--dialog-width: fit-content;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
:host([active]) {
|
|
11
|
-
display: block;
|
|
12
|
-
}
|
|
13
|
-
`)){constructor(){super(...arguments),this.title=void 0,this.subtitle=void 0,this.message=void 0,this.confirmText=void 0,this.cancelText=void 0,this.variant="default",this.hideActions=!1}getDialogElement(){return this.shadowRoot?.querySelector('[role="dialog"], [role="alertdialog"]')}get isConfirmMode(){return!this.hideActions&&!(!this.confirmText?.trim()||!this.cancelText?.trim())}connectedCallback(){super.connectedCallback(),p.fromEvent(window,u.DialogWhereAreYouRicky).pipe(p.tap(e=>{e.detail.uid===this.uid&&this.announcePresence()}),y.takeUntil(this.disconnecting)).subscribe()}announcePresence(){this.dispatchEvent(new CustomEvent(u.DialogHereMorty,{detail:{dialog:this},bubbles:!0,composed:!0}))}handleConfirm(){this.hide(!0),this.dispatchEvent(new CustomEvent("confirm",{bubbles:!0,composed:!0}))}handleClose(){this.hide(!1),this.dispatchEvent(new CustomEvent(this.isConfirmMode?"cancel":"close",{bubbles:!0,composed:!0}))}render(){const e=this.isCentered(),t=this.querySelectorAll('[slot="content"]').length>0,i={dialog:!0,fixed:!0,"w-[var(--dialog-width)]":!0,"max-w-[calc(100vw-2rem)]":!0,"max-h-[90dvh]":!0,"overflow-hidden":!0,"top-1/2":e,"left-1/2":e,"-translate-x-1/2":e,"-translate-y-1/2":e};return this.isConfirmMode?r.html`
|
|
14
|
-
<div class="fixed inset-0 bg-scrim/40" @click=${this.handleClose}></div>
|
|
15
|
-
|
|
16
|
-
<div class=${this.classMap(i)} role="alertdialog" aria-modal="true">
|
|
17
|
-
<schmancy-surface rounded="all" elevation="3" type="containerHigh" fill="all" class="overflow-hidden">
|
|
18
|
-
<schmancy-scroll direction="vertical" hide class="p-4">
|
|
19
|
-
<schmancy-form @submit=${this.handleConfirm}>
|
|
20
|
-
${d.when(this.title?.trim(),()=>r.html`
|
|
21
|
-
<schmancy-typography type="title" token="md" class="mb-1">${this.title}</schmancy-typography>
|
|
22
|
-
${d.when(this.subtitle?.trim(),()=>r.html`
|
|
23
|
-
<schmancy-typography type="subtitle" token="xs" class="mb-2">
|
|
24
|
-
${this.subtitle}
|
|
25
|
-
</schmancy-typography>
|
|
26
|
-
`)}
|
|
27
|
-
`)}
|
|
28
|
-
${t?r.html`<div class="mb-4"><slot name="content"></slot></div>`:d.when(this.message?.trim(),()=>r.html`<schmancy-typography type="body" class="mb-4">${this.message}</schmancy-typography>`)}
|
|
29
|
-
<div class="flex justify-end gap-3">
|
|
30
|
-
<schmancy-button variant="outlined" @click=${this.handleClose}>${this.cancelText}</schmancy-button>
|
|
31
|
-
<schmancy-button type="submit" variant="filled">${this.confirmText}</schmancy-button>
|
|
32
|
-
</div>
|
|
33
|
-
</schmancy-form>
|
|
34
|
-
</schmancy-scroll>
|
|
35
|
-
</schmancy-surface>
|
|
36
|
-
</div>
|
|
37
|
-
`:r.html`
|
|
38
|
-
<div class="fixed inset-0 bg-surface-container/10 backdrop-blur-xs" @click=${this.handleClose}></div>
|
|
39
|
-
|
|
40
|
-
<section class=${this.classMap(i)} role="dialog" aria-modal="true">
|
|
41
|
-
<schmancy-surface rounded="all" type="surface" elevation="2" fill="all" class="overflow-hidden">
|
|
42
|
-
<schmancy-scroll direction="vertical" hide class="p-2 md:p-4 max-h-[90dvh]">
|
|
43
|
-
<slot></slot>
|
|
44
|
-
</schmancy-scroll>
|
|
45
|
-
</schmancy-surface>
|
|
46
|
-
</section>
|
|
47
|
-
`}static async confirm(e){let t=document.querySelector("schmancy-dialog[data-static-confirm]");return t||(t=document.createElement("schmancy-dialog"),t.setAttribute("data-static-confirm",""),document.body.appendChild(t)),t.title=e.title,t.subtitle=e.subtitle,t.message=e.message,t.confirmText=e.confirmText??"Confirm",t.cancelText=e.cancelText??"Cancel",t.variant=e.variant??"default",e.width&&t.style.setProperty("--dialog-width",e.width),t.show(e.position)}static async ask(e,t){return this.confirm({message:e,position:t})}},c([a.property({type:String,reflect:!0})],exports.SchmancyDialog.prototype,"uid",2),c([a.property({type:String})],exports.SchmancyDialog.prototype,"title",2),c([a.property({type:String})],exports.SchmancyDialog.prototype,"subtitle",2),c([a.property({type:String})],exports.SchmancyDialog.prototype,"message",2),c([a.property({type:String,attribute:"confirm-text"})],exports.SchmancyDialog.prototype,"confirmText",2),c([a.property({type:String,attribute:"cancel-text"})],exports.SchmancyDialog.prototype,"cancelText",2),c([a.property({type:String})],exports.SchmancyDialog.prototype,"variant",2),c([a.property({type:Boolean,attribute:"hide-actions"})],exports.SchmancyDialog.prototype,"hideActions",2),exports.SchmancyDialog=c([a.customElement("schmancy-dialog")],exports.SchmancyDialog),exports.DialogBase=m;
|
|
48
|
-
//# sourceMappingURL=dialog.component-BM0D-hK9.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.component-BM0D-hK9.cjs","sources":["../src/dialog/dialog-base.mixin.ts","../src/dialog/dialog.component.ts"],"sourcesContent":["import { autoPlacement, autoUpdate, computePosition, offset, shift, size } from '@floating-ui/dom'\nimport { LitElement } from 'lit'\nimport type { Constructor } from '../../mixins/constructor'\nimport type { IBaseMixin } from '../../mixins/baseElement'\n\nexport interface DialogPosition {\n\tx: number\n\ty: number\n}\n\nexport interface VirtualReference {\n\tgetBoundingClientRect: () => DOMRect\n}\n\n/**\n * Interface for the DialogBase mixin methods\n */\nexport interface IDialogBaseMixin {\n\tposition: DialogPosition\n\tshow(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean>\n\thide(result?: boolean): void\n\tisCentered(): boolean\n}\n\n/**\n * Dialog mixin with smart positioning using Floating UI.\n *\n * Uses autoPlacement to find the position with MOST available space,\n * minimizing the need for content scrolling.\n */\nexport const DialogBase = <T extends Constructor<LitElement & IBaseMixin>>(superClass: T) => {\n\tclass DialogBaseClass extends superClass {\n\t\tposition: DialogPosition = { x: 0, y: 0 }\n\t\tprotected resolvePromise?: (value: boolean) => void\n\t\tprotected cleanupAutoUpdate?: () => void\n\t\tprotected virtualReference?: VirtualReference\n\n\t\t/**\n\t\t * Override in subclass to return the dialog element\n\t\t */\n\t\tprotected getDialogElement(): HTMLElement | null {\n\t\t\treturn null\n\t\t}\n\n\t\t/**\n\t\t * Show the dialog at a specific position\n\t\t */\n\t\tasync show(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean> {\n\t\t\t// Cleanup previous positioning\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\n\t\t\tlet x: number, y: number\n\n\t\t\tif (!positionOrEvent) {\n\t\t\t\tx = window.innerWidth / 2\n\t\t\t\ty = window.innerHeight / 2\n\t\t\t} else if ('clientX' in positionOrEvent) {\n\t\t\t\tx = positionOrEvent.clientX\n\t\t\t\ty = positionOrEvent.clientY\n\t\t\t} else if ('touches' in positionOrEvent && positionOrEvent.touches.length) {\n\t\t\t\tx = positionOrEvent.touches[0].clientX\n\t\t\t\ty = positionOrEvent.touches[0].clientY\n\t\t\t} else {\n\t\t\t\tconst pos = positionOrEvent as DialogPosition\n\t\t\t\tx = pos.x\n\t\t\t\ty = pos.y\n\t\t\t}\n\n\t\t\tthis.position = { x, y }\n\n\t\t\t// Virtual reference at click position\n\t\t\tthis.virtualReference = {\n\t\t\t\tgetBoundingClientRect: () => new DOMRect(x, y, 0, 0),\n\t\t\t}\n\n\t\t\t// Trigger re-render with new position (for correct isCentered() in render)\n\t\t\tthis.requestUpdate()\n\t\t\tawait this.updateComplete\n\n\t\t\tthis.setAttribute('active', '')\n\n\t\t\t// Setup Floating UI positioning for non-centered dialogs\n\t\t\tthis.setupPositioning()\n\n\t\t\treturn new Promise<boolean>(resolve => {\n\t\t\t\tthis.resolvePromise = resolve\n\t\t\t})\n\t\t}\n\n\t\t/**\n\t\t * Hide the dialog\n\t\t */\n\t\thide(result = false): void {\n\t\t\tthis.removeAttribute('active')\n\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\n\t\t\tif (this.resolvePromise) {\n\t\t\t\tthis.resolvePromise(result)\n\t\t\t\tthis.resolvePromise = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Check if position is near center\n\t\t */\n\t\tisCentered(): boolean {\n\t\t\tconst toleranceX = window.innerWidth * 0.3\n\t\t\tconst toleranceY = window.innerHeight * 0.3\n\n\t\t\treturn (\n\t\t\t\tMath.abs(this.position.x - window.innerWidth / 2) < toleranceX &&\n\t\t\t\tMath.abs(this.position.y - window.innerHeight / 2) < toleranceY\n\t\t\t)\n\t\t}\n\n\t\t/**\n\t\t * Setup positioning based on whether dialog is centered or positioned\n\t\t */\n\t\tprivate setupPositioning(): void {\n\t\t\tconst dialog = this.getDialogElement()\n\t\t\tif (!dialog) return\n\n\t\t\t// Centered dialogs: CSS handles everything, no JS positioning needed\n\t\t\tif (this.isCentered()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Positioned dialogs: use Floating UI with autoPlacement\n\t\t\tif (this.virtualReference) {\n\t\t\t\tthis.cleanupAutoUpdate = autoUpdate(\n\t\t\t\t\tthis.virtualReference,\n\t\t\t\t\tdialog,\n\t\t\t\t\t() => this.updatePosition(dialog),\n\t\t\t\t\t{\n\t\t\t\t\t\tancestorScroll: true,\n\t\t\t\t\t\tancestorResize: true,\n\t\t\t\t\t\telementResize: true,\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\tthis.updatePosition(dialog)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Update position using Floating UI.\n\t\t * autoPlacement finds the side with MOST space to minimize scrolling.\n\t\t */\n\t\tprivate async updatePosition(dialog: HTMLElement): Promise<void> {\n\t\t\tif (!this.virtualReference) return\n\n\t\t\tconst padding = 16\n\n\t\t\tconst { x, y } = await computePosition(this.virtualReference, dialog, {\n\t\t\t\tstrategy: 'fixed',\n\t\t\t\tmiddleware: [\n\t\t\t\t\t// Small offset from click point\n\t\t\t\t\toffset(8),\n\n\t\t\t\t\t// autoPlacement: picks placement with MOST available space\n\t\t\t\t\tautoPlacement({\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\tallowedPlacements: [\n\t\t\t\t\t\t\t'top-start',\n\t\t\t\t\t\t\t'top-end',\n\t\t\t\t\t\t\t'bottom-start',\n\t\t\t\t\t\t\t'bottom-end',\n\t\t\t\t\t\t\t'left-start',\n\t\t\t\t\t\t\t'left-end',\n\t\t\t\t\t\t\t'right-start',\n\t\t\t\t\t\t\t'right-end',\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\n\t\t\t\t\t// Keep on screen\n\t\t\t\t\tshift({ padding }),\n\n\t\t\t\t\t// Constrain width to available space (CSS handles height via dvh)\n\t\t\t\t\tsize({\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\tapply({ availableWidth, elements }) {\n\t\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tObject.assign(dialog.style, {\n\t\t\t\tposition: 'fixed',\n\t\t\t\tleft: `${Math.round(x)}px`,\n\t\t\t\ttop: `${Math.round(y)}px`,\n\t\t\t\ttransform: 'none',\n\t\t\t})\n\t\t}\n\n\t\t/**\n\t\t * Cleanup on disconnect\n\t\t */\n\t\tdisconnectedCallback(): void {\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\n\treturn DialogBaseClass as Constructor<IDialogBaseMixin> & T\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { fromEvent, tap } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { DialogBase } from './dialog-base.mixin'\nimport { DialogHereMorty, DialogWhereAreYouRicky, DialogWhereAreYouRickyEvent } from './dialog-events'\n\n/**\n * Unified dialog component that handles both content-only and confirm modes.\n *\n * @element schmancy-dialog\n * @slot default - Content slot for dialog body (used in content mode)\n * @slot content - Named slot for custom content in confirm mode\n *\n * @example Content mode (no buttons):\n * ```html\n * <schmancy-dialog>\n * <my-custom-content></my-custom-content>\n * </schmancy-dialog>\n * ```\n *\n * @example Confirm mode (with buttons):\n * ```html\n * <schmancy-dialog\n * title=\"Confirm Action\"\n * message=\"Are you sure?\"\n * confirm-text=\"Yes\"\n * cancel-text=\"No\"\n * ></schmancy-dialog>\n * ```\n */\n@customElement('schmancy-dialog')\nexport class SchmancyDialog extends DialogBase(\n\t$LitElement(css`\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tz-index: 10000;\n\t\t\tinset: 0;\n\t\t\tdisplay: none;\n\t\t\t--dialog-width: fit-content;\n\t\t}\n\n\t\t:host([active]) {\n\t\t\tdisplay: block;\n\t\t}\n\t`),\n) {\n\t/**\n\t * Unique identifier for the dialog instance\n\t */\n\t@property({ type: String, reflect: true }) uid!: string\n\n\t/**\n\t * Dialog title (enables confirm mode when set)\n\t */\n\t@property({ type: String }) title: string | undefined = undefined\n\n\t/**\n\t * Dialog subtitle\n\t */\n\t@property({ type: String }) subtitle: string | undefined = undefined\n\n\t/**\n\t * Dialog message\n\t */\n\t@property({ type: String }) message: string | undefined = undefined\n\n\t/**\n\t * Text for confirm button (enables confirm mode when set with cancelText)\n\t */\n\t@property({ type: String, attribute: 'confirm-text' }) confirmText: string | undefined = undefined\n\n\t/**\n\t * Text for cancel button\n\t */\n\t@property({ type: String, attribute: 'cancel-text' }) cancelText: string | undefined = undefined\n\n\t/**\n\t * Dialog variant (affects button colors in confirm mode)\n\t */\n\t@property({ type: String }) variant: 'default' | 'danger' = 'default'\n\n\t/**\n\t * Whether to hide action buttons (force content mode)\n\t */\n\t@property({ type: Boolean, attribute: 'hide-actions' }) hideActions = false\n\n\t/**\n\t * Return the dialog element for positioning\n\t */\n\tprotected getDialogElement(): HTMLElement | null {\n\t\treturn this.shadowRoot?.querySelector('[role=\"dialog\"], [role=\"alertdialog\"]') as HTMLElement\n\t}\n\n\t/**\n\t * Check if dialog is in confirm mode (has buttons)\n\t */\n\tprivate get isConfirmMode(): boolean {\n\t\tif (this.hideActions) return false\n\t\treturn !!(this.confirmText?.trim() && this.cancelText?.trim())\n\t}\n\n\t/**\n\t * Handle component connection to DOM\n\t */\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Listen for \"where are you ricky\" events\n\t\tfromEvent<DialogWhereAreYouRickyEvent>(window, DialogWhereAreYouRicky)\n\t\t\t.pipe(\n\t\t\t\ttap(e => {\n\t\t\t\t\tif (e.detail.uid === this.uid) this.announcePresence()\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\t/**\n\t * Announce this dialog's presence to the service\n\t */\n\tprivate announcePresence(): void {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(DialogHereMorty, {\n\t\t\t\tdetail: { dialog: this },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle confirm action\n\t */\n\tprivate handleConfirm(): void {\n\t\tthis.hide(true)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('confirm', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle cancel/close action\n\t */\n\tprivate handleClose(): void {\n\t\tthis.hide(false)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(this.isConfirmMode ? 'cancel' : 'close', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst isCentered = this.isCentered()\n\t\tconst hasCustomContent = this.querySelectorAll('[slot=\"content\"]').length > 0\n\n\t\tconst dialogClasses = {\n\t\t\tdialog: true,\n\t\t\tfixed: true,\n\t\t\t'w-[var(--dialog-width)]': true,\n\t\t\t'max-w-[calc(100vw-2rem)]': true,\n\t\t\t'max-h-[90dvh]': true,\n\t\t\t'overflow-hidden': true,\n\t\t\t'top-1/2': isCentered,\n\t\t\t'left-1/2': isCentered,\n\t\t\t'-translate-x-1/2': isCentered,\n\t\t\t'-translate-y-1/2': isCentered,\n\t\t}\n\n\t\t// Confirm mode: with title/buttons\n\t\tif (this.isConfirmMode) {\n\t\t\treturn html`\n\t\t\t\t<div class=\"fixed inset-0 bg-scrim/40\" @click=${this.handleClose}></div>\n\n\t\t\t\t<div class=${this.classMap(dialogClasses)} role=\"alertdialog\" aria-modal=\"true\">\n\t\t\t\t\t<schmancy-surface rounded=\"all\" elevation=\"3\" type=\"containerHigh\" fill=\"all\" class=\"overflow-hidden\">\n\t\t\t\t\t\t<schmancy-scroll direction=\"vertical\" hide class=\"p-4\">\n\t\t\t\t\t\t\t<schmancy-form @submit=${this.handleConfirm}>\n\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\tthis.title?.trim(),\n\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"mb-1\">${this.title}</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\t\t\tthis.subtitle?.trim(),\n\t\t\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"subtitle\" token=\"xs\" class=\"mb-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t${this.subtitle}\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t${hasCustomContent\n\t\t\t\t\t\t\t\t\t? html`<div class=\"mb-4\"><slot name=\"content\"></slot></div>`\n\t\t\t\t\t\t\t\t\t: when(\n\t\t\t\t\t\t\t\t\t\t\tthis.message?.trim(),\n\t\t\t\t\t\t\t\t\t\t\t() => html`<schmancy-typography type=\"body\" class=\"mb-4\">${this.message}</schmancy-typography>`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<div class=\"flex justify-end gap-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-button variant=\"outlined\" @click=${this.handleClose}>${this.cancelText}</schmancy-button>\n\t\t\t\t\t\t\t\t\t<schmancy-button type=\"submit\" variant=\"filled\">${this.confirmText}</schmancy-button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</schmancy-form>\n\t\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</div>\n\t\t\t`\n\t\t}\n\n\t\t// Content mode: minimal, just slot\n\t\treturn html`\n\t\t\t<div class=\"fixed inset-0 bg-surface-container/10 backdrop-blur-xs\" @click=${this.handleClose}></div>\n\n\t\t\t<section class=${this.classMap(dialogClasses)} role=\"dialog\" aria-modal=\"true\">\n\t\t\t\t<schmancy-surface rounded=\"all\" type=\"surface\" elevation=\"2\" fill=\"all\" class=\"overflow-hidden\">\n\t\t\t\t\t<schmancy-scroll direction=\"vertical\" hide class=\"p-2 md:p-4 max-h-[90dvh]\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t</schmancy-surface>\n\t\t\t</section>\n\t\t`\n\t}\n\n\t/**\n\t * Static helper for confirm dialogs\n\t */\n\tstatic async confirm(options: {\n\t\ttitle?: string\n\t\tsubtitle?: string\n\t\tmessage?: string\n\t\tconfirmText?: string\n\t\tcancelText?: string\n\t\tvariant?: 'default' | 'danger'\n\t\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\t\twidth?: string\n\t}): Promise<boolean> {\n\t\tlet dialog = document.querySelector('schmancy-dialog[data-static-confirm]') as SchmancyDialog\n\n\t\tif (!dialog) {\n\t\t\tdialog = document.createElement('schmancy-dialog') as SchmancyDialog\n\t\t\tdialog.setAttribute('data-static-confirm', '')\n\t\t\tdocument.body.appendChild(dialog)\n\t\t}\n\n\t\t// Set options\n\t\tdialog.title = options.title\n\t\tdialog.subtitle = options.subtitle\n\t\tdialog.message = options.message\n\t\tdialog.confirmText = options.confirmText ?? 'Confirm'\n\t\tdialog.cancelText = options.cancelText ?? 'Cancel'\n\t\tdialog.variant = options.variant ?? 'default'\n\t\tif (options.width) dialog.style.setProperty('--dialog-width', options.width)\n\n\t\treturn dialog.show(options.position)\n\t}\n\n\t/**\n\t * Simple shorthand - just pass message and optionally an event\n\t */\n\tstatic async ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tposition: event,\n\t\t})\n\t}\n}\n\n// Alias for backward compatibility\nexport { SchmancyDialog as ConfirmDialog }\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dialog': SchmancyDialog\n\t}\n}\n"],"names":["DialogBase","superClass","constructor","super","arguments","this","position","x","y","positionOrEvent","cleanupAutoUpdate","clientX","clientY","touches","length","pos","window","innerWidth","innerHeight","virtualReference","getBoundingClientRect","DOMRect","requestUpdate","updateComplete","setAttribute","setupPositioning","Promise","resolve","resolvePromise","result","removeAttribute","isCentered","toleranceX","toleranceY","Math","abs","dialog","getDialogElement","autoUpdate","updatePosition","ancestorScroll","ancestorResize","elementResize","computePosition","strategy","middleware","offset","autoPlacement","padding","allowedPlacements","shift","size","availableWidth","elements","floating","style","maxWidth","Object","assign","left","round","top","transform","disconnectedCallback","SchmancyDialog","$LitElement","css","title","subtitle","message","confirmText","cancelText","variant","hideActions","shadowRoot","querySelector","isConfirmMode","trim","connectedCallback","fromEvent","DialogWhereAreYouRicky","pipe","tap","e","detail","uid","announcePresence","takeUntil","disconnecting","subscribe","dispatchEvent","CustomEvent","DialogHereMorty","bubbles","composed","handleConfirm","hide","handleClose","render","hasCustomContent","querySelectorAll","dialogClasses","fixed","html","classMap","when","options","document","createElement","body","appendChild","width","setProperty","show","event","confirm","__decorateClass","property","type","String","reflect","prototype","attribute","Boolean","customElement"],"mappings":"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"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { fromEvent as p, tap as m } from "rxjs";
|
|
2
|
-
import { takeUntil as u } from "rxjs/operators";
|
|
3
|
-
import "lit/directives/class-map.js";
|
|
4
|
-
import "lit/directives/style-map.js";
|
|
5
|
-
import { property as r, customElement as y } from "lit/decorators.js";
|
|
6
|
-
import "./tailwind.mixin-Bp_PR6yc.js";
|
|
7
|
-
import { $ as f } from "./litElement.mixin-DHZXtvYq.js";
|
|
8
|
-
import { css as g, html as l } from "lit";
|
|
9
|
-
import { when as h } from "lit/directives/when.js";
|
|
10
|
-
import { autoUpdate as v, computePosition as b, offset as x, autoPlacement as w, shift as C, size as P } from "@floating-ui/dom";
|
|
11
|
-
import { a as $, b as A } from "./dialog-service-D9E3jLAR.js";
|
|
12
|
-
const k = (e) => class extends e {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments), this.position = { x: 0, y: 0 };
|
|
15
|
-
}
|
|
16
|
-
getDialogElement() {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
async show(t) {
|
|
20
|
-
let i, s;
|
|
21
|
-
if (this.cleanupAutoUpdate && (this.cleanupAutoUpdate(), this.cleanupAutoUpdate = void 0), t) if ("clientX" in t) i = t.clientX, s = t.clientY;
|
|
22
|
-
else if ("touches" in t && t.touches.length) i = t.touches[0].clientX, s = t.touches[0].clientY;
|
|
23
|
-
else {
|
|
24
|
-
const o = t;
|
|
25
|
-
i = o.x, s = o.y;
|
|
26
|
-
}
|
|
27
|
-
else i = window.innerWidth / 2, s = window.innerHeight / 2;
|
|
28
|
-
return this.position = { x: i, y: s }, this.virtualReference = { getBoundingClientRect: () => new DOMRect(i, s, 0, 0) }, this.requestUpdate(), await this.updateComplete, this.setAttribute("active", ""), this.setupPositioning(), new Promise((o) => {
|
|
29
|
-
this.resolvePromise = o;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
hide(t = !1) {
|
|
33
|
-
this.removeAttribute("active"), this.cleanupAutoUpdate && (this.cleanupAutoUpdate(), this.cleanupAutoUpdate = void 0), this.resolvePromise && (this.resolvePromise(t), this.resolvePromise = void 0);
|
|
34
|
-
}
|
|
35
|
-
isCentered() {
|
|
36
|
-
const t = 0.3 * window.innerWidth, i = 0.3 * window.innerHeight;
|
|
37
|
-
return Math.abs(this.position.x - window.innerWidth / 2) < t && Math.abs(this.position.y - window.innerHeight / 2) < i;
|
|
38
|
-
}
|
|
39
|
-
setupPositioning() {
|
|
40
|
-
const t = this.getDialogElement();
|
|
41
|
-
t && (this.isCentered() || this.virtualReference && (this.cleanupAutoUpdate = v(this.virtualReference, t, () => this.updatePosition(t), { ancestorScroll: !0, ancestorResize: !0, elementResize: !0 }), this.updatePosition(t)));
|
|
42
|
-
}
|
|
43
|
-
async updatePosition(t) {
|
|
44
|
-
if (!this.virtualReference) return;
|
|
45
|
-
const { x: i, y: s } = await b(this.virtualReference, t, { strategy: "fixed", middleware: [x(8), w({ padding: 16, allowedPlacements: ["top-start", "top-end", "bottom-start", "bottom-end", "left-start", "left-end", "right-start", "right-end"] }), C({ padding: 16 }), P({ padding: 16, apply({ availableWidth: o, elements: a }) {
|
|
46
|
-
a.floating.style.maxWidth = `${o}px`;
|
|
47
|
-
} })] });
|
|
48
|
-
Object.assign(t.style, { position: "fixed", left: `${Math.round(i)}px`, top: `${Math.round(s)}px`, transform: "none" });
|
|
49
|
-
}
|
|
50
|
-
disconnectedCallback() {
|
|
51
|
-
this.cleanupAutoUpdate && (this.cleanupAutoUpdate(), this.cleanupAutoUpdate = void 0), super.disconnectedCallback();
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
var U = Object.defineProperty, E = Object.getOwnPropertyDescriptor, c = (e, t, i, s) => {
|
|
55
|
-
for (var o, a = s > 1 ? void 0 : s ? E(t, i) : t, d = e.length - 1; d >= 0; d--) (o = e[d]) && (a = (s ? o(t, i, a) : o(a)) || a);
|
|
56
|
-
return s && a && U(t, i, a), a;
|
|
57
|
-
};
|
|
58
|
-
let n = class extends k(f(g`
|
|
59
|
-
:host {
|
|
60
|
-
position: fixed;
|
|
61
|
-
z-index: 10000;
|
|
62
|
-
inset: 0;
|
|
63
|
-
display: none;
|
|
64
|
-
--dialog-width: fit-content;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
:host([active]) {
|
|
68
|
-
display: block;
|
|
69
|
-
}
|
|
70
|
-
`)) {
|
|
71
|
-
constructor() {
|
|
72
|
-
super(...arguments), this.title = void 0, this.subtitle = void 0, this.message = void 0, this.confirmText = void 0, this.cancelText = void 0, this.variant = "default", this.hideActions = !1;
|
|
73
|
-
}
|
|
74
|
-
getDialogElement() {
|
|
75
|
-
return this.shadowRoot?.querySelector('[role="dialog"], [role="alertdialog"]');
|
|
76
|
-
}
|
|
77
|
-
get isConfirmMode() {
|
|
78
|
-
return !this.hideActions && !(!this.confirmText?.trim() || !this.cancelText?.trim());
|
|
79
|
-
}
|
|
80
|
-
connectedCallback() {
|
|
81
|
-
super.connectedCallback(), p(window, $).pipe(m((e) => {
|
|
82
|
-
e.detail.uid === this.uid && this.announcePresence();
|
|
83
|
-
}), u(this.disconnecting)).subscribe();
|
|
84
|
-
}
|
|
85
|
-
announcePresence() {
|
|
86
|
-
this.dispatchEvent(new CustomEvent(A, { detail: { dialog: this }, bubbles: !0, composed: !0 }));
|
|
87
|
-
}
|
|
88
|
-
handleConfirm() {
|
|
89
|
-
this.hide(!0), this.dispatchEvent(new CustomEvent("confirm", { bubbles: !0, composed: !0 }));
|
|
90
|
-
}
|
|
91
|
-
handleClose() {
|
|
92
|
-
this.hide(!1), this.dispatchEvent(new CustomEvent(this.isConfirmMode ? "cancel" : "close", { bubbles: !0, composed: !0 }));
|
|
93
|
-
}
|
|
94
|
-
render() {
|
|
95
|
-
const e = this.isCentered(), t = this.querySelectorAll('[slot="content"]').length > 0, i = { dialog: !0, fixed: !0, "w-[var(--dialog-width)]": !0, "max-w-[calc(100vw-2rem)]": !0, "max-h-[90dvh]": !0, "overflow-hidden": !0, "top-1/2": e, "left-1/2": e, "-translate-x-1/2": e, "-translate-y-1/2": e };
|
|
96
|
-
return this.isConfirmMode ? l`
|
|
97
|
-
<div class="fixed inset-0 bg-scrim/40" @click=${this.handleClose}></div>
|
|
98
|
-
|
|
99
|
-
<div class=${this.classMap(i)} role="alertdialog" aria-modal="true">
|
|
100
|
-
<schmancy-surface rounded="all" elevation="3" type="containerHigh" fill="all" class="overflow-hidden">
|
|
101
|
-
<schmancy-scroll direction="vertical" hide class="p-4">
|
|
102
|
-
<schmancy-form @submit=${this.handleConfirm}>
|
|
103
|
-
${h(this.title?.trim(), () => l`
|
|
104
|
-
<schmancy-typography type="title" token="md" class="mb-1">${this.title}</schmancy-typography>
|
|
105
|
-
${h(this.subtitle?.trim(), () => l`
|
|
106
|
-
<schmancy-typography type="subtitle" token="xs" class="mb-2">
|
|
107
|
-
${this.subtitle}
|
|
108
|
-
</schmancy-typography>
|
|
109
|
-
`)}
|
|
110
|
-
`)}
|
|
111
|
-
${t ? l`<div class="mb-4"><slot name="content"></slot></div>` : h(this.message?.trim(), () => l`<schmancy-typography type="body" class="mb-4">${this.message}</schmancy-typography>`)}
|
|
112
|
-
<div class="flex justify-end gap-3">
|
|
113
|
-
<schmancy-button variant="outlined" @click=${this.handleClose}>${this.cancelText}</schmancy-button>
|
|
114
|
-
<schmancy-button type="submit" variant="filled">${this.confirmText}</schmancy-button>
|
|
115
|
-
</div>
|
|
116
|
-
</schmancy-form>
|
|
117
|
-
</schmancy-scroll>
|
|
118
|
-
</schmancy-surface>
|
|
119
|
-
</div>
|
|
120
|
-
` : l`
|
|
121
|
-
<div class="fixed inset-0 bg-surface-container/10 backdrop-blur-xs" @click=${this.handleClose}></div>
|
|
122
|
-
|
|
123
|
-
<section class=${this.classMap(i)} role="dialog" aria-modal="true">
|
|
124
|
-
<schmancy-surface rounded="all" type="surface" elevation="2" fill="all" class="overflow-hidden">
|
|
125
|
-
<schmancy-scroll direction="vertical" hide class="p-2 md:p-4 max-h-[90dvh]">
|
|
126
|
-
<slot></slot>
|
|
127
|
-
</schmancy-scroll>
|
|
128
|
-
</schmancy-surface>
|
|
129
|
-
</section>
|
|
130
|
-
`;
|
|
131
|
-
}
|
|
132
|
-
static async confirm(e) {
|
|
133
|
-
let t = document.querySelector("schmancy-dialog[data-static-confirm]");
|
|
134
|
-
return t || (t = document.createElement("schmancy-dialog"), t.setAttribute("data-static-confirm", ""), document.body.appendChild(t)), t.title = e.title, t.subtitle = e.subtitle, t.message = e.message, t.confirmText = e.confirmText ?? "Confirm", t.cancelText = e.cancelText ?? "Cancel", t.variant = e.variant ?? "default", e.width && t.style.setProperty("--dialog-width", e.width), t.show(e.position);
|
|
135
|
-
}
|
|
136
|
-
static async ask(e, t) {
|
|
137
|
-
return this.confirm({ message: e, position: t });
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
c([r({ type: String, reflect: !0 })], n.prototype, "uid", 2), c([r({ type: String })], n.prototype, "title", 2), c([r({ type: String })], n.prototype, "subtitle", 2), c([r({ type: String })], n.prototype, "message", 2), c([r({ type: String, attribute: "confirm-text" })], n.prototype, "confirmText", 2), c([r({ type: String, attribute: "cancel-text" })], n.prototype, "cancelText", 2), c([r({ type: String })], n.prototype, "variant", 2), c([r({ type: Boolean, attribute: "hide-actions" })], n.prototype, "hideActions", 2), n = c([y("schmancy-dialog")], n);
|
|
141
|
-
export {
|
|
142
|
-
k as D,
|
|
143
|
-
n as S
|
|
144
|
-
};
|
|
145
|
-
//# sourceMappingURL=dialog.component-a7FlKhGD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.component-a7FlKhGD.js","sources":["../src/dialog/dialog-base.mixin.ts","../src/dialog/dialog.component.ts"],"sourcesContent":["import { autoPlacement, autoUpdate, computePosition, offset, shift, size } from '@floating-ui/dom'\nimport { LitElement } from 'lit'\nimport type { Constructor } from '../../mixins/constructor'\nimport type { IBaseMixin } from '../../mixins/baseElement'\n\nexport interface DialogPosition {\n\tx: number\n\ty: number\n}\n\nexport interface VirtualReference {\n\tgetBoundingClientRect: () => DOMRect\n}\n\n/**\n * Interface for the DialogBase mixin methods\n */\nexport interface IDialogBaseMixin {\n\tposition: DialogPosition\n\tshow(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean>\n\thide(result?: boolean): void\n\tisCentered(): boolean\n}\n\n/**\n * Dialog mixin with smart positioning using Floating UI.\n *\n * Uses autoPlacement to find the position with MOST available space,\n * minimizing the need for content scrolling.\n */\nexport const DialogBase = <T extends Constructor<LitElement & IBaseMixin>>(superClass: T) => {\n\tclass DialogBaseClass extends superClass {\n\t\tposition: DialogPosition = { x: 0, y: 0 }\n\t\tprotected resolvePromise?: (value: boolean) => void\n\t\tprotected cleanupAutoUpdate?: () => void\n\t\tprotected virtualReference?: VirtualReference\n\n\t\t/**\n\t\t * Override in subclass to return the dialog element\n\t\t */\n\t\tprotected getDialogElement(): HTMLElement | null {\n\t\t\treturn null\n\t\t}\n\n\t\t/**\n\t\t * Show the dialog at a specific position\n\t\t */\n\t\tasync show(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean> {\n\t\t\t// Cleanup previous positioning\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\n\t\t\tlet x: number, y: number\n\n\t\t\tif (!positionOrEvent) {\n\t\t\t\tx = window.innerWidth / 2\n\t\t\t\ty = window.innerHeight / 2\n\t\t\t} else if ('clientX' in positionOrEvent) {\n\t\t\t\tx = positionOrEvent.clientX\n\t\t\t\ty = positionOrEvent.clientY\n\t\t\t} else if ('touches' in positionOrEvent && positionOrEvent.touches.length) {\n\t\t\t\tx = positionOrEvent.touches[0].clientX\n\t\t\t\ty = positionOrEvent.touches[0].clientY\n\t\t\t} else {\n\t\t\t\tconst pos = positionOrEvent as DialogPosition\n\t\t\t\tx = pos.x\n\t\t\t\ty = pos.y\n\t\t\t}\n\n\t\t\tthis.position = { x, y }\n\n\t\t\t// Virtual reference at click position\n\t\t\tthis.virtualReference = {\n\t\t\t\tgetBoundingClientRect: () => new DOMRect(x, y, 0, 0),\n\t\t\t}\n\n\t\t\t// Trigger re-render with new position (for correct isCentered() in render)\n\t\t\tthis.requestUpdate()\n\t\t\tawait this.updateComplete\n\n\t\t\tthis.setAttribute('active', '')\n\n\t\t\t// Setup Floating UI positioning for non-centered dialogs\n\t\t\tthis.setupPositioning()\n\n\t\t\treturn new Promise<boolean>(resolve => {\n\t\t\t\tthis.resolvePromise = resolve\n\t\t\t})\n\t\t}\n\n\t\t/**\n\t\t * Hide the dialog\n\t\t */\n\t\thide(result = false): void {\n\t\t\tthis.removeAttribute('active')\n\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\n\t\t\tif (this.resolvePromise) {\n\t\t\t\tthis.resolvePromise(result)\n\t\t\t\tthis.resolvePromise = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Check if position is near center\n\t\t */\n\t\tisCentered(): boolean {\n\t\t\tconst toleranceX = window.innerWidth * 0.3\n\t\t\tconst toleranceY = window.innerHeight * 0.3\n\n\t\t\treturn (\n\t\t\t\tMath.abs(this.position.x - window.innerWidth / 2) < toleranceX &&\n\t\t\t\tMath.abs(this.position.y - window.innerHeight / 2) < toleranceY\n\t\t\t)\n\t\t}\n\n\t\t/**\n\t\t * Setup positioning based on whether dialog is centered or positioned\n\t\t */\n\t\tprivate setupPositioning(): void {\n\t\t\tconst dialog = this.getDialogElement()\n\t\t\tif (!dialog) return\n\n\t\t\t// Centered dialogs: CSS handles everything, no JS positioning needed\n\t\t\tif (this.isCentered()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Positioned dialogs: use Floating UI with autoPlacement\n\t\t\tif (this.virtualReference) {\n\t\t\t\tthis.cleanupAutoUpdate = autoUpdate(\n\t\t\t\t\tthis.virtualReference,\n\t\t\t\t\tdialog,\n\t\t\t\t\t() => this.updatePosition(dialog),\n\t\t\t\t\t{\n\t\t\t\t\t\tancestorScroll: true,\n\t\t\t\t\t\tancestorResize: true,\n\t\t\t\t\t\telementResize: true,\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\tthis.updatePosition(dialog)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Update position using Floating UI.\n\t\t * autoPlacement finds the side with MOST space to minimize scrolling.\n\t\t */\n\t\tprivate async updatePosition(dialog: HTMLElement): Promise<void> {\n\t\t\tif (!this.virtualReference) return\n\n\t\t\tconst padding = 16\n\n\t\t\tconst { x, y } = await computePosition(this.virtualReference, dialog, {\n\t\t\t\tstrategy: 'fixed',\n\t\t\t\tmiddleware: [\n\t\t\t\t\t// Small offset from click point\n\t\t\t\t\toffset(8),\n\n\t\t\t\t\t// autoPlacement: picks placement with MOST available space\n\t\t\t\t\tautoPlacement({\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\tallowedPlacements: [\n\t\t\t\t\t\t\t'top-start',\n\t\t\t\t\t\t\t'top-end',\n\t\t\t\t\t\t\t'bottom-start',\n\t\t\t\t\t\t\t'bottom-end',\n\t\t\t\t\t\t\t'left-start',\n\t\t\t\t\t\t\t'left-end',\n\t\t\t\t\t\t\t'right-start',\n\t\t\t\t\t\t\t'right-end',\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\n\t\t\t\t\t// Keep on screen\n\t\t\t\t\tshift({ padding }),\n\n\t\t\t\t\t// Constrain width to available space (CSS handles height via dvh)\n\t\t\t\t\tsize({\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\tapply({ availableWidth, elements }) {\n\t\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tObject.assign(dialog.style, {\n\t\t\t\tposition: 'fixed',\n\t\t\t\tleft: `${Math.round(x)}px`,\n\t\t\t\ttop: `${Math.round(y)}px`,\n\t\t\t\ttransform: 'none',\n\t\t\t})\n\t\t}\n\n\t\t/**\n\t\t * Cleanup on disconnect\n\t\t */\n\t\tdisconnectedCallback(): void {\n\t\t\tif (this.cleanupAutoUpdate) {\n\t\t\t\tthis.cleanupAutoUpdate()\n\t\t\t\tthis.cleanupAutoUpdate = undefined\n\t\t\t}\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\n\treturn DialogBaseClass as Constructor<IDialogBaseMixin> & T\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { fromEvent, tap } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { DialogBase } from './dialog-base.mixin'\nimport { DialogHereMorty, DialogWhereAreYouRicky, DialogWhereAreYouRickyEvent } from './dialog-events'\n\n/**\n * Unified dialog component that handles both content-only and confirm modes.\n *\n * @element schmancy-dialog\n * @slot default - Content slot for dialog body (used in content mode)\n * @slot content - Named slot for custom content in confirm mode\n *\n * @example Content mode (no buttons):\n * ```html\n * <schmancy-dialog>\n * <my-custom-content></my-custom-content>\n * </schmancy-dialog>\n * ```\n *\n * @example Confirm mode (with buttons):\n * ```html\n * <schmancy-dialog\n * title=\"Confirm Action\"\n * message=\"Are you sure?\"\n * confirm-text=\"Yes\"\n * cancel-text=\"No\"\n * ></schmancy-dialog>\n * ```\n */\n@customElement('schmancy-dialog')\nexport class SchmancyDialog extends DialogBase(\n\t$LitElement(css`\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tz-index: 10000;\n\t\t\tinset: 0;\n\t\t\tdisplay: none;\n\t\t\t--dialog-width: fit-content;\n\t\t}\n\n\t\t:host([active]) {\n\t\t\tdisplay: block;\n\t\t}\n\t`),\n) {\n\t/**\n\t * Unique identifier for the dialog instance\n\t */\n\t@property({ type: String, reflect: true }) uid!: string\n\n\t/**\n\t * Dialog title (enables confirm mode when set)\n\t */\n\t@property({ type: String }) title: string | undefined = undefined\n\n\t/**\n\t * Dialog subtitle\n\t */\n\t@property({ type: String }) subtitle: string | undefined = undefined\n\n\t/**\n\t * Dialog message\n\t */\n\t@property({ type: String }) message: string | undefined = undefined\n\n\t/**\n\t * Text for confirm button (enables confirm mode when set with cancelText)\n\t */\n\t@property({ type: String, attribute: 'confirm-text' }) confirmText: string | undefined = undefined\n\n\t/**\n\t * Text for cancel button\n\t */\n\t@property({ type: String, attribute: 'cancel-text' }) cancelText: string | undefined = undefined\n\n\t/**\n\t * Dialog variant (affects button colors in confirm mode)\n\t */\n\t@property({ type: String }) variant: 'default' | 'danger' = 'default'\n\n\t/**\n\t * Whether to hide action buttons (force content mode)\n\t */\n\t@property({ type: Boolean, attribute: 'hide-actions' }) hideActions = false\n\n\t/**\n\t * Return the dialog element for positioning\n\t */\n\tprotected getDialogElement(): HTMLElement | null {\n\t\treturn this.shadowRoot?.querySelector('[role=\"dialog\"], [role=\"alertdialog\"]') as HTMLElement\n\t}\n\n\t/**\n\t * Check if dialog is in confirm mode (has buttons)\n\t */\n\tprivate get isConfirmMode(): boolean {\n\t\tif (this.hideActions) return false\n\t\treturn !!(this.confirmText?.trim() && this.cancelText?.trim())\n\t}\n\n\t/**\n\t * Handle component connection to DOM\n\t */\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Listen for \"where are you ricky\" events\n\t\tfromEvent<DialogWhereAreYouRickyEvent>(window, DialogWhereAreYouRicky)\n\t\t\t.pipe(\n\t\t\t\ttap(e => {\n\t\t\t\t\tif (e.detail.uid === this.uid) this.announcePresence()\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\t/**\n\t * Announce this dialog's presence to the service\n\t */\n\tprivate announcePresence(): void {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(DialogHereMorty, {\n\t\t\t\tdetail: { dialog: this },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle confirm action\n\t */\n\tprivate handleConfirm(): void {\n\t\tthis.hide(true)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('confirm', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle cancel/close action\n\t */\n\tprivate handleClose(): void {\n\t\tthis.hide(false)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(this.isConfirmMode ? 'cancel' : 'close', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst isCentered = this.isCentered()\n\t\tconst hasCustomContent = this.querySelectorAll('[slot=\"content\"]').length > 0\n\n\t\tconst dialogClasses = {\n\t\t\tdialog: true,\n\t\t\tfixed: true,\n\t\t\t'w-[var(--dialog-width)]': true,\n\t\t\t'max-w-[calc(100vw-2rem)]': true,\n\t\t\t'max-h-[90dvh]': true,\n\t\t\t'overflow-hidden': true,\n\t\t\t'top-1/2': isCentered,\n\t\t\t'left-1/2': isCentered,\n\t\t\t'-translate-x-1/2': isCentered,\n\t\t\t'-translate-y-1/2': isCentered,\n\t\t}\n\n\t\t// Confirm mode: with title/buttons\n\t\tif (this.isConfirmMode) {\n\t\t\treturn html`\n\t\t\t\t<div class=\"fixed inset-0 bg-scrim/40\" @click=${this.handleClose}></div>\n\n\t\t\t\t<div class=${this.classMap(dialogClasses)} role=\"alertdialog\" aria-modal=\"true\">\n\t\t\t\t\t<schmancy-surface rounded=\"all\" elevation=\"3\" type=\"containerHigh\" fill=\"all\" class=\"overflow-hidden\">\n\t\t\t\t\t\t<schmancy-scroll direction=\"vertical\" hide class=\"p-4\">\n\t\t\t\t\t\t\t<schmancy-form @submit=${this.handleConfirm}>\n\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\tthis.title?.trim(),\n\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"mb-1\">${this.title}</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t${when(\n\t\t\t\t\t\t\t\t\t\t\tthis.subtitle?.trim(),\n\t\t\t\t\t\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"subtitle\" token=\"xs\" class=\"mb-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t${this.subtitle}\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t${hasCustomContent\n\t\t\t\t\t\t\t\t\t? html`<div class=\"mb-4\"><slot name=\"content\"></slot></div>`\n\t\t\t\t\t\t\t\t\t: when(\n\t\t\t\t\t\t\t\t\t\t\tthis.message?.trim(),\n\t\t\t\t\t\t\t\t\t\t\t() => html`<schmancy-typography type=\"body\" class=\"mb-4\">${this.message}</schmancy-typography>`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<div class=\"flex justify-end gap-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-button variant=\"outlined\" @click=${this.handleClose}>${this.cancelText}</schmancy-button>\n\t\t\t\t\t\t\t\t\t<schmancy-button type=\"submit\" variant=\"filled\">${this.confirmText}</schmancy-button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</schmancy-form>\n\t\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</div>\n\t\t\t`\n\t\t}\n\n\t\t// Content mode: minimal, just slot\n\t\treturn html`\n\t\t\t<div class=\"fixed inset-0 bg-surface-container/10 backdrop-blur-xs\" @click=${this.handleClose}></div>\n\n\t\t\t<section class=${this.classMap(dialogClasses)} role=\"dialog\" aria-modal=\"true\">\n\t\t\t\t<schmancy-surface rounded=\"all\" type=\"surface\" elevation=\"2\" fill=\"all\" class=\"overflow-hidden\">\n\t\t\t\t\t<schmancy-scroll direction=\"vertical\" hide class=\"p-2 md:p-4 max-h-[90dvh]\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-scroll>\n\t\t\t\t</schmancy-surface>\n\t\t\t</section>\n\t\t`\n\t}\n\n\t/**\n\t * Static helper for confirm dialogs\n\t */\n\tstatic async confirm(options: {\n\t\ttitle?: string\n\t\tsubtitle?: string\n\t\tmessage?: string\n\t\tconfirmText?: string\n\t\tcancelText?: string\n\t\tvariant?: 'default' | 'danger'\n\t\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\t\twidth?: string\n\t}): Promise<boolean> {\n\t\tlet dialog = document.querySelector('schmancy-dialog[data-static-confirm]') as SchmancyDialog\n\n\t\tif (!dialog) {\n\t\t\tdialog = document.createElement('schmancy-dialog') as SchmancyDialog\n\t\t\tdialog.setAttribute('data-static-confirm', '')\n\t\t\tdocument.body.appendChild(dialog)\n\t\t}\n\n\t\t// Set options\n\t\tdialog.title = options.title\n\t\tdialog.subtitle = options.subtitle\n\t\tdialog.message = options.message\n\t\tdialog.confirmText = options.confirmText ?? 'Confirm'\n\t\tdialog.cancelText = options.cancelText ?? 'Cancel'\n\t\tdialog.variant = options.variant ?? 'default'\n\t\tif (options.width) dialog.style.setProperty('--dialog-width', options.width)\n\n\t\treturn dialog.show(options.position)\n\t}\n\n\t/**\n\t * Simple shorthand - just pass message and optionally an event\n\t */\n\tstatic async ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tposition: event,\n\t\t})\n\t}\n}\n\n// Alias for backward compatibility\nexport { SchmancyDialog as ConfirmDialog }\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dialog': SchmancyDialog\n\t}\n}\n"],"names":["DialogBase","superClass","super","arguments","this","position","x","y","getDialogElement","positionOrEvent","cleanupAutoUpdate","clientX","clientY","touches","length","pos","window","innerWidth","innerHeight","virtualReference","getBoundingClientRect","DOMRect","requestUpdate","updateComplete","setAttribute","setupPositioning","Promise","resolve","resolvePromise","result","removeAttribute","toleranceX","toleranceY","Math","abs","dialog","isCentered","autoUpdate","updatePosition","ancestorScroll","ancestorResize","elementResize","computePosition","strategy","middleware","offset","autoPlacement","padding","allowedPlacements","shift","size","apply","availableWidth","elements","floating","style","maxWidth","Object","assign","left","round","top","transform","disconnectedCallback","SchmancyDialog","$LitElement","css","title","subtitle","message","confirmText","cancelText","variant","hideActions","shadowRoot","querySelector","isConfirmMode","trim","connectedCallback","fromEvent","DialogWhereAreYouRicky","pipe","tap","e","detail","uid","announcePresence","takeUntil","disconnecting","subscribe","dispatchEvent","CustomEvent","DialogHereMorty","bubbles","composed","hide","handleClose","hasCustomContent","querySelectorAll","dialogClasses","fixed","html","classMap","handleConfirm","when","options","document","createElement","body","appendChild","width","setProperty","show","event","confirm","__decorateClass","property","type","String","reflect","prototype","attribute","Boolean","customElement"],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Observable as s, fromEvent as m, timer as u, race as p } from "rxjs";
|
|
2
|
-
import { takeUntil as c, map as l, defaultIfEmpty as b } from "rxjs/operators";
|
|
3
|
-
function w(t, e = 100) {
|
|
4
|
-
const a = `${t}-where-are-you`, r = `${t}-here-i-am`;
|
|
5
|
-
return new s((o) => {
|
|
6
|
-
const i = m(window, r).pipe(c(u(e)), l((n) => n.detail.component), b(null)).subscribe((n) => {
|
|
7
|
-
o.next(n), o.complete();
|
|
8
|
-
});
|
|
9
|
-
return window.dispatchEvent(new CustomEvent(a, { bubbles: !0, composed: !0 })), () => i.unsubscribe();
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
function h(...t) {
|
|
13
|
-
return t.length === 0 ? new s((e) => {
|
|
14
|
-
e.next(null), e.complete();
|
|
15
|
-
}) : p(...t.map((e) => w(e)));
|
|
16
|
-
}
|
|
17
|
-
export {
|
|
18
|
-
h as a,
|
|
19
|
-
w as d
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=discovery.service-BbYjU5x8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.service-BbYjU5x8.js","sources":["../src/discovery/discovery.service.ts"],"sourcesContent":["import { fromEvent, timer, race, Observable } from 'rxjs'\r\nimport { takeUntil, map, defaultIfEmpty } from 'rxjs/operators'\r\n\r\n/**\r\n * Discover a component in the DOM using the WhereAreYou/HereIAm pattern.\r\n *\r\n * @param componentTag - The tag name of the component to discover (e.g., 'schmancy-navigation-rail')\r\n * @param timeout - How long to wait for a response in milliseconds (default: 100)\r\n * @returns Observable that emits the discovered component or null if not found\r\n */\r\nexport function discoverComponent<T extends HTMLElement>(\r\n\tcomponentTag: string,\r\n\ttimeout = 100,\r\n): Observable<T | null> {\r\n\tconst whereAreYouEvent = `${componentTag}-where-are-you`\r\n\tconst hereIAmEvent = `${componentTag}-here-i-am`\r\n\r\n\treturn new Observable(subscriber => {\r\n\t\t// Listen for response first (you were right!)\r\n\t\tconst subscription = fromEvent<CustomEvent>(window, hereIAmEvent)\r\n\t\t\t.pipe(\r\n\t\t\t\ttakeUntil(timer(timeout)),\r\n\t\t\t\tmap(e => e.detail.component as T),\r\n\t\t\t\tdefaultIfEmpty(null),\r\n\t\t\t)\r\n\t\t\t.subscribe(component => {\r\n\t\t\t\tsubscriber.next(component)\r\n\t\t\t\tsubscriber.complete()\r\n\t\t\t})\r\n\r\n\t\t// Then dispatch discovery request\r\n\t\twindow.dispatchEvent(\r\n\t\t\tnew CustomEvent(whereAreYouEvent, {\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcomposed: true,\r\n\t\t\t}),\r\n\t\t)\r\n\r\n\t\t// Return cleanup function\r\n\t\treturn () => subscription.unsubscribe()\r\n\t})\r\n}\r\n\r\n/**\r\n * Discover any of multiple components using race.\r\n * Returns the first component that responds.\r\n *\r\n * @param componentTags - Array of component tag names to discover\r\n * @returns Observable that emits the first discovered component or null if none found\r\n */\r\nexport function discoverAnyComponent<T extends HTMLElement>(...componentTags: string[]): Observable<T | null> {\r\n\tif (componentTags.length === 0) {\r\n\t\treturn new Observable(subscriber => {\r\n\t\t\tsubscriber.next(null)\r\n\t\t\tsubscriber.complete()\r\n\t\t})\r\n\t}\r\n\r\n\treturn race(...componentTags.map(tag => discoverComponent<T>(tag)))\r\n}"],"names":["discoverComponent","componentTag","timeout","whereAreYouEvent","hereIAmEvent","Observable","subscriber","subscription","fromEvent","window","pipe","takeUntil","timer","map","e","detail","component","defaultIfEmpty","subscribe","next","complete","dispatchEvent","CustomEvent","bubbles","composed","unsubscribe","discoverAnyComponent","componentTags","length","race","tag"],"mappings":";;AAUO,SAASA,EACfC,GACAC,IAAU,KAAA;AAEV,QAAMC,IAAmB,GAAGF,CAAAA,kBACtBG,IAAe,GAAGH,CAAAA;AAExB,SAAO,IAAII,EAAWC,CAAAA,MAAAA;AAErB,UAAMC,IAAeC,EAAuBC,QAAQL,GAClDM,KACAC,EAAUC,EAAMV,CAAAA,CAAAA,GAChBW,EAAIC,CAAAA,MAAKA,EAAEC,OAAOC,SAAAA,GAClBC,EAAe,OAEfC,UAAUF,OAAAA;AACVV,MAAAA,EAAWa,KAAKH,IAChBV,EAAWc,SAAAA;AAAAA,IAAAA,CAAAA;AAYb,WARAX,OAAOY,cACN,IAAIC,YAAYnB,GAAkB,EACjCoB,SAAAA,IACAC,UAAAA,GAAU,CAAA,CAAA,GAKL,MAAMjB,EAAakB,YAAAA;AAAAA,EAAAA,CAAAA;AAE5B;AASO,SAASC,KAA+CC,GAAAA;AAC9D,SAAIA,EAAcC,WAAW,IACrB,IAAIvB,EAAWC,CAAAA,MAAAA;AACrBA,IAAAA,EAAWa,KAAK,IAAA,GAChBb,EAAWc,SAAAA;AAAAA,EAAAA,CAAAA,IAINS,KAAQF,EAAcd,WAAWb,EAAqB8B,CAAAA,CAAAA,CAAAA;AAC9D;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const t=require("rxjs"),o=require("rxjs/operators");function u(n,e=100){const i=`${n}-where-are-you`,c=`${n}-here-i-am`;return new t.Observable(s=>{const l=t.fromEvent(window,c).pipe(o.takeUntil(t.timer(e)),o.map(r=>r.detail.component),o.defaultIfEmpty(null)).subscribe(r=>{s.next(r),s.complete()});return window.dispatchEvent(new CustomEvent(i,{bubbles:!0,composed:!0})),()=>l.unsubscribe()})}exports.discoverAnyComponent=function(...n){return n.length===0?new t.Observable(e=>{e.next(null),e.complete()}):t.race(...n.map(e=>u(e)))},exports.discoverComponent=u;
|
|
2
|
-
//# sourceMappingURL=discovery.service-BpGCuXPd.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.service-BpGCuXPd.cjs","sources":["../src/discovery/discovery.service.ts"],"sourcesContent":["import { fromEvent, timer, race, Observable } from 'rxjs'\r\nimport { takeUntil, map, defaultIfEmpty } from 'rxjs/operators'\r\n\r\n/**\r\n * Discover a component in the DOM using the WhereAreYou/HereIAm pattern.\r\n *\r\n * @param componentTag - The tag name of the component to discover (e.g., 'schmancy-navigation-rail')\r\n * @param timeout - How long to wait for a response in milliseconds (default: 100)\r\n * @returns Observable that emits the discovered component or null if not found\r\n */\r\nexport function discoverComponent<T extends HTMLElement>(\r\n\tcomponentTag: string,\r\n\ttimeout = 100,\r\n): Observable<T | null> {\r\n\tconst whereAreYouEvent = `${componentTag}-where-are-you`\r\n\tconst hereIAmEvent = `${componentTag}-here-i-am`\r\n\r\n\treturn new Observable(subscriber => {\r\n\t\t// Listen for response first (you were right!)\r\n\t\tconst subscription = fromEvent<CustomEvent>(window, hereIAmEvent)\r\n\t\t\t.pipe(\r\n\t\t\t\ttakeUntil(timer(timeout)),\r\n\t\t\t\tmap(e => e.detail.component as T),\r\n\t\t\t\tdefaultIfEmpty(null),\r\n\t\t\t)\r\n\t\t\t.subscribe(component => {\r\n\t\t\t\tsubscriber.next(component)\r\n\t\t\t\tsubscriber.complete()\r\n\t\t\t})\r\n\r\n\t\t// Then dispatch discovery request\r\n\t\twindow.dispatchEvent(\r\n\t\t\tnew CustomEvent(whereAreYouEvent, {\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcomposed: true,\r\n\t\t\t}),\r\n\t\t)\r\n\r\n\t\t// Return cleanup function\r\n\t\treturn () => subscription.unsubscribe()\r\n\t})\r\n}\r\n\r\n/**\r\n * Discover any of multiple components using race.\r\n * Returns the first component that responds.\r\n *\r\n * @param componentTags - Array of component tag names to discover\r\n * @returns Observable that emits the first discovered component or null if none found\r\n */\r\nexport function discoverAnyComponent<T extends HTMLElement>(...componentTags: string[]): Observable<T | null> {\r\n\tif (componentTags.length === 0) {\r\n\t\treturn new Observable(subscriber => {\r\n\t\t\tsubscriber.next(null)\r\n\t\t\tsubscriber.complete()\r\n\t\t})\r\n\t}\r\n\r\n\treturn race(...componentTags.map(tag => discoverComponent<T>(tag)))\r\n}"],"names":["discoverComponent","componentTag","timeout","whereAreYouEvent","hereIAmEvent","Observable","subscriber","subscription","fromEvent","window","pipe","takeUntil","timer","map","e","detail","component","defaultIfEmpty","subscribe","next","complete","dispatchEvent","CustomEvent","bubbles","composed","unsubscribe","componentTags","length","race","tag"],"mappings":"iEAUO,SAASA,EACfC,EACAC,EAAU,IAAA,CAEV,MAAMC,EAAmB,GAAGF,CAAAA,iBACtBG,EAAe,GAAGH,CAAAA,aAExB,OAAO,IAAII,EAAAA,WAAWC,GAAAA,CAErB,MAAMC,EAAeC,EAAAA,UAAuBC,OAAQL,CAAAA,EAClDM,KACAC,YAAUC,EAAAA,MAAMV,CAAAA,CAAAA,EAChBW,EAAAA,IAAIC,GAAKA,EAAEC,OAAOC,SAAAA,EAClBC,EAAAA,eAAe,IAAA,CAAA,EAEfC,UAAUF,IACVV,EAAWa,KAAKH,GAChBV,EAAWc,SAAAA,CAAAA,CAAAA,EAYb,OARAX,OAAOY,cACN,IAAIC,YAAYnB,EAAkB,CACjCoB,QAAAA,GACAC,WAAU,CAAA,CAAA,EAKL,IAAMjB,EAAakB,YAAAA,CAAAA,CAAAA,CAE5B,8BASO,YAAwDC,GAC9D,OAAIA,EAAcC,SAAW,EACrB,IAAItB,EAAAA,WAAWC,GAAAA,CACrBA,EAAWa,KAAK,IAAA,EAChBb,EAAWc,SAAAA,CAAAA,CAAAA,EAINQ,EAAAA,QAAQF,EAAcb,OAAWb,EAAqB6B,CAAAA,CAAAA,CAAAA,CAC9D"}
|