@mhmo91/schmancy 0.10.37 → 0.10.39
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 +39 -0
- package/dist/{SchmancyElement-CDT2q1lA.js → SchmancyElement-BNnyBOwk.js} +9 -7
- package/dist/{SchmancyElement-CDT2q1lA.js.map → SchmancyElement-BNnyBOwk.js.map} +1 -1
- package/dist/{SchmancyElement-BHfQg3Tj.cjs → SchmancyElement-C41uPa6l.cjs} +2 -2
- package/dist/{SchmancyElement-BHfQg3Tj.cjs.map → SchmancyElement-C41uPa6l.cjs.map} +1 -1
- package/dist/agent/schmancy.agent.js +2334 -2297
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/area-2FrTZI_T.cjs +21 -0
- package/dist/area-2FrTZI_T.cjs.map +1 -0
- package/dist/{area-KtULlxuA.js → area-KVDzhT4s.js} +4 -4
- package/dist/area-KVDzhT4s.js.map +1 -0
- package/dist/area.cjs +1 -1
- package/dist/area.js +2 -2
- package/dist/{audio-zIJVTo_V.js → audio-D3gnp15Y.js} +1 -1
- package/dist/{audio-zIJVTo_V.js.map → audio-D3gnp15Y.js.map} +1 -1
- package/dist/{audio-CUMAv9D_.cjs → audio-EaD0Ggfh.cjs} +1 -1
- package/dist/{audio-CUMAv9D_.cjs.map → audio-EaD0Ggfh.cjs.map} +1 -1
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/autocomplete-DMmxsvUe.cjs +115 -0
- package/dist/autocomplete-DMmxsvUe.cjs.map +1 -0
- package/dist/{autocomplete-DIScyo8Q.js → autocomplete-DWiEqlQf.js} +96 -96
- package/dist/autocomplete-DWiEqlQf.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +1 -1
- package/dist/avatar.js +3 -3
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-OBZ77exO.cjs → boat-DsFJNfPH.cjs} +1 -1
- package/dist/{boat-OBZ77exO.cjs.map → boat-DsFJNfPH.cjs.map} +1 -1
- package/dist/{boat-BHPqSqJd.js → boat-fqodYt2n.js} +4 -4
- package/dist/{boat-BHPqSqJd.js.map → boat-fqodYt2n.js.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +3 -3
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js +4 -4
- package/dist/breadcrumb.js.map +1 -1
- package/dist/{busy-BJNsKSCM.cjs → busy-Cj_PV7oC.cjs} +1 -1
- package/dist/{busy-BJNsKSCM.cjs.map → busy-Cj_PV7oC.cjs.map} +1 -1
- package/dist/{busy-Dut78y4L.js → busy-enYCTssB.js} +2 -2
- package/dist/{busy-Dut78y4L.js.map → busy-enYCTssB.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button-B9RfBt-n.cjs +63 -0
- package/dist/button-B9RfBt-n.cjs.map +1 -0
- package/dist/{button-kcpPQavY.js → button-D6LJC-HC.js} +11 -9
- package/dist/button-D6LJC-HC.js.map +1 -0
- package/dist/button.cjs +7 -6
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +18 -16
- package/dist/button.js.map +1 -1
- package/dist/{card-DxSKxCid.js → card-BHTz1GwB.js} +16 -16
- package/dist/card-BHTz1GwB.js.map +1 -0
- package/dist/{card-BLxPLqdQ.cjs → card-ThG_ZaQE.cjs} +3 -3
- package/dist/card-ThG_ZaQE.cjs.map +1 -0
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-BCLkhp5G.cjs → checkbox-C4zeib84.cjs} +2 -2
- package/dist/{checkbox-BCLkhp5G.cjs.map → checkbox-C4zeib84.cjs.map} +1 -1
- package/dist/{checkbox-B1wiM3Dv.js → checkbox-Ce0DlAdW.js} +6 -6
- package/dist/{checkbox-B1wiM3Dv.js.map → checkbox-Ce0DlAdW.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-vWmwqQed.js → chips-BoZSpSh_.js} +21 -19
- package/dist/chips-BoZSpSh_.js.map +1 -0
- package/dist/{chips-C9dS1WKn.cjs → chips-wfJ7YtWv.cjs} +4 -3
- package/dist/chips-wfJ7YtWv.cjs.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +1 -1
- package/dist/connectivity.js +3 -3
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
- package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
- package/dist/{date-range-BV6HuvLw.cjs → date-range-BHSzlwSL.cjs} +2 -2
- package/dist/date-range-BHSzlwSL.cjs.map +1 -0
- package/dist/{date-range-D3ge1b4c.js → date-range-DJrdpzev.js} +4 -4
- package/dist/date-range-DJrdpzev.js.map +1 -0
- package/dist/{date-range-inline-DpYgdLRv.cjs → date-range-inline-D0I6k84h.cjs} +1 -1
- package/dist/{date-range-inline-DpYgdLRv.cjs.map → date-range-inline-D0I6k84h.cjs.map} +1 -1
- package/dist/{date-range-inline-DuWQaWps.js → date-range-inline-DjRdMZ1z.js} +2 -2
- package/dist/{date-range-inline-DuWQaWps.js.map → date-range-inline-DjRdMZ1z.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +2 -2
- package/dist/{details-C-GZaq3j.js → details-CY49XVfp.js} +43 -35
- package/dist/details-CY49XVfp.js.map +1 -0
- package/dist/details-DQNj2oaU.cjs +164 -0
- package/dist/details-DQNj2oaU.cjs.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{directives-D_l1E5H6.cjs → directives-Bb0S1DKZ.cjs} +3 -3
- package/dist/directives-Bb0S1DKZ.cjs.map +1 -0
- package/dist/{directives-DyS51FUh.js → directives-Bfm1lkoy.js} +6 -8
- package/dist/directives-Bfm1lkoy.js.map +1 -0
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +2 -2
- package/dist/{divider-nQffE0AD.js → divider-BeyX_C0A.js} +2 -2
- package/dist/{divider-nQffE0AD.js.map → divider-BeyX_C0A.js.map} +1 -1
- package/dist/{divider-CBnAmHMZ.cjs → divider-Ck2C1sKl.cjs} +1 -1
- package/dist/{divider-CBnAmHMZ.cjs.map → divider-Ck2C1sKl.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +2 -2
- package/dist/{expand-DvTb-UPR.js → expand-BYsSEtp6.js} +53 -53
- package/dist/expand-BYsSEtp6.js.map +1 -0
- package/dist/expand-CUF163mg.cjs +141 -0
- package/dist/expand-CUF163mg.cjs.map +1 -0
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/fab.cjs +2 -1
- package/dist/fab.cjs.map +1 -1
- package/dist/fab.js +3 -2
- package/dist/fab.js.map +1 -1
- package/dist/{float-C-Ko0Le3.js → float-Cgllk_H9.js} +2 -2
- package/dist/{float-C-Ko0Le3.js.map → float-Cgllk_H9.js.map} +1 -1
- package/dist/{float-C17xgMT1.cjs → float-OvqX0nqG.cjs} +1 -1
- package/dist/{float-C17xgMT1.cjs.map → float-OvqX0nqG.cjs.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/form-4GKROq2P.cjs +27 -0
- package/dist/form-4GKROq2P.cjs.map +1 -0
- package/dist/{form-DA0hUu2h.js → form-DxaV_Ose.js} +39 -39
- package/dist/form-DxaV_Ose.js.map +1 -0
- package/dist/form.cjs +3 -3
- package/dist/form.cjs.map +1 -1
- package/dist/form.js +34 -34
- package/dist/form.js.map +1 -1
- package/dist/gravity-6pL6CfIr.cjs.map +1 -1
- package/dist/gravity-sVK3zGBF.js.map +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{icons-C6UfxmHZ.js → icons-CJ2mXcBi.js} +9 -9
- package/dist/icons-CJ2mXcBi.js.map +1 -0
- package/dist/icons-sZ-LybA9.cjs +24 -0
- package/dist/icons-sZ-LybA9.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-BTjZfYyh.js → iframe-DWvN5nGB.js} +11 -11
- package/dist/iframe-DWvN5nGB.js.map +1 -0
- package/dist/{iframe-wuYT2xFz.cjs → iframe-DpCv-QH2.cjs} +7 -7
- package/dist/iframe-DpCv-QH2.cjs.map +1 -0
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +35 -35
- package/dist/{input-B_4g2ulO.js → input-BCCHz6tB.js} +7 -7
- package/dist/input-BCCHz6tB.js.map +1 -0
- package/dist/{input-BrDiIT60.cjs → input-Z-3N5JMv.cjs} +2 -2
- package/dist/input-Z-3N5JMv.cjs.map +1 -0
- package/dist/{input-chip-BlWhOruv.js → input-chip-BOrcKH-H.js} +2 -2
- package/dist/{input-chip-BlWhOruv.js.map → input-chip-BOrcKH-H.js.map} +1 -1
- package/dist/{input-chip-B-XWh4aE.cjs → input-chip-ChAgRCXZ.cjs} +1 -1
- package/dist/{input-chip-B-XWh4aE.cjs.map → input-chip-ChAgRCXZ.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json.cjs +1 -1
- package/dist/json.js +3 -3
- package/dist/kbd.cjs +1 -1
- package/dist/kbd.js +2 -2
- package/dist/{layout-Dxit9enO.js → layout-CFiG3lNT.js} +1 -1
- package/dist/{layout-Dxit9enO.js.map → layout-CFiG3lNT.js.map} +1 -1
- package/dist/{layout-BhyIcEVu.cjs → layout-DZ4dpLh9.cjs} +1 -1
- package/dist/{layout-BhyIcEVu.cjs.map → layout-DZ4dpLh9.cjs.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/lazy-BaAiIUru.js +19 -0
- package/dist/lazy-BaAiIUru.js.map +1 -0
- package/dist/lazy-C-7a4FAe.cjs +1 -0
- package/dist/lazy-C-7a4FAe.cjs.map +1 -0
- package/dist/{lightbox-D85XAAuC.js → lightbox-B7Y4Nij_.js} +2 -2
- package/dist/lightbox-B7Y4Nij_.js.map +1 -0
- package/dist/{lightbox-CVBogswK.cjs → lightbox-Dpwsn8Qr.cjs} +1 -1
- package/dist/lightbox-Dpwsn8Qr.cjs.map +1 -0
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-nVjLskgx.cjs → list-BhM-6dAi.cjs} +1 -1
- package/dist/{list-nVjLskgx.cjs.map → list-BhM-6dAi.cjs.map} +1 -1
- package/dist/{list-DOF_yVn5.js → list-C5WVoIfJ.js} +2 -2
- package/dist/{list-DOF_yVn5.js.map → list-C5WVoIfJ.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/magnetic-DKtc4umC.cjs.map +1 -1
- package/dist/magnetic-DaOOv5Dz.js.map +1 -1
- package/dist/{menu-QrAK5Uu9.js → menu-Dvi_tQgH.js} +3 -3
- package/dist/{menu-QrAK5Uu9.js.map → menu-Dvi_tQgH.js.map} +1 -1
- package/dist/{menu-DqmNjLgY.cjs → menu-GZARYp6I.cjs} +1 -1
- package/dist/{menu-DqmNjLgY.cjs.map → menu-GZARYp6I.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/{mixins-De1zjyhy.js → mixins-DGBI7YPO.js} +11 -11
- package/dist/mixins-DGBI7YPO.js.map +1 -0
- package/dist/{mixins-DxHpyMHA.cjs → mixins-fIpzhVMd.cjs} +1 -1
- package/dist/mixins-fIpzhVMd.cjs.map +1 -0
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +2 -2
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/navigation-rail.cjs +3 -3
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +11 -10
- package/dist/navigation-rail.js.map +1 -1
- package/dist/notification-B6yDL91t.cjs +24 -0
- package/dist/notification-B6yDL91t.cjs.map +1 -0
- package/dist/{notification-BtAK7NK8.js → notification-BB9OBRCr.js} +22 -22
- package/dist/notification-BB9OBRCr.js.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-DHwA0miA.js → option-B21ImL0k.js} +2 -2
- package/dist/{option-DHwA0miA.js.map → option-B21ImL0k.js.map} +1 -1
- package/dist/{option-DnSPa8ro.cjs → option-CJQM5I9q.cjs} +1 -1
- package/dist/{option-DnSPa8ro.cjs.map → option-CJQM5I9q.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-Del1sBEB.js → overlay-DwJWVyk2.js} +75 -67
- package/dist/overlay-DwJWVyk2.js.map +1 -0
- package/dist/overlay-N0trD-4u.cjs +58 -0
- package/dist/overlay-N0trD-4u.cjs.map +1 -0
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-BV9umTAl.cjs → overlay.confirm-body-CtXIi421.cjs} +3 -3
- package/dist/overlay.confirm-body-CtXIi421.cjs.map +1 -0
- package/dist/{overlay.confirm-body-DSONXUzl.js → overlay.confirm-body-DwzKhXxM.js} +10 -10
- package/dist/overlay.confirm-body-DwzKhXxM.js.map +1 -0
- package/dist/overlay.js +4 -4
- package/dist/{overlay.service-BTp5Oq7f.js → overlay.service-BDLi0p5M.js} +4 -4
- package/dist/{overlay.service-BTp5Oq7f.js.map → overlay.service-BDLi0p5M.js.map} +1 -1
- package/dist/overlay.service-Dbu5uP9E.cjs +1 -0
- package/dist/{overlay.service-XLlrsSdA.cjs.map → overlay.service-Dbu5uP9E.cjs.map} +1 -1
- package/dist/{progress-DUbTL9g9.cjs → progress-B-Qg44XY.cjs} +1 -1
- package/dist/{progress-DUbTL9g9.cjs.map → progress-B-Qg44XY.cjs.map} +1 -1
- package/dist/{progress-DYA83CFU.js → progress-CUSS1sNz.js} +2 -2
- package/dist/{progress-DYA83CFU.js.map → progress-CUSS1sNz.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-DxX0iJBo.js → radio-group-AHLvrN8O.js} +7 -7
- package/dist/radio-group-AHLvrN8O.js.map +1 -0
- package/dist/{radio-group-B-ORNtvR.cjs → radio-group-BEtvCSS1.cjs} +2 -2
- package/dist/radio-group-BEtvCSS1.cjs.map +1 -0
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +1 -1
- package/dist/range.js +2 -2
- package/dist/select-BWpV2iv-.cjs +56 -0
- package/dist/select-BWpV2iv-.cjs.map +1 -0
- package/dist/{select-C7gkA-ab.js → select-Cawz88lG.js} +46 -46
- package/dist/select-Cawz88lG.js.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.js +2 -2
- package/dist/skills/SKILL.md +9 -0
- package/dist/skills/overlay.md +14 -7
- package/dist/skills/schmancy/SKILL.md +9 -0
- package/dist/skills/schmancy/overlay.md +14 -7
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +2 -2
- package/dist/{sound.service-O0232os6.js → sound.service-CK-5zob-.js} +4 -3
- package/dist/sound.service-CK-5zob-.js.map +1 -0
- package/dist/{sound.service-C7FDY_yD.cjs → sound.service-D2GGaBXc.cjs} +1 -1
- package/dist/sound.service-D2GGaBXc.cjs.map +1 -0
- package/dist/{splash-screen-jfE47xl0.js → splash-screen-BUEtjHXC.js} +13 -13
- package/dist/splash-screen-BUEtjHXC.js.map +1 -0
- package/dist/{splash-screen-DIS4odDr.cjs → splash-screen-DqPuipox.cjs} +6 -6
- package/dist/splash-screen-DqPuipox.cjs.map +1 -0
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-BP3h-9d9.js → src-8VJ7eluk.js} +46 -45
- package/dist/src-8VJ7eluk.js.map +1 -0
- package/dist/{src-Um_pzb-U.cjs → src-GJA8uSAS.cjs} +7 -6
- package/dist/src-GJA8uSAS.cjs.map +1 -0
- package/dist/{state-Bj0M9a6T.cjs → state-BxDNox-2.cjs} +1 -1
- package/dist/{state-Bj0M9a6T.cjs.map → state-BxDNox-2.cjs.map} +1 -1
- package/dist/{state-DscWQpoM.js → state-CnZCDMT0.js} +9 -9
- package/dist/{state-DscWQpoM.js.map → state-CnZCDMT0.js.map} +1 -1
- package/dist/state.cjs +1 -1
- package/dist/state.js +2 -2
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +2 -2
- package/dist/{surface-B4Wn4SOO.js → surface-BMdG3dKQ.js} +2 -2
- package/dist/{surface-B4Wn4SOO.js.map → surface-BMdG3dKQ.js.map} +1 -1
- package/dist/{surface-DRq6cVW6.cjs → surface-CWwYD_z2.cjs} +1 -1
- package/dist/{surface-DRq6cVW6.cjs.map → surface-CWwYD_z2.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +4 -4
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +11 -11
- package/dist/switch.js.map +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +2 -2
- package/dist/{tabs-CnQPo-XS.js → tabs-CDQYDc6v.js} +2 -2
- package/dist/{tabs-CnQPo-XS.js.map → tabs-CDQYDc6v.js.map} +1 -1
- package/dist/{tabs-Ca_fbHPW.cjs → tabs-CbD9E1gd.cjs} +1 -1
- package/dist/{tabs-Ca_fbHPW.cjs.map → tabs-CbD9E1gd.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/textarea-Brgi-vD2.cjs +43 -0
- package/dist/textarea-Brgi-vD2.cjs.map +1 -0
- package/dist/{textarea-BvqENhTW.js → textarea-MPyrMi-S.js} +4 -4
- package/dist/textarea-MPyrMi-S.js.map +1 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-BSwJ2YZo.cjs → theme-BMbXoqi0.cjs} +1 -1
- package/dist/{theme-BSwJ2YZo.cjs.map → theme-BMbXoqi0.cjs.map} +1 -1
- package/dist/{theme-BV0EzHQ1.js → theme-DZu-xmVp.js} +5 -5
- package/dist/{theme-BV0EzHQ1.js.map → theme-DZu-xmVp.js.map} +1 -1
- package/dist/{theme-button-C6fpUzPM.cjs → theme-button-B0OLb-43.cjs} +1 -1
- package/dist/{theme-button-C6fpUzPM.cjs.map → theme-button-B0OLb-43.cjs.map} +1 -1
- package/dist/{theme-button-O_xNCgI7.js → theme-button-D_qGvEYs.js} +2 -2
- package/dist/{theme-button-O_xNCgI7.js.map → theme-button-D_qGvEYs.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.js +3 -3
- package/dist/{theme.service-DwLhhOmP.js → theme.service-7VkM-hVf.js} +15 -11
- package/dist/theme.service-7VkM-hVf.js.map +1 -0
- package/dist/theme.service-B15FdjOS.cjs +1 -0
- package/dist/theme.service-B15FdjOS.cjs.map +1 -0
- package/dist/tree.cjs +4 -4
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +8 -8
- package/dist/tree.js.map +1 -1
- package/dist/{typography-opFYuUYS.cjs → typography-D4Fo1UGh.cjs} +3 -3
- package/dist/{typography-opFYuUYS.cjs.map → typography-D4Fo1UGh.cjs.map} +1 -1
- package/dist/{typography-Dtdooaic.js → typography-SZhjb_4R.js} +9 -9
- package/dist/{typography-Dtdooaic.js.map → typography-SZhjb_4R.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +2 -2
- package/dist/{window-ConcHirJ.js → window-BDVyrBnk.js} +101 -100
- package/dist/window-BDVyrBnk.js.map +1 -0
- package/dist/window-BbBYjm7R.cjs +59 -0
- package/dist/window-BbBYjm7R.cjs.map +1 -0
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/SKILL.md +9 -0
- package/skills/schmancy/overlay.md +14 -7
- package/src/area/area.component.ts +1 -1
- package/src/area/area.service.test.ts +2 -2
- package/src/area/area.service.ts +1 -1
- package/src/area/lazy.ts +87 -83
- package/src/audio/sound.service.ts +3 -3
- package/src/badge/badge.ts +1 -0
- package/src/breadcrumb/breadcrumb.ts +2 -2
- package/src/button/button.ts +12 -11
- package/src/button/icon-button.ts +19 -18
- package/src/card/card.ts +16 -16
- package/src/content-drawer/drawer.ts +6 -6
- package/src/details/details.ts +55 -55
- package/src/directives/ai-badge.ts +2 -1
- package/src/directives/animate-text.ts +2 -1
- package/src/directives/art/art.directive.ts +2 -1
- package/src/directives/battery.ts +2 -1
- package/src/directives/confirm-click.ts +5 -3
- package/src/directives/cursor-glow.ts +2 -1
- package/src/directives/cycle-text.ts +2 -1
- package/src/directives/depth-of-field.ts +2 -1
- package/src/directives/drag.ts +4 -2
- package/src/directives/fyi.ts +2 -1
- package/src/directives/gravity.ts +2 -1
- package/src/directives/hummingbird.ts +2 -1
- package/src/directives/intersect.ts +3 -2
- package/src/directives/liquid.ts +2 -1
- package/src/directives/living-border.ts +2 -1
- package/src/directives/long-press.ts +2 -1
- package/src/directives/magnetic.ts +2 -1
- package/src/directives/missed-punch.ts +2 -1
- package/src/directives/nebula.ts +6 -5
- package/src/directives/overflow-within.ts +2 -1
- package/src/directives/reveal.ts +2 -1
- package/src/directives/urgent.ts +2 -1
- package/src/directives/working-snake.ts +2 -1
- package/src/expand/expand-root.component.ts +27 -27
- package/src/expand/expand.component.ts +48 -48
- package/src/fab/fab.ts +1 -0
- package/src/form/fields/autocomplete/autocomplete.ts +154 -154
- package/src/form/fields/checkbox/checkbox.ts +4 -4
- package/src/form/fields/chips/chips.ts +2 -2
- package/src/form/fields/chips/filter-chip.ts +16 -15
- package/src/form/fields/date-range/date-range.ts +2 -2
- package/src/form/fields/input/input.ts +12 -12
- package/src/form/fields/radio-group/radio-button.ts +2 -2
- package/src/form/fields/radio-group/radio-group.ts +3 -3
- package/src/form/fields/select/select.ts +56 -56
- package/src/form/fields/switch/switch.ts +10 -10
- package/src/form/fields/textarea/textarea.ts +2 -2
- package/src/form/form-summary.ts +33 -33
- package/src/form/form.ts +45 -45
- package/src/icons/icon.ts +10 -8
- package/src/iframe/iframe.ts +11 -11
- package/src/lightbox/flip-directive.ts +2 -1
- package/src/lightbox/lightbox.directive.ts +2 -1
- package/src/nav-drawer/navbar.ts +3 -3
- package/src/navigation-rail/navigation-rail.ts +10 -10
- package/src/notification/notification.ts +22 -22
- package/src/overlay/overlay.component.ts +106 -83
- package/src/overlay/overlay.confirm-body.ts +4 -4
- package/src/overlay/overlay.service.ts +3 -3
- package/src/overlay/overlay.types.ts +4 -2
- package/src/splash-screen/splash-screen.ts +11 -11
- package/src/state/index.ts +12 -12
- package/src/state/schmancy-context.ts +9 -9
- package/src/teleport/teleport.component.ts +2 -2
- package/src/theme/theme.service.ts +17 -17
- package/src/tree/tree.ts +7 -7
- package/src/typography/typography.ts +7 -7
- package/src/window/window-manager.ts +20 -20
- package/src/window/window.ts +100 -100
- package/types/mixins/SchmancyElement.d.ts +3 -2
- package/types/mixins/formField.mixin.d.ts +1 -1
- package/types/src/area/area.service.d.ts +1 -1
- package/types/src/area/lazy.d.ts +0 -6
- package/types/src/audio/sound.service.d.ts +1 -2
- package/types/src/breadcrumb/breadcrumb.d.ts +1 -1
- package/types/src/button/button.d.ts +3 -3
- package/types/src/button/icon-button.d.ts +6 -7
- package/types/src/card/card.d.ts +5 -5
- package/types/src/content-drawer/drawer.d.ts +1 -1
- package/types/src/details/details.d.ts +2 -21
- package/types/src/directives/ai-badge.d.ts +2 -2
- package/types/src/directives/animate-text.d.ts +2 -2
- package/types/src/directives/art/art.directive.d.ts +2 -2
- package/types/src/directives/battery.d.ts +2 -2
- package/types/src/directives/confirm-click.d.ts +2 -2
- package/types/src/directives/cursor-glow.d.ts +2 -2
- package/types/src/directives/cycle-text.d.ts +2 -2
- package/types/src/directives/depth-of-field.d.ts +2 -2
- package/types/src/directives/drag.d.ts +4 -4
- package/types/src/directives/fyi.d.ts +2 -2
- package/types/src/directives/gravity.d.ts +2 -2
- package/types/src/directives/hummingbird.d.ts +2 -2
- package/types/src/directives/intersect.d.ts +2 -2
- package/types/src/directives/liquid.d.ts +2 -2
- package/types/src/directives/living-border.d.ts +2 -2
- package/types/src/directives/long-press.d.ts +2 -2
- package/types/src/directives/magnetic.d.ts +2 -2
- package/types/src/directives/missed-punch.d.ts +2 -2
- package/types/src/directives/nebula.d.ts +2 -2
- package/types/src/directives/overflow-within.d.ts +2 -2
- package/types/src/directives/reveal.d.ts +2 -2
- package/types/src/directives/urgent.d.ts +2 -2
- package/types/src/directives/working-snake.d.ts +2 -2
- package/types/src/expand/expand-root.component.d.ts +8 -8
- package/types/src/expand/expand.component.d.ts +11 -11
- package/types/src/form/fields/autocomplete/autocomplete.d.ts +29 -29
- package/types/src/form/fields/checkbox/checkbox.d.ts +1 -1
- package/types/src/form/fields/chips/chips.d.ts +1 -1
- package/types/src/form/fields/chips/filter-chip.d.ts +1 -2
- package/types/src/form/fields/input/input.d.ts +3 -3
- package/types/src/form/fields/radio-group/radio-button.d.ts +1 -1
- package/types/src/form/fields/radio-group/radio-group.d.ts +1 -1
- package/types/src/form/fields/select/select.d.ts +8 -8
- package/types/src/form/fields/switch/switch.d.ts +3 -3
- package/types/src/form/fields/textarea/textarea.d.ts +1 -1
- package/types/src/form/form-summary.d.ts +7 -7
- package/types/src/form/form.d.ts +11 -11
- package/types/src/icons/icon.d.ts +2 -2
- package/types/src/iframe/iframe.d.ts +3 -3
- package/types/src/lightbox/flip-directive.d.ts +2 -2
- package/types/src/lightbox/lightbox.directive.d.ts +2 -2
- package/types/src/nav-drawer/navbar.d.ts +1 -1
- package/types/src/navigation-rail/navigation-rail.d.ts +2 -2
- package/types/src/notification/notification.d.ts +8 -8
- package/types/src/overlay/overlay.component.d.ts +16 -16
- package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
- package/types/src/overlay/overlay.types.d.ts +4 -2
- package/types/src/splash-screen/splash-screen.d.ts +2 -2
- package/types/src/state/index.d.ts +1 -1
- package/types/src/state/schmancy-context.d.ts +3 -3
- package/types/src/teleport/teleport.component.d.ts +1 -1
- package/types/src/theme/theme.service.d.ts +1 -4
- package/types/src/tree/tree.d.ts +3 -3
- package/types/src/typography/typography.d.ts +1 -1
- package/types/src/window/window-manager.d.ts +2 -2
- package/types/src/window/window.d.ts +20 -20
- package/dist/area-KtULlxuA.js.map +0 -1
- package/dist/area-fdKhYB6T.cjs +0 -21
- package/dist/area-fdKhYB6T.cjs.map +0 -1
- package/dist/autocomplete-DEZk6wBD.cjs +0 -115
- package/dist/autocomplete-DEZk6wBD.cjs.map +0 -1
- package/dist/autocomplete-DIScyo8Q.js.map +0 -1
- package/dist/button-DzlHLjWO.cjs +0 -62
- package/dist/button-DzlHLjWO.cjs.map +0 -1
- package/dist/button-kcpPQavY.js.map +0 -1
- package/dist/card-BLxPLqdQ.cjs.map +0 -1
- package/dist/card-DxSKxCid.js.map +0 -1
- package/dist/chips-C9dS1WKn.cjs.map +0 -1
- package/dist/chips-vWmwqQed.js.map +0 -1
- package/dist/date-range-BV6HuvLw.cjs.map +0 -1
- package/dist/date-range-D3ge1b4c.js.map +0 -1
- package/dist/details-C-GZaq3j.js.map +0 -1
- package/dist/details-Dp5rLIWk.cjs +0 -164
- package/dist/details-Dp5rLIWk.cjs.map +0 -1
- package/dist/directives-D_l1E5H6.cjs.map +0 -1
- package/dist/directives-DyS51FUh.js.map +0 -1
- package/dist/expand-DvTb-UPR.js.map +0 -1
- package/dist/expand-mlP_3XWz.cjs +0 -141
- package/dist/expand-mlP_3XWz.cjs.map +0 -1
- package/dist/form-CwPHcQYB.cjs +0 -27
- package/dist/form-CwPHcQYB.cjs.map +0 -1
- package/dist/form-DA0hUu2h.js.map +0 -1
- package/dist/icons-C6UfxmHZ.js.map +0 -1
- package/dist/icons-CW3-oMSb.cjs +0 -24
- package/dist/icons-CW3-oMSb.cjs.map +0 -1
- package/dist/iframe-BTjZfYyh.js.map +0 -1
- package/dist/iframe-wuYT2xFz.cjs.map +0 -1
- package/dist/input-B_4g2ulO.js.map +0 -1
- package/dist/input-BrDiIT60.cjs.map +0 -1
- package/dist/lazy-CayEFyC3.cjs +0 -1
- package/dist/lazy-CayEFyC3.cjs.map +0 -1
- package/dist/lazy-D-bO2r4m.js +0 -13
- package/dist/lazy-D-bO2r4m.js.map +0 -1
- package/dist/lightbox-CVBogswK.cjs.map +0 -1
- package/dist/lightbox-D85XAAuC.js.map +0 -1
- package/dist/mixins-De1zjyhy.js.map +0 -1
- package/dist/mixins-DxHpyMHA.cjs.map +0 -1
- package/dist/notification-BtAK7NK8.js.map +0 -1
- package/dist/notification-DYzbUb5C.cjs +0 -24
- package/dist/notification-DYzbUb5C.cjs.map +0 -1
- package/dist/overlay-BVkqZmoS.cjs +0 -58
- package/dist/overlay-BVkqZmoS.cjs.map +0 -1
- package/dist/overlay-Del1sBEB.js.map +0 -1
- package/dist/overlay.confirm-body-BV9umTAl.cjs.map +0 -1
- package/dist/overlay.confirm-body-DSONXUzl.js.map +0 -1
- package/dist/overlay.service-XLlrsSdA.cjs +0 -1
- package/dist/radio-group-B-ORNtvR.cjs.map +0 -1
- package/dist/radio-group-DxX0iJBo.js.map +0 -1
- package/dist/select-B9uj_u-s.cjs +0 -56
- package/dist/select-B9uj_u-s.cjs.map +0 -1
- package/dist/select-C7gkA-ab.js.map +0 -1
- package/dist/sound.service-C7FDY_yD.cjs.map +0 -1
- package/dist/sound.service-O0232os6.js.map +0 -1
- package/dist/splash-screen-DIS4odDr.cjs.map +0 -1
- package/dist/splash-screen-jfE47xl0.js.map +0 -1
- package/dist/src-BP3h-9d9.js.map +0 -1
- package/dist/src-Um_pzb-U.cjs.map +0 -1
- package/dist/textarea-BvqENhTW.js.map +0 -1
- package/dist/textarea-qr7oL8oU.cjs +0 -43
- package/dist/textarea-qr7oL8oU.cjs.map +0 -1
- package/dist/theme.service-DwLhhOmP.js.map +0 -1
- package/dist/theme.service-kn9MC025.cjs +0 -1
- package/dist/theme.service-kn9MC025.cjs.map +0 -1
- package/dist/window-BSAemI9J.cjs +0 -59
- package/dist/window-BSAemI9J.cjs.map +0 -1
- package/dist/window-ConcHirJ.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as e, u as t } from "./SchmancyElement-
|
|
2
|
-
import { o as n } from "./mixins-
|
|
3
|
-
import "./input-chip-
|
|
4
|
-
import { r } from "./layout-
|
|
1
|
+
import { t as e, u as t } from "./SchmancyElement-BNnyBOwk.js";
|
|
2
|
+
import { o as n } from "./mixins-DGBI7YPO.js";
|
|
3
|
+
import "./input-chip-BOrcKH-H.js";
|
|
4
|
+
import { r } from "./layout-CFiG3lNT.js";
|
|
5
5
|
import { t as i } from "./magnetic-DaOOv5Dz.js";
|
|
6
6
|
import { BehaviorSubject as a, combineLatest as o } from "rxjs";
|
|
7
7
|
import { debounceTime as s, distinctUntilChanged as c, takeUntil as l } from "rxjs/operators";
|
|
@@ -326,6 +326,7 @@ var C = class extends e {
|
|
|
326
326
|
this.styles = [g`
|
|
327
327
|
:host {
|
|
328
328
|
display: inline-flex;
|
|
329
|
+
flex-shrink: 0;
|
|
329
330
|
outline: none;
|
|
330
331
|
border-radius: 0.5rem;
|
|
331
332
|
transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
@@ -351,19 +352,20 @@ var C = class extends e {
|
|
|
351
352
|
}
|
|
352
353
|
`];
|
|
353
354
|
}
|
|
355
|
+
#e;
|
|
354
356
|
get selected() {
|
|
355
|
-
return this
|
|
357
|
+
return this.#e;
|
|
356
358
|
}
|
|
357
359
|
set selected(e) {
|
|
358
|
-
let t = this
|
|
359
|
-
this
|
|
360
|
+
let t = this.#e;
|
|
361
|
+
this.#e = e, this.requestUpdate("selected", t);
|
|
360
362
|
}
|
|
361
363
|
constructor() {
|
|
362
|
-
super(), this.value = "", this
|
|
364
|
+
super(), this.value = "", this.#e = !1, this.removable = !1, this.disabled = !1, this.elevated = !1, this.handleClick = () => {
|
|
363
365
|
this.disabled || this.dispatchEvent(new CustomEvent("change", {
|
|
364
366
|
detail: {
|
|
365
367
|
value: this.value,
|
|
366
|
-
selected: !this
|
|
368
|
+
selected: !this.#e
|
|
367
369
|
},
|
|
368
370
|
bubbles: !0,
|
|
369
371
|
composed: !0
|
|
@@ -378,7 +380,7 @@ var C = class extends e {
|
|
|
378
380
|
this.disabled || e.key !== "Enter" && e.key !== " " || (e.preventDefault(), this.dispatchEvent(new CustomEvent("change", {
|
|
379
381
|
detail: {
|
|
380
382
|
value: this.value,
|
|
381
|
-
selected: !this
|
|
383
|
+
selected: !this.#e
|
|
382
384
|
},
|
|
383
385
|
bubbles: !0,
|
|
384
386
|
composed: !0
|
|
@@ -406,10 +408,10 @@ var C = class extends e {
|
|
|
406
408
|
super.connectedCallback();
|
|
407
409
|
}
|
|
408
410
|
updated(e) {
|
|
409
|
-
super.updated?.(e), (e.has("value") || e.has("selected")) && this.internals?.setFormValue(this
|
|
411
|
+
super.updated?.(e), (e.has("value") || e.has("selected")) && this.internals?.setFormValue(this.#e ? this.value || "on" : null);
|
|
410
412
|
}
|
|
411
413
|
formResetCallback() {
|
|
412
|
-
this
|
|
414
|
+
this.#e = this.hasAttribute("selected");
|
|
413
415
|
}
|
|
414
416
|
formDisabledCallback(e) {
|
|
415
417
|
this.disabled = e;
|
|
@@ -429,12 +431,12 @@ var C = class extends e {
|
|
|
429
431
|
"font-medium": !0,
|
|
430
432
|
relative: !0,
|
|
431
433
|
"min-h-[32px]": !0,
|
|
432
|
-
"bg-secondary-container": this
|
|
433
|
-
"text-secondary-onContainer": this
|
|
434
|
-
"bg-surface-container": !this
|
|
435
|
-
"text-surface-on": !this
|
|
436
|
-
"hover:brightness-95": this
|
|
437
|
-
"hover:bg-surface-containerHigh": !this
|
|
434
|
+
"bg-secondary-container": this.#e,
|
|
435
|
+
"text-secondary-onContainer": this.#e,
|
|
436
|
+
"bg-surface-container": !this.#e,
|
|
437
|
+
"text-surface-on": !this.#e,
|
|
438
|
+
"hover:brightness-95": this.#e && !this.disabled,
|
|
439
|
+
"hover:bg-surface-containerHigh": !this.#e && !this.disabled,
|
|
438
440
|
"active:brightness-90": !this.disabled,
|
|
439
441
|
"focus-visible:outline": !this.disabled,
|
|
440
442
|
"focus-visible:outline-2": !this.disabled,
|
|
@@ -455,7 +457,7 @@ var C = class extends e {
|
|
|
455
457
|
@click=${this.handleClick}
|
|
456
458
|
@keydown=${this.handleKeyDown}
|
|
457
459
|
?disabled=${this.disabled}
|
|
458
|
-
aria-pressed=${this
|
|
460
|
+
aria-pressed=${this.#e ? "true" : "false"}
|
|
459
461
|
role="checkbox"
|
|
460
462
|
tabindex="0"
|
|
461
463
|
>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chips-BoZSpSh_.js","names":["#selected"],"sources":["../src/form/fields/chips/assist-chip.ts","../src/form/fields/chips/chips.ts","../src/form/fields/chips/filter-chip.ts","../src/form/fields/chips/suggestion-chip.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\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 SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\twidth: fit-content;\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 { SchmancyFormField } from '@mixins/formField.mixin'\nimport { css, html, nothing, PropertyValues } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.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\nexport type SchmancyChipsChangeEvent = CustomEvent<{ value: string | string[] }>\n\n@customElement('schmancy-chips')\nexport default class SchmancyChips extends SchmancyFormField(css`\n:host {\n\tdisplay: block;\n\theight: fit-content;\n\twidth: fit-content;\n}\n`) {\n\t// FACE wiring (formAssociated, internals, attachInternals) comes from\n\t// SchmancyFormField. Same for: name, required, disabled, validationMessage,\n\t// validateOn, touched/dirty/pristine/submitted, markTouched/markSubmitted,\n\t// formResetCallback, formDisabledCallback, FIELD_CONNECT_EVENT dispatch,\n\t// emitChange(), checkValidity(), reportValidity(), setCustomValidity().\n\n\t/** Whether multiple chips can be selected simultaneously. */\n\t@property({ type: Boolean, reflect: true })\n\tmulti: boolean = false\n\n\t// Override `value` with the chips-specific type and a custom getter/setter\n\t// pair backed by reactive subjects.\n\t@property({ reflect: false })\n\toverride get value(): string | string[] {\n\t\treturn this.multi\n\t\t\t? (this.values$?.value ?? [])\n\t\t\t: (this.value$?.value ?? '')\n\t}\n\toverride set value(v: string | string[]) {\n\t\tconst old = this.value\n\t\tif (this.multi) {\n\t\t\tconst arr = Array.isArray(v)\n\t\t\t\t? v\n\t\t\t\t: v ? String(v).split(',').map(s => s.trim()).filter(Boolean) : []\n\t\t\tthis.values$?.next(arr)\n\t\t} else {\n\t\t\tthis.value$?.next(Array.isArray(v) ? (v[0] ?? '') : String(v ?? ''))\n\t\t}\n\t\tthis.requestUpdate('value', old)\n\t}\n\n\t/** Typed convenience alias for multi-mode consumers. */\n\tget values(): string[] {\n\t\treturn [...(this.values$?.value ?? [])]\n\t}\n\tset values(v: string[]) {\n\t\tthis.values$?.next(Array.isArray(v) ? [...v] : [])\n\t}\n\n\t@property({ type: Boolean, reflect: true })\n\twrap: boolean = false\n\n\t@property({ type: String, reflect: true })\n\tjustify: 'start' | 'center' | 'end' = 'start'\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// Two internal streams — one for single mode, one for multi mode.\n\tprivate value$ = new BehaviorSubject<string>('')\n\tprivate values$ = new BehaviorSubject<string[]>([])\n\n\tprotected override willUpdate(changedProps: PropertyValues): void {\n\t\tsuper.willUpdate(changedProps)\n\t\t// super handles the string path; fix the array path for multi mode.\n\t\tif (changedProps.has('value') && Array.isArray(this.value) && this.name) {\n\t\t\tconst fd = new FormData()\n\t\t\tthis.value.forEach(v => fd.append(this.name, v))\n\t\t\tthis.internals?.setFormValue(fd)\n\t\t}\n\t}\n\n\toverride checkValidity(): boolean {\n\t\tif (this.required && Array.isArray(this.value) && this.value.length === 0) {\n\t\t\tconst msg = this.errorMessages?.valueMissing ?? 'This field is required'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, msg)\n\t\t\tif (this.submitted || this.dirty || this.touched || this.validateOn === 'always') {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = msg\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t\treturn super.checkValidity()\n\t}\n\n\toverride connectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Sync BehaviorSubjects with whatever value was set before connection.\n\t\tif (this.multi) {\n\t\t\tconst cur = this.value\n\t\t\tthis.values$.next(Array.isArray(cur) ? cur : [])\n\t\t} else {\n\t\t\tconst cur = this.value\n\t\t\tthis.value$.next(Array.isArray(cur) ? (cur[0] ?? '') : String(cur ?? ''))\n\t\t}\n\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),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(([value, values]) => {\n\t\t\t\tthis.updateChipStates(value, values)\n\t\t\t})\n\t}\n\n\tprivate updateChipStates(value: string, values: string[]) {\n\t\tif (!this.chips) 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 (this.multi) {\n\t\t\t\t\tfilterChip.selected = values.length > 0 && values.includes(filterChip.value)\n\t\t\t\t} else {\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\tconst { value: chipValue, selected } = e.detail\n\n\t\tif (this.multi) {\n\t\t\tconst old = this.value\n\t\t\tif (selected) {\n\t\t\t\tif (!this.values$.value.includes(chipValue)) {\n\t\t\t\t\tthis.values$.next([...this.values$.value, chipValue])\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.values$.next(this.values$.value.filter(v => v !== chipValue))\n\t\t\t}\n\t\t\tthis.requestUpdate('value', old)\n\t\t} else {\n\t\t\tconst old = this.value\n\t\t\tif (selected) {\n\t\t\t\tthis.value$.next(chipValue)\n\t\t\t} else if (!this.required) {\n\t\t\t\tthis.value$.next('')\n\t\t\t} else {\n\t\t\t\t// Required single-mode: ignore deselection attempt.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.requestUpdate('value', old)\n\t\t}\n\n\t\tthis.emitChange({ value: this.multi ? this.values$.value : this.value$.value })\n\t}\n\n\toverride resetForm(): void {\n\t\tsuper.resetForm()\n\t\tthis.value$.next('')\n\t\tthis.values$.next([])\n\t}\n\n\tprotected firstUpdated(changedProperties: PropertyValues): void {\n\t\tsuper.firstUpdated(changedProperties)\n\t\tthis.updateChipStates(this.value$.value, this.values$.value)\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\tconst wrapperClasses = {\n\t\t\t'rounded-lg transition-all duration-200': true,\n\t\t\t'outline outline-2 outline-offset-4 outline-error-default': this.error,\n\t\t}\n\t\treturn html`\n\t\t\t<div class=\"${this.classMap(wrapperClasses)}\">\n\t\t\t\t<schmancy-scroll\n\t\t\t\t\thide\n\t\t\t\t\t.direction=${this.wrap ? 'vertical' : 'horizontal'}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\t${fullWidth()}\n\t\t\t\t\t@change=${this.change}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.updateChipStates(this.value$.value, this.values$.value)\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</schmancy-scroll>\n\t\t\t</div>\n\n\t\t\t${when(\n\t\t\t\tthis.hint || (this.error && this.validationMessage),\n\t\t\t\t() => html`\n\t\t\t\t\t<div\n\t\t\t\t\t\tid=\"hint-${this.id}\"\n\t\t\t\t\t\tclass=\"mt-1 text-sm ${this.error ? 'text-error-default' : 'text-surface-onVariant'}\"\n\t\t\t\t\t\trole=${ifDefined(this.error ? 'alert' : undefined)}\n\t\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.error && this.validationMessage ? this.validationMessage : this.hint}\n\t\t\t\t\t</div>\n\t\t\t\t`,\n\t\t\t\t() => nothing,\n\t\t\t)}`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-chips': SchmancyChips\n\t}\n}\n","import { SchmancyElement } from '@mixins/index'\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 SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-flex;\n\t\tflex-shrink: 0;\n\t\toutline: none;\n\t\tborder-radius: 0.5rem;\n\t\ttransition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\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([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(:active:not([disabled])) { transform: 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\t#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\tprotected updated(changed: Map<string, unknown>) {\n\t\tsuper.updated?.(changed)\n\t\tif (changed.has('value') || changed.has('selected')) {\n\t\t\tthis.internals?.setFormValue(this.#selected ? (this.value || 'on') : null)\n\t\t}\n\t}\n\n\tformResetCallback(): void {\n\t\tthis.#selected = this.hasAttribute('selected')\n\t}\n\n\tformDisabledCallback(disabled: boolean): void {\n\t\tthis.disabled = disabled\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'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'bg-surface-container': !this.#selected,\n\t\t\t'text-surface-on': !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 { SchmancyElement } from '@mixins/index'\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 SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\twidth: fit-content;\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\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\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":";;;;;;;;;;;;AAYO,IAAA,IAAA,cAAiC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,QAqDF,IAAA,KAAA,OAGD,IAAA,KAAA,OAGA,IAAA,KAAA,SAGE,IAAA,KAAA,WAAA,CAGiB,GAAA,KAAA,WAAA,CAGA,GAAA,KAAA,SAGtC,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,WAC3B,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,WAC7B,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,UAGwB,CAAA,GAAA,KAAA,eAIjD,GAAA,KAAA,eAmBA,MAAA;GACtB,IAAI,KAAK,UAAU;GAGnB,IAAM,IAAS,KAAK,YAAY,cAAc,QAAA;GAC9C,IAAI,GAAQ;IACX,IAAM,IAAO,EAAO,sBAAA,GACd,IAAI,EAAE,UAAU,EAAK,MACrB,IAAI,EAAE,UAAU,EAAK,KACrB,IAAK,KAAK;IAEhB,KAAK,UAAU,CAAA,GAAI,KAAK,SAAS;KAAE,GAAA;KAAG,GAAA;KAAG,IAAA;IAAA,CAAA,GAGzC,iBAAA;KACC,KAAK,UAAU,KAAK,QAAQ,QAAO,MAAK,EAAE,OAAO,CAAA;IAAA,GAC/C,GAAA;GACJ;GAGI,KAAK,SACJ,KAAK,WAAW,WACnB,OAAO,KAAK,KAAK,MAAM,QAAA,IAEvB,OAAO,SAAS,OAAO,KAAK,OAK9B,KAAK,cAAc,IAAI,YAAY,UAAU;IAC5C,QAAQ,EAAE,OAAO,KAAK,MAAA;IACtB,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA,GAAA,KAAA,iBAIa,MAAA;GACxB,IAAA,CAAI,KAAK,aAEL,EAAE,QAAQ,WAAW,EAAE,QAAQ,MAAK;IACvC,EAAE,eAAA,GACF,KAAK,SAAS,KAAA,CAAK,CAAA;IAGnB,IAAM,IAAa,IAAI,WAAW,SAAS;KAC1C,SAAA,CAAS;KACT,YAAA,CAAY;KACZ,SAAS;KACT,SAAS;IAAA,CAAA;IAEV,KAAK,YAAY,CAAA,GAEjB,iBAAiB,KAAK,SAAS,KAAA,CAAK,CAAA,GAAQ,GAAA;GAC7C;EAAA,GAAA,KAAA,oBAAA;GAIA,KAAK,SAAS,KAAA,CAAK,CAAA;EAAA,GAAA,KAAA,mBAAA;GAInB,KAAK,SAAS,KAAA,CAAK,CAAA;EAAA;CAAA;CAAA;EAAA,KAAA,SA/JJ,CAAC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA6EiB;GAAA,GAAK,EAAW;GAAmB,gBAAA,CAAgB;EAAA;CAAA;CAIxF,oBAAA;EACC,MAAM,kBAAA,GAKN,EAAc;GACb,KAAK;GACL,KAAK;GACL,KAAK;EAAA,CAAA,EACH,KAGF,EAAU,KAAK,aAAA,CAAA,EACd,UAAA;CACH;CAkEA,SAAA;EACC,IAAM,IAAA,CAAA,CAAY,KAAK;EAwCvB,OAAO,CAAI;;;YAGD,EAAS;GAxClB,UAAA,CAAY;GACZ,eAAA,CAAe;GACf,gBAAA,CAAgB;GAChB,SAAA,CAAS;GACT,OAAA,CAAO;GACP,gBAAA,CAAgB;GAChB,gBAAA,CAAgB;GAChB,kBAAA,CAAmB,KAAK;GACxB,kBAAA,CAAkB;GAClB,gBAAA,CAAgB;GAChB,eAAA,CAAe;GACf,mBAAA,CAAmB;GAGnB,QAAQ;GACR,QAAA,CAAS;GACT,QAAA,CAAQ;GAGR,2BAAA,CAA2B;GAC3B,0BAAA,CAA0B;GAG1B,aAAa,KAAK,YAAA,CAAa,KAAK;GACpC,mBAAmB,KAAK,YAAA,CAAa,KAAK;GAG1C,yBAAA,CAA0B,KAAK;GAC/B,2BAAA,CAA4B,KAAK;GACjC,iCAAA,CAAkC,KAAK;GACvC,kCAAA,CAAmC,KAAK;GAGxC,cAAc,KAAK;GACnB,sBAAsB,KAAK;EAAA,CAAA,EAAA;gBAOd,KAAK,SAAA;aACR,KAAK,YAAA;eACH,KAAK,cAAA;wBACI,KAAK,OAAO,KAAA,CAAK,CAAA,EAAA;wBACjB,KAAK,OAAO,KAAA,CAAK,CAAA,EAAA;uBAClB,KAAK,SAAS,KAAA,CAAK,CAAA,EAAA;qBACrB,KAAK,SAAS,KAAA,CAAK,CAAA,EAAA;aAC3B,KAAK,YAAA;YACN,KAAK,WAAA;eACF,KAAK,WAAW,OAAO,IAAA;;oBAElB,KAAK,SAAA;iBACR,KAAK,MAAA;;MAEhB,KAAK,OAAO,CAAI;mDAC6B,KAAK,KAAA;QAChD,GAAA;;;;;;MAMF,KAAK,QAAQ,KAAI,MAAU,CAAI;;;qBAGhB,EAAO,EAAA,WAAa,EAAO,EAAA;;;;;;;;CAQ/C;AAAA;AAAA,EAAA,CA5LC,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,UAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAQzC,EAAA,CAAA,GAAM,EAAA,WAAA,WAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CA7EP,EAAc,sBAAA,CAAA,GAAsB,CAAA;ACGtB,IAAA,IAAA,cAA4B,EAAkB,CAAG;;;;;;;;6BAe9C,GAAA,KAAA,OAAA,CAgCD,GAAA,KAAA,UAGsB,SAAA,KAAA,SAUrB,IAAI,EAAwB,EAAA,GAAA,KAAA,UAC3B,IAAI,EAA0B,CAAA,CAAA;CAAA;CA1ChD,IAAA,QACa;EACZ,OAAO,KAAK,QACR,KAAK,SAAS,SAAS,CAAA,IACvB,KAAK,QAAQ,SAAS;CAC3B;CACA,IAAA,MAAmB,GAAA;EAClB,IAAM,IAAM,KAAK;EACjB,IAAI,KAAK,OAAO;GACf,IAAM,IAAM,MAAM,QAAQ,CAAA,IACvB,IACA,IAAI,OAAO,CAAA,EAAG,MAAM,GAAA,EAAK,KAAI,MAAK,EAAE,KAAA,CAAA,EAAQ,OAAO,OAAA,IAAW,CAAA;GACjE,KAAK,SAAS,KAAK,CAAA;EACpB,OACC,KAAK,QAAQ,KAAK,MAAM,QAAQ,CAAA,IAAM,EAAE,MAAM,KAAM,OAAO,KAAK,EAAA,CAAA;EAEjE,KAAK,cAAc,SAAS,CAAA;CAC7B;CAGA,IAAA,SAAI;EACH,OAAO,CAAA,GAAK,KAAK,SAAS,SAAS,CAAA,CAAA;CACpC;CACA,IAAA,OAAW,GAAA;EACV,KAAK,SAAS,KAAK,MAAM,QAAQ,CAAA,IAAK,CAAA,GAAI,CAAA,IAAK,CAAA,CAAA;CAChD;CAmBA,WAA8B,GAAA;EAG7B,IAFA,MAAM,WAAW,CAAA,GAEb,EAAa,IAAI,OAAA,KAAY,MAAM,QAAQ,KAAK,KAAA,KAAU,KAAK,MAAM;GACxE,IAAM,IAAK,IAAI,SAAA;GACf,KAAK,MAAM,SAAQ,MAAK,EAAG,OAAO,KAAK,MAAM,CAAA,CAAA,GAC7C,KAAK,WAAW,aAAa,CAAA;EAC9B;CACD;CAEA,gBAAA;EACC,IAAI,KAAK,YAAY,MAAM,QAAQ,KAAK,KAAA,KAAU,KAAK,MAAM,WAAW,GAAG;GAC1E,IAAM,IAAM,KAAK,eAAe,gBAAgB;GAMhD,OALA,KAAK,WAAW,YAAY,EAAE,cAAA,CAAc,EAAA,GAAQ,CAAA,IAChD,KAAK,aAAa,KAAK,SAAS,KAAK,WAAW,KAAK,eAAe,cACvE,KAAK,QAAA,CAAQ,GACb,KAAK,oBAAoB,IAAA,CAEnB;EACR;EACA,OAAO,MAAM,cAAA;CACd;CAEA,oBAAA;EAIC,IAHA,MAAM,kBAAA,GAGF,KAAK,OAAO;GACf,IAAM,IAAM,KAAK;GACjB,KAAK,QAAQ,KAAK,MAAM,QAAQ,CAAA,IAAO,IAAM,CAAA,CAAA;EAC9C,OAAO;GACN,IAAM,IAAM,KAAK;GACjB,KAAK,OAAO,KAAK,MAAM,QAAQ,CAAA,IAAQ,EAAI,MAAM,KAAM,OAAO,KAAO,EAAA,CAAA;EACtE;EAEA,EAAc,CACb,KAAK,OAAO,KAAK,EAAA,CAAA,GACjB,KAAK,QAAQ,KACZ,GAAsB,GAAM,MAAS,EAAK,WAAW,EAAK,UAAU,EAAK,OAAO,GAAG,MAAM,MAAM,EAAK,EAAA,CAAA,CAAA,CAAA,CAAA,EAGpG,KACA,EAAa,CAAA,GACb,EAAU,KAAK,aAAA,CAAA,EAEf,WAAA,CAAY,GAAO,OAAA;GACnB,KAAK,iBAAiB,GAAO,CAAA;EAAA,CAAA;CAEhC;CAEA,iBAAyB,GAAe,GAAA;EAClC,KAAK,SAEV,KAAK,MAAM,SAAQ,MAAA;GAClB,IAAI,WAAW,KAAQ,cAAc,GAAM;IAC1C,IAAM,IAAa;IACf,KAAK,QACR,EAAW,WAAW,EAAO,SAAS,KAAK,EAAO,SAAS,EAAW,KAAA,IAEtE,EAAW,WAAW,MAAU,MAAM,MAAU,EAAW;GAE7D;EAAA,CAAA;CAEF;CAEA,MAAA,OAAa,GAAA;EACZ,EAAE,eAAA,GACF,EAAE,gBAAA;EAEF,IAAA,EAAQ,OAAO,GAAA,UAAW,MAAa,EAAE;EAEzC,IAAI,KAAK,OAAO;GACf,IAAM,IAAM,KAAK;GACb,IACE,KAAK,QAAQ,MAAM,SAAS,CAAA,KAChC,KAAK,QAAQ,KAAK,CAAA,GAAI,KAAK,QAAQ,OAAO,CAAA,CAAA,IAG3C,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,QAAO,MAAK,MAAM,CAAA,CAAA,GAExD,KAAK,cAAc,SAAS,CAAA;EAC7B,OAAO;GACN,IAAM,IAAM,KAAK;GACjB,IAAI,GACH,KAAK,OAAO,KAAK,CAAA;QACX;IAAA,IAAK,KAAK,UAIhB;IAHA,KAAK,OAAO,KAAK,EAAA;GAGjB;GAED,KAAK,cAAc,SAAS,CAAA;EAC7B;EAEA,KAAK,WAAW,EAAE,OAAO,KAAK,QAAQ,KAAK,QAAQ,QAAQ,KAAK,OAAO,MAAA,CAAA;CACxE;CAEA,YAAA;EACC,MAAM,UAAA,GACN,KAAK,OAAO,KAAK,EAAA,GACjB,KAAK,QAAQ,KAAK,CAAA,CAAA;CACnB;CAEA,aAAuB,GAAA;EACtB,MAAM,aAAa,CAAA,GACnB,KAAK,iBAAiB,KAAK,OAAO,OAAO,KAAK,QAAQ,KAAA;CACvD;CAEA,SAAA;EACC,IAAM,IAAU;GACf,yCAAA,CAAyC;GACzC,aAAa,KAAK;GAClB,kBAAkB,KAAK,YAAY;EAAZ,GAElB,IAAiB;GACtB,0CAAA,CAA0C;GAC1C,4DAA4D,KAAK;EAAA;EAElE,OAAO,CAAI;iBACI,KAAK,SAAS,CAAA,EAAA;;;kBAGb,KAAK,OAAO,aAAa,aAAA;cAC7B,KAAK,SAAS,CAAA,EAAA;OACrB,EAAA,EAAA;eACQ,KAAK,OAAA;;;;GAIb,KAAK,iBAAiB,KAAK,OAAO,OAAO,KAAK,QAAQ,KAAA;EAAA,EAAA;;;;;KAMxD,EACD,KAAK,QAAS,KAAK,SAAS,KAAK,yBAC3B,CAAI;;iBAEG,KAAK,GAAA;4BACM,KAAK,QAAQ,uBAAuB,yBAAA;aACnD,EAAU,KAAK,QAAQ,UAAA,KAAU,CAAA,EAAA;;;QAGtC,KAAK,SAAS,KAAK,oBAAoB,KAAK,oBAAoB,KAAK,KAAA;;aAGnE,CAAA;CAET;AAAA;AAAA,EAAA,CAtMC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAKzC,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAO,EAAA,WAAA,SAAA,IAAA,GAAA,EAAA,CA2B3B,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,WAAA,KAAA,CAAA,GAAA,EAAA,CAGxC,EAAsB;CACtB,UACC;CACD,SAAA,CAAS;AAAA,CAAA,CAAA,GACT,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CAzDD,EAAc,gBAAA,CAAA,GAAgB,CAAA;ACQ/B,IAAa,IAAb,cAAwC,EAAA;CAAA;EAAA,KAAA,SACvB,CAAC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCpB;CAEA,IAAA,WACI;EACH,OAAO,KAAA;CACR;CACA,IAAA,SAAa,GAAA;EACZ,IAAM,IAAW,KAAA;EACjB,KAAA,KAAiB,GACjB,KAAK,cAAc,YAAY,CAAA;CAChC;CAeA,cAAA;EACC,MAAA,GAAA,KAAA,QA7Be,IAAA,KAAA,KAAA,CAGK,GAAA,KAAA,YAAA,CAcA,GAAA,KAAA,WAAA,CAID,GAAA,KAAA,WAAA,CAIA,GAAA,KAAA,oBAAA;GA2Cf,KAAK,YAET,KAAK,cACJ,IAAI,YAAY,UAAU;IACzB,QAAQ;KAAE,OAAO,KAAK;KAAO,UAAA,CAAW,KAAA;IAAKA;IAC7C,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA,GAAA,KAAA,gBAKW,MAAA;GACnB,KAAK,aAET,EAAE,gBAAA,GAEF,KAAK,cACJ,IAAI,YAAY,UAAU;IACzB,QAAQ,EAAE,OAAO,KAAK,MAAA;IACtB,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA,GAAA,KAAA,iBAKY,MAAA;GACpB,KAAK,YAEL,EAAE,QAAQ,WAAW,EAAE,QAAQ,QAClC,EAAE,eAAA,GACF,KAAK,cACJ,IAAI,YAAY,UAAU;IACzB,QAAQ;KAAE,OAAO,KAAK;KAAO,UAAA,CAAW,KAAA;IAAKA;IAC7C,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA;EAxEb,IAAA;GACC,KAAK,YAAY,KAAK,gBAAA;EACvB,QAAA;GACC,KAAK,YAAA,KAAY;EAClB;CACD;CAAA;EAAA,KAAA,oBAEqC;GAAA,GACjC,EAAW;GACd,gBAAA,CAAgB;EAAA;CAAA;CAAA;EAAA,KAAA,iBAAA,CAGO;CAAA;CAExB,IAAA,OAAI;EACH,OAAO,KAAK,WAAW;CACxB;CAEA,oBAAA;EACC,MAAM,kBAAA;CACP;CAEA,QAAkB,GAAA;EACjB,MAAM,UAAU,CAAA,IACZ,EAAQ,IAAI,OAAA,KAAY,EAAQ,IAAI,UAAA,MACvC,KAAK,WAAW,aAAa,KAAA,KAAkB,KAAK,SAAS,OAAQ,IAAA;CAEvE;CAEA,oBAAA;EACC,KAAA,KAAiB,KAAK,aAAa,UAAA;CACpC;CAEA,qBAAqB,GAAA;EACpB,KAAK,WAAW;CACjB;CA4CA,SAAA;EACC,IAAM,IAAc;GACnB,eAAA,CAAe;GACf,gBAAA,CAAgB;GAChB,SAAA,CAAS;GACT,cAAA,CAAc;GACd,YAAA,CAAY;GACZ,kBAAA,CAAmB,KAAK;GACxB,kBAAA,CAAkB;GAClB,gBAAA,CAAgB;GAChB,eAAA,CAAe;GACf,WAAA,CAAW;GACX,eAAA,CAAe;GACf,UAAA,CAAY;GACZ,gBAAA,CAAgB;GAGhB,0BAA0B,KAAA;GAC1B,8BAA8B,KAAA;GAC9B,wBAAA,CAAyB,KAAA;GACzB,mBAAA,CAAoB,KAAA;GAGpB,uBAAuB,KAAA,MAAKA,CAAc,KAAK;GAC/C,kCAAA,CAAmC,KAAA,MAAKA,CAAc,KAAK;GAG3D,wBAAA,CAAyB,KAAK;GAG9B,yBAAA,CAA0B,KAAK;GAC/B,2BAAA,CAA4B,KAAK;GACjC,kCAAA,CAAmC,KAAK;GACxC,yCAAA,CAA0C,KAAK;GAG/C,aAAa,KAAK,YAAA,CAAa,KAAK;GACpC,mBAAmB,KAAK,YAAA,CAAa,KAAK;GAG1C,wDAAwD,KAAK;GAC7D,sBAAsB,KAAK;EAAA;EAG5B,OAAO,CAAI;;MAEP,EAAS;GAAE,UAAU;GAAG,QAAQ;EAAA,CAAA,EAAA;YAC1B,KAAK,SAAS,CAAA,EAAA;aACb,KAAK,YAAA;eACH,KAAK,cAAA;gBACJ,KAAK,SAAA;mBACF,KAAA,KAAiB,SAAS,QAAA;;;;;;MAMvC,KAAK,YACJ,CAAI;;;iBAGM,KAAK,aAAA;;;;;;UAOf,GAAA;;;CAGN;AAAA;AAOD,IAAA,EAAA,CA5LE,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAMxC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,IAAA,GAAA,EAAA,CAWzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,aAAA,KAAA,CAAA,GAAA,EAAA,CAIzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAIzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GA+JtC,eAAe,IAAI,sBAAA,KACvB,eAAe,OAAO,wBAAwB,CAAA,GAAA,CAG1C,eAAe,IAAI,eAAA,GAAkB;CACzC,MAAM,UAA2B,EAAA,CAAA;CACjC,eAAe,OAAO,iBAAiB,CAAA;AACxC;ACjOO,IAAA,IAAA,cAAqC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,QAqDN,IAAA,KAAA,OAGD,IAAA,KAAA,OAGA,IAAA,KAAA,SAGE,IAAA,KAAA,WAAA,CAGiB,GAAA,KAAA,WAAA,CAGA,GAAA,KAAA,SAGtC,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,WAC3B,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,WAC7B,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,UAGwB,CAAA,GAAA,KAAA,eAIjD,GAAA,KAAA,eAmBA,MAAA;GACtB,IAAI,KAAK,UAAU;GAGnB,IAAM,IAAS,KAAK,YAAY,cAAc,QAAA;GAC9C,IAAI,GAAQ;IACX,IAAM,IAAO,EAAO,sBAAA,GACd,IAAI,EAAE,UAAU,EAAK,MACrB,IAAI,EAAE,UAAU,EAAK,KACrB,IAAK,KAAK;IAEhB,KAAK,UAAU,CAAA,GAAI,KAAK,SAAS;KAAE,GAAA;KAAG,GAAA;KAAG,IAAA;IAAA,CAAA,GAGzC,iBAAA;KACC,KAAK,UAAU,KAAK,QAAQ,QAAO,MAAK,EAAE,OAAO,CAAA;IAAA,GAC/C,GAAA;GACJ;GAGI,KAAK,SACJ,KAAK,WAAW,WACnB,OAAO,KAAK,KAAK,MAAM,QAAA,IAEvB,OAAO,SAAS,OAAO,KAAK,OAK9B,KAAK,cAAc,IAAI,YAAY,UAAU;IAC5C,QAAQ,EAAE,OAAO,KAAK,MAAA;IACtB,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA,GAAA,KAAA,iBAIa,MAAA;GACxB,IAAA,CAAI,KAAK,aAEL,EAAE,QAAQ,WAAW,EAAE,QAAQ,MAAK;IACvC,EAAE,eAAA,GACF,KAAK,SAAS,KAAA,CAAK,CAAA;IAGnB,IAAM,IAAa,IAAI,WAAW,SAAS;KAC1C,SAAA,CAAS;KACT,YAAA,CAAY;KACZ,SAAS;KACT,SAAS;IAAA,CAAA;IAEV,KAAK,YAAY,CAAA,GAEjB,iBAAiB,KAAK,SAAS,KAAA,CAAK,CAAA,GAAQ,GAAA;GAC7C;EAAA,GAAA,KAAA,oBAAA;GAIA,KAAK,SAAS,KAAA,CAAK,CAAA;EAAA,GAAA,KAAA,mBAAA;GAInB,KAAK,SAAS,KAAA,CAAK,CAAA;EAAA;CAAA;CAAA;EAAA,KAAA,SA/JJ,CAAC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA6EiB;GAAA,GAAK,EAAW;GAAmB,gBAAA,CAAgB;EAAA;CAAA;CAIxF,oBAAA;EACC,MAAM,kBAAA,GAKN,EAAc;GACb,KAAK;GACL,KAAK;GACL,KAAK;EAAA,CAAA,EACH,KAGF,EAAU,KAAK,aAAA,CAAA,EACd,UAAA;CACH;CAkEA,SAAA;EACC,IAAM,IAAA,CAAA,CAAY,KAAK;EAsCvB,OAAO,CAAI;;;YAGD,EAAS;GAtClB,UAAA,CAAY;GACZ,eAAA,CAAe;GACf,gBAAA,CAAgB;GAChB,SAAA,CAAS;GACT,OAAA,CAAO;GACP,gBAAA,CAAgB;GAChB,gBAAA,CAAgB;GAChB,kBAAA,CAAmB,KAAK;GACxB,kBAAA,CAAkB;GAClB,gBAAA,CAAgB;GAChB,eAAA,CAAe;GACf,mBAAA,CAAmB;GAGnB,QAAQ;GACR,QAAA,CAAS;GACT,QAAA,CAAQ;GAGR,2BAAA,CAA2B;GAC3B,0BAAA,CAA0B;GAK1B,yBAAA,CAA0B,KAAK;GAC/B,2BAAA,CAA4B,KAAK;GACjC,iCAAA,CAAkC,KAAK;GACvC,kCAAA,CAAmC,KAAK;GAGxC,cAAc,KAAK;GACnB,sBAAsB,KAAK;EAAA,CAAA,EAAA;gBAOd,KAAK,SAAA;aACR,KAAK,YAAA;eACH,KAAK,cAAA;wBACI,KAAK,OAAO,KAAA,CAAK,CAAA,EAAA;wBACjB,KAAK,OAAO,KAAA,CAAK,CAAA,EAAA;uBAClB,KAAK,SAAS,KAAA,CAAK,CAAA,EAAA;qBACrB,KAAK,SAAS,KAAA,CAAK,CAAA,EAAA;aAC3B,KAAK,YAAA;YACN,KAAK,WAAA;eACF,KAAK,WAAW,OAAO,IAAA;;oBAElB,KAAK,SAAA;iBACR,KAAK,MAAA;;MAEhB,KAAK,OAAO,CAAI;mDAC6B,KAAK,KAAA;QAChD,GAAA;;;;;;MAMF,KAAK,QAAQ,KAAI,MAAU,CAAI;;;qBAGhB,EAAO,EAAA,WAAa,EAAO,EAAA;;;;;;;;CAQ/C;AAAA;AAAA,EAAA,CA1LC,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,UAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAQzC,EAAA,CAAA,GAAM,EAAA,WAAA,WAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CA7EP,EAAc,0BAAA,CAAA,GAA0B,CAAA;AAAA,SAAA,KAAA,GAAA,KAAA,GAAA,KAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-
|
|
1
|
+
require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-C41uPa6l.cjs`),t=require(`./mixins-fIpzhVMd.cjs`);require(`./input-chip-ChAgRCXZ.cjs`);const n=require(`./layout-DZ4dpLh9.cjs`),r=require(`./magnetic-DKtc4umC.cjs`);let i=require(`rxjs`),a=require(`rxjs/operators`),o=require(`lit/directives/class-map.js`),s=require(`lit/decorators.js`),c=require(`lit`),l=require(`lit/directives/if-defined.js`),u=require(`lit/directives/when.js`);var d=class extends e.t{constructor(...e){super(...e),this.value=``,this.icon=``,this.href=``,this.target=``,this.disabled=!1,this.elevated=!0,this.hover$=new i.BehaviorSubject(!1),this.pressed$=new i.BehaviorSubject(!1),this.focused$=new i.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=e=>{if(this.disabled)return;let t=this.shadowRoot?.querySelector(`button`);if(t){let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top,a=this.nextRippleId++;this.ripples=[...this.ripples,{x:r,y:i,id:a}],setTimeout(()=>{this.ripples=this.ripples.filter(e=>e.id!==a)},600)}this.href&&(this.target===`_blank`?window.open(this.href,`_blank`):window.location.href=this.href),this.dispatchEvent(new CustomEvent(`action`,{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=e=>{if(!this.disabled&&(e.key===`Enter`||e.key===` `)){e.preventDefault(),this.pressed$.next(!0);let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(t),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}static{this.styles=[c.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-block;
|
|
4
4
|
outline: none;
|
|
@@ -117,6 +117,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BHfQg3Tj.cjs`
|
|
|
117
117
|
`,()=>c.nothing)}`}};e.u([(0,s.property)({type:Boolean,reflect:!0})],f.prototype,`multi`,void 0),e.u([(0,s.property)({reflect:!1})],f.prototype,`value`,null),e.u([(0,s.property)({type:Boolean,reflect:!0})],f.prototype,`wrap`,void 0),e.u([(0,s.property)({type:String,reflect:!0})],f.prototype,`justify`,void 0),e.u([(0,s.queryAssignedElements)({selector:`schmancy-chip, schmancy-filter-chip, schmancy-assist-chip, schmancy-input-chip, schmancy-suggestion-chip`,flatten:!0})],f.prototype,`chips`,void 0),f=e.u([(0,s.customElement)(`schmancy-chips`)],f);var p=class extends e.t{static{this.styles=[c.css`
|
|
118
118
|
:host {
|
|
119
119
|
display: inline-flex;
|
|
120
|
+
flex-shrink: 0;
|
|
120
121
|
outline: none;
|
|
121
122
|
border-radius: 0.5rem;
|
|
122
123
|
transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
@@ -140,14 +141,14 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BHfQg3Tj.cjs`
|
|
|
140
141
|
button {
|
|
141
142
|
font-family: inherit;
|
|
142
143
|
}
|
|
143
|
-
`]}get selected(){return this
|
|
144
|
+
`]}#e;get selected(){return this.#e}set selected(e){let t=this.#e;this.#e=e,this.requestUpdate(`selected`,t)}constructor(){super(),this.value=``,this.#e=!1,this.removable=!1,this.disabled=!1,this.elevated=!1,this.handleClick=()=>{this.disabled||this.dispatchEvent(new CustomEvent(`change`,{detail:{value:this.value,selected:!this.#e},bubbles:!0,composed:!0}))},this.handleRemove=e=>{this.disabled||(e.stopPropagation(),this.dispatchEvent(new CustomEvent(`remove`,{detail:{value:this.value},bubbles:!0,composed:!0})))},this.handleKeyDown=e=>{this.disabled||e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),this.dispatchEvent(new CustomEvent(`change`,{detail:{value:this.value,selected:!this.#e},bubbles:!0,composed:!0})))};try{this.internals=this.attachInternals()}catch{this.internals=void 0}}static{this.shadowRootOptions={...c.LitElement.shadowRootOptions,delegatesFocus:!0}}static{this.formAssociated=!0}get form(){return this.internals?.form}connectedCallback(){super.connectedCallback()}updated(e){super.updated?.(e),(e.has(`value`)||e.has(`selected`))&&this.internals?.setFormValue(this.#e?this.value||`on`:null)}formResetCallback(){this.#e=this.hasAttribute(`selected`)}formDisabledCallback(e){this.disabled=e}render(){let e={"inline-flex":!0,"items-center":!0,"gap-2":!0,"rounded-lg":!0,"h-8 px-4":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"text-sm":!0,"font-medium":!0,relative:!0,"min-h-[32px]":!0,"bg-secondary-container":this.#e,"text-secondary-onContainer":this.#e,"bg-surface-container":!this.#e,"text-surface-on":!this.#e,"hover:brightness-95":this.#e&&!this.disabled,"hover:bg-surface-containerHigh":!this.#e&&!this.disabled,"active:brightness-90":!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"focus-visible:outline-primary-default":!this.disabled,"shadow-md":this.elevated&&!this.disabled,"hover:shadow-lg":this.elevated&&!this.disabled,"opacity-[var(--schmancy-sys-state-disabled-opacity)]":this.disabled,"cursor-not-allowed":this.disabled};return c.html`
|
|
144
145
|
<button
|
|
145
146
|
${r.t({strength:2,radius:40})}
|
|
146
147
|
class=${this.classMap(e)}
|
|
147
148
|
@click=${this.handleClick}
|
|
148
149
|
@keydown=${this.handleKeyDown}
|
|
149
150
|
?disabled=${this.disabled}
|
|
150
|
-
aria-pressed=${this
|
|
151
|
+
aria-pressed=${this.#e?`true`:`false`}
|
|
151
152
|
role="checkbox"
|
|
152
153
|
tabindex="0"
|
|
153
154
|
>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chips-wfJ7YtWv.cjs","names":["#selected"],"sources":["../src/form/fields/chips/assist-chip.ts","../src/form/fields/chips/chips.ts","../src/form/fields/chips/filter-chip.ts","../src/form/fields/chips/suggestion-chip.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\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 SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\twidth: fit-content;\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 { SchmancyFormField } from '@mixins/formField.mixin'\nimport { css, html, nothing, PropertyValues } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.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\nexport type SchmancyChipsChangeEvent = CustomEvent<{ value: string | string[] }>\n\n@customElement('schmancy-chips')\nexport default class SchmancyChips extends SchmancyFormField(css`\n:host {\n\tdisplay: block;\n\theight: fit-content;\n\twidth: fit-content;\n}\n`) {\n\t// FACE wiring (formAssociated, internals, attachInternals) comes from\n\t// SchmancyFormField. Same for: name, required, disabled, validationMessage,\n\t// validateOn, touched/dirty/pristine/submitted, markTouched/markSubmitted,\n\t// formResetCallback, formDisabledCallback, FIELD_CONNECT_EVENT dispatch,\n\t// emitChange(), checkValidity(), reportValidity(), setCustomValidity().\n\n\t/** Whether multiple chips can be selected simultaneously. */\n\t@property({ type: Boolean, reflect: true })\n\tmulti: boolean = false\n\n\t// Override `value` with the chips-specific type and a custom getter/setter\n\t// pair backed by reactive subjects.\n\t@property({ reflect: false })\n\toverride get value(): string | string[] {\n\t\treturn this.multi\n\t\t\t? (this.values$?.value ?? [])\n\t\t\t: (this.value$?.value ?? '')\n\t}\n\toverride set value(v: string | string[]) {\n\t\tconst old = this.value\n\t\tif (this.multi) {\n\t\t\tconst arr = Array.isArray(v)\n\t\t\t\t? v\n\t\t\t\t: v ? String(v).split(',').map(s => s.trim()).filter(Boolean) : []\n\t\t\tthis.values$?.next(arr)\n\t\t} else {\n\t\t\tthis.value$?.next(Array.isArray(v) ? (v[0] ?? '') : String(v ?? ''))\n\t\t}\n\t\tthis.requestUpdate('value', old)\n\t}\n\n\t/** Typed convenience alias for multi-mode consumers. */\n\tget values(): string[] {\n\t\treturn [...(this.values$?.value ?? [])]\n\t}\n\tset values(v: string[]) {\n\t\tthis.values$?.next(Array.isArray(v) ? [...v] : [])\n\t}\n\n\t@property({ type: Boolean, reflect: true })\n\twrap: boolean = false\n\n\t@property({ type: String, reflect: true })\n\tjustify: 'start' | 'center' | 'end' = 'start'\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// Two internal streams — one for single mode, one for multi mode.\n\tprivate value$ = new BehaviorSubject<string>('')\n\tprivate values$ = new BehaviorSubject<string[]>([])\n\n\tprotected override willUpdate(changedProps: PropertyValues): void {\n\t\tsuper.willUpdate(changedProps)\n\t\t// super handles the string path; fix the array path for multi mode.\n\t\tif (changedProps.has('value') && Array.isArray(this.value) && this.name) {\n\t\t\tconst fd = new FormData()\n\t\t\tthis.value.forEach(v => fd.append(this.name, v))\n\t\t\tthis.internals?.setFormValue(fd)\n\t\t}\n\t}\n\n\toverride checkValidity(): boolean {\n\t\tif (this.required && Array.isArray(this.value) && this.value.length === 0) {\n\t\t\tconst msg = this.errorMessages?.valueMissing ?? 'This field is required'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, msg)\n\t\t\tif (this.submitted || this.dirty || this.touched || this.validateOn === 'always') {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = msg\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t\treturn super.checkValidity()\n\t}\n\n\toverride connectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Sync BehaviorSubjects with whatever value was set before connection.\n\t\tif (this.multi) {\n\t\t\tconst cur = this.value\n\t\t\tthis.values$.next(Array.isArray(cur) ? cur : [])\n\t\t} else {\n\t\t\tconst cur = this.value\n\t\t\tthis.value$.next(Array.isArray(cur) ? (cur[0] ?? '') : String(cur ?? ''))\n\t\t}\n\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),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(([value, values]) => {\n\t\t\t\tthis.updateChipStates(value, values)\n\t\t\t})\n\t}\n\n\tprivate updateChipStates(value: string, values: string[]) {\n\t\tif (!this.chips) 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 (this.multi) {\n\t\t\t\t\tfilterChip.selected = values.length > 0 && values.includes(filterChip.value)\n\t\t\t\t} else {\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\tconst { value: chipValue, selected } = e.detail\n\n\t\tif (this.multi) {\n\t\t\tconst old = this.value\n\t\t\tif (selected) {\n\t\t\t\tif (!this.values$.value.includes(chipValue)) {\n\t\t\t\t\tthis.values$.next([...this.values$.value, chipValue])\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.values$.next(this.values$.value.filter(v => v !== chipValue))\n\t\t\t}\n\t\t\tthis.requestUpdate('value', old)\n\t\t} else {\n\t\t\tconst old = this.value\n\t\t\tif (selected) {\n\t\t\t\tthis.value$.next(chipValue)\n\t\t\t} else if (!this.required) {\n\t\t\t\tthis.value$.next('')\n\t\t\t} else {\n\t\t\t\t// Required single-mode: ignore deselection attempt.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.requestUpdate('value', old)\n\t\t}\n\n\t\tthis.emitChange({ value: this.multi ? this.values$.value : this.value$.value })\n\t}\n\n\toverride resetForm(): void {\n\t\tsuper.resetForm()\n\t\tthis.value$.next('')\n\t\tthis.values$.next([])\n\t}\n\n\tprotected firstUpdated(changedProperties: PropertyValues): void {\n\t\tsuper.firstUpdated(changedProperties)\n\t\tthis.updateChipStates(this.value$.value, this.values$.value)\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\tconst wrapperClasses = {\n\t\t\t'rounded-lg transition-all duration-200': true,\n\t\t\t'outline outline-2 outline-offset-4 outline-error-default': this.error,\n\t\t}\n\t\treturn html`\n\t\t\t<div class=\"${this.classMap(wrapperClasses)}\">\n\t\t\t\t<schmancy-scroll\n\t\t\t\t\thide\n\t\t\t\t\t.direction=${this.wrap ? 'vertical' : 'horizontal'}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\t${fullWidth()}\n\t\t\t\t\t@change=${this.change}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.updateChipStates(this.value$.value, this.values$.value)\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</schmancy-scroll>\n\t\t\t</div>\n\n\t\t\t${when(\n\t\t\t\tthis.hint || (this.error && this.validationMessage),\n\t\t\t\t() => html`\n\t\t\t\t\t<div\n\t\t\t\t\t\tid=\"hint-${this.id}\"\n\t\t\t\t\t\tclass=\"mt-1 text-sm ${this.error ? 'text-error-default' : 'text-surface-onVariant'}\"\n\t\t\t\t\t\trole=${ifDefined(this.error ? 'alert' : undefined)}\n\t\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.error && this.validationMessage ? this.validationMessage : this.hint}\n\t\t\t\t\t</div>\n\t\t\t\t`,\n\t\t\t\t() => nothing,\n\t\t\t)}`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-chips': SchmancyChips\n\t}\n}\n","import { SchmancyElement } from '@mixins/index'\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 SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-flex;\n\t\tflex-shrink: 0;\n\t\toutline: none;\n\t\tborder-radius: 0.5rem;\n\t\ttransition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\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([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(:active:not([disabled])) { transform: 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\t#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\tprotected updated(changed: Map<string, unknown>) {\n\t\tsuper.updated?.(changed)\n\t\tif (changed.has('value') || changed.has('selected')) {\n\t\t\tthis.internals?.setFormValue(this.#selected ? (this.value || 'on') : null)\n\t\t}\n\t}\n\n\tformResetCallback(): void {\n\t\tthis.#selected = this.hasAttribute('selected')\n\t}\n\n\tformDisabledCallback(disabled: boolean): void {\n\t\tthis.disabled = disabled\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'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'bg-surface-container': !this.#selected,\n\t\t\t'text-surface-on': !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 { SchmancyElement } from '@mixins/index'\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 SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\twidth: fit-content;\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\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\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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"}
|
package/dist/chips.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./input-chip-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./input-chip-ChAgRCXZ.cjs`),t=require(`./chips-wfJ7YtWv.cjs`);Object.defineProperty(exports,`SchmancyAssistChip`,{enumerable:!0,get:function(){return t.r}}),exports.SchmancyChip=t.n,exports.SchmancyFilterChip=t.n,Object.defineProperty(exports,`SchmancyInputChip`,{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,`SchmancySuggestionChip`,{enumerable:!0,get:function(){return t.t}});
|
package/dist/chips.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as e } from "./input-chip-
|
|
2
|
-
import { n as t, r as n, t as r } from "./chips-
|
|
1
|
+
import { t as e } from "./input-chip-BOrcKH-H.js";
|
|
2
|
+
import { n as t, r as n, t as r } from "./chips-BoZSpSh_.js";
|
|
3
3
|
export { n as SchmancyAssistChip, t as SchmancyChip, t as SchmancyFilterChip, e as SchmancyInputChip, r as SchmancySuggestionChip };
|
package/dist/connectivity.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-C41uPa6l.cjs`);require(`./mixins-fIpzhVMd.cjs`);const t=require(`./audio-EaD0Ggfh.cjs`);let n=require(`rxjs`),r=require(`rxjs/operators`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`lit/directives/ref.js`);var s=class extends e.t{constructor(...e){super(...e),this.bannerRef=(0,o.createRef)(),this.surfaceRef=(0,o.createRef)(),this.iconRef=(0,o.createRef)(),this.messageRef=(0,o.createRef)()}static{this.styles=[a.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
}
|
package/dist/connectivity.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as e, u as t } from "./SchmancyElement-
|
|
2
|
-
import "./mixins-
|
|
3
|
-
import { t as n } from "./audio-
|
|
1
|
+
import { t as e, u as t } from "./SchmancyElement-BNnyBOwk.js";
|
|
2
|
+
import "./mixins-DGBI7YPO.js";
|
|
3
|
+
import { t as n } from "./audio-D3gnp15Y.js";
|
|
4
4
|
import { fromEvent as r, merge as i, timer as a } from "rxjs";
|
|
5
5
|
import { distinctUntilChanged as o, map as s, skip as c, takeUntil as l, tap as u } from "rxjs/operators";
|
|
6
6
|
import { customElement as d } from "lit/decorators.js";
|
package/dist/content-drawer.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-GJA8uSAS.cjs`);Object.defineProperty(exports,`SchmancyContentDrawer`,{enumerable:!0,get:function(){return e._}}),exports.SchmancyContentDrawerID=e.v,Object.defineProperty(exports,`SchmancyContentDrawerMain`,{enumerable:!0,get:function(){return e.g}}),exports.SchmancyContentDrawerMaxHeight=e.y,exports.SchmancyContentDrawerMinWidth=e.b,Object.defineProperty(exports,`SchmancyContentDrawerSheet`,{enumerable:!0,get:function(){return e.h}}),exports.SchmancyContentDrawerSheetMode=e.x,exports.SchmancyContentDrawerSheetState=e.S,exports.schmancyContentDrawer=e.C;
|
package/dist/content-drawer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as e, S as t, _ as n, b as r, g as i, h as a, v as o, x as s, y as c } from "./src-
|
|
1
|
+
import { C as e, S as t, _ as n, b as r, g as i, h as a, v as o, x as s, y as c } from "./src-8VJ7eluk.js";
|
|
2
2
|
export { n as SchmancyContentDrawer, o as SchmancyContentDrawerID, i as SchmancyContentDrawerMain, c as SchmancyContentDrawerMaxHeight, r as SchmancyContentDrawerMinWidth, a as SchmancyContentDrawerSheet, s as SchmancyContentDrawerSheetMode, t as SchmancyContentDrawerSheetState, e as schmancyContentDrawer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-glow-Ah7VXSj7.js","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(
|
|
1
|
+
{"version":3,"file":"cursor-glow-Ah7VXSj7.js","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(options?: CursorGlowOptions) {\n\t\tvoid options\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(this.element, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":";;;;;AAwBA,IAsHa,IAAa,EAtH1B,cAAkC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,YAGJ,IAAI,KAAA,KAAA,SAChB,KAAA,KAAA,QACD,6CAAA,KAAA,YACI,KAAA,KAAA,iBAAA,CAEK;CAAA;CAGzB,OAAO,GAAA,CAGP;CAEA,OAAgB,GAAA,CAAoB,IAAA;EACnC,IAAI,EAAK,SAAS,EAAS,SAC1B,MAAU,MAAM,iDAAA;EAGjB,IAAM,IAAM,KAAK,UAAU,KAAW,CAAC,CAAA;EACnC,KAAK,WAAW,MAAQ,KAAK,YACjC,KAAK,UAAU,GAEf,KAAK,UAAU,EAAK,SACpB,KAAK,SAAS,GAAS,UAAU,KACjC,KAAK,QAAQ,GAAS,SAAS,6CAC/B,KAAK,YAAY,GAAS,aAAa,KAEnC,EAAe,UAEnB,KAAK,UAAU,KAAA,GACf,KAAK,kBAAA,GACL,KAAK,cAAA;CAGN;CAEA,cAAA;EACC,KAAK,kBAAA,GACL,KAAK,UAAU,KAAA,GACf,KAAK,cAAA;CACN;CAEA,oBAAA;EAEa,AADA,iBAAiB,KAAK,OAAA,EAAS,aAC/B,aACX,KAAK,QAAQ,MAAM,WAAW,YAC9B,KAAK,iBAAA,CAAiB,IAGlB,KAAK,WACT,KAAK,SAAS,SAAS,cAAc,KAAA,GACrC,KAAK,OAAO,aAAa,eAAe,MAAA,GACxC,OAAO,OAAO,KAAK,OAAO,OAAO;GAChC,UAAU;GACV,OAAO;GACP,eAAe;GACf,QAAQ;GACR,cAAc;GACd,UAAU;GACV,SAAS;GACT,YAAY;EAAA,CAAA,GAEb,KAAK,QAAQ,QAAQ,KAAK,MAAA;CAE5B;CAEA,gBAAA;EAyBC,EAxBe,EAAsB,KAAK,SAAS,YAAA,EAAc,KAChE,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAa,KAAK,QAAQ,sBAAA,GACxB,KAAA,CAAA,GAIK,EAAsB,KAAK,SAAS,WAAA,EAAa,KAC9D,EAAU,GAAG,CAAA,GACb,GAAI,MAAA;GACH,IAAM,IAAO,KAAK,cAAc,KAAK,QAAQ,sBAAA;GAC7C,OAAO;IAAE,GAAG,EAAE,UAAU,EAAK;IAAM,GAAG,EAAE,UAAU,EAAK;GAAA;EAAA,CAAA,CAAA,GAI1C,EAAU,KAAK,SAAS,YAAA,EAAc,KACpD,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAA,KAAa,GACX,KAAA,CAAA,CAAA,EAKP,KAAK,EAAU,KAAK,SAAA,CAAA,EACpB,WAAU,MAAA;GACN,KAAO,KAAK,WACf,KAAK,OAAO,MAAM,aAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,MAAjB,KAAK,SAAA,EAAA;EAAA,CAAA;CAKxD;CAEA,eAAA;EACC,KAAK,UAAU,KAAA,GACf,KAAK,QAAQ,OAAA,GACb,KAAK,SAAA,KAAS,GACV,KAAK,kBAAkB,KAAK,YAC/B,KAAK,QAAQ,MAAM,WAAW,IAC9B,KAAK,iBAAA,CAAiB;CAExB;AAAA,CAAA;AAAA,SAAA,KAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-glow-Bulq-38P.cjs","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(
|
|
1
|
+
{"version":3,"file":"cursor-glow-Bulq-38P.cjs","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(options?: CursorGlowOptions) {\n\t\tvoid options\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(this.element, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":"qMAwBA,IAAM,EAAN,cAAkC,EAAA,cAAA,CAAA,YAAA,GAAA,EAAA,CAAA,MAAA,GAAA,CAAA,EAAA,KAAA,UAGJ,IAAI,EAAA,QAAA,KAAA,OAChB,IAAA,KAAA,MACD,4CAAA,KAAA,UACI,IAAA,KAAA,eAAA,CAEK,CAAA,CAGzB,OAAO,EAAA,CAGP,CAEA,OAAgB,EAAA,CAAoB,GAAA,CACnC,GAAI,EAAK,OAAS,EAAA,SAAS,QAC1B,MAAU,MAAM,iDAAA,EAGjB,IAAM,EAAM,KAAK,UAAU,GAAW,CAAC,CAAA,EACnC,KAAK,SAAW,IAAQ,KAAK,UACjC,KAAK,QAAU,EAEf,KAAK,QAAU,EAAK,QACpB,KAAK,OAAS,GAAS,QAAU,IACjC,KAAK,MAAQ,GAAS,OAAS,4CAC/B,KAAK,UAAY,GAAS,WAAa,IAEnC,EAAA,EAAe,QAEnB,KAAK,UAAU,KAAA,EACf,KAAK,kBAAA,EACL,KAAK,cAAA,GAGN,CAEA,aAAA,CACC,KAAK,kBAAA,EACL,KAAK,UAAU,KAAA,EACf,KAAK,cAAA,CACN,CAEA,mBAAA,CACa,iBAAiB,KAAK,OAAA,EAAS,WAC/B,WACX,KAAK,QAAQ,MAAM,SAAW,WAC9B,KAAK,eAAA,CAAiB,GAGlB,KAAK,SACT,KAAK,OAAS,SAAS,cAAc,KAAA,EACrC,KAAK,OAAO,aAAa,cAAe,MAAA,EACxC,OAAO,OAAO,KAAK,OAAO,MAAO,CAChC,SAAU,WACV,MAAO,IACP,cAAe,OACf,OAAQ,IACR,aAAc,UACd,SAAU,SACV,QAAS,IACT,WAAY,oBAAA,CAAA,EAEb,KAAK,QAAQ,QAAQ,KAAK,MAAA,EAE5B,CAEA,eAAA,EAyBC,EAAA,EAAA,QAAA,EAAA,EAAA,WAxBqC,KAAK,QAAS,YAAA,EAAc,MAAA,EAAA,EAAA,UAE3D,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAa,KAAK,QAAQ,sBAAA,EACxB,KAAA,CAAA,GAoBH,EAAA,EAAA,WAhB8B,KAAK,QAAS,WAAA,EAAa,MAAA,EAAA,EAAA,WACpD,EAAG,EAAA,uBAAA,GAAuB,EAAA,EAAA,KAChC,GAAA,CACH,IAAM,EAAO,KAAK,YAAc,KAAK,QAAQ,sBAAA,EAC7C,MAAO,CAAE,EAAG,EAAE,QAAU,EAAK,KAAM,EAAG,EAAE,QAAU,EAAK,GAAA,CAAA,CAAA,CAAA,GAY3C,EAAA,EAAA,WARW,KAAK,QAAS,YAAA,EAAc,MAAA,EAAA,EAAA,UAE/C,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAA,IAAa,GACX,KAAA,CAAA,CAAA,EAKP,MAAA,EAAA,EAAA,WAAe,KAAK,SAAA,CAAA,EACpB,UAAU,GAAA,CACN,GAAO,KAAK,SACf,KAAK,OAAO,MAAM,WAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,IAAjB,KAAK,SAAA,EAAA,wDAAA,CAAA,CAKxD,CAEA,cAAA,CACC,KAAK,UAAU,KAAA,EACf,KAAK,QAAQ,OAAA,EACb,KAAK,OAAA,IAAS,GACV,KAAK,gBAAkB,KAAK,UAC/B,KAAK,QAAQ,MAAM,SAAW,GAC9B,KAAK,eAAA,CAAiB,EAExB,CAAA,EAGY,GAAA,EAAA,EAAA,WAAuB,CAAA,EAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-
|
|
1
|
+
const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-C41uPa6l.cjs`),n=require(`./mixins-fIpzhVMd.cjs`),r=require(`./overlay.service-Dbu5uP9E.cjs`);let i=require(`rxjs`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/if-defined.js`),c=require(`lit/directives/repeat.js`);var l=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=6e4,t=36e5,n=`millisecond`,r=`second`,i=`minute`,a=`hour`,o=`day`,s=`week`,c=`month`,l=`quarter`,u=`year`,d=`date`,f=`Invalid Date`,p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|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,h={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(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},g=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},_={s:g,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+g(r,2,`0`)+`:`+g(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,c),a=n-i<0,o=t.clone().add(r+(a?-1:1),c);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:c,y:u,w:s,d:o,D:d,h:a,m:i,s:r,ms:n,Q:l}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},v=`en`,y={};y[v]=h;var b=`$isDayjsObject`,x=function(e){return e instanceof T||!(!e||!e[b])},S=function e(t,n,r){var i;if(!t)return v;if(typeof t==`string`){var a=t.toLowerCase();y[a]&&(i=a),n&&(y[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;y[s]=t,i=s}return!r&&i&&(v=i),i||!r&&v},C=function(e,t){if(x(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new T(n)},w=_;w.l=S,w.i=x,w.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var T=function(){function h(e){this.$L=S(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[b]=!0}var g=h.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(w.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(p);if(r){var i=r[2]-1||0,a=(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,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return w},g.isValid=function(){return this.$d.toString()!==f},g.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return C(e)<this.startOf(t)},g.isBefore=function(e,t){return this.endOf(t)<C(e)},g.$g=function(e,t,n){return w.u(e)?this[t]:this.set(n,e)},g.unix=function(){return Math.floor(this.valueOf()/1e3)},g.valueOf=function(){return this.$d.getTime()},g.startOf=function(e,t){var n=this,l=!!w.u(t)||t,f=w.p(e),p=function(e,t){var r=w.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return l?r:r.endOf(o)},m=function(e,t){return w.w(n.toDate()[e].apply(n.toDate(`s`),(l?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(f){case u:return l?p(1,0):p(31,11);case c:return l?p(1,g):p(0,g+1);case s:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(l?_-b:_+(6-b),g);case o:case d:return m(v+`Hours`,0);case a:return m(v+`Minutes`,1);case i:return m(v+`Seconds`,2);case r:return m(v+`Milliseconds`,3);default:return this.clone()}},g.endOf=function(e){return this.startOf(e,!1)},g.$set=function(e,t){var s,l=w.p(e),f=`set`+(this.$u?`UTC`:``),p=(s={},s[o]=f+`Date`,s[d]=f+`Date`,s[c]=f+`Month`,s[u]=f+`FullYear`,s[a]=f+`Hours`,s[i]=f+`Minutes`,s[r]=f+`Seconds`,s[n]=f+`Milliseconds`,s)[l],m=l===o?this.$D+(t-this.$W):t;if(l===c||l===u){var h=this.clone().set(d,1);h.$d[p](m),h.init(),this.$d=h.set(d,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},g.set=function(e,t){return this.clone().$set(e,t)},g.get=function(e){return this[w.p(e)]()},g.add=function(n,l){var d,f=this;n=Number(n);var p=w.p(l),m=function(e){var t=C(f);return w.w(t.date(t.date()+Math.round(e*n)),f)};if(p===c)return this.set(c,this.$M+n);if(p===u)return this.set(u,this.$y+n);if(p===o)return m(1);if(p===s)return m(7);var h=(d={},d[i]=e,d[a]=t,d[r]=1e3,d)[p]||1,g=this.$d.getTime()+n*h;return w.w(g,this)},g.subtract=function(e,t){return this.add(-1*e,t)},g.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=w.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[n]||e(t,r))||i[n].slice(0,a)},p=function(e){return w.s(a%12||12,e,`0`)},h=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(m,function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return w.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return w.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return w.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return w.s(a,2,`0`);case`h`:return p(1);case`hh`:return p(2);case`a`:return h(a,o,!0);case`A`:return h(a,o,!1);case`m`:return String(o);case`mm`:return w.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return w.s(t.$s,2,`0`);case`SSS`:return w.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)})},g.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},g.diff=function(n,d,f){var p,m=this,h=w.p(d),g=C(n),_=(g.utcOffset()-this.utcOffset())*e,v=this-g,y=function(){return w.m(m,g)};switch(h){case u:p=y()/12;break;case c:p=y();break;case l:p=y()/3;break;case s:p=(v-_)/6048e5;break;case o:p=(v-_)/864e5;break;case a:p=v/t;break;case i:p=v/e;break;case r:p=v/1e3;break;default:p=v}return f?p:w.a(p)},g.daysInMonth=function(){return this.endOf(c).$D},g.$locale=function(){return y[this.$L]},g.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=S(e,t,!0);return r&&(n.$L=r),n},g.clone=function(){return w.w(this.$d,this)},g.toDate=function(){return new Date(this.valueOf())},g.toJSON=function(){return this.isValid()?this.toISOString():null},g.toISOString=function(){return this.$d.toISOString()},g.toString=function(){return this.$d.toUTCString()},h}(),E=T.prototype;return C.prototype=E,[[`$ms`,n],[`$s`,r],[`$m`,i],[`$H`,a],[`$W`,o],[`$M`,c],[`$y`,u],[`$D`,d]].forEach(function(e){E[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),C.extend=function(e,t){return e.$i||=(e(t,T,C),!0),C},C.locale=S,C.isDayjs=x,C.unix=function(e){return C(1e3*e)},C.en=y[v],C.Ls=y,C.p={},C};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()}),u=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=`month`,t=`quarter`;return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var o=i.startOf;i.startOf=function(n,r){var i=this.$utils(),a=!!i.u(r)||r;if(i.p(n)===t){var s=this.quarter()-1;return a?this.month(3*s).startOf(e).startOf(`day`):this.month(3*s+2).endOf(e).endOf(`day`)}return o.bind(this)(n,r)}}};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_quarterOfYear=r()}),d=e.r(u(),1),f=e.r(l(),1);function p(e,t){return e.map(e=>({label:`Last ${e} Days`,range:{dateFrom:(0,f.default)().subtract(e-1,`days`).startOf(`day`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`day`}))}function m(e,t){return e.map(e=>({label:`Last ${e} Weeks`,range:{dateFrom:(0,f.default)().subtract(e,`weeks`).startOf(`week`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`week`}))}function h(e,t){return e.map(e=>({label:`Last ${e} Months`,range:{dateFrom:(0,f.default)().subtract(e,`months`).startOf(`month`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`month`}))}function g(e,t){return e.map(e=>({label:`Last ${e} Quarters`,range:{dateFrom:(0,f.default)().subtract(e,`quarters`).startOf(`quarter`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`quarter`}))}function _(e,t){if(!e)return null;let n=(0,f.default)(e);return n.isValid()?n.format(t):null}function v(e,t,n){let r=_(e,n),i=_(t,n);return{dateFrom:r,dateTo:i,isValid:r!==null&&i!==null}}var y=class extends t.t{constructor(...e){super(...e),this.type=`date`,this.dateFrom={label:`From`,value:``},this.dateTo={label:`To`,value:``},this.activePreset=null,this.presetCategories=[]}static{this.styles=[o.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
padding: 1.5rem;
|
|
@@ -78,7 +78,7 @@ const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-BHfQg3Tj.cj
|
|
|
78
78
|
@apply-dates="${e=>{let{dateFrom:t,dateTo:n,swapIfNeeded:r}=e.detail;r?this.setDateRange(n,t):this.setDateRange(t,n),b(e.currentTarget)}}"
|
|
79
79
|
@announce="${e=>this.announce$.next(e.detail.message)}"
|
|
80
80
|
></schmancy-date-range-dialog>
|
|
81
|
-
`,{anchor:e}).pipe((0,i.takeUntil)(this.close$),(0,i.finalize)(()=>{this.isOpen=!1})))),this.announce$.pipe((0,i.switchMap)(e=>(0,i.concat)((0,i.of)(e),(0,i.timer)(100).pipe((0,i.map)(()=>``)))),(0,i.tap)(e=>{this.announceMessage=e})),(0,i.fromEvent)(document,`keydown`).pipe((0,i.tap)(e=>this.handleKeyboardNavigation(e)))).pipe((0,i.takeUntil)(this.disconnecting)).subscribe()}updated(e){super.updated(e),!e.has(`dateFrom`)&&!e.has(`dateTo`)||this.dateFrom?.value===void 0&&this.dateTo?.value===void 0||this.updateSelectedDateRange()}willUpdate(e){if(super.willUpdate(e),e.has(`dateFrom`)||e.has(`dateTo`)||e.has(`name`)){if(this.name&&!this.disabled){let e=new FormData;this.dateFrom?.value&&e.append(`${this.name}From`,this.dateFrom.value),this.dateTo?.value&&e.append(`${this.name}To`,this.dateTo.value),this.internals?.setFormValue(e)}else this.internals?.setFormValue(null);this.checkValidity()}(e.has(`required`)||e.has(`disabled`))&&this.checkValidity()}checkValidity(){if(this.disabled)return this.internals?.setValidity({}),!0;let e=!this.dateFrom?.value,t=!this.dateTo?.value,n=!this.required||!e&&!t,r=n?``:`Please select a date range.`;return this.internals?.setValidity(n?{}:{valueMissing:!0},n?void 0:r),this.
|
|
81
|
+
`,{anchor:e}).pipe((0,i.takeUntil)(this.close$),(0,i.finalize)(()=>{this.isOpen=!1})))),this.announce$.pipe((0,i.switchMap)(e=>(0,i.concat)((0,i.of)(e),(0,i.timer)(100).pipe((0,i.map)(()=>``)))),(0,i.tap)(e=>{this.announceMessage=e})),(0,i.fromEvent)(document,`keydown`).pipe((0,i.tap)(e=>this.handleKeyboardNavigation(e)))).pipe((0,i.takeUntil)(this.disconnecting)).subscribe()}updated(e){super.updated(e),!e.has(`dateFrom`)&&!e.has(`dateTo`)||this.dateFrom?.value===void 0&&this.dateTo?.value===void 0||this.updateSelectedDateRange()}willUpdate(e){if(super.willUpdate(e),e.has(`dateFrom`)||e.has(`dateTo`)||e.has(`name`)){if(this.name&&!this.disabled){let e=new FormData;this.dateFrom?.value&&e.append(`${this.name}From`,this.dateFrom.value),this.dateTo?.value&&e.append(`${this.name}To`,this.dateTo.value),this.internals?.setFormValue(e)}else this.internals?.setFormValue(null);this.checkValidity()}(e.has(`required`)||e.has(`disabled`))&&this.checkValidity()}checkValidity(){if(this.disabled)return this.internals?.setValidity({}),!0;let e=!this.dateFrom?.value,t=!this.dateTo?.value,n=!this.required||!e&&!t,r=n?``:`Please select a date range.`;return this.internals?.setValidity(n?{}:{valueMissing:!0},n?void 0:r),this.shouldShowError()&&(this.error=!n,this.validationMessage=r),n}toFormEntries(){if(!this.name||this.disabled)return[];let e=[];return this.dateFrom?.value&&e.push([`${this.name}From`,this.dateFrom.value]),this.dateTo?.value&&e.push([`${this.name}To`,this.dateTo.value]),e}firstUpdated(e){super.firstUpdated(e),this.dateFromDefault=this.dateFrom?.value??``,this.dateToDefault=this.dateTo?.value??``}get dirty(){return(this.dateFrom?.value??``)!==this.dateFromDefault||(this.dateTo?.value??``)!==this.dateToDefault}resetForm(){this.dateFrom={...this.dateFrom,value:this.dateFromDefault},this.dateTo={...this.dateTo,value:this.dateToDefault},super.resetForm()}initPresetRanges(){let e=this.getDateFormat(),t=`${this.type}-${e}-${JSON.stringify(this.customPresets)}`;if(this.memoizedPresets.has(t)){let e=this.memoizedPresets.get(t);this.presetCategories=e,this.presetRanges=[],e.forEach(e=>{this.presetRanges.push(...e.presets)});return}if(this.presetCategories=function(e,t=!1){let n=[];return t&&n.push({name:`Hours`,presets:[{label:`Last 24 Hours`,range:{dateFrom:(0,f.default)().subtract(24,`hours`).format(e),dateTo:(0,f.default)().format(e)},step:`hour`},{label:`Last 12 Hours`,range:{dateFrom:(0,f.default)().subtract(12,`hours`).format(e),dateTo:(0,f.default)().format(e)},step:`hour`}]}),n.push({name:`Days`,presets:[{label:`Today`,range:{dateFrom:(0,f.default)().startOf(`day`).format(e),dateTo:(0,f.default)().endOf(`day`).format(e)},step:`day`},{label:`Yesterday`,range:{dateFrom:(0,f.default)().subtract(1,`days`).startOf(`day`).format(e),dateTo:(0,f.default)().subtract(1,`days`).endOf(`day`).format(e)},step:`day`},...p([7,14,30,60,90],e)]}),n.push({name:`Weeks`,presets:[{label:`This Week`,range:{dateFrom:(0,f.default)().startOf(`week`).format(e),dateTo:(0,f.default)().endOf(`week`).format(e)},step:`week`},{label:`Last Week`,range:{dateFrom:(0,f.default)().subtract(1,`weeks`).startOf(`week`).format(e),dateTo:(0,f.default)().subtract(1,`weeks`).endOf(`week`).format(e)},step:`week`},...m([2,4],e)]}),n.push({name:`Months`,presets:[{label:`This Month`,range:{dateFrom:(0,f.default)().startOf(`month`).format(e),dateTo:(0,f.default)().endOf(`month`).format(e)},step:`month`},{label:`Last Month`,range:{dateFrom:(0,f.default)().subtract(1,`month`).startOf(`month`).format(e),dateTo:(0,f.default)().subtract(1,`month`).endOf(`month`).format(e)},step:`month`},...h([3,6],e)]}),n.push({name:`Quarters`,presets:[{label:`This Quarter`,range:{dateFrom:(0,f.default)().startOf(`quarter`).format(e),dateTo:(0,f.default)().endOf(`quarter`).format(e)},step:`quarter`},{label:`Last Quarter`,range:{dateFrom:(0,f.default)().subtract(1,`quarter`).startOf(`quarter`).format(e),dateTo:(0,f.default)().subtract(1,`quarter`).endOf(`quarter`).format(e)},step:`quarter`},...g([2,4],e)]}),n.push({name:`Years`,presets:[{label:`This Year`,range:{dateFrom:(0,f.default)().startOf(`year`).format(e),dateTo:(0,f.default)().endOf(`year`).format(e)},step:`year`},{label:`Last Year`,range:{dateFrom:(0,f.default)().subtract(1,`year`).startOf(`year`).format(e),dateTo:(0,f.default)().subtract(1,`year`).endOf(`year`).format(e)},step:`year`},{label:`Year to Date`,range:{dateFrom:(0,f.default)().startOf(`year`).format(e),dateTo:(0,f.default)().endOf(`day`).format(e)},step:`day`}]}),n}(e,this.type===`datetime-local`),this.presetRanges=[],this.presetCategories.forEach(e=>{this.presetRanges.push(...e.presets)}),this.customPresets&&this.customPresets.length>0){let e={name:`Custom`,presets:this.customPresets.map(e=>({label:e.label,range:{dateFrom:e.dateFrom,dateTo:e.dateTo},step:`day`}))};this.presetCategories.push(e),this.presetRanges.push(...e.presets)}this.memoizedPresets.set(t,[...this.presetCategories])}getDateFormat(){return this.format||(this.type===`date`?`YYYY-MM-DD`:`YYYY-MM-DDTHH:mm`)}updateSelectedDateRange(){let e=this.presetRanges.find(e=>e.range.dateFrom===this.dateFrom.value&&e.range.dateTo===this.dateTo.value);if(e)return this.selectedDateRange=e.label,void(this.activePreset=e.label);this.checkAndUpdateActivePreset(this.dateFrom.value,this.dateTo.value),this.activePreset=null,this.selectedDateRange=function(e,t,n,r){if(!e||!t)return r;let i=(0,f.default)(e),a=(0,f.default)(t);if(!i.isValid()||!a.isValid())return r;let o=n===`datetime-local`?i.format(` h:mm A`):``,s=n===`datetime-local`?a.format(` h:mm A`):``;return i.isSame(a,`day`)?`${i.format(`ddd, MMM D, YYYY`)}${o}`:i.isSame(a,`month`)&&i.isSame(a,`year`)?`${i.format(`ddd MMM D`)} - ${a.format(`ddd D, YYYY`)}${s}`:i.isSame(a,`year`)?`${i.format(`ddd MMM D`)} - ${a.format(`ddd MMM D, YYYY`)}${s}`:`${i.format(`ddd MMM D, YYYY`)}${o} - ${a.format(`ddd MMM D, YYYY`)}${s}`}(this.dateFrom.value,this.dateTo.value,this.type,this.placeholder)}setDateRange(e,t){this.dateFrom.value=e,this.dateTo.value=t,this.updateSelectedDateRange(),this.announce$.next(`Date range updated: ${this.selectedDateRange}`),this.dispatchEvent(new CustomEvent(`change`,{detail:{dateFrom:e,dateTo:t},bubbles:!0,composed:!0}))}toggleDropdown(e){e.stopPropagation(),this.disabled||this.step!==void 0||(this.isOpen?this.close$.next():this.open$.next(e))}shiftDateRange(e,t){if(t.stopPropagation(),!this.dateFrom.value||!this.dateTo.value)return;let n=(0,f.default)(this.dateFrom.value),r=(0,f.default)(this.dateTo.value);if(!n.isValid()||!r.isValid())return;let i=this.getDateFormat(),a=e>0?1:-1,o=r.diff(n,`day`)+1,s,c;if(this.step!==void 0)typeof this.step==`number`?(s=a*this.step,c=`day`):this.step===`day`?(s=a*o,c=`day`):(s=a,c=this.step);else{let e=function(e,t){return{isFullMonth:e.date()===1&&t.isSame(e.endOf(`month`),`day`),isFullQuarter:e.isSame(e.startOf(`quarter`),`day`)&&t.isSame(t.endOf(`quarter`),`day`),isFullYear:e.isSame(e.startOf(`year`),`day`)&&t.isSame(t.endOf(`year`),`day`),isFullWeek:e.day()===0&&t.day()===6&&t.diff(e,`days`)===6}}(n,r);e.isFullYear?(s=a,c=`year`):e.isFullMonth?(s=a,c=`month`):e.isFullWeek?(s=a,c=`week`):(s=a*o,c=`day`)}let l=n.add(s,c),u=r.add(s,c);this.minDate&&l.isBefore((0,f.default)(this.minDate))||this.maxDate&&u.isAfter((0,f.default)(this.maxDate))||(this.setDateRange(l.format(i),u.format(i)),this.checkAndUpdateActivePreset(l.format(i),u.format(i)))}handleKeyboardNavigation(e){let t=e.key;if(this.dateFrom.value&&this.dateTo.value&&!this.disabled)switch(t){case`PageUp`:(e.target===this||this.contains(e.target))&&(this.shiftDateRange(-1,e),e.preventDefault());break;case`PageDown`:(e.target===this||this.contains(e.target))&&(this.shiftDateRange(1,e),e.preventDefault());break;case`Home`:if(e.ctrlKey&&(e.target===this||this.contains(e.target))){let t=(0,f.default)(this.dateFrom.value),n=(0,f.default)(this.dateTo.value),r=t.startOf(`month`),i=n.diff(t,`day`);this.setDateRange(r.format(this.getDateFormat()),r.add(i,`day`).format(this.getDateFormat())),e.preventDefault()}break;case`End`:if(e.ctrlKey&&(e.target===this||this.contains(e.target))){let t=(0,f.default)(this.dateFrom.value),n=(0,f.default)(this.dateTo.value),r=n.diff(t,`day`),i=n.endOf(`month`);this.setDateRange(i.subtract(r,`day`).format(this.getDateFormat()),i.format(this.getDateFormat())),e.preventDefault()}}}checkAndUpdateActivePreset(e,t){let n=this.presetRanges.find(n=>n.range.dateFrom===e&&n.range.dateTo===t);this.activePreset=n?n.label:null}canNavigateBackward(){if(!this.dateFrom.value||!this.minDate)return!0;let e=(0,f.default)(this.dateFrom.value),t=(0,f.default)(this.minDate);return e.isAfter(t)}canNavigateForward(){if(!this.dateTo.value||!this.maxDate)return!0;let e=(0,f.default)(this.dateTo.value),t=(0,f.default)(this.maxDate);return e.isBefore(t)}render(){let e=this.error&&!!this.validationMessage,t=e?` rounded outline outline-2 outline-error-default`:``;return o.html`
|
|
82
82
|
<div class="relative ${this.disabled?`opacity-60 pointer-events-none`:``}">
|
|
83
83
|
<!-- Screen reader announcements -->
|
|
84
84
|
<div class="sr-only" role="status" aria-live="polite" aria-atomic="true">
|