@mhmo91/schmancy 0.10.36 → 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 +54 -31
- package/dist/SchmancyElement-BNnyBOwk.js +286 -0
- package/dist/{SchmancyElement-C3CpdNsi.js.map → SchmancyElement-BNnyBOwk.js.map} +1 -1
- package/dist/SchmancyElement-C41uPa6l.cjs +2 -0
- package/dist/{SchmancyElement-BBzRWB1w.cjs.map → SchmancyElement-C41uPa6l.cjs.map} +1 -1
- package/dist/agent/schmancy.agent.js +2432 -2361
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +4 -22
- package/dist/area-2FrTZI_T.cjs +21 -0
- package/dist/area-2FrTZI_T.cjs.map +1 -0
- package/dist/{area-BA96mwFY.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-D52h1jAT.js → audio-D3gnp15Y.js} +1 -1
- package/dist/{audio-D52h1jAT.js.map → audio-D3gnp15Y.js.map} +1 -1
- package/dist/{audio-B_jT9Xr7.cjs → audio-EaD0Ggfh.cjs} +1 -1
- package/dist/{audio-B_jT9Xr7.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-CI4QJXAN.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-_N1x5U_3.js → boat-DmyG7y1V.js} +4 -4
- package/dist/{boat-_N1x5U_3.js.map → boat-DmyG7y1V.js.map} +1 -1
- package/dist/{boat-I4B1UNMc.cjs → boat-dB1_qLm0.cjs} +1 -1
- package/dist/{boat-I4B1UNMc.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-BIUonyPk.cjs → busy-Cj_PV7oC.cjs} +1 -1
- package/dist/{busy-BIUonyPk.cjs.map → busy-Cj_PV7oC.cjs.map} +1 -1
- package/dist/{busy-CCB3qKnh.js → busy-enYCTssB.js} +2 -2
- package/dist/{busy-CCB3qKnh.js.map → busy-enYCTssB.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-C89bPnHt.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-CFsCgJKZ.js → card-BHTz1GwB.js} +16 -16
- package/dist/card-BHTz1GwB.js.map +1 -0
- package/dist/{card-BO93_oxQ.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-CFUBUFtW.cjs → checkbox-C4zeib84.cjs} +2 -2
- package/dist/{checkbox-CFUBUFtW.cjs.map → checkbox-C4zeib84.cjs.map} +1 -1
- package/dist/{checkbox-Bh7q0djq.js → checkbox-Ce0DlAdW.js} +6 -6
- package/dist/{checkbox-Bh7q0djq.js.map → checkbox-Ce0DlAdW.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-BfzpsyV1.cjs → chips-B1jui8Pe.cjs} +3 -3
- package/dist/chips-B1jui8Pe.cjs.map +1 -0
- package/dist/{chips-6YaoRmeG.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-N-A249O9.cjs → date-range-BUaPgbTZ.cjs} +2 -2
- package/dist/date-range-BUaPgbTZ.cjs.map +1 -0
- package/dist/{date-range-CEo_Kjqw.js → date-range-NTpoA1in.js} +4 -4
- package/dist/date-range-NTpoA1in.js.map +1 -0
- package/dist/{date-range-inline-DFopysWF.cjs → date-range-inline-D0I6k84h.cjs} +1 -1
- package/dist/{date-range-inline-DFopysWF.cjs.map → date-range-inline-D0I6k84h.cjs.map} +1 -1
- package/dist/{date-range-inline-BwialV9j.js → date-range-inline-DjRdMZ1z.js} +2 -2
- package/dist/{date-range-inline-BwialV9j.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-GtpfI2hA.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-CvYGSW_a.cjs → directives-Bb0S1DKZ.cjs} +4 -4
- package/dist/directives-Bb0S1DKZ.cjs.map +1 -0
- package/dist/{directives-C2dXgpCY.js → directives-Bfm1lkoy.js} +30 -23
- package/dist/directives-Bfm1lkoy.js.map +1 -0
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +2 -2
- package/dist/{divider-D0pGX2VB.js → divider-BeyX_C0A.js} +2 -2
- package/dist/{divider-D0pGX2VB.js.map → divider-BeyX_C0A.js.map} +1 -1
- package/dist/{divider-rNsWCvMi.cjs → divider-Ck2C1sKl.cjs} +1 -1
- package/dist/{divider-rNsWCvMi.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-FcKAzJta.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-CQ1WEp3M.js → float-Cgllk_H9.js} +2 -2
- package/dist/{float-CQ1WEp3M.js.map → float-Cgllk_H9.js.map} +1 -1
- package/dist/{float-CDjgxWyy.cjs → float-OvqX0nqG.cjs} +1 -1
- package/dist/{float-CDjgxWyy.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-H24puioV.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-DBxfN91B.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-BDVElN8z.js → iframe-DWvN5nGB.js} +11 -11
- package/dist/iframe-DWvN5nGB.js.map +1 -0
- package/dist/{iframe-CG-z9qev.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 +37 -37
- package/dist/{input-Bt_o4sYo.js → input-BCCHz6tB.js} +7 -7
- package/dist/input-BCCHz6tB.js.map +1 -0
- package/dist/{input-B14Nn6xD.cjs → input-Z-3N5JMv.cjs} +2 -2
- package/dist/input-Z-3N5JMv.cjs.map +1 -0
- package/dist/{input-chip-DEqO0DXc.js → input-chip-BOrcKH-H.js} +2 -2
- package/dist/{input-chip-DEqO0DXc.js.map → input-chip-BOrcKH-H.js.map} +1 -1
- package/dist/{input-chip-ugYu9Fn9.cjs → input-chip-ChAgRCXZ.cjs} +1 -1
- package/dist/{input-chip-ugYu9Fn9.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-BJ_43VrH.js → layout-CFiG3lNT.js} +1 -1
- package/dist/{layout-BJ_43VrH.js.map → layout-CFiG3lNT.js.map} +1 -1
- package/dist/{layout-DF9ZaQ-b.cjs → layout-DZ4dpLh9.cjs} +1 -1
- package/dist/{layout-DF9ZaQ-b.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-ZmuoBBFT.js → lightbox-B7Y4Nij_.js} +2 -2
- package/dist/lightbox-B7Y4Nij_.js.map +1 -0
- package/dist/{lightbox-B47Zoqv-.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-CaSWrlG2.cjs → list-BhM-6dAi.cjs} +1 -1
- package/dist/{list-CaSWrlG2.cjs.map → list-BhM-6dAi.cjs.map} +1 -1
- package/dist/{list-C47xzld_.js → list-C5WVoIfJ.js} +2 -2
- package/dist/{list-C47xzld_.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-8RObM6Ie.js → menu-CBAAJoHu.js} +3 -3
- package/dist/{menu-8RObM6Ie.js.map → menu-CBAAJoHu.js.map} +1 -1
- package/dist/{menu-Jpsy85SX.cjs → menu-DFQjJk3H.cjs} +1 -1
- package/dist/{menu-Jpsy85SX.cjs.map → menu-DFQjJk3H.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/{mixins-DTzfFVyv.js → mixins-DGBI7YPO.js} +11 -11
- package/dist/mixins-DGBI7YPO.js.map +1 -0
- package/dist/{mixins-DPdzC9ZH.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-Ccktcj9H.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-CkMxwBqU.js → option-B21ImL0k.js} +2 -2
- package/dist/{option-CkMxwBqU.js.map → option-B21ImL0k.js.map} +1 -1
- package/dist/{option-0aNiVB3Q.cjs → option-CJQM5I9q.cjs} +1 -1
- package/dist/{option-0aNiVB3Q.cjs.map → option-CJQM5I9q.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-H3Wt_dgQ.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-Dxn_wNm3.js → overlay.confirm-body-CPqqPNks.js} +10 -10
- package/dist/overlay.confirm-body-CPqqPNks.js.map +1 -0
- package/dist/{overlay.confirm-body-CR9xaqOE.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-DEj3rfRr.cjs.map → overlay.service-DU1nqh6A.cjs.map} +1 -1
- package/dist/{overlay.service-C46kOtUi.js → overlay.service-KTgBxjFb.js} +4 -4
- package/dist/{overlay.service-C46kOtUi.js.map → overlay.service-KTgBxjFb.js.map} +1 -1
- package/dist/{progress-zs18GR6C.cjs → progress-B-Qg44XY.cjs} +1 -1
- package/dist/{progress-zs18GR6C.cjs.map → progress-B-Qg44XY.cjs.map} +1 -1
- package/dist/{progress-BK7gSq8j.js → progress-CUSS1sNz.js} +2 -2
- package/dist/{progress-BK7gSq8j.js.map → progress-CUSS1sNz.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-1HCpzRUB.js → radio-group-AHLvrN8O.js} +7 -7
- package/dist/radio-group-AHLvrN8O.js.map +1 -0
- package/dist/{radio-group-DbYlyPc-.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-CEyhNtZ2.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 +17 -11
- package/dist/skills/overlay.md +14 -7
- package/dist/skills/schmancy/SKILL.md +17 -11
- package/dist/skills/schmancy/overlay.md +14 -7
- package/dist/skills/schmancy/steps.md +68 -34
- package/dist/skills/steps.md +68 -34
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +2 -2
- package/dist/{sound.service-DO4SmUUT.js → sound.service-CK-5zob-.js} +4 -3
- package/dist/sound.service-CK-5zob-.js.map +1 -0
- package/dist/{sound.service-G_8GV_6L.cjs → sound.service-D2GGaBXc.cjs} +1 -1
- package/dist/sound.service-D2GGaBXc.cjs.map +1 -0
- package/dist/{splash-screen-B1mM4_xz.js → splash-screen-BUEtjHXC.js} +13 -13
- package/dist/splash-screen-BUEtjHXC.js.map +1 -0
- package/dist/{splash-screen-cbz4bxjB.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-tncsWsTY.js → src-CIqAj3Eh.js} +45 -45
- package/dist/src-CIqAj3Eh.js.map +1 -0
- package/dist/{src-czeiuT1m.cjs → src-CYqBQTyt.cjs} +6 -6
- package/dist/src-CYqBQTyt.cjs.map +1 -0
- package/dist/{state-Cx0aoL5e.cjs → state-BxDNox-2.cjs} +1 -1
- package/dist/{state-Cx0aoL5e.cjs.map → state-BxDNox-2.cjs.map} +1 -1
- package/dist/{state-DJDp3N7J.js → state-CnZCDMT0.js} +9 -9
- package/dist/{state-DJDp3N7J.js.map → state-CnZCDMT0.js.map} +1 -1
- package/dist/state.cjs +1 -1
- package/dist/state.js +2 -2
- package/dist/steps.cjs +35 -19
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +96 -73
- package/dist/steps.js.map +1 -1
- package/dist/{surface-CYBl8_a3.js → surface-BMdG3dKQ.js} +2 -2
- package/dist/{surface-CYBl8_a3.js.map → surface-BMdG3dKQ.js.map} +1 -1
- package/dist/{surface-C3cxTcJD.cjs → surface-CWwYD_z2.cjs} +1 -1
- package/dist/{surface-C3cxTcJD.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-DHy93Q3N.js → tabs-CDQYDc6v.js} +2 -2
- package/dist/{tabs-DHy93Q3N.js.map → tabs-CDQYDc6v.js.map} +1 -1
- package/dist/{tabs-ORQ_Zd43.cjs → tabs-CbD9E1gd.cjs} +1 -1
- package/dist/{tabs-ORQ_Zd43.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-DHIMt-ly.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-CJpjkqHr.cjs → theme-BMbXoqi0.cjs} +1 -1
- package/dist/{theme-CJpjkqHr.cjs.map → theme-BMbXoqi0.cjs.map} +1 -1
- package/dist/{theme-CgI9PRco.js → theme-DZu-xmVp.js} +5 -5
- package/dist/{theme-CgI9PRco.js.map → theme-DZu-xmVp.js.map} +1 -1
- package/dist/{theme-button--FuBkuVr.cjs → theme-button-B0OLb-43.cjs} +1 -1
- package/dist/{theme-button--FuBkuVr.cjs.map → theme-button-B0OLb-43.cjs.map} +1 -1
- package/dist/{theme-button-D-FXb3oO.js → theme-button-D_qGvEYs.js} +2 -2
- package/dist/{theme-button-D-FXb3oO.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-BfTK1Wtl.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-CxA3sx9B.cjs → typography-D4Fo1UGh.cjs} +3 -3
- package/dist/{typography-CxA3sx9B.cjs.map → typography-D4Fo1UGh.cjs.map} +1 -1
- package/dist/{typography-BEGLfHwz.js → typography-SZhjb_4R.js} +9 -9
- package/dist/{typography-BEGLfHwz.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-B_n4P9az.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 +17 -11
- package/skills/schmancy/overlay.md +14 -7
- package/skills/schmancy/steps.md +68 -34
- 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 +193 -118
- 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/steps/index.ts +1 -1
- package/src/steps/schmancy-step.ts +91 -65
- package/src/steps/{schmancy-steps-container.ts → schmancy-steps.ts} +18 -38
- package/src/steps/steps.context.ts +5 -4
- package/src/steps/steps.test.ts +120 -0
- 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 +17 -7
- 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/steps/index.d.ts +1 -1
- package/types/src/steps/schmancy-step.d.ts +8 -23
- package/types/src/steps/{schmancy-steps-container.d.ts → schmancy-steps.d.ts} +8 -9
- package/types/src/steps/steps.context.d.ts +2 -1
- package/types/src/steps/steps.test.d.ts +2 -0
- 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/SchmancyElement-BBzRWB1w.cjs +0 -2
- package/dist/SchmancyElement-C3CpdNsi.js +0 -284
- package/dist/area-BA96mwFY.js.map +0 -1
- package/dist/area-DtyQDdOF.cjs +0 -21
- package/dist/area-DtyQDdOF.cjs.map +0 -1
- package/dist/autocomplete-Bts5Jwwr.cjs +0 -115
- package/dist/autocomplete-Bts5Jwwr.cjs.map +0 -1
- package/dist/autocomplete-CI4QJXAN.js.map +0 -1
- package/dist/button-C89bPnHt.js.map +0 -1
- package/dist/button-CkwQH-g3.cjs +0 -62
- package/dist/button-CkwQH-g3.cjs.map +0 -1
- package/dist/card-BO93_oxQ.cjs.map +0 -1
- package/dist/card-CFsCgJKZ.js.map +0 -1
- package/dist/chips-6YaoRmeG.js.map +0 -1
- package/dist/chips-BfzpsyV1.cjs.map +0 -1
- package/dist/date-range-CEo_Kjqw.js.map +0 -1
- package/dist/date-range-N-A249O9.cjs.map +0 -1
- package/dist/details-BLRPV8sY.cjs +0 -164
- package/dist/details-BLRPV8sY.cjs.map +0 -1
- package/dist/details-GtpfI2hA.js.map +0 -1
- package/dist/directives-C2dXgpCY.js.map +0 -1
- package/dist/directives-CvYGSW_a.cjs.map +0 -1
- package/dist/expand-FcKAzJta.js.map +0 -1
- package/dist/expand-tffQHGbZ.cjs +0 -141
- package/dist/expand-tffQHGbZ.cjs.map +0 -1
- package/dist/form-H24puioV.js.map +0 -1
- package/dist/form-VYhbbir3.cjs +0 -27
- package/dist/form-VYhbbir3.cjs.map +0 -1
- package/dist/icons-B_a1HStW.cjs +0 -24
- package/dist/icons-B_a1HStW.cjs.map +0 -1
- package/dist/icons-DBxfN91B.js.map +0 -1
- package/dist/iframe-BDVElN8z.js.map +0 -1
- package/dist/iframe-CG-z9qev.cjs.map +0 -1
- package/dist/input-B14Nn6xD.cjs.map +0 -1
- package/dist/input-Bt_o4sYo.js.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-B47Zoqv-.cjs.map +0 -1
- package/dist/lightbox-ZmuoBBFT.js.map +0 -1
- package/dist/mixins-DPdzC9ZH.cjs.map +0 -1
- package/dist/mixins-DTzfFVyv.js.map +0 -1
- package/dist/notification-Ccktcj9H.js.map +0 -1
- package/dist/notification-DSkB-sn0.cjs +0 -24
- package/dist/notification-DSkB-sn0.cjs.map +0 -1
- package/dist/overlay-BS-ta-zq.cjs +0 -58
- package/dist/overlay-BS-ta-zq.cjs.map +0 -1
- package/dist/overlay-H3Wt_dgQ.js.map +0 -1
- package/dist/overlay.confirm-body-CR9xaqOE.cjs.map +0 -1
- package/dist/overlay.confirm-body-Dxn_wNm3.js.map +0 -1
- package/dist/overlay.service-DEj3rfRr.cjs +0 -1
- package/dist/radio-group-1HCpzRUB.js.map +0 -1
- package/dist/radio-group-DbYlyPc-.cjs.map +0 -1
- package/dist/select-B-SSmUDe.cjs +0 -56
- package/dist/select-B-SSmUDe.cjs.map +0 -1
- package/dist/select-CEyhNtZ2.js.map +0 -1
- package/dist/sound.service-DO4SmUUT.js.map +0 -1
- package/dist/sound.service-G_8GV_6L.cjs.map +0 -1
- package/dist/splash-screen-B1mM4_xz.js.map +0 -1
- package/dist/splash-screen-cbz4bxjB.cjs.map +0 -1
- package/dist/src-czeiuT1m.cjs.map +0 -1
- package/dist/src-tncsWsTY.js.map +0 -1
- package/dist/textarea-CEUaDURR.cjs +0 -43
- package/dist/textarea-CEUaDURR.cjs.map +0 -1
- package/dist/textarea-DHIMt-ly.js.map +0 -1
- package/dist/theme.service-BfTK1Wtl.js.map +0 -1
- package/dist/theme.service-Dg7LO0Qz.cjs +0 -1
- package/dist/theme.service-Dg7LO0Qz.cjs.map +0 -1
- package/dist/window-B_n4P9az.js.map +0 -1
- package/dist/window-Vl1u1-EG.cjs +0 -59
- package/dist/window-Vl1u1-EG.cjs.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest'
|
|
2
|
+
import './schmancy-step'
|
|
3
|
+
import type { SchmancyStep } from './schmancy-step'
|
|
4
|
+
import './schmancy-steps'
|
|
5
|
+
import type { SchmancySteps } from './schmancy-steps'
|
|
6
|
+
|
|
7
|
+
const nextUpdate = () => new Promise(r => requestAnimationFrame(() => r(null)))
|
|
8
|
+
|
|
9
|
+
describe('schmancy-steps', () => {
|
|
10
|
+
let host: HTMLDivElement
|
|
11
|
+
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
host = document.createElement('div')
|
|
14
|
+
document.body.appendChild(host)
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
host.remove()
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it('emits change with numeric value when value property is set', async () => {
|
|
22
|
+
host.innerHTML = `
|
|
23
|
+
<schmancy-steps>
|
|
24
|
+
<schmancy-step position="1" label="First"></schmancy-step>
|
|
25
|
+
<schmancy-step position="2" label="Second"></schmancy-step>
|
|
26
|
+
</schmancy-steps>
|
|
27
|
+
`
|
|
28
|
+
await nextUpdate()
|
|
29
|
+
const container = host.querySelector('schmancy-steps') as SchmancySteps
|
|
30
|
+
const changes: number[] = []
|
|
31
|
+
container.addEventListener('change', (e: Event) => {
|
|
32
|
+
changes.push((e as CustomEvent<{ value: number }>).detail.value)
|
|
33
|
+
})
|
|
34
|
+
container.value = 2
|
|
35
|
+
await nextUpdate()
|
|
36
|
+
expect(changes).toContain(2)
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
it('clicking a complete step navigates to it', async () => {
|
|
40
|
+
host.innerHTML = `
|
|
41
|
+
<schmancy-steps>
|
|
42
|
+
<schmancy-step position="1" label="First" completed></schmancy-step>
|
|
43
|
+
<schmancy-step position="2" label="Second"></schmancy-step>
|
|
44
|
+
</schmancy-steps>
|
|
45
|
+
`
|
|
46
|
+
await nextUpdate()
|
|
47
|
+
const container = host.querySelector('schmancy-steps') as SchmancySteps
|
|
48
|
+
container.value = 2
|
|
49
|
+
await nextUpdate()
|
|
50
|
+
const step1 = host.querySelector('schmancy-step') as SchmancyStep
|
|
51
|
+
const changes: number[] = []
|
|
52
|
+
container.addEventListener('change', (e: Event) => {
|
|
53
|
+
changes.push((e as CustomEvent<{ value: number }>).detail.value)
|
|
54
|
+
})
|
|
55
|
+
// Fire click on the interactive element inside the shadow root
|
|
56
|
+
const inner = step1.shadowRoot?.querySelector('[role="button"]') as HTMLElement
|
|
57
|
+
inner?.click()
|
|
58
|
+
await nextUpdate()
|
|
59
|
+
expect(changes).toContain(1)
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
it('upcoming step click is inert', async () => {
|
|
63
|
+
host.innerHTML = `
|
|
64
|
+
<schmancy-steps>
|
|
65
|
+
<schmancy-step position="1" label="First"></schmancy-step>
|
|
66
|
+
<schmancy-step position="2" label="Second"></schmancy-step>
|
|
67
|
+
</schmancy-steps>
|
|
68
|
+
`
|
|
69
|
+
await nextUpdate()
|
|
70
|
+
const container = host.querySelector('schmancy-steps') as SchmancySteps
|
|
71
|
+
container.value = 1
|
|
72
|
+
await nextUpdate()
|
|
73
|
+
const steps = host.querySelectorAll('schmancy-step') as NodeListOf<SchmancyStep>
|
|
74
|
+
const changes: number[] = []
|
|
75
|
+
container.addEventListener('change', (e: Event) => {
|
|
76
|
+
changes.push((e as CustomEvent<{ value: number }>).detail.value)
|
|
77
|
+
})
|
|
78
|
+
steps[1].click()
|
|
79
|
+
await nextUpdate()
|
|
80
|
+
expect(changes).toHaveLength(0)
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
it('container lockBack blocks back-navigation', async () => {
|
|
84
|
+
host.innerHTML = `
|
|
85
|
+
<schmancy-steps lockback>
|
|
86
|
+
<schmancy-step position="1" label="First" completed></schmancy-step>
|
|
87
|
+
<schmancy-step position="2" label="Second"></schmancy-step>
|
|
88
|
+
</schmancy-steps>
|
|
89
|
+
`
|
|
90
|
+
await nextUpdate()
|
|
91
|
+
const container = host.querySelector('schmancy-steps') as SchmancySteps
|
|
92
|
+
container.value = 2
|
|
93
|
+
await nextUpdate()
|
|
94
|
+
const changes: number[] = []
|
|
95
|
+
container.addEventListener('change', (e: Event) => {
|
|
96
|
+
changes.push((e as CustomEvent<{ value: number }>).detail.value)
|
|
97
|
+
})
|
|
98
|
+
const step1 = host.querySelector('schmancy-step') as SchmancyStep
|
|
99
|
+
step1.click()
|
|
100
|
+
await nextUpdate()
|
|
101
|
+
expect(changes).toHaveLength(0)
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
it('step with no slotted content renders rail row (no content mode)', async () => {
|
|
105
|
+
host.innerHTML = `
|
|
106
|
+
<schmancy-steps>
|
|
107
|
+
<schmancy-step position="1" label="Rail Step"></schmancy-step>
|
|
108
|
+
</schmancy-steps>
|
|
109
|
+
`
|
|
110
|
+
await nextUpdate()
|
|
111
|
+
const step = host.querySelector('schmancy-step') as SchmancyStep
|
|
112
|
+
await nextUpdate()
|
|
113
|
+
// Rail mode: no slot content means hasContent is false — shadow DOM renders rail row
|
|
114
|
+
// The step's shadow root should not contain the content-mode card button
|
|
115
|
+
const shadowRoot = step.shadowRoot
|
|
116
|
+
expect(shadowRoot).toBeTruthy()
|
|
117
|
+
// Content mode renders a <li>, rail mode renders a <div>
|
|
118
|
+
expect(shadowRoot?.querySelector('li')).toBeNull()
|
|
119
|
+
})
|
|
120
|
+
})
|
|
@@ -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
|
|