@mhmo91/schmancy 0.10.40 → 0.10.42
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 +27 -100
- package/dist/SchmancyElement-OG71FtNv.js +286 -0
- package/dist/{SchmancyElement-BNnyBOwk.js.map → SchmancyElement-OG71FtNv.js.map} +1 -1
- package/dist/SchmancyElement-PS1u0j1B.cjs +2 -0
- package/dist/{SchmancyElement-C41uPa6l.cjs.map → SchmancyElement-PS1u0j1B.cjs.map} +1 -1
- package/dist/agent/schmancy.agent.js +48 -213
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +10 -36
- package/dist/{area-2FrTZI_T.cjs → area-CaEI33G0.cjs} +1 -1
- package/dist/{area-2FrTZI_T.cjs.map → area-CaEI33G0.cjs.map} +1 -1
- package/dist/{area-KVDzhT4s.js → area-DtCNCb8w.js} +2 -2
- package/dist/{area-KVDzhT4s.js.map → area-DtCNCb8w.js.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{audio-EaD0Ggfh.cjs → audio-B924fI5N.cjs} +1 -1
- package/dist/{audio-EaD0Ggfh.cjs.map → audio-B924fI5N.cjs.map} +1 -1
- package/dist/{audio-D3gnp15Y.js → audio-DdN76ikW.js} +1 -1
- package/dist/{audio-D3gnp15Y.js.map → audio-DdN76ikW.js.map} +1 -1
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/{autocomplete-DMmxsvUe.cjs → autocomplete-Dq3BkitV.cjs} +1 -1
- package/dist/{autocomplete-DMmxsvUe.cjs.map → autocomplete-Dq3BkitV.cjs.map} +1 -1
- package/dist/{autocomplete-DWiEqlQf.js → autocomplete-UNOknYUz.js} +3 -3
- package/dist/{autocomplete-DWiEqlQf.js.map → autocomplete-UNOknYUz.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +1 -1
- package/dist/avatar.js +3 -3
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-BeqA9_ms.js → boat-BZah1Sf9.js} +5 -7
- package/dist/{boat-BeqA9_ms.js.map → boat-BZah1Sf9.js.map} +1 -1
- package/dist/{boat-BJPl_Jti.cjs → boat-D3bEjxf8.cjs} +2 -4
- package/dist/{boat-BJPl_Jti.cjs.map → boat-D3bEjxf8.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +2 -2
- package/dist/{busy-Cj_PV7oC.cjs → busy--WqiXKnl.cjs} +1 -1
- package/dist/{busy-Cj_PV7oC.cjs.map → busy--WqiXKnl.cjs.map} +1 -1
- package/dist/{busy-enYCTssB.js → busy-DzXyO0z6.js} +2 -2
- package/dist/{busy-enYCTssB.js.map → busy-DzXyO0z6.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-B9RfBt-n.cjs → button-CTvS5YX4.cjs} +1 -1
- package/dist/{button-B9RfBt-n.cjs.map → button-CTvS5YX4.cjs.map} +1 -1
- package/dist/{button-D6LJC-HC.js → button-DgoDfcJx.js} +2 -2
- package/dist/{button-D6LJC-HC.js.map → button-DgoDfcJx.js.map} +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +3 -3
- package/dist/{card-BHTz1GwB.js → card-C6ijJZpF.js} +2 -2
- package/dist/{card-BHTz1GwB.js.map → card-C6ijJZpF.js.map} +1 -1
- package/dist/{card-ThG_ZaQE.cjs → card-Ci3_9Dd4.cjs} +1 -1
- package/dist/{card-ThG_ZaQE.cjs.map → card-Ci3_9Dd4.cjs.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-Ce0DlAdW.js → checkbox-7vEPZuGC.js} +2 -2
- package/dist/{checkbox-Ce0DlAdW.js.map → checkbox-7vEPZuGC.js.map} +1 -1
- package/dist/{checkbox-C4zeib84.cjs → checkbox-DXKdxkXE.cjs} +1 -1
- package/dist/{checkbox-C4zeib84.cjs.map → checkbox-DXKdxkXE.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-wfJ7YtWv.cjs → chips-9eG-96_D.cjs} +1 -1
- package/dist/{chips-wfJ7YtWv.cjs.map → chips-9eG-96_D.cjs.map} +1 -1
- package/dist/{chips-BoZSpSh_.js → chips-DF7akwz7.js} +4 -4
- package/dist/{chips-BoZSpSh_.js.map → chips-DF7akwz7.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +2 -4
- package/dist/connectivity.cjs.map +1 -1
- package/dist/connectivity.js +4 -6
- package/dist/connectivity.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-DJrdpzev.js → date-range-C13_R3OA.js} +3 -3
- package/dist/{date-range-DJrdpzev.js.map → date-range-C13_R3OA.js.map} +1 -1
- package/dist/{date-range-BHSzlwSL.cjs → date-range-Q2xj5Syc.cjs} +1 -1
- package/dist/{date-range-BHSzlwSL.cjs.map → date-range-Q2xj5Syc.cjs.map} +1 -1
- package/dist/{date-range-inline-DjRdMZ1z.js → date-range-inline-BnOD-ddB.js} +2 -2
- package/dist/{date-range-inline-DjRdMZ1z.js.map → date-range-inline-BnOD-ddB.js.map} +1 -1
- package/dist/{date-range-inline-D0I6k84h.cjs → date-range-inline-DV2c_gWM.cjs} +1 -1
- package/dist/{date-range-inline-D0I6k84h.cjs.map → date-range-inline-DV2c_gWM.cjs.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-DQNj2oaU.cjs → details-B2-jECBh.cjs} +3 -2
- package/dist/details-B2-jECBh.cjs.map +1 -0
- package/dist/{details-CY49XVfp.js → details-ByF66CyY.js} +4 -3
- package/dist/details-ByF66CyY.js.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{directives-BvRTjCFa.js → directives-BL7mzVsA.js} +3 -3
- package/dist/{directives-BvRTjCFa.js.map → directives-BL7mzVsA.js.map} +1 -1
- package/dist/{directives-BZIRQDBq.cjs → directives-DCb_LA9R.cjs} +1 -1
- package/dist/{directives-BZIRQDBq.cjs.map → directives-DCb_LA9R.cjs.map} +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +2 -2
- package/dist/{divider-Ck2C1sKl.cjs → divider-Bv2QiOZL.cjs} +1 -1
- package/dist/{divider-Ck2C1sKl.cjs.map → divider-Bv2QiOZL.cjs.map} +1 -1
- package/dist/{divider-BeyX_C0A.js → divider-gYuz0zDU.js} +2 -2
- package/dist/{divider-BeyX_C0A.js.map → divider-gYuz0zDU.js.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-CUF163mg.cjs → expand-B9IUGVtc.cjs} +1 -1
- package/dist/{expand-CUF163mg.cjs.map → expand-B9IUGVtc.cjs.map} +1 -1
- package/dist/{expand-BYsSEtp6.js → expand-cZ8rfCWP.js} +3 -3
- package/dist/{expand-BYsSEtp6.js.map → expand-cZ8rfCWP.js.map} +1 -1
- 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-OvqX0nqG.cjs → float-DkGyWSWy.cjs} +1 -1
- package/dist/{float-OvqX0nqG.cjs.map → float-DkGyWSWy.cjs.map} +1 -1
- package/dist/{float-Cgllk_H9.js → float-zn3DgXBT.js} +2 -2
- package/dist/{float-Cgllk_H9.js.map → float-zn3DgXBT.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-4GKROq2P.cjs → form-DowzVsgI.cjs} +1 -1
- package/dist/{form-4GKROq2P.cjs.map → form-DowzVsgI.cjs.map} +1 -1
- package/dist/{form-DxaV_Ose.js → form-tG7LwDm4.js} +3 -3
- package/dist/{form-DxaV_Ose.js.map → form-tG7LwDm4.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +12 -12
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{icons-sZ-LybA9.cjs → icons-BZeCloP9.cjs} +1 -1
- package/dist/{icons-sZ-LybA9.cjs.map → icons-BZeCloP9.cjs.map} +1 -1
- package/dist/{icons-CJ2mXcBi.js → icons-Dup5skuk.js} +2 -2
- package/dist/{icons-CJ2mXcBi.js.map → icons-Dup5skuk.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-DpCv-QH2.cjs → iframe-CDJjnNmo.cjs} +1 -1
- package/dist/{iframe-DpCv-QH2.cjs.map → iframe-CDJjnNmo.cjs.map} +1 -1
- package/dist/{iframe-DWvN5nGB.js → iframe-Xc3EPMZT.js} +2 -2
- package/dist/{iframe-DWvN5nGB.js.map → iframe-Xc3EPMZT.js.map} +1 -1
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +34 -34
- package/dist/{input-Z-3N5JMv.cjs → input-DnmC6J1T.cjs} +1 -1
- package/dist/{input-Z-3N5JMv.cjs.map → input-DnmC6J1T.cjs.map} +1 -1
- package/dist/{input-BCCHz6tB.js → input-cTyDxW9L.js} +2 -2
- package/dist/{input-BCCHz6tB.js.map → input-cTyDxW9L.js.map} +1 -1
- package/dist/{input-chip-ChAgRCXZ.cjs → input-chip-CV91URyU.cjs} +1 -1
- package/dist/{input-chip-ChAgRCXZ.cjs.map → input-chip-CV91URyU.cjs.map} +1 -1
- package/dist/{input-chip-BOrcKH-H.js → input-chip-CYI17YOq.js} +2 -2
- package/dist/{input-chip-BOrcKH-H.js.map → input-chip-CYI17YOq.js.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-DZ4dpLh9.cjs → layout-CNlZSJFU.cjs} +1 -1
- package/dist/{layout-DZ4dpLh9.cjs.map → layout-CNlZSJFU.cjs.map} +1 -1
- package/dist/{layout-CFiG3lNT.js → layout-DDxw0EwL.js} +1 -1
- package/dist/{layout-CFiG3lNT.js.map → layout-DDxw0EwL.js.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/{lightbox-B7Y4Nij_.js → lightbox-CH-y3rYB.js} +2 -2
- package/dist/{lightbox-B7Y4Nij_.js.map → lightbox-CH-y3rYB.js.map} +1 -1
- package/dist/{lightbox-Dpwsn8Qr.cjs → lightbox-CvtqoInF.cjs} +1 -1
- package/dist/{lightbox-Dpwsn8Qr.cjs.map → lightbox-CvtqoInF.cjs.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-BhM-6dAi.cjs → list-Dl8KfxrF.cjs} +2 -2
- package/dist/{list-BhM-6dAi.cjs.map → list-Dl8KfxrF.cjs.map} +1 -1
- package/dist/{list-C5WVoIfJ.js → list-DrsawQ5R.js} +10 -3
- package/dist/{list-C5WVoIfJ.js.map → list-DrsawQ5R.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{menu-GZARYp6I.cjs → menu-BFRcTe3o.cjs} +1 -1
- package/dist/{menu-GZARYp6I.cjs.map → menu-BFRcTe3o.cjs.map} +1 -1
- package/dist/{menu-Dvi_tQgH.js → menu-CsY5lMqY.js} +3 -3
- package/dist/{menu-Dvi_tQgH.js.map → menu-CsY5lMqY.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/{mixins-fIpzhVMd.cjs → mixins-BoMURWag.cjs} +2 -72
- package/dist/{mixins-fIpzhVMd.cjs.map → mixins-BoMURWag.cjs.map} +1 -1
- package/dist/{mixins-DGBI7YPO.js → mixins-bCEXbwJV.js} +3 -79
- package/dist/{mixins-DGBI7YPO.js.map → mixins-bCEXbwJV.js.map} +1 -1
- 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 +1 -1
- package/dist/navigation-rail.js +2 -2
- package/dist/{notification-BB9OBRCr.js → notification-DFKRMmSq.js} +4 -4
- package/dist/{notification-BB9OBRCr.js.map → notification-DFKRMmSq.js.map} +1 -1
- package/dist/{notification-B6yDL91t.cjs → notification-FBf3Mb2e.cjs} +1 -1
- package/dist/{notification-B6yDL91t.cjs.map → notification-FBf3Mb2e.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-B21ImL0k.js → option-Ct0lGdH3.js} +2 -2
- package/dist/{option-B21ImL0k.js.map → option-Ct0lGdH3.js.map} +1 -1
- package/dist/{option-CJQM5I9q.cjs → option-Il1KpU8M.cjs} +1 -1
- package/dist/{option-CJQM5I9q.cjs.map → option-Il1KpU8M.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-DwJWVyk2.js → overlay-Bh8Q_R01.js} +5 -5
- package/dist/{overlay-DwJWVyk2.js.map → overlay-Bh8Q_R01.js.map} +1 -1
- package/dist/{overlay-N0trD-4u.cjs → overlay-sRXiMkjn.cjs} +1 -1
- package/dist/{overlay-N0trD-4u.cjs.map → overlay-sRXiMkjn.cjs.map} +1 -1
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-DwzKhXxM.js → overlay.confirm-body-CQihsR20.js} +6 -6
- package/dist/{overlay.confirm-body-DwzKhXxM.js.map → overlay.confirm-body-CQihsR20.js.map} +1 -1
- package/dist/{overlay.confirm-body-CtXIi421.cjs → overlay.confirm-body-Jc1EuMGs.cjs} +1 -1
- package/dist/{overlay.confirm-body-CtXIi421.cjs.map → overlay.confirm-body-Jc1EuMGs.cjs.map} +1 -1
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-Dbu5uP9E.cjs → overlay.service-9Dp3g7ot.cjs} +1 -1
- package/dist/{overlay.service-Dbu5uP9E.cjs.map → overlay.service-9Dp3g7ot.cjs.map} +1 -1
- package/dist/{overlay.service-BDLi0p5M.js → overlay.service-BXPgS7ay.js} +2 -2
- package/dist/{overlay.service-BDLi0p5M.js.map → overlay.service-BXPgS7ay.js.map} +1 -1
- package/dist/{progress-B-Qg44XY.cjs → progress-CWC5XYZ_.cjs} +1 -1
- package/dist/{progress-B-Qg44XY.cjs.map → progress-CWC5XYZ_.cjs.map} +1 -1
- package/dist/{progress-CUSS1sNz.js → progress-CYLshdo2.js} +2 -2
- package/dist/{progress-CUSS1sNz.js.map → progress-CYLshdo2.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-BEtvCSS1.cjs → radio-group-6kCgOgBL.cjs} +1 -1
- package/dist/{radio-group-BEtvCSS1.cjs.map → radio-group-6kCgOgBL.cjs.map} +1 -1
- package/dist/{radio-group-AHLvrN8O.js → radio-group-bZtZHOj_.js} +2 -2
- package/dist/{radio-group-AHLvrN8O.js.map → radio-group-bZtZHOj_.js.map} +1 -1
- 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-CGBsblDA.js → select-CU3X-PIa.js} +3 -3
- package/dist/{select-CGBsblDA.js.map → select-CU3X-PIa.js.map} +1 -1
- package/dist/{select-LWdPs7b_.cjs → select-MXsF8KsU.cjs} +1 -1
- package/dist/{select-LWdPs7b_.cjs.map → select-MXsF8KsU.cjs.map} +1 -1
- 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/schmancy/surface.md +51 -27
- package/dist/skills/surface.md +51 -27
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +2 -2
- package/dist/{sound.service-CK-5zob-.js → sound.service-B4ZmXpH9.js} +1 -1
- package/dist/{sound.service-CK-5zob-.js.map → sound.service-B4ZmXpH9.js.map} +1 -1
- package/dist/{sound.service-D2GGaBXc.cjs → sound.service-DjlMvicQ.cjs} +1 -1
- package/dist/{sound.service-D2GGaBXc.cjs.map → sound.service-DjlMvicQ.cjs.map} +1 -1
- package/dist/{splash-screen-DqPuipox.cjs → splash-screen-CN9dZcqC.cjs} +1 -1
- package/dist/{splash-screen-DqPuipox.cjs.map → splash-screen-CN9dZcqC.cjs.map} +1 -1
- package/dist/{splash-screen-BUEtjHXC.js → splash-screen-emCLYoVl.js} +2 -2
- package/dist/{splash-screen-BUEtjHXC.js.map → splash-screen-emCLYoVl.js.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-Dmqjtcmp.js → src-DGDTkOvC.js} +160 -252
- package/dist/src-DGDTkOvC.js.map +1 -0
- package/dist/{src-SAXA4LEH.cjs → src-DK3111z_.cjs} +7 -31
- package/dist/src-DK3111z_.cjs.map +1 -0
- package/dist/{state-BxDNox-2.cjs → state-CumAEPQH.cjs} +1 -1
- package/dist/{state-BxDNox-2.cjs.map → state-CumAEPQH.cjs.map} +1 -1
- package/dist/{state-CnZCDMT0.js → state-DMd_FUeA.js} +1 -1
- package/dist/{state-CnZCDMT0.js.map → state-DMd_FUeA.js.map} +1 -1
- package/dist/state.cjs +1 -1
- package/dist/state.js +2 -2
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +2 -2
- package/dist/{surface-CWwYD_z2.cjs → surface-DGI-FBoi.cjs} +1 -1
- package/dist/surface-DGI-FBoi.cjs.map +1 -0
- package/dist/{surface-BMdG3dKQ.js → surface-DNiYigsX.js} +2 -2
- package/dist/surface-DNiYigsX.js.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.js +2 -2
- package/dist/table.cjs +2 -2
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +3 -3
- package/dist/table.js.map +1 -1
- package/dist/{tabs-CDQYDc6v.js → tabs-4T_4kCf-.js} +2 -2
- package/dist/{tabs-CDQYDc6v.js.map → tabs-4T_4kCf-.js.map} +1 -1
- package/dist/{tabs-CbD9E1gd.cjs → tabs-Byxxt-AH.cjs} +1 -1
- package/dist/{tabs-CbD9E1gd.cjs.map → tabs-Byxxt-AH.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 → textarea-BwYwH9fu.cjs} +1 -1
- package/dist/{textarea-Brgi-vD2.cjs.map → textarea-BwYwH9fu.cjs.map} +1 -1
- package/dist/{textarea-MPyrMi-S.js → textarea-kkYNk1ET.js} +2 -2
- package/dist/{textarea-MPyrMi-S.js.map → textarea-kkYNk1ET.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-BMbXoqi0.cjs → theme-BG0EnzYP.cjs} +2 -2
- package/dist/{theme-BMbXoqi0.cjs.map → theme-BG0EnzYP.cjs.map} +1 -1
- package/dist/{theme-DZu-xmVp.js → theme-DwQBl6sr.js} +6 -6
- package/dist/{theme-DZu-xmVp.js.map → theme-DwQBl6sr.js.map} +1 -1
- package/dist/{theme-button-D_qGvEYs.js → theme-button-BD8anzsZ.js} +2 -2
- package/dist/{theme-button-D_qGvEYs.js.map → theme-button-BD8anzsZ.js.map} +1 -1
- package/dist/{theme-button-B0OLb-43.cjs → theme-button-DlrNoCMA.cjs} +1 -1
- package/dist/{theme-button-B0OLb-43.cjs.map → theme-button-DlrNoCMA.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +3 -3
- package/dist/{theme.service-7VkM-hVf.js → theme.service-Dv_55nfE.js} +1 -1
- package/dist/{theme.service-7VkM-hVf.js.map → theme.service-Dv_55nfE.js.map} +1 -1
- package/dist/{theme.service-B15FdjOS.cjs → theme.service-pjkTM209.cjs} +1 -1
- package/dist/{theme.service-B15FdjOS.cjs.map → theme.service-pjkTM209.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +2 -2
- package/dist/{typography-SZhjb_4R.js → typography-BVkU11_q.js} +2 -2
- package/dist/{typography-SZhjb_4R.js.map → typography-BVkU11_q.js.map} +1 -1
- package/dist/{typography-D4Fo1UGh.cjs → typography-aaQaIcNc.cjs} +1 -1
- package/dist/{typography-D4Fo1UGh.cjs.map → typography-aaQaIcNc.cjs.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-BDVyrBnk.js → window-C76zstbV.js} +7 -8
- package/dist/window-C76zstbV.js.map +1 -0
- package/dist/window-CmB9XZzT.cjs +58 -0
- package/dist/window-CmB9XZzT.cjs.map +1 -0
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/surface.md +51 -27
- package/src/badge/badge.ts +48 -200
- package/src/boat/boat.ts +1 -3
- package/src/connectivity/connectivity-status.ts +1 -3
- package/src/details/details.ts +1 -1
- package/src/list/list.ts +1 -1
- package/src/surface/surface.styles.ts +2 -87
- package/src/surface/surface.ts +8 -8
- package/src/table/table.ts +1 -1
- package/src/theme/theme-audio-player.ts +1 -1
- package/src/window/window.ts +3 -6
- package/types/mixins/surface.mixin.d.ts +8 -14
- package/types/src/badge/badge.d.ts +15 -48
- package/types/src/surface/surface.d.ts +9 -7
- package/types/src/surface/surface.styles.d.ts +2 -14
- package/types/src/window/window.d.ts +0 -1
- package/dist/SchmancyElement-BNnyBOwk.js +0 -286
- package/dist/SchmancyElement-C41uPa6l.cjs +0 -2
- package/dist/details-CY49XVfp.js.map +0 -1
- package/dist/details-DQNj2oaU.cjs.map +0 -1
- package/dist/src-Dmqjtcmp.js.map +0 -1
- package/dist/src-SAXA4LEH.cjs.map +0 -1
- package/dist/surface-BMdG3dKQ.js.map +0 -1
- package/dist/surface-CWwYD_z2.cjs.map +0 -1
- package/dist/window-BDVyrBnk.js.map +0 -1
- package/dist/window-BbBYjm7R.cjs +0 -59
- package/dist/window-BbBYjm7R.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"window-BbBYjm7R.cjs","names":["#state$"],"sources":["../src/window/window-manager.ts","../src/window/window-position.ts","../src/window/window.ts"],"sourcesContent":["/**\n * Window Manager — singleton service for multi-window coordination.\n *\n * Tracks all schmancy-window instances: positions, z-indices, focus, visual states.\n * Components register on connectedCallback, unregister on disconnectedCallback.\n * Focus changes, position updates, and overlap queries all flow through here.\n *\n * Follows the ThemeService singleton pattern (theme/theme.service.ts).\n *\n * Example:\n * windowManager.register('chat-1', bounds, 'bottom-right')\n * windowManager.focus('chat-1') // bumps z-index, updates focusedId\n * const overlaps = windowManager.findOverlaps(projectedBounds, 'chat-1')\n */\n\nimport { BehaviorSubject, Observable, distinctUntilChanged, map } from 'rxjs'\nimport { overlayStack } from '../utils/overlay-stack.js'\nimport type { WindowBounds, WindowRecord, WindowRegistryState, SnapTarget } from './window-registry.js'\n\nconst STORAGE_PREFIX = 'schmancy-window-'\nconst LEGACY_STORAGE_PREFIX = 'schmancy-float-'\n\nclass WindowManagerService {\n\tprivate static instance: WindowManagerService\n\n\treadonly #state$ = new BehaviorSubject<WindowRegistryState>({\n\t\twindows: new Map(),\n\t\tfocusedId: null,\n\t\tstackOrder: [],\n\t})\n\n\treadonly state$ = this.#state$.asObservable()\n\n\tprivate constructor() {}\n\n\tstatic getInstance(): WindowManagerService {\n\t\tif (!WindowManagerService.instance) {\n\t\t\tWindowManagerService.instance = new WindowManagerService()\n\t\t}\n\t\treturn WindowManagerService.instance\n\t}\n\n\t// ── Synchronous accessors ──────────────────────────────────────────\n\n\tget windows(): Map<string, WindowRecord> {\n\t\treturn this.#state$.value.windows\n\t}\n\n\tget focusedId(): string | null {\n\t\treturn this.#state$.value.focusedId\n\t}\n\n\t// ── Registration ───────────────────────────────────────────────────\n\n\tregister(id: string, initialBounds: WindowBounds, snapTarget: SnapTarget): void {\n\t\tconst state = this.#state$.value\n\t\tif (state.windows.has(id)) return\n\n\t\tconst zIndex = overlayStack.assignZIndex(id)\n\t\tconst record: WindowRecord = {\n\t\t\tid,\n\t\t\tbounds: initialBounds,\n\t\t\tvisualState: 'normal',\n\t\t\tzIndex,\n\t\t\topen: false,\n\t\t\tsnapTarget,\n\t\t}\n\n\t\tconst windows = new Map(state.windows)\n\t\twindows.set(id, record)\n\t\tconst stackOrder = overlayStack.getStackOrder()\n\n\t\tthis.#state$.next({ ...state, windows, stackOrder })\n\t}\n\n\tunregister(id: string): void {\n\t\tconst state = this.#state$.value\n\t\tif (!state.windows.has(id)) return\n\n\t\toverlayStack.releaseId(id)\n\t\tconst windows = new Map(state.windows)\n\t\twindows.delete(id)\n\t\tconst stackOrder = overlayStack.getStackOrder()\n\t\tconst focusedId = state.focusedId === id ? null : state.focusedId\n\n\t\tthis.#state$.next({ ...state, windows, stackOrder, focusedId })\n\t}\n\n\t// ── State mutations ────────────────────────────────────────────────\n\n\tupdateBounds(id: string, bounds: WindowBounds): void {\n\t\tthis.updateRecord(id, { bounds })\n\t}\n\n\tupdateVisualState(id: string, visualState: WindowRecord['visualState']): void {\n\t\tthis.updateRecord(id, { visualState })\n\t}\n\n\tupdateOpen(id: string, open: boolean): void {\n\t\tthis.updateRecord(id, { open })\n\t}\n\n\tfocus(id: string): void {\n\t\tconst state = this.#state$.value\n\t\tif (!state.windows.has(id)) return\n\t\tif (state.focusedId === id) return\n\n\t\tconst zIndex = overlayStack.bringToFront(id)\n\t\tconst windows = new Map(state.windows)\n\t\tconst record = windows.get(id)\n\t\tif (record) {\n\t\t\twindows.set(id, { ...record, zIndex })\n\t\t}\n\t\tconst stackOrder = overlayStack.getStackOrder()\n\n\t\tthis.#state$.next({ ...state, windows, stackOrder, focusedId: id })\n\t}\n\n\t// ── Queries ────────────────────────────────────────────────────────\n\n\tfindOverlaps(bounds: WindowBounds, excludeId: string): WindowRecord[] {\n\t\tconst result: WindowRecord[] = []\n\t\tfor (const [id, record] of this.#state$.value.windows) {\n\t\t\tif (id === excludeId) continue\n\t\t\tif (rectsOverlap(bounds, record.bounds)) {\n\t\t\t\tresult.push(record)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\tgetNeighbors(id: string): WindowRecord[] {\n\t\tconst result: WindowRecord[] = []\n\t\tfor (const [otherId, record] of this.#state$.value.windows) {\n\t\t\tif (otherId !== id) result.push(record)\n\t\t}\n\t\treturn result\n\t}\n\n\t// ── Selectors ──────────────────────────────────────────────────────\n\n\tselectWindow(id: string): Observable<WindowRecord | undefined> {\n\t\treturn this.#state$.pipe(\n\t\t\tmap(state => state.windows.get(id)),\n\t\t\tdistinctUntilChanged(),\n\t\t)\n\t}\n\n\tselectFocused(): Observable<string | null> {\n\t\treturn this.#state$.pipe(\n\t\t\tmap(state => state.focusedId),\n\t\t\tdistinctUntilChanged(),\n\t\t)\n\t}\n\n\t// ── Persistence ────────────────────────────────────────────────────\n\n\tloadPosition(id: string): { x: number; y: number; anchor: string } | null {\n\t\ttry {\n\t\t\t// Try new key first, fall back to legacy\n\t\t\tconst raw = localStorage.getItem(STORAGE_PREFIX + id) ?? localStorage.getItem(LEGACY_STORAGE_PREFIX + id)\n\t\t\tif (!raw) return null\n\t\t\treturn JSON.parse(raw) as { x: number; y: number; anchor: string }\n\t\t} catch {\n\t\t\treturn null\n\t\t}\n\t}\n\n\tsavePosition(id: string, data: { x: number; y: number; anchor: string }): void {\n\t\ttry {\n\t\t\tlocalStorage.setItem(STORAGE_PREFIX + id, JSON.stringify(data))\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\t}\n\n\tclearPosition(id: string): void {\n\t\ttry {\n\t\t\tlocalStorage.removeItem(STORAGE_PREFIX + id)\n\t\t\tlocalStorage.removeItem(LEGACY_STORAGE_PREFIX + id)\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\t}\n\n\t// ── Internal ───────────────────────────────────────────────────────\n\n\tprivate updateRecord(id: string, updates: Partial<WindowRecord>): void {\n\t\tconst state = this.#state$.value\n\t\tconst record = state.windows.get(id)\n\t\tif (!record) return\n\n\t\tconst windows = new Map(state.windows)\n\t\twindows.set(id, { ...record, ...updates })\n\t\tthis.#state$.next({ ...state, windows })\n\t}\n}\n\n/** Simple rect overlap check (inline — no circular import with window-position) */\nfunction rectsOverlap(a: WindowBounds, b: WindowBounds): boolean {\n\treturn !(a.left >= b.left + b.width || a.left + a.width <= b.left || a.top >= b.top + b.height || a.top + a.height <= b.top)\n}\n\nexport const windowManager = WindowManagerService.getInstance()\n","/**\n * Window Position — pure functions for overlap resolution, cascade, and snapping.\n *\n * All functions are stateless: they take window bounds and viewport dimensions,\n * return new bounds. No side effects, no DOM access, no subscriptions.\n *\n * Example:\n * const projected = { left: 100, top: 400, width: 360, height: 500 }\n * const neighbors = windowManager.findOverlaps(projected, 'my-id')\n * const resolved = resolveOverlap(projected, neighbors, { width: 1440, height: 900 })\n * // → { left: 144, top: 444, width: 360, height: 500 } (cascaded away from conflict)\n */\n\nimport type { WindowBounds, WindowRecord } from './window-registry.js'\n\nconst HEAD_HEIGHT = 44\nconst CASCADE_OFFSET = HEAD_HEIGHT\nconst MAX_CASCADE_ATTEMPTS = 10\n\n/** Check if two rectangles overlap (edges touching does NOT count as overlap) */\nexport function rectsOverlap(a: WindowBounds, b: WindowBounds): boolean {\n\treturn !(a.left >= b.left + b.width || a.left + a.width <= b.left || a.top >= b.top + b.height || a.top + a.height <= b.top)\n}\n\n/**\n * Resolve overlap by cascading diagonally until no conflict.\n * Shifts by (HEAD_HEIGHT, HEAD_HEIGHT) per attempt, clamped to viewport.\n */\nexport function resolveOverlap(\n\tcandidate: WindowBounds,\n\texisting: WindowRecord[],\n\tviewport: { width: number; height: number },\n): WindowBounds {\n\tconst bounds = { ...candidate }\n\n\tfor (let attempt = 0; attempt < MAX_CASCADE_ATTEMPTS; attempt++) {\n\t\tconst hasOverlap = existing.some(w => rectsOverlap(bounds, w.bounds))\n\t\tif (!hasOverlap) break\n\n\t\tbounds.left += CASCADE_OFFSET\n\t\tbounds.top += CASCADE_OFFSET\n\t}\n\n\treturn clampToViewport(bounds, viewport)\n}\n\n/**\n * Clamp bounds so the window stays fully within the viewport.\n */\nexport function clampToViewport(\n\tbounds: WindowBounds,\n\tviewport: { width: number; height: number },\n): WindowBounds {\n\treturn {\n\t\twidth: bounds.width,\n\t\theight: bounds.height,\n\t\tleft: Math.max(0, Math.min(bounds.left, viewport.width - bounds.width)),\n\t\ttop: Math.max(0, Math.min(bounds.top, viewport.height - bounds.height)),\n\t}\n}\n","import { SchmancyElement } from '@mixins/index'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { styleMap } from 'lit/directives/style-map.js'\nimport {\n\tanimationFrameScheduler,\n\tauditTime,\n\tcatchError,\n\tEMPTY,\n\tfilter,\n\tfinalize,\n\tfrom,\n\tfromEvent,\n\tmap,\n\tmerge,\n\tObservable,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n} from 'rxjs'\nimport { SPRING_SMOOTH, SPRING_SNAPPY } from '../utils/animation.js'\nimport { cursorGlow } from '../directives/cursor-glow'\nimport { reducedMotion$ } from '../directives/reduced-motion'\nimport { theme } from '../theme/theme.service.js'\nimport type { SnapCorner, WindowBounds, WindowVisualState } from './window-registry.js'\nimport { windowManager } from './window-manager.js'\nimport { resolveOverlap } from './window-position.js'\n\nconst HEAD_HEIGHT = 48\nconst DRAG_THRESHOLD = 5\n\ninterface Position {\n\tx: number\n\ty: number\n}\n\n@customElement('schmancy-window')\nexport default class SchmancyWindow extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: contents;\n\t\tposition: relative;\n\t\tz-index: 1000;\n\t}\n\t:host([hidden]) {\n\t\tdisplay: none !important;\n\t}\n`]\n\n\t@property({ type: String }) id: string = 'default'\n\t/** Override the expanded panel width (e.g. '320px', '24rem'). Defaults to responsive sizing. */\n\t@property({ type: String }) expandedWidth?: string\n\t/** Override the expanded panel height (e.g. '400px', '50vh'). */\n\t@property({ type: String }) expandedHeight?: string\n\t/** When true, uses a lower elevation shadow in the collapsed state. */\n\t@property({ type: Boolean, reflect: true }) lowered: boolean = false\n\t/** Corner the window is anchored to. */\n\t@property({ type: String }) corner: SnapCorner = 'bottom-right'\n\t/** When true, window can be resized by the user. */\n\t@property({ type: Boolean }) resizable = false\n\t/** When true, window stays at its dragged position instead of snapping to a corner. */\n\t@property({ type: Boolean }) freePosition = false\n\t/** Visual state of the window (minimized, normal, maximized). */\n\t@property({ type: String, reflect: true }) visualState: WindowVisualState = 'normal'\n\t/** Minimum width in pixels. */\n\t@property({ type: Number }) minWidth = 280\n\t/** Minimum height in pixels. */\n\t@property({ type: Number }) minHeight = 200\n\n\t/** Whether the body is expanded. */\n\t@property({ type: Boolean, reflect: true }) open = false\n\n\tprivate currentAnimation?: Animation\n\n\t/** Lazy rendering: body content not in DOM until first expand. */\n\t@state() private hasOpened = false\n\n\t// Internal position -- plain fields, updated directly during drag\n\tprivate position: Position = { x: 16, y: 16 }\n\t@state() private currentCorner: SnapCorner = 'bottom-right'\n\n\t// Track applied corner to avoid unnecessary style.removeProperty calls during drag\n\tprivate appliedCorner: string = ''\n\n\t// Refs\n\tprivate containerRef = createRef<HTMLElement>()\n\tprivate bodyRef = createRef<HTMLElement>()\n\tprivate headRef = createRef<HTMLElement>()\n\n\t// ============================================\n\t// COMPUTED\n\t// ============================================\n\n\tprivate get panelWidth(): string {\n\t\treturn this.expandedWidth ?? 'min(360px, calc(100vw - 32px))'\n\t}\n\n\tprivate get isBottomCorner(): boolean {\n\t\treturn this.currentCorner.startsWith('bottom')\n\t}\n\n\tprivate get closedClipPath(): string {\n\t\treturn this.isBottomCorner\n\t\t\t? `inset(calc(100% - ${HEAD_HEIGHT}px) 0px 0px 0px round 22px)`\n\t\t\t: `inset(0px 0px calc(100% - ${HEAD_HEIGHT}px) 0px round 22px)`\n\t}\n\n\tprivate get openClipPath(): string {\n\t\treturn 'inset(0px 0px 0px 0px round 12px)'\n\t}\n\n\tprivate get elevation(): 0 | 1 | 2 | 3 | 4 | 5 {\n\t\tif (this.open) return 4\n\t\treturn this.lowered ? 1 : 3\n\t}\n\n\t// ============================================\n\t// POSITION MANAGEMENT\n\t// ============================================\n\n\tprivate applyContainerPosition() {\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\t\t// Only clear position properties when corner changes (avoids 4 style invalidations per drag frame)\n\t\tif (this.appliedCorner !== this.currentCorner) {\n\t\t\tcontainer.style.removeProperty('left')\n\t\t\tcontainer.style.removeProperty('right')\n\t\t\tcontainer.style.removeProperty('top')\n\t\t\tcontainer.style.removeProperty('bottom')\n\t\t\tthis.appliedCorner = this.currentCorner\n\t\t}\n\t\tconst { x, y } = this.position\n\t\tif (this.currentCorner.includes('right')) {\n\t\t\tcontainer.style.right = `${x}px`\n\t\t} else {\n\t\t\tcontainer.style.left = `${x}px`\n\t\t}\n\t\tif (this.currentCorner.includes('bottom')) {\n\t\t\tcontainer.style.bottom = `${y + theme.bottomOffset}px`\n\t\t} else {\n\t\t\tcontainer.style.top = `${y}px`\n\t\t}\n\t}\n\n\tprivate static readonly VALID_CORNERS = new Set<string>(['top-left', 'top-right', 'bottom-left', 'bottom-right'])\n\n\tprivate loadPosition() {\n\t\tconst saved = windowManager.loadPosition(this.id)\n\t\tif (saved) {\n\t\t\tthis.position = { x: saved.x, y: saved.y }\n\t\t\tif (SchmancyWindow.VALID_CORNERS.has(saved.anchor)) {\n\t\t\t\tthis.currentCorner = saved.anchor as SnapCorner\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate savePosition() {\n\t\twindowManager.savePosition(this.id, { ...this.position, anchor: this.currentCorner })\n\t}\n\n\tprivate validateBounds() {\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\t\tconst rect = container.getBoundingClientRect()\n\t\tif (rect.width === 0) return\n\t\tconst vw = window.innerWidth\n\t\tconst vh = window.innerHeight\n\t\tconst isRight = this.currentCorner.includes('right')\n\t\tconst isBottom = this.currentCorner.includes('bottom')\n\t\tconst actualLeft = isRight ? vw - this.position.x - rect.width : this.position.x\n\t\tconst actualTop = isBottom ? vh - this.position.y - rect.height : this.position.y\n\t\tconst newLeft = Math.max(0, Math.min(actualLeft, vw - rect.width))\n\t\tconst newTop = Math.max(0, Math.min(actualTop, vh - rect.height))\n\t\tthis.position = {\n\t\t\tx: isRight ? vw - newLeft - rect.width : newLeft,\n\t\t\ty: isBottom ? vh - newTop - rect.height : newTop,\n\t\t}\n\t\tthis.applyContainerPosition()\n\t}\n\n\t// ============================================\n\t// CORNER SNAPPING\n\t// ============================================\n\n\tprivate reorientToNearestCorner(skipAnimation = false): void {\n\t\t// Free position mode: skip corner snapping\n\t\tif (this.freePosition) {\n\t\t\tthis.savePosition()\n\t\t\tconst rect = this.containerRef.value?.getBoundingClientRect()\n\t\t\tif (rect) {\n\t\t\t\twindowManager.updateBounds(this.id, { left: rect.left, top: rect.top, width: rect.width, height: rect.height })\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\t// F -- record current screen position before DOM mutation\n\t\tconst rect = container.getBoundingClientRect()\n\n\t\t// L -- calculate nearest corner using head visual center\n\t\tconst currentIsBottom = this.currentCorner.includes('bottom')\n\t\tconst headCenterX = rect.left + rect.width / 2\n\t\tconst headCenterY = currentIsBottom\n\t\t\t? rect.bottom - HEAD_HEIGHT / 2\n\t\t\t: rect.top + HEAD_HEIGHT / 2\n\t\tconst side = headCenterX > window.innerWidth / 2 ? 'right' : 'left'\n\t\tconst vert = headCenterY > window.innerHeight / 2 ? 'bottom' : 'top'\n\t\tconst newCorner: SnapCorner = `${vert}-${side}` as SnapCorner\n\n\t\t// Snap corner and reset offset to standard edge gap\n\t\tthis.currentCorner = newCorner\n\t\tthis.position = { x: 16, y: 16 }\n\t\tthis.applyContainerPosition()\n\t\t// Sync clip-path to new corner\n\t\tif (!this.open) {\n\t\t\tcontainer.style.clipPath = this.closedClipPath\n\t\t}\n\n\t\tif (skipAnimation || reducedMotion$.value) {\n\t\t\tthis.savePosition()\n\t\t\tconst snapRect = container.getBoundingClientRect()\n\t\t\twindowManager.updateBounds(this.id, { left: snapRect.left, top: snapRect.top, width: snapRect.width, height: snapRect.height })\n\t\t\treturn\n\t\t}\n\n\t\t// I -- invert: shift element back to its original visual position\n\t\tconst newRect = container.getBoundingClientRect()\n\t\tconst dx = rect.left - newRect.left\n\t\tconst dy = rect.top - newRect.top\n\t\tcontainer.style.translate = `${dx}px ${dy}px`\n\n\t\t// P -- play: animate from the inverse offset to natural resting position\n\t\tconst flipKeyframes: Keyframe[] = [{ translate: `${dx}px ${dy}px` }, { translate: '0px 0px' }]\n\t\tconst anim = container.animate(\n\t\t\tflipKeyframes,\n\t\t\t{\n\t\t\t\tduration: SPRING_SMOOTH.duration,\n\t\t\t\teasing: SPRING_SMOOTH.easingFallback,\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t)\n\t\tfrom(anim.finished).pipe(\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tif (container.isConnected) container.style.translate = ''\n\t\t\t\t// Report final resting bounds after animation completes\n\t\t\t\tconst finalRect = container.getBoundingClientRect()\n\t\t\t\twindowManager.updateBounds(this.id, { left: finalRect.left, top: finalRect.top, width: finalRect.width, height: finalRect.height })\n\t\t\t}),\n\t\t\tcatchError(() => EMPTY),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\tthis.savePosition()\n\t}\n\n\t// ============================================\n\t// DRAG PIPELINE\n\t// ============================================\n\n\tprivate drag$(): Observable<never> {\n\t\treturn new Observable(() => {\n\t\t\tconst head = this.headRef.value\n\t\t\tconst container = this.containerRef.value\n\t\t\tif (!head || !container) return\n\n\t\t\tlet didDrag = false\n\n\t\t\tconst sub = fromEvent<PointerEvent>(head, 'pointerdown').pipe(\n\t\t\t\tfilter(e => e.button === 0),\n\t\t\t\tfilter(e => {\n\t\t\t\t\tconst tag = (e.target as HTMLElement).tagName?.toLowerCase()\n\t\t\t\t\treturn !['input', 'textarea', 'select', 'button'].includes(tag)\n\t\t\t\t\t\t&& !(e.target as HTMLElement).closest('schmancy-input, schmancy-icon-button, button, a')\n\t\t\t\t}),\n\t\t\t\ttap(e => {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t\t.pipe(\n\t\t\t\t\tmap(e => {\n\t\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\t\tconst isBottom = this.currentCorner.includes('bottom')\n\t\t\t\t\t\tconst wasOpen = this.open\n\t\t\t\t\t\tdidDrag = false\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstartX: e.clientX,\n\t\t\t\t\t\t\tstartY: e.clientY,\n\t\t\t\t\t\t\toffsetX: e.clientX - rect.left,\n\t\t\t\t\t\t\toffsetY: e.clientY - rect.top,\n\t\t\t\t\t\t\trect,\n\t\t\t\t\t\t\tvw: window.innerWidth,\n\t\t\t\t\t\t\tvh: window.innerHeight,\n\t\t\t\t\t\t\tisBottom,\n\t\t\t\t\t\t\twasOpen,\n\t\t\t\t\t\t\tpointerId: e.pointerId,\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t\tswitchMap(({ startX, startY, offsetX, offsetY, rect, vw, vh, isBottom, wasOpen, pointerId }) => {\n\t\t\t\t\t\tconst move$ = fromEvent<PointerEvent>(window, 'pointermove').pipe(\n\t\t\t\t\t\t\tfilter(e => e.pointerId === pointerId),\n\t\t\t\t\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\t\t\t\t\tmap(e => ({ clientX: e.clientX, clientY: e.clientY })),\n\t\t\t\t\t\t)\n\t\t\t\t\t\tconst end$ = fromEvent<PointerEvent>(window, 'pointerup').pipe(\n\t\t\t\t\t\t\tfilter(e => e.pointerId === pointerId),\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\treturn move$.pipe(\n\t\t\t\t\t\t\ttap(({ clientX, clientY }) => {\n\t\t\t\t\t\t\t\tconst dx = clientX - startX\n\t\t\t\t\t\t\t\tconst dy = clientY - startY\n\t\t\t\t\t\t\t\tif (Math.sqrt(dx * dx + dy * dy) > DRAG_THRESHOLD && !didDrag) {\n\t\t\t\t\t\t\t\t\tdidDrag = true\n\t\t\t\t\t\t\t\t\tthis.applyDragVisuals(true)\n\t\t\t\t\t\t\t\t\t// Collapse on first confirmed drag move\n\t\t\t\t\t\t\t\t\tif (wasOpen) {\n\t\t\t\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\t\t\t\t\tcontainer.style.clipPath = this.closedClipPath\n\t\t\t\t\t\t\t\t\t\tcontainer.style.overflow = 'hidden'\n\t\t\t\t\t\t\t\t\t\tconst body = this.bodyRef.value\n\t\t\t\t\t\t\t\t\t\tif (body) {\n\t\t\t\t\t\t\t\t\t\t\tbody.inert = true\n\t\t\t\t\t\t\t\t\t\t\tbody.style.visibility = 'hidden'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (!didDrag) return\n\n\t\t\t\t\t\t\t\tconst left = Math.max(0, Math.min(clientX - offsetX, vw - rect.width))\n\t\t\t\t\t\t\t\tconst minTop = isBottom ? HEAD_HEIGHT - rect.height : 0\n\t\t\t\t\t\t\t\tconst maxTop = isBottom ? vh - rect.height : vh - HEAD_HEIGHT\n\t\t\t\t\t\t\t\tconst top = Math.max(minTop, Math.min(clientY - offsetY, maxTop))\n\n\t\t\t\t\t\t\t\tthis.position = {\n\t\t\t\t\t\t\t\t\tx: this.currentCorner.includes('right') ? vw - left - rect.width : left,\n\t\t\t\t\t\t\t\t\ty: isBottom ? vh - top - rect.height : top,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.applyContainerPosition()\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\ttakeUntil(end$),\n\t\t\t\t\t\t\tfinalize(() => {\n\t\t\t\t\t\t\t\tif (didDrag) {\n\t\t\t\t\t\t\t\t\tthis.reorientToNearestCorner()\n\t\t\t\t\t\t\t\t\tthis.applyDragVisuals(false)\n\t\t\t\t\t\t\t\t\tdidDrag = false\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tdidDrag = false\n\t\t\t\t\t\t\t\t\tthis.toggle()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t)\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.subscribe()\n\n\t\t\treturn () => sub.unsubscribe()\n\t\t})\n\t}\n\n\t// ============================================\n\t// LIFECYCLE\n\t// ============================================\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Pipeline 1: DOM setup + manager registration + drag + z-index sync\n\t\tfrom(this.updateComplete).pipe(\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tthis.currentCorner = this.corner\n\t\t\t\tthis.loadPosition()\n\t\t\t\tthis.applyContainerPosition()\n\t\t\t\tthis.initDOMState()\n\t\t\t\t// Register with window manager\n\t\t\t\tconst container = this.containerRef.value\n\t\t\t\tif (container) {\n\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\tconst bounds: WindowBounds = { left: rect.left, top: rect.top, width: rect.width, height: rect.height }\n\t\t\t\t\twindowManager.register(this.id, bounds, this.freePosition ? 'free' : this.currentCorner)\n\t\t\t\t}\n\t\t\t}),\n\t\t\tswitchMap(() => merge(\n\t\t\t\tthis.drag$(),\n\t\t\t\twindowManager.selectWindow(this.id).pipe(\n\t\t\t\t\ttap(record => {\n\t\t\t\t\t\tif (!record) return\n\t\t\t\t\t\tconst container = this.containerRef.value\n\t\t\t\t\t\tif (container) container.style.zIndex = String(record.zIndex)\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t)),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\n\t\t// Pipeline 3: Environment -- one subscription\n\t\tmerge(\n\t\t\tfromEvent(window, 'resize').pipe(\n\t\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\t\ttap(() => this.validateBounds()),\n\t\t\t),\n\t\t\ttheme.bottomOffset$.pipe(\n\t\t\t\ttap(() => this.applyContainerPosition()),\n\t\t\t),\n\t\t).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\twindowManager.unregister(this.id)\n\t}\n\n\tprivate initDOMState() {\n\t\tconst container = this.containerRef.value\n\t\tconst body = this.bodyRef.value\n\t\tif (!container) return\n\n\t\tthis.applyContainerPosition()\n\n\t\tif (this.open) {\n\t\t\tthis.hasOpened = true\n\t\t\tcontainer.style.overflow = ''\n\t\t\tif (body) {\n\t\t\t\tbody.inert = false\n\t\t\t\tbody.style.visibility = 'visible'\n\t\t\t}\n\t\t} else {\n\t\t\tcontainer.style.clipPath = this.closedClipPath\n\t\t\tcontainer.style.overflow = 'hidden'\n\t\t\tif (body) {\n\t\t\t\tbody.inert = true\n\t\t\t\tbody.style.visibility = 'hidden'\n\t\t\t}\n\t\t}\n\t}\n\n\t// ============================================\n\t// ANIMATION\n\t// ============================================\n\n\tprivate animateOpen() {\n\t\tconst container = this.containerRef.value\n\t\tconst body = this.bodyRef.value\n\t\tif (!container) return\n\n\t\tthis.hasOpened = true\n\t\tthis.open = true\n\n\t\t// Overlap avoidance\n\t\tconst rect = container.getBoundingClientRect()\n\t\tconst projectedBounds: WindowBounds = {\n\t\t\tleft: rect.left,\n\t\t\ttop: this.isBottomCorner ? rect.top - 400 : rect.top,\n\t\t\twidth: rect.width,\n\t\t\theight: 400 + HEAD_HEIGHT,\n\t\t}\n\t\tconst overlaps = windowManager.findOverlaps(projectedBounds, this.id)\n\t\tif (overlaps.length > 0) {\n\t\t\tconst resolved = resolveOverlap(projectedBounds, overlaps, { width: window.innerWidth, height: window.innerHeight })\n\t\t\tif (Math.abs(resolved.left - projectedBounds.left) > 10 || Math.abs(resolved.top - projectedBounds.top) > 10) {\n\t\t\t\tconst isRight = this.currentCorner.includes('right')\n\t\t\t\tconst isBottom = this.currentCorner.includes('bottom')\n\t\t\t\tthis.position = {\n\t\t\t\t\tx: isRight ? window.innerWidth - resolved.left - resolved.width : resolved.left,\n\t\t\t\t\ty: isBottom ? window.innerHeight - resolved.top - resolved.height : resolved.top,\n\t\t\t\t}\n\t\t\t\tthis.applyContainerPosition()\n\t\t\t}\n\t\t}\n\n\t\tif (body) {\n\t\t\tbody.style.visibility = 'visible'\n\t\t\tbody.inert = false\n\t\t}\n\n\t\tif (reducedMotion$.value) {\n\t\t\tcontainer.style.clipPath = ''\n\t\t\tcontainer.style.overflow = ''\n\t\t\tthis.dispatchScopedEvent('window-toggle', { state: 'expanded' })\n\t\t\treturn\n\t\t}\n\n\t\tthis.currentAnimation?.cancel()\n\t\tcontainer.style.overflow = 'hidden'\n\t\tcontainer.style.willChange = 'opacity'\n\t\tconst openKeyframes: Keyframe[] = [\n\t\t\t{ clipPath: this.closedClipPath, opacity: 0.95 },\n\t\t\t{ clipPath: this.openClipPath, opacity: 1 },\n\t\t]\n\t\tconst anim = container.animate(openKeyframes, {\n\t\t\tduration: SPRING_SNAPPY.duration,\n\t\t\teasing: SPRING_SNAPPY.easingFallback,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tthis.currentAnimation = anim\n\n\t\tfrom(anim.finished).pipe(\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tif (container.isConnected) {\n\t\t\t\t\tcontainer.style.clipPath = ''\n\t\t\t\t\tcontainer.style.overflow = ''\n\t\t\t\t\tcontainer.style.willChange = ''\n\t\t\t\t}\n\t\t\t}),\n\t\t\tcatchError(() => EMPTY),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\tthis.dispatchScopedEvent('window-toggle', { state: 'expanded' })\n\t}\n\n\tprivate animateClose() {\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\tif (reducedMotion$.value) {\n\t\t\tcontainer.style.clipPath = this.closedClipPath\n\t\t\tcontainer.style.overflow = 'hidden'\n\t\t\tthis.open = false\n\t\t\tconst body = this.bodyRef.value\n\t\t\tif (body) { body.inert = true; body.style.visibility = 'hidden' }\n\t\t\tthis.dispatchScopedEvent('window-toggle', { state: 'collapsed' })\n\t\t\treturn\n\t\t}\n\n\t\tthis.currentAnimation?.cancel()\n\t\tcontainer.style.overflow = 'hidden'\n\t\tcontainer.style.willChange = 'opacity'\n\t\tconst closeKeyframes: Keyframe[] = [\n\t\t\t{ clipPath: this.openClipPath, opacity: 1 },\n\t\t\t{ clipPath: this.closedClipPath, opacity: 0.95 },\n\t\t]\n\t\tconst anim = container.animate(closeKeyframes, {\n\t\t\tduration: Math.round(SPRING_SNAPPY.duration * 0.7),\n\t\t\teasing: 'cubic-bezier(0.4, 0, 0.8, 0.15)',\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tthis.currentAnimation = anim\n\n\t\tfrom(anim.finished).pipe(\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tthis.open = false\n\t\t\t\tcontainer.style.willChange = ''\n\t\t\t\tconst body = this.bodyRef.value\n\t\t\t\tif (body) { body.inert = true; body.style.visibility = 'hidden' }\n\t\t\t}),\n\t\t\tcatchError(() => EMPTY),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\n\t\tthis.dispatchScopedEvent('window-toggle', { state: 'collapsed' })\n\t}\n\n\t// ============================================\n\t// VISUAL STATE HELPERS\n\t// ============================================\n\n\t/** Apply drag visuals directly on DOM refs — avoids full Lit re-render for cursor + opacity */\n\tprivate applyDragVisuals(dragging: boolean) {\n\t\tconst head = this.headRef.value\n\t\tconst container = this.containerRef.value\n\t\tif (head) {\n\t\t\thead.classList.toggle('cursor-grabbing', dragging)\n\t\t\thead.classList.toggle('cursor-move', !dragging)\n\t\t}\n\t\tif (container) {\n\t\t\tcontainer.style.opacity = dragging ? '0.95' : ''\n\t\t}\n\t}\n\n\tprivate handleFocus = () => windowManager.focus(this.id)\n\n\tprivate handleHeadKeydown = (e: KeyboardEvent) => {\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\tthis.toggle()\n\t\t\treturn\n\t\t}\n\t\tif (e.key === 'ArrowUp' || e.key === 'ArrowDown' || e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n\t\t\te.preventDefault()\n\t\t\tconst step = e.shiftKey ? 20 : 5\n\t\t\tconst dx = e.key === 'ArrowRight' ? step : e.key === 'ArrowLeft' ? -step : 0\n\t\t\tconst dy = e.key === 'ArrowDown' ? step : e.key === 'ArrowUp' ? -step : 0\n\t\t\tthis.position = { x: this.position.x + dx, y: this.position.y + dy }\n\t\t\tthis.applyContainerPosition()\n\t\t\tthis.savePosition()\n\t\t}\n\t}\n\n\t// ============================================\n\t// PUBLIC API\n\t// ============================================\n\n\ttoggle() {\n\t\tif (this.open) this.animateClose()\n\t\telse this.animateOpen()\n\t}\n\n\texpand() {\n\t\tif (this.open) return\n\t\tthis.animateOpen()\n\t}\n\n\tclose() {\n\t\tif (!this.open) return\n\t\tthis.animateClose()\n\t}\n\n\t// ============================================\n\t// RENDER\n\t// ============================================\n\n\tprotected render(): unknown {\n\t\tconst isBottom = this.currentCorner.startsWith('bottom')\n\n\t\tconst containerClasses = classMap({\n\t\t\tfixed: true,\n\t\t\tflex: true,\n\t\t\t'flex-col': isBottom,\n\t\t\t'flex-col-reverse': !isBottom,\n\t\t\t'z-1000': true,\n\t\t\t'rounded-2xl': this.open,\n\t\t\t'rounded-[22px]': !this.open,\n\t\t\t'overflow-hidden': true,\n\t\t})\n\n\t\tconst containerStyles = styleMap({\n\t\t\twidth: this.panelWidth,\n\t\t\t'max-height': 'calc(100vh - 32px)',\n\t\t\t'pointer-events': 'none',\n\t\t})\n\n\t\tconst bodyStyles = styleMap({\n\t\t\t'pointer-events': this.open ? 'auto' : 'none',\n\t\t})\n\n\t\tconst headClasses = classMap({\n\t\t\t'h-full': true,\n\t\t\t'px-3': true,\n\t\t\tflex: true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'select-none': true,\n\t\t\t'cursor-move': true,\n\t\t})\n\n\t\treturn html`\n\t\t\t<schmancy-surface\n\t\t\t\t${ref(this.containerRef)}\n\t\t\t\ttype=\"glass\"\n\t\t\t\t.elevation=${this.elevation}\n\t\t\t\tclass=${containerClasses}\n\t\t\t\tstyle=${containerStyles}\n\t\t\t\taria-expanded=${this.open}\n\t\t\t\t@pointerdown=${this.handleFocus}\n\t\t\t>\n\t\t\t\t<!-- Details section (visually above summary for bottom corners) -->\n\t\t\t\t<section\n\t\t\t\t\t${ref(this.bodyRef)}\n\t\t\t\t\tclass=\"flex-1 min-h-0 overflow-hidden flex flex-col\"\n\t\t\t\t\tstyle=${bodyStyles}\n\t\t\t\t\trole=\"region\"\n\t\t\t\t\taria-label=\"Expandable content\"\n\t\t\t\t>\n\t\t\t\t\t${this.hasOpened ? html`<slot name=\"details\"></slot>` : nothing}\n\t\t\t\t</section>\n\n\t\t\t\t<!-- Summary section -- always interactive, always visible -->\n\t\t\t\t<section\n\t\t\t\t\tclass=\"shrink-0 bg-surface-lowest\"\n\t\t\t\t\tstyle=${styleMap({ 'pointer-events': 'auto', height: `${HEAD_HEIGHT}px` })}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\t${ref(this.headRef)}\n\t\t\t\t\t\t${cursorGlow({ radius: 200, intensity: 0.10 })}\n\t\t\t\t\t\tclass=${headClasses}\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\ttitle=\"Drag to move, click to expand\"\n\t\t\t\t\t\taria-label=\"${this.open ? 'Collapse window' : 'Expand window'}\"\n\t\t\t\t\t\t@keydown=${this.handleHeadKeydown}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"flex-1 min-w-0\">\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\twidth=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"\n\t\t\t\t\t\t\tclass=\"shrink-0 text-surface-on/40 transition-transform duration-200 ${this.open ? 'rotate-180' : ''}\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-window': SchmancyWindow\n\t}\n}\n"],"mappings":"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"}
|