@mhmo91/schmancy 0.10.19 → 0.10.20
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 +0 -13
- package/dist/agent/{overlay.confirm-body-D3jQyXgA.js → overlay.confirm-body-mYm0zq4k.js} +1 -1
- package/dist/agent/{overlay.confirm-body-D3jQyXgA.js.map → overlay.confirm-body-mYm0zq4k.js.map} +1 -1
- package/dist/agent/schmancy.agent.js +808 -882
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +1 -9
- package/dist/area-C7MNn-3e.cjs +12 -0
- package/dist/area-C7MNn-3e.cjs.map +1 -0
- package/dist/{area-BIipuSyO.js → area-CRe41aIG.js} +91 -130
- package/dist/area-CRe41aIG.js.map +1 -0
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-Mrb3koUN.js → autocomplete-CRDFL4Ul.js} +2 -2
- package/dist/{autocomplete-Mrb3koUN.js.map → autocomplete-CRDFL4Ul.js.map} +1 -1
- package/dist/{autocomplete-B8CE5vGw.cjs → autocomplete-CqUl7o0e.cjs} +1 -1
- package/dist/{autocomplete-B8CE5vGw.cjs.map → autocomplete-CqUl7o0e.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +1 -1
- package/dist/avatar.js +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-OatK_MGh.cjs → boat-BHV5kOlN.cjs} +1 -1
- package/dist/{boat-OatK_MGh.cjs.map → boat-BHV5kOlN.cjs.map} +1 -1
- package/dist/{boat-CNWIQPA1.js → boat-XajM8A3M.js} +1 -1
- package/dist/{boat-CNWIQPA1.js.map → boat-XajM8A3M.js.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/{busy-CMKX4oQf.cjs → busy-BlBZ5ZOs.cjs} +1 -1
- package/dist/{busy-CMKX4oQf.cjs.map → busy-BlBZ5ZOs.cjs.map} +1 -1
- package/dist/{busy-Cetzws-m.js → busy-D8YsqVBf.js} +1 -1
- package/dist/{busy-Cetzws-m.js.map → busy-D8YsqVBf.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +15 -9
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +15 -9
- package/dist/button.js.map +1 -1
- package/dist/{card-D2k3dRL0.js → card-C9TljY2Z.js} +1 -1
- package/dist/{card-D2k3dRL0.js.map → card-C9TljY2Z.js.map} +1 -1
- package/dist/{card-8VXoo2C_.cjs → card-yT_St83D.cjs} +1 -1
- package/dist/{card-8VXoo2C_.cjs.map → card-yT_St83D.cjs.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-8hNsBejz.js → checkbox-BDgh4rge.js} +1 -1
- package/dist/{checkbox-8hNsBejz.js.map → checkbox-BDgh4rge.js.map} +1 -1
- package/dist/{checkbox-Cq5wzeaY.cjs → checkbox-Dz2lkJs0.cjs} +1 -1
- package/dist/{checkbox-Cq5wzeaY.cjs.map → checkbox-Dz2lkJs0.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-Dx_WvOGk.cjs → chips-M7Dr2npv.cjs} +2 -4
- package/dist/chips-M7Dr2npv.cjs.map +1 -0
- package/dist/{chips-D1kJrbzo.js → chips-N7fu0hA4.js} +3 -5
- package/dist/chips-N7fu0hA4.js.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 +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-H903Vt_r.cjs → date-range-D2vxD814.cjs} +1 -1
- package/dist/{date-range-H903Vt_r.cjs.map → date-range-D2vxD814.cjs.map} +1 -1
- package/dist/{date-range-Dv-DM6mB.js → date-range-DFWOMgI3.js} +2 -2
- package/dist/{date-range-Dv-DM6mB.js.map → date-range-DFWOMgI3.js.map} +1 -1
- package/dist/{date-range-inline-Bvs2ZvEY.cjs → date-range-inline-C5JuZ_Kw.cjs} +1 -1
- package/dist/{date-range-inline-Bvs2ZvEY.cjs.map → date-range-inline-C5JuZ_Kw.cjs.map} +1 -1
- package/dist/{date-range-inline-TWWnTZlw.js → date-range-inline-D3q1OoKk.js} +1 -1
- package/dist/{date-range-inline-TWWnTZlw.js.map → date-range-inline-D3q1OoKk.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 +1 -1
- package/dist/{details-Cpg8sH2F.js → details-BrUPmd92.js} +2 -2
- package/dist/details-BrUPmd92.js.map +1 -0
- package/dist/{details-CwSDur6j.cjs → details-DmDEInaL.cjs} +2 -2
- package/dist/details-DmDEInaL.cjs.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{divider-Be833gGZ.js → divider-BLijs8ba.js} +1 -1
- package/dist/{divider-Be833gGZ.js.map → divider-BLijs8ba.js.map} +1 -1
- package/dist/{divider-BNdVLE0H.cjs → divider-B_Ts_-qz.cjs} +1 -1
- package/dist/{divider-BNdVLE0H.cjs.map → divider-B_Ts_-qz.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 +1 -1
- package/dist/{expand-CtoffNNj.js → expand-C-xSpg7M.js} +2 -2
- package/dist/{expand-CtoffNNj.js.map → expand-C-xSpg7M.js.map} +1 -1
- package/dist/{expand-BP6RLzHw.cjs → expand-DV5sWUB6.cjs} +1 -1
- package/dist/{expand-BP6RLzHw.cjs.map → expand-DV5sWUB6.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{float-CfbQM_2v.cjs → float-LyKef0LY.cjs} +1 -1
- package/dist/{float-CfbQM_2v.cjs.map → float-LyKef0LY.cjs.map} +1 -1
- package/dist/{float-KmbhaQHA.js → float-Y22yVBE2.js} +1 -1
- package/dist/{float-KmbhaQHA.js.map → float-Y22yVBE2.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-CuBIrKOA.cjs → form-C_smXI2-.cjs} +1 -1
- package/dist/{form-CuBIrKOA.cjs.map → form-C_smXI2-.cjs.map} +1 -1
- package/dist/{form-8IcmP8uV.js → form-LFkEQkOX.js} +8 -8
- package/dist/{form-8IcmP8uV.js.map → form-LFkEQkOX.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +6 -6
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{icons-D7df1ysG.js → icons-B3pFrwKC.js} +1 -1
- package/dist/{icons-D7df1ysG.js.map → icons-B3pFrwKC.js.map} +1 -1
- package/dist/{icons-BJld4JHp.cjs → icons-CCNy4Egc.cjs} +1 -1
- package/dist/{icons-BJld4JHp.cjs.map → icons-CCNy4Egc.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-DAbgW9tT.js → iframe-BbFlCEyP.js} +1 -1
- package/dist/{iframe-DAbgW9tT.js.map → iframe-BbFlCEyP.js.map} +1 -1
- package/dist/{iframe-GT6D8l5Z.cjs → iframe-CCcmLZ_K.cjs} +1 -1
- package/dist/{iframe-GT6D8l5Z.cjs.map → iframe-CCcmLZ_K.cjs.map} +1 -1
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +27 -27
- package/dist/{input-DC6ap_uN.js → input-Dkneo4uA.js} +2 -2
- package/dist/{input-DC6ap_uN.js.map → input-Dkneo4uA.js.map} +1 -1
- package/dist/{input-chip-c5n547tg.js → input-chip-C1-TYu4v.js} +1 -1
- package/dist/{input-chip-c5n547tg.js.map → input-chip-C1-TYu4v.js.map} +1 -1
- package/dist/{input-chip-MsiMu-b5.cjs → input-chip-F5NEkkBU.cjs} +1 -1
- package/dist/{input-chip-MsiMu-b5.cjs.map → input-chip-F5NEkkBU.cjs.map} +1 -1
- package/dist/{input-BE9wEEw4.cjs → input-sBZ89wz1.cjs} +1 -1
- package/dist/{input-BE9wEEw4.cjs.map → input-sBZ89wz1.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 +2 -2
- package/dist/kbd.cjs +1 -1
- package/dist/kbd.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{lightbox-HqJBBjAT.cjs → lightbox-B4m5lxGs.cjs} +1 -1
- package/dist/{lightbox-HqJBBjAT.cjs.map → lightbox-B4m5lxGs.cjs.map} +1 -1
- package/dist/{lightbox-CNX9Eg3U.js → lightbox-D7hYFspE.js} +1 -1
- package/dist/{lightbox-CNX9Eg3U.js.map → lightbox-D7hYFspE.js.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-bhyuQSyO.cjs → list-C2ycz-yr.cjs} +1 -1
- package/dist/{list-bhyuQSyO.cjs.map → list-C2ycz-yr.cjs.map} +1 -1
- package/dist/{list-C76Pb-c1.js → list-Ou72tSeq.js} +1 -1
- package/dist/{list-C76Pb-c1.js.map → list-Ou72tSeq.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{menu-BqKQ-s0C.cjs → menu-ComSx-T0.cjs} +1 -1
- package/dist/{menu-BqKQ-s0C.cjs.map → menu-ComSx-T0.cjs.map} +1 -1
- package/dist/{menu-C5ksITpG.js → menu-YHbpRa7x.js} +2 -2
- package/dist/{menu-C5ksITpG.js.map → menu-YHbpRa7x.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins-B9kY_60p.js +636 -0
- package/dist/{mixins-DCVXqL1Q.js.map → mixins-B9kY_60p.js.map} +1 -1
- package/dist/mixins-BwGJwK7X.cjs +254 -0
- package/dist/{mixins-Du9HMrIG.cjs.map → mixins-BwGJwK7X.cjs.map} +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-DR3gvWt8.cjs → notification-DZhL0ZEg.cjs} +1 -1
- package/dist/{notification-DR3gvWt8.cjs.map → notification-DZhL0ZEg.cjs.map} +1 -1
- package/dist/{notification-eZxtr3NN.js → notification-O4Q5pyio.js} +2 -2
- package/dist/{notification-eZxtr3NN.js.map → notification-O4Q5pyio.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-CBEHYG4U.js → option-BCks0a4i.js} +1 -1
- package/dist/{option-CBEHYG4U.js.map → option-BCks0a4i.js.map} +1 -1
- package/dist/{option-BDOKUqTy.cjs → option-C2VKw8Yt.cjs} +1 -1
- package/dist/{option-BDOKUqTy.cjs.map → option-C2VKw8Yt.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-oxM9OLXP.js → overlay-C0YSnxoV.js} +8 -10
- package/dist/overlay-C0YSnxoV.js.map +1 -0
- package/dist/{overlay-DG6EeyKt.cjs → overlay-CG1gc1Jw.cjs} +2 -2
- package/dist/overlay-CG1gc1Jw.cjs.map +1 -0
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-78e1WrN9.cjs → overlay.confirm-body-B-Kmn7LF.cjs} +1 -1
- package/dist/{overlay.confirm-body-78e1WrN9.cjs.map → overlay.confirm-body-B-Kmn7LF.cjs.map} +1 -1
- package/dist/{overlay.confirm-body-D_P2e7l6.js → overlay.confirm-body-BmOnrKbF.js} +1 -1
- package/dist/{overlay.confirm-body-D_P2e7l6.js.map → overlay.confirm-body-BmOnrKbF.js.map} +1 -1
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-DQkGPUY7.cjs → overlay.service-BPKV2a8w.cjs} +1 -1
- package/dist/{overlay.service-DQkGPUY7.cjs.map → overlay.service-BPKV2a8w.cjs.map} +1 -1
- package/dist/{overlay.service-C8NwO4Bx.js → overlay.service-CRoq9Gu-.js} +2 -2
- package/dist/{overlay.service-C8NwO4Bx.js.map → overlay.service-CRoq9Gu-.js.map} +1 -1
- package/dist/page.cjs +1 -1
- package/dist/page.js +2 -2
- package/dist/{progress-CMSst_2U.cjs → progress-B9RWAFv5.cjs} +1 -1
- package/dist/{progress-CMSst_2U.cjs.map → progress-B9RWAFv5.cjs.map} +1 -1
- package/dist/{progress-C4kDZfb7.js → progress-CEEl7vdd.js} +1 -1
- package/dist/{progress-C4kDZfb7.js.map → progress-CEEl7vdd.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/radio-group-C2y6H5YY.cjs +19 -0
- package/dist/radio-group-C2y6H5YY.cjs.map +1 -0
- package/dist/radio-group-VERF_8rC.js +71 -0
- package/dist/radio-group-VERF_8rC.js.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 +1 -1
- package/dist/{scroll-C1klVgSQ.js → scroll-Bj7FsS08.js} +1 -1
- package/dist/{scroll-C1klVgSQ.js.map → scroll-Bj7FsS08.js.map} +1 -1
- package/dist/{scroll-S-bXF2u6.cjs → scroll-Djz3pJfX.cjs} +1 -1
- package/dist/{scroll-S-bXF2u6.cjs.map → scroll-Djz3pJfX.cjs.map} +1 -1
- package/dist/{select-UU2pB67h.js → select-ClJj_2AP.js} +3 -3
- package/dist/select-ClJj_2AP.js.map +1 -0
- package/dist/select-CngphfDB.cjs +56 -0
- package/dist/select-CngphfDB.cjs.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 +1 -1
- package/dist/skills/SKILL.md +12 -0
- package/dist/skills/schmancy/SKILL.md +12 -0
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{splash-screen-ChMkAPLU.js → splash-screen-BQsBy3O1.js} +1 -1
- package/dist/{splash-screen-ChMkAPLU.js.map → splash-screen-BQsBy3O1.js.map} +1 -1
- package/dist/{splash-screen-BvaDkvJU.cjs → splash-screen-CntIFk2h.cjs} +1 -1
- package/dist/{splash-screen-BvaDkvJU.cjs.map → splash-screen-CntIFk2h.cjs.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-DnunCC4X.js → src-BAXhEv8f.js} +32 -32
- package/dist/{src-DnunCC4X.js.map → src-BAXhEv8f.js.map} +1 -1
- package/dist/{src-BIlD63Cz.cjs → src-ChFa-FDD.cjs} +1 -1
- package/dist/{src-BIlD63Cz.cjs.map → src-ChFa-FDD.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-DCRy-EyT.js → surface-CHUJSY1o.js} +1 -1
- package/dist/{surface-DCRy-EyT.js.map → surface-CHUJSY1o.js.map} +1 -1
- package/dist/{surface-DWwQDX9r.cjs → surface-CXmQuXun.cjs} +1 -1
- package/dist/{surface-DWwQDX9r.cjs.map → surface-CXmQuXun.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.js +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-lxQHWEb7.cjs → tabs-Bku0sC0p.cjs} +1 -1
- package/dist/{tabs-lxQHWEb7.cjs.map → tabs-Bku0sC0p.cjs.map} +1 -1
- package/dist/{tabs-CkDNLbiS.js → tabs-DPVX21WM.js} +1 -1
- package/dist/{tabs-CkDNLbiS.js.map → tabs-DPVX21WM.js.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-CNa4dSvF.cjs → textarea-CqJNviYi.cjs} +1 -1
- package/dist/{textarea-CNa4dSvF.cjs.map → textarea-CqJNviYi.cjs.map} +1 -1
- package/dist/{textarea-DkfGmRSI.js → textarea-D6z1UZzs.js} +1 -1
- package/dist/{textarea-DkfGmRSI.js.map → textarea-D6z1UZzs.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-CMyXTDht.cjs → theme-BpKVBJCr.cjs} +1 -1
- package/dist/{theme-CMyXTDht.cjs.map → theme-BpKVBJCr.cjs.map} +1 -1
- package/dist/{theme-CNWRYdfn.js → theme-DbHfINBV.js} +1 -1
- package/dist/{theme-CNWRYdfn.js.map → theme-DbHfINBV.js.map} +1 -1
- package/dist/{theme-button-CixloLin.js → theme-button-BeU8Nbs2.js} +1 -1
- package/dist/{theme-button-CixloLin.js.map → theme-button-BeU8Nbs2.js.map} +1 -1
- package/dist/{theme-button-kMhsX5Oe.cjs → theme-button-Cof9I85G.cjs} +1 -1
- package/dist/{theme-button-kMhsX5Oe.cjs.map → theme-button-Cof9I85G.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +2 -2
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +1 -1
- package/dist/{window-qaGFMn_4.cjs → window-Cql1aIX2.cjs} +1 -1
- package/dist/{window-qaGFMn_4.cjs.map → window-Cql1aIX2.cjs.map} +1 -1
- package/dist/{window-BcvDNi9D.js → window-DmMNsos0.js} +1 -1
- package/dist/{window-BcvDNi9D.js.map → window-DmMNsos0.js.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/SKILL.md +12 -0
- package/src/CLAUDE.md +20 -0
- package/src/area/area.component.ts +155 -342
- package/src/button/button.ts +8 -5
- package/src/button/icon-button.ts +8 -5
- package/src/chips/filter-chip.ts +1 -3
- package/src/details/details.ts +1 -1
- package/src/form/fields/radio-group/radio-button.ts +22 -44
- package/src/form/fields/radio-group/radio-group.ts +20 -75
- package/src/form/fields/select/select.ts +3 -2
- package/src/overlay/overlay.component.ts +29 -39
- package/src/overlay/overlay.positioning.ts +10 -2
- package/src/state/schmancy-state.html +897 -0
- package/src/state/schmancy-state.md +981 -0
- package/types/src/area/area.component.d.ts +0 -15
- package/types/src/button/icon-button.d.ts +1 -1
- package/types/src/form/fields/radio-group/radio-button.d.ts +2 -5
- package/types/src/form/fields/radio-group/radio-group.d.ts +2 -10
- package/types/src/overlay/overlay.positioning.d.ts +9 -1
- package/dist/area-BIipuSyO.js.map +0 -1
- package/dist/area-C-EMiNEE.cjs +0 -12
- package/dist/area-C-EMiNEE.cjs.map +0 -1
- package/dist/chips-D1kJrbzo.js.map +0 -1
- package/dist/chips-Dx_WvOGk.cjs.map +0 -1
- package/dist/details-Cpg8sH2F.js.map +0 -1
- package/dist/details-CwSDur6j.cjs.map +0 -1
- package/dist/mixins-DCVXqL1Q.js +0 -636
- package/dist/mixins-Du9HMrIG.cjs +0 -254
- package/dist/overlay-DG6EeyKt.cjs.map +0 -1
- package/dist/overlay-oxM9OLXP.js.map +0 -1
- package/dist/radio-group-DB9D2ZkA.js +0 -108
- package/dist/radio-group-DB9D2ZkA.js.map +0 -1
- package/dist/radio-group-dVUvYFq7.cjs +0 -40
- package/dist/radio-group-dVUvYFq7.cjs.map +0 -1
- package/dist/select-UU2pB67h.js.map +0 -1
- package/dist/select-fu_-rZyn.cjs +0 -56
- package/dist/select-fu_-rZyn.cjs.map +0 -1
package/src/chips/filter-chip.ts
CHANGED
|
@@ -22,10 +22,8 @@ import { magnetic } from '../directives/magnetic'
|
|
|
22
22
|
export class SchmancyFilterChip extends SchmancyElement {
|
|
23
23
|
static styles = [css`
|
|
24
24
|
:host {
|
|
25
|
-
display: inline-
|
|
25
|
+
display: inline-flex;
|
|
26
26
|
outline: none;
|
|
27
|
-
width: fit-content;
|
|
28
|
-
min-width: fit-content;
|
|
29
27
|
border-radius: 0.5rem;
|
|
30
28
|
transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
31
29
|
}
|
package/src/details/details.ts
CHANGED
|
@@ -216,7 +216,7 @@ export default class SchmancyDetails extends SurfaceMixin(SchmancyElement) {
|
|
|
216
216
|
|
|
217
217
|
const detailsClasses = this.classMap({
|
|
218
218
|
'w-full rounded-xl transition-shadow duration-200 ease-out': true,
|
|
219
|
-
'overflow-
|
|
219
|
+
'overflow-visible': !this.overlay,
|
|
220
220
|
'overflow-visible relative': this.overlay,
|
|
221
221
|
})
|
|
222
222
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { SchmancyElement } from '@mixins/index'
|
|
2
2
|
import { html } from 'lit'
|
|
3
3
|
import { customElement, property } from 'lit/decorators.js'
|
|
4
|
-
import { FormFieldMixin } from '@mixins/formField.mixin'
|
|
5
4
|
import { fromEvent, takeUntil } from 'rxjs'
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -13,62 +12,41 @@ import { fromEvent, takeUntil } from 'rxjs'
|
|
|
13
12
|
* @prop {boolean} disabled - Whether the radio button is disabled
|
|
14
13
|
*/
|
|
15
14
|
@customElement('schmancy-radio-button')
|
|
16
|
-
export class RadioButton extends
|
|
17
|
-
@property({ type: String })
|
|
15
|
+
export class RadioButton extends SchmancyElement {
|
|
16
|
+
@property({ type: String }) value = ''
|
|
18
17
|
@property({ type: Boolean, reflect: true }) checked = false
|
|
19
|
-
@property({ type: Boolean })
|
|
20
|
-
@property({ type: String })
|
|
18
|
+
@property({ type: Boolean }) disabled = false
|
|
19
|
+
@property({ type: String }) name = ''
|
|
21
20
|
|
|
22
21
|
connectedCallback() {
|
|
23
22
|
super.connectedCallback()
|
|
24
|
-
// Listen for click events
|
|
25
23
|
fromEvent<MouseEvent>(this, 'click')
|
|
26
24
|
.pipe(takeUntil(this.disconnecting))
|
|
27
|
-
.subscribe(this.
|
|
25
|
+
.subscribe(this._handleClick)
|
|
28
26
|
}
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
super.disconnectedCallback()
|
|
32
|
-
// Event listeners are automatically cleaned up via takeUntil(this.disconnecting)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
private handleClick() {
|
|
28
|
+
private _handleClick = () => {
|
|
36
29
|
if (this.disabled) return
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const event = new CustomEvent('radio-button-click', {
|
|
43
|
-
detail: { value: this.value },
|
|
44
|
-
bubbles: true,
|
|
45
|
-
composed: true,
|
|
46
|
-
})
|
|
47
|
-
this.dispatchEvent(event)
|
|
48
|
-
} else {
|
|
49
|
-
// Standalone usage
|
|
50
|
-
this.checked = true
|
|
51
|
-
this.emitChange({ value: this.value })
|
|
52
|
-
}
|
|
30
|
+
this.dispatchEvent(new CustomEvent('radio-button-click', {
|
|
31
|
+
detail: { value: this.value },
|
|
32
|
+
bubbles: true,
|
|
33
|
+
composed: true,
|
|
34
|
+
}))
|
|
53
35
|
}
|
|
54
36
|
|
|
55
37
|
render() {
|
|
56
38
|
return html`
|
|
57
|
-
<label class="
|
|
58
|
-
<
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
</div>
|
|
69
|
-
<div class="ml-3">
|
|
70
|
-
<slot name="label"></slot>
|
|
71
|
-
</div>
|
|
39
|
+
<label class="flex items-center gap-3 cursor-pointer">
|
|
40
|
+
<input
|
|
41
|
+
type="radio"
|
|
42
|
+
class="h-4 w-4 text-primary-default focus:ring-primary-container border-outline"
|
|
43
|
+
.value=${this.value}
|
|
44
|
+
.checked=${this.checked}
|
|
45
|
+
.disabled=${this.disabled}
|
|
46
|
+
.name=${this.name}
|
|
47
|
+
@change=${() => {}}
|
|
48
|
+
/>
|
|
49
|
+
<slot></slot>
|
|
72
50
|
</label>
|
|
73
51
|
`
|
|
74
52
|
}
|
|
@@ -1,104 +1,49 @@
|
|
|
1
1
|
import { html, unsafeCSS } from 'lit'
|
|
2
2
|
import { customElement, property } from 'lit/decorators.js'
|
|
3
|
-
import {
|
|
3
|
+
import { fromEvent, takeUntil } from 'rxjs'
|
|
4
4
|
import style from './radio-group.scss?inline'
|
|
5
5
|
import { SchmancyElement } from '@mixins/index'
|
|
6
6
|
import { when } from 'lit/directives/when.js'
|
|
7
7
|
import { FormFieldMixin } from '@mixins/formField.mixin'
|
|
8
|
+
import type { RadioButton } from './radio-button.ts'
|
|
9
|
+
|
|
10
|
+
export type SchmancyRadioGroupChangeEvent = CustomEvent<{ value: string }>
|
|
8
11
|
|
|
9
|
-
export type SchmancyRadioGroupOption = {
|
|
10
|
-
label: string
|
|
11
|
-
value: string
|
|
12
|
-
}
|
|
13
|
-
export type SchmancyRadioGroupChangeEvent = CustomEvent<{
|
|
14
|
-
value: string
|
|
15
|
-
}>
|
|
16
12
|
@customElement('schmancy-radio-group')
|
|
17
13
|
export class RadioGroup extends FormFieldMixin(SchmancyElement) {
|
|
18
|
-
static styles = [unsafeCSS(style)]
|
|
14
|
+
static styles = [unsafeCSS(style)]
|
|
19
15
|
@property({ type: String }) override label = ''
|
|
20
16
|
@property({ type: String }) override name = ''
|
|
21
17
|
@property({ type: String }) override value = ''
|
|
22
|
-
@property({ type:
|
|
23
|
-
@property({ type: Boolean }) override required: boolean = false
|
|
24
|
-
private selection$ = new Subject<string>()
|
|
18
|
+
@property({ type: Boolean }) override required = false
|
|
25
19
|
|
|
26
20
|
connectedCallback() {
|
|
27
21
|
super.connectedCallback()
|
|
28
|
-
this.selection$.pipe(takeUntil(this.disconnecting)).subscribe(value => {
|
|
29
|
-
this.value = value
|
|
30
|
-
this.emitChange({ value })
|
|
31
|
-
// Update all child radio buttons
|
|
32
|
-
this.updateChildRadioButtons()
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
// Listen for radio button clicks from children
|
|
36
22
|
fromEvent<CustomEvent>(this, 'radio-button-click')
|
|
37
23
|
.pipe(takeUntil(this.disconnecting))
|
|
38
|
-
.subscribe((e: CustomEvent) => {
|
|
39
|
-
this.
|
|
24
|
+
.subscribe((e: CustomEvent<{ value: string }>) => {
|
|
25
|
+
this.value = e.detail.value
|
|
26
|
+
this.emitChange({ value: e.detail.value })
|
|
27
|
+
this._syncChildren()
|
|
40
28
|
})
|
|
41
29
|
}
|
|
42
30
|
|
|
43
|
-
|
|
44
|
-
super.
|
|
45
|
-
|
|
46
|
-
this.selection$?.complete()
|
|
31
|
+
updated(changed: Map<string, unknown>) {
|
|
32
|
+
super.updated(changed)
|
|
33
|
+
if (changed.has('value')) this._syncChildren()
|
|
47
34
|
}
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
this.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
private updateChildRadioButtons() {
|
|
54
|
-
// Update child radio buttons checked state
|
|
55
|
-
const radioButtons = this.querySelectorAll('schmancy-radio-button')
|
|
56
|
-
radioButtons.forEach(button => {
|
|
57
|
-
const buttonValue = button.getAttribute('value')
|
|
58
|
-
if (buttonValue === this.value) {
|
|
59
|
-
button.setAttribute('checked', '')
|
|
60
|
-
} else {
|
|
61
|
-
button.removeAttribute('checked')
|
|
62
|
-
}
|
|
35
|
+
|
|
36
|
+
private _syncChildren() {
|
|
37
|
+
this.querySelectorAll<RadioButton>('schmancy-radio-button').forEach(btn => {
|
|
38
|
+
btn.checked = btn.value === this.value
|
|
63
39
|
})
|
|
64
40
|
}
|
|
65
|
-
|
|
66
|
-
// For backwards compatibility with direct option setting
|
|
67
|
-
updated(changedProperties: Map<string, unknown>) {
|
|
68
|
-
super.updated(changedProperties)
|
|
69
|
-
if (changedProperties.has('value')) {
|
|
70
|
-
this.updateChildRadioButtons()
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
41
|
|
|
74
42
|
render() {
|
|
75
|
-
// Check if we have any slotted radio buttons
|
|
76
|
-
const hasSlottedContent = this.childElementCount > 0
|
|
77
|
-
|
|
78
43
|
return html`
|
|
79
|
-
<div class="grid gap-
|
|
80
|
-
${when(this.label, () => html
|
|
81
|
-
|
|
82
|
-
${hasSlottedContent ?
|
|
83
|
-
html`<slot></slot>` :
|
|
84
|
-
this.options?.map(option => html`
|
|
85
|
-
<div class="flex items-center">
|
|
86
|
-
<input
|
|
87
|
-
.required=${this.required}
|
|
88
|
-
id=${option.value}
|
|
89
|
-
class="h-4 w-4 border-outline text-primary-default focus:ring-primary-default"
|
|
90
|
-
type="radio"
|
|
91
|
-
name=${this.name}
|
|
92
|
-
.value=${option.value}
|
|
93
|
-
.checked=${option.value === this.value}
|
|
94
|
-
@change=${() => this.handleSelection(option.value)}
|
|
95
|
-
/>
|
|
96
|
-
<label for=${option.value} class="ml-3 block text-sm font-medium leading-6 text-surface-on">
|
|
97
|
-
${option.label || option.value}
|
|
98
|
-
</label>
|
|
99
|
-
</div>
|
|
100
|
-
`)
|
|
101
|
-
}
|
|
44
|
+
<div role="radiogroup" aria-label=${this.label} aria-required=${this.required} class="grid gap-2">
|
|
45
|
+
${when(this.label, () => html`<schmancy-typography type="label" token="lg">${this.label}</schmancy-typography>`)}
|
|
46
|
+
<slot></slot>
|
|
102
47
|
</div>
|
|
103
48
|
`
|
|
104
49
|
}
|
|
@@ -52,10 +52,11 @@ export class SchmancySelect extends SchmancyFormField() {
|
|
|
52
52
|
@property({ type: String, reflect: true })
|
|
53
53
|
override get value(): string | string[] {
|
|
54
54
|
return this.multi
|
|
55
|
-
? this._selectedValues
|
|
56
|
-
: this._selectedValue
|
|
55
|
+
? (this._selectedValues$?.value ?? [])
|
|
56
|
+
: (this._selectedValue$?.value ?? '')
|
|
57
57
|
}
|
|
58
58
|
override set value(val: string | string[]) {
|
|
59
|
+
if (!this._selectedValue$ || !this._selectedValues$) return
|
|
59
60
|
if (this.multi) {
|
|
60
61
|
const values = Array.isArray(val)
|
|
61
62
|
? val
|
|
@@ -409,51 +409,41 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
409
409
|
)
|
|
410
410
|
.subscribe()
|
|
411
411
|
|
|
412
|
-
//
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
}
|
|
412
|
+
// Manual Esc — all tiers. Modal has no native dismiss; anchored
|
|
413
|
+
// tiers use `popover="manual"` so the browser doesn't auto-Esc them
|
|
414
|
+
// either (the auto popover-stack would close ancestor overlays when
|
|
415
|
+
// a nested overlay opens — see positionPopoverAPI's comment).
|
|
416
|
+
fromEvent<KeyboardEvent>(document, 'keydown')
|
|
417
|
+
.pipe(
|
|
418
|
+
filter((e) => e.key === 'Escape'),
|
|
419
|
+
tap((e) => {
|
|
420
|
+
if (!this.dismissable) {
|
|
422
421
|
e.preventDefault()
|
|
423
|
-
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
// `newState: 'closed'` when the browser light-dismisses the popover.
|
|
432
|
-
if (this.tier === 'popover-fui' || this.tier === 'css-anchor') {
|
|
433
|
-
fromEvent<ToggleEvent>(this._surface, 'toggle')
|
|
434
|
-
.pipe(
|
|
435
|
-
filter((e) => e.newState === 'closed'),
|
|
436
|
-
take(1),
|
|
437
|
-
tap(() => {
|
|
438
|
-
if (!this._closing) void this.close('light-dismiss')
|
|
439
|
-
}),
|
|
440
|
-
takeUntil(until),
|
|
441
|
-
)
|
|
442
|
-
.subscribe()
|
|
443
|
-
}
|
|
422
|
+
return
|
|
423
|
+
}
|
|
424
|
+
e.preventDefault()
|
|
425
|
+
void this.close('escape')
|
|
426
|
+
}),
|
|
427
|
+
takeUntil(until),
|
|
428
|
+
)
|
|
429
|
+
.subscribe()
|
|
444
430
|
|
|
445
|
-
//
|
|
446
|
-
|
|
431
|
+
// Manual outside-click — all anchored tiers. Modal layouts have a
|
|
432
|
+
// backdrop that catches outside clicks via `onBackdropClick`; the
|
|
433
|
+
// anchored tiers (no backdrop) need a document-level pointerdown
|
|
434
|
+
// listener that ignores clicks whose composedPath includes the
|
|
435
|
+
// surface or anchor. Use composedPath membership (not
|
|
436
|
+
// `Node.contains`) so clicks on elements inside slotted /
|
|
437
|
+
// shadow-DOM descendants of the surface are correctly classified
|
|
438
|
+
// as "inside".
|
|
439
|
+
if (this.tier !== 'modal') {
|
|
447
440
|
fromEvent<PointerEvent>(document, 'pointerdown', { capture: true })
|
|
448
441
|
.pipe(
|
|
449
442
|
filter((e) => {
|
|
450
443
|
if (!this.dismissable) return false
|
|
451
|
-
const
|
|
452
|
-
if (
|
|
453
|
-
|
|
454
|
-
if (this._surface?.contains(target as Node)) return false
|
|
455
|
-
// Clicks on the anchor itself shouldn't dismiss (avoid re-toggle).
|
|
456
|
-
if (this._resolvedAnchor?.el?.contains(target as Node)) return false
|
|
444
|
+
const path = e.composedPath()
|
|
445
|
+
if (this._surface && path.includes(this._surface)) return false
|
|
446
|
+
if (this._resolvedAnchor?.el && path.includes(this._resolvedAnchor.el)) return false
|
|
457
447
|
return true
|
|
458
448
|
}),
|
|
459
449
|
take(1),
|
|
@@ -145,18 +145,26 @@ function cssForPlacement(p: OverlayPlacement): string {
|
|
|
145
145
|
* ======================================================================= */
|
|
146
146
|
|
|
147
147
|
/**
|
|
148
|
-
* Wire the Popover API lifecycle — the surface gets `popover="
|
|
148
|
+
* Wire the Popover API lifecycle — the surface gets `popover="manual"` and
|
|
149
149
|
* `showPopover()` is called to promote it into the native top layer. No
|
|
150
150
|
* position math here; the caller pairs this with `positionFloatingUI` for
|
|
151
151
|
* the geometry, since Tier 2 is Popover-for-stacking + Floating UI-for-math.
|
|
152
152
|
*
|
|
153
|
+
* `manual` (not `auto`) so stacked overlays don't fight the browser's
|
|
154
|
+
* popover-auto light-dismiss algorithm: opening a second `popover="auto"`
|
|
155
|
+
* that isn't a DOM/invoker descendant of the first closes the first via
|
|
156
|
+
* the toggle event. Each schmancy overlay is appended as a sibling to
|
|
157
|
+
* `<body>`, so the browser can't see the nesting and would dismiss the
|
|
158
|
+
* parent. With `manual`, schmancy owns Esc + outside-click via
|
|
159
|
+
* `wireCloseTriggers`, and the top-layer rendering is preserved.
|
|
160
|
+
*
|
|
153
161
|
* Returns a cleanup function that hides the popover and strips the attr.
|
|
154
162
|
*/
|
|
155
163
|
export function positionPopoverAPI(surface: HTMLElement): () => void {
|
|
156
164
|
if (!CAPS.popover) {
|
|
157
165
|
throw new Error('positionPopoverAPI requires Popover API support')
|
|
158
166
|
}
|
|
159
|
-
surface.setAttribute('popover', '
|
|
167
|
+
surface.setAttribute('popover', 'manual')
|
|
160
168
|
try {
|
|
161
169
|
;(surface as unknown as { showPopover(): void }).showPopover()
|
|
162
170
|
} catch {
|