@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,60 @@
|
|
|
1
|
+
export type SchmancySplashScreenDoneEvent = CustomEvent<void>;
|
|
2
|
+
declare const SchmancySplashScreen_base: CustomElementConstructor & import("../../mixins").Constructor<import("lit").LitElement> & import("../../mixins").Constructor<import("../../mixins").IBaseMixin>;
|
|
3
|
+
/**
|
|
4
|
+
* Full-viewport splash overlay that dismisses once a minimum duration has
|
|
5
|
+
* elapsed and (optionally) an external `ready` signal has fired. The splash
|
|
6
|
+
* fades out while the underlying app content fades in.
|
|
7
|
+
*
|
|
8
|
+
* Bring-your-own visuals: the `splash` slot is empty by default so the
|
|
9
|
+
* component pulls in no dependencies. Provide a logo, spinner, or
|
|
10
|
+
* animation from the consumer side.
|
|
11
|
+
*
|
|
12
|
+
* @element schmancy-splash-screen
|
|
13
|
+
* @slot splash - Content rendered on the splash layer (logo, spinner, etc.).
|
|
14
|
+
* @slot - Default slot for the actual app content, revealed once dismissed.
|
|
15
|
+
* @fires schmancy-splash-done - `CustomEvent<void>` when the splash dismisses.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```html
|
|
19
|
+
* <schmancy-splash-screen min-duration="1200">
|
|
20
|
+
* <my-logo slot="splash"></my-logo>
|
|
21
|
+
* <my-app></my-app>
|
|
22
|
+
* </schmancy-splash-screen>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export default class SchmancySplashScreen extends SchmancySplashScreen_base {
|
|
26
|
+
/**
|
|
27
|
+
* Minimum duration (ms) the splash layer stays visible. Prevents a flash
|
|
28
|
+
* when the app loads faster than expected.
|
|
29
|
+
*/
|
|
30
|
+
minDuration: number;
|
|
31
|
+
/**
|
|
32
|
+
* When true, the splash dismisses on the `minDuration` timer alone.
|
|
33
|
+
* When false (default), it additionally waits for an external ready signal
|
|
34
|
+
* (a `ready` event on this element, or a call to `this.ready()`).
|
|
35
|
+
*/
|
|
36
|
+
auto: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* When true, the splash starts hidden. Use this for imperative control.
|
|
39
|
+
*/
|
|
40
|
+
initiallyHidden: boolean;
|
|
41
|
+
private _visible;
|
|
42
|
+
connectedCallback(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Imperative API: signal that the app is ready and dismiss the splash
|
|
45
|
+
* after the minimum duration has elapsed.
|
|
46
|
+
*/
|
|
47
|
+
ready(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Force the splash to show again (e.g. between route transitions).
|
|
50
|
+
*/
|
|
51
|
+
show(): void;
|
|
52
|
+
private _dismiss;
|
|
53
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
54
|
+
}
|
|
55
|
+
declare global {
|
|
56
|
+
interface HTMLElementTagNameMap {
|
|
57
|
+
'schmancy-splash-screen': SchmancySplashScreen;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './switch';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export type SchmancySwitchChangeEvent = CustomEvent<{
|
|
3
|
+
value: boolean;
|
|
4
|
+
}>;
|
|
5
|
+
declare const SchmancySwitch_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
6
|
+
/**
|
|
7
|
+
* Binary on/off control. Form-associated, keyboard-accessible, semantically a
|
|
8
|
+
* switch (ARIA role="switch"). Distinct from `schmancy-checkbox`: a switch
|
|
9
|
+
* represents an immediate state change, a checkbox represents a selection in
|
|
10
|
+
* a form to be submitted.
|
|
11
|
+
*
|
|
12
|
+
* @element schmancy-switch
|
|
13
|
+
* @fires change - `CustomEvent<{ value: boolean }>` when the state changes.
|
|
14
|
+
* @attr checked - Initial checked state (also reflected via `value`).
|
|
15
|
+
* @attr disabled - Disables interaction.
|
|
16
|
+
* @attr required - Requires the switch to be on for form validity.
|
|
17
|
+
* @attr name - Form field name for submission.
|
|
18
|
+
* @csspart track - The background track.
|
|
19
|
+
* @csspart thumb - The moving thumb.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SchmancySwitch extends SchmancySwitch_base {
|
|
22
|
+
static formAssociated: boolean;
|
|
23
|
+
private internals;
|
|
24
|
+
checked: boolean;
|
|
25
|
+
disabled: boolean;
|
|
26
|
+
required: boolean;
|
|
27
|
+
name: string;
|
|
28
|
+
value: string;
|
|
29
|
+
label: string;
|
|
30
|
+
protected static shadowRootOptions: {
|
|
31
|
+
delegatesFocus: boolean;
|
|
32
|
+
clonable?: boolean;
|
|
33
|
+
customElementRegistry?: CustomElementRegistry;
|
|
34
|
+
mode: ShadowRootMode;
|
|
35
|
+
serializable?: boolean;
|
|
36
|
+
slotAssignment?: SlotAssignmentMode;
|
|
37
|
+
};
|
|
38
|
+
constructor();
|
|
39
|
+
get form(): HTMLFormElement | null;
|
|
40
|
+
protected updated(changed: Map<string, unknown>): void;
|
|
41
|
+
formResetCallback(): void;
|
|
42
|
+
formDisabledCallback(disabled: boolean): void;
|
|
43
|
+
checkValidity(): boolean;
|
|
44
|
+
reportValidity(): boolean;
|
|
45
|
+
private _toggle;
|
|
46
|
+
private _onKeydown;
|
|
47
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
48
|
+
}
|
|
49
|
+
declare global {
|
|
50
|
+
interface HTMLElementTagNameMap {
|
|
51
|
+
'schmancy-switch': SchmancySwitch;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './switch';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ElementContext, type RunOptions, type Result } from 'axe-core';
|
|
2
|
+
/**
|
|
3
|
+
* Run axe-core on the given element (or document) and assert no violations.
|
|
4
|
+
* Throws a readable failure with a summary of violations so test output is
|
|
5
|
+
* immediately actionable.
|
|
6
|
+
*
|
|
7
|
+
* Keep the axe rule set minimal and appropriate for component tests — the
|
|
8
|
+
* defaults include many rules that only make sense at the page level (e.g.
|
|
9
|
+
* `region`, `landmark-one-main`). Override via `options.rules` when needed.
|
|
10
|
+
*/
|
|
11
|
+
export declare function expectNoA11yViolations(context?: ElementContext, options?: RunOptions): Promise<Result[]>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, type PropertyValues } from 'lit';
|
|
2
2
|
declare const SchmancyTextarea_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
3
3
|
/**
|
|
4
4
|
* Textarea component with auto-resize and form integration.
|
|
@@ -24,6 +24,7 @@ export default class SchmancyTextarea extends SchmancyTextarea_base {
|
|
|
24
24
|
static formAssociated: boolean;
|
|
25
25
|
internals: ElementInternals | undefined;
|
|
26
26
|
textareaRef: import("lit-html/directives/ref").Ref<HTMLTextAreaElement>;
|
|
27
|
+
private readonly _a11yId;
|
|
27
28
|
/**
|
|
28
29
|
* The label of the control.
|
|
29
30
|
* @attr
|
|
@@ -141,6 +142,9 @@ export default class SchmancyTextarea extends SchmancyTextarea_base {
|
|
|
141
142
|
hint: string | undefined;
|
|
142
143
|
error: boolean;
|
|
143
144
|
constructor();
|
|
145
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
146
|
+
formResetCallback(): void;
|
|
147
|
+
formDisabledCallback(disabled: boolean): void;
|
|
144
148
|
firstUpdated(): void;
|
|
145
149
|
get form(): HTMLFormElement;
|
|
146
150
|
/** Checks for validity of the control and shows the browser message if it's invalid. */
|
package/types/src/tree/tree.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ export declare class SchmancyTree extends SchmancyTree_base {
|
|
|
12
12
|
toggler: HTMLSlotElement;
|
|
13
13
|
defaultSlot: HTMLSlotElement;
|
|
14
14
|
chevron: HTMLElement;
|
|
15
|
+
private readonly _a11yId;
|
|
16
|
+
private get _contentId();
|
|
17
|
+
/** ElementInternals — broadcasts `:state(open)` for consumer CSS. */
|
|
18
|
+
private readonly _internals;
|
|
19
|
+
updated(changed: Map<string, unknown>): void;
|
|
15
20
|
firstUpdated(): void;
|
|
16
21
|
render(): import("lit-html").TemplateResult<1>;
|
|
17
22
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './visually-hidden';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
declare const SchmancyVisuallyHidden_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
2
|
+
/**
|
|
3
|
+
* Hides content visually while keeping it in the accessibility tree. Use for
|
|
4
|
+
* screen-reader-only labels, supplemental descriptions, and live-region text
|
|
5
|
+
* that sighted users don't need to see.
|
|
6
|
+
*
|
|
7
|
+
* Uses the WCAG-recommended clip pattern rather than `display: none` or
|
|
8
|
+
* `visibility: hidden` so assistive tech still reads the content.
|
|
9
|
+
*
|
|
10
|
+
* @element schmancy-visually-hidden
|
|
11
|
+
* @slot - Content hidden from sighted users but exposed to assistive tech.
|
|
12
|
+
*/
|
|
13
|
+
export declare class SchmancyVisuallyHidden extends SchmancyVisuallyHidden_base {
|
|
14
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
15
|
+
}
|
|
16
|
+
declare global {
|
|
17
|
+
interface HTMLElementTagNameMap {
|
|
18
|
+
'schmancy-visually-hidden': SchmancyVisuallyHidden;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* const resolved = resolveOverlap(projected, neighbors, { width: 1440, height: 900 })
|
|
11
11
|
* // → { left: 144, top: 444, width: 360, height: 500 } (cascaded away from conflict)
|
|
12
12
|
*/
|
|
13
|
-
import type { WindowBounds, WindowRecord
|
|
13
|
+
import type { WindowBounds, WindowRecord } from './window-registry.js';
|
|
14
14
|
/** Check if two rectangles overlap (edges touching does NOT count as overlap) */
|
|
15
15
|
export declare function rectsOverlap(a: WindowBounds, b: WindowBounds): boolean;
|
|
16
16
|
/**
|
|
@@ -21,17 +21,6 @@ export declare function resolveOverlap(candidate: WindowBounds, existing: Window
|
|
|
21
21
|
width: number;
|
|
22
22
|
height: number;
|
|
23
23
|
}): WindowBounds;
|
|
24
|
-
/**
|
|
25
|
-
* Snap window bounds to a corner with standard edge gap.
|
|
26
|
-
*/
|
|
27
|
-
export declare function snapToCorner(bounds: WindowBounds, corner: SnapCorner, viewport: {
|
|
28
|
-
width: number;
|
|
29
|
-
height: number;
|
|
30
|
-
}, bottomOffset: number): WindowBounds;
|
|
31
|
-
/**
|
|
32
|
-
* Place a window flush beside a neighbor.
|
|
33
|
-
*/
|
|
34
|
-
export declare function snapToNeighbor(bounds: WindowBounds, neighbor: WindowBounds, side: 'left' | 'right'): WindowBounds;
|
|
35
24
|
/**
|
|
36
25
|
* Clamp bounds so the window stays fully within the viewport.
|
|
37
26
|
*/
|
|
@@ -39,26 +28,3 @@ export declare function clampToViewport(bounds: WindowBounds, viewport: {
|
|
|
39
28
|
width: number;
|
|
40
29
|
height: number;
|
|
41
30
|
}): WindowBounds;
|
|
42
|
-
/**
|
|
43
|
-
* Convert corner-relative offset (used by the old float) to absolute viewport bounds.
|
|
44
|
-
*/
|
|
45
|
-
export declare function cornerOffsetToAbsolute(corner: SnapCorner, offset: {
|
|
46
|
-
x: number;
|
|
47
|
-
y: number;
|
|
48
|
-
}, size: {
|
|
49
|
-
width: number;
|
|
50
|
-
height: number;
|
|
51
|
-
}, viewport: {
|
|
52
|
-
width: number;
|
|
53
|
-
height: number;
|
|
54
|
-
}, bottomOffset: number): WindowBounds;
|
|
55
|
-
/**
|
|
56
|
-
* Convert absolute viewport bounds back to corner-relative offset.
|
|
57
|
-
*/
|
|
58
|
-
export declare function absoluteToCornerOffset(corner: SnapCorner, bounds: WindowBounds, viewport: {
|
|
59
|
-
width: number;
|
|
60
|
-
height: number;
|
|
61
|
-
}, bottomOffset: number): {
|
|
62
|
-
x: number;
|
|
63
|
-
y: number;
|
|
64
|
-
};
|
package/ai/INDEX.md
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# Schmancy — Documentation Index
|
|
2
|
-
|
|
3
|
-
A Web Component UI library on Lit + RxJS + Tailwind CSS.
|
|
4
|
-
|
|
5
|
-
## Foundations
|
|
6
|
-
|
|
7
|
-
The framework pieces — touch before components.
|
|
8
|
-
|
|
9
|
-
- [Area](./area.md) — `<schmancy-area>`, `<schmancy-route>`, `area.push()`, `lazy()` for routing.
|
|
10
|
-
- [Store](./store.md) — `createContext`, `@select`, `@selectItem`, storage backends.
|
|
11
|
-
- [Mixins](./mixins.md) — `$LitElement` base class.
|
|
12
|
-
- [Theme](./theme.md) — `<schmancy-theme>`, color scheme, CSS variables.
|
|
13
|
-
- [Directives](./directives.md) — Lit directives for physics, effects, text, visibility, interaction.
|
|
14
|
-
- [Animation](./animation.md) — Spring presets (`SPRING_SMOOTH`, etc.), `createAnimation`.
|
|
15
|
-
|
|
16
|
-
## Components by job
|
|
17
|
-
|
|
18
|
-
### Display
|
|
19
|
-
[Typography](./typography.md) · [Icons](./icons.md) · [Avatar](./avatar.md) · [Divider](./divider.md) · [Badge](./badge.md) · [Code Highlight](./code-highlight.md) · [Typewriter](./typewriter.md) · [JSON](./json.md) · [Iframe](./iframe.md) · [Map](./map.md) · [Charts](./charts.md)
|
|
20
|
-
|
|
21
|
-
### Surfaces & layout
|
|
22
|
-
[Surface](./surface.md) · [Card](./card.md) · [Scroll / Grid / Flex](./layout.md) · [Page](./page.md) · [Content Drawer](./content-drawer.md) · [Window](./window.md) · [Boat](./boat.md) · [Float](./float.md)
|
|
23
|
-
|
|
24
|
-
### Forms
|
|
25
|
-
[Form](./form.md) · [Input](./input.md) · [Textarea](./textarea.md) · [Select](./select.md) · [Autocomplete](./autocomplete.md) · [Option](./option.md) · [Checkbox](./checkbox.md) · [Radio Group](./radio-group.md) · [Chips](./chips.md) · [Date Range](./date-range.md) · [Date Range Inline](./date-range-inline.md) · [Range](./range.md) · [Extra (Country/Timezone)](./extra.md)
|
|
26
|
-
|
|
27
|
-
### Navigation
|
|
28
|
-
[Nav Drawer](./nav-drawer.md) · [Tabs](./tabs.md) · [Navigation Bar](./navigation-bar.md) · [Navigation Rail](./navigation-rail.md) · [Steps](./steps.md) · [Teleport](./teleport.md) · [Theme Button](./theme-button.md)
|
|
29
|
-
|
|
30
|
-
### Overlays
|
|
31
|
-
[Dialog](./dialog.md) · [Sheet](./sheet.md) · [Notification](./notification.md) · [Menu](./menu.md) · [Dropdown](./dropdown.md) · [Tooltip](./tooltip.md) · [Lightbox](./lightbox.md) · [Expand](./expand.md)
|
|
32
|
-
|
|
33
|
-
### Interactive
|
|
34
|
-
[Button](./button.md) · [List](./list.md) · [Details](./details.md) · [Table](./table.md) · [Tree](./tree.md) · [Slider](./slider.md) · [QR Scanner](./qr-scanner.md)
|
|
35
|
-
|
|
36
|
-
### Feedback
|
|
37
|
-
[Progress](./progress.md) · [Busy](./busy.md) · [Connectivity](./connectivity.md) · [Delay](./delay.md)
|
|
38
|
-
|
|
39
|
-
### Domain
|
|
40
|
-
[Mailbox](./mailbox.md)
|
|
41
|
-
|
|
42
|
-
## Services (imperative APIs)
|
|
43
|
-
|
|
44
|
-
| Service | Purpose |
|
|
45
|
-
|---------|---------|
|
|
46
|
-
| `area` | Route navigation (see [area](./area.md)) |
|
|
47
|
-
| `$dialog` | Open dialogs (see [dialog](./dialog.md)) |
|
|
48
|
-
| `$notify` | Toast notifications (see [notification](./notification.md)) |
|
|
49
|
-
| `schmancyContentDrawer` | Side panel (see [content-drawer](./content-drawer.md)) |
|
|
50
|
-
| `theme` | Theme state, `fullscreen$` (see [theme](./theme.md)) |
|
|
51
|
-
| `sound` | Audio feedback (see [audio](./audio.md)) |
|
|
52
|
-
| `overlayStack` | Z-index coordinator (see [utils](./utils.md)) |
|
|
53
|
-
| `windowManager` | Window registry (see [window](./window.md)) |
|
|
54
|
-
|
|
55
|
-
## Utilities
|
|
56
|
-
|
|
57
|
-
[Discovery](./discovery.md) — cross-shadow component lookup.
|
|
58
|
-
[RxJS Utils](./rxjs-utils.md) — `waitForElement`, `waitUntil`, `mutationObserver`.
|
|
59
|
-
[Utils](./utils.md) — `similarity`, `numbers`, `overlayStack`, `intersection$`, `hashContent`.
|
|
60
|
-
[Audio](./audio.md) — synthesized feedback sounds.
|
|
61
|
-
|
|
62
|
-
## Conventions
|
|
63
|
-
|
|
64
|
-
- Lists use `repeat(items, item => item.id, tpl)`.
|
|
65
|
-
- View switching uses `cache(...)`.
|
|
66
|
-
- Expensive work uses `guard([deps], fn)`.
|
|
67
|
-
- DOM access uses `ref(createRef())`.
|
|
68
|
-
- Conditionals use `when(...)`, `choose(...)`, `ifDefined(...)`.
|
|
69
|
-
- All RxJS subscriptions end with `.pipe(takeUntil(this.disconnecting))`.
|
|
70
|
-
- Don't use `setTimeout` / `setInterval` / `addEventListener` — use RxJS (`timer`, `interval`, `fromEvent`).
|
|
71
|
-
- Colors come from `--schmancy-sys-color-*` CSS vars or Tailwind theme classes.
|
|
72
|
-
- `classMap(...)` must be the sole expression in `class=`; never mix with string interpolation.
|
package/ai/tooltip.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# tooltip (directive)
|
|
2
|
-
|
|
3
|
-
> Lit directive that adds a positioned tooltip to any element on hover/focus.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
```typescript
|
|
7
|
-
import { tooltip } from '@mhmo91/schmancy'
|
|
8
|
-
|
|
9
|
-
html`<button ${tooltip('Click to save')}>Save</button>`
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Parameters
|
|
13
|
-
| Parameter | Type | Default | Description |
|
|
14
|
-
|-----------|------|---------|-------------|
|
|
15
|
-
| text | string | required | Tooltip text content |
|
|
16
|
-
| options.position | `'top'\|'right'\|'bottom'\|'left'` | `'top'` | Tooltip placement |
|
|
17
|
-
| options.delay | number | `300` | Show delay in ms |
|
|
18
|
-
| options.showArrow | boolean | `true` | Show arrow indicator |
|
|
19
|
-
|
|
20
|
-
## Examples
|
|
21
|
-
```html
|
|
22
|
-
<!-- Bottom positioned -->
|
|
23
|
-
<schmancy-icon-button ${tooltip('Delete item', { position: 'bottom' })}>
|
|
24
|
-
delete
|
|
25
|
-
</schmancy-icon-button>
|
|
26
|
-
|
|
27
|
-
<!-- No delay, no arrow -->
|
|
28
|
-
<span ${tooltip('Status: Active', { delay: 0, showArrow: false })}>
|
|
29
|
-
Active
|
|
30
|
-
</span>
|
|
31
|
-
|
|
32
|
-
<!-- Right positioned -->
|
|
33
|
-
<div ${tooltip('More info here', { position: 'right' })}>
|
|
34
|
-
Hover me
|
|
35
|
-
</div>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Uses Floating UI for smart positioning with automatic flipping when near viewport edges. Accessible via `aria-describedby`. Closes on Escape key.
|
package/dist/ai/INDEX.md
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# Schmancy — Documentation Index
|
|
2
|
-
|
|
3
|
-
A Web Component UI library on Lit + RxJS + Tailwind CSS.
|
|
4
|
-
|
|
5
|
-
## Foundations
|
|
6
|
-
|
|
7
|
-
The framework pieces — touch before components.
|
|
8
|
-
|
|
9
|
-
- [Area](./area.md) — `<schmancy-area>`, `<schmancy-route>`, `area.push()`, `lazy()` for routing.
|
|
10
|
-
- [Store](./store.md) — `createContext`, `@select`, `@selectItem`, storage backends.
|
|
11
|
-
- [Mixins](./mixins.md) — `$LitElement` base class.
|
|
12
|
-
- [Theme](./theme.md) — `<schmancy-theme>`, color scheme, CSS variables.
|
|
13
|
-
- [Directives](./directives.md) — Lit directives for physics, effects, text, visibility, interaction.
|
|
14
|
-
- [Animation](./animation.md) — Spring presets (`SPRING_SMOOTH`, etc.), `createAnimation`.
|
|
15
|
-
|
|
16
|
-
## Components by job
|
|
17
|
-
|
|
18
|
-
### Display
|
|
19
|
-
[Typography](./typography.md) · [Icons](./icons.md) · [Avatar](./avatar.md) · [Divider](./divider.md) · [Badge](./badge.md) · [Code Highlight](./code-highlight.md) · [Typewriter](./typewriter.md) · [JSON](./json.md) · [Iframe](./iframe.md) · [Map](./map.md) · [Charts](./charts.md)
|
|
20
|
-
|
|
21
|
-
### Surfaces & layout
|
|
22
|
-
[Surface](./surface.md) · [Card](./card.md) · [Scroll / Grid / Flex](./layout.md) · [Page](./page.md) · [Content Drawer](./content-drawer.md) · [Window](./window.md) · [Boat](./boat.md) · [Float](./float.md)
|
|
23
|
-
|
|
24
|
-
### Forms
|
|
25
|
-
[Form](./form.md) · [Input](./input.md) · [Textarea](./textarea.md) · [Select](./select.md) · [Autocomplete](./autocomplete.md) · [Option](./option.md) · [Checkbox](./checkbox.md) · [Radio Group](./radio-group.md) · [Chips](./chips.md) · [Date Range](./date-range.md) · [Date Range Inline](./date-range-inline.md) · [Range](./range.md) · [Extra (Country/Timezone)](./extra.md)
|
|
26
|
-
|
|
27
|
-
### Navigation
|
|
28
|
-
[Nav Drawer](./nav-drawer.md) · [Tabs](./tabs.md) · [Navigation Bar](./navigation-bar.md) · [Navigation Rail](./navigation-rail.md) · [Steps](./steps.md) · [Teleport](./teleport.md) · [Theme Button](./theme-button.md)
|
|
29
|
-
|
|
30
|
-
### Overlays
|
|
31
|
-
[Dialog](./dialog.md) · [Sheet](./sheet.md) · [Notification](./notification.md) · [Menu](./menu.md) · [Dropdown](./dropdown.md) · [Tooltip](./tooltip.md) · [Lightbox](./lightbox.md) · [Expand](./expand.md)
|
|
32
|
-
|
|
33
|
-
### Interactive
|
|
34
|
-
[Button](./button.md) · [List](./list.md) · [Details](./details.md) · [Table](./table.md) · [Tree](./tree.md) · [Slider](./slider.md) · [QR Scanner](./qr-scanner.md)
|
|
35
|
-
|
|
36
|
-
### Feedback
|
|
37
|
-
[Progress](./progress.md) · [Busy](./busy.md) · [Connectivity](./connectivity.md) · [Delay](./delay.md)
|
|
38
|
-
|
|
39
|
-
### Domain
|
|
40
|
-
[Mailbox](./mailbox.md)
|
|
41
|
-
|
|
42
|
-
## Services (imperative APIs)
|
|
43
|
-
|
|
44
|
-
| Service | Purpose |
|
|
45
|
-
|---------|---------|
|
|
46
|
-
| `area` | Route navigation (see [area](./area.md)) |
|
|
47
|
-
| `$dialog` | Open dialogs (see [dialog](./dialog.md)) |
|
|
48
|
-
| `$notify` | Toast notifications (see [notification](./notification.md)) |
|
|
49
|
-
| `schmancyContentDrawer` | Side panel (see [content-drawer](./content-drawer.md)) |
|
|
50
|
-
| `theme` | Theme state, `fullscreen$` (see [theme](./theme.md)) |
|
|
51
|
-
| `sound` | Audio feedback (see [audio](./audio.md)) |
|
|
52
|
-
| `overlayStack` | Z-index coordinator (see [utils](./utils.md)) |
|
|
53
|
-
| `windowManager` | Window registry (see [window](./window.md)) |
|
|
54
|
-
|
|
55
|
-
## Utilities
|
|
56
|
-
|
|
57
|
-
[Discovery](./discovery.md) — cross-shadow component lookup.
|
|
58
|
-
[RxJS Utils](./rxjs-utils.md) — `waitForElement`, `waitUntil`, `mutationObserver`.
|
|
59
|
-
[Utils](./utils.md) — `similarity`, `numbers`, `overlayStack`, `intersection$`, `hashContent`.
|
|
60
|
-
[Audio](./audio.md) — synthesized feedback sounds.
|
|
61
|
-
|
|
62
|
-
## Conventions
|
|
63
|
-
|
|
64
|
-
- Lists use `repeat(items, item => item.id, tpl)`.
|
|
65
|
-
- View switching uses `cache(...)`.
|
|
66
|
-
- Expensive work uses `guard([deps], fn)`.
|
|
67
|
-
- DOM access uses `ref(createRef())`.
|
|
68
|
-
- Conditionals use `when(...)`, `choose(...)`, `ifDefined(...)`.
|
|
69
|
-
- All RxJS subscriptions end with `.pipe(takeUntil(this.disconnecting))`.
|
|
70
|
-
- Don't use `setTimeout` / `setInterval` / `addEventListener` — use RxJS (`timer`, `interval`, `fromEvent`).
|
|
71
|
-
- Colors come from `--schmancy-sys-color-*` CSS vars or Tailwind theme classes.
|
|
72
|
-
- `classMap(...)` must be the sole expression in `class=`; never mix with string interpolation.
|
package/dist/ai/tooltip.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# tooltip (directive)
|
|
2
|
-
|
|
3
|
-
> Lit directive that adds a positioned tooltip to any element on hover/focus.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
```typescript
|
|
7
|
-
import { tooltip } from '@mhmo91/schmancy'
|
|
8
|
-
|
|
9
|
-
html`<button ${tooltip('Click to save')}>Save</button>`
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Parameters
|
|
13
|
-
| Parameter | Type | Default | Description |
|
|
14
|
-
|-----------|------|---------|-------------|
|
|
15
|
-
| text | string | required | Tooltip text content |
|
|
16
|
-
| options.position | `'top'\|'right'\|'bottom'\|'left'` | `'top'` | Tooltip placement |
|
|
17
|
-
| options.delay | number | `300` | Show delay in ms |
|
|
18
|
-
| options.showArrow | boolean | `true` | Show arrow indicator |
|
|
19
|
-
|
|
20
|
-
## Examples
|
|
21
|
-
```html
|
|
22
|
-
<!-- Bottom positioned -->
|
|
23
|
-
<schmancy-icon-button ${tooltip('Delete item', { position: 'bottom' })}>
|
|
24
|
-
delete
|
|
25
|
-
</schmancy-icon-button>
|
|
26
|
-
|
|
27
|
-
<!-- No delay, no arrow -->
|
|
28
|
-
<span ${tooltip('Status: Active', { delay: 0, showArrow: false })}>
|
|
29
|
-
Active
|
|
30
|
-
</span>
|
|
31
|
-
|
|
32
|
-
<!-- Right positioned -->
|
|
33
|
-
<div ${tooltip('More info here', { position: 'right' })}>
|
|
34
|
-
Hover me
|
|
35
|
-
</div>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Uses Floating UI for smart positioning with automatic flipping when near viewport edges. Accessible via `aria-describedby`. Closes on Escape key.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"animation-BK-8BwY8.js","names":[],"sources":["../src/utils/animation.ts"],"sourcesContent":["/**\n * Blackbird Animation System\n *\n * A comprehensive animation system using spring physics for natural,\n * organic motion. Named after the smooth, arcing flight patterns of birds.\n *\n * Features:\n * - Spring physics via CSS linear() (88% browser support)\n * - Cubic-bezier fallbacks for older browsers\n * - Typed interfaces for Web Animations API\n * - CSS custom properties for Tailwind integration\n * - Multiple presets: smooth, snappy, bouncy\n *\n * @see https://www.joshwcomeau.com/animation/linear-timing-function/\n * @see https://developer.chrome.com/docs/css-ui/css-linear-easing-function\n */\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/** Spring configuration parameters */\nexport interface SpringConfig {\n\t/** Spring stiffness (higher = faster) */\n\tstiffness: number\n\t/** Damping ratio (higher = less bounce) */\n\tdamping: number\n\t/** Mass (higher = slower) */\n\tmass: number\n}\n\n/** Animation preset with all timing values */\nexport interface AnimationPreset {\n\t/** Human-readable name */\n\tname: string\n\t/** Duration in milliseconds */\n\tduration: number\n\t/** CSS linear() easing function (modern browsers) */\n\teasing: string\n\t/** Cubic-bezier fallback (all browsers) */\n\teasingFallback: string\n\t/** Spring configuration used to generate this preset */\n\tspring: SpringConfig\n}\n\n/** Keyframe options for Web Animations API */\nexport interface BlackbirdKeyframes {\n\t/** Starting state */\n\tfrom: Keyframe\n\t/** Ending state */\n\tto: Keyframe\n}\n\n/** Complete animation configuration */\nexport interface BlackbirdAnimation {\n\tkeyframes: Keyframe[]\n\toptions: KeyframeAnimationOptions\n}\n\n// =============================================================================\n// SPRING PRESETS\n// =============================================================================\n\n/**\n * Smooth preset - Apple-style, subtle overshoot\n * Best for: Details, accordions, content reveals\n */\nexport const SPRING_SMOOTH: AnimationPreset = {\n\tname: 'smooth',\n\tduration: 500,\n\teasing: `linear(\n\t\t0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%,\n\t\t0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50%, 1.015 54.8%,\n\t\t1.017 63.3%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.34, 1.56, 0.64, 1)',\n\tspring: { stiffness: 100, damping: 15, mass: 1 },\n}\n\n/**\n * Snappy preset - Quick with minimal overshoot\n * Best for: Buttons, toggles, quick interactions\n */\nexport const SPRING_SNAPPY: AnimationPreset = {\n\tname: 'snappy',\n\tduration: 300,\n\teasing: `linear(\n\t\t0, 0.009, 0.035 2.1%, 0.141 4.4%, 0.723 15.5%, 0.938 23.8%,\n\t\t1.017 30.2%, 1.041 37.3%, 1.026 52.4%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.22, 1.25, 0.36, 1)',\n\tspring: { stiffness: 200, damping: 20, mass: 1 },\n}\n\n/**\n * Bouncy preset - Playful with noticeable overshoot\n * Best for: Notifications, celebrations, attention-grabbing\n */\nexport const SPRING_BOUNCY: AnimationPreset = {\n\tname: 'bouncy',\n\tduration: 600,\n\teasing: `linear(\n\t\t0, 0.004, 0.016 2.3%, 0.065 4.8%, 0.258 9.9%, 0.489 15%,\n\t\t0.683 20.1%, 0.847 25.4%, 0.963 30.6%, 1.039 36%, 1.086 41.8%,\n\t\t1.107 48.1%, 1.101 55.1%, 1.064 73.1%, 1.026 85.2%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.34, 1.8, 0.64, 1)',\n\tspring: { stiffness: 100, damping: 10, mass: 1 },\n}\n\n/**\n * Gentle preset - Slow, smooth, no overshoot\n * Best for: Page transitions, modal backgrounds, subtle reveals\n */\nexport const SPRING_GENTLE: AnimationPreset = {\n\tname: 'gentle',\n\tduration: 700,\n\teasing: `linear(\n\t\t0, 0.002, 0.009 2.6%, 0.036 5.3%, 0.153 11.3%, 0.352 18.5%,\n\t\t0.554 25.4%, 0.733 32.6%, 0.865 40.2%, 0.945 48.5%,\n\t\t0.984 58.2%, 0.997 70.5%, 1\n\t)`,\n\teasingFallback: 'cubic-bezier(0.4, 0, 0.2, 1)',\n\tspring: { stiffness: 80, damping: 25, mass: 1.2 },\n}\n\n// =============================================================================\n// LEGACY EXPORTS (backwards compatibility)\n// =============================================================================\n\n/** @deprecated Use SPRING_SMOOTH.easingFallback instead */\nexport const BLACKBIRD_EASING = SPRING_SMOOTH.easingFallback\n\n/** Standard easing for smooth transitions */\nexport const EASE_OUT = 'ease-out'\nexport const EASE_IN = 'ease-in'\n\n/** Standard durations */\nexport const DURATION_ENTER = SPRING_SNAPPY.duration\nexport const DURATION_EXIT = 150\nexport const DURATION_BACKDROP = 200\n\n// =============================================================================\n// CSS CUSTOM PROPERTIES\n// =============================================================================\n\n/**\n * CSS custom properties for use in stylesheets.\n * These can be injected into :root or a component's styles.\n *\n * @example\n * ```css\n * :root {\n * ${ANIMATION_CSS_VARS}\n * }\n *\n * .element {\n * transition: transform var(--blackbird-duration-smooth) var(--blackbird-easing-smooth);\n * }\n * ```\n */\nexport const ANIMATION_CSS_VARS = `\n\t/* Blackbird Animation System - Spring Physics */\n\n\t/* Smooth preset (Apple-style) */\n\t--blackbird-duration-smooth: ${SPRING_SMOOTH.duration}ms;\n\t--blackbird-easing-smooth: ${SPRING_SMOOTH.easingFallback};\n\t--blackbird-easing-smooth-spring: ${SPRING_SMOOTH.easing};\n\n\t/* Snappy preset (quick interactions) */\n\t--blackbird-duration-snappy: ${SPRING_SNAPPY.duration}ms;\n\t--blackbird-easing-snappy: ${SPRING_SNAPPY.easingFallback};\n\t--blackbird-easing-snappy-spring: ${SPRING_SNAPPY.easing};\n\n\t/* Bouncy preset (playful) */\n\t--blackbird-duration-bouncy: ${SPRING_BOUNCY.duration}ms;\n\t--blackbird-easing-bouncy: ${SPRING_BOUNCY.easingFallback};\n\t--blackbird-easing-bouncy-spring: ${SPRING_BOUNCY.easing};\n\n\t/* Gentle preset (subtle) */\n\t--blackbird-duration-gentle: ${SPRING_GENTLE.duration}ms;\n\t--blackbird-easing-gentle: ${SPRING_GENTLE.easingFallback};\n\t--blackbird-easing-gentle-spring: ${SPRING_GENTLE.easing};\n`\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Get the appropriate easing function based on browser support.\n * Uses linear() if supported, falls back to cubic-bezier.\n */\nexport function getEasing(preset: AnimationPreset): string {\n\t// Feature detect linear() support\n\tif (typeof CSS !== 'undefined' && CSS.supports?.('animation-timing-function', 'linear(0, 1)')) {\n\t\treturn preset.easing\n\t}\n\treturn preset.easingFallback\n}\n\n/**\n * Check if the browser supports reduced motion preference.\n */\nexport function prefersReducedMotion(): boolean {\n\treturn typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches\n}\n\n/**\n * Create a Web Animations API animation configuration.\n *\n * @example\n * ```ts\n * const anim = createAnimation(SPRING_SMOOTH, {\n * from: { opacity: 0, transform: 'translateY(-16px)' },\n * to: { opacity: 1, transform: 'translateY(0)' }\n * })\n *\n * element.animate(anim.keyframes, anim.options)\n * ```\n */\nexport function createAnimation(preset: AnimationPreset, keyframes: BlackbirdKeyframes): BlackbirdAnimation {\n\t// Respect reduced motion preference\n\tif (prefersReducedMotion()) {\n\t\treturn {\n\t\t\tkeyframes: [keyframes.to],\n\t\t\toptions: { duration: 0, fill: 'forwards' },\n\t\t}\n\t}\n\n\treturn {\n\t\tkeyframes: [keyframes.from, keyframes.to],\n\t\toptions: {\n\t\t\tduration: preset.duration,\n\t\t\teasing: preset.easingFallback, // Web Animations API doesn't support linear() well\n\t\t\tfill: 'forwards',\n\t\t},\n\t}\n}\n\n/**\n * Create a reveal animation (fade in + slide up).\n * Common pattern for content appearing.\n */\nexport function createRevealAnimation(\n\tpreset: AnimationPreset = SPRING_SMOOTH,\n\tdistance = 16,\n): BlackbirdAnimation {\n\treturn createAnimation(preset, {\n\t\tfrom: { opacity: 0, transform: `translateY(-${distance}px) scale(0.96)` },\n\t\tto: { opacity: 1, transform: 'translateY(0) scale(1)' },\n\t})\n}\n\n/**\n * Create a dismiss animation (fade out + slide up).\n * Common pattern for content disappearing.\n */\nexport function createDismissAnimation(\n\tpreset: AnimationPreset = SPRING_SMOOTH,\n\tdistance = 12,\n): BlackbirdAnimation {\n\tconst anim = createAnimation(preset, {\n\t\tfrom: { opacity: 1, transform: 'translateY(0) scale(1)' },\n\t\tto: { opacity: 0, transform: `translateY(-${distance}px) scale(0.97)` },\n\t})\n\n\t// Dismiss is slightly faster\n\tif (anim.options.duration) {\n\t\tanim.options.duration = (anim.options.duration as number) * 0.7\n\t}\n\n\treturn anim\n}\n\n/**\n * Create a scale animation (pop in/out).\n * Common pattern for buttons and interactive elements.\n */\nexport function createScaleAnimation(\n\tpreset: AnimationPreset = SPRING_SNAPPY,\n\tfromScale = 0.9,\n\ttoScale = 1,\n): BlackbirdAnimation {\n\treturn createAnimation(preset, {\n\t\tfrom: { opacity: fromScale < toScale ? 0 : 1, transform: `scale(${fromScale})` },\n\t\tto: { opacity: fromScale < toScale ? 1 : 0, transform: `scale(${toScale})` },\n\t})\n}\n\n// =============================================================================\n// TAILWIND UTILITIES (for use in tailwind.config.js)\n// =============================================================================\n\n/**\n * Tailwind CSS animation utilities configuration.\n * Import this into your tailwind.config.js to add Blackbird animations.\n *\n * @example\n * ```js\n * // tailwind.config.js\n * const { tailwindAnimations } = require('@mhmo91/schmancy/utils/animation')\n *\n * module.exports = {\n * theme: {\n * extend: {\n * ...tailwindAnimations\n * }\n * }\n * }\n * ```\n */\nexport const tailwindAnimations = {\n\ttransitionTimingFunction: {\n\t\t'spring-smooth': SPRING_SMOOTH.easingFallback,\n\t\t'spring-snappy': SPRING_SNAPPY.easingFallback,\n\t\t'spring-bouncy': SPRING_BOUNCY.easingFallback,\n\t\t'spring-gentle': SPRING_GENTLE.easingFallback,\n\t},\n\ttransitionDuration: {\n\t\t'spring-smooth': `${SPRING_SMOOTH.duration}ms`,\n\t\t'spring-snappy': `${SPRING_SNAPPY.duration}ms`,\n\t\t'spring-bouncy': `${SPRING_BOUNCY.duration}ms`,\n\t\t'spring-gentle': `${SPRING_GENTLE.duration}ms`,\n\t},\n\tkeyframes: {\n\t\t'blackbird-reveal': {\n\t\t\t'0%': { opacity: '0', transform: 'translateY(-16px) scale(0.96)' },\n\t\t\t'100%': { opacity: '1', transform: 'translateY(0) scale(1)' },\n\t\t},\n\t\t'blackbird-dismiss': {\n\t\t\t'0%': { opacity: '1', transform: 'translateY(0) scale(1)' },\n\t\t\t'100%': { opacity: '0', transform: 'translateY(-12px) scale(0.97)' },\n\t\t},\n\t\t'blackbird-scale-in': {\n\t\t\t'0%': { opacity: '0', transform: 'scale(0.9)' },\n\t\t\t'100%': { opacity: '1', transform: 'scale(1)' },\n\t\t},\n\t\t'blackbird-scale-out': {\n\t\t\t'0%': { opacity: '1', transform: 'scale(1)' },\n\t\t\t'100%': { opacity: '0', transform: 'scale(0.9)' },\n\t\t},\n\t\t'blackbird-slide-up': {\n\t\t\t'0%': { transform: 'translateY(100%)' },\n\t\t\t'100%': { transform: 'translateY(0)' },\n\t\t},\n\t\t'blackbird-slide-down': {\n\t\t\t'0%': { transform: 'translateY(0)' },\n\t\t\t'100%': { transform: 'translateY(100%)' },\n\t\t},\n\t},\n\tanimation: {\n\t\t'blackbird-reveal': `blackbird-reveal ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-dismiss': `blackbird-dismiss ${SPRING_SMOOTH.duration * 0.7}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-scale-in': `blackbird-scale-in ${SPRING_SNAPPY.duration}ms ${SPRING_SNAPPY.easingFallback} forwards`,\n\t\t'blackbird-scale-out': `blackbird-scale-out ${SPRING_SNAPPY.duration * 0.7}ms ${SPRING_SNAPPY.easingFallback} forwards`,\n\t\t'blackbird-slide-up': `blackbird-slide-up ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-slide-down': `blackbird-slide-down ${SPRING_SMOOTH.duration * 0.7}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t},\n}\n\n// =============================================================================\n// CSS-IN-JS UTILITIES (for Lit components)\n// =============================================================================\n\n/**\n * CSS string with spring-based grid animation for details/accordions.\n * Use with grid-template-rows for smooth height animation.\n *\n * @example\n * ```ts\n * import { css } from 'lit'\n * import { GRID_ANIMATION_CSS } from '@mhmo91/schmancy'\n *\n * static styles = css`\n * ${GRID_ANIMATION_CSS}\n *\n * .content {\n * display: grid;\n * grid-template-rows: 0fr;\n * }\n * .content[data-open='true'] {\n * grid-template-rows: 1fr;\n * }\n * `\n * ```\n */\nexport const GRID_ANIMATION_CSS = `\n\t/* Grid-based height animation with spring physics */\n\t.blackbird-grid {\n\t\tdisplay: grid;\n\t\tgrid-template-rows: 0fr;\n\t\toverflow: hidden;\n\t\ttransition: grid-template-rows ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback};\n\t}\n\n\t/* Use spring easing when linear() is supported */\n\t@supports (animation-timing-function: linear(0, 1)) {\n\t\t.blackbird-grid {\n\t\t\ttransition: grid-template-rows ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easing};\n\t\t}\n\t}\n\n\t.blackbird-grid[data-open='true'],\n\t.blackbird-grid.open {\n\t\tgrid-template-rows: 1fr;\n\t}\n\n\t.blackbird-grid > * {\n\t\toverflow: hidden;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\t.blackbird-grid {\n\t\t\ttransition: none;\n\t\t}\n\t}\n`\n"],"mappings":"AAmEA,IAAa,IAAiC;CAC7C,MAAM;CACN,UAAU;CACV,QAAQ;CAKR,gBAAgB;CAChB,QAAQ;EAAE,WAAW;EAAK,SAAS;EAAI,MAAM;EAAA;CAAA,EAOjC,IAAiC;CAC7C,MAAM;CACN,UAAU;CACV,QAAQ;CAIR,gBAAgB;CAChB,QAAQ;EAAE,WAAW;EAAK,SAAS;EAAI,MAAM;EAAA;CAAA,EAOjC,IAAiC;CAC7C,MAAM;CACN,UAAU;CACV,QAAQ;CAKR,gBAAgB;CAChB,QAAQ;EAAE,WAAW;EAAK,SAAS;EAAI,MAAM;EAAA;CAAA,EAOjC,IAAiC;CAC7C,MAAM;CACN,UAAU;CACV,QAAQ;CAKR,gBAAgB;CAChB,QAAQ;EAAE,WAAW;EAAI,SAAS;EAAI,MAAM;EAAA;CAAA,EAQhC,IAAmB,EAAc,gBAGjC,IAAW,YACX,IAAU,WAGV,IAAiB,EAAc,UAC/B,IAAgB,KAChB,IAAoB,KAqBpB,IAAqB,gIAIF,EAAc,SAAA,oCAChB,EAAc,eAAA,yCACP,EAAc,OAAA,kFAGnB,EAAc,SAAA,oCAChB,EAAc,eAAA,yCACP,EAAc,OAAA,uEAGnB,EAAc,SAAA,oCAChB,EAAc,eAAA,yCACP,EAAc,OAAA,sEAGnB,EAAc,SAAA,oCAChB,EAAc,eAAA,yCACP,EAAc,OAAA;AAWnD,SAAgB,EAAU,GAAA;AAEzB,QAAmB,OAAR,MAAQ,OAAe,IAAI,WAAW,6BAA6B,eAAA,GACtE,EAAO,SAER,EAAO;;AAMf,SAAgB,IAAA;AACf,QAAyB,OAAX,SAAW,OAAe,OAAO,WAAW,mCAAA,CAAoC;;AAgB/F,SAAgB,EAAgB,GAAyB,GAAA;AAExD,QAAI,GAAA,GACI;EACN,WAAW,CAAC,EAAU,GAAA;EACtB,SAAS;GAAE,UAAU;GAAG,MAAM;GAAA;EAAA,GAIzB;EACN,WAAW,CAAC,EAAU,MAAM,EAAU,GAAA;EACtC,SAAS;GACR,UAAU,EAAO;GACjB,QAAQ,EAAO;GACf,MAAM;GAAA;EAAA;;AAST,SAAgB,EACf,IAA0B,GAC1B,IAAW,IAAA;AAEX,QAAO,EAAgB,GAAQ;EAC9B,MAAM;GAAE,SAAS;GAAG,WAAW,eAAe,EAAA;GAAA;EAC9C,IAAI;GAAE,SAAS;GAAG,WAAW;GAAA;EAAA,CAAA;;AAQ/B,SAAgB,EACf,IAA0B,GAC1B,IAAW,IAAA;CAEX,IAAM,IAAO,EAAgB,GAAQ;EACpC,MAAM;GAAE,SAAS;GAAG,WAAW;GAAA;EAC/B,IAAI;GAAE,SAAS;GAAG,WAAW,eAAe,EAAA;GAAA;EAAA,CAAA;AAQ7C,QAJI,EAAK,QAAQ,aAChB,EAAK,QAAQ,WAA+C,KAAnC,EAAK,QAAQ,WAGhC;;AAOR,SAAgB,EACf,IAA0B,GAC1B,IAAY,IACZ,IAAU,GAAA;AAEV,QAAO,EAAgB,GAAQ;EAC9B,MAAM;GAAE,SAAS,IAAY,IAAU,IAAI;GAAG,WAAW,SAAS,EAAA;GAAA;EAClE,IAAI;GAAE,SAAS,MAAY;GAAiB,WAAW,SAAS,EAAA;GAAA;EAAA,CAAA;;AA0BlE,IAAa,IAAqB;CACjC,0BAA0B;EACzB,iBAAiB,EAAc;EAC/B,iBAAiB,EAAc;EAC/B,iBAAiB,EAAc;EAC/B,iBAAiB,EAAc;EAAA;CAEhC,oBAAoB;EACnB,iBAAiB,GAAG,EAAc,SAAA;EAClC,iBAAiB,GAAG,EAAc,SAAA;EAClC,iBAAiB,GAAG,EAAc,SAAA;EAClC,iBAAiB,GAAG,EAAc,SAAA;EAAA;CAEnC,WAAW;EACV,oBAAoB;GACnB,MAAM;IAAE,SAAS;IAAK,WAAW;IAAA;GACjC,QAAQ;IAAE,SAAS;IAAK,WAAW;IAAA;GAAA;EAEpC,qBAAqB;GACpB,MAAM;IAAE,SAAS;IAAK,WAAW;IAAA;GACjC,QAAQ;IAAE,SAAS;IAAK,WAAW;IAAA;GAAA;EAEpC,sBAAsB;GACrB,MAAM;IAAE,SAAS;IAAK,WAAW;IAAA;GACjC,QAAQ;IAAE,SAAS;IAAK,WAAW;IAAA;GAAA;EAEpC,uBAAuB;GACtB,MAAM;IAAE,SAAS;IAAK,WAAW;IAAA;GACjC,QAAQ;IAAE,SAAS;IAAK,WAAW;IAAA;GAAA;EAEpC,sBAAsB;GACrB,MAAM,EAAE,WAAW,oBAAA;GACnB,QAAQ,EAAE,WAAW,iBAAA;GAAA;EAEtB,wBAAwB;GACvB,MAAM,EAAE,WAAW,iBAAA;GACnB,QAAQ,EAAE,WAAW,oBAAA;GAAA;EAAA;CAGvB,WAAW;EACV,oBAAoB,oBAAoB,EAAc,SAAA,KAAc,EAAc,eAAA;EAClF,qBAAqB,qBAA8C,KAAzB,EAAc,SAAA,KAAoB,EAAc,eAAA;EAC1F,sBAAsB,sBAAsB,EAAc,SAAA,KAAc,EAAc,eAAA;EACtF,uBAAuB,uBAAgD,KAAzB,EAAc,SAAA,KAAoB,EAAc,eAAA;EAC9F,sBAAsB,sBAAsB,EAAc,SAAA,KAAc,EAAc,eAAA;EACtF,wBAAwB,wBAAiD,KAAzB,EAAc,SAAA,KAAoB,EAAc,eAAA;EAAA;CAAA,EA8BrF,IAAqB,+LAMC,EAAc,SAAA,KAAc,EAAc,eAAA,uLAMzC,EAAc,SAAA,KAAc,EAAc,OAAA;AAAA,SAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,GAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"animation-CO_Csq84.cjs","names":[],"sources":["../src/utils/animation.ts"],"sourcesContent":["/**\n * Blackbird Animation System\n *\n * A comprehensive animation system using spring physics for natural,\n * organic motion. Named after the smooth, arcing flight patterns of birds.\n *\n * Features:\n * - Spring physics via CSS linear() (88% browser support)\n * - Cubic-bezier fallbacks for older browsers\n * - Typed interfaces for Web Animations API\n * - CSS custom properties for Tailwind integration\n * - Multiple presets: smooth, snappy, bouncy\n *\n * @see https://www.joshwcomeau.com/animation/linear-timing-function/\n * @see https://developer.chrome.com/docs/css-ui/css-linear-easing-function\n */\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/** Spring configuration parameters */\nexport interface SpringConfig {\n\t/** Spring stiffness (higher = faster) */\n\tstiffness: number\n\t/** Damping ratio (higher = less bounce) */\n\tdamping: number\n\t/** Mass (higher = slower) */\n\tmass: number\n}\n\n/** Animation preset with all timing values */\nexport interface AnimationPreset {\n\t/** Human-readable name */\n\tname: string\n\t/** Duration in milliseconds */\n\tduration: number\n\t/** CSS linear() easing function (modern browsers) */\n\teasing: string\n\t/** Cubic-bezier fallback (all browsers) */\n\teasingFallback: string\n\t/** Spring configuration used to generate this preset */\n\tspring: SpringConfig\n}\n\n/** Keyframe options for Web Animations API */\nexport interface BlackbirdKeyframes {\n\t/** Starting state */\n\tfrom: Keyframe\n\t/** Ending state */\n\tto: Keyframe\n}\n\n/** Complete animation configuration */\nexport interface BlackbirdAnimation {\n\tkeyframes: Keyframe[]\n\toptions: KeyframeAnimationOptions\n}\n\n// =============================================================================\n// SPRING PRESETS\n// =============================================================================\n\n/**\n * Smooth preset - Apple-style, subtle overshoot\n * Best for: Details, accordions, content reveals\n */\nexport const SPRING_SMOOTH: AnimationPreset = {\n\tname: 'smooth',\n\tduration: 500,\n\teasing: `linear(\n\t\t0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%,\n\t\t0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50%, 1.015 54.8%,\n\t\t1.017 63.3%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.34, 1.56, 0.64, 1)',\n\tspring: { stiffness: 100, damping: 15, mass: 1 },\n}\n\n/**\n * Snappy preset - Quick with minimal overshoot\n * Best for: Buttons, toggles, quick interactions\n */\nexport const SPRING_SNAPPY: AnimationPreset = {\n\tname: 'snappy',\n\tduration: 300,\n\teasing: `linear(\n\t\t0, 0.009, 0.035 2.1%, 0.141 4.4%, 0.723 15.5%, 0.938 23.8%,\n\t\t1.017 30.2%, 1.041 37.3%, 1.026 52.4%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.22, 1.25, 0.36, 1)',\n\tspring: { stiffness: 200, damping: 20, mass: 1 },\n}\n\n/**\n * Bouncy preset - Playful with noticeable overshoot\n * Best for: Notifications, celebrations, attention-grabbing\n */\nexport const SPRING_BOUNCY: AnimationPreset = {\n\tname: 'bouncy',\n\tduration: 600,\n\teasing: `linear(\n\t\t0, 0.004, 0.016 2.3%, 0.065 4.8%, 0.258 9.9%, 0.489 15%,\n\t\t0.683 20.1%, 0.847 25.4%, 0.963 30.6%, 1.039 36%, 1.086 41.8%,\n\t\t1.107 48.1%, 1.101 55.1%, 1.064 73.1%, 1.026 85.2%, 1.001\n\t)`,\n\teasingFallback: 'cubic-bezier(0.34, 1.8, 0.64, 1)',\n\tspring: { stiffness: 100, damping: 10, mass: 1 },\n}\n\n/**\n * Gentle preset - Slow, smooth, no overshoot\n * Best for: Page transitions, modal backgrounds, subtle reveals\n */\nexport const SPRING_GENTLE: AnimationPreset = {\n\tname: 'gentle',\n\tduration: 700,\n\teasing: `linear(\n\t\t0, 0.002, 0.009 2.6%, 0.036 5.3%, 0.153 11.3%, 0.352 18.5%,\n\t\t0.554 25.4%, 0.733 32.6%, 0.865 40.2%, 0.945 48.5%,\n\t\t0.984 58.2%, 0.997 70.5%, 1\n\t)`,\n\teasingFallback: 'cubic-bezier(0.4, 0, 0.2, 1)',\n\tspring: { stiffness: 80, damping: 25, mass: 1.2 },\n}\n\n// =============================================================================\n// LEGACY EXPORTS (backwards compatibility)\n// =============================================================================\n\n/** @deprecated Use SPRING_SMOOTH.easingFallback instead */\nexport const BLACKBIRD_EASING = SPRING_SMOOTH.easingFallback\n\n/** Standard easing for smooth transitions */\nexport const EASE_OUT = 'ease-out'\nexport const EASE_IN = 'ease-in'\n\n/** Standard durations */\nexport const DURATION_ENTER = SPRING_SNAPPY.duration\nexport const DURATION_EXIT = 150\nexport const DURATION_BACKDROP = 200\n\n// =============================================================================\n// CSS CUSTOM PROPERTIES\n// =============================================================================\n\n/**\n * CSS custom properties for use in stylesheets.\n * These can be injected into :root or a component's styles.\n *\n * @example\n * ```css\n * :root {\n * ${ANIMATION_CSS_VARS}\n * }\n *\n * .element {\n * transition: transform var(--blackbird-duration-smooth) var(--blackbird-easing-smooth);\n * }\n * ```\n */\nexport const ANIMATION_CSS_VARS = `\n\t/* Blackbird Animation System - Spring Physics */\n\n\t/* Smooth preset (Apple-style) */\n\t--blackbird-duration-smooth: ${SPRING_SMOOTH.duration}ms;\n\t--blackbird-easing-smooth: ${SPRING_SMOOTH.easingFallback};\n\t--blackbird-easing-smooth-spring: ${SPRING_SMOOTH.easing};\n\n\t/* Snappy preset (quick interactions) */\n\t--blackbird-duration-snappy: ${SPRING_SNAPPY.duration}ms;\n\t--blackbird-easing-snappy: ${SPRING_SNAPPY.easingFallback};\n\t--blackbird-easing-snappy-spring: ${SPRING_SNAPPY.easing};\n\n\t/* Bouncy preset (playful) */\n\t--blackbird-duration-bouncy: ${SPRING_BOUNCY.duration}ms;\n\t--blackbird-easing-bouncy: ${SPRING_BOUNCY.easingFallback};\n\t--blackbird-easing-bouncy-spring: ${SPRING_BOUNCY.easing};\n\n\t/* Gentle preset (subtle) */\n\t--blackbird-duration-gentle: ${SPRING_GENTLE.duration}ms;\n\t--blackbird-easing-gentle: ${SPRING_GENTLE.easingFallback};\n\t--blackbird-easing-gentle-spring: ${SPRING_GENTLE.easing};\n`\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Get the appropriate easing function based on browser support.\n * Uses linear() if supported, falls back to cubic-bezier.\n */\nexport function getEasing(preset: AnimationPreset): string {\n\t// Feature detect linear() support\n\tif (typeof CSS !== 'undefined' && CSS.supports?.('animation-timing-function', 'linear(0, 1)')) {\n\t\treturn preset.easing\n\t}\n\treturn preset.easingFallback\n}\n\n/**\n * Check if the browser supports reduced motion preference.\n */\nexport function prefersReducedMotion(): boolean {\n\treturn typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches\n}\n\n/**\n * Create a Web Animations API animation configuration.\n *\n * @example\n * ```ts\n * const anim = createAnimation(SPRING_SMOOTH, {\n * from: { opacity: 0, transform: 'translateY(-16px)' },\n * to: { opacity: 1, transform: 'translateY(0)' }\n * })\n *\n * element.animate(anim.keyframes, anim.options)\n * ```\n */\nexport function createAnimation(preset: AnimationPreset, keyframes: BlackbirdKeyframes): BlackbirdAnimation {\n\t// Respect reduced motion preference\n\tif (prefersReducedMotion()) {\n\t\treturn {\n\t\t\tkeyframes: [keyframes.to],\n\t\t\toptions: { duration: 0, fill: 'forwards' },\n\t\t}\n\t}\n\n\treturn {\n\t\tkeyframes: [keyframes.from, keyframes.to],\n\t\toptions: {\n\t\t\tduration: preset.duration,\n\t\t\teasing: preset.easingFallback, // Web Animations API doesn't support linear() well\n\t\t\tfill: 'forwards',\n\t\t},\n\t}\n}\n\n/**\n * Create a reveal animation (fade in + slide up).\n * Common pattern for content appearing.\n */\nexport function createRevealAnimation(\n\tpreset: AnimationPreset = SPRING_SMOOTH,\n\tdistance = 16,\n): BlackbirdAnimation {\n\treturn createAnimation(preset, {\n\t\tfrom: { opacity: 0, transform: `translateY(-${distance}px) scale(0.96)` },\n\t\tto: { opacity: 1, transform: 'translateY(0) scale(1)' },\n\t})\n}\n\n/**\n * Create a dismiss animation (fade out + slide up).\n * Common pattern for content disappearing.\n */\nexport function createDismissAnimation(\n\tpreset: AnimationPreset = SPRING_SMOOTH,\n\tdistance = 12,\n): BlackbirdAnimation {\n\tconst anim = createAnimation(preset, {\n\t\tfrom: { opacity: 1, transform: 'translateY(0) scale(1)' },\n\t\tto: { opacity: 0, transform: `translateY(-${distance}px) scale(0.97)` },\n\t})\n\n\t// Dismiss is slightly faster\n\tif (anim.options.duration) {\n\t\tanim.options.duration = (anim.options.duration as number) * 0.7\n\t}\n\n\treturn anim\n}\n\n/**\n * Create a scale animation (pop in/out).\n * Common pattern for buttons and interactive elements.\n */\nexport function createScaleAnimation(\n\tpreset: AnimationPreset = SPRING_SNAPPY,\n\tfromScale = 0.9,\n\ttoScale = 1,\n): BlackbirdAnimation {\n\treturn createAnimation(preset, {\n\t\tfrom: { opacity: fromScale < toScale ? 0 : 1, transform: `scale(${fromScale})` },\n\t\tto: { opacity: fromScale < toScale ? 1 : 0, transform: `scale(${toScale})` },\n\t})\n}\n\n// =============================================================================\n// TAILWIND UTILITIES (for use in tailwind.config.js)\n// =============================================================================\n\n/**\n * Tailwind CSS animation utilities configuration.\n * Import this into your tailwind.config.js to add Blackbird animations.\n *\n * @example\n * ```js\n * // tailwind.config.js\n * const { tailwindAnimations } = require('@mhmo91/schmancy/utils/animation')\n *\n * module.exports = {\n * theme: {\n * extend: {\n * ...tailwindAnimations\n * }\n * }\n * }\n * ```\n */\nexport const tailwindAnimations = {\n\ttransitionTimingFunction: {\n\t\t'spring-smooth': SPRING_SMOOTH.easingFallback,\n\t\t'spring-snappy': SPRING_SNAPPY.easingFallback,\n\t\t'spring-bouncy': SPRING_BOUNCY.easingFallback,\n\t\t'spring-gentle': SPRING_GENTLE.easingFallback,\n\t},\n\ttransitionDuration: {\n\t\t'spring-smooth': `${SPRING_SMOOTH.duration}ms`,\n\t\t'spring-snappy': `${SPRING_SNAPPY.duration}ms`,\n\t\t'spring-bouncy': `${SPRING_BOUNCY.duration}ms`,\n\t\t'spring-gentle': `${SPRING_GENTLE.duration}ms`,\n\t},\n\tkeyframes: {\n\t\t'blackbird-reveal': {\n\t\t\t'0%': { opacity: '0', transform: 'translateY(-16px) scale(0.96)' },\n\t\t\t'100%': { opacity: '1', transform: 'translateY(0) scale(1)' },\n\t\t},\n\t\t'blackbird-dismiss': {\n\t\t\t'0%': { opacity: '1', transform: 'translateY(0) scale(1)' },\n\t\t\t'100%': { opacity: '0', transform: 'translateY(-12px) scale(0.97)' },\n\t\t},\n\t\t'blackbird-scale-in': {\n\t\t\t'0%': { opacity: '0', transform: 'scale(0.9)' },\n\t\t\t'100%': { opacity: '1', transform: 'scale(1)' },\n\t\t},\n\t\t'blackbird-scale-out': {\n\t\t\t'0%': { opacity: '1', transform: 'scale(1)' },\n\t\t\t'100%': { opacity: '0', transform: 'scale(0.9)' },\n\t\t},\n\t\t'blackbird-slide-up': {\n\t\t\t'0%': { transform: 'translateY(100%)' },\n\t\t\t'100%': { transform: 'translateY(0)' },\n\t\t},\n\t\t'blackbird-slide-down': {\n\t\t\t'0%': { transform: 'translateY(0)' },\n\t\t\t'100%': { transform: 'translateY(100%)' },\n\t\t},\n\t},\n\tanimation: {\n\t\t'blackbird-reveal': `blackbird-reveal ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-dismiss': `blackbird-dismiss ${SPRING_SMOOTH.duration * 0.7}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-scale-in': `blackbird-scale-in ${SPRING_SNAPPY.duration}ms ${SPRING_SNAPPY.easingFallback} forwards`,\n\t\t'blackbird-scale-out': `blackbird-scale-out ${SPRING_SNAPPY.duration * 0.7}ms ${SPRING_SNAPPY.easingFallback} forwards`,\n\t\t'blackbird-slide-up': `blackbird-slide-up ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t\t'blackbird-slide-down': `blackbird-slide-down ${SPRING_SMOOTH.duration * 0.7}ms ${SPRING_SMOOTH.easingFallback} forwards`,\n\t},\n}\n\n// =============================================================================\n// CSS-IN-JS UTILITIES (for Lit components)\n// =============================================================================\n\n/**\n * CSS string with spring-based grid animation for details/accordions.\n * Use with grid-template-rows for smooth height animation.\n *\n * @example\n * ```ts\n * import { css } from 'lit'\n * import { GRID_ANIMATION_CSS } from '@mhmo91/schmancy'\n *\n * static styles = css`\n * ${GRID_ANIMATION_CSS}\n *\n * .content {\n * display: grid;\n * grid-template-rows: 0fr;\n * }\n * .content[data-open='true'] {\n * grid-template-rows: 1fr;\n * }\n * `\n * ```\n */\nexport const GRID_ANIMATION_CSS = `\n\t/* Grid-based height animation with spring physics */\n\t.blackbird-grid {\n\t\tdisplay: grid;\n\t\tgrid-template-rows: 0fr;\n\t\toverflow: hidden;\n\t\ttransition: grid-template-rows ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easingFallback};\n\t}\n\n\t/* Use spring easing when linear() is supported */\n\t@supports (animation-timing-function: linear(0, 1)) {\n\t\t.blackbird-grid {\n\t\t\ttransition: grid-template-rows ${SPRING_SMOOTH.duration}ms ${SPRING_SMOOTH.easing};\n\t\t}\n\t}\n\n\t.blackbird-grid[data-open='true'],\n\t.blackbird-grid.open {\n\t\tgrid-template-rows: 1fr;\n\t}\n\n\t.blackbird-grid > * {\n\t\toverflow: hidden;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\t.blackbird-grid {\n\t\t\ttransition: none;\n\t\t}\n\t}\n`\n"],"mappings":"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"}
|