@mhmo91/schmancy 0.9.13 → 0.9.14
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 +194 -0
- package/dist/agent/schmancy.agent.js +107 -1
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +148 -0
- package/dist/{animation-Bcwh107v.cjs.map → animation-CQRdLgzX.cjs.map} +1 -1
- package/dist/{animation-CXKSuUoE.js.map → animation-hXFClrIn.js.map} +1 -1
- package/dist/{area-CApZWjqs.cjs → area-DBjAhgjP.cjs} +2 -2
- package/dist/area-DBjAhgjP.cjs.map +1 -0
- package/dist/{area-D_p1YBgP.js → area-Dr4I9R2p.js} +23 -35
- package/dist/area-Dr4I9R2p.js.map +1 -0
- package/dist/area.cjs +1 -1
- package/dist/area.js +3 -2
- package/dist/{audio-DUVz7Ars.cjs → audio-Dvr-RBzE.cjs} +1 -1
- package/dist/{audio-DUVz7Ars.cjs.map → audio-Dvr-RBzE.cjs.map} +1 -1
- package/dist/{audio-C7TzWI8M.js → audio-ql6nvY0y.js} +1 -1
- package/dist/{audio-C7TzWI8M.js.map → audio-ql6nvY0y.js.map} +1 -1
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/{autocomplete-DAK35swc.js → autocomplete-CgWUCUU-.js} +3 -3
- package/dist/{autocomplete-DAK35swc.js.map → autocomplete-CgWUCUU-.js.map} +1 -1
- package/dist/{autocomplete-DlCqS1gW.cjs → autocomplete-EM0jE7X2.cjs} +1 -1
- package/dist/{autocomplete-DlCqS1gW.cjs.map → autocomplete-EM0jE7X2.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-C57YTPbb.cjs → boat-BjYJI1HS.cjs} +1 -1
- package/dist/{boat-C57YTPbb.cjs.map → boat-BjYJI1HS.cjs.map} +1 -1
- package/dist/{boat-Dms45k4o.js → boat-Dw8TmOzN.js} +4 -4
- package/dist/{boat-Dms45k4o.js.map → boat-Dw8TmOzN.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-BfN1p1n8.cjs → busy-BmiumJpB.cjs} +1 -1
- package/dist/{busy-BfN1p1n8.cjs.map → busy-BmiumJpB.cjs.map} +1 -1
- package/dist/{busy-IKS9obYj.js → busy-D2hP3fOy.js} +1 -1
- package/dist/{busy-IKS9obYj.js.map → busy-D2hP3fOy.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +4 -4
- package/dist/{card-ZObyqkFF.cjs → card-BslSqOsf.cjs} +1 -1
- package/dist/{card-ZObyqkFF.cjs.map → card-BslSqOsf.cjs.map} +1 -1
- package/dist/{card-DQNBal9V.js → card-CEdgK9nb.js} +2 -2
- package/dist/{card-DQNBal9V.js.map → card-CEdgK9nb.js.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/charts.cjs +1 -1
- package/dist/charts.js +1 -1
- package/dist/{checkbox-COhTJ1x5.js → checkbox-Br84TiCs.js} +2 -2
- package/dist/{checkbox-COhTJ1x5.js.map → checkbox-Br84TiCs.js.map} +1 -1
- package/dist/{checkbox-CiAtIrqB.cjs → checkbox-DtcFMgZL.cjs} +1 -1
- package/dist/{checkbox-CiAtIrqB.cjs.map → checkbox-DtcFMgZL.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-B5o3vNQF.js → chips-BNYOweGm.js} +5 -5
- package/dist/{chips-B5o3vNQF.js.map → chips-BNYOweGm.js.map} +1 -1
- package/dist/{chips-D2xmsC36.cjs → chips-DoCu5YQb.cjs} +1 -1
- package/dist/{chips-D2xmsC36.cjs.map → chips-DoCu5YQb.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/{chunk-C_1VqBVD.js → chunk-BM5alsTp.js} +9 -2
- package/dist/chunk-CncqDLb2.cjs +1 -0
- package/dist/{code-highlight-SkMMTkIJ.js → code-highlight-BgExKEto.js} +1 -1
- package/dist/{code-highlight-SkMMTkIJ.js.map → code-highlight-BgExKEto.js.map} +1 -1
- package/dist/{code-highlight-BToHh8T6.cjs → code-highlight-zSYcSfCz.cjs} +1 -1
- package/dist/{code-highlight-BToHh8T6.cjs.map → code-highlight-zSYcSfCz.cjs.map} +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{components-Ca7OTgbQ.js → components-DjKNS9R_.js} +1 -1
- package/dist/{components-Ca7OTgbQ.js.map → components-DjKNS9R_.js.map} +1 -1
- package/dist/{components-B-XYvUWn.cjs → components-TJT8-tva.cjs} +1 -1
- package/dist/{components-B-XYvUWn.cjs.map → components-TJT8-tva.cjs.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/connectivity.cjs +1 -1
- package/dist/connectivity.js +2 -2
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/context-CAYQh-mx.cjs +1 -0
- package/dist/{context-C6GwmNJJ.cjs.map → context-CAYQh-mx.cjs.map} +1 -1
- package/dist/context-D8Q66KPe.js +3 -0
- package/dist/{context-oBTPHrbc.js.map → context-D8Q66KPe.js.map} +1 -1
- package/dist/{cursor-glow-C2YRrB8Z.js → cursor-glow-BydlDInj.js} +1 -1
- package/dist/{cursor-glow-C2YRrB8Z.js.map → cursor-glow-BydlDInj.js.map} +1 -1
- package/dist/{cursor-glow-82y5h3E4.cjs → cursor-glow-Duw9jHmh.cjs} +1 -1
- package/dist/{cursor-glow-82y5h3E4.cjs.map → cursor-glow-Duw9jHmh.cjs.map} +1 -1
- package/dist/{date-range-BTA9nKbw.cjs → date-range-CIWYm3eS.cjs} +1 -1
- package/dist/{date-range-BTA9nKbw.cjs.map → date-range-CIWYm3eS.cjs.map} +1 -1
- package/dist/{date-range-inline-LLC3Y0mi.cjs → date-range-inline-B9Dp2z6C.cjs} +1 -1
- package/dist/{date-range-inline-LLC3Y0mi.cjs.map → date-range-inline-B9Dp2z6C.cjs.map} +1 -1
- package/dist/{date-range-inline-B_g1YXu3.js.map → date-range-inline-CpKG6qt2.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/{date-range-DUWpF0Qw.js → date-range-sGkC0KF3.js} +4 -4
- package/dist/{date-range-DUWpF0Qw.js.map → date-range-sGkC0KF3.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-Co89XWry.cjs → delay-Bu4WMQlV.cjs} +1 -1
- package/dist/{delay-Co89XWry.cjs.map → delay-Bu4WMQlV.cjs.map} +1 -1
- package/dist/{delay-CtDrlf1Q.js → delay-DwX65fSc.js} +4 -4
- package/dist/{delay-CtDrlf1Q.js.map → delay-DwX65fSc.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-CyXyVdb2.cjs → details-B8p62xmR.cjs} +1 -1
- package/dist/{details-CyXyVdb2.cjs.map → details-B8p62xmR.cjs.map} +1 -1
- package/dist/{details-B1Ax7WiP.js → details-CCW52lzz.js} +5 -5
- package/dist/{details-B1Ax7WiP.js.map → details-CCW52lzz.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-service-DXLGSshF.cjs → dialog-service-CzDO08Gy.cjs} +1 -1
- package/dist/{dialog-service-DXLGSshF.cjs.map → dialog-service-CzDO08Gy.cjs.map} +1 -1
- package/dist/{dialog-service-CCFGpU7a.js → dialog-service-DH-tjPuE.js} +2 -2
- package/dist/{dialog-service-CCFGpU7a.js.map → dialog-service-DH-tjPuE.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +5 -5
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +5 -5
- package/dist/discovery.cjs +1 -1
- package/dist/{divider-DuwCrKQu.js → divider-CbEWg3G_.js} +1 -1
- package/dist/{divider-DuwCrKQu.js.map → divider-CbEWg3G_.js.map} +1 -1
- package/dist/{divider-xcvHqVBc.cjs → divider-JyyFw_3J.cjs} +1 -1
- package/dist/{divider-xcvHqVBc.cjs.map → divider-JyyFw_3J.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +2 -2
- package/dist/{expand-DUgOh1af.cjs → expand-BmwIPNjq.cjs} +1 -1
- package/dist/{expand-DUgOh1af.cjs.map → expand-BmwIPNjq.cjs.map} +1 -1
- package/dist/{expand-X0C1W279.js → expand-bFa_qVDT.js} +4 -4
- package/dist/{expand-X0C1W279.js.map → expand-bFa_qVDT.js.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{extra-BqfYIC_q.cjs → extra-BUgyMgjl.cjs} +1 -1
- package/dist/{extra-BqfYIC_q.cjs.map → extra-BUgyMgjl.cjs.map} +1 -1
- package/dist/{extra-BTyq-5Z6.js → extra-HwbaUnCD.js} +1 -1
- package/dist/{extra-BTyq-5Z6.js.map → extra-HwbaUnCD.js.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/float-BQwhfibw.cjs +1 -0
- package/dist/{float-yZoLnUg0.cjs.map → float-BQwhfibw.cjs.map} +1 -1
- package/dist/{float-BgGeLER6.js → float-D5ezUurt.js} +1 -1
- package/dist/{float-BgGeLER6.js.map → float-D5ezUurt.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{flow-BPDtbhLe.js.map → flow-BGkHnOnd.js.map} +1 -1
- package/dist/{flow-Dn9AZktE.cjs.map → flow-ClAJ6Qby.cjs.map} +1 -1
- package/dist/{form-C1qS9uvS.js.map → form-rCZqoAoK.js.map} +1 -1
- package/dist/{form-CzD0JLxM.cjs → form-wI58M85H.cjs} +1 -1
- package/dist/{form-CzD0JLxM.cjs.map → form-wI58M85H.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{hashContent-BUqULUiZ.js.map → hashContent-B2IntJQf.js.map} +1 -1
- package/dist/{hashContent-CI39BY-_.cjs.map → hashContent-CahnEuut.cjs.map} +1 -1
- package/dist/{icons-BLFEJFDG.cjs → icons-B6V3nZ4-.cjs} +1 -1
- package/dist/{icons-BLFEJFDG.cjs.map → icons-B6V3nZ4-.cjs.map} +1 -1
- package/dist/{icons-BDcb8dNb.js → icons-C5-DIjet.js} +2 -2
- package/dist/{icons-BDcb8dNb.js.map → icons-C5-DIjet.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-qCW0HzwB.js → iframe-BXBsuLwt.js} +1 -1
- package/dist/{iframe-qCW0HzwB.js.map → iframe-BXBsuLwt.js.map} +1 -1
- package/dist/{iframe-CrDpQkhj.cjs → iframe-C7sHg7RC.cjs} +1 -1
- package/dist/{iframe-CrDpQkhj.cjs.map → iframe-C7sHg7RC.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 +53 -52
- package/dist/{input-C1MIZaKq.cjs → input-BGNZlfL8.cjs} +1 -1
- package/dist/{input-C1MIZaKq.cjs.map → input-BGNZlfL8.cjs.map} +1 -1
- package/dist/{input-Dv-HtkM9.js.map → input-Bc3bVISm.js.map} +1 -1
- package/dist/{input-chip-CyvjhQSw.js → input-chip-CiG61y-N.js} +1 -1
- package/dist/{input-chip-CyvjhQSw.js.map → input-chip-CiG61y-N.js.map} +1 -1
- package/dist/{input-chip-DnfthOSY.cjs → input-chip-p24lkYtY.cjs} +1 -1
- package/dist/{input-chip-DnfthOSY.cjs.map → input-chip-p24lkYtY.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/{intersection-C0JuW_7U.js.map → intersection-BrXp4YTO.js.map} +1 -1
- package/dist/{intersection-MvbRovUz.cjs → intersection-DqBqnpgh.cjs} +1 -1
- package/dist/{intersection-MvbRovUz.cjs.map → intersection-DqBqnpgh.cjs.map} +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-D0cR3hT1.cjs → layout-B0_IXfov.cjs} +1 -1
- package/dist/{layout-D0cR3hT1.cjs.map → layout-B0_IXfov.cjs.map} +1 -1
- package/dist/{layout-PZCF3kwl.cjs → layout-CTfRXQoz.cjs} +1 -1
- package/dist/{layout-PZCF3kwl.cjs.map → layout-CTfRXQoz.cjs.map} +1 -1
- package/dist/{layout-Y5qo3er8.js → layout-Cqghi_rx.js} +2 -2
- package/dist/{layout-Y5qo3er8.js.map → layout-Cqghi_rx.js.map} +1 -1
- package/dist/{layout-BE2ld1IY.js → layout-fjM1DWlF.js} +1 -1
- package/dist/{layout-BE2ld1IY.js.map → layout-fjM1DWlF.js.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/lazy-BDNnH_r7.cjs +1 -0
- package/dist/lazy-BDNnH_r7.cjs.map +1 -0
- package/dist/lazy-D6R5N5v4.js +13 -0
- package/dist/lazy-D6R5N5v4.js.map +1 -0
- package/dist/{lightbox-Ce8nMldr.cjs → lightbox-BWKTzA03.cjs} +1 -1
- package/dist/{lightbox-Ce8nMldr.cjs.map → lightbox-BWKTzA03.cjs.map} +1 -1
- package/dist/{lightbox-C_pqYF6q.js → lightbox-CnCTvqSu.js} +3 -3
- package/dist/{lightbox-C_pqYF6q.js.map → lightbox-CnCTvqSu.js.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-DcnTGee0.js → list-BpjKUOzM.js} +2 -2
- package/dist/{list-DcnTGee0.js.map → list-BpjKUOzM.js.map} +1 -1
- package/dist/{list-CLc_OQ5k.cjs → list-CMWHu6cV.cjs} +1 -1
- package/dist/{list-CLc_OQ5k.cjs.map → list-CMWHu6cV.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-Mi8bar6B.js → litElement.mixin-BnNYZ24e.js} +1 -1
- package/dist/{litElement.mixin-Mi8bar6B.js.map → litElement.mixin-BnNYZ24e.js.map} +1 -1
- package/dist/{litElement.mixin-DeT3kAOS.cjs → litElement.mixin-CtQOmwq6.cjs} +1 -1
- package/dist/{litElement.mixin-DeT3kAOS.cjs.map → litElement.mixin-CtQOmwq6.cjs.map} +1 -1
- package/dist/{magnetic-Dj52WplI.js → magnetic-BhXebqF3.js} +2 -2
- package/dist/{magnetic-Dj52WplI.js.map → magnetic-BhXebqF3.js.map} +1 -1
- package/dist/{magnetic-aBBnj_vk.cjs → magnetic-CVXEkYTA.cjs} +1 -1
- package/dist/{magnetic-aBBnj_vk.cjs.map → magnetic-CVXEkYTA.cjs.map} +1 -1
- package/dist/{mailbox-BrLZPj2o.js → mailbox-CHIpxS3W.js} +5 -5
- package/dist/{mailbox-BrLZPj2o.js.map → mailbox-CHIpxS3W.js.map} +1 -1
- package/dist/{mailbox-CE5sTDsQ.cjs → mailbox-Tg1CROVz.cjs} +1 -1
- package/dist/{mailbox-CE5sTDsQ.cjs.map → mailbox-Tg1CROVz.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-SNb-3q5h.js → map-YY1Q4FWO.js} +1 -1
- package/dist/{map-SNb-3q5h.js.map → map-YY1Q4FWO.js.map} +1 -1
- package/dist/{map-CKzhM6uY.cjs → map-Z_dsu-dv.cjs} +1 -1
- package/dist/{map-CKzhM6uY.cjs.map → map-Z_dsu-dv.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{menu-VErqs9NG.js → menu-BIBUgS1T.js} +2 -2
- package/dist/{menu-VErqs9NG.js.map → menu-BIBUgS1T.js.map} +1 -1
- package/dist/{menu-BnGjBrdD.cjs → menu-DS8Iz4fJ.cjs} +1 -1
- package/dist/{menu-BnGjBrdD.cjs.map → menu-DS8Iz4fJ.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +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 +1 -1
- package/dist/{notification-B_Fkxv7d.js → notification-ChAvNXf3.js} +3 -3
- package/dist/{notification-B_Fkxv7d.js.map → notification-ChAvNXf3.js.map} +1 -1
- package/dist/{notification-DE5dFf8G.cjs → notification-DPUkuifB.cjs} +1 -1
- package/dist/{notification-DE5dFf8G.cjs.map → notification-DPUkuifB.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-DuAlGv27.js → option-Ci7C8xxh.js} +1 -1
- package/dist/{option-DuAlGv27.js.map → option-Ci7C8xxh.js.map} +1 -1
- package/dist/{option-BmbP5ulK.cjs → option-OIp0joyN.cjs} +1 -1
- package/dist/{option-BmbP5ulK.cjs.map → option-OIp0joyN.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-stack-J_eJCUTX.cjs.map → overlay-stack-7bs4ZNnh.cjs.map} +1 -1
- package/dist/{overlay-stack-BJt_r6aZ.js.map → overlay-stack-DXPYHPhk.js.map} +1 -1
- package/dist/overlay.cjs +130 -0
- package/dist/overlay.cjs.map +1 -0
- package/dist/overlay.js +570 -0
- package/dist/overlay.js.map +1 -0
- package/dist/page.cjs +1 -1
- package/dist/page.js +4 -4
- package/dist/{progress-Bt9gUiGP.cjs → progress-32Cad1NX.cjs} +1 -1
- package/dist/{progress-Bt9gUiGP.cjs.map → progress-32Cad1NX.cjs.map} +1 -1
- package/dist/{progress-BnXr7aAs.js → progress-DGkwPgDX.js} +1 -1
- package/dist/{progress-BnXr7aAs.js.map → progress-DGkwPgDX.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{provide-Disc6_zz.js → provide-BuzyBLGj.js} +1 -1
- package/dist/{provide-Disc6_zz.js.map → provide-BuzyBLGj.js.map} +1 -1
- package/dist/{provide-CnXCF-UP.cjs → provide-MvHcXKzT.cjs} +1 -1
- package/dist/{provide-CnXCF-UP.cjs.map → provide-MvHcXKzT.cjs.map} +1 -1
- package/dist/qr-scanner.cjs +1 -1
- package/dist/qr-scanner.js +1 -1
- package/dist/{radio-group-BgZgHMoA.js → radio-group-B72sYGnS.js} +1 -1
- package/dist/{radio-group-BgZgHMoA.js.map → radio-group-B72sYGnS.js.map} +1 -1
- package/dist/{radio-group-DkBFgq_3.cjs → radio-group-B7DuNxUq.cjs} +1 -1
- package/dist/{radio-group-DkBFgq_3.cjs.map → radio-group-B7DuNxUq.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/{reduced-motion-DR32yKEO.cjs → reduced-motion-9RjNnhIg.cjs} +1 -1
- package/dist/{reduced-motion-DR32yKEO.cjs.map → reduced-motion-9RjNnhIg.cjs.map} +1 -1
- package/dist/{reduced-motion-B83yZbcO.js.map → reduced-motion-BZTLqAyl.js.map} +1 -1
- package/dist/{rxjs-utils-CN9fv8Xq.js → rxjs-utils-CKTnEKUH.js} +1 -1
- package/dist/{rxjs-utils-CN9fv8Xq.js.map → rxjs-utils-CKTnEKUH.js.map} +1 -1
- package/dist/{rxjs-utils-Vn6DCKgL.cjs → rxjs-utils-DJbZRjp3.cjs} +1 -1
- package/dist/{rxjs-utils-Vn6DCKgL.cjs.map → rxjs-utils-DJbZRjp3.cjs.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{scroll-57rkTHm8.js → scroll-CdmXRXh2.js} +1 -1
- package/dist/{scroll-57rkTHm8.js.map → scroll-CdmXRXh2.js.map} +1 -1
- package/dist/{scroll-hWt0b1gK.cjs → scroll-V1rAZ9fK.cjs} +1 -1
- package/dist/{scroll-hWt0b1gK.cjs.map → scroll-V1rAZ9fK.cjs.map} +1 -1
- package/dist/{search-BlGJ6uJv.js.map → search-CvUZRLF1.js.map} +1 -1
- package/dist/{search-C8eAOzBm.cjs.map → search-CwMav5QB.cjs.map} +1 -1
- package/dist/{select-BDonPD5a.cjs → select-DFxoBgEf.cjs} +1 -1
- package/dist/{select-BDonPD5a.cjs.map → select-DFxoBgEf.cjs.map} +1 -1
- package/dist/{select-CkOAwmxC.js → select-wFDKDLQI.js} +2 -2
- package/dist/{select-CkOAwmxC.js.map → select-wFDKDLQI.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-Bv2mPHWk.cjs → sheet-DdlZhnDG.cjs} +2 -2
- package/dist/{sheet-Bv2mPHWk.cjs.map → sheet-DdlZhnDG.cjs.map} +1 -1
- package/dist/{sheet-NUgEmozP.js → sheet-LFVo5iN4.js} +4 -4
- package/dist/{sheet-NUgEmozP.js.map → sheet-LFVo5iN4.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-BKmnlkpZ.cjs → sheet.service-BfNDB0K0.cjs} +1 -1
- package/dist/{sheet.service-BKmnlkpZ.cjs.map → sheet.service-BfNDB0K0.cjs.map} +1 -1
- package/dist/{sheet.service-CanLo8ko.js → sheet.service-DQE7-_wq.js} +3 -3
- package/dist/{sheet.service-CanLo8ko.js.map → sheet.service-DQE7-_wq.js.map} +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/skills/INDEX.md +1 -1
- package/dist/skills/overlay.md +200 -0
- package/dist/skills/schmancy/INDEX.md +1 -1
- package/dist/skills/schmancy/overlay.md +200 -0
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{sound.service-BjSoGjmT.cjs → sound.service-BEN6Xjy_.cjs} +1 -1
- package/dist/{sound.service-BjSoGjmT.cjs.map → sound.service-BEN6Xjy_.cjs.map} +1 -1
- package/dist/{sound.service-cdkw3Wkv.js → sound.service-DWZe6swU.js} +1 -1
- package/dist/{sound.service-cdkw3Wkv.js.map → sound.service-DWZe6swU.js.map} +1 -1
- package/dist/{splash-screen-BemqNFNj.cjs → splash-screen-C9HqX2nR.cjs} +1 -1
- package/dist/{splash-screen-BemqNFNj.cjs.map → splash-screen-C9HqX2nR.cjs.map} +1 -1
- package/dist/{splash-screen-B0ppA3f1.js → splash-screen-COg3Z6n8.js} +1 -1
- package/dist/{splash-screen-B0ppA3f1.js.map → splash-screen-COg3Z6n8.js.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-Cjy9zCiU.js → src-C7niWYur.js} +51 -51
- package/dist/{src-Cjy9zCiU.js.map → src-C7niWYur.js.map} +1 -1
- package/dist/{src-ByGCYD-E.cjs → src-I4M33WK2.cjs} +3 -3
- package/dist/{src-ByGCYD-E.cjs.map → src-I4M33WK2.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +3 -3
- package/dist/{store-CO4nJyGj.cjs → store-CjFHCSDb.cjs} +1 -1
- package/dist/{store-CO4nJyGj.cjs.map → store-CjFHCSDb.cjs.map} +1 -1
- package/dist/{store-Bmj6rvZY.js.map → store-CjzZDQt8.js.map} +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +1 -1
- package/dist/{surface-CtpWeSGn.js → surface-0XM4DBaT.js} +2 -2
- package/dist/{surface-CtpWeSGn.js.map → surface-0XM4DBaT.js.map} +1 -1
- package/dist/{surface-CoLYICO1.cjs → surface-B6DA01kL.cjs} +1 -1
- package/dist/{surface-CoLYICO1.cjs.map → surface-B6DA01kL.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{surface.mixin-CSKqQH-0.cjs → surface.mixin-DxOi-xo0.cjs} +1 -1
- package/dist/{surface.mixin-CSKqQH-0.cjs.map → surface.mixin-DxOi-xo0.cjs.map} +1 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.js +1 -1
- package/dist/{table-COQKtlJB.cjs → table-B-DsOqzT.cjs} +2 -2
- package/dist/{table-COQKtlJB.cjs.map → table-B-DsOqzT.cjs.map} +1 -1
- package/dist/{table-bgFb1KYU.js → table-hBEZRxM_.js} +3 -3
- package/dist/{table-bgFb1KYU.js.map → table-hBEZRxM_.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-BicCpU1B.js → tabs-C7r4TqcX.js} +2 -2
- package/dist/{tabs-BicCpU1B.js.map → tabs-C7r4TqcX.js.map} +1 -1
- package/dist/{tabs-CoMJAXDy.cjs → tabs-DZaLZUBy.cjs} +1 -1
- package/dist/{tabs-CoMJAXDy.cjs.map → tabs-DZaLZUBy.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-Bh58QnlW.cjs +2 -0
- package/dist/{tailwind.mixin-BfdVIGgD.cjs.map → tailwind.mixin-Bh58QnlW.cjs.map} +1 -1
- package/dist/tailwind.mixin-H5Pn7vSJ.js +219 -0
- package/dist/{tailwind.mixin-CNdR3zFD.js.map → tailwind.mixin-H5Pn7vSJ.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-CxTSwn3x.cjs → textarea-B2544vx9.cjs} +1 -1
- package/dist/{textarea-CxTSwn3x.cjs.map → textarea-B2544vx9.cjs.map} +1 -1
- package/dist/{textarea-D7O9Uo15.js → textarea-CS-KdSLz.js} +1 -1
- package/dist/{textarea-D7O9Uo15.js.map → textarea-CS-KdSLz.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-DGiyJMTT.js → theme-Cq_c9IO3.js} +7 -7
- package/dist/{theme-DGiyJMTT.js.map → theme-Cq_c9IO3.js.map} +1 -1
- package/dist/{theme-CCez6SRm.cjs → theme-DU5yXaV-.cjs} +1 -1
- package/dist/{theme-CCez6SRm.cjs.map → theme-DU5yXaV-.cjs.map} +1 -1
- package/dist/{theme-button-BV0CxpGn.cjs → theme-button-CPujUbgV.cjs} +1 -1
- package/dist/{theme-button-BV0CxpGn.cjs.map → theme-button-CPujUbgV.cjs.map} +1 -1
- package/dist/{theme-button-s9GfSQL5.js → theme-button-OJl2ma0u.js} +1 -1
- package/dist/{theme-button-s9GfSQL5.js.map → theme-button-OJl2ma0u.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.events-EznKK2Y0.cjs.map → theme.events-DakXxZeP.cjs.map} +1 -1
- package/dist/{theme.events-Bw3mYjUA.js.map → theme.events-NuihzD_p.js.map} +1 -1
- package/dist/{theme.interface-Cyqv5XWY.js.map → theme.interface-Buged9Cg.js.map} +1 -1
- package/dist/{theme.interface-CCE3L1ql.cjs.map → theme.interface-DTwkuAKJ.cjs.map} +1 -1
- package/dist/theme.js +5 -5
- package/dist/{theme.service-ETiKUwVy.cjs → theme.service-DxJPUGlu.cjs} +1 -1
- package/dist/{theme.service-ETiKUwVy.cjs.map → theme.service-DxJPUGlu.cjs.map} +1 -1
- package/dist/{theme.service-_qP5WvB9.js → theme.service-cOfPrtfe.js} +2 -2
- package/dist/{theme.service-_qP5WvB9.js.map → theme.service-cOfPrtfe.js.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{tslib.es6-PMITL0Z3.cjs.map → tslib.es6-Cnt75pb6.cjs.map} +1 -1
- package/dist/{tslib.es6-vJQZBGJO.js.map → tslib.es6-DMzzJKHV.js.map} +1 -1
- package/dist/{typewriter-BTqEQXsX.js → typewriter-DyN7xa0n.js} +5 -5
- package/dist/{typewriter-BTqEQXsX.js.map → typewriter-DyN7xa0n.js.map} +1 -1
- package/dist/{typewriter-DeaL3NfZ.cjs → typewriter-LK0S4NEr.cjs} +1 -1
- package/dist/{typewriter-DeaL3NfZ.cjs.map → typewriter-LK0S4NEr.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/{utils-C8PD8So2.cjs → utils-2qrmPb78.cjs} +1 -1
- package/dist/{utils-C8PD8So2.cjs.map → utils-2qrmPb78.cjs.map} +1 -1
- package/dist/{utils-DVuCPDfw.js → utils-xBXLvebz.js} +3 -3
- package/dist/{utils-DVuCPDfw.js.map → utils-xBXLvebz.js.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +5 -5
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +1 -1
- package/dist/{window-CDHDVOwO.js → window-BWecg8Ih.js} +6 -6
- package/dist/{window-CDHDVOwO.js.map → window-BWecg8Ih.js.map} +1 -1
- package/dist/{window-IGZgxuUC.cjs → window-Cjv2GqSN.cjs} +1 -1
- package/dist/{window-IGZgxuUC.cjs.map → window-Cjv2GqSN.cjs.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/INDEX.md +1 -1
- package/skills/schmancy/overlay.md +200 -0
- package/src/overlay/index.ts +15 -0
- package/src/overlay/overlay.animations.ts +137 -0
- package/src/overlay/overlay.component.ts +452 -0
- package/src/overlay/overlay.confirm-body.ts +149 -0
- package/src/overlay/overlay.gestures.ts +131 -0
- package/src/overlay/overlay.layout.ts +76 -0
- package/src/overlay/overlay.service.ts +299 -0
- package/src/overlay/overlay.stack.ts +171 -0
- package/src/overlay/overlay.types.ts +146 -0
- package/types/src/overlay/index.d.ts +5 -0
- package/types/src/overlay/overlay.animations.d.ts +26 -0
- package/types/src/overlay/overlay.component.d.ts +48 -0
- package/types/src/overlay/overlay.confirm-body.d.ts +42 -0
- package/types/src/overlay/overlay.gestures.d.ts +39 -0
- package/types/src/overlay/overlay.layout.d.ts +48 -0
- package/types/src/overlay/overlay.service.d.ts +62 -0
- package/types/src/overlay/overlay.stack.d.ts +25 -0
- package/types/src/overlay/overlay.types.d.ts +122 -0
- package/dist/area-CApZWjqs.cjs.map +0 -1
- package/dist/area-D_p1YBgP.js.map +0 -1
- package/dist/chunk-BCfY8kxB.cjs +0 -1
- package/dist/context-C6GwmNJJ.cjs +0 -1
- package/dist/context-oBTPHrbc.js +0 -3
- package/dist/float-yZoLnUg0.cjs +0 -1
- package/dist/tailwind.mixin-BfdVIGgD.cjs +0 -2
- package/dist/tailwind.mixin-CNdR3zFD.js +0 -219
- /package/dist/{animation-Bcwh107v.cjs → animation-CQRdLgzX.cjs} +0 -0
- /package/dist/{animation-CXKSuUoE.js → animation-hXFClrIn.js} +0 -0
- /package/dist/{date-range-inline-B_g1YXu3.js → date-range-inline-CpKG6qt2.js} +0 -0
- /package/dist/{flow-BPDtbhLe.js → flow-BGkHnOnd.js} +0 -0
- /package/dist/{flow-Dn9AZktE.cjs → flow-ClAJ6Qby.cjs} +0 -0
- /package/dist/{form-C1qS9uvS.js → form-rCZqoAoK.js} +0 -0
- /package/dist/{hashContent-BUqULUiZ.js → hashContent-B2IntJQf.js} +0 -0
- /package/dist/{hashContent-CI39BY-_.cjs → hashContent-CahnEuut.cjs} +0 -0
- /package/dist/{input-Dv-HtkM9.js → input-Bc3bVISm.js} +0 -0
- /package/dist/{intersection-C0JuW_7U.js → intersection-BrXp4YTO.js} +0 -0
- /package/dist/{overlay-stack-J_eJCUTX.cjs → overlay-stack-7bs4ZNnh.cjs} +0 -0
- /package/dist/{overlay-stack-BJt_r6aZ.js → overlay-stack-DXPYHPhk.js} +0 -0
- /package/dist/{reduced-motion-B83yZbcO.js → reduced-motion-BZTLqAyl.js} +0 -0
- /package/dist/{search-BlGJ6uJv.js → search-CvUZRLF1.js} +0 -0
- /package/dist/{search-C8eAOzBm.cjs → search-CwMav5QB.cjs} +0 -0
- /package/dist/{store-Bmj6rvZY.js → store-CjzZDQt8.js} +0 -0
- /package/dist/{theme.events-EznKK2Y0.cjs → theme.events-DakXxZeP.cjs} +0 -0
- /package/dist/{theme.events-Bw3mYjUA.js → theme.events-NuihzD_p.js} +0 -0
- /package/dist/{theme.interface-Cyqv5XWY.js → theme.interface-Buged9Cg.js} +0 -0
- /package/dist/{theme.interface-CCE3L1ql.cjs → theme.interface-DTwkuAKJ.cjs} +0 -0
- /package/dist/{tslib.es6-PMITL0Z3.cjs → tslib.es6-Cnt75pb6.cjs} +0 -0
- /package/dist/{tslib.es6-vJQZBGJO.js → tslib.es6-DMzzJKHV.js} +0 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit'
|
|
2
|
+
import type { Observable } from 'rxjs'
|
|
3
|
+
import type { ComponentType } from '../area/router.types'
|
|
4
|
+
import type { THistoryStrategy } from '../area/router.types'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* What the caller is showing. Flat union — `typeof`-discriminated at runtime.
|
|
8
|
+
* Reuses area's `ComponentType` (class | tag name | HTMLElement | lazy loader)
|
|
9
|
+
* and adds Lit `TemplateResult` for inline templates.
|
|
10
|
+
*
|
|
11
|
+
* The common case is one positional arg: `show(MyEditor)`, `show(html\`...\`)`,
|
|
12
|
+
* `show(el)`, `show('my-tag')`, `show(lazy(() => import('./x')))`.
|
|
13
|
+
*/
|
|
14
|
+
export type Content = ComponentType | TemplateResult
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Anchor hint for positioning. When provided, the layout engine tries to
|
|
18
|
+
* anchor the overlay near this point via Floating UI / CSS Anchor Positioning.
|
|
19
|
+
* Falls back to centered / sheet if the anchored position can't fit.
|
|
20
|
+
*
|
|
21
|
+
* `MouseEvent | TouchEvent` — idiomatic: pass the event that triggered the show.
|
|
22
|
+
* `HTMLElement` — anchor to the element's bounding box (menus, tooltips).
|
|
23
|
+
* `{ x, y }` — explicit coordinates (rare; for programmatic positioning).
|
|
24
|
+
*/
|
|
25
|
+
export type Anchor = MouseEvent | HTMLElement | { x: number; y: number }
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* How the overlay should behave. All optional; the system handles every
|
|
29
|
+
* layout decision itself.
|
|
30
|
+
*/
|
|
31
|
+
export interface ShowOptions {
|
|
32
|
+
/** Props to merge into the mounted component. Only meaningful when
|
|
33
|
+
* `content` is a class, tag, or lazy loader. */
|
|
34
|
+
props?: Record<string, unknown>
|
|
35
|
+
|
|
36
|
+
/** Anchor hint — triggers anchored layout (the novel default) when passed.
|
|
37
|
+
* Pass the MouseEvent that opened the overlay. */
|
|
38
|
+
anchor?: Anchor
|
|
39
|
+
|
|
40
|
+
/** Default `true`. `false` blocks Esc / backdrop click / swipe / popstate.
|
|
41
|
+
* Programmatic dismiss (sub.unsubscribe / dismissAll) always works. */
|
|
42
|
+
dismissable?: boolean
|
|
43
|
+
|
|
44
|
+
/** Default `false`. Keep DOM between successive shows with the same
|
|
45
|
+
* content — reuse cached mount instead of reconstructing. */
|
|
46
|
+
persist?: boolean
|
|
47
|
+
|
|
48
|
+
/** Standard web-platform cancellation input. Composes with fetch,
|
|
49
|
+
* addEventListener, getUserMedia, etc. When signal aborts, overlay
|
|
50
|
+
* dismisses (same as unsubscribe). */
|
|
51
|
+
signal?: AbortSignal
|
|
52
|
+
|
|
53
|
+
/** Rare escape hatch. Defaults: `false` for anchored, `true` for
|
|
54
|
+
* centered/sheet. Setting `modal: true` on an anchored overlay forces
|
|
55
|
+
* <dialog>.showModal() semantics (focus trap + background inert) —
|
|
56
|
+
* use for destructive-confirm menus. */
|
|
57
|
+
modal?: boolean
|
|
58
|
+
|
|
59
|
+
/** Default `'push'`. Same vocabulary as `area.push()`.
|
|
60
|
+
* - `'push'` — new history entry; back dismisses, forward re-opens.
|
|
61
|
+
* - `'replace'` — replace current entry; back skips the overlay.
|
|
62
|
+
* - `'silent'` — no history; for tooltips / transient / ephemeral UI. */
|
|
63
|
+
historyStrategy?: THistoryStrategy
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Resolved layout. Pure output of the dispatch engine; callers never pick.
|
|
68
|
+
* - `'centered'` — native <dialog>.showModal(), focus-trapped.
|
|
69
|
+
* - `'anchored'` — popover="auto" + CSS Anchor Positioning / Floating UI,
|
|
70
|
+
* non-modal, background stays interactive.
|
|
71
|
+
* - `'sheet'` — native <dialog>.showModal() as a bottom sheet,
|
|
72
|
+
* swipe-to-dismiss, safe-area aware.
|
|
73
|
+
*/
|
|
74
|
+
export type OverlayLayout = 'centered' | 'anchored' | 'sheet'
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Read-only snapshot of an active overlay. Emitted as part of the
|
|
78
|
+
* `openOverlays$` stream for stack introspection.
|
|
79
|
+
*/
|
|
80
|
+
export interface OverlayEntry {
|
|
81
|
+
/** Internal id (auto-generated uuid). Exposed for debugging / devtools.
|
|
82
|
+
* Not a public identifier — callers use the Subscription for identity. */
|
|
83
|
+
readonly id: string
|
|
84
|
+
/** The mounted `<schmancy-overlay>` element. Escape hatch for DOM access. */
|
|
85
|
+
readonly element: HTMLElement
|
|
86
|
+
/** Current layout, chosen by the dispatch engine. */
|
|
87
|
+
readonly layout: OverlayLayout
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Reason the overlay closed. Emitted on the internal close-event `detail`
|
|
92
|
+
* for consumers who need to distinguish user-dismiss from programmatic
|
|
93
|
+
* dismiss from form submission.
|
|
94
|
+
*/
|
|
95
|
+
export type CloseReason =
|
|
96
|
+
| 'structured' // content dispatched CustomEvent('close', { detail })
|
|
97
|
+
| 'native-submit' // <form method="dialog"> committed a returnValue
|
|
98
|
+
| 'escape' // user pressed Escape
|
|
99
|
+
| 'backdrop' // user clicked outside the overlay
|
|
100
|
+
| 'swipe' // user swiped a bottom sheet down
|
|
101
|
+
| 'popstate' // user hit back button / hardware back
|
|
102
|
+
| 'light-dismiss' // popover light-dismiss (clicked outside anchored overlay)
|
|
103
|
+
| 'programmatic' // sub.unsubscribe() / dismissAll()
|
|
104
|
+
| 'abort' // AbortSignal aborted
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Options for confirm() / danger() / ask() sugar.
|
|
108
|
+
*/
|
|
109
|
+
export interface OverlayConfirmOptions {
|
|
110
|
+
title?: string
|
|
111
|
+
subtitle?: string
|
|
112
|
+
message?: string
|
|
113
|
+
/** Default `'Confirm'`. */
|
|
114
|
+
confirmText?: string
|
|
115
|
+
/** Default `'Cancel'`. */
|
|
116
|
+
cancelText?: string
|
|
117
|
+
/** `'danger'` flips the confirm button to destructive styling and
|
|
118
|
+
* sets `role="alertdialog"`. */
|
|
119
|
+
variant?: 'default' | 'danger'
|
|
120
|
+
/** Anchor hint — same semantics as `show()`. */
|
|
121
|
+
anchor?: Anchor
|
|
122
|
+
/** Standard cancellation input. */
|
|
123
|
+
signal?: AbortSignal
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Options for prompt() sugar.
|
|
128
|
+
*/
|
|
129
|
+
export interface OverlayPromptOptions extends OverlayConfirmOptions {
|
|
130
|
+
label?: string
|
|
131
|
+
defaultValue?: string
|
|
132
|
+
placeholder?: string
|
|
133
|
+
inputType?: 'text' | 'email' | 'number' | 'password' | 'url' | 'tel'
|
|
134
|
+
/** Optional HTML5 validation pattern applied to the input. */
|
|
135
|
+
pattern?: string
|
|
136
|
+
required?: boolean
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Signature of the primary verb — declared here for consumption by the
|
|
141
|
+
* service and the skill docs. Cold Observable; subscription IS the lifecycle.
|
|
142
|
+
*/
|
|
143
|
+
export type ShowFn = <T = void>(
|
|
144
|
+
content: Content,
|
|
145
|
+
options?: ShowOptions,
|
|
146
|
+
) => Observable<T | undefined>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './overlay.component';
|
|
2
|
+
export * from './overlay.confirm-body';
|
|
3
|
+
export * from './overlay.service';
|
|
4
|
+
export type { Anchor, CloseReason, Content, OverlayConfirmOptions, OverlayEntry, OverlayLayout, OverlayPromptOptions, ShowFn, ShowOptions, } from './overlay.types';
|
|
5
|
+
export { lazy } from '../area/lazy';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { OverlayLayout } from './overlay.types';
|
|
2
|
+
/**
|
|
3
|
+
* WAAPI keyframes + options per layout + direction.
|
|
4
|
+
*
|
|
5
|
+
* One animation vocabulary — no per-element bespoke keyframes. Aligns
|
|
6
|
+
* with the `animation` skill (spring physics presets). Honors
|
|
7
|
+
* `prefers-reduced-motion` by collapsing transforms to opacity-only.
|
|
8
|
+
*
|
|
9
|
+
* Returns `null` when reduced-motion is active and only opacity change
|
|
10
|
+
* is needed — the caller sets style directly.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Shape matches both DOM `AnimationEffectTiming` and
|
|
14
|
+
* `KeyframeAnimationOptions` so it passes structural checks in both
|
|
15
|
+
* older and newer `lib.dom.d.ts` vintages.
|
|
16
|
+
*/
|
|
17
|
+
export interface AnimationSpec {
|
|
18
|
+
keyframes: Keyframe[];
|
|
19
|
+
options: {
|
|
20
|
+
duration: number;
|
|
21
|
+
easing: string;
|
|
22
|
+
fill?: FillMode;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export declare function backdropAnimation(direction: 'in' | 'out'): AnimationSpec;
|
|
26
|
+
export declare function surfaceAnimation(layout: OverlayLayout, direction: 'in' | 'out'): AnimationSpec;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
import type { CloseReason, Content, OverlayLayout, ShowOptions } from './overlay.types';
|
|
3
|
+
declare const SchmancyOverlay_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
4
|
+
/**
|
|
5
|
+
* The single overlay element. Hosts a native `<dialog>` in its shadow
|
|
6
|
+
* root for centered/sheet layouts; for anchored, we stay modeless by
|
|
7
|
+
* using `<dialog>` with .show() (non-modal) + explicit positioning.
|
|
8
|
+
*
|
|
9
|
+
* Public lifecycle: the service calls `open()` to mount content and
|
|
10
|
+
* animate in, `close(reason)` to animate out and dismiss. The element
|
|
11
|
+
* dispatches `overlay-close` when closed; the service listens and
|
|
12
|
+
* resolves the caller's Observable.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SchmancyOverlay extends SchmancyOverlay_base {
|
|
15
|
+
layout: OverlayLayout;
|
|
16
|
+
dismissable: boolean;
|
|
17
|
+
modal: boolean;
|
|
18
|
+
private _dialog;
|
|
19
|
+
private _surface;
|
|
20
|
+
/** Close trigger for the service; emits the reason + detail payload. */
|
|
21
|
+
private readonly _closed$;
|
|
22
|
+
private _mounted;
|
|
23
|
+
private _closing;
|
|
24
|
+
/** Service subscribes to this to know when the overlay dismissed. */
|
|
25
|
+
get closed$(): import('rxjs').Observable<{
|
|
26
|
+
reason: CloseReason;
|
|
27
|
+
result?: unknown;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Mount content and animate in. Called by the service after the
|
|
31
|
+
* element is attached to the DOM. Returns a promise that resolves
|
|
32
|
+
* when the entrance animation completes.
|
|
33
|
+
*/
|
|
34
|
+
open(content: Content, options: ShowOptions): Promise<void>;
|
|
35
|
+
/** Play exit animations then close the native dialog. */
|
|
36
|
+
close(reason: CloseReason, result?: unknown): Promise<void>;
|
|
37
|
+
private wireCloseTriggers;
|
|
38
|
+
private positionAnchored;
|
|
39
|
+
private playEnterAnimations;
|
|
40
|
+
private playExitAnimations;
|
|
41
|
+
protected render(): TemplateResult;
|
|
42
|
+
}
|
|
43
|
+
declare global {
|
|
44
|
+
interface HTMLElementTagNameMap {
|
|
45
|
+
'schmancy-overlay': SchmancyOverlay;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
declare const SchmancyOverlayPromptBody_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
3
|
+
/**
|
|
4
|
+
* Internal body component used by the `confirm()` / `prompt()` sugar.
|
|
5
|
+
*
|
|
6
|
+
* Minimal, dependency-free — plain HTML buttons / input so this file
|
|
7
|
+
* doesn't need to import schmancy-form / schmancy-button (avoids the
|
|
8
|
+
* risk of circular module graphs during early imports of $overlay).
|
|
9
|
+
*
|
|
10
|
+
* Emits a `close` CustomEvent with the typed result; the overlay picks
|
|
11
|
+
* that up as the primary return channel. For custom-styled confirms,
|
|
12
|
+
* callers pass their own component to `show()`.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SchmancyOverlayPromptBody extends SchmancyOverlayPromptBody_base {
|
|
15
|
+
heading?: string;
|
|
16
|
+
subtitle?: string;
|
|
17
|
+
message?: string;
|
|
18
|
+
confirmText: string;
|
|
19
|
+
cancelText: string;
|
|
20
|
+
variant: 'default' | 'danger';
|
|
21
|
+
/** Presence of `mode` switches between confirm (boolean) and prompt (string). */
|
|
22
|
+
mode: 'confirm' | 'prompt';
|
|
23
|
+
label?: string;
|
|
24
|
+
defaultValue: string;
|
|
25
|
+
placeholder?: string;
|
|
26
|
+
inputType: string;
|
|
27
|
+
pattern?: string;
|
|
28
|
+
required: boolean;
|
|
29
|
+
private _input?;
|
|
30
|
+
firstUpdated(): void;
|
|
31
|
+
private dismiss;
|
|
32
|
+
private handleCancel;
|
|
33
|
+
private handleConfirm;
|
|
34
|
+
private handleSubmit;
|
|
35
|
+
protected render(): TemplateResult;
|
|
36
|
+
}
|
|
37
|
+
declare global {
|
|
38
|
+
interface HTMLElementTagNameMap {
|
|
39
|
+
'schmancy-overlay-prompt-body': SchmancyOverlayPromptBody;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* Swipe-to-dismiss gesture for sheet-layout overlays.
|
|
4
|
+
*
|
|
5
|
+
* RxJS-native (rxjs skill principle 3: every async source is an Observable).
|
|
6
|
+
* Returns an Observable that emits `'dismiss'` when the gesture passes the
|
|
7
|
+
* distance/velocity threshold. Caller maps emissions to teardown.
|
|
8
|
+
*
|
|
9
|
+
* Thresholds are policy constants, not magic numbers.
|
|
10
|
+
*/
|
|
11
|
+
/** Distance beyond which the gesture dismisses, in px. */
|
|
12
|
+
export declare const DISMISS_DISTANCE_PX = 80;
|
|
13
|
+
/** Distance beyond which the gesture dismisses, as a fraction of sheet height. */
|
|
14
|
+
export declare const DISMISS_DISTANCE_FRACTION = 0.3;
|
|
15
|
+
/** Velocity beyond which the gesture dismisses, in px per ms. */
|
|
16
|
+
export declare const DISMISS_VELOCITY_PX_PER_MS = 0.5;
|
|
17
|
+
/** Drag only starts if touchstart is within this top-px band (unless a drag handle is used). */
|
|
18
|
+
export declare const DRAG_START_TOP_PX = 40;
|
|
19
|
+
/** Snap-back spring duration when gesture doesn't pass threshold. */
|
|
20
|
+
export declare const SNAP_BACK_MS = 300;
|
|
21
|
+
export interface SwipeInputs {
|
|
22
|
+
/** The surface element to track gestures on. */
|
|
23
|
+
surface: HTMLElement;
|
|
24
|
+
/** Optional drag handle. When provided, drag can start from anywhere on
|
|
25
|
+
* the handle; without it, drag must start in the top DRAG_START_TOP_PX band. */
|
|
26
|
+
dragHandle?: HTMLElement | null;
|
|
27
|
+
/** Completes the gesture stream (component disconnect / layout change). */
|
|
28
|
+
until$: Observable<unknown>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Returns an Observable that emits exactly once when the user commits to
|
|
32
|
+
* dismissing the sheet (threshold passed). The gesture is owned by the
|
|
33
|
+
* caller — teardown fires on unsubscribe.
|
|
34
|
+
*
|
|
35
|
+
* During an in-progress drag, the surface's `transform` is updated
|
|
36
|
+
* directly for 1:1 tracking. On release-but-not-dismissed, the surface
|
|
37
|
+
* snaps back via a CSS transition.
|
|
38
|
+
*/
|
|
39
|
+
export declare function swipeToDismiss$(inputs: SwipeInputs): Observable<'dismiss'>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Anchor, OverlayLayout } from './overlay.types';
|
|
2
|
+
/**
|
|
3
|
+
* Layout dispatch engine — pure function of (anchor, content, viewport).
|
|
4
|
+
* No DOM access, no side effects — testable with synthetic inputs.
|
|
5
|
+
*
|
|
6
|
+
* Thresholds are policy constants, not magic numbers. Changes are visible
|
|
7
|
+
* as named-constant diffs, not hidden in inline literals (state skill:
|
|
8
|
+
* "thresholds ARE the policy").
|
|
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
|
+
/** Floating UI / CSS anchor-positioning safety padding. */
|
|
17
|
+
export declare const ANCHOR_FIT_PADDING_PX = 16;
|
|
18
|
+
export interface LayoutInputs {
|
|
19
|
+
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
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Priority order:
|
|
33
|
+
* 1. viewport / content forces sheet
|
|
34
|
+
* 2. anchor provided → anchored (the novel default)
|
|
35
|
+
* 3. fallback → centered
|
|
36
|
+
*
|
|
37
|
+
* Floating UI's `flip` + `shift` + `size` middleware handles "anchor
|
|
38
|
+
* doesn't fit initially" — it returns a fitting position rather than
|
|
39
|
+
* rejecting. So step 2 does NOT branch on "does the anchor fit?";
|
|
40
|
+
* Floating UI's output IS the answer. If content is genuinely too
|
|
41
|
+
* large for any anchored position, step 1 already routed to sheet.
|
|
42
|
+
*/
|
|
43
|
+
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'];
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import type { CloseReason, OverlayConfirmOptions, Content, OverlayEntry, OverlayPromptOptions, ShowOptions } from './overlay.types';
|
|
3
|
+
/**
|
|
4
|
+
* Public read-only stream of the current overlay stack. Subscribe to
|
|
5
|
+
* observe stack changes — e.g. to update a breadcrumb, show a "close
|
|
6
|
+
* all" button, or gate another action while any overlay is open.
|
|
7
|
+
*
|
|
8
|
+
* Emits synchronously with the current snapshot on subscribe. Never
|
|
9
|
+
* completes — the caller owns teardown via `takeUntil(this.disconnecting)`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const openOverlays$: Observable<readonly OverlayEntry[]>;
|
|
12
|
+
/**
|
|
13
|
+
* Open an overlay containing `content`. Returns a cold Observable — the
|
|
14
|
+
* overlay mounts on subscribe and dismisses on unsubscribe. Emits at
|
|
15
|
+
* most one value (the result from content's `close` event) then completes.
|
|
16
|
+
*
|
|
17
|
+
* The subscription IS the overlay lifecycle. `takeUntil(this.disconnecting)`
|
|
18
|
+
* on the caller's side means the overlay auto-dismisses when the caller
|
|
19
|
+
* unmounts — no handles to track, no leaks.
|
|
20
|
+
*
|
|
21
|
+
* **Anchored is the novel default.** When triggered by a user event, pass
|
|
22
|
+
* it as `anchor` — the overlay blooms from the point of attention. Falls
|
|
23
|
+
* back to centered or sheet when the viewport / content makes that the
|
|
24
|
+
* better layout (see overlay.layout.ts).
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* show(MyEditor, { props: { id }, anchor: event })
|
|
28
|
+
* .pipe(takeUntil(this.disconnecting))
|
|
29
|
+
* .subscribe(saved => saved && this.store.persist(saved))
|
|
30
|
+
*/
|
|
31
|
+
export declare function show<T = void>(content: Content, options?: ShowOptions): Observable<T | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Yes/no confirmation dialog. Returns a Promise that resolves with the
|
|
34
|
+
* user's choice. `variant: 'danger'` flips to destructive styling and
|
|
35
|
+
* `role="alertdialog"`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function confirm(options?: OverlayConfirmOptions): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Input prompt dialog. Returns the entered string, or `null` if the user
|
|
40
|
+
* cancels or dismisses.
|
|
41
|
+
*/
|
|
42
|
+
export declare function prompt(options?: OverlayPromptOptions): Promise<string | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Subscribe to custom events emitted from any currently-open overlay
|
|
45
|
+
* whose content matches `tagName`. Inspired by `area.on(name)` — keyed
|
|
46
|
+
* by tag name (stable across HMR / lazy chunks) rather than a uid or
|
|
47
|
+
* class reference.
|
|
48
|
+
*
|
|
49
|
+
* The returned Observable never completes on its own — the caller owns
|
|
50
|
+
* teardown via `takeUntil(this.disconnecting)`. During gaps where no
|
|
51
|
+
* matching overlay is open, no events are emitted; when an instance
|
|
52
|
+
* mounts, events flow.
|
|
53
|
+
*
|
|
54
|
+
* Stacked instances of the same content merge their event streams.
|
|
55
|
+
*/
|
|
56
|
+
export declare function overlayEvents<E extends Event = CustomEvent>(tagName: string, eventName: string): Observable<E>;
|
|
57
|
+
/**
|
|
58
|
+
* Close every currently-open overlay. LIFO order. Imperative — use for
|
|
59
|
+
* app-level flows like logout or route reset.
|
|
60
|
+
*/
|
|
61
|
+
export declare function dismissAll(): void;
|
|
62
|
+
export type { CloseReason };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import type { OverlayEntry } from './overlay.types';
|
|
3
|
+
/** Public read-only stream of the current stack. Emits on every push/pop. */
|
|
4
|
+
export declare const stack$: Observable<readonly OverlayEntry[]>;
|
|
5
|
+
/** Synchronous snapshot. Use only when a component can't subscribe. */
|
|
6
|
+
export declare function currentStack(): readonly OverlayEntry[];
|
|
7
|
+
/** Append an entry (top of stack). */
|
|
8
|
+
export declare function pushEntry(entry: OverlayEntry): void;
|
|
9
|
+
/** Remove by id. No-op if the id is not in the stack. */
|
|
10
|
+
export declare function removeEntry(id: string): void;
|
|
11
|
+
/** Clear the entire stack. Used by dismissAll(). */
|
|
12
|
+
export declare function clearStack(): void;
|
|
13
|
+
/** Top entry (LIFO). Undefined when stack is empty. */
|
|
14
|
+
export declare function topEntry(): OverlayEntry | undefined;
|
|
15
|
+
export declare function markModal(id: string, hostContainer: HTMLElement): void;
|
|
16
|
+
export declare function unmarkModal(id: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* Returns an Observable of `tagName` elements currently in the stack.
|
|
19
|
+
* The overlayEvents public helper composes `fromEvent` over this stream
|
|
20
|
+
* via switchMap to tap events without owning the overlay lifecycle.
|
|
21
|
+
*
|
|
22
|
+
* Stays alive across open/close cycles — the caller owns completion via
|
|
23
|
+
* `takeUntil(this.disconnecting)`, matching the house rxjs convention.
|
|
24
|
+
*/
|
|
25
|
+
export declare function elementsByTag$(tagName: string): Observable<readonly HTMLElement[]>;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit';
|
|
2
|
+
import type { Observable } from 'rxjs';
|
|
3
|
+
import type { ComponentType } from '../area/router.types';
|
|
4
|
+
import type { THistoryStrategy } from '../area/router.types';
|
|
5
|
+
/**
|
|
6
|
+
* What the caller is showing. Flat union — `typeof`-discriminated at runtime.
|
|
7
|
+
* Reuses area's `ComponentType` (class | tag name | HTMLElement | lazy loader)
|
|
8
|
+
* and adds Lit `TemplateResult` for inline templates.
|
|
9
|
+
*
|
|
10
|
+
* The common case is one positional arg: `show(MyEditor)`, `show(html\`...\`)`,
|
|
11
|
+
* `show(el)`, `show('my-tag')`, `show(lazy(() => import('./x')))`.
|
|
12
|
+
*/
|
|
13
|
+
export type Content = ComponentType | TemplateResult;
|
|
14
|
+
/**
|
|
15
|
+
* Anchor hint for positioning. When provided, the layout engine tries to
|
|
16
|
+
* anchor the overlay near this point via Floating UI / CSS Anchor Positioning.
|
|
17
|
+
* Falls back to centered / sheet if the anchored position can't fit.
|
|
18
|
+
*
|
|
19
|
+
* `MouseEvent | TouchEvent` — idiomatic: pass the event that triggered the show.
|
|
20
|
+
* `HTMLElement` — anchor to the element's bounding box (menus, tooltips).
|
|
21
|
+
* `{ x, y }` — explicit coordinates (rare; for programmatic positioning).
|
|
22
|
+
*/
|
|
23
|
+
export type Anchor = MouseEvent | HTMLElement | {
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* How the overlay should behave. All optional; the system handles every
|
|
29
|
+
* layout decision itself.
|
|
30
|
+
*/
|
|
31
|
+
export interface ShowOptions {
|
|
32
|
+
/** Props to merge into the mounted component. Only meaningful when
|
|
33
|
+
* `content` is a class, tag, or lazy loader. */
|
|
34
|
+
props?: Record<string, unknown>;
|
|
35
|
+
/** Anchor hint — triggers anchored layout (the novel default) when passed.
|
|
36
|
+
* Pass the MouseEvent that opened the overlay. */
|
|
37
|
+
anchor?: Anchor;
|
|
38
|
+
/** Default `true`. `false` blocks Esc / backdrop click / swipe / popstate.
|
|
39
|
+
* Programmatic dismiss (sub.unsubscribe / dismissAll) always works. */
|
|
40
|
+
dismissable?: boolean;
|
|
41
|
+
/** Default `false`. Keep DOM between successive shows with the same
|
|
42
|
+
* content — reuse cached mount instead of reconstructing. */
|
|
43
|
+
persist?: boolean;
|
|
44
|
+
/** Standard web-platform cancellation input. Composes with fetch,
|
|
45
|
+
* addEventListener, getUserMedia, etc. When signal aborts, overlay
|
|
46
|
+
* dismisses (same as unsubscribe). */
|
|
47
|
+
signal?: AbortSignal;
|
|
48
|
+
/** Rare escape hatch. Defaults: `false` for anchored, `true` for
|
|
49
|
+
* centered/sheet. Setting `modal: true` on an anchored overlay forces
|
|
50
|
+
* <dialog>.showModal() semantics (focus trap + background inert) —
|
|
51
|
+
* use for destructive-confirm menus. */
|
|
52
|
+
modal?: boolean;
|
|
53
|
+
/** Default `'push'`. Same vocabulary as `area.push()`.
|
|
54
|
+
* - `'push'` — new history entry; back dismisses, forward re-opens.
|
|
55
|
+
* - `'replace'` — replace current entry; back skips the overlay.
|
|
56
|
+
* - `'silent'` — no history; for tooltips / transient / ephemeral UI. */
|
|
57
|
+
historyStrategy?: THistoryStrategy;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolved layout. Pure output of the dispatch engine; callers never pick.
|
|
61
|
+
* - `'centered'` — native <dialog>.showModal(), focus-trapped.
|
|
62
|
+
* - `'anchored'` — popover="auto" + CSS Anchor Positioning / Floating UI,
|
|
63
|
+
* non-modal, background stays interactive.
|
|
64
|
+
* - `'sheet'` — native <dialog>.showModal() as a bottom sheet,
|
|
65
|
+
* swipe-to-dismiss, safe-area aware.
|
|
66
|
+
*/
|
|
67
|
+
export type OverlayLayout = 'centered' | 'anchored' | 'sheet';
|
|
68
|
+
/**
|
|
69
|
+
* Read-only snapshot of an active overlay. Emitted as part of the
|
|
70
|
+
* `openOverlays$` stream for stack introspection.
|
|
71
|
+
*/
|
|
72
|
+
export interface OverlayEntry {
|
|
73
|
+
/** Internal id (auto-generated uuid). Exposed for debugging / devtools.
|
|
74
|
+
* Not a public identifier — callers use the Subscription for identity. */
|
|
75
|
+
readonly id: string;
|
|
76
|
+
/** The mounted `<schmancy-overlay>` element. Escape hatch for DOM access. */
|
|
77
|
+
readonly element: HTMLElement;
|
|
78
|
+
/** Current layout, chosen by the dispatch engine. */
|
|
79
|
+
readonly layout: OverlayLayout;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Reason the overlay closed. Emitted on the internal close-event `detail`
|
|
83
|
+
* for consumers who need to distinguish user-dismiss from programmatic
|
|
84
|
+
* dismiss from form submission.
|
|
85
|
+
*/
|
|
86
|
+
export type CloseReason = 'structured' | 'native-submit' | 'escape' | 'backdrop' | 'swipe' | 'popstate' | 'light-dismiss' | 'programmatic' | 'abort';
|
|
87
|
+
/**
|
|
88
|
+
* Options for confirm() / danger() / ask() sugar.
|
|
89
|
+
*/
|
|
90
|
+
export interface OverlayConfirmOptions {
|
|
91
|
+
title?: string;
|
|
92
|
+
subtitle?: string;
|
|
93
|
+
message?: string;
|
|
94
|
+
/** Default `'Confirm'`. */
|
|
95
|
+
confirmText?: string;
|
|
96
|
+
/** Default `'Cancel'`. */
|
|
97
|
+
cancelText?: string;
|
|
98
|
+
/** `'danger'` flips the confirm button to destructive styling and
|
|
99
|
+
* sets `role="alertdialog"`. */
|
|
100
|
+
variant?: 'default' | 'danger';
|
|
101
|
+
/** Anchor hint — same semantics as `show()`. */
|
|
102
|
+
anchor?: Anchor;
|
|
103
|
+
/** Standard cancellation input. */
|
|
104
|
+
signal?: AbortSignal;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Options for prompt() sugar.
|
|
108
|
+
*/
|
|
109
|
+
export interface OverlayPromptOptions extends OverlayConfirmOptions {
|
|
110
|
+
label?: string;
|
|
111
|
+
defaultValue?: string;
|
|
112
|
+
placeholder?: string;
|
|
113
|
+
inputType?: 'text' | 'email' | 'number' | 'password' | 'url' | 'tel';
|
|
114
|
+
/** Optional HTML5 validation pattern applied to the input. */
|
|
115
|
+
pattern?: string;
|
|
116
|
+
required?: boolean;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Signature of the primary verb — declared here for consumption by the
|
|
120
|
+
* service and the skill docs. Cold Observable; subscription IS the lifecycle.
|
|
121
|
+
*/
|
|
122
|
+
export type ShowFn = <T = void>(content: Content, options?: ShowOptions) => Observable<T | undefined>;
|