@mhmo91/schmancy 0.9.4 → 0.9.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/.claude-plugin/plugin.json +13 -0
- package/README.md +14 -4
- package/custom-elements.json +493 -718
- package/dist/.claude-plugin/plugin.json +13 -0
- package/dist/animation-Bcwh107v.cjs.map +1 -0
- package/dist/animation-CXKSuUoE.js.map +1 -0
- package/dist/area-BARjKpE9.js +590 -0
- package/dist/area-BARjKpE9.js.map +1 -0
- package/dist/area-D9b9dHQr.cjs +12 -0
- package/dist/area-D9b9dHQr.cjs.map +1 -0
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/audio-C7TzWI8M.js +335 -0
- package/dist/audio-C7TzWI8M.js.map +1 -0
- package/dist/audio-DUVz7Ars.cjs +1 -0
- package/dist/audio-DUVz7Ars.cjs.map +1 -0
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/autocomplete-AI2CCJmK.cjs +115 -0
- package/dist/autocomplete-AI2CCJmK.cjs.map +1 -0
- package/dist/autocomplete-DOimwVMP.js +404 -0
- package/dist/autocomplete-DOimwVMP.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/boat-Bk4u-LzT.cjs +80 -0
- package/dist/boat-Bk4u-LzT.cjs.map +1 -0
- package/dist/boat-DrghVeWK.js +347 -0
- package/dist/boat-DrghVeWK.js.map +1 -0
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +34 -0
- package/dist/breadcrumb.cjs.map +1 -0
- package/dist/breadcrumb.js +73 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/busy-BmFfwyz_.js +168 -0
- package/dist/busy-BmFfwyz_.js.map +1 -0
- package/dist/busy-c_q_F8O0.cjs +134 -0
- package/dist/busy-c_q_F8O0.cjs.map +1 -0
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +4 -4
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +25 -6
- package/dist/button.js.map +1 -1
- package/dist/card-BADJHUMA.js +285 -0
- package/dist/card-BADJHUMA.js.map +1 -0
- package/dist/card-C_E944_Z.cjs +177 -0
- package/dist/card-C_E944_Z.cjs.map +1 -0
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/charts.cjs +3 -3
- package/dist/charts.cjs.map +1 -1
- package/dist/charts.js +2 -2
- package/dist/checkbox-D7rvCrGk.js +629 -0
- package/dist/checkbox-D7rvCrGk.js.map +1 -0
- package/dist/checkbox-ZqDoCagB.cjs +39 -0
- package/dist/checkbox-ZqDoCagB.cjs.map +1 -0
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/chips-Cux635Qs.cjs +253 -0
- package/dist/chips-Cux635Qs.cjs.map +1 -0
- package/dist/chips-vdzIsesI.js +655 -0
- package/dist/chips-vdzIsesI.js.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/code-highlight-C9lKek2p.cjs +190 -0
- package/dist/code-highlight-C9lKek2p.cjs.map +1 -0
- package/dist/code-highlight-D6yruol6.js +291 -0
- package/dist/code-highlight-D6yruol6.js.map +1 -0
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/components-ByRyEzz5.cjs +73 -0
- package/dist/components-ByRyEzz5.cjs.map +1 -0
- package/dist/components-DSvPKR9Q.js +730 -0
- package/dist/components-DSvPKR9Q.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/connectivity.cjs +7 -7
- package/dist/connectivity.cjs.map +1 -1
- package/dist/connectivity.js +5 -4
- package/dist/connectivity.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/cursor-glow-82y5h3E4.cjs +1 -0
- package/dist/cursor-glow-82y5h3E4.cjs.map +1 -0
- package/dist/cursor-glow-C2YRrB8Z.js +46 -0
- package/dist/cursor-glow-C2YRrB8Z.js.map +1 -0
- package/dist/date-range-DJsavigf.cjs +131 -0
- package/dist/date-range-DJsavigf.cjs.map +1 -0
- package/dist/date-range-inline-B87TDYI6.js +267 -0
- package/dist/date-range-inline-B87TDYI6.js.map +1 -0
- package/dist/date-range-inline-De-M0VmL.cjs +43 -0
- package/dist/date-range-inline-De-M0VmL.cjs.map +1 -0
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range-tEX2Jx2j.js +946 -0
- package/dist/date-range-tEX2Jx2j.js.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/delay-BvVdfhAR.cjs +9 -0
- package/dist/delay-BvVdfhAR.cjs.map +1 -0
- package/dist/delay-CZw37zps.js +347 -0
- package/dist/delay-CZw37zps.js.map +1 -0
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/details-Bhz8_whd.cjs +168 -0
- package/dist/details-Bhz8_whd.cjs.map +1 -0
- package/dist/details-D7VTnLOh.js +294 -0
- package/dist/details-D7VTnLOh.js.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/dialog-service-ClFrOWf4.js +193 -0
- package/dist/dialog-service-ClFrOWf4.js.map +1 -0
- package/dist/dialog-service-DcuAavp2.cjs +1 -0
- package/dist/dialog-service-DcuAavp2.cjs.map +1 -0
- package/dist/dialog.cjs +18 -11
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +66 -43
- package/dist/dialog.js.map +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +5 -5
- package/dist/divider-S0bHwCCS.cjs +57 -0
- package/dist/divider-S0bHwCCS.cjs.map +1 -0
- package/dist/divider-zS232JDr.js +87 -0
- package/dist/divider-zS232JDr.js.map +1 -0
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +4 -4
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js +8 -7
- package/dist/dropdown.js.map +1 -1
- package/dist/expand-BXt9SqAF.js +337 -0
- package/dist/expand-BXt9SqAF.js.map +1 -0
- package/dist/expand-Dr7TFXpl.cjs +141 -0
- package/dist/expand-Dr7TFXpl.cjs.map +1 -0
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/extra-BmZTXAp0.cjs +31 -0
- package/dist/extra-BmZTXAp0.cjs.map +1 -0
- package/dist/extra-COYhsOyZ.js +3435 -0
- package/dist/extra-COYhsOyZ.js.map +1 -0
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/float-CSRW-Rrd.cjs +1 -0
- package/dist/float-CSRW-Rrd.cjs.map +1 -0
- package/dist/float-DCXafWh6.js +5 -0
- package/dist/float-DCXafWh6.js.map +1 -0
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/flow-CqgDEIqK.js.map +1 -0
- package/dist/flow-DSu4PLt1.cjs.map +1 -0
- package/dist/form-CAY9GSCd.cjs +1 -0
- package/dist/form-CAY9GSCd.cjs.map +1 -0
- package/dist/form-D2cJ58TB.js +68 -0
- package/dist/form-D2cJ58TB.js.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +2 -1
- package/dist/hashContent-kKvXKFa9.cjs.map +1 -0
- package/dist/hashContent-nD2uWwi2.js.map +1 -0
- package/dist/icons-BbaI9Zf-.js +162 -0
- package/dist/icons-BbaI9Zf-.js.map +1 -0
- package/dist/icons-DPUeLS_Y.cjs +52 -0
- package/dist/icons-DPUeLS_Y.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/iframe-CEDOvkql.js +45 -0
- package/dist/iframe-CEDOvkql.js.map +1 -0
- package/dist/iframe-Ct50FYXq.cjs +24 -0
- package/dist/iframe-Ct50FYXq.cjs.map +1 -0
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +65 -59
- package/dist/input-DMjpf6V8.cjs +51 -0
- package/dist/input-DMjpf6V8.cjs.map +1 -0
- package/dist/input-Ri72dn5t.js +364 -0
- package/dist/input-Ri72dn5t.js.map +1 -0
- package/dist/input-chip-BhjGVpc3.cjs +146 -0
- package/dist/input-chip-BhjGVpc3.cjs.map +1 -0
- package/dist/input-chip-CI4__N8w.js +305 -0
- package/dist/input-chip-CI4__N8w.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/intersection-D1v1UCVv.cjs.map +1 -0
- package/dist/intersection-LfEsy29T.js.map +1 -0
- package/dist/json.cjs +3 -3
- package/dist/json.cjs.map +1 -1
- package/dist/json.js +5 -4
- package/dist/json.js.map +1 -1
- package/dist/kbd.cjs +28 -0
- package/dist/kbd.cjs.map +1 -0
- package/dist/kbd.js +45 -0
- package/dist/kbd.js.map +1 -0
- package/dist/layout-BE2ld1IY.js +94 -0
- package/dist/layout-BE2ld1IY.js.map +1 -0
- package/dist/layout-D7xOqMkJ.cjs +17 -0
- package/dist/layout-D7xOqMkJ.cjs.map +1 -0
- package/dist/layout-PZCF3kwl.cjs +1 -0
- package/dist/layout-PZCF3kwl.cjs.map +1 -0
- package/dist/layout-uAQpJN31.js +268 -0
- package/dist/layout-uAQpJN31.js.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/lightbox-C0OEHns9.js +679 -0
- package/dist/lightbox-C0OEHns9.js.map +1 -0
- package/dist/lightbox-cXRnvHMN.cjs +202 -0
- package/dist/lightbox-cXRnvHMN.cjs.map +1 -0
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/list-CmJ5h35b.cjs +40 -0
- package/dist/list-CmJ5h35b.cjs.map +1 -0
- package/dist/list-d1mHar5p.js +106 -0
- package/dist/list-d1mHar5p.js.map +1 -0
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/litElement.mixin-Bj2q1yPw.cjs +1 -0
- package/dist/litElement.mixin-Bj2q1yPw.cjs.map +1 -0
- package/dist/litElement.mixin-CncaUoxz.js +12 -0
- package/dist/litElement.mixin-CncaUoxz.js.map +1 -0
- package/dist/magnetic-Dj52WplI.js +47 -0
- package/dist/magnetic-Dj52WplI.js.map +1 -0
- package/dist/magnetic-aBBnj_vk.cjs +1 -0
- package/dist/magnetic-aBBnj_vk.cjs.map +1 -0
- package/dist/mailbox-BmChskZc.cjs +1142 -0
- package/dist/mailbox-BmChskZc.cjs.map +1 -0
- package/dist/mailbox-C4-E93be.js +1585 -0
- package/dist/mailbox-C4-E93be.js.map +1 -0
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/map-DHyYLhvy.js +206 -0
- package/dist/map-DHyYLhvy.js.map +1 -0
- package/dist/map-DYEvlNl0.cjs +80 -0
- package/dist/map-DYEvlNl0.cjs.map +1 -0
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/menu-BlPTI6H9.cjs +23 -0
- package/dist/menu-BlPTI6H9.cjs.map +1 -0
- package/dist/menu-DFDBADp4.js +51 -0
- package/dist/menu-DFDBADp4.js.map +1 -0
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.cjs.map +1 -1
- package/dist/mixins.js +43 -15
- package/dist/mixins.js.map +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 +3 -3
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +2 -2
- package/dist/notification-DGpv8g2H.js +304 -0
- package/dist/notification-DGpv8g2H.js.map +1 -0
- package/dist/notification-DKVWYhqs.cjs +23 -0
- package/dist/notification-DKVWYhqs.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/option-BD2eh458.js +98 -0
- package/dist/option-BD2eh458.js.map +1 -0
- package/dist/option-LtSDy2xf.cjs +43 -0
- package/dist/option-LtSDy2xf.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/overlay-stack-CEYGD9T1.cjs.map +1 -0
- package/dist/overlay-stack-Ca4EK2Mu.js.map +1 -0
- package/dist/page.cjs +2 -2
- package/dist/page.cjs.map +1 -1
- package/dist/page.js +5 -5
- package/dist/progress-B5ChDPbB.cjs +51 -0
- package/dist/progress-B5ChDPbB.cjs.map +1 -0
- package/dist/progress-CE1Pk2hi.js +128 -0
- package/dist/progress-CE1Pk2hi.js.map +1 -0
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/provide-BZ9lq_Be.cjs +1 -0
- package/dist/provide-BZ9lq_Be.cjs.map +1 -0
- package/dist/provide-jn1Fj1vv.js +107 -0
- package/dist/provide-jn1Fj1vv.js.map +1 -0
- package/dist/qr-scanner.cjs +2 -2
- package/dist/qr-scanner.cjs.map +1 -1
- package/dist/qr-scanner.js +2 -2
- package/dist/radio-group-Cd9pZ2MR.cjs +40 -0
- package/dist/radio-group-Cd9pZ2MR.cjs.map +1 -0
- package/dist/radio-group-CyRHgIF3.js +106 -0
- package/dist/radio-group-CyRHgIF3.js.map +1 -0
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +4 -4
- package/dist/range.cjs.map +1 -1
- package/dist/range.js +4 -3
- package/dist/range.js.map +1 -1
- package/dist/reduced-motion-B83yZbcO.js.map +1 -0
- package/dist/reduced-motion-DR32yKEO.cjs.map +1 -0
- package/dist/rxjs-utils-Bldch1RO.js.map +1 -0
- package/dist/rxjs-utils-hAgKC7vk.cjs.map +1 -0
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/scroll-C_iNOi7E.cjs +26 -0
- package/dist/scroll-C_iNOi7E.cjs.map +1 -0
- package/dist/scroll-DoliwpRu.js +113 -0
- package/dist/scroll-DoliwpRu.js.map +1 -0
- package/dist/search-BlGJ6uJv.js.map +1 -0
- package/dist/search-C8eAOzBm.cjs.map +1 -0
- package/dist/select-CWWuZ2iJ.cjs +56 -0
- package/dist/select-CWWuZ2iJ.cjs.map +1 -0
- package/dist/select-_vHPXi30.js +305 -0
- package/dist/select-_vHPXi30.js.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/sheet-i1KtxGIj.js +168 -0
- package/dist/sheet-i1KtxGIj.js.map +1 -0
- package/dist/sheet-r0oEYIdi.cjs +35 -0
- package/dist/sheet-r0oEYIdi.cjs.map +1 -0
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/sheet.service-Cr13Oo6G.cjs +1 -0
- package/dist/sheet.service-Cr13Oo6G.cjs.map +1 -0
- package/dist/sheet.service-DUO5_kmI.js +86 -0
- package/dist/sheet.service-DUO5_kmI.js.map +1 -0
- package/dist/skeleton.cjs +33 -0
- package/dist/skeleton.cjs.map +1 -0
- package/dist/skeleton.js +58 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/skills/INDEX.md +73 -0
- package/dist/skills/SKILL.md +120 -0
- package/dist/skills/breadcrumb.md +53 -0
- package/dist/skills/kbd.md +40 -0
- package/dist/skills/schmancy/INDEX.md +73 -0
- package/dist/skills/schmancy/SKILL.md +120 -0
- package/dist/skills/schmancy/breadcrumb.md +53 -0
- package/dist/skills/schmancy/kbd.md +40 -0
- package/dist/skills/schmancy/skeleton.md +40 -0
- package/dist/skills/schmancy/splash-screen.md +60 -0
- package/dist/skills/schmancy/switch.md +58 -0
- package/dist/skills/schmancy/tooltip.md +38 -0
- package/dist/skills/schmancy/visually-hidden.md +41 -0
- package/dist/skills/skeleton.md +40 -0
- package/dist/skills/splash-screen.md +60 -0
- package/dist/skills/switch.md +58 -0
- package/dist/skills/tooltip.md +38 -0
- package/dist/skills/visually-hidden.md +41 -0
- package/dist/slider.cjs +3 -3
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +2 -2
- package/dist/sound.service-BjSoGjmT.cjs +1 -0
- package/dist/sound.service-BjSoGjmT.cjs.map +1 -0
- package/dist/sound.service-cdkw3Wkv.js +2353 -0
- package/dist/sound.service-cdkw3Wkv.js.map +1 -0
- package/dist/splash-screen-CquyPP1C.cjs +41 -0
- package/dist/splash-screen-CquyPP1C.cjs.map +1 -0
- package/dist/splash-screen-CvucPkpD.js +83 -0
- package/dist/splash-screen-CvucPkpD.js.map +1 -0
- package/dist/splash-screen.cjs +1 -0
- package/dist/splash-screen.js +1 -0
- package/dist/src-Bemk2C2P.cjs +269 -0
- package/dist/src-Bemk2C2P.cjs.map +1 -0
- package/dist/src-f5a3W9Mj.js +1251 -0
- package/dist/src-f5a3W9Mj.js.map +1 -0
- package/dist/steps.cjs +10 -10
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +10 -9
- package/dist/steps.js.map +1 -1
- package/dist/store-Bmj6rvZY.js.map +1 -0
- package/dist/store-CO4nJyGj.cjs.map +1 -0
- package/dist/store.cjs +1 -1
- package/dist/store.js +1 -1
- package/dist/surface-CDufon40.cjs +7 -0
- package/dist/surface-CDufon40.cjs.map +1 -0
- package/dist/surface-CkEYJCae.js +22 -0
- package/dist/surface-CkEYJCae.js.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/surface.mixin-CSKqQH-0.cjs +297 -0
- package/dist/surface.mixin-CSKqQH-0.cjs.map +1 -0
- package/dist/surface.mixin-DqMwoddO.js +320 -0
- package/dist/surface.mixin-DqMwoddO.js.map +1 -0
- package/dist/switch.cjs +69 -0
- package/dist/switch.cjs.map +1 -0
- package/dist/switch.js +132 -0
- package/dist/switch.js.map +1 -0
- package/dist/table-DWc1mkpj.cjs +63 -0
- package/dist/table-DWc1mkpj.cjs.map +1 -0
- package/dist/table-P6VGG7NK.js +631 -0
- package/dist/table-P6VGG7NK.js.map +1 -0
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/tabs-CjGjGrqY.js +126 -0
- package/dist/tabs-CjGjGrqY.js.map +1 -0
- package/dist/tabs-DGJEKuhC.cjs +31 -0
- package/dist/tabs-DGJEKuhC.cjs.map +1 -0
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-Cpa-VnnX.cjs +2 -0
- package/dist/tailwind.mixin-Cpa-VnnX.cjs.map +1 -0
- package/dist/tailwind.mixin-DufHBjmb.js +219 -0
- package/dist/tailwind.mixin-DufHBjmb.js.map +1 -0
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/textarea-DZT_Ofp5.js +209 -0
- package/dist/textarea-DZT_Ofp5.js.map +1 -0
- package/dist/textarea-jmTOXrzl.cjs +39 -0
- package/dist/textarea-jmTOXrzl.cjs.map +1 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/theme-CCKqaksQ.cjs +181 -0
- package/dist/theme-CCKqaksQ.cjs.map +1 -0
- package/dist/theme-CEc32pAv.js +4122 -0
- package/dist/theme-CEc32pAv.js.map +1 -0
- package/dist/theme-button-BsJcv-Zv.cjs +8 -0
- package/dist/theme-button-BsJcv-Zv.cjs.map +1 -0
- package/dist/theme-button-dOiAvdKU.js +20 -0
- package/dist/theme-button-dOiAvdKU.js.map +1 -0
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.events-Bw3mYjUA.js.map +1 -0
- package/dist/theme.events-EznKK2Y0.cjs.map +1 -0
- package/dist/theme.interface-CM26m9te.cjs.map +1 -0
- package/dist/theme.interface-FAUIgbIq.js.map +1 -0
- package/dist/theme.js +5 -5
- package/dist/theme.service-ETiKUwVy.cjs +1 -0
- package/dist/theme.service-ETiKUwVy.cjs.map +1 -0
- package/dist/theme.service-_qP5WvB9.js +108 -0
- package/dist/theme.service-_qP5WvB9.js.map +1 -0
- package/dist/tooltip.cjs +1 -6
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js +51 -135
- package/dist/tooltip.js.map +1 -1
- package/dist/tree.cjs +14 -5
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +28 -6
- package/dist/tree.js.map +1 -1
- package/dist/tslib.es6-Bd-92OW3.cjs +1 -0
- package/dist/tslib.es6-Bd-92OW3.cjs.map +1 -0
- package/dist/tslib.es6-CI1onEZb.js +7 -0
- package/dist/tslib.es6-CI1onEZb.js.map +1 -0
- package/dist/typewriter-ByIL2Mh-.cjs +123 -0
- package/dist/typewriter-ByIL2Mh-.cjs.map +1 -0
- package/dist/typewriter-vOQ3bDLb.js +701 -0
- package/dist/typewriter-vOQ3bDLb.js.map +1 -0
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/typography.cjs +4 -4
- package/dist/typography.cjs.map +1 -1
- package/dist/typography.js +10 -9
- package/dist/typography.js.map +1 -1
- package/dist/utils-Cq0m3LYo.js +259 -0
- package/dist/utils-Cq0m3LYo.js.map +1 -0
- package/dist/utils-D2kE-6zc.cjs +1 -0
- package/dist/utils-D2kE-6zc.cjs.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +5 -5
- package/dist/visually-hidden.cjs +13 -0
- package/dist/visually-hidden.cjs.map +1 -0
- package/dist/visually-hidden.js +24 -0
- package/dist/visually-hidden.js.map +1 -0
- package/dist/window-BS7ZQjgH.cjs +59 -0
- package/dist/window-BS7ZQjgH.cjs.map +1 -0
- package/dist/window-WnAihpsA.js +548 -0
- package/dist/window-WnAihpsA.js.map +1 -0
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/mixins/formField.mixin.ts +96 -69
- package/mixins/tailwind.css +11 -0
- package/package.json +19 -28
- package/skills/schmancy/INDEX.md +73 -0
- package/skills/schmancy/SKILL.md +120 -0
- package/skills/schmancy/animation.md +64 -0
- package/skills/schmancy/area.md +141 -0
- package/skills/schmancy/audio.md +69 -0
- package/skills/schmancy/autocomplete.md +53 -0
- package/skills/schmancy/avatar.md +47 -0
- package/skills/schmancy/badge.md +41 -0
- package/skills/schmancy/boat.md +47 -0
- package/skills/schmancy/breadcrumb.md +53 -0
- package/skills/schmancy/busy.md +36 -0
- package/skills/schmancy/button.md +59 -0
- package/skills/schmancy/card.md +53 -0
- package/skills/schmancy/charts.md +93 -0
- package/skills/schmancy/checkbox.md +36 -0
- package/skills/schmancy/chips.md +87 -0
- package/skills/schmancy/code-highlight.md +47 -0
- package/skills/schmancy/connectivity.md +36 -0
- package/skills/schmancy/content-drawer.md +65 -0
- package/skills/schmancy/date-range-inline.md +44 -0
- package/skills/schmancy/date-range.md +50 -0
- package/skills/schmancy/delay.md +50 -0
- package/skills/schmancy/details.md +66 -0
- package/skills/schmancy/dialog.md +69 -0
- package/skills/schmancy/directives.md +298 -0
- package/skills/schmancy/discovery.md +67 -0
- package/skills/schmancy/divider.md +31 -0
- package/skills/schmancy/dropdown.md +47 -0
- package/skills/schmancy/expand.md +63 -0
- package/skills/schmancy/extra.md +59 -0
- package/skills/schmancy/float.md +14 -0
- package/skills/schmancy/form.md +49 -0
- package/skills/schmancy/icons.md +44 -0
- package/skills/schmancy/iframe.md +44 -0
- package/skills/schmancy/input.md +56 -0
- package/skills/schmancy/json.md +33 -0
- package/skills/schmancy/kbd.md +40 -0
- package/skills/schmancy/layout.md +63 -0
- package/skills/schmancy/lightbox.md +36 -0
- package/skills/schmancy/list.md +67 -0
- package/skills/schmancy/mailbox.md +102 -0
- package/skills/schmancy/map.md +55 -0
- package/skills/schmancy/menu.md +39 -0
- package/skills/schmancy/mixins.md +99 -0
- package/skills/schmancy/nav-drawer.md +52 -0
- package/skills/schmancy/navigation-bar.md +48 -0
- package/skills/schmancy/navigation-rail.md +62 -0
- package/skills/schmancy/notification.md +60 -0
- package/skills/schmancy/option.md +43 -0
- package/skills/schmancy/page.md +42 -0
- package/skills/schmancy/progress.md +30 -0
- package/skills/schmancy/qr-scanner.md +51 -0
- package/skills/schmancy/radio-group.md +50 -0
- package/skills/schmancy/range.md +47 -0
- package/skills/schmancy/rxjs-utils.md +60 -0
- package/skills/schmancy/select.md +49 -0
- package/skills/schmancy/sheet.md +76 -0
- package/skills/schmancy/skeleton.md +40 -0
- package/skills/schmancy/slider.md +43 -0
- package/skills/schmancy/splash-screen.md +60 -0
- package/skills/schmancy/steps.md +53 -0
- package/skills/schmancy/store.md +126 -0
- package/skills/schmancy/surface.md +86 -0
- package/skills/schmancy/switch.md +58 -0
- package/skills/schmancy/table.md +60 -0
- package/skills/schmancy/tabs.md +49 -0
- package/skills/schmancy/teleport.md +55 -0
- package/skills/schmancy/textarea.md +48 -0
- package/skills/schmancy/theme-button.md +26 -0
- package/skills/schmancy/theme.md +58 -0
- package/skills/schmancy/tooltip.md +38 -0
- package/skills/schmancy/tree.md +53 -0
- package/skills/schmancy/typewriter.md +46 -0
- package/skills/schmancy/typography.md +53 -0
- package/skills/schmancy/utils.md +95 -0
- package/skills/schmancy/visually-hidden.md +41 -0
- package/skills/schmancy/window.md +67 -0
- package/src/audio/emotional-sounds.ts +2 -4
- package/src/autocomplete/autocomplete.ts +52 -2
- package/src/breadcrumb/breadcrumb.ts +109 -0
- package/src/breadcrumb/index.ts +1 -0
- package/src/button/button.ts +40 -0
- package/src/button/icon-button.ts +2 -1
- package/src/checkbox/checkbox.test.ts +113 -0
- package/src/checkbox/checkbox.ts +41 -1
- package/src/chips/filter-chip.ts +15 -0
- package/src/chips/input-chip.ts +7 -0
- package/src/date-range/date-range-helpers.ts +0 -71
- package/src/dialog/dialog-base.mixin.ts +11 -0
- package/src/dialog/dialog.component.ts +28 -8
- package/src/dropdown/dropdown-content.ts +3 -1
- package/src/form/form.test.ts +137 -0
- package/src/form/form.ts +142 -158
- package/src/form/index.ts +2 -2
- package/src/icons/icon.ts +1 -0
- package/src/index.ts +6 -0
- package/src/kbd/index.ts +1 -0
- package/src/kbd/kbd.ts +59 -0
- package/src/skeleton/index.ts +1 -0
- package/src/skeleton/skeleton.ts +78 -0
- package/src/splash-screen/index.ts +1 -0
- package/src/splash-screen/splash-screen.ts +154 -0
- package/src/switch/index.ts +1 -0
- package/src/switch/switch.test.ts +93 -0
- package/src/switch/switch.ts +180 -0
- package/src/test-utils/a11y.ts +35 -0
- package/src/textarea/textarea.ts +32 -2
- package/src/tooltip/index.ts +1 -2
- package/src/tree/tree.ts +27 -2
- package/src/visually-hidden/index.ts +1 -0
- package/src/visually-hidden/visually-hidden.ts +39 -0
- package/src/window/window-position.ts +1 -74
- package/types/mixins/formField.mixin.d.ts +15 -8
- package/types/src/audio/emotional-sounds.d.ts +0 -2
- package/types/src/autocomplete/autocomplete.d.ts +7 -0
- package/types/src/breadcrumb/breadcrumb.d.ts +38 -0
- package/types/src/breadcrumb/index.d.ts +1 -0
- package/types/src/button/button.d.ts +7 -0
- package/types/src/button/icon-button.d.ts +2 -1
- package/types/src/checkbox/checkbox.d.ts +6 -0
- package/types/src/checkbox/checkbox.test.d.ts +1 -0
- package/types/src/chips/filter-chip.d.ts +3 -0
- package/types/src/chips/input-chip.d.ts +1 -0
- package/types/src/date-range/date-range-helpers.d.ts +0 -12
- package/types/src/dialog/dialog.component.d.ts +6 -0
- package/types/src/dropdown/dropdown-content.d.ts +3 -1
- package/types/src/form/form-v2.d.ts +12 -63
- package/types/src/form/form.d.ts +58 -40
- package/types/src/form/form.test.d.ts +4 -0
- package/types/src/form/index.d.ts +1 -1
- package/types/src/icons/icon.d.ts +1 -0
- package/types/src/index.d.ts +6 -0
- package/types/src/kbd/index.d.ts +1 -0
- package/types/src/kbd/kbd.d.ts +25 -0
- package/types/src/skeleton/index.d.ts +1 -0
- package/types/src/skeleton/skeleton.d.ts +27 -0
- package/types/src/splash-screen/index.d.ts +1 -0
- package/types/src/splash-screen/splash-screen.d.ts +60 -0
- package/types/src/switch/index.d.ts +1 -0
- package/types/src/switch/switch.d.ts +54 -0
- package/types/src/switch/switch.test.d.ts +1 -0
- package/types/src/test-utils/a11y.d.ts +11 -0
- package/types/src/textarea/textarea.d.ts +5 -1
- package/types/src/tooltip/index.d.ts +0 -1
- package/types/src/tree/tree.d.ts +5 -0
- package/types/src/visually-hidden/index.d.ts +1 -0
- package/types/src/visually-hidden/visually-hidden.d.ts +21 -0
- package/types/src/window/window-position.d.ts +1 -35
- package/ai/INDEX.md +0 -72
- package/ai/tooltip.md +0 -38
- package/dist/ai/INDEX.md +0 -72
- package/dist/ai/tooltip.md +0 -38
- package/dist/animation-BK-8BwY8.js.map +0 -1
- package/dist/animation-CO_Csq84.cjs.map +0 -1
- package/dist/area-CRoGqD_u.js +0 -590
- package/dist/area-CRoGqD_u.js.map +0 -1
- package/dist/area-JPykB7A9.cjs +0 -12
- package/dist/area-JPykB7A9.cjs.map +0 -1
- package/dist/audio-DtYYgzYD.cjs +0 -1
- package/dist/audio-DtYYgzYD.cjs.map +0 -1
- package/dist/audio-kz8UgPTO.js +0 -335
- package/dist/audio-kz8UgPTO.js.map +0 -1
- package/dist/autocomplete-5rVhbieU.cjs +0 -111
- package/dist/autocomplete-5rVhbieU.cjs.map +0 -1
- package/dist/autocomplete-BllPQwr8.js +0 -378
- package/dist/autocomplete-BllPQwr8.js.map +0 -1
- package/dist/boat-BDTQ-du9.js +0 -347
- package/dist/boat-BDTQ-du9.js.map +0 -1
- package/dist/boat-DYEAZ8Qj.cjs +0 -80
- package/dist/boat-DYEAZ8Qj.cjs.map +0 -1
- package/dist/busy-ChDAeaKF.js +0 -167
- package/dist/busy-ChDAeaKF.js.map +0 -1
- package/dist/busy-Dj7Xn0Z0.cjs +0 -134
- package/dist/busy-Dj7Xn0Z0.cjs.map +0 -1
- package/dist/card-BvPWVEJX.cjs +0 -177
- package/dist/card-BvPWVEJX.cjs.map +0 -1
- package/dist/card-DZFPRPqs.js +0 -284
- package/dist/card-DZFPRPqs.js.map +0 -1
- package/dist/checkbox-BC_37rsG.cjs +0 -39
- package/dist/checkbox-BC_37rsG.cjs.map +0 -1
- package/dist/checkbox-GSSjqo6w.js +0 -610
- package/dist/checkbox-GSSjqo6w.js.map +0 -1
- package/dist/chips-B19XS8Xc.cjs +0 -253
- package/dist/chips-B19XS8Xc.cjs.map +0 -1
- package/dist/chips-B9oAEfE_.js +0 -645
- package/dist/chips-B9oAEfE_.js.map +0 -1
- package/dist/code-highlight-DCk5lJY-.js +0 -290
- package/dist/code-highlight-DCk5lJY-.js.map +0 -1
- package/dist/code-highlight-fSLrlgOb.cjs +0 -190
- package/dist/code-highlight-fSLrlgOb.cjs.map +0 -1
- package/dist/components-COsM6sJZ.js +0 -730
- package/dist/components-COsM6sJZ.js.map +0 -1
- package/dist/components-CyD6a7gQ.cjs +0 -73
- package/dist/components-CyD6a7gQ.cjs.map +0 -1
- package/dist/cursor-glow-Ah7VXSj7.js +0 -46
- package/dist/cursor-glow-Ah7VXSj7.js.map +0 -1
- package/dist/cursor-glow-DtSy_PJd.cjs +0 -1
- package/dist/cursor-glow-DtSy_PJd.cjs.map +0 -1
- package/dist/date-range-Sfyco9-n.js +0 -946
- package/dist/date-range-Sfyco9-n.js.map +0 -1
- package/dist/date-range-ZAaQB22I.cjs +0 -131
- package/dist/date-range-ZAaQB22I.cjs.map +0 -1
- package/dist/date-range-inline-Bl8qbiQF.js +0 -267
- package/dist/date-range-inline-Bl8qbiQF.js.map +0 -1
- package/dist/date-range-inline-m7nLjOMI.cjs +0 -43
- package/dist/date-range-inline-m7nLjOMI.cjs.map +0 -1
- package/dist/delay-7boauN6N.cjs +0 -9
- package/dist/delay-7boauN6N.cjs.map +0 -1
- package/dist/delay-CgX6m0HN.js +0 -346
- package/dist/delay-CgX6m0HN.js.map +0 -1
- package/dist/details-BHnk8l4q.cjs +0 -168
- package/dist/details-BHnk8l4q.cjs.map +0 -1
- package/dist/details-BPkUg8Cq.js +0 -293
- package/dist/details-BPkUg8Cq.js.map +0 -1
- package/dist/dialog-service-NZEvyEK-.js +0 -193
- package/dist/dialog-service-NZEvyEK-.js.map +0 -1
- package/dist/dialog-service-VnW4gkmE.cjs +0 -1
- package/dist/dialog-service-VnW4gkmE.cjs.map +0 -1
- package/dist/divider-CW9a7MMj.js +0 -87
- package/dist/divider-CW9a7MMj.js.map +0 -1
- package/dist/divider-_khrhrZo.cjs +0 -57
- package/dist/divider-_khrhrZo.cjs.map +0 -1
- package/dist/expand-Cp7-PH8b.cjs +0 -141
- package/dist/expand-Cp7-PH8b.cjs.map +0 -1
- package/dist/expand-iQ7EOMP7.js +0 -336
- package/dist/expand-iQ7EOMP7.js.map +0 -1
- package/dist/extra-IKAiJJhv.cjs +0 -31
- package/dist/extra-IKAiJJhv.cjs.map +0 -1
- package/dist/extra-wEpvEFbK.js +0 -3435
- package/dist/extra-wEpvEFbK.js.map +0 -1
- package/dist/float-BQ_urmMs.js +0 -5
- package/dist/float-BQ_urmMs.js.map +0 -1
- package/dist/float-D5rNC82i.cjs +0 -1
- package/dist/float-D5rNC82i.cjs.map +0 -1
- package/dist/flow-Bbwn6dRN.cjs.map +0 -1
- package/dist/flow-CUj0fDT_.js.map +0 -1
- package/dist/form-BqN1AGFj.cjs +0 -1
- package/dist/form-BqN1AGFj.cjs.map +0 -1
- package/dist/form-CajC5HnO.js +0 -270
- package/dist/form-CajC5HnO.js.map +0 -1
- package/dist/hashContent-DYM21p6t.js.map +0 -1
- package/dist/hashContent-DaeGmY-p.cjs.map +0 -1
- package/dist/icons-B57_93VV.cjs +0 -52
- package/dist/icons-B57_93VV.cjs.map +0 -1
- package/dist/icons-BDqiGXrO.js +0 -161
- package/dist/icons-BDqiGXrO.js.map +0 -1
- package/dist/iframe-DNHL3GIk.cjs +0 -24
- package/dist/iframe-DNHL3GIk.cjs.map +0 -1
- package/dist/iframe-WnWPIrBG.js +0 -44
- package/dist/iframe-WnWPIrBG.js.map +0 -1
- package/dist/input-BiSrTcrR.cjs +0 -51
- package/dist/input-BiSrTcrR.cjs.map +0 -1
- package/dist/input-VaXHFrRn.js +0 -364
- package/dist/input-VaXHFrRn.js.map +0 -1
- package/dist/input-chip-Dy-AiP55.cjs +0 -146
- package/dist/input-chip-Dy-AiP55.cjs.map +0 -1
- package/dist/input-chip-QejNcRnS.js +0 -301
- package/dist/input-chip-QejNcRnS.js.map +0 -1
- package/dist/intersection-BPLpqYEd.js.map +0 -1
- package/dist/intersection-CZpaIHeT.cjs.map +0 -1
- package/dist/layout-4C-6_cre.cjs +0 -1
- package/dist/layout-4C-6_cre.cjs.map +0 -1
- package/dist/layout-CnsXeCAy.js +0 -267
- package/dist/layout-CnsXeCAy.js.map +0 -1
- package/dist/layout-DNYG3phx.cjs +0 -17
- package/dist/layout-DNYG3phx.cjs.map +0 -1
- package/dist/layout-yxSlLybo.js +0 -94
- package/dist/layout-yxSlLybo.js.map +0 -1
- package/dist/lightbox-BrI1Z31s.js +0 -678
- package/dist/lightbox-BrI1Z31s.js.map +0 -1
- package/dist/lightbox-CmACf0t5.cjs +0 -202
- package/dist/lightbox-CmACf0t5.cjs.map +0 -1
- package/dist/list-Cm-jjXxM.js +0 -105
- package/dist/list-Cm-jjXxM.js.map +0 -1
- package/dist/list-swIL9VDv.cjs +0 -40
- package/dist/list-swIL9VDv.cjs.map +0 -1
- package/dist/litElement.mixin-3llHwB-8.cjs +0 -1
- package/dist/litElement.mixin-3llHwB-8.cjs.map +0 -1
- package/dist/litElement.mixin-6jJYHCrZ.js +0 -12
- package/dist/litElement.mixin-6jJYHCrZ.js.map +0 -1
- package/dist/magnetic-BZGFxAWG.js +0 -47
- package/dist/magnetic-BZGFxAWG.js.map +0 -1
- package/dist/magnetic-Dux4QwO4.cjs +0 -1
- package/dist/magnetic-Dux4QwO4.cjs.map +0 -1
- package/dist/mailbox-BuvsVaAQ.js +0 -1584
- package/dist/mailbox-BuvsVaAQ.js.map +0 -1
- package/dist/mailbox-D6LkQcN5.cjs +0 -1142
- package/dist/mailbox-D6LkQcN5.cjs.map +0 -1
- package/dist/map-CQiKAxC3.js +0 -205
- package/dist/map-CQiKAxC3.js.map +0 -1
- package/dist/map-D5NN4VET.cjs +0 -80
- package/dist/map-D5NN4VET.cjs.map +0 -1
- package/dist/menu-C1x04YZw.js +0 -51
- package/dist/menu-C1x04YZw.js.map +0 -1
- package/dist/menu-CkgMO9K5.cjs +0 -23
- package/dist/menu-CkgMO9K5.cjs.map +0 -1
- package/dist/notification-BnBgxjF-.js +0 -304
- package/dist/notification-BnBgxjF-.js.map +0 -1
- package/dist/notification-CZFEhWxc.cjs +0 -23
- package/dist/notification-CZFEhWxc.cjs.map +0 -1
- package/dist/option-BrxCVwSx.cjs +0 -43
- package/dist/option-BrxCVwSx.cjs.map +0 -1
- package/dist/option-DBO8xZwd.js +0 -97
- package/dist/option-DBO8xZwd.js.map +0 -1
- package/dist/overlay-stack-DQey9Qph.cjs.map +0 -1
- package/dist/overlay-stack-DT1SdaGW.js.map +0 -1
- package/dist/progress-Db2e4_Zd.cjs +0 -51
- package/dist/progress-Db2e4_Zd.cjs.map +0 -1
- package/dist/progress-DeiHxXo7.js +0 -128
- package/dist/progress-DeiHxXo7.js.map +0 -1
- package/dist/provide-C1aQhxYo.js +0 -107
- package/dist/provide-C1aQhxYo.js.map +0 -1
- package/dist/provide-DHnhQtCH.cjs +0 -1
- package/dist/provide-DHnhQtCH.cjs.map +0 -1
- package/dist/radio-group-Cspwd-Vw.cjs +0 -40
- package/dist/radio-group-Cspwd-Vw.cjs.map +0 -1
- package/dist/radio-group-zSO0AkJf.js +0 -105
- package/dist/radio-group-zSO0AkJf.js.map +0 -1
- package/dist/reduced-motion-D-L12p7G.js.map +0 -1
- package/dist/reduced-motion-Ds05GPyz.cjs.map +0 -1
- package/dist/rxjs-utils-BSjmI9-Q.js.map +0 -1
- package/dist/rxjs-utils-DCsfzeap.cjs.map +0 -1
- package/dist/scroll-QMCmbbDv.cjs +0 -26
- package/dist/scroll-QMCmbbDv.cjs.map +0 -1
- package/dist/scroll-cBDzye64.js +0 -112
- package/dist/scroll-cBDzye64.js.map +0 -1
- package/dist/search-C4dFHYbX.js.map +0 -1
- package/dist/search-Ds8tt7Et.cjs.map +0 -1
- package/dist/select-Ct37l3lg.cjs +0 -56
- package/dist/select-Ct37l3lg.cjs.map +0 -1
- package/dist/select-c6HbWvKP.js +0 -305
- package/dist/select-c6HbWvKP.js.map +0 -1
- package/dist/sheet-BMXcUiIm.js +0 -168
- package/dist/sheet-BMXcUiIm.js.map +0 -1
- package/dist/sheet-CQec-bCV.cjs +0 -35
- package/dist/sheet-CQec-bCV.cjs.map +0 -1
- package/dist/sheet.service-BcPV3Du4.js +0 -86
- package/dist/sheet.service-BcPV3Du4.js.map +0 -1
- package/dist/sheet.service-Dumvr1HT.cjs +0 -1
- package/dist/sheet.service-Dumvr1HT.cjs.map +0 -1
- package/dist/sound.service-Bu3EQLv2.cjs +0 -1
- package/dist/sound.service-Bu3EQLv2.cjs.map +0 -1
- package/dist/sound.service-m3BrSfuH.js +0 -2353
- package/dist/sound.service-m3BrSfuH.js.map +0 -1
- package/dist/src-BLngW2bl.js +0 -1244
- package/dist/src-BLngW2bl.js.map +0 -1
- package/dist/src-BtQVyqMy.cjs +0 -269
- package/dist/src-BtQVyqMy.cjs.map +0 -1
- package/dist/store-CorvD3bT.cjs.map +0 -1
- package/dist/store-DYqDLAvT.js.map +0 -1
- package/dist/surface-BjKZoJxK.cjs +0 -7
- package/dist/surface-BjKZoJxK.cjs.map +0 -1
- package/dist/surface-pK8hME5c.js +0 -21
- package/dist/surface-pK8hME5c.js.map +0 -1
- package/dist/surface.mixin-C5sDI1-_.cjs +0 -297
- package/dist/surface.mixin-C5sDI1-_.cjs.map +0 -1
- package/dist/surface.mixin-CBNRpJum.js +0 -320
- package/dist/surface.mixin-CBNRpJum.js.map +0 -1
- package/dist/table-BXIHX9h4.js +0 -631
- package/dist/table-BXIHX9h4.js.map +0 -1
- package/dist/table-CiqgZzSd.cjs +0 -63
- package/dist/table-CiqgZzSd.cjs.map +0 -1
- package/dist/tabs-CKa-W4qA.cjs +0 -31
- package/dist/tabs-CKa-W4qA.cjs.map +0 -1
- package/dist/tabs-nbV5eblZ.js +0 -125
- package/dist/tabs-nbV5eblZ.js.map +0 -1
- package/dist/tailwind.mixin-BCJOOX1_.js +0 -225
- package/dist/tailwind.mixin-BCJOOX1_.js.map +0 -1
- package/dist/tailwind.mixin-BF1Huas7.cjs +0 -2
- package/dist/tailwind.mixin-BF1Huas7.cjs.map +0 -1
- package/dist/textarea-Cp1ZE60O.cjs +0 -35
- package/dist/textarea-Cp1ZE60O.cjs.map +0 -1
- package/dist/textarea-D7q8exMg.js +0 -195
- package/dist/textarea-D7q8exMg.js.map +0 -1
- package/dist/theme-Da4SPq9X.cjs +0 -181
- package/dist/theme-Da4SPq9X.cjs.map +0 -1
- package/dist/theme-_VPV6Bxh.js +0 -4121
- package/dist/theme-_VPV6Bxh.js.map +0 -1
- package/dist/theme-button--sX8A-m1.js +0 -19
- package/dist/theme-button--sX8A-m1.js.map +0 -1
- package/dist/theme-button-Ci8VQ7KW.cjs +0 -8
- package/dist/theme-button-Ci8VQ7KW.cjs.map +0 -1
- package/dist/theme.events-Cv7N4Toe.js.map +0 -1
- package/dist/theme.events-DM4H5F2d.cjs.map +0 -1
- package/dist/theme.interface-CXloMUCw.js.map +0 -1
- package/dist/theme.interface-Da23QAYb.cjs.map +0 -1
- package/dist/theme.service-C_tjlqgy.cjs +0 -1
- package/dist/theme.service-C_tjlqgy.cjs.map +0 -1
- package/dist/theme.service-D9lEas89.js +0 -108
- package/dist/theme.service-D9lEas89.js.map +0 -1
- package/dist/tslib.es6-D7BIeDVB.cjs.map +0 -1
- package/dist/tslib.es6-ErZEp3OO.js.map +0 -1
- package/dist/typewriter-B2TnHPjw.cjs +0 -123
- package/dist/typewriter-B2TnHPjw.cjs.map +0 -1
- package/dist/typewriter-BrZNa8T-.js +0 -700
- package/dist/typewriter-BrZNa8T-.js.map +0 -1
- package/dist/utils-BcaKtQuA.cjs +0 -1
- package/dist/utils-BcaKtQuA.cjs.map +0 -1
- package/dist/utils-CoU7M2YS.js +0 -259
- package/dist/utils-CoU7M2YS.js.map +0 -1
- package/dist/window-CM1ycigo.js +0 -548
- package/dist/window-CM1ycigo.js.map +0 -1
- package/dist/window-Uii13x_r.cjs +0 -59
- package/dist/window-Uii13x_r.cjs.map +0 -1
- package/src/form/form-v2.ts +0 -268
- package/src/layout/v2/grid.ts +0 -93
- package/src/notification/outlet.ts +0 -16
- package/src/store/immer-integration.ts +0 -99
- package/src/tooltip/tooltip.ts +0 -216
- /package/dist/{animation-CO_Csq84.cjs → animation-Bcwh107v.cjs} +0 -0
- /package/dist/{animation-BK-8BwY8.js → animation-CXKSuUoE.js} +0 -0
- /package/dist/{tslib.es6-ErZEp3OO.js → decorate-D_utPUsC.js} +0 -0
- /package/dist/{tslib.es6-D7BIeDVB.cjs → decorate-F9CuyeHg.cjs} +0 -0
- /package/dist/{flow-CUj0fDT_.js → flow-CqgDEIqK.js} +0 -0
- /package/dist/{flow-Bbwn6dRN.cjs → flow-DSu4PLt1.cjs} +0 -0
- /package/dist/{hashContent-DaeGmY-p.cjs → hashContent-kKvXKFa9.cjs} +0 -0
- /package/dist/{hashContent-DYM21p6t.js → hashContent-nD2uWwi2.js} +0 -0
- /package/dist/{intersection-CZpaIHeT.cjs → intersection-D1v1UCVv.cjs} +0 -0
- /package/dist/{intersection-BPLpqYEd.js → intersection-LfEsy29T.js} +0 -0
- /package/dist/{overlay-stack-DQey9Qph.cjs → overlay-stack-CEYGD9T1.cjs} +0 -0
- /package/dist/{overlay-stack-DT1SdaGW.js → overlay-stack-Ca4EK2Mu.js} +0 -0
- /package/dist/{reduced-motion-D-L12p7G.js → reduced-motion-B83yZbcO.js} +0 -0
- /package/dist/{reduced-motion-Ds05GPyz.cjs → reduced-motion-DR32yKEO.cjs} +0 -0
- /package/dist/{rxjs-utils-BSjmI9-Q.js → rxjs-utils-Bldch1RO.js} +0 -0
- /package/dist/{rxjs-utils-DCsfzeap.cjs → rxjs-utils-hAgKC7vk.cjs} +0 -0
- /package/dist/{search-C4dFHYbX.js → search-BlGJ6uJv.js} +0 -0
- /package/dist/{search-Ds8tt7Et.cjs → search-C8eAOzBm.cjs} +0 -0
- /package/{ai → dist/skills}/animation.md +0 -0
- /package/{ai → dist/skills}/area.md +0 -0
- /package/{ai → dist/skills}/audio.md +0 -0
- /package/{ai → dist/skills}/autocomplete.md +0 -0
- /package/{ai → dist/skills}/avatar.md +0 -0
- /package/{ai → dist/skills}/badge.md +0 -0
- /package/{ai → dist/skills}/boat.md +0 -0
- /package/{ai → dist/skills}/busy.md +0 -0
- /package/{ai → dist/skills}/button.md +0 -0
- /package/{ai → dist/skills}/card.md +0 -0
- /package/{ai → dist/skills}/charts.md +0 -0
- /package/{ai → dist/skills}/checkbox.md +0 -0
- /package/{ai → dist/skills}/chips.md +0 -0
- /package/{ai → dist/skills}/code-highlight.md +0 -0
- /package/{ai → dist/skills}/connectivity.md +0 -0
- /package/{ai → dist/skills}/content-drawer.md +0 -0
- /package/{ai → dist/skills}/date-range-inline.md +0 -0
- /package/{ai → dist/skills}/date-range.md +0 -0
- /package/{ai → dist/skills}/delay.md +0 -0
- /package/{ai → dist/skills}/details.md +0 -0
- /package/{ai → dist/skills}/dialog.md +0 -0
- /package/{ai → dist/skills}/directives.md +0 -0
- /package/{ai → dist/skills}/discovery.md +0 -0
- /package/{ai → dist/skills}/divider.md +0 -0
- /package/{ai → dist/skills}/dropdown.md +0 -0
- /package/{ai → dist/skills}/expand.md +0 -0
- /package/{ai → dist/skills}/extra.md +0 -0
- /package/{ai → dist/skills}/float.md +0 -0
- /package/{ai → dist/skills}/form.md +0 -0
- /package/{ai → dist/skills}/icons.md +0 -0
- /package/{ai → dist/skills}/iframe.md +0 -0
- /package/{ai → dist/skills}/input.md +0 -0
- /package/{ai → dist/skills}/json.md +0 -0
- /package/{ai → dist/skills}/layout.md +0 -0
- /package/{ai → dist/skills}/lightbox.md +0 -0
- /package/{ai → dist/skills}/list.md +0 -0
- /package/{ai → dist/skills}/mailbox.md +0 -0
- /package/{ai → dist/skills}/map.md +0 -0
- /package/{ai → dist/skills}/menu.md +0 -0
- /package/{ai → dist/skills}/mixins.md +0 -0
- /package/{ai → dist/skills}/nav-drawer.md +0 -0
- /package/{ai → dist/skills}/navigation-bar.md +0 -0
- /package/{ai → dist/skills}/navigation-rail.md +0 -0
- /package/{ai → dist/skills}/notification.md +0 -0
- /package/{ai → dist/skills}/option.md +0 -0
- /package/{ai → dist/skills}/page.md +0 -0
- /package/{ai → dist/skills}/progress.md +0 -0
- /package/{ai → dist/skills}/qr-scanner.md +0 -0
- /package/{ai → dist/skills}/radio-group.md +0 -0
- /package/{ai → dist/skills}/range.md +0 -0
- /package/{ai → dist/skills}/rxjs-utils.md +0 -0
- /package/dist/{ai → skills/schmancy}/animation.md +0 -0
- /package/dist/{ai → skills/schmancy}/area.md +0 -0
- /package/dist/{ai → skills/schmancy}/audio.md +0 -0
- /package/dist/{ai → skills/schmancy}/autocomplete.md +0 -0
- /package/dist/{ai → skills/schmancy}/avatar.md +0 -0
- /package/dist/{ai → skills/schmancy}/badge.md +0 -0
- /package/dist/{ai → skills/schmancy}/boat.md +0 -0
- /package/dist/{ai → skills/schmancy}/busy.md +0 -0
- /package/dist/{ai → skills/schmancy}/button.md +0 -0
- /package/dist/{ai → skills/schmancy}/card.md +0 -0
- /package/dist/{ai → skills/schmancy}/charts.md +0 -0
- /package/dist/{ai → skills/schmancy}/checkbox.md +0 -0
- /package/dist/{ai → skills/schmancy}/chips.md +0 -0
- /package/dist/{ai → skills/schmancy}/code-highlight.md +0 -0
- /package/dist/{ai → skills/schmancy}/connectivity.md +0 -0
- /package/dist/{ai → skills/schmancy}/content-drawer.md +0 -0
- /package/dist/{ai → skills/schmancy}/date-range-inline.md +0 -0
- /package/dist/{ai → skills/schmancy}/date-range.md +0 -0
- /package/dist/{ai → skills/schmancy}/delay.md +0 -0
- /package/dist/{ai → skills/schmancy}/details.md +0 -0
- /package/dist/{ai → skills/schmancy}/dialog.md +0 -0
- /package/dist/{ai → skills/schmancy}/directives.md +0 -0
- /package/dist/{ai → skills/schmancy}/discovery.md +0 -0
- /package/dist/{ai → skills/schmancy}/divider.md +0 -0
- /package/dist/{ai → skills/schmancy}/dropdown.md +0 -0
- /package/dist/{ai → skills/schmancy}/expand.md +0 -0
- /package/dist/{ai → skills/schmancy}/extra.md +0 -0
- /package/dist/{ai → skills/schmancy}/float.md +0 -0
- /package/dist/{ai → skills/schmancy}/form.md +0 -0
- /package/dist/{ai → skills/schmancy}/icons.md +0 -0
- /package/dist/{ai → skills/schmancy}/iframe.md +0 -0
- /package/dist/{ai → skills/schmancy}/input.md +0 -0
- /package/dist/{ai → skills/schmancy}/json.md +0 -0
- /package/dist/{ai → skills/schmancy}/layout.md +0 -0
- /package/dist/{ai → skills/schmancy}/lightbox.md +0 -0
- /package/dist/{ai → skills/schmancy}/list.md +0 -0
- /package/dist/{ai → skills/schmancy}/mailbox.md +0 -0
- /package/dist/{ai → skills/schmancy}/map.md +0 -0
- /package/dist/{ai → skills/schmancy}/menu.md +0 -0
- /package/dist/{ai → skills/schmancy}/mixins.md +0 -0
- /package/dist/{ai → skills/schmancy}/nav-drawer.md +0 -0
- /package/dist/{ai → skills/schmancy}/navigation-bar.md +0 -0
- /package/dist/{ai → skills/schmancy}/navigation-rail.md +0 -0
- /package/dist/{ai → skills/schmancy}/notification.md +0 -0
- /package/dist/{ai → skills/schmancy}/option.md +0 -0
- /package/dist/{ai → skills/schmancy}/page.md +0 -0
- /package/dist/{ai → skills/schmancy}/progress.md +0 -0
- /package/dist/{ai → skills/schmancy}/qr-scanner.md +0 -0
- /package/dist/{ai → skills/schmancy}/radio-group.md +0 -0
- /package/dist/{ai → skills/schmancy}/range.md +0 -0
- /package/dist/{ai → skills/schmancy}/rxjs-utils.md +0 -0
- /package/{ai → dist/skills/schmancy}/select.md +0 -0
- /package/{ai → dist/skills/schmancy}/sheet.md +0 -0
- /package/{ai → dist/skills/schmancy}/slider.md +0 -0
- /package/{ai → dist/skills/schmancy}/steps.md +0 -0
- /package/{ai → dist/skills/schmancy}/store.md +0 -0
- /package/{ai → dist/skills/schmancy}/surface.md +0 -0
- /package/{ai → dist/skills/schmancy}/table.md +0 -0
- /package/{ai → dist/skills/schmancy}/tabs.md +0 -0
- /package/{ai → dist/skills/schmancy}/teleport.md +0 -0
- /package/{ai → dist/skills/schmancy}/textarea.md +0 -0
- /package/{ai → dist/skills/schmancy}/theme-button.md +0 -0
- /package/{ai → dist/skills/schmancy}/theme.md +0 -0
- /package/{ai → dist/skills/schmancy}/tree.md +0 -0
- /package/{ai → dist/skills/schmancy}/typewriter.md +0 -0
- /package/{ai → dist/skills/schmancy}/typography.md +0 -0
- /package/{ai → dist/skills/schmancy}/utils.md +0 -0
- /package/{ai → dist/skills/schmancy}/window.md +0 -0
- /package/dist/{ai → skills}/select.md +0 -0
- /package/dist/{ai → skills}/sheet.md +0 -0
- /package/dist/{ai → skills}/slider.md +0 -0
- /package/dist/{ai → skills}/steps.md +0 -0
- /package/dist/{ai → skills}/store.md +0 -0
- /package/dist/{ai → skills}/surface.md +0 -0
- /package/dist/{ai → skills}/table.md +0 -0
- /package/dist/{ai → skills}/tabs.md +0 -0
- /package/dist/{ai → skills}/teleport.md +0 -0
- /package/dist/{ai → skills}/textarea.md +0 -0
- /package/dist/{ai → skills}/theme-button.md +0 -0
- /package/dist/{ai → skills}/theme.md +0 -0
- /package/dist/{ai → skills}/tree.md +0 -0
- /package/dist/{ai → skills}/typewriter.md +0 -0
- /package/dist/{ai → skills}/typography.md +0 -0
- /package/dist/{ai → skills}/utils.md +0 -0
- /package/dist/{ai → skills}/window.md +0 -0
- /package/dist/{store-DYqDLAvT.js → store-Bmj6rvZY.js} +0 -0
- /package/dist/{store-CorvD3bT.cjs → store-CO4nJyGj.cjs} +0 -0
- /package/dist/{theme.events-Cv7N4Toe.js → theme.events-Bw3mYjUA.js} +0 -0
- /package/dist/{theme.events-DM4H5F2d.cjs → theme.events-EznKK2Y0.cjs} +0 -0
- /package/dist/{theme.interface-Da23QAYb.cjs → theme.interface-CM26m9te.cjs} +0 -0
- /package/dist/{theme.interface-CXloMUCw.js → theme.interface-FAUIgbIq.js} +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# schmancy-skeleton
|
|
2
|
+
|
|
3
|
+
> Placeholder shimmer surface shown while content loads. Reduced-motion-aware.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-skeleton width="12rem" height="1rem"></schmancy-skeleton>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Properties
|
|
11
|
+
| Property | Type | Default | Description |
|
|
12
|
+
|----------|------|---------|-------------|
|
|
13
|
+
| shape | `'rect'\|'circle'\|'text'` | `'rect'` | Visual shape. `circle` forces 50% border radius; `text` defaults height to `1em`. |
|
|
14
|
+
| width | string (CSS length) | `100%` | Any CSS length (e.g. `12rem`, `50%`). |
|
|
15
|
+
| height | string (CSS length) | `1rem` (or `1em` when `shape=text`) | Any CSS length. |
|
|
16
|
+
| radius | string (CSS length) | `0.25rem` | Corner radius; ignored when `shape=circle`. |
|
|
17
|
+
|
|
18
|
+
## Parts
|
|
19
|
+
| Part | Description |
|
|
20
|
+
|------|-------------|
|
|
21
|
+
| surface | The shimmering inner surface. |
|
|
22
|
+
|
|
23
|
+
## Accessibility
|
|
24
|
+
The host sets `role="status" aria-busy="true" aria-label="Loading"` on connection, so assistive tech announces the loading region. Under `prefers-reduced-motion: reduce`, the shimmer animation is removed and a flat surface color is used.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
```html
|
|
28
|
+
<!-- Single line of text -->
|
|
29
|
+
<schmancy-skeleton shape="text" width="60%"></schmancy-skeleton>
|
|
30
|
+
|
|
31
|
+
<!-- Avatar placeholder -->
|
|
32
|
+
<schmancy-skeleton shape="circle" width="48px" height="48px"></schmancy-skeleton>
|
|
33
|
+
|
|
34
|
+
<!-- Card placeholder -->
|
|
35
|
+
<schmancy-card>
|
|
36
|
+
<schmancy-skeleton width="100%" height="160px" radius="0.5rem"></schmancy-skeleton>
|
|
37
|
+
<schmancy-skeleton shape="text" width="80%"></schmancy-skeleton>
|
|
38
|
+
<schmancy-skeleton shape="text" width="40%"></schmancy-skeleton>
|
|
39
|
+
</schmancy-card>
|
|
40
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# schmancy-slider / schmancy-slide
|
|
2
|
+
|
|
3
|
+
> Horizontal snap-scrolling carousel with optional arrow controls.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-slider show-arrows>
|
|
8
|
+
<schmancy-slide>
|
|
9
|
+
<img src="a.jpg" />
|
|
10
|
+
</schmancy-slide>
|
|
11
|
+
<schmancy-slide>
|
|
12
|
+
<div class="p-8">Second slide</div>
|
|
13
|
+
</schmancy-slide>
|
|
14
|
+
<schmancy-slide>
|
|
15
|
+
<div class="p-8">Third slide</div>
|
|
16
|
+
</schmancy-slide>
|
|
17
|
+
</schmancy-slider>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## schmancy-slider Properties
|
|
21
|
+
| Property | Type | Default | Description |
|
|
22
|
+
|----------|------|---------|-------------|
|
|
23
|
+
| `showArrows` | boolean | `true` | Render prev/next navigation buttons |
|
|
24
|
+
|
|
25
|
+
## Events
|
|
26
|
+
| Event | Payload | When |
|
|
27
|
+
|-------|---------|------|
|
|
28
|
+
| `slide-changed` | `{ index: number }` | Centered slide changes after scroll settles |
|
|
29
|
+
|
|
30
|
+
## Behavior
|
|
31
|
+
- Each `schmancy-slide` is sized to `flex: 0 0 100%` of the slider.
|
|
32
|
+
- `scroll-snap-type: x mandatory` — scroll always lands on a slide.
|
|
33
|
+
- Scrollbars hidden across browsers.
|
|
34
|
+
- Scroll events throttled to 100ms for stable index tracking.
|
|
35
|
+
- Arrow buttons scroll to previous/next slide when `show-arrows` is true.
|
|
36
|
+
|
|
37
|
+
## Example — programmatic control
|
|
38
|
+
```typescript
|
|
39
|
+
const slider = this.renderRoot.querySelector('schmancy-slider')
|
|
40
|
+
slider?.addEventListener('slide-changed', (e: CustomEvent<{ index: number }>) => {
|
|
41
|
+
this.activeIndex = e.detail.index
|
|
42
|
+
})
|
|
43
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# schmancy-splash-screen
|
|
2
|
+
|
|
3
|
+
> Full-viewport splash overlay that fades out once ready; consumer supplies the visuals.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-splash-screen min-duration="1200">
|
|
8
|
+
<my-logo slot="splash"></my-logo>
|
|
9
|
+
<my-app></my-app>
|
|
10
|
+
</schmancy-splash-screen>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The `splash` slot holds the overlay content (logo, animation, whatever). The default slot is the real app, revealed after the splash dismisses. The overlay is empty by default — no built-in spinner, no hidden dependencies. Bring your own visuals.
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
| Property | Type | Default | Description |
|
|
17
|
+
|----------|------|---------|-------------|
|
|
18
|
+
| minDuration | number | `1500` | Minimum ms the splash stays visible (prevents flash on fast loads). |
|
|
19
|
+
| auto | boolean | `false` | When true, dismiss on the `minDuration` timer alone. When false, also wait for a `ready` signal. |
|
|
20
|
+
| initiallyHidden | boolean | `false` | When true, the splash starts hidden. Use with `show()` for imperative control (e.g. between route transitions). |
|
|
21
|
+
|
|
22
|
+
## Methods
|
|
23
|
+
| Method | Description |
|
|
24
|
+
|--------|-------------|
|
|
25
|
+
| `ready()` | Signal that the app is ready — dismisses once `minDuration` has also elapsed. |
|
|
26
|
+
| `show()` | Force the splash back on (e.g. re-show between route transitions). |
|
|
27
|
+
|
|
28
|
+
## Events
|
|
29
|
+
| Event | Detail | Description |
|
|
30
|
+
|-------|--------|-------------|
|
|
31
|
+
| schmancy-splash-done | `void` | Fires when the splash finishes dismissing. |
|
|
32
|
+
|
|
33
|
+
## CSS custom properties
|
|
34
|
+
| Property | Default | Description |
|
|
35
|
+
|----------|---------|-------------|
|
|
36
|
+
| `--schmancy-splash-background` | `var(--schmancy-sys-color-surface-containerLowest, #000)` | Splash layer background. |
|
|
37
|
+
| `--schmancy-splash-transition` | `500ms` | Fade duration. |
|
|
38
|
+
|
|
39
|
+
## Examples
|
|
40
|
+
```html
|
|
41
|
+
<!-- Wait for explicit ready signal (default) -->
|
|
42
|
+
<schmancy-splash-screen min-duration="800">
|
|
43
|
+
<img slot="splash" src="/logo.svg" />
|
|
44
|
+
<main-app></main-app>
|
|
45
|
+
</schmancy-splash-screen>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// Imperative: signal ready when data loads
|
|
50
|
+
const splash = document.querySelector('schmancy-splash-screen')!
|
|
51
|
+
dataStore.loaded$.subscribe(() => splash.ready())
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```html
|
|
55
|
+
<!-- Auto mode: dismisses purely on the timer -->
|
|
56
|
+
<schmancy-splash-screen min-duration="1200" auto>
|
|
57
|
+
<schmancy-typography type="display" token="lg" slot="splash">Welcome</schmancy-typography>
|
|
58
|
+
<app-shell></app-shell>
|
|
59
|
+
</schmancy-splash-screen>
|
|
60
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# schmancy-steps-container / schmancy-step
|
|
2
|
+
|
|
3
|
+
> Vertical stepper with collapsible steps, completion state, and navigation.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-steps-container currentStep="1" @change=${(e) => handleStep(e.detail.value)}>
|
|
8
|
+
<schmancy-step position="1" title="Account" description="Create your account">
|
|
9
|
+
<schmancy-input label="Email" required></schmancy-input>
|
|
10
|
+
</schmancy-step>
|
|
11
|
+
<schmancy-step position="2" title="Profile" description="Set up profile">
|
|
12
|
+
<schmancy-input label="Name" required></schmancy-input>
|
|
13
|
+
</schmancy-step>
|
|
14
|
+
</schmancy-steps-container>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Properties (schmancy-steps-container)
|
|
18
|
+
| Property | Type | Default | Description |
|
|
19
|
+
|----------|------|---------|-------------|
|
|
20
|
+
| currentStep | number | `1` | Currently active step (1-based) |
|
|
21
|
+
| gap | number | `4` | Gap between steps (Tailwind scale) |
|
|
22
|
+
|
|
23
|
+
## Properties (schmancy-step)
|
|
24
|
+
| Property | Type | Default | Description |
|
|
25
|
+
|----------|------|---------|-------------|
|
|
26
|
+
| position | number | `1` | Step position (1-based) |
|
|
27
|
+
| title | string | `''` | Step title |
|
|
28
|
+
| description | string | `''` | Step description |
|
|
29
|
+
| completed | boolean | `false` | Explicitly mark as complete |
|
|
30
|
+
| lockBack | boolean | `false` | Prevent navigating to previous steps |
|
|
31
|
+
|
|
32
|
+
## Events (schmancy-steps-container)
|
|
33
|
+
| Event | Detail | Description |
|
|
34
|
+
|-------|--------|-------------|
|
|
35
|
+
| change | `{ value: number }` | When current step changes |
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
```html
|
|
39
|
+
<!-- With locked steps -->
|
|
40
|
+
<schmancy-steps-container currentStep="2">
|
|
41
|
+
<schmancy-step position="1" title="Step 1" completed lockBack>
|
|
42
|
+
<!-- Already completed, cannot go back -->
|
|
43
|
+
</schmancy-step>
|
|
44
|
+
<schmancy-step position="2" title="Step 2">
|
|
45
|
+
<p>Current step content</p>
|
|
46
|
+
</schmancy-step>
|
|
47
|
+
<schmancy-step position="3" title="Step 3">
|
|
48
|
+
<!-- Not yet reachable -->
|
|
49
|
+
</schmancy-step>
|
|
50
|
+
</schmancy-steps-container>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Only the active step renders its slotted content. Completed steps show a checkmark. Active step expands with `flex: 1`.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Store — Context System
|
|
2
|
+
|
|
3
|
+
Reactive state management: `createContext`, `@select`, `@selectItem`.
|
|
4
|
+
|
|
5
|
+
## Creating a context
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { createContext } from '@mhmo91/schmancy'
|
|
9
|
+
|
|
10
|
+
// Object
|
|
11
|
+
const userContext = createContext<User>(new User(), 'local', 'user')
|
|
12
|
+
|
|
13
|
+
// Map (collection)
|
|
14
|
+
const itemsContext = createContext<Map<string, Item>>(new Map(), 'indexeddb', 'items')
|
|
15
|
+
|
|
16
|
+
// Array
|
|
17
|
+
const tagsContext = createContext<string[]>([], 'memory', 'tags')
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Signature: `createContext(initial, storage, key)`.
|
|
21
|
+
|
|
22
|
+
## Storage backends
|
|
23
|
+
|
|
24
|
+
| Mode | Backing | Survives refresh | Survives tab close | Capacity |
|
|
25
|
+
|------|---------|------------------|--------------------|----------|
|
|
26
|
+
| `'memory'` | JS heap | ❌ | ❌ | RAM |
|
|
27
|
+
| `'session'` | `sessionStorage` | ✅ | ❌ (per-tab) | ~5 MB |
|
|
28
|
+
| `'local'` | `localStorage` | ✅ | ✅ | ~5 MB |
|
|
29
|
+
| `'indexeddb'` | IndexedDB | ✅ | ✅ | GB |
|
|
30
|
+
|
|
31
|
+
Pick by data size and lifetime:
|
|
32
|
+
- User prefs, long-lived drafts → `'local'`
|
|
33
|
+
- Per-tab ephemeral (cart, wizard) → `'session'`
|
|
34
|
+
- Fetched from API, regenerable → `'memory'`
|
|
35
|
+
- Collections with >100 entries you want cached → `'indexeddb'`
|
|
36
|
+
|
|
37
|
+
## Reading with `@select`
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import { select } from '@mhmo91/schmancy'
|
|
41
|
+
|
|
42
|
+
@customElement('my-component')
|
|
43
|
+
class MyComponent extends $LitElement() {
|
|
44
|
+
@select(userContext) user!: User
|
|
45
|
+
|
|
46
|
+
// Selector narrows the dependency
|
|
47
|
+
@select(itemsContext, m => m.size) count!: number
|
|
48
|
+
|
|
49
|
+
@select(itemsContext) items!: Map<string, Item>
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`@select` options:
|
|
54
|
+
- `required` (default `true`) — wait for `.ready` before `connectedCallback` completes.
|
|
55
|
+
- `updateOnly` — call `requestUpdate` without assigning.
|
|
56
|
+
- `deepClone` — `structuredClone` the value.
|
|
57
|
+
- `debug` — log every emission.
|
|
58
|
+
|
|
59
|
+
## `@selectItem`
|
|
60
|
+
|
|
61
|
+
Pick one entry from a collection context, keyed off a component property:
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
@selectItem(itemsContext, component => component.itemId)
|
|
65
|
+
item!: Item | undefined
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Writing
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// Object
|
|
72
|
+
userContext.set({ name: 'Alice' })
|
|
73
|
+
userContext.set({ ...userContext.value, name: 'Bob' })
|
|
74
|
+
|
|
75
|
+
// Map
|
|
76
|
+
itemsContext.set('id-1', item)
|
|
77
|
+
itemsContext.delete('id-1')
|
|
78
|
+
itemsContext.replace(newMap)
|
|
79
|
+
|
|
80
|
+
// Array
|
|
81
|
+
tagsContext.push('new')
|
|
82
|
+
tagsContext.replace(['a', 'b'])
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Observable API
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
userContext.$.pipe(
|
|
89
|
+
filter(() => userContext.ready),
|
|
90
|
+
takeUntil(this.disconnecting),
|
|
91
|
+
).subscribe(user => { /* ... */ })
|
|
92
|
+
|
|
93
|
+
userContext.value // synchronous snapshot
|
|
94
|
+
userContext.ready // true once the backing store has loaded
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Gate subscriptions on `.ready` — `'local'` / `'session'` / `'indexeddb'` contexts emit their default value before the real stored value hydrates.
|
|
98
|
+
|
|
99
|
+
## Dynamic contexts
|
|
100
|
+
|
|
101
|
+
For per-instance state with persistence, create the context inside `connectedCallback` with an instance-scoped key:
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
private draftCtx: IStore<{ text: string }> | null = null
|
|
105
|
+
|
|
106
|
+
connectedCallback() {
|
|
107
|
+
super.connectedCallback()
|
|
108
|
+
if (this.draftKey) {
|
|
109
|
+
this.draftCtx = createContext<{ text: string }>(
|
|
110
|
+
{ text: '' },
|
|
111
|
+
'session',
|
|
112
|
+
this.draftKey,
|
|
113
|
+
)
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Rules
|
|
119
|
+
|
|
120
|
+
- Declare contexts at module scope (except dynamic per-instance ones).
|
|
121
|
+
- Name the storage key even for `'memory'` contexts — it helps debugging.
|
|
122
|
+
- Keep each context single-purpose. One write shouldn't invalidate unrelated readers.
|
|
123
|
+
- Only the owning component writes. Others read via `@select`.
|
|
124
|
+
- Every subscription uses `takeUntil(this.disconnecting)`.
|
|
125
|
+
- Gate on `.ready` before async cascading work.
|
|
126
|
+
- Don't store Promises, Observables, functions, or class instances in persistent contexts.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Surface
|
|
2
|
+
|
|
3
|
+
> Glass depth container. Every surface is translucent — depth comes from blur intensity.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<schmancy-surface type="subtle" rounded="all" fill="all">
|
|
9
|
+
Content on frosted glass
|
|
10
|
+
</schmancy-surface>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Properties
|
|
14
|
+
|
|
15
|
+
| Property | Type | Default | Description |
|
|
16
|
+
|----------|------|---------|-------------|
|
|
17
|
+
| `type` | string | `'subtle'` | Glass depth level (see below) |
|
|
18
|
+
| `fill` | string | `'auto'` | `'all'`, `'width'`, `'height'`, `'auto'` |
|
|
19
|
+
| `rounded` | string | `'none'` | `'none'`, `'top'`, `'bottom'`, `'left'`, `'right'`, `'all'` |
|
|
20
|
+
| `elevation` | number | `0` | Glow intensity 0-5 (primary-colored glow, not shadow) |
|
|
21
|
+
| `clickable` | boolean | `false` | Adds luminous hover + spring press |
|
|
22
|
+
|
|
23
|
+
## Surface Types
|
|
24
|
+
|
|
25
|
+
### Structural (glass depth model)
|
|
26
|
+
|
|
27
|
+
| Type | Opacity | Blur | Use for |
|
|
28
|
+
|------|---------|------|---------|
|
|
29
|
+
| `solid` | 92% | — | Dense glass ground layer, highest readability |
|
|
30
|
+
| `subtle` | 78% | 8px | Frosted panels, default containers |
|
|
31
|
+
| `glass` | 55% | 16px | Dialogs, dropdowns, overlays |
|
|
32
|
+
| `luminous` | 42% | 20px | Hero panels, featured content |
|
|
33
|
+
|
|
34
|
+
### Semantic (tinted glass)
|
|
35
|
+
`primary`, `secondary`, `tertiary`, `error`, `success`, `warning`, `info`
|
|
36
|
+
Each applies a translucent tint of its color + 4px blur.
|
|
37
|
+
|
|
38
|
+
### Utility
|
|
39
|
+
- `transparent` — no background
|
|
40
|
+
- `outlined` — border only
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
```html
|
|
45
|
+
<!-- Page background -->
|
|
46
|
+
<schmancy-surface type="solid" fill="all" rounded="none">
|
|
47
|
+
<slot></slot>
|
|
48
|
+
</schmancy-surface>
|
|
49
|
+
|
|
50
|
+
<!-- Card-like container -->
|
|
51
|
+
<schmancy-surface type="subtle" rounded="all" elevation="1">
|
|
52
|
+
<div class="p-4">Frosted panel with glow</div>
|
|
53
|
+
</schmancy-surface>
|
|
54
|
+
|
|
55
|
+
<!-- Dialog surface (used internally by schmancy-dialog) -->
|
|
56
|
+
<schmancy-surface type="glass" rounded="all">
|
|
57
|
+
<div class="p-6">Glass overlay content</div>
|
|
58
|
+
</schmancy-surface>
|
|
59
|
+
|
|
60
|
+
<!-- Hero panel with glow halo -->
|
|
61
|
+
<schmancy-surface type="luminous" rounded="all" elevation="3">
|
|
62
|
+
<div class="p-8">Featured content</div>
|
|
63
|
+
</schmancy-surface>
|
|
64
|
+
|
|
65
|
+
<!-- Clickable surface with spring physics -->
|
|
66
|
+
<schmancy-surface type="subtle" rounded="all" clickable @click=${handler}>
|
|
67
|
+
Hover: lift + glow. Press: spring compress.
|
|
68
|
+
</schmancy-surface>
|
|
69
|
+
|
|
70
|
+
<!-- Error state -->
|
|
71
|
+
<schmancy-surface type="error" rounded="all">
|
|
72
|
+
<div class="p-3">Something went wrong</div>
|
|
73
|
+
</schmancy-surface>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Elevation (Glow-based)
|
|
77
|
+
|
|
78
|
+
Elevation 1-5 applies a primary-colored glow underneath the surface:
|
|
79
|
+
```
|
|
80
|
+
Level 1: subtle glow (15% primary)
|
|
81
|
+
Level 5: strong glow (42% primary)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Paint Containment
|
|
85
|
+
|
|
86
|
+
`glass` and `luminous` types automatically apply `contain: content` for GPU optimization.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# schmancy-switch
|
|
2
|
+
|
|
3
|
+
> Binary on/off control. Form-associated, ARIA `role="switch"`. Use for immediate state changes; use `<schmancy-checkbox>` for form selections.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-switch name="notifications" label="Email notifications" @change=${(e) => handle(e.detail.value)}>
|
|
8
|
+
</schmancy-switch>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
| Property | Type | Default | Description |
|
|
13
|
+
|----------|------|---------|-------------|
|
|
14
|
+
| checked | boolean | `false` | Current on/off state. Reflected as attribute. |
|
|
15
|
+
| name | string | `''` | Form submission name. |
|
|
16
|
+
| value | string | `'on'` | Value submitted when checked. |
|
|
17
|
+
| label | string | `''` | ARIA label on the inner button; also used by axe. |
|
|
18
|
+
| required | boolean | `false` | Must be on for form validity. |
|
|
19
|
+
| disabled | boolean | `false` | Disables interaction. |
|
|
20
|
+
|
|
21
|
+
## Events
|
|
22
|
+
| Event | Detail | Description |
|
|
23
|
+
|-------|--------|-------------|
|
|
24
|
+
| change | `{ value: boolean }` | Fires when the state toggles (via click or Enter/Space). |
|
|
25
|
+
|
|
26
|
+
## Parts
|
|
27
|
+
| Part | Description |
|
|
28
|
+
|------|-------------|
|
|
29
|
+
| track | Background track element. |
|
|
30
|
+
| thumb | Moving thumb element. |
|
|
31
|
+
|
|
32
|
+
## States
|
|
33
|
+
| State | When |
|
|
34
|
+
|-------|------|
|
|
35
|
+
| `:state(checked)` | While the switch is on. Target via `schmancy-switch:state(checked) { … }`. |
|
|
36
|
+
|
|
37
|
+
## Form association
|
|
38
|
+
Uses `ElementInternals` — participates in `<form>` submission natively. Contributes `name=value` when checked; omitted when unchecked. `formResetCallback` restores the initial `checked` attribute. `formDisabledCallback` propagates `<fieldset disabled>`.
|
|
39
|
+
|
|
40
|
+
## Examples
|
|
41
|
+
```html
|
|
42
|
+
<!-- Inside a form -->
|
|
43
|
+
<schmancy-form>
|
|
44
|
+
<schmancy-switch name="marketing" label="Marketing emails"></schmancy-switch>
|
|
45
|
+
<schmancy-switch name="product" label="Product updates" checked></schmancy-switch>
|
|
46
|
+
<schmancy-button type="submit">Save</schmancy-button>
|
|
47
|
+
</schmancy-form>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<!-- Required toggle (must be on to submit) -->
|
|
52
|
+
<schmancy-switch name="agree" label="I agree" required></schmancy-switch>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<!-- Custom submitted value -->
|
|
57
|
+
<schmancy-switch name="mode" value="dark" label="Dark mode"></schmancy-switch>
|
|
58
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# schmancy-table
|
|
2
|
+
|
|
3
|
+
> Virtualized data table with sorting, custom column rendering, and sticky headers.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```typescript
|
|
7
|
+
html`
|
|
8
|
+
<schmancy-table
|
|
9
|
+
.columns=${columns}
|
|
10
|
+
.data=${items}
|
|
11
|
+
keyField="id"
|
|
12
|
+
cols="1fr 2fr 1fr"
|
|
13
|
+
sortable
|
|
14
|
+
@click=${(e) => selectRow(e.detail)}>
|
|
15
|
+
</schmancy-table>
|
|
16
|
+
`
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Properties
|
|
20
|
+
| Property | Type | Default | Description |
|
|
21
|
+
|----------|------|---------|-------------|
|
|
22
|
+
| columns | `TableColumn[]` | `[]` | Column definitions |
|
|
23
|
+
| data | `T[]` | `[]` | Data array |
|
|
24
|
+
| keyField | string | `'id'` | Unique key property on each item |
|
|
25
|
+
| cols | string | `'1fr'` | CSS grid-template-columns |
|
|
26
|
+
| sortable | boolean | `false` | Enable column sorting |
|
|
27
|
+
|
|
28
|
+
## TableColumn Interface
|
|
29
|
+
```typescript
|
|
30
|
+
interface TableColumn<T> {
|
|
31
|
+
name: string // Column header text
|
|
32
|
+
key?: keyof T // Data property key
|
|
33
|
+
align?: 'left' | 'right' | 'center'
|
|
34
|
+
weight?: 'normal' | 'bold'
|
|
35
|
+
render?: (item: T) => TemplateResult | string | number
|
|
36
|
+
sortable?: boolean // Per-column sort toggle
|
|
37
|
+
value?: (item: T) => any // Custom sort value function
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
| Event | Detail | Description |
|
|
43
|
+
|-------|--------|-------------|
|
|
44
|
+
| click | `{ item: T, index: number }` | Row clicked |
|
|
45
|
+
| sort-change | `{ column, direction }` | Sort state changed |
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```typescript
|
|
49
|
+
const columns = [
|
|
50
|
+
{ name: 'Name', key: 'name', sortable: true },
|
|
51
|
+
{ name: 'Status', key: 'status', render: (item) =>
|
|
52
|
+
html`<schmancy-badge color=${item.active ? 'success' : 'neutral'}>
|
|
53
|
+
${item.active ? 'Active' : 'Inactive'}
|
|
54
|
+
</schmancy-badge>` },
|
|
55
|
+
{ name: 'Created', key: 'createdAt', sortable: true,
|
|
56
|
+
value: (item) => new Date(item.createdAt).getTime() },
|
|
57
|
+
]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Uses `lit-virtualizer` for efficient rendering of large datasets. Header is sticky with glass surface.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# schmancy-tab-group / schmancy-tab
|
|
2
|
+
|
|
3
|
+
> Tab container with tab navigation and scroll-spy mode.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-tab-group activeTab="overview">
|
|
8
|
+
<schmancy-tab label="Overview" value="overview">
|
|
9
|
+
<p>Overview content</p>
|
|
10
|
+
</schmancy-tab>
|
|
11
|
+
<schmancy-tab label="Details" value="details">
|
|
12
|
+
<p>Details content</p>
|
|
13
|
+
</schmancy-tab>
|
|
14
|
+
</schmancy-tab-group>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Properties (schmancy-tab-group)
|
|
18
|
+
| Property | Type | Default | Description |
|
|
19
|
+
|----------|------|---------|-------------|
|
|
20
|
+
| activeTab | string | first tab | Currently active tab value |
|
|
21
|
+
| mode | `'tabs'\|'scroll'` | `'tabs'` | Display mode (tabs or scroll-spy) |
|
|
22
|
+
| rounded | boolean | `true` | Rounded tab bar |
|
|
23
|
+
|
|
24
|
+
## Properties (schmancy-tab)
|
|
25
|
+
| Property | Type | Default | Description |
|
|
26
|
+
|----------|------|---------|-------------|
|
|
27
|
+
| label | string | - | Tab label text |
|
|
28
|
+
| value | string | - | Unique tab identifier |
|
|
29
|
+
| active | boolean | `false` | Whether this tab is active |
|
|
30
|
+
|
|
31
|
+
## Events (schmancy-tab-group)
|
|
32
|
+
| Event | Detail | Description |
|
|
33
|
+
|-------|--------|-------------|
|
|
34
|
+
| tab-changed | string | Active tab value when changed |
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
```html
|
|
38
|
+
<!-- Scroll-spy mode (tabs follow scroll position) -->
|
|
39
|
+
<schmancy-tab-group mode="scroll">
|
|
40
|
+
<schmancy-tab label="Section 1" value="s1">
|
|
41
|
+
<div style="height: 500px">Long content</div>
|
|
42
|
+
</schmancy-tab>
|
|
43
|
+
<schmancy-tab label="Section 2" value="s2">
|
|
44
|
+
<div style="height: 500px">More content</div>
|
|
45
|
+
</schmancy-tab>
|
|
46
|
+
</schmancy-tab-group>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
In `tabs` mode, only the active tab renders content. In `scroll` mode, all tabs render and the nav highlights the visible section.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# schmancy-teleport
|
|
2
|
+
|
|
3
|
+
> Move DOM between locations with a FLIP-animated transition. Two instances sharing an `id` handshake via broadcast events — when one mounts, it finds the other and flies the content between them.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<!-- Start position -->
|
|
8
|
+
<schmancy-teleport id="hero-image">
|
|
9
|
+
<img src="portrait.jpg" alt="" />
|
|
10
|
+
</schmancy-teleport>
|
|
11
|
+
|
|
12
|
+
<!-- Later, in a different view -->
|
|
13
|
+
<schmancy-teleport id="hero-image"></schmancy-teleport>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
When the second instance mounts, the image smoothly animates from its old bounding rect to the new one.
|
|
17
|
+
|
|
18
|
+
## Properties
|
|
19
|
+
| Property | Type | Default | Description |
|
|
20
|
+
|----------|------|---------|-------------|
|
|
21
|
+
| `id` | string | **required** | Shared identifier between source and target |
|
|
22
|
+
| `uuid` | number | auto | Instance UUID for disambiguation (read-only) |
|
|
23
|
+
| `delay` | number | `0` | Delay before teleporting (ms) |
|
|
24
|
+
|
|
25
|
+
## Discovery Events
|
|
26
|
+
The service broadcasts on `window`:
|
|
27
|
+
- `FINDING_MORTIES` — "is anyone mounted with id X?"
|
|
28
|
+
- `HERE_RICKY` — instances reply with self reference
|
|
29
|
+
- `WhereAreYouRicky` / `HereMorty` — instance-to-instance handshake
|
|
30
|
+
|
|
31
|
+
Uses RxJS with a race/throwIfEmpty pattern to handle missing counterparts gracefully.
|
|
32
|
+
|
|
33
|
+
## Typical Pattern — route transitions
|
|
34
|
+
```html
|
|
35
|
+
<!-- List view -->
|
|
36
|
+
${repeat(items, item => item.id, item => html`
|
|
37
|
+
<schmancy-teleport id=${`card-${item.id}`}>
|
|
38
|
+
<schmancy-card @click=${() => router.push(`/item/${item.id}`)}>
|
|
39
|
+
<img src=${item.thumbnail} />
|
|
40
|
+
</schmancy-card>
|
|
41
|
+
</schmancy-teleport>
|
|
42
|
+
`)}
|
|
43
|
+
|
|
44
|
+
<!-- Detail view -->
|
|
45
|
+
<schmancy-teleport id=${`card-${this.params.id}`}></schmancy-teleport>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Notes
|
|
49
|
+
- Uses `watchElementRect` (ResizeObserver + scroll tracking) to keep source/target in sync.
|
|
50
|
+
- Animation uses the FLIP technique: capture first rect, invert on mount, play to final.
|
|
51
|
+
- All subscriptions clean up via `takeUntil(this.disconnecting)`.
|
|
52
|
+
- Each teleport pair must share a unique `id` string.
|
|
53
|
+
|
|
54
|
+
## See Also
|
|
55
|
+
- For programmatic teleportation from JS: import `teleportationService` from `@mhmo91/schmancy/teleport`.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# schmancy-textarea
|
|
2
|
+
|
|
3
|
+
> Multi-line text input with auto-resize and form integration.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-textarea label="Description" placeholder="Enter details..."></schmancy-textarea>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Properties
|
|
11
|
+
| Property | Type | Default | Description |
|
|
12
|
+
|----------|------|---------|-------------|
|
|
13
|
+
| value | string | `''` | Current text value |
|
|
14
|
+
| label | string | `''` | Label text above the textarea |
|
|
15
|
+
| placeholder | string | `''` | Placeholder text |
|
|
16
|
+
| name | string | auto | Form submission name |
|
|
17
|
+
| required | boolean | `false` | Whether the field is required |
|
|
18
|
+
| disabled | boolean | `false` | Whether the field is disabled |
|
|
19
|
+
| readonly | boolean | `false` | Whether the field is read-only |
|
|
20
|
+
| error | boolean | `false` | Whether the field shows an error state |
|
|
21
|
+
| hint | string | `undefined` | Hint text below the field |
|
|
22
|
+
| rows | number | `undefined` | Fixed visible rows (omit for auto-size) |
|
|
23
|
+
| cols | number | `20` | Column width |
|
|
24
|
+
| maxlength | number | `undefined` | Maximum character length |
|
|
25
|
+
| minlength | number | `undefined` | Minimum character length |
|
|
26
|
+
| autoHeight | boolean | `true` | Auto-grow height with content |
|
|
27
|
+
| fillHeight | boolean | `false` | Fill container height |
|
|
28
|
+
| resize | `'none'\|'vertical'\|'horizontal'\|'both'` | `'vertical'` | Resize handle |
|
|
29
|
+
| align | `'left'\|'center'\|'right'` | `'left'` | Text alignment |
|
|
30
|
+
| wrap | `'hard'\|'soft'` | `'soft'` | Text wrapping mode |
|
|
31
|
+
|
|
32
|
+
## Events
|
|
33
|
+
| Event | Detail | Description |
|
|
34
|
+
|-------|--------|-------------|
|
|
35
|
+
| change | `{ value: string }` | On input or native change |
|
|
36
|
+
| enter | `{ value: string }` | When Enter key is pressed |
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
```html
|
|
40
|
+
<!-- Auto-sizing textarea -->
|
|
41
|
+
<schmancy-textarea label="Notes" autoHeight></schmancy-textarea>
|
|
42
|
+
|
|
43
|
+
<!-- Fixed height, no resize -->
|
|
44
|
+
<schmancy-textarea rows="5" resize="none" placeholder="Comments..."></schmancy-textarea>
|
|
45
|
+
|
|
46
|
+
<!-- Fill container -->
|
|
47
|
+
<schmancy-textarea fillHeight label="Content"></schmancy-textarea>
|
|
48
|
+
```
|