@mhmo91/schmancy 0.9.8 → 0.9.10
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/dist/{area-BO1pgdqV.cjs → area-BafkBc1f.cjs} +1 -1
- package/dist/{area-BO1pgdqV.cjs.map → area-BafkBc1f.cjs.map} +1 -1
- package/dist/{area-B7dO3iQk.js → area-D03HRn1L.js} +1 -1
- package/dist/{area-B7dO3iQk.js.map → area-D03HRn1L.js.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-C5zoEBRG.cjs → autocomplete-BeLg4A3T.cjs} +1 -1
- package/dist/{autocomplete-C5zoEBRG.cjs.map → autocomplete-BeLg4A3T.cjs.map} +1 -1
- package/dist/{autocomplete-DDi9TXif.js → autocomplete-BotVnTfP.js} +2 -2
- package/dist/{autocomplete-DDi9TXif.js.map → autocomplete-BotVnTfP.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-C79wzYg9.cjs → boat-4hSLFsGy.cjs} +1 -1
- package/dist/{boat-C79wzYg9.cjs.map → boat-4hSLFsGy.cjs.map} +1 -1
- package/dist/{boat-i8DrhLYx.js → boat-C1wGdoaF.js} +1 -1
- package/dist/{boat-i8DrhLYx.js.map → boat-C1wGdoaF.js.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/{busy-M-hbbgXX.cjs → busy-C0qP0TiL.cjs} +1 -1
- package/dist/{busy-M-hbbgXX.cjs.map → busy-C0qP0TiL.cjs.map} +1 -1
- package/dist/{busy--fpj3der.js → busy-D74-XaFn.js} +1 -1
- package/dist/{busy--fpj3der.js.map → busy-D74-XaFn.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/{card-fR0jl5bl.js → card-C8Ns2mRo.js} +1 -1
- package/dist/{card-fR0jl5bl.js.map → card-C8Ns2mRo.js.map} +1 -1
- package/dist/{card-CU_ua_iC.cjs → card-DUq_MsxC.cjs} +1 -1
- package/dist/{card-CU_ua_iC.cjs.map → card-DUq_MsxC.cjs.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/charts.cjs +1 -1
- package/dist/charts.js +1 -1
- package/dist/{checkbox-DhGwxLUA.js → checkbox-D18r6c0V.js} +1 -1
- package/dist/{checkbox-DhGwxLUA.js.map → checkbox-D18r6c0V.js.map} +1 -1
- package/dist/{checkbox-B_1r4sSi.cjs → checkbox-qPH_5Viu.cjs} +1 -1
- package/dist/{checkbox-B_1r4sSi.cjs.map → checkbox-qPH_5Viu.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-6oL8s3aa.js → chips-0rKPqQt8.js} +3 -3
- package/dist/{chips-6oL8s3aa.js.map → chips-0rKPqQt8.js.map} +1 -1
- package/dist/{chips-CPwBTyPc.cjs → chips-BI_kt5BS.cjs} +1 -1
- package/dist/{chips-CPwBTyPc.cjs.map → chips-BI_kt5BS.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/{code-highlight-boHQWw3m.js → code-highlight-ClzG4FL4.js} +1 -1
- package/dist/{code-highlight-boHQWw3m.js.map → code-highlight-ClzG4FL4.js.map} +1 -1
- package/dist/{code-highlight-q_CYpZwM.cjs → code-highlight-DGInmDAW.cjs} +1 -1
- package/dist/{code-highlight-q_CYpZwM.cjs.map → code-highlight-DGInmDAW.cjs.map} +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{components-DctF7iZf.cjs → components-7hOtFi_q.cjs} +1 -1
- package/dist/{components-DctF7iZf.cjs.map → components-7hOtFi_q.cjs.map} +1 -1
- package/dist/{components-CP0GAP1f.js → components-RbvrLE3U.js} +1 -1
- package/dist/{components-CP0GAP1f.js.map → components-RbvrLE3U.js.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/connectivity.cjs +1 -1
- package/dist/connectivity.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-7tEEsDtV.cjs → date-range-B0kW9np7.cjs} +1 -1
- package/dist/{date-range-7tEEsDtV.cjs.map → date-range-B0kW9np7.cjs.map} +1 -1
- package/dist/{date-range-BNs88xLm.js → date-range-CfIIPIA_.js} +2 -2
- package/dist/{date-range-BNs88xLm.js.map → date-range-CfIIPIA_.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-COZ8rqRd.js → delay-CPoyWZuQ.js} +3 -3
- package/dist/{delay-COZ8rqRd.js.map → delay-CPoyWZuQ.js.map} +1 -1
- package/dist/{delay-CLJt5qW-.cjs → delay-k_HiVnhP.cjs} +2 -2
- package/dist/{delay-CLJt5qW-.cjs.map → delay-k_HiVnhP.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-DkFwn_vQ.js → details-BU5kx0Jh.js} +1 -1
- package/dist/{details-DkFwn_vQ.js.map → details-BU5kx0Jh.js.map} +1 -1
- package/dist/{details-BPV8itUf.cjs → details-CQIbCUY0.cjs} +1 -1
- package/dist/{details-BPV8itUf.cjs.map → details-CQIbCUY0.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-DIrCxVmp.js → divider-D9borfuG.js} +1 -1
- package/dist/{divider-DIrCxVmp.js.map → divider-D9borfuG.js.map} +1 -1
- package/dist/{divider-CvPXQI-l.cjs → divider-IX9sp29l.cjs} +1 -1
- package/dist/{divider-CvPXQI-l.cjs.map → divider-IX9sp29l.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +2 -2
- package/dist/{expand-Bi1crOOq.js → expand-Dw9tbuFG.js} +2 -2
- package/dist/{expand-Bi1crOOq.js.map → expand-Dw9tbuFG.js.map} +1 -1
- package/dist/{expand-BRRNL58x.cjs → expand-dIrDcH9Y.cjs} +1 -1
- package/dist/{expand-BRRNL58x.cjs.map → expand-dIrDcH9Y.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{extra-CKwEMtT6.cjs → extra-BFpPepJn.cjs} +1 -1
- package/dist/{extra-CKwEMtT6.cjs.map → extra-BFpPepJn.cjs.map} +1 -1
- package/dist/{extra-Ds5LPr-k.js → extra-D3sZLtFY.js} +1 -1
- package/dist/{extra-Ds5LPr-k.js.map → extra-D3sZLtFY.js.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{float-ByMCGgya.js → float-BKd4pilD.js} +1 -1
- package/dist/{float-ByMCGgya.js.map → float-BKd4pilD.js.map} +1 -1
- package/dist/{float-DJ3lbO3d.cjs → float-CJ3SuEcG.cjs} +1 -1
- package/dist/{float-DJ3lbO3d.cjs.map → float-CJ3SuEcG.cjs.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{icons-MgnlVoKr.cjs → icons-1AkKNd7O.cjs} +1 -1
- package/dist/{icons-MgnlVoKr.cjs.map → icons-1AkKNd7O.cjs.map} +1 -1
- package/dist/{icons-ChMKOSdK.js → icons-DqIVrIIK.js} +1 -1
- package/dist/{icons-ChMKOSdK.js.map → icons-DqIVrIIK.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-C3mPpxWx.cjs → iframe-CtDetaw3.cjs} +1 -1
- package/dist/{iframe-C3mPpxWx.cjs.map → iframe-CtDetaw3.cjs.map} +1 -1
- package/dist/{iframe-DdOaufbd.js → iframe-D4R1Rq7G.js} +1 -1
- package/dist/{iframe-DdOaufbd.js.map → iframe-D4R1Rq7G.js.map} +1 -1
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +31 -31
- package/dist/{input-chip-DKfmywnj.js → input-chip-B4uw64rQ.js} +1 -1
- package/dist/{input-chip-DKfmywnj.js.map → input-chip-B4uw64rQ.js.map} +1 -1
- package/dist/{input-chip-Cof2Ui_y.cjs → input-chip-DY9IEbQj.cjs} +1 -1
- package/dist/{input-chip-Cof2Ui_y.cjs.map → input-chip-DY9IEbQj.cjs.map} +1 -1
- package/dist/json.cjs +1 -1
- package/dist/json.js +2 -2
- package/dist/kbd.cjs +1 -1
- package/dist/kbd.js +1 -1
- package/dist/{layout-DYa9sgiB.cjs → layout-B1gXjlIO.cjs} +1 -1
- package/dist/{layout-DYa9sgiB.cjs.map → layout-B1gXjlIO.cjs.map} +1 -1
- package/dist/{layout-ChgTE8pM.js → layout-Dh0qW7XU.js} +2 -2
- package/dist/{layout-ChgTE8pM.js.map → layout-Dh0qW7XU.js.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/{lightbox-D3qrClhy.js → lightbox-BM_Bpk_l.js} +2 -2
- package/dist/{lightbox-D3qrClhy.js.map → lightbox-BM_Bpk_l.js.map} +1 -1
- package/dist/{lightbox-C4EsSbSe.cjs → lightbox-BUuGltX9.cjs} +2 -2
- package/dist/{lightbox-C4EsSbSe.cjs.map → lightbox-BUuGltX9.cjs.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-BIZgIR4b.cjs → list-C1GMiAi_.cjs} +2 -2
- package/dist/{list-BIZgIR4b.cjs.map → list-C1GMiAi_.cjs.map} +1 -1
- package/dist/{list-D3Qn7ipV.js → list-DrF_av2K.js} +2 -2
- package/dist/{list-D3Qn7ipV.js.map → list-DrF_av2K.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-8Ow4xwZs.js → litElement.mixin-D6ZHgGZv.js} +1 -1
- package/dist/{litElement.mixin-8Ow4xwZs.js.map → litElement.mixin-D6ZHgGZv.js.map} +1 -1
- package/dist/litElement.mixin-De5SG5z7.cjs +1 -0
- package/dist/{litElement.mixin-DE2UvM55.cjs.map → litElement.mixin-De5SG5z7.cjs.map} +1 -1
- package/dist/{mailbox-Bw9UiZST.js → mailbox-BjB502y9.js} +4 -4
- package/dist/{mailbox-Bw9UiZST.js.map → mailbox-BjB502y9.js.map} +1 -1
- package/dist/{mailbox-B1YmDL3b.cjs → mailbox-D0iXsqyx.cjs} +1 -1
- package/dist/{mailbox-B1YmDL3b.cjs.map → mailbox-D0iXsqyx.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-rMQpUHI6.js → map-BZTxFRVH.js} +1 -1
- package/dist/{map-rMQpUHI6.js.map → map-BZTxFRVH.js.map} +1 -1
- package/dist/{map-nnA6w4z7.cjs → map-uRYJeifl.cjs} +1 -1
- package/dist/{map-nnA6w4z7.cjs.map → map-uRYJeifl.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{menu-cAVmaxrl.js → menu-BamT46lt.js} +1 -1
- package/dist/{menu-cAVmaxrl.js.map → menu-BamT46lt.js.map} +1 -1
- package/dist/{menu-Br1KFAad.cjs → menu-CXFa_bk4.cjs} +1 -1
- package/dist/{menu-Br1KFAad.cjs.map → menu-CXFa_bk4.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.cjs.map +1 -1
- package/dist/mixins.js +18 -18
- package/dist/mixins.js.map +1 -1
- 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 +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-BLpGe-wh.js → notification-COgjQodt.js} +2 -2
- package/dist/{notification-BLpGe-wh.js.map → notification-COgjQodt.js.map} +1 -1
- package/dist/{notification-BkheXqRD.cjs → notification-Xid-o7gi.cjs} +1 -1
- package/dist/{notification-BkheXqRD.cjs.map → notification-Xid-o7gi.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-BZFwr2I3.cjs → option-CNWUeHW3.cjs} +1 -1
- package/dist/{option-BZFwr2I3.cjs.map → option-CNWUeHW3.cjs.map} +1 -1
- package/dist/{option-CK1PZE3k.js → option-DdYe_l1A.js} +1 -1
- package/dist/{option-CK1PZE3k.js.map → option-DdYe_l1A.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/page.cjs +1 -1
- package/dist/page.js +2 -2
- package/dist/{progress-157sda_G.cjs → progress-Bw-VD6wH.cjs} +1 -1
- package/dist/{progress-157sda_G.cjs.map → progress-Bw-VD6wH.cjs.map} +1 -1
- package/dist/{progress-BSK1MBi6.js → progress-OQvbUkDs.js} +1 -1
- package/dist/{progress-BSK1MBi6.js.map → progress-OQvbUkDs.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{provide-BX1YYYHU.js → provide-C4L6R1lo.js} +1 -1
- package/dist/{provide-BX1YYYHU.js.map → provide-C4L6R1lo.js.map} +1 -1
- package/dist/{provide-NUGEUOHp.cjs → provide-Dsoh3FdP.cjs} +1 -1
- package/dist/{provide-NUGEUOHp.cjs.map → provide-Dsoh3FdP.cjs.map} +1 -1
- package/dist/qr-scanner.cjs +1 -1
- package/dist/qr-scanner.js +1 -1
- package/dist/{radio-group-DIuyW_zT.cjs → radio-group-D5t8f2Ob.cjs} +1 -1
- package/dist/{radio-group-DIuyW_zT.cjs.map → radio-group-D5t8f2Ob.cjs.map} +1 -1
- package/dist/{radio-group-9VA-wY8o.js → radio-group-DI1JXW5r.js} +1 -1
- package/dist/{radio-group-9VA-wY8o.js.map → radio-group-DI1JXW5r.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +1 -1
- package/dist/range.js +1 -1
- package/dist/{scroll-av3Fhnz1.cjs → scroll-BG5qMncw.cjs} +1 -1
- package/dist/{scroll-av3Fhnz1.cjs.map → scroll-BG5qMncw.cjs.map} +1 -1
- package/dist/{scroll-BgIiwCLp.js → scroll-Dym-6yPI.js} +1 -1
- package/dist/{scroll-BgIiwCLp.js.map → scroll-Dym-6yPI.js.map} +1 -1
- package/dist/{select-zUX2du9q.cjs → select-B1nN5Ac4.cjs} +1 -1
- package/dist/{select-zUX2du9q.cjs.map → select-B1nN5Ac4.cjs.map} +1 -1
- package/dist/{select-CWsa-TPR.js → select-C3L3imJM.js} +1 -1
- package/dist/{select-CWsa-TPR.js.map → select-C3L3imJM.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-d74jGRIZ.js → sheet-BS9WlMaj.js} +3 -3
- package/dist/{sheet-d74jGRIZ.js.map → sheet-BS9WlMaj.js.map} +1 -1
- package/dist/{sheet-BPIUTIWk.cjs → sheet-BZRMpyXt.cjs} +1 -1
- package/dist/{sheet-BPIUTIWk.cjs.map → sheet-BZRMpyXt.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-BV04hex5.js → sheet.service-DQWkiYEe.js} +1 -1
- package/dist/{sheet.service-BV04hex5.js.map → sheet.service-DQWkiYEe.js.map} +1 -1
- package/dist/{sheet.service-B9o9wHcT.cjs → sheet.service-l9jTUaot.cjs} +1 -1
- package/dist/{sheet.service-B9o9wHcT.cjs.map → sheet.service-l9jTUaot.cjs.map} +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/skills/INDEX.md +1 -1
- package/dist/skills/SKILL.md +1 -1
- package/dist/skills/schmancy/INDEX.md +1 -1
- package/dist/skills/schmancy/SKILL.md +1 -1
- package/dist/skills/schmancy/surface.md +14 -0
- package/dist/skills/schmancy/theme.md +83 -5
- package/dist/skills/surface.md +14 -0
- package/dist/skills/theme.md +83 -5
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{splash-screen-DWEuDl82.cjs → splash-screen-DuFJ0gbD.cjs} +1 -1
- package/dist/{splash-screen-DWEuDl82.cjs.map → splash-screen-DuFJ0gbD.cjs.map} +1 -1
- package/dist/{splash-screen-pL-0E3Qf.js → splash-screen-M-v_jiLs.js} +1 -1
- package/dist/{splash-screen-pL-0E3Qf.js.map → splash-screen-M-v_jiLs.js.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-BOQLhS_P.cjs → src-Ba-S6DFW.cjs} +6 -6
- package/dist/{src-BOQLhS_P.cjs.map → src-Ba-S6DFW.cjs.map} +1 -1
- package/dist/{src-D23NBj1v.js → src-CbR3znbw.js} +40 -40
- package/dist/{src-D23NBj1v.js.map → src-CbR3znbw.js.map} +1 -1
- package/dist/steps.cjs +2 -2
- package/dist/steps.js +3 -3
- package/dist/{surface-C_5i3jWp.cjs → surface-PECoCLgx.cjs} +1 -1
- package/dist/{surface-C_5i3jWp.cjs.map → surface-PECoCLgx.cjs.map} +1 -1
- package/dist/{surface-DBAbNfJd.js → surface-kM2aYH4g.js} +2 -2
- package/dist/{surface-DBAbNfJd.js.map → surface-kM2aYH4g.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.js +1 -1
- package/dist/{table-CRZe8D5I.cjs → table-CENjXiu-.cjs} +1 -1
- package/dist/{table-CRZe8D5I.cjs.map → table-CENjXiu-.cjs.map} +1 -1
- package/dist/{table-pcTVURal.js → table-DrMgc8Aw.js} +1 -1
- package/dist/{table-pcTVURal.js.map → table-DrMgc8Aw.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-DajjPImp.js → tabs-BvFiM0y-.js} +2 -2
- package/dist/{tabs-DajjPImp.js.map → tabs-BvFiM0y-.js.map} +1 -1
- package/dist/{tabs-vgQHudFo.cjs → tabs-CRA9FMNl.cjs} +1 -1
- package/dist/{tabs-vgQHudFo.cjs.map → tabs-CRA9FMNl.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-Bug3G6K6.cjs +2 -0
- package/dist/{tailwind.mixin-B9BI55A6.cjs.map → tailwind.mixin-Bug3G6K6.cjs.map} +1 -1
- package/dist/tailwind.mixin-ywtUNG2c.js +219 -0
- package/dist/{tailwind.mixin-CZ3HjYZA.js.map → tailwind.mixin-ywtUNG2c.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DTw-PvJx.cjs → textarea-CfwGEIvf.cjs} +1 -1
- package/dist/{textarea-DTw-PvJx.cjs.map → textarea-CfwGEIvf.cjs.map} +1 -1
- package/dist/{textarea-CkqzzIHS.js → textarea-DD5gxIsG.js} +1 -1
- package/dist/{textarea-CkqzzIHS.js.map → textarea-DD5gxIsG.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-BnOBTUu_.cjs → theme-BiM_CUpn.cjs} +2 -2
- package/dist/{theme-BnOBTUu_.cjs.map → theme-BiM_CUpn.cjs.map} +1 -1
- package/dist/{theme-DO3BzTr2.js → theme-DNJmVFXF.js} +3 -3
- package/dist/{theme-DO3BzTr2.js.map → theme-DNJmVFXF.js.map} +1 -1
- package/dist/{theme-button-DYP56JjA.js → theme-button-19T3SFrv.js} +1 -1
- package/dist/{theme-button-DYP56JjA.js.map → theme-button-19T3SFrv.js.map} +1 -1
- package/dist/{theme-button-CnC3Ed_i.cjs → theme-button-BwJs6N4k.cjs} +1 -1
- package/dist/{theme-button-CnC3Ed_i.cjs.map → theme-button-BwJs6N4k.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.js +2 -2
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-Bh1kC8iS.cjs → typewriter-BH7nsW7R.cjs} +2 -2
- package/dist/{typewriter-Bh1kC8iS.cjs.map → typewriter-BH7nsW7R.cjs.map} +1 -1
- package/dist/{typewriter-BfMcG1Ij.js → typewriter-Z-8bbwOh.js} +3 -3
- package/dist/{typewriter-BfMcG1Ij.js.map → typewriter-Z-8bbwOh.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +1 -1
- package/dist/{window-CDauTHQp.js → window-Du_ougyw.js} +1 -1
- package/dist/{window-CDauTHQp.js.map → window-Du_ougyw.js.map} +1 -1
- package/dist/{window-CXyGM5J0.cjs → window-NDXXyj5v.cjs} +1 -1
- package/dist/{window-CXyGM5J0.cjs.map → window-NDXXyj5v.cjs.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +2 -4
- package/skills/schmancy/INDEX.md +1 -1
- package/skills/schmancy/SKILL.md +1 -1
- package/skills/schmancy/surface.md +14 -0
- package/skills/schmancy/theme.md +83 -5
- package/types/mixins/tailwind.mixin.d.ts +0 -15
- package/dist/litElement.mixin-DE2UvM55.cjs +0 -1
- package/dist/tailwind.mixin-B9BI55A6.cjs +0 -2
- package/dist/tailwind.mixin-CZ3HjYZA.js +0 -238
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-7tEEsDtV.cjs","names":[],"sources":["../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/quarterOfYear.js","../src/date-range/date-range-helpers.ts","../src/date-range/date-range-presets.ts","../src/date-range/date-utils.ts","../src/date-range/date-range-dialog.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!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'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('ddd, MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('ddd MMM D, YYYY')}${fromTime} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport { html } 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 { $dialog } from '../dialog/dialog-service'\nimport { DateRangePreset, PresetCategory } from './date-range-presets'\n\ninterface PresetGroup {\n\tname: string\n\tpresets: DateRangePreset[]\n}\n\n/**\n * Dialog content component for date range selection\n *\n * Redesigned with chip-based horizontal flow layout:\n * - Quick Select: Today, Yesterday, This Week, This Month\n * - Days: Last 7/14/30/60/90 Days\n * - Periods: Last Week, Last Month, Last Quarter, Last Year\n * - Year to Date: This Week, This Month, This Quarter, This Year, YTD\n * - Custom Range: Manual date inputs at the bottom\n *\n * @element schmancy-date-range-dialog\n */\n@customElement('schmancy-date-range-dialog')\nexport class SchmancyDateRangeDialog extends $LitElement() {\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\t@property({ type: String }) activePreset: string | null = null\n\t@property({ type: Array }) presetCategories: PresetCategory[] = []\n\n\t/**\n\t * Reorganizes presets into the new grouped layout\n\t */\n\tprivate getPresetGroups(): PresetGroup[] {\n\t\tconst allPresets = this.presetCategories.flatMap(c => c.presets)\n\n\t\t// Quick Select: Today, Yesterday, This Week, This Month\n\t\tconst quickSelectLabels = ['Today', 'Yesterday', 'This Week', 'This Month']\n\t\tconst quickSelect = quickSelectLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Days: Last 7/14/30/60/90 Days\n\t\tconst daysLabels = ['Last 7 Days', 'Last 14 Days', 'Last 30 Days', 'Last 60 Days', 'Last 90 Days']\n\t\tconst days = daysLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Periods: Last Week, Last Month, Last Quarter, Last Year\n\t\tconst periodsLabels = ['Last Week', 'Last Month', 'Last Quarter', 'Last Year']\n\t\tconst periods = periodsLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Year to Date: This Week, This Month, This Quarter, This Year, YTD\n\t\tconst ytdLabels = ['This Week', 'This Month', 'This Quarter', 'This Year', 'Year to Date']\n\t\tconst yearToDate = ytdLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\tconst groups: PresetGroup[] = []\n\n\t\tif (quickSelect.length > 0) {\n\t\t\tgroups.push({ name: 'Quick Select', presets: quickSelect })\n\t\t}\n\t\tif (days.length > 0) {\n\t\t\tgroups.push({ name: 'Days', presets: days })\n\t\t}\n\t\tif (periods.length > 0) {\n\t\t\tgroups.push({ name: 'Periods', presets: periods })\n\t\t}\n\t\tif (yearToDate.length > 0) {\n\t\t\tgroups.push({ name: 'Year to Date', presets: yearToDate })\n\t\t}\n\n\t\treturn groups\n\t}\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom = { ...this.dateFrom, value: input.value }\n\n\t\t// If the new start date is after the current end date, adjust the end date\n\t\tif (this.dateTo.value && dayjs(this.dateFrom.value).isAfter(dayjs(this.dateTo.value))) {\n\t\t\tthis.dateTo = { ...this.dateTo, value: this.dateFrom.value }\n\t\t}\n\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo = { ...this.dateTo, value: input.value }\n\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\tthis.dispatchEvent(new CustomEvent('preset-select', {\n\t\t\tdetail: { preset },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t\t$dialog.dismiss()\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.dispatchEvent(new CustomEvent('announce', {\n\t\t\t\tdetail: { message: 'Invalid date format. Please check your input.' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true\n\t\t\t}))\n\t\t\treturn\n\t\t}\n\n\t\tthis.dispatchEvent(new CustomEvent('apply-dates', {\n\t\t\tdetail: {\n\t\t\t\tdateFrom: this.dateFrom.value,\n\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\tswapIfNeeded: fromDate.isAfter(toDate)\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\n\t\t$dialog.dismiss()\n\t}\n\n\trender() {\n\t\tconst presetGroups = this.getPresetGroups()\n\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Preset Groups Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0 space-y-4\">\n\t\t\t\t\t${repeat(\n\t\t\t\t\t\tpresetGroups,\n\t\t\t\t\t\tgroup => group.name,\n\t\t\t\t\t\tgroup => html`\n\t\t\t\t\t\t\t<div class=\"space-y-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${group.name}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div class=\"flex flex-wrap gap-2\">\n\t\t\t\t\t\t\t\t\t${repeat(\n\t\t\t\t\t\t\t\t\t\tgroup.presets,\n\t\t\t\t\t\t\t\t\t\tpreset => preset.label,\n\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-filter-chip\n\t\t\t\t\t\t\t\t\t\t\t\t.value=${preset.label}\n\t\t\t\t\t\t\t\t\t\t\t\t.selected=${this.activePreset === preset.label}\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => this.handlePresetSelection(preset, e)}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t${preset.label}\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-filter-chip>\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</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Divider -->\n\t\t\t\t<schmancy-divider class=\"my-4\"></schmancy-divider>\n\n\t\t\t\t<!-- Custom Range Section -->\n\t\t\t\t<div class=\"space-y-2\">\n\t\t\t\t\t<div class=\"flex items-end gap-3 flex-wrap\">\n\t\t\t\t\t\t<div class=\"flex-1 min-w-[140px]\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.label=\"${this.dateFrom.label || 'From'}\"\n\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange}\"\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"flex-1 min-w-[140px]\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.label=\"${this.dateTo.label || 'To'}\"\n\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange}\"\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t</schmancy-button>\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 { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, PropertyValues, render } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { debounceTime, fromEvent, takeUntil, timer } from 'rxjs'\nimport { $dialog } from '../dialog/dialog-service'\nimport { sheet } from '../sheet/sheet.service'\nimport { detectDateRangeType, formatDateRange } from './date-range-helpers'\nimport { DateRangePreset, generatePresetCategories, PresetCategory } from './date-range-presets'\nimport { validateInitialDateRange } from './date-utils'\nimport './date-range-dialog'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends $LitElement() {\n\t// Core properties\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Enhanced functionality\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: Boolean }) disabled = false\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\t@property() step?: 'day' | 'week' | 'month' | 'year' | number\n\t/** When true, collapses to just an icon button on mobile screens */\n\t@property({ type: Boolean }) collapse = false\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\t@state() private isMobile = false\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t\t// Reset open state when element is moved/removed to prevent stale state\n\t\tthis.isOpen = false\n\t}\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.checkMobileView()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// Set up global event handlers using RxJS\n\t\tthis.setupEventHandlers()\n\t}\n\n\tprivate setupEventHandlers() {\n\t\t// Handle keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tthis.handleKeyboardNavigation(event)\n\t\t\t})\n\n\t\t// Handle window resize with debouncing\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(150),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkMobileView()\n\t\t\t})\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate toggleDropdown(e: MouseEvent) {\n\t\te.stopPropagation()\n\t\tif (this.disabled || this.step !== undefined) return\n\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown(e)\n\t\t}\n\t}\n\n\tprivate openDropdown(e?: MouseEvent) {\n\t\tif (this.disabled || this.step !== undefined) return\n\n\t\tthis.dispatchEvent(new CustomEvent('beforeopen', { bubbles: true, composed: true }))\n\t\tthis.isOpen = true\n\n\t\tconst dialogContent = html`\n\t\t\t<schmancy-date-range-dialog\n\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t.dateFrom=\"${this.dateFrom}\"\n\t\t\t\t.dateTo=\"${this.dateTo}\"\n\t\t\t\t.minDate=\"${this.minDate}\"\n\t\t\t\t.maxDate=\"${this.maxDate}\"\n\t\t\t\t.activePreset=\"${this.activePreset}\"\n\t\t\t\t.presetCategories=\"${this.presetCategories}\"\n\t\t\t\t@preset-select=\"${(e: CustomEvent) => {\n\t\t\t\t\tthis.activePreset = e.detail.preset.label\n\t\t\t\t\tthis.setDateRange(e.detail.preset.range.dateFrom, e.detail.preset.range.dateTo)\n\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t}}\"\n\t\t\t\t@date-change=\"${() => this.updateSelectedDateRange()}\"\n\t\t\t\t@apply-dates=\"${(e: CustomEvent) => {\n\t\t\t\t\tconst { dateFrom, dateTo, swapIfNeeded } = e.detail\n\t\t\t\t\tif (swapIfNeeded) {\n\t\t\t\t\t\tthis.setDateRange(dateTo, dateFrom)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\t\t\t}\n\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t}}\"\n\t\t\t\t@announce=\"${(e: CustomEvent) => this.announceToScreenReader(e.detail.message)}\"\n\t\t\t></schmancy-date-range-dialog>\n\t\t`\n\n\t\tif (this.isMobile) {\n\t\t\tconst container = document.createElement('div')\n\t\t\trender(dialogContent, container)\n\t\t\tsheet.push({\n\t\t\t\tcomponent: container,\n\t\t\t\tuid: 'date-range-sheet',\n\t\t\t\tclose: () => { this.isOpen = false }\n\t\t\t})\n\t\t} else {\n\t\t\t$dialog.component(dialogContent, {\n\t\t\t\ttitle: 'Select Date Range',\n\t\t\t\thideActions: true,\n\t\t\t\tposition: e\n\t\t\t}).then(() => {\n\t\t\t\tthis.isOpen = false\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate closeDropdown() {\n\t\tif (this.isMobile) {\n\t\t\tsheet.dismiss('date-range-sheet')\n\t\t} else {\n\t\t\t$dialog.dismiss()\n\t\t}\n\t\tthis.isOpen = false\n\t}\n\n\t/**\n\t * Shifts the date range based on the step property\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\t\tconst daysDiff = toDate.diff(fromDate, 'day') + 1\n\n\t\t// Determine shift amount and unit\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\t// Auto-detect based on date range\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 newFromDate = fromDate.add(amount, unit)\n\t\tconst newToDate = toDate.add(amount, unit)\n\n\t\t// Validate against min/max dates\n\t\tif (this.minDate && newFromDate.isBefore(dayjs(this.minDate))) return\n\t\tif (this.maxDate && newToDate.isAfter(dayjs(this.maxDate))) return\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\t/**\n\t * Check if view is mobile\n\t */\n\tprivate checkMobileView() {\n\t\tthis.isMobile = window.innerWidth < 768\n\t}\n\n\t/**\n\t * Check if we can navigate backward\n\t */\n\tprivate canNavigateBackward(): boolean {\n\t\tif (!this.dateFrom.value || !this.minDate) return true\n\t\t\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst minDate = dayjs(this.minDate)\n\t\t\n\t\t// If current start date is already at or before min date, can't go back\n\t\treturn fromDate.isAfter(minDate)\n\t}\n\n\t/**\n\t * Check if we can navigate forward\n\t */\n\tprivate canNavigateForward(): boolean {\n\t\tif (!this.dateTo.value || !this.maxDate) return true\n\t\t\n\t\tconst toDate = dayjs(this.dateTo.value)\n\t\tconst maxDate = dayjs(this.maxDate)\n\t\t\n\t\t// If current end date is already at or after max date, can't go forward\n\t\treturn toDate.isBefore(maxDate)\n\t}\n\n\t/**\n\t * Announce messages to screen readers\n\t */\n\tprivate announceToScreenReader(message: string) {\n\t\tthis.announceMessage = message\n\t\t// Clear the message after announcement\n\t\ttimer(100)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.announceMessage = ''\n\t\t\t})\n\t}\n\n\trender() {\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\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Collapsed: icon-only on mobile when collapse=true -->\n\t\t\t\t<schmancy-icon-button\n\t\t\t\t\tclass=\"${this.collapse ? 'lg:hidden' : 'hidden'}\"\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\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 UI: always visible when collapse=false, or lg+ when collapse=true -->\n\t\t\t\t<section @click=${(event: Event) => event.stopPropagation()} class=\"${this.collapse ? 'hidden lg:flex' : 'flex'}\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value || !this.canNavigateBackward()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\taria-readonly=\"${this.step !== undefined}\"\n\t\t\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t\t\tstyle=\"${this.step !== undefined ? 'cursor: default;' : ''}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value || !this.canNavigateForward()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-range-B0kW9np7.cjs","names":[],"sources":["../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/quarterOfYear.js","../src/date-range/date-range-helpers.ts","../src/date-range/date-range-presets.ts","../src/date-range/date-utils.ts","../src/date-range/date-range-dialog.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!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'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('ddd, MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('ddd MMM D, YYYY')}${fromTime} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport { html } 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 { $dialog } from '../dialog/dialog-service'\nimport { DateRangePreset, PresetCategory } from './date-range-presets'\n\ninterface PresetGroup {\n\tname: string\n\tpresets: DateRangePreset[]\n}\n\n/**\n * Dialog content component for date range selection\n *\n * Redesigned with chip-based horizontal flow layout:\n * - Quick Select: Today, Yesterday, This Week, This Month\n * - Days: Last 7/14/30/60/90 Days\n * - Periods: Last Week, Last Month, Last Quarter, Last Year\n * - Year to Date: This Week, This Month, This Quarter, This Year, YTD\n * - Custom Range: Manual date inputs at the bottom\n *\n * @element schmancy-date-range-dialog\n */\n@customElement('schmancy-date-range-dialog')\nexport class SchmancyDateRangeDialog extends $LitElement() {\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\t@property({ type: String }) activePreset: string | null = null\n\t@property({ type: Array }) presetCategories: PresetCategory[] = []\n\n\t/**\n\t * Reorganizes presets into the new grouped layout\n\t */\n\tprivate getPresetGroups(): PresetGroup[] {\n\t\tconst allPresets = this.presetCategories.flatMap(c => c.presets)\n\n\t\t// Quick Select: Today, Yesterday, This Week, This Month\n\t\tconst quickSelectLabels = ['Today', 'Yesterday', 'This Week', 'This Month']\n\t\tconst quickSelect = quickSelectLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Days: Last 7/14/30/60/90 Days\n\t\tconst daysLabels = ['Last 7 Days', 'Last 14 Days', 'Last 30 Days', 'Last 60 Days', 'Last 90 Days']\n\t\tconst days = daysLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Periods: Last Week, Last Month, Last Quarter, Last Year\n\t\tconst periodsLabels = ['Last Week', 'Last Month', 'Last Quarter', 'Last Year']\n\t\tconst periods = periodsLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Year to Date: This Week, This Month, This Quarter, This Year, YTD\n\t\tconst ytdLabels = ['This Week', 'This Month', 'This Quarter', 'This Year', 'Year to Date']\n\t\tconst yearToDate = ytdLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\tconst groups: PresetGroup[] = []\n\n\t\tif (quickSelect.length > 0) {\n\t\t\tgroups.push({ name: 'Quick Select', presets: quickSelect })\n\t\t}\n\t\tif (days.length > 0) {\n\t\t\tgroups.push({ name: 'Days', presets: days })\n\t\t}\n\t\tif (periods.length > 0) {\n\t\t\tgroups.push({ name: 'Periods', presets: periods })\n\t\t}\n\t\tif (yearToDate.length > 0) {\n\t\t\tgroups.push({ name: 'Year to Date', presets: yearToDate })\n\t\t}\n\n\t\treturn groups\n\t}\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom = { ...this.dateFrom, value: input.value }\n\n\t\t// If the new start date is after the current end date, adjust the end date\n\t\tif (this.dateTo.value && dayjs(this.dateFrom.value).isAfter(dayjs(this.dateTo.value))) {\n\t\t\tthis.dateTo = { ...this.dateTo, value: this.dateFrom.value }\n\t\t}\n\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo = { ...this.dateTo, value: input.value }\n\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\tthis.dispatchEvent(new CustomEvent('preset-select', {\n\t\t\tdetail: { preset },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t\t$dialog.dismiss()\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.dispatchEvent(new CustomEvent('announce', {\n\t\t\t\tdetail: { message: 'Invalid date format. Please check your input.' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true\n\t\t\t}))\n\t\t\treturn\n\t\t}\n\n\t\tthis.dispatchEvent(new CustomEvent('apply-dates', {\n\t\t\tdetail: {\n\t\t\t\tdateFrom: this.dateFrom.value,\n\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\tswapIfNeeded: fromDate.isAfter(toDate)\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\n\t\t$dialog.dismiss()\n\t}\n\n\trender() {\n\t\tconst presetGroups = this.getPresetGroups()\n\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Preset Groups Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0 space-y-4\">\n\t\t\t\t\t${repeat(\n\t\t\t\t\t\tpresetGroups,\n\t\t\t\t\t\tgroup => group.name,\n\t\t\t\t\t\tgroup => html`\n\t\t\t\t\t\t\t<div class=\"space-y-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${group.name}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div class=\"flex flex-wrap gap-2\">\n\t\t\t\t\t\t\t\t\t${repeat(\n\t\t\t\t\t\t\t\t\t\tgroup.presets,\n\t\t\t\t\t\t\t\t\t\tpreset => preset.label,\n\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-filter-chip\n\t\t\t\t\t\t\t\t\t\t\t\t.value=${preset.label}\n\t\t\t\t\t\t\t\t\t\t\t\t.selected=${this.activePreset === preset.label}\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => this.handlePresetSelection(preset, e)}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t${preset.label}\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-filter-chip>\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</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Divider -->\n\t\t\t\t<schmancy-divider class=\"my-4\"></schmancy-divider>\n\n\t\t\t\t<!-- Custom Range Section -->\n\t\t\t\t<div class=\"space-y-2\">\n\t\t\t\t\t<div class=\"flex items-end gap-3 flex-wrap\">\n\t\t\t\t\t\t<div class=\"flex-1 min-w-[140px]\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.label=\"${this.dateFrom.label || 'From'}\"\n\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange}\"\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"flex-1 min-w-[140px]\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.label=\"${this.dateTo.label || 'To'}\"\n\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange}\"\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t</schmancy-button>\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 { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, PropertyValues, render } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { debounceTime, fromEvent, takeUntil, timer } from 'rxjs'\nimport { $dialog } from '../dialog/dialog-service'\nimport { sheet } from '../sheet/sheet.service'\nimport { detectDateRangeType, formatDateRange } from './date-range-helpers'\nimport { DateRangePreset, generatePresetCategories, PresetCategory } from './date-range-presets'\nimport { validateInitialDateRange } from './date-utils'\nimport './date-range-dialog'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends $LitElement() {\n\t// Core properties\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Enhanced functionality\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: Boolean }) disabled = false\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\t@property() step?: 'day' | 'week' | 'month' | 'year' | number\n\t/** When true, collapses to just an icon button on mobile screens */\n\t@property({ type: Boolean }) collapse = false\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\t@state() private isMobile = false\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t\t// Reset open state when element is moved/removed to prevent stale state\n\t\tthis.isOpen = false\n\t}\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.checkMobileView()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// Set up global event handlers using RxJS\n\t\tthis.setupEventHandlers()\n\t}\n\n\tprivate setupEventHandlers() {\n\t\t// Handle keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tthis.handleKeyboardNavigation(event)\n\t\t\t})\n\n\t\t// Handle window resize with debouncing\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(150),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkMobileView()\n\t\t\t})\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate toggleDropdown(e: MouseEvent) {\n\t\te.stopPropagation()\n\t\tif (this.disabled || this.step !== undefined) return\n\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown(e)\n\t\t}\n\t}\n\n\tprivate openDropdown(e?: MouseEvent) {\n\t\tif (this.disabled || this.step !== undefined) return\n\n\t\tthis.dispatchEvent(new CustomEvent('beforeopen', { bubbles: true, composed: true }))\n\t\tthis.isOpen = true\n\n\t\tconst dialogContent = html`\n\t\t\t<schmancy-date-range-dialog\n\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t.dateFrom=\"${this.dateFrom}\"\n\t\t\t\t.dateTo=\"${this.dateTo}\"\n\t\t\t\t.minDate=\"${this.minDate}\"\n\t\t\t\t.maxDate=\"${this.maxDate}\"\n\t\t\t\t.activePreset=\"${this.activePreset}\"\n\t\t\t\t.presetCategories=\"${this.presetCategories}\"\n\t\t\t\t@preset-select=\"${(e: CustomEvent) => {\n\t\t\t\t\tthis.activePreset = e.detail.preset.label\n\t\t\t\t\tthis.setDateRange(e.detail.preset.range.dateFrom, e.detail.preset.range.dateTo)\n\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t}}\"\n\t\t\t\t@date-change=\"${() => this.updateSelectedDateRange()}\"\n\t\t\t\t@apply-dates=\"${(e: CustomEvent) => {\n\t\t\t\t\tconst { dateFrom, dateTo, swapIfNeeded } = e.detail\n\t\t\t\t\tif (swapIfNeeded) {\n\t\t\t\t\t\tthis.setDateRange(dateTo, dateFrom)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\t\t\t}\n\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t}}\"\n\t\t\t\t@announce=\"${(e: CustomEvent) => this.announceToScreenReader(e.detail.message)}\"\n\t\t\t></schmancy-date-range-dialog>\n\t\t`\n\n\t\tif (this.isMobile) {\n\t\t\tconst container = document.createElement('div')\n\t\t\trender(dialogContent, container)\n\t\t\tsheet.push({\n\t\t\t\tcomponent: container,\n\t\t\t\tuid: 'date-range-sheet',\n\t\t\t\tclose: () => { this.isOpen = false }\n\t\t\t})\n\t\t} else {\n\t\t\t$dialog.component(dialogContent, {\n\t\t\t\ttitle: 'Select Date Range',\n\t\t\t\thideActions: true,\n\t\t\t\tposition: e\n\t\t\t}).then(() => {\n\t\t\t\tthis.isOpen = false\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate closeDropdown() {\n\t\tif (this.isMobile) {\n\t\t\tsheet.dismiss('date-range-sheet')\n\t\t} else {\n\t\t\t$dialog.dismiss()\n\t\t}\n\t\tthis.isOpen = false\n\t}\n\n\t/**\n\t * Shifts the date range based on the step property\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\t\tconst daysDiff = toDate.diff(fromDate, 'day') + 1\n\n\t\t// Determine shift amount and unit\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\t// Auto-detect based on date range\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 newFromDate = fromDate.add(amount, unit)\n\t\tconst newToDate = toDate.add(amount, unit)\n\n\t\t// Validate against min/max dates\n\t\tif (this.minDate && newFromDate.isBefore(dayjs(this.minDate))) return\n\t\tif (this.maxDate && newToDate.isAfter(dayjs(this.maxDate))) return\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\t/**\n\t * Check if view is mobile\n\t */\n\tprivate checkMobileView() {\n\t\tthis.isMobile = window.innerWidth < 768\n\t}\n\n\t/**\n\t * Check if we can navigate backward\n\t */\n\tprivate canNavigateBackward(): boolean {\n\t\tif (!this.dateFrom.value || !this.minDate) return true\n\t\t\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst minDate = dayjs(this.minDate)\n\t\t\n\t\t// If current start date is already at or before min date, can't go back\n\t\treturn fromDate.isAfter(minDate)\n\t}\n\n\t/**\n\t * Check if we can navigate forward\n\t */\n\tprivate canNavigateForward(): boolean {\n\t\tif (!this.dateTo.value || !this.maxDate) return true\n\t\t\n\t\tconst toDate = dayjs(this.dateTo.value)\n\t\tconst maxDate = dayjs(this.maxDate)\n\t\t\n\t\t// If current end date is already at or after max date, can't go forward\n\t\treturn toDate.isBefore(maxDate)\n\t}\n\n\t/**\n\t * Announce messages to screen readers\n\t */\n\tprivate announceToScreenReader(message: string) {\n\t\tthis.announceMessage = message\n\t\t// Clear the message after announcement\n\t\ttimer(100)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.announceMessage = ''\n\t\t\t})\n\t}\n\n\trender() {\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\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Collapsed: icon-only on mobile when collapse=true -->\n\t\t\t\t<schmancy-icon-button\n\t\t\t\t\tclass=\"${this.collapse ? 'lg:hidden' : 'hidden'}\"\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\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 UI: always visible when collapse=false, or lg+ when collapse=true -->\n\t\t\t\t<section @click=${(event: Event) => event.stopPropagation()} class=\"${this.collapse ? 'hidden lg:flex' : 'flex'}\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value || !this.canNavigateBackward()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\taria-readonly=\"${this.step !== undefined}\"\n\t\t\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t\t\tstyle=\"${this.step !== undefined ? 'cursor: default;' : ''}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value || !this.canNavigateForward()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as e, t } from "./chunk-C_1VqBVD.js";
|
|
2
2
|
import { t as n } from "./decorate-D_utPUsC.js";
|
|
3
|
-
import { t as r } from "./litElement.mixin-
|
|
3
|
+
import { t as r } from "./litElement.mixin-D6ZHgGZv.js";
|
|
4
4
|
import "./mixins.js";
|
|
5
5
|
import { t as i } from "./dialog-service-ClFrOWf4.js";
|
|
6
|
-
import { n as a } from "./sheet.service-
|
|
6
|
+
import { n as a } from "./sheet.service-DQWkiYEe.js";
|
|
7
7
|
import { debounceTime as o, fromEvent as s, takeUntil as c, timer as l } from "rxjs";
|
|
8
8
|
import { customElement as u, property as d, state as f } from "lit/decorators.js";
|
|
9
9
|
import { html as p, render as m } from "lit";
|