@mhmo91/schmancy 0.9.5 → 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/custom-elements.json +493 -718
- package/dist/{animation-CO_Csq84.cjs.map → animation-Bcwh107v.cjs.map} +1 -1
- package/dist/{animation-BK-8BwY8.js.map → animation-CXKSuUoE.js.map} +1 -1
- package/dist/{area-CRoGqD_u.js → area-BARjKpE9.js} +2 -2
- package/dist/{area-CRoGqD_u.js.map → area-BARjKpE9.js.map} +1 -1
- package/dist/{area-JPykB7A9.cjs → area-D9b9dHQr.cjs} +3 -3
- package/dist/{area-JPykB7A9.cjs.map → area-D9b9dHQr.cjs.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{audio-kz8UgPTO.js → audio-C7TzWI8M.js} +1 -1
- package/dist/audio-C7TzWI8M.js.map +1 -0
- package/dist/{audio-DtYYgzYD.cjs → audio-DUVz7Ars.cjs} +1 -1
- 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-BllPQwr8.js → autocomplete-DOimwVMP.js} +48 -22
- 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-DYEAZ8Qj.cjs → boat-Bk4u-LzT.cjs} +2 -2
- package/dist/{boat-DYEAZ8Qj.cjs.map → boat-Bk4u-LzT.cjs.map} +1 -1
- package/dist/{boat-BDTQ-du9.js → boat-DrghVeWK.js} +5 -5
- package/dist/{boat-BDTQ-du9.js.map → boat-DrghVeWK.js.map} +1 -1
- 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-ChDAeaKF.js → busy-BmFfwyz_.js} +7 -6
- package/dist/{busy-ChDAeaKF.js.map → busy-BmFfwyz_.js.map} +1 -1
- package/dist/{busy-Dj7Xn0Z0.cjs → busy-c_q_F8O0.cjs} +8 -8
- package/dist/{busy-Dj7Xn0Z0.cjs.map → busy-c_q_F8O0.cjs.map} +1 -1
- 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-DZFPRPqs.js → card-BADJHUMA.js} +16 -15
- package/dist/{card-DZFPRPqs.js.map → card-BADJHUMA.js.map} +1 -1
- package/dist/{card-BvPWVEJX.cjs → card-C_E944_Z.cjs} +10 -10
- package/dist/{card-BvPWVEJX.cjs.map → card-C_E944_Z.cjs.map} +1 -1
- 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-GSSjqo6w.js → checkbox-D7rvCrGk.js} +28 -9
- package/dist/{checkbox-GSSjqo6w.js.map → checkbox-D7rvCrGk.js.map} +1 -1
- package/dist/{checkbox-BC_37rsG.cjs → checkbox-ZqDoCagB.cjs} +10 -10
- package/dist/{checkbox-BC_37rsG.cjs.map → checkbox-ZqDoCagB.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-B19XS8Xc.cjs → chips-Cux635Qs.cjs} +18 -18
- package/dist/chips-Cux635Qs.cjs.map +1 -0
- package/dist/{chips-B9oAEfE_.js → chips-vdzIsesI.js} +37 -27
- package/dist/chips-vdzIsesI.js.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/{code-highlight-fSLrlgOb.cjs → code-highlight-C9lKek2p.cjs} +11 -11
- package/dist/{code-highlight-fSLrlgOb.cjs.map → code-highlight-C9lKek2p.cjs.map} +1 -1
- package/dist/{code-highlight-DCk5lJY-.js → code-highlight-D6yruol6.js} +6 -5
- package/dist/{code-highlight-DCk5lJY-.js.map → code-highlight-D6yruol6.js.map} +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/components-ByRyEzz5.cjs +73 -0
- package/dist/{components-CyD6a7gQ.cjs.map → components-ByRyEzz5.cjs.map} +1 -1
- package/dist/{components-COsM6sJZ.js → components-DSvPKR9Q.js} +2 -2
- package/dist/{components-COsM6sJZ.js.map → components-DSvPKR9Q.js.map} +1 -1
- 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-DtSy_PJd.cjs → cursor-glow-82y5h3E4.cjs} +1 -1
- package/dist/{cursor-glow-DtSy_PJd.cjs.map → cursor-glow-82y5h3E4.cjs.map} +1 -1
- package/dist/{cursor-glow-Ah7VXSj7.js → cursor-glow-C2YRrB8Z.js} +1 -1
- package/dist/{cursor-glow-Ah7VXSj7.js.map → cursor-glow-C2YRrB8Z.js.map} +1 -1
- package/dist/{date-range-ZAaQB22I.cjs → date-range-DJsavigf.cjs} +3 -3
- package/dist/date-range-DJsavigf.cjs.map +1 -0
- package/dist/{date-range-inline-Bl8qbiQF.js → date-range-inline-B87TDYI6.js} +1 -1
- package/dist/{date-range-inline-Bl8qbiQF.js.map → date-range-inline-B87TDYI6.js.map} +1 -1
- package/dist/date-range-inline-De-M0VmL.cjs +43 -0
- package/dist/{date-range-inline-m7nLjOMI.cjs.map → date-range-inline-De-M0VmL.cjs.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/{date-range-Sfyco9-n.js → date-range-tEX2Jx2j.js} +4 -4
- 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-7boauN6N.cjs.map → delay-BvVdfhAR.cjs.map} +1 -1
- package/dist/{delay-CgX6m0HN.js → delay-CZw37zps.js} +9 -8
- package/dist/{delay-CgX6m0HN.js.map → delay-CZw37zps.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-BHnk8l4q.cjs → details-Bhz8_whd.cjs} +9 -9
- package/dist/{details-BHnk8l4q.cjs.map → details-Bhz8_whd.cjs.map} +1 -1
- package/dist/{details-BPkUg8Cq.js → details-D7VTnLOh.js} +16 -15
- package/dist/{details-BPkUg8Cq.js.map → details-D7VTnLOh.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-service-NZEvyEK-.js → dialog-service-ClFrOWf4.js} +2 -2
- package/dist/{dialog-service-NZEvyEK-.js.map → dialog-service-ClFrOWf4.js.map} +1 -1
- package/dist/{dialog-service-VnW4gkmE.cjs → dialog-service-DcuAavp2.cjs} +1 -1
- package/dist/{dialog-service-VnW4gkmE.cjs.map → dialog-service-DcuAavp2.cjs.map} +1 -1
- 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-_khrhrZo.cjs → divider-S0bHwCCS.cjs} +2 -2
- package/dist/{divider-_khrhrZo.cjs.map → divider-S0bHwCCS.cjs.map} +1 -1
- package/dist/{divider-CW9a7MMj.js → divider-zS232JDr.js} +2 -2
- package/dist/{divider-CW9a7MMj.js.map → divider-zS232JDr.js.map} +1 -1
- 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-iQ7EOMP7.js → expand-BXt9SqAF.js} +13 -12
- package/dist/{expand-iQ7EOMP7.js.map → expand-BXt9SqAF.js.map} +1 -1
- package/dist/{expand-Cp7-PH8b.cjs → expand-Dr7TFXpl.cjs} +18 -18
- package/dist/{expand-Cp7-PH8b.cjs.map → expand-Dr7TFXpl.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{extra-IKAiJJhv.cjs → extra-BmZTXAp0.cjs} +3 -3
- package/dist/{extra-IKAiJJhv.cjs.map → extra-BmZTXAp0.cjs.map} +1 -1
- package/dist/{extra-wEpvEFbK.js → extra-COYhsOyZ.js} +2 -2
- package/dist/{extra-wEpvEFbK.js.map → extra-COYhsOyZ.js.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/float-CSRW-Rrd.cjs +1 -0
- package/dist/{float-D5rNC82i.cjs.map → float-CSRW-Rrd.cjs.map} +1 -1
- package/dist/{float-BQ_urmMs.js → float-DCXafWh6.js} +2 -2
- package/dist/{float-BQ_urmMs.js.map → float-DCXafWh6.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{flow-CUj0fDT_.js.map → flow-CqgDEIqK.js.map} +1 -1
- package/dist/{flow-Bbwn6dRN.cjs.map → flow-DSu4PLt1.cjs.map} +1 -1
- 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-DaeGmY-p.cjs.map → hashContent-kKvXKFa9.cjs.map} +1 -1
- package/dist/{hashContent-DYM21p6t.js.map → hashContent-nD2uWwi2.js.map} +1 -1
- package/dist/{icons-BDqiGXrO.js → icons-BbaI9Zf-.js} +9 -8
- package/dist/icons-BbaI9Zf-.js.map +1 -0
- package/dist/{icons-B57_93VV.cjs → icons-DPUeLS_Y.cjs} +3 -3
- package/dist/icons-DPUeLS_Y.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-WnWPIrBG.js → iframe-CEDOvkql.js} +5 -4
- package/dist/{iframe-WnWPIrBG.js.map → iframe-CEDOvkql.js.map} +1 -1
- package/dist/{iframe-DNHL3GIk.cjs → iframe-Ct50FYXq.cjs} +3 -3
- package/dist/{iframe-DNHL3GIk.cjs.map → iframe-Ct50FYXq.cjs.map} +1 -1
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +65 -59
- package/dist/{input-BiSrTcrR.cjs → input-DMjpf6V8.cjs} +2 -2
- package/dist/{input-BiSrTcrR.cjs.map → input-DMjpf6V8.cjs.map} +1 -1
- package/dist/{input-VaXHFrRn.js → input-Ri72dn5t.js} +1 -1
- package/dist/{input-VaXHFrRn.js.map → input-Ri72dn5t.js.map} +1 -1
- package/dist/{input-chip-Dy-AiP55.cjs → input-chip-BhjGVpc3.cjs} +9 -9
- package/dist/input-chip-BhjGVpc3.cjs.map +1 -0
- package/dist/{input-chip-QejNcRnS.js → input-chip-CI4__N8w.js} +13 -9
- 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-CZpaIHeT.cjs.map → intersection-D1v1UCVv.cjs.map} +1 -1
- package/dist/{intersection-BPLpqYEd.js.map → intersection-LfEsy29T.js.map} +1 -1
- 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-yxSlLybo.js → layout-BE2ld1IY.js} +1 -1
- package/dist/{layout-yxSlLybo.js.map → layout-BE2ld1IY.js.map} +1 -1
- package/dist/layout-D7xOqMkJ.cjs +17 -0
- package/dist/{layout-DNYG3phx.cjs.map → layout-D7xOqMkJ.cjs.map} +1 -1
- package/dist/{layout-4C-6_cre.cjs → layout-PZCF3kwl.cjs} +1 -1
- package/dist/{layout-4C-6_cre.cjs.map → layout-PZCF3kwl.cjs.map} +1 -1
- package/dist/{layout-CnsXeCAy.js → layout-uAQpJN31.js} +20 -19
- package/dist/{layout-CnsXeCAy.js.map → layout-uAQpJN31.js.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/{lightbox-BrI1Z31s.js → lightbox-C0OEHns9.js} +10 -9
- package/dist/{lightbox-BrI1Z31s.js.map → lightbox-C0OEHns9.js.map} +1 -1
- package/dist/{lightbox-CmACf0t5.cjs → lightbox-cXRnvHMN.cjs} +20 -20
- package/dist/{lightbox-CmACf0t5.cjs.map → lightbox-cXRnvHMN.cjs.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-swIL9VDv.cjs → list-CmJ5h35b.cjs} +5 -5
- package/dist/{list-swIL9VDv.cjs.map → list-CmJ5h35b.cjs.map} +1 -1
- package/dist/{list-Cm-jjXxM.js → list-d1mHar5p.js} +14 -13
- package/dist/{list-Cm-jjXxM.js.map → list-d1mHar5p.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-3llHwB-8.cjs → litElement.mixin-Bj2q1yPw.cjs} +1 -1
- package/dist/{litElement.mixin-3llHwB-8.cjs.map → litElement.mixin-Bj2q1yPw.cjs.map} +1 -1
- package/dist/{litElement.mixin-6jJYHCrZ.js → litElement.mixin-CncaUoxz.js} +1 -1
- package/dist/{litElement.mixin-6jJYHCrZ.js.map → litElement.mixin-CncaUoxz.js.map} +1 -1
- package/dist/{magnetic-BZGFxAWG.js → magnetic-Dj52WplI.js} +2 -2
- package/dist/{magnetic-BZGFxAWG.js.map → magnetic-Dj52WplI.js.map} +1 -1
- package/dist/{magnetic-Dux4QwO4.cjs → magnetic-aBBnj_vk.cjs} +1 -1
- package/dist/{magnetic-Dux4QwO4.cjs.map → magnetic-aBBnj_vk.cjs.map} +1 -1
- package/dist/{mailbox-D6LkQcN5.cjs → mailbox-BmChskZc.cjs} +59 -59
- package/dist/{mailbox-D6LkQcN5.cjs.map → mailbox-BmChskZc.cjs.map} +1 -1
- package/dist/{mailbox-BuvsVaAQ.js → mailbox-C4-E93be.js} +13 -12
- package/dist/{mailbox-BuvsVaAQ.js.map → mailbox-C4-E93be.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-CQiKAxC3.js → map-DHyYLhvy.js} +6 -5
- package/dist/{map-CQiKAxC3.js.map → map-DHyYLhvy.js.map} +1 -1
- package/dist/{map-D5NN4VET.cjs → map-DYEvlNl0.cjs} +7 -7
- package/dist/{map-D5NN4VET.cjs.map → map-DYEvlNl0.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{menu-CkgMO9K5.cjs → menu-BlPTI6H9.cjs} +3 -3
- package/dist/{menu-CkgMO9K5.cjs.map → menu-BlPTI6H9.cjs.map} +1 -1
- package/dist/{menu-C1x04YZw.js → menu-DFDBADp4.js} +3 -3
- package/dist/{menu-C1x04YZw.js.map → menu-DFDBADp4.js.map} +1 -1
- 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-BnBgxjF-.js → notification-DGpv8g2H.js} +4 -4
- package/dist/{notification-BnBgxjF-.js.map → notification-DGpv8g2H.js.map} +1 -1
- package/dist/notification-DKVWYhqs.cjs +23 -0
- package/dist/{notification-CZFEhWxc.cjs.map → notification-DKVWYhqs.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-DBO8xZwd.js → option-BD2eh458.js} +6 -5
- package/dist/{option-DBO8xZwd.js.map → option-BD2eh458.js.map} +1 -1
- package/dist/{option-BrxCVwSx.cjs → option-LtSDy2xf.cjs} +5 -5
- package/dist/{option-BrxCVwSx.cjs.map → option-LtSDy2xf.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-stack-DQey9Qph.cjs.map → overlay-stack-CEYGD9T1.cjs.map} +1 -1
- package/dist/{overlay-stack-DT1SdaGW.js.map → overlay-stack-Ca4EK2Mu.js.map} +1 -1
- package/dist/page.cjs +2 -2
- package/dist/page.cjs.map +1 -1
- package/dist/page.js +5 -5
- package/dist/{progress-Db2e4_Zd.cjs → progress-B5ChDPbB.cjs} +2 -2
- package/dist/{progress-Db2e4_Zd.cjs.map → progress-B5ChDPbB.cjs.map} +1 -1
- package/dist/{progress-DeiHxXo7.js → progress-CE1Pk2hi.js} +2 -2
- package/dist/{progress-DeiHxXo7.js.map → progress-CE1Pk2hi.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{provide-DHnhQtCH.cjs → provide-BZ9lq_Be.cjs} +1 -1
- package/dist/{provide-DHnhQtCH.cjs.map → provide-BZ9lq_Be.cjs.map} +1 -1
- package/dist/{provide-C1aQhxYo.js → provide-jn1Fj1vv.js} +1 -1
- package/dist/{provide-C1aQhxYo.js.map → provide-jn1Fj1vv.js.map} +1 -1
- 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-Cspwd-Vw.cjs.map → radio-group-Cd9pZ2MR.cjs.map} +1 -1
- package/dist/{radio-group-zSO0AkJf.js → radio-group-CyRHgIF3.js} +7 -6
- package/dist/{radio-group-zSO0AkJf.js.map → radio-group-CyRHgIF3.js.map} +1 -1
- 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-D-L12p7G.js.map → reduced-motion-B83yZbcO.js.map} +1 -1
- package/dist/{reduced-motion-Ds05GPyz.cjs.map → reduced-motion-DR32yKEO.cjs.map} +1 -1
- package/dist/{rxjs-utils-BSjmI9-Q.js.map → rxjs-utils-Bldch1RO.js.map} +1 -1
- package/dist/{rxjs-utils-DCsfzeap.cjs.map → rxjs-utils-hAgKC7vk.cjs.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{scroll-QMCmbbDv.cjs → scroll-C_iNOi7E.cjs} +2 -2
- package/dist/{scroll-QMCmbbDv.cjs.map → scroll-C_iNOi7E.cjs.map} +1 -1
- package/dist/{scroll-cBDzye64.js → scroll-DoliwpRu.js} +7 -6
- package/dist/{scroll-cBDzye64.js.map → scroll-DoliwpRu.js.map} +1 -1
- package/dist/{search-C4dFHYbX.js.map → search-BlGJ6uJv.js.map} +1 -1
- package/dist/{search-Ds8tt7Et.cjs.map → search-C8eAOzBm.cjs.map} +1 -1
- package/dist/{select-Ct37l3lg.cjs → select-CWWuZ2iJ.cjs} +2 -2
- package/dist/{select-Ct37l3lg.cjs.map → select-CWWuZ2iJ.cjs.map} +1 -1
- package/dist/{select-c6HbWvKP.js → select-_vHPXi30.js} +3 -3
- package/dist/{select-c6HbWvKP.js.map → select-_vHPXi30.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-BMXcUiIm.js → sheet-i1KtxGIj.js} +5 -5
- package/dist/{sheet-BMXcUiIm.js.map → sheet-i1KtxGIj.js.map} +1 -1
- package/dist/{sheet-CQec-bCV.cjs → sheet-r0oEYIdi.cjs} +2 -2
- package/dist/{sheet-CQec-bCV.cjs.map → sheet-r0oEYIdi.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-Dumvr1HT.cjs → sheet.service-Cr13Oo6G.cjs} +1 -1
- package/dist/{sheet.service-Dumvr1HT.cjs.map → sheet.service-Cr13Oo6G.cjs.map} +1 -1
- package/dist/{sheet.service-BcPV3Du4.js → sheet.service-DUO5_kmI.js} +3 -3
- package/dist/{sheet.service-BcPV3Du4.js.map → sheet.service-DUO5_kmI.js.map} +1 -1
- 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 +7 -6
- package/dist/skills/breadcrumb.md +53 -0
- package/dist/skills/kbd.md +40 -0
- package/dist/skills/schmancy/INDEX.md +7 -6
- 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 +1 -1
- 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 +1 -1
- 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-Bu3EQLv2.cjs → sound.service-BjSoGjmT.cjs} +1 -1
- package/dist/{sound.service-Bu3EQLv2.cjs.map → sound.service-BjSoGjmT.cjs.map} +1 -1
- package/dist/{sound.service-m3BrSfuH.js → sound.service-cdkw3Wkv.js} +1 -1
- package/dist/{sound.service-m3BrSfuH.js.map → sound.service-cdkw3Wkv.js.map} +1 -1
- 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-BtQVyqMy.cjs.map → src-Bemk2C2P.cjs.map} +1 -1
- package/dist/{src-BLngW2bl.js → src-f5a3W9Mj.js} +98 -91
- package/dist/{src-BLngW2bl.js.map → src-f5a3W9Mj.js.map} +1 -1
- 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-DYqDLAvT.js.map → store-Bmj6rvZY.js.map} +1 -1
- package/dist/{store-CorvD3bT.cjs.map → store-CO4nJyGj.cjs.map} +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +1 -1
- package/dist/surface-CDufon40.cjs +7 -0
- package/dist/{surface-BjKZoJxK.cjs.map → surface-CDufon40.cjs.map} +1 -1
- package/dist/surface-CkEYJCae.js +22 -0
- package/dist/{surface-pK8hME5c.js.map → surface-CkEYJCae.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{surface.mixin-C5sDI1-_.cjs → surface.mixin-CSKqQH-0.cjs} +2 -2
- package/dist/{surface.mixin-C5sDI1-_.cjs.map → surface.mixin-CSKqQH-0.cjs.map} +1 -1
- package/dist/{surface.mixin-CBNRpJum.js → surface.mixin-DqMwoddO.js} +1 -1
- package/dist/{surface.mixin-CBNRpJum.js.map → surface.mixin-DqMwoddO.js.map} +1 -1
- 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-CiqgZzSd.cjs → table-DWc1mkpj.cjs} +3 -3
- package/dist/{table-CiqgZzSd.cjs.map → table-DWc1mkpj.cjs.map} +1 -1
- package/dist/{table-BXIHX9h4.js → table-P6VGG7NK.js} +4 -4
- package/dist/{table-BXIHX9h4.js.map → table-P6VGG7NK.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-nbV5eblZ.js → tabs-CjGjGrqY.js} +13 -12
- package/dist/{tabs-nbV5eblZ.js.map → tabs-CjGjGrqY.js.map} +1 -1
- package/dist/{tabs-CKa-W4qA.cjs → tabs-DGJEKuhC.cjs} +4 -4
- package/dist/{tabs-CKa-W4qA.cjs.map → tabs-DGJEKuhC.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{tailwind.mixin-BF1Huas7.cjs → tailwind.mixin-Cpa-VnnX.cjs} +2 -2
- package/dist/tailwind.mixin-Cpa-VnnX.cjs.map +1 -0
- package/dist/{tailwind.mixin-BCJOOX1_.js → tailwind.mixin-DufHBjmb.js} +57 -63
- package/dist/tailwind.mixin-DufHBjmb.js.map +1 -0
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-D7q8exMg.js → textarea-DZT_Ofp5.js} +42 -28
- 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-Da4SPq9X.cjs.map → theme-CCKqaksQ.cjs.map} +1 -1
- package/dist/{theme-_VPV6Bxh.js → theme-CEc32pAv.js} +13 -12
- package/dist/{theme-_VPV6Bxh.js.map → theme-CEc32pAv.js.map} +1 -1
- package/dist/theme-button-BsJcv-Zv.cjs +8 -0
- package/dist/{theme-button-Ci8VQ7KW.cjs.map → theme-button-BsJcv-Zv.cjs.map} +1 -1
- package/dist/{theme-button--sX8A-m1.js → theme-button-dOiAvdKU.js} +4 -3
- package/dist/{theme-button--sX8A-m1.js.map → theme-button-dOiAvdKU.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.events-Cv7N4Toe.js.map → theme.events-Bw3mYjUA.js.map} +1 -1
- package/dist/{theme.events-DM4H5F2d.cjs.map → theme.events-EznKK2Y0.cjs.map} +1 -1
- package/dist/{theme.interface-Da23QAYb.cjs.map → theme.interface-CM26m9te.cjs.map} +1 -1
- package/dist/{theme.interface-CXloMUCw.js.map → theme.interface-FAUIgbIq.js.map} +1 -1
- package/dist/theme.js +5 -5
- package/dist/{theme.service-C_tjlqgy.cjs → theme.service-ETiKUwVy.cjs} +1 -1
- package/dist/{theme.service-C_tjlqgy.cjs.map → theme.service-ETiKUwVy.cjs.map} +1 -1
- package/dist/{theme.service-D9lEas89.js → theme.service-_qP5WvB9.js} +2 -2
- package/dist/{theme.service-D9lEas89.js.map → theme.service-_qP5WvB9.js.map} +1 -1
- 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-D7BIeDVB.cjs.map → tslib.es6-Bd-92OW3.cjs.map} +1 -1
- package/dist/tslib.es6-CI1onEZb.js +7 -0
- package/dist/{tslib.es6-ErZEp3OO.js.map → tslib.es6-CI1onEZb.js.map} +1 -1
- package/dist/typewriter-ByIL2Mh-.cjs +123 -0
- package/dist/{typewriter-B2TnHPjw.cjs.map → typewriter-ByIL2Mh-.cjs.map} +1 -1
- package/dist/{typewriter-BrZNa8T-.js → typewriter-vOQ3bDLb.js} +8 -7
- package/dist/{typewriter-BrZNa8T-.js.map → typewriter-vOQ3bDLb.js.map} +1 -1
- 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-CoU7M2YS.js → utils-Cq0m3LYo.js} +3 -3
- package/dist/{utils-CoU7M2YS.js.map → utils-Cq0m3LYo.js.map} +1 -1
- package/dist/{utils-BcaKtQuA.cjs → utils-D2kE-6zc.cjs} +1 -1
- package/dist/{utils-BcaKtQuA.cjs.map → utils-D2kE-6zc.cjs.map} +1 -1
- 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-Uii13x_r.cjs → window-BS7ZQjgH.cjs} +2 -2
- package/dist/window-BS7ZQjgH.cjs.map +1 -0
- package/dist/{window-CM1ycigo.js → window-WnAihpsA.js} +7 -7
- 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 +17 -26
- package/skills/schmancy/INDEX.md +7 -6
- package/skills/schmancy/breadcrumb.md +53 -0
- package/skills/schmancy/kbd.md +40 -0
- package/skills/schmancy/skeleton.md +40 -0
- package/skills/schmancy/splash-screen.md +60 -0
- package/skills/schmancy/switch.md +58 -0
- package/skills/schmancy/tooltip.md +1 -1
- package/skills/schmancy/visually-hidden.md +41 -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/dist/audio-DtYYgzYD.cjs.map +0 -1
- 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.map +0 -1
- package/dist/chips-B19XS8Xc.cjs.map +0 -1
- package/dist/chips-B9oAEfE_.js.map +0 -1
- package/dist/components-CyD6a7gQ.cjs +0 -73
- package/dist/date-range-Sfyco9-n.js.map +0 -1
- package/dist/date-range-ZAaQB22I.cjs.map +0 -1
- package/dist/date-range-inline-m7nLjOMI.cjs +0 -43
- package/dist/delay-7boauN6N.cjs +0 -9
- package/dist/float-D5rNC82i.cjs +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/icons-B57_93VV.cjs.map +0 -1
- package/dist/icons-BDqiGXrO.js.map +0 -1
- package/dist/input-chip-Dy-AiP55.cjs.map +0 -1
- package/dist/input-chip-QejNcRnS.js.map +0 -1
- package/dist/layout-DNYG3phx.cjs +0 -17
- package/dist/notification-CZFEhWxc.cjs +0 -23
- package/dist/radio-group-Cspwd-Vw.cjs +0 -40
- package/dist/src-BtQVyqMy.cjs +0 -269
- package/dist/surface-BjKZoJxK.cjs +0 -7
- package/dist/surface-pK8hME5c.js +0 -21
- package/dist/tailwind.mixin-BCJOOX1_.js.map +0 -1
- 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.map +0 -1
- package/dist/theme-Da4SPq9X.cjs +0 -181
- package/dist/theme-button-Ci8VQ7KW.cjs +0 -8
- package/dist/typewriter-B2TnHPjw.cjs +0 -123
- package/dist/window-CM1ycigo.js.map +0 -1
- 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/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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mhmo91/schmancy",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.6",
|
|
4
4
|
"description": "UI library build with web components",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"customElements": "custom-elements.json",
|
|
@@ -53,7 +53,10 @@
|
|
|
53
53
|
"test": "vitest run",
|
|
54
54
|
"test:watch": "vitest",
|
|
55
55
|
"test:ui": "vitest --ui",
|
|
56
|
-
"test:coverage": "vitest run --coverage"
|
|
56
|
+
"test:coverage": "vitest run --coverage",
|
|
57
|
+
"knip": "knip",
|
|
58
|
+
"format": "prettier --write 'src/**/*.{ts,css,scss}' 'mixins/**/*.{ts,css}'",
|
|
59
|
+
"format:check": "prettier --check 'src/**/*.{ts,css,scss}' 'mixins/**/*.{ts,css}'"
|
|
57
60
|
},
|
|
58
61
|
"author": "@mhmo91",
|
|
59
62
|
"license": "Apache-2.0",
|
|
@@ -67,53 +70,41 @@
|
|
|
67
70
|
"@lit-labs/virtualizer": "^2.1.1",
|
|
68
71
|
"@lit/context": "^1.1.6",
|
|
69
72
|
"@material/material-color-utilities": "^0.4.0",
|
|
70
|
-
"@material/mwc-base": "^0.27.0",
|
|
71
73
|
"@material/web": "^2.4.1",
|
|
72
|
-
"@rollup/plugin-strip": "^3.0.4",
|
|
73
|
-
"@rollup/plugin-terser": "^1.0.0",
|
|
74
|
-
"@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
|
|
75
74
|
"@types/cleave.js": "^1.4.12",
|
|
76
|
-
"@webcomponents/scoped-custom-element-registry": "^0.0.10",
|
|
77
|
-
"@webcomponents/webcomponentsjs": "^2.8.0",
|
|
78
75
|
"cleave.js": "^1.6.0",
|
|
79
76
|
"dayjs": "^1.11.20",
|
|
80
|
-
"fastest-levenshtein": "^1.0.16",
|
|
81
77
|
"highlight.js": "^11.11.1",
|
|
82
78
|
"immer": "^11.1.4",
|
|
83
79
|
"jsqr": "^1.4.0",
|
|
84
80
|
"lit": "^3.3.2",
|
|
85
|
-
"playground-elements": "^0.21.2",
|
|
86
81
|
"rxjs": "^7.8.2",
|
|
87
|
-
"tippy.js": "^6.3.7",
|
|
88
82
|
"ts-is-present": "^1.2.2",
|
|
89
|
-
"typeit": "^8.8.7"
|
|
90
|
-
"typescript": "^5.9.3",
|
|
91
|
-
"uuid": "^13.0.0",
|
|
92
|
-
"web-component-analyzer": "^2.0.0"
|
|
83
|
+
"typeit": "^8.8.7"
|
|
93
84
|
},
|
|
94
85
|
"devDependencies": {
|
|
95
|
-
"@
|
|
96
|
-
"@
|
|
86
|
+
"@rollup/plugin-strip": "^3.0.4",
|
|
87
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
97
88
|
"@tailwindcss/postcss": "^4.2.1",
|
|
98
89
|
"@tailwindcss/vite": "^4.2.1",
|
|
99
90
|
"@types/node": "^25.5.0",
|
|
100
|
-
"@
|
|
101
|
-
"@
|
|
91
|
+
"@vitest/browser-playwright": "^4.1.4",
|
|
92
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
102
93
|
"@vitest/ui": "^4.1.0",
|
|
103
|
-
"
|
|
104
|
-
"c8": "^11.0.0",
|
|
105
|
-
"concurrently": "^9.2.1",
|
|
106
|
-
"deepmerge": "^4.3.1",
|
|
107
|
-
"eslint": "^10.0.3",
|
|
94
|
+
"axe-core": "^4.11.3",
|
|
108
95
|
"happy-dom": "^20.8.4",
|
|
96
|
+
"knip": "^6.6.0",
|
|
97
|
+
"playwright": "^1.59.1",
|
|
109
98
|
"postcss": "^8.5.8",
|
|
110
99
|
"prettier": "^3.8.1",
|
|
111
100
|
"rollup-plugin-copy": "^3.5.0",
|
|
112
101
|
"sass": "^1.98.0",
|
|
113
102
|
"tailwindcss": "^4.2.1",
|
|
103
|
+
"ts-lit-plugin": "^2.0.2",
|
|
104
|
+
"typescript": "^5.9.3",
|
|
114
105
|
"vite": "^8.0.0",
|
|
115
|
-
"
|
|
116
|
-
"
|
|
106
|
+
"vitest": "^4.1.0",
|
|
107
|
+
"web-component-analyzer": "^2.0.0"
|
|
117
108
|
},
|
|
118
109
|
"peerDependencies": {
|
|
119
110
|
"lit": "^3.2.1",
|
package/skills/schmancy/INDEX.md
CHANGED
|
@@ -16,25 +16,25 @@ The framework pieces — touch before components.
|
|
|
16
16
|
## Components by job
|
|
17
17
|
|
|
18
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)
|
|
19
|
+
[Typography](./typography.md) · [Icons](./icons.md) · [Avatar](./avatar.md) · [Divider](./divider.md) · [Badge](./badge.md) · [Kbd](./kbd.md) · [Code Highlight](./code-highlight.md) · [Typewriter](./typewriter.md) · [JSON](./json.md) · [Iframe](./iframe.md) · [Map](./map.md) · [Charts](./charts.md)
|
|
20
20
|
|
|
21
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)
|
|
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) · [Splash Screen](./splash-screen.md)
|
|
23
23
|
|
|
24
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)
|
|
25
|
+
[Form](./form.md) · [Input](./input.md) · [Textarea](./textarea.md) · [Select](./select.md) · [Autocomplete](./autocomplete.md) · [Option](./option.md) · [Checkbox](./checkbox.md) · [Switch](./switch.md) · [Radio Group](./radio-group.md) · [Chips](./chips.md) · [Date Range](./date-range.md) · [Date Range Inline](./date-range-inline.md) · [Range](./range.md) · [Extra (Country/Timezone)](./extra.md)
|
|
26
26
|
|
|
27
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)
|
|
28
|
+
[Breadcrumb](./breadcrumb.md) · [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
29
|
|
|
30
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)
|
|
31
|
+
[Dialog](./dialog.md) · [Sheet](./sheet.md) · [Notification](./notification.md) · [Menu](./menu.md) · [Dropdown](./dropdown.md) · [Tooltip (directive)](./tooltip.md) · [Lightbox](./lightbox.md) · [Expand](./expand.md)
|
|
32
32
|
|
|
33
33
|
### Interactive
|
|
34
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
35
|
|
|
36
36
|
### Feedback
|
|
37
|
-
[Progress](./progress.md) · [Busy](./busy.md) · [Connectivity](./connectivity.md) · [Delay](./delay.md)
|
|
37
|
+
[Progress](./progress.md) · [Busy](./busy.md) · [Skeleton](./skeleton.md) · [Connectivity](./connectivity.md) · [Delay](./delay.md)
|
|
38
38
|
|
|
39
39
|
### Domain
|
|
40
40
|
[Mailbox](./mailbox.md)
|
|
@@ -57,6 +57,7 @@ The framework pieces — touch before components.
|
|
|
57
57
|
[Discovery](./discovery.md) — cross-shadow component lookup.
|
|
58
58
|
[RxJS Utils](./rxjs-utils.md) — `waitForElement`, `waitUntil`, `mutationObserver`.
|
|
59
59
|
[Utils](./utils.md) — `similarity`, `numbers`, `overlayStack`, `intersection$`, `hashContent`.
|
|
60
|
+
[Visually Hidden](./visually-hidden.md) — screen-reader-only content wrapper.
|
|
60
61
|
[Audio](./audio.md) — synthesized feedback sounds.
|
|
61
62
|
|
|
62
63
|
## Conventions
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# schmancy-breadcrumb
|
|
2
|
+
|
|
3
|
+
> Breadcrumb navigation with auto-inserted separators and ARIA landmark semantics.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-breadcrumb>
|
|
8
|
+
<schmancy-breadcrumb-item href="/">Home</schmancy-breadcrumb-item>
|
|
9
|
+
<schmancy-breadcrumb-item href="/projects">Projects</schmancy-breadcrumb-item>
|
|
10
|
+
<schmancy-breadcrumb-item current>Dashboard</schmancy-breadcrumb-item>
|
|
11
|
+
</schmancy-breadcrumb>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## schmancy-breadcrumb
|
|
15
|
+
|
|
16
|
+
Container. Renders a `<nav aria-label="Breadcrumb">` and inserts a separator element between each slotted item.
|
|
17
|
+
|
|
18
|
+
| Property | Type | Default | Description |
|
|
19
|
+
|----------|------|---------|-------------|
|
|
20
|
+
| separator | string | `'/'` | Character or string rendered between items. Hidden from assistive tech via `aria-hidden="true"`. |
|
|
21
|
+
|
|
22
|
+
| Part | Description |
|
|
23
|
+
|------|-------------|
|
|
24
|
+
| separator | Each inserted separator element. Style bulk via `schmancy-breadcrumb::part(separator)`. |
|
|
25
|
+
|
|
26
|
+
The host sets `aria-label="Breadcrumb"` on connection if none was already set.
|
|
27
|
+
|
|
28
|
+
## schmancy-breadcrumb-item
|
|
29
|
+
|
|
30
|
+
Individual crumb. Renders as `<a>` when `href` is set, otherwise `<span>`.
|
|
31
|
+
|
|
32
|
+
| Property | Type | Default | Description |
|
|
33
|
+
|----------|------|---------|-------------|
|
|
34
|
+
| href | string | `''` | When set (and `current` is false), renders as an anchor. |
|
|
35
|
+
| current | boolean | `false` | Marks this item as `aria-current="page"`. Renders as a plain `<span>` even if `href` is set. |
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
```html
|
|
39
|
+
<!-- Custom separator -->
|
|
40
|
+
<schmancy-breadcrumb separator="›">
|
|
41
|
+
<schmancy-breadcrumb-item href="/">Home</schmancy-breadcrumb-item>
|
|
42
|
+
<schmancy-breadcrumb-item href="/docs">Docs</schmancy-breadcrumb-item>
|
|
43
|
+
<schmancy-breadcrumb-item current>API</schmancy-breadcrumb-item>
|
|
44
|
+
</schmancy-breadcrumb>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```html
|
|
48
|
+
<!-- Two-level (just two crumbs) -->
|
|
49
|
+
<schmancy-breadcrumb>
|
|
50
|
+
<schmancy-breadcrumb-item href="/users">Users</schmancy-breadcrumb-item>
|
|
51
|
+
<schmancy-breadcrumb-item current>Jane Doe</schmancy-breadcrumb-item>
|
|
52
|
+
</schmancy-breadcrumb>
|
|
53
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# schmancy-kbd
|
|
2
|
+
|
|
3
|
+
> Render a keyboard shortcut hint. Semantically a `<kbd>` element; visually styled as a pressed key.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
Press <schmancy-kbd>⌘</schmancy-kbd> + <schmancy-kbd>K</schmancy-kbd> to search.
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Properties
|
|
11
|
+
| Property | Type | Default | Description |
|
|
12
|
+
|----------|------|---------|-------------|
|
|
13
|
+
| size | `'sm'\|'md'` | `'md'` | Smaller variant for inline text. |
|
|
14
|
+
|
|
15
|
+
## Parts
|
|
16
|
+
| Part | Description |
|
|
17
|
+
|------|-------------|
|
|
18
|
+
| base | The inner native `<kbd>` element. |
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
```html
|
|
22
|
+
<!-- Inline combo -->
|
|
23
|
+
<schmancy-typography>
|
|
24
|
+
<schmancy-kbd size="sm">Shift</schmancy-kbd>
|
|
25
|
+
+
|
|
26
|
+
<schmancy-kbd size="sm">Tab</schmancy-kbd>
|
|
27
|
+
to move backwards
|
|
28
|
+
</schmancy-typography>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```html
|
|
32
|
+
<!-- Command palette shortcut -->
|
|
33
|
+
<div class="flex items-center gap-2">
|
|
34
|
+
Open command palette
|
|
35
|
+
<span>
|
|
36
|
+
<schmancy-kbd>⌘</schmancy-kbd>
|
|
37
|
+
<schmancy-kbd>K</schmancy-kbd>
|
|
38
|
+
</span>
|
|
39
|
+
</div>
|
|
40
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# schmancy-skeleton
|
|
2
|
+
|
|
3
|
+
> Placeholder shimmer surface shown while content loads. Reduced-motion-aware.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-skeleton width="12rem" height="1rem"></schmancy-skeleton>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Properties
|
|
11
|
+
| Property | Type | Default | Description |
|
|
12
|
+
|----------|------|---------|-------------|
|
|
13
|
+
| shape | `'rect'\|'circle'\|'text'` | `'rect'` | Visual shape. `circle` forces 50% border radius; `text` defaults height to `1em`. |
|
|
14
|
+
| width | string (CSS length) | `100%` | Any CSS length (e.g. `12rem`, `50%`). |
|
|
15
|
+
| height | string (CSS length) | `1rem` (or `1em` when `shape=text`) | Any CSS length. |
|
|
16
|
+
| radius | string (CSS length) | `0.25rem` | Corner radius; ignored when `shape=circle`. |
|
|
17
|
+
|
|
18
|
+
## Parts
|
|
19
|
+
| Part | Description |
|
|
20
|
+
|------|-------------|
|
|
21
|
+
| surface | The shimmering inner surface. |
|
|
22
|
+
|
|
23
|
+
## Accessibility
|
|
24
|
+
The host sets `role="status" aria-busy="true" aria-label="Loading"` on connection, so assistive tech announces the loading region. Under `prefers-reduced-motion: reduce`, the shimmer animation is removed and a flat surface color is used.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
```html
|
|
28
|
+
<!-- Single line of text -->
|
|
29
|
+
<schmancy-skeleton shape="text" width="60%"></schmancy-skeleton>
|
|
30
|
+
|
|
31
|
+
<!-- Avatar placeholder -->
|
|
32
|
+
<schmancy-skeleton shape="circle" width="48px" height="48px"></schmancy-skeleton>
|
|
33
|
+
|
|
34
|
+
<!-- Card placeholder -->
|
|
35
|
+
<schmancy-card>
|
|
36
|
+
<schmancy-skeleton width="100%" height="160px" radius="0.5rem"></schmancy-skeleton>
|
|
37
|
+
<schmancy-skeleton shape="text" width="80%"></schmancy-skeleton>
|
|
38
|
+
<schmancy-skeleton shape="text" width="40%"></schmancy-skeleton>
|
|
39
|
+
</schmancy-card>
|
|
40
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# schmancy-splash-screen
|
|
2
|
+
|
|
3
|
+
> Full-viewport splash overlay that fades out once ready; consumer supplies the visuals.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-splash-screen min-duration="1200">
|
|
8
|
+
<my-logo slot="splash"></my-logo>
|
|
9
|
+
<my-app></my-app>
|
|
10
|
+
</schmancy-splash-screen>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The `splash` slot holds the overlay content (logo, animation, whatever). The default slot is the real app, revealed after the splash dismisses. The overlay is empty by default — no built-in spinner, no hidden dependencies. Bring your own visuals.
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
| Property | Type | Default | Description |
|
|
17
|
+
|----------|------|---------|-------------|
|
|
18
|
+
| minDuration | number | `1500` | Minimum ms the splash stays visible (prevents flash on fast loads). |
|
|
19
|
+
| auto | boolean | `false` | When true, dismiss on the `minDuration` timer alone. When false, also wait for a `ready` signal. |
|
|
20
|
+
| initiallyHidden | boolean | `false` | When true, the splash starts hidden. Use with `show()` for imperative control (e.g. between route transitions). |
|
|
21
|
+
|
|
22
|
+
## Methods
|
|
23
|
+
| Method | Description |
|
|
24
|
+
|--------|-------------|
|
|
25
|
+
| `ready()` | Signal that the app is ready — dismisses once `minDuration` has also elapsed. |
|
|
26
|
+
| `show()` | Force the splash back on (e.g. re-show between route transitions). |
|
|
27
|
+
|
|
28
|
+
## Events
|
|
29
|
+
| Event | Detail | Description |
|
|
30
|
+
|-------|--------|-------------|
|
|
31
|
+
| schmancy-splash-done | `void` | Fires when the splash finishes dismissing. |
|
|
32
|
+
|
|
33
|
+
## CSS custom properties
|
|
34
|
+
| Property | Default | Description |
|
|
35
|
+
|----------|---------|-------------|
|
|
36
|
+
| `--schmancy-splash-background` | `var(--schmancy-sys-color-surface-containerLowest, #000)` | Splash layer background. |
|
|
37
|
+
| `--schmancy-splash-transition` | `500ms` | Fade duration. |
|
|
38
|
+
|
|
39
|
+
## Examples
|
|
40
|
+
```html
|
|
41
|
+
<!-- Wait for explicit ready signal (default) -->
|
|
42
|
+
<schmancy-splash-screen min-duration="800">
|
|
43
|
+
<img slot="splash" src="/logo.svg" />
|
|
44
|
+
<main-app></main-app>
|
|
45
|
+
</schmancy-splash-screen>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// Imperative: signal ready when data loads
|
|
50
|
+
const splash = document.querySelector('schmancy-splash-screen')!
|
|
51
|
+
dataStore.loaded$.subscribe(() => splash.ready())
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```html
|
|
55
|
+
<!-- Auto mode: dismisses purely on the timer -->
|
|
56
|
+
<schmancy-splash-screen min-duration="1200" auto>
|
|
57
|
+
<schmancy-typography type="display" token="lg" slot="splash">Welcome</schmancy-typography>
|
|
58
|
+
<app-shell></app-shell>
|
|
59
|
+
</schmancy-splash-screen>
|
|
60
|
+
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# schmancy-switch
|
|
2
|
+
|
|
3
|
+
> Binary on/off control. Form-associated, ARIA `role="switch"`. Use for immediate state changes; use `<schmancy-checkbox>` for form selections.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<schmancy-switch name="notifications" label="Email notifications" @change=${(e) => handle(e.detail.value)}>
|
|
8
|
+
</schmancy-switch>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
| Property | Type | Default | Description |
|
|
13
|
+
|----------|------|---------|-------------|
|
|
14
|
+
| checked | boolean | `false` | Current on/off state. Reflected as attribute. |
|
|
15
|
+
| name | string | `''` | Form submission name. |
|
|
16
|
+
| value | string | `'on'` | Value submitted when checked. |
|
|
17
|
+
| label | string | `''` | ARIA label on the inner button; also used by axe. |
|
|
18
|
+
| required | boolean | `false` | Must be on for form validity. |
|
|
19
|
+
| disabled | boolean | `false` | Disables interaction. |
|
|
20
|
+
|
|
21
|
+
## Events
|
|
22
|
+
| Event | Detail | Description |
|
|
23
|
+
|-------|--------|-------------|
|
|
24
|
+
| change | `{ value: boolean }` | Fires when the state toggles (via click or Enter/Space). |
|
|
25
|
+
|
|
26
|
+
## Parts
|
|
27
|
+
| Part | Description |
|
|
28
|
+
|------|-------------|
|
|
29
|
+
| track | Background track element. |
|
|
30
|
+
| thumb | Moving thumb element. |
|
|
31
|
+
|
|
32
|
+
## States
|
|
33
|
+
| State | When |
|
|
34
|
+
|-------|------|
|
|
35
|
+
| `:state(checked)` | While the switch is on. Target via `schmancy-switch:state(checked) { … }`. |
|
|
36
|
+
|
|
37
|
+
## Form association
|
|
38
|
+
Uses `ElementInternals` — participates in `<form>` submission natively. Contributes `name=value` when checked; omitted when unchecked. `formResetCallback` restores the initial `checked` attribute. `formDisabledCallback` propagates `<fieldset disabled>`.
|
|
39
|
+
|
|
40
|
+
## Examples
|
|
41
|
+
```html
|
|
42
|
+
<!-- Inside a form -->
|
|
43
|
+
<schmancy-form>
|
|
44
|
+
<schmancy-switch name="marketing" label="Marketing emails"></schmancy-switch>
|
|
45
|
+
<schmancy-switch name="product" label="Product updates" checked></schmancy-switch>
|
|
46
|
+
<schmancy-button type="submit">Save</schmancy-button>
|
|
47
|
+
</schmancy-form>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<!-- Required toggle (must be on to submit) -->
|
|
52
|
+
<schmancy-switch name="agree" label="I agree" required></schmancy-switch>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<!-- Custom submitted value -->
|
|
57
|
+
<schmancy-switch name="mode" value="dark" label="Dark mode"></schmancy-switch>
|
|
58
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# tooltip (directive)
|
|
2
2
|
|
|
3
|
-
> Lit directive that adds a positioned tooltip to any element on hover/focus.
|
|
3
|
+
> Lit directive that adds a positioned tooltip to any element on hover/focus. The `<schmancy-tooltip>` component was removed — use this directive.
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
6
|
```typescript
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# schmancy-visually-hidden
|
|
2
|
+
|
|
3
|
+
> Hide content visually while keeping it in the accessibility tree. For screen-reader-only labels, supplemental descriptions, and live-region text.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```html
|
|
7
|
+
<button>
|
|
8
|
+
<schmancy-icon>close</schmancy-icon>
|
|
9
|
+
<schmancy-visually-hidden>Close dialog</schmancy-visually-hidden>
|
|
10
|
+
</button>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Why not `display: none` / `visibility: hidden` / `aria-hidden`?
|
|
14
|
+
Those remove content from assistive tech too. `<schmancy-visually-hidden>` uses the WCAG-recommended clip pattern, so screen readers still read the content while sighted users don't see it.
|
|
15
|
+
|
|
16
|
+
## Properties
|
|
17
|
+
None. Pure wrapper.
|
|
18
|
+
|
|
19
|
+
## Examples
|
|
20
|
+
```html
|
|
21
|
+
<!-- Icon-only button label -->
|
|
22
|
+
<schmancy-icon-button>
|
|
23
|
+
<schmancy-icon>delete</schmancy-icon>
|
|
24
|
+
<schmancy-visually-hidden>Delete item</schmancy-visually-hidden>
|
|
25
|
+
</schmancy-icon-button>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<!-- Additional context for links -->
|
|
30
|
+
<a href="/article/42">
|
|
31
|
+
Read more
|
|
32
|
+
<schmancy-visually-hidden>about quarterly earnings</schmancy-visually-hidden>
|
|
33
|
+
</a>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```html
|
|
37
|
+
<!-- Live region announcements -->
|
|
38
|
+
<schmancy-visually-hidden role="status" aria-live="polite">
|
|
39
|
+
${this.status}
|
|
40
|
+
</schmancy-visually-hidden>
|
|
41
|
+
```
|
|
@@ -78,10 +78,8 @@ export type Feeling =
|
|
|
78
78
|
| HappyFeeling | SadFeeling | AnxiousFeeling | AngryFeeling
|
|
79
79
|
| TiredFeeling | CalmFeeling | ConnectedFeeling | MixedFeeling
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
| 'happy' | 'sad' | 'anxious' | 'angry'
|
|
84
|
-
| 'tired' | 'calm' | 'connected' | 'mixed'
|
|
81
|
+
// FeelingCategory is defined in ../types/mood-audio.types.ts and re-exported
|
|
82
|
+
// from ./index.ts — the canonical source.
|
|
85
83
|
|
|
86
84
|
// ============================================================================
|
|
87
85
|
// SOUND GENERATOR
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { $LitElement } from '@mixins/index'
|
|
2
2
|
import { InputSize, SchmancyInput } from '@schmancy/input'
|
|
3
3
|
import SchmancyOption from '@schmancy/option/option'
|
|
4
|
-
import { html } from 'lit'
|
|
4
|
+
import { html, nothing } from 'lit'
|
|
5
5
|
import { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'
|
|
6
6
|
import { classMap } from 'lit/directives/class-map.js'
|
|
7
7
|
import { createRef, ref } from 'lit/directives/ref.js'
|
|
@@ -48,6 +48,40 @@ interface FilteredOption {
|
|
|
48
48
|
*/
|
|
49
49
|
@customElement('schmancy-autocomplete')
|
|
50
50
|
export default class SchmancyAutocomplete extends $LitElement(style) {
|
|
51
|
+
static formAssociated = true
|
|
52
|
+
internals: ElementInternals | undefined
|
|
53
|
+
|
|
54
|
+
constructor() {
|
|
55
|
+
super()
|
|
56
|
+
try {
|
|
57
|
+
this.internals = this.attachInternals()
|
|
58
|
+
} catch {
|
|
59
|
+
this.internals = undefined
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
get form(): HTMLFormElement | null {
|
|
64
|
+
return this.internals?.form ?? null
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
formResetCallback(): void {
|
|
68
|
+
if (this.multi) {
|
|
69
|
+
this._selectedValues$.next([])
|
|
70
|
+
} else {
|
|
71
|
+
this._selectedValue$.next('')
|
|
72
|
+
}
|
|
73
|
+
this._inputValue = ''
|
|
74
|
+
this._inputValue$.next('')
|
|
75
|
+
this.error = false
|
|
76
|
+
this.validationMessage = ''
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
formDisabledCallback(disabled: boolean): void {
|
|
80
|
+
// The component does not expose a disabled prop directly; propagate via attribute.
|
|
81
|
+
if (disabled) this.setAttribute('disabled', '')
|
|
82
|
+
else this.removeAttribute('disabled')
|
|
83
|
+
}
|
|
84
|
+
|
|
51
85
|
// Track whether value/values have been explicitly set
|
|
52
86
|
_valueSet: boolean = false
|
|
53
87
|
_valuesSet: boolean = false
|
|
@@ -67,6 +101,8 @@ export default class SchmancyAutocomplete extends $LitElement(style) {
|
|
|
67
101
|
@property({ type: Boolean }) error = false
|
|
68
102
|
@property({ type: String }) validationMessage = ''
|
|
69
103
|
|
|
104
|
+
private readonly _a11yId = `schmancy-autocomplete-${Math.random().toString(36).slice(2, 10)}`
|
|
105
|
+
|
|
70
106
|
// Values property for multi-select mode
|
|
71
107
|
@property({ type: Array })
|
|
72
108
|
get values() {
|
|
@@ -139,6 +175,16 @@ export default class SchmancyAutocomplete extends $LitElement(style) {
|
|
|
139
175
|
]).pipe(
|
|
140
176
|
tap(([selectedValue, selectedValues]) => {
|
|
141
177
|
this._updateOptionSelection(selectedValue, selectedValues)
|
|
178
|
+
// Keep ElementInternals form value in sync with selection (single and multi).
|
|
179
|
+
const formValue = this.multi ? selectedValues.join(',') : selectedValue
|
|
180
|
+
this.internals?.setFormValue(formValue || null)
|
|
181
|
+
if (this.required) {
|
|
182
|
+
const missing = this.multi ? selectedValues.length === 0 : !selectedValue
|
|
183
|
+
this.internals?.setValidity(
|
|
184
|
+
missing ? { valueMissing: true } : {},
|
|
185
|
+
missing ? this.validationMessage || 'Please select an option.' : undefined,
|
|
186
|
+
)
|
|
187
|
+
}
|
|
142
188
|
}),
|
|
143
189
|
takeUntil(this.disconnecting)
|
|
144
190
|
).subscribe()
|
|
@@ -494,6 +540,10 @@ export default class SchmancyAutocomplete extends $LitElement(style) {
|
|
|
494
540
|
.placeholder=${this._selectedValues$.value.length > 0 ? 'Add more...' : this.placeholder}
|
|
495
541
|
.value=${this._inputValue}
|
|
496
542
|
.autocomplete=${this.autocomplete}
|
|
543
|
+
aria-invalid=${this.error ? 'true' : 'false'}
|
|
544
|
+
aria-required=${this.required ? 'true' : 'false'}
|
|
545
|
+
aria-describedby=${this.error && this.validationMessage ? `${this._a11yId}-err` : nothing}
|
|
546
|
+
aria-label=${!this.label && this.placeholder ? this.placeholder : nothing}
|
|
497
547
|
@input=${(e: Event) => {
|
|
498
548
|
const value = (e.target as HTMLInputElement).value
|
|
499
549
|
this._inputValue = value
|
|
@@ -517,7 +567,7 @@ export default class SchmancyAutocomplete extends $LitElement(style) {
|
|
|
517
567
|
|
|
518
568
|
<!-- Validation message -->
|
|
519
569
|
${when(this.error && this.validationMessage, () => html`
|
|
520
|
-
<div class="mt-1 text-sm text-error-default">
|
|
570
|
+
<div id="${this._a11yId}-err" class="mt-1 text-sm text-error-default" role="alert">
|
|
521
571
|
${this.validationMessage}
|
|
522
572
|
</div>
|
|
523
573
|
`)}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { TailwindElement } from '@mixins/index'
|
|
2
|
+
import { css, html } from 'lit'
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Breadcrumb navigation container. Wraps a list of `schmancy-breadcrumb-item`
|
|
7
|
+
* elements with the correct ARIA landmark and semantics.
|
|
8
|
+
*
|
|
9
|
+
* @element schmancy-breadcrumb
|
|
10
|
+
* @slot - Default slot for `<schmancy-breadcrumb-item>` children.
|
|
11
|
+
* @attr separator - Character or string rendered between items. Default `/`.
|
|
12
|
+
* @csspart separator - The separator element.
|
|
13
|
+
*/
|
|
14
|
+
@customElement('schmancy-breadcrumb')
|
|
15
|
+
export class SchmancyBreadcrumb extends TailwindElement(css`
|
|
16
|
+
:host {
|
|
17
|
+
display: block;
|
|
18
|
+
}
|
|
19
|
+
nav {
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-wrap: wrap;
|
|
22
|
+
align-items: center;
|
|
23
|
+
gap: 0.25rem;
|
|
24
|
+
}
|
|
25
|
+
.sep {
|
|
26
|
+
color: var(--schmancy-sys-color-surface-onVariant, #79747e);
|
|
27
|
+
user-select: none;
|
|
28
|
+
padding: 0 0.25rem;
|
|
29
|
+
}
|
|
30
|
+
::slotted(schmancy-breadcrumb-item:last-of-type) {
|
|
31
|
+
font-weight: 500;
|
|
32
|
+
}
|
|
33
|
+
`) {
|
|
34
|
+
@property({ type: String }) separator = '/'
|
|
35
|
+
|
|
36
|
+
connectedCallback(): void {
|
|
37
|
+
super.connectedCallback()
|
|
38
|
+
if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', 'Breadcrumb')
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
render() {
|
|
42
|
+
// Render separators between slotted items by manipulating after render.
|
|
43
|
+
// The simpler approach uses the CSS adjacent-sibling pattern so the
|
|
44
|
+
// separator is visually present without affecting the accessible name.
|
|
45
|
+
return html`
|
|
46
|
+
<nav role="navigation">
|
|
47
|
+
<slot @slotchange=${() => this._insertSeparators()}></slot>
|
|
48
|
+
</nav>
|
|
49
|
+
`
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private _insertSeparators() {
|
|
53
|
+
const slot = this.shadowRoot?.querySelector('slot') as HTMLSlotElement | null
|
|
54
|
+
if (!slot) return
|
|
55
|
+
const items = slot.assignedElements({ flatten: true })
|
|
56
|
+
// Remove any previously-inserted separators.
|
|
57
|
+
this.querySelectorAll('[data-schmancy-sep]').forEach(el => el.remove())
|
|
58
|
+
items.forEach((el, idx) => {
|
|
59
|
+
if (idx === items.length - 1) return
|
|
60
|
+
const sep = document.createElement('span')
|
|
61
|
+
sep.setAttribute('data-schmancy-sep', '')
|
|
62
|
+
sep.setAttribute('aria-hidden', 'true')
|
|
63
|
+
sep.setAttribute('part', 'separator')
|
|
64
|
+
sep.className = 'sep'
|
|
65
|
+
sep.textContent = this.separator
|
|
66
|
+
el.insertAdjacentElement('afterend', sep)
|
|
67
|
+
})
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Individual breadcrumb item. Renders as a link when `href` is provided,
|
|
73
|
+
* otherwise as a plain span (represents the current page).
|
|
74
|
+
*
|
|
75
|
+
* @element schmancy-breadcrumb-item
|
|
76
|
+
* @slot - Label content.
|
|
77
|
+
* @attr href - If set, renders as an anchor.
|
|
78
|
+
* @attr current - Marks as `aria-current="page"`.
|
|
79
|
+
*/
|
|
80
|
+
@customElement('schmancy-breadcrumb-item')
|
|
81
|
+
export class SchmancyBreadcrumbItem extends TailwindElement(css`
|
|
82
|
+
:host {
|
|
83
|
+
display: inline-block;
|
|
84
|
+
}
|
|
85
|
+
a, span {
|
|
86
|
+
color: inherit;
|
|
87
|
+
text-decoration: none;
|
|
88
|
+
}
|
|
89
|
+
a:hover {
|
|
90
|
+
text-decoration: underline;
|
|
91
|
+
}
|
|
92
|
+
`) {
|
|
93
|
+
@property({ type: String }) href = ''
|
|
94
|
+
@property({ type: Boolean, reflect: true }) current = false
|
|
95
|
+
|
|
96
|
+
render() {
|
|
97
|
+
if (this.href && !this.current) {
|
|
98
|
+
return html`<a href=${this.href}><slot></slot></a>`
|
|
99
|
+
}
|
|
100
|
+
return html`<span aria-current=${this.current ? 'page' : 'false'}><slot></slot></span>`
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
declare global {
|
|
105
|
+
interface HTMLElementTagNameMap {
|
|
106
|
+
'schmancy-breadcrumb': SchmancyBreadcrumb
|
|
107
|
+
'schmancy-breadcrumb-item': SchmancyBreadcrumbItem
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './breadcrumb'
|