@mhmo91/schmancy 0.10.27 → 0.10.29
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 +12 -2
- package/dist/agent/{overlay.confirm-body-BZoUgkdK.js → overlay.confirm-body-BFYWMa45.js} +1799 -855
- package/dist/agent/overlay.confirm-body-BFYWMa45.js.map +1 -0
- package/dist/agent/schmancy.agent.js +2677 -3668
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +1 -2
- package/dist/{area-C_Yvjmad.js → area-D5wIy4Fn.js} +1 -1
- package/dist/{area-C_Yvjmad.js.map → area-D5wIy4Fn.js.map} +1 -1
- package/dist/{area-BSVOYQDA.cjs → area-HXuLLQnN.cjs} +1 -1
- package/dist/{area-BSVOYQDA.cjs.map → area-HXuLLQnN.cjs.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-C6I1mfOT.js → autocomplete-DCkkdDON.js} +2 -2
- package/dist/{autocomplete-C6I1mfOT.js.map → autocomplete-DCkkdDON.js.map} +1 -1
- package/dist/{autocomplete-B50VXUzw.cjs → autocomplete-hj2AQyEF.cjs} +1 -1
- package/dist/{autocomplete-B50VXUzw.cjs.map → autocomplete-hj2AQyEF.cjs.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 +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-DVQBNkk5.cjs → boat-B_5F_rFr.cjs} +1 -1
- package/dist/{boat-DVQBNkk5.cjs.map → boat-B_5F_rFr.cjs.map} +1 -1
- package/dist/{boat-C94QZ4Zt.js → boat-BfgbRnhA.js} +1 -1
- package/dist/{boat-C94QZ4Zt.js.map → boat-BfgbRnhA.js.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 +1 -1
- package/dist/{busy--bNb42rM.js → busy-D6tAS-kW.js} +1 -1
- package/dist/{busy--bNb42rM.js.map → busy-D6tAS-kW.js.map} +1 -1
- package/dist/{busy-DuxFvEkY.cjs → busy-zIt9bTZn.cjs} +1 -1
- package/dist/{busy-DuxFvEkY.cjs.map → busy-zIt9bTZn.cjs.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-DAFZ5A4O.cjs → button-8oMffyiO.cjs} +1 -1
- package/dist/{button-DAFZ5A4O.cjs.map → button-8oMffyiO.cjs.map} +1 -1
- package/dist/{button-B7b9L_h5.js → button-D7AejvfK.js} +1 -1
- package/dist/{button-B7b9L_h5.js.map → button-D7AejvfK.js.map} +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +2 -2
- package/dist/{card-DZPd24Sn.cjs → card-CTucMMgp.cjs} +1 -1
- package/dist/{card-DZPd24Sn.cjs.map → card-CTucMMgp.cjs.map} +1 -1
- package/dist/{card-ixzxOW-Q.js → card-CUt9fm_4.js} +1 -1
- package/dist/{card-ixzxOW-Q.js.map → card-CUt9fm_4.js.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-DdGpepTh.js → checkbox-DMmqe2OO.js} +1 -1
- package/dist/{checkbox-DdGpepTh.js.map → checkbox-DMmqe2OO.js.map} +1 -1
- package/dist/{checkbox-Bi_Fm2mf.cjs → checkbox-DrKsfzC4.cjs} +1 -1
- package/dist/{checkbox-Bi_Fm2mf.cjs.map → checkbox-DrKsfzC4.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-DWQMZErr.cjs → chips-B1yQgLyW.cjs} +1 -1
- package/dist/{chips-DWQMZErr.cjs.map → chips-B1yQgLyW.cjs.map} +1 -1
- package/dist/{chips-DLTynyVB.js → chips-DRGsqDMA.js} +2 -2
- package/dist/{chips-DLTynyVB.js.map → chips-DRGsqDMA.js.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-BgGQyxOC.cjs → date-range-BeF0dW1W.cjs} +6 -1
- package/dist/date-range-BeF0dW1W.cjs.map +1 -0
- package/dist/{date-range-CT6ckjmV.js → date-range-TDF-f0ss.js} +90 -82
- package/dist/date-range-TDF-f0ss.js.map +1 -0
- package/dist/{date-range-inline-nPWIs-3C.cjs → date-range-inline-BnhQZTK0.cjs} +1 -1
- package/dist/{date-range-inline-nPWIs-3C.cjs.map → date-range-inline-BnhQZTK0.cjs.map} +1 -1
- package/dist/{date-range-inline-Ho3CENTh.js → date-range-inline-JLsmcle2.js} +1 -1
- package/dist/{date-range-inline-Ho3CENTh.js.map → date-range-inline-JLsmcle2.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-CcMTvYo7.js → details-ChMhQpcY.js} +1 -1
- package/dist/{details-CcMTvYo7.js.map → details-ChMhQpcY.js.map} +1 -1
- package/dist/{details-BnRWMZdt.cjs → details-T75tUASO.cjs} +1 -1
- package/dist/{details-BnRWMZdt.cjs.map → details-T75tUASO.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{divider-CZCj0ioH.js → divider-D69bhEUY.js} +1 -1
- package/dist/{divider-CZCj0ioH.js.map → divider-D69bhEUY.js.map} +1 -1
- package/dist/{divider-C6yJSL1c.cjs → divider-DopO0yKi.cjs} +1 -1
- package/dist/{divider-C6yJSL1c.cjs.map → divider-DopO0yKi.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{expand-D4EhwOYh.cjs → expand-C386rVT8.cjs} +1 -1
- package/dist/{expand-D4EhwOYh.cjs.map → expand-C386rVT8.cjs.map} +1 -1
- package/dist/{expand-Cc6ogXsR.js → expand-KLSx5dea.js} +2 -2
- package/dist/{expand-Cc6ogXsR.js.map → expand-KLSx5dea.js.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{float-BvI3HTtB.js → float-BoPLNysg.js} +1 -1
- package/dist/{float-BvI3HTtB.js.map → float-BoPLNysg.js.map} +1 -1
- package/dist/{float-B8EPc_OG.cjs → float-DyaPI0qO.cjs} +1 -1
- package/dist/{float-B8EPc_OG.cjs.map → float-DyaPI0qO.cjs.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-C4eFgFwF.cjs → form-CGIJlQyP.cjs} +4 -19
- package/dist/form-CGIJlQyP.cjs.map +1 -0
- package/dist/{form-CGe9rVox.js → form-CYeMWHmy.js} +10 -90
- package/dist/form-CYeMWHmy.js.map +1 -0
- package/dist/form.cjs +18 -1
- package/dist/form.cjs.map +1 -0
- package/dist/form.js +93 -9
- package/dist/form.js.map +1 -0
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{icon-B1eZr2ZL.js → icons-BUQNMhjw.js} +1 -1
- package/dist/{icon-CgIXAvKI.cjs.map → icons-BUQNMhjw.js.map} +1 -1
- package/dist/{icon-CgIXAvKI.cjs → icons-CJUA5bfI.cjs} +1 -1
- package/dist/icons-CJUA5bfI.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-CmpAZc61.js → iframe-CbL0jCo1.js} +1 -1
- package/dist/{iframe-CmpAZc61.js.map → iframe-CbL0jCo1.js.map} +1 -1
- package/dist/{iframe-BO3BpRLH.cjs → iframe-pn7MIeH8.cjs} +1 -1
- package/dist/{iframe-BO3BpRLH.cjs.map → iframe-pn7MIeH8.cjs.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 +33 -32
- package/dist/{input-_Hft9vov.js → input-C1h5lLiJ.js} +1 -1
- package/dist/{input-_Hft9vov.js.map → input-C1h5lLiJ.js.map} +1 -1
- package/dist/{input-5YL2oUBr.cjs → input-Cmc0IoUP.cjs} +1 -1
- package/dist/{input-5YL2oUBr.cjs.map → input-Cmc0IoUP.cjs.map} +1 -1
- package/dist/{input-chip-DKMNpcED.cjs → input-chip-B0X_CodJ.cjs} +1 -1
- package/dist/{input-chip-DKMNpcED.cjs.map → input-chip-B0X_CodJ.cjs.map} +1 -1
- package/dist/{input-chip-BNTojQT6.js → input-chip-DqAR4nPD.js} +1 -1
- package/dist/{input-chip-BNTojQT6.js.map → input-chip-DqAR4nPD.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 +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-t4dvb8_A.cjs → lightbox-BiNK_plj.cjs} +1 -1
- package/dist/{lightbox-t4dvb8_A.cjs.map → lightbox-BiNK_plj.cjs.map} +1 -1
- package/dist/{lightbox-CKlYcnHV.js → lightbox-C3zomJ-r.js} +1 -1
- package/dist/{lightbox-CKlYcnHV.js.map → lightbox-C3zomJ-r.js.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-B6QhxgRJ.js → list-Bbmp1uMa.js} +1 -1
- package/dist/{list-B6QhxgRJ.js.map → list-Bbmp1uMa.js.map} +1 -1
- package/dist/{list-21mWtDKg.cjs → list-CbM9w9OM.cjs} +1 -1
- package/dist/{list-21mWtDKg.cjs.map → list-CbM9w9OM.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{menu-Cu5G4vcR.cjs → menu-Bfay8vF8.cjs} +2 -2
- package/dist/{menu-Cu5G4vcR.cjs.map → menu-Bfay8vF8.cjs.map} +1 -1
- package/dist/{menu-CjOgPSOG.js → menu-Ph2hboJd.js} +3 -3
- package/dist/{menu-CjOgPSOG.js.map → menu-Ph2hboJd.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins-BfazlmLD.js +627 -0
- package/dist/{mixins-8dT5j6CS.js.map → mixins-BfazlmLD.js.map} +1 -1
- package/dist/mixins-CxGRIPYQ.cjs +242 -0
- package/dist/{mixins-BF3Vj8_c.cjs.map → mixins-CxGRIPYQ.cjs.map} +1 -1
- 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 +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-CcNoBFEJ.cjs → notification-DT_cAi8U.cjs} +1 -1
- package/dist/{notification-CcNoBFEJ.cjs.map → notification-DT_cAi8U.cjs.map} +1 -1
- package/dist/{notification-CDKBKh63.js → notification-Du5FRbYp.js} +2 -2
- package/dist/{notification-CDKBKh63.js.map → notification-Du5FRbYp.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-BWfmDJvm.js → option-B7y4FhOn.js} +1 -1
- package/dist/{option-BWfmDJvm.js.map → option-B7y4FhOn.js.map} +1 -1
- package/dist/{option-DejeqOad.cjs → option-Cl5Q987d.cjs} +1 -1
- package/dist/{option-DejeqOad.cjs.map → option-Cl5Q987d.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-D3c_NY18.js → overlay-B79m-KXf.js} +90 -141
- package/dist/overlay-B79m-KXf.js.map +1 -0
- package/dist/overlay-CRwfhbyi.cjs +43 -0
- package/dist/overlay-CRwfhbyi.cjs.map +1 -0
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-B_v0ivkn.js → overlay.confirm-body-CW_spktW.js} +7 -19
- package/dist/overlay.confirm-body-CW_spktW.js.map +1 -0
- package/dist/{overlay.confirm-body-B2ntyquG.cjs → overlay.confirm-body-CxOomuN6.cjs} +3 -12
- package/dist/overlay.confirm-body-CxOomuN6.cjs.map +1 -0
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-B3FjXCqc.js → overlay.service-DsBb_UwG.js} +31 -27
- package/dist/{overlay.service-B3FjXCqc.js.map → overlay.service-DsBb_UwG.js.map} +1 -1
- package/dist/overlay.service-fb3KaMiP.cjs +1 -0
- package/dist/{overlay.service-BkSeqXIv.cjs.map → overlay.service-fb3KaMiP.cjs.map} +1 -1
- package/dist/{progress-CFcmO0wv.js → progress-CMwUEDB1.js} +1 -1
- package/dist/{progress-CFcmO0wv.js.map → progress-CMwUEDB1.js.map} +1 -1
- package/dist/{progress-6_rb3Ah9.cjs → progress-fnGrmHpm.cjs} +1 -1
- package/dist/{progress-6_rb3Ah9.cjs.map → progress-fnGrmHpm.cjs.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-_WZg8EKM.cjs → radio-group-DQRJGMgS.cjs} +1 -1
- package/dist/{radio-group-_WZg8EKM.cjs.map → radio-group-DQRJGMgS.cjs.map} +1 -1
- package/dist/{radio-group-Bd8y9QpX.js → radio-group-Zb0fies1.js} +1 -1
- package/dist/{radio-group-Bd8y9QpX.js.map → radio-group-Zb0fies1.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 +1 -1
- package/dist/{select-Czpl1ztD.js → select-BJJKYtEi.js} +1 -1
- package/dist/{select-Czpl1ztD.js.map → select-BJJKYtEi.js.map} +1 -1
- package/dist/{select-BaioT3yY.cjs → select-C-acFFtV.cjs} +1 -1
- package/dist/{select-BaioT3yY.cjs.map → select-C-acFFtV.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 +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{splash-screen-YtTVkJg8.js → splash-screen-CCDpzGg_.js} +1 -1
- package/dist/{splash-screen-YtTVkJg8.js.map → splash-screen-CCDpzGg_.js.map} +1 -1
- package/dist/{splash-screen-3FtgdVy3.cjs → splash-screen-CGnhHDB_.cjs} +1 -1
- package/dist/{splash-screen-3FtgdVy3.cjs.map → splash-screen-CGnhHDB_.cjs.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-0LIdvAX6.cjs → src-C0MzzF_S.cjs} +1 -1
- package/dist/{src-0LIdvAX6.cjs.map → src-C0MzzF_S.cjs.map} +1 -1
- package/dist/{src-BJHws7IS.js → src-CUcUMK0M.js} +31 -31
- package/dist/{src-BJHws7IS.js.map → src-CUcUMK0M.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-CVxyQPln.js → surface-CLcc26d2.js} +1 -1
- package/dist/{surface-CVxyQPln.js.map → surface-CLcc26d2.js.map} +1 -1
- package/dist/{surface-BNvxLEDN.cjs → surface-DPzlMMYX.cjs} +1 -1
- package/dist/{surface-BNvxLEDN.cjs.map → surface-DPzlMMYX.cjs.map} +1 -1
- 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-CnPXvZuZ.js → tabs-BvEal6oS.js} +1 -1
- package/dist/{tabs-CnPXvZuZ.js.map → tabs-BvEal6oS.js.map} +1 -1
- package/dist/{tabs-DTU7748z.cjs → tabs-DEKOKYrn.cjs} +1 -1
- package/dist/{tabs-DTU7748z.cjs.map → tabs-DEKOKYrn.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-mQPsppmd.js → textarea-CH62STRD.js} +1 -1
- package/dist/{textarea-mQPsppmd.js.map → textarea-CH62STRD.js.map} +1 -1
- package/dist/{textarea-Bqth6Q8P.cjs → textarea-Cjlsy3y9.cjs} +1 -1
- package/dist/{textarea-Bqth6Q8P.cjs.map → textarea-Cjlsy3y9.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-D4HGKt7N.cjs → theme-CG3Gpne7.cjs} +1 -1
- package/dist/{theme-D4HGKt7N.cjs.map → theme-CG3Gpne7.cjs.map} +1 -1
- package/dist/{theme-button-LP-Dgr17.cjs → theme-button-CEc_Kl54.cjs} +1 -1
- package/dist/{theme-button-LP-Dgr17.cjs.map → theme-button-CEc_Kl54.cjs.map} +1 -1
- package/dist/{theme-button-Jap7G_IH.js → theme-button-oWeOoeSw.js} +1 -1
- package/dist/{theme-button-Jap7G_IH.js.map → theme-button-oWeOoeSw.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/{theme-BJqpv4cG.js → theme-z82BIRuw.js} +1 -1
- package/dist/{theme-BJqpv4cG.js.map → theme-z82BIRuw.js.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +2 -2
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typography-Bc4MmSal.cjs → typography-CjAvaB88.cjs} +1 -1
- package/dist/{typography-Bc4MmSal.cjs.map → typography-CjAvaB88.cjs.map} +1 -1
- package/dist/{typography-BJMm6b0b.js → typography-DP82e3GJ.js} +1 -1
- package/dist/{typography-BJMm6b0b.js.map → typography-DP82e3GJ.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +1 -1
- package/dist/{window-DZTjkE24.js → window-BkPXY-8m.js} +1 -1
- package/dist/{window-DZTjkE24.js.map → window-BkPXY-8m.js.map} +1 -1
- package/dist/{window-CNu_WnsY.cjs → window-aVXgfw__.cjs} +1 -1
- package/dist/{window-CNu_WnsY.cjs.map → window-aVXgfw__.cjs.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/src/form/fields/date-range/date-range-dialog.ts +8 -1
- package/src/form/form.ts +5 -1
- package/src/menu/menu.ts +4 -1
- package/src/overlay/overlay.animations.ts +0 -29
- package/src/overlay/overlay.component.ts +30 -38
- package/src/overlay/overlay.confirm-body.ts +3 -15
- package/src/overlay/overlay.layout.ts +11 -53
- package/src/overlay/overlay.stack.test.ts +113 -0
- package/src/overlay/overlay.types.ts +17 -11
- package/types/src/form/fields/date-range/date-range-dialog.d.ts +1 -0
- package/types/src/form/form.d.ts +1 -0
- package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
- package/types/src/overlay/overlay.layout.d.ts +10 -30
- package/types/src/overlay/overlay.stack.test.d.ts +1 -0
- package/types/src/overlay/overlay.types.d.ts +17 -11
- package/dist/agent/overlay.confirm-body-BZoUgkdK.js.map +0 -1
- package/dist/date-range-BgGQyxOC.cjs.map +0 -1
- package/dist/date-range-CT6ckjmV.js.map +0 -1
- package/dist/form-C4eFgFwF.cjs.map +0 -1
- package/dist/form-CGe9rVox.js.map +0 -1
- package/dist/icon-B1eZr2ZL.js.map +0 -1
- package/dist/mixins-8dT5j6CS.js +0 -627
- package/dist/mixins-BF3Vj8_c.cjs +0 -242
- package/dist/overlay-D3c_NY18.js.map +0 -1
- package/dist/overlay-Dv2utO4C.cjs +0 -43
- package/dist/overlay-Dv2utO4C.cjs.map +0 -1
- package/dist/overlay.confirm-body-B2ntyquG.cjs.map +0 -1
- package/dist/overlay.confirm-body-B_v0ivkn.js.map +0 -1
- package/dist/overlay.service-BkSeqXIv.cjs +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// overlay.stack.test.ts — unit tests for the stacked-overlay dismiss guard
|
|
2
|
+
//
|
|
3
|
+
// Exercises the outsideClick$ filter in SchmancyOverlay by driving the element
|
|
4
|
+
// state directly and calling wireCloseTriggers via type-cast. The test spies on
|
|
5
|
+
// close() so it doesn't need to wait for animation promises to settle.
|
|
6
|
+
//
|
|
7
|
+
// Uses the real browser DOM (vitest browser mode) so composedPath and
|
|
8
|
+
// shadow-DOM queries behave identically to production.
|
|
9
|
+
|
|
10
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
11
|
+
import './overlay.component'
|
|
12
|
+
import { clearStack, currentStack, pushEntry, removeEntry } from './overlay.stack'
|
|
13
|
+
import type { OverlayEntry } from './overlay.types'
|
|
14
|
+
|
|
15
|
+
const nextFrame = () => new Promise<void>(r => requestAnimationFrame(() => r()))
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
type AnyOverlay = any
|
|
19
|
+
|
|
20
|
+
function entryFor(element: HTMLElement, id: string): OverlayEntry {
|
|
21
|
+
return { id, element, layout: 'anchored', modal: false, tier: 'fui-only' }
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Patch the @query getter for _surface (read-only) so wireCloseTriggers reads it.
|
|
25
|
+
function patchSurface(overlay: AnyOverlay, surface: HTMLElement): void {
|
|
26
|
+
Object.defineProperty(overlay, '_surface', { get: () => surface, configurable: true })
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Stub close() so tests don't wait for animation promises.
|
|
30
|
+
function stubClose(overlay: AnyOverlay): ReturnType<typeof vi.fn> {
|
|
31
|
+
const spy = vi.fn().mockResolvedValue(undefined)
|
|
32
|
+
Object.defineProperty(overlay, 'close', { value: spy, configurable: true })
|
|
33
|
+
return spy
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
describe('overlay stacked-dismiss guard', () => {
|
|
37
|
+
beforeEach(() => clearStack())
|
|
38
|
+
afterEach(() => { clearStack(); vi.restoreAllMocks() })
|
|
39
|
+
|
|
40
|
+
it('single overlay: body click invokes close("backdrop") (baseline)', async () => {
|
|
41
|
+
const overlayA: AnyOverlay = document.createElement('schmancy-overlay')
|
|
42
|
+
document.body.appendChild(overlayA)
|
|
43
|
+
await nextFrame()
|
|
44
|
+
|
|
45
|
+
const fakesurf = document.createElement('div')
|
|
46
|
+
fakesurf.className = 'surface'
|
|
47
|
+
document.body.appendChild(fakesurf)
|
|
48
|
+
patchSurface(overlayA, fakesurf)
|
|
49
|
+
|
|
50
|
+
overlayA.tier = 'fui-only'
|
|
51
|
+
overlayA.dismissable = true
|
|
52
|
+
overlayA.modal = false
|
|
53
|
+
|
|
54
|
+
const closeSpy = stubClose(overlayA)
|
|
55
|
+
|
|
56
|
+
pushEntry(entryFor(overlayA, 'a'))
|
|
57
|
+
expect(currentStack()).toHaveLength(1)
|
|
58
|
+
|
|
59
|
+
overlayA.wireCloseTriggers()
|
|
60
|
+
|
|
61
|
+
// Dispatch on a separate span — not inside the overlay's surface.
|
|
62
|
+
const outside = document.createElement('span')
|
|
63
|
+
document.body.appendChild(outside)
|
|
64
|
+
outside.dispatchEvent(new PointerEvent('pointerdown', { bubbles: true, composed: true, cancelable: true }))
|
|
65
|
+
await nextFrame()
|
|
66
|
+
|
|
67
|
+
expect(closeSpy.mock.calls[0]?.[0]).toBe('backdrop')
|
|
68
|
+
|
|
69
|
+
outside.remove()
|
|
70
|
+
fakesurf.remove()
|
|
71
|
+
overlayA.remove()
|
|
72
|
+
removeEntry('a')
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
it('nested overlay: click inside overlay B does not close overlay A', async () => {
|
|
76
|
+
const overlayA: AnyOverlay = document.createElement('schmancy-overlay')
|
|
77
|
+
const overlayB: AnyOverlay = document.createElement('schmancy-overlay')
|
|
78
|
+
document.body.appendChild(overlayA)
|
|
79
|
+
document.body.appendChild(overlayB)
|
|
80
|
+
await nextFrame()
|
|
81
|
+
|
|
82
|
+
const surfA = document.createElement('div')
|
|
83
|
+
surfA.className = 'surface'
|
|
84
|
+
document.body.appendChild(surfA)
|
|
85
|
+
patchSurface(overlayA, surfA)
|
|
86
|
+
|
|
87
|
+
overlayA.tier = 'fui-only'
|
|
88
|
+
overlayA.dismissable = true
|
|
89
|
+
overlayA.modal = false
|
|
90
|
+
|
|
91
|
+
const closeSpy = stubClose(overlayA)
|
|
92
|
+
|
|
93
|
+
// Register A first, then B on top.
|
|
94
|
+
pushEntry(entryFor(overlayA, 'a'))
|
|
95
|
+
pushEntry(entryFor(overlayB, 'b'))
|
|
96
|
+
expect(currentStack()).toHaveLength(2)
|
|
97
|
+
|
|
98
|
+
overlayA.wireCloseTriggers()
|
|
99
|
+
|
|
100
|
+
// Dispatch a pointerdown on overlayB — its host element IS in composedPath.
|
|
101
|
+
overlayB.dispatchEvent(new PointerEvent('pointerdown', { bubbles: true, composed: true, cancelable: true }))
|
|
102
|
+
await nextFrame()
|
|
103
|
+
|
|
104
|
+
// A must not have been closed.
|
|
105
|
+
expect(closeSpy).not.toHaveBeenCalled()
|
|
106
|
+
|
|
107
|
+
surfA.remove()
|
|
108
|
+
overlayA.remove()
|
|
109
|
+
overlayB.remove()
|
|
110
|
+
removeEntry('a')
|
|
111
|
+
removeEntry('b')
|
|
112
|
+
})
|
|
113
|
+
})
|
|
@@ -97,11 +97,11 @@ export interface ShowOptions {
|
|
|
97
97
|
* dismisses (same as unsubscribe). */
|
|
98
98
|
signal?: AbortSignal
|
|
99
99
|
|
|
100
|
-
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
|
|
100
|
+
/** Override the resolved layout. When set, short-circuits the resolver
|
|
101
|
+
* and forces this layout. Use when the caller knows the content's nature
|
|
102
|
+
* better than the resolver can — e.g. `as: 'sheet'` for an immersive
|
|
103
|
+
* takeover view that doesn't have an anchor. */
|
|
104
|
+
as?: OverlayLayout
|
|
105
105
|
|
|
106
106
|
/** Default `'push'`. Same vocabulary as `area.push()`.
|
|
107
107
|
* - `'push'` — new history entry; back dismisses, forward re-opens.
|
|
@@ -129,14 +129,20 @@ export interface ShowOptions {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
/**
|
|
132
|
-
* Resolved layout.
|
|
133
|
-
* - `'centered'` — native <dialog>.showModal(), focus-trapped.
|
|
132
|
+
* Resolved layout. Two values:
|
|
134
133
|
* - `'anchored'` — popover="auto" + CSS Anchor Positioning / Floating UI,
|
|
135
|
-
* non-modal, background stays interactive.
|
|
136
|
-
*
|
|
137
|
-
*
|
|
134
|
+
* non-modal, background stays interactive. Used when the
|
|
135
|
+
* caller passes an anchor (the novel default for menus,
|
|
136
|
+
* popovers, dropdowns).
|
|
137
|
+
* - `'sheet'` — bottom sheet (mobile) or modal panel (desktop) with
|
|
138
|
+
* swipe-to-dismiss, safe-area aware. The default for every
|
|
139
|
+
* non-anchored overlay — confirm/prompt, immersive content
|
|
140
|
+
* views, legal pages, takeovers.
|
|
141
|
+
*
|
|
142
|
+
* Callers can force a layout with `ShowOptions.as` — useful for an anchored
|
|
143
|
+
* trigger whose content should still render as a sheet, or vice versa.
|
|
138
144
|
*/
|
|
139
|
-
export type OverlayLayout = '
|
|
145
|
+
export type OverlayLayout = 'anchored' | 'sheet'
|
|
140
146
|
|
|
141
147
|
/**
|
|
142
148
|
* Positioning tier an anchored overlay is using.
|
|
@@ -13,6 +13,7 @@ import { PresetCategory } from './date-range-presets';
|
|
|
13
13
|
* @element schmancy-date-range-dialog
|
|
14
14
|
*/
|
|
15
15
|
export declare class SchmancyDateRangeDialog extends SchmancyElement {
|
|
16
|
+
static styles: import("lit").CSSResult[];
|
|
16
17
|
type: 'date' | 'datetime-local';
|
|
17
18
|
dateFrom: {
|
|
18
19
|
label: string;
|
package/types/src/form/form.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export type SchmancyFormSubmitDetail<T = Record<string, FormDataEntryValue>> = {
|
|
|
33
33
|
until(p: Promise<unknown>): void;
|
|
34
34
|
};
|
|
35
35
|
export default class SchmancyForm<TSchema extends ParseSchema | undefined = undefined> extends SchmancyElement {
|
|
36
|
+
static styles: import("lit").CSSResult;
|
|
36
37
|
static readonly tagName: string;
|
|
37
38
|
/**
|
|
38
39
|
* Optional schema for parsing FormData on submit. Anything with a
|
|
@@ -7,45 +7,25 @@ import type { Anchor, OverlayLayout, VirtualAnchor } from './overlay.types';
|
|
|
7
7
|
* as named-constant diffs, not hidden in inline literals (state skill:
|
|
8
8
|
* "thresholds ARE the policy").
|
|
9
9
|
*/
|
|
10
|
-
/** Below this viewport width, every overlay becomes a bottom sheet. */
|
|
11
|
-
export declare const NARROW_VIEWPORT_PX = 640;
|
|
12
|
-
/** Content taller than this fraction of viewport height → sheet. */
|
|
13
|
-
export declare const TALL_CONTENT_FRACTION = 0.8;
|
|
14
|
-
/** Content wider than this fraction of viewport width → sheet. */
|
|
15
|
-
export declare const WIDE_CONTENT_FRACTION = 0.9;
|
|
16
10
|
/** Floating UI / CSS anchor-positioning safety padding. */
|
|
17
11
|
export declare const ANCHOR_FIT_PADDING_PX = 16;
|
|
18
12
|
export interface LayoutInputs {
|
|
19
13
|
anchor?: Anchor;
|
|
20
|
-
content: {
|
|
21
|
-
width: number;
|
|
22
|
-
height: number;
|
|
23
|
-
};
|
|
24
|
-
viewport: {
|
|
25
|
-
width: number;
|
|
26
|
-
height: number;
|
|
27
|
-
/** `matchMedia('(pointer: coarse)').matches` at call time. */
|
|
28
|
-
isCoarsePointer: boolean;
|
|
29
|
-
};
|
|
30
14
|
}
|
|
31
15
|
/**
|
|
32
|
-
*
|
|
33
|
-
* 1. viewport / content forces sheet
|
|
34
|
-
* 2. anchor provided → anchored (the novel default)
|
|
35
|
-
* 3. fallback → centered
|
|
16
|
+
* Two outcomes, one signal: anchor presence.
|
|
36
17
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
18
|
+
* - anchor provided → anchored (popover/menu/dropdown next to a trigger)
|
|
19
|
+
* - no anchor → sheet (everything else: dialogs, takeovers, content panels)
|
|
20
|
+
*
|
|
21
|
+
* Callers who want to force a specific layout regardless of anchor pass
|
|
22
|
+
* `ShowOptions.as` — the resolver is bypassed entirely in that case.
|
|
23
|
+
*
|
|
24
|
+
* Floating UI's `flip` + `shift` + `size` middleware handles "anchor doesn't
|
|
25
|
+
* fit initially" — it returns a fitting position rather than rejecting. So
|
|
26
|
+
* anchored layouts don't need a fallback; Floating UI's output IS the answer.
|
|
42
27
|
*/
|
|
43
28
|
export declare function resolveLayout(inputs: LayoutInputs): OverlayLayout;
|
|
44
|
-
/**
|
|
45
|
-
* Read the current viewport + pointer inputs. Separated so tests can
|
|
46
|
-
* substitute synthetic inputs and the `resolveLayout` fn stays pure.
|
|
47
|
-
*/
|
|
48
|
-
export declare function readViewport(): LayoutInputs['viewport'];
|
|
49
29
|
/**
|
|
50
30
|
* Resolved reference the positioning strategies consume.
|
|
51
31
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './overlay.component';
|
|
@@ -71,11 +71,11 @@ export interface ShowOptions {
|
|
|
71
71
|
* addEventListener, getUserMedia, etc. When signal aborts, overlay
|
|
72
72
|
* dismisses (same as unsubscribe). */
|
|
73
73
|
signal?: AbortSignal;
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
|
|
74
|
+
/** Override the resolved layout. When set, short-circuits the resolver
|
|
75
|
+
* and forces this layout. Use when the caller knows the content's nature
|
|
76
|
+
* better than the resolver can — e.g. `as: 'sheet'` for an immersive
|
|
77
|
+
* takeover view that doesn't have an anchor. */
|
|
78
|
+
as?: OverlayLayout;
|
|
79
79
|
/** Default `'push'`. Same vocabulary as `area.push()`.
|
|
80
80
|
* - `'push'` — new history entry; back dismisses, forward re-opens.
|
|
81
81
|
* - `'replace'` — replace current entry; back skips the overlay.
|
|
@@ -98,14 +98,20 @@ export interface ShowOptions {
|
|
|
98
98
|
track?: boolean;
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
|
-
* Resolved layout.
|
|
102
|
-
* - `'centered'` — native <dialog>.showModal(), focus-trapped.
|
|
101
|
+
* Resolved layout. Two values:
|
|
103
102
|
* - `'anchored'` — popover="auto" + CSS Anchor Positioning / Floating UI,
|
|
104
|
-
* non-modal, background stays interactive.
|
|
105
|
-
*
|
|
106
|
-
*
|
|
103
|
+
* non-modal, background stays interactive. Used when the
|
|
104
|
+
* caller passes an anchor (the novel default for menus,
|
|
105
|
+
* popovers, dropdowns).
|
|
106
|
+
* - `'sheet'` — bottom sheet (mobile) or modal panel (desktop) with
|
|
107
|
+
* swipe-to-dismiss, safe-area aware. The default for every
|
|
108
|
+
* non-anchored overlay — confirm/prompt, immersive content
|
|
109
|
+
* views, legal pages, takeovers.
|
|
110
|
+
*
|
|
111
|
+
* Callers can force a layout with `ShowOptions.as` — useful for an anchored
|
|
112
|
+
* trigger whose content should still render as a sheet, or vice versa.
|
|
107
113
|
*/
|
|
108
|
-
export type OverlayLayout = '
|
|
114
|
+
export type OverlayLayout = 'anchored' | 'sheet';
|
|
109
115
|
/**
|
|
110
116
|
* Positioning tier an anchored overlay is using.
|
|
111
117
|
* - `'css-anchor'` — Tier 1: Popover API + CSS Anchor Positioning (Chromium).
|