@mhmo91/schmancy 0.10.25 → 0.10.27
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 +9 -18
- package/dist/agent/overlay.confirm-body-BZoUgkdK.js +4574 -0
- package/dist/agent/overlay.confirm-body-BZoUgkdK.js.map +1 -0
- package/dist/agent/schmancy.agent.js +3183 -4976
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +68 -24
- package/dist/{area-DrVE5pXW.cjs → area-BSVOYQDA.cjs} +1 -1
- package/dist/{area-DrVE5pXW.cjs.map → area-BSVOYQDA.cjs.map} +1 -1
- package/dist/{area-1EG1LrkX.js → area-C_Yvjmad.js} +1 -1
- package/dist/{area-1EG1LrkX.js.map → area-C_Yvjmad.js.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-6pdZxEab.cjs → autocomplete-B50VXUzw.cjs} +1 -1
- package/dist/{autocomplete-6pdZxEab.cjs.map → autocomplete-B50VXUzw.cjs.map} +1 -1
- package/dist/{autocomplete-nrIcCilw.js → autocomplete-C6I1mfOT.js} +2 -2
- package/dist/{autocomplete-nrIcCilw.js.map → autocomplete-C6I1mfOT.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +2 -2
- package/dist/avatar.js +3 -3
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat--fLgbDAE.js → boat-C94QZ4Zt.js} +27 -21
- package/dist/boat-C94QZ4Zt.js.map +1 -0
- package/dist/boat-DVQBNkk5.cjs +85 -0
- package/dist/boat-DVQBNkk5.cjs.map +1 -0
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/{busy-DshZcVZ4.js → busy--bNb42rM.js} +1 -1
- package/dist/{busy-DshZcVZ4.js.map → busy--bNb42rM.js.map} +1 -1
- package/dist/{busy-DVCIxBVf.cjs → busy-DuxFvEkY.cjs} +1 -1
- package/dist/{busy-DVCIxBVf.cjs.map → busy-DuxFvEkY.cjs.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-D9UJ7I6Z.js → button-B7b9L_h5.js} +26 -187
- package/dist/button-B7b9L_h5.js.map +1 -0
- package/dist/{button-JrTMzwHY.cjs → button-DAFZ5A4O.cjs} +2 -60
- package/dist/button-DAFZ5A4O.cjs.map +1 -0
- package/dist/button.cjs +59 -1
- package/dist/button.cjs.map +1 -0
- package/dist/button.js +170 -2
- package/dist/button.js.map +1 -0
- package/dist/{card-CTotavhH.cjs → card-DZPd24Sn.cjs} +1 -1
- package/dist/{card-CTotavhH.cjs.map → card-DZPd24Sn.cjs.map} +1 -1
- package/dist/{card-BvCFuX3J.js → card-ixzxOW-Q.js} +1 -1
- package/dist/{card-BvCFuX3J.js.map → card-ixzxOW-Q.js.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-By4fFmjt.cjs → checkbox-Bi_Fm2mf.cjs} +1 -1
- package/dist/{checkbox-By4fFmjt.cjs.map → checkbox-Bi_Fm2mf.cjs.map} +1 -1
- package/dist/{checkbox-GPsdCUbs.js → checkbox-DdGpepTh.js} +1 -1
- package/dist/{checkbox-GPsdCUbs.js.map → checkbox-DdGpepTh.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-27umqnat.js → chips-DLTynyVB.js} +3 -3
- package/dist/{chips-27umqnat.js.map → chips-DLTynyVB.js.map} +1 -1
- package/dist/{chips-BZf9sGA8.cjs → chips-DWQMZErr.cjs} +1 -1
- package/dist/{chips-BZf9sGA8.cjs.map → chips-DWQMZErr.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +1 -1
- package/dist/connectivity.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-BJnLWCRF.cjs → date-range-BgGQyxOC.cjs} +1 -1
- package/dist/{date-range-BJnLWCRF.cjs.map → date-range-BgGQyxOC.cjs.map} +1 -1
- package/dist/{date-range-wDVHcr0u.js → date-range-CT6ckjmV.js} +2 -2
- package/dist/{date-range-wDVHcr0u.js.map → date-range-CT6ckjmV.js.map} +1 -1
- package/dist/{date-range-inline-BNbbRfIA.js → date-range-inline-Ho3CENTh.js} +1 -1
- package/dist/{date-range-inline-BNbbRfIA.js.map → date-range-inline-Ho3CENTh.js.map} +1 -1
- package/dist/{date-range-inline-B6uKUliV.cjs → date-range-inline-nPWIs-3C.cjs} +1 -1
- package/dist/{date-range-inline-B6uKUliV.cjs.map → date-range-inline-nPWIs-3C.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-DNrWIes6.cjs → details-BnRWMZdt.cjs} +1 -1
- package/dist/{details-DNrWIes6.cjs.map → details-BnRWMZdt.cjs.map} +1 -1
- package/dist/{details-Ckxpwacj.js → details-CcMTvYo7.js} +2 -2
- package/dist/{details-Ckxpwacj.js.map → details-CcMTvYo7.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{directives-F15SJZUR.cjs → directives-BkSqmLBV.cjs} +22 -20
- package/dist/directives-BkSqmLBV.cjs.map +1 -0
- package/dist/{directives-BBMqe8x3.js → directives-DgPbz0lQ.js} +142 -198
- package/dist/directives-DgPbz0lQ.js.map +1 -0
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +7 -6
- package/dist/discovery.cjs +1 -1
- package/dist/discovery.js +1 -1
- package/dist/{discovery.service-CVDXO9rH.cjs.map → discovery.service-CIa3Eeuk.cjs.map} +1 -1
- package/dist/{discovery.service-COmbHaoI.js.map → discovery.service-DZFxtRwW.js.map} +1 -1
- package/dist/{divider-Cde33ivs.cjs → divider-C6yJSL1c.cjs} +1 -1
- package/dist/{divider-Cde33ivs.cjs.map → divider-C6yJSL1c.cjs.map} +1 -1
- package/dist/{divider-BzcZGo4S.js → divider-CZCj0ioH.js} +1 -1
- package/dist/{divider-BzcZGo4S.js.map → divider-CZCj0ioH.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 +1 -1
- package/dist/{expand-DI144OzN.js → expand-Cc6ogXsR.js} +2 -2
- package/dist/{expand-DI144OzN.js.map → expand-Cc6ogXsR.js.map} +1 -1
- package/dist/{expand-Db4V0jj-.cjs → expand-D4EhwOYh.cjs} +1 -1
- package/dist/{expand-Db4V0jj-.cjs.map → expand-D4EhwOYh.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{float--RScf9BZ.cjs → float-B8EPc_OG.cjs} +1 -1
- package/dist/{float--RScf9BZ.cjs.map → float-B8EPc_OG.cjs.map} +1 -1
- package/dist/{float-DIyzy1c2.js → float-BvI3HTtB.js} +1 -1
- package/dist/{float-DIyzy1c2.js.map → float-BvI3HTtB.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/form-C4eFgFwF.cjs +42 -0
- package/dist/{form-DWNpOsIU.cjs.map → form-C4eFgFwF.cjs.map} +1 -1
- package/dist/{form-RtXH8UHQ.js → form-CGe9rVox.js} +8 -8
- package/dist/{form-RtXH8UHQ.js.map → form-CGe9rVox.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +6 -6
- package/dist/gravity-6pL6CfIr.cjs +1 -0
- package/dist/gravity-6pL6CfIr.cjs.map +1 -0
- package/dist/gravity-sVK3zGBF.js +46 -0
- package/dist/gravity-sVK3zGBF.js.map +1 -0
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{hashContent-Dgmzc32o.js.map → hashContent-BqU6v1Xr.js.map} +1 -1
- package/dist/{hashContent-Dh1VzIAb.cjs.map → hashContent-iRZJJWtE.cjs.map} +1 -1
- package/dist/{icons-DXanGDZ_.js → icon-B1eZr2ZL.js} +1 -1
- package/dist/icon-B1eZr2ZL.js.map +1 -0
- package/dist/{icons-bNxlWLlk.cjs → icon-CgIXAvKI.cjs} +1 -1
- package/dist/{icons-DXanGDZ_.js.map → icon-CgIXAvKI.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-B1XWRaLC.cjs → iframe-BO3BpRLH.cjs} +1 -1
- package/dist/{iframe-B1XWRaLC.cjs.map → iframe-BO3BpRLH.cjs.map} +1 -1
- package/dist/{iframe-BlHK0cjy.js → iframe-CmpAZc61.js} +1 -1
- package/dist/{iframe-BlHK0cjy.js.map → iframe-CmpAZc61.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 +49 -47
- package/dist/{input-C-_XU9AX.cjs → input-5YL2oUBr.cjs} +1 -1
- package/dist/{input-C-_XU9AX.cjs.map → input-5YL2oUBr.cjs.map} +1 -1
- package/dist/{input-CiGa8Dkl.js → input-_Hft9vov.js} +1 -1
- package/dist/{input-CiGa8Dkl.js.map → input-_Hft9vov.js.map} +1 -1
- package/dist/{input-chip-l--zCMGR.js → input-chip-BNTojQT6.js} +1 -1
- package/dist/{input-chip-l--zCMGR.js.map → input-chip-BNTojQT6.js.map} +1 -1
- package/dist/{input-chip-5aYnuRZ_.cjs → input-chip-DKMNpcED.cjs} +1 -1
- package/dist/{input-chip-5aYnuRZ_.cjs.map → input-chip-DKMNpcED.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 +2 -2
- package/dist/kbd.cjs +1 -1
- package/dist/kbd.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{lightbox-D9oiu1Nv.js → lightbox-CKlYcnHV.js} +1 -1
- package/dist/{lightbox-D9oiu1Nv.js.map → lightbox-CKlYcnHV.js.map} +1 -1
- package/dist/{lightbox-CfRDkeeb.cjs → lightbox-t4dvb8_A.cjs} +1 -1
- package/dist/{lightbox-CfRDkeeb.cjs.map → lightbox-t4dvb8_A.cjs.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-CDJi3_Ut.cjs → list-21mWtDKg.cjs} +4 -4
- package/dist/list-21mWtDKg.cjs.map +1 -0
- package/dist/{list-BOlRka4v.js → list-B6QhxgRJ.js} +4 -7
- package/dist/list-B6QhxgRJ.js.map +1 -0
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{magnetic-mHXl54Z8.js.map → magnetic-B2VKNfDu.js.map} +1 -1
- package/dist/{magnetic-D-ph029G.cjs.map → magnetic-MQ3HMHJi.cjs.map} +1 -1
- package/dist/{menu-XyrLmCi_.js → menu-CjOgPSOG.js} +2 -2
- package/dist/{menu-XyrLmCi_.js.map → menu-CjOgPSOG.js.map} +1 -1
- package/dist/{menu-CJaDL2cd.cjs → menu-Cu5G4vcR.cjs} +1 -1
- package/dist/{menu-CJaDL2cd.cjs.map → menu-Cu5G4vcR.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins-8dT5j6CS.js +627 -0
- package/dist/mixins-8dT5j6CS.js.map +1 -0
- package/dist/mixins-BF3Vj8_c.cjs +242 -0
- package/dist/mixins-BF3Vj8_c.cjs.map +1 -0
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +1 -1
- 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 +7 -5
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +52 -38
- package/dist/navigation-rail.js.map +1 -1
- package/dist/notification-CDKBKh63.js +243 -0
- package/dist/notification-CDKBKh63.js.map +1 -0
- package/dist/notification-CcNoBFEJ.cjs +24 -0
- package/dist/notification-CcNoBFEJ.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-Vpy4UQ-D.js → option-BWfmDJvm.js} +1 -1
- package/dist/{option-Vpy4UQ-D.js.map → option-BWfmDJvm.js.map} +1 -1
- package/dist/{option-nRk4MuXH.cjs → option-DejeqOad.cjs} +1 -1
- package/dist/{option-nRk4MuXH.cjs.map → option-DejeqOad.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-jlkcrt8F.js → overlay-D3c_NY18.js} +214 -265
- package/dist/overlay-D3c_NY18.js.map +1 -0
- package/dist/overlay-Dv2utO4C.cjs +43 -0
- package/dist/overlay-Dv2utO4C.cjs.map +1 -0
- package/dist/overlay.cjs +1 -1
- package/dist/overlay.confirm-body-B2ntyquG.cjs +79 -0
- package/dist/overlay.confirm-body-B2ntyquG.cjs.map +1 -0
- package/dist/overlay.confirm-body-B_v0ivkn.js +159 -0
- package/dist/overlay.confirm-body-B_v0ivkn.js.map +1 -0
- package/dist/overlay.js +3 -3
- package/dist/overlay.service-B3FjXCqc.js +143 -0
- package/dist/overlay.service-B3FjXCqc.js.map +1 -0
- package/dist/overlay.service-BkSeqXIv.cjs +1 -0
- package/dist/overlay.service-BkSeqXIv.cjs.map +1 -0
- package/dist/{progress-CAp_4jtq.cjs → progress-6_rb3Ah9.cjs} +1 -1
- package/dist/{progress-CAp_4jtq.cjs.map → progress-6_rb3Ah9.cjs.map} +1 -1
- package/dist/{progress-8Bn88GK_.js → progress-CFcmO0wv.js} +1 -1
- package/dist/{progress-8Bn88GK_.js.map → progress-CFcmO0wv.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-GNHA7qJR.js → radio-group-Bd8y9QpX.js} +1 -1
- package/dist/{radio-group-GNHA7qJR.js.map → radio-group-Bd8y9QpX.js.map} +1 -1
- package/dist/{radio-group-CN44mAoc.cjs → radio-group-_WZg8EKM.cjs} +1 -1
- package/dist/{radio-group-CN44mAoc.cjs.map → radio-group-_WZg8EKM.cjs.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 +1 -1
- package/dist/{rxjs-utils-CaC-tdot.cjs.map → rxjs-utils-Csnks202.cjs.map} +1 -1
- package/dist/{rxjs-utils-BXpvHN4-.js.map → rxjs-utils-d-ivVN84.js.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{select-DZNns5Pa.cjs → select-BaioT3yY.cjs} +2 -2
- package/dist/{select-DZNns5Pa.cjs.map → select-BaioT3yY.cjs.map} +1 -1
- package/dist/{select-BnuXRHS4.js → select-Czpl1ztD.js} +3 -3
- package/dist/{select-BnuXRHS4.js.map → select-Czpl1ztD.js.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 +1 -1
- package/dist/skills/SKILL.md +1 -1
- package/dist/skills/list.md +0 -1
- package/dist/skills/schmancy/SKILL.md +1 -1
- package/dist/skills/schmancy/list.md +0 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{splash-screen-DeoPRrOu.cjs → splash-screen-3FtgdVy3.cjs} +1 -1
- package/dist/{splash-screen-DeoPRrOu.cjs.map → splash-screen-3FtgdVy3.cjs.map} +1 -1
- package/dist/{splash-screen-CUP_elaT.js → splash-screen-YtTVkJg8.js} +1 -1
- package/dist/{splash-screen-CUP_elaT.js.map → splash-screen-YtTVkJg8.js.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-DQ4wr0qq.cjs → src-0LIdvAX6.cjs} +8 -8
- package/dist/{src-DQ4wr0qq.cjs.map → src-0LIdvAX6.cjs.map} +1 -1
- package/dist/{src-B1VkLX3l.js → src-BJHws7IS.js} +37 -37
- package/dist/{src-B1VkLX3l.js.map → src-BJHws7IS.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-LkaZQXZn.cjs → surface-BNvxLEDN.cjs} +1 -1
- package/dist/surface-BNvxLEDN.cjs.map +1 -0
- package/dist/{surface-hOvkrjGN.js → surface-CVxyQPln.js} +1 -1
- package/dist/surface-CVxyQPln.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 +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-CfwIHhHo.js → tabs-CnPXvZuZ.js} +1 -1
- package/dist/{tabs-CfwIHhHo.js.map → tabs-CnPXvZuZ.js.map} +1 -1
- package/dist/{tabs-bplzstz6.cjs → tabs-DTU7748z.cjs} +1 -1
- package/dist/{tabs-bplzstz6.cjs.map → tabs-DTU7748z.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-hrDp5gQq.cjs → textarea-Bqth6Q8P.cjs} +1 -1
- package/dist/{textarea-hrDp5gQq.cjs.map → textarea-Bqth6Q8P.cjs.map} +1 -1
- package/dist/{textarea-C1A5xuw9.js → textarea-mQPsppmd.js} +1 -1
- package/dist/{textarea-C1A5xuw9.js.map → textarea-mQPsppmd.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-BniFOMEo.js → theme-BJqpv4cG.js} +2 -2
- package/dist/{theme-BniFOMEo.js.map → theme-BJqpv4cG.js.map} +1 -1
- package/dist/{theme-DmR6PKV8.cjs → theme-D4HGKt7N.cjs} +1 -1
- package/dist/{theme-DmR6PKV8.cjs.map → theme-D4HGKt7N.cjs.map} +1 -1
- package/dist/{theme-button--ruZIb0T.js → theme-button-Jap7G_IH.js} +1 -1
- package/dist/{theme-button--ruZIb0T.js.map → theme-button-Jap7G_IH.js.map} +1 -1
- package/dist/{theme-button-a0LgZ7hQ.cjs → theme-button-LP-Dgr17.cjs} +1 -1
- package/dist/{theme-button-a0LgZ7hQ.cjs.map → theme-button-LP-Dgr17.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.interface-B5xjEk74.cjs.map → theme.interface-CSt7JUBD.cjs.map} +1 -1
- package/dist/{theme.interface-DVEw3s8m.js.map → theme.interface-odQEpZZH.js.map} +1 -1
- package/dist/theme.js +3 -3
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/typography-BJMm6b0b.js +358 -0
- package/dist/typography-BJMm6b0b.js.map +1 -0
- package/dist/typography-Bc4MmSal.cjs +282 -0
- package/dist/typography-Bc4MmSal.cjs.map +1 -0
- package/dist/typography.cjs +1 -282
- package/dist/typography.js +2 -358
- package/dist/{utils-CVWUrECT.cjs.map → utils-DTa3QHxk.cjs.map} +1 -1
- package/dist/{utils-578eFTx4.js.map → utils-H8wNknWC.js.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +1 -1
- package/dist/{window-Bp7zWZpu.cjs → window-CNu_WnsY.cjs} +1 -1
- package/dist/{window-Bp7zWZpu.cjs.map → window-CNu_WnsY.cjs.map} +1 -1
- package/dist/{window-BT9JecWy.js → window-DZTjkE24.js} +1 -1
- package/dist/{window-BT9JecWy.js.map → window-DZTjkE24.js.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/SKILL.md +1 -1
- package/skills/schmancy/list.md +0 -1
- package/src/boat/boat.ts +33 -23
- package/src/directives/nebula.ts +64 -61
- package/src/list/list.ts +1 -12
- package/src/navigation-rail/navigation-rail.ts +558 -490
- package/src/notification/notification-service.ts +81 -263
- package/src/notification/notification.scss +93 -50
- package/src/notification/notification.ts +32 -69
- package/src/overlay/overlay.component.ts +99 -158
- package/src/overlay/overlay.confirm-body.ts +106 -61
- package/src/overlay/overlay.service.ts +81 -108
- package/src/surface/surface.styles.ts +0 -17
- package/src/surface/surface.ts +5 -7
- package/types/mixins/surface.mixin.d.ts +0 -3
- package/types/src/directives/nebula.d.ts +1 -1
- package/types/src/list/list.d.ts +0 -9
- package/types/src/navigation-rail/navigation-rail.d.ts +21 -1
- package/types/src/notification/notification-service.d.ts +3 -86
- package/types/src/notification/notification.d.ts +1 -1
- package/types/src/overlay/overlay.component.d.ts +1 -2
- package/types/src/overlay/overlay.confirm-body.d.ts +8 -4
- package/types/src/surface/surface.d.ts +5 -6
- package/types/src/surface/surface.styles.d.ts +0 -4
- package/dist/agent/overlay.confirm-body-DozUyDYx.js +0 -2859
- package/dist/agent/overlay.confirm-body-DozUyDYx.js.map +0 -1
- package/dist/boat--fLgbDAE.js.map +0 -1
- package/dist/boat-BIB-gPqy.cjs +0 -80
- package/dist/boat-BIB-gPqy.cjs.map +0 -1
- package/dist/button-D9UJ7I6Z.js.map +0 -1
- package/dist/button-JrTMzwHY.cjs.map +0 -1
- package/dist/directives-BBMqe8x3.js.map +0 -1
- package/dist/directives-F15SJZUR.cjs.map +0 -1
- package/dist/form-DWNpOsIU.cjs +0 -42
- package/dist/icons-bNxlWLlk.cjs.map +0 -1
- package/dist/list-BOlRka4v.js.map +0 -1
- package/dist/list-CDJi3_Ut.cjs.map +0 -1
- package/dist/mixins-CsYsIJOI.cjs +0 -254
- package/dist/mixins-CsYsIJOI.cjs.map +0 -1
- package/dist/mixins-DySzfmal.js +0 -642
- package/dist/mixins-DySzfmal.js.map +0 -1
- package/dist/notification-CHrEY4u8.js +0 -306
- package/dist/notification-CHrEY4u8.js.map +0 -1
- package/dist/notification-DKp4tjaB.cjs +0 -23
- package/dist/notification-DKp4tjaB.cjs.map +0 -1
- package/dist/overlay-HNrWZ4sB.cjs +0 -81
- package/dist/overlay-HNrWZ4sB.cjs.map +0 -1
- package/dist/overlay-jlkcrt8F.js.map +0 -1
- package/dist/overlay.confirm-body-B8dFI3cj.cjs +0 -45
- package/dist/overlay.confirm-body-B8dFI3cj.cjs.map +0 -1
- package/dist/overlay.confirm-body-CYShkjI6.js +0 -100
- package/dist/overlay.confirm-body-CYShkjI6.js.map +0 -1
- package/dist/overlay.service-BTPn7Uv7.cjs +0 -1
- package/dist/overlay.service-BTPn7Uv7.cjs.map +0 -1
- package/dist/overlay.service-BqhhxVJp.js +0 -146
- package/dist/overlay.service-BqhhxVJp.js.map +0 -1
- package/dist/surface-LkaZQXZn.cjs.map +0 -1
- package/dist/surface-hOvkrjGN.js.map +0 -1
- package/dist/typography.cjs.map +0 -1
- package/dist/typography.js.map +0 -1
- /package/dist/{discovery.service-CVDXO9rH.cjs → discovery.service-CIa3Eeuk.cjs} +0 -0
- /package/dist/{discovery.service-COmbHaoI.js → discovery.service-DZFxtRwW.js} +0 -0
- /package/dist/{hashContent-Dgmzc32o.js → hashContent-BqU6v1Xr.js} +0 -0
- /package/dist/{hashContent-Dh1VzIAb.cjs → hashContent-iRZJJWtE.cjs} +0 -0
- /package/dist/{magnetic-mHXl54Z8.js → magnetic-B2VKNfDu.js} +0 -0
- /package/dist/{magnetic-D-ph029G.cjs → magnetic-MQ3HMHJi.cjs} +0 -0
- /package/dist/{rxjs-utils-CaC-tdot.cjs → rxjs-utils-Csnks202.cjs} +0 -0
- /package/dist/{rxjs-utils-BXpvHN4-.js → rxjs-utils-d-ivVN84.js} +0 -0
- /package/dist/{theme.interface-B5xjEk74.cjs → theme.interface-CSt7JUBD.cjs} +0 -0
- /package/dist/{theme.interface-DVEw3s8m.js → theme.interface-odQEpZZH.js} +0 -0
- /package/dist/{utils-CVWUrECT.cjs → utils-DTa3QHxk.cjs} +0 -0
- /package/dist/{utils-578eFTx4.js → utils-H8wNknWC.js} +0 -0
|
@@ -8,40 +8,22 @@ import style from './notification.scss?inline'
|
|
|
8
8
|
|
|
9
9
|
export type NotificationType = 'info' | 'success' | 'warning' | 'error'
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* Calculate a point on an arc between two points
|
|
13
|
-
*/
|
|
14
|
-
function calculateArcPoint(
|
|
15
|
-
start: { x: number; y: number },
|
|
16
|
-
end: { x: number; y: number },
|
|
17
|
-
arcDirection: 'up' | 'down' = 'up',
|
|
18
|
-
intensity: number = 0.3,
|
|
19
|
-
): { x: number; y: number } {
|
|
20
|
-
const midX = (start.x + end.x) / 2
|
|
21
|
-
const midY = (start.y + end.y) / 2
|
|
22
|
-
const distance = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2))
|
|
23
|
-
const arcHeight = Math.min(distance * intensity, 150)
|
|
24
|
-
return {
|
|
25
|
-
x: midX,
|
|
26
|
-
y: arcDirection === 'up' ? midY - arcHeight : midY + arcHeight,
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
11
|
/**
|
|
31
12
|
* @fires close - When notification is closed
|
|
32
13
|
*/
|
|
33
14
|
@customElement('sch-notification')
|
|
34
15
|
export default class SchmancyNotification extends SchmancyElement {
|
|
35
|
-
static styles = [unsafeCSS(style)]
|
|
16
|
+
static styles = [unsafeCSS(style)]
|
|
36
17
|
|
|
37
18
|
@property({ type: String }) title = ''
|
|
38
19
|
@property({ type: String }) message = ''
|
|
39
20
|
@property({ type: String }) type: NotificationType = 'info'
|
|
40
21
|
@property({ type: Boolean }) closable = true
|
|
41
|
-
@property({ type: Number }) duration = 5000
|
|
22
|
+
@property({ type: Number }) duration = 5000
|
|
42
23
|
@property({ type: String }) id = `notification-${Date.now()}-${Math.floor(Math.random() * 10000)}`
|
|
43
24
|
@property({ type: Boolean }) playSound = true
|
|
44
|
-
@property({ type: Boolean }) showProgress = false
|
|
25
|
+
@property({ type: Boolean }) showProgress = false
|
|
26
|
+
// startPosition retained for API compatibility — not used in entrance animation
|
|
45
27
|
@property({ type: Object }) startPosition: { x: number; y: number } = { x: 0, y: 0 }
|
|
46
28
|
|
|
47
29
|
@state() private _visible = true
|
|
@@ -57,14 +39,12 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
57
39
|
connectedCallback() {
|
|
58
40
|
super.connectedCallback()
|
|
59
41
|
|
|
60
|
-
// Set fixed positioning for blackbird animation
|
|
61
42
|
this.style.position = 'fixed'
|
|
62
43
|
this.style.top = '16px'
|
|
63
44
|
this.style.right = '16px'
|
|
64
45
|
this.style.zIndex = '10001'
|
|
65
46
|
this.style.opacity = '0'
|
|
66
47
|
|
|
67
|
-
// Animate in after first render
|
|
68
48
|
this.updateComplete.then(() => {
|
|
69
49
|
this.animateIn()
|
|
70
50
|
return
|
|
@@ -81,34 +61,17 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
81
61
|
}
|
|
82
62
|
|
|
83
63
|
private async animateIn() {
|
|
84
|
-
|
|
85
|
-
const rect = this.getBoundingClientRect()
|
|
86
|
-
const targetX = rect.left + rect.width / 2
|
|
87
|
-
const targetY = rect.top + rect.height / 2
|
|
88
|
-
|
|
89
|
-
// Calculate arc point for upward arc
|
|
90
|
-
const arcPoint = calculateArcPoint(this.startPosition, { x: targetX, y: targetY }, 'up', 0.3)
|
|
91
|
-
|
|
92
|
-
// Animate from click position to final position with arc
|
|
64
|
+
const reduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches
|
|
93
65
|
await this.animate(
|
|
94
|
-
|
|
95
|
-
{
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
transform: `translate(${arcPoint.x - targetX}px, ${arcPoint.y - targetY}px) scale(0.6)`,
|
|
101
|
-
opacity: 0.9,
|
|
102
|
-
offset: 0.5,
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
transform: 'translate(0, 0) scale(1)',
|
|
106
|
-
opacity: 1,
|
|
107
|
-
},
|
|
108
|
-
],
|
|
66
|
+
reduced
|
|
67
|
+
? [{ opacity: 0 }, { opacity: 1 }]
|
|
68
|
+
: [
|
|
69
|
+
{ transform: 'translateX(40px) scale(0.96)', opacity: 0 },
|
|
70
|
+
{ transform: 'translateX(0) scale(1)', opacity: 1 },
|
|
71
|
+
],
|
|
109
72
|
{
|
|
110
|
-
duration:
|
|
111
|
-
easing: 'cubic-bezier(0.
|
|
73
|
+
duration: reduced ? 200 : 360,
|
|
74
|
+
easing: 'cubic-bezier(0.22, 1, 0.36, 1)',
|
|
112
75
|
fill: 'forwards',
|
|
113
76
|
},
|
|
114
77
|
).finished
|
|
@@ -191,14 +154,13 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
191
154
|
this._closing = true
|
|
192
155
|
this._visible = false
|
|
193
156
|
|
|
194
|
-
// Animate out before dispatching close event
|
|
195
157
|
await this.animate(
|
|
196
158
|
[
|
|
197
|
-
{ transform: '
|
|
198
|
-
{ transform: '
|
|
159
|
+
{ transform: 'translateX(0) scale(1)', opacity: 1 },
|
|
160
|
+
{ transform: 'translateX(20px) scale(0.98)', opacity: 0 },
|
|
199
161
|
],
|
|
200
162
|
{
|
|
201
|
-
duration:
|
|
163
|
+
duration: 180,
|
|
202
164
|
easing: 'cubic-bezier(0.4, 0, 1, 1)',
|
|
203
165
|
fill: 'forwards',
|
|
204
166
|
},
|
|
@@ -213,16 +175,16 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
213
175
|
)
|
|
214
176
|
}
|
|
215
177
|
|
|
216
|
-
private
|
|
178
|
+
private _getTypeLabel(): string {
|
|
217
179
|
switch (this.type) {
|
|
218
180
|
case 'success':
|
|
219
|
-
return '
|
|
181
|
+
return 'SUCCESS'
|
|
220
182
|
case 'warning':
|
|
221
|
-
return '
|
|
183
|
+
return 'WARNING'
|
|
222
184
|
case 'error':
|
|
223
|
-
return '
|
|
185
|
+
return 'ERROR'
|
|
224
186
|
default:
|
|
225
|
-
return '
|
|
187
|
+
return 'INFO'
|
|
226
188
|
}
|
|
227
189
|
}
|
|
228
190
|
|
|
@@ -236,24 +198,25 @@ export default class SchmancyNotification extends SchmancyElement {
|
|
|
236
198
|
@mouseenter=${this._handleMouseEnter}
|
|
237
199
|
@mouseleave=${this._handleMouseLeave}
|
|
238
200
|
>
|
|
239
|
-
|
|
201
|
+
${this.showProgress || this.duration > 0
|
|
202
|
+
? html`<schmancy-progress
|
|
203
|
+
class="progress"
|
|
204
|
+
size="xs"
|
|
205
|
+
.value=${this._progress}
|
|
206
|
+
?indeterminate=${this.showProgress && this.duration === 0}
|
|
207
|
+
></schmancy-progress>`
|
|
208
|
+
: ''}
|
|
209
|
+
<div class="accent-rail"></div>
|
|
240
210
|
<div class="content">
|
|
211
|
+
<span class="type-tag">${this._getTypeLabel()}</span>
|
|
241
212
|
${this.title ? html`<div class="title">${this.title}</div>` : ''}
|
|
242
213
|
<div class="message">${this.message}</div>
|
|
243
214
|
</div>
|
|
244
215
|
${this.closable
|
|
245
216
|
? html`
|
|
246
|
-
<button class="close" aria-label="Close notification" @click=${this.close}
|
|
217
|
+
<button class="close" aria-label="Close notification" @click=${this.close}>×</button>
|
|
247
218
|
`
|
|
248
219
|
: ''}
|
|
249
|
-
${this.showProgress || this.duration > 0
|
|
250
|
-
? html`<schmancy-progress
|
|
251
|
-
class="progress"
|
|
252
|
-
size="xs"
|
|
253
|
-
.value=${this._progress}
|
|
254
|
-
?indeterminate=${this.showProgress && this.duration === 0}
|
|
255
|
-
></schmancy-progress>`
|
|
256
|
-
: ''}
|
|
257
220
|
</div>
|
|
258
221
|
`
|
|
259
222
|
}
|
|
@@ -5,6 +5,7 @@ import { when } from 'lit/directives/when.js'
|
|
|
5
5
|
import {
|
|
6
6
|
debounceTime,
|
|
7
7
|
distinctUntilChanged,
|
|
8
|
+
EMPTY,
|
|
8
9
|
filter,
|
|
9
10
|
fromEvent,
|
|
10
11
|
map,
|
|
@@ -72,67 +73,29 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
72
73
|
:host {
|
|
73
74
|
position: fixed;
|
|
74
75
|
inset: 0;
|
|
75
|
-
z-index:
|
|
76
|
+
z-index: 10000;
|
|
76
77
|
display: none;
|
|
77
78
|
pointer-events: none;
|
|
78
79
|
}
|
|
79
80
|
:host([active]) {
|
|
80
81
|
display: block;
|
|
81
82
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
inset: 0;
|
|
85
|
-
pointer-events: none;
|
|
86
|
-
}
|
|
83
|
+
/* Vertical-gradient scrim — Tailwind's bg-gradient utilities cannot reach
|
|
84
|
+
* these color-mix percentages with sufficient control. */
|
|
87
85
|
.backdrop {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
.surface {
|
|
96
|
-
position: fixed;
|
|
97
|
-
pointer-events: auto;
|
|
98
|
-
max-width: calc(100vw - 2rem);
|
|
99
|
-
max-height: 90dvh;
|
|
100
|
-
overflow: auto;
|
|
101
|
-
border-radius: var(--schmancy-sys-shape-corner-large, 16px);
|
|
102
|
-
background: var(--schmancy-sys-color-surface, #ffffff);
|
|
103
|
-
color: var(--schmancy-sys-color-on-surface, #1a1a1a);
|
|
104
|
-
box-shadow: 0 24px 64px -16px rgba(0, 0, 0, 0.35);
|
|
105
|
-
padding: var(--schmancy-overlay-padding, 1.5rem);
|
|
106
|
-
}
|
|
107
|
-
.surface[data-layout='centered'] {
|
|
108
|
-
top: 50%;
|
|
109
|
-
left: 50%;
|
|
110
|
-
transform: translate(-50%, -50%);
|
|
111
|
-
}
|
|
112
|
-
.surface[data-layout='sheet'] {
|
|
113
|
-
left: 0;
|
|
114
|
-
right: 0;
|
|
115
|
-
bottom: 0;
|
|
116
|
-
max-width: none;
|
|
117
|
-
width: 100%;
|
|
118
|
-
border-radius: var(--schmancy-sys-shape-corner-large, 16px) var(--schmancy-sys-shape-corner-large, 16px) 0 0;
|
|
119
|
-
padding-bottom: env(safe-area-inset-bottom);
|
|
120
|
-
}
|
|
121
|
-
.surface[data-layout='anchored'] {
|
|
122
|
-
max-width: min(480px, calc(100vw - 2rem));
|
|
123
|
-
box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.28);
|
|
86
|
+
background: linear-gradient(
|
|
87
|
+
to bottom,
|
|
88
|
+
color-mix(in srgb, var(--schmancy-sys-color-scrim) 18%, transparent) 0%,
|
|
89
|
+
color-mix(in srgb, var(--schmancy-sys-color-scrim) 56%, transparent) 100%
|
|
90
|
+
);
|
|
91
|
+
-webkit-backdrop-filter: blur(16px) saturate(160%);
|
|
92
|
+
backdrop-filter: blur(16px) saturate(160%);
|
|
124
93
|
}
|
|
125
|
-
/* Popover top-layer surfaces
|
|
126
|
-
* display to avoid two surfaces rendering during transitions. */
|
|
94
|
+
/* Popover top-layer surfaces — UA defaults push surface off-screen. */
|
|
127
95
|
.surface:popover-open {
|
|
128
96
|
margin: 0;
|
|
129
97
|
border: 0;
|
|
130
98
|
}
|
|
131
|
-
@media (prefers-reduced-motion: reduce) {
|
|
132
|
-
.surface {
|
|
133
|
-
box-shadow: var(--schmancy-sys-elevation-2, 0 2px 6px rgba(0, 0, 0, 0.2));
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
99
|
`]
|
|
137
100
|
|
|
138
101
|
@property({ type: String, reflect: true }) layout: OverlayLayout = 'centered'
|
|
@@ -223,10 +186,10 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
223
186
|
})
|
|
224
187
|
// Pair with Popover API to get native top-layer + light-dismiss.
|
|
225
188
|
const popoverCleanup = positionPopoverAPI(this._surface)
|
|
226
|
-
const
|
|
189
|
+
const cssAnchorTeardown = this._positionerTeardown
|
|
227
190
|
this._positionerTeardown = () => {
|
|
228
191
|
popoverCleanup()
|
|
229
|
-
|
|
192
|
+
cssAnchorTeardown?.()
|
|
230
193
|
}
|
|
231
194
|
} else if (this.tier === 'popover-fui' && this._resolvedAnchor) {
|
|
232
195
|
const popoverCleanup = positionPopoverAPI(this._surface)
|
|
@@ -265,7 +228,7 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
265
228
|
this.wireResizeObserver(mount)
|
|
266
229
|
|
|
267
230
|
// Play entrance animations.
|
|
268
|
-
await this.
|
|
231
|
+
await this.playAnimations('in')
|
|
269
232
|
}
|
|
270
233
|
|
|
271
234
|
/** Play exit animations then dismiss. */
|
|
@@ -273,7 +236,7 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
273
236
|
if (this._closing || !this._mounted) return
|
|
274
237
|
this._closing = true
|
|
275
238
|
try {
|
|
276
|
-
await this.
|
|
239
|
+
await this.playAnimations('out')
|
|
277
240
|
} catch {
|
|
278
241
|
// animation cancelled mid-flight — not an error.
|
|
279
242
|
}
|
|
@@ -296,14 +259,24 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
296
259
|
|
|
297
260
|
protected render(): TemplateResult {
|
|
298
261
|
if (!this._active) return html``
|
|
262
|
+
const baseClasses =
|
|
263
|
+
'surface fixed pointer-events-auto overflow-auto ' +
|
|
264
|
+
'bg-surface-container/85 text-surface-on backdrop-blur-md ' +
|
|
265
|
+
'border border-surface-on/8'
|
|
266
|
+
const layoutClasses =
|
|
267
|
+
this.layout === 'centered'
|
|
268
|
+
? 'top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-w-[min(calc(100vw-2rem),560px)] max-h-[90dvh] rounded-3xl shadow-overlay'
|
|
269
|
+
: this.layout === 'sheet'
|
|
270
|
+
? 'left-0 right-0 bottom-0 w-full max-h-[90dvh] rounded-t-[28px] shadow-overlay'
|
|
271
|
+
: 'max-w-[min(480px,calc(100vw-2rem))] max-h-[90dvh] rounded-3xl shadow-overlay-anchored'
|
|
299
272
|
return html`
|
|
300
|
-
<div class="shell" part="shell">
|
|
273
|
+
<div class="shell fixed inset-0 pointer-events-none" part="shell">
|
|
301
274
|
${when(
|
|
302
275
|
this.modal,
|
|
303
|
-
() => html`<div class="backdrop" part="backdrop" @click=${this.onBackdropClick}></div>`,
|
|
276
|
+
() => html`<div class="backdrop fixed inset-0 pointer-events-auto" part="backdrop" @click=${this.onBackdropClick}></div>`,
|
|
304
277
|
)}
|
|
305
278
|
<section
|
|
306
|
-
class="
|
|
279
|
+
class="${baseClasses} ${layoutClasses}"
|
|
307
280
|
part="surface"
|
|
308
281
|
data-layout=${this.layout}
|
|
309
282
|
data-tier=${this.tier}
|
|
@@ -378,56 +351,46 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
378
351
|
private wireCloseTriggers(signal?: AbortSignal): void {
|
|
379
352
|
const until = this.disconnecting
|
|
380
353
|
|
|
354
|
+
// Handle already-aborted signal synchronously — no stream needed.
|
|
355
|
+
if (signal?.aborted) {
|
|
356
|
+
queueMicrotask(() => void this.close('abort'))
|
|
357
|
+
return
|
|
358
|
+
}
|
|
359
|
+
|
|
381
360
|
// Structured close — content dispatches CustomEvent('close', { detail }).
|
|
382
|
-
fromEvent<CustomEvent>(this, 'close')
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
void this.close('structured', e.detail)
|
|
388
|
-
}),
|
|
389
|
-
takeUntil(until),
|
|
390
|
-
)
|
|
391
|
-
.subscribe()
|
|
361
|
+
const structured$ = fromEvent<CustomEvent>(this, 'close').pipe(
|
|
362
|
+
filter((e) => e instanceof CustomEvent),
|
|
363
|
+
tap((e) => e.stopPropagation()),
|
|
364
|
+
map((e) => ({ reason: 'structured' as CloseReason, result: e.detail })),
|
|
365
|
+
)
|
|
392
366
|
|
|
393
367
|
// Native <form method="dialog"> submission bubbles up as a regular
|
|
394
368
|
// submit event with `submitter.value` (returnValue proxy for our
|
|
395
369
|
// custom shell). Capture it and resolve with the string value.
|
|
396
|
-
fromEvent<SubmitEvent>(this, 'submit')
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
}),
|
|
409
|
-
takeUntil(until),
|
|
410
|
-
)
|
|
411
|
-
.subscribe()
|
|
370
|
+
const nativeSubmit$ = fromEvent<SubmitEvent>(this, 'submit').pipe(
|
|
371
|
+
filter((e) => {
|
|
372
|
+
const form = e.target as HTMLFormElement | null
|
|
373
|
+
return !!form && form.method === 'dialog'
|
|
374
|
+
}),
|
|
375
|
+
tap((e) => e.preventDefault()),
|
|
376
|
+
map((e) => {
|
|
377
|
+
const submitter = (e as SubmitEvent & { submitter?: HTMLButtonElement | HTMLInputElement })
|
|
378
|
+
.submitter
|
|
379
|
+
return { reason: 'native-submit' as CloseReason, result: submitter?.value ?? '' }
|
|
380
|
+
}),
|
|
381
|
+
)
|
|
412
382
|
|
|
413
383
|
// Manual Esc — all tiers. Modal has no native dismiss; anchored
|
|
414
384
|
// tiers use `popover="manual"` so the browser doesn't auto-Esc them
|
|
415
385
|
// either (the auto popover-stack would close ancestor overlays when
|
|
416
386
|
// a nested overlay opens — see positionPopoverAPI's comment).
|
|
417
|
-
fromEvent<KeyboardEvent>(document, 'keydown')
|
|
418
|
-
.
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
}
|
|
425
|
-
e.preventDefault()
|
|
426
|
-
void this.close('escape')
|
|
427
|
-
}),
|
|
428
|
-
takeUntil(until),
|
|
429
|
-
)
|
|
430
|
-
.subscribe()
|
|
387
|
+
const escape$ = fromEvent<KeyboardEvent>(document, 'keydown').pipe(
|
|
388
|
+
filter((e) => e.key === 'Escape'),
|
|
389
|
+
tap((e) => e.preventDefault()),
|
|
390
|
+
filter(() => this.dismissable),
|
|
391
|
+
map(() => ({ reason: 'escape' as CloseReason })),
|
|
392
|
+
take(1),
|
|
393
|
+
)
|
|
431
394
|
|
|
432
395
|
// Manual outside-click — all anchored tiers. Modal layouts have a
|
|
433
396
|
// backdrop that catches outside clicks via `onBackdropClick`; the
|
|
@@ -437,50 +400,49 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
437
400
|
// `Node.contains`) so clicks on elements inside slotted /
|
|
438
401
|
// shadow-DOM descendants of the surface are correctly classified
|
|
439
402
|
// as "inside".
|
|
440
|
-
|
|
441
|
-
fromEvent<PointerEvent>(document, 'pointerdown', { capture: true })
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
)
|
|
454
|
-
.subscribe()
|
|
455
|
-
}
|
|
403
|
+
const outsideClick$ = this.tier !== 'modal'
|
|
404
|
+
? fromEvent<PointerEvent>(document, 'pointerdown', { capture: true }).pipe(
|
|
405
|
+
filter((e) => {
|
|
406
|
+
if (!this.dismissable) return false
|
|
407
|
+
const path = e.composedPath()
|
|
408
|
+
if (this._surface && path.includes(this._surface)) return false
|
|
409
|
+
if (this._resolvedAnchor?.el && path.includes(this._resolvedAnchor.el)) return false
|
|
410
|
+
return true
|
|
411
|
+
}),
|
|
412
|
+
map(() => ({ reason: 'backdrop' as CloseReason })),
|
|
413
|
+
take(1),
|
|
414
|
+
)
|
|
415
|
+
: null
|
|
456
416
|
|
|
457
417
|
// Swipe-to-dismiss for sheet layout only. No visual drag handle —
|
|
458
418
|
// the gesture starts from the top 40px of the surface (see
|
|
459
419
|
// DRAG_START_TOP_PX in overlay.gestures). Escape + backdrop click
|
|
460
420
|
// cover the other dismiss paths via the modal-tier listeners above.
|
|
461
|
-
|
|
462
|
-
swipeToDismiss$({
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
.subscribe(() => void this.close('swipe'))
|
|
468
|
-
}
|
|
421
|
+
const swipe$ = this.layout === 'sheet' && this.dismissable
|
|
422
|
+
? swipeToDismiss$({ surface: this._surface, until$: merge(until, this._closed$) }).pipe(
|
|
423
|
+
take(1),
|
|
424
|
+
map(() => ({ reason: 'swipe' as CloseReason })),
|
|
425
|
+
)
|
|
426
|
+
: null
|
|
469
427
|
|
|
470
428
|
// AbortSignal — standard cancellation input.
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
429
|
+
const abort$ = signal
|
|
430
|
+
? fromEvent(signal, 'abort').pipe(
|
|
431
|
+
take(1),
|
|
432
|
+
map(() => ({ reason: 'abort' as CloseReason })),
|
|
433
|
+
)
|
|
434
|
+
: null
|
|
435
|
+
|
|
436
|
+
merge(
|
|
437
|
+
structured$,
|
|
438
|
+
nativeSubmit$,
|
|
439
|
+
escape$,
|
|
440
|
+
outsideClick$ ?? EMPTY,
|
|
441
|
+
swipe$ ?? EMPTY,
|
|
442
|
+
abort$ ?? EMPTY,
|
|
443
|
+
)
|
|
444
|
+
.pipe(takeUntil(until))
|
|
445
|
+
.subscribe(({ reason, result }: { reason: CloseReason; result?: unknown }) => void this.close(reason, result))
|
|
484
446
|
}
|
|
485
447
|
|
|
486
448
|
/* ---------------- ResizeObserver FLIP re-resolve ------------------- */
|
|
@@ -536,31 +498,10 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
536
498
|
|
|
537
499
|
/* ---------------- animations --------------------------------------- */
|
|
538
500
|
|
|
539
|
-
private async
|
|
540
|
-
const surface = this._surface
|
|
541
|
-
if (!surface) return
|
|
542
|
-
const spec = surfaceAnimation(this.layout, 'in')
|
|
543
|
-
const tasks: Promise<unknown>[] = [
|
|
544
|
-
surface.animate(spec.keyframes, spec.options).finished.catch(() => undefined),
|
|
545
|
-
]
|
|
546
|
-
const backdrop = this._backdrop
|
|
547
|
-
if (this.modal && backdrop) {
|
|
548
|
-
tasks.push(
|
|
549
|
-
backdrop
|
|
550
|
-
.animate(
|
|
551
|
-
[{ opacity: 0 }, { opacity: 1 }],
|
|
552
|
-
{ duration: spec.options.duration, easing: 'ease-out', fill: 'forwards' },
|
|
553
|
-
)
|
|
554
|
-
.finished.catch(() => undefined),
|
|
555
|
-
)
|
|
556
|
-
}
|
|
557
|
-
await Promise.all(tasks)
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
private async playExitAnimations(): Promise<void> {
|
|
501
|
+
private async playAnimations(direction: 'in' | 'out'): Promise<void> {
|
|
561
502
|
const surface = this._surface
|
|
562
503
|
if (!surface) return
|
|
563
|
-
const spec = surfaceAnimation(this.layout,
|
|
504
|
+
const spec = surfaceAnimation(this.layout, direction)
|
|
564
505
|
const tasks: Promise<unknown>[] = [
|
|
565
506
|
surface.animate(spec.keyframes, spec.options).finished.catch(() => undefined),
|
|
566
507
|
]
|
|
@@ -569,8 +510,8 @@ export class SchmancyOverlay extends SchmancyElement {
|
|
|
569
510
|
tasks.push(
|
|
570
511
|
backdrop
|
|
571
512
|
.animate(
|
|
572
|
-
[{ opacity: 1 }, { opacity: 0 }],
|
|
573
|
-
{ duration: spec.options.duration, easing: 'ease-in', fill: 'forwards' },
|
|
513
|
+
direction === 'in' ? [{ opacity: 0 }, { opacity: 1 }] : [{ opacity: 1 }, { opacity: 0 }],
|
|
514
|
+
{ duration: spec.options.duration, easing: direction === 'in' ? 'ease-out' : 'ease-in', fill: 'forwards' },
|
|
574
515
|
)
|
|
575
516
|
.finished.catch(() => undefined),
|
|
576
517
|
)
|