@mhmo91/schmancy 0.10.24 → 0.10.25
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/dist/agent/{overlay.confirm-body-CvdVfCnN.js → overlay.confirm-body-DozUyDYx.js} +242 -242
- package/dist/agent/{overlay.confirm-body-CvdVfCnN.js.map → overlay.confirm-body-DozUyDYx.js.map} +1 -1
- package/dist/agent/schmancy.agent.js +5658 -2927
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/{area-A_oUP4P1.js → area-1EG1LrkX.js} +1 -1
- package/dist/{area-A_oUP4P1.js.map → area-1EG1LrkX.js.map} +1 -1
- package/dist/{area-BuqdaUpQ.cjs → area-DrVE5pXW.cjs} +1 -1
- package/dist/{area-BuqdaUpQ.cjs.map → area-DrVE5pXW.cjs.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-Cy46gJxK.cjs → autocomplete-6pdZxEab.cjs} +1 -1
- package/dist/{autocomplete-Cy46gJxK.cjs.map → autocomplete-6pdZxEab.cjs.map} +1 -1
- package/dist/{autocomplete-BoCWO26L.js → autocomplete-nrIcCilw.js} +2 -2
- package/dist/{autocomplete-BoCWO26L.js.map → autocomplete-nrIcCilw.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +2 -2
- package/dist/avatar.cjs.map +1 -1
- package/dist/avatar.js +3 -3
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-B0h5fuAA.js → boat--fLgbDAE.js} +3 -3
- package/dist/{boat-B0h5fuAA.js.map → boat--fLgbDAE.js.map} +1 -1
- package/dist/{boat-RRtBhD3x.cjs → boat-BIB-gPqy.cjs} +1 -1
- package/dist/{boat-RRtBhD3x.cjs.map → boat-BIB-gPqy.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/{busy-Bn6Pioo8.cjs → busy-DVCIxBVf.cjs} +1 -1
- package/dist/{busy-Bn6Pioo8.cjs.map → busy-DVCIxBVf.cjs.map} +1 -1
- package/dist/{busy-DObY7lfu.js → busy-DshZcVZ4.js} +1 -1
- package/dist/{busy-DObY7lfu.js.map → busy-DshZcVZ4.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-DEi3M2nV.js → button-D9UJ7I6Z.js} +2 -2
- package/dist/{button-DEi3M2nV.js.map → button-D9UJ7I6Z.js.map} +1 -1
- package/dist/{button-XfdPzfZQ.cjs → button-JrTMzwHY.cjs} +1 -1
- package/dist/{button-XfdPzfZQ.cjs.map → button-JrTMzwHY.cjs.map} +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/{card-jzUQK0EQ.js → card-BvCFuX3J.js} +2 -2
- package/dist/{card-jzUQK0EQ.js.map → card-BvCFuX3J.js.map} +1 -1
- package/dist/{card-BjUgRzFh.cjs → card-CTotavhH.cjs} +1 -1
- package/dist/{card-BjUgRzFh.cjs.map → card-CTotavhH.cjs.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-rskgUBxQ.cjs → checkbox-By4fFmjt.cjs} +1 -1
- package/dist/{checkbox-rskgUBxQ.cjs.map → checkbox-By4fFmjt.cjs.map} +1 -1
- package/dist/{checkbox-CfCm1vGN.js → checkbox-GPsdCUbs.js} +1 -1
- package/dist/{checkbox-CfCm1vGN.js.map → checkbox-GPsdCUbs.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-Dfim_tQv.js → chips-27umqnat.js} +4 -4
- package/dist/{chips-Dfim_tQv.js.map → chips-27umqnat.js.map} +1 -1
- package/dist/{chips-BiNZKu0J.cjs → chips-BZf9sGA8.cjs} +1 -1
- package/dist/{chips-BiNZKu0J.cjs.map → chips-BZf9sGA8.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +1 -1
- package/dist/connectivity.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{cursor-glow-Cs2XLDB9.js → cursor-glow-Ah7VXSj7.js} +1 -1
- package/dist/{cursor-glow-Cs2XLDB9.js.map → cursor-glow-Ah7VXSj7.js.map} +1 -1
- package/dist/{cursor-glow-C8LgCxpI.cjs → cursor-glow-Bulq-38P.cjs} +1 -1
- package/dist/{cursor-glow-C8LgCxpI.cjs.map → cursor-glow-Bulq-38P.cjs.map} +1 -1
- package/dist/{date-range-em7OwhlK.cjs → date-range-BJnLWCRF.cjs} +1 -1
- package/dist/{date-range-em7OwhlK.cjs.map → date-range-BJnLWCRF.cjs.map} +1 -1
- package/dist/{date-range-inline-DYeqoBIO.cjs → date-range-inline-B6uKUliV.cjs} +1 -1
- package/dist/{date-range-inline-DYeqoBIO.cjs.map → date-range-inline-B6uKUliV.cjs.map} +1 -1
- package/dist/{date-range-inline-BfUL8_vX.js → date-range-inline-BNbbRfIA.js} +1 -1
- package/dist/{date-range-inline-BfUL8_vX.js.map → date-range-inline-BNbbRfIA.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/{date-range-B8zoj6Cj.js → date-range-wDVHcr0u.js} +2 -2
- package/dist/{date-range-B8zoj6Cj.js.map → date-range-wDVHcr0u.js.map} +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-D246xN83.js → details-Ckxpwacj.js} +4 -4
- package/dist/{details-D246xN83.js.map → details-Ckxpwacj.js.map} +1 -1
- package/dist/{details-CNM1tuma.cjs → details-DNrWIes6.cjs} +1 -1
- package/dist/{details-CNM1tuma.cjs.map → details-DNrWIes6.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/directives-BBMqe8x3.js +4082 -0
- package/dist/directives-BBMqe8x3.js.map +1 -0
- package/dist/directives-F15SJZUR.cjs +348 -0
- package/dist/directives-F15SJZUR.cjs.map +1 -0
- package/dist/directives.cjs +1 -99
- package/dist/directives.js +6 -1363
- package/dist/discovery.cjs +1 -1
- package/dist/discovery.js +2 -61
- package/dist/discovery.service-COmbHaoI.js +61 -0
- package/dist/discovery.service-COmbHaoI.js.map +1 -0
- package/dist/discovery.service-CVDXO9rH.cjs +1 -0
- package/dist/discovery.service-CVDXO9rH.cjs.map +1 -0
- package/dist/{divider-CbIp1je9.js → divider-BzcZGo4S.js} +1 -1
- package/dist/{divider-CbIp1je9.js.map → divider-BzcZGo4S.js.map} +1 -1
- package/dist/{divider-DaKsGNW-.cjs → divider-Cde33ivs.cjs} +1 -1
- package/dist/{divider-DaKsGNW-.cjs.map → divider-Cde33ivs.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-DRkiO4vw.js → expand-DI144OzN.js} +3 -3
- package/dist/{expand-DRkiO4vw.js.map → expand-DI144OzN.js.map} +1 -1
- package/dist/{expand-CQDm3BF3.cjs → expand-Db4V0jj-.cjs} +1 -1
- package/dist/{expand-CQDm3BF3.cjs.map → expand-Db4V0jj-.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{float-5O26zNRh.cjs → float--RScf9BZ.cjs} +1 -1
- package/dist/{float-5O26zNRh.cjs.map → float--RScf9BZ.cjs.map} +1 -1
- package/dist/{float-CZtu8FnO.js → float-DIyzy1c2.js} +1 -1
- package/dist/{float-CZtu8FnO.js.map → float-DIyzy1c2.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-B90CMeqs.cjs → form-DWNpOsIU.cjs} +1 -1
- package/dist/{form-B90CMeqs.cjs.map → form-DWNpOsIU.cjs.map} +1 -1
- package/dist/{form-CE6Gwz4r.js → form-RtXH8UHQ.js} +8 -8
- package/dist/{form-CE6Gwz4r.js.map → form-RtXH8UHQ.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +6 -6
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{hashContent-dJrI-9sc.js.map → hashContent-Dgmzc32o.js.map} +1 -1
- package/dist/{hashContent-Ck6laKlk.cjs.map → hashContent-Dh1VzIAb.cjs.map} +1 -1
- package/dist/icons-DXanGDZ_.js +52 -0
- package/dist/icons-DXanGDZ_.js.map +1 -0
- package/dist/icons-bNxlWLlk.cjs +24 -0
- package/dist/icons-bNxlWLlk.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-D98csbEo.cjs → iframe-B1XWRaLC.cjs} +1 -1
- package/dist/{iframe-D98csbEo.cjs.map → iframe-B1XWRaLC.cjs.map} +1 -1
- package/dist/{iframe-C3PMj1MD.js → iframe-BlHK0cjy.js} +1 -1
- package/dist/{iframe-C3PMj1MD.js.map → iframe-BlHK0cjy.js.map} +1 -1
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +60 -60
- package/dist/{input-_y92Pzon.cjs → input-C-_XU9AX.cjs} +1 -1
- package/dist/{input-_y92Pzon.cjs.map → input-C-_XU9AX.cjs.map} +1 -1
- package/dist/{input-CCOkeeVM.js → input-CiGa8Dkl.js} +1 -1
- package/dist/{input-CCOkeeVM.js.map → input-CiGa8Dkl.js.map} +1 -1
- package/dist/{input-chip-CR66MWml.cjs → input-chip-5aYnuRZ_.cjs} +1 -1
- package/dist/{input-chip-CR66MWml.cjs.map → input-chip-5aYnuRZ_.cjs.map} +1 -1
- package/dist/{input-chip-Bzwr5-XL.js → input-chip-l--zCMGR.js} +1 -1
- package/dist/{input-chip-Bzwr5-XL.js.map → input-chip-l--zCMGR.js.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json.cjs +1 -1
- package/dist/json.js +2 -2
- package/dist/kbd.cjs +1 -1
- package/dist/kbd.js +1 -1
- package/dist/{layout-Dq2oeOTS.js → layout-DSAjo92m.js} +1 -1
- package/dist/{layout-Dq2oeOTS.js.map → layout-DSAjo92m.js.map} +1 -1
- package/dist/{layout-BbCIfIgo.cjs → layout-eXb9wjDh.cjs} +1 -1
- package/dist/{layout-BbCIfIgo.cjs.map → layout-eXb9wjDh.cjs.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{lightbox-Bk3ovcVu.cjs → lightbox-CfRDkeeb.cjs} +2 -2
- package/dist/{lightbox-Bk3ovcVu.cjs.map → lightbox-CfRDkeeb.cjs.map} +1 -1
- package/dist/{lightbox-Dl--fEbP.js → lightbox-D9oiu1Nv.js} +2 -2
- package/dist/{lightbox-Dl--fEbP.js.map → lightbox-D9oiu1Nv.js.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-B3WI_Nfs.js → list-BOlRka4v.js} +1 -1
- package/dist/{list-B3WI_Nfs.js.map → list-BOlRka4v.js.map} +1 -1
- package/dist/{list-DWngbP2X.cjs → list-CDJi3_Ut.cjs} +1 -1
- package/dist/{list-DWngbP2X.cjs.map → list-CDJi3_Ut.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{magnetic-Bgh7aHHI.cjs → magnetic-D-ph029G.cjs} +1 -1
- package/dist/{magnetic-Bgh7aHHI.cjs.map → magnetic-D-ph029G.cjs.map} +1 -1
- package/dist/{magnetic-DxvoEz8_.js → magnetic-mHXl54Z8.js} +1 -1
- package/dist/{magnetic-DxvoEz8_.js.map → magnetic-mHXl54Z8.js.map} +1 -1
- package/dist/{menu-CdYjxJqm.cjs → menu-CJaDL2cd.cjs} +1 -1
- package/dist/{menu-CdYjxJqm.cjs.map → menu-CJaDL2cd.cjs.map} +1 -1
- package/dist/{menu-IDhVp6zm.js → menu-XyrLmCi_.js} +2 -2
- package/dist/{menu-IDhVp6zm.js.map → menu-XyrLmCi_.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins-CsYsIJOI.cjs +254 -0
- package/dist/mixins-CsYsIJOI.cjs.map +1 -0
- package/dist/mixins-DySzfmal.js +642 -0
- package/dist/mixins-DySzfmal.js.map +1 -0
- 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 +5 -9
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +5 -11
- package/dist/navigation-rail.js.map +1 -1
- package/dist/{notification-CllYkvlR.js → notification-CHrEY4u8.js} +2 -2
- package/dist/{notification-CllYkvlR.js.map → notification-CHrEY4u8.js.map} +1 -1
- package/dist/{notification-B3wVUC8l.cjs → notification-DKp4tjaB.cjs} +1 -1
- package/dist/{notification-B3wVUC8l.cjs.map → notification-DKp4tjaB.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-CPOL0nHL.js → option-Vpy4UQ-D.js} +1 -1
- package/dist/{option-CPOL0nHL.js.map → option-Vpy4UQ-D.js.map} +1 -1
- package/dist/{option-cRsdshy8.cjs → option-nRk4MuXH.cjs} +1 -1
- package/dist/{option-cRsdshy8.cjs.map → option-nRk4MuXH.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-BnTvnNDc.cjs → overlay-HNrWZ4sB.cjs} +1 -1
- package/dist/{overlay-BnTvnNDc.cjs.map → overlay-HNrWZ4sB.cjs.map} +1 -1
- package/dist/{overlay-DJ-vlwtR.js → overlay-jlkcrt8F.js} +5 -5
- package/dist/{overlay-DJ-vlwtR.js.map → overlay-jlkcrt8F.js.map} +1 -1
- package/dist/{overlay-stack-Dk0xETTy.cjs.map → overlay-stack-Bdr9lOqi.cjs.map} +1 -1
- package/dist/{overlay-stack-BR4iYivO.js.map → overlay-stack-D2rgxQLh.js.map} +1 -1
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-CQ-FwySO.cjs → overlay.confirm-body-B8dFI3cj.cjs} +1 -1
- package/dist/{overlay.confirm-body-CQ-FwySO.cjs.map → overlay.confirm-body-B8dFI3cj.cjs.map} +1 -1
- package/dist/{overlay.confirm-body-DEb9xw5N.js → overlay.confirm-body-CYShkjI6.js} +1 -1
- package/dist/{overlay.confirm-body-DEb9xw5N.js.map → overlay.confirm-body-CYShkjI6.js.map} +1 -1
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-CKBCIP2f.cjs → overlay.service-BTPn7Uv7.cjs} +1 -1
- package/dist/{overlay.service-CKBCIP2f.cjs.map → overlay.service-BTPn7Uv7.cjs.map} +1 -1
- package/dist/{overlay.service-XM1YHkTk.js → overlay.service-BqhhxVJp.js} +2 -2
- package/dist/{overlay.service-XM1YHkTk.js.map → overlay.service-BqhhxVJp.js.map} +1 -1
- package/dist/{progress-CnMPp-9a.js → progress-8Bn88GK_.js} +1 -1
- package/dist/{progress-CnMPp-9a.js.map → progress-8Bn88GK_.js.map} +1 -1
- package/dist/{progress-CcfLfHOE.cjs → progress-CAp_4jtq.cjs} +1 -1
- package/dist/{progress-CcfLfHOE.cjs.map → progress-CAp_4jtq.cjs.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-D97hflrE.cjs → radio-group-CN44mAoc.cjs} +1 -1
- package/dist/{radio-group-D97hflrE.cjs.map → radio-group-CN44mAoc.cjs.map} +1 -1
- package/dist/{radio-group-BUJgfQFi.js → radio-group-GNHA7qJR.js} +1 -1
- package/dist/{radio-group-BUJgfQFi.js.map → radio-group-GNHA7qJR.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +1 -1
- package/dist/range.js +1 -1
- package/dist/{reduced-motion-D7LqTUMn.js.map → reduced-motion-D-L12p7G.js.map} +1 -1
- package/dist/{reduced-motion-Dzfp_w5x.cjs.map → reduced-motion-Ds-HjMzn.cjs.map} +1 -1
- package/dist/{rxjs-utils-BK8VMe3K.js.map → rxjs-utils-BXpvHN4-.js.map} +1 -1
- package/dist/{rxjs-utils-DhOKenkS.cjs.map → rxjs-utils-CaC-tdot.cjs.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{select-BWEh5nRM.js → select-BnuXRHS4.js} +3 -3
- package/dist/{select-BWEh5nRM.js.map → select-BnuXRHS4.js.map} +1 -1
- package/dist/{select-Cv5Oev6d.cjs → select-DZNns5Pa.cjs} +2 -2
- package/dist/{select-Cv5Oev6d.cjs.map → select-DZNns5Pa.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 +2 -1
- package/dist/skills/SKILL.md +33 -23
- package/dist/skills/area.md +5 -4
- package/dist/skills/connectivity.md +1 -3
- package/dist/skills/directives.md +36 -0
- package/dist/skills/icons.md +95 -31
- package/dist/skills/layout.md +36 -53
- package/dist/skills/mixins.md +26 -5
- package/dist/skills/schmancy/INDEX.md +2 -1
- package/dist/skills/schmancy/SKILL.md +33 -23
- package/dist/skills/schmancy/area.md +5 -4
- package/dist/skills/schmancy/connectivity.md +1 -3
- package/dist/skills/schmancy/directives.md +36 -0
- package/dist/skills/schmancy/icons.md +95 -31
- package/dist/skills/schmancy/layout.md +36 -53
- package/dist/skills/schmancy/mixins.md +26 -5
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{splash-screen-B6w7X2z9.js → splash-screen-CUP_elaT.js} +1 -1
- package/dist/{splash-screen-B6w7X2z9.js.map → splash-screen-CUP_elaT.js.map} +1 -1
- package/dist/{splash-screen-DFtxtO2D.cjs → splash-screen-DeoPRrOu.cjs} +1 -1
- package/dist/{splash-screen-DFtxtO2D.cjs.map → splash-screen-DeoPRrOu.cjs.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-D_NK-vMA.js → src-B1VkLX3l.js} +153 -153
- package/dist/{src-D_NK-vMA.js.map → src-B1VkLX3l.js.map} +1 -1
- package/dist/{src-Asw6A018.cjs → src-DQ4wr0qq.cjs} +13 -13
- package/dist/{src-Asw6A018.cjs.map → src-DQ4wr0qq.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-B94ka2LY.cjs → surface-LkaZQXZn.cjs} +1 -1
- package/dist/{surface-B94ka2LY.cjs.map → surface-LkaZQXZn.cjs.map} +1 -1
- package/dist/{surface-ctBcRGSZ.js → surface-hOvkrjGN.js} +1 -1
- package/dist/{surface-ctBcRGSZ.js.map → surface-hOvkrjGN.js.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-CrMx5z_y.js → tabs-CfwIHhHo.js} +1 -1
- package/dist/{tabs-CrMx5z_y.js.map → tabs-CfwIHhHo.js.map} +1 -1
- package/dist/{tabs-B7kaZIom.cjs → tabs-bplzstz6.cjs} +1 -1
- package/dist/{tabs-B7kaZIom.cjs.map → tabs-bplzstz6.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DeHFl80i.js → textarea-C1A5xuw9.js} +1 -1
- package/dist/{textarea-DeHFl80i.js.map → textarea-C1A5xuw9.js.map} +1 -1
- package/dist/{textarea-D1crj8JD.cjs → textarea-hrDp5gQq.cjs} +1 -1
- package/dist/{textarea-D1crj8JD.cjs.map → textarea-hrDp5gQq.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-C7Yo33nh.js → theme-BniFOMEo.js} +3 -3
- package/dist/{theme-C7Yo33nh.js.map → theme-BniFOMEo.js.map} +1 -1
- package/dist/{theme-wE2N7Yu9.cjs → theme-DmR6PKV8.cjs} +2 -2
- package/dist/{theme-wE2N7Yu9.cjs.map → theme-DmR6PKV8.cjs.map} +1 -1
- package/dist/{theme-button-Cpc_hs2O.js → theme-button--ruZIb0T.js} +1 -1
- package/dist/{theme-button-Cpc_hs2O.js.map → theme-button--ruZIb0T.js.map} +1 -1
- package/dist/{theme-button-CXSM5We4.cjs → theme-button-a0LgZ7hQ.cjs} +1 -1
- package/dist/{theme-button-CXSM5We4.cjs.map → theme-button-a0LgZ7hQ.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-D4NeufQA.cjs.map → theme.interface-B5xjEk74.cjs.map} +1 -1
- package/dist/{theme.interface-C2XNgsLB.js.map → theme.interface-DVEw3s8m.js.map} +1 -1
- package/dist/theme.js +4 -4
- package/dist/{theme.service-CSzNkqBB.js.map → theme.service-Bh08uOSJ.js.map} +1 -1
- package/dist/{theme.service-CnFUmUpc.cjs.map → theme.service-Y-e8b331.cjs.map} +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-Cxg0Kfy5.js → utils-578eFTx4.js} +1 -1
- package/dist/{utils-Cxg0Kfy5.js.map → utils-578eFTx4.js.map} +1 -1
- package/dist/{utils-aCJYAGUr.cjs → utils-CVWUrECT.cjs} +1 -1
- package/dist/{utils-aCJYAGUr.cjs.map → utils-CVWUrECT.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-JtkeHoxS.js → window-BT9JecWy.js} +5 -5
- package/dist/{window-JtkeHoxS.js.map → window-BT9JecWy.js.map} +1 -1
- package/dist/{window-Ck_zS4bb.cjs → window-Bp7zWZpu.cjs} +1 -1
- package/dist/{window-Ck_zS4bb.cjs.map → window-Bp7zWZpu.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 +2 -1
- package/skills/schmancy/SKILL.md +33 -23
- package/skills/schmancy/area.md +5 -4
- package/skills/schmancy/connectivity.md +1 -3
- package/skills/schmancy/directives.md +36 -0
- package/skills/schmancy/icons.md +95 -31
- package/skills/schmancy/layout.md +36 -53
- package/skills/schmancy/mixins.md +26 -5
- package/src/directives/ai-badge.ts +95 -0
- package/src/directives/art/art.directive.ts +228 -0
- package/src/directives/art/effects/error.ts +192 -0
- package/src/directives/art/effects/funkhaus.ts +121 -0
- package/src/directives/art/effects/howl.ts +203 -0
- package/src/directives/art/effects/samwa.ts +228 -0
- package/src/directives/art/effects/snow.ts +207 -0
- package/src/directives/art/effects/starfield.ts +107 -0
- package/src/directives/art/index.ts +2 -0
- package/src/directives/art/particle-pool.ts +40 -0
- package/src/directives/art/types.ts +129 -0
- package/src/directives/art/utils.ts +35 -0
- package/src/directives/battery.ts +1014 -0
- package/src/directives/beta.ts +44 -0
- package/src/directives/fill.ts +32 -60
- package/src/directives/fyi.ts +551 -0
- package/src/directives/hummingbird.ts +1712 -0
- package/src/directives/index.ts +9 -0
- package/src/directives/missed-punch.ts +407 -0
- package/src/directives/urgent.ts +660 -0
- package/src/directives/working-snake.ts +294 -0
- package/src/icons/icon.ts +53 -30
- package/src/navigation-rail/navigation-rail-item.ts +7 -12
- package/src/navigation-rail/navigation-rail.ts +0 -2
- package/types/mixins/SchmancyElement.d.ts +31 -0
- package/types/src/directives/ai-badge.d.ts +15 -0
- package/types/src/directives/art/art.directive.d.ts +19 -0
- package/types/src/directives/art/effects/error.d.ts +7 -0
- package/types/src/directives/art/effects/funkhaus.d.ts +7 -0
- package/types/src/directives/art/effects/howl.d.ts +7 -0
- package/types/src/directives/art/effects/samwa.d.ts +7 -0
- package/types/src/directives/art/effects/snow.d.ts +7 -0
- package/types/src/directives/art/effects/starfield.d.ts +10 -0
- package/types/src/directives/art/index.d.ts +2 -0
- package/types/src/directives/art/particle-pool.d.ts +16 -0
- package/types/src/directives/art/types.d.ts +126 -0
- package/types/src/directives/art/utils.d.ts +5 -0
- package/types/src/directives/battery.d.ts +96 -0
- package/types/src/directives/beta.d.ts +33 -0
- package/types/src/directives/fill.d.ts +4 -11
- package/types/src/directives/fyi.d.ts +76 -0
- package/types/src/directives/hummingbird.d.ts +180 -0
- package/types/src/directives/index.d.ts +9 -0
- package/types/src/directives/missed-punch.d.ts +28 -0
- package/types/src/directives/urgent.d.ts +88 -0
- package/types/src/directives/working-snake.d.ts +46 -0
- package/types/src/icons/icon.d.ts +22 -0
- package/dist/directives.cjs.map +0 -1
- package/dist/directives.js.map +0 -1
- package/dist/discovery.cjs.map +0 -1
- package/dist/discovery.js.map +0 -1
- package/dist/icons-B7ppo07M.cjs +0 -33
- package/dist/icons-B7ppo07M.cjs.map +0 -1
- package/dist/icons-CGhozJ5v.js +0 -48
- package/dist/icons-CGhozJ5v.js.map +0 -1
- package/dist/mixins-BPUR4Kc4.cjs +0 -254
- package/dist/mixins-BPUR4Kc4.cjs.map +0 -1
- package/dist/mixins-C42OILRS.js +0 -636
- package/dist/mixins-C42OILRS.js.map +0 -1
- package/dist/skills/page.md +0 -84
- package/dist/skills/schmancy/page.md +0 -84
- package/skills/schmancy/page.md +0 -84
- /package/dist/{hashContent-dJrI-9sc.js → hashContent-Dgmzc32o.js} +0 -0
- /package/dist/{hashContent-Ck6laKlk.cjs → hashContent-Dh1VzIAb.cjs} +0 -0
- /package/dist/{overlay-stack-Dk0xETTy.cjs → overlay-stack-Bdr9lOqi.cjs} +0 -0
- /package/dist/{overlay-stack-BR4iYivO.js → overlay-stack-D2rgxQLh.js} +0 -0
- /package/dist/{reduced-motion-D7LqTUMn.js → reduced-motion-D-L12p7G.js} +0 -0
- /package/dist/{reduced-motion-Dzfp_w5x.cjs → reduced-motion-Ds-HjMzn.cjs} +0 -0
- /package/dist/{rxjs-utils-BK8VMe3K.js → rxjs-utils-BXpvHN4-.js} +0 -0
- /package/dist/{rxjs-utils-DhOKenkS.cjs → rxjs-utils-CaC-tdot.cjs} +0 -0
- /package/dist/{theme.interface-D4NeufQA.cjs → theme.interface-B5xjEk74.cjs} +0 -0
- /package/dist/{theme.interface-C2XNgsLB.js → theme.interface-DVEw3s8m.js} +0 -0
- /package/dist/{theme.service-CSzNkqBB.js → theme.service-Bh08uOSJ.js} +0 -0
- /package/dist/{theme.service-CnFUmUpc.cjs → theme.service-Y-e8b331.cjs} +0 -0
|
@@ -5,11 +5,47 @@
|
|
|
5
5
|
Lit directives that snap onto any element to add behavior. No components to wrap, no CSS to write — just `${directiveName()}` in your template.
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
|
+
import { fill, overflowWithin } from '@mhmo91/schmancy/directives'
|
|
8
9
|
import { magnetic, cursorGlow, gravity, reveal } from '@mhmo91/schmancy/directives'
|
|
9
10
|
```
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
14
|
+
## Layout (2 directives — use these for every app shell)
|
|
15
|
+
|
|
16
|
+
> These replace the deleted `<schmancy-page>` primitive. See `layout.md` for the full paradigm.
|
|
17
|
+
|
|
18
|
+
### `fill()` — Viewport-anchor a container
|
|
19
|
+
|
|
20
|
+
Measures the element's position against `visualViewport` and applies an exact `height` (and `width`) in pixels — cascade-independent. Tracks `visualViewport` resize/scroll, orientation change, iOS soft-keyboard (via `focusout`), and `theme.bottomOffset$` for safe-area padding.
|
|
21
|
+
|
|
22
|
+
```html
|
|
23
|
+
<!-- Root area — anchored to the full viewport -->
|
|
24
|
+
<schmancy-area ${fill()} name="root" .default=${...}>...</schmancy-area>
|
|
25
|
+
|
|
26
|
+
<!-- Custom element shell — fill() bypasses display:inline collapse -->
|
|
27
|
+
<my-shell class="grid grid-cols-[auto_1fr]" ${fill()}>...</my-shell>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Sets:** `height: Npx`, `width: Npx`, `overflow: hidden`, `min-height/width: 0`, `box-sizing: border-box`, `padding-bottom` (safe area).
|
|
31
|
+
**Does NOT set:** `display`, `grid-template-*` — put Tailwind layout classes on the same element.
|
|
32
|
+
|
|
33
|
+
### `overflowWithin()` — Contained scroll region
|
|
34
|
+
|
|
35
|
+
Turns a grid cell or flex child into a scroll container with `overscroll-behavior: contain`.
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<div ${overflowWithin()} class="grid grid-rows-[auto_1fr] min-h-0">
|
|
39
|
+
<header>...</header>
|
|
40
|
+
<schmancy-area name="app">...</schmancy-area>
|
|
41
|
+
</div>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Sets:** `overflow-y/x: auto`, `overscroll-behavior: contain`, `scroll-behavior: smooth`, `min-height/width: 0`, `box-sizing: border-box`.
|
|
45
|
+
Dispatches debounced `schmancy:scroll` event; listens for `@schmancy:scrollTo` command.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
13
49
|
## Physics & Interaction (6 directives)
|
|
14
50
|
|
|
15
51
|
### `magnetic` — Elements lean toward the cursor
|
package/dist/skills/icons.md
CHANGED
|
@@ -1,44 +1,108 @@
|
|
|
1
1
|
# schmancy-icon
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Renders a Material Symbol as an inline SVG. Path data is supplied at build
|
|
4
|
+
time by the `schmancy-icons` Vite plugin — no font file, no network request,
|
|
5
|
+
works offline from first byte.
|
|
4
6
|
|
|
5
7
|
## Usage
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<schmancy-icon>home</schmancy-icon>
|
|
11
|
+
<schmancy-icon>delete</schmancy-icon>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Slot text IS the icon name (Material Symbols ligature name). No properties needed.
|
|
15
|
+
|
|
16
|
+
## Sizing
|
|
17
|
+
|
|
18
|
+
Size is set with Tailwind `text-*` on the host. Default is `24px` (`text-2xl`).
|
|
19
|
+
`width` and `height` track `font-size` via `1em`.
|
|
20
|
+
|
|
6
21
|
```html
|
|
7
|
-
<schmancy-icon>
|
|
22
|
+
<schmancy-icon class="text-base">close</schmancy-icon> <!-- 16px -->
|
|
23
|
+
<schmancy-icon class="text-xl">search</schmancy-icon> <!-- 20px -->
|
|
24
|
+
<schmancy-icon class="text-2xl">home</schmancy-icon> <!-- 24px (default) -->
|
|
25
|
+
<schmancy-icon class="text-4xl">check_circle</schmancy-icon> <!-- 36px -->
|
|
8
26
|
```
|
|
9
27
|
|
|
10
|
-
##
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
| xs | 16px | 20 | 32px buttons |
|
|
25
|
-
| sm | 20px | 20 | 40px buttons |
|
|
26
|
-
| md | 24px | 24 | Default (48px buttons) |
|
|
27
|
-
| lg | 32px | 40 | 56px buttons |
|
|
28
|
-
|
|
29
|
-
## Examples
|
|
28
|
+
## Color
|
|
29
|
+
|
|
30
|
+
Inherits `currentColor`. Override with Tailwind color utilities:
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<schmancy-icon class="text-primary-default">star</schmancy-icon>
|
|
34
|
+
<schmancy-icon class="opacity-50">info</schmancy-icon>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Fill variant (active states)
|
|
38
|
+
|
|
39
|
+
Append `-fill` to the icon name for the filled variant. No CSS animation —
|
|
40
|
+
a clean swap between outlined and filled symbols:
|
|
41
|
+
|
|
30
42
|
```html
|
|
31
|
-
<!--
|
|
32
|
-
<schmancy-icon
|
|
43
|
+
<!-- Static filled -->
|
|
44
|
+
<schmancy-icon>favorite-fill</schmancy-icon>
|
|
33
45
|
|
|
34
|
-
<!--
|
|
35
|
-
<schmancy-icon
|
|
46
|
+
<!-- Dynamic active state -->
|
|
47
|
+
<schmancy-icon>${active ? 'home-fill' : 'home'}</schmancy-icon>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The plugin auto-includes `-fill` variants for every detected base icon.
|
|
51
|
+
|
|
52
|
+
## Vite plugin setup (web workspace)
|
|
53
|
+
|
|
54
|
+
The plugin scans all `.ts` source files at build start and injects
|
|
55
|
+
`window.__siIcons = { name: 'svgPathData', ... }` inline in `<head>`.
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
// web/vite.config.ts
|
|
59
|
+
import { schmancyIcons } from './plugins/schmancy-icons.ts'
|
|
60
|
+
|
|
61
|
+
export default defineConfig({
|
|
62
|
+
plugins: [
|
|
63
|
+
schmancyIcons({
|
|
64
|
+
// Icon names used in runtime variables (not statically detectable).
|
|
65
|
+
// Type them as SchmancyIconName in consuming code.
|
|
66
|
+
additional: ['widgets', 'inventory_2', 'description'],
|
|
67
|
+
}),
|
|
68
|
+
],
|
|
69
|
+
})
|
|
70
|
+
```
|
|
36
71
|
|
|
37
|
-
|
|
38
|
-
<schmancy-icon size="48px" .weight=${300}>search</schmancy-icon>
|
|
72
|
+
### Adding icons for dynamic usage
|
|
39
73
|
|
|
40
|
-
|
|
41
|
-
|
|
74
|
+
Any icon name carried in a variable at runtime must be declared in `additional`.
|
|
75
|
+
TypeScript enforcement: the plugin generates `src/types/icon-name.d.ts` with
|
|
76
|
+
a `SchmancyIconName` union of every icon in the bundle. Type dynamic icon props
|
|
77
|
+
as `SchmancyIconName` to get compile-time coverage.
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
import type { SchmancyIconName } from './types/icon-name'
|
|
81
|
+
|
|
82
|
+
@property({ type: String }) icon: SchmancyIconName = 'home'
|
|
42
83
|
```
|
|
43
84
|
|
|
44
|
-
|
|
85
|
+
## What was removed
|
|
86
|
+
|
|
87
|
+
The following properties are **gone** — the component has no public API beyond
|
|
88
|
+
slot text content:
|
|
89
|
+
|
|
90
|
+
| Removed | Replacement |
|
|
91
|
+
|---------|-------------|
|
|
92
|
+
| `size="lg"` | `class="text-4xl"` (Tailwind) |
|
|
93
|
+
| `fill`, `weight`, `grade`, `variant` | n/a — use `-fill` suffix for filled, rest unsupported |
|
|
94
|
+
| `icon="name"` prop | slot text: `<schmancy-icon>name</schmancy-icon>` |
|
|
95
|
+
| Google Fonts auto-load | n/a — self-contained inline SVG |
|
|
96
|
+
|
|
97
|
+
## How it works
|
|
98
|
+
|
|
99
|
+
1. Vite plugin walks `web/src/**/*.ts`, extracts icon names from
|
|
100
|
+
`<schmancy-icon>name</schmancy-icon>` and `icon="name"` patterns.
|
|
101
|
+
2. Reads `@material-symbols/svg-400/outlined/{name}.svg`, extracts the `d`
|
|
102
|
+
attribute from each `<path>`.
|
|
103
|
+
3. Injects `<script>window.__siIcons={...}</script>` before `</head>`.
|
|
104
|
+
4. `schmancy-icon.connectedCallback` reads `this.textContent`, looks up
|
|
105
|
+
`window.__siIcons[name]`, and renders `<svg><path d="..."/></svg>` inside
|
|
106
|
+
its shadow DOM.
|
|
107
|
+
|
|
108
|
+
No `<use>` references — those can't cross shadow DOM boundaries.
|
package/dist/skills/layout.md
CHANGED
|
@@ -1,63 +1,46 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Layout Directives
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
```typescript
|
|
4
|
+
import { fill, overflowWithin } from '@mhmo91/schmancy/directives'
|
|
5
|
+
```
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
## `fill()` — viewport-anchor an element
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
```html
|
|
9
|
-
<schmancy-grid cols="1fr 2fr 1fr" gap="md" align="center">
|
|
10
|
-
<div>Left</div><div>Center</div><div>Right</div>
|
|
11
|
-
</schmancy-grid>
|
|
12
|
-
```
|
|
9
|
+
Measures against `visualViewport` and writes exact `height`/`width` in px. Cascade-independent — works even when parent custom elements default to `display: inline`. Tracks iOS keyboard, orientation change, and `theme.bottomOffset$`.
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
| `flow` | `'row' \| 'col' \| 'dense' \| 'row-dense' \| 'col-dense'` | `'row'` | Grid auto-flow |
|
|
17
|
-
| `align` | `'start' \| 'center' \| 'end' \| 'stretch' \| 'baseline'` | `'stretch'` | Item alignment |
|
|
18
|
-
| `justify` | `'start' \| 'center' \| 'end' \| 'stretch'` | `'stretch'` | Item justification |
|
|
19
|
-
| `content` | `'start' \| 'center' \| 'end' \| 'stretch' \| 'around' \| 'evenly' \| 'between'` | — | Align-content |
|
|
20
|
-
| `gap` | `'none' \| 'xs' \| 'sm' \| 'md' \| 'lg'` | `'none'` | Grid gap |
|
|
21
|
-
| `cols` | string | — | grid-template-columns (e.g. `"1fr 2fr"`) |
|
|
22
|
-
| `rows` | string | — | grid-template-rows |
|
|
23
|
-
| `rcols` | object | — | Responsive cols: `{ sm: '1fr', md: '1fr 1fr', lg: '1fr 2fr 1fr' }` |
|
|
24
|
-
| `wrap` | boolean | `false` | Grid auto-wrap |
|
|
25
|
-
|
|
26
|
-
## schmancy-flex
|
|
27
|
-
```html
|
|
28
|
-
<schmancy-flex flow="row" justify="between" align="center" gap="md">
|
|
29
|
-
<div>Logo</div><div>Nav</div>
|
|
30
|
-
</schmancy-flex>
|
|
31
|
-
```
|
|
11
|
+
Sets: `height: Npx`, `width: Npx`, `overflow: hidden`, `min-h/w: 0`, `box-sizing: border-box`, `padding-bottom` (safe area).
|
|
12
|
+
Does **not** set `display` or `grid-template-*` — use Tailwind classes on the same element.
|
|
32
13
|
|
|
33
|
-
|
|
34
|
-
|----------|------|---------|
|
|
35
|
-
| `flow` | `'row' \| 'row-reverse' \| 'col' \| 'col-reverse'` | `'col'` |
|
|
36
|
-
| `wrap` | `'wrap' \| 'nowrap' \| 'wrap-reverse'` | `'wrap'` |
|
|
37
|
-
| `align` | `'start' \| 'center' \| 'end' \| 'stretch' \| 'baseline'` | `'start'` |
|
|
38
|
-
| `justify` | `'start' \| 'center' \| 'end' \| 'stretch' \| 'between'` | `'start'` |
|
|
39
|
-
| `gap` | `'none' \| 'sm' \| 'md' \| 'lg'` | `'none'` |
|
|
40
|
-
|
|
41
|
-
## schmancy-scroll
|
|
42
|
-
```html
|
|
43
|
-
<schmancy-scroll hide direction="vertical" name="main">
|
|
44
|
-
<!-- long content -->
|
|
45
|
-
</schmancy-scroll>
|
|
46
|
-
```
|
|
14
|
+
## `overflowWithin()` — contained scroll region
|
|
47
15
|
|
|
48
|
-
|
|
49
|
-
|----------|------|---------|-------------|
|
|
50
|
-
| `hide` | boolean | `false` | Hide scrollbar in supported browsers |
|
|
51
|
-
| `direction` | `'vertical' \| 'horizontal' \| 'both'` | `'both'` | Scroll axes |
|
|
52
|
-
| `name` | string | — | Identifier for global scroll events |
|
|
53
|
-
| `debounce` | number | — | Debounce time in ms for scroll events |
|
|
16
|
+
Sets: `overflow: auto`, `overscroll-behavior: contain`, `scroll-behavior: smooth`, `min-h/w: 0`, `box-sizing: border-box`.
|
|
54
17
|
|
|
55
|
-
|
|
18
|
+
## Canonical shell
|
|
56
19
|
|
|
57
|
-
|
|
20
|
+
```typescript
|
|
21
|
+
// app-shell.view.ts
|
|
22
|
+
html`<schmancy-area ${fill()} name="root" .default=${...}>...</schmancy-area>`
|
|
23
|
+
|
|
24
|
+
// app-home.view.ts
|
|
25
|
+
html`
|
|
26
|
+
<my-shell class="grid grid-cols-[auto_1fr]" ${fill()}>
|
|
27
|
+
<app-rail></app-rail>
|
|
28
|
+
<div ${overflowWithin()} class="grid grid-rows-[auto_1fr] min-h-0">
|
|
29
|
+
<tree-picker></tree-picker>
|
|
30
|
+
<schmancy-area name="app" .default=${...}>...</schmancy-area>
|
|
31
|
+
</div>
|
|
32
|
+
</my-shell>
|
|
33
|
+
`
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```css
|
|
37
|
+
/* styles.css */
|
|
38
|
+
html, body { margin: 0; padding: 0; overflow: hidden; }
|
|
39
|
+
```
|
|
58
40
|
|
|
59
|
-
|
|
41
|
+
## Rules
|
|
60
42
|
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
43
|
+
- One `fill()` per shell level. Inner levels get `min-h-0` grid cells.
|
|
44
|
+
- `overflowWithin()` goes on the element that should scroll, not on `:host`.
|
|
45
|
+
- Do not write `h-full`, `w-full`, or `:host { height: 100% }` anywhere. `schmancy-area`'s `::slotted` rule sizes mounted views.
|
|
46
|
+
- `<schmancy-page>` is removed — `fill()` replaces it.
|
package/dist/skills/mixins.md
CHANGED
|
@@ -8,11 +8,10 @@ factory — composing `LitElement` + Tailwind injection + `BaseElement`
|
|
|
8
8
|
## Usage
|
|
9
9
|
|
|
10
10
|
```typescript
|
|
11
|
-
import { SchmancyElement } from '@mhmo91/schmancy/mixins'
|
|
12
|
-
import { customElement } from 'lit/decorators.js'
|
|
11
|
+
import { SchmancyElement, schmancyElement } from '@mhmo91/schmancy/mixins'
|
|
13
12
|
import { css, html } from 'lit'
|
|
14
13
|
|
|
15
|
-
@
|
|
14
|
+
@schmancyElement('my-component')
|
|
16
15
|
class MyComponent extends SchmancyElement {
|
|
17
16
|
static styles = [css`
|
|
18
17
|
:host { display: block }
|
|
@@ -33,12 +32,34 @@ declare global {
|
|
|
33
32
|
No styles? Just drop `static styles`:
|
|
34
33
|
|
|
35
34
|
```typescript
|
|
36
|
-
@
|
|
35
|
+
@schmancyElement('my-component')
|
|
37
36
|
class MyComponent extends SchmancyElement {
|
|
38
37
|
render() { return html`<slot></slot>` }
|
|
39
38
|
}
|
|
40
39
|
```
|
|
41
40
|
|
|
41
|
+
### Why `@schmancyElement` instead of Lit's `@customElement`
|
|
42
|
+
|
|
43
|
+
`@schmancyElement` wraps the class's prototype methods with the active-host
|
|
44
|
+
tracker BEFORE calling `customElements.define`. Lit's `@customElement` only
|
|
45
|
+
calls `define` — the wrap then runs inside the `SchmancyElement` constructor,
|
|
46
|
+
which is too late: per the HTML spec, the browser captures lifecycle callback
|
|
47
|
+
references off the prototype at `define` time and invokes those cached
|
|
48
|
+
references for every connect / disconnect.
|
|
49
|
+
|
|
50
|
+
If you use plain `@customElement` and read state inside `connectedCallback`,
|
|
51
|
+
the active-host stack is empty, the read falls through to `document.activeElement`,
|
|
52
|
+
misses the enclosing `<schmancy-context>`, and silently resolves to the
|
|
53
|
+
module-scoped global instead of the isolated copy. The constructor-time wrap
|
|
54
|
+
still catches `render`, class methods, and inherited lifecycle methods on
|
|
55
|
+
ancestor prototypes (the browser's cached reference for those is the
|
|
56
|
+
ancestor's, which gets wrapped by an earlier sibling). But your subclass's
|
|
57
|
+
own `connectedCallback` / `disconnectedCallback` overrides fall through.
|
|
58
|
+
The symptom is silent: writes go to the wrong slot, reads return the wrong
|
|
59
|
+
value, and the form looks broken for no obvious reason.
|
|
60
|
+
|
|
61
|
+
`@schmancyElement` makes this impossible. Use it as the default.
|
|
62
|
+
|
|
42
63
|
Tailwind is injected automatically — your `static styles` only declares
|
|
43
64
|
component-local CSS.
|
|
44
65
|
|
|
@@ -99,7 +120,7 @@ Every SchmancyElement responds to `{its-tag}-where-are-you` events with
|
|
|
99
120
|
## Component skeleton
|
|
100
121
|
|
|
101
122
|
```typescript
|
|
102
|
-
@
|
|
123
|
+
@schmancyElement('my-component')
|
|
103
124
|
export class MyComponent extends SchmancyElement {
|
|
104
125
|
static styles = [css`:host { display: block }`]
|
|
105
126
|
|
|
@@ -11,6 +11,7 @@ The framework pieces — touch before components.
|
|
|
11
11
|
- [Mixins](./mixins.md) — `SchmancyElement` base class.
|
|
12
12
|
- [Theme](./theme.md) — `<schmancy-theme>`, color scheme, CSS variables.
|
|
13
13
|
- [Directives](./directives.md) — Lit directives for physics, effects, text, visibility, interaction.
|
|
14
|
+
- [Layout](./layout.md) — `fill()` + `overflowWithin()` directives for app-shell sizing (replaces `<schmancy-page>`).
|
|
14
15
|
- [Animation](./animation.md) — Spring presets (`SPRING_SMOOTH`, etc.), `createAnimation`.
|
|
15
16
|
|
|
16
17
|
## Components by job
|
|
@@ -21,7 +22,7 @@ The framework pieces — touch before components.
|
|
|
21
22
|
> Lab: [Map](../../lab/skills/map.md) · [Charts](../../lab/skills/charts.md) — install `@mhmo91/schmancy-lab`
|
|
22
23
|
|
|
23
24
|
### Surfaces & layout
|
|
24
|
-
[Surface](./surface.md) · [Card](./card.md) · [Scroll / Grid / Flex](./layout.md) · [
|
|
25
|
+
[Surface](./surface.md) · [Card](./card.md) · [Scroll / Grid / Flex](./layout.md) · [Content Drawer](./content-drawer.md) · [Window](./window.md) · [Boat](./boat.md) · [Float](./float.md) · [Splash Screen](./splash-screen.md)
|
|
25
26
|
|
|
26
27
|
### Forms
|
|
27
28
|
[Form](./form.md) · [Input](./input.md) · [Textarea](./textarea.md) · [Select](./select.md) · [Autocomplete](./autocomplete.md) · [Option](./option.md) · [Checkbox](./checkbox.md) · [Switch](./switch.md) · [Radio Group](./radio-group.md) · [Chips](./chips.md) · [Date Range](./date-range.md) · [Date Range Inline](./date-range-inline.md) · [Range](./range.md)
|
|
@@ -25,6 +25,7 @@ All reference files live in this directory. Read by filename.
|
|
|
25
25
|
| Base class (`SchmancyElement`) | `mixins.md` |
|
|
26
26
|
| Theme (`<schmancy-theme>`, `theme` service) | `theme.md` |
|
|
27
27
|
| Directives (`magnetic`, `cursorGlow`, `gravity`, `reveal`, `animateText`, …) | `directives.md` |
|
|
28
|
+
| Layout (`fill()`, `overflowWithin()` — viewport-anchored shell sizing) | `layout.md` |
|
|
28
29
|
| Spring physics presets | `animation.md` |
|
|
29
30
|
|
|
30
31
|
## Overlay services (prefer over tags)
|
|
@@ -78,6 +79,11 @@ State signals are the integration layer between co-located Schmancy view compone
|
|
|
78
79
|
- Detection signals: a view component with `.property=${value}` inputs from a parent; a view component dispatching `CustomEvent`s that a sibling or parent handles; an orchestrator file co-located with a view where routing complexity does not exceed schmancy's `.guard`+`@redirect` capability (i.e., the flow is a linear sequence with no branching or cross-route hand-off).
|
|
79
80
|
- Remediation: move shared state into schmancy state signals; have each component read/write signals directly in render() and connectedCallback(); delete the orchestrator if its only job was to pass data down and receive events up.
|
|
80
81
|
|
|
82
|
+
**TYPOGRAPHY_NO_REDUNDANT_COLOR** (`TYPOGRAPHY_NO_REDUNDANT_COLOR`). `schmancy-typography` color classes override the component's default rendering color.
|
|
83
|
+
|
|
84
|
+
- Detection signals: `class` attributes on `<schmancy-typography>` containing `text-on-surface`, `text-surface-on`, `text-surface-on-variant`, or any other color utility that matches the component's default — these restate what the component already renders and add no information.
|
|
85
|
+
- Remediation: remove the redundant color class from the `class` attribute. Keep a color class only when it intentionally overrides the default (e.g. `text-primary-default`, `text-error`, a custom accent). The test: if removing the class produces no visual change, it is redundant.
|
|
86
|
+
|
|
81
87
|
**EVENTS_UP_PROPS_DOWN** (cross-component communication when signals don't cover it)
|
|
82
88
|
When two components genuinely cannot share a signal (e.g., a generic reusable component that must not import app state), user actions travel upward via `CustomEvent` dispatch and data travels downward via Lit property bindings — not via callable property bindings (`onXxx`, `handleXxx`) set on child elements.
|
|
83
89
|
|
|
@@ -125,31 +131,35 @@ Plus a live region: `<div id="live-status" role="status" aria-live="polite" clas
|
|
|
125
131
|
## Minimal app skeleton
|
|
126
132
|
|
|
127
133
|
```typescript
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
</schmancy-
|
|
134
|
+
// styles.css: html, body { margin: 0; padding: 0; overflow: hidden; }
|
|
135
|
+
import { fill } from '@mhmo91/schmancy/directives'
|
|
136
|
+
|
|
137
|
+
html`
|
|
138
|
+
<schmancy-theme root scheme="dark">
|
|
139
|
+
<schmancy-area
|
|
140
|
+
${fill()}
|
|
141
|
+
name="root"
|
|
142
|
+
.default=${lazy(() => import('./home.page'))}
|
|
143
|
+
>
|
|
144
|
+
<schmancy-route when="home-page"
|
|
145
|
+
.component=${lazy(() => import('./home.page'))}></schmancy-route>
|
|
146
|
+
|
|
147
|
+
<schmancy-route when="app-index"
|
|
148
|
+
.component=${lazy(() => import('./app.page'))}
|
|
149
|
+
.guard=${authState$.pipe(
|
|
150
|
+
map(u => !!u),
|
|
151
|
+
takeUntil(this.disconnecting),
|
|
152
|
+
)}
|
|
153
|
+
@redirect=${() => area.push({
|
|
154
|
+
component: 'home-page', area: 'root', historyStrategy: 'replace',
|
|
155
|
+
})}></schmancy-route>
|
|
156
|
+
</schmancy-area>
|
|
157
|
+
</schmancy-theme>
|
|
158
|
+
`
|
|
151
159
|
```
|
|
152
160
|
|
|
161
|
+
See `layout.md` for the full shell pattern with rail + content area.
|
|
162
|
+
|
|
153
163
|
## Workflow
|
|
154
164
|
|
|
155
165
|
1. User describes a UI task.
|
|
@@ -14,9 +14,10 @@ Areas can be nested to compose shell-plus-sub-view layouts.
|
|
|
14
14
|
|
|
15
15
|
`<schmancy-area>` is the routing leaf in the layout cascade. Its shadow CSS guarantees:
|
|
16
16
|
|
|
17
|
-
1. **Stretch the mounted component.**
|
|
18
|
-
2. **
|
|
19
|
-
3. **
|
|
17
|
+
1. **Stretch the mounted component.** `::slotted(:not(schmancy-route))` gives every mounted view `min-height: 100%; width: 100%; min-width: 0` so it fills the area cell.
|
|
18
|
+
2. **Area sizing.** The host is `height: 100%; width: 100%; min-height: 0; min-width: 0` — it fills whatever grid cell or `fill()` box its parent gave it.
|
|
19
|
+
3. **No built-in scroll.** Scroll is opt-in via `${overflowWithin()}` at the use site. Put `overflowWithin()` on the element that should scroll (the area itself, or a wrapper around it), not on the routed component.
|
|
20
|
+
4. **Reset scroll on route change.** The area sets `scrollTop = 0` after every route swap so a new view starts at the top.
|
|
20
21
|
|
|
21
22
|
Consumers do not write `h-full`, `w-full`, or `:host { height: 100% }` on routed components. The area's `::slotted` rule sizes them.
|
|
22
23
|
|
|
@@ -57,7 +58,7 @@ Consumers do not write `h-full`, `w-full`, or `:host { height: 100% }` on routed
|
|
|
57
58
|
| `guard` | `Observable<boolean>` | When emits `false`, blocks and dispatches `redirect` event |
|
|
58
59
|
| `exact` | boolean | Strict-equality matching |
|
|
59
60
|
|
|
60
|
-
|
|
61
|
+
Scroll is opt-in: apply `${overflowWithin()}` to the element (or a wrapper) that should scroll. The area has no `no-scroll` attribute — that concept is gone.
|
|
61
62
|
|
|
62
63
|
## `area` service
|
|
63
64
|
|
|
@@ -26,9 +26,7 @@ Place it once at the root — typically just inside your main `schmancy-theme` o
|
|
|
26
26
|
```html
|
|
27
27
|
<schmancy-theme>
|
|
28
28
|
<schmancy-connectivity-status></schmancy-connectivity-status>
|
|
29
|
-
<schmancy-
|
|
30
|
-
<!-- rest of app -->
|
|
31
|
-
</schmancy-page>
|
|
29
|
+
<schmancy-area ${fill()} name="root" .default=${...}>...</schmancy-area>
|
|
32
30
|
</schmancy-theme>
|
|
33
31
|
```
|
|
34
32
|
|
|
@@ -5,11 +5,47 @@
|
|
|
5
5
|
Lit directives that snap onto any element to add behavior. No components to wrap, no CSS to write — just `${directiveName()}` in your template.
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
|
+
import { fill, overflowWithin } from '@mhmo91/schmancy/directives'
|
|
8
9
|
import { magnetic, cursorGlow, gravity, reveal } from '@mhmo91/schmancy/directives'
|
|
9
10
|
```
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
14
|
+
## Layout (2 directives — use these for every app shell)
|
|
15
|
+
|
|
16
|
+
> These replace the deleted `<schmancy-page>` primitive. See `layout.md` for the full paradigm.
|
|
17
|
+
|
|
18
|
+
### `fill()` — Viewport-anchor a container
|
|
19
|
+
|
|
20
|
+
Measures the element's position against `visualViewport` and applies an exact `height` (and `width`) in pixels — cascade-independent. Tracks `visualViewport` resize/scroll, orientation change, iOS soft-keyboard (via `focusout`), and `theme.bottomOffset$` for safe-area padding.
|
|
21
|
+
|
|
22
|
+
```html
|
|
23
|
+
<!-- Root area — anchored to the full viewport -->
|
|
24
|
+
<schmancy-area ${fill()} name="root" .default=${...}>...</schmancy-area>
|
|
25
|
+
|
|
26
|
+
<!-- Custom element shell — fill() bypasses display:inline collapse -->
|
|
27
|
+
<my-shell class="grid grid-cols-[auto_1fr]" ${fill()}>...</my-shell>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Sets:** `height: Npx`, `width: Npx`, `overflow: hidden`, `min-height/width: 0`, `box-sizing: border-box`, `padding-bottom` (safe area).
|
|
31
|
+
**Does NOT set:** `display`, `grid-template-*` — put Tailwind layout classes on the same element.
|
|
32
|
+
|
|
33
|
+
### `overflowWithin()` — Contained scroll region
|
|
34
|
+
|
|
35
|
+
Turns a grid cell or flex child into a scroll container with `overscroll-behavior: contain`.
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<div ${overflowWithin()} class="grid grid-rows-[auto_1fr] min-h-0">
|
|
39
|
+
<header>...</header>
|
|
40
|
+
<schmancy-area name="app">...</schmancy-area>
|
|
41
|
+
</div>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Sets:** `overflow-y/x: auto`, `overscroll-behavior: contain`, `scroll-behavior: smooth`, `min-height/width: 0`, `box-sizing: border-box`.
|
|
45
|
+
Dispatches debounced `schmancy:scroll` event; listens for `@schmancy:scrollTo` command.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
13
49
|
## Physics & Interaction (6 directives)
|
|
14
50
|
|
|
15
51
|
### `magnetic` — Elements lean toward the cursor
|