@mhmo91/schmancy 0.9.5 → 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +493 -718
- package/dist/{animation-CO_Csq84.cjs.map → animation-Bcwh107v.cjs.map} +1 -1
- package/dist/{animation-BK-8BwY8.js.map → animation-CXKSuUoE.js.map} +1 -1
- package/dist/{area-CRoGqD_u.js → area-BARjKpE9.js} +2 -2
- package/dist/{area-CRoGqD_u.js.map → area-BARjKpE9.js.map} +1 -1
- package/dist/{area-JPykB7A9.cjs → area-D9b9dHQr.cjs} +3 -3
- package/dist/{area-JPykB7A9.cjs.map → area-D9b9dHQr.cjs.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{audio-kz8UgPTO.js → audio-C7TzWI8M.js} +1 -1
- package/dist/audio-C7TzWI8M.js.map +1 -0
- package/dist/{audio-DtYYgzYD.cjs → audio-DUVz7Ars.cjs} +1 -1
- package/dist/audio-DUVz7Ars.cjs.map +1 -0
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/autocomplete-AI2CCJmK.cjs +115 -0
- package/dist/autocomplete-AI2CCJmK.cjs.map +1 -0
- package/dist/{autocomplete-BllPQwr8.js → autocomplete-DOimwVMP.js} +48 -22
- package/dist/autocomplete-DOimwVMP.js.map +1 -0
- 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-DYEAZ8Qj.cjs → boat-Bk4u-LzT.cjs} +2 -2
- package/dist/{boat-DYEAZ8Qj.cjs.map → boat-Bk4u-LzT.cjs.map} +1 -1
- package/dist/{boat-BDTQ-du9.js → boat-DrghVeWK.js} +5 -5
- package/dist/{boat-BDTQ-du9.js.map → boat-DrghVeWK.js.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +34 -0
- package/dist/breadcrumb.cjs.map +1 -0
- package/dist/breadcrumb.js +73 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/{busy-ChDAeaKF.js → busy-BmFfwyz_.js} +7 -6
- package/dist/{busy-ChDAeaKF.js.map → busy-BmFfwyz_.js.map} +1 -1
- package/dist/{busy-Dj7Xn0Z0.cjs → busy-c_q_F8O0.cjs} +8 -8
- package/dist/{busy-Dj7Xn0Z0.cjs.map → busy-c_q_F8O0.cjs.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +4 -4
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +25 -6
- package/dist/button.js.map +1 -1
- package/dist/{card-DZFPRPqs.js → card-BADJHUMA.js} +16 -15
- package/dist/{card-DZFPRPqs.js.map → card-BADJHUMA.js.map} +1 -1
- package/dist/{card-BvPWVEJX.cjs → card-C_E944_Z.cjs} +10 -10
- package/dist/{card-BvPWVEJX.cjs.map → card-C_E944_Z.cjs.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/charts.cjs +3 -3
- package/dist/charts.cjs.map +1 -1
- package/dist/charts.js +2 -2
- package/dist/{checkbox-GSSjqo6w.js → checkbox-D7rvCrGk.js} +28 -9
- package/dist/{checkbox-GSSjqo6w.js.map → checkbox-D7rvCrGk.js.map} +1 -1
- package/dist/{checkbox-BC_37rsG.cjs → checkbox-ZqDoCagB.cjs} +10 -10
- package/dist/{checkbox-BC_37rsG.cjs.map → checkbox-ZqDoCagB.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-B19XS8Xc.cjs → chips-Cux635Qs.cjs} +18 -18
- package/dist/chips-Cux635Qs.cjs.map +1 -0
- package/dist/{chips-B9oAEfE_.js → chips-vdzIsesI.js} +37 -27
- package/dist/chips-vdzIsesI.js.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/{code-highlight-fSLrlgOb.cjs → code-highlight-C9lKek2p.cjs} +11 -11
- package/dist/{code-highlight-fSLrlgOb.cjs.map → code-highlight-C9lKek2p.cjs.map} +1 -1
- package/dist/{code-highlight-DCk5lJY-.js → code-highlight-D6yruol6.js} +6 -5
- package/dist/{code-highlight-DCk5lJY-.js.map → code-highlight-D6yruol6.js.map} +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/components-ByRyEzz5.cjs +73 -0
- package/dist/{components-CyD6a7gQ.cjs.map → components-ByRyEzz5.cjs.map} +1 -1
- package/dist/{components-COsM6sJZ.js → components-DSvPKR9Q.js} +2 -2
- package/dist/{components-COsM6sJZ.js.map → components-DSvPKR9Q.js.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/connectivity.cjs +7 -7
- package/dist/connectivity.cjs.map +1 -1
- package/dist/connectivity.js +5 -4
- package/dist/connectivity.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{cursor-glow-DtSy_PJd.cjs → cursor-glow-82y5h3E4.cjs} +1 -1
- package/dist/{cursor-glow-DtSy_PJd.cjs.map → cursor-glow-82y5h3E4.cjs.map} +1 -1
- package/dist/{cursor-glow-Ah7VXSj7.js → cursor-glow-C2YRrB8Z.js} +1 -1
- package/dist/{cursor-glow-Ah7VXSj7.js.map → cursor-glow-C2YRrB8Z.js.map} +1 -1
- package/dist/{date-range-ZAaQB22I.cjs → date-range-DJsavigf.cjs} +3 -3
- package/dist/date-range-DJsavigf.cjs.map +1 -0
- package/dist/{date-range-inline-Bl8qbiQF.js → date-range-inline-B87TDYI6.js} +1 -1
- package/dist/{date-range-inline-Bl8qbiQF.js.map → date-range-inline-B87TDYI6.js.map} +1 -1
- package/dist/date-range-inline-De-M0VmL.cjs +43 -0
- package/dist/{date-range-inline-m7nLjOMI.cjs.map → date-range-inline-De-M0VmL.cjs.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/{date-range-Sfyco9-n.js → date-range-tEX2Jx2j.js} +4 -4
- package/dist/date-range-tEX2Jx2j.js.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/delay-BvVdfhAR.cjs +9 -0
- package/dist/{delay-7boauN6N.cjs.map → delay-BvVdfhAR.cjs.map} +1 -1
- package/dist/{delay-CgX6m0HN.js → delay-CZw37zps.js} +9 -8
- package/dist/{delay-CgX6m0HN.js.map → delay-CZw37zps.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-BHnk8l4q.cjs → details-Bhz8_whd.cjs} +9 -9
- package/dist/{details-BHnk8l4q.cjs.map → details-Bhz8_whd.cjs.map} +1 -1
- package/dist/{details-BPkUg8Cq.js → details-D7VTnLOh.js} +16 -15
- package/dist/{details-BPkUg8Cq.js.map → details-D7VTnLOh.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-service-NZEvyEK-.js → dialog-service-ClFrOWf4.js} +2 -2
- package/dist/{dialog-service-NZEvyEK-.js.map → dialog-service-ClFrOWf4.js.map} +1 -1
- package/dist/{dialog-service-VnW4gkmE.cjs → dialog-service-DcuAavp2.cjs} +1 -1
- package/dist/{dialog-service-VnW4gkmE.cjs.map → dialog-service-DcuAavp2.cjs.map} +1 -1
- package/dist/dialog.cjs +18 -11
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +66 -43
- package/dist/dialog.js.map +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +5 -5
- package/dist/{divider-_khrhrZo.cjs → divider-S0bHwCCS.cjs} +2 -2
- package/dist/{divider-_khrhrZo.cjs.map → divider-S0bHwCCS.cjs.map} +1 -1
- package/dist/{divider-CW9a7MMj.js → divider-zS232JDr.js} +2 -2
- package/dist/{divider-CW9a7MMj.js.map → divider-zS232JDr.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +4 -4
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js +8 -7
- package/dist/dropdown.js.map +1 -1
- package/dist/{expand-iQ7EOMP7.js → expand-BXt9SqAF.js} +13 -12
- package/dist/{expand-iQ7EOMP7.js.map → expand-BXt9SqAF.js.map} +1 -1
- package/dist/{expand-Cp7-PH8b.cjs → expand-Dr7TFXpl.cjs} +18 -18
- package/dist/{expand-Cp7-PH8b.cjs.map → expand-Dr7TFXpl.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{extra-IKAiJJhv.cjs → extra-BmZTXAp0.cjs} +3 -3
- package/dist/{extra-IKAiJJhv.cjs.map → extra-BmZTXAp0.cjs.map} +1 -1
- package/dist/{extra-wEpvEFbK.js → extra-COYhsOyZ.js} +2 -2
- package/dist/{extra-wEpvEFbK.js.map → extra-COYhsOyZ.js.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/float-CSRW-Rrd.cjs +1 -0
- package/dist/{float-D5rNC82i.cjs.map → float-CSRW-Rrd.cjs.map} +1 -1
- package/dist/{float-BQ_urmMs.js → float-DCXafWh6.js} +2 -2
- package/dist/{float-BQ_urmMs.js.map → float-DCXafWh6.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{flow-CUj0fDT_.js.map → flow-CqgDEIqK.js.map} +1 -1
- package/dist/{flow-Bbwn6dRN.cjs.map → flow-DSu4PLt1.cjs.map} +1 -1
- package/dist/form-CAY9GSCd.cjs +1 -0
- package/dist/form-CAY9GSCd.cjs.map +1 -0
- package/dist/form-D2cJ58TB.js +68 -0
- package/dist/form-D2cJ58TB.js.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +2 -1
- package/dist/{hashContent-DaeGmY-p.cjs.map → hashContent-kKvXKFa9.cjs.map} +1 -1
- package/dist/{hashContent-DYM21p6t.js.map → hashContent-nD2uWwi2.js.map} +1 -1
- package/dist/{icons-BDqiGXrO.js → icons-BbaI9Zf-.js} +9 -8
- package/dist/icons-BbaI9Zf-.js.map +1 -0
- package/dist/{icons-B57_93VV.cjs → icons-DPUeLS_Y.cjs} +3 -3
- package/dist/icons-DPUeLS_Y.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-WnWPIrBG.js → iframe-CEDOvkql.js} +5 -4
- package/dist/{iframe-WnWPIrBG.js.map → iframe-CEDOvkql.js.map} +1 -1
- package/dist/{iframe-DNHL3GIk.cjs → iframe-Ct50FYXq.cjs} +3 -3
- package/dist/{iframe-DNHL3GIk.cjs.map → iframe-Ct50FYXq.cjs.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 +65 -59
- package/dist/{input-BiSrTcrR.cjs → input-DMjpf6V8.cjs} +2 -2
- package/dist/{input-BiSrTcrR.cjs.map → input-DMjpf6V8.cjs.map} +1 -1
- package/dist/{input-VaXHFrRn.js → input-Ri72dn5t.js} +1 -1
- package/dist/{input-VaXHFrRn.js.map → input-Ri72dn5t.js.map} +1 -1
- package/dist/{input-chip-Dy-AiP55.cjs → input-chip-BhjGVpc3.cjs} +9 -9
- package/dist/input-chip-BhjGVpc3.cjs.map +1 -0
- package/dist/{input-chip-QejNcRnS.js → input-chip-CI4__N8w.js} +13 -9
- package/dist/input-chip-CI4__N8w.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/{intersection-CZpaIHeT.cjs.map → intersection-D1v1UCVv.cjs.map} +1 -1
- package/dist/{intersection-BPLpqYEd.js.map → intersection-LfEsy29T.js.map} +1 -1
- package/dist/json.cjs +3 -3
- package/dist/json.cjs.map +1 -1
- package/dist/json.js +5 -4
- package/dist/json.js.map +1 -1
- package/dist/kbd.cjs +28 -0
- package/dist/kbd.cjs.map +1 -0
- package/dist/kbd.js +45 -0
- package/dist/kbd.js.map +1 -0
- package/dist/{layout-yxSlLybo.js → layout-BE2ld1IY.js} +1 -1
- package/dist/{layout-yxSlLybo.js.map → layout-BE2ld1IY.js.map} +1 -1
- package/dist/layout-D7xOqMkJ.cjs +17 -0
- package/dist/{layout-DNYG3phx.cjs.map → layout-D7xOqMkJ.cjs.map} +1 -1
- package/dist/{layout-4C-6_cre.cjs → layout-PZCF3kwl.cjs} +1 -1
- package/dist/{layout-4C-6_cre.cjs.map → layout-PZCF3kwl.cjs.map} +1 -1
- package/dist/{layout-CnsXeCAy.js → layout-uAQpJN31.js} +20 -19
- package/dist/{layout-CnsXeCAy.js.map → layout-uAQpJN31.js.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/{lightbox-BrI1Z31s.js → lightbox-C0OEHns9.js} +10 -9
- package/dist/{lightbox-BrI1Z31s.js.map → lightbox-C0OEHns9.js.map} +1 -1
- package/dist/{lightbox-CmACf0t5.cjs → lightbox-cXRnvHMN.cjs} +20 -20
- package/dist/{lightbox-CmACf0t5.cjs.map → lightbox-cXRnvHMN.cjs.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-swIL9VDv.cjs → list-CmJ5h35b.cjs} +5 -5
- package/dist/{list-swIL9VDv.cjs.map → list-CmJ5h35b.cjs.map} +1 -1
- package/dist/{list-Cm-jjXxM.js → list-d1mHar5p.js} +14 -13
- package/dist/{list-Cm-jjXxM.js.map → list-d1mHar5p.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-3llHwB-8.cjs → litElement.mixin-Bj2q1yPw.cjs} +1 -1
- package/dist/{litElement.mixin-3llHwB-8.cjs.map → litElement.mixin-Bj2q1yPw.cjs.map} +1 -1
- package/dist/{litElement.mixin-6jJYHCrZ.js → litElement.mixin-CncaUoxz.js} +1 -1
- package/dist/{litElement.mixin-6jJYHCrZ.js.map → litElement.mixin-CncaUoxz.js.map} +1 -1
- package/dist/{magnetic-BZGFxAWG.js → magnetic-Dj52WplI.js} +2 -2
- package/dist/{magnetic-BZGFxAWG.js.map → magnetic-Dj52WplI.js.map} +1 -1
- package/dist/{magnetic-Dux4QwO4.cjs → magnetic-aBBnj_vk.cjs} +1 -1
- package/dist/{magnetic-Dux4QwO4.cjs.map → magnetic-aBBnj_vk.cjs.map} +1 -1
- package/dist/{mailbox-D6LkQcN5.cjs → mailbox-BmChskZc.cjs} +59 -59
- package/dist/{mailbox-D6LkQcN5.cjs.map → mailbox-BmChskZc.cjs.map} +1 -1
- package/dist/{mailbox-BuvsVaAQ.js → mailbox-C4-E93be.js} +13 -12
- package/dist/{mailbox-BuvsVaAQ.js.map → mailbox-C4-E93be.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-CQiKAxC3.js → map-DHyYLhvy.js} +6 -5
- package/dist/{map-CQiKAxC3.js.map → map-DHyYLhvy.js.map} +1 -1
- package/dist/{map-D5NN4VET.cjs → map-DYEvlNl0.cjs} +7 -7
- package/dist/{map-D5NN4VET.cjs.map → map-DYEvlNl0.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{menu-CkgMO9K5.cjs → menu-BlPTI6H9.cjs} +3 -3
- package/dist/{menu-CkgMO9K5.cjs.map → menu-BlPTI6H9.cjs.map} +1 -1
- package/dist/{menu-C1x04YZw.js → menu-DFDBADp4.js} +3 -3
- package/dist/{menu-C1x04YZw.js.map → menu-DFDBADp4.js.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 +43 -15
- 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 +3 -3
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +2 -2
- package/dist/{notification-BnBgxjF-.js → notification-DGpv8g2H.js} +4 -4
- package/dist/{notification-BnBgxjF-.js.map → notification-DGpv8g2H.js.map} +1 -1
- package/dist/notification-DKVWYhqs.cjs +23 -0
- package/dist/{notification-CZFEhWxc.cjs.map → notification-DKVWYhqs.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-DBO8xZwd.js → option-BD2eh458.js} +6 -5
- package/dist/{option-DBO8xZwd.js.map → option-BD2eh458.js.map} +1 -1
- package/dist/{option-BrxCVwSx.cjs → option-LtSDy2xf.cjs} +5 -5
- package/dist/{option-BrxCVwSx.cjs.map → option-LtSDy2xf.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-stack-DQey9Qph.cjs.map → overlay-stack-CEYGD9T1.cjs.map} +1 -1
- package/dist/{overlay-stack-DT1SdaGW.js.map → overlay-stack-Ca4EK2Mu.js.map} +1 -1
- package/dist/page.cjs +2 -2
- package/dist/page.cjs.map +1 -1
- package/dist/page.js +5 -5
- package/dist/{progress-Db2e4_Zd.cjs → progress-B5ChDPbB.cjs} +2 -2
- package/dist/{progress-Db2e4_Zd.cjs.map → progress-B5ChDPbB.cjs.map} +1 -1
- package/dist/{progress-DeiHxXo7.js → progress-CE1Pk2hi.js} +2 -2
- package/dist/{progress-DeiHxXo7.js.map → progress-CE1Pk2hi.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{provide-DHnhQtCH.cjs → provide-BZ9lq_Be.cjs} +1 -1
- package/dist/{provide-DHnhQtCH.cjs.map → provide-BZ9lq_Be.cjs.map} +1 -1
- package/dist/{provide-C1aQhxYo.js → provide-jn1Fj1vv.js} +1 -1
- package/dist/{provide-C1aQhxYo.js.map → provide-jn1Fj1vv.js.map} +1 -1
- package/dist/qr-scanner.cjs +2 -2
- package/dist/qr-scanner.cjs.map +1 -1
- package/dist/qr-scanner.js +2 -2
- package/dist/radio-group-Cd9pZ2MR.cjs +40 -0
- package/dist/{radio-group-Cspwd-Vw.cjs.map → radio-group-Cd9pZ2MR.cjs.map} +1 -1
- package/dist/{radio-group-zSO0AkJf.js → radio-group-CyRHgIF3.js} +7 -6
- package/dist/{radio-group-zSO0AkJf.js.map → radio-group-CyRHgIF3.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +4 -4
- package/dist/range.cjs.map +1 -1
- package/dist/range.js +4 -3
- package/dist/range.js.map +1 -1
- package/dist/{reduced-motion-D-L12p7G.js.map → reduced-motion-B83yZbcO.js.map} +1 -1
- package/dist/{reduced-motion-Ds05GPyz.cjs.map → reduced-motion-DR32yKEO.cjs.map} +1 -1
- package/dist/{rxjs-utils-BSjmI9-Q.js.map → rxjs-utils-Bldch1RO.js.map} +1 -1
- package/dist/{rxjs-utils-DCsfzeap.cjs.map → rxjs-utils-hAgKC7vk.cjs.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{scroll-QMCmbbDv.cjs → scroll-C_iNOi7E.cjs} +2 -2
- package/dist/{scroll-QMCmbbDv.cjs.map → scroll-C_iNOi7E.cjs.map} +1 -1
- package/dist/{scroll-cBDzye64.js → scroll-DoliwpRu.js} +7 -6
- package/dist/{scroll-cBDzye64.js.map → scroll-DoliwpRu.js.map} +1 -1
- package/dist/{search-C4dFHYbX.js.map → search-BlGJ6uJv.js.map} +1 -1
- package/dist/{search-Ds8tt7Et.cjs.map → search-C8eAOzBm.cjs.map} +1 -1
- package/dist/{select-Ct37l3lg.cjs → select-CWWuZ2iJ.cjs} +2 -2
- package/dist/{select-Ct37l3lg.cjs.map → select-CWWuZ2iJ.cjs.map} +1 -1
- package/dist/{select-c6HbWvKP.js → select-_vHPXi30.js} +3 -3
- package/dist/{select-c6HbWvKP.js.map → select-_vHPXi30.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-BMXcUiIm.js → sheet-i1KtxGIj.js} +5 -5
- package/dist/{sheet-BMXcUiIm.js.map → sheet-i1KtxGIj.js.map} +1 -1
- package/dist/{sheet-CQec-bCV.cjs → sheet-r0oEYIdi.cjs} +2 -2
- package/dist/{sheet-CQec-bCV.cjs.map → sheet-r0oEYIdi.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-Dumvr1HT.cjs → sheet.service-Cr13Oo6G.cjs} +1 -1
- package/dist/{sheet.service-Dumvr1HT.cjs.map → sheet.service-Cr13Oo6G.cjs.map} +1 -1
- package/dist/{sheet.service-BcPV3Du4.js → sheet.service-DUO5_kmI.js} +3 -3
- package/dist/{sheet.service-BcPV3Du4.js.map → sheet.service-DUO5_kmI.js.map} +1 -1
- package/dist/skeleton.cjs +33 -0
- package/dist/skeleton.cjs.map +1 -0
- package/dist/skeleton.js +58 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/skills/INDEX.md +7 -6
- package/dist/skills/breadcrumb.md +53 -0
- package/dist/skills/kbd.md +40 -0
- package/dist/skills/schmancy/INDEX.md +7 -6
- package/dist/skills/schmancy/breadcrumb.md +53 -0
- package/dist/skills/schmancy/kbd.md +40 -0
- package/dist/skills/schmancy/skeleton.md +40 -0
- package/dist/skills/schmancy/splash-screen.md +60 -0
- package/dist/skills/schmancy/switch.md +58 -0
- package/dist/skills/schmancy/tooltip.md +1 -1
- package/dist/skills/schmancy/visually-hidden.md +41 -0
- package/dist/skills/skeleton.md +40 -0
- package/dist/skills/splash-screen.md +60 -0
- package/dist/skills/switch.md +58 -0
- package/dist/skills/tooltip.md +1 -1
- package/dist/skills/visually-hidden.md +41 -0
- package/dist/slider.cjs +3 -3
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +2 -2
- package/dist/{sound.service-Bu3EQLv2.cjs → sound.service-BjSoGjmT.cjs} +1 -1
- package/dist/{sound.service-Bu3EQLv2.cjs.map → sound.service-BjSoGjmT.cjs.map} +1 -1
- package/dist/{sound.service-m3BrSfuH.js → sound.service-cdkw3Wkv.js} +1 -1
- package/dist/{sound.service-m3BrSfuH.js.map → sound.service-cdkw3Wkv.js.map} +1 -1
- package/dist/splash-screen-CquyPP1C.cjs +41 -0
- package/dist/splash-screen-CquyPP1C.cjs.map +1 -0
- package/dist/splash-screen-CvucPkpD.js +83 -0
- package/dist/splash-screen-CvucPkpD.js.map +1 -0
- package/dist/splash-screen.cjs +1 -0
- package/dist/splash-screen.js +1 -0
- package/dist/src-Bemk2C2P.cjs +269 -0
- package/dist/{src-BtQVyqMy.cjs.map → src-Bemk2C2P.cjs.map} +1 -1
- package/dist/{src-BLngW2bl.js → src-f5a3W9Mj.js} +98 -91
- package/dist/{src-BLngW2bl.js.map → src-f5a3W9Mj.js.map} +1 -1
- package/dist/steps.cjs +10 -10
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +10 -9
- package/dist/steps.js.map +1 -1
- package/dist/{store-DYqDLAvT.js.map → store-Bmj6rvZY.js.map} +1 -1
- package/dist/{store-CorvD3bT.cjs.map → store-CO4nJyGj.cjs.map} +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +1 -1
- package/dist/surface-CDufon40.cjs +7 -0
- package/dist/{surface-BjKZoJxK.cjs.map → surface-CDufon40.cjs.map} +1 -1
- package/dist/surface-CkEYJCae.js +22 -0
- package/dist/{surface-pK8hME5c.js.map → surface-CkEYJCae.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{surface.mixin-C5sDI1-_.cjs → surface.mixin-CSKqQH-0.cjs} +2 -2
- package/dist/{surface.mixin-C5sDI1-_.cjs.map → surface.mixin-CSKqQH-0.cjs.map} +1 -1
- package/dist/{surface.mixin-CBNRpJum.js → surface.mixin-DqMwoddO.js} +1 -1
- package/dist/{surface.mixin-CBNRpJum.js.map → surface.mixin-DqMwoddO.js.map} +1 -1
- package/dist/switch.cjs +69 -0
- package/dist/switch.cjs.map +1 -0
- package/dist/switch.js +132 -0
- package/dist/switch.js.map +1 -0
- package/dist/{table-CiqgZzSd.cjs → table-DWc1mkpj.cjs} +3 -3
- package/dist/{table-CiqgZzSd.cjs.map → table-DWc1mkpj.cjs.map} +1 -1
- package/dist/{table-BXIHX9h4.js → table-P6VGG7NK.js} +4 -4
- package/dist/{table-BXIHX9h4.js.map → table-P6VGG7NK.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-nbV5eblZ.js → tabs-CjGjGrqY.js} +13 -12
- package/dist/{tabs-nbV5eblZ.js.map → tabs-CjGjGrqY.js.map} +1 -1
- package/dist/{tabs-CKa-W4qA.cjs → tabs-DGJEKuhC.cjs} +4 -4
- package/dist/{tabs-CKa-W4qA.cjs.map → tabs-DGJEKuhC.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{tailwind.mixin-BF1Huas7.cjs → tailwind.mixin-Cpa-VnnX.cjs} +2 -2
- package/dist/tailwind.mixin-Cpa-VnnX.cjs.map +1 -0
- package/dist/{tailwind.mixin-BCJOOX1_.js → tailwind.mixin-DufHBjmb.js} +57 -63
- package/dist/tailwind.mixin-DufHBjmb.js.map +1 -0
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-D7q8exMg.js → textarea-DZT_Ofp5.js} +42 -28
- package/dist/textarea-DZT_Ofp5.js.map +1 -0
- package/dist/textarea-jmTOXrzl.cjs +39 -0
- package/dist/textarea-jmTOXrzl.cjs.map +1 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/theme-CCKqaksQ.cjs +181 -0
- package/dist/{theme-Da4SPq9X.cjs.map → theme-CCKqaksQ.cjs.map} +1 -1
- package/dist/{theme-_VPV6Bxh.js → theme-CEc32pAv.js} +13 -12
- package/dist/{theme-_VPV6Bxh.js.map → theme-CEc32pAv.js.map} +1 -1
- package/dist/theme-button-BsJcv-Zv.cjs +8 -0
- package/dist/{theme-button-Ci8VQ7KW.cjs.map → theme-button-BsJcv-Zv.cjs.map} +1 -1
- package/dist/{theme-button--sX8A-m1.js → theme-button-dOiAvdKU.js} +4 -3
- package/dist/{theme-button--sX8A-m1.js.map → theme-button-dOiAvdKU.js.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.events-Cv7N4Toe.js.map → theme.events-Bw3mYjUA.js.map} +1 -1
- package/dist/{theme.events-DM4H5F2d.cjs.map → theme.events-EznKK2Y0.cjs.map} +1 -1
- package/dist/{theme.interface-Da23QAYb.cjs.map → theme.interface-CM26m9te.cjs.map} +1 -1
- package/dist/{theme.interface-CXloMUCw.js.map → theme.interface-FAUIgbIq.js.map} +1 -1
- package/dist/theme.js +5 -5
- package/dist/{theme.service-C_tjlqgy.cjs → theme.service-ETiKUwVy.cjs} +1 -1
- package/dist/{theme.service-C_tjlqgy.cjs.map → theme.service-ETiKUwVy.cjs.map} +1 -1
- package/dist/{theme.service-D9lEas89.js → theme.service-_qP5WvB9.js} +2 -2
- package/dist/{theme.service-D9lEas89.js.map → theme.service-_qP5WvB9.js.map} +1 -1
- package/dist/tooltip.cjs +1 -6
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js +51 -135
- package/dist/tooltip.js.map +1 -1
- package/dist/tree.cjs +14 -5
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +28 -6
- package/dist/tree.js.map +1 -1
- package/dist/tslib.es6-Bd-92OW3.cjs +1 -0
- package/dist/{tslib.es6-D7BIeDVB.cjs.map → tslib.es6-Bd-92OW3.cjs.map} +1 -1
- package/dist/tslib.es6-CI1onEZb.js +7 -0
- package/dist/{tslib.es6-ErZEp3OO.js.map → tslib.es6-CI1onEZb.js.map} +1 -1
- package/dist/typewriter-ByIL2Mh-.cjs +123 -0
- package/dist/{typewriter-B2TnHPjw.cjs.map → typewriter-ByIL2Mh-.cjs.map} +1 -1
- package/dist/{typewriter-BrZNa8T-.js → typewriter-vOQ3bDLb.js} +8 -7
- package/dist/{typewriter-BrZNa8T-.js.map → typewriter-vOQ3bDLb.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/typography.cjs +4 -4
- package/dist/typography.cjs.map +1 -1
- package/dist/typography.js +10 -9
- package/dist/typography.js.map +1 -1
- package/dist/{utils-CoU7M2YS.js → utils-Cq0m3LYo.js} +3 -3
- package/dist/{utils-CoU7M2YS.js.map → utils-Cq0m3LYo.js.map} +1 -1
- package/dist/{utils-BcaKtQuA.cjs → utils-D2kE-6zc.cjs} +1 -1
- package/dist/{utils-BcaKtQuA.cjs.map → utils-D2kE-6zc.cjs.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +5 -5
- package/dist/visually-hidden.cjs +13 -0
- package/dist/visually-hidden.cjs.map +1 -0
- package/dist/visually-hidden.js +24 -0
- package/dist/visually-hidden.js.map +1 -0
- package/dist/{window-Uii13x_r.cjs → window-BS7ZQjgH.cjs} +2 -2
- package/dist/window-BS7ZQjgH.cjs.map +1 -0
- package/dist/{window-CM1ycigo.js → window-WnAihpsA.js} +7 -7
- package/dist/window-WnAihpsA.js.map +1 -0
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +22 -28
- package/skills/schmancy/INDEX.md +7 -6
- package/skills/schmancy/breadcrumb.md +53 -0
- package/skills/schmancy/kbd.md +40 -0
- package/skills/schmancy/skeleton.md +40 -0
- package/skills/schmancy/splash-screen.md +60 -0
- package/skills/schmancy/switch.md +58 -0
- package/skills/schmancy/tooltip.md +1 -1
- package/skills/schmancy/visually-hidden.md +41 -0
- package/src/audio/emotional-sounds.ts +2 -4
- package/src/autocomplete/autocomplete.ts +52 -2
- package/src/breadcrumb/breadcrumb.ts +109 -0
- package/src/breadcrumb/index.ts +1 -0
- package/src/button/button.ts +40 -0
- package/src/button/icon-button.ts +2 -1
- package/src/checkbox/checkbox.test.ts +113 -0
- package/src/checkbox/checkbox.ts +41 -1
- package/src/chips/filter-chip.ts +15 -0
- package/src/chips/input-chip.ts +7 -0
- package/src/date-range/date-range-helpers.ts +0 -71
- package/src/dialog/dialog-base.mixin.ts +11 -0
- package/src/dialog/dialog.component.ts +28 -8
- package/src/dropdown/dropdown-content.ts +3 -1
- package/src/form/form.test.ts +137 -0
- package/src/form/form.ts +142 -158
- package/src/form/index.ts +2 -2
- package/src/icons/icon.ts +1 -0
- package/src/index.ts +6 -0
- package/src/kbd/index.ts +1 -0
- package/src/kbd/kbd.ts +59 -0
- package/src/skeleton/index.ts +1 -0
- package/src/skeleton/skeleton.ts +78 -0
- package/src/splash-screen/index.ts +1 -0
- package/src/splash-screen/splash-screen.ts +154 -0
- package/src/switch/index.ts +1 -0
- package/src/switch/switch.test.ts +93 -0
- package/src/switch/switch.ts +180 -0
- package/src/test-utils/a11y.ts +35 -0
- package/src/textarea/textarea.ts +32 -2
- package/src/tooltip/index.ts +1 -2
- package/src/tree/tree.ts +27 -2
- package/src/visually-hidden/index.ts +1 -0
- package/src/visually-hidden/visually-hidden.ts +39 -0
- package/src/window/window-position.ts +1 -74
- package/types/mixins/formField.mixin.d.ts +15 -8
- package/types/src/audio/emotional-sounds.d.ts +0 -2
- package/types/src/autocomplete/autocomplete.d.ts +7 -0
- package/types/src/breadcrumb/breadcrumb.d.ts +38 -0
- package/types/src/breadcrumb/index.d.ts +1 -0
- package/types/src/button/button.d.ts +7 -0
- package/types/src/button/icon-button.d.ts +2 -1
- package/types/src/checkbox/checkbox.d.ts +6 -0
- package/types/src/checkbox/checkbox.test.d.ts +1 -0
- package/types/src/chips/filter-chip.d.ts +3 -0
- package/types/src/chips/input-chip.d.ts +1 -0
- package/types/src/date-range/date-range-helpers.d.ts +0 -12
- package/types/src/dialog/dialog.component.d.ts +6 -0
- package/types/src/dropdown/dropdown-content.d.ts +3 -1
- package/types/src/form/form-v2.d.ts +12 -63
- package/types/src/form/form.d.ts +58 -40
- package/types/src/form/form.test.d.ts +4 -0
- package/types/src/form/index.d.ts +1 -1
- package/types/src/icons/icon.d.ts +1 -0
- package/types/src/index.d.ts +6 -0
- package/types/src/kbd/index.d.ts +1 -0
- package/types/src/kbd/kbd.d.ts +25 -0
- package/types/src/skeleton/index.d.ts +1 -0
- package/types/src/skeleton/skeleton.d.ts +27 -0
- package/types/src/splash-screen/index.d.ts +1 -0
- package/types/src/splash-screen/splash-screen.d.ts +60 -0
- package/types/src/switch/index.d.ts +1 -0
- package/types/src/switch/switch.d.ts +54 -0
- package/types/src/switch/switch.test.d.ts +1 -0
- package/types/src/test-utils/a11y.d.ts +11 -0
- package/types/src/textarea/textarea.d.ts +5 -1
- package/types/src/tooltip/index.d.ts +0 -1
- package/types/src/tree/tree.d.ts +5 -0
- package/types/src/visually-hidden/index.d.ts +1 -0
- package/types/src/visually-hidden/visually-hidden.d.ts +21 -0
- package/types/src/window/window-position.d.ts +1 -35
- package/dist/audio-DtYYgzYD.cjs.map +0 -1
- package/dist/audio-kz8UgPTO.js.map +0 -1
- package/dist/autocomplete-5rVhbieU.cjs +0 -111
- package/dist/autocomplete-5rVhbieU.cjs.map +0 -1
- package/dist/autocomplete-BllPQwr8.js.map +0 -1
- package/dist/chips-B19XS8Xc.cjs.map +0 -1
- package/dist/chips-B9oAEfE_.js.map +0 -1
- package/dist/components-CyD6a7gQ.cjs +0 -73
- package/dist/date-range-Sfyco9-n.js.map +0 -1
- package/dist/date-range-ZAaQB22I.cjs.map +0 -1
- package/dist/date-range-inline-m7nLjOMI.cjs +0 -43
- package/dist/delay-7boauN6N.cjs +0 -9
- package/dist/float-D5rNC82i.cjs +0 -1
- package/dist/form-BqN1AGFj.cjs +0 -1
- package/dist/form-BqN1AGFj.cjs.map +0 -1
- package/dist/form-CajC5HnO.js +0 -270
- package/dist/form-CajC5HnO.js.map +0 -1
- package/dist/icons-B57_93VV.cjs.map +0 -1
- package/dist/icons-BDqiGXrO.js.map +0 -1
- package/dist/input-chip-Dy-AiP55.cjs.map +0 -1
- package/dist/input-chip-QejNcRnS.js.map +0 -1
- package/dist/layout-DNYG3phx.cjs +0 -17
- package/dist/notification-CZFEhWxc.cjs +0 -23
- package/dist/radio-group-Cspwd-Vw.cjs +0 -40
- package/dist/src-BtQVyqMy.cjs +0 -269
- package/dist/surface-BjKZoJxK.cjs +0 -7
- package/dist/surface-pK8hME5c.js +0 -21
- package/dist/tailwind.mixin-BCJOOX1_.js.map +0 -1
- package/dist/tailwind.mixin-BF1Huas7.cjs.map +0 -1
- package/dist/textarea-Cp1ZE60O.cjs +0 -35
- package/dist/textarea-Cp1ZE60O.cjs.map +0 -1
- package/dist/textarea-D7q8exMg.js.map +0 -1
- package/dist/theme-Da4SPq9X.cjs +0 -181
- package/dist/theme-button-Ci8VQ7KW.cjs +0 -8
- package/dist/typewriter-B2TnHPjw.cjs +0 -123
- package/dist/window-CM1ycigo.js.map +0 -1
- package/dist/window-Uii13x_r.cjs.map +0 -1
- package/mixins/baseElement.ts +0 -190
- package/mixins/constructor.ts +0 -3
- package/mixins/discovery.service.ts +0 -221
- package/mixins/formField.mixin.ts +0 -228
- package/mixins/index.ts +0 -7
- package/mixins/litElement.mixin.ts +0 -15
- package/mixins/scss.d.ts +0 -21
- package/mixins/surface.mixin.ts +0 -93
- package/mixins/tailwind.css +0 -549
- package/mixins/tailwind.mixin.ts +0 -30
- package/src/form/form-v2.ts +0 -268
- package/src/layout/v2/grid.ts +0 -93
- package/src/notification/outlet.ts +0 -16
- package/src/store/immer-integration.ts +0 -99
- package/src/tooltip/tooltip.ts +0 -216
- /package/dist/{animation-CO_Csq84.cjs → animation-Bcwh107v.cjs} +0 -0
- /package/dist/{animation-BK-8BwY8.js → animation-CXKSuUoE.js} +0 -0
- /package/dist/{tslib.es6-ErZEp3OO.js → decorate-D_utPUsC.js} +0 -0
- /package/dist/{tslib.es6-D7BIeDVB.cjs → decorate-F9CuyeHg.cjs} +0 -0
- /package/dist/{flow-CUj0fDT_.js → flow-CqgDEIqK.js} +0 -0
- /package/dist/{flow-Bbwn6dRN.cjs → flow-DSu4PLt1.cjs} +0 -0
- /package/dist/{hashContent-DaeGmY-p.cjs → hashContent-kKvXKFa9.cjs} +0 -0
- /package/dist/{hashContent-DYM21p6t.js → hashContent-nD2uWwi2.js} +0 -0
- /package/dist/{intersection-CZpaIHeT.cjs → intersection-D1v1UCVv.cjs} +0 -0
- /package/dist/{intersection-BPLpqYEd.js → intersection-LfEsy29T.js} +0 -0
- /package/dist/{overlay-stack-DQey9Qph.cjs → overlay-stack-CEYGD9T1.cjs} +0 -0
- /package/dist/{overlay-stack-DT1SdaGW.js → overlay-stack-Ca4EK2Mu.js} +0 -0
- /package/dist/{reduced-motion-D-L12p7G.js → reduced-motion-B83yZbcO.js} +0 -0
- /package/dist/{reduced-motion-Ds05GPyz.cjs → reduced-motion-DR32yKEO.cjs} +0 -0
- /package/dist/{rxjs-utils-BSjmI9-Q.js → rxjs-utils-Bldch1RO.js} +0 -0
- /package/dist/{rxjs-utils-DCsfzeap.cjs → rxjs-utils-hAgKC7vk.cjs} +0 -0
- /package/dist/{search-C4dFHYbX.js → search-BlGJ6uJv.js} +0 -0
- /package/dist/{search-Ds8tt7Et.cjs → search-C8eAOzBm.cjs} +0 -0
- /package/dist/{store-DYqDLAvT.js → store-Bmj6rvZY.js} +0 -0
- /package/dist/{store-CorvD3bT.cjs → store-CO4nJyGj.cjs} +0 -0
- /package/dist/{theme.events-Cv7N4Toe.js → theme.events-Bw3mYjUA.js} +0 -0
- /package/dist/{theme.events-DM4H5F2d.cjs → theme.events-EznKK2Y0.cjs} +0 -0
- /package/dist/{theme.interface-Da23QAYb.cjs → theme.interface-CM26m9te.cjs} +0 -0
- /package/dist/{theme.interface-CXloMUCw.js → theme.interface-FAUIgbIq.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chips-B9oAEfE_.js","names":[],"sources":["../src/chips/assist-chip.ts","../src/chips/chips.ts","../src/chips/filter-chip.ts","../src/chips/suggestion-chip.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { BehaviorSubject, combineLatest } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\n/**\n * Assist chip component - prompts user actions like opening calendar events or sharing content\n * Pure Schmancy implementation with Tailwind CSS and RxJS state management\n */\n@customElement('schmancy-assist-chip')\nexport class SchmancyAssistChip extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\tmin-width:fit-content\n\t}\n\n\t:host([disabled]) {\n\t\tpointer-events: none;\n\t}\n\n\t.ripple {\n\t\tposition: absolute;\n\t\tborder-radius: 50%;\n\t\ttransform: scale(0);\n\t\tanimation: ripple 600ms linear;\n\t\tbackground-color: rgba(0, 0, 0, 0.08);\n\t\tpointer-events: none;\n\t}\n\n\t@keyframes ripple {\n\t\tto {\n\t\t\ttransform: scale(4);\n\t\t\topacity: 0;\n\t\t}\n\t}\n\n\t/* State layer for M3 hover/focus/pressed states */\n\t.state-layer {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder-radius: inherit;\n\t\tpointer-events: none;\n\t\tbackground-color: currentColor;\n\t\topacity: 0;\n\t\ttransition: opacity 200ms ease;\n\t}\n\n\t:host(:not([disabled])) button:hover .state-layer {\n\t\topacity: 0.08;\n\t}\n\n\t:host(:not([disabled])) button:focus-visible .state-layer {\n\t\topacity: 0.1;\n\t}\n\n\t:host(:not([disabled])) button:active .state-layer {\n\t\topacity: 0.1;\n\t}\n`) {\n\t/** Value identifier for the chip */\n\t@property({ reflect: true }) value = ''\n\n\t/** Optional icon name (Material Symbols) */\n\t@property({ reflect: true }) icon = ''\n\n\t/** Optional href for navigation */\n\t@property({ reflect: true }) href = ''\n\n\t/** Target for navigation (e.g., '_blank') */\n\t@property({ reflect: true }) target = ''\n\n\t/** Disable the chip */\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\n\t/** Elevated style variant - true by default per M3 spec for assist chips */\n\t@property({ type: Boolean, reflect: true }) elevated = true\n\n\t// RxJS state streams\n\tprivate hover$ = new BehaviorSubject<boolean>(false)\n\tprivate pressed$ = new BehaviorSubject<boolean>(false)\n\tprivate focused$ = new BehaviorSubject<boolean>(false)\n\n\t// UI state - only ripples needed for rendering\n\t@state() private ripples: Array<{ x: number; y: number; id: number }> = []\n\n\tprotected static shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true }\n\n\tprivate nextRippleId = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Stream management for future extensions\n\t\t// Currently, states are handled directly in event handlers\n\t\t// This pipeline can be extended for more complex state interactions\n\t\tcombineLatest([\n\t\t\tthis.hover$,\n\t\t\tthis.pressed$,\n\t\t\tthis.focused$\n\t\t]).pipe(\n\t\t\t// States are managed through event handlers directly\n\t\t\t// This pipeline is kept for potential future state combinations\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprivate handleClick = (e: MouseEvent) => {\n\t\tif (this.disabled) return\n\n\t\t// Add ripple effect\n\t\tconst button = this.shadowRoot?.querySelector('button')\n\t\tif (button) {\n\t\t\tconst rect = button.getBoundingClientRect()\n\t\t\tconst x = e.clientX - rect.left\n\t\t\tconst y = e.clientY - rect.top\n\t\t\tconst id = this.nextRippleId++\n\n\t\t\tthis.ripples = [...this.ripples, { x, y, id }]\n\n\t\t\t// Remove ripple after animation\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.ripples = this.ripples.filter(r => r.id !== id)\n\t\t\t}, 600)\n\t\t}\n\n\t\t// Navigate if href is provided\n\t\tif (this.href) {\n\t\t\tif (this.target === '_blank') {\n\t\t\t\twindow.open(this.href, '_blank')\n\t\t\t} else {\n\t\t\t\twindow.location.href = this.href\n\t\t\t}\n\t\t}\n\n\t\t// Dispatch action event\n\t\tthis.dispatchEvent(new CustomEvent('action', {\n\t\t\tdetail: { value: this.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (this.disabled) return\n\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\tthis.pressed$.next(true)\n\n\t\t\t// Simulate click\n\t\t\tconst clickEvent = new MouseEvent('click', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true,\n\t\t\t\tclientX: 0,\n\t\t\t\tclientY: 0\n\t\t\t})\n\t\t\tthis.handleClick(clickEvent)\n\n\t\t\tsetTimeout(() => this.pressed$.next(false), 100)\n\t\t}\n\t}\n\n\tprivate handleFocus = () => {\n\t\tthis.focused$.next(true)\n\t}\n\n\tprivate handleBlur = () => {\n\t\tthis.focused$.next(false)\n\t}\n\n\trender() {\n\t\tconst hasIcon = !!this.icon;\n\n\t\tconst classes = {\n\t\t\t'relative': true,\n\t\t\t'inline-flex': true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'h-8': true, // M3: 32px height\n\t\t\t'min-h-[32px]': true,\n\t\t\t'rounded-full': true,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'select-none': true,\n\t\t\t'overflow-hidden': true,\n\n\t\t\t// M3 Padding: 8px with icon, 16px without (leading), 16px trailing\n\t\t\t'pl-2': hasIcon, // 8px with icon\n\t\t\t'pl-4': !hasIcon, // 16px without icon\n\t\t\t'pr-4': true, // 16px trailing\n\n\t\t\t// M3 Colors - assist chips are elevated by default\n\t\t\t'bg-surface-containerLow': true,\n\t\t\t'text-surface-onVariant': true,\n\n\t\t\t// M3: Assist chips elevated by default (shadow-1)\n\t\t\t'shadow-sm': this.elevated && !this.disabled, // shadow-1 for elevation\n\t\t\t'hover:shadow-md': this.elevated && !this.disabled, // elevated on hover\n\n\t\t\t// Focus state\n\t\t\t'focus-visible:outline': !this.disabled,\n\t\t\t'focus-visible:outline-2': !this.disabled,\n\t\t\t'focus-visible:outline-primary': !this.disabled,\n\t\t\t'focus-visible:outline-offset-2': !this.disabled,\n\n\t\t\t// Disabled\n\t\t\t'opacity-38': this.disabled, // M3 disabled opacity\n\t\t\t'cursor-not-allowed': this.disabled\n\t\t}\n\n\t\treturn html`\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=${classMap(classes)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t@click=${this.handleClick}\n\t\t\t\t@keydown=${this.handleKeyDown}\n\t\t\t\t@mouseenter=${() => this.hover$.next(true)}\n\t\t\t\t@mouseleave=${() => this.hover$.next(false)}\n\t\t\t\t@mousedown=${() => this.pressed$.next(true)}\n\t\t\t\t@mouseup=${() => this.pressed$.next(false)}\n\t\t\t\t@focus=${this.handleFocus}\n\t\t\t\t@blur=${this.handleBlur}\n\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\taria-label=${this.value}\n\t\t\t>\n\t\t\t\t${this.icon ? html`\n\t\t\t\t\t<schmancy-icon class=\"text-[18px] shrink-0\">${this.icon}</schmancy-icon>\n\t\t\t\t` : ''}\n\t\t\t\t<span class=\"text-sm font-medium leading-5\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</span>\n\n\t\t\t\t<!-- Ripple effects -->\n\t\t\t\t${this.ripples.map(ripple => html`\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"ripple\"\n\t\t\t\t\t\tstyle=\"left: ${ripple.x}px; top: ${ripple.y}px;\"\n\t\t\t\t\t></span>\n\t\t\t\t`)}\n\n\t\t\t\t<!-- State layer for M3 hover/focus/pressed states -->\n\t\t\t\t<div class=\"state-layer\"></div>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-assist-chip': SchmancyAssistChip\n\t}\n}\n\nexport type AssistChipActionEvent = { value: string }","import { $LitElement } from '@mixins/index'\nimport { css, html, PropertyValues } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { BehaviorSubject, combineLatest } from 'rxjs'\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators'\nimport { fullWidth } from '../directives/layout'\nimport type { FilterChipChangeEvent as SchmancyChipChangeEvent } from './filter-chip'\nimport { SchmancyFilterChip as SchmancyChip } from './filter-chip'\n\n@customElement('schmancy-chips')\nexport default class SchmancyChips extends $LitElement(\n\ncss`\n:host{\n\tdisplay:block;\n\theight:fit-content;\n\twidth:fit-content;\n}\n\t\n`\n) {\n\t// RxJS state streams - initialized with undefined to detect if properties were set\n\tprivate value$ = new BehaviorSubject<string>('')\n\tprivate values$ = new BehaviorSubject<string[]>([])\n\n\t// Track if properties were initialized from attributes/properties\n\tprivate _value: string = ''\n\tprivate _values: string[] = []\n\tprivate _multi: boolean = false\n\n\t// Track if properties have been explicitly set\n\tprivate _valueSet: boolean = false\n\tprivate _valuesSet: boolean = false\n\n\t/**\n\t * @deprecated Use .values for multi-selection or .value for single-selection instead.\n\t * The mode is now automatically determined based on which property is used.\n\t */\n\t@property({\n\t\ttype: Boolean,\n\t\treflect: true,\n\t})\n\tget multi(): boolean {\n\t\treturn this._multi\n\t}\n\tset multi(value: boolean) {\n\t\tthis._multi = value\n\t\t// Note: We don't update any BehaviorSubject here as mode is now computed\n\t}\n\n\t/**\n\t * Automatically determines the selection mode based on which properties are in use\n\t */\n\tprivate get mode(): 'multi' | 'single' | 'none' {\n\t\t// Check if values array is being used (explicitly set)\n\t\tif (this._valuesSet) {\n\t\t\treturn 'multi'\n\t\t}\n\t\t// Check if value string is being used (explicitly set)\n\t\tif (this._valueSet) {\n\t\t\treturn 'single'\n\t\t}\n\t\t// Check if either property has been set via attributes\n\t\tif (this.hasAttribute('values')) {\n\t\t\treturn 'multi'\n\t\t}\n\t\tif (this.hasAttribute('value')) {\n\t\t\treturn 'single'\n\t\t}\n\t\t// Fallback to deprecated multi prop for backward compatibility\n\t\tif (this._multi === true) {\n\t\t\treturn 'multi'\n\t\t}\n\t\t// Default to none (no selection management)\n\t\treturn 'none'\n\t}\n\n\t@property({\n\t\ttype: Array,\n\t\treflect: true,\n\t})\n\tget values(): string[] {\n\t\treturn this._values\n\t}\n\tset values(value: string[]) {\n\t\tthis._values = value || []\n\t\tthis._valuesSet = true // Mark that values has been explicitly set\n\t\tthis.values$.next(this._values)\n\t}\n\n\t@property({\n\t\ttype: String,\n\t\treflect: true,\n\t})\n\tget value(): string {\n\t\treturn this._value\n\t}\n\tset value(value: string) {\n\t\tthis._value = value || ''\n\t\tthis._valueSet = true // Mark that value has been explicitly set\n\t\tthis.value$.next(this._value)\n\t}\n\n\t@queryAssignedElements({\n\t\tselector:\n\t\t\t'schmancy-chip, schmancy-filter-chip, schmancy-assist-chip, schmancy-input-chip, schmancy-suggestion-chip',\n\t\tflatten: true,\n\t})\n\tchips!: (SchmancyChip | HTMLElement)[]\n\n\t@property({\n\t\ttype: Boolean,\n\t\treflect: true,\n\t})\n\twrap: boolean = false\n\n\t@property({\n\t\ttype: Boolean,\n\t\treflect: true,\n\t})\n\trequired: boolean = false\n\n\t@property({\n\t\ttype: String,\n\t\treflect: true,\n\t})\n\tjustify: 'start' | 'center' | 'end' = 'start'\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Initialize BehaviorSubjects with current property values\n\t\t// This ensures properties set before connectedCallback are respected\n\t\tthis.value$.next(this._value)\n\t\tthis.values$.next(this._values)\n\n\t\t// Set up reactive pipeline for state synchronization\n\t\tcombineLatest([\n\t\t\tthis.value$.pipe(distinctUntilChanged()),\n\t\t\tthis.values$.pipe(\n\t\t\t\tdistinctUntilChanged((prev, curr) => prev.length === curr.length && prev.every((v, i) => v === curr[i])),\n\t\t\t),\n\t\t])\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0), // Ensure DOM is ready\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(([value, values]) => {\n\t\t\t\t// Reactively update chip states based on container state and auto-detected mode\n\t\t\t\tthis.updateChipStates(this.mode, value, values)\n\t\t\t})\n\t}\n\n\tprivate updateChipStates(mode: 'multi' | 'single' | 'none', value: string, values: string[]) {\n\t\tif (!this.chips) return\n\n\t\t// If mode is 'none', don't manage selection state\n\t\tif (mode === 'none') return\n\n\t\tthis.chips.forEach(chip => {\n\t\t\tif ('value' in chip && 'selected' in chip) {\n\t\t\t\tconst filterChip = chip as SchmancyChip\n\t\t\t\tif (mode === 'multi') {\n\t\t\t\t\t// In multi mode: only select if values array explicitly includes this chip's value\n\t\t\t\t\tfilterChip.selected = values.length > 0 && values.includes(filterChip.value)\n\t\t\t\t} else if (mode === 'single') {\n\t\t\t\t\t// In single mode: only select if value is non-empty AND matches this chip's value\n\t\t\t\t\t// This prevents chips from being selected when value is empty string\n\t\t\t\t\tfilterChip.selected = value !== '' && value === filterChip.value\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tasync change(e: CustomEvent<SchmancyChipChangeEvent>) {\n\t\te.preventDefault()\n\t\te.stopPropagation()\n\n\t\t// If mode is 'none', don't handle selection changes\n\t\tif (this.mode === 'none') return\n\n\t\tconst { value, selected } = e.detail\n\n\t\t// Update the reactive streams and internal tracking, which will trigger state synchronization\n\t\tif (this.mode === 'multi') {\n\t\t\tif (selected) {\n\t\t\t\t// Add value if not already present\n\t\t\t\tif (!this._values.includes(value)) {\n\t\t\t\t\tthis._values = [...this._values, value]\n\t\t\t\t\tthis.values$.next(this._values)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Remove value\n\t\t\t\tthis._values = this._values.filter(v => v !== value)\n\t\t\t\tthis.values$.next(this._values)\n\t\t\t}\n\t\t} else if (this.mode === 'single') {\n\t\t\tif (selected) {\n\t\t\t\tthis._value = value\n\t\t\t} else if (!this.required) {\n\t\t\t\t// Allow deselection if not required\n\t\t\t\tthis._value = ''\n\t\t\t} else {\n\t\t\t\t// Required mode - ignore deselection\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.value$.next(this._value)\n\t\t}\n\n\t\t// Request update to trigger re-render and property reflection\n\t\tthis.requestUpdate()\n\n\t\t// Dispatch change event with appropriate detail based on mode\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancyChipsChangeEvent>('change', {\n\t\t\t\tdetail: this.mode === 'multi' ? this._values : this._value,\n\t\t\t\tbubbles: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValues): void {\n\t\tsuper.firstUpdated(_changedProperties)\n\t\t// Initial state synchronization will happen through the reactive pipeline\n\t\t// Force an initial update to ensure chips are synchronized\n\t\tthis.updateChipStates(this.mode, this._value, this._values)\n\t}\n\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'flex flex-nowrap justify-center gap-2': true,\n\t\t\t'flex-wrap': this.wrap,\n\t\t\t'justify-center': this.justify === 'center',\n\t\t}\n\t\treturn html`\n\t\t\t<schmancy-scroll\n\t\t\t\thide\n\t\t\t\t.direction=${this.wrap ? 'vertical' : 'horizontal'}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t${fullWidth()}\n\t\t\t\t@change=${this.change}\n\t\t\t>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t// When slot changes, trigger state update through reactive pipeline\n\t\t\t\t\t\tthis.updateChipStates(this.mode, this._value, this._values)\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</schmancy-scroll>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-chips': SchmancyChips\n\t}\n}\nexport type SchmancyChipsChangeEvent = string | Array<string>\n","import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html, LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { magnetic } from '../directives/magnetic'\n\n/**\n * Filter chip component for content filtering.\n *\n * Filter chips are the ONLY chip type that maintains persistent selected state.\n * They are used for filtering content by toggling on/off different filter criteria.\n *\n * @fires change - Dispatched when selection state changes with {value, selected}\n * @fires remove - Dispatched when remove button is clicked (if removable)\n *\n * @example\n * ```html\n * <schmancy-filter-chip value=\"category-1\" selected>\n * Category 1\n * </schmancy-filter-chip>\n * ```\n */\nexport class SchmancyFilterChip extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\tmin-width: fit-content;\n\t\tborder-radius: 0.5rem;\n\t\ttransition:\n\t\t\tbox-shadow 300ms ease,\n\t\t\ttransform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n\n\t:host(:hover:not([disabled])) {\n\t\tbox-shadow: 0 2px 8px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent);\n\t}\n\n\t:host(:active:not([disabled])) {\n\t\ttransform: scale(0.95);\n\t\ttransition-duration: 100ms;\n\t}\n\n\t:host([selected]) {\n\t\tbox-shadow: 0 0 12px -2px color-mix(in srgb, var(--schmancy-sys-color-secondary-default) 20%, transparent);\n\t}\n\n\t:host([disabled]) {\n\t\tpointer-events: none;\n\t\topacity: var(--schmancy-sys-state-disabled-opacity);\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host { transition: none; }\n\t\t:host(:hover:not([disabled])) { box-shadow: none; }\n\t\t:host(:active:not([disabled])) { transform: none; }\n\t\t:host([selected]) { box-shadow: none; }\n\t}\n\n\tbutton {\n\t\tfont-family: inherit;\n\t}\n`) {\n\t/** Unique identifier for this filter chip */\n\t@property({ type: String, reflect: true })\n\tvalue: string = ''\n\n\t/** Whether the filter chip is selected (active filter) */\n\tprivate _selected: boolean = false\n\n\t@property({ type: Boolean, reflect: true })\n\tget selected(): boolean {\n\t\treturn this._selected\n\t}\n\tset selected(value: boolean) {\n\t\tconst oldValue = this._selected\n\t\tthis._selected = value\n\t\tthis.requestUpdate('selected', oldValue)\n\t}\n\n\t/** Whether to show a remove button */\n\t@property({ type: Boolean, reflect: true })\n\tremovable: boolean = false\n\n\t/** Whether the chip is disabled */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled: boolean = false\n\n\t/** Whether to use elevated style with shadow */\n\t@property({ type: Boolean, reflect: true })\n\televated: boolean = false\n\n\n\tconstructor() {\n\t\tsuper()\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch {\n\t\t\tthis.internals = undefined\n\t\t}\n\t}\n\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tstatic formAssociated = true\n\tinternals: ElementInternals | undefined\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t}\n\n\tprivate handleClick = () => {\n\t\tif (this.disabled) return\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('change', {\n\t\t\t\tdetail: { value: this.value, selected: !this._selected },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleRemove = (e: Event) => {\n\t\tif (this.disabled) return\n\n\t\te.stopPropagation()\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('remove', {\n\t\t\t\tdetail: { value: this.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (this.disabled) return\n\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail: { value: this.value, selected: !this._selected },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\n\tprotected render(): unknown {\n\t\tconst chipClasses = {\n\t\t\t'inline-flex': true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'rounded-lg': true,\n\t\t\t'h-8 px-4': true,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'select-none': true,\n\t\t\t'text-sm': true,\n\t\t\t'font-medium': true,\n\t\t\t'border': true,\n\t\t\t'relative': true,\n\t\t\t'min-h-[32px]': true,\n\n\t\t\t// Background and text colors based on selection state\n\t\t\t'bg-secondary-container': this._selected,\n\t\t\t'text-secondary-onContainer': this._selected,\n\t\t\t'border-secondary-container': this._selected,\n\t\t\t'bg-surface-container': !this._selected,\n\t\t\t'text-surface-on': !this._selected,\n\t\t\t'border-outline': !this._selected,\n\n\t\t\t// Hover states\n\t\t\t'hover:brightness-95': this._selected && !this.disabled,\n\t\t\t'hover:bg-surface-containerHigh': !this._selected && !this.disabled,\n\n\t\t\t// Pressed state\n\t\t\t'active:brightness-90': !this.disabled,\n\n\t\t\t// Focus-visible state\n\t\t\t'focus-visible:outline': !this.disabled,\n\t\t\t'focus-visible:outline-2': !this.disabled,\n\t\t\t'focus-visible:outline-offset-2': !this.disabled,\n\t\t\t'focus-visible:outline-primary-default': !this.disabled,\n\n\t\t\t// Elevated style\n\t\t\t'shadow-md': this.elevated && !this.disabled,\n\t\t\t'hover:shadow-lg': this.elevated && !this.disabled,\n\n\t\t\t// Disabled state\n\t\t\t'opacity-[var(--schmancy-sys-state-disabled-opacity)]': this.disabled,\n\t\t\t'cursor-not-allowed': this.disabled,\n\t\t}\n\n\t\treturn html`\n\t\t\t<button\n\t\t\t\t${magnetic({ strength: 2, radius: 40 })}\n\t\t\t\tclass=${this.classMap(chipClasses)}\n\t\t\t\t@click=${this.handleClick}\n\t\t\t\t@keydown=${this.handleKeyDown}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\taria-pressed=${this._selected ? 'true' : 'false'}\n\t\t\t\trole=\"checkbox\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\n\t\t\t\t${this.removable\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclass=\"ml-1 -mr-1 p-0.5 rounded-full hover:bg-surface-containerHighest transition-colors duration-200\"\n\t\t\t\t\t\t\t\t@click=${this.handleRemove}\n\t\t\t\t\t\t\t\taria-label=\"Remove filter\"\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"material-symbols-outlined text-sm\">close</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t</button>\n\t\t`\n\t}\n}\n\nif (!customElements.get('schmancy-filter-chip')) {\n\tcustomElements.define('schmancy-filter-chip', SchmancyFilterChip)\n}\n\nif (!customElements.get('schmancy-chip')) {\n\tclass SchmancyChipCompat extends SchmancyFilterChip {}\n\tcustomElements.define('schmancy-chip', SchmancyChipCompat)\n}\n\nexport { SchmancyFilterChip as SchmancyChip }\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-chip': SchmancyFilterChip\n\t\t'schmancy-filter-chip': SchmancyFilterChip\n\t}\n}\n\nexport type FilterChipChangeEvent = { value: string; selected: boolean }\nexport type FilterChipRemoveEvent = { value: string }\nexport type SchmancyChipChangeEvent = FilterChipChangeEvent\n","import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { BehaviorSubject, combineLatest } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\n/**\n * Suggestion chip component - provides contextual recommendations to users\n *\n * IMPORTANT: Suggestion chips do NOT have a selected state. They are designed to\n * provide suggestions and recommendations that trigger actions when clicked.\n * Unlike filter chips, they cannot be toggled on/off.\n *\n * Pure Schmancy implementation with Tailwind CSS and RxJS state management\n */\n@customElement('schmancy-suggestion-chip')\nexport class SchmancySuggestionChip extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\tmin-width:fit-content\n\t}\n\n\t:host([disabled]) {\n\t\tpointer-events: none;\n\t}\n\n\t.ripple {\n\t\tposition: absolute;\n\t\tborder-radius: 50%;\n\t\ttransform: scale(0);\n\t\tanimation: ripple 600ms linear;\n\t\tbackground-color: rgba(0, 0, 0, 0.08);\n\t\tpointer-events: none;\n\t}\n\n\t@keyframes ripple {\n\t\tto {\n\t\t\ttransform: scale(4);\n\t\t\topacity: 0;\n\t\t}\n\t}\n\n\t/* State layer for M3 hover/focus/pressed states */\n\t.state-layer {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder-radius: inherit;\n\t\tpointer-events: none;\n\t\tbackground-color: currentColor;\n\t\topacity: 0;\n\t\ttransition: opacity 200ms ease;\n\t}\n\n\t:host(:not([disabled])) button:hover .state-layer {\n\t\topacity: 0.08;\n\t}\n\n\t:host(:not([disabled])) button:focus-visible .state-layer {\n\t\topacity: 0.1;\n\t}\n\n\t:host(:not([disabled])) button:active .state-layer {\n\t\topacity: 0.1;\n\t}\n`) {\n\t/** Value identifier for the chip */\n\t@property({ reflect: true }) value = ''\n\n\t/** Optional icon name (Material Symbols) */\n\t@property({ reflect: true }) icon = ''\n\n\t/** Optional href for navigation */\n\t@property({ reflect: true }) href = ''\n\n\t/** Target for navigation (e.g., '_blank') */\n\t@property({ reflect: true }) target = ''\n\n\t/** Disable the chip */\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\n\t/** Elevated style variant - flat by default per M3 spec */\n\t@property({ type: Boolean, reflect: true }) elevated = false\n\n\t// RxJS state streams\n\tprivate hover$ = new BehaviorSubject<boolean>(false)\n\tprivate pressed$ = new BehaviorSubject<boolean>(false)\n\tprivate focused$ = new BehaviorSubject<boolean>(false)\n\n\t// UI state - only ripples needed for rendering\n\t@state() private ripples: Array<{ x: number; y: number; id: number }> = []\n\n\tprotected static shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true }\n\n\tprivate nextRippleId = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Stream management for future extensions\n\t\t// Currently, states are handled directly in event handlers\n\t\t// This pipeline can be extended for more complex state interactions\n\t\tcombineLatest([\n\t\t\tthis.hover$,\n\t\t\tthis.pressed$,\n\t\t\tthis.focused$\n\t\t]).pipe(\n\t\t\t// States are managed through event handlers directly\n\t\t\t// This pipeline is kept for potential future state combinations\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprivate handleClick = (e: MouseEvent) => {\n\t\tif (this.disabled) return\n\n\t\t// Add ripple effect\n\t\tconst button = this.shadowRoot?.querySelector('button')\n\t\tif (button) {\n\t\t\tconst rect = button.getBoundingClientRect()\n\t\t\tconst x = e.clientX - rect.left\n\t\t\tconst y = e.clientY - rect.top\n\t\t\tconst id = this.nextRippleId++\n\n\t\t\tthis.ripples = [...this.ripples, { x, y, id }]\n\n\t\t\t// Remove ripple after animation\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.ripples = this.ripples.filter(r => r.id !== id)\n\t\t\t}, 600)\n\t\t}\n\n\t\t// Navigate if href is provided\n\t\tif (this.href) {\n\t\t\tif (this.target === '_blank') {\n\t\t\t\twindow.open(this.href, '_blank')\n\t\t\t} else {\n\t\t\t\twindow.location.href = this.href\n\t\t\t}\n\t\t}\n\n\t\t// Dispatch action event\n\t\tthis.dispatchEvent(new CustomEvent('action', {\n\t\t\tdetail: { value: this.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (this.disabled) return\n\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\tthis.pressed$.next(true)\n\n\t\t\t// Simulate click\n\t\t\tconst clickEvent = new MouseEvent('click', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true,\n\t\t\t\tclientX: 0,\n\t\t\t\tclientY: 0\n\t\t\t})\n\t\t\tthis.handleClick(clickEvent)\n\n\t\t\tsetTimeout(() => this.pressed$.next(false), 100)\n\t\t}\n\t}\n\n\tprivate handleFocus = () => {\n\t\tthis.focused$.next(true)\n\t}\n\n\tprivate handleBlur = () => {\n\t\tthis.focused$.next(false)\n\t}\n\n\tprotected render(): unknown {\n\t\tconst hasIcon = !!this.icon;\n\n\t\tconst classes = {\n\t\t\t'relative': true,\n\t\t\t'inline-flex': true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'h-8': true, // M3: 32px height\n\t\t\t'min-h-[32px]': true,\n\t\t\t'rounded-full': true,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'select-none': true,\n\t\t\t'overflow-hidden': true,\n\t\t\t'border': true,\n\n\t\t\t// M3 Padding: 8px with icon, 16px without (leading), 16px trailing\n\t\t\t'pl-2': hasIcon, // 8px with icon\n\t\t\t'pl-4': !hasIcon, // 16px without icon\n\t\t\t'pr-4': true, // 16px trailing\n\n\t\t\t// M3 Colors for suggestion chips\n\t\t\t'bg-surface-containerLow': true,\n\t\t\t'text-surface-onVariant': true,\n\t\t\t'border-outline': true,\n\n\t\t\t// Suggestion chips are flat by default (no elevation per M3)\n\n\t\t\t// Focus state\n\t\t\t'focus-visible:outline': !this.disabled,\n\t\t\t'focus-visible:outline-2': !this.disabled,\n\t\t\t'focus-visible:outline-primary': !this.disabled,\n\t\t\t'focus-visible:outline-offset-2': !this.disabled,\n\n\t\t\t// Disabled\n\t\t\t'opacity-38': this.disabled, // M3 disabled opacity\n\t\t\t'cursor-not-allowed': this.disabled\n\t\t}\n\n\t\treturn html`\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=${classMap(classes)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t@click=${this.handleClick}\n\t\t\t\t@keydown=${this.handleKeyDown}\n\t\t\t\t@mouseenter=${() => this.hover$.next(true)}\n\t\t\t\t@mouseleave=${() => this.hover$.next(false)}\n\t\t\t\t@mousedown=${() => this.pressed$.next(true)}\n\t\t\t\t@mouseup=${() => this.pressed$.next(false)}\n\t\t\t\t@focus=${this.handleFocus}\n\t\t\t\t@blur=${this.handleBlur}\n\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\taria-label=${this.value}\n\t\t\t>\n\t\t\t\t${this.icon ? html`\n\t\t\t\t\t<schmancy-icon class=\"text-[18px] shrink-0\">${this.icon}</schmancy-icon>\n\t\t\t\t` : ''}\n\t\t\t\t<span class=\"text-sm font-medium leading-5\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</span>\n\n\t\t\t\t<!-- Ripple effects -->\n\t\t\t\t${this.ripples.map(ripple => html`\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"ripple\"\n\t\t\t\t\t\tstyle=\"left: ${ripple.x}px; top: ${ripple.y}px;\"\n\t\t\t\t\t></span>\n\t\t\t\t`)}\n\n\t\t\t\t<!-- State layer for M3 hover/focus/pressed states -->\n\t\t\t\t<div class=\"state-layer\"></div>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-suggestion-chip': SchmancySuggestionChip\n\t}\n}\n\nexport type SuggestionChipActionEvent = { value: string }"],"mappings":"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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`),t=require(`./litElement.mixin-3llHwB-8.cjs`);require(`./mixins.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},a=function(e,t,n,r,i,o,s,c,l,u){var d=this;d.numeralDecimalMark=e||`.`,d.numeralIntegerScale=t>0?t:0,d.numeralDecimalScale=n>=0?n:2,d.numeralThousandsGroupStyle=r||a.groupStyle.thousand,d.numeralPositiveOnly=!!i,d.stripLeadingZeroes=!1!==o,d.prefix=s||s===``?s:``,d.signBeforePrefix=!!c,d.tailPrefix=!!l,d.delimiter=u||u===``?u:`,`,d.delimiterRE=u?RegExp(`\\`+u,`g`):``};a.groupStyle={thousand:`thousand`,lakh:`lakh`,wan:`wan`,none:`none`},a.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,``).replace(this.numeralDecimalMark,`.`)},format:function(e){var t,n,r,i,o=this,s=``;switch(e=e.replace(/[A-Za-z]/g,``).replace(o.numeralDecimalMark,`M`).replace(/[^\dM-]/g,``).replace(/^\-/,`N`).replace(/\-/g,``).replace(`N`,o.numeralPositiveOnly?``:`-`).replace(`M`,o.numeralDecimalMark),o.stripLeadingZeroes&&(e=e.replace(/^(-)?0+(?=\d)/,`$1`)),n=e.slice(0,1)===`-`?`-`:``,r=o.prefix===void 0?n:o.signBeforePrefix?n+o.prefix:o.prefix+n,i=e,e.indexOf(o.numeralDecimalMark)>=0&&(i=(t=e.split(o.numeralDecimalMark))[0],s=o.numeralDecimalMark+t[1].slice(0,o.numeralDecimalScale)),n===`-`&&(i=i.slice(1)),o.numeralIntegerScale>0&&(i=i.slice(0,o.numeralIntegerScale)),o.numeralThousandsGroupStyle){case a.groupStyle.lakh:i=i.replace(/(\d)(?=(\d\d)+\d$)/g,`$1`+o.delimiter);break;case a.groupStyle.wan:i=i.replace(/(\d)(?=(\d{4})+$)/g,`$1`+o.delimiter);break;case a.groupStyle.thousand:i=i.replace(/(\d)(?=(\d{3})+$)/g,`$1`+o.delimiter)}return o.tailPrefix?n+i.toString()+(o.numeralDecimalScale>0?s.toString():``)+o.prefix:r+i.toString()+(o.numeralDecimalScale>0?s.toString():``)}};var o=a,s=function(e,t,n){var r=this;r.date=[],r.blocks=[],r.datePattern=e,r.dateMin=t.split(`-`).reverse().map(function(e){return parseInt(e,10)}),r.dateMin.length===2&&r.dateMin.unshift(0),r.dateMax=n.split(`-`).reverse().map(function(e){return parseInt(e,10)}),r.dateMax.length===2&&r.dateMax.unshift(0),r.initBlocks()};s.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){t===`Y`?e.blocks.push(4):e.blocks.push(2)})},getISOFormatDate:function(){var e=this,t=e.date;return t[2]?t[2]+`-`+e.addLeadingZero(t[1])+`-`+e.addLeadingZero(t[0]):``},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,n=``;return e=e.replace(/[^\d]/g,``),t.blocks.forEach(function(r,i){if(e.length>0){var a=e.slice(0,r),o=a.slice(0,1),s=e.slice(r);switch(t.datePattern[i]){case`d`:a===`00`?a=`01`:parseInt(o,10)>3?a=`0`+o:parseInt(a,10)>31&&(a=`31`);break;case`m`:a===`00`?a=`01`:parseInt(o,10)>1?a=`0`+o:parseInt(a,10)>12&&(a=`12`)}n+=a,e=s}}),this.getFixedDateString(n)},getFixedDateString:function(e){var t,n,r,i=this,a=i.datePattern,o=[],s=0,c=0,l=0,u=0,d=0,f=0,p=!1;return e.length===4&&a[0].toLowerCase()!==`y`&&a[1].toLowerCase()!==`y`&&(d=2-(u=a[0]===`d`?0:2),t=parseInt(e.slice(u,u+2),10),n=parseInt(e.slice(d,d+2),10),o=this.getFixedDate(t,n,0)),e.length===8&&(a.forEach(function(e,t){switch(e){case`d`:s=t;break;case`m`:c=t;break;default:l=t}}),f=2*l,u=s<=l?2*s:2*s+2,d=c<=l?2*c:2*c+2,t=parseInt(e.slice(u,u+2),10),n=parseInt(e.slice(d,d+2),10),r=parseInt(e.slice(f,f+4),10),p=e.slice(f,f+4).length===4,o=this.getFixedDate(t,n,r)),e.length!==4||a[0]!==`y`&&a[1]!==`y`||(f=2-(d=a[0]===`m`?0:2),n=parseInt(e.slice(d,d+2),10),r=parseInt(e.slice(f,f+2),10),p=e.slice(f,f+2).length===2,o=[0,n,r]),e.length!==6||a[0]!==`Y`&&a[1]!==`Y`||(f=2-.5*(d=a[0]===`m`?0:4),n=parseInt(e.slice(d,d+2),10),r=parseInt(e.slice(f,f+4),10),p=e.slice(f,f+4).length===4,o=[0,n,r]),o=i.getRangeFixedDate(o),i.date=o,o.length===0?e:a.reduce(function(e,t){switch(t){case`d`:return e+(o[0]===0?``:i.addLeadingZero(o[0]));case`m`:return e+(o[1]===0?``:i.addLeadingZero(o[1]));case`y`:return e+(p?i.addLeadingZeroForYear(o[2],!1):``);case`Y`:return e+(p?i.addLeadingZeroForYear(o[2],!0):``)}},``)},getRangeFixedDate:function(e){var t=this,n=t.datePattern,r=t.dateMin||[],i=t.dateMax||[];return!e.length||r.length<3&&i.length<3||n.find(function(e){return e.toLowerCase()===`y`})&&e[2]===0?e:i.length&&(i[2]<e[2]||i[2]===e[2]&&(i[1]<e[1]||i[1]===e[1]&&i[0]<e[0]))?i:r.length&&(r[2]>e[2]||r[2]===e[2]&&(r[1]>e[1]||r[1]===e[1]&&r[0]>e[0]))?r:e},getFixedDate:function(e,t,n){return e=Math.min(e,31),t=Math.min(t,12),n=parseInt(n||0,10),(t<7&&t%2==0||t>8&&t%2==1)&&(e=Math.min(e,t===2?this.isLeapYear(n)?29:28:30)),[e,t,n]},isLeapYear:function(e){return e%4==0&&e%100!=0||e%400==0},addLeadingZero:function(e){return(e<10?`0`:``)+e},addLeadingZeroForYear:function(e,t){return t?(e<10?`000`:e<100?`00`:e<1e3?`0`:``)+e:(e<10?`0`:``)+e}};var c=s,l=function(e,t){var n=this;n.time=[],n.blocks=[],n.timePattern=e,n.timeFormat=t,n.initBlocks()};l.prototype={initBlocks:function(){var e=this;e.timePattern.forEach(function(){e.blocks.push(2)})},getISOFormatTime:function(){var e=this,t=e.time;return t[2]?e.addLeadingZero(t[0])+`:`+e.addLeadingZero(t[1])+`:`+e.addLeadingZero(t[2]):``},getBlocks:function(){return this.blocks},getTimeFormatOptions:function(){return String(this.timeFormat)===`12`?{maxHourFirstDigit:1,maxHours:12,maxMinutesFirstDigit:5,maxMinutes:60}:{maxHourFirstDigit:2,maxHours:23,maxMinutesFirstDigit:5,maxMinutes:60}},getValidatedTime:function(e){var t=this,n=``;e=e.replace(/[^\d]/g,``);var r=t.getTimeFormatOptions();return t.blocks.forEach(function(i,a){if(e.length>0){var o=e.slice(0,i),s=o.slice(0,1),c=e.slice(i);switch(t.timePattern[a]){case`h`:parseInt(s,10)>r.maxHourFirstDigit?o=`0`+s:parseInt(o,10)>r.maxHours&&(o=r.maxHours+``);break;case`m`:case`s`:parseInt(s,10)>r.maxMinutesFirstDigit?o=`0`+s:parseInt(o,10)>r.maxMinutes&&(o=r.maxMinutes+``)}n+=o,e=c}}),this.getFixedTimeString(n)},getFixedTimeString:function(e){var t,n,r,i=this,a=i.timePattern,o=[],s=0,c=0,l=0,u=0,d=0,f=0;return e.length===6&&(a.forEach(function(e,t){switch(e){case`s`:s=2*t;break;case`m`:c=2*t;break;case`h`:l=2*t}}),f=l,d=c,u=s,t=parseInt(e.slice(u,u+2),10),n=parseInt(e.slice(d,d+2),10),r=parseInt(e.slice(f,f+2),10),o=this.getFixedTime(r,n,t)),e.length===4&&i.timePattern.indexOf(`s`)<0&&(a.forEach(function(e,t){switch(e){case`m`:c=2*t;break;case`h`:l=2*t}}),f=l,d=c,t=0,n=parseInt(e.slice(d,d+2),10),r=parseInt(e.slice(f,f+2),10),o=this.getFixedTime(r,n,t)),i.time=o,o.length===0?e:a.reduce(function(e,t){switch(t){case`s`:return e+i.addLeadingZero(o[2]);case`m`:return e+i.addLeadingZero(o[1]);case`h`:return e+i.addLeadingZero(o[0])}},``)},getFixedTime:function(e,t,n){return n=Math.min(parseInt(n||0,10),60),t=Math.min(t,60),[e=Math.min(e,60),t,n]},addLeadingZero:function(e){return(e<10?`0`:``)+e}};var u=l,d=function(e,t){var n=this;n.delimiter=t||t===``?t:` `,n.delimiterRE=t?RegExp(`\\`+t,`g`):``,n.formatter=e};d.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear();for(var n,r=``,i=!1,a=0,o=(e=(e=(e=e.replace(/[^\d+]/g,``)).replace(/^\+/,`B`).replace(/\+/g,``).replace(`B`,`+`)).replace(t.delimiterRE,``)).length;a<o;a++)n=t.formatter.inputDigit(e.charAt(a)),/[\s()-]/g.test(n)?(r=n,i=!0):i||(r=n);return r=(r=r.replace(/[()]/g,``)).replace(/[\s-]/g,t.delimiter)}};var f=d,p={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb15:[4,6,5],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],mir:[4,4,4,4],unionPay:[4,4,4,4],general:[4,4,4,4]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]\d{0,2}|22[2-9]\d{0,1}|2[3-7]\d{0,2})\d{0,12}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb15:/^(?:2131|1800)\d{0,11}/,jcb:/^(?:35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,mir:/^220[0-4]\d{0,12}/,visa:/^4\d{0,15}/,unionPay:/^(62|81)\d{0,14}/},getStrictBlocks:function(e){var t=e.reduce(function(e,t){return e+t},0);return e.concat(19-t)},getInfo:function(e,t){var n=p.blocks,r=p.re;for(var i in t=!!t,r)if(r[i].test(e)){var a=n[i];return{type:i,blocks:t?this.getStrictBlocks(a):a}}return{type:`unknown`,blocks:t?this.getStrictBlocks(n.general):n.general}}},m=p,h={noop:function(){},strip:function(e,t){return e.replace(t,``)},getPostDelimiter:function(e,t,n){if(n.length===0)return e.slice(-t.length)===t?t:``;var r=``;return n.forEach(function(t){e.slice(-t.length)===t&&(r=t)}),r},getDelimiterREByDelimiter:function(e){return new RegExp(e.replace(/([.?*+^$[\]\\(){}|-])/g,`\\$1`),`g`)},getNextCursorPosition:function(e,t,n,r,i){return t.length===e?n.length:e+this.getPositionOffset(e,t,n,r,i)},getPositionOffset:function(e,t,n,r,i){var a=this.stripDelimiters(t.slice(0,e),r,i),o=this.stripDelimiters(n.slice(0,e),r,i),s=a.length-o.length;return s===0?0:s/Math.abs(s)},stripDelimiters:function(e,t,n){var r=this;if(n.length===0){var i=t?r.getDelimiterREByDelimiter(t):``;return e.replace(i,``)}return n.forEach(function(t){t.split(``).forEach(function(t){e=e.replace(r.getDelimiterREByDelimiter(t),``)})}),e},headStr:function(e,t){return e.slice(0,t)},getMaxLength:function(e){return e.reduce(function(e,t){return e+t},0)},getPrefixStrippedValue:function(e,t,n,r,i,a,o,s,c){if(n===0)return e;if(e===t&&e!==``)return``;if(c&&e.slice(0,1)==`-`){var l=r.slice(0,1)==`-`?r.slice(1):r;return`-`+this.getPrefixStrippedValue(e.slice(1),t,n,l,i,a,o,s,c)}if(r.slice(0,n)!==t&&!s||r.slice(-n)!==t&&s)return o&&!r&&e?e:``;var u=this.stripDelimiters(r,i,a);return e.slice(0,n)===t||s?e.slice(-n)!==t&&s?u.slice(0,-n-1):s?e.slice(0,-n):e.slice(n):u.slice(n)},getFirstDiffIndex:function(e,t){for(var n=0;e.charAt(n)===t.charAt(n);)if(e.charAt(n++)===``)return-1;return n},getFormattedValue:function(e,t,n,r,i,a){var o=``,s=i.length>0,c=``;return n===0?e:(t.forEach(function(t,l){if(e.length>0){var u=e.slice(0,t),d=e.slice(t);c=s?i[a?l-1:l]||c:r,a?(l>0&&(o+=c),o+=u):(o+=u,u.length===t&&l<n-1&&(o+=c)),e=d}}),o)},fixPrefixCursor:function(e,t,n,r){if(e){var i=e.value,a=n||r[0]||` `;if(e.setSelectionRange&&t&&!(t.length+a.length<=i.length)){var o=2*i.length;setTimeout(function(){e.setSelectionRange(o,o)},1)}}},checkFullSelection:function(e){try{return(window.getSelection()||document.getSelection()||{}).toString().length===e.length}catch{}return!1},setSelection:function(e,t,n){if(e===this.getActiveElement(n)&&!(e&&e.value.length<=t))if(e.createTextRange){var r=e.createTextRange();r.move(`character`,t),r.select()}else try{e.setSelectionRange(t,t)}catch{}},getActiveElement:function(e){var t=e.activeElement;return t&&t.shadowRoot?this.getActiveElement(t.shadowRoot):t},isAndroid:function(){return navigator&&/android/i.test(navigator.userAgent)},isAndroidBackspaceKeydown:function(e,t){return!!(this.isAndroid()&&e&&t)&&t===e.slice(0,-1)}},g={assign:function(e,t){return t||={},(e||={}).creditCard=!!t.creditCard,e.creditCardStrictMode=!!t.creditCardStrictMode,e.creditCardType=``,e.onCreditCardTypeChanged=t.onCreditCardTypeChanged||function(){},e.phone=!!t.phone,e.phoneRegionCode=t.phoneRegionCode||`AU`,e.phoneFormatter={},e.time=!!t.time,e.timePattern=t.timePattern||[`h`,`m`,`s`],e.timeFormat=t.timeFormat||`24`,e.timeFormatter={},e.date=!!t.date,e.datePattern=t.datePattern||[`d`,`m`,`Y`],e.dateMin=t.dateMin||``,e.dateMax=t.dateMax||``,e.dateFormatter={},e.numeral=!!t.numeral,e.numeralIntegerScale=t.numeralIntegerScale>0?t.numeralIntegerScale:0,e.numeralDecimalScale=t.numeralDecimalScale>=0?t.numeralDecimalScale:2,e.numeralDecimalMark=t.numeralDecimalMark||`.`,e.numeralThousandsGroupStyle=t.numeralThousandsGroupStyle||`thousand`,e.numeralPositiveOnly=!!t.numeralPositiveOnly,e.stripLeadingZeroes=!1!==t.stripLeadingZeroes,e.signBeforePrefix=!!t.signBeforePrefix,e.tailPrefix=!!t.tailPrefix,e.swapHiddenInput=!!t.swapHiddenInput,e.numericOnly=e.creditCard||e.date||!!t.numericOnly,e.uppercase=!!t.uppercase,e.lowercase=!!t.lowercase,e.prefix=e.creditCard||e.date?``:t.prefix||``,e.noImmediatePrefix=!!t.noImmediatePrefix,e.prefixLength=e.prefix.length,e.rawValueTrimPrefix=!!t.rawValueTrimPrefix,e.copyDelimiter=!!t.copyDelimiter,e.initValue=t.initValue!==void 0&&t.initValue!==null?t.initValue.toString():``,e.delimiter=t.delimiter||t.delimiter===``?t.delimiter:t.date?`/`:t.time?`:`:t.numeral?`,`:(t.phone,` `),e.delimiterLength=e.delimiter.length,e.delimiterLazyShow=!!t.delimiterLazyShow,e.delimiters=t.delimiters||[],e.blocks=t.blocks||[],e.blocksLength=e.blocks.length,e.root=typeof i==`object`&&i?i:window,e.document=t.document||e.root.document,e.maxLength=0,e.backspace=!1,e.result=``,e.onValueChanged=t.onValueChanged||function(){},e}},_=function(e,t){var n=this;if(typeof e==`string`?(n.element=document.querySelector(e),document.querySelectorAll(e).length):e.length!==void 0&&e.length>0?(n.element=e[0],e.length):n.element=e,!n.element)throw Error(`[cleave.js] Please check the element`);t.initValue=n.element.value,n.properties=_.DefaultProperties.assign({},t),n.init()};_.prototype={init:function(){var e=this,t=e.properties;t.numeral||t.phone||t.creditCard||t.time||t.date||t.blocksLength!==0||t.prefix?(t.maxLength=_.Util.getMaxLength(t.blocks),e.isAndroid=_.Util.isAndroid(),e.lastInputValue=``,e.isBackward=``,e.onChangeListener=e.onChange.bind(e),e.onKeyDownListener=e.onKeyDown.bind(e),e.onFocusListener=e.onFocus.bind(e),e.onCutListener=e.onCut.bind(e),e.onCopyListener=e.onCopy.bind(e),e.initSwapHiddenInput(),e.element.addEventListener(`input`,e.onChangeListener),e.element.addEventListener(`keydown`,e.onKeyDownListener),e.element.addEventListener(`focus`,e.onFocusListener),e.element.addEventListener(`cut`,e.onCutListener),e.element.addEventListener(`copy`,e.onCopyListener),e.initPhoneFormatter(),e.initDateFormatter(),e.initTimeFormatter(),e.initNumeralFormatter(),(t.initValue||t.prefix&&!t.noImmediatePrefix)&&e.onInput(t.initValue)):e.onInput(t.initValue)},initSwapHiddenInput:function(){var e=this;if(e.properties.swapHiddenInput){var t=e.element.cloneNode(!0);e.element.parentNode.insertBefore(t,e.element),e.elementSwapHidden=e.element,e.elementSwapHidden.type=`hidden`,e.element=t,e.element.id=``}},initNumeralFormatter:function(){var e=this.properties;e.numeral&&(e.numeralFormatter=new _.NumeralFormatter(e.numeralDecimalMark,e.numeralIntegerScale,e.numeralDecimalScale,e.numeralThousandsGroupStyle,e.numeralPositiveOnly,e.stripLeadingZeroes,e.prefix,e.signBeforePrefix,e.tailPrefix,e.delimiter))},initTimeFormatter:function(){var e=this.properties;e.time&&(e.timeFormatter=new _.TimeFormatter(e.timePattern,e.timeFormat),e.blocks=e.timeFormatter.getBlocks(),e.blocksLength=e.blocks.length,e.maxLength=_.Util.getMaxLength(e.blocks))},initDateFormatter:function(){var e=this.properties;e.date&&(e.dateFormatter=new _.DateFormatter(e.datePattern,e.dateMin,e.dateMax),e.blocks=e.dateFormatter.getBlocks(),e.blocksLength=e.blocks.length,e.maxLength=_.Util.getMaxLength(e.blocks))},initPhoneFormatter:function(){var e=this.properties;if(e.phone)try{e.phoneFormatter=new _.PhoneFormatter(new e.root.Cleave.AsYouTypeFormatter(e.phoneRegionCode),e.delimiter)}catch{throw Error(`[cleave.js] Please include phone-type-formatter.{country}.js lib`)}},onKeyDown:function(e){var t=this,n=e.which||e.keyCode;t.lastInputValue=t.element.value,t.isBackward=n===8},onChange:function(e){var t=this,n=t.properties,r=_.Util;t.isBackward=t.isBackward||e.inputType===`deleteContentBackward`;var i=r.getPostDelimiter(t.lastInputValue,n.delimiter,n.delimiters);t.isBackward&&i?n.postDelimiterBackspace=i:n.postDelimiterBackspace=!1,this.onInput(this.element.value)},onFocus:function(){var e=this,t=e.properties;e.lastInputValue=e.element.value,t.prefix&&t.noImmediatePrefix&&!e.element.value&&this.onInput(t.prefix),_.Util.fixPrefixCursor(e.element,t.prefix,t.delimiter,t.delimiters)},onCut:function(e){_.Util.checkFullSelection(this.element.value)&&(this.copyClipboardData(e),this.onInput(``))},onCopy:function(e){_.Util.checkFullSelection(this.element.value)&&this.copyClipboardData(e)},copyClipboardData:function(e){var t=this.properties,n=_.Util,r=this.element.value,i=``;i=t.copyDelimiter?r:n.stripDelimiters(r,t.delimiter,t.delimiters);try{e.clipboardData?e.clipboardData.setData(`Text`,i):window.clipboardData.setData(`Text`,i),e.preventDefault()}catch{}},onInput:function(e){var t=this,n=t.properties,r=_.Util,i=r.getPostDelimiter(e,n.delimiter,n.delimiters);n.numeral||!n.postDelimiterBackspace||i||(e=r.headStr(e,e.length-n.postDelimiterBackspace.length)),n.phone?(!n.prefix||n.noImmediatePrefix&&!e.length?n.result=n.phoneFormatter.format(e):n.result=n.prefix+n.phoneFormatter.format(e).slice(n.prefix.length),t.updateValueState()):n.numeral?(n.prefix&&n.noImmediatePrefix&&e.length===0?n.result=``:n.result=n.numeralFormatter.format(e),t.updateValueState()):(n.date&&(e=n.dateFormatter.getValidatedDate(e)),n.time&&(e=n.timeFormatter.getValidatedTime(e)),e=r.stripDelimiters(e,n.delimiter,n.delimiters),e=r.getPrefixStrippedValue(e,n.prefix,n.prefixLength,n.result,n.delimiter,n.delimiters,n.noImmediatePrefix,n.tailPrefix,n.signBeforePrefix),e=n.numericOnly?r.strip(e,/[^\d]/g):e,e=n.uppercase?e.toUpperCase():e,e=n.lowercase?e.toLowerCase():e,n.prefix&&(n.tailPrefix?e+=n.prefix:e=n.prefix+e,n.blocksLength===0)?(n.result=e,t.updateValueState()):(n.creditCard&&t.updateCreditCardPropsByValue(e),e=r.headStr(e,n.maxLength),n.result=r.getFormattedValue(e,n.blocks,n.blocksLength,n.delimiter,n.delimiters,n.delimiterLazyShow),t.updateValueState()))},updateCreditCardPropsByValue:function(e){var t,n=this.properties,r=_.Util;r.headStr(n.result,4)!==r.headStr(e,4)&&(t=_.CreditCardDetector.getInfo(e,n.creditCardStrictMode),n.blocks=t.blocks,n.blocksLength=n.blocks.length,n.maxLength=r.getMaxLength(n.blocks),n.creditCardType!==t.type&&(n.creditCardType=t.type,n.onCreditCardTypeChanged.call(this,n.creditCardType)))},updateValueState:function(){var e=this,t=_.Util,n=e.properties;if(e.element){var r=e.element.selectionEnd,i=e.element.value,a=n.result;r=t.getNextCursorPosition(r,i,a,n.delimiter,n.delimiters),e.isAndroid?window.setTimeout(function(){e.element.value=a,t.setSelection(e.element,r,n.document,!1),e.callOnValueChanged()},1):(e.element.value=a,n.swapHiddenInput&&(e.elementSwapHidden.value=e.getRawValue()),t.setSelection(e.element,r,n.document,!1),e.callOnValueChanged())}},callOnValueChanged:function(){var e=this,t=e.properties;t.onValueChanged.call(e,{target:{name:e.element.name,value:t.result,rawValue:e.getRawValue()}})},setPhoneRegionCode:function(e){var t=this;t.properties.phoneRegionCode=e,t.initPhoneFormatter(),t.onChange()},setRawValue:function(e){var t=this,n=t.properties;e=e==null?``:e.toString(),n.numeral&&(e=e.replace(`.`,n.numeralDecimalMark)),n.postDelimiterBackspace=!1,t.element.value=e,t.onInput(e)},getRawValue:function(){var e=this.properties,t=_.Util,n=this.element.value;return e.rawValueTrimPrefix&&(n=t.getPrefixStrippedValue(n,e.prefix,e.prefixLength,e.result,e.delimiter,e.delimiters,e.noImmediatePrefix,e.tailPrefix,e.signBeforePrefix)),n=e.numeral?e.numeralFormatter.getRawValue(n):t.stripDelimiters(n,e.delimiter,e.delimiters)},getISOFormatDate:function(){var e=this.properties;return e.date?e.dateFormatter.getISOFormatDate():``},getISOFormatTime:function(){var e=this.properties;return e.time?e.timeFormatter.getISOFormatTime():``},getFormattedValue:function(){return this.element.value},destroy:function(){var e=this;e.element.removeEventListener(`input`,e.onChangeListener),e.element.removeEventListener(`keydown`,e.onKeyDownListener),e.element.removeEventListener(`focus`,e.onFocusListener),e.element.removeEventListener(`cut`,e.onCutListener),e.element.removeEventListener(`copy`,e.onCopyListener)},toString:function(){return`[Cleave Object]`}},_.NumeralFormatter=o,_.DateFormatter=c,_.TimeFormatter=u,_.PhoneFormatter=f,_.CreditCardDetector=m,_.Util=h,_.DefaultProperties=g,(typeof i==`object`&&i?i:window).Cleave=_;var v=_,y=class extends t.t(){constructor(...e){super(...e),this.value={cardName:``,cardNumber:``,expirationDate:``,cvv:``},this.cardType=``,this.isCardNameValid=!0,this.isCardNumberValid=!0,this.isExpirationDateValid=!0,this.isCvvValid=!0}firstUpdated(){new v(this.cardNumberInput,{creditCard:!0,creditCardStrictMode:!0,onCreditCardTypeChanged:e=>{this.cardType=e,e===`unknown`?(this.isCardNumberValid=!1,this.cardNumberInput.setCustomValidity(`Please enter a valid card number.`),this.cardNumberInput.error=!0):(this.isCardNumberValid=!0,this.cardNumberInput.setCustomValidity(``),this.cardNumberInput.error=!1,this.cvvInput.maxlength=e===`amex`?4:3)}}),new v(this.expirationDateInput,{date:!0,datePattern:[`m`,`y`],onValueChanged:e=>{let t=e.target.value;if(!t||t.length<5)this.isExpirationDateValid=!1,this.expirationDateInput.setCustomValidity(`Please enter a valid expiration date (MM/YY).`),this.expirationDateInput.error=!0;else{let[e,n]=t.split(`/`),r=new Date,i=r.getFullYear()%100,a=r.getMonth()+1,o=parseInt(e,10),s=parseInt(n,10);s<i||s===i&&o<a?(this.isExpirationDateValid=!1,this.expirationDateInput.setCustomValidity(`Card has expired.`),this.expirationDateInput.error=!0):(this.isExpirationDateValid=!0,this.expirationDateInput.setCustomValidity(``),this.expirationDateInput.error=!1)}}}),new v(this.cvvInput,{blocks:[4],numericOnly:!0,onValueChanged:e=>{let t=this.cardType===`amex`?4:3;e.target.value.length<t?(this.isCvvValid=!1,this.cvvInput.setCustomValidity(`Please enter a valid ${t}-digit CVV.`),this.cvvInput.error=!0):(this.isCvvValid=!0,this.cvvInput.setCustomValidity(``),this.cvvInput.error=!1)}}),new v(this.cardNameInput,{uppercase:!0,delimiter:` `,onValueChanged:e=>{!e.target.value||e.target.value.length<3?(this.isCardNameValid=!1,this.cardNameInput.setCustomValidity(`Please enter the name as it appears on the card.`),this.cardNameInput.error=!0):(this.isCardNameValid=!0,this.cardNameInput.setCustomValidity(``),this.cardNameInput.error=!1)}})}reportValidity(){return this.form.reportValidity()}checkValidity(){return!!this.form.reportValidity()}emitChange(){this.dispatchEvent(new CustomEvent(`change`,{detail:{...this.value},bubbles:!0}))}render(){let e=this.getCardIcon();return r.html`
|
|
2
|
-
<schmancy-form
|
|
3
|
-
@change=${e=>{e.stopPropagation(),e.preventDefault()}}
|
|
4
|
-
>
|
|
5
|
-
<schmancy-grid gap="md" class="w-full">
|
|
6
|
-
<!-- Card Name Field -->
|
|
7
|
-
<schmancy-input
|
|
8
|
-
autocomplete="cc-name"
|
|
9
|
-
id="cardName"
|
|
10
|
-
.value=${this.cardName??``}
|
|
11
|
-
.error=${!this.isCardNameValid}
|
|
12
|
-
type="text"
|
|
13
|
-
label="Name on card"
|
|
14
|
-
required
|
|
15
|
-
hint="${this.isCardNameValid?`Enter the name exactly as it appears on your card`:`Please enter the name as it appears on the card`}"
|
|
16
|
-
@change=${e=>{this.cardName=e.detail.value,this.value.cardName=e.detail.value,this.emitChange()}}
|
|
17
|
-
></schmancy-input>
|
|
18
|
-
|
|
19
|
-
<!-- Card Number Field with Card Type Indicator -->
|
|
20
|
-
<div class="relative w-full">
|
|
21
|
-
<schmancy-input
|
|
22
|
-
autocomplete="cc-number"
|
|
23
|
-
id="cardNumber"
|
|
24
|
-
type="text"
|
|
25
|
-
label="Card number"
|
|
26
|
-
.error=${!this.isCardNumberValid}
|
|
27
|
-
required
|
|
28
|
-
hint="${this.isCardNumberValid?`Your 16-digit card number`:`Please enter a valid card number`}"
|
|
29
|
-
@change=${e=>{this.cardNumber=e.detail.value,this.value.cardNumber=e.detail.value,this.emitChange()}}
|
|
30
|
-
></schmancy-input>
|
|
31
|
-
${e?r.html`<div class="absolute right-3 top-1/2 transform -translate-y-1/4">${e}</div>`:``}
|
|
32
|
-
</div>
|
|
33
|
-
|
|
34
|
-
<!-- Responsive grid for expiration date and CVV -->
|
|
35
|
-
<schmancy-grid gap="md" cols="1fr 1fr" class="w-full">
|
|
36
|
-
<schmancy-input
|
|
37
|
-
autocomplete="cc-exp"
|
|
38
|
-
id="expirationDate"
|
|
39
|
-
@change=${e=>{this.expirationDate=e.detail.value,this.value.expirationDate=e.detail.value,this.emitChange()}}
|
|
40
|
-
type="text"
|
|
41
|
-
.error=${!this.isExpirationDateValid}
|
|
42
|
-
label="Expiration date"
|
|
43
|
-
placeholder="MM/YY"
|
|
44
|
-
required
|
|
45
|
-
hint="${this.isExpirationDateValid?`MM/YY format`:`Invalid expiration date`}"
|
|
46
|
-
></schmancy-input>
|
|
47
|
-
|
|
48
|
-
<schmancy-input
|
|
49
|
-
id="cvv"
|
|
50
|
-
autocomplete="cc-csc"
|
|
51
|
-
@change=${e=>{this.cvv=e.detail.value,this.value.cvv=e.detail.value,this.emitChange()}}
|
|
52
|
-
label="CVV"
|
|
53
|
-
.error=${!this.isCvvValid}
|
|
54
|
-
required
|
|
55
|
-
type="text"
|
|
56
|
-
maxlength="${this.cardType===`amex`?`4`:`3`}"
|
|
57
|
-
minlength="${this.cardType===`amex`?`4`:`3`}"
|
|
58
|
-
hint="${this.isCvvValid?`Security code on back of card`:`Invalid security code`}"
|
|
59
|
-
></schmancy-input>
|
|
60
|
-
</schmancy-grid>
|
|
61
|
-
|
|
62
|
-
<!-- Show card acceptability notice -->
|
|
63
|
-
<div class="text-sm text-secondary-onContainer mt-2">${this.renderSecurityNotice()}</div>
|
|
64
|
-
|
|
65
|
-
<slot></slot>
|
|
66
|
-
</schmancy-grid>
|
|
67
|
-
</schmancy-form>
|
|
68
|
-
`}getCardIcon(){switch(this.cardType){case`visa`:case`mastercard`:case`amex`:case`discover`:return r.html`<schmancy-icon>credit_card</schmancy-icon>`;default:return this.cardNumber?r.html`<schmancy-icon>credit_card</schmancy-icon>`:null}}renderSecurityNotice(){return r.html`
|
|
69
|
-
<div class="flex items-center gap-2">
|
|
70
|
-
<schmancy-icon size="18px">lock</schmancy-icon>
|
|
71
|
-
<span>Your payment information is secure and encrypted</span>
|
|
72
|
-
</div>
|
|
73
|
-
`}};e.i([(0,n.property)({type:Object,reflect:!0})],y.prototype,`value`,void 0),e.i([(0,n.state)()],y.prototype,`cardType`,void 0),e.i([(0,n.state)()],y.prototype,`cardName`,void 0),e.i([(0,n.state)()],y.prototype,`cardNumber`,void 0),e.i([(0,n.state)()],y.prototype,`expirationDate`,void 0),e.i([(0,n.state)()],y.prototype,`cvv`,void 0),e.i([(0,n.state)()],y.prototype,`isCardNameValid`,void 0),e.i([(0,n.state)()],y.prototype,`isCardNumberValid`,void 0),e.i([(0,n.state)()],y.prototype,`isExpirationDateValid`,void 0),e.i([(0,n.state)()],y.prototype,`isCvvValid`,void 0),e.i([(0,n.query)(`#cardNumber`)],y.prototype,`cardNumberInput`,void 0),e.i([(0,n.query)(`#expirationDate`)],y.prototype,`expirationDateInput`,void 0),e.i([(0,n.query)(`#cvv`)],y.prototype,`cvvInput`,void 0),e.i([(0,n.query)(`#cardName`)],y.prototype,`cardNameInput`,void 0),e.i([(0,n.query)(`schmancy-form`)],y.prototype,`form`,void 0),y=e.i([(0,n.customElement)(`schmancy-payment-card-form`)],y),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return y}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-Sfyco9-n.js","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\nimport { PresetUnit } from './date-range-presets'\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/**\r\n * Calculate the appropriate shift unit and amount for a date range\r\n */\r\nexport function calculateShiftParams(\r\n\tfromDate: dayjs.Dayjs,\r\n\ttoDate: dayjs.Dayjs,\r\n\tactivePresetStep?: PresetUnit\r\n): { unit: PresetUnit; amount: number } {\r\n\tif (activePresetStep) {\r\n\t\treturn { unit: activePresetStep, amount: 1 }\r\n\t}\r\n\r\n\tconst rangeDurationInDays = toDate.diff(fromDate, 'day')\r\n\r\n\t// For very long ranges, use years\r\n\tif (rangeDurationInDays >= 360) {\r\n\t\treturn { unit: 'year', amount: Math.round(rangeDurationInDays / 365) }\r\n\t}\r\n\t// For long ranges, use quarters\r\n\telse if (rangeDurationInDays >= 90) {\r\n\t\treturn { unit: 'quarter', amount: Math.round(rangeDurationInDays / 90) }\r\n\t}\r\n\t// For medium-long ranges, use months\r\n\telse if (rangeDurationInDays >= 30) {\r\n\t\treturn { unit: 'month', amount: Math.round(rangeDurationInDays / 30) }\r\n\t}\r\n\t// For medium ranges, use weeks\r\n\telse if (rangeDurationInDays >= 7) {\r\n\t\treturn { unit: 'week', amount: Math.round(rangeDurationInDays / 7) }\r\n\t}\r\n\t// For shorter ranges, use days\r\n\telse {\r\n\t\treturn { unit: 'day', amount: rangeDurationInDays + 1 }\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper method to safely add/subtract quarter values\r\n */\r\nexport function adjustQuarter(date: dayjs.Dayjs, amount: number, direction: 1 | -1): dayjs.Dayjs {\r\n\t// Get current quarter (1-4)\r\n\tconst currentQuarter = date.quarter()\r\n\r\n\t// Calculate new quarter\r\n\tlet newQuarter = currentQuarter + direction * amount\r\n\tlet yearAdjustment = 0\r\n\r\n\t// Handle year boundaries\r\n\twhile (newQuarter > 4) {\r\n\t\tnewQuarter -= 4\r\n\t\tyearAdjustment += 1\r\n\t}\r\n\r\n\twhile (newQuarter < 1) {\r\n\t\tnewQuarter += 4\r\n\t\tyearAdjustment -= 1\r\n\t}\r\n\r\n\t// Adjust year if needed\r\n\tconst adjustedDate = date.add(yearAdjustment, 'year')\r\n\r\n\t// Set to the start of the new quarter\r\n\tconst newDate = adjustedDate.month((newQuarter - 1) * 3)\r\n\r\n\t// Maintain the same day of month if possible\r\n\tconst daysInMonth = newDate.daysInMonth()\r\n\tconst targetDay = Math.min(date.date(), daysInMonth)\r\n\r\n\treturn newDate.date(targetDay)\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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"}
|