@mhmo91/schmancy 0.2.114 → 0.2.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Bold.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Light.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Medium.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Regular.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-Thin.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-UBold.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Display-ULight.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Bold-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Bold.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Book-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Book.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Light.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Medium-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Medium.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Regular.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Thin-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-Thin.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-ULight-Italic.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Pro-Text-ULight.woff +0 -0
- package/dist/GT-Eesti/GT-Eesti-Text-Regular.woff2 +0 -0
- package/dist/{animated-text-B576YswO.cjs → animated-text-DmtCT-2q.cjs} +2 -2
- package/dist/{animated-text-B576YswO.cjs.map → animated-text-DmtCT-2q.cjs.map} +1 -1
- package/dist/{animated-text-BuRbVM-X.js → animated-text-DrH4Miy7.js} +3 -3
- package/dist/{animated-text-BuRbVM-X.js.map → animated-text-DrH4Miy7.js.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/{area.component-BFj0Dvfb.cjs → area.component-Bg1zJKiZ.cjs} +2 -2
- package/dist/{area.component-BFj0Dvfb.cjs.map → area.component-Bg1zJKiZ.cjs.map} +1 -1
- package/dist/{area.component-Bo5aB8BH.js → area.component-CmsssAq_.js} +10 -10
- package/dist/{area.component-Bo5aB8BH.js.map → area.component-CmsssAq_.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/autocomplete-BFj0YUYW.cjs +57 -0
- package/dist/autocomplete-BFj0YUYW.cjs.map +1 -0
- package/dist/autocomplete-BsrWuTsP.js +295 -0
- package/dist/autocomplete-BsrWuTsP.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-FM06WS9G.cjs → checkbox-Cb7nmI6P.cjs} +2 -2
- package/dist/{checkbox-FM06WS9G.cjs.map → checkbox-Cb7nmI6P.cjs.map} +1 -1
- package/dist/{checkbox-DQYRlKod.js → checkbox-DUP_qnel.js} +2 -2
- package/dist/{checkbox-DQYRlKod.js.map → checkbox-DUP_qnel.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-DTDFQDv-.js → chips-0hsW-Rxx.js} +14 -14
- package/dist/{chips-DTDFQDv-.js.map → chips-0hsW-Rxx.js.map} +1 -1
- package/dist/{chips-CJZbtp-O.cjs → chips-CiesiXpI.cjs} +2 -2
- package/dist/{chips-CJZbtp-O.cjs.map → chips-CiesiXpI.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/color-D8r6dpWm.cjs +2 -0
- package/dist/color-D8r6dpWm.cjs.map +1 -0
- package/dist/color-DrgmL7QT.js +19 -0
- package/dist/color-DrgmL7QT.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-CZiZR3OZ.js → date-range-DF_kjOLs.js} +3 -3
- package/dist/{date-range-CZiZR3OZ.js.map → date-range-DF_kjOLs.js.map} +1 -1
- package/dist/{date-range-FxAO_oqk.cjs → date-range-DvTXqD8e.cjs} +2 -2
- package/dist/{date-range-FxAO_oqk.cjs.map → date-range-DvTXqD8e.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-gZOjfjX_.js → delay-Cmf_vIaJ.js} +2 -2
- package/dist/{delay-gZOjfjX_.js.map → delay-Cmf_vIaJ.js.map} +1 -1
- package/dist/{delay-Dzei5ynQ.cjs → delay-DhV8MSPZ.cjs} +2 -2
- package/dist/{delay-Dzei5ynQ.cjs.map → delay-DhV8MSPZ.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +5 -4
- package/dist/directives.js.map +1 -1
- package/dist/{divider-nNk0E_jZ.cjs → divider-4ev5A0v0.cjs} +2 -2
- package/dist/{divider-nNk0E_jZ.cjs.map → divider-4ev5A0v0.cjs.map} +1 -1
- package/dist/{divider-B-JF8gre.js → divider-B7GoicdG.js} +3 -3
- package/dist/{divider-B-JF8gre.js.map → divider-B7GoicdG.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-INEcbqBe.cjs → flex-DFHDHleC.cjs} +2 -2
- package/dist/{flex-INEcbqBe.cjs.map → flex-DFHDHleC.cjs.map} +1 -1
- package/dist/{flex-CieqpOUS.js → flex-t4F0-R-c.js} +2 -2
- package/dist/{flex-CieqpOUS.js.map → flex-t4F0-R-c.js.map} +1 -1
- package/dist/{form-CKMp4UzU.cjs → form-D_ShigQq.cjs} +2 -2
- package/dist/{form-CKMp4UzU.cjs.map → form-D_ShigQq.cjs.map} +1 -1
- package/dist/{form-lcamXnkd.js → form-dVHTERy3.js} +2 -2
- package/dist/{form-lcamXnkd.js.map → form-dVHTERy3.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-BZqH7sp7.cjs → icon-BNyFKp0p.cjs} +2 -2
- package/dist/{icon-BZqH7sp7.cjs.map → icon-BNyFKp0p.cjs.map} +1 -1
- package/dist/{icon-CJrmUGTm.js → icon-C3PI8GgN.js} +3 -3
- package/dist/{icon-CJrmUGTm.js.map → icon-C3PI8GgN.js.map} +1 -1
- package/dist/{icon-button-nMHz4MDw.cjs → icon-button-D4D5bXCm.cjs} +2 -2
- package/dist/{icon-button-nMHz4MDw.cjs.map → icon-button-D4D5bXCm.cjs.map} +1 -1
- package/dist/{icon-button-BNn0qRfC.js → icon-button-Dr_-8Ey5.js} +3 -3
- package/dist/{icon-button-BNn0qRfC.js.map → icon-button-Dr_-8Ey5.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +77 -74
- package/dist/index.js.map +1 -1
- package/dist/input-BHgBONgn.cjs +98 -0
- package/dist/input-BHgBONgn.cjs.map +1 -0
- package/dist/input-BgmQpY14.js +205 -0
- package/dist/input-BgmQpY14.js.map +1 -0
- package/dist/input-Bk7EZhOl.cjs +51 -0
- package/dist/input-Bk7EZhOl.cjs.map +1 -0
- package/dist/{input-CZX1sxBe.js → input-_XU4ILwo.js} +25 -24
- package/dist/input-_XU4ILwo.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-D4y-Mkap.cjs → list-CCrSL1bZ.cjs} +2 -2
- package/dist/{list-D4y-Mkap.cjs.map → list-CCrSL1bZ.cjs.map} +1 -1
- package/dist/{list-CjrF4M5H.js → list-r6mo_zcT.js} +2 -2
- package/dist/{list-CjrF4M5H.js.map → list-r6mo_zcT.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-djlKJ0lX.cjs → litElement.mixin-CAXeI5RY.cjs} +2 -2
- package/dist/{litElement.mixin-djlKJ0lX.cjs.map → litElement.mixin-CAXeI5RY.cjs.map} +1 -1
- package/dist/{litElement.mixin-NzkxESus.js → litElement.mixin-DfYInjJd.js} +2 -2
- package/dist/{litElement.mixin-NzkxESus.js.map → litElement.mixin-DfYInjJd.js.map} +1 -1
- package/dist/{menu-DAtFS31a.cjs → menu-B6x8xZng.cjs} +2 -2
- package/dist/{menu-DAtFS31a.cjs.map → menu-B6x8xZng.cjs.map} +1 -1
- package/dist/{menu-Cb5kUAvU.js → menu-yboJ8_V4.js} +3 -3
- package/dist/{menu-Cb5kUAvU.js.map → menu-yboJ8_V4.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins/formField.mixin.ts +223 -0
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-CxalubCR.js → option-CmZo8fXU.js} +29 -13
- package/dist/option-CmZo8fXU.js.map +1 -0
- package/dist/option-gnBrhD_1.cjs +18 -0
- package/dist/option-gnBrhD_1.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{outlet-6HZp4fo1.js → outlet-BgJ_WOwi.js} +2 -2
- package/dist/{outlet-6HZp4fo1.js.map → outlet-BgJ_WOwi.js.map} +1 -1
- package/dist/{outlet-DofHDlGH.cjs → outlet-CSduKjEi.cjs} +2 -2
- package/dist/{outlet-DofHDlGH.cjs.map → outlet-CSduKjEi.cjs.map} +1 -1
- package/dist/payment-card-form-CVW9uWum.cjs +74 -0
- package/dist/{payment-card-form-Bi3yNg4b.cjs.map → payment-card-form-CVW9uWum.cjs.map} +1 -1
- package/dist/{payment-card-form-C8FxRlh4.js → payment-card-form-NUTic2b3.js} +183 -134
- package/dist/{payment-card-form-C8FxRlh4.js.map → payment-card-form-NUTic2b3.js.map} +1 -1
- package/dist/{radio-group-BapuNl8y.js → radio-group-Bl5nhDCh.js} +2 -2
- package/dist/{radio-group-BapuNl8y.js.map → radio-group-Bl5nhDCh.js.map} +1 -1
- package/dist/{radio-group-A5QxSGOr.cjs → radio-group-CTCnzxmZ.cjs} +2 -2
- package/dist/{radio-group-A5QxSGOr.cjs.map → radio-group-CTCnzxmZ.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/ripple-3indJ14o.js +64 -0
- package/dist/ripple-3indJ14o.js.map +1 -0
- package/dist/ripple-B_wT0zgD.cjs +16 -0
- package/dist/ripple-B_wT0zgD.cjs.map +1 -0
- package/dist/rxjs-utils.js +4 -4
- package/dist/{select-8AjN6LbM.js → select-C2TJxenH.js} +66 -41
- package/dist/select-C2TJxenH.js.map +1 -0
- package/dist/select-D3yrgnVD.cjs +56 -0
- package/dist/select-D3yrgnVD.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/sheet-CwzonocJ.cjs +62 -0
- package/dist/sheet-CwzonocJ.cjs.map +1 -0
- package/dist/sheet-DHyy-OIH.js +244 -0
- package/dist/sheet-DHyy-OIH.js.map +1 -0
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BakU-Bdw.js → slider-2mhXBUIM.js} +3 -3
- package/dist/{slider-BakU-Bdw.js.map → slider-2mhXBUIM.js.map} +1 -1
- package/dist/{slider-B4OCBlQg.cjs → slider-DCJHcXt1.cjs} +2 -2
- package/dist/{slider-B4OCBlQg.cjs.map → slider-DCJHcXt1.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-BDx3SZsl.js → spinner-B9JHqmoP.js} +12 -11
- package/dist/{spinner-BDx3SZsl.js.map → spinner-B9JHqmoP.js.map} +1 -1
- package/dist/{spinner-C3VJtLgk.cjs → spinner-D-vtqMqq.cjs} +4 -4
- package/dist/{spinner-C3VJtLgk.cjs.map → spinner-D-vtqMqq.cjs.map} +1 -1
- package/dist/{surface-kjOrb8TO.cjs → surface-DLHFSFU6.cjs} +2 -2
- package/dist/{surface-kjOrb8TO.cjs.map → surface-DLHFSFU6.cjs.map} +1 -1
- package/dist/{surface-YiaJJQ5m.js → surface-O_-YGi6T.js} +2 -2
- package/dist/{surface-YiaJJQ5m.js.map → surface-O_-YGi6T.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-BguYeeBH.js → table-Bvb_ZG7b.js} +2 -2
- package/dist/{table-BguYeeBH.js.map → table-Bvb_ZG7b.js.map} +1 -1
- package/dist/{table-BZV2dBD5.cjs → table-CdkLZM2b.cjs} +2 -2
- package/dist/{table-BZV2dBD5.cjs.map → table-CdkLZM2b.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-group-BZFBZ1_G.cjs → tabs-group-B-KvImY2.cjs} +2 -2
- package/dist/{tabs-group-BZFBZ1_G.cjs.map → tabs-group-B-KvImY2.cjs.map} +1 -1
- package/dist/{tabs-group-H3C6ZnQn.js → tabs-group-CVZ2SEq3.js} +2 -2
- package/dist/{tabs-group-H3C6ZnQn.js.map → tabs-group-CVZ2SEq3.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-BvhzMkqK.js +43 -0
- package/dist/{tailwind.mixin-DklgfhB4.js.map → tailwind.mixin-BvhzMkqK.js.map} +1 -1
- package/dist/tailwind.mixin-csgxM8P_.cjs +2 -0
- package/dist/{tailwind.mixin-CBhPue3q.cjs.map → tailwind.mixin-csgxM8P_.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-DY1Q8ilK.js → teleport.component-BRm0yYbM.js} +43 -41
- package/dist/{teleport.component-DY1Q8ilK.js.map → teleport.component-BRm0yYbM.js.map} +1 -1
- package/dist/{teleport.component-C9Q1WHQe.cjs → teleport.component-D9xuyN_z.cjs} +19 -19
- package/dist/{teleport.component-C9Q1WHQe.cjs.map → teleport.component-D9xuyN_z.cjs.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/textarea-BaTTXEtZ.cjs +42 -0
- package/dist/{textarea-BCWPb0Sn.cjs.map → textarea-BaTTXEtZ.cjs.map} +1 -1
- package/dist/{textarea-D7bTMerW.js → textarea-txN6-t64.js} +9 -8
- package/dist/{textarea-D7bTMerW.js.map → textarea-txN6-t64.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-CP2_aq__.js → theme-button-C2oB9OCM.js} +2 -2
- package/dist/{theme-button-CP2_aq__.js.map → theme-button-C2oB9OCM.js.map} +1 -1
- package/dist/{theme-button-DHuXg7vh.cjs → theme-button-qFLBZi0_.cjs} +2 -2
- package/dist/{theme-button-DHuXg7vh.cjs.map → theme-button-qFLBZi0_.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-Ly2C_fQ8.cjs → theme.component-C-055F7V.cjs} +2 -2
- package/dist/{theme.component-Ly2C_fQ8.cjs.map → theme.component-C-055F7V.cjs.map} +1 -1
- package/dist/{theme.component-BtBosXb1.js → theme.component-UVrnuMPb.js} +47 -47
- package/dist/{theme.component-BtBosXb1.js.map → theme.component-UVrnuMPb.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/timezone-CvS7opKc.cjs +34 -0
- package/dist/timezone-CvS7opKc.cjs.map +1 -0
- package/dist/{timezone-EDGZdfbO.js → timezone-DUYp8qD3.js} +93 -41
- package/dist/timezone-DUYp8qD3.js.map +1 -0
- package/dist/{tree-Y2B7yK7L.js → tree-Cxgw_mi9.js} +2 -2
- package/dist/{tree-Y2B7yK7L.js.map → tree-Cxgw_mi9.js.map} +1 -1
- package/dist/{tree-CG9B3uQP.cjs → tree-DYLlgF1F.cjs} +2 -2
- package/dist/{tree-CG9B3uQP.cjs.map → tree-DYLlgF1F.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-C1Ij3c--.js → typewriter-DUdvh6VO.js} +4 -4
- package/dist/{typewriter-C1Ij3c--.js.map → typewriter-DUdvh6VO.js.map} +1 -1
- package/dist/{typewriter-DtWpV0Xd.cjs → typewriter-DoGLma1z.cjs} +2 -2
- package/dist/{typewriter-DtWpV0Xd.cjs.map → typewriter-DoGLma1z.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-CSQByhJF.js → typography-BnQJ5TWy.js} +2 -2
- package/dist/{typography-CSQByhJF.js.map → typography-BnQJ5TWy.js.map} +1 -1
- package/dist/{typography-D-a-z23R.cjs → typography-DFREXmBg.cjs} +2 -2
- package/dist/{typography-D-a-z23R.cjs.map → typography-DFREXmBg.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/v2.cjs +2 -0
- package/dist/v2.cjs.map +1 -0
- package/dist/v2.js +5 -0
- package/dist/v2.js.map +1 -0
- package/package.json +3 -4
- package/types/mixins/formField.mixin.d.ts +48 -0
- package/types/src/autocomplete/autocomplete.d.ts +17 -7
- package/types/src/components/form-elements/payment-card-form.d.ts +57 -4
- package/types/src/extra/countries/countries.d.ts +13 -0
- package/types/src/extra/timezone/timezone.d.ts +13 -0
- package/types/src/index.d.ts +1 -0
- package/types/src/option/option.d.ts +3 -0
- package/types/src/select/select.d.ts +9 -1
- package/types/src/sheet/header.d.ts +0 -1
- package/types/src/sheet/sheet.d.ts +120 -1
- package/types/src/utils/search.d.ts +10 -0
- package/types/src/v2/form.d.ts +51 -0
- package/types/src/v2/index.d.ts +2 -0
- package/types/src/v2/input.d.ts +71 -0
- package/dist/autocomplete-BU0sC_l-.cjs +0 -49
- package/dist/autocomplete-BU0sC_l-.cjs.map +0 -1
- package/dist/autocomplete-u76bIDqg.js +0 -264
- package/dist/autocomplete-u76bIDqg.js.map +0 -1
- package/dist/input-CTC1BTOb.cjs +0 -51
- package/dist/input-CTC1BTOb.cjs.map +0 -1
- package/dist/input-CZX1sxBe.js.map +0 -1
- package/dist/option-CxalubCR.js.map +0 -1
- package/dist/option-DJLLszO6.cjs +0 -18
- package/dist/option-DJLLszO6.cjs.map +0 -1
- package/dist/payment-card-form-Bi3yNg4b.cjs +0 -48
- package/dist/ripple-BumgqsDT.js +0 -78
- package/dist/ripple-BumgqsDT.js.map +0 -1
- package/dist/ripple-C2BHbhcS.cjs +0 -16
- package/dist/ripple-C2BHbhcS.cjs.map +0 -1
- package/dist/select-8AjN6LbM.js.map +0 -1
- package/dist/select-BdU6KcPX.cjs +0 -54
- package/dist/select-BdU6KcPX.cjs.map +0 -1
- package/dist/sheet-CQFdHSwJ.cjs +0 -43
- package/dist/sheet-CQFdHSwJ.cjs.map +0 -1
- package/dist/sheet-xR13xD2A.js +0 -182
- package/dist/sheet-xR13xD2A.js.map +0 -1
- package/dist/tailwind.mixin-CBhPue3q.cjs +0 -2
- package/dist/tailwind.mixin-DklgfhB4.js +0 -43
- package/dist/textarea-BCWPb0Sn.cjs +0 -42
- package/dist/timezone-Cv2QSsl4.cjs +0 -24
- package/dist/timezone-Cv2QSsl4.cjs.map +0 -1
- package/dist/timezone-EDGZdfbO.js.map +0 -1
|
@@ -2,18 +2,25 @@ export type SchmancyAutocompleteChangeEvent = CustomEvent<{
|
|
|
2
2
|
value: string | string[];
|
|
3
3
|
}>;
|
|
4
4
|
declare const SchmancyAutocomplete_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
5
|
+
/**
|
|
6
|
+
* The SchmancyAutocomplete component provides an accessible autocomplete field with keyboard navigation.
|
|
7
|
+
* @element schmancy-autocomplete
|
|
8
|
+
* @fires change - Emitted when a selection is made
|
|
9
|
+
* @slot - Default slot for schmancy-option elements
|
|
10
|
+
* @slot trigger - Optional slot to override the default input
|
|
11
|
+
*/
|
|
5
12
|
export default class SchmancyAutocomplete extends SchmancyAutocomplete_base {
|
|
6
13
|
required: boolean;
|
|
7
14
|
placeholder: string;
|
|
8
15
|
value: string;
|
|
9
16
|
label: string;
|
|
10
|
-
/**
|
|
11
|
-
* ⚠️ If you still want an explicit fallback for maximum dropdown height,
|
|
12
|
-
* you can keep this, but the `size()` middleware will already set a
|
|
13
|
-
* dynamic max-height based on viewport space.
|
|
14
|
-
*/
|
|
15
17
|
maxHeight: string;
|
|
16
18
|
multi: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Optional description for the autocomplete to improve accessibility.
|
|
21
|
+
* Will be associated with the input via aria-describedby.
|
|
22
|
+
*/
|
|
23
|
+
description: string;
|
|
17
24
|
/** Direct reference to the <input> inside <schmancy-input> */
|
|
18
25
|
inputRef: import("lit-html/directives/ref").Ref<HTMLInputElement>;
|
|
19
26
|
private optionsContainer;
|
|
@@ -21,13 +28,15 @@ export default class SchmancyAutocomplete extends SchmancyAutocomplete_base {
|
|
|
21
28
|
private input;
|
|
22
29
|
private options;
|
|
23
30
|
private readonly searchTerm$;
|
|
31
|
+
private isOpen;
|
|
24
32
|
private startY;
|
|
33
|
+
private statusMessage;
|
|
25
34
|
connectedCallback(): void;
|
|
26
35
|
firstUpdated(): void;
|
|
27
36
|
protected updated(changedProps: Map<string | number | symbol, unknown>): void;
|
|
28
37
|
/**
|
|
29
38
|
* When the <slot> changes (i.e. options are added/removed), update the following:
|
|
30
|
-
* 1. Show or hide the
|
|
39
|
+
* 1. Show or hide the "No results found" option.
|
|
31
40
|
* 2. Sync the selection state.
|
|
32
41
|
* 3. Setup accessibility attributes on the options.
|
|
33
42
|
*/
|
|
@@ -59,10 +68,11 @@ export default class SchmancyAutocomplete extends SchmancyAutocomplete_base {
|
|
|
59
68
|
* – When open, ArrowDown/ArrowUp move focus between options (which must have role="option").
|
|
60
69
|
* – Enter or Space selects the active option.
|
|
61
70
|
* – Escape (or Tab) hides the dropdown.
|
|
71
|
+
* - Home/End to navigate to first/last option
|
|
62
72
|
*/
|
|
63
73
|
private handleKeyDown;
|
|
64
74
|
/**
|
|
65
|
-
* Helper to focus an option by index and update the combobox
|
|
75
|
+
* Helper to focus an option by index and update the combobox's aria-activedescendant.
|
|
66
76
|
*/
|
|
67
77
|
private focusOption;
|
|
68
78
|
render(): import("lit-html").TemplateResult<1>;
|
|
@@ -1,29 +1,82 @@
|
|
|
1
1
|
import SchmancyForm from '@schmancy/form/form';
|
|
2
2
|
import SchmancyInput from '@schmancy/input/input';
|
|
3
3
|
declare const SchmancyPaymentCardForm_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
4
|
+
/**
|
|
5
|
+
* @element schmancy-payment-card-form
|
|
6
|
+
* A mobile-friendly payment card form component that provides real-time validation
|
|
7
|
+
* and formatting for credit card information.
|
|
8
|
+
*
|
|
9
|
+
* @fires change - Fires when any field in the form changes
|
|
10
|
+
* @slot - Default slot for any additional content
|
|
11
|
+
*/
|
|
4
12
|
export declare class SchmancyPaymentCardForm extends SchmancyPaymentCardForm_base {
|
|
13
|
+
/**
|
|
14
|
+
* The form data containing all payment card information
|
|
15
|
+
*/
|
|
5
16
|
value: {
|
|
6
17
|
cardName: string;
|
|
7
18
|
cardNumber: string;
|
|
8
19
|
expirationDate: string;
|
|
9
20
|
cvv: string;
|
|
10
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* The detected card type (visa, mastercard, amex, etc.)
|
|
24
|
+
* This is determined automatically by the Cleave.js library
|
|
25
|
+
*/
|
|
26
|
+
cardType: string;
|
|
27
|
+
/**
|
|
28
|
+
* Individual field values tracked with state properties for reactivity
|
|
29
|
+
*/
|
|
11
30
|
cardName: string | undefined;
|
|
12
31
|
cardNumber: string | undefined;
|
|
13
32
|
expirationDate: string | undefined;
|
|
14
33
|
cvv: string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Field validity states for enhanced validation feedback
|
|
36
|
+
*/
|
|
37
|
+
isCardNameValid: boolean;
|
|
38
|
+
isCardNumberValid: boolean;
|
|
39
|
+
isExpirationDateValid: boolean;
|
|
40
|
+
isCvvValid: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Query selectors for the form elements
|
|
43
|
+
*/
|
|
15
44
|
cardNumberInput: SchmancyInput;
|
|
16
45
|
expirationDateInput: SchmancyInput;
|
|
17
46
|
cvvInput: SchmancyInput;
|
|
18
47
|
cardNameInput: SchmancyInput;
|
|
19
48
|
form: SchmancyForm;
|
|
49
|
+
/**
|
|
50
|
+
* When the component is first updated, initialize the Cleave.js formatters
|
|
51
|
+
* for the credit card fields with appropriate validations
|
|
52
|
+
*/
|
|
20
53
|
firstUpdated(): void;
|
|
21
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Checks for validity of the entire form
|
|
56
|
+
* @returns {boolean} True if the form is valid
|
|
57
|
+
*/
|
|
22
58
|
reportValidity(): boolean;
|
|
23
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Checks for validity of the form
|
|
61
|
+
* @returns {boolean} True if the form is valid
|
|
62
|
+
*/
|
|
24
63
|
checkValidity(): boolean;
|
|
25
|
-
|
|
26
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Emit change event when any input value changes
|
|
66
|
+
*/
|
|
67
|
+
private emitChange;
|
|
68
|
+
/**
|
|
69
|
+
* Render the payment card form with a responsive grid layout
|
|
70
|
+
*/
|
|
71
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
72
|
+
/**
|
|
73
|
+
* Helper method to render card type icon based on detected card type
|
|
74
|
+
*/
|
|
75
|
+
private getCardIcon;
|
|
76
|
+
/**
|
|
77
|
+
* Helper method to render a security and acceptance notice
|
|
78
|
+
*/
|
|
79
|
+
private renderSecurityNotice;
|
|
27
80
|
}
|
|
28
81
|
declare global {
|
|
29
82
|
interface HTMLElementTagNameMap {
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
declare const SchmancyCountriesSelect_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
2
2
|
export declare class SchmancyCountriesSelect extends SchmancyCountriesSelect_base {
|
|
3
|
+
static formAssociated: boolean;
|
|
4
|
+
private internals?;
|
|
3
5
|
value?: string;
|
|
4
6
|
chip: string;
|
|
5
7
|
required: boolean;
|
|
8
|
+
label: string;
|
|
9
|
+
hint: string;
|
|
10
|
+
placeholder: string;
|
|
11
|
+
name: string;
|
|
12
|
+
private autocomplete;
|
|
13
|
+
constructor();
|
|
14
|
+
get form(): HTMLFormElement;
|
|
15
|
+
checkValidity(): boolean;
|
|
16
|
+
reportValidity(): boolean;
|
|
17
|
+
updated(changedProps: Map<string, unknown>): void;
|
|
18
|
+
private handleChange;
|
|
6
19
|
render(): import("lit-html").TemplateResult<1>;
|
|
7
20
|
}
|
|
8
21
|
declare global {
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
declare const SchmancyTimezonesSelect_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
2
2
|
export declare class SchmancyTimezonesSelect extends SchmancyTimezonesSelect_base {
|
|
3
|
+
static formAssociated: boolean;
|
|
4
|
+
private internals?;
|
|
3
5
|
value?: string;
|
|
4
6
|
chip: string;
|
|
5
7
|
required: boolean;
|
|
8
|
+
label: string;
|
|
9
|
+
hint: string;
|
|
10
|
+
placeholder: string;
|
|
11
|
+
name: string;
|
|
12
|
+
private autocomplete;
|
|
13
|
+
constructor();
|
|
14
|
+
get form(): HTMLFormElement;
|
|
15
|
+
checkValidity(): boolean;
|
|
16
|
+
reportValidity(): boolean;
|
|
17
|
+
updated(changedProps: Map<string, unknown>): void;
|
|
18
|
+
private handleChange;
|
|
6
19
|
render(): import("lit-html").TemplateResult<1>;
|
|
7
20
|
}
|
|
8
21
|
declare global {
|
package/types/src/index.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ export default class SchmancyOption extends SchmancyOption_base {
|
|
|
7
7
|
value: string;
|
|
8
8
|
label: string | undefined;
|
|
9
9
|
selected: boolean;
|
|
10
|
+
private updateLabelFromSlot;
|
|
11
|
+
connectedCallback(): void;
|
|
12
|
+
firstUpdated(): void;
|
|
10
13
|
private handleOptionClick;
|
|
11
14
|
private getSlotContent;
|
|
12
15
|
focus(): void;
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { TemplateResult } from 'lit';
|
|
1
|
+
import { PropertyValues, TemplateResult } from 'lit';
|
|
2
2
|
export type SchmancySelectChangeEvent = CustomEvent<{
|
|
3
3
|
value: string | string[];
|
|
4
4
|
}>;
|
|
5
5
|
declare const SchmancySelect_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
6
6
|
export declare class SchmancySelect extends SchmancySelect_base {
|
|
7
|
+
static formAssociated: boolean;
|
|
8
|
+
private internals?;
|
|
7
9
|
name: string | undefined;
|
|
8
10
|
required: boolean;
|
|
9
11
|
placeholder: string;
|
|
10
12
|
value: string | string[];
|
|
11
13
|
multi: boolean;
|
|
12
14
|
label: string;
|
|
15
|
+
hint: string;
|
|
13
16
|
private isOpen;
|
|
14
17
|
private valueLabel;
|
|
15
18
|
private isValid;
|
|
@@ -18,9 +21,13 @@ export declare class SchmancySelect extends SchmancySelect_base {
|
|
|
18
21
|
private inputRef;
|
|
19
22
|
private options;
|
|
20
23
|
private cleanupPositioner?;
|
|
24
|
+
private _userInteracted;
|
|
25
|
+
constructor();
|
|
26
|
+
get form(): HTMLFormElement;
|
|
21
27
|
connectedCallback(): void;
|
|
22
28
|
disconnectedCallback(): void;
|
|
23
29
|
firstUpdated(): void;
|
|
30
|
+
updated(changedProps: PropertyValues): void;
|
|
24
31
|
private syncSelection;
|
|
25
32
|
private setupOptionsAccessibility;
|
|
26
33
|
private positionDropdown;
|
|
@@ -33,6 +40,7 @@ export declare class SchmancySelect extends SchmancySelect_base {
|
|
|
33
40
|
checkValidity(): boolean;
|
|
34
41
|
reportValidity(): boolean;
|
|
35
42
|
setCustomValidity(message: string): void;
|
|
43
|
+
reset(): void;
|
|
36
44
|
render(): TemplateResult;
|
|
37
45
|
}
|
|
38
46
|
declare global {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
declare const SchmancySheetHeader_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
2
|
export default class SchmancySheetHeader extends SchmancySheetHeader_base {
|
|
3
|
-
title: string;
|
|
4
3
|
render(): import("lit-html").TemplateResult<1>;
|
|
5
4
|
}
|
|
6
5
|
declare global {
|
|
@@ -1,30 +1,149 @@
|
|
|
1
1
|
import { SchmancySheetPosition } from './sheet.service';
|
|
2
2
|
declare const SchmancySheet_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
3
|
+
/**
|
|
4
|
+
* `<schmancy-sheet>` component
|
|
5
|
+
*
|
|
6
|
+
* A modal sheet component that can be positioned at the bottom or side of the viewport.
|
|
7
|
+
* Supports customizable animations, focus management, and accessibility features.
|
|
8
|
+
*
|
|
9
|
+
* @element schmancy-sheet
|
|
10
|
+
* @fires before-close - Fired before the sheet begins closing (cancelable)
|
|
11
|
+
* @fires close - Fired when the sheet has closed
|
|
12
|
+
* @fires open - Fired when the sheet has opened
|
|
13
|
+
*/
|
|
3
14
|
export default class SchmancySheet extends SchmancySheet_base {
|
|
15
|
+
/** Unique identifier for the sheet */
|
|
4
16
|
uid: string;
|
|
17
|
+
/** Controls whether the sheet is open or closed */
|
|
5
18
|
open: boolean;
|
|
19
|
+
/** Controls visibility of the header section */
|
|
6
20
|
header: 'hidden' | 'visible';
|
|
21
|
+
/** Position of the sheet */
|
|
7
22
|
position: SchmancySheetPosition;
|
|
23
|
+
/** Whether the sheet persists after closing */
|
|
8
24
|
persist: boolean;
|
|
25
|
+
/** Whether clicking the overlay dismisses the sheet */
|
|
9
26
|
allowOverlayDismiss: boolean;
|
|
27
|
+
/** Prevents closing by backdrop click, even if allowOverlayDismiss is true */
|
|
28
|
+
preventBackdropClick: boolean;
|
|
29
|
+
/** Title displayed in the header */
|
|
10
30
|
title: string;
|
|
31
|
+
/** Accessible label for the sheet (for screen readers) */
|
|
32
|
+
ariaLabel: string;
|
|
33
|
+
/** ARIA describedby attribute value */
|
|
34
|
+
ariaDescribedBy?: string;
|
|
35
|
+
/** Custom selector to specify which element receives focus when opened */
|
|
36
|
+
initialFocusSelector?: string;
|
|
37
|
+
/** Animation duration in milliseconds */
|
|
38
|
+
animationDuration: number;
|
|
39
|
+
/** Animation easing function */
|
|
40
|
+
animationEasing: string;
|
|
41
|
+
/** Attribute to specify which element should receive focus when the sheet opens */
|
|
42
|
+
focusAttribute: string;
|
|
43
|
+
/** Ref to the sheet container */
|
|
11
44
|
private sheet;
|
|
45
|
+
/** Ref to the sheet body */
|
|
46
|
+
bodyElement: HTMLElement;
|
|
47
|
+
/** Collection of assigned elements */
|
|
12
48
|
private assignedElements;
|
|
13
|
-
|
|
49
|
+
/** Tracks the element that had focus before the sheet opened */
|
|
14
50
|
private lastFocusedElement;
|
|
51
|
+
/** For touch interactions */
|
|
52
|
+
private startY;
|
|
53
|
+
private currentY;
|
|
54
|
+
/** ResizeObserver instance */
|
|
55
|
+
private resizeObserver;
|
|
56
|
+
/**
|
|
57
|
+
* Lifecycle callback for when the 'open' property changes
|
|
58
|
+
*/
|
|
15
59
|
onOpenChange(_oldValue: boolean, newValue: boolean): void;
|
|
60
|
+
/**
|
|
61
|
+
* Component connected to DOM
|
|
62
|
+
*/
|
|
16
63
|
connectedCallback(): void;
|
|
64
|
+
/**
|
|
65
|
+
* First update lifecycle callback
|
|
66
|
+
*/
|
|
67
|
+
firstUpdated(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Component updated lifecycle callback
|
|
70
|
+
*/
|
|
71
|
+
updated(changedProps: Map<string, unknown>): void;
|
|
72
|
+
/**
|
|
73
|
+
* Component disconnected from DOM
|
|
74
|
+
*/
|
|
17
75
|
disconnectedCallback(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Updates CSS custom properties
|
|
78
|
+
*/
|
|
79
|
+
private updateCssVariables;
|
|
80
|
+
/**
|
|
81
|
+
* Sets up event listeners
|
|
82
|
+
*/
|
|
18
83
|
private setupEventListeners;
|
|
84
|
+
/**
|
|
85
|
+
* Check if focus is within the sheet
|
|
86
|
+
*/
|
|
19
87
|
private sheetContainsFocus;
|
|
88
|
+
/**
|
|
89
|
+
* Announce presence to the sheet service
|
|
90
|
+
*/
|
|
20
91
|
private announcePresence;
|
|
92
|
+
/**
|
|
93
|
+
* Add focus trap to keep focus within sheet when open
|
|
94
|
+
*/
|
|
21
95
|
private addFocusTrap;
|
|
96
|
+
/**
|
|
97
|
+
* Remove focus trap
|
|
98
|
+
*/
|
|
22
99
|
private removeFocusTrap;
|
|
100
|
+
/**
|
|
101
|
+
* Handle focus events to trap focus
|
|
102
|
+
*/
|
|
23
103
|
private handleFocusIn;
|
|
104
|
+
/**
|
|
105
|
+
* Handle scroll events
|
|
106
|
+
*/
|
|
107
|
+
private handleScroll;
|
|
108
|
+
/**
|
|
109
|
+
* Updates the aria-hidden and aria-modal attributes
|
|
110
|
+
*/
|
|
24
111
|
setIsSheetShown(isShown: boolean): void;
|
|
112
|
+
/**
|
|
113
|
+
* Closes the sheet
|
|
114
|
+
*/
|
|
25
115
|
closeSheet(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Update dimensions based on viewport
|
|
118
|
+
*/
|
|
119
|
+
private updateSheetDimensions;
|
|
120
|
+
/**
|
|
121
|
+
* Find the element that should receive focus
|
|
122
|
+
*/
|
|
26
123
|
private getFocusElement;
|
|
124
|
+
/**
|
|
125
|
+
* Set focus within the sheet
|
|
126
|
+
*/
|
|
27
127
|
focus(): void;
|
|
128
|
+
/**
|
|
129
|
+
* Fire events with consistent format
|
|
130
|
+
*/
|
|
131
|
+
private fireEvent;
|
|
132
|
+
/**
|
|
133
|
+
* Handle touch start for swipe gesture
|
|
134
|
+
*/
|
|
135
|
+
private handleTouchStart;
|
|
136
|
+
/**
|
|
137
|
+
* Handle touch move for swipe gesture
|
|
138
|
+
*/
|
|
139
|
+
private handleTouchMove;
|
|
140
|
+
/**
|
|
141
|
+
* Handle touch end for swipe gesture
|
|
142
|
+
*/
|
|
143
|
+
private handleTouchEnd;
|
|
144
|
+
/**
|
|
145
|
+
* Render the component
|
|
146
|
+
*/
|
|
28
147
|
render(): import("lit-html").TemplateResult<1>;
|
|
29
148
|
}
|
|
30
149
|
declare global {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate similarity score between two strings.
|
|
3
|
+
* Returns a value between 0 (no match) and 1 (exact match).
|
|
4
|
+
* Includes all similarity methods from the original filter directive.
|
|
5
|
+
*
|
|
6
|
+
* @param query The search query string
|
|
7
|
+
* @param target The target string to compare against
|
|
8
|
+
* @returns A similarity score from 0 to 1
|
|
9
|
+
*/
|
|
10
|
+
export declare function similarity(query: string, target: string): number;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
declare const SchForm_base: import("../../mixins").Constructor<CustomElementConstructor> & import("../../mixins").Constructor<import("@mixins/tailwind.mixin").ITailwindElementMixin> & import("../../mixins").Constructor<import("lit").LitElement> & import("../../mixins").Constructor<import("../../mixins").IBaseMixin>;
|
|
2
|
+
/**
|
|
3
|
+
* A form component that enforces native browser validation
|
|
4
|
+
* for all contained form elements.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```html
|
|
8
|
+
* <sch-form @submit=${handleSubmit}>
|
|
9
|
+
* <sch-input label="Name" required></sch-input>
|
|
10
|
+
* <schmancy-button type="submit">Submit</schmancy-button>
|
|
11
|
+
* </sch-form>
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare class SchForm extends SchForm_base {
|
|
15
|
+
/**
|
|
16
|
+
* If true, form validation will be skipped
|
|
17
|
+
*/
|
|
18
|
+
novalidate: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* The form's submission method (get or post)
|
|
21
|
+
*/
|
|
22
|
+
method: 'get' | 'post';
|
|
23
|
+
/**
|
|
24
|
+
* The URL to submit the form to
|
|
25
|
+
*/
|
|
26
|
+
action: string;
|
|
27
|
+
/**
|
|
28
|
+
* The form's encoding type
|
|
29
|
+
*/
|
|
30
|
+
enctype: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
|
|
31
|
+
/**
|
|
32
|
+
* Reference to the internal form element
|
|
33
|
+
*/
|
|
34
|
+
formElement: HTMLFormElement;
|
|
35
|
+
/**
|
|
36
|
+
* Handle form submission
|
|
37
|
+
* This is the key method that ensures browser validation works
|
|
38
|
+
*/
|
|
39
|
+
private handleSubmit;
|
|
40
|
+
/**
|
|
41
|
+
* Reset the form
|
|
42
|
+
*/
|
|
43
|
+
reset(): void;
|
|
44
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
45
|
+
}
|
|
46
|
+
declare global {
|
|
47
|
+
interface HTMLElementTagNameMap {
|
|
48
|
+
'sch-form': SchForm;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
declare const SchInput_base: import("../../mixins").Constructor<import("@mixins/formField.mixin").IFormFieldMixin> & import("../../mixins").Constructor<import("../../mixins").ITailwindElementMixin> & import("../../mixins").Constructor<import("lit").LitElement> & import("../../mixins").Constructor<import("../../mixins").IBaseMixin>;
|
|
2
|
+
/**
|
|
3
|
+
* A simplified input component that works with browser validation.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```html
|
|
7
|
+
* <sch-input
|
|
8
|
+
* label="Email"
|
|
9
|
+
* name="email"
|
|
10
|
+
* required
|
|
11
|
+
* type="email"
|
|
12
|
+
* ></sch-input>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export default class SchInput extends SchInput_base {
|
|
16
|
+
/**
|
|
17
|
+
* The type of input (text, email, password, etc.)
|
|
18
|
+
*/
|
|
19
|
+
type: string;
|
|
20
|
+
/**
|
|
21
|
+
* Placeholder text
|
|
22
|
+
*/
|
|
23
|
+
placeholder: string;
|
|
24
|
+
/**
|
|
25
|
+
* Minimum input length
|
|
26
|
+
*/
|
|
27
|
+
minlength?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Maximum input length
|
|
30
|
+
*/
|
|
31
|
+
maxlength?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Pattern for validation
|
|
34
|
+
*/
|
|
35
|
+
pattern?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to enable autocomplete
|
|
38
|
+
*/
|
|
39
|
+
autocomplete: string;
|
|
40
|
+
/**
|
|
41
|
+
* Reference to the internal input element
|
|
42
|
+
*/
|
|
43
|
+
private inputRef;
|
|
44
|
+
/**
|
|
45
|
+
* Handle input change
|
|
46
|
+
*/
|
|
47
|
+
private handleInput;
|
|
48
|
+
/**
|
|
49
|
+
* Focus the input
|
|
50
|
+
*/
|
|
51
|
+
focus(options?: FocusOptions): void;
|
|
52
|
+
/**
|
|
53
|
+
* Blur the input
|
|
54
|
+
*/
|
|
55
|
+
blur(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Let the browser handle validation
|
|
58
|
+
*/
|
|
59
|
+
checkValidity(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Use the browser's built-in validation UI
|
|
62
|
+
*/
|
|
63
|
+
reportValidity(): boolean;
|
|
64
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
65
|
+
}
|
|
66
|
+
declare global {
|
|
67
|
+
interface HTMLElementTagNameMap {
|
|
68
|
+
'sch-input': SchInput;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export {};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";const E=require("@floating-ui/dom"),D=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const Y=require("./litElement.mixin-djlKJ0lX.cjs");require("./tailwind.mixin-CBhPue3q.cjs");const j=require("./ripple-C2BHbhcS.cjs"),H=require("./theme.interface-Xg5Zi46a.cjs"),P=require("lit"),u=require("lit/decorators.js"),U=require("lit/directives/ref.js"),A=require("rxjs/operators"),C=new Uint32Array(65536),z=(t,e)=>{if(t.length<e.length){const i=e;e=t,t=i}return e.length===0?t.length:t.length<=32?((i,o)=>{const n=i.length,r=o.length,l=1<<n-1;let p=-1,y=0,$=n,h=n;for(;h--;)C[i.charCodeAt(h)]|=1<<h;for(h=0;h<r;h++){let b=C[o.charCodeAt(h)];const v=b|y;b|=(b&p)+p^p,y|=~(b|p),p&=b,y&l&&$++,p&l&&$--,y=y<<1|1,p=p<<1|~(v|y),y&=v}for(h=n;h--;)C[i.charCodeAt(h)]=0;return $})(t,e):((i,o)=>{const n=o.length,r=i.length,l=[],p=[],y=Math.ceil(n/32),$=Math.ceil(r/32);for(let s=0;s<y;s++)p[s]=-1,l[s]=0;let h=0;for(;h<$-1;h++){let s=0,m=-1;const x=32*h,w=Math.min(32,r)+x;for(let a=x;a<w;a++)C[i.charCodeAt(a)]|=1<<a;for(let a=0;a<n;a++){const O=C[o.charCodeAt(a)],g=p[a/32|0]>>>a&1,f=l[a/32|0]>>>a&1,T=O|s,M=((O|f)&m)+m^m|O|f;let k=s|~(M|m),S=m&M;k>>>31^g&&(p[a/32|0]^=1<<a),S>>>31^f&&(l[a/32|0]^=1<<a),k=k<<1|g,S=S<<1|f,m=S|~(T|k),s=k&T}for(let a=x;a<w;a++)C[i.charCodeAt(a)]=0}let b=0,v=-1;const q=32*h,V=Math.min(32,r-q)+q;for(let s=q;s<V;s++)C[i.charCodeAt(s)]|=1<<s;let I=r;for(let s=0;s<n;s++){const m=C[o.charCodeAt(s)],x=p[s/32|0]>>>s&1,w=l[s/32|0]>>>s&1,a=m|b,O=((m|w)&v)+v^v|m|w;let g=b|~(O|v),f=v&O;I+=g>>>r-1&1,I-=f>>>r-1&1,g>>>31^x&&(p[s/32|0]^=1<<s),f>>>31^w&&(l[s/32|0]^=1<<s),g=g<<1|x,f=f<<1|w,v=f|~(a|g),b=g&a}for(let s=q;s<V;s++)C[i.charCodeAt(s)]=0;return I})(t,e)};var N=Object.defineProperty,B=Object.getOwnPropertyDescriptor,d=(t,e,i,o)=>{for(var n,r=o>1?void 0:o?B(e,i):e,l=t.length-1;l>=0;l--)(n=t[l])&&(r=(o?n(e,i,r):n(r))||r);return o&&r&&N(e,i,r),r};let c=class extends Y.$LitElement(":host{display:block;border:unset!important;line-height:unset!important;background:unset!important;padding:unset!important;font-size:unset!important;box-shadow:unset!important}:host:focus{box-shadow:unset!important}"){constructor(){super(...arguments),this.required=!1,this.placeholder="",this.value="",this.label="",this.maxHeight="25vh",this.multi=!1,this.inputRef=U.createRef(),this.searchTerm$=new D.Subject,this.startY=0,this.handleKeyDown=t=>{const e=this.options.filter(o=>!o.hidden);if(this.optionsContainer.hasAttribute("hidden"))return void(["Enter"," ","ArrowDown"].includes(t.key)&&(t.preventDefault(),this.showOptions().then(()=>{e.length>0&&this.focusOption(e,0)})));let i=e.findIndex(o=>o.matches(":focus"));switch(i===-1&&(i=0),t.key){case"Escape":t.preventDefault(),this.hideOptions(),this.input.focus();break;case"ArrowDown":t.preventDefault(),this.focusOption(e,Math.min(i+1,e.length-1));break;case"ArrowUp":t.preventDefault(),this.focusOption(e,Math.max(i-1,0));break;case"Enter":case" ":if(t.preventDefault(),e[i]){const o=e[i].getAttribute("data-value")||e[i].getAttribute("value");o&&this.handleOptionClick(o)}break;case"Tab":this.hideOptions()}}}connectedCallback(){super.connectedCallback(),this.id||(this.id=`schmancy-autocomplete-${Math.random().toString(36).substr(2,9)}`),D.fromEvent(this,"keydown").pipe(A.takeUntil(this.disconnecting)).subscribe({next:t=>{this.handleKeyDown(t)}}),this.searchTerm$.pipe(A.distinctUntilChanged(),A.tap(t=>{const e=t.trim().toLowerCase(),i=this.options.map(o=>{const n=o.label.toLowerCase();return{option:o,levDistance:z(e,n)}}).filter(({option:o,levDistance:n})=>e.length<3||n<=o.label.toLowerCase().length-e.length).sort((o,n)=>o.levDistance-n.levDistance);this.options.forEach(o=>o.hidden=!0);for(const{option:o}of i)o.hidden=!1;this.empty.hidden=i.length>0,this.setupOptionsAccessibility(),this.requestUpdate()}),A.takeUntil(this.disconnecting)).subscribe(()=>{this.showOptions()}),D.fromEvent(this,"focusout").pipe(A.takeUntil(this.disconnecting),A.filter(t=>{var e;return((e=t.relatedTarget)==null?void 0:e.tagName)!=="SCHMANCY-OPTION"}),A.switchMap(()=>{this.options.forEach(e=>e.hidden=!1);const t=this.optionsContainer.animate([{opacity:1},{opacity:0}],{duration:150,easing:"cubic-bezier(0.5, 0.01, 0.25, 1)"});return D.from(new Promise(e=>{t.onfinish=()=>{this.optionsContainer.style.display="none",this.optionsContainer.style.opacity="1",e()}}))})).subscribe({next:()=>{var t;if(this.multi){const e=this.options.filter(i=>i.selected).map(i=>i.label);this.input.value=e.join(", ")}else this.input.value=((t=this.options.find(e=>e.value===this.value))==null?void 0:t.label)??""}})}firstUpdated(){this.updateInputValue()}updated(t){super.updated(t),t.has("value")&&(this.syncSelectionFromValue(),this.updateInputValue())}handleSlotChange(){this.empty.hidden=this.options.some(t=>!t.hidden),this.syncSelectionFromValue(),this.updateInputValue(),this.setupOptionsAccessibility()}setupOptionsAccessibility(){this.options.forEach((t,e)=>{t.setAttribute("role","option"),t.id||(t.id=`${this.id}-option-${e}`),t.tabIndex=-1,t.setAttribute("aria-selected",String(this.multi?t.selected:t.value===this.value))})}syncSelectionFromValue(){if(this.multi){const t=this.value.split(",").map(e=>e.trim()).filter(Boolean);this.options.forEach(e=>{e.selected=t.includes(e.value)})}else this.options.forEach(t=>{t.selected=t.value===this.value})}updateInputValue(){requestAnimationFrame(()=>{var t;if(this.multi){const e=this.options.filter(i=>i.selected).map(i=>i.label);this.input.value=e.join(", ")}else{const e=(t=this.options.find(i=>i.value===this.value))==null?void 0:t.label;this.input.value=e??""}})}async showOptions(){this.optionsContainer.removeAttribute("hidden"),this.optionsContainer.style.display="block";const{x:t,y:e}=await E.computePosition(this.input,this.optionsContainer,{placement:"bottom-start",middleware:[E.offset(5),E.shift({padding:5}),E.size({apply({availableWidth:i,availableHeight:o,elements:n,rects:r}){const l=r.reference.width;n.floating.style.minWidth=`${l}px`,n.floating.style.maxWidth=`${i}px`,n.floating.style.maxHeight=`${o}px`}})]});Object.assign(this.optionsContainer.style,{left:`${t}px`,top:`${e}px`,position:"absolute",zIndex:"9999",overflowY:"auto"})}hideOptions(){var t;(t=this.optionsContainer)==null||t.setAttribute("hidden","true"),this.optionsContainer&&(this.optionsContainer.style.display="none")}handleInputChange(t){t.preventDefault(),t.stopPropagation();const e=t.detail.value;this.searchTerm$.next(e)}handleOptionClick(t){if(this.multi){const e=this.options.find(o=>o.value===t);e&&(e.selected=!e.selected);const i=this.options.filter(o=>o.selected).map(o=>o.value);this.value=i.join(","),this.updateInputValue(),this.dispatchEvent(new CustomEvent("change",{detail:{value:i},bubbles:!0,composed:!0}))}else this.hideOptions(),this.value=t,this.updateInputValue(),this.dispatchEvent(new CustomEvent("change",{detail:{value:t},bubbles:!0,composed:!0}))}checkValidity(){return this.multi?this.options.some(t=>t.selected):!!this.value}reportValidity(){var t;return(t=this.inputRef.value)==null?void 0:t.reportValidity()}handleTouchStart(t){var e,i;this.startY=((i=(e=t.touches)==null?void 0:e[0])==null?void 0:i.clientY)??0}preventScroll(t){var r,l;const e=t.target;if(!this.optionsContainer.contains(e))return;const i=this.optionsContainer.scrollTop,o=this.optionsContainer.scrollHeight-this.optionsContainer.offsetHeight,n=((l=(r=t.touches)==null?void 0:r[0])==null?void 0:l.clientY)??0;(i<=0&&n>this.startY||i>=o&&n<this.startY)&&t.preventDefault()}focusOption(t,e){const i=t[e];i&&(i.focus(),this.input.setAttribute("aria-activedescendant",i.id))}render(){var e;const t=!((e=this.optionsContainer)!=null&&e.hasAttribute("hidden"));return P.html`
|
|
2
|
-
<div class="relative">
|
|
3
|
-
<!-- The trigger slot (if any) overrides the default SchmancyInput -->
|
|
4
|
-
<slot name="trigger">
|
|
5
|
-
<schmancy-input
|
|
6
|
-
${U.ref(this.inputRef)}
|
|
7
|
-
id="input"
|
|
8
|
-
class="w-full"
|
|
9
|
-
.label=${this.label}
|
|
10
|
-
.placeholder=${this.placeholder}
|
|
11
|
-
.required=${this.required}
|
|
12
|
-
type="search"
|
|
13
|
-
inputmode="text"
|
|
14
|
-
autocomplete="off"
|
|
15
|
-
clickable
|
|
16
|
-
role="combobox"
|
|
17
|
-
aria-autocomplete="list"
|
|
18
|
-
aria-haspopup="listbox"
|
|
19
|
-
aria-controls="options"
|
|
20
|
-
aria-expanded=${t}
|
|
21
|
-
@focus=${()=>this.showOptions()}
|
|
22
|
-
@change=${this.handleInputChange}
|
|
23
|
-
>
|
|
24
|
-
</schmancy-input>
|
|
25
|
-
</slot>
|
|
26
|
-
|
|
27
|
-
<ul
|
|
28
|
-
id="options"
|
|
29
|
-
tabindex="-1"
|
|
30
|
-
class="absolute z-30 mt-1 w-full overflow-auto rounded-md shadow-sm"
|
|
31
|
-
role="listbox"
|
|
32
|
-
aria-multiselectable=${this.multi?"true":"false"}
|
|
33
|
-
hidden
|
|
34
|
-
@click=${i=>{var n;const o=(n=i.detail)==null?void 0:n.value;o&&this.handleOptionClick(o)}}
|
|
35
|
-
@touchstart=${this.handleTouchStart}
|
|
36
|
-
@touchmove=${this.preventScroll}
|
|
37
|
-
${j.color({bgColor:H.SchmancyTheme.sys.color.surface.container})}
|
|
38
|
-
@slotchange=${this.handleSlotChange}
|
|
39
|
-
>
|
|
40
|
-
<!-- "No results" option -->
|
|
41
|
-
<li id="empty" tabindex="-1">
|
|
42
|
-
<schmancy-typography type="label">No results found</schmancy-typography>
|
|
43
|
-
</li>
|
|
44
|
-
<!-- Slot for the <schmancy-option> elements -->
|
|
45
|
-
<slot></slot>
|
|
46
|
-
</ul>
|
|
47
|
-
</div>
|
|
48
|
-
`}};d([u.property({type:Boolean})],c.prototype,"required",2),d([u.property({type:String})],c.prototype,"placeholder",2),d([u.property({type:String,reflect:!0})],c.prototype,"value",2),d([u.property({type:String,reflect:!0})],c.prototype,"label",2),d([u.property({type:String})],c.prototype,"maxHeight",2),d([u.property({type:Boolean})],c.prototype,"multi",2),d([u.query("#options")],c.prototype,"optionsContainer",2),d([u.query("#empty")],c.prototype,"empty",2),d([u.query("schmancy-input")],c.prototype,"input",2),d([u.queryAssignedElements({flatten:!0})],c.prototype,"options",2),d([u.eventOptions({passive:!0})],c.prototype,"handleOptionClick",1),c=d([u.customElement("schmancy-autocomplete")],c);
|
|
49
|
-
//# sourceMappingURL=autocomplete-BU0sC_l-.cjs.map
|