@mhmo91/schmancy 0.10.42 → 0.10.44
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/custom-elements.json +264 -79
- package/dist/SchmancyElement-CeKrBW2j.cjs +2 -0
- package/dist/SchmancyElement-CeKrBW2j.cjs.map +1 -0
- package/dist/SchmancyElement-Ob9yGkiG.js +286 -0
- package/dist/SchmancyElement-Ob9yGkiG.js.map +1 -0
- package/dist/agent/schmancy.agent.js +4032 -3886
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +215 -58
- package/dist/animation-CCOIW4wJ.cjs.map +1 -1
- package/dist/animation-DCznELuT.js.map +1 -1
- package/dist/area-CbajcnmJ.cjs +21 -0
- package/dist/area-CbajcnmJ.cjs.map +1 -0
- package/dist/{area-DtCNCb8w.js → area-MxLAyWgV.js} +22 -22
- package/dist/area-MxLAyWgV.js.map +1 -0
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{audio-DdN76ikW.js → audio-B_0PGwYC.js} +1 -1
- package/dist/audio-B_0PGwYC.js.map +1 -0
- package/dist/{audio-B924fI5N.cjs → audio-CpwrIaw-.cjs} +1 -1
- package/dist/audio-CpwrIaw-.cjs.map +1 -0
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/autocomplete-CILzaDB7.cjs +115 -0
- package/dist/autocomplete-CILzaDB7.cjs.map +1 -0
- package/dist/{autocomplete-UNOknYUz.js → autocomplete-DV9RxCun.js} +113 -113
- package/dist/autocomplete-DV9RxCun.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +1 -1
- package/dist/avatar.cjs.map +1 -1
- package/dist/avatar.js +4 -4
- package/dist/avatar.js.map +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-BZah1Sf9.js → boat-DoZGgQ0P.js} +5 -5
- package/dist/{boat-BZah1Sf9.js.map → boat-DoZGgQ0P.js.map} +1 -1
- package/dist/{boat-D3bEjxf8.cjs → boat-sg0cWO8a.cjs} +2 -2
- package/dist/{boat-D3bEjxf8.cjs.map → boat-sg0cWO8a.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +32 -31
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js +33 -32
- package/dist/breadcrumb.js.map +1 -1
- package/dist/busy-Brs-TDh9.cjs +133 -0
- package/dist/busy-Brs-TDh9.cjs.map +1 -0
- package/dist/busy-g4LoQmhB.js +172 -0
- package/dist/busy-g4LoQmhB.js.map +1 -0
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-CTvS5YX4.cjs → button-Cml67Y_d.cjs} +41 -32
- package/dist/button-Cml67Y_d.cjs.map +1 -0
- package/dist/{button-DgoDfcJx.js → button-DWANpZfD.js} +43 -34
- package/dist/button-DWANpZfD.js.map +1 -0
- package/dist/button.cjs +40 -33
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +42 -35
- package/dist/button.js.map +1 -1
- package/dist/calendar-2dJrw9pR.cjs +58 -0
- package/dist/calendar-2dJrw9pR.cjs.map +1 -0
- package/dist/calendar-kCe5LaBa.js +434 -0
- package/dist/calendar-kCe5LaBa.js.map +1 -0
- package/dist/calendar.cjs +1 -0
- package/dist/calendar.js +2 -0
- package/dist/{card-C6ijJZpF.js → card-CS_hYJbz.js} +136 -136
- package/dist/card-CS_hYJbz.js.map +1 -0
- package/dist/card-d0KhTnx5.cjs +177 -0
- package/dist/card-d0KhTnx5.cjs.map +1 -0
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-7vEPZuGC.js → checkbox-Bjp7kWuE.js} +2 -2
- package/dist/{checkbox-7vEPZuGC.js.map → checkbox-Bjp7kWuE.js.map} +1 -1
- package/dist/{checkbox-DXKdxkXE.cjs → checkbox-DZ2Wrz7Y.cjs} +1 -1
- package/dist/{checkbox-DXKdxkXE.cjs.map → checkbox-DZ2Wrz7Y.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-9eG-96_D.cjs → chips-BHBVkxsa.cjs} +142 -153
- package/dist/chips-BHBVkxsa.cjs.map +1 -0
- package/dist/{chips-DF7akwz7.js → chips-DACeW7YL.js} +127 -138
- package/dist/chips-DACeW7YL.js.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +53 -35
- package/dist/connectivity.cjs.map +1 -1
- package/dist/connectivity.js +55 -37
- package/dist/connectivity.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
- package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
- package/dist/date-range-B2VN7cl_.cjs +138 -0
- package/dist/date-range-B2VN7cl_.cjs.map +1 -0
- package/dist/date-range-CDF_5ju_.js +439 -0
- package/dist/date-range-CDF_5ju_.js.map +1 -0
- package/dist/{date-range-inline-DV2c_gWM.cjs → date-range-inline-CGM0SPK9.cjs} +2 -4
- package/dist/date-range-inline-CGM0SPK9.cjs.map +1 -0
- package/dist/{date-range-inline-BnOD-ddB.js → date-range-inline-D6Ozerzw.js} +3 -5
- package/dist/date-range-inline-D6Ozerzw.js.map +1 -0
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +2 -2
- package/dist/dayjs.min-CvRZTfam.cjs +1 -0
- package/dist/dayjs.min-CvRZTfam.cjs.map +1 -0
- package/dist/dayjs.min-DnELezPs.js +296 -0
- package/dist/dayjs.min-DnELezPs.js.map +1 -0
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +3 -3
- package/dist/{details-ByF66CyY.js → details-Ct1_GwKr.js} +104 -93
- package/dist/details-Ct1_GwKr.js.map +1 -0
- package/dist/{details-B2-jECBh.cjs → details-D4fVOaj4.cjs} +109 -98
- package/dist/details-D4fVOaj4.cjs.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{directives-DCb_LA9R.cjs → directives-B2VxfwRL.cjs} +1 -1
- package/dist/directives-B2VxfwRL.cjs.map +1 -0
- package/dist/{directives-BL7mzVsA.js → directives-Dj8jlv-Q.js} +3 -3
- package/dist/directives-Dj8jlv-Q.js.map +1 -0
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +2 -2
- package/dist/discovery.service-CIa3Eeuk.cjs.map +1 -1
- package/dist/discovery.service-DZFxtRwW.js.map +1 -1
- package/dist/divider-B3v33OnX.cjs +57 -0
- package/dist/divider-B3v33OnX.cjs.map +1 -0
- package/dist/divider-BJHW3q11.js +89 -0
- package/dist/divider-BJHW3q11.js.map +1 -0
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +40 -40
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js +41 -41
- package/dist/dropdown.js.map +1 -1
- package/dist/{expand-cZ8rfCWP.js → expand-BT8mOu8Q.js} +103 -97
- package/dist/expand-BT8mOu8Q.js.map +1 -0
- package/dist/expand-D0YdR9nR.cjs +147 -0
- package/dist/expand-D0YdR9nR.cjs.map +1 -0
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/fab.cjs +1 -1
- package/dist/fab.cjs.map +1 -1
- package/dist/fab.js +2 -2
- package/dist/fab.js.map +1 -1
- package/dist/{float-DkGyWSWy.cjs → float-BPQlDyai.cjs} +1 -1
- package/dist/{float-DkGyWSWy.cjs.map → float-BPQlDyai.cjs.map} +1 -1
- package/dist/{float-zn3DgXBT.js → float-BQcxj3i_.js} +2 -2
- package/dist/{float-zn3DgXBT.js.map → float-BQcxj3i_.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-DowzVsgI.cjs → form-CoWFnClb.cjs} +8 -13
- package/dist/form-CoWFnClb.cjs.map +1 -0
- package/dist/{form-tG7LwDm4.js → form-hC2LvCHX.js} +10 -15
- package/dist/form-hC2LvCHX.js.map +1 -0
- package/dist/form.cjs +12 -13
- package/dist/form.cjs.map +1 -1
- package/dist/form.js +23 -24
- package/dist/form.js.map +1 -1
- package/dist/gravity-6pL6CfIr.cjs.map +1 -1
- package/dist/gravity-sVK3zGBF.js.map +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{hashContent-iRZJJWtE.cjs.map → hashContent--s09Ed_g.cjs.map} +1 -1
- package/dist/{hashContent-BqU6v1Xr.js.map → hashContent-CAvrQ56N.js.map} +1 -1
- package/dist/icons-BeGKDZ-k.cjs +22 -0
- package/dist/icons-BeGKDZ-k.cjs.map +1 -0
- package/dist/{icons-Dup5skuk.js → icons-DEJnIxml.js} +20 -22
- package/dist/icons-DEJnIxml.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-CDJjnNmo.cjs → iframe-BkSukM9C.cjs} +9 -9
- package/dist/iframe-BkSukM9C.cjs.map +1 -0
- package/dist/{iframe-Xc3EPMZT.js → iframe-V3S-bwEY.js} +10 -10
- package/dist/iframe-V3S-bwEY.js.map +1 -0
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +61 -60
- package/dist/{input-cTyDxW9L.js → input-CPFCSQld.js} +3 -10
- package/dist/input-CPFCSQld.js.map +1 -0
- package/dist/{input-DnmC6J1T.cjs → input-DSfwfhhj.cjs} +2 -9
- package/dist/input-DSfwfhhj.cjs.map +1 -0
- package/dist/input-chip-BUuFJUky.cjs +129 -0
- package/dist/input-chip-BUuFJUky.cjs.map +1 -0
- package/dist/{input-chip-CYI17YOq.js → input-chip-C3a1fwKB.js} +87 -104
- package/dist/input-chip-C3a1fwKB.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json.cjs +5 -1
- package/dist/json.cjs.map +1 -1
- package/dist/json.js +8 -4
- package/dist/json.js.map +1 -1
- package/dist/kbd.cjs +28 -28
- package/dist/kbd.cjs.map +1 -1
- package/dist/kbd.js +29 -29
- package/dist/kbd.js.map +1 -1
- package/dist/{layout-CNlZSJFU.cjs → layout-CdyHy_oX.cjs} +1 -1
- package/dist/layout-CdyHy_oX.cjs.map +1 -0
- package/dist/{layout-DDxw0EwL.js → layout-k6fOkpif.js} +1 -1
- package/dist/layout-k6fOkpif.js.map +1 -0
- package/dist/layout.cjs +26 -26
- package/dist/layout.cjs.map +1 -1
- package/dist/layout.js +27 -27
- package/dist/layout.js.map +1 -1
- package/dist/lazy-BaAiIUru.js.map +1 -1
- package/dist/lazy-C-7a4FAe.cjs.map +1 -1
- package/dist/{lightbox-CH-y3rYB.js → lightbox-DIG0VLOK.js} +8 -14
- package/dist/lightbox-DIG0VLOK.js.map +1 -0
- package/dist/{lightbox-CvtqoInF.cjs → lightbox-E5rgd-hu.cjs} +7 -13
- package/dist/lightbox-E5rgd-hu.cjs.map +1 -0
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/list-BRz0rDSH.cjs +47 -0
- package/dist/list-BRz0rDSH.cjs.map +1 -0
- package/dist/{list-DrsawQ5R.js → list-NrOYDPBo.js} +42 -35
- package/dist/list-NrOYDPBo.js.map +1 -0
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/magnetic-DKtc4umC.cjs.map +1 -1
- package/dist/magnetic-DaOOv5Dz.js.map +1 -1
- package/dist/{menu-CsY5lMqY.js → menu-B1Ei9SVj.js} +12 -12
- package/dist/menu-B1Ei9SVj.js.map +1 -0
- package/dist/{menu-BFRcTe3o.cjs → menu-Duvl66Nl.cjs} +10 -10
- package/dist/menu-Duvl66Nl.cjs.map +1 -0
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/{mixins-BoMURWag.cjs → mixins-Cjn20BQH.cjs} +42 -100
- package/dist/mixins-Cjn20BQH.cjs.map +1 -0
- package/dist/{mixins-bCEXbwJV.js → mixins-q4KAL8Xr.js} +42 -100
- package/dist/mixins-q4KAL8Xr.js.map +1 -0
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +2 -2
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/navigation-rail.cjs +2 -4
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +3 -5
- package/dist/navigation-rail.js.map +1 -1
- package/dist/{notification-DFKRMmSq.js → notification-COhUhUCr.js} +5 -7
- package/dist/notification-COhUhUCr.js.map +1 -0
- package/dist/{notification-FBf3Mb2e.cjs → notification-DsdA_MJe.cjs} +2 -4
- package/dist/notification-DsdA_MJe.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-Ct0lGdH3.js → option-BIzgTbXz.js} +20 -20
- package/dist/option-BIzgTbXz.js.map +1 -0
- package/dist/option-C5hhqR2z.cjs +43 -0
- package/dist/option-C5hhqR2z.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-sRXiMkjn.cjs → overlay-BzgF8P7i.cjs} +48 -41
- package/dist/overlay-BzgF8P7i.cjs.map +1 -0
- package/dist/{overlay-Bh8Q_R01.js → overlay-LoRRemny.js} +52 -45
- package/dist/overlay-LoRRemny.js.map +1 -0
- package/dist/overlay-stack-Bdr9lOqi.cjs.map +1 -1
- package/dist/overlay-stack-D2rgxQLh.js.map +1 -1
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-CQihsR20.js → overlay.confirm-body-D0b1MoCw.js} +30 -45
- package/dist/overlay.confirm-body-D0b1MoCw.js.map +1 -0
- package/dist/{overlay.confirm-body-Jc1EuMGs.cjs → overlay.confirm-body-DCneq73Z.cjs} +22 -37
- package/dist/overlay.confirm-body-DCneq73Z.cjs.map +1 -0
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-BXPgS7ay.js → overlay.service-BuUeti6X.js} +2 -2
- package/dist/overlay.service-BuUeti6X.js.map +1 -0
- package/dist/{overlay.service-9Dp3g7ot.cjs → overlay.service-MMTiW2T3.cjs} +1 -1
- package/dist/overlay.service-MMTiW2T3.cjs.map +1 -0
- package/dist/{progress-CYLshdo2.js → progress-D7n3SKAO.js} +50 -50
- package/dist/progress-D7n3SKAO.js.map +1 -0
- package/dist/progress-DsCnFsH5.cjs +51 -0
- package/dist/progress-DsCnFsH5.cjs.map +1 -0
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-6kCgOgBL.cjs → radio-group-CaAjg9UV.cjs} +1 -1
- package/dist/radio-group-CaAjg9UV.cjs.map +1 -0
- package/dist/{radio-group-bZtZHOj_.js → radio-group-Drpl6Pl8.js} +2 -2
- package/dist/radio-group-Drpl6Pl8.js.map +1 -0
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +4 -2
- package/dist/range.cjs.map +1 -1
- package/dist/range.js +5 -3
- package/dist/range.js.map +1 -1
- package/dist/reduced-motion-D-L12p7G.js.map +1 -1
- package/dist/reduced-motion-Ds-HjMzn.cjs.map +1 -1
- package/dist/{rxjs-utils-Csnks202.cjs.map → rxjs-utils-4P2v57ke.cjs.map} +1 -1
- package/dist/{rxjs-utils-d-ivVN84.js.map → rxjs-utils-JMFdgQSl.js.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/search-DPKoC-dT.cjs.map +1 -1
- package/dist/search-MvIBA93K.js.map +1 -1
- package/dist/{select-CU3X-PIa.js → select-CTXkrrVZ.js} +13 -13
- package/dist/select-CTXkrrVZ.js.map +1 -0
- package/dist/select-DcLcpPCh.cjs +56 -0
- package/dist/select-DcLcpPCh.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/skeleton.cjs +37 -33
- package/dist/skeleton.cjs.map +1 -1
- package/dist/skeleton.js +38 -34
- package/dist/skeleton.js.map +1 -1
- package/dist/skills/schmancy/surface.md +38 -22
- package/dist/skills/surface.md +38 -22
- package/dist/slider.cjs +31 -31
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +32 -32
- package/dist/slider.js.map +1 -1
- package/dist/{sound.service-B4ZmXpH9.js → sound.service-AJwuk3yr.js} +1 -1
- package/dist/sound.service-AJwuk3yr.js.map +1 -0
- package/dist/{sound.service-DjlMvicQ.cjs → sound.service-CVsxhQkX.cjs} +1 -1
- package/dist/sound.service-CVsxhQkX.cjs.map +1 -0
- package/dist/{splash-screen-emCLYoVl.js → splash-screen-DANfqvlo.js} +23 -26
- package/dist/splash-screen-DANfqvlo.js.map +1 -0
- package/dist/splash-screen-K74cgU6S.cjs +38 -0
- package/dist/splash-screen-K74cgU6S.cjs.map +1 -0
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-DGDTkOvC.js → src-Bo-vvN6m.js} +173 -175
- package/dist/src-Bo-vvN6m.js.map +1 -0
- package/dist/src-MdpH1zth.cjs +237 -0
- package/dist/src-MdpH1zth.cjs.map +1 -0
- package/dist/{state-CumAEPQH.cjs → state-BWQiqN6I.cjs} +1 -1
- package/dist/state-BWQiqN6I.cjs.map +1 -0
- package/dist/{state-DMd_FUeA.js → state-DBA_gzJO.js} +1 -1
- package/dist/state-DBA_gzJO.js.map +1 -0
- package/dist/state.cjs +1 -1
- package/dist/state.js +2 -2
- package/dist/steps.cjs +20 -12
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +21 -13
- package/dist/steps.js.map +1 -1
- package/dist/surface-COBvWWFb.cjs +7 -0
- package/dist/surface-COBvWWFb.cjs.map +1 -0
- package/dist/{surface-DNiYigsX.js → surface-DXk1X1tL.js} +9 -9
- package/dist/{surface-DNiYigsX.js.map → surface-DXk1X1tL.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +13 -4
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +14 -5
- package/dist/switch.js.map +1 -1
- package/dist/table.cjs +4 -10
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +5 -11
- package/dist/table.js.map +1 -1
- package/dist/{tabs-4T_4kCf-.js → tabs-BYhFWnsx.js} +7 -7
- package/dist/tabs-BYhFWnsx.js.map +1 -0
- package/dist/{tabs-Byxxt-AH.cjs → tabs-CJwB0fr0.cjs} +6 -6
- package/dist/tabs-CJwB0fr0.cjs.map +1 -0
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-kkYNk1ET.js → textarea-BjDx1w2g.js} +37 -41
- package/dist/textarea-BjDx1w2g.js.map +1 -0
- package/dist/{textarea-BwYwH9fu.cjs → textarea-CGgznhd6.cjs} +36 -40
- package/dist/textarea-CGgznhd6.cjs.map +1 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-BG0EnzYP.cjs → theme-BVul7lHS.cjs} +6 -6
- package/dist/{theme-BG0EnzYP.cjs.map → theme-BVul7lHS.cjs.map} +1 -1
- package/dist/{theme-DwQBl6sr.js → theme-Dvm5J8nh.js} +11 -11
- package/dist/{theme-DwQBl6sr.js.map → theme-Dvm5J8nh.js.map} +1 -1
- package/dist/{theme-button-BD8anzsZ.js → theme-button-Bko5ohFP.js} +2 -2
- package/dist/{theme-button-BD8anzsZ.js.map → theme-button-Bko5ohFP.js.map} +1 -1
- package/dist/{theme-button-DlrNoCMA.cjs → theme-button-YLY7zR1c.cjs} +1 -1
- package/dist/{theme-button-DlrNoCMA.cjs.map → theme-button-YLY7zR1c.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.interface-CSt7JUBD.cjs.map → theme.interface-B-qxDsZQ.cjs.map} +1 -1
- package/dist/{theme.interface-odQEpZZH.js.map → theme.interface-B7caS5cg.js.map} +1 -1
- package/dist/theme.js +4 -4
- package/dist/{theme.service-Dv_55nfE.js → theme.service-D94nm7Bf.js} +1 -1
- package/dist/theme.service-D94nm7Bf.js.map +1 -0
- package/dist/{theme.service-pjkTM209.cjs → theme.service-h2fXQq7x.cjs} +1 -1
- package/dist/theme.service-h2fXQq7x.cjs.map +1 -0
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js.map +1 -1
- package/dist/tree.cjs +14 -14
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +15 -15
- package/dist/tree.js.map +1 -1
- package/dist/types.cjs +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.js +19 -2
- package/dist/types.js.map +1 -1
- package/dist/typewriter.cjs.map +1 -1
- package/dist/typewriter.js.map +1 -1
- package/dist/typography-ByF2k5yW.js +358 -0
- package/dist/typography-ByF2k5yW.js.map +1 -0
- package/dist/typography-Cfav17it.cjs +282 -0
- package/dist/typography-Cfav17it.cjs.map +1 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/utils-DIXndz6Q.cjs.map +1 -0
- package/dist/utils-dSPH7Oh9.js.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/dist/visually-hidden.cjs +13 -13
- package/dist/visually-hidden.cjs.map +1 -1
- package/dist/visually-hidden.js +14 -14
- package/dist/visually-hidden.js.map +1 -1
- package/dist/window-Br1OmpL-.cjs +67 -0
- package/dist/window-Br1OmpL-.cjs.map +1 -0
- package/dist/{window-C76zstbV.js → window-CCmN4but.js} +24 -15
- package/dist/window-CCmN4but.js.map +1 -0
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/surface.md +38 -22
- package/src/area/area.component.ts +249 -163
- package/src/area/area.service.test.ts +994 -1006
- package/src/area/area.service.ts +76 -72
- package/src/area/index.ts +7 -7
- package/src/area/lazy.ts +39 -42
- package/src/area/route.component.ts +54 -52
- package/src/area/router.types.ts +7 -7
- package/src/audio/emotional-sounds.ts +880 -801
- package/src/audio/sound.service.ts +26 -5
- package/src/avatar/avatar.ts +4 -4
- package/src/badge/badge.ts +15 -12
- package/src/badge/index.ts +1 -1
- package/src/boat/boat.ts +1 -1
- package/src/breadcrumb/breadcrumb.ts +37 -32
- package/src/busy/busy.ts +15 -12
- package/src/busy/index.ts +2 -2
- package/src/busy/spinner.ts +132 -119
- package/src/button/button.test.ts +5 -1
- package/src/button/button.ts +113 -72
- package/src/button/icon-button.ts +64 -46
- package/src/button/index.ts +2 -2
- package/src/calendar/calendar.test.ts +504 -0
- package/src/calendar/calendar.ts +587 -0
- package/src/calendar/index.ts +2 -0
- package/src/card/actions.ts +11 -9
- package/src/card/card.ts +79 -77
- package/src/card/content.ts +8 -6
- package/src/card/index.ts +4 -4
- package/src/card/media.ts +50 -50
- package/src/chips/assist-chip.ts +1 -1
- package/src/chips/chips.ts +1 -1
- package/src/chips/filter-chip.ts +1 -1
- package/src/chips/index.ts +1 -1
- package/src/chips/input-chip.ts +1 -1
- package/src/chips/suggestion-chip.ts +1 -1
- package/src/connectivity/connectivity-status.ts +90 -62
- package/src/content-drawer/drawer.service.ts +47 -36
- package/src/content-drawer/drawer.ts +31 -18
- package/src/content-drawer/index.ts +5 -5
- package/src/content-drawer/main.ts +9 -7
- package/src/content-drawer/sheet.ts +8 -6
- package/src/date-range-inline/date-range-inline.ts +523 -522
- package/src/date-range-inline/index.ts +2 -2
- package/src/delay/index.ts +1 -1
- package/src/details/details.ts +119 -105
- package/src/details/index.ts +1 -1
- package/src/directives/ai-badge.ts +1 -5
- package/src/directives/animate-text.ts +43 -31
- package/src/directives/art/effects/howl.ts +1 -4
- package/src/directives/art/effects/samwa.ts +11 -5
- package/src/directives/art/effects/snow.ts +1 -2
- package/src/directives/battery.ts +21 -12
- package/src/directives/confirm-click.ts +9 -17
- package/src/directives/cursor-glow.ts +1 -1
- package/src/directives/cycle-text.ts +7 -21
- package/src/directives/drag.ts +50 -45
- package/src/directives/fyi.ts +1 -6
- package/src/directives/gravity.ts +10 -8
- package/src/directives/hummingbird.ts +256 -107
- package/src/directives/index.ts +29 -29
- package/src/directives/intersect.ts +11 -11
- package/src/directives/layout.ts +25 -36
- package/src/directives/liquid.ts +4 -10
- package/src/directives/living-border.ts +7 -5
- package/src/directives/long-press.ts +2 -1
- package/src/directives/magnetic.ts +7 -6
- package/src/directives/nebula.ts +34 -28
- package/src/directives/overflow-within.ts +18 -20
- package/src/directives/reduced-motion.ts +9 -9
- package/src/directives/reveal.ts +193 -195
- package/src/directives/ripple.ts +9 -7
- package/src/directives/urgent.ts +3 -1
- package/src/directives/working-snake.ts +1 -1
- package/src/discovery/discovery.service.ts +198 -210
- package/src/discovery/index.ts +1 -1
- package/src/divider/divider.ts +49 -47
- package/src/divider/index.ts +1 -1
- package/src/dropdown/dropdown-content.ts +42 -40
- package/src/dropdown/index.ts +2 -2
- package/src/expand/expand-root.component.ts +70 -61
- package/src/expand/expand.component.ts +48 -43
- package/src/fab/fab.test.ts +1 -2
- package/src/fab/fab.ts +2 -4
- package/src/form/fields/autocomplete/autocomplete.scss +6 -2
- package/src/form/fields/autocomplete/autocomplete.ts +712 -724
- package/src/form/fields/autocomplete/index.ts +1 -1
- package/src/form/fields/checkbox/checkbox.ts +1 -4
- package/src/form/fields/chips/assist-chip.ts +69 -72
- package/src/form/fields/chips/chips.ts +14 -15
- package/src/form/fields/chips/filter-chip.ts +36 -32
- package/src/form/fields/chips/index.ts +5 -5
- package/src/form/fields/chips/input-chip.ts +130 -142
- package/src/form/fields/chips/suggestion-chip.ts +69 -72
- package/src/form/fields/date-range/date-range-dialog.ts +154 -194
- package/src/form/fields/date-range/date-range-helpers.ts +63 -64
- package/src/form/fields/date-range/date-range.test.ts +575 -121
- package/src/form/fields/date-range/date-range.ts +343 -395
- package/src/form/fields/date-range/index.ts +2 -2
- package/src/form/fields/input/index.ts +8 -8
- package/src/form/fields/input/input.scss +30 -26
- package/src/form/fields/input/input.test.ts +4 -1
- package/src/form/fields/input/input.ts +4 -20
- package/src/form/fields/radio-group/index.ts +2 -2
- package/src/form/fields/radio-group/radio-button.ts +8 -8
- package/src/form/fields/radio-group/radio-group.ts +4 -1
- package/src/form/fields/range/range.ts +3 -1
- package/src/form/fields/select/index.ts +2 -2
- package/src/form/fields/select/select.ts +51 -45
- package/src/form/fields/switch/switch.ts +13 -7
- package/src/form/fields/textarea/index.ts +1 -1
- package/src/form/fields/textarea/textarea.ts +44 -49
- package/src/form/form-summary.ts +15 -14
- package/src/form/form.test.ts +0 -1
- package/src/form/form.ts +11 -23
- package/src/icons/icon.ts +25 -25
- package/src/icons/index.ts +1 -1
- package/src/iframe/iframe.ts +11 -9
- package/src/index.ts +1 -0
- package/src/json/json.ts +9 -2
- package/src/kbd/kbd.ts +30 -28
- package/src/layout/scroll/index.ts +1 -1
- package/src/layout/scroll/scroll.ts +54 -54
- package/src/lightbox/lightbox-service.ts +27 -18
- package/src/lightbox/lightbox.directive.ts +2 -1
- package/src/lightbox/lightbox.ts +21 -38
- package/src/list/index.ts +3 -3
- package/src/list/list-item.ts +32 -26
- package/src/list/list.ts +13 -8
- package/src/menu/index.ts +2 -2
- package/src/menu/menu-item.ts +7 -5
- package/src/menu/menu.ts +8 -6
- package/src/nav-drawer/appbar.ts +9 -7
- package/src/nav-drawer/content.ts +10 -8
- package/src/nav-drawer/drawer.ts +29 -25
- package/src/nav-drawer/index.ts +6 -6
- package/src/navigation-bar/index.ts +2 -2
- package/src/navigation-bar/navigation-bar-item.ts +127 -118
- package/src/navigation-bar/navigation-bar.ts +103 -91
- package/src/navigation-rail/index.ts +2 -2
- package/src/navigation-rail/navigation-rail.ts +21 -22
- package/src/notification/index.ts +6 -6
- package/src/notification/notification-service.ts +1 -2
- package/src/notification/notification.scss +5 -1
- package/src/notification/notification.ts +1 -3
- package/src/notification/notify.ts +204 -207
- package/src/option/index.ts +1 -1
- package/src/option/option.ts +26 -25
- package/src/overlay/overlay.animations.ts +4 -14
- package/src/overlay/overlay.component.ts +110 -131
- package/src/overlay/overlay.confirm-body.ts +26 -48
- package/src/overlay/overlay.gestures.ts +8 -10
- package/src/overlay/overlay.layout.ts +1 -4
- package/src/overlay/overlay.positioning.ts +4 -15
- package/src/overlay/overlay.service.ts +9 -24
- package/src/overlay/overlay.stack.test.ts +4 -1
- package/src/overlay/overlay.stack.ts +4 -4
- package/src/overlay/overlay.types.ts +11 -20
- package/src/progress/index.ts +1 -1
- package/src/progress/progress.ts +135 -133
- package/src/rxjs-utils/index.ts +6 -6
- package/src/rxjs-utils/waitForElement.ts +20 -20
- package/src/rxjs-utils/waitForElementAll.ts +21 -21
- package/src/rxjs-utils/waitForElements.ts +27 -27
- package/src/rxjs-utils/waitForElementsAll.ts +27 -29
- package/src/rxjs-utils/waitUntil.ts +7 -12
- package/src/skeleton/skeleton.ts +39 -33
- package/src/slider/index.ts +2 -2
- package/src/slider/slide.ts +14 -12
- package/src/slider/slider.ts +24 -22
- package/src/splash-screen/index.ts +1 -1
- package/src/splash-screen/splash-screen.ts +26 -27
- package/src/state/active-host.ts +4 -5
- package/src/state/index.ts +34 -53
- package/src/state/persist.ts +14 -11
- package/src/state/schmancy-context.ts +88 -88
- package/src/state/state.test-d.ts +3 -13
- package/src/state/state.test.ts +1 -4
- package/src/steps/index.ts +3 -3
- package/src/steps/schmancy-step.ts +41 -31
- package/src/steps/schmancy-steps.ts +7 -5
- package/src/surface/index.ts +1 -1
- package/src/surface/surface.styles.ts +53 -104
- package/src/surface/surface.ts +10 -8
- package/src/table/index.ts +2 -2
- package/src/table/row.ts +1 -4
- package/src/table/table.ts +2 -5
- package/src/tabs/index.ts +2 -2
- package/src/tabs/tabs-group.ts +8 -6
- package/src/teleport/index.ts +2 -2
- package/src/test-utils/a11y.ts +1 -3
- package/src/theme/index.ts +17 -17
- package/src/theme/theme-audio-player.ts +18 -16
- package/src/theme/theme-controller-boat.ts +1 -1
- package/src/theme/theme-controller.ts +36 -32
- package/src/theme/theme.component.ts +5 -9
- package/src/theme/theme.events.ts +1 -1
- package/src/theme/theme.format.ts +7 -7
- package/src/theme/theme.service.ts +453 -468
- package/src/theme/theme.style.css +78 -23
- package/src/theme-button/index.ts +1 -1
- package/src/tooltip/tooltip.directive.ts +1 -1
- package/src/tree/index.ts +1 -1
- package/src/tree/tree.ts +24 -16
- package/src/types/surface.ts +38 -44
- package/src/typewriter/typewriter.directive.ts +30 -39
- package/src/typography/typography.ts +289 -269
- package/src/utils/animation.ts +2 -8
- package/src/utils/index.ts +6 -6
- package/src/utils/number.ts +480 -517
- package/src/utils/overlay-stack.ts +1 -3
- package/src/utils/search.ts +5 -9
- package/src/visually-hidden/visually-hidden.ts +15 -13
- package/src/window/window-manager.ts +6 -1
- package/src/window/window-position.ts +7 -5
- package/src/window/window.ts +143 -108
- package/types/src/calendar/calendar.d.ts +108 -0
- package/types/src/calendar/calendar.test.d.ts +1 -0
- package/types/src/calendar/index.d.ts +2 -0
- package/types/src/directives/cursor-glow.d.ts +1 -1
- package/types/src/directives/hummingbird.d.ts +3 -3
- package/types/src/form/fields/date-range/date-range-dialog.d.ts +24 -28
- package/types/src/form/fields/date-range/date-range.d.ts +39 -66
- package/types/src/form/fields/date-range/date-range.test.d.ts +1 -0
- package/types/src/form/fields/date-range/index.d.ts +1 -1
- package/types/src/index.d.ts +1 -0
- package/types/src/surface/surface.styles.d.ts +13 -6
- package/types/src/types/surface.d.ts +17 -22
- package/types/src/utils/number.d.ts +1 -1
- package/dist/SchmancyElement-OG71FtNv.js +0 -286
- package/dist/SchmancyElement-OG71FtNv.js.map +0 -1
- package/dist/SchmancyElement-PS1u0j1B.cjs +0 -2
- package/dist/SchmancyElement-PS1u0j1B.cjs.map +0 -1
- package/dist/area-CaEI33G0.cjs +0 -21
- package/dist/area-CaEI33G0.cjs.map +0 -1
- package/dist/area-DtCNCb8w.js.map +0 -1
- package/dist/audio-B924fI5N.cjs.map +0 -1
- package/dist/audio-DdN76ikW.js.map +0 -1
- package/dist/autocomplete-Dq3BkitV.cjs +0 -115
- package/dist/autocomplete-Dq3BkitV.cjs.map +0 -1
- package/dist/autocomplete-UNOknYUz.js.map +0 -1
- package/dist/busy--WqiXKnl.cjs +0 -134
- package/dist/busy--WqiXKnl.cjs.map +0 -1
- package/dist/busy-DzXyO0z6.js +0 -173
- package/dist/busy-DzXyO0z6.js.map +0 -1
- package/dist/button-CTvS5YX4.cjs.map +0 -1
- package/dist/button-DgoDfcJx.js.map +0 -1
- package/dist/card-C6ijJZpF.js.map +0 -1
- package/dist/card-Ci3_9Dd4.cjs +0 -177
- package/dist/card-Ci3_9Dd4.cjs.map +0 -1
- package/dist/chips-9eG-96_D.cjs.map +0 -1
- package/dist/chips-DF7akwz7.js.map +0 -1
- package/dist/date-range-C13_R3OA.js +0 -966
- package/dist/date-range-C13_R3OA.js.map +0 -1
- package/dist/date-range-Q2xj5Syc.cjs +0 -142
- package/dist/date-range-Q2xj5Syc.cjs.map +0 -1
- package/dist/date-range-inline-BnOD-ddB.js.map +0 -1
- package/dist/date-range-inline-DV2c_gWM.cjs.map +0 -1
- package/dist/details-B2-jECBh.cjs.map +0 -1
- package/dist/details-ByF66CyY.js.map +0 -1
- package/dist/directives-BL7mzVsA.js.map +0 -1
- package/dist/directives-DCb_LA9R.cjs.map +0 -1
- package/dist/divider-Bv2QiOZL.cjs +0 -57
- package/dist/divider-Bv2QiOZL.cjs.map +0 -1
- package/dist/divider-gYuz0zDU.js +0 -89
- package/dist/divider-gYuz0zDU.js.map +0 -1
- package/dist/expand-B9IUGVtc.cjs +0 -141
- package/dist/expand-B9IUGVtc.cjs.map +0 -1
- package/dist/expand-cZ8rfCWP.js.map +0 -1
- package/dist/form-DowzVsgI.cjs.map +0 -1
- package/dist/form-tG7LwDm4.js.map +0 -1
- package/dist/icons-BZeCloP9.cjs +0 -24
- package/dist/icons-BZeCloP9.cjs.map +0 -1
- package/dist/icons-Dup5skuk.js.map +0 -1
- package/dist/iframe-CDJjnNmo.cjs.map +0 -1
- package/dist/iframe-Xc3EPMZT.js.map +0 -1
- package/dist/input-DnmC6J1T.cjs.map +0 -1
- package/dist/input-cTyDxW9L.js.map +0 -1
- package/dist/input-chip-CV91URyU.cjs +0 -146
- package/dist/input-chip-CV91URyU.cjs.map +0 -1
- package/dist/input-chip-CYI17YOq.js.map +0 -1
- package/dist/layout-CNlZSJFU.cjs.map +0 -1
- package/dist/layout-DDxw0EwL.js.map +0 -1
- package/dist/lightbox-CH-y3rYB.js.map +0 -1
- package/dist/lightbox-CvtqoInF.cjs.map +0 -1
- package/dist/list-Dl8KfxrF.cjs +0 -40
- package/dist/list-Dl8KfxrF.cjs.map +0 -1
- package/dist/list-DrsawQ5R.js.map +0 -1
- package/dist/menu-BFRcTe3o.cjs.map +0 -1
- package/dist/menu-CsY5lMqY.js.map +0 -1
- package/dist/mixins-BoMURWag.cjs.map +0 -1
- package/dist/mixins-bCEXbwJV.js.map +0 -1
- package/dist/notification-DFKRMmSq.js.map +0 -1
- package/dist/notification-FBf3Mb2e.cjs.map +0 -1
- package/dist/option-Ct0lGdH3.js.map +0 -1
- package/dist/option-Il1KpU8M.cjs +0 -43
- package/dist/option-Il1KpU8M.cjs.map +0 -1
- package/dist/overlay-Bh8Q_R01.js.map +0 -1
- package/dist/overlay-sRXiMkjn.cjs.map +0 -1
- package/dist/overlay.confirm-body-CQihsR20.js.map +0 -1
- package/dist/overlay.confirm-body-Jc1EuMGs.cjs.map +0 -1
- package/dist/overlay.service-9Dp3g7ot.cjs.map +0 -1
- package/dist/overlay.service-BXPgS7ay.js.map +0 -1
- package/dist/progress-CWC5XYZ_.cjs +0 -51
- package/dist/progress-CWC5XYZ_.cjs.map +0 -1
- package/dist/progress-CYLshdo2.js.map +0 -1
- package/dist/radio-group-6kCgOgBL.cjs.map +0 -1
- package/dist/radio-group-bZtZHOj_.js.map +0 -1
- package/dist/select-CU3X-PIa.js.map +0 -1
- package/dist/select-MXsF8KsU.cjs +0 -56
- package/dist/select-MXsF8KsU.cjs.map +0 -1
- package/dist/sound.service-B4ZmXpH9.js.map +0 -1
- package/dist/sound.service-DjlMvicQ.cjs.map +0 -1
- package/dist/splash-screen-CN9dZcqC.cjs +0 -41
- package/dist/splash-screen-CN9dZcqC.cjs.map +0 -1
- package/dist/splash-screen-emCLYoVl.js.map +0 -1
- package/dist/src-DGDTkOvC.js.map +0 -1
- package/dist/src-DK3111z_.cjs +0 -240
- package/dist/src-DK3111z_.cjs.map +0 -1
- package/dist/state-CumAEPQH.cjs.map +0 -1
- package/dist/state-DMd_FUeA.js.map +0 -1
- package/dist/surface-DGI-FBoi.cjs +0 -7
- package/dist/surface-DGI-FBoi.cjs.map +0 -1
- package/dist/tabs-4T_4kCf-.js.map +0 -1
- package/dist/tabs-Byxxt-AH.cjs.map +0 -1
- package/dist/textarea-BwYwH9fu.cjs.map +0 -1
- package/dist/textarea-kkYNk1ET.js.map +0 -1
- package/dist/theme.service-Dv_55nfE.js.map +0 -1
- package/dist/theme.service-pjkTM209.cjs.map +0 -1
- package/dist/typography-BVkU11_q.js +0 -358
- package/dist/typography-BVkU11_q.js.map +0 -1
- package/dist/typography-aaQaIcNc.cjs +0 -282
- package/dist/typography-aaQaIcNc.cjs.map +0 -1
- package/dist/utils-DTa3QHxk.cjs.map +0 -1
- package/dist/utils-H8wNknWC.js.map +0 -1
- package/dist/window-C76zstbV.js.map +0 -1
- package/dist/window-CmB9XZzT.cjs +0 -58
- package/dist/window-CmB9XZzT.cjs.map +0 -1
- package/src/form/fields/date-range/date-range-presets.ts +0 -220
- package/src/form/fields/date-range/date-utils.ts +0 -58
- package/types/src/form/fields/date-range/date-range-presets.d.ts +0 -18
- package/types/src/form/fields/date-range/date-utils.d.ts +0 -15
- /package/dist/{hashContent-iRZJJWtE.cjs → hashContent--s09Ed_g.cjs} +0 -0
- /package/dist/{hashContent-BqU6v1Xr.js → hashContent-CAvrQ56N.js} +0 -0
- /package/dist/{rxjs-utils-Csnks202.cjs → rxjs-utils-4P2v57ke.cjs} +0 -0
- /package/dist/{rxjs-utils-d-ivVN84.js → rxjs-utils-JMFdgQSl.js} +0 -0
- /package/dist/{theme.interface-CSt7JUBD.cjs → theme.interface-B-qxDsZQ.cjs} +0 -0
- /package/dist/{theme.interface-odQEpZZH.js → theme.interface-B7caS5cg.js} +0 -0
- /package/dist/{utils-DTa3QHxk.cjs → utils-DIXndz6Q.cjs} +0 -0
- /package/dist/{utils-H8wNknWC.js → utils-dSPH7Oh9.js} +0 -0
package/dist/connectivity.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as e, u as t } from "./SchmancyElement-
|
|
2
|
-
import "./mixins-
|
|
3
|
-
import { t as n } from "./audio-
|
|
1
|
+
import { t as e, u as t } from "./SchmancyElement-Ob9yGkiG.js";
|
|
2
|
+
import "./mixins-q4KAL8Xr.js";
|
|
3
|
+
import { t as n } from "./audio-B_0PGwYC.js";
|
|
4
4
|
import { fromEvent as r, merge as i, timer as a } from "rxjs";
|
|
5
5
|
import { distinctUntilChanged as o, map as s, skip as c, takeUntil as l, tap as u } from "rxjs/operators";
|
|
6
6
|
import { customElement as d } from "lit/decorators.js";
|
|
@@ -12,47 +12,65 @@ var g = class extends e {
|
|
|
12
12
|
}
|
|
13
13
|
static {
|
|
14
14
|
this.styles = [f`
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
:host {
|
|
16
|
+
display: block;
|
|
17
|
+
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
.banner {
|
|
20
|
+
transform: translateY(-100%);
|
|
21
|
+
opacity: 0;
|
|
22
|
+
transition:
|
|
23
|
+
transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
24
|
+
opacity 400ms ease-out;
|
|
25
|
+
}
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
.banner.visible {
|
|
28
|
+
transform: translateY(0);
|
|
29
|
+
opacity: 1;
|
|
30
|
+
}
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
.banner.exiting {
|
|
33
|
+
transform: translateY(-100%);
|
|
34
|
+
opacity: 0;
|
|
35
|
+
transition:
|
|
36
|
+
transform 300ms ease-out,
|
|
37
|
+
opacity 300ms ease-out;
|
|
38
|
+
}
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
@keyframes icon-pulse {
|
|
41
|
+
0%,
|
|
42
|
+
100% {
|
|
43
|
+
transform: scale(1);
|
|
44
|
+
}
|
|
45
|
+
50% {
|
|
46
|
+
transform: scale(1.2);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
40
49
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
50
|
+
@keyframes icon-bounce {
|
|
51
|
+
0%,
|
|
52
|
+
100% {
|
|
53
|
+
transform: translateY(0);
|
|
54
|
+
}
|
|
55
|
+
25% {
|
|
56
|
+
transform: translateY(-6px);
|
|
57
|
+
}
|
|
58
|
+
50% {
|
|
59
|
+
transform: translateY(0);
|
|
60
|
+
}
|
|
61
|
+
75% {
|
|
62
|
+
transform: translateY(-3px);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
47
65
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
66
|
+
.icon-pulse {
|
|
67
|
+
animation: icon-pulse 1s ease-in-out infinite;
|
|
68
|
+
}
|
|
51
69
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
`];
|
|
70
|
+
.icon-bounce {
|
|
71
|
+
animation: icon-bounce 600ms ease-out;
|
|
72
|
+
}
|
|
73
|
+
`];
|
|
56
74
|
}
|
|
57
75
|
connectedCallback() {
|
|
58
76
|
super.connectedCallback();
|
package/dist/connectivity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectivity.js","names":[],"sources":["../src/connectivity/connectivity-status.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { merge, fromEvent, timer } from 'rxjs'\nimport { map, distinctUntilChanged, tap, takeUntil, skip } from 'rxjs/operators'\nimport { $sounds } from '../audio'\n\n/**\n * @element schmancy-connectivity-status\n * A beautiful connectivity status component that monitors online/offline state\n * and shows subtle animated banners when connectivity changes.\n *\n * @example\n * <!-- Add once to your app root -->\n * <schmancy-connectivity-status></schmancy-connectivity-status>\n */\n@customElement('schmancy-connectivity-status')\nexport class SchmancyConnectivityStatus extends SchmancyElement {\n\tstatic styles = [
|
|
1
|
+
{"version":3,"file":"connectivity.js","names":[],"sources":["../src/connectivity/connectivity-status.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { merge, fromEvent, timer } from 'rxjs'\nimport { map, distinctUntilChanged, tap, takeUntil, skip } from 'rxjs/operators'\nimport { $sounds } from '../audio'\n\n/**\n * @element schmancy-connectivity-status\n * A beautiful connectivity status component that monitors online/offline state\n * and shows subtle animated banners when connectivity changes.\n *\n * @example\n * <!-- Add once to your app root -->\n * <schmancy-connectivity-status></schmancy-connectivity-status>\n */\n@customElement('schmancy-connectivity-status')\nexport class SchmancyConnectivityStatus extends SchmancyElement {\n\tstatic styles = [\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.banner {\n\t\t\t\ttransform: translateY(-100%);\n\t\t\t\topacity: 0;\n\t\t\t\ttransition:\n\t\t\t\t\ttransform 400ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\t\t\t\topacity 400ms ease-out;\n\t\t\t}\n\n\t\t\t.banner.visible {\n\t\t\t\ttransform: translateY(0);\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\t.banner.exiting {\n\t\t\t\ttransform: translateY(-100%);\n\t\t\t\topacity: 0;\n\t\t\t\ttransition:\n\t\t\t\t\ttransform 300ms ease-out,\n\t\t\t\t\topacity 300ms ease-out;\n\t\t\t}\n\n\t\t\t@keyframes icon-pulse {\n\t\t\t\t0%,\n\t\t\t\t100% {\n\t\t\t\t\ttransform: scale(1);\n\t\t\t\t}\n\t\t\t\t50% {\n\t\t\t\t\ttransform: scale(1.2);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@keyframes icon-bounce {\n\t\t\t\t0%,\n\t\t\t\t100% {\n\t\t\t\t\ttransform: translateY(0);\n\t\t\t\t}\n\t\t\t\t25% {\n\t\t\t\t\ttransform: translateY(-6px);\n\t\t\t\t}\n\t\t\t\t50% {\n\t\t\t\t\ttransform: translateY(0);\n\t\t\t\t}\n\t\t\t\t75% {\n\t\t\t\t\ttransform: translateY(-3px);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.icon-pulse {\n\t\t\t\tanimation: icon-pulse 1s ease-in-out infinite;\n\t\t\t}\n\n\t\t\t.icon-bounce {\n\t\t\t\tanimation: icon-bounce 600ms ease-out;\n\t\t\t}\n\t\t`,\n\t]\n\tprivate bannerRef = createRef<HTMLDivElement>()\n\tprivate surfaceRef = createRef<HTMLElement>()\n\tprivate iconRef = createRef<HTMLSpanElement>()\n\tprivate messageRef = createRef<HTMLSpanElement>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\tconst connectivity$ = merge(\n\t\t\tfromEvent(window, 'online').pipe(map(() => true)),\n\t\t\tfromEvent(window, 'offline').pipe(map(() => false)),\n\t\t).pipe(distinctUntilChanged())\n\n\t\t// UI updates via refs\n\t\tconnectivity$\n\t\t\t.pipe(\n\t\t\t\ttap(online => this.updateBanner(online)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\t// Sounds (skip initial)\n\t\tconnectivity$\n\t\t\t.pipe(\n\t\t\t\tskip(1),\n\t\t\t\ttap(online => $sounds.play(online ? 'celebrated' : 'disappointed')),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate updateBanner(online: boolean): void {\n\t\tconst banner = this.bannerRef.value\n\t\tconst surface = this.surfaceRef.value\n\t\tconst icon = this.iconRef.value\n\t\tconst message = this.messageRef.value\n\n\t\tif (!banner || !surface || !icon || !message) return\n\n\t\tif (!online) {\n\t\t\t// Going offline\n\t\t\tsurface.setAttribute('type', 'error')\n\t\t\ticon.textContent = '🙀'\n\t\t\ticon.className = 'text-2xl icon-pulse'\n\t\t\tmessage.textContent = \"You're offline\"\n\t\t\tbanner.classList.remove('exiting')\n\t\t\tbanner.classList.add('visible')\n\t\t} else {\n\t\t\t// Back online\n\t\t\tsurface.setAttribute('type', 'primary')\n\t\t\ticon.textContent = '🎉'\n\t\t\ticon.className = 'text-2xl icon-bounce'\n\t\t\tmessage.textContent = 'Back online'\n\t\t\tbanner.classList.remove('exiting')\n\t\t\tbanner.classList.add('visible')\n\n\t\t\t// Auto-dismiss after 1.5 seconds\n\t\t\ttimer(1500)\n\t\t\t\t.pipe(\n\t\t\t\t\ttap(() => {\n\t\t\t\t\t\tbanner.classList.add('exiting')\n\t\t\t\t\t\ttimer(300)\n\t\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\t\ttap(() => banner.classList.remove('visible', 'exiting')),\n\t\t\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.subscribe()\n\t\t\t\t\t}),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t)\n\t\t\t\t.subscribe()\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<div ${ref(this.bannerRef)} class=\"banner fixed top-0 inset-x-0 z-50 p-2 pointer-events-none\">\n\t\t\t\t<schmancy-surface\n\t\t\t\t\t${ref(this.surfaceRef)}\n\t\t\t\t\ttype=\"error\"\n\t\t\t\t\tclass=\"mx-auto max-w-sm rounded-2xl shadow-lg pointer-events-auto\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"flex items-center gap-3 px-4 py-3\">\n\t\t\t\t\t\t<span ${ref(this.iconRef)} class=\"text-2xl\">🙀</span>\n\t\t\t\t\t\t<schmancy-typography type=\"body\" token=\"md\">\n\t\t\t\t\t\t\t<span ${ref(this.messageRef)}>You're offline</span>\n\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-connectivity-status': SchmancyConnectivityStatus\n\t}\n}\n"],"mappings":";;;;;;;;AAkBO,IAAA,IAAA,cAAyC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,YA+D3B,EAAA,GAAA,KAAA,aACC,EAAA,GAAA,KAAA,UACH,EAAA,GAAA,KAAA,aACG,EAAA;CAAA;CAAA;EAAA,KAAA,SAjEL,CACf,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEJ,oBAAA;EACC,MAAM,kBAAA;EAEN,IAAM,IAAgB,EACrB,EAAU,QAAQ,QAAA,EAAU,KAAK,QAAA,CAAU,CAAA,CAAA,GAC3C,EAAU,QAAQ,SAAA,EAAW,KAAK,QAAA,CAAU,CAAA,CAAA,CAAA,EAC3C,KAAK,EAAA,CAAA;EAGP,EACE,KACA,GAAI,MAAU,KAAK,aAAa,CAAA,CAAA,GAChC,EAAU,KAAK,aAAA,CAAA,EAEf,UAAA,GAGF,EACE,KACA,EAAK,CAAA,GACL,GAAI,MAAU,EAAQ,KAAK,IAAS,eAAe,cAAA,CAAA,GACnD,EAAU,KAAK,aAAA,CAAA,EAEf,UAAA;CACH;CAEA,aAAqB,GAAA;EACpB,IAAM,IAAS,KAAK,UAAU,OACxB,IAAU,KAAK,WAAW,OAC1B,IAAO,KAAK,QAAQ,OACpB,IAAU,KAAK,WAAW;EAE3B,KAAW,KAAY,KAAS,MAEhC,KAUJ,EAAQ,aAAa,QAAQ,SAAA,GAC7B,EAAK,cAAc,MACnB,EAAK,YAAY,wBACjB,EAAQ,cAAc,eACtB,EAAO,UAAU,OAAO,SAAA,GACxB,EAAO,UAAU,IAAI,SAAA,GAGrB,EAAM,IAAA,EACJ,KACA,QAAA;GACC,EAAO,UAAU,IAAI,SAAA,GACrB,EAAM,GAAA,EACJ,KACA,QAAU,EAAO,UAAU,OAAO,WAAW,SAAA,CAAA,GAC7C,EAAU,KAAK,aAAA,CAAA,EAEf,UAAA;EAAA,CAAA,GAEH,EAAU,KAAK,aAAA,CAAA,EAEf,UAAA,MA7BF,EAAQ,aAAa,QAAQ,OAAA,GAC7B,EAAK,cAAc,MACnB,EAAK,YAAY,uBACjB,EAAQ,cAAc,kBACtB,EAAO,UAAU,OAAO,SAAA,GACxB,EAAO,UAAU,IAAI,SAAA;CA0BvB;CAEA,SAAA;EACC,OAAO,CAAI;UACH,EAAI,KAAK,SAAA,EAAA;;OAEZ,EAAI,KAAK,UAAA,EAAA;;;;;cAKF,EAAI,KAAK,OAAA,EAAA;;eAER,EAAI,KAAK,UAAA,EAAA;;;;;;CAMvB;AAAA;AAAA,IAAA,EAAA,CA3JA,EAAc,8BAAA,CAAA,GAA8B,CAAA;AAAA,SAAA,KAAA"}
|
package/dist/content-drawer.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-MdpH1zth.cjs`);Object.defineProperty(exports,`SchmancyContentDrawer`,{enumerable:!0,get:function(){return e._}}),exports.SchmancyContentDrawerID=e.v,Object.defineProperty(exports,`SchmancyContentDrawerMain`,{enumerable:!0,get:function(){return e.g}}),exports.SchmancyContentDrawerMaxHeight=e.y,exports.SchmancyContentDrawerMinWidth=e.b,Object.defineProperty(exports,`SchmancyContentDrawerSheet`,{enumerable:!0,get:function(){return e.h}}),exports.SchmancyContentDrawerSheetMode=e.x,exports.SchmancyContentDrawerSheetState=e.S,exports.schmancyContentDrawer=e.C;
|
package/dist/content-drawer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as e, S as t, _ as n, b as r, g as i, h as a, v as o, x as s, y as c } from "./src-
|
|
1
|
+
import { C as e, S as t, _ as n, b as r, g as i, h as a, v as o, x as s, y as c } from "./src-Bo-vvN6m.js";
|
|
2
2
|
export { n as SchmancyContentDrawer, o as SchmancyContentDrawerID, i as SchmancyContentDrawerMain, c as SchmancyContentDrawerMaxHeight, r as SchmancyContentDrawerMinWidth, a as SchmancyContentDrawerSheet, s as SchmancyContentDrawerSheetMode, t as SchmancyContentDrawerSheetState, e as schmancyContentDrawer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-glow-Ah7VXSj7.js","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"
|
|
1
|
+
{"version":3,"file":"cursor-glow-Ah7VXSj7.js","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"container\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(options?: CursorGlowOptions) {\n\t\tvoid options\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(this.element, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":";;;;;AAwBA,IAsHa,IAAa,EAtH1B,cAAkC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,YAGJ,IAAI,KAAA,KAAA,SAChB,KAAA,KAAA,QACD,6CAAA,KAAA,YACI,KAAA,KAAA,iBAAA,CAEK;CAAA;CAGzB,OAAO,GAAA,CAGP;CAEA,OAAgB,GAAA,CAAoB,IAAA;EACnC,IAAI,EAAK,SAAS,EAAS,SAC1B,MAAU,MAAM,iDAAA;EAGjB,IAAM,IAAM,KAAK,UAAU,KAAW,CAAC,CAAA;EACnC,KAAK,WAAW,MAAQ,KAAK,YACjC,KAAK,UAAU,GAEf,KAAK,UAAU,EAAK,SACpB,KAAK,SAAS,GAAS,UAAU,KACjC,KAAK,QAAQ,GAAS,SAAS,6CAC/B,KAAK,YAAY,GAAS,aAAa,KAEnC,EAAe,UAEnB,KAAK,UAAU,KAAA,GACf,KAAK,kBAAA,GACL,KAAK,cAAA;CAGN;CAEA,cAAA;EACC,KAAK,kBAAA,GACL,KAAK,UAAU,KAAA,GACf,KAAK,cAAA;CACN;CAEA,oBAAA;EAEa,AADA,iBAAiB,KAAK,OAAA,EAAS,aAC/B,aACX,KAAK,QAAQ,MAAM,WAAW,YAC9B,KAAK,iBAAA,CAAiB,IAGlB,KAAK,WACT,KAAK,SAAS,SAAS,cAAc,KAAA,GACrC,KAAK,OAAO,aAAa,eAAe,MAAA,GACxC,OAAO,OAAO,KAAK,OAAO,OAAO;GAChC,UAAU;GACV,OAAO;GACP,eAAe;GACf,QAAQ;GACR,cAAc;GACd,UAAU;GACV,SAAS;GACT,YAAY;EAAA,CAAA,GAEb,KAAK,QAAQ,QAAQ,KAAK,MAAA;CAE5B;CAEA,gBAAA;EAyBC,EAxBe,EAAsB,KAAK,SAAS,YAAA,EAAc,KAChE,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAa,KAAK,QAAQ,sBAAA,GACxB,KAAA,CAAA,GAIK,EAAsB,KAAK,SAAS,WAAA,EAAa,KAC9D,EAAU,GAAG,CAAA,GACb,GAAI,MAAA;GACH,IAAM,IAAO,KAAK,cAAc,KAAK,QAAQ,sBAAA;GAC7C,OAAO;IAAE,GAAG,EAAE,UAAU,EAAK;IAAM,GAAG,EAAE,UAAU,EAAK;GAAA;EAAA,CAAA,CAAA,GAI1C,EAAU,KAAK,SAAS,YAAA,EAAc,KACpD,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAA,KAAa,GACX,KAAA,CAAA,CAAA,EAKP,KAAK,EAAU,KAAK,SAAA,CAAA,EACpB,WAAU,MAAA;GACN,KAAO,KAAK,WACf,KAAK,OAAO,MAAM,aAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,MAAjB,KAAK,SAAA,EAAA;EAAA,CAAA;CAKxD;CAEA,eAAA;EACC,KAAK,UAAU,KAAA,GACf,KAAK,QAAQ,OAAA,GACb,KAAK,SAAA,KAAS,GACV,KAAK,kBAAkB,KAAK,YAC/B,KAAK,QAAQ,MAAM,WAAW,IAC9B,KAAK,iBAAA,CAAiB;CAExB;AAAA,CAAA;AAAA,SAAA,KAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-glow-Bulq-38P.cjs","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"
|
|
1
|
+
{"version":3,"file":"cursor-glow-Bulq-38P.cjs","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"container\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(options?: CursorGlowOptions) {\n\t\tvoid options\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(this.element, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":"qMAwBA,IAAM,EAAN,cAAkC,EAAA,cAAA,CAAA,YAAA,GAAA,EAAA,CAAA,MAAA,GAAA,CAAA,EAAA,KAAA,UAGJ,IAAI,EAAA,QAAA,KAAA,OAChB,IAAA,KAAA,MACD,4CAAA,KAAA,UACI,IAAA,KAAA,eAAA,CAEK,CAAA,CAGzB,OAAO,EAAA,CAGP,CAEA,OAAgB,EAAA,CAAoB,GAAA,CACnC,GAAI,EAAK,OAAS,EAAA,SAAS,QAC1B,MAAU,MAAM,iDAAA,EAGjB,IAAM,EAAM,KAAK,UAAU,GAAW,CAAC,CAAA,EACnC,KAAK,SAAW,IAAQ,KAAK,UACjC,KAAK,QAAU,EAEf,KAAK,QAAU,EAAK,QACpB,KAAK,OAAS,GAAS,QAAU,IACjC,KAAK,MAAQ,GAAS,OAAS,4CAC/B,KAAK,UAAY,GAAS,WAAa,IAEnC,EAAA,EAAe,QAEnB,KAAK,UAAU,KAAA,EACf,KAAK,kBAAA,EACL,KAAK,cAAA,GAGN,CAEA,aAAA,CACC,KAAK,kBAAA,EACL,KAAK,UAAU,KAAA,EACf,KAAK,cAAA,CACN,CAEA,mBAAA,CACa,iBAAiB,KAAK,OAAA,EAAS,WAC/B,WACX,KAAK,QAAQ,MAAM,SAAW,WAC9B,KAAK,eAAA,CAAiB,GAGlB,KAAK,SACT,KAAK,OAAS,SAAS,cAAc,KAAA,EACrC,KAAK,OAAO,aAAa,cAAe,MAAA,EACxC,OAAO,OAAO,KAAK,OAAO,MAAO,CAChC,SAAU,WACV,MAAO,IACP,cAAe,OACf,OAAQ,IACR,aAAc,UACd,SAAU,SACV,QAAS,IACT,WAAY,oBAAA,CAAA,EAEb,KAAK,QAAQ,QAAQ,KAAK,MAAA,EAE5B,CAEA,eAAA,EAyBC,EAAA,EAAA,QAAA,EAAA,EAAA,WAxBqC,KAAK,QAAS,YAAA,EAAc,MAAA,EAAA,EAAA,UAE3D,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAa,KAAK,QAAQ,sBAAA,EACxB,KAAA,CAAA,GAoBH,EAAA,EAAA,WAhB8B,KAAK,QAAS,WAAA,EAAa,MAAA,EAAA,EAAA,WACpD,EAAG,EAAA,uBAAA,GAAuB,EAAA,EAAA,KAChC,GAAA,CACH,IAAM,EAAO,KAAK,YAAc,KAAK,QAAQ,sBAAA,EAC7C,MAAO,CAAE,EAAG,EAAE,QAAU,EAAK,KAAM,EAAG,EAAE,QAAU,EAAK,GAAA,CAAA,CAAA,CAAA,GAY3C,EAAA,EAAA,WARW,KAAK,QAAS,YAAA,EAAc,MAAA,EAAA,EAAA,UAE/C,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAA,IAAa,GACX,KAAA,CAAA,CAAA,EAKP,MAAA,EAAA,EAAA,WAAe,KAAK,SAAA,CAAA,EACpB,UAAU,GAAA,CACN,GAAO,KAAK,SACf,KAAK,OAAO,MAAM,WAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,IAAjB,KAAK,SAAA,EAAA,wDAAA,CAAA,CAKxD,CAEA,cAAA,CACC,KAAK,UAAU,KAAA,EACf,KAAK,QAAQ,OAAA,EACb,KAAK,OAAA,IAAS,GACV,KAAK,gBAAkB,KAAK,UAC/B,KAAK,QAAQ,MAAM,SAAW,GAC9B,KAAK,eAAA,CAAiB,EAExB,CAAA,EAGY,GAAA,EAAA,EAAA,WAAuB,CAAA,EAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-CeKrBW2j.cjs`),n=require(`./mixins-Cjn20BQH.cjs`),r=require(`./overlay.service-MMTiW2T3.cjs`),i=require(`./dayjs.min-CvRZTfam.cjs`);let a=require(`rxjs`),o=require(`lit/decorators.js`),s=require(`lit`),c=require(`lit/directives/if-defined.js`),l=require(`lit/directives/repeat.js`),u=require(`lit/directives/when.js`);var d=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=`month`,t=`quarter`;return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var o=i.startOf;i.startOf=function(n,r){var i=this.$utils(),a=!!i.u(r)||r;if(i.p(n)===t){var s=this.quarter()-1;return a?this.month(3*s).startOf(e).startOf(`day`):this.month(3*s+2).endOf(e).endOf(`day`)}return o.bind(this)(n,r)}}};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_quarterOfYear=r()}),f=e.r(d(),1),p=e.r(i.t(),1),m=class extends t.t{constructor(...e){super(...e),this.type=`date`,this.start=null,this.end=null,this.preset=null,this.presets=[]}static{this.styles=[s.css`
|
|
2
|
+
:host {
|
|
3
|
+
display: block;
|
|
4
|
+
}
|
|
5
|
+
`]}handleCalendarInput(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent(`calendar-input`,{detail:{start:e.detail.start,end:e.detail.end},bubbles:!0,composed:!0}))}handleCalendarChange(e){e.stopPropagation();let t=this.type===`datetime-local`;this.dispatchEvent(new CustomEvent(`calendar-change`,{detail:{start:t&&e.detail.start&&!e.detail.start.includes(`T`)?`${e.detail.start}T00:00`:e.detail.start,end:t&&e.detail.end&&!e.detail.end.includes(`T`)?`${e.detail.end}T23:59`:e.detail.end},bubbles:!0,composed:!0}))}handlePresetClick(e){this.dispatchEvent(new CustomEvent(`preset-select`,{detail:e,bubbles:!0,composed:!0}))}handleFromChange(e){let t=e.target.value;if(!t)return;let n=t,r=this.end&&(0,p.default)(this.end).isBefore((0,p.default)(n))?n:this.end??null;this.dispatchEvent(new CustomEvent(`calendar-change`,{detail:{start:n,end:r},bubbles:!0,composed:!0}))}handleToChange(e){let t=e.target.value;t&&this.dispatchEvent(new CustomEvent(`calendar-change`,{detail:{start:this.start??null,end:t},bubbles:!0,composed:!0}))}render(){return s.html`
|
|
6
|
+
<div class="flex flex-col w-full" style="min-width:280px; max-width:360px">
|
|
7
|
+
<!-- Sticky chip quick-rail -->
|
|
8
|
+
<div
|
|
9
|
+
part="presets"
|
|
10
|
+
class="sticky top-0 z-20 bg-surface-default flex flex-wrap gap-2 p-3 border-b border-outline-variant/40"
|
|
11
|
+
>
|
|
12
|
+
${(0,u.when)(this.presets.length>0,()=>s.html`
|
|
13
|
+
${(0,l.repeat)(this.presets,e=>e.id,e=>s.html`
|
|
14
|
+
<schmancy-filter-chip
|
|
15
|
+
part="preset ${this.preset===e.id?`preset-selected`:``}"
|
|
16
|
+
.value=${e.id}
|
|
17
|
+
.selected=${this.preset===e.id}
|
|
18
|
+
title="${e.start} — ${e.end}"
|
|
19
|
+
@click=${()=>this.handlePresetClick(e)}
|
|
20
|
+
>
|
|
21
|
+
${e.label}
|
|
22
|
+
</schmancy-filter-chip>
|
|
23
|
+
`)}
|
|
24
|
+
`,()=>s.nothing)}
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<!-- Calendar (continuous-scroll range picker) -->
|
|
28
|
+
<div part="calendar" class="overflow-y-auto" style="max-height:320px">
|
|
29
|
+
<schmancy-calendar
|
|
30
|
+
mode="range"
|
|
31
|
+
.type=${this.type}
|
|
32
|
+
.start=${this.start}
|
|
33
|
+
.end=${this.end}
|
|
34
|
+
min=${(0,c.ifDefined)(this.min)}
|
|
35
|
+
max=${(0,c.ifDefined)(this.max)}
|
|
36
|
+
@input=${e=>this.handleCalendarInput(e)}
|
|
37
|
+
@change=${e=>this.handleCalendarChange(e)}
|
|
38
|
+
></schmancy-calendar>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<!-- Secondary typed-entry path -->
|
|
42
|
+
<div class="flex gap-2 p-3 border-t border-outline-variant/40 flex-wrap">
|
|
43
|
+
<div class="flex-1 min-w-30">
|
|
44
|
+
<schmancy-input
|
|
45
|
+
.type=${this.type}
|
|
46
|
+
.label=${`From`}
|
|
47
|
+
.value=${this.start??``}
|
|
48
|
+
min=${(0,c.ifDefined)(this.min)}
|
|
49
|
+
max=${(0,c.ifDefined)(this.max)}
|
|
50
|
+
@change=${this.handleFromChange}
|
|
51
|
+
></schmancy-input>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="flex-1 min-w-30">
|
|
54
|
+
<schmancy-input
|
|
55
|
+
.type=${this.type}
|
|
56
|
+
.label=${`To`}
|
|
57
|
+
.value=${this.end??``}
|
|
58
|
+
min=${(0,c.ifDefined)(this.start??this.min)}
|
|
59
|
+
max=${(0,c.ifDefined)(this.max)}
|
|
60
|
+
@change=${this.handleToChange}
|
|
61
|
+
></schmancy-input>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
`}};function h(e=`date`){let t=e===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`;return[{id:`today`,label:`Today`,start:(0,p.default)().startOf(`day`).format(t),end:(0,p.default)().endOf(`day`).format(t)},{id:`yesterday`,label:`Yesterday`,start:(0,p.default)().subtract(1,`day`).startOf(`day`).format(t),end:(0,p.default)().subtract(1,`day`).endOf(`day`).format(t)},{id:`last7`,label:`Last 7 days`,start:(0,p.default)().subtract(6,`day`).startOf(`day`).format(t),end:(0,p.default)().endOf(`day`).format(t)},{id:`last30`,label:`Last 30 days`,start:(0,p.default)().subtract(29,`day`).startOf(`day`).format(t),end:(0,p.default)().endOf(`day`).format(t)},{id:`thisWeek`,label:`This week`,start:(0,p.default)().startOf(`week`).format(t),end:(0,p.default)().endOf(`week`).format(t)},{id:`thisMonth`,label:`This month`,start:(0,p.default)().startOf(`month`).format(t),end:(0,p.default)().endOf(`month`).format(t)},{id:`lastMonth`,label:`Last month`,start:(0,p.default)().subtract(1,`month`).startOf(`month`).format(t),end:(0,p.default)().subtract(1,`month`).endOf(`month`).format(t)},{id:`thisYear`,label:`This year`,start:(0,p.default)().startOf(`year`).format(t),end:(0,p.default)().endOf(`year`).format(t)}]}t.u([(0,o.property)()],m.prototype,`type`,void 0),t.u([(0,o.property)()],m.prototype,`start`,void 0),t.u([(0,o.property)()],m.prototype,`end`,void 0),t.u([(0,o.property)()],m.prototype,`min`,void 0),t.u([(0,o.property)()],m.prototype,`max`,void 0),t.u([(0,o.property)()],m.prototype,`preset`,void 0),t.u([(0,o.property)({type:Array})],m.prototype,`presets`,void 0),m=t.u([(0,o.customElement)(`schmancy-date-range-dialog`)],m),p.default.extend(f.default);var g=class extends n.o(){constructor(...e){super(...e),this.type=`date`,this.start=null,this.end=null,this.defaultPresetsRef=h(),this.presets=this.defaultPresetsRef,this.usingDefaultPresets=!0,this.preset=null,this.placeholder=`Select date range`,this.clearable=!0,this.collapse=!1,this.open$=new a.Subject,this.close$=new a.Subject,this.announce$=new a.Subject,this.isOpen=!1,this.announceMessage=``,this.startDefault=null,this.endDefault=null,this.presetDefault=null}disconnectedCallback(){super.disconnectedCallback(),this.isOpen=!1}connectedCallback(){super.connectedCallback(),(0,a.merge)(this.open$.pipe((0,a.tap)(()=>{this.isOpen=!0}),(0,a.exhaustMap)(e=>r.o(()=>s.html`
|
|
66
|
+
<schmancy-date-range-dialog
|
|
67
|
+
.type=${this.type}
|
|
68
|
+
.start=${this.start}
|
|
69
|
+
.end=${this.end}
|
|
70
|
+
.min=${this.min}
|
|
71
|
+
.max=${this.max}
|
|
72
|
+
.preset=${this.preset}
|
|
73
|
+
.presets=${this.presets}
|
|
74
|
+
@calendar-input=${e=>{e.stopPropagation(),this.dispatchEvent(new CustomEvent(`input`,{detail:{start:e.detail.start,end:e.detail.end},bubbles:!0,composed:!0}))}}
|
|
75
|
+
@calendar-change=${e=>{e.stopPropagation(),this.commitRange(e.detail.start,e.detail.end,null),e.detail.start&&e.detail.end&&e.target?.dispatchEvent(new CustomEvent(`close`,{bubbles:!0,composed:!0}))}}
|
|
76
|
+
@preset-select=${e=>{e.stopPropagation(),this.commitRange(e.detail.start,e.detail.end,e.detail.id),e.target?.dispatchEvent(new CustomEvent(`close`,{bubbles:!0,composed:!0}))}}
|
|
77
|
+
></schmancy-date-range-dialog>
|
|
78
|
+
`,{anchor:e}).pipe((0,a.takeUntil)(this.close$),(0,a.finalize)(()=>{this.isOpen=!1})))),this.announce$.pipe((0,a.switchMap)(e=>(0,a.concat)((0,a.of)(e),(0,a.timer)(1500).pipe((0,a.map)(()=>``)))),(0,a.tap)(e=>{this.announceMessage=e})),(0,a.fromEvent)(document,`keydown`).pipe((0,a.tap)(e=>this.handleKeyDown(e)))).pipe((0,a.takeUntil)(this.disconnecting)).subscribe()}willUpdate(e){if(super.willUpdate(e),e.has(`presets`)&&this.presets!==this.defaultPresetsRef&&(this.usingDefaultPresets=!1),e.has(`type`)&&this.usingDefaultPresets&&(this.defaultPresetsRef=h(this.type),this.presets=this.defaultPresetsRef),e.has(`start`)||e.has(`end`)||e.has(`name`)||e.has(`disabled`)){if(this.name&&!this.disabled){let e=new FormData;this.start&&e.append(`${this.name}.start`,this.start),this.end&&e.append(`${this.name}.end`,this.end),this.internals?.setFormValue(e.has(`${this.name}.start`)||e.has(`${this.name}.end`)?e:null)}else this.internals?.setFormValue(null);this.checkValidity()}e.has(`required`)&&this.checkValidity()}checkValidity(){if(this.disabled)return this.internals?.setValidity({}),!0;if(this.required&&(!this.start||!this.end)){let e=`Please select a complete date range.`;return this.internals?.setValidity({valueMissing:!0},e),this.shouldShowError()&&(this.error=!0,this.validationMessage=e),!1}if(this.start&&this.end&&this.end<this.start){let e=`End date must be on or after start date.`;return this.internals?.setValidity({customError:!0},e),this.shouldShowError()&&(this.error=!0,this.validationMessage=e),!1}return this.internals?.setValidity({}),this.shouldShowError()&&(this.error=!1,this.validationMessage=``),!0}toFormEntries(){if(!this.name||this.disabled)return[];let e=[];return this.start&&e.push([`${this.name}.start`,this.start]),this.end&&e.push([`${this.name}.end`,this.end]),e}get dirty(){return this.start!==this.startDefault||this.end!==this.endDefault}firstUpdated(e){super.firstUpdated(e),this.startDefault=this.start,this.endDefault=this.end,this.presetDefault=this.preset}resetForm(){this.start=this.startDefault,this.end=this.endDefault,this.preset=this.presetDefault,this.error=!1,this.validationMessage=``,this.touched=!1,this.submitted=!1,this.internals?.setValidity({})}commitRange(e,t,n){this.start=e,this.end=t,this.preset=n,this.announce$.next(`Date range: ${this.displayLabel()}`),this.emitChange({start:e,end:t,preset:n})}displayLabel(){if(this.preset){let e=this.presets.find(e=>e.id===this.preset);if(e)return e.label}return function(e,t,n,r){if(!e||!t)return r;let i=(0,p.default)(e),a=(0,p.default)(t);if(!i.isValid()||!a.isValid())return r;let o=n===`datetime-local`?i.format(` h:mm A`):``,s=n===`datetime-local`?a.format(` h:mm A`):``;return i.isSame(a,`day`)?`${i.format(`ddd, MMM D, YYYY`)}${o}`:i.isSame(a,`month`)&&i.isSame(a,`year`)?`${i.format(`ddd MMM D`)} - ${a.format(`ddd D, YYYY`)}${s}`:i.isSame(a,`year`)?`${i.format(`ddd MMM D`)} - ${a.format(`ddd MMM D, YYYY`)}${s}`:`${i.format(`ddd MMM D, YYYY`)}${o} - ${a.format(`ddd MMM D, YYYY`)}${s}`}(this.start??``,this.end??``,this.type,this.placeholder)}toggleDropdown(e){e.stopPropagation(),this.disabled||this.step!==void 0||(this.isOpen?this.close$.next():this.open$.next(e))}shiftDateRange(e,t){if(t.stopPropagation(),!this.start||!this.end)return;let n=(0,p.default)(this.start),r=(0,p.default)(this.end);if(!n.isValid()||!r.isValid())return;let i=this.type===`date`?`YYYY-MM-DD`:`YYYY-MM-DDTHH:mm`,a=e>0?1:-1,o=r.diff(n,`day`)+1,s,c;if(this.step!==void 0)typeof this.step==`number`?(s=a*this.step,c=`day`):this.step===`day`?(s=a*o,c=`day`):(s=a,c=this.step);else{let e=function(e,t){return{isFullMonth:e.date()===1&&t.isSame(e.endOf(`month`),`day`),isFullQuarter:e.isSame(e.startOf(`quarter`),`day`)&&t.isSame(t.endOf(`quarter`),`day`),isFullYear:e.isSame(e.startOf(`year`),`day`)&&t.isSame(t.endOf(`year`),`day`),isFullWeek:e.day()===0&&t.day()===6&&t.diff(e,`days`)===6}}(n,r);e.isFullYear?(s=a,c=`year`):e.isFullMonth?(s=a,c=`month`):e.isFullWeek?(s=a,c=`week`):(s=a*o,c=`day`)}let l=n.add(s,c),u=r.add(s,c);this.min&&l.isBefore((0,p.default)(this.min))||this.max&&u.isAfter((0,p.default)(this.max))||this.commitRange(l.format(i),u.format(i),null)}handleKeyDown(e){if(!this.start||!this.end||this.disabled)return;let t=e.target;if(t===this||this.contains(t))switch(e.key){case`PageUp`:this.shiftDateRange(-1,e),e.preventDefault();break;case`PageDown`:this.shiftDateRange(1,e),e.preventDefault();break;case`Home`:if(e.ctrlKey){let t=this.type===`date`?`YYYY-MM-DD`:`YYYY-MM-DDTHH:mm`,n=(0,p.default)(this.start),r=(0,p.default)(this.end),i=n.startOf(`month`);this.commitRange(i.format(t),i.add(r.diff(n,`day`),`day`).format(t),null),e.preventDefault()}break;case`End`:if(e.ctrlKey){let t=this.type===`date`?`YYYY-MM-DD`:`YYYY-MM-DDTHH:mm`,n=(0,p.default)(this.start),r=(0,p.default)(this.end),i=r.endOf(`month`);this.commitRange(i.subtract(r.diff(n,`day`),`day`).format(t),i.format(t),null),e.preventDefault()}}}canNavigateBackward(){return!this.start||!this.min||(0,p.default)(this.start).isAfter((0,p.default)(this.min))}canNavigateForward(){return!this.end||!this.max||(0,p.default)(this.end).isBefore((0,p.default)(this.max))}render(){let e=this.error&&!!this.validationMessage,t=e?` rounded outline outline-2 outline-error-default`:``,n=this.displayLabel();return s.html`
|
|
79
|
+
<div class="relative ${this.disabled?`opacity-60 pointer-events-none`:``}">
|
|
80
|
+
<!-- Screen reader announcements -->
|
|
81
|
+
<div class="sr-only" role="status" aria-live="polite" aria-atomic="true">${this.announceMessage}</div>
|
|
82
|
+
|
|
83
|
+
<!-- Collapsed: icon-only on narrow viewports when collapse=true -->
|
|
84
|
+
<schmancy-icon-button
|
|
85
|
+
class="${this.collapse?`lg:hidden`:`hidden`}${t}"
|
|
86
|
+
variant="outlined"
|
|
87
|
+
type="button"
|
|
88
|
+
aria-invalid=${e?`true`:`false`}
|
|
89
|
+
aria-label="Select date range. Current: ${n}"
|
|
90
|
+
@click=${e=>this.toggleDropdown(e)}
|
|
91
|
+
?disabled=${this.disabled}
|
|
92
|
+
>
|
|
93
|
+
date_range
|
|
94
|
+
</schmancy-icon-button>
|
|
95
|
+
|
|
96
|
+
<!-- Full trigger row: [← | range label | →] -->
|
|
97
|
+
<section
|
|
98
|
+
@click=${e=>e.stopPropagation()}
|
|
99
|
+
aria-invalid=${e?`true`:`false`}
|
|
100
|
+
class="${this.collapse?`hidden lg:flex`:`flex`}${t}"
|
|
101
|
+
>
|
|
102
|
+
<schmancy-icon-button
|
|
103
|
+
type="button"
|
|
104
|
+
aria-label="Previous ${this.preset??`date range`}"
|
|
105
|
+
@click=${e=>this.shiftDateRange(-1,e)}
|
|
106
|
+
?disabled=${this.disabled||!this.start||!this.end||!this.canNavigateBackward()}
|
|
107
|
+
>
|
|
108
|
+
arrow_left
|
|
109
|
+
</schmancy-icon-button>
|
|
110
|
+
|
|
111
|
+
<schmancy-button
|
|
112
|
+
class="w-max"
|
|
113
|
+
variant="outlined"
|
|
114
|
+
type="button"
|
|
115
|
+
aria-haspopup="dialog"
|
|
116
|
+
aria-expanded=${this.isOpen}
|
|
117
|
+
aria-label="Select date range. Current: ${n}"
|
|
118
|
+
aria-readonly="${this.step!==void 0}"
|
|
119
|
+
@click=${e=>this.toggleDropdown(e)}
|
|
120
|
+
?disabled=${this.disabled}
|
|
121
|
+
style="${this.step===void 0?``:`cursor:default;`}"
|
|
122
|
+
>
|
|
123
|
+
${n}
|
|
124
|
+
</schmancy-button>
|
|
125
|
+
|
|
126
|
+
<schmancy-icon-button
|
|
127
|
+
type="button"
|
|
128
|
+
aria-label="Next ${this.preset??`date range`}"
|
|
129
|
+
@click=${e=>this.shiftDateRange(1,e)}
|
|
130
|
+
?disabled=${this.disabled||!this.start||!this.end||!this.canNavigateForward()}
|
|
131
|
+
>
|
|
132
|
+
arrow_right
|
|
133
|
+
</schmancy-icon-button>
|
|
134
|
+
</section>
|
|
135
|
+
|
|
136
|
+
${e?s.html`<div role="alert" class="text-error-default text-sm mt-1">${this.validationMessage}</div>`:s.nothing}
|
|
137
|
+
</div>
|
|
138
|
+
`}};t.u([(0,o.property)()],g.prototype,`type`,void 0),t.u([(0,o.property)()],g.prototype,`start`,void 0),t.u([(0,o.property)()],g.prototype,`end`,void 0),t.u([(0,o.property)({type:Array})],g.prototype,`presets`,void 0),t.u([(0,o.property)({reflect:!0})],g.prototype,`preset`,void 0),t.u([(0,o.property)()],g.prototype,`min`,void 0),t.u([(0,o.property)()],g.prototype,`max`,void 0),t.u([(0,o.property)()],g.prototype,`placeholder`,void 0),t.u([(0,o.property)({type:Boolean})],g.prototype,`clearable`,void 0),t.u([(0,o.property)()],g.prototype,`step`,void 0),t.u([(0,o.property)({type:Boolean})],g.prototype,`collapse`,void 0),t.u([(0,o.state)()],g.prototype,`isOpen`,void 0),t.u([(0,o.state)()],g.prototype,`announceMessage`,void 0),g=t.u([(0,o.customElement)(`schmancy-date-range`)],g),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return g}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-range-B2VN7cl_.cjs","names":[],"sources":["../node_modules/dayjs/plugin/quarterOfYear.js","../src/form/fields/date-range/date-range-helpers.ts","../src/form/fields/date-range/date-range-dialog.ts","../src/form/fields/date-range/date-range.ts"],"sourcesContent":["!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\n\n/**\n * Format a date range into a human-readable string\n */\nexport function formatDateRange(\n\tfromValue: string,\n\ttoValue: string,\n\ttype: 'date' | 'datetime-local',\n\tplaceholder: string,\n): string {\n\tif (!fromValue || !toValue) {\n\t\treturn placeholder\n\t}\n\n\tconst fromDate = dayjs(fromValue)\n\tconst toDate = dayjs(toValue)\n\n\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\treturn placeholder\n\t}\n\n\t// Format times if needed (for datetime-local)\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\n\n\t// Check if same day\n\tif (fromDate.isSame(toDate, 'day')) {\n\t\treturn `${fromDate.format('ddd, MMM D, YYYY')}${fromTime}`\n\t}\n\n\t// Check if same month and year\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd D, YYYY')}${toTime}`\n\t}\n\n\t// Check if same year\n\tif (fromDate.isSame(toDate, 'year')) {\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\n\t}\n\n\t// Different years\n\treturn `${fromDate.format('ddd MMM D, YYYY')}${fromTime} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\n}\n\n/**\n * Detect the type of date range (full month, full quarter, etc.)\n */\nexport interface DateRangeType {\n\tisFullMonth: boolean\n\tisFullQuarter: boolean\n\tisFullYear: boolean\n\tisFullWeek: boolean\n}\n\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\n\treturn {\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\n\t}\n}\n","import { SchmancyElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { when } from 'lit/directives/when.js'\nimport type { SchmancyCalendarChangeEvent, SchmancyCalendarInputEvent } from '../../../calendar/calendar'\n\nexport interface DateRangeDialogPreset {\n\tid: string\n\tlabel: string\n\tstart: string\n\tend: string\n}\n\n/**\n * Picker panel for `<schmancy-date-range>`.\n *\n * Layout: sticky chip quick-rail → continuous-scroll calendar → secondary typed path.\n * Emits composed events that `<schmancy-date-range>` bridges into its own\n * `input`/`change` events.\n *\n * @element schmancy-date-range-dialog\n * @fires calendar-input - Provisional sweep from the calendar { start, end }\n * @fires calendar-change - Committed endpoint from the calendar { start, end }\n * @fires preset-select - A chip was clicked { id, label, start, end }\n */\n@customElement('schmancy-date-range-dialog')\nexport class SchmancyDateRangeDialog extends SchmancyElement {\n\tstatic styles = [\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t`,\n\t]\n\n\t@property() type: 'date' | 'datetime-local' = 'date'\n\t@property() start: string | null = null\n\t@property() end: string | null = null\n\t@property() min?: string\n\t@property() max?: string\n\t@property() preset: string | null = null\n\t@property({ type: Array }) presets: DateRangeDialogPreset[] = []\n\n\tprivate handleCalendarInput(e: SchmancyCalendarInputEvent) {\n\t\te.stopPropagation()\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('calendar-input', {\n\t\t\t\tdetail: { start: e.detail.start, end: e.detail.end },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleCalendarChange(e: SchmancyCalendarChangeEvent) {\n\t\te.stopPropagation()\n\t\t// When type=\"datetime-local\", the calendar emits YYYY-MM-DD date strings.\n\t\t// A calendar-only pick commits start-of-day (T00:00) for the start and\n\t\t// end-of-day (T23:59) for the end, per ADR-0041 D3.\n\t\tconst isDatetime = this.type === 'datetime-local'\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('calendar-change', {\n\t\t\t\tdetail: {\n\t\t\t\t\tstart:\n\t\t\t\t\t\tisDatetime && e.detail.start && !e.detail.start.includes('T')\n\t\t\t\t\t\t\t? `${e.detail.start}T00:00`\n\t\t\t\t\t\t\t: e.detail.start,\n\t\t\t\t\tend:\n\t\t\t\t\t\tisDatetime && e.detail.end && !e.detail.end.includes('T')\n\t\t\t\t\t\t\t? `${e.detail.end}T23:59`\n\t\t\t\t\t\t\t: e.detail.end,\n\t\t\t\t},\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handlePresetClick(p: DateRangeDialogPreset) {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('preset-select', {\n\t\t\t\tdetail: p,\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleFromChange(e: Event) {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tif (!value) return\n\t\t// Swap if end is earlier than the new start\n\t\tconst newStart = value\n\t\tconst newEnd =\n\t\t\tthis.end && dayjs(this.end).isBefore(dayjs(newStart)) ? newStart : (this.end ?? null)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('calendar-change', {\n\t\t\t\tdetail: { start: newStart, end: newEnd },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleToChange(e: Event) {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tif (!value) return\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('calendar-change', {\n\t\t\t\tdetail: { start: this.start ?? null, end: value },\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\treturn html`\n\t\t\t<div class=\"flex flex-col w-full\" style=\"min-width:280px; max-width:360px\">\n\t\t\t\t<!-- Sticky chip quick-rail -->\n\t\t\t\t<div\n\t\t\t\t\tpart=\"presets\"\n\t\t\t\t\tclass=\"sticky top-0 z-20 bg-surface-default flex flex-wrap gap-2 p-3 border-b border-outline-variant/40\"\n\t\t\t\t>\n\t\t\t\t\t${when(\n\t\t\t\t\t\tthis.presets.length > 0,\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t${repeat(\n\t\t\t\t\t\t\t\tthis.presets,\n\t\t\t\t\t\t\t\tp => p.id,\n\t\t\t\t\t\t\t\tp => html`\n\t\t\t\t\t\t\t\t\t<schmancy-filter-chip\n\t\t\t\t\t\t\t\t\t\tpart=\"preset ${this.preset === p.id ? 'preset-selected' : ''}\"\n\t\t\t\t\t\t\t\t\t\t.value=${p.id}\n\t\t\t\t\t\t\t\t\t\t.selected=${this.preset === p.id}\n\t\t\t\t\t\t\t\t\t\ttitle=\"${p.start} — ${p.end}\"\n\t\t\t\t\t\t\t\t\t\t@click=${() => this.handlePresetClick(p)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t${p.label}\n\t\t\t\t\t\t\t\t\t</schmancy-filter-chip>\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\t() => nothing,\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Calendar (continuous-scroll range picker) -->\n\t\t\t\t<div part=\"calendar\" class=\"overflow-y-auto\" style=\"max-height:320px\">\n\t\t\t\t\t<schmancy-calendar\n\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t.start=${this.start}\n\t\t\t\t\t\t.end=${this.end}\n\t\t\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\t\t\t@input=${(e: SchmancyCalendarInputEvent) => this.handleCalendarInput(e)}\n\t\t\t\t\t\t@change=${(e: SchmancyCalendarChangeEvent) => this.handleCalendarChange(e)}\n\t\t\t\t\t></schmancy-calendar>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Secondary typed-entry path -->\n\t\t\t\t<div class=\"flex gap-2 p-3 border-t border-outline-variant/40 flex-wrap\">\n\t\t\t\t\t<div class=\"flex-1 min-w-30\">\n\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t.label=${'From'}\n\t\t\t\t\t\t\t.value=${this.start ?? ''}\n\t\t\t\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\t\t\t\t@change=${this.handleFromChange}\n\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex-1 min-w-30\">\n\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t.label=${'To'}\n\t\t\t\t\t\t\t.value=${this.end ?? ''}\n\t\t\t\t\t\t\tmin=${ifDefined(this.start ?? this.min)}\n\t\t\t\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\t\t\t\t@change=${this.handleToChange}\n\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range-dialog': SchmancyDateRangeDialog\n\t}\n}\n","import dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, nothing, PropertyValues } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport {\n\tconcat,\n\texhaustMap,\n\tfinalize,\n\tfromEvent,\n\tmap,\n\tmerge,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttakeUntil,\n\ttap,\n\ttimer,\n} from 'rxjs'\nimport { SchmancyFormField } from '@mixins/index'\nimport { show } from '../../../overlay/overlay.service'\nimport { detectDateRangeType, formatDateRange } from './date-range-helpers'\nimport './date-range-dialog'\nimport type { DateRangeDialogPreset } from './date-range-dialog'\n\ndayjs.extend(quarterOfYear)\n\n// ---------------------------------------------------------------------------\n// Default built-in presets\n// ---------------------------------------------------------------------------\n\nfunction buildDefaultPresets(type: 'date' | 'datetime-local' = 'date'): DateRangeDialogPreset[] {\n\tconst fmt = type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'\n\treturn [\n\t\t{\n\t\t\tid: 'today',\n\t\t\tlabel: 'Today',\n\t\t\tstart: dayjs().startOf('day').format(fmt),\n\t\t\tend: dayjs().endOf('day').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'yesterday',\n\t\t\tlabel: 'Yesterday',\n\t\t\tstart: dayjs().subtract(1, 'day').startOf('day').format(fmt),\n\t\t\tend: dayjs().subtract(1, 'day').endOf('day').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'last7',\n\t\t\tlabel: 'Last 7 days',\n\t\t\tstart: dayjs().subtract(6, 'day').startOf('day').format(fmt),\n\t\t\tend: dayjs().endOf('day').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'last30',\n\t\t\tlabel: 'Last 30 days',\n\t\t\tstart: dayjs().subtract(29, 'day').startOf('day').format(fmt),\n\t\t\tend: dayjs().endOf('day').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'thisWeek',\n\t\t\tlabel: 'This week',\n\t\t\tstart: dayjs().startOf('week').format(fmt),\n\t\t\tend: dayjs().endOf('week').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'thisMonth',\n\t\t\tlabel: 'This month',\n\t\t\tstart: dayjs().startOf('month').format(fmt),\n\t\t\tend: dayjs().endOf('month').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'lastMonth',\n\t\t\tlabel: 'Last month',\n\t\t\tstart: dayjs().subtract(1, 'month').startOf('month').format(fmt),\n\t\t\tend: dayjs().subtract(1, 'month').endOf('month').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'thisYear',\n\t\t\tlabel: 'This year',\n\t\t\tstart: dayjs().startOf('year').format(fmt),\n\t\t\tend: dayjs().endOf('year').format(fmt),\n\t\t},\n\t]\n}\n\n// ---------------------------------------------------------------------------\n// Event types\n// ---------------------------------------------------------------------------\n\nexport type SchmancyDateRangeInputEvent = CustomEvent<{\n\tstart: string | null\n\tend: string | null\n}>\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tstart: string | null\n\tend: string | null\n\tpreset: string | null\n}>\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n/**\n * A date range selector composing `<schmancy-calendar mode=\"range\">` with a\n * sticky preset chip quick-rail and a secondary typed-entry path.\n *\n * Public API: flat ISO `start`/`end`, `preset` read-back, `presets` array.\n * FormData: `${name}.start` / `${name}.end` (empty endpoint omitted).\n *\n * @element schmancy-date-range\n * @fires input - Provisional sweep preview { start, end }\n * @fires change - Committed range change { start, end, preset }\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends SchmancyFormField() {\n\t// `name`, `disabled`, `required`, `error`, `validationMessage`, `id`,\n\t// `validateOn`, `touched`, `submitted`, `markTouched`, `markSubmitted`,\n\t// FACE wiring, FIELD_CONNECT_EVENT dispatch — all from the mixin.\n\n\t@property() type: 'date' | 'datetime-local' = 'date'\n\t@property() start: string | null = null\n\t@property() end: string | null = null\n\n\t/** Reference to the last array produced by buildDefaultPresets; used to detect consumer ownership. */\n\tprivate defaultPresetsRef: DateRangeDialogPreset[] = buildDefaultPresets()\n\n\t@property({ type: Array }) presets: DateRangeDialogPreset[] = this.defaultPresetsRef\n\n\t/** True while the component holds the built-in default preset list (not user-supplied). */\n\tprivate usingDefaultPresets = true\n\n\t/** Selected preset id; null = custom range. Reflects to attribute. */\n\t@property({ reflect: true }) preset: string | null = null\n\n\t@property() min?: string\n\t@property() max?: string\n\t@property() placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\t@property() step?: 'day' | 'week' | 'month' | 'year' | number\n\t/** Collapses to an icon-only button on narrow viewports. */\n\t@property({ type: Boolean }) collapse = false\n\n\t// Session subjects — ONE_PIPELINE_ONE_SUBSCRIBE in connectedCallback.\n\tprivate readonly open$ = new Subject<MouseEvent | undefined>()\n\tprivate readonly close$ = new Subject<void>()\n\tprivate readonly announce$ = new Subject<string>()\n\n\t@state() private isOpen = false\n\t@state() private announceMessage = ''\n\n\t// Default-capture for formResetCallback\n\tprivate startDefault: string | null = null\n\tprivate endDefault: string | null = null\n\tprivate presetDefault: string | null = null\n\n\toverride disconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t\tthis.isOpen = false\n\t}\n\n\toverride connectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// One pipeline (rxjs ONE_PIPELINE_ONE_SUBSCRIBE).\n\t\tmerge(\n\t\t\t// Overlay session (rxjs SESSIONS_USE_HIGHER_ORDER_OBSERVABLES).\n\t\t\tthis.open$.pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis.isOpen = true\n\t\t\t\t}),\n\t\t\t\texhaustMap(anchor =>\n\t\t\t\t\tshow(\n\t\t\t\t\t\t// Reactive factory — closed-over props read fresh on each mount.\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t<schmancy-date-range-dialog\n\t\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t\t.start=${this.start}\n\t\t\t\t\t\t\t\t.end=${this.end}\n\t\t\t\t\t\t\t\t.min=${this.min}\n\t\t\t\t\t\t\t\t.max=${this.max}\n\t\t\t\t\t\t\t\t.preset=${this.preset}\n\t\t\t\t\t\t\t\t.presets=${this.presets}\n\t\t\t\t\t\t\t\t@calendar-input=${(ev: CustomEvent<{ start: string | null; end: string | null }>) => {\n\t\t\t\t\t\t\t\t\tev.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\tnew CustomEvent('input', {\n\t\t\t\t\t\t\t\t\t\t\tdetail: { start: ev.detail.start, end: ev.detail.end },\n\t\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\t\tcomposed: true,\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@calendar-change=${(ev: CustomEvent<{ start: string | null; end: string | null }>) => {\n\t\t\t\t\t\t\t\t\tev.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.commitRange(ev.detail.start, ev.detail.end, null)\n\t\t\t\t\t\t\t\t\t// Two endpoints set → close overlay\n\t\t\t\t\t\t\t\t\tif (ev.detail.start && ev.detail.end) {\n\t\t\t\t\t\t\t\t\t\tev.target?.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: 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@preset-select=${(ev: CustomEvent<DateRangeDialogPreset>) => {\n\t\t\t\t\t\t\t\t\tev.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.commitRange(ev.detail.start, ev.detail.end, ev.detail.id)\n\t\t\t\t\t\t\t\t\tev.target?.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }))\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t></schmancy-date-range-dialog>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t{ anchor },\n\t\t\t\t\t).pipe(\n\t\t\t\t\t\ttakeUntil(this.close$),\n\t\t\t\t\t\tfinalize(() => {\n\t\t\t\t\t\t\tthis.isOpen = false\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\t// Screen-reader announcements.\n\t\t\tthis.announce$.pipe(\n\t\t\t\tswitchMap(message => concat(of(message), timer(1500).pipe(map(() => '')))),\n\t\t\t\ttap(message => {\n\t\t\t\t\tthis.announceMessage = message\n\t\t\t\t}),\n\t\t\t),\n\n\t\t\t// Document keyboard navigation.\n\t\t\tfromEvent<KeyboardEvent>(document, 'keydown').pipe(tap(ev => this.handleKeyDown(ev))),\n\t\t)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe()\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Mixin overrides — FormData, validity, dirty, reset\n\t// -------------------------------------------------------------------------\n\n\toverride willUpdate(changed: PropertyValues): void {\n\t\tsuper.willUpdate(changed)\n\t\t// Consumer ownership detection must run before the type-change rebuild so that\n\t\t// when both `type` and `presets` arrive in the same willUpdate cycle (e.g. simultaneous\n\t\t// attribute/property initialisation), the consumer's presets are not overwritten.\n\t\t//\n\t\t// A `presets` change signals consumer ownership when the incoming value is not the\n\t\t// array reference produced by the internal default-builder (defaultPresetsRef).\n\t\t// Since buildDefaultPresets always allocates a new array, defaultPresetsRef is the\n\t\t// only reference that could match; any other reference came from the consumer.\n\t\tif (changed.has('presets') && this.presets !== this.defaultPresetsRef) {\n\t\t\tthis.usingDefaultPresets = false\n\t\t}\n\t\t// Rebuild built-in presets when type changes, but only while the consumer has never\n\t\t// supplied their own presets array.\n\t\tif (changed.has('type') && this.usingDefaultPresets) {\n\t\t\tthis.defaultPresetsRef = buildDefaultPresets(this.type)\n\t\t\tthis.presets = this.defaultPresetsRef\n\t\t}\n\t\tif (changed.has('start') || changed.has('end') || changed.has('name') || changed.has('disabled')) {\n\t\t\tif (this.name && !this.disabled) {\n\t\t\t\tconst fd = new FormData()\n\t\t\t\tif (this.start) fd.append(`${this.name}.start`, this.start)\n\t\t\t\tif (this.end) fd.append(`${this.name}.end`, this.end)\n\t\t\t\tthis.internals?.setFormValue(fd.has(`${this.name}.start`) || fd.has(`${this.name}.end`) ? fd : null)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setFormValue(null)\n\t\t\t}\n\t\t\tthis.checkValidity()\n\t\t}\n\t\tif (changed.has('required')) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\n\toverride checkValidity(): boolean {\n\t\tif (this.disabled) {\n\t\t\tthis.internals?.setValidity({})\n\t\t\treturn true\n\t\t}\n\t\tif (this.required && (!this.start || !this.end)) {\n\t\t\tconst msg = 'Please select a complete date range.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, msg)\n\t\t\tif (this.shouldShowError()) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = msg\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t\tif (this.start && this.end && this.end < this.start) {\n\t\t\tconst msg = 'End date must be on or after start date.'\n\t\t\tthis.internals?.setValidity({ customError: true }, msg)\n\t\t\tif (this.shouldShowError()) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = msg\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t\tthis.internals?.setValidity({})\n\t\tif (this.shouldShowError()) {\n\t\t\tthis.error = false\n\t\t\tthis.validationMessage = ''\n\t\t}\n\t\treturn true\n\t}\n\n\toverride toFormEntries(): Array<[string, FormDataEntryValue]> {\n\t\tif (!this.name || this.disabled) return []\n\t\tconst entries: Array<[string, FormDataEntryValue]> = []\n\t\tif (this.start) entries.push([`${this.name}.start`, this.start])\n\t\tif (this.end) entries.push([`${this.name}.end`, this.end])\n\t\treturn entries\n\t}\n\n\toverride get dirty(): boolean {\n\t\treturn this.start !== this.startDefault || this.end !== this.endDefault\n\t}\n\n\toverride firstUpdated(changed: PropertyValues): void {\n\t\tsuper.firstUpdated(changed)\n\t\tthis.startDefault = this.start\n\t\tthis.endDefault = this.end\n\t\tthis.presetDefault = this.preset\n\t}\n\n\toverride resetForm(): void {\n\t\tthis.start = this.startDefault\n\t\tthis.end = this.endDefault\n\t\tthis.preset = this.presetDefault\n\t\tthis.error = false\n\t\tthis.validationMessage = ''\n\t\tthis.touched = false\n\t\tthis.submitted = false\n\t\tthis.internals?.setValidity({})\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Internal helpers\n\t// -------------------------------------------------------------------------\n\n\tprivate commitRange(start: string | null, end: string | null, presetId: string | null): void {\n\t\tthis.start = start\n\t\tthis.end = end\n\t\tthis.preset = presetId\n\t\tthis.announce$.next(`Date range: ${this.displayLabel()}`)\n\t\tthis.emitChange({ start, end, preset: presetId })\n\t}\n\n\tprivate displayLabel(): string {\n\t\tif (this.preset) {\n\t\t\tconst p = this.presets.find(x => x.id === this.preset)\n\t\t\tif (p) return p.label\n\t\t}\n\t\treturn formatDateRange(this.start ?? '', this.end ?? '', this.type, this.placeholder)\n\t}\n\n\tprivate toggleDropdown(e: MouseEvent) {\n\t\te.stopPropagation()\n\t\tif (this.disabled || this.step !== undefined) return\n\t\tif (this.isOpen) {\n\t\t\tthis.close$.next()\n\t\t} else {\n\t\t\tthis.open$.next(e)\n\t\t}\n\t}\n\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\t\tif (!this.start || !this.end) return\n\n\t\tconst fromDate = dayjs(this.start)\n\t\tconst toDate = dayjs(this.end)\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst dateFormat = this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t\tconst dir = direction > 0 ? 1 : -1\n\t\tconst daysDiff = toDate.diff(fromDate, 'day') + 1\n\n\t\tlet amount: number\n\t\tlet unit: dayjs.ManipulateType\n\n\t\tif (this.step !== undefined) {\n\t\t\tif (typeof this.step === 'number') {\n\t\t\t\tamount = dir * this.step\n\t\t\t\tunit = 'day'\n\t\t\t} else if (this.step === 'day') {\n\t\t\t\tamount = dir * daysDiff\n\t\t\t\tunit = 'day'\n\t\t\t} else {\n\t\t\t\tamount = dir\n\t\t\t\tunit = this.step\n\t\t\t}\n\t\t} else {\n\t\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\t\t\tif (rangeType.isFullYear) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'year'\n\t\t\t} else if (rangeType.isFullMonth) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'month'\n\t\t\t} else if (rangeType.isFullWeek) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'week'\n\t\t\t} else {\n\t\t\t\tamount = dir * daysDiff\n\t\t\t\tunit = 'day'\n\t\t\t}\n\t\t}\n\n\t\tconst newFrom = fromDate.add(amount, unit)\n\t\tconst newTo = toDate.add(amount, unit)\n\n\t\tif (this.min && newFrom.isBefore(dayjs(this.min))) return\n\t\tif (this.max && newTo.isAfter(dayjs(this.max))) return\n\n\t\tthis.commitRange(newFrom.format(dateFormat), newTo.format(dateFormat), null)\n\t}\n\n\tprivate handleKeyDown(ev: KeyboardEvent) {\n\t\tif (!this.start || !this.end || this.disabled) return\n\t\tconst target = ev.target as Node | null\n\t\tif (target !== this && !this.contains(target)) return\n\n\t\tswitch (ev.key) {\n\t\t\tcase 'PageUp':\n\t\t\t\tthis.shiftDateRange(-1, ev)\n\t\t\t\tev.preventDefault()\n\t\t\t\tbreak\n\t\t\tcase 'PageDown':\n\t\t\t\tthis.shiftDateRange(1, ev)\n\t\t\t\tev.preventDefault()\n\t\t\t\tbreak\n\t\t\tcase 'Home':\n\t\t\t\tif (ev.ctrlKey) {\n\t\t\t\t\tconst fmt = this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t\t\t\t\tconst from = dayjs(this.start)\n\t\t\t\t\tconst to = dayjs(this.end)\n\t\t\t\t\tconst monthStart = from.startOf('month')\n\t\t\t\t\tthis.commitRange(\n\t\t\t\t\t\tmonthStart.format(fmt),\n\t\t\t\t\t\tmonthStart.add(to.diff(from, 'day'), 'day').format(fmt),\n\t\t\t\t\t\tnull,\n\t\t\t\t\t)\n\t\t\t\t\tev.preventDefault()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\tif (ev.ctrlKey) {\n\t\t\t\t\tconst fmt = this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t\t\t\t\tconst from = dayjs(this.start)\n\t\t\t\t\tconst to = dayjs(this.end)\n\t\t\t\t\tconst monthEnd = to.endOf('month')\n\t\t\t\t\tthis.commitRange(\n\t\t\t\t\t\tmonthEnd.subtract(to.diff(from, 'day'), 'day').format(fmt),\n\t\t\t\t\t\tmonthEnd.format(fmt),\n\t\t\t\t\t\tnull,\n\t\t\t\t\t)\n\t\t\t\t\tev.preventDefault()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate canNavigateBackward(): boolean {\n\t\tif (!this.start || !this.min) return true\n\t\treturn dayjs(this.start).isAfter(dayjs(this.min))\n\t}\n\n\tprivate canNavigateForward(): boolean {\n\t\tif (!this.end || !this.max) return true\n\t\treturn dayjs(this.end).isBefore(dayjs(this.max))\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Render\n\t// -------------------------------------------------------------------------\n\n\trender() {\n\t\tconst showError = this.error && !!this.validationMessage\n\t\tconst errorRing = showError ? ' rounded outline outline-2 outline-error-default' : ''\n\t\tconst label = this.displayLabel()\n\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">${this.announceMessage}</div>\n\n\t\t\t\t<!-- Collapsed: icon-only on narrow viewports when collapse=true -->\n\t\t\t\t<schmancy-icon-button\n\t\t\t\t\tclass=\"${this.collapse ? 'lg:hidden' : 'hidden'}${errorRing}\"\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-invalid=${showError ? 'true' : 'false'}\n\t\t\t\t\taria-label=\"Select date range. Current: ${label}\"\n\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t>\n\t\t\t\t\tdate_range\n\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t<!-- Full trigger row: [← | range label | →] -->\n\t\t\t\t<section\n\t\t\t\t\t@click=${(ev: Event) => ev.stopPropagation()}\n\t\t\t\t\taria-invalid=${showError ? 'true' : 'false'}\n\t\t\t\t\tclass=\"${this.collapse ? 'hidden lg:flex' : 'flex'}${errorRing}\"\n\t\t\t\t>\n\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Previous ${this.preset ?? 'date range'}\"\n\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t?disabled=${this.disabled || !this.start || !this.end || !this.canNavigateBackward()}\n\t\t\t\t\t>\n\t\t\t\t\t\tarrow_left\n\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\taria-label=\"Select date range. Current: ${label}\"\n\t\t\t\t\t\taria-readonly=\"${this.step !== undefined}\"\n\t\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t\tstyle=\"${this.step !== undefined ? 'cursor:default;' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${label}\n\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Next ${this.preset ?? 'date range'}\"\n\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t?disabled=${this.disabled || !this.start || !this.end || !this.canNavigateForward()}\n\t\t\t\t\t>\n\t\t\t\t\t\tarrow_right\n\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\n\t\t\t\t${showError\n\t\t\t\t\t? html`<div role=\"alert\" class=\"text-error-default text-sm mt-1\">${this.validationMessage}</div>`\n\t\t\t\t\t: nothing}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range': SchmancyDateRange\n\t}\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|