@mhmo91/schmancy 0.10.37 → 0.10.38
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 +2329 -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-BHPqSqJd.js → boat-DmyG7y1V.js} +4 -4
- package/dist/{boat-BHPqSqJd.js.map → boat-DmyG7y1V.js.map} +1 -1
- package/dist/{boat-OBZ77exO.cjs → boat-dB1_qLm0.cjs} +1 -1
- package/dist/{boat-OBZ77exO.cjs.map → boat-dB1_qLm0.cjs.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-kcpPQavY.js → button-BQSOVnHn.js} +10 -9
- package/dist/button-BQSOVnHn.js.map +1 -0
- package/dist/button-WRmXlNyw.cjs +62 -0
- package/dist/button-WRmXlNyw.cjs.map +1 -0
- package/dist/button.cjs +6 -6
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +17 -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-C9dS1WKn.cjs → chips-B1jui8Pe.cjs} +3 -3
- package/dist/chips-B1jui8Pe.cjs.map +1 -0
- package/dist/{chips-vWmwqQed.js → chips-DAy6v93f.js} +20 -19
- package/dist/chips-DAy6v93f.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 +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-BUaPgbTZ.cjs} +2 -2
- package/dist/date-range-BUaPgbTZ.cjs.map +1 -0
- package/dist/{date-range-D3ge1b4c.js → date-range-NTpoA1in.js} +4 -4
- package/dist/date-range-NTpoA1in.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 +1 -1
- package/dist/fab.js +2 -2
- 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-CBAAJoHu.js} +3 -3
- package/dist/{menu-QrAK5Uu9.js.map → menu-CBAAJoHu.js.map} +1 -1
- package/dist/{menu-DqmNjLgY.cjs → menu-DFQjJk3H.cjs} +1 -1
- package/dist/{menu-DqmNjLgY.cjs.map → menu-DFQjJk3H.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-CWsihJ-E.js} +75 -67
- package/dist/overlay-CWsihJ-E.js.map +1 -0
- package/dist/overlay-DkIX9Ig3.cjs +58 -0
- package/dist/overlay-DkIX9Ig3.cjs.map +1 -0
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-DSONXUzl.js → overlay.confirm-body-CPqqPNks.js} +10 -10
- package/dist/overlay.confirm-body-CPqqPNks.js.map +1 -0
- package/dist/{overlay.confirm-body-BV9umTAl.cjs → overlay.confirm-body-DwTfiNlV.cjs} +3 -3
- package/dist/overlay.confirm-body-DwTfiNlV.cjs.map +1 -0
- package/dist/overlay.js +4 -4
- package/dist/overlay.service-DU1nqh6A.cjs +1 -0
- package/dist/{overlay.service-XLlrsSdA.cjs.map → overlay.service-DU1nqh6A.cjs.map} +1 -1
- package/dist/{overlay.service-BTp5Oq7f.js → overlay.service-KTgBxjFb.js} +4 -4
- package/dist/{overlay.service-BTp5Oq7f.js.map → overlay.service-KTgBxjFb.js.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 +3 -0
- package/dist/skills/overlay.md +14 -7
- package/dist/skills/schmancy/SKILL.md +3 -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-CIqAj3Eh.js} +45 -45
- package/dist/src-CIqAj3Eh.js.map +1 -0
- package/dist/{src-Um_pzb-U.cjs → src-CYqBQTyt.cjs} +6 -6
- package/dist/src-CYqBQTyt.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 +3 -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/breadcrumb/breadcrumb.ts +2 -2
- package/src/button/button.ts +11 -11
- package/src/button/icon-button.ts +18 -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/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 +15 -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
|
@@ -77,13 +77,13 @@ export default class SchmancySplashScreen extends SchmancyElement {
|
|
|
77
77
|
*/
|
|
78
78
|
@property({ type: Boolean, attribute: 'initially-hidden' }) initiallyHidden = false
|
|
79
79
|
|
|
80
|
-
@state() private
|
|
80
|
+
@state() private visible = true
|
|
81
81
|
|
|
82
82
|
connectedCallback() {
|
|
83
83
|
super.connectedCallback()
|
|
84
84
|
|
|
85
85
|
if (this.initiallyHidden) {
|
|
86
|
-
this.
|
|
86
|
+
this.visible = false
|
|
87
87
|
return
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -93,7 +93,7 @@ export default class SchmancySplashScreen extends SchmancyElement {
|
|
|
93
93
|
zip(readySignal$, minTimer$)
|
|
94
94
|
.pipe(
|
|
95
95
|
take(1),
|
|
96
|
-
tap(() => this.
|
|
96
|
+
tap(() => this.dismiss()),
|
|
97
97
|
takeUntil(this.disconnecting),
|
|
98
98
|
)
|
|
99
99
|
.subscribe()
|
|
@@ -111,11 +111,11 @@ export default class SchmancySplashScreen extends SchmancyElement {
|
|
|
111
111
|
* Force the splash to show again (e.g. between route transitions).
|
|
112
112
|
*/
|
|
113
113
|
public show(): void {
|
|
114
|
-
this.
|
|
114
|
+
this.visible = true
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
private
|
|
118
|
-
this.
|
|
117
|
+
private dismiss(): void {
|
|
118
|
+
this.visible = false
|
|
119
119
|
this.dispatchEvent(
|
|
120
120
|
new CustomEvent<void>('schmancy-splash-done', {
|
|
121
121
|
bubbles: true,
|
|
@@ -128,10 +128,10 @@ export default class SchmancySplashScreen extends SchmancyElement {
|
|
|
128
128
|
return html`
|
|
129
129
|
<div
|
|
130
130
|
class="splash-layer"
|
|
131
|
-
aria-hidden=${!this.
|
|
131
|
+
aria-hidden=${!this.visible}
|
|
132
132
|
style=${styleMap({
|
|
133
|
-
opacity: this.
|
|
134
|
-
pointerEvents: this.
|
|
133
|
+
opacity: this.visible ? '1' : '0',
|
|
134
|
+
pointerEvents: this.visible ? 'auto' : 'none',
|
|
135
135
|
})}
|
|
136
136
|
>
|
|
137
137
|
<slot name="splash"></slot>
|
|
@@ -139,8 +139,8 @@ export default class SchmancySplashScreen extends SchmancyElement {
|
|
|
139
139
|
<div
|
|
140
140
|
class="content-layer"
|
|
141
141
|
style=${styleMap({
|
|
142
|
-
opacity: this.
|
|
143
|
-
pointerEvents: this.
|
|
142
|
+
opacity: this.visible ? '0' : '1',
|
|
143
|
+
pointerEvents: this.visible ? 'none' : 'auto',
|
|
144
144
|
})}
|
|
145
145
|
>
|
|
146
146
|
<slot></slot>
|
package/src/state/index.ts
CHANGED
|
@@ -155,7 +155,7 @@ export interface BaseAPI<NS extends string, T, S extends StorageBackend> {
|
|
|
155
155
|
* current value. Exposed on the type so a state can be passed to
|
|
156
156
|
* `<schmancy-context provides={[…]}>` without casts. Not for end-user
|
|
157
157
|
* code — the leading underscore signals "internal API". */
|
|
158
|
-
|
|
158
|
+
isolatedInstance(): { destroy(): void } & Record<string | symbol, unknown>
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
export interface SyncState<NS extends string, T, S extends SyncStorage>
|
|
@@ -219,12 +219,12 @@ function detectKind(value: unknown): RuntimeKind {
|
|
|
219
219
|
// who arrived first.
|
|
220
220
|
const CLAIMED_KEY = Symbol.for('schmancy.state.claimed')
|
|
221
221
|
const INSTANCES_KEY = Symbol.for('schmancy.state.instances')
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
const claimed =
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
const instances =
|
|
222
|
+
const claimedSlot = (globalThis as { [CLAIMED_KEY]?: Set<string> })
|
|
223
|
+
claimedSlot[CLAIMED_KEY] ??= new Set<string>()
|
|
224
|
+
const claimed = claimedSlot[CLAIMED_KEY]!
|
|
225
|
+
const instancesSlot = (globalThis as { [INSTANCES_KEY]?: Map<string, unknown> })
|
|
226
|
+
instancesSlot[INSTANCES_KEY] ??= new Map<string, unknown>()
|
|
227
|
+
const instances = instancesSlot[INSTANCES_KEY]!
|
|
228
228
|
|
|
229
229
|
// ---------------------------------------------------------------------------
|
|
230
230
|
// Context resolution.
|
|
@@ -245,11 +245,11 @@ const instances = __instancesSlot[INSTANCES_KEY]!
|
|
|
245
245
|
// cache keys are DOM elements (process-global), but the cache itself must
|
|
246
246
|
// also be shared.
|
|
247
247
|
const CACHE_KEY = Symbol.for('schmancy.state.hostResolverCache')
|
|
248
|
-
const
|
|
248
|
+
const cacheSlot = (globalThis as {
|
|
249
249
|
[CACHE_KEY]?: WeakMap<HTMLElement, Map<string, unknown>>
|
|
250
250
|
})
|
|
251
|
-
|
|
252
|
-
const hostResolverCache =
|
|
251
|
+
cacheSlot[CACHE_KEY] ??= new WeakMap<HTMLElement, Map<string, unknown>>()
|
|
252
|
+
const hostResolverCache = cacheSlot[CACHE_KEY]!
|
|
253
253
|
|
|
254
254
|
function resolveContextual(namespace: string, fallback: unknown): unknown {
|
|
255
255
|
const host = resolveActiveHost()
|
|
@@ -436,7 +436,7 @@ interface CreateInstanceOptions {
|
|
|
436
436
|
* it does NOT claim the namespace in `claimed`, it does NOT route reads
|
|
437
437
|
* or writes through `resolveContextual` (so it can serve as the
|
|
438
438
|
* resolution target without recursion), and it does NOT expose
|
|
439
|
-
* `
|
|
439
|
+
* `isolatedInstance` (you only isolate the global). */
|
|
440
440
|
isolated?: boolean
|
|
441
441
|
}
|
|
442
442
|
|
|
@@ -578,7 +578,7 @@ function createInstance(args: CreateInstanceArgs, options: CreateInstanceOptions
|
|
|
578
578
|
|
|
579
579
|
// Hook used by `<schmancy-context>` to mint a per-context copy seeded
|
|
580
580
|
// with the current value. Internal: not part of the public State<> type.
|
|
581
|
-
instance.
|
|
581
|
+
instance.isolatedInstance = (): unknown =>
|
|
582
582
|
createInstance(
|
|
583
583
|
{ namespace, initial: signal.get(), storage: 'memory' },
|
|
584
584
|
{ isolated: true },
|
|
@@ -51,7 +51,7 @@ export interface StateTemplate {
|
|
|
51
51
|
* per-context copy seeded with the current value, sharing nothing with the
|
|
52
52
|
* global instance. The returned object exposes `destroy()` so the context
|
|
53
53
|
* element can flush + close on disconnect. */
|
|
54
|
-
|
|
54
|
+
isolatedInstance(): { destroy(): void } & Record<string | symbol, unknown>;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export class SchmancyContext extends SchmancyElement {
|
|
@@ -63,12 +63,12 @@ export class SchmancyContext extends SchmancyElement {
|
|
|
63
63
|
|
|
64
64
|
// Per-mount records. Keep both the provider (so we can release it on
|
|
65
65
|
// disconnect) and the isolated instance (so we can destroy it).
|
|
66
|
-
private
|
|
66
|
+
private scoped: Array<{
|
|
67
67
|
isolated: { destroy(): void };
|
|
68
68
|
provider: ContextProvider<Context<unknown, unknown>>;
|
|
69
69
|
}> = [];
|
|
70
70
|
|
|
71
|
-
private
|
|
71
|
+
private publishEventTargetAsHost = (e: Event): void => {
|
|
72
72
|
// Publish the deepest event target (across shadow boundaries) rather
|
|
73
73
|
// than `this`. The downstream `ContextRequestEvent` will be dispatched
|
|
74
74
|
// from this host and must bubble up through `<schmancy-context>` to
|
|
@@ -87,28 +87,28 @@ export class SchmancyContext extends SchmancyElement {
|
|
|
87
87
|
override connectedCallback(): void {
|
|
88
88
|
super.connectedCallback();
|
|
89
89
|
for (const tmpl of this.provides) {
|
|
90
|
-
const isolated = tmpl.
|
|
90
|
+
const isolated = tmpl.isolatedInstance();
|
|
91
91
|
const ctx = createContext<unknown>(stateContextKey(tmpl.namespace));
|
|
92
92
|
// ContextProvider auto-wires via the host's ReactiveControllerHost
|
|
93
93
|
// interface (LitElement satisfies it). It listens for
|
|
94
94
|
// `context-request` events and responds with `isolated` for any
|
|
95
95
|
// requester whose `event.context === ctx`.
|
|
96
96
|
const provider = new ContextProvider(this, { context: ctx, initialValue: isolated });
|
|
97
|
-
this.
|
|
97
|
+
this.scoped.push({ isolated, provider });
|
|
98
98
|
}
|
|
99
99
|
for (const type of EVENT_TYPES) {
|
|
100
|
-
this.addEventListener(type, this.
|
|
100
|
+
this.addEventListener(type, this.publishEventTargetAsHost, { capture: true });
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
override disconnectedCallback(): void {
|
|
105
105
|
for (const type of EVENT_TYPES) {
|
|
106
|
-
this.removeEventListener(type, this.
|
|
106
|
+
this.removeEventListener(type, this.publishEventTargetAsHost, { capture: true });
|
|
107
107
|
}
|
|
108
|
-
for (const entry of this.
|
|
108
|
+
for (const entry of this.scoped) {
|
|
109
109
|
entry.isolated.destroy();
|
|
110
110
|
}
|
|
111
|
-
this.
|
|
111
|
+
this.scoped = [];
|
|
112
112
|
super.disconnectedCallback();
|
|
113
113
|
}
|
|
114
114
|
|
|
@@ -32,7 +32,7 @@ export class SchmancyTeleportation extends SchmancyElement {
|
|
|
32
32
|
|
|
33
33
|
debugging = Boolean(import.meta.env.DEV)
|
|
34
34
|
|
|
35
|
-
get
|
|
35
|
+
get slottedChildren() {
|
|
36
36
|
const slot = this.shadowRoot.querySelector('slot')
|
|
37
37
|
return slot.assignedElements({ flatten: true })
|
|
38
38
|
}
|
|
@@ -101,7 +101,7 @@ export class SchmancyTeleportation extends SchmancyElement {
|
|
|
101
101
|
},
|
|
102
102
|
to: {
|
|
103
103
|
rect: e,
|
|
104
|
-
element: this.
|
|
104
|
+
element: this.slottedChildren[0] as HTMLElement,
|
|
105
105
|
},
|
|
106
106
|
host: this,
|
|
107
107
|
})
|
|
@@ -63,10 +63,10 @@ class ThemeService {
|
|
|
63
63
|
private static instance: ThemeService
|
|
64
64
|
|
|
65
65
|
// Observable properties for theme values
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
#theme$ = new BehaviorSubject<Partial<TSchmancyTheme>>({})
|
|
67
|
+
#themeComponent$ = new BehaviorSubject<SchmancyThemeComponent | null>(null)
|
|
68
|
+
#fullscreen$ = new BehaviorSubject<boolean>(false)
|
|
69
|
+
#bottomOffset$ = new BehaviorSubject<number>(0)
|
|
70
70
|
|
|
71
71
|
// Public observables derived from context
|
|
72
72
|
public readonly scheme$ = ThemeContext.$.pipe(
|
|
@@ -81,22 +81,22 @@ class ThemeService {
|
|
|
81
81
|
shareReplay(1)
|
|
82
82
|
)
|
|
83
83
|
|
|
84
|
-
public readonly theme$ = this
|
|
84
|
+
public readonly theme$ = this.#theme$.asObservable().pipe(
|
|
85
85
|
distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),
|
|
86
86
|
shareReplay(1)
|
|
87
87
|
)
|
|
88
88
|
|
|
89
|
-
public readonly themeComponent$ = this
|
|
89
|
+
public readonly themeComponent$ = this.#themeComponent$.asObservable().pipe(
|
|
90
90
|
distinctUntilChanged(),
|
|
91
91
|
shareReplay(1)
|
|
92
92
|
)
|
|
93
93
|
|
|
94
|
-
public readonly fullscreen$ = this
|
|
94
|
+
public readonly fullscreen$ = this.#fullscreen$.asObservable().pipe(
|
|
95
95
|
distinctUntilChanged(),
|
|
96
96
|
shareReplay(1)
|
|
97
97
|
)
|
|
98
98
|
|
|
99
|
-
public readonly bottomOffset$ = this
|
|
99
|
+
public readonly bottomOffset$ = this.#bottomOffset$.asObservable().pipe(
|
|
100
100
|
distinctUntilChanged(),
|
|
101
101
|
shareReplay(1)
|
|
102
102
|
)
|
|
@@ -111,19 +111,19 @@ class ThemeService {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
get theme(): Partial<TSchmancyTheme> {
|
|
114
|
-
return this
|
|
114
|
+
return this.#theme$.getValue()
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
get themeComponent(): SchmancyThemeComponent | null {
|
|
118
|
-
return this
|
|
118
|
+
return this.#themeComponent$.getValue()
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
get fullscreen(): boolean {
|
|
122
|
-
return this
|
|
122
|
+
return this.#fullscreen$.getValue()
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
get bottomOffset(): number {
|
|
126
|
-
return this
|
|
126
|
+
return this.#bottomOffset$.getValue()
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
// Computed observable for actual scheme (resolving 'auto')
|
|
@@ -217,11 +217,11 @@ class ThemeService {
|
|
|
217
217
|
* @internal
|
|
218
218
|
*/
|
|
219
219
|
public registerThemeComponent(component: SchmancyThemeComponent): void {
|
|
220
|
-
this
|
|
220
|
+
this.#themeComponent$.next(component)
|
|
221
221
|
|
|
222
222
|
// Update values from the component
|
|
223
223
|
ThemeContext.set({ scheme: component.scheme, color: component.color })
|
|
224
|
-
this
|
|
224
|
+
this.#theme$.next(component.theme)
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
/**
|
|
@@ -250,7 +250,7 @@ class ThemeService {
|
|
|
250
250
|
ThemeContext.set(updates)
|
|
251
251
|
}
|
|
252
252
|
if (values.theme !== undefined) {
|
|
253
|
-
this
|
|
253
|
+
this.#theme$.next(values.theme)
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
256
|
|
|
@@ -415,7 +415,7 @@ class ThemeService {
|
|
|
415
415
|
* ```
|
|
416
416
|
*/
|
|
417
417
|
public setFullscreen(value: boolean): void {
|
|
418
|
-
this
|
|
418
|
+
this.#fullscreen$.next(value)
|
|
419
419
|
|
|
420
420
|
// Emit custom event for components to listen to
|
|
421
421
|
window.dispatchEvent(
|
|
@@ -458,7 +458,7 @@ class ThemeService {
|
|
|
458
458
|
* ```
|
|
459
459
|
*/
|
|
460
460
|
public setBottomOffset(value: number): void {
|
|
461
|
-
this
|
|
461
|
+
this.#bottomOffset$.next(value)
|
|
462
462
|
}
|
|
463
463
|
|
|
464
464
|
/**
|
package/src/tree/tree.ts
CHANGED
|
@@ -35,19 +35,19 @@ export class SchmancyTree extends SchmancyElement {
|
|
|
35
35
|
// Since it's actually a <schmancy-button>, use HTMLElement or a custom type
|
|
36
36
|
@query('#chevron') chevron!: HTMLElement
|
|
37
37
|
|
|
38
|
-
private readonly
|
|
39
|
-
private get
|
|
38
|
+
private readonly a11yId = `schmancy-tree-${Math.random().toString(36).slice(2, 10)}`
|
|
39
|
+
private get contentId() { return `${this.a11yId}-content` }
|
|
40
40
|
|
|
41
41
|
/** ElementInternals — broadcasts `:state(open)` for consumer CSS. */
|
|
42
|
-
private readonly
|
|
42
|
+
private readonly internals: ElementInternals | undefined = (() => {
|
|
43
43
|
try { return this.attachInternals() } catch { return undefined }
|
|
44
44
|
})()
|
|
45
45
|
|
|
46
46
|
updated(changed: Map<string, unknown>) {
|
|
47
47
|
super.updated?.(changed)
|
|
48
48
|
if (changed.has('open')) {
|
|
49
|
-
if (this.open) this.
|
|
50
|
-
else this.
|
|
49
|
+
if (this.open) this.internals?.states.add('open')
|
|
50
|
+
else this.internals?.states.delete('open')
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -137,7 +137,7 @@ export class SchmancyTree extends SchmancyElement {
|
|
|
137
137
|
slot="trailing"
|
|
138
138
|
id="chevron"
|
|
139
139
|
aria-expanded=${this.open ? 'true' : 'false'}
|
|
140
|
-
aria-controls=${this.
|
|
140
|
+
aria-controls=${this.contentId}
|
|
141
141
|
aria-label=${this.open ? 'Collapse' : 'Expand'}
|
|
142
142
|
@click=${(e: Event) => e.stopPropagation()}
|
|
143
143
|
>
|
|
@@ -146,7 +146,7 @@ export class SchmancyTree extends SchmancyElement {
|
|
|
146
146
|
</div>
|
|
147
147
|
|
|
148
148
|
<!-- The default slot: tree children -->
|
|
149
|
-
<slot id=${this.
|
|
149
|
+
<slot id=${this.contentId}></slot>
|
|
150
150
|
`
|
|
151
151
|
}
|
|
152
152
|
}
|
|
@@ -351,11 +351,11 @@ export class SchmancyTypography extends SchmancyElement {
|
|
|
351
351
|
/** Placeholder shown when editable and empty */
|
|
352
352
|
@property({ type: String }) placeholder = ''
|
|
353
353
|
|
|
354
|
-
private
|
|
354
|
+
private editRef = createRef<HTMLDivElement>()
|
|
355
355
|
|
|
356
356
|
/** Focus and select all text in editable mode */
|
|
357
357
|
selectAll() {
|
|
358
|
-
const el = this.
|
|
358
|
+
const el = this.editRef.value
|
|
359
359
|
if (!el) return
|
|
360
360
|
el.focus()
|
|
361
361
|
const sel = window.getSelection()
|
|
@@ -373,7 +373,7 @@ export class SchmancyTypography extends SchmancyElement {
|
|
|
373
373
|
fromEvent<FocusEvent>(this, 'focusout').pipe(
|
|
374
374
|
filter(() => this.editable),
|
|
375
375
|
tap(() => {
|
|
376
|
-
const el = this.
|
|
376
|
+
const el = this.editRef.value
|
|
377
377
|
if (!el) return
|
|
378
378
|
const newValue = el.innerText.trim()
|
|
379
379
|
if (newValue !== this.value) {
|
|
@@ -393,7 +393,7 @@ export class SchmancyTypography extends SchmancyElement {
|
|
|
393
393
|
fromEvent(this, 'input').pipe(
|
|
394
394
|
filter(() => this.editable),
|
|
395
395
|
tap(() => {
|
|
396
|
-
const el = this.
|
|
396
|
+
const el = this.editRef.value
|
|
397
397
|
if (el && !el.innerText.trim()) el.textContent = ''
|
|
398
398
|
}),
|
|
399
399
|
takeUntil(this.disconnecting),
|
|
@@ -402,7 +402,7 @@ export class SchmancyTypography extends SchmancyElement {
|
|
|
402
402
|
fromEvent<KeyboardEvent>(this, 'keydown').pipe(
|
|
403
403
|
filter(() => this.editable),
|
|
404
404
|
filter(e => e.key === 'Enter'),
|
|
405
|
-
tap(e => { e.preventDefault(); (this.
|
|
405
|
+
tap(e => { e.preventDefault(); (this.editRef.value ?? this).blur() }),
|
|
406
406
|
takeUntil(this.disconnecting),
|
|
407
407
|
).subscribe()
|
|
408
408
|
}
|
|
@@ -418,7 +418,7 @@ export class SchmancyTypography extends SchmancyElement {
|
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
420
|
if ((changedProperties.has('value') || changedProperties.has('editable')) && this.editable) {
|
|
421
|
-
const el = this.
|
|
421
|
+
const el = this.editRef.value
|
|
422
422
|
if (el && document.activeElement !== el) {
|
|
423
423
|
if (this.value) {
|
|
424
424
|
el.innerText = this.value
|
|
@@ -432,7 +432,7 @@ export class SchmancyTypography extends SchmancyElement {
|
|
|
432
432
|
protected render(): unknown {
|
|
433
433
|
if (this.editable) {
|
|
434
434
|
return html`<div
|
|
435
|
-
${ref(this.
|
|
435
|
+
${ref(this.editRef)}
|
|
436
436
|
class="edit"
|
|
437
437
|
contenteditable="true"
|
|
438
438
|
data-placeholder=${this.placeholder ?? ''}
|
|
@@ -23,13 +23,13 @@ const LEGACY_STORAGE_PREFIX = 'schmancy-float-'
|
|
|
23
23
|
class WindowManagerService {
|
|
24
24
|
private static instance: WindowManagerService
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
readonly #state$ = new BehaviorSubject<WindowRegistryState>({
|
|
27
27
|
windows: new Map(),
|
|
28
28
|
focusedId: null,
|
|
29
29
|
stackOrder: [],
|
|
30
30
|
})
|
|
31
31
|
|
|
32
|
-
readonly state$ = this
|
|
32
|
+
readonly state$ = this.#state$.asObservable()
|
|
33
33
|
|
|
34
34
|
private constructor() {}
|
|
35
35
|
|
|
@@ -43,17 +43,17 @@ class WindowManagerService {
|
|
|
43
43
|
// ── Synchronous accessors ──────────────────────────────────────────
|
|
44
44
|
|
|
45
45
|
get windows(): Map<string, WindowRecord> {
|
|
46
|
-
return this
|
|
46
|
+
return this.#state$.value.windows
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
get focusedId(): string | null {
|
|
50
|
-
return this
|
|
50
|
+
return this.#state$.value.focusedId
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
// ── Registration ───────────────────────────────────────────────────
|
|
54
54
|
|
|
55
55
|
register(id: string, initialBounds: WindowBounds, snapTarget: SnapTarget): void {
|
|
56
|
-
const state = this
|
|
56
|
+
const state = this.#state$.value
|
|
57
57
|
if (state.windows.has(id)) return
|
|
58
58
|
|
|
59
59
|
const zIndex = overlayStack.assignZIndex(id)
|
|
@@ -70,11 +70,11 @@ class WindowManagerService {
|
|
|
70
70
|
windows.set(id, record)
|
|
71
71
|
const stackOrder = overlayStack.getStackOrder()
|
|
72
72
|
|
|
73
|
-
this
|
|
73
|
+
this.#state$.next({ ...state, windows, stackOrder })
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
unregister(id: string): void {
|
|
77
|
-
const state = this
|
|
77
|
+
const state = this.#state$.value
|
|
78
78
|
if (!state.windows.has(id)) return
|
|
79
79
|
|
|
80
80
|
overlayStack.releaseId(id)
|
|
@@ -83,25 +83,25 @@ class WindowManagerService {
|
|
|
83
83
|
const stackOrder = overlayStack.getStackOrder()
|
|
84
84
|
const focusedId = state.focusedId === id ? null : state.focusedId
|
|
85
85
|
|
|
86
|
-
this
|
|
86
|
+
this.#state$.next({ ...state, windows, stackOrder, focusedId })
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
// ── State mutations ────────────────────────────────────────────────
|
|
90
90
|
|
|
91
91
|
updateBounds(id: string, bounds: WindowBounds): void {
|
|
92
|
-
this.
|
|
92
|
+
this.updateRecord(id, { bounds })
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
updateVisualState(id: string, visualState: WindowRecord['visualState']): void {
|
|
96
|
-
this.
|
|
96
|
+
this.updateRecord(id, { visualState })
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
updateOpen(id: string, open: boolean): void {
|
|
100
|
-
this.
|
|
100
|
+
this.updateRecord(id, { open })
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
focus(id: string): void {
|
|
104
|
-
const state = this
|
|
104
|
+
const state = this.#state$.value
|
|
105
105
|
if (!state.windows.has(id)) return
|
|
106
106
|
if (state.focusedId === id) return
|
|
107
107
|
|
|
@@ -113,14 +113,14 @@ class WindowManagerService {
|
|
|
113
113
|
}
|
|
114
114
|
const stackOrder = overlayStack.getStackOrder()
|
|
115
115
|
|
|
116
|
-
this
|
|
116
|
+
this.#state$.next({ ...state, windows, stackOrder, focusedId: id })
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
// ── Queries ────────────────────────────────────────────────────────
|
|
120
120
|
|
|
121
121
|
findOverlaps(bounds: WindowBounds, excludeId: string): WindowRecord[] {
|
|
122
122
|
const result: WindowRecord[] = []
|
|
123
|
-
for (const [id, record] of this
|
|
123
|
+
for (const [id, record] of this.#state$.value.windows) {
|
|
124
124
|
if (id === excludeId) continue
|
|
125
125
|
if (rectsOverlap(bounds, record.bounds)) {
|
|
126
126
|
result.push(record)
|
|
@@ -131,7 +131,7 @@ class WindowManagerService {
|
|
|
131
131
|
|
|
132
132
|
getNeighbors(id: string): WindowRecord[] {
|
|
133
133
|
const result: WindowRecord[] = []
|
|
134
|
-
for (const [otherId, record] of this
|
|
134
|
+
for (const [otherId, record] of this.#state$.value.windows) {
|
|
135
135
|
if (otherId !== id) result.push(record)
|
|
136
136
|
}
|
|
137
137
|
return result
|
|
@@ -140,14 +140,14 @@ class WindowManagerService {
|
|
|
140
140
|
// ── Selectors ──────────────────────────────────────────────────────
|
|
141
141
|
|
|
142
142
|
selectWindow(id: string): Observable<WindowRecord | undefined> {
|
|
143
|
-
return this
|
|
143
|
+
return this.#state$.pipe(
|
|
144
144
|
map(state => state.windows.get(id)),
|
|
145
145
|
distinctUntilChanged(),
|
|
146
146
|
)
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
selectFocused(): Observable<string | null> {
|
|
150
|
-
return this
|
|
150
|
+
return this.#state$.pipe(
|
|
151
151
|
map(state => state.focusedId),
|
|
152
152
|
distinctUntilChanged(),
|
|
153
153
|
)
|
|
@@ -185,14 +185,14 @@ class WindowManagerService {
|
|
|
185
185
|
|
|
186
186
|
// ── Internal ───────────────────────────────────────────────────────
|
|
187
187
|
|
|
188
|
-
private
|
|
189
|
-
const state = this
|
|
188
|
+
private updateRecord(id: string, updates: Partial<WindowRecord>): void {
|
|
189
|
+
const state = this.#state$.value
|
|
190
190
|
const record = state.windows.get(id)
|
|
191
191
|
if (!record) return
|
|
192
192
|
|
|
193
193
|
const windows = new Map(state.windows)
|
|
194
194
|
windows.set(id, { ...record, ...updates })
|
|
195
|
-
this
|
|
195
|
+
this.#state$.next({ ...state, windows })
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
|