@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
package/src/window/window.ts
CHANGED
|
@@ -73,22 +73,22 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
73
73
|
/** Whether the body is expanded. */
|
|
74
74
|
@property({ type: Boolean, reflect: true }) open = false
|
|
75
75
|
|
|
76
|
-
private
|
|
76
|
+
private currentAnimation?: Animation
|
|
77
77
|
|
|
78
78
|
/** Lazy rendering: body content not in DOM until first expand. */
|
|
79
|
-
@state() private
|
|
79
|
+
@state() private hasOpened = false
|
|
80
80
|
|
|
81
81
|
// Internal position -- plain fields, updated directly during drag
|
|
82
|
-
private
|
|
83
|
-
@state() private
|
|
82
|
+
private position: Position = { x: 16, y: 16 }
|
|
83
|
+
@state() private currentCorner: SnapCorner = 'bottom-right'
|
|
84
84
|
|
|
85
85
|
// Track applied corner to avoid unnecessary style.removeProperty calls during drag
|
|
86
|
-
private
|
|
86
|
+
private appliedCorner: string = ''
|
|
87
87
|
|
|
88
88
|
// Refs
|
|
89
|
-
private
|
|
90
|
-
private
|
|
91
|
-
private
|
|
89
|
+
private containerRef = createRef<HTMLElement>()
|
|
90
|
+
private bodyRef = createRef<HTMLElement>()
|
|
91
|
+
private headRef = createRef<HTMLElement>()
|
|
92
92
|
|
|
93
93
|
// ============================================
|
|
94
94
|
// COMPUTED
|
|
@@ -99,7 +99,7 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
private get isBottomCorner(): boolean {
|
|
102
|
-
return this.
|
|
102
|
+
return this.currentCorner.startsWith('bottom')
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
private get closedClipPath(): string {
|
|
@@ -121,24 +121,24 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
121
121
|
// POSITION MANAGEMENT
|
|
122
122
|
// ============================================
|
|
123
123
|
|
|
124
|
-
private
|
|
125
|
-
const container = this.
|
|
124
|
+
private applyContainerPosition() {
|
|
125
|
+
const container = this.containerRef.value
|
|
126
126
|
if (!container) return
|
|
127
127
|
// Only clear position properties when corner changes (avoids 4 style invalidations per drag frame)
|
|
128
|
-
if (this.
|
|
128
|
+
if (this.appliedCorner !== this.currentCorner) {
|
|
129
129
|
container.style.removeProperty('left')
|
|
130
130
|
container.style.removeProperty('right')
|
|
131
131
|
container.style.removeProperty('top')
|
|
132
132
|
container.style.removeProperty('bottom')
|
|
133
|
-
this.
|
|
133
|
+
this.appliedCorner = this.currentCorner
|
|
134
134
|
}
|
|
135
|
-
const { x, y } = this.
|
|
136
|
-
if (this.
|
|
135
|
+
const { x, y } = this.position
|
|
136
|
+
if (this.currentCorner.includes('right')) {
|
|
137
137
|
container.style.right = `${x}px`
|
|
138
138
|
} else {
|
|
139
139
|
container.style.left = `${x}px`
|
|
140
140
|
}
|
|
141
|
-
if (this.
|
|
141
|
+
if (this.currentCorner.includes('bottom')) {
|
|
142
142
|
container.style.bottom = `${y + theme.bottomOffset}px`
|
|
143
143
|
} else {
|
|
144
144
|
container.style.top = `${y}px`
|
|
@@ -147,63 +147,63 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
147
147
|
|
|
148
148
|
private static readonly VALID_CORNERS = new Set<string>(['top-left', 'top-right', 'bottom-left', 'bottom-right'])
|
|
149
149
|
|
|
150
|
-
private
|
|
150
|
+
private loadPosition() {
|
|
151
151
|
const saved = windowManager.loadPosition(this.id)
|
|
152
152
|
if (saved) {
|
|
153
|
-
this.
|
|
153
|
+
this.position = { x: saved.x, y: saved.y }
|
|
154
154
|
if (SchmancyWindow.VALID_CORNERS.has(saved.anchor)) {
|
|
155
|
-
this.
|
|
155
|
+
this.currentCorner = saved.anchor as SnapCorner
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
private
|
|
161
|
-
windowManager.savePosition(this.id, { ...this.
|
|
160
|
+
private savePosition() {
|
|
161
|
+
windowManager.savePosition(this.id, { ...this.position, anchor: this.currentCorner })
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
private
|
|
165
|
-
const container = this.
|
|
164
|
+
private validateBounds() {
|
|
165
|
+
const container = this.containerRef.value
|
|
166
166
|
if (!container) return
|
|
167
167
|
const rect = container.getBoundingClientRect()
|
|
168
168
|
if (rect.width === 0) return
|
|
169
169
|
const vw = window.innerWidth
|
|
170
170
|
const vh = window.innerHeight
|
|
171
|
-
const isRight = this.
|
|
172
|
-
const isBottom = this.
|
|
173
|
-
const actualLeft = isRight ? vw - this.
|
|
174
|
-
const actualTop = isBottom ? vh - this.
|
|
171
|
+
const isRight = this.currentCorner.includes('right')
|
|
172
|
+
const isBottom = this.currentCorner.includes('bottom')
|
|
173
|
+
const actualLeft = isRight ? vw - this.position.x - rect.width : this.position.x
|
|
174
|
+
const actualTop = isBottom ? vh - this.position.y - rect.height : this.position.y
|
|
175
175
|
const newLeft = Math.max(0, Math.min(actualLeft, vw - rect.width))
|
|
176
176
|
const newTop = Math.max(0, Math.min(actualTop, vh - rect.height))
|
|
177
|
-
this.
|
|
177
|
+
this.position = {
|
|
178
178
|
x: isRight ? vw - newLeft - rect.width : newLeft,
|
|
179
179
|
y: isBottom ? vh - newTop - rect.height : newTop,
|
|
180
180
|
}
|
|
181
|
-
this.
|
|
181
|
+
this.applyContainerPosition()
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
// ============================================
|
|
185
185
|
// CORNER SNAPPING
|
|
186
186
|
// ============================================
|
|
187
187
|
|
|
188
|
-
private
|
|
188
|
+
private reorientToNearestCorner(skipAnimation = false): void {
|
|
189
189
|
// Free position mode: skip corner snapping
|
|
190
190
|
if (this.freePosition) {
|
|
191
|
-
this.
|
|
192
|
-
const rect = this.
|
|
191
|
+
this.savePosition()
|
|
192
|
+
const rect = this.containerRef.value?.getBoundingClientRect()
|
|
193
193
|
if (rect) {
|
|
194
194
|
windowManager.updateBounds(this.id, { left: rect.left, top: rect.top, width: rect.width, height: rect.height })
|
|
195
195
|
}
|
|
196
196
|
return
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
-
const container = this.
|
|
199
|
+
const container = this.containerRef.value
|
|
200
200
|
if (!container) return
|
|
201
201
|
|
|
202
202
|
// F -- record current screen position before DOM mutation
|
|
203
203
|
const rect = container.getBoundingClientRect()
|
|
204
204
|
|
|
205
205
|
// L -- calculate nearest corner using head visual center
|
|
206
|
-
const currentIsBottom = this.
|
|
206
|
+
const currentIsBottom = this.currentCorner.includes('bottom')
|
|
207
207
|
const headCenterX = rect.left + rect.width / 2
|
|
208
208
|
const headCenterY = currentIsBottom
|
|
209
209
|
? rect.bottom - HEAD_HEIGHT / 2
|
|
@@ -213,16 +213,16 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
213
213
|
const newCorner: SnapCorner = `${vert}-${side}` as SnapCorner
|
|
214
214
|
|
|
215
215
|
// Snap corner and reset offset to standard edge gap
|
|
216
|
-
this.
|
|
217
|
-
this.
|
|
218
|
-
this.
|
|
216
|
+
this.currentCorner = newCorner
|
|
217
|
+
this.position = { x: 16, y: 16 }
|
|
218
|
+
this.applyContainerPosition()
|
|
219
219
|
// Sync clip-path to new corner
|
|
220
220
|
if (!this.open) {
|
|
221
221
|
container.style.clipPath = this.closedClipPath
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
if (skipAnimation || reducedMotion$.value) {
|
|
225
|
-
this.
|
|
225
|
+
this.savePosition()
|
|
226
226
|
const snapRect = container.getBoundingClientRect()
|
|
227
227
|
windowManager.updateBounds(this.id, { left: snapRect.left, top: snapRect.top, width: snapRect.width, height: snapRect.height })
|
|
228
228
|
return
|
|
@@ -256,17 +256,17 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
256
256
|
takeUntil(this.disconnecting),
|
|
257
257
|
).subscribe()
|
|
258
258
|
|
|
259
|
-
this.
|
|
259
|
+
this.savePosition()
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
// ============================================
|
|
263
263
|
// DRAG PIPELINE
|
|
264
264
|
// ============================================
|
|
265
265
|
|
|
266
|
-
private
|
|
266
|
+
private drag$(): Observable<never> {
|
|
267
267
|
return new Observable(() => {
|
|
268
|
-
const head = this.
|
|
269
|
-
const container = this.
|
|
268
|
+
const head = this.headRef.value
|
|
269
|
+
const container = this.containerRef.value
|
|
270
270
|
if (!head || !container) return
|
|
271
271
|
|
|
272
272
|
let didDrag = false
|
|
@@ -286,7 +286,7 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
286
286
|
.pipe(
|
|
287
287
|
map(e => {
|
|
288
288
|
const rect = container.getBoundingClientRect()
|
|
289
|
-
const isBottom = this.
|
|
289
|
+
const isBottom = this.currentCorner.includes('bottom')
|
|
290
290
|
const wasOpen = this.open
|
|
291
291
|
didDrag = false
|
|
292
292
|
return {
|
|
@@ -318,13 +318,13 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
318
318
|
const dy = clientY - startY
|
|
319
319
|
if (Math.sqrt(dx * dx + dy * dy) > DRAG_THRESHOLD && !didDrag) {
|
|
320
320
|
didDrag = true
|
|
321
|
-
this.
|
|
321
|
+
this.applyDragVisuals(true)
|
|
322
322
|
// Collapse on first confirmed drag move
|
|
323
323
|
if (wasOpen) {
|
|
324
324
|
this.open = false
|
|
325
325
|
container.style.clipPath = this.closedClipPath
|
|
326
326
|
container.style.overflow = 'hidden'
|
|
327
|
-
const body = this.
|
|
327
|
+
const body = this.bodyRef.value
|
|
328
328
|
if (body) {
|
|
329
329
|
body.inert = true
|
|
330
330
|
body.style.visibility = 'hidden'
|
|
@@ -338,17 +338,17 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
338
338
|
const maxTop = isBottom ? vh - rect.height : vh - HEAD_HEIGHT
|
|
339
339
|
const top = Math.max(minTop, Math.min(clientY - offsetY, maxTop))
|
|
340
340
|
|
|
341
|
-
this.
|
|
342
|
-
x: this.
|
|
341
|
+
this.position = {
|
|
342
|
+
x: this.currentCorner.includes('right') ? vw - left - rect.width : left,
|
|
343
343
|
y: isBottom ? vh - top - rect.height : top,
|
|
344
344
|
}
|
|
345
|
-
this.
|
|
345
|
+
this.applyContainerPosition()
|
|
346
346
|
}),
|
|
347
347
|
takeUntil(end$),
|
|
348
348
|
finalize(() => {
|
|
349
349
|
if (didDrag) {
|
|
350
|
-
this.
|
|
351
|
-
this.
|
|
350
|
+
this.reorientToNearestCorner()
|
|
351
|
+
this.applyDragVisuals(false)
|
|
352
352
|
didDrag = false
|
|
353
353
|
} else {
|
|
354
354
|
didDrag = false
|
|
@@ -375,24 +375,24 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
375
375
|
from(this.updateComplete).pipe(
|
|
376
376
|
take(1),
|
|
377
377
|
tap(() => {
|
|
378
|
-
this.
|
|
379
|
-
this.
|
|
380
|
-
this.
|
|
381
|
-
this.
|
|
378
|
+
this.currentCorner = this.corner
|
|
379
|
+
this.loadPosition()
|
|
380
|
+
this.applyContainerPosition()
|
|
381
|
+
this.initDOMState()
|
|
382
382
|
// Register with window manager
|
|
383
|
-
const container = this.
|
|
383
|
+
const container = this.containerRef.value
|
|
384
384
|
if (container) {
|
|
385
385
|
const rect = container.getBoundingClientRect()
|
|
386
386
|
const bounds: WindowBounds = { left: rect.left, top: rect.top, width: rect.width, height: rect.height }
|
|
387
|
-
windowManager.register(this.id, bounds, this.freePosition ? 'free' : this.
|
|
387
|
+
windowManager.register(this.id, bounds, this.freePosition ? 'free' : this.currentCorner)
|
|
388
388
|
}
|
|
389
389
|
}),
|
|
390
390
|
switchMap(() => merge(
|
|
391
|
-
this.
|
|
391
|
+
this.drag$(),
|
|
392
392
|
windowManager.selectWindow(this.id).pipe(
|
|
393
393
|
tap(record => {
|
|
394
394
|
if (!record) return
|
|
395
|
-
const container = this.
|
|
395
|
+
const container = this.containerRef.value
|
|
396
396
|
if (container) container.style.zIndex = String(record.zIndex)
|
|
397
397
|
}),
|
|
398
398
|
),
|
|
@@ -405,10 +405,10 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
405
405
|
merge(
|
|
406
406
|
fromEvent(window, 'resize').pipe(
|
|
407
407
|
auditTime(0, animationFrameScheduler),
|
|
408
|
-
tap(() => this.
|
|
408
|
+
tap(() => this.validateBounds()),
|
|
409
409
|
),
|
|
410
410
|
theme.bottomOffset$.pipe(
|
|
411
|
-
tap(() => this.
|
|
411
|
+
tap(() => this.applyContainerPosition()),
|
|
412
412
|
),
|
|
413
413
|
).pipe(takeUntil(this.disconnecting)).subscribe()
|
|
414
414
|
}
|
|
@@ -418,15 +418,15 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
418
418
|
windowManager.unregister(this.id)
|
|
419
419
|
}
|
|
420
420
|
|
|
421
|
-
private
|
|
422
|
-
const container = this.
|
|
423
|
-
const body = this.
|
|
421
|
+
private initDOMState() {
|
|
422
|
+
const container = this.containerRef.value
|
|
423
|
+
const body = this.bodyRef.value
|
|
424
424
|
if (!container) return
|
|
425
425
|
|
|
426
|
-
this.
|
|
426
|
+
this.applyContainerPosition()
|
|
427
427
|
|
|
428
428
|
if (this.open) {
|
|
429
|
-
this.
|
|
429
|
+
this.hasOpened = true
|
|
430
430
|
container.style.overflow = ''
|
|
431
431
|
if (body) {
|
|
432
432
|
body.inert = false
|
|
@@ -446,12 +446,12 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
446
446
|
// ANIMATION
|
|
447
447
|
// ============================================
|
|
448
448
|
|
|
449
|
-
private
|
|
450
|
-
const container = this.
|
|
451
|
-
const body = this.
|
|
449
|
+
private animateOpen() {
|
|
450
|
+
const container = this.containerRef.value
|
|
451
|
+
const body = this.bodyRef.value
|
|
452
452
|
if (!container) return
|
|
453
453
|
|
|
454
|
-
this.
|
|
454
|
+
this.hasOpened = true
|
|
455
455
|
this.open = true
|
|
456
456
|
|
|
457
457
|
// Overlap avoidance
|
|
@@ -466,13 +466,13 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
466
466
|
if (overlaps.length > 0) {
|
|
467
467
|
const resolved = resolveOverlap(projectedBounds, overlaps, { width: window.innerWidth, height: window.innerHeight })
|
|
468
468
|
if (Math.abs(resolved.left - projectedBounds.left) > 10 || Math.abs(resolved.top - projectedBounds.top) > 10) {
|
|
469
|
-
const isRight = this.
|
|
470
|
-
const isBottom = this.
|
|
471
|
-
this.
|
|
469
|
+
const isRight = this.currentCorner.includes('right')
|
|
470
|
+
const isBottom = this.currentCorner.includes('bottom')
|
|
471
|
+
this.position = {
|
|
472
472
|
x: isRight ? window.innerWidth - resolved.left - resolved.width : resolved.left,
|
|
473
473
|
y: isBottom ? window.innerHeight - resolved.top - resolved.height : resolved.top,
|
|
474
474
|
}
|
|
475
|
-
this.
|
|
475
|
+
this.applyContainerPosition()
|
|
476
476
|
}
|
|
477
477
|
}
|
|
478
478
|
|
|
@@ -488,7 +488,7 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
488
488
|
return
|
|
489
489
|
}
|
|
490
490
|
|
|
491
|
-
this.
|
|
491
|
+
this.currentAnimation?.cancel()
|
|
492
492
|
container.style.overflow = 'hidden'
|
|
493
493
|
container.style.willChange = 'opacity'
|
|
494
494
|
const openKeyframes: Keyframe[] = [
|
|
@@ -500,7 +500,7 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
500
500
|
easing: SPRING_SNAPPY.easingFallback,
|
|
501
501
|
fill: 'forwards',
|
|
502
502
|
})
|
|
503
|
-
this.
|
|
503
|
+
this.currentAnimation = anim
|
|
504
504
|
|
|
505
505
|
from(anim.finished).pipe(
|
|
506
506
|
take(1),
|
|
@@ -518,21 +518,21 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
518
518
|
this.dispatchScopedEvent('window-toggle', { state: 'expanded' })
|
|
519
519
|
}
|
|
520
520
|
|
|
521
|
-
private
|
|
522
|
-
const container = this.
|
|
521
|
+
private animateClose() {
|
|
522
|
+
const container = this.containerRef.value
|
|
523
523
|
if (!container) return
|
|
524
524
|
|
|
525
525
|
if (reducedMotion$.value) {
|
|
526
526
|
container.style.clipPath = this.closedClipPath
|
|
527
527
|
container.style.overflow = 'hidden'
|
|
528
528
|
this.open = false
|
|
529
|
-
const body = this.
|
|
529
|
+
const body = this.bodyRef.value
|
|
530
530
|
if (body) { body.inert = true; body.style.visibility = 'hidden' }
|
|
531
531
|
this.dispatchScopedEvent('window-toggle', { state: 'collapsed' })
|
|
532
532
|
return
|
|
533
533
|
}
|
|
534
534
|
|
|
535
|
-
this.
|
|
535
|
+
this.currentAnimation?.cancel()
|
|
536
536
|
container.style.overflow = 'hidden'
|
|
537
537
|
container.style.willChange = 'opacity'
|
|
538
538
|
const closeKeyframes: Keyframe[] = [
|
|
@@ -544,14 +544,14 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
544
544
|
easing: 'cubic-bezier(0.4, 0, 0.8, 0.15)',
|
|
545
545
|
fill: 'forwards',
|
|
546
546
|
})
|
|
547
|
-
this.
|
|
547
|
+
this.currentAnimation = anim
|
|
548
548
|
|
|
549
549
|
from(anim.finished).pipe(
|
|
550
550
|
take(1),
|
|
551
551
|
tap(() => {
|
|
552
552
|
this.open = false
|
|
553
553
|
container.style.willChange = ''
|
|
554
|
-
const body = this.
|
|
554
|
+
const body = this.bodyRef.value
|
|
555
555
|
if (body) { body.inert = true; body.style.visibility = 'hidden' }
|
|
556
556
|
}),
|
|
557
557
|
catchError(() => EMPTY),
|
|
@@ -566,9 +566,9 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
566
566
|
// ============================================
|
|
567
567
|
|
|
568
568
|
/** Apply drag visuals directly on DOM refs — avoids full Lit re-render for cursor + opacity */
|
|
569
|
-
private
|
|
570
|
-
const head = this.
|
|
571
|
-
const container = this.
|
|
569
|
+
private applyDragVisuals(dragging: boolean) {
|
|
570
|
+
const head = this.headRef.value
|
|
571
|
+
const container = this.containerRef.value
|
|
572
572
|
if (head) {
|
|
573
573
|
head.classList.toggle('cursor-grabbing', dragging)
|
|
574
574
|
head.classList.toggle('cursor-move', !dragging)
|
|
@@ -578,9 +578,9 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
578
578
|
}
|
|
579
579
|
}
|
|
580
580
|
|
|
581
|
-
private
|
|
581
|
+
private handleFocus = () => windowManager.focus(this.id)
|
|
582
582
|
|
|
583
|
-
private
|
|
583
|
+
private handleHeadKeydown = (e: KeyboardEvent) => {
|
|
584
584
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
585
585
|
e.preventDefault()
|
|
586
586
|
this.toggle()
|
|
@@ -591,9 +591,9 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
591
591
|
const step = e.shiftKey ? 20 : 5
|
|
592
592
|
const dx = e.key === 'ArrowRight' ? step : e.key === 'ArrowLeft' ? -step : 0
|
|
593
593
|
const dy = e.key === 'ArrowDown' ? step : e.key === 'ArrowUp' ? -step : 0
|
|
594
|
-
this.
|
|
595
|
-
this.
|
|
596
|
-
this.
|
|
594
|
+
this.position = { x: this.position.x + dx, y: this.position.y + dy }
|
|
595
|
+
this.applyContainerPosition()
|
|
596
|
+
this.savePosition()
|
|
597
597
|
}
|
|
598
598
|
}
|
|
599
599
|
|
|
@@ -602,18 +602,18 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
602
602
|
// ============================================
|
|
603
603
|
|
|
604
604
|
toggle() {
|
|
605
|
-
if (this.open) this.
|
|
606
|
-
else this.
|
|
605
|
+
if (this.open) this.animateClose()
|
|
606
|
+
else this.animateOpen()
|
|
607
607
|
}
|
|
608
608
|
|
|
609
609
|
expand() {
|
|
610
610
|
if (this.open) return
|
|
611
|
-
this.
|
|
611
|
+
this.animateOpen()
|
|
612
612
|
}
|
|
613
613
|
|
|
614
614
|
close() {
|
|
615
615
|
if (!this.open) return
|
|
616
|
-
this.
|
|
616
|
+
this.animateClose()
|
|
617
617
|
}
|
|
618
618
|
|
|
619
619
|
// ============================================
|
|
@@ -621,7 +621,7 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
621
621
|
// ============================================
|
|
622
622
|
|
|
623
623
|
protected render(): unknown {
|
|
624
|
-
const isBottom = this.
|
|
624
|
+
const isBottom = this.currentCorner.startsWith('bottom')
|
|
625
625
|
|
|
626
626
|
const containerClasses = classMap({
|
|
627
627
|
fixed: true,
|
|
@@ -656,23 +656,23 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
656
656
|
|
|
657
657
|
return html`
|
|
658
658
|
<schmancy-surface
|
|
659
|
-
${ref(this.
|
|
659
|
+
${ref(this.containerRef)}
|
|
660
660
|
type="glass"
|
|
661
661
|
.elevation=${this.elevation}
|
|
662
662
|
class=${containerClasses}
|
|
663
663
|
style=${containerStyles}
|
|
664
664
|
aria-expanded=${this.open}
|
|
665
|
-
@pointerdown=${this.
|
|
665
|
+
@pointerdown=${this.handleFocus}
|
|
666
666
|
>
|
|
667
667
|
<!-- Details section (visually above summary for bottom corners) -->
|
|
668
668
|
<section
|
|
669
|
-
${ref(this.
|
|
669
|
+
${ref(this.bodyRef)}
|
|
670
670
|
class="flex-1 min-h-0 overflow-hidden flex flex-col"
|
|
671
671
|
style=${bodyStyles}
|
|
672
672
|
role="region"
|
|
673
673
|
aria-label="Expandable content"
|
|
674
674
|
>
|
|
675
|
-
${this.
|
|
675
|
+
${this.hasOpened ? html`<slot name="details"></slot>` : nothing}
|
|
676
676
|
</section>
|
|
677
677
|
|
|
678
678
|
<!-- Summary section -- always interactive, always visible -->
|
|
@@ -681,14 +681,14 @@ export default class SchmancyWindow extends SchmancyElement {
|
|
|
681
681
|
style=${styleMap({ 'pointer-events': 'auto', height: `${HEAD_HEIGHT}px` })}
|
|
682
682
|
>
|
|
683
683
|
<div
|
|
684
|
-
${ref(this.
|
|
684
|
+
${ref(this.headRef)}
|
|
685
685
|
${cursorGlow({ radius: 200, intensity: 0.10 })}
|
|
686
686
|
class=${headClasses}
|
|
687
687
|
role="button"
|
|
688
688
|
tabindex="0"
|
|
689
689
|
title="Drag to move, click to expand"
|
|
690
690
|
aria-label="${this.open ? 'Collapse window' : 'Expand window'}"
|
|
691
|
-
@keydown=${this.
|
|
691
|
+
@keydown=${this.handleHeadKeydown}
|
|
692
692
|
>
|
|
693
693
|
<div class="flex-1 min-w-0">
|
|
694
694
|
<slot></slot>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { LitElement, type CSSResultGroup, type CSSResultOrNative } from 'lit';
|
|
2
|
+
import { type SignalWatcherApi } from '@lit-labs/signals';
|
|
2
3
|
import { type IBaseMixin } from './baseElement';
|
|
3
4
|
import type { Constructor } from './constructor';
|
|
4
5
|
type StaticFinalizeStyles = {
|
|
5
6
|
finalizeStyles(styles?: CSSResultGroup): CSSResultOrNative[];
|
|
6
7
|
};
|
|
7
|
-
declare const SchmancyElementBase: CustomElementConstructor & Constructor<LitElement> & Constructor<IBaseMixin> & StaticFinalizeStyles;
|
|
8
|
+
declare const SchmancyElementBase: CustomElementConstructor & Constructor<LitElement> & Constructor<IBaseMixin> & Constructor<SignalWatcherApi> & StaticFinalizeStyles;
|
|
8
9
|
/**
|
|
9
10
|
* Base class for Schmancy components. A concrete named class — not a mixin
|
|
10
11
|
* factory — so DevTools shows `SchmancyElement` in the prototype chain and
|
|
@@ -37,7 +38,7 @@ declare const SchmancyElementBase: CustomElementConstructor & Constructor<LitEle
|
|
|
37
38
|
* (`NO_SIGNAL_WATCHER_WRAP`) blocks it as belt-and-suspenders.
|
|
38
39
|
*/
|
|
39
40
|
export declare class SchmancyElement extends SchmancyElementBase {
|
|
40
|
-
private
|
|
41
|
+
private abortController;
|
|
41
42
|
/** AbortSignal that fires when the element disconnects. */
|
|
42
43
|
readonly disconnectedSignal: AbortSignal;
|
|
43
44
|
constructor();
|
|
@@ -115,7 +115,7 @@ export interface IFormFieldMixin extends Element {
|
|
|
115
115
|
* Subclasses should not override this — extend the truth table by changing
|
|
116
116
|
* `validateOn` instead.
|
|
117
117
|
*/
|
|
118
|
-
|
|
118
|
+
shouldShowError(): boolean;
|
|
119
119
|
toFormEntries(): Array<[string, FormDataEntryValue]>;
|
|
120
120
|
resetForm(): void;
|
|
121
121
|
emitChange(detail: any): void;
|
|
@@ -80,7 +80,7 @@ declare class AreaService implements AreaSubscription {
|
|
|
80
80
|
/**
|
|
81
81
|
* Update browser history state (called by area components)
|
|
82
82
|
*/
|
|
83
|
-
|
|
83
|
+
updateBrowserHistory(areaName: string, route: ActiveRoute, historyStrategy?: string, clearQueryParams?: string[] | boolean | null, customPath?: string): void;
|
|
84
84
|
/**
|
|
85
85
|
* Create a clean URL from area states
|
|
86
86
|
*/
|
package/types/src/area/lazy.d.ts
CHANGED
|
@@ -11,12 +11,6 @@ export interface LazyComponent<T extends CustomElementConstructor = CustomElemen
|
|
|
11
11
|
default: T;
|
|
12
12
|
}>;
|
|
13
13
|
preload(): Promise<void>;
|
|
14
|
-
_promise?: Promise<{
|
|
15
|
-
default: T;
|
|
16
|
-
}>;
|
|
17
|
-
_module?: {
|
|
18
|
-
default: T;
|
|
19
|
-
};
|
|
20
14
|
}
|
|
21
15
|
/**
|
|
22
16
|
* Create a lazy-loaded component that will be imported on demand
|
|
@@ -37,14 +37,13 @@ import type { Feeling, FeelingSound, SoundTheme } from '../types/mood-audio.type
|
|
|
37
37
|
* - Persists settings to session storage
|
|
38
38
|
*/
|
|
39
39
|
declare class SoundService {
|
|
40
|
+
#private;
|
|
40
41
|
private static instance;
|
|
41
42
|
/** Audio context for Web Audio API */
|
|
42
43
|
private audioContext;
|
|
43
44
|
readonly theme$: import("rxjs").Observable<SoundTheme>;
|
|
44
45
|
readonly volume$: import("rxjs").Observable<number>;
|
|
45
46
|
readonly muted$: import("rxjs").Observable<boolean>;
|
|
46
|
-
/** BehaviorSubject for current theme name (for debugging/display) */
|
|
47
|
-
private readonly _themeName$;
|
|
48
47
|
readonly themeName$: import("rxjs").Observable<string>;
|
|
49
48
|
get theme(): SoundTheme | null;
|
|
50
49
|
get volume(): number;
|
|
@@ -13,7 +13,7 @@ export declare class SchmancyBreadcrumb extends SchmancyElement {
|
|
|
13
13
|
separator: string;
|
|
14
14
|
connectedCallback(): void;
|
|
15
15
|
render(): import("lit-html").TemplateResult<1>;
|
|
16
|
-
private
|
|
16
|
+
private insertSeparators;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Individual breadcrumb item. Renders as a link when `href` is provided,
|
|
@@ -15,6 +15,7 @@ export type ButtonColor = 'primary' | 'secondary' | 'success' | 'error' | 'warni
|
|
|
15
15
|
* @csspart base - The underlying native `<button>` (or `<a>` when `href` is set).
|
|
16
16
|
*/
|
|
17
17
|
export declare class SchmancyButton extends SchmancyElement {
|
|
18
|
+
#private;
|
|
18
19
|
static styles: import("lit").CSSResult[];
|
|
19
20
|
protected static shadowRootOptions: {
|
|
20
21
|
mode: string;
|
|
@@ -32,7 +33,7 @@ export declare class SchmancyButton extends SchmancyElement {
|
|
|
32
33
|
* while a submit is in flight. Stays focusable; disabled buttons drop from
|
|
33
34
|
* the tab order and are unreachable to AT (WCAG 2.2 AA).
|
|
34
35
|
*/
|
|
35
|
-
private
|
|
36
|
+
private formBusyObserver?;
|
|
36
37
|
constructor();
|
|
37
38
|
/** Associated form, when placed inside a <form>. */
|
|
38
39
|
get form(): HTMLFormElement | null;
|
|
@@ -40,7 +41,6 @@ export declare class SchmancyButton extends SchmancyElement {
|
|
|
40
41
|
connectedCallback(): void;
|
|
41
42
|
disconnectedCallback(): void;
|
|
42
43
|
private nativeElement;
|
|
43
|
-
private _ariaLabel;
|
|
44
44
|
/**
|
|
45
45
|
* The variant of the button.
|
|
46
46
|
* @attr
|
|
@@ -106,7 +106,7 @@ export declare class SchmancyButton extends SchmancyElement {
|
|
|
106
106
|
protected get imgClasses(): string[];
|
|
107
107
|
firstUpdated(): void;
|
|
108
108
|
click(): void;
|
|
109
|
-
private
|
|
109
|
+
private preventDefault;
|
|
110
110
|
render(): import("lit-html").TemplateResult<1>;
|
|
111
111
|
}
|
|
112
112
|
declare global {
|