@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
|
@@ -101,13 +101,13 @@ export class SchmancyNavigationRail extends SchmancyElement {
|
|
|
101
101
|
*/
|
|
102
102
|
@property({ type: String })
|
|
103
103
|
get activeValue() {
|
|
104
|
-
return this
|
|
104
|
+
return this.#activeValue
|
|
105
105
|
}
|
|
106
106
|
set activeValue(value: string) {
|
|
107
|
-
this
|
|
107
|
+
this.#activeValue = value
|
|
108
108
|
this.updateActiveByValue(value)
|
|
109
109
|
}
|
|
110
|
-
|
|
110
|
+
#activeValue = ''
|
|
111
111
|
|
|
112
112
|
/**
|
|
113
113
|
* When to show labels for navigation items
|
|
@@ -164,7 +164,7 @@ export class SchmancyNavigationRail extends SchmancyElement {
|
|
|
164
164
|
* When empty, the nav falls back to the M3 default: `flex flex-col gap-3`.
|
|
165
165
|
*/
|
|
166
166
|
@state()
|
|
167
|
-
private
|
|
167
|
+
private hostLayoutClasses = ''
|
|
168
168
|
|
|
169
169
|
// Queries
|
|
170
170
|
|
|
@@ -217,7 +217,7 @@ export class SchmancyNavigationRail extends SchmancyElement {
|
|
|
217
217
|
return () => mo.disconnect()
|
|
218
218
|
}).pipe(
|
|
219
219
|
distinctUntilChanged(),
|
|
220
|
-
tap(layoutClasses => { this.
|
|
220
|
+
tap(layoutClasses => { this.hostLayoutClasses = layoutClasses }),
|
|
221
221
|
takeUntil(this.disconnecting),
|
|
222
222
|
).subscribe()
|
|
223
223
|
|
|
@@ -257,7 +257,7 @@ export class SchmancyNavigationRail extends SchmancyElement {
|
|
|
257
257
|
|
|
258
258
|
// Update activeValue when index changes
|
|
259
259
|
if (isActive) {
|
|
260
|
-
this
|
|
260
|
+
this.#activeValue = item.value || item.label || ''
|
|
261
261
|
}
|
|
262
262
|
})
|
|
263
263
|
}
|
|
@@ -409,7 +409,7 @@ export class SchmancyNavigationRail extends SchmancyElement {
|
|
|
409
409
|
protected render() {
|
|
410
410
|
// Host-level classes for the navigation rail (width, visibility, z-index).
|
|
411
411
|
// Layout utilities the author placed on the host are NOT included here —
|
|
412
|
-
// they are forwarded to the inner <nav> via
|
|
412
|
+
// they are forwarded to the inner <nav> via hostLayoutClasses instead.
|
|
413
413
|
const hostClasses = this.classMap({
|
|
414
414
|
// Layout & Structure - Fixed width to prevent layout shift
|
|
415
415
|
'flex flex-col': true,
|
|
@@ -468,9 +468,9 @@ export class SchmancyNavigationRail extends SchmancyElement {
|
|
|
468
468
|
// after re-slotting through <schmancy-scroll>. Layout utilities forwarded from the
|
|
469
469
|
// host land here so that `grid gap-2` (or any other layout) actually shapes items.
|
|
470
470
|
// When the host carries no layout classes, default to M3 flex-column + alignment.
|
|
471
|
-
const hasHostLayout = this.
|
|
471
|
+
const hasHostLayout = this.hostLayoutClasses.length > 0
|
|
472
472
|
const itemsContainerClasses = hasHostLayout
|
|
473
|
-
? this.
|
|
473
|
+
? this.hostLayoutClasses
|
|
474
474
|
: this.classMap({
|
|
475
475
|
'flex flex-col gap-3': true,
|
|
476
476
|
'justify-start': this.alignment === 'top',
|
|
@@ -519,7 +519,7 @@ export class SchmancyNavigationRail extends SchmancyElement {
|
|
|
519
519
|
const itemIndex = this.navigationItems.findIndex(item => item.value === value || item.label === value)
|
|
520
520
|
if (itemIndex >= 0) {
|
|
521
521
|
this.activeIndex = itemIndex
|
|
522
|
-
this
|
|
522
|
+
this.#activeValue = value
|
|
523
523
|
}
|
|
524
524
|
}
|
|
525
525
|
})
|
|
@@ -26,10 +26,10 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
26
26
|
// startPosition retained for API compatibility — not used in entrance animation
|
|
27
27
|
@property({ type: Object }) startPosition: { x: number; y: number } = { x: 0, y: 0 }
|
|
28
28
|
|
|
29
|
-
@state() private
|
|
30
|
-
@state() private
|
|
31
|
-
@state() private
|
|
32
|
-
@state() private
|
|
29
|
+
@state() private visible = true
|
|
30
|
+
@state() private progress = 100
|
|
31
|
+
@state() private hovered = false
|
|
32
|
+
@state() private closing = false
|
|
33
33
|
|
|
34
34
|
private paused$ = new BehaviorSubject<boolean>(false)
|
|
35
35
|
private startTime = 0
|
|
@@ -56,7 +56,7 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
if (this.playSound) {
|
|
59
|
-
this
|
|
59
|
+
this.#playSound()
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -113,7 +113,7 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
113
113
|
switchMap(() =>
|
|
114
114
|
this.paused$.pipe(
|
|
115
115
|
map(paused => {
|
|
116
|
-
if (paused) return this.
|
|
116
|
+
if (paused) return this.progress
|
|
117
117
|
const elapsed = this.elapsedBeforePause + (Date.now() - this.startTime)
|
|
118
118
|
const remaining = Math.max(0, this.duration - elapsed)
|
|
119
119
|
return (remaining / this.duration) * 100
|
|
@@ -122,14 +122,14 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
122
122
|
),
|
|
123
123
|
distinctUntilChanged(),
|
|
124
124
|
tap(progress => {
|
|
125
|
-
this.
|
|
125
|
+
this.progress = progress
|
|
126
126
|
}),
|
|
127
127
|
takeUntil(this.disconnecting),
|
|
128
128
|
)
|
|
129
129
|
.subscribe()
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
#playSound() {
|
|
133
133
|
this.dispatchEvent(
|
|
134
134
|
new CustomEvent('playsound', {
|
|
135
135
|
detail: { type: this.type },
|
|
@@ -139,20 +139,20 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
139
139
|
)
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
private
|
|
143
|
-
this.
|
|
142
|
+
private handleMouseEnter() {
|
|
143
|
+
this.hovered = true
|
|
144
144
|
this.paused$.next(true)
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
private
|
|
148
|
-
this.
|
|
147
|
+
private handleMouseLeave() {
|
|
148
|
+
this.hovered = false
|
|
149
149
|
this.paused$.next(false)
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
public async close() {
|
|
153
|
-
if (this.
|
|
154
|
-
this.
|
|
155
|
-
this.
|
|
153
|
+
if (this.closing) return
|
|
154
|
+
this.closing = true
|
|
155
|
+
this.visible = false
|
|
156
156
|
|
|
157
157
|
await this.animate(
|
|
158
158
|
[
|
|
@@ -175,7 +175,7 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
175
175
|
)
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
private
|
|
178
|
+
private getTypeLabel(): string {
|
|
179
179
|
switch (this.type) {
|
|
180
180
|
case 'success':
|
|
181
181
|
return 'SUCCESS'
|
|
@@ -189,26 +189,26 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
render() {
|
|
192
|
-
if (!this.
|
|
192
|
+
if (!this.visible && this.closing) return html``
|
|
193
193
|
|
|
194
194
|
return html`
|
|
195
195
|
<div
|
|
196
|
-
class="notification ${this.type} ${this.
|
|
196
|
+
class="notification ${this.type} ${this.closing ? 'closing' : ''} ${this.hovered ? 'hovered' : ''}"
|
|
197
197
|
role="alert"
|
|
198
|
-
@mouseenter=${this.
|
|
199
|
-
@mouseleave=${this.
|
|
198
|
+
@mouseenter=${this.handleMouseEnter}
|
|
199
|
+
@mouseleave=${this.handleMouseLeave}
|
|
200
200
|
>
|
|
201
201
|
${this.showProgress || this.duration > 0
|
|
202
202
|
? html`<schmancy-progress
|
|
203
203
|
class="progress"
|
|
204
204
|
size="xs"
|
|
205
|
-
.value=${this.
|
|
205
|
+
.value=${this.progress}
|
|
206
206
|
?indeterminate=${this.showProgress && this.duration === 0}
|
|
207
207
|
></schmancy-progress>`
|
|
208
208
|
: ''}
|
|
209
209
|
<div class="accent-rail"></div>
|
|
210
210
|
<div class="content">
|
|
211
|
-
<span class="type-tag">${this.
|
|
211
|
+
<span class="type-tag">${this.getTypeLabel()}</span>
|
|
212
212
|
${this.title ? html`<div class="title">${this.title}</div>` : ''}
|
|
213
213
|
<div class="message">${this.message}</div>
|
|
214
214
|
</div>
|
|
@@ -118,29 +118,30 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
118
118
|
@property({ type: Boolean, reflect: true }) modal = true
|
|
119
119
|
@property({ type: String, reflect: true }) tier: OverlayTier = 'modal'
|
|
120
120
|
|
|
121
|
-
@state() private
|
|
122
|
-
@state() private
|
|
121
|
+
@state() private active = false
|
|
122
|
+
@state() private full = false
|
|
123
123
|
|
|
124
|
-
@query('.backdrop') private
|
|
125
|
-
@query('.surface') private
|
|
126
|
-
@query('.shell') private
|
|
124
|
+
@query('.backdrop') private backdrop?: HTMLDivElement
|
|
125
|
+
@query('.surface') private surface!: HTMLElement
|
|
126
|
+
@query('.shell') private shell?: HTMLElement
|
|
127
127
|
|
|
128
128
|
/** Close trigger for the service; emits the reason + detail payload. */
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
private
|
|
132
|
-
private
|
|
133
|
-
private
|
|
134
|
-
private
|
|
135
|
-
private
|
|
136
|
-
private
|
|
137
|
-
private
|
|
138
|
-
private
|
|
139
|
-
private
|
|
129
|
+
readonly #closed$ = new Subject<{ reason: CloseReason; result?: unknown }>()
|
|
130
|
+
|
|
131
|
+
private mounted = false
|
|
132
|
+
private closing = false
|
|
133
|
+
private resolvedAnchor?: ResolvedAnchor
|
|
134
|
+
private rawAnchor?: Anchor
|
|
135
|
+
private anchorOriginAnchor?: Anchor
|
|
136
|
+
private positionerTeardown?: () => void
|
|
137
|
+
private factoryEffectDispose?: () => void
|
|
138
|
+
private lastFocusedElement: HTMLElement | null = null
|
|
139
|
+
private inertedSiblings: HTMLElement[] = []
|
|
140
|
+
private lastReResolveAt = 0
|
|
140
141
|
|
|
141
142
|
/** Service subscribes to this to know when the overlay dismissed. */
|
|
142
143
|
get closed$(): import('rxjs').Observable<{ reason: CloseReason; result?: unknown }> {
|
|
143
|
-
return this
|
|
144
|
+
return this.#closed$.asObservable()
|
|
144
145
|
}
|
|
145
146
|
|
|
146
147
|
/**
|
|
@@ -149,23 +150,34 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
149
150
|
* animation completes.
|
|
150
151
|
*/
|
|
151
152
|
async open(content: Content, options: ShowOptions): Promise<void> {
|
|
152
|
-
if (this.
|
|
153
|
-
this.
|
|
153
|
+
if (this.mounted) throw new Error('schmancy-overlay: open() called twice on the same element')
|
|
154
|
+
this.mounted = true
|
|
154
155
|
|
|
155
156
|
this.dismissable = options.dismissable !== false
|
|
156
|
-
this.
|
|
157
|
-
this.
|
|
158
|
-
this.
|
|
159
|
-
this.
|
|
157
|
+
this.full = options.full ?? false
|
|
158
|
+
this.rawAnchor = options.anchor
|
|
159
|
+
this.anchorOriginAnchor = options.anchor
|
|
160
|
+
this.resolvedAnchor = resolveAnchorRef(options.anchor)
|
|
160
161
|
|
|
161
162
|
// Ensure the shell is rendered so the mount point exists.
|
|
162
|
-
this.
|
|
163
|
+
this.active = true
|
|
163
164
|
this.setAttribute('active', '')
|
|
164
165
|
await this.updateComplete
|
|
165
166
|
|
|
166
167
|
const mount = this.renderRoot.querySelector(`#${MOUNT_POINT_ID}`) as HTMLElement | null
|
|
167
168
|
if (!mount) throw new Error('schmancy-overlay: mount point missing')
|
|
168
|
-
|
|
169
|
+
if (isTemplateFactory(content)) {
|
|
170
|
+
// Factory content is reactive: re-run litRender whenever a signal the
|
|
171
|
+
// factory reads changes. The overlay IS a SignalWatcher (SchmancyElement),
|
|
172
|
+
// so its own effect loop owns tracking + scheduling + teardown. Content
|
|
173
|
+
// stays in the light-DOM mount point — no shadow boundary, every event /
|
|
174
|
+
// focus / ResizeObserver contract preserved.
|
|
175
|
+
this.factoryEffectDispose = this.updateEffect(() => litRender(content(), mount), {
|
|
176
|
+
manualDispose: true,
|
|
177
|
+
})
|
|
178
|
+
} else {
|
|
179
|
+
await mountContent(content, mount, options.props)
|
|
180
|
+
}
|
|
169
181
|
|
|
170
182
|
// Caller-forced layout (`as`) wins; otherwise resolver decides from anchor.
|
|
171
183
|
this.layout = options.as ?? resolveLayout({ anchor: options.anchor })
|
|
@@ -178,8 +190,8 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
178
190
|
// ladder. `modal: true` on an anchored layout stays modal.
|
|
179
191
|
this.tier = this.modal
|
|
180
192
|
? 'modal'
|
|
181
|
-
: this.
|
|
182
|
-
? pickPositioner(this.
|
|
193
|
+
: this.resolvedAnchor
|
|
194
|
+
? pickPositioner(this.resolvedAnchor)
|
|
183
195
|
: 'modal'
|
|
184
196
|
|
|
185
197
|
await this.updateComplete
|
|
@@ -187,41 +199,41 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
187
199
|
// Apply tier-specific positioning. For 'modal' the CSS data-layout
|
|
188
200
|
// attribute + :host styles already place the surface; nothing to do.
|
|
189
201
|
// For anchored tiers we delegate to the positioning module.
|
|
190
|
-
if (this.tier === 'css-anchor' && this.
|
|
191
|
-
this.
|
|
202
|
+
if (this.tier === 'css-anchor' && this.resolvedAnchor?.el && this.shadowRoot) {
|
|
203
|
+
this.positionerTeardown = positionCSSAnchor(this.surface, this.resolvedAnchor, this.shadowRoot, {
|
|
192
204
|
id: `ov-${Math.random().toString(36).slice(2, 10)}`,
|
|
193
205
|
placement: options.preferredPlacement ?? 'bottom-start',
|
|
194
206
|
})
|
|
195
207
|
// Pair with Popover API to get native top-layer + light-dismiss.
|
|
196
|
-
const popoverCleanup = positionPopoverAPI(this.
|
|
197
|
-
const cssAnchorTeardown = this.
|
|
198
|
-
this.
|
|
208
|
+
const popoverCleanup = positionPopoverAPI(this.surface)
|
|
209
|
+
const cssAnchorTeardown = this.positionerTeardown
|
|
210
|
+
this.positionerTeardown = () => {
|
|
199
211
|
popoverCleanup()
|
|
200
212
|
cssAnchorTeardown?.()
|
|
201
213
|
}
|
|
202
|
-
} else if (this.tier === 'popover-fui' && this.
|
|
203
|
-
const popoverCleanup = positionPopoverAPI(this.
|
|
204
|
-
const floatSub = positionFloatingUI(this.
|
|
214
|
+
} else if (this.tier === 'popover-fui' && this.resolvedAnchor) {
|
|
215
|
+
const popoverCleanup = positionPopoverAPI(this.surface)
|
|
216
|
+
const floatSub = positionFloatingUI(this.surface, this.resolvedAnchor, {
|
|
205
217
|
placement: options.preferredPlacement ?? 'bottom-start',
|
|
206
218
|
offsetPx: 8,
|
|
207
219
|
track: options.track !== false,
|
|
208
220
|
})
|
|
209
221
|
.pipe(takeUntil(this.disconnecting))
|
|
210
222
|
.subscribe()
|
|
211
|
-
this.
|
|
223
|
+
this.positionerTeardown = () => {
|
|
212
224
|
popoverCleanup()
|
|
213
225
|
floatSub.unsubscribe()
|
|
214
226
|
}
|
|
215
|
-
} else if (this.tier === 'fui-only' && this.
|
|
216
|
-
const floatSub = positionFloatingUI(this.
|
|
227
|
+
} else if (this.tier === 'fui-only' && this.resolvedAnchor) {
|
|
228
|
+
const floatSub = positionFloatingUI(this.surface, this.resolvedAnchor, {
|
|
217
229
|
placement: options.preferredPlacement ?? 'bottom-start',
|
|
218
230
|
offsetPx: 8,
|
|
219
231
|
track: options.track !== false,
|
|
220
232
|
})
|
|
221
233
|
.pipe(takeUntil(this.disconnecting))
|
|
222
234
|
.subscribe()
|
|
223
|
-
this.
|
|
224
|
-
} else if (this.tier === 'modal' && this.
|
|
235
|
+
this.positionerTeardown = () => floatSub.unsubscribe()
|
|
236
|
+
} else if (this.tier === 'modal' && this.shell) {
|
|
225
237
|
// Promote the whole modal shell (scrim + surface) into the native
|
|
226
238
|
// top layer — the same domain anchored tiers already use. The top
|
|
227
239
|
// layer paints strictly in show() order, so a sheet opened from
|
|
@@ -229,7 +241,7 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
229
241
|
// (and recedes behind anything opened after it). Degrade silently
|
|
230
242
|
// to the legacy z-index host on browsers without the Popover API.
|
|
231
243
|
try {
|
|
232
|
-
this.
|
|
244
|
+
this.positionerTeardown = positionPopoverAPI(this.shell)
|
|
233
245
|
} catch {
|
|
234
246
|
// no Popover API support — keep the host z-index:10000 path.
|
|
235
247
|
}
|
|
@@ -253,39 +265,47 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
253
265
|
|
|
254
266
|
/** Play exit animations then dismiss. */
|
|
255
267
|
async close(reason: CloseReason, result?: unknown): Promise<void> {
|
|
256
|
-
if (this.
|
|
257
|
-
this.
|
|
268
|
+
if (this.closing || !this.mounted) return
|
|
269
|
+
this.closing = true
|
|
258
270
|
try {
|
|
259
271
|
await this.playAnimations('out')
|
|
260
272
|
} catch {
|
|
261
273
|
// animation cancelled mid-flight — not an error.
|
|
262
274
|
}
|
|
263
275
|
this.releaseFocusTrap()
|
|
264
|
-
if (this.
|
|
276
|
+
if (this.factoryEffectDispose) {
|
|
265
277
|
try {
|
|
266
|
-
this.
|
|
278
|
+
this.factoryEffectDispose()
|
|
267
279
|
} catch {
|
|
268
280
|
// cleanup shouldn't throw; ignore anything that does.
|
|
269
281
|
}
|
|
270
|
-
this.
|
|
282
|
+
this.factoryEffectDispose = undefined
|
|
271
283
|
}
|
|
272
|
-
this.
|
|
284
|
+
if (this.positionerTeardown) {
|
|
285
|
+
try {
|
|
286
|
+
this.positionerTeardown()
|
|
287
|
+
} catch {
|
|
288
|
+
// cleanup shouldn't throw; ignore anything that does.
|
|
289
|
+
}
|
|
290
|
+
this.positionerTeardown = undefined
|
|
291
|
+
}
|
|
292
|
+
this.active = false
|
|
273
293
|
this.removeAttribute('active')
|
|
274
|
-
this
|
|
275
|
-
this
|
|
294
|
+
this.#closed$.next({ reason, result })
|
|
295
|
+
this.#closed$.complete()
|
|
276
296
|
}
|
|
277
297
|
|
|
278
298
|
/* ---------------- render ------------------------------------------- */
|
|
279
299
|
|
|
280
300
|
protected render(): TemplateResult {
|
|
281
|
-
if (!this.
|
|
301
|
+
if (!this.active) return html``
|
|
282
302
|
const baseClasses =
|
|
283
303
|
'surface fixed pointer-events-auto ' +
|
|
284
304
|
'bg-surface-container/85 text-surface-on backdrop-blur-md ' +
|
|
285
305
|
'border border-surface-on/8'
|
|
286
306
|
const layoutClasses =
|
|
287
307
|
this.layout === 'sheet'
|
|
288
|
-
? this.
|
|
308
|
+
? this.full
|
|
289
309
|
? 'left-0 right-0 bottom-0 w-full h-[90dvh] rounded-t-[28px] shadow-overlay flex flex-col overflow-hidden'
|
|
290
310
|
: 'left-0 right-0 bottom-0 w-full max-h-[90dvh] rounded-t-[28px] shadow-overlay overflow-auto'
|
|
291
311
|
: 'max-w-[min(480px,calc(100vw-2rem))] max-h-[90dvh] rounded-3xl shadow-overlay-anchored overflow-auto'
|
|
@@ -304,7 +324,7 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
304
324
|
aria-modal=${this.modal ? 'true' : 'false'}
|
|
305
325
|
tabindex="-1"
|
|
306
326
|
>
|
|
307
|
-
<div id=${MOUNT_POINT_ID} class=${this.layout === 'sheet' && this.
|
|
327
|
+
<div id=${MOUNT_POINT_ID} class=${this.layout === 'sheet' && this.full ? 'flex-1 min-h-0 overflow-hidden' : ''}></div>
|
|
308
328
|
</section>
|
|
309
329
|
</div>
|
|
310
330
|
`
|
|
@@ -317,13 +337,13 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
317
337
|
/* ---------------- anchor-origin bloom ------------------------------ */
|
|
318
338
|
|
|
319
339
|
private setAnchorOriginVars(): void {
|
|
320
|
-
const surface = this.
|
|
340
|
+
const surface = this.surface
|
|
321
341
|
if (!surface) return
|
|
322
342
|
const rect = surface.getBoundingClientRect()
|
|
323
343
|
const vars =
|
|
324
|
-
this.layout === 'sheet' && !this.
|
|
344
|
+
this.layout === 'sheet' && !this.anchorOriginAnchor
|
|
325
345
|
? { '--schmancy-overlay-origin-x': '50%', '--schmancy-overlay-origin-y': '100%' }
|
|
326
|
-
: anchorOriginVars(this.
|
|
346
|
+
: anchorOriginVars(this.anchorOriginAnchor, rect)
|
|
327
347
|
for (const [k, v] of Object.entries(vars)) {
|
|
328
348
|
surface.style.setProperty(k, v)
|
|
329
349
|
}
|
|
@@ -333,35 +353,35 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
333
353
|
|
|
334
354
|
private wireFocusTrap(): void {
|
|
335
355
|
if (!this.modal) return
|
|
336
|
-
this.
|
|
356
|
+
this.lastFocusedElement = (document.activeElement as HTMLElement) ?? null
|
|
337
357
|
const parent = this.parentElement
|
|
338
358
|
if (parent) {
|
|
339
|
-
this.
|
|
359
|
+
this.inertedSiblings = []
|
|
340
360
|
for (const child of Array.from(parent.children)) {
|
|
341
361
|
if (child !== this && child instanceof HTMLElement && !child.inert) {
|
|
342
362
|
child.inert = true
|
|
343
|
-
this.
|
|
363
|
+
this.inertedSiblings.push(child)
|
|
344
364
|
}
|
|
345
365
|
}
|
|
346
366
|
}
|
|
347
367
|
// Focus the surface or the first [autofocus] child.
|
|
348
368
|
queueMicrotask(() => {
|
|
349
|
-
const auto = this.
|
|
350
|
-
;(auto ?? this.
|
|
369
|
+
const auto = this.surface?.querySelector<HTMLElement>('[autofocus]')
|
|
370
|
+
;(auto ?? this.surface)?.focus()
|
|
351
371
|
})
|
|
352
372
|
}
|
|
353
373
|
|
|
354
374
|
private releaseFocusTrap(): void {
|
|
355
|
-
for (const el of this.
|
|
375
|
+
for (const el of this.inertedSiblings) {
|
|
356
376
|
el.inert = false
|
|
357
377
|
}
|
|
358
|
-
this.
|
|
378
|
+
this.inertedSiblings = []
|
|
359
379
|
try {
|
|
360
|
-
this.
|
|
380
|
+
this.lastFocusedElement?.focus?.()
|
|
361
381
|
} catch {
|
|
362
382
|
// trigger may be detached now; no-op.
|
|
363
383
|
}
|
|
364
|
-
this.
|
|
384
|
+
this.lastFocusedElement = null
|
|
365
385
|
}
|
|
366
386
|
|
|
367
387
|
/* ---------------- close triggers ----------------------------------- */
|
|
@@ -423,8 +443,8 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
423
443
|
filter((e) => {
|
|
424
444
|
if (!this.dismissable) return false
|
|
425
445
|
const path = e.composedPath()
|
|
426
|
-
if (this.
|
|
427
|
-
if (this.
|
|
446
|
+
if (this.surface && path.includes(this.surface)) return false
|
|
447
|
+
if (this.resolvedAnchor?.el && path.includes(this.resolvedAnchor.el)) return false
|
|
428
448
|
// Suppress dismiss when the click lands inside any overlay that sits
|
|
429
449
|
// ABOVE this one in the stack (nested overlays sibling-appended to
|
|
430
450
|
// body). Read the stack fresh per pointerdown — it mutates as overlays
|
|
@@ -450,7 +470,7 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
450
470
|
// DRAG_START_TOP_PX in overlay.gestures). Escape + backdrop click
|
|
451
471
|
// cover the other dismiss paths via the modal-tier listeners above.
|
|
452
472
|
const swipe$ = this.layout === 'sheet' && this.dismissable
|
|
453
|
-
? swipeToDismiss$({ surface: this.
|
|
473
|
+
? swipeToDismiss$({ surface: this.surface, until$: merge(until, this.#closed$) }).pipe(
|
|
454
474
|
take(1),
|
|
455
475
|
map(() => ({ reason: 'swipe' as CloseReason })),
|
|
456
476
|
)
|
|
@@ -490,25 +510,25 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
490
510
|
filter((v): v is { w: number; h: number } => v !== null),
|
|
491
511
|
distinctUntilChanged((a, b) => a.w === b.w && a.h === b.h),
|
|
492
512
|
debounceTime(80),
|
|
493
|
-
takeUntil(merge(this.disconnecting, this
|
|
513
|
+
takeUntil(merge(this.disconnecting, this.#closed$)),
|
|
494
514
|
)
|
|
495
|
-
.subscribe((
|
|
515
|
+
.subscribe(() => this.maybeReResolve())
|
|
496
516
|
}
|
|
497
517
|
|
|
498
|
-
private async maybeReResolve(
|
|
499
|
-
if (this.
|
|
500
|
-
const next = resolveLayout({ anchor: this.
|
|
518
|
+
private async maybeReResolve(): Promise<void> {
|
|
519
|
+
if (this.closing) return
|
|
520
|
+
const next = resolveLayout({ anchor: this.rawAnchor })
|
|
501
521
|
if (next === this.layout) return
|
|
502
522
|
// Cooldown: prevent churn-driven bouncing.
|
|
503
523
|
const now = performance.now()
|
|
504
|
-
if (now - this.
|
|
524
|
+
if (now - this.lastReResolveAt < RE_RESOLVE_COOLDOWN_MS) return
|
|
505
525
|
// Upward-only ratchet: centered → sheet on content-grow is OK,
|
|
506
526
|
// sheet → centered on content-shrink is ignored.
|
|
507
527
|
if (!isUpwardTransition(this.layout, next)) return
|
|
508
528
|
|
|
509
529
|
// FLIP: capture `before` rect, apply new layout, capture `after`,
|
|
510
530
|
// animate the inverse transform.
|
|
511
|
-
const surface = this.
|
|
531
|
+
const surface = this.surface
|
|
512
532
|
const before = surface.getBoundingClientRect()
|
|
513
533
|
this.layout = next
|
|
514
534
|
await this.updateComplete
|
|
@@ -519,19 +539,19 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
519
539
|
} catch {
|
|
520
540
|
// cancelled — not an error.
|
|
521
541
|
}
|
|
522
|
-
this.
|
|
542
|
+
this.lastReResolveAt = performance.now()
|
|
523
543
|
}
|
|
524
544
|
|
|
525
545
|
/* ---------------- animations --------------------------------------- */
|
|
526
546
|
|
|
527
547
|
private async playAnimations(direction: 'in' | 'out'): Promise<void> {
|
|
528
|
-
const surface = this.
|
|
548
|
+
const surface = this.surface
|
|
529
549
|
if (!surface) return
|
|
530
550
|
const spec = surfaceAnimation(this.layout, direction)
|
|
531
551
|
const tasks: Promise<unknown>[] = [
|
|
532
552
|
surface.animate(spec.keyframes, spec.options).finished.catch(() => undefined),
|
|
533
553
|
]
|
|
534
|
-
const backdrop = this.
|
|
554
|
+
const backdrop = this.backdrop
|
|
535
555
|
if (this.modal && backdrop) {
|
|
536
556
|
tasks.push(
|
|
537
557
|
backdrop
|
|
@@ -561,11 +581,6 @@ async function mountContent(
|
|
|
561
581
|
host: HTMLElement,
|
|
562
582
|
props?: Record<string, unknown>,
|
|
563
583
|
): Promise<HTMLElement> {
|
|
564
|
-
// TemplateFactory — call at mount time so closed-over variables are read lazily.
|
|
565
|
-
if (isTemplateFactory(content)) {
|
|
566
|
-
return mountContent(content(), host, props)
|
|
567
|
-
}
|
|
568
|
-
|
|
569
584
|
// TemplateResult — render via lit's `render`.
|
|
570
585
|
if (isTemplateResult(content)) {
|
|
571
586
|
litRender(content, host)
|
|
@@ -580,11 +595,19 @@ async function mountContent(
|
|
|
580
595
|
}
|
|
581
596
|
|
|
582
597
|
// LazyComponent — await the module, recurse with the default export.
|
|
598
|
+
// Must precede the TemplateFactory check: a lazy loader is an arrow
|
|
599
|
+
// function with no `prototype`, so isTemplateFactory would match it
|
|
600
|
+
// first and call it as a factory.
|
|
583
601
|
if (isLazy(content)) {
|
|
584
602
|
const mod = await content()
|
|
585
603
|
return mountContent(mod.default, host, props)
|
|
586
604
|
}
|
|
587
605
|
|
|
606
|
+
// TemplateFactory — call at mount time so closed-over variables are read lazily.
|
|
607
|
+
if (isTemplateFactory(content)) {
|
|
608
|
+
return mountContent(content(), host, props)
|
|
609
|
+
}
|
|
610
|
+
|
|
588
611
|
// Class constructor.
|
|
589
612
|
if (typeof content === 'function') {
|
|
590
613
|
const Ctor = content as unknown as { new (): HTMLElement }
|
|
@@ -614,7 +637,7 @@ function isTemplateResult(x: unknown): x is TemplateResult {
|
|
|
614
637
|
}
|
|
615
638
|
|
|
616
639
|
function isLazy(x: unknown): x is LazyComponent {
|
|
617
|
-
return typeof x === 'function' &&
|
|
640
|
+
return typeof x === 'function' && 'preload' in (x as object)
|
|
618
641
|
}
|
|
619
642
|
|
|
620
643
|
function isUpwardTransition(from: OverlayLayout, to: OverlayLayout): boolean {
|
|
@@ -60,11 +60,11 @@ export class SchmancyOverlayPromptBody extends SchmancyElement {
|
|
|
60
60
|
@property({ type: String }) pattern?: string
|
|
61
61
|
@property({ type: Boolean }) required = false
|
|
62
62
|
|
|
63
|
-
@query('schmancy-input') private
|
|
63
|
+
@query('schmancy-input') private schmancyInput?: SchmancyInput
|
|
64
64
|
|
|
65
65
|
override firstUpdated(): void {
|
|
66
66
|
if (this.mode === 'prompt') {
|
|
67
|
-
this.
|
|
67
|
+
this.schmancyInput?.focus()
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
@@ -84,8 +84,8 @@ export class SchmancyOverlayPromptBody extends SchmancyElement {
|
|
|
84
84
|
|
|
85
85
|
private handleConfirm = (): void => {
|
|
86
86
|
if (this.mode === 'prompt') {
|
|
87
|
-
if (this.
|
|
88
|
-
this.dismiss(this.
|
|
87
|
+
if (this.schmancyInput && !this.schmancyInput.reportValidity()) return
|
|
88
|
+
this.dismiss(this.schmancyInput?.value ?? '')
|
|
89
89
|
} else {
|
|
90
90
|
this.dismiss(true)
|
|
91
91
|
}
|
|
@@ -176,10 +176,10 @@ export function show<T = void>(
|
|
|
176
176
|
|
|
177
177
|
const strategy: THistoryStrategy = resolvedOptions.historyStrategy ?? 'push'
|
|
178
178
|
if (strategy === 'push') {
|
|
179
|
-
history.pushState({
|
|
179
|
+
history.pushState({ schmancyOverlayId: id }, '', location.href)
|
|
180
180
|
state.historyPushed = true
|
|
181
181
|
} else if (strategy === 'replace') {
|
|
182
|
-
history.replaceState({
|
|
182
|
+
history.replaceState({ schmancyOverlayId: id }, '', location.href)
|
|
183
183
|
}
|
|
184
184
|
}),
|
|
185
185
|
)
|
|
@@ -214,7 +214,7 @@ export function show<T = void>(
|
|
|
214
214
|
if (
|
|
215
215
|
state.historyPushed &&
|
|
216
216
|
!state.settled &&
|
|
217
|
-
history.state?.
|
|
217
|
+
history.state?.schmancyOverlayId === id
|
|
218
218
|
) {
|
|
219
219
|
history.back()
|
|
220
220
|
}
|
|
@@ -3,8 +3,10 @@ import type { Observable } from 'rxjs'
|
|
|
3
3
|
import type { ComponentType, THistoryStrategy } from '../area/router.types'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Sync factory
|
|
7
|
-
*
|
|
6
|
+
* Sync factory returning a TemplateResult. Invoked at mount and re-invoked
|
|
7
|
+
* whenever a signal read inside it changes — the factory's reactivity matches
|
|
8
|
+
* a component's render(). Prefer it over the eager html`` form whenever the
|
|
9
|
+
* template reads reactive state.
|
|
8
10
|
*/
|
|
9
11
|
export type TemplateFactory = () => TemplateResult
|
|
10
12
|
|