@mhmo91/schmancy 0.10.4 → 0.10.6
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 +43 -949
- package/dist/agent/{flow-CaPi2G8y.js.map → flow-3RrZM-e7.js.map} +1 -1
- package/dist/agent/schmancy.agent.js +3817 -6527
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +10 -680
- package/dist/agent/{vendor-jsqr-r7GNh4P3.js.map → vendor-jsqr-BUVwyoGC.js.map} +1 -1
- package/dist/agent/{vendor-material-color-Be96dpGE.js.map → vendor-material-color-33Mj762T.js.map} +1 -1
- package/dist/{area-DHVANBbr.js → area-CIZZ5tbB.js} +1 -1
- package/dist/{area-DHVANBbr.js.map → area-CIZZ5tbB.js.map} +1 -1
- package/dist/{area-ZupIezvU.cjs → area-oZjYJlUy.cjs} +1 -1
- package/dist/{area-ZupIezvU.cjs.map → area-oZjYJlUy.cjs.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-pHvsyfbH.js → autocomplete-C1oDLuol.js} +2 -2
- package/dist/{autocomplete-pHvsyfbH.js.map → autocomplete-C1oDLuol.js.map} +1 -1
- package/dist/{autocomplete-Bn525CTp.cjs → autocomplete-X20i6D62.cjs} +1 -1
- package/dist/{autocomplete-Bn525CTp.cjs.map → autocomplete-X20i6D62.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 +2 -2
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-IyEtsNI4.cjs → boat-CUx58Gwe.cjs} +1 -1
- package/dist/{boat-IyEtsNI4.cjs.map → boat-CUx58Gwe.cjs.map} +1 -1
- package/dist/{boat-_Yv3M6YM.js → boat-CpE0yAlK.js} +2 -2
- package/dist/{boat-_Yv3M6YM.js.map → boat-CpE0yAlK.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-Ck2IXJ4r.js → busy-C9n-DUY4.js} +1 -1
- package/dist/{busy-Ck2IXJ4r.js.map → busy-C9n-DUY4.js.map} +1 -1
- package/dist/{busy-CjM39APN.cjs → busy-D1DKZhgV.cjs} +1 -1
- package/dist/{busy-CjM39APN.cjs.map → busy-D1DKZhgV.cjs.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 +3 -3
- package/dist/{card-DUWZmMHc.js → card-B3hN-qzk.js} +1 -1
- package/dist/{card-DUWZmMHc.js.map → card-B3hN-qzk.js.map} +1 -1
- package/dist/{card-DIxDuuth.cjs → card-DZJ7qjf2.cjs} +1 -1
- package/dist/{card-DIxDuuth.cjs.map → card-DZJ7qjf2.cjs.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-DPS1mWG-.js → checkbox-CvmB1ev9.js} +1 -1
- package/dist/{checkbox-DPS1mWG-.js.map → checkbox-CvmB1ev9.js.map} +1 -1
- package/dist/{checkbox-CGdFXuWQ.cjs → checkbox-DapdzDow.cjs} +1 -1
- package/dist/{checkbox-CGdFXuWQ.cjs.map → checkbox-DapdzDow.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-UoFbwmlG.cjs → chips-7g6mWRuh.cjs} +1 -1
- package/dist/{chips-UoFbwmlG.cjs.map → chips-7g6mWRuh.cjs.map} +1 -1
- package/dist/{chips-BnnXQSA-.js → chips-C8Y3_3ke.js} +4 -4
- package/dist/{chips-BnnXQSA-.js.map → chips-C8Y3_3ke.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/{context-daN5G6HS.cjs.map → context-BpCETidA.cjs.map} +1 -1
- package/dist/{context-Bdu1xt0W.js.map → context-DJTJnSK4.js.map} +1 -1
- package/dist/{date-range-DOstCIg8.js → date-range-DdcaPX7C.js} +99 -113
- package/dist/date-range-DdcaPX7C.js.map +1 -0
- package/dist/date-range-ZfUl4duV.cjs +131 -0
- package/dist/date-range-ZfUl4duV.cjs.map +1 -0
- package/dist/{date-range-inline-4P7zqeVe.cjs → date-range-inline-D-d7N6bh.cjs} +1 -1
- package/dist/{date-range-inline-4P7zqeVe.cjs.map → date-range-inline-D-d7N6bh.cjs.map} +1 -1
- package/dist/{date-range-inline-BVycTWLb.js → date-range-inline-QQmIWhZ4.js} +1 -1
- package/dist/{date-range-inline-BVycTWLb.js.map → date-range-inline-QQmIWhZ4.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +2 -2
- package/dist/{details-BJBbZOO6.cjs → details-3rL6UQU8.cjs} +1 -1
- package/dist/{details-BJBbZOO6.cjs.map → details-3rL6UQU8.cjs.map} +1 -1
- package/dist/{details-DPc5GxPa.js → details-Dpjh-XnJ.js} +2 -2
- package/dist/{details-DPc5GxPa.js.map → details-Dpjh-XnJ.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +2 -2
- package/dist/{divider-BvJsmSPH.js → divider-BdfEKQsH.js} +1 -1
- package/dist/{divider-BvJsmSPH.js.map → divider-BdfEKQsH.js.map} +1 -1
- package/dist/{divider-DPT3XnG5.cjs → divider-CutXDz3F.cjs} +1 -1
- package/dist/{divider-DPT3XnG5.cjs.map → divider-CutXDz3F.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-CTqBWVXo.cjs → expand-DM6zfZf7.cjs} +1 -1
- package/dist/{expand-CTqBWVXo.cjs.map → expand-DM6zfZf7.cjs.map} +1 -1
- package/dist/{expand-BMzocdtj.js → expand-DrgMPJbu.js} +2 -2
- package/dist/{expand-BMzocdtj.js.map → expand-DrgMPJbu.js.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{extra-BeHlUhzv.js → extra-B6gFu4_1.js} +1 -1
- package/dist/{extra-BeHlUhzv.js.map → extra-B6gFu4_1.js.map} +1 -1
- package/dist/{extra-h_cuxRII.cjs → extra-DJRYaOXe.cjs} +1 -1
- package/dist/{extra-h_cuxRII.cjs.map → extra-DJRYaOXe.cjs.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{float-CTc1xxqH.js → float-1iihPek5.js} +1 -1
- package/dist/{float-CTc1xxqH.js.map → float-1iihPek5.js.map} +1 -1
- package/dist/{float-CwVBs11k.cjs → float-Ckyk85XG.cjs} +1 -1
- package/dist/{float-CwVBs11k.cjs.map → float-Ckyk85XG.cjs.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-BtwOBMZ9.js.map → form-BF1c3Dk1.js.map} +1 -1
- package/dist/{form-CSJp687X.cjs.map → form-DeO5XX3b.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{hashContent-1ARKIsx9.js.map → hashContent-BU6jl5ih.js.map} +1 -1
- package/dist/{hashContent-Bp5S6T4U.cjs.map → hashContent-Bobsobip.cjs.map} +1 -1
- package/dist/{icons-qEQW4pjM.cjs → icons-CV-fiGcW.cjs} +1 -1
- package/dist/{icons-qEQW4pjM.cjs.map → icons-CV-fiGcW.cjs.map} +1 -1
- package/dist/{icons-BbCVrcas.js → icons-DUkcTZAY.js} +2 -2
- package/dist/{icons-BbCVrcas.js.map → icons-DUkcTZAY.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-BJfDIEJf.js → iframe-C9tj7F6Y.js} +1 -1
- package/dist/{iframe-BJfDIEJf.js.map → iframe-C9tj7F6Y.js.map} +1 -1
- package/dist/{iframe-D6HTruav.cjs → iframe-DF97oGtZ.cjs} +1 -1
- package/dist/{iframe-D6HTruav.cjs.map → iframe-DF97oGtZ.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 +70 -76
- package/dist/{input-LTK3cctF.js → input-DE7x223Y.js} +1 -1
- package/dist/{input-LTK3cctF.js.map → input-DE7x223Y.js.map} +1 -1
- package/dist/{input-U26axtcs.cjs → input-TW9G3n7X.cjs} +1 -1
- package/dist/{input-U26axtcs.cjs.map → input-TW9G3n7X.cjs.map} +1 -1
- package/dist/{input-chip-Ch-aCs3c.js → input-chip-BdoaVw_D.js} +1 -1
- package/dist/{input-chip-Ch-aCs3c.js.map → input-chip-BdoaVw_D.js.map} +1 -1
- package/dist/{input-chip-CADXt0X5.cjs → input-chip-Do48eI5r.cjs} +1 -1
- package/dist/{input-chip-CADXt0X5.cjs.map → input-chip-Do48eI5r.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-C4xmnU4n.js → layout-CXPNsUIo.js} +1 -1
- package/dist/{layout-C4xmnU4n.js.map → layout-CXPNsUIo.js.map} +1 -1
- package/dist/{layout-Dmh6fxh0.cjs → layout-Zhe7wSZ_.cjs} +1 -1
- package/dist/{layout-Dmh6fxh0.cjs.map → layout-Zhe7wSZ_.cjs.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{lightbox-DqG2z3Cn.js → lightbox-DcutIyjx.js} +2 -2
- package/dist/{lightbox-DqG2z3Cn.js.map → lightbox-DcutIyjx.js.map} +1 -1
- package/dist/{lightbox-DbYUSfVl.cjs → lightbox-sPfnYzjJ.cjs} +1 -1
- package/dist/{lightbox-DbYUSfVl.cjs.map → lightbox-sPfnYzjJ.cjs.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-D6-_E5ZD.js → list-BWrtrdgs.js} +1 -1
- package/dist/{list-D6-_E5ZD.js.map → list-BWrtrdgs.js.map} +1 -1
- package/dist/{list-CLX4sSAw.cjs → list-C4vasUly.cjs} +1 -1
- package/dist/{list-CLX4sSAw.cjs.map → list-C4vasUly.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{magnetic-BH0TsofV.cjs.map → magnetic-BJgB1dVi.cjs.map} +1 -1
- package/dist/{magnetic-BZGFxAWG.js.map → magnetic-YwCNvtbB.js.map} +1 -1
- package/dist/{map-WXeVkx2K.cjs → map-BAQ9FEB6.cjs} +1 -1
- package/dist/{map-WXeVkx2K.cjs.map → map-BAQ9FEB6.cjs.map} +1 -1
- package/dist/{map-Dhy3ta9v.js → map-CEreveeI.js} +1 -1
- package/dist/{map-Dhy3ta9v.js.map → map-CEreveeI.js.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/menu-3yXDZusj.cjs +23 -0
- package/dist/menu-3yXDZusj.cjs.map +1 -0
- package/dist/menu-CxChOxWT.js +62 -0
- package/dist/menu-CxChOxWT.js.map +1 -0
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins-Db7gjDah.cjs +298 -0
- package/dist/{mixins-De3xfjrm.cjs.map → mixins-Db7gjDah.cjs.map} +1 -1
- package/dist/mixins-Dw6hVfy-.js +627 -0
- package/dist/{mixins-CcIWET41.js.map → mixins-Dw6hVfy-.js.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-D_PQjBSf.cjs → notification-DKYy9qVe.cjs} +1 -1
- package/dist/{notification-D_PQjBSf.cjs.map → notification-DKYy9qVe.cjs.map} +1 -1
- package/dist/{notification-CVLqQ8c_.js → notification-ycbUBbOu.js} +2 -2
- package/dist/{notification-CVLqQ8c_.js.map → notification-ycbUBbOu.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-rm4HebVs.js → option-DtOhMd3k.js} +1 -1
- package/dist/{option-rm4HebVs.js.map → option-DtOhMd3k.js.map} +1 -1
- package/dist/{option-DDU_goh1.cjs → option-zgVge3BH.cjs} +1 -1
- package/dist/{option-DDU_goh1.cjs.map → option-zgVge3BH.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-stack-CAQno0CK.js.map → overlay-stack-DCDS17uj.js.map} +1 -1
- package/dist/{overlay-stack-BprhAE9a.cjs.map → overlay-stack-DPIe_aYv.cjs.map} +1 -1
- package/dist/overlay.cjs +5 -53
- package/dist/overlay.cjs.map +1 -1
- package/dist/overlay.confirm-body-AFqYBqrI.js +104 -0
- package/dist/overlay.confirm-body-AFqYBqrI.js.map +1 -0
- package/dist/overlay.confirm-body-DctQLDao.cjs +49 -0
- package/dist/overlay.confirm-body-DctQLDao.cjs.map +1 -0
- package/dist/overlay.js +120 -360
- package/dist/overlay.js.map +1 -1
- package/dist/overlay.service-B9On2-Aa.js +146 -0
- package/dist/overlay.service-B9On2-Aa.js.map +1 -0
- package/dist/overlay.service-k2nCE4pi.cjs +1 -0
- package/dist/overlay.service-k2nCE4pi.cjs.map +1 -0
- package/dist/page.cjs +1 -1
- package/dist/page.js +4 -4
- package/dist/{payment-card-form-C0dHYZIv.js → payment-card-form-Be1-OVlL.js} +1 -1
- package/dist/{payment-card-form-C0dHYZIv.js.map → payment-card-form-Be1-OVlL.js.map} +1 -1
- package/dist/{payment-card-form-DNvmZxs4.cjs → payment-card-form-CNnGePG4.cjs} +1 -1
- package/dist/{payment-card-form-DNvmZxs4.cjs.map → payment-card-form-CNnGePG4.cjs.map} +1 -1
- package/dist/payment-card-form.cjs +1 -1
- package/dist/payment-card-form.js +1 -1
- package/dist/{progress-BRerM5Bn.js → progress-BFWzmTlz.js} +1 -1
- package/dist/{progress-BRerM5Bn.js.map → progress-BFWzmTlz.js.map} +1 -1
- package/dist/{progress-U3LQkpM2.cjs → progress-C4TGG2eN.cjs} +1 -1
- package/dist/{progress-U3LQkpM2.cjs.map → progress-C4TGG2eN.cjs.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/qr-scanner.cjs +1 -1
- package/dist/qr-scanner.js +1 -1
- package/dist/{radio-group-BZ2WoOXJ.js → radio-group-DTNAW5dd.js} +1 -1
- package/dist/{radio-group-BZ2WoOXJ.js.map → radio-group-DTNAW5dd.js.map} +1 -1
- package/dist/{radio-group-D7mm-yvJ.cjs → radio-group-xLRp1g57.cjs} +1 -1
- package/dist/{radio-group-D7mm-yvJ.cjs.map → radio-group-xLRp1g57.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-d-ivVN84.js.map → rxjs-utils-BK8VMe3K.js.map} +1 -1
- package/dist/{rxjs-utils-Csnks202.cjs.map → rxjs-utils-DhOKenkS.cjs.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{scroll-qL-HkMdP.js → scroll-BCmdqSQU.js} +1 -1
- package/dist/{scroll-qL-HkMdP.js.map → scroll-BCmdqSQU.js.map} +1 -1
- package/dist/{scroll-DJTjNIT_.cjs → scroll-Bdgb-vRy.cjs} +1 -1
- package/dist/{scroll-DJTjNIT_.cjs.map → scroll-Bdgb-vRy.cjs.map} +1 -1
- package/dist/{select-CnPXUeSf.js → select-COGARE0b.js} +2 -2
- package/dist/{select-CnPXUeSf.js.map → select-COGARE0b.js.map} +1 -1
- package/dist/{select-BvA7v-gL.cjs → select-Cv5t_PT3.cjs} +1 -1
- package/dist/{select-BvA7v-gL.cjs.map → select-Cv5t_PT3.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/skills/INDEX.md +3 -6
- package/dist/skills/SKILL.md +13 -9
- package/dist/skills/schmancy/INDEX.md +3 -6
- package/dist/skills/schmancy/SKILL.md +13 -9
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{splash-screen-BDt4PInk.cjs → splash-screen-B8rFbjqT.cjs} +1 -1
- package/dist/{splash-screen-BDt4PInk.cjs.map → splash-screen-B8rFbjqT.cjs.map} +1 -1
- package/dist/{splash-screen-C8JCqX5L.js → splash-screen-DbGbGttg.js} +1 -1
- package/dist/{splash-screen-C8JCqX5L.js.map → splash-screen-DbGbGttg.js.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-CqdnWGgr.js → src-YRir9pOP.js} +162 -162
- package/dist/src-YRir9pOP.js.map +1 -0
- package/dist/{src-CpRNClhg.cjs → src-b8D-Ec-Q.cjs} +13 -13
- package/dist/src-b8D-Ec-Q.cjs.map +1 -0
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-C8jQy8Ym.js → surface-BE7sGTBt.js} +1 -1
- package/dist/{surface-C8jQy8Ym.js.map → surface-BE7sGTBt.js.map} +1 -1
- package/dist/{surface-Du2Y4vXd.cjs → surface-BvudRtf5.cjs} +1 -1
- package/dist/{surface-Du2Y4vXd.cjs.map → surface-BvudRtf5.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-0RfeCa00.cjs → tabs-C0XKld1Z.cjs} +1 -1
- package/dist/{tabs-0RfeCa00.cjs.map → tabs-C0XKld1Z.cjs.map} +1 -1
- package/dist/{tabs-Cyahh9Q6.js → tabs-DIzCRsA3.js} +1 -1
- package/dist/{tabs-Cyahh9Q6.js.map → tabs-DIzCRsA3.js.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-jqRrLxmo.cjs → textarea-BCDCGCJd.cjs} +1 -1
- package/dist/{textarea-jqRrLxmo.cjs.map → textarea-BCDCGCJd.cjs.map} +1 -1
- package/dist/{textarea-CXCcTVnf.js → textarea-UbZzBwqm.js} +1 -1
- package/dist/{textarea-CXCcTVnf.js.map → textarea-UbZzBwqm.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/theme-CIsI-sFj.cjs +181 -0
- package/dist/{theme-Hjz9sCN-.cjs.map → theme-CIsI-sFj.cjs.map} +1 -1
- package/dist/{theme-2KZW2Rfs.js → theme-Qh-yPEPL.js} +3 -4
- package/dist/{theme-2KZW2Rfs.js.map → theme-Qh-yPEPL.js.map} +1 -1
- package/dist/{theme-button-9uF1eoHz.js → theme-button-CjTnfs9x.js} +1 -1
- package/dist/{theme-button-9uF1eoHz.js.map → theme-button-CjTnfs9x.js.map} +1 -1
- package/dist/{theme-button-C7QIbke1.cjs → theme-button-Dv1D_Vil.cjs} +1 -1
- package/dist/{theme-button-C7QIbke1.cjs.map → theme-button-Dv1D_Vil.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-D9l33b-M.cjs.map → theme.interface-BeW-sz_g.cjs.map} +1 -1
- package/dist/{theme.interface-DnVNre4O.js.map → theme.interface-v7SkAnDH.js.map} +1 -1
- package/dist/theme.js +5 -6
- package/dist/theme.service-Cfk88qHK.cjs +1 -0
- package/dist/theme.service-Cfk88qHK.cjs.map +1 -0
- package/dist/{theme.service-CmbOGMA8.js → theme.service-DIUo1mBP.js} +13 -14
- package/dist/theme.service-DIUo1mBP.js.map +1 -0
- package/dist/timeline.cjs +1 -1
- package/dist/timeline.js +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/{utils-hp-DnFf5.js → utils-BfOze6Tk.js} +1 -1
- package/dist/{utils-hp-DnFf5.js.map → utils-BfOze6Tk.js.map} +1 -1
- package/dist/{utils-Cr-YO4Np.cjs → utils-CJ9y2Jz9.cjs} +1 -1
- package/dist/{utils-Cr-YO4Np.cjs.map → utils-CJ9y2Jz9.cjs.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +2 -2
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +1 -1
- package/dist/{window-DtUOWiAj.cjs → window-9HOUXrTU.cjs} +1 -1
- package/dist/{window-DtUOWiAj.cjs.map → window-9HOUXrTU.cjs.map} +1 -1
- package/dist/{window-C7yY9yp5.js → window-B_55dzk0.js} +3 -3
- package/dist/{window-C7yY9yp5.js.map → window-B_55dzk0.js.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -2
- package/skills/schmancy/INDEX.md +3 -6
- package/skills/schmancy/SKILL.md +13 -9
- package/src/content-drawer/drawer.ts +24 -7
- package/src/content-drawer/events.ts +6 -0
- package/src/content-drawer/sheet.ts +13 -12
- package/src/date-range/date-range-dialog.ts +4 -4
- package/src/date-range/date-range.ts +35 -53
- package/src/index.ts +0 -4
- package/src/menu/menu-item.ts +7 -2
- package/src/menu/menu.ts +24 -20
- package/types/src/content-drawer/drawer.d.ts +2 -0
- package/types/src/content-drawer/events.d.ts +6 -0
- package/types/src/content-drawer/sheet.d.ts +6 -5
- package/types/src/date-range/date-range.d.ts +1 -5
- package/types/src/index.d.ts +0 -4
- package/types/src/menu/menu-item.d.ts +1 -0
- package/types/src/menu/menu.d.ts +9 -7
- package/dist/agent/vendor-highlight-CHJZQQB7.js +0 -2178
- package/dist/agent/vendor-highlight-CHJZQQB7.js.map +0 -1
- package/dist/code-highlight-CMilN0B8.cjs +0 -190
- package/dist/code-highlight-CMilN0B8.cjs.map +0 -1
- package/dist/code-highlight-kFUJ1Eet.js +0 -296
- package/dist/code-highlight-kFUJ1Eet.js.map +0 -1
- package/dist/code-highlight.cjs +0 -1
- package/dist/code-highlight.js +0 -2
- package/dist/date-range-BIyrzTRZ.cjs +0 -131
- package/dist/date-range-BIyrzTRZ.cjs.map +0 -1
- package/dist/date-range-DOstCIg8.js.map +0 -1
- package/dist/dialog-service-DI9PPy4H.js +0 -193
- package/dist/dialog-service-DI9PPy4H.js.map +0 -1
- package/dist/dialog-service-DJd5L0f5.cjs +0 -1
- package/dist/dialog-service-DJd5L0f5.cjs.map +0 -1
- package/dist/dialog.cjs +0 -89
- package/dist/dialog.cjs.map +0 -1
- package/dist/dialog.js +0 -419
- package/dist/dialog.js.map +0 -1
- package/dist/mailbox-Ct6iYe-4.cjs +0 -1140
- package/dist/mailbox-Ct6iYe-4.cjs.map +0 -1
- package/dist/mailbox-DsPII8HR.js +0 -1596
- package/dist/mailbox-DsPII8HR.js.map +0 -1
- package/dist/mailbox.cjs +0 -1
- package/dist/mailbox.js +0 -2
- package/dist/menu-Bhd3EapX.js +0 -56
- package/dist/menu-Bhd3EapX.js.map +0 -1
- package/dist/menu-Cg2aaDjs.cjs +0 -23
- package/dist/menu-Cg2aaDjs.cjs.map +0 -1
- package/dist/mixins-CcIWET41.js +0 -627
- package/dist/mixins-De3xfjrm.cjs +0 -298
- package/dist/sheet-BRL07BB4.js +0 -170
- package/dist/sheet-BRL07BB4.js.map +0 -1
- package/dist/sheet-BYQJAHQn.cjs +0 -35
- package/dist/sheet-BYQJAHQn.cjs.map +0 -1
- package/dist/sheet.cjs +0 -1
- package/dist/sheet.js +0 -3
- package/dist/sheet.service-B25bsrYG.cjs +0 -1
- package/dist/sheet.service-B25bsrYG.cjs.map +0 -1
- package/dist/sheet.service-SPQ8oLCi.js +0 -86
- package/dist/sheet.service-SPQ8oLCi.js.map +0 -1
- package/dist/skills/code-highlight.md +0 -47
- package/dist/skills/dialog.md +0 -69
- package/dist/skills/mailbox.md +0 -102
- package/dist/skills/schmancy/code-highlight.md +0 -47
- package/dist/skills/schmancy/dialog.md +0 -69
- package/dist/skills/schmancy/mailbox.md +0 -102
- package/dist/skills/schmancy/sheet.md +0 -76
- package/dist/skills/sheet.md +0 -76
- package/dist/src-CpRNClhg.cjs.map +0 -1
- package/dist/src-CqdnWGgr.js.map +0 -1
- package/dist/theme-Hjz9sCN-.cjs +0 -181
- package/dist/theme.events-Cv7N4Toe.js +0 -2
- package/dist/theme.events-Cv7N4Toe.js.map +0 -1
- package/dist/theme.events-DM4H5F2d.cjs +0 -1
- package/dist/theme.events-DM4H5F2d.cjs.map +0 -1
- package/dist/theme.service-BrUbGoeQ.cjs +0 -1
- package/dist/theme.service-BrUbGoeQ.cjs.map +0 -1
- package/dist/theme.service-CmbOGMA8.js.map +0 -1
- package/skills/schmancy/code-highlight.md +0 -47
- package/skills/schmancy/dialog.md +0 -69
- package/skills/schmancy/mailbox.md +0 -102
- package/skills/schmancy/sheet.md +0 -76
- package/src/code-highlight/code-highlight.ts +0 -345
- package/src/code-highlight/code-preview.ts +0 -125
- package/src/code-highlight/index.ts +0 -3
- package/src/dialog/dialog-base.mixin.ts +0 -576
- package/src/dialog/dialog-events.ts +0 -17
- package/src/dialog/dialog-service.ts +0 -494
- package/src/dialog/dialog.component.ts +0 -414
- package/src/dialog/index.ts +0 -3
- package/src/mailbox/README.md +0 -128
- package/src/mailbox/email-editor.ts +0 -1077
- package/src/mailbox/email-layout-selector.ts +0 -58
- package/src/mailbox/email-recipients.ts +0 -599
- package/src/mailbox/email-template-picker.ts +0 -297
- package/src/mailbox/email-viewer.ts +0 -717
- package/src/mailbox/index.ts +0 -31
- package/src/mailbox/mailbox.ts +0 -364
- package/src/mailbox/types.ts +0 -180
- package/src/sheet/hook.ts +0 -40
- package/src/sheet/index.ts +0 -2
- package/src/sheet/sheet.service.ts +0 -245
- package/src/sheet/sheet.ts +0 -238
- package/types/src/code-highlight/code-highlight.d.ts +0 -49
- package/types/src/code-highlight/code-preview.d.ts +0 -30
- package/types/src/code-highlight/index.d.ts +0 -3
- package/types/src/dialog/dialog-base.mixin.d.ts +0 -30
- package/types/src/dialog/dialog-events.d.ts +0 -13
- package/types/src/dialog/dialog-service.d.ts +0 -91
- package/types/src/dialog/dialog.component.d.ts +0 -150
- package/types/src/dialog/index.d.ts +0 -3
- package/types/src/mailbox/email-editor.d.ts +0 -101
- package/types/src/mailbox/email-layout-selector.d.ts +0 -18
- package/types/src/mailbox/email-recipients.d.ts +0 -122
- package/types/src/mailbox/email-template-picker.d.ts +0 -54
- package/types/src/mailbox/email-viewer.d.ts +0 -86
- package/types/src/mailbox/index.d.ts +0 -12
- package/types/src/mailbox/mailbox.d.ts +0 -82
- package/types/src/mailbox/types.d.ts +0 -176
- package/types/src/sheet/hook.d.ts +0 -5
- package/types/src/sheet/index.d.ts +0 -2
- package/types/src/sheet/sheet.d.ts +0 -29
- package/types/src/sheet/sheet.service.d.ts +0 -65
- /package/dist/agent/{flow-CaPi2G8y.js → flow-3RrZM-e7.js} +0 -0
- /package/dist/agent/{vendor-jsqr-r7GNh4P3.js → vendor-jsqr-BUVwyoGC.js} +0 -0
- /package/dist/agent/{vendor-material-color-Be96dpGE.js → vendor-material-color-33Mj762T.js} +0 -0
- /package/dist/{context-daN5G6HS.cjs → context-BpCETidA.cjs} +0 -0
- /package/dist/{context-Bdu1xt0W.js → context-DJTJnSK4.js} +0 -0
- /package/dist/{form-BtwOBMZ9.js → form-BF1c3Dk1.js} +0 -0
- /package/dist/{form-CSJp687X.cjs → form-DeO5XX3b.cjs} +0 -0
- /package/dist/{hashContent-1ARKIsx9.js → hashContent-BU6jl5ih.js} +0 -0
- /package/dist/{hashContent-Bp5S6T4U.cjs → hashContent-Bobsobip.cjs} +0 -0
- /package/dist/{magnetic-BH0TsofV.cjs → magnetic-BJgB1dVi.cjs} +0 -0
- /package/dist/{magnetic-BZGFxAWG.js → magnetic-YwCNvtbB.js} +0 -0
- /package/dist/{overlay-stack-CAQno0CK.js → overlay-stack-DCDS17uj.js} +0 -0
- /package/dist/{overlay-stack-BprhAE9a.cjs → overlay-stack-DPIe_aYv.cjs} +0 -0
- /package/dist/{rxjs-utils-d-ivVN84.js → rxjs-utils-BK8VMe3K.js} +0 -0
- /package/dist/{rxjs-utils-Csnks202.cjs → rxjs-utils-DhOKenkS.cjs} +0 -0
- /package/dist/{theme.interface-D9l33b-M.cjs → theme.interface-BeW-sz_g.cjs} +0 -0
- /package/dist/{theme.interface-DnVNre4O.js → theme.interface-v7SkAnDH.js} +0 -0
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
delay,
|
|
3
|
-
fromEvent,
|
|
4
|
-
map,
|
|
5
|
-
of,
|
|
6
|
-
Subject,
|
|
7
|
-
switchMap,
|
|
8
|
-
take,
|
|
9
|
-
tap,
|
|
10
|
-
} from 'rxjs'
|
|
11
|
-
import { $sounds } from '../audio'
|
|
12
|
-
import { ComponentType } from '../area/router.types'
|
|
13
|
-
import { discoverComponent } from '@mixins/discovery.service'
|
|
14
|
-
import { overlayStack } from '../utils/overlay-stack'
|
|
15
|
-
import SchmancySheet from './sheet'
|
|
16
|
-
|
|
17
|
-
export enum SchmancySheetPosition {
|
|
18
|
-
Side = 'side',
|
|
19
|
-
Bottom = 'bottom',
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export type SheetConfig = {
|
|
23
|
-
component: ComponentType
|
|
24
|
-
uid?: string
|
|
25
|
-
position?: SchmancySheetPosition
|
|
26
|
-
persist?: boolean
|
|
27
|
-
close?: () => void
|
|
28
|
-
lock?: boolean // Controls both ESC and overlay click dismissal
|
|
29
|
-
onBeforeOpen?: (component: HTMLElement) => void
|
|
30
|
-
onAfterOpen?: (component: HTMLElement) => void
|
|
31
|
-
props?: Record<string, unknown> // Properties to pass to the component
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Keep old name for backward compatibility
|
|
35
|
-
type BottomSheeetTarget = SheetConfig
|
|
36
|
-
|
|
37
|
-
// Function to determine the position based on screen size
|
|
38
|
-
const getPosition = (): SchmancySheetPosition => {
|
|
39
|
-
return window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
class BottomSheetService {
|
|
43
|
-
bottomSheet = new Subject<BottomSheeetTarget>()
|
|
44
|
-
// Track currently open sheets
|
|
45
|
-
private activeSheets = new Set<string>()
|
|
46
|
-
// To track if we've set up the popstate listener
|
|
47
|
-
private popStateListenerActive = false
|
|
48
|
-
|
|
49
|
-
constructor() {
|
|
50
|
-
this.setupSheetOpeningLogic()
|
|
51
|
-
this.setupPopStateListener()
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Sets up the main sheet opening logic
|
|
56
|
-
*/
|
|
57
|
-
private setupSheetOpeningLogic() {
|
|
58
|
-
this.bottomSheet
|
|
59
|
-
.pipe(
|
|
60
|
-
switchMap(target => {
|
|
61
|
-
const uid = target.uid ?? `sheet-${Date.now()}`
|
|
62
|
-
|
|
63
|
-
// Discover existing sheet with this uid
|
|
64
|
-
return discoverComponent<SchmancySheet>('schmancy-sheet').pipe(
|
|
65
|
-
map(existingSheet => {
|
|
66
|
-
// Check if discovered sheet matches our uid
|
|
67
|
-
const sheet = existingSheet?.getAttribute('uid') === uid ? existingSheet : null
|
|
68
|
-
return { target, existingSheet: sheet, uid }
|
|
69
|
-
})
|
|
70
|
-
)
|
|
71
|
-
}),
|
|
72
|
-
switchMap(({ target, existingSheet, uid }) => {
|
|
73
|
-
// Discover theme container if creating new sheet
|
|
74
|
-
if (existingSheet) {
|
|
75
|
-
return of({ target, sheet: existingSheet, uid })
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return discoverComponent<HTMLElement>('schmancy-theme').pipe(
|
|
79
|
-
map(theme => {
|
|
80
|
-
// Determine container - use theme or fallback to body
|
|
81
|
-
const targetContainer = theme || document.body
|
|
82
|
-
|
|
83
|
-
// Create new sheet
|
|
84
|
-
const sheet = document.createElement('schmancy-sheet')
|
|
85
|
-
sheet.setAttribute('uid', uid)
|
|
86
|
-
targetContainer.appendChild(sheet)
|
|
87
|
-
|
|
88
|
-
return { target, sheet: sheet as SchmancySheet, uid }
|
|
89
|
-
})
|
|
90
|
-
)
|
|
91
|
-
}),
|
|
92
|
-
tap(({ target, sheet }) => {
|
|
93
|
-
// Configure sheet attributes
|
|
94
|
-
if (target.lock) sheet.setAttribute('lock', 'true')
|
|
95
|
-
|
|
96
|
-
const position = target.position || getPosition()
|
|
97
|
-
sheet.setAttribute('position', position)
|
|
98
|
-
|
|
99
|
-
if (target.persist) sheet.setAttribute('persist', String(target.persist))
|
|
100
|
-
|
|
101
|
-
// Set dynamic z-index for proper stacking with dialogs
|
|
102
|
-
sheet.style.setProperty('--schmancy-overlay-z', String(overlayStack.getNextZIndex()))
|
|
103
|
-
|
|
104
|
-
document.body.style.overflow = 'hidden' // lock the scroll of the host
|
|
105
|
-
}),
|
|
106
|
-
delay(20),
|
|
107
|
-
tap(({ target, uid }) => {
|
|
108
|
-
// Dispatch render event - area router handles duplicate prevention
|
|
109
|
-
window.dispatchEvent(
|
|
110
|
-
new CustomEvent('schmancy-sheet-render', {
|
|
111
|
-
detail: {
|
|
112
|
-
component: target.component,
|
|
113
|
-
uid,
|
|
114
|
-
props: target.props
|
|
115
|
-
},
|
|
116
|
-
bubbles: true,
|
|
117
|
-
composed: true,
|
|
118
|
-
}),
|
|
119
|
-
)
|
|
120
|
-
}),
|
|
121
|
-
delay(1),
|
|
122
|
-
tap(({ sheet, uid }) => {
|
|
123
|
-
sheet.setAttribute('open', 'true')
|
|
124
|
-
$sounds.play('curious')
|
|
125
|
-
|
|
126
|
-
// Add to active sheets tracking
|
|
127
|
-
this.activeSheets.add(uid)
|
|
128
|
-
|
|
129
|
-
// Set up close event listener
|
|
130
|
-
fromEvent<CustomEvent>(sheet, 'close')
|
|
131
|
-
.pipe(take(1), delay(300))
|
|
132
|
-
.subscribe(() => {
|
|
133
|
-
// Remove from active sheets tracking
|
|
134
|
-
this.activeSheets.delete(uid)
|
|
135
|
-
overlayStack.release()
|
|
136
|
-
|
|
137
|
-
// Only keep sheet if persist is explicitly set to a truthy value
|
|
138
|
-
const persistAttr = sheet.getAttribute('persist')
|
|
139
|
-
const shouldRemove = !persistAttr || persistAttr === 'false'
|
|
140
|
-
|
|
141
|
-
if (shouldRemove) {
|
|
142
|
-
sheet.remove()
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
document.body.style.overflow = 'auto' // unlock the scroll of the host
|
|
146
|
-
})
|
|
147
|
-
}),
|
|
148
|
-
)
|
|
149
|
-
.subscribe()
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Sets up the popstate listener to handle browser back button
|
|
154
|
-
*/
|
|
155
|
-
private setupPopStateListener() {
|
|
156
|
-
if (this.popStateListenerActive) return
|
|
157
|
-
|
|
158
|
-
fromEvent<PopStateEvent>(window, 'popstate').subscribe(event => {
|
|
159
|
-
// If we have active sheets, close the most recently opened one
|
|
160
|
-
if (this.activeSheets.size > 0) {
|
|
161
|
-
// Get the last sheet (Set maintains insertion order)
|
|
162
|
-
const lastSheet = Array.from(this.activeSheets).pop()
|
|
163
|
-
if (lastSheet) {
|
|
164
|
-
this.dismiss(lastSheet)
|
|
165
|
-
|
|
166
|
-
// Prevent default navigation behavior by pushing a new state
|
|
167
|
-
// This effectively cancels out the back navigation
|
|
168
|
-
if (event.state && event.state.schmancySheet) {
|
|
169
|
-
history.pushState({}, '', window.location.href)
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
})
|
|
174
|
-
|
|
175
|
-
this.popStateListenerActive = true
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Dismiss a sheet by uid, or dismiss the most recently opened sheet if no uid provided
|
|
180
|
-
*/
|
|
181
|
-
dismiss(uid?: string) {
|
|
182
|
-
if (!uid && this.activeSheets.size > 0) {
|
|
183
|
-
// Get the last sheet opened (Set maintains insertion order)
|
|
184
|
-
const sheetsArray = Array.from(this.activeSheets)
|
|
185
|
-
uid = sheetsArray[sheetsArray.length - 1]
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
if (uid) {
|
|
189
|
-
$sounds.play('atEase')
|
|
190
|
-
window.dispatchEvent(
|
|
191
|
-
new CustomEvent('schmancy-sheet-dismiss', {
|
|
192
|
-
detail: { uid },
|
|
193
|
-
bubbles: true,
|
|
194
|
-
composed: true,
|
|
195
|
-
})
|
|
196
|
-
)
|
|
197
|
-
this.activeSheets.delete(uid)
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Open a sheet with the given target configuration
|
|
203
|
-
* @deprecated Use `push` instead for consistency with area router API
|
|
204
|
-
*/
|
|
205
|
-
open(target: BottomSheeetTarget) {
|
|
206
|
-
this.bottomSheet.next(target)
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Push a component to the sheet (recommended method)
|
|
211
|
-
* Follows the same API pattern as area.push for consistency
|
|
212
|
-
*/
|
|
213
|
-
push(target: BottomSheeetTarget) {
|
|
214
|
-
this.bottomSheet.next(target)
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Check if a sheet is currently open by uid
|
|
219
|
-
*/
|
|
220
|
-
isOpen(uid: string): boolean {
|
|
221
|
-
return this.activeSheets.has(uid)
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Close all open sheets
|
|
226
|
-
*/
|
|
227
|
-
closeAll() {
|
|
228
|
-
// Copy the set to avoid modification during iteration
|
|
229
|
-
Array.from(this.activeSheets).forEach(uid => {
|
|
230
|
-
this.dismiss(uid)
|
|
231
|
-
})
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* Bottom / side sheet service. Mounts any element as a sheet with a chosen
|
|
238
|
-
* position (see `SchmancySheetPosition` enum).
|
|
239
|
-
*
|
|
240
|
-
* @service
|
|
241
|
-
* @summary Imperative bottom / side sheet surface.
|
|
242
|
-
* @method open({ component, position? }) - Mount an element as a sheet.
|
|
243
|
-
* @method dismiss(id?) - Dismiss a sheet by id, or the topmost.
|
|
244
|
-
*/
|
|
245
|
-
export const sheet = new BottomSheetService()
|
package/src/sheet/sheet.ts
DELETED
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
import { SchmancyElement } from '@mixins/index'
|
|
2
|
-
import { area } from '../area'
|
|
3
|
-
import { html, css } from 'lit'
|
|
4
|
-
import { customElement, property, query } from 'lit/decorators.js'
|
|
5
|
-
import { fromEvent, merge, takeUntil, tap, filter } from 'rxjs'
|
|
6
|
-
import { on } from './hook'
|
|
7
|
-
import { SchmancySheetPosition, sheet } from './sheet.service'
|
|
8
|
-
import { BLACKBIRD_EASING, DURATION_ENTER, DURATION_EXIT, DURATION_BACKDROP, EASE_OUT, EASE_IN } from '../utils/animation'
|
|
9
|
-
|
|
10
|
-
@customElement('schmancy-sheet')
|
|
11
|
-
export default class SchmancySheet extends SchmancyElement {
|
|
12
|
-
static styles = [css`
|
|
13
|
-
:host {
|
|
14
|
-
position: fixed;
|
|
15
|
-
inset: 0;
|
|
16
|
-
z-index: var(--schmancy-overlay-z, 999);
|
|
17
|
-
display: none;
|
|
18
|
-
}
|
|
19
|
-
:host([open]) {
|
|
20
|
-
display: block;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/* Luminous edge glow on sheet panel */
|
|
24
|
-
.content {
|
|
25
|
-
box-shadow: -8px 0 40px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
:host([position='bottom']) .content {
|
|
29
|
-
box-shadow: 0 -8px 40px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@media (prefers-reduced-motion: reduce) {
|
|
33
|
-
.content { box-shadow: var(--schmancy-sys-elevation-3); }
|
|
34
|
-
}
|
|
35
|
-
`]
|
|
36
|
-
|
|
37
|
-
// uid is inherited from $LitElement mixin - auto-generated or set via attribute
|
|
38
|
-
@property({ type: Boolean, reflect: true }) open = false
|
|
39
|
-
@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side
|
|
40
|
-
@property({ type: Boolean, reflect: true }) persist = false
|
|
41
|
-
@property({ type: Boolean, reflect: true }) lock = false
|
|
42
|
-
@property({ type: Boolean, reflect: true }) handleHistory = true
|
|
43
|
-
|
|
44
|
-
private lastFocusedElement: HTMLElement | null = null
|
|
45
|
-
@query('.overlay') private overlayEl!: HTMLDivElement
|
|
46
|
-
@query('.content') private contentEl!: HTMLDivElement
|
|
47
|
-
|
|
48
|
-
@on('open')
|
|
49
|
-
onOpenChange(_oldValue: boolean, newValue: boolean) {
|
|
50
|
-
if (newValue) {
|
|
51
|
-
this.lastFocusedElement = document.activeElement as HTMLElement
|
|
52
|
-
this.setBackgroundInert(true)
|
|
53
|
-
this.animateIn()
|
|
54
|
-
this.focus()
|
|
55
|
-
} else {
|
|
56
|
-
this.animateOut()
|
|
57
|
-
this.setBackgroundInert(false)
|
|
58
|
-
this.lastFocusedElement?.focus()
|
|
59
|
-
this.lastFocusedElement = null
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
private animateIn() {
|
|
64
|
-
if (!this.overlayEl || !this.contentEl) return
|
|
65
|
-
|
|
66
|
-
this.overlayEl.animate([{ opacity: 0 }, { opacity: 1 }], {
|
|
67
|
-
duration: DURATION_BACKDROP,
|
|
68
|
-
easing: EASE_OUT,
|
|
69
|
-
fill: 'forwards',
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
const animation =
|
|
73
|
-
this.position === SchmancySheetPosition.Side
|
|
74
|
-
? [
|
|
75
|
-
{ opacity: 0, transform: 'translateX(100%) scale(0.95)' },
|
|
76
|
-
{ opacity: 1, transform: 'translateX(0) scale(1)' },
|
|
77
|
-
]
|
|
78
|
-
: [
|
|
79
|
-
{ opacity: 0, transform: 'translateY(100%) scale(0.95)' },
|
|
80
|
-
{ opacity: 1, transform: 'translateY(0) scale(1)' },
|
|
81
|
-
]
|
|
82
|
-
|
|
83
|
-
this.contentEl.animate(animation, {
|
|
84
|
-
duration: DURATION_ENTER,
|
|
85
|
-
easing: BLACKBIRD_EASING,
|
|
86
|
-
fill: 'forwards',
|
|
87
|
-
})
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
private animateOut() {
|
|
91
|
-
if (!this.overlayEl || !this.contentEl) return
|
|
92
|
-
|
|
93
|
-
this.overlayEl.animate([{ opacity: 1 }, { opacity: 0 }], {
|
|
94
|
-
duration: DURATION_EXIT,
|
|
95
|
-
easing: EASE_OUT,
|
|
96
|
-
fill: 'forwards',
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
const animation =
|
|
100
|
-
this.position === SchmancySheetPosition.Side
|
|
101
|
-
? [
|
|
102
|
-
{ opacity: 1, transform: 'translateX(0) scale(1)' },
|
|
103
|
-
{ opacity: 0, transform: 'translateX(100%) scale(0.98)' },
|
|
104
|
-
]
|
|
105
|
-
: [
|
|
106
|
-
{ opacity: 1, transform: 'translateY(0) scale(1)' },
|
|
107
|
-
{ opacity: 0, transform: 'translateY(100%) scale(0.98)' },
|
|
108
|
-
]
|
|
109
|
-
|
|
110
|
-
this.contentEl.animate(animation, {
|
|
111
|
-
duration: DURATION_EXIT,
|
|
112
|
-
easing: EASE_IN,
|
|
113
|
-
fill: 'forwards',
|
|
114
|
-
})
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
connectedCallback() {
|
|
118
|
-
super.connectedCallback()
|
|
119
|
-
this.setupEventListeners()
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
disconnectedCallback() {
|
|
123
|
-
super.disconnectedCallback()
|
|
124
|
-
this.disconnecting.next(true)
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
private setupEventListeners() {
|
|
128
|
-
// Handle browser back button
|
|
129
|
-
const popState$ = fromEvent<PopStateEvent>(window, 'popstate').pipe(
|
|
130
|
-
filter(() => this.handleHistory),
|
|
131
|
-
tap(e => {
|
|
132
|
-
e.preventDefault()
|
|
133
|
-
this.closeSheet()
|
|
134
|
-
}),
|
|
135
|
-
)
|
|
136
|
-
|
|
137
|
-
// Handle ESC key
|
|
138
|
-
const keyUp$ = fromEvent<KeyboardEvent>(this, 'keydown').pipe(
|
|
139
|
-
tap(event => {
|
|
140
|
-
if (event.key === 'Escape' && !this.lock && this.open) {
|
|
141
|
-
event.preventDefault()
|
|
142
|
-
event.stopPropagation()
|
|
143
|
-
sheet.dismiss(this.uid)
|
|
144
|
-
}
|
|
145
|
-
}),
|
|
146
|
-
)
|
|
147
|
-
|
|
148
|
-
// Handle render events from sheet service
|
|
149
|
-
const render$ = fromEvent<CustomEvent>(window, 'schmancy-sheet-render').pipe(
|
|
150
|
-
filter(e => e.detail.uid === this.uid),
|
|
151
|
-
tap(e => {
|
|
152
|
-
area.push({
|
|
153
|
-
area: this.uid,
|
|
154
|
-
component: e.detail.component,
|
|
155
|
-
props: e.detail.props,
|
|
156
|
-
historyStrategy: 'silent',
|
|
157
|
-
})
|
|
158
|
-
}),
|
|
159
|
-
)
|
|
160
|
-
|
|
161
|
-
// Handle dismiss events from sheet service
|
|
162
|
-
const dismiss$ = fromEvent<CustomEvent>(window, 'schmancy-sheet-dismiss').pipe(
|
|
163
|
-
filter(e => e.detail.uid === this.uid),
|
|
164
|
-
tap(() => {
|
|
165
|
-
this.closeSheet()
|
|
166
|
-
}),
|
|
167
|
-
)
|
|
168
|
-
|
|
169
|
-
merge(popState$, keyUp$, render$, dismiss$).pipe(takeUntil(this.disconnecting)).subscribe()
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
private setBackgroundInert(inert: boolean) {
|
|
173
|
-
const parent = this.parentElement
|
|
174
|
-
if (!parent) return
|
|
175
|
-
|
|
176
|
-
Array.from(parent.children).forEach(child => {
|
|
177
|
-
if (child !== this && child instanceof HTMLElement) {
|
|
178
|
-
child.toggleAttribute('inert', inert)
|
|
179
|
-
}
|
|
180
|
-
})
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
closeSheet() {
|
|
184
|
-
this.open = false
|
|
185
|
-
this.dispatchEvent(new CustomEvent('close'))
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
override focus() {
|
|
189
|
-
// delegatesFocus in shadowRootOptions handles automatic focus
|
|
190
|
-
// Just focus first element with autofocus attribute if present
|
|
191
|
-
const element = this.querySelector('[autofocus]')
|
|
192
|
-
if (element instanceof HTMLElement) {
|
|
193
|
-
element.focus()
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
private handleOverlayClick = (e: Event) => {
|
|
198
|
-
e.stopPropagation()
|
|
199
|
-
if (!this.lock) {
|
|
200
|
-
sheet.dismiss(this.uid)
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
render() {
|
|
205
|
-
const sheetClasses = `absolute inset-0 flex h-full`
|
|
206
|
-
|
|
207
|
-
const overlayClasses = `overlay absolute inset-0 bg-surface-container/10 backdrop-blur-lg backdrop-saturate-150 ${this.lock ? '' : 'cursor-pointer'}`
|
|
208
|
-
|
|
209
|
-
const contentClasses =
|
|
210
|
-
this.position === SchmancySheetPosition.Side
|
|
211
|
-
? 'content h-full min-w-[320px] max-w-[90vw] w-fit ml-auto z-10'
|
|
212
|
-
: 'content w-full mt-auto rounded-t-2xl max-h-[90vh] z-10'
|
|
213
|
-
|
|
214
|
-
const surfaceClasses =
|
|
215
|
-
this.position === SchmancySheetPosition.Side
|
|
216
|
-
? 'h-full overflow-auto'
|
|
217
|
-
: 'max-h-[90vh] overflow-auto'
|
|
218
|
-
|
|
219
|
-
return html`
|
|
220
|
-
<div class=${sheetClasses} role="dialog" aria-hidden=${!this.open} aria-modal=${this.open} tabindex="0">
|
|
221
|
-
<div class=${overlayClasses} @click=${this.handleOverlayClick}></div>
|
|
222
|
-
<div class=${contentClasses}>
|
|
223
|
-
<schmancy-surface rounded="left" fill="all" id="body" class=${surfaceClasses} type="solid">
|
|
224
|
-
<schmancy-area class="size-full overflow-auto" name=${this.uid}>
|
|
225
|
-
<slot></slot>
|
|
226
|
-
</schmancy-area>
|
|
227
|
-
</schmancy-surface>
|
|
228
|
-
</div>
|
|
229
|
-
</div>
|
|
230
|
-
`
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
declare global {
|
|
235
|
-
interface HTMLElementTagNameMap {
|
|
236
|
-
'schmancy-sheet': SchmancySheet
|
|
237
|
-
}
|
|
238
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { SchmancyElement } from '@mixins/index';
|
|
2
|
-
/**
|
|
3
|
-
* @element schmancy-code
|
|
4
|
-
* Code highlighting component using highlight.js with schmancy theming support
|
|
5
|
-
*/
|
|
6
|
-
export declare class SchmancyCode extends SchmancyElement {
|
|
7
|
-
static styles: import("lit").CSSResult[];
|
|
8
|
-
/**
|
|
9
|
-
* Programming language for syntax highlighting
|
|
10
|
-
*/
|
|
11
|
-
language: string;
|
|
12
|
-
/**
|
|
13
|
-
* Code content to highlight
|
|
14
|
-
*/
|
|
15
|
-
code: string;
|
|
16
|
-
/**
|
|
17
|
-
* Optional filename or title to display in header
|
|
18
|
-
*/
|
|
19
|
-
filename?: string;
|
|
20
|
-
/**
|
|
21
|
-
* Show line numbers
|
|
22
|
-
*/
|
|
23
|
-
lineNumbers: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Show copy button
|
|
26
|
-
*/
|
|
27
|
-
copyButton: boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Highlighted line numbers (comma-separated or ranges like "1-3,5,7-9")
|
|
30
|
-
*/
|
|
31
|
-
highlightLines?: string;
|
|
32
|
-
/**
|
|
33
|
-
* Maximum height before scrolling
|
|
34
|
-
*/
|
|
35
|
-
maxHeight?: string;
|
|
36
|
-
private copied;
|
|
37
|
-
private get highlightedCode();
|
|
38
|
-
private escapeHtml;
|
|
39
|
-
private getHighlightedLines;
|
|
40
|
-
private addLineFeatures;
|
|
41
|
-
private copyCode;
|
|
42
|
-
private getLanguageLabel;
|
|
43
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
44
|
-
}
|
|
45
|
-
declare global {
|
|
46
|
-
interface HTMLElementTagNameMap {
|
|
47
|
-
'schmancy-code': SchmancyCode;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { SchmancyElement } from '@mixins/index';
|
|
2
|
-
/**
|
|
3
|
-
* @element schmancy-code-preview
|
|
4
|
-
* A component that shows code and its rendered preview side by side
|
|
5
|
-
* Takes the content as a slot and displays both the source and rendered result
|
|
6
|
-
*/
|
|
7
|
-
export declare class SchmancyCodePreview extends SchmancyElement {
|
|
8
|
-
static styles: import("lit").CSSResult[];
|
|
9
|
-
/**
|
|
10
|
-
* Programming language for syntax highlighting
|
|
11
|
-
*/
|
|
12
|
-
language: string;
|
|
13
|
-
/**
|
|
14
|
-
* Show code on top or side-by-side
|
|
15
|
-
*/
|
|
16
|
-
layout: 'vertical' | 'horizontal';
|
|
17
|
-
/**
|
|
18
|
-
* Whether to render/execute the code in preview section
|
|
19
|
-
* When false, only shows the code without rendering
|
|
20
|
-
*/
|
|
21
|
-
preview: boolean;
|
|
22
|
-
private slotContent;
|
|
23
|
-
connectedCallback(): void;
|
|
24
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
25
|
-
}
|
|
26
|
-
declare global {
|
|
27
|
-
interface HTMLElementTagNameMap {
|
|
28
|
-
'schmancy-code-preview': SchmancyCodePreview;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
import type { Constructor } from '../../mixins/constructor';
|
|
3
|
-
import type { IBaseMixin } from '../../mixins/baseElement';
|
|
4
|
-
export interface DialogPosition {
|
|
5
|
-
x: number;
|
|
6
|
-
y: number;
|
|
7
|
-
}
|
|
8
|
-
export interface VirtualReference {
|
|
9
|
-
getBoundingClientRect: () => DOMRect;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Interface for the DialogBase mixin methods
|
|
13
|
-
*/
|
|
14
|
-
export interface IDialogBaseMixin {
|
|
15
|
-
position: DialogPosition;
|
|
16
|
-
isMobile: boolean;
|
|
17
|
-
dragOffset: number;
|
|
18
|
-
show(positionOrEvent?: DialogPosition | MouseEvent | TouchEvent): Promise<boolean>;
|
|
19
|
-
hide(result?: boolean): Promise<void>;
|
|
20
|
-
isCentered(): boolean;
|
|
21
|
-
isAnimating(): boolean;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Dialog mixin with smart positioning using Floating UI.
|
|
25
|
-
*
|
|
26
|
-
* On mobile (< 640px), automatically switches to bottom sheet mode
|
|
27
|
-
* with swipe-to-dismiss gesture. On tablet/desktop, if content exceeds
|
|
28
|
-
* a viewport-dependent threshold, also opens as bottom sheet.
|
|
29
|
-
*/
|
|
30
|
-
export declare const DialogBase: <T extends Constructor<LitElement & IBaseMixin>>(superClass: T) => Constructor<IDialogBaseMixin> & T;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare const DialogWhereAreYouRicky = "are-you-there-dialog";
|
|
2
|
-
export declare const DialogHereMorty = "yes-dialog-here";
|
|
3
|
-
export interface DialogWhereAreYouRickyEvent extends CustomEvent {
|
|
4
|
-
detail: {
|
|
5
|
-
uid: string;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
export interface DialogHereMortyEvent extends CustomEvent {
|
|
9
|
-
detail: {
|
|
10
|
-
dialog: any;
|
|
11
|
-
theme?: any;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { TemplateResult } from 'lit';
|
|
2
|
-
/**
|
|
3
|
-
* Dialog service options interface
|
|
4
|
-
*/
|
|
5
|
-
export interface DialogOptions {
|
|
6
|
-
title?: string;
|
|
7
|
-
subtitle?: string;
|
|
8
|
-
message?: string;
|
|
9
|
-
confirmText?: string;
|
|
10
|
-
cancelText?: string;
|
|
11
|
-
variant?: 'default' | 'danger';
|
|
12
|
-
position?: {
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
} | MouseEvent | TouchEvent;
|
|
16
|
-
content?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult);
|
|
17
|
-
onConfirm?: () => void;
|
|
18
|
-
onCancel?: () => void;
|
|
19
|
-
hideActions?: boolean;
|
|
20
|
-
targetContainer?: HTMLElement;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Prompt dialog options
|
|
24
|
-
*/
|
|
25
|
-
export interface PromptOptions {
|
|
26
|
-
title?: string;
|
|
27
|
-
message?: string;
|
|
28
|
-
label?: string;
|
|
29
|
-
placeholder?: string;
|
|
30
|
-
defaultValue?: string;
|
|
31
|
-
inputType?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
|
|
32
|
-
confirmText?: string;
|
|
33
|
-
cancelText?: string;
|
|
34
|
-
position?: {
|
|
35
|
-
x: number;
|
|
36
|
-
y: number;
|
|
37
|
-
} | MouseEvent | TouchEvent;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Dialog service for centralized dialog management.
|
|
41
|
-
* Uses a single unified SchmancyDialog component for all dialog types.
|
|
42
|
-
*/
|
|
43
|
-
export declare class DialogService {
|
|
44
|
-
private static instance;
|
|
45
|
-
private static DEFAULT_OPTIONS;
|
|
46
|
-
private activeDialogs;
|
|
47
|
-
private dialogSubject;
|
|
48
|
-
private dismissSubject;
|
|
49
|
-
private lastClickPosition;
|
|
50
|
-
private clickTrackingInitialized;
|
|
51
|
-
private constructor();
|
|
52
|
-
private setupClickPositionTracking;
|
|
53
|
-
static getInstance(): DialogService;
|
|
54
|
-
private setupDialogOpeningLogic;
|
|
55
|
-
private setupDialogDismissLogic;
|
|
56
|
-
confirm(options: DialogOptions): Promise<boolean>;
|
|
57
|
-
component(content: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult), options?: Omit<DialogOptions, 'content' | 'message'>): Promise<boolean>;
|
|
58
|
-
dismiss(): boolean;
|
|
59
|
-
close(): boolean;
|
|
60
|
-
ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean>;
|
|
61
|
-
danger(options: Omit<DialogOptions, 'variant'>): Promise<boolean>;
|
|
62
|
-
/**
|
|
63
|
-
* Shows a prompt dialog with an input field.
|
|
64
|
-
* Returns the input value if confirmed, null if cancelled.
|
|
65
|
-
*/
|
|
66
|
-
prompt(options: PromptOptions): Promise<string | null>;
|
|
67
|
-
private getDefaultPosition;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Global dialog utility. Imperative modal API — open any element as a dialog,
|
|
71
|
-
* or use the built-in `confirm` / `ask` / `danger` prompts. Returns Promises
|
|
72
|
-
* that resolve when the user picks an action.
|
|
73
|
-
*
|
|
74
|
-
* @service
|
|
75
|
-
* @summary Imperative modal dialogs and built-in confirm/ask/danger prompts.
|
|
76
|
-
* @method confirm(options: DialogOptions) - Built-in confirm prompt. Returns Promise<boolean>.
|
|
77
|
-
* @method ask(message, event?) - One-line yes/no prompt anchored to the triggering event.
|
|
78
|
-
* @method danger(options) - Destructive-action confirm styled with the error palette.
|
|
79
|
-
* @method component(element, options?) - Open any element as a modal.
|
|
80
|
-
* @method dismiss(id?) - Dismiss a dialog by id, or the topmost dialog.
|
|
81
|
-
*/
|
|
82
|
-
export declare const $dialog: {
|
|
83
|
-
confirm: (options: DialogOptions) => Promise<boolean>;
|
|
84
|
-
ask: (message: string, event?: MouseEvent | TouchEvent) => Promise<boolean>;
|
|
85
|
-
danger: (options: Omit<DialogOptions, "variant">) => Promise<boolean>;
|
|
86
|
-
prompt: (options: PromptOptions) => Promise<string | null>;
|
|
87
|
-
component: (content: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult), options?: Omit<DialogOptions, "content" | "message">) => Promise<boolean>;
|
|
88
|
-
dismiss: () => boolean;
|
|
89
|
-
close: () => boolean;
|
|
90
|
-
};
|
|
91
|
-
export default DialogService;
|