@mhmo91/schmancy 0.2.113 → 0.2.115
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-BJ8e_TdT.cjs} +2 -2
- package/dist/{animated-text-B576YswO.cjs.map → animated-text-BJ8e_TdT.cjs.map} +1 -1
- package/dist/{animated-text-BuRbVM-X.js → animated-text-C-LJVhLw.js} +3 -3
- package/dist/{animated-text-BuRbVM-X.js.map → animated-text-C-LJVhLw.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-Bo5aB8BH.js → area.component-6ebQ-3Kb.js} +10 -10
- package/dist/{area.component-Bo5aB8BH.js.map → area.component-6ebQ-3Kb.js.map} +1 -1
- package/dist/{area.component-BFj0Dvfb.cjs → area.component-Bf5USqvC.cjs} +2 -2
- package/dist/{area.component-BFj0Dvfb.cjs.map → area.component-Bf5USqvC.cjs.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/autocomplete-CM_YM2UF.cjs +57 -0
- package/dist/autocomplete-CM_YM2UF.cjs.map +1 -0
- package/dist/autocomplete-NTEOksdT.js +295 -0
- package/dist/autocomplete-NTEOksdT.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-DQYRlKod.js → checkbox-1tBSHNXu.js} +2 -2
- package/dist/{checkbox-DQYRlKod.js.map → checkbox-1tBSHNXu.js.map} +1 -1
- package/dist/{checkbox-FM06WS9G.cjs → checkbox-jcFvgv_5.cjs} +2 -2
- package/dist/{checkbox-FM06WS9G.cjs.map → checkbox-jcFvgv_5.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-Ctk7cxHI.js → chips-CdcS0QXD.js} +3 -3
- package/dist/{chips-Ctk7cxHI.js.map → chips-CdcS0QXD.js.map} +1 -1
- package/dist/{chips-CJZbtp-O.cjs → chips-K7p1j3Uk.cjs} +2 -2
- package/dist/{chips-CJZbtp-O.cjs.map → chips-K7p1j3Uk.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-BSBJICYH.js} +3 -3
- package/dist/{date-range-CZiZR3OZ.js.map → date-range-BSBJICYH.js.map} +1 -1
- package/dist/{date-range-FxAO_oqk.cjs → date-range-BmVLxD4w.cjs} +2 -2
- package/dist/{date-range-FxAO_oqk.cjs.map → date-range-BmVLxD4w.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-NkgyZVcO.cjs → delay-BC-GT6yV.cjs} +2 -2
- package/dist/{delay-NkgyZVcO.cjs.map → delay-BC-GT6yV.cjs.map} +1 -1
- package/dist/{delay-gZOjfjX_.js → delay-CgOaVklg.js} +2 -2
- package/dist/{delay-gZOjfjX_.js.map → delay-CgOaVklg.js.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-Dw4upy-U.cjs} +2 -2
- package/dist/{divider-nNk0E_jZ.cjs.map → divider-Dw4upy-U.cjs.map} +1 -1
- package/dist/{divider-B-JF8gre.js → divider-lRP5ZCxr.js} +3 -3
- package/dist/{divider-B-JF8gre.js.map → divider-lRP5ZCxr.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/extra.cjs +2 -0
- package/dist/extra.cjs.map +1 -0
- package/dist/extra.js +6 -0
- package/dist/extra.js.map +1 -0
- package/dist/{flex-CieqpOUS.js → flex-BkuM0UK7.js} +2 -2
- package/dist/{flex-CieqpOUS.js.map → flex-BkuM0UK7.js.map} +1 -1
- package/dist/{flex-INEcbqBe.cjs → flex-X4APHjaR.cjs} +2 -2
- package/dist/{flex-INEcbqBe.cjs.map → flex-X4APHjaR.cjs.map} +1 -1
- package/dist/{form-lcamXnkd.js → form-Ci8uCvU-.js} +2 -2
- package/dist/{form-lcamXnkd.js.map → form-Ci8uCvU-.js.map} +1 -1
- package/dist/{form-CKMp4UzU.cjs → form-Ct_Qt0rD.cjs} +2 -2
- package/dist/{form-CKMp4UzU.cjs.map → form-Ct_Qt0rD.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-BZqH7sp7.cjs → icon-BPsYPc8h.cjs} +2 -2
- package/dist/{icon-BZqH7sp7.cjs.map → icon-BPsYPc8h.cjs.map} +1 -1
- package/dist/{icon-CJrmUGTm.js → icon-DOJOFG3x.js} +3 -3
- package/dist/{icon-CJrmUGTm.js.map → icon-DOJOFG3x.js.map} +1 -1
- package/dist/{icon-button-BNn0qRfC.js → icon-button-BPa29txC.js} +3 -3
- package/dist/{icon-button-BNn0qRfC.js.map → icon-button-BPa29txC.js.map} +1 -1
- package/dist/{icon-button-nMHz4MDw.cjs → icon-button-cirbgD54.cjs} +2 -2
- package/dist/{icon-button-nMHz4MDw.cjs.map → icon-button-cirbgD54.cjs.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 +84 -78
- package/dist/index.js.map +1 -1
- package/dist/input-B4miYmDK.cjs +98 -0
- package/dist/input-B4miYmDK.cjs.map +1 -0
- package/dist/input-CuvPPYVq.js +136 -0
- package/dist/input-CuvPPYVq.js.map +1 -0
- package/dist/input-DTJsOi9t.js +205 -0
- package/dist/input-DTJsOi9t.js.map +1 -0
- package/dist/input-DibJxeWY.cjs +51 -0
- package/dist/input-DibJxeWY.cjs.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-CjrF4M5H.js → list-CWbygRrR.js} +2 -2
- package/dist/{list-CjrF4M5H.js.map → list-CWbygRrR.js.map} +1 -1
- package/dist/{list-D4y-Mkap.cjs → list-QiglVzPK.cjs} +2 -2
- package/dist/{list-D4y-Mkap.cjs.map → list-QiglVzPK.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-djlKJ0lX.cjs → litElement.mixin-D_oDZMIO.cjs} +2 -2
- package/dist/{litElement.mixin-djlKJ0lX.cjs.map → litElement.mixin-D_oDZMIO.cjs.map} +1 -1
- package/dist/{litElement.mixin-NzkxESus.js → litElement.mixin-MZntPOCu.js} +2 -2
- package/dist/{litElement.mixin-NzkxESus.js.map → litElement.mixin-MZntPOCu.js.map} +1 -1
- package/dist/{menu-DAtFS31a.cjs → menu-Bn4JuaBS.cjs} +2 -2
- package/dist/{menu-DAtFS31a.cjs.map → menu-Bn4JuaBS.cjs.map} +1 -1
- package/dist/{menu-Cb5kUAvU.js → menu-iSx7aWwL.js} +3 -3
- package/dist/{menu-Cb5kUAvU.js.map → menu-iSx7aWwL.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-DBfFfXNm.cjs +18 -0
- package/dist/option-DBfFfXNm.cjs.map +1 -0
- package/dist/option-DMwxI7ML.js +75 -0
- package/dist/option-DMwxI7ML.js.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{outlet-DofHDlGH.cjs → outlet-CEaS1zUl.cjs} +2 -2
- package/dist/{outlet-DofHDlGH.cjs.map → outlet-CEaS1zUl.cjs.map} +1 -1
- package/dist/{outlet-6HZp4fo1.js → outlet-KhTjvKCU.js} +2 -2
- package/dist/{outlet-6HZp4fo1.js.map → outlet-KhTjvKCU.js.map} +1 -1
- package/dist/payment-card-form-CVZyDkcJ.cjs +74 -0
- package/dist/{payment-card-form-Bi3yNg4b.cjs.map → payment-card-form-CVZyDkcJ.cjs.map} +1 -1
- package/dist/{payment-card-form-C8FxRlh4.js → payment-card-form-DK86Lcng.js} +183 -134
- package/dist/{payment-card-form-C8FxRlh4.js.map → payment-card-form-DK86Lcng.js.map} +1 -1
- package/dist/{radio-group-A5QxSGOr.cjs → radio-group-CxJXNx54.cjs} +2 -2
- package/dist/{radio-group-A5QxSGOr.cjs.map → radio-group-CxJXNx54.cjs.map} +1 -1
- package/dist/{radio-group-BapuNl8y.js → radio-group-DNmZuvSj.js} +2 -2
- package/dist/{radio-group-BapuNl8y.js.map → radio-group-DNmZuvSj.js.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/{select-8AjN6LbM.js → select-DRi9CB_N.js} +64 -39
- package/dist/select-DRi9CB_N.js.map +1 -0
- package/dist/select-SQOIioEy.cjs +56 -0
- package/dist/select-SQOIioEy.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-xR13xD2A.js → sheet-BJGyAQko.js} +6 -6
- package/dist/{sheet-xR13xD2A.js.map → sheet-BJGyAQko.js.map} +1 -1
- package/dist/{sheet-CQFdHSwJ.cjs → sheet-QIcFyBDD.cjs} +2 -2
- package/dist/{sheet-CQFdHSwJ.cjs.map → sheet-QIcFyBDD.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BakU-Bdw.js → slider-A_LoTZ1P.js} +3 -3
- package/dist/{slider-BakU-Bdw.js.map → slider-A_LoTZ1P.js.map} +1 -1
- package/dist/{slider-B4OCBlQg.cjs → slider-XRH0sXZN.cjs} +2 -2
- package/dist/{slider-B4OCBlQg.cjs.map → slider-XRH0sXZN.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-C3VJtLgk.cjs → spinner-CSsb6sKK.cjs} +4 -4
- package/dist/{spinner-C3VJtLgk.cjs.map → spinner-CSsb6sKK.cjs.map} +1 -1
- package/dist/{spinner-BDx3SZsl.js → spinner-D0l2eAK5.js} +12 -11
- package/dist/{spinner-BDx3SZsl.js.map → spinner-D0l2eAK5.js.map} +1 -1
- package/dist/{surface-YiaJJQ5m.js → surface-D5FgxeIB.js} +2 -2
- package/dist/{surface-YiaJJQ5m.js.map → surface-D5FgxeIB.js.map} +1 -1
- package/dist/{surface-kjOrb8TO.cjs → surface-DEAdaZUh.cjs} +2 -2
- package/dist/{surface-kjOrb8TO.cjs.map → surface-DEAdaZUh.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-BZV2dBD5.cjs → table-Cygw_pIl.cjs} +2 -2
- package/dist/{table-BZV2dBD5.cjs.map → table-Cygw_pIl.cjs.map} +1 -1
- package/dist/{table-BguYeeBH.js → table-DC86Vj6Z.js} +2 -2
- package/dist/{table-BguYeeBH.js.map → table-DC86Vj6Z.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-group-H3C6ZnQn.js → tabs-group-7bz0I9uV.js} +2 -2
- package/dist/{tabs-group-H3C6ZnQn.js.map → tabs-group-7bz0I9uV.js.map} +1 -1
- package/dist/{tabs-group-BZFBZ1_G.cjs → tabs-group-BQomo5q3.cjs} +2 -2
- package/dist/{tabs-group-BZFBZ1_G.cjs.map → tabs-group-BQomo5q3.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-B-T2bBPl.js +43 -0
- package/dist/{tailwind.mixin-DklgfhB4.js.map → tailwind.mixin-B-T2bBPl.js.map} +1 -1
- package/dist/tailwind.mixin-CduPdozY.cjs +2 -0
- package/dist/{tailwind.mixin-CBhPue3q.cjs.map → tailwind.mixin-CduPdozY.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-CF-USarR.cjs → teleport.component-BMLwCM8y.cjs} +19 -19
- package/dist/{teleport.component-CF-USarR.cjs.map → teleport.component-BMLwCM8y.cjs.map} +1 -1
- package/dist/{teleport.component-D8DXijGl.js → teleport.component-gFIqLOrA.js} +43 -40
- package/dist/{teleport.component-D8DXijGl.js.map → teleport.component-gFIqLOrA.js.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-D7bTMerW.js → textarea-1aeql05N.js} +9 -8
- package/dist/{textarea-D7bTMerW.js.map → textarea-1aeql05N.js.map} +1 -1
- package/dist/textarea-CixoZTFB.cjs +42 -0
- package/dist/{textarea-BCWPb0Sn.cjs.map → textarea-CixoZTFB.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DHuXg7vh.cjs → theme-button-DocSoRxe.cjs} +2 -2
- package/dist/{theme-button-DHuXg7vh.cjs.map → theme-button-DocSoRxe.cjs.map} +1 -1
- package/dist/{theme-button-CP2_aq__.js → theme-button-MRgILdtC.js} +2 -2
- package/dist/{theme-button-CP2_aq__.js.map → theme-button-MRgILdtC.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.component-BtBosXb1.js → theme.component-BFkhNT0D.js} +47 -47
- package/dist/{theme.component-BtBosXb1.js.map → theme.component-BFkhNT0D.js.map} +1 -1
- package/dist/{theme.component-Ly2C_fQ8.cjs → theme.component-BgOdO6iM.cjs} +2 -2
- package/dist/{theme.component-Ly2C_fQ8.cjs.map → theme.component-BgOdO6iM.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/timezone-BW6MC511.js +119 -0
- package/dist/timezone-BW6MC511.js.map +1 -0
- package/dist/timezone-CvOrPfno.cjs +34 -0
- package/dist/timezone-CvOrPfno.cjs.map +1 -0
- package/dist/{tree-CG9B3uQP.cjs → tree-DysB6Y8C.cjs} +2 -2
- package/dist/{tree-CG9B3uQP.cjs.map → tree-DysB6Y8C.cjs.map} +1 -1
- package/dist/{tree-Y2B7yK7L.js → tree-PSCsuzDT.js} +2 -2
- package/dist/{tree-Y2B7yK7L.js.map → tree-PSCsuzDT.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-CzV1O28F.cjs → typewriter-C8pWgRuU.cjs} +2 -2
- package/dist/{typewriter-CzV1O28F.cjs.map → typewriter-C8pWgRuU.cjs.map} +1 -1
- package/dist/{typewriter-bnkFoDFz.js → typewriter-DmzUuxvZ.js} +14 -14
- package/dist/{typewriter-bnkFoDFz.js.map → typewriter-DmzUuxvZ.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-D-a-z23R.cjs → typography-BfjWKELJ.cjs} +2 -2
- package/dist/{typography-D-a-z23R.cjs.map → typography-BfjWKELJ.cjs.map} +1 -1
- package/dist/{typography-CSQByhJF.js → typography-D486o2A3.js} +2 -2
- package/dist/{typography-CSQByhJF.js.map → typography-D486o2A3.js.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 +26 -0
- package/types/src/extra/countries/countries.data.d.ts +5 -0
- package/types/src/extra/countries/index.d.ts +2 -0
- package/types/src/extra/index.d.ts +2 -0
- package/types/src/extra/timezone/index.d.ts +2 -0
- package/types/src/extra/timezone/timezone.d.ts +26 -0
- package/types/src/extra/timezone/timezones.data.d.ts +7 -0
- package/types/src/index.d.ts +2 -1
- package/types/src/option/option.d.ts +4 -0
- package/types/src/select/select.d.ts +8 -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-Du2Jw0a2.cjs +0 -49
- package/dist/autocomplete-Du2Jw0a2.cjs.map +0 -1
- package/dist/autocomplete-NL-c1Qp-.js +0 -264
- package/dist/autocomplete-NL-c1Qp-.js.map +0 -1
- package/dist/data.cjs +0 -2
- package/dist/data.cjs.map +0 -1
- package/dist/data.js +0 -2
- package/dist/data.js.map +0 -1
- package/dist/input-CszLZ81k.cjs +0 -51
- package/dist/input-CszLZ81k.cjs.map +0 -1
- package/dist/input-CwWLOBMF.js +0 -135
- package/dist/input-CwWLOBMF.js.map +0 -1
- package/dist/option-0le6-QeS.cjs +0 -18
- package/dist/option-0le6-QeS.cjs.map +0 -1
- package/dist/option-_1gW48HB.js +0 -49
- package/dist/option-_1gW48HB.js.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/tailwind.mixin-CBhPue3q.cjs +0 -2
- package/dist/tailwind.mixin-DklgfhB4.js +0 -43
- package/dist/textarea-BCWPb0Sn.cjs +0 -42
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-CwWLOBMF.js","sources":["../src/input/input.ts"],"sourcesContent":["import { html, LitElement, nothing, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map, takeUntil } from 'rxjs'\n\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\ntype EventDetails = {\n\tvalue: string\n}\n\n/**\n * Custom events the component may emit:\n * - 'input': on every keystroke\n * - 'change': on native blur/change\n * - 'enter': specifically when user presses Enter\n */\nexport type SchmancyInputInputEvent = CustomEvent<EventDetails>\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\nexport type SchmancyInputEnterEvent = CustomEvent<EventDetails>\n\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t// ----------------------------\n\t// A) Public properties\n\t// ----------------------------\n\n\t/** If user does NOT set `id`, we'll autogenerate one. */\n\tstatic _idCounter = 0\n\n\t@property({ reflect: true })\n\tpublic override id = ''\n\n\t/**\n\t * The label for the control. If populated, we render a `<label for=\"...\">`.\n\t * If empty, we add an `aria-label` to the <input> for better screenreader support.\n\t */\n\t@property({ type: String }) label = ''\n\n\t/**\n\t * The type of input. (e.g. 'text', 'password', 'email', etc.)\n\t */\n\t@property({ reflect: true })\n\tpublic type: HTMLInputElement['type'] = 'text'\n\n\t/**\n\t * Name attribute (for form submissions). By default, a unique fallback.\n\t */\n\t@property()\n\tpublic name = `name_${Date.now()}`\n\n\t@property()\n\tpublic placeholder = ''\n\n\t/** Current value of the input. */\n\t@property({ type: String, reflect: true })\n\tpublic value = ''\n\n\t/** Pattern validation attribute. */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t/** Whether the control is required for form validation. */\n\t@property({ type: Boolean, reflect: true })\n\tpublic required = false\n\n\t/** Whether the control is disabled. */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t/** Whether the input is read-only. */\n\t@property({ type: Boolean, reflect: true })\n\tpublic readonly = false\n\n\t/** If true, we visually show a pointer cursor even if readOnly. */\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/** Whether browser spellcheck is enabled. */\n\t@property({ type: Boolean, reflect: true })\n\tpublic spellcheck = false\n\n\t/**\n\t * Text alignment within the input.\n\t * - 'left' | 'center' | 'right'\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic align: 'left' | 'center' | 'right' = 'left'\n\n\t/** inputmode attribute (affects on-screen keyboards in mobile). */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t@property()\n\tpublic min?: string\n\n\t@property()\n\tpublic max?: string\n\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/** If true, auto-focus this input on first render. */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/** Autocomplete/autofill hints. */\n\t@property({ type: String, reflect: true })\n\tpublic autocomplete: AutoFill = 'on'\n\n\t/**\n\t * tabIndex for focusing by tab key. Typically 0 or -1.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t/**\n\t * A small hint text or error message to display under the input.\n\t */\n\t@property()\n\tpublic hint?: string\n\n\t/**\n\t * If true, we style the input as an error state, and possibly display\n\t * the hint as an error message.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic error = false\n\n\t// ----------------------------\n\t// B) Queries & Refs\n\t// ----------------------------\n\t@query('input') private inputElement!: HTMLInputElement\n\tprivate inputRef = createRef<HTMLInputElement>()\n\n\t// ----------------------------\n\t// C) Form-associated logic\n\t// ----------------------------\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true, // so focus() goes to <input>\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// no-op for older browsers / polyfills\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * If user did not provide an ID, auto-generate one so <label for=\"...\">\n\t * and various aria-* attributes can reference it.\n\t */\n\tprotected override willUpdate(changedProps: PropertyValueMap<any> | Map<PropertyKey, unknown>) {\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-input-${SchmancyInput._idCounter++}`\n\t\t}\n\t\tsuper.willUpdate(changedProps)\n\t}\n\n\t/** The form this element is associated with, if any. */\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\tprotected override updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\t// Reflect the current value to the form internals, so it’s submitted.\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\n\t\tif (changedProps.has('error')) {\n\t\t\t// If we have an error state, we can set custom error validity, or none if resolved.\n\t\t\tif (this.error) {\n\t\t\t\tthis.internals?.setValidity({ customError: true }, 'Invalid input', this.inputElement)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Native form methods:\n\t * - checkValidity()\n\t * - reportValidity()\n\t * - setCustomValidity()\n\t */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity() ?? true\n\t}\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity() ?? true\n\t}\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\t// ----------------------------\n\t// D) Lifecycle Hooks\n\t// ----------------------------\n\tfirstUpdated() {\n\t\t// Autofocus if desired\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// 1) Subscribe to 'input' events (every keystroke)\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(ev => (ev.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\t// Fire custom 'input' event with details\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('input', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t// dispatch change event\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// 2) Subscribe to 'change' events (native behavior, usually on blur)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(ev => (ev.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// 3) Emit a custom 'enter' event when user presses Enter\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(\n\t\t\t\tfilter(ev => ev.key === 'Enter'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(ev => {\n\t\t\t\tconst { value } = ev.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// 4) Detect autofill animation (Chrome, etc.)\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(\n\t\t\t\tfilter(ev => ev.animationName === 'onAutoFillStart'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(ev => {\n\t\t\t\tconst { value } = ev.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t// ----------------------------\n\t// E) Utility Methods\n\t// ----------------------------\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the native validity state of the inner <input>. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override to forward focus to the internal <input>.\n\t * Also dispatch a 'focus' event for external listeners.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Override to forward clicks to the internal <input>.\n\t * Also dispatch a 'click' event for external listeners.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/** Forward blur to the internal <input>. */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\t// ----------------------------\n\t// F) Rendering\n\t// ----------------------------\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'outline-secondary-default focus:outline-1 ': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t// If not in error state, use standard ring color:\n\t\t\t'ring-secondary-default ring-outline focus:ring-secondary-default': !this.error,\n\t\t\t// Error ring override:\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t// If read-only but \"clickable\" is true, show pointer. Otherwise normal text cursor.\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t// Alignment classes:\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\n\t\t/**\n\t\t * - If `this.label` is present, we render a proper `<label for=\"${this.id}\">`.\n\t\t * - If not, we add an aria-label to the <input> for better accessibility.\n\t\t * - If there's a `hint`, we reference it via aria-describedby.\n\t\t * - If there's an error, we set aria-invalid and could set aria-errormessage.\n\t\t */\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t\tid=\"label-${this.id}\"\n\t\t\t\t\t\tclass=${classMap(labelClasses)}\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t.value=${this.value}\n\t\t\t\t.type=${this.type}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\t.spellcheck=${this.spellcheck}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\t?required=${this.required}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readonly=${this.readonly}\n\t\t\t\taria-invalid=${this.error ? 'true' : 'false'}\n\t\t\t\taria-required=${this.required ? 'true' : 'false'}\n\t\t\t\taria-labelledby=${this.label ? `label-${this.id}` : nothing}\n\t\t\t\taria-describedby=${this.hint ? `hint-${this.id}` : nothing}\n\t\t\t\taria-label=${ifDefined(!this.label ? this.placeholder || 'Input' : undefined)}\n\t\t\t/>\n\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<div\n\t\t\t\t\t\tid=\"hint-${this.id}\"\n\t\t\t\t\t\tclass=\"pt-[2px]\"\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography align=\"left\" type=\"label\"> ${this.hint} </schmancy-typography>\n\t\t\t\t\t</div>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","super","this","id","label","type","name","Date","now","placeholder","value","required","disabled","readonly","clickable","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","changedProps","_idCounter","willUpdate","form","updated","has","setFormValue","setValidity","customError","inputElement","checkValidity","reportValidity","message","setCustomValidity","firstUpdated","focus","fromEvent","pipe","map","ev","target","distinctUntilChanged","takeUntil","disconnecting","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","animationName","select","getValidity","validity","options","Event","click","blur","inputClasses","labelClasses","html","when","classMap","color","SchmancyTheme","sys","default","primary","bgColor","surface","highest","on","ref","ifDefined","inputmode","pattern","step","minlength","maxlength","min","max","nothing","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","reflect","prototype","String","Boolean","Number","query","customElement"],"mappings":"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"}
|
package/dist/option-0le6-QeS.cjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const p=require("./tailwind.mixin-CBhPue3q.cjs"),u=require("lit"),r=require("lit/decorators.js");var d=Object.defineProperty,y=Object.getOwnPropertyDescriptor,l=(t,e,n,i)=>{for(var a,o=i>1?void 0:i?y(e,n):e,c=t.length-1;c>=0;c--)(a=t[c])&&(o=(i?a(e,n,o):a(o))||o);return i&&o&&d(e,n,o),o};let s=class extends p.TailwindElement(){constructor(){super(...arguments),this.value="",this.selected=!1}handleOptionClick(){var t;this.dispatchEvent(new CustomEvent("click",{detail:{value:this.value,label:this.label??((t=this.textContent)==null?void 0:t.trim())??""},bubbles:!0,composed:!0}))}focus(){var t,e;(e=(t=this.shadowRoot)==null?void 0:t.querySelector("li"))==null||e.focus()}render(){const t={"outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:-outline-offset-2 rounded-md focus-visible:outline-secondary-default":!0,"font-semibold relative cursor-pointer py-2 px-3":!0,"bg-secondary-container text-secondery-onContainer":this.selected};return u.html`
|
|
2
|
-
<li
|
|
3
|
-
tabindex="0"
|
|
4
|
-
class="${this.classMap(t)}"
|
|
5
|
-
role="option"
|
|
6
|
-
@click=${e=>{e.stopPropagation(),e.preventDefault(),this.handleOptionClick()}}
|
|
7
|
-
@keydown=${e=>{e.key!=="Enter"&&e.key!==" "||(e.stopPropagation(),e.preventDefault(),this.handleOptionClick())}}
|
|
8
|
-
>
|
|
9
|
-
<div class="${this.classMap({"duration-500 transition-opacity":!0,"hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0":!0})}"></div>
|
|
10
|
-
<sch-flex class="text-start" align="center" justify="between" flow="row">
|
|
11
|
-
<slot class="self-start"></slot>
|
|
12
|
-
<slot name="support">
|
|
13
|
-
<span></span>
|
|
14
|
-
</slot>
|
|
15
|
-
</sch-flex>
|
|
16
|
-
</li>
|
|
17
|
-
`}};l([r.property({type:String,reflect:!0})],s.prototype,"value",2),l([r.property({type:String,reflect:!0})],s.prototype,"label",2),l([r.property({type:Boolean})],s.prototype,"selected",2),s=l([r.customElement("schmancy-option")],s);
|
|
18
|
-
//# sourceMappingURL=option-0le6-QeS.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"option-0le6-QeS.cjs","sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nexport type SchmancyOptionChangeEvent = CustomEvent<{\n\tvalue: string\n\tlabel: string\n}>\n\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement() {\n\t@property({ type: String, reflect: true }) value: string = ''\n\t@property({ type: String, reflect: true }) label: string | undefined\n\t@property({ type: Boolean }) selected: boolean = false\n\n\tprivate handleOptionClick() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancyOptionChangeEvent['detail']>('click', {\n\t\t\t\tdetail: {\n\t\t\t\t\tvalue: this.value,\n\t\t\t\t\tlabel: this.label ?? this.textContent?.trim() ?? '',\n\t\t\t\t},\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t// override focus method to focus the native element\n\tfocus() {\n\t\tthis.shadowRoot?.querySelector('li')?.focus()\n\t}\n\n\tprotected render() {\n\t\t// Apply highlight styles if `this.selected` is true\n\t\tconst classes = {\n\t\t\t'outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:-outline-offset-2 rounded-md focus-visible:outline-secondary-default':\n\t\t\t\ttrue,\n\t\t\t'font-semibold relative cursor-pointer py-2 px-3': true,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\t\tconst stateLayerClasses = {\n\t\t\t'duration-500 transition-opacity': true,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<li\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\trole=\"option\"\n\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\tthis.handleOptionClick()\n\t\t\t\t}}\n\t\t\t\t@keydown=${(e: KeyboardEvent) => {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.handleOptionClick()\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div class=\"${this.classMap(stateLayerClasses)}\"></div>\n\t\t\t\t<sch-flex class=\"text-start\" align=\"center\" justify=\"between\" flow=\"row\">\n\t\t\t\t\t<slot class=\"self-start\"></slot>\n\t\t\t\t\t<slot name=\"support\">\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</slot>\n\t\t\t\t</sch-flex>\n\t\t\t</li>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"names":["SchmancyOption","TailwindElement","constructor","super","arguments","this","value","selected","handleOptionClick","dispatchEvent","CustomEvent","detail","label","textContent","trim","bubbles","composed","focus","shadowRoot","querySelector","classes","html","classMap","e","stopPropagation","preventDefault","key","__decorateClass","property","type","String","reflect","prototype","Boolean","customElement"],"mappings":"4YAUA,IAAqBA,EAArB,cAA4CC,EAAAA,gBAAAA,CAAAA,CAA5C,aAAAC,CAAAC,MAAAC,GAAAA,SAAAA,EAC4DC,KAAAC,MAAA,GAEVD,KAAAE,SAAAA,EAAA,CAEzC,mBAAAC,OACFH,KAAAI,cACJ,IAAIC,YAAiD,QAAS,CAC7DC,OAAQ,CACPL,MAAOD,KAAKC,MACZM,MAAOP,KAAKO,SAASP,EAAAA,KAAKQ,cAALR,YAAAA,EAAkBS,SAAU,EAElDC,EAAAA,QAAAA,GACAC,SAAAA,EAEF,CAAA,CAAA,CAAA,CAID,OAAAC,UACCZ,GAAAA,EAAAA,KAAKa,aAALb,YAAAA,EAAiBc,cAAc,QAA/Bd,MAAAA,EAAsCY,OAAM,CAGnC,QAET,CAAA,MAAMG,EAAU,CACf,mKACC,GACD,kDAAmD,GACnD,oDAAqDf,KAAKE,QAOpD,EAAA,OAAAc,EAAAA;AAAAA;AAAAA;AAAAA,aAGIhB,KAAKiB,SAASF,CAAAA,CAAAA;AAAAA;AAAAA,aAEbG,GAAAA,CACTA,EAAEC,gBAAAA,EACFD,EAAEE,eAAAA,EACFpB,KAAKG,kBAAkB,CAAA,CAAA;AAAA,eAEZe,GACG,CAAVA,EAAEG,MAAQ,SAAWH,EAAEG,MAAQ,MAClCH,EAAEC,gBACFD,EAAAA,EAAEE,eACFpB,EAAAA,KAAKG,kBAAkB,EAAA,CAAA;AAAA;AAAA,kBAIXH,KAAKiB,SAvBK,CACzB,kCAAmC,GACnC,qEAAsE,EAAA,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAqBvB,CAAA,EArDNK,EAAA,CAA1CC,EAAAA,SAAS,CAAEC,KAAMC,OAAQC,QAAS,EAAA,CAAA,CAAA,EADf/B,EACuBgC,UAAA,QAAA,GACAL,EAAA,CAA1CC,EAAAA,SAAS,CAAEC,KAAMC,OAAQC,QAAAA,EAFN/B,CAAAA,CAAAA,EAAAA,EAEuBgC,UAAA,QAAA,CAAA,EACdL,EAAA,CAA5BC,WAAS,CAAEC,KAAMI,WAHEjC,EAGSgC,UAAA,WAAA,CAHThC,EAAAA,EAArB2B,EAAA,CADCO,EAAAA,cAAc,iBACMlC,CAAAA,EAAAA,CAAAA"}
|
package/dist/option-_1gW48HB.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import "rxjs";
|
|
2
|
-
import "lit/directives/class-map.js";
|
|
3
|
-
import "lit/directives/style-map.js";
|
|
4
|
-
import { T as p } from "./tailwind.mixin-DklgfhB4.js";
|
|
5
|
-
import { html as u } from "lit";
|
|
6
|
-
import { property as c, customElement as d } from "lit/decorators.js";
|
|
7
|
-
var f = Object.defineProperty, h = Object.getOwnPropertyDescriptor, l = (e, t, r, i) => {
|
|
8
|
-
for (var n, o = i > 1 ? void 0 : i ? h(t, r) : t, a = e.length - 1; a >= 0; a--) (n = e[a]) && (o = (i ? n(t, r, o) : n(o)) || o);
|
|
9
|
-
return i && o && f(t, r, o), o;
|
|
10
|
-
};
|
|
11
|
-
let s = class extends p() {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments), this.value = "", this.selected = !1;
|
|
14
|
-
}
|
|
15
|
-
handleOptionClick() {
|
|
16
|
-
var e;
|
|
17
|
-
this.dispatchEvent(new CustomEvent("click", { detail: { value: this.value, label: this.label ?? ((e = this.textContent) == null ? void 0 : e.trim()) ?? "" }, bubbles: !0, composed: !0 }));
|
|
18
|
-
}
|
|
19
|
-
focus() {
|
|
20
|
-
var e, t;
|
|
21
|
-
(t = (e = this.shadowRoot) == null ? void 0 : e.querySelector("li")) == null || t.focus();
|
|
22
|
-
}
|
|
23
|
-
render() {
|
|
24
|
-
const e = { "outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:-outline-offset-2 rounded-md focus-visible:outline-secondary-default": !0, "font-semibold relative cursor-pointer py-2 px-3": !0, "bg-secondary-container text-secondery-onContainer": this.selected };
|
|
25
|
-
return u`
|
|
26
|
-
<li
|
|
27
|
-
tabindex="0"
|
|
28
|
-
class="${this.classMap(e)}"
|
|
29
|
-
role="option"
|
|
30
|
-
@click=${(t) => {
|
|
31
|
-
t.stopPropagation(), t.preventDefault(), this.handleOptionClick();
|
|
32
|
-
}}
|
|
33
|
-
@keydown=${(t) => {
|
|
34
|
-
t.key !== "Enter" && t.key !== " " || (t.stopPropagation(), t.preventDefault(), this.handleOptionClick());
|
|
35
|
-
}}
|
|
36
|
-
>
|
|
37
|
-
<div class="${this.classMap({ "duration-500 transition-opacity": !0, "hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0": !0 })}"></div>
|
|
38
|
-
<sch-flex class="text-start" align="center" justify="between" flow="row">
|
|
39
|
-
<slot class="self-start"></slot>
|
|
40
|
-
<slot name="support">
|
|
41
|
-
<span></span>
|
|
42
|
-
</slot>
|
|
43
|
-
</sch-flex>
|
|
44
|
-
</li>
|
|
45
|
-
`;
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
l([c({ type: String, reflect: !0 })], s.prototype, "value", 2), l([c({ type: String, reflect: !0 })], s.prototype, "label", 2), l([c({ type: Boolean })], s.prototype, "selected", 2), s = l([d("schmancy-option")], s);
|
|
49
|
-
//# sourceMappingURL=option-_1gW48HB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"option-_1gW48HB.js","sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nexport type SchmancyOptionChangeEvent = CustomEvent<{\n\tvalue: string\n\tlabel: string\n}>\n\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement() {\n\t@property({ type: String, reflect: true }) value: string = ''\n\t@property({ type: String, reflect: true }) label: string | undefined\n\t@property({ type: Boolean }) selected: boolean = false\n\n\tprivate handleOptionClick() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancyOptionChangeEvent['detail']>('click', {\n\t\t\t\tdetail: {\n\t\t\t\t\tvalue: this.value,\n\t\t\t\t\tlabel: this.label ?? this.textContent?.trim() ?? '',\n\t\t\t\t},\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t// override focus method to focus the native element\n\tfocus() {\n\t\tthis.shadowRoot?.querySelector('li')?.focus()\n\t}\n\n\tprotected render() {\n\t\t// Apply highlight styles if `this.selected` is true\n\t\tconst classes = {\n\t\t\t'outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:-outline-offset-2 rounded-md focus-visible:outline-secondary-default':\n\t\t\t\ttrue,\n\t\t\t'font-semibold relative cursor-pointer py-2 px-3': true,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\t\tconst stateLayerClasses = {\n\t\t\t'duration-500 transition-opacity': true,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<li\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\trole=\"option\"\n\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\tthis.handleOptionClick()\n\t\t\t\t}}\n\t\t\t\t@keydown=${(e: KeyboardEvent) => {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.handleOptionClick()\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div class=\"${this.classMap(stateLayerClasses)}\"></div>\n\t\t\t\t<sch-flex class=\"text-start\" align=\"center\" justify=\"between\" flow=\"row\">\n\t\t\t\t\t<slot class=\"self-start\"></slot>\n\t\t\t\t\t<slot name=\"support\">\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</slot>\n\t\t\t\t</sch-flex>\n\t\t\t</li>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"names":["SchmancyOption","TailwindElement","super","arguments","this","value","selected","handleOptionClick","dispatchEvent","CustomEvent","detail","label","textContent","trim","bubbles","composed","shadowRoot","querySelector","focus","classes","html","classMap","e","stopPropagation","preventDefault","key","__decorateClass","property","type","String","reflect","prototype","Boolean","customElement"],"mappings":";;;;;;;;;;AAUA,IAAqBA,IAArB,cAA4CC,EAA5C,EAAA;AAAA,EAAA,cAAAC;AAAAA,UAAAA,GAAAC,SAC4DC,GAAAA,KAAAC,QAAA,IAEVD,KAAAE,WAAAA;AAAAA,EAAA;AAAA,EAEzC,oBAAAC;;AACFH,SAAAI,cACJ,IAAIC,YAAiD,SAAS,EAC7DC,QAAQ,EACPL,OAAOD,KAAKC,OACZM,OAAOP,KAAKO,WAASP,IAAAA,KAAKQ,gBAALR,gBAAAA,EAAkBS,WAAU,GAAA,GAElDC,SAAS,IACTC,UAAU,GAAA,CAAA,CAAA;AAAA,EAEZ;AAAA,EAID,QACCX;;AAAAA,KAAAA,KAAAA,IAAAA,KAAKY,eAALZ,gBAAAA,EAAiBa,cAAc,UAA/Bb,QAAAA,EAAsCc;AAAAA,EAAM;AAAA,EAGnC,SAET;AAAA,UAAMC,IAAU,EACf,oKACC,IACD,mDAAmD,IACnD,qDAAqDf,KAAKE,SAOpD;AAAA,WAAAc;AAAAA;AAAAA;AAAAA,aAGIhB,KAAKiB,SAASF,CAAAA,CAAAA;AAAAA;AAAAA,aAEbG,OAAAA;AACTA,QAAEC,gBAAAA,GACFD,EAAEE,eAAAA,GACFpB,KAAKG,kBAAkB;AAAA,IAAA,CAAA;AAAA,eAEZe,OACG;AAAA,MAAVA,EAAEG,QAAQ,WAAWH,EAAEG,QAAQ,QAClCH,EAAEC,gBACFD,GAAAA,EAAEE,eACFpB,GAAAA,KAAKG,kBAAkB;AAAA,IAAA,CAAA;AAAA;AAAA,kBAIXH,KAAKiB,SAvBK,EACzB,mCAAmC,IACnC,sEAAsE,GAAA,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBvB;AAAA;AArDNK,EAAA,CAA1CC,EAAS,EAAEC,MAAMC,QAAQC,SAAS,GAAA,CAAA,CAAA,GADf9B,EACuB+B,WAAA,SAAA,CACAL,GAAAA,EAAA,CAA1CC,EAAS,EAAEC,MAAMC,QAAQC,SAAAA,GAFN9B,CAAAA,CAAAA,GAAAA,EAEuB+B,WAAA,SAAA,CAAA,GACdL,EAAA,CAA5BC,EAAS,EAAEC,MAAMI,QAHEhC,CAAAA,CAAAA,GAAAA,EAGS+B,WAAA,YAAA,CAAA,GAHT/B,IAArB0B,EAAA,CADCO,EAAc,iBACMjC,CAAAA,GAAAA,CAAAA;"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const w=require("./litElement.mixin-djlKJ0lX.cjs");require("./tailwind.mixin-CBhPue3q.cjs");const b=require("lit"),f=require("lit/decorators.js");var x=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},y=function(e,t,r,i,n,a,o,s,d,p){var l=this;l.numeralDecimalMark=e||".",l.numeralIntegerScale=t>0?t:0,l.numeralDecimalScale=r>=0?r:2,l.numeralThousandsGroupStyle=i||y.groupStyle.thousand,l.numeralPositiveOnly=!!n,l.stripLeadingZeroes=a!==!1,l.prefix=o||o===""?o:"",l.signBeforePrefix=!!s,l.tailPrefix=!!d,l.delimiter=p||p===""?p:",",l.delimiterRE=p?new RegExp("\\"+p,"g"):""};y.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan",none:"none"},y.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var t,r,i,n,a=this,o="";switch(e=e.replace(/[A-Za-z]/g,"").replace(a.numeralDecimalMark,"M").replace(/[^\dM-]/g,"").replace(/^\-/,"N").replace(/\-/g,"").replace("N",a.numeralPositiveOnly?"":"-").replace("M",a.numeralDecimalMark),a.stripLeadingZeroes&&(e=e.replace(/^(-)?0+(?=\d)/,"$1")),r=e.slice(0,1)==="-"?"-":"",i=a.prefix!==void 0?a.signBeforePrefix?r+a.prefix:a.prefix+r:r,n=e,e.indexOf(a.numeralDecimalMark)>=0&&(n=(t=e.split(a.numeralDecimalMark))[0],o=a.numeralDecimalMark+t[1].slice(0,a.numeralDecimalScale)),r==="-"&&(n=n.slice(1)),a.numeralIntegerScale>0&&(n=n.slice(0,a.numeralIntegerScale)),a.numeralThousandsGroupStyle){case y.groupStyle.lakh:n=n.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+a.delimiter);break;case y.groupStyle.wan:n=n.replace(/(\d)(?=(\d{4})+$)/g,"$1"+a.delimiter);break;case y.groupStyle.thousand:n=n.replace(/(\d)(?=(\d{3})+$)/g,"$1"+a.delimiter)}return a.tailPrefix?r+n.toString()+(a.numeralDecimalScale>0?o.toString():"")+a.prefix:i+n.toString()+(a.numeralDecimalScale>0?o.toString():"")}};var I=y,k=function(e,t,r){var i=this;i.date=[],i.blocks=[],i.datePattern=e,i.dateMin=t.split("-").reverse().map(function(n){return parseInt(n,10)}),i.dateMin.length===2&&i.dateMin.unshift(0),i.dateMax=r.split("-").reverse().map(function(n){return parseInt(n,10)}),i.dateMax.length===2&&i.dateMax.unshift(0),i.initBlocks()};k.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){t==="Y"?e.blocks.push(4):e.blocks.push(2)})},getISOFormatDate:function(){var e=this,t=e.date;return t[2]?t[2]+"-"+e.addLeadingZero(t[1])+"-"+e.addLeadingZero(t[0]):""},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,r="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(i,n){if(e.length>0){var a=e.slice(0,i),o=a.slice(0,1),s=e.slice(i);switch(t.datePattern[n]){case"d":a==="00"?a="01":parseInt(o,10)>3?a="0"+o:parseInt(a,10)>31&&(a="31");break;case"m":a==="00"?a="01":parseInt(o,10)>1?a="0"+o:parseInt(a,10)>12&&(a="12")}r+=a,e=s}}),this.getFixedDateString(r)},getFixedDateString:function(e){var t,r,i,n=this,a=n.datePattern,o=[],s=0,d=0,p=0,l=0,m=0,u=0,g=!1;return e.length===4&&a[0].toLowerCase()!=="y"&&a[1].toLowerCase()!=="y"&&(m=2-(l=a[0]==="d"?0:2),t=parseInt(e.slice(l,l+2),10),r=parseInt(e.slice(m,m+2),10),o=this.getFixedDate(t,r,0)),e.length===8&&(a.forEach(function(h,C){switch(h){case"d":s=C;break;case"m":d=C;break;default:p=C}}),u=2*p,l=s<=p?2*s:2*s+2,m=d<=p?2*d:2*d+2,t=parseInt(e.slice(l,l+2),10),r=parseInt(e.slice(m,m+2),10),i=parseInt(e.slice(u,u+4),10),g=e.slice(u,u+4).length===4,o=this.getFixedDate(t,r,i)),e.length!==4||a[0]!=="y"&&a[1]!=="y"||(u=2-(m=a[0]==="m"?0:2),r=parseInt(e.slice(m,m+2),10),i=parseInt(e.slice(u,u+2),10),g=e.slice(u,u+2).length===2,o=[0,r,i]),e.length!==6||a[0]!=="Y"&&a[1]!=="Y"||(u=2-.5*(m=a[0]==="m"?0:4),r=parseInt(e.slice(m,m+2),10),i=parseInt(e.slice(u,u+4),10),g=e.slice(u,u+4).length===4,o=[0,r,i]),o=n.getRangeFixedDate(o),n.date=o,o.length===0?e:a.reduce(function(h,C){switch(C){case"d":return h+(o[0]===0?"":n.addLeadingZero(o[0]));case"m":return h+(o[1]===0?"":n.addLeadingZero(o[1]));case"y":return h+(g?n.addLeadingZeroForYear(o[2],!1):"");case"Y":return h+(g?n.addLeadingZeroForYear(o[2],!0):"")}},"")},getRangeFixedDate:function(e){var t=this,r=t.datePattern,i=t.dateMin||[],n=t.dateMax||[];return!e.length||i.length<3&&n.length<3||r.find(function(a){return a.toLowerCase()==="y"})&&e[2]===0?e:n.length&&(n[2]<e[2]||n[2]===e[2]&&(n[1]<e[1]||n[1]===e[1]&&n[0]<e[0]))?n:i.length&&(i[2]>e[2]||i[2]===e[2]&&(i[1]>e[1]||i[1]===e[1]&&i[0]>e[0]))?i:e},getFixedDate:function(e,t,r){return e=Math.min(e,31),t=Math.min(t,12),r=parseInt(r||0,10),(t<7&&t%2==0||t>8&&t%2==1)&&(e=Math.min(e,t===2?this.isLeapYear(r)?29:28:30)),[e,t,r]},isLeapYear:function(e){return e%4==0&&e%100!=0||e%400==0},addLeadingZero:function(e){return(e<10?"0":"")+e},addLeadingZeroForYear:function(e,t){return t?(e<10?"000":e<100?"00":e<1e3?"0":"")+e:(e<10?"0":"")+e}};var L=k,F=function(e,t){var r=this;r.time=[],r.blocks=[],r.timePattern=e,r.timeFormat=t,r.initBlocks()};F.prototype={initBlocks:function(){var e=this;e.timePattern.forEach(function(){e.blocks.push(2)})},getISOFormatTime:function(){var e=this,t=e.time;return t[2]?e.addLeadingZero(t[0])+":"+e.addLeadingZero(t[1])+":"+e.addLeadingZero(t[2]):""},getBlocks:function(){return this.blocks},getTimeFormatOptions:function(){return String(this.timeFormat)==="12"?{maxHourFirstDigit:1,maxHours:12,maxMinutesFirstDigit:5,maxMinutes:60}:{maxHourFirstDigit:2,maxHours:23,maxMinutesFirstDigit:5,maxMinutes:60}},getValidatedTime:function(e){var t=this,r="";e=e.replace(/[^\d]/g,"");var i=t.getTimeFormatOptions();return t.blocks.forEach(function(n,a){if(e.length>0){var o=e.slice(0,n),s=o.slice(0,1),d=e.slice(n);switch(t.timePattern[a]){case"h":parseInt(s,10)>i.maxHourFirstDigit?o="0"+s:parseInt(o,10)>i.maxHours&&(o=i.maxHours+"");break;case"m":case"s":parseInt(s,10)>i.maxMinutesFirstDigit?o="0"+s:parseInt(o,10)>i.maxMinutes&&(o=i.maxMinutes+"")}r+=o,e=d}}),this.getFixedTimeString(r)},getFixedTimeString:function(e){var t,r,i,n=this,a=n.timePattern,o=[],s=0,d=0,p=0,l=0,m=0,u=0;return e.length===6&&(a.forEach(function(g,h){switch(g){case"s":s=2*h;break;case"m":d=2*h;break;case"h":p=2*h}}),u=p,m=d,l=s,t=parseInt(e.slice(l,l+2),10),r=parseInt(e.slice(m,m+2),10),i=parseInt(e.slice(u,u+2),10),o=this.getFixedTime(i,r,t)),e.length===4&&n.timePattern.indexOf("s")<0&&(a.forEach(function(g,h){switch(g){case"m":d=2*h;break;case"h":p=2*h}}),u=p,m=d,t=0,r=parseInt(e.slice(m,m+2),10),i=parseInt(e.slice(u,u+2),10),o=this.getFixedTime(i,r,t)),n.time=o,o.length===0?e:a.reduce(function(g,h){switch(h){case"s":return g+n.addLeadingZero(o[2]);case"m":return g+n.addLeadingZero(o[1]);case"h":return g+n.addLeadingZero(o[0])}},"")},getFixedTime:function(e,t,r){return r=Math.min(parseInt(r||0,10),60),t=Math.min(t,60),[e=Math.min(e,60),t,r]},addLeadingZero:function(e){return(e<10?"0":"")+e}};var V=F,P=function(e,t){var r=this;r.delimiter=t||t===""?t:" ",r.delimiterRE=t?new RegExp("\\"+t,"g"):"",r.formatter=e};P.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear();for(var r,i="",n=!1,a=0,o=(e=(e=(e=e.replace(/[^\d+]/g,"")).replace(/^\+/,"B").replace(/\+/g,"").replace("B","+")).replace(t.delimiterRE,"")).length;a<o;a++)r=t.formatter.inputDigit(e.charAt(a)),/[\s()-]/g.test(r)?(i=r,n=!0):n||(i=r);return i=(i=i.replace(/[()]/g,"")).replace(/[\s-]/g,t.delimiter)}};var M=P,D={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb15:[4,6,5],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],mir:[4,4,4,4],unionPay:[4,4,4,4],general:[4,4,4,4]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]\d{0,2}|22[2-9]\d{0,1}|2[3-7]\d{0,2})\d{0,12}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb15:/^(?:2131|1800)\d{0,11}/,jcb:/^(?:35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,mir:/^220[0-4]\d{0,12}/,visa:/^4\d{0,15}/,unionPay:/^(62|81)\d{0,14}/},getStrictBlocks:function(e){var t=e.reduce(function(r,i){return r+i},0);return e.concat(19-t)},getInfo:function(e,t){var r=D.blocks,i=D.re;for(var n in t=!!t,i)if(i[n].test(e)){var a=r[n];return{type:n,blocks:t?this.getStrictBlocks(a):a}}return{type:"unknown",blocks:t?this.getStrictBlocks(r.general):r.general}}},E=D,T={noop:function(){},strip:function(e,t){return e.replace(t,"")},getPostDelimiter:function(e,t,r){if(r.length===0)return e.slice(-t.length)===t?t:"";var i="";return r.forEach(function(n){e.slice(-n.length)===n&&(i=n)}),i},getDelimiterREByDelimiter:function(e){return new RegExp(e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1"),"g")},getNextCursorPosition:function(e,t,r,i,n){return t.length===e?r.length:e+this.getPositionOffset(e,t,r,i,n)},getPositionOffset:function(e,t,r,i,n){var a,o,s;return a=this.stripDelimiters(t.slice(0,e),i,n),o=this.stripDelimiters(r.slice(0,e),i,n),(s=a.length-o.length)!==0?s/Math.abs(s):0},stripDelimiters:function(e,t,r){var i=this;if(r.length===0){var n=t?i.getDelimiterREByDelimiter(t):"";return e.replace(n,"")}return r.forEach(function(a){a.split("").forEach(function(o){e=e.replace(i.getDelimiterREByDelimiter(o),"")})}),e},headStr:function(e,t){return e.slice(0,t)},getMaxLength:function(e){return e.reduce(function(t,r){return t+r},0)},getPrefixStrippedValue:function(e,t,r,i,n,a,o,s,d){if(r===0)return e;if(e===t&&e!=="")return"";if(d&&e.slice(0,1)=="-"){var p=i.slice(0,1)=="-"?i.slice(1):i;return"-"+this.getPrefixStrippedValue(e.slice(1),t,r,p,n,a,o,s,d)}if(i.slice(0,r)!==t&&!s||i.slice(-r)!==t&&s)return o&&!i&&e?e:"";var l=this.stripDelimiters(i,n,a);return e.slice(0,r)===t||s?e.slice(-r)!==t&&s?l.slice(0,-r-1):s?e.slice(0,-r):e.slice(r):l.slice(r)},getFirstDiffIndex:function(e,t){for(var r=0;e.charAt(r)===t.charAt(r);)if(e.charAt(r++)==="")return-1;return r},getFormattedValue:function(e,t,r,i,n,a){var o="",s=n.length>0,d="";return r===0?e:(t.forEach(function(p,l){if(e.length>0){var m=e.slice(0,p),u=e.slice(p);d=s?n[a?l-1:l]||d:i,a?(l>0&&(o+=d),o+=m):(o+=m,m.length===p&&l<r-1&&(o+=d)),e=u}}),o)},fixPrefixCursor:function(e,t,r,i){if(e){var n=e.value,a=r||i[0]||" ";if(e.setSelectionRange&&t&&!(t.length+a.length<=n.length)){var o=2*n.length;setTimeout(function(){e.setSelectionRange(o,o)},1)}}},checkFullSelection:function(e){try{return(window.getSelection()||document.getSelection()||{}).toString().length===e.length}catch{}return!1},setSelection:function(e,t,r){if(e===this.getActiveElement(r)&&!(e&&e.value.length<=t))if(e.createTextRange){var i=e.createTextRange();i.move("character",t),i.select()}else try{e.setSelectionRange(t,t)}catch{}},getActiveElement:function(e){var t=e.activeElement;return t&&t.shadowRoot?this.getActiveElement(t.shadowRoot):t},isAndroid:function(){return navigator&&/android/i.test(navigator.userAgent)},isAndroidBackspaceKeydown:function(e,t){return!!(this.isAndroid()&&e&&t)&&t===e.slice(0,-1)}},B={assign:function(e,t){return t=t||{},(e=e||{}).creditCard=!!t.creditCard,e.creditCardStrictMode=!!t.creditCardStrictMode,e.creditCardType="",e.onCreditCardTypeChanged=t.onCreditCardTypeChanged||function(){},e.phone=!!t.phone,e.phoneRegionCode=t.phoneRegionCode||"AU",e.phoneFormatter={},e.time=!!t.time,e.timePattern=t.timePattern||["h","m","s"],e.timeFormat=t.timeFormat||"24",e.timeFormatter={},e.date=!!t.date,e.datePattern=t.datePattern||["d","m","Y"],e.dateMin=t.dateMin||"",e.dateMax=t.dateMax||"",e.dateFormatter={},e.numeral=!!t.numeral,e.numeralIntegerScale=t.numeralIntegerScale>0?t.numeralIntegerScale:0,e.numeralDecimalScale=t.numeralDecimalScale>=0?t.numeralDecimalScale:2,e.numeralDecimalMark=t.numeralDecimalMark||".",e.numeralThousandsGroupStyle=t.numeralThousandsGroupStyle||"thousand",e.numeralPositiveOnly=!!t.numeralPositiveOnly,e.stripLeadingZeroes=t.stripLeadingZeroes!==!1,e.signBeforePrefix=!!t.signBeforePrefix,e.tailPrefix=!!t.tailPrefix,e.swapHiddenInput=!!t.swapHiddenInput,e.numericOnly=e.creditCard||e.date||!!t.numericOnly,e.uppercase=!!t.uppercase,e.lowercase=!!t.lowercase,e.prefix=e.creditCard||e.date?"":t.prefix||"",e.noImmediatePrefix=!!t.noImmediatePrefix,e.prefixLength=e.prefix.length,e.rawValueTrimPrefix=!!t.rawValueTrimPrefix,e.copyDelimiter=!!t.copyDelimiter,e.initValue=t.initValue!==void 0&&t.initValue!==null?t.initValue.toString():"",e.delimiter=t.delimiter||t.delimiter===""?t.delimiter:t.date?"/":t.time?":":t.numeral?",":(t.phone," "),e.delimiterLength=e.delimiter.length,e.delimiterLazyShow=!!t.delimiterLazyShow,e.delimiters=t.delimiters||[],e.blocks=t.blocks||[],e.blocksLength=e.blocks.length,e.root=typeof x=="object"&&x?x:window,e.document=t.document||e.root.document,e.maxLength=0,e.backspace=!1,e.result="",e.onValueChanged=t.onValueChanged||function(){},e}},c=function(e,t){var r=this;if(typeof e=="string"?(r.element=document.querySelector(e),document.querySelectorAll(e).length>1):e.length!==void 0&&e.length>0?(r.element=e[0],e.length>1):r.element=e,!r.element)throw new Error("[cleave.js] Please check the element");t.initValue=r.element.value,r.properties=c.DefaultProperties.assign({},t),r.init()};c.prototype={init:function(){var e=this,t=e.properties;t.numeral||t.phone||t.creditCard||t.time||t.date||t.blocksLength!==0||t.prefix?(t.maxLength=c.Util.getMaxLength(t.blocks),e.isAndroid=c.Util.isAndroid(),e.lastInputValue="",e.isBackward="",e.onChangeListener=e.onChange.bind(e),e.onKeyDownListener=e.onKeyDown.bind(e),e.onFocusListener=e.onFocus.bind(e),e.onCutListener=e.onCut.bind(e),e.onCopyListener=e.onCopy.bind(e),e.initSwapHiddenInput(),e.element.addEventListener("input",e.onChangeListener),e.element.addEventListener("keydown",e.onKeyDownListener),e.element.addEventListener("focus",e.onFocusListener),e.element.addEventListener("cut",e.onCutListener),e.element.addEventListener("copy",e.onCopyListener),e.initPhoneFormatter(),e.initDateFormatter(),e.initTimeFormatter(),e.initNumeralFormatter(),(t.initValue||t.prefix&&!t.noImmediatePrefix)&&e.onInput(t.initValue)):e.onInput(t.initValue)},initSwapHiddenInput:function(){var e=this;if(e.properties.swapHiddenInput){var t=e.element.cloneNode(!0);e.element.parentNode.insertBefore(t,e.element),e.elementSwapHidden=e.element,e.elementSwapHidden.type="hidden",e.element=t,e.element.id=""}},initNumeralFormatter:function(){var e=this.properties;e.numeral&&(e.numeralFormatter=new c.NumeralFormatter(e.numeralDecimalMark,e.numeralIntegerScale,e.numeralDecimalScale,e.numeralThousandsGroupStyle,e.numeralPositiveOnly,e.stripLeadingZeroes,e.prefix,e.signBeforePrefix,e.tailPrefix,e.delimiter))},initTimeFormatter:function(){var e=this.properties;e.time&&(e.timeFormatter=new c.TimeFormatter(e.timePattern,e.timeFormat),e.blocks=e.timeFormatter.getBlocks(),e.blocksLength=e.blocks.length,e.maxLength=c.Util.getMaxLength(e.blocks))},initDateFormatter:function(){var e=this.properties;e.date&&(e.dateFormatter=new c.DateFormatter(e.datePattern,e.dateMin,e.dateMax),e.blocks=e.dateFormatter.getBlocks(),e.blocksLength=e.blocks.length,e.maxLength=c.Util.getMaxLength(e.blocks))},initPhoneFormatter:function(){var e=this.properties;if(e.phone)try{e.phoneFormatter=new c.PhoneFormatter(new e.root.Cleave.AsYouTypeFormatter(e.phoneRegionCode),e.delimiter)}catch{throw new Error("[cleave.js] Please include phone-type-formatter.{country}.js lib")}},onKeyDown:function(e){var t=this,r=e.which||e.keyCode;t.lastInputValue=t.element.value,t.isBackward=r===8},onChange:function(e){var t=this,r=t.properties,i=c.Util;t.isBackward=t.isBackward||e.inputType==="deleteContentBackward";var n=i.getPostDelimiter(t.lastInputValue,r.delimiter,r.delimiters);t.isBackward&&n?r.postDelimiterBackspace=n:r.postDelimiterBackspace=!1,this.onInput(this.element.value)},onFocus:function(){var e=this,t=e.properties;e.lastInputValue=e.element.value,t.prefix&&t.noImmediatePrefix&&!e.element.value&&this.onInput(t.prefix),c.Util.fixPrefixCursor(e.element,t.prefix,t.delimiter,t.delimiters)},onCut:function(e){c.Util.checkFullSelection(this.element.value)&&(this.copyClipboardData(e),this.onInput(""))},onCopy:function(e){c.Util.checkFullSelection(this.element.value)&&this.copyClipboardData(e)},copyClipboardData:function(e){var t=this.properties,r=c.Util,i=this.element.value,n="";n=t.copyDelimiter?i:r.stripDelimiters(i,t.delimiter,t.delimiters);try{e.clipboardData?e.clipboardData.setData("Text",n):window.clipboardData.setData("Text",n),e.preventDefault()}catch{}},onInput:function(e){var t=this,r=t.properties,i=c.Util,n=i.getPostDelimiter(e,r.delimiter,r.delimiters);return r.numeral||!r.postDelimiterBackspace||n||(e=i.headStr(e,e.length-r.postDelimiterBackspace.length)),r.phone?(!r.prefix||r.noImmediatePrefix&&!e.length?r.result=r.phoneFormatter.format(e):r.result=r.prefix+r.phoneFormatter.format(e).slice(r.prefix.length),void t.updateValueState()):r.numeral?(r.prefix&&r.noImmediatePrefix&&e.length===0?r.result="":r.result=r.numeralFormatter.format(e),void t.updateValueState()):(r.date&&(e=r.dateFormatter.getValidatedDate(e)),r.time&&(e=r.timeFormatter.getValidatedTime(e)),e=i.stripDelimiters(e,r.delimiter,r.delimiters),e=i.getPrefixStrippedValue(e,r.prefix,r.prefixLength,r.result,r.delimiter,r.delimiters,r.noImmediatePrefix,r.tailPrefix,r.signBeforePrefix),e=r.numericOnly?i.strip(e,/[^\d]/g):e,e=r.uppercase?e.toUpperCase():e,e=r.lowercase?e.toLowerCase():e,r.prefix&&(r.tailPrefix?e+=r.prefix:e=r.prefix+e,r.blocksLength===0)?(r.result=e,void t.updateValueState()):(r.creditCard&&t.updateCreditCardPropsByValue(e),e=i.headStr(e,r.maxLength),r.result=i.getFormattedValue(e,r.blocks,r.blocksLength,r.delimiter,r.delimiters,r.delimiterLazyShow),void t.updateValueState()))},updateCreditCardPropsByValue:function(e){var t,r=this.properties,i=c.Util;i.headStr(r.result,4)!==i.headStr(e,4)&&(t=c.CreditCardDetector.getInfo(e,r.creditCardStrictMode),r.blocks=t.blocks,r.blocksLength=r.blocks.length,r.maxLength=i.getMaxLength(r.blocks),r.creditCardType!==t.type&&(r.creditCardType=t.type,r.onCreditCardTypeChanged.call(this,r.creditCardType)))},updateValueState:function(){var e=this,t=c.Util,r=e.properties;if(e.element){var i=e.element.selectionEnd,n=e.element.value,a=r.result;i=t.getNextCursorPosition(i,n,a,r.delimiter,r.delimiters),e.isAndroid?window.setTimeout(function(){e.element.value=a,t.setSelection(e.element,i,r.document,!1),e.callOnValueChanged()},1):(e.element.value=a,r.swapHiddenInput&&(e.elementSwapHidden.value=e.getRawValue()),t.setSelection(e.element,i,r.document,!1),e.callOnValueChanged())}},callOnValueChanged:function(){var e=this,t=e.properties;t.onValueChanged.call(e,{target:{name:e.element.name,value:t.result,rawValue:e.getRawValue()}})},setPhoneRegionCode:function(e){var t=this;t.properties.phoneRegionCode=e,t.initPhoneFormatter(),t.onChange()},setRawValue:function(e){var t=this,r=t.properties;e=e!=null?e.toString():"",r.numeral&&(e=e.replace(".",r.numeralDecimalMark)),r.postDelimiterBackspace=!1,t.element.value=e,t.onInput(e)},getRawValue:function(){var e=this.properties,t=c.Util,r=this.element.value;return e.rawValueTrimPrefix&&(r=t.getPrefixStrippedValue(r,e.prefix,e.prefixLength,e.result,e.delimiter,e.delimiters,e.noImmediatePrefix,e.tailPrefix,e.signBeforePrefix)),r=e.numeral?e.numeralFormatter.getRawValue(r):t.stripDelimiters(r,e.delimiter,e.delimiters)},getISOFormatDate:function(){var e=this.properties;return e.date?e.dateFormatter.getISOFormatDate():""},getISOFormatTime:function(){var e=this.properties;return e.time?e.timeFormatter.getISOFormatTime():""},getFormattedValue:function(){return this.element.value},destroy:function(){var e=this;e.element.removeEventListener("input",e.onChangeListener),e.element.removeEventListener("keydown",e.onKeyDownListener),e.element.removeEventListener("focus",e.onFocusListener),e.element.removeEventListener("cut",e.onCutListener),e.element.removeEventListener("copy",e.onCopyListener)},toString:function(){return"[Cleave Object]"}},c.NumeralFormatter=I,c.DateFormatter=L,c.TimeFormatter=V,c.PhoneFormatter=M,c.CreditCardDetector=E,c.Util=T,c.DefaultProperties=B,(typeof x=="object"&&x?x:window).Cleave=c;var S=c,N=Object.defineProperty,R=Object.getOwnPropertyDescriptor,v=(e,t,r,i)=>{for(var n,a=i>1?void 0:i?R(t,r):t,o=e.length-1;o>=0;o--)(n=e[o])&&(a=(i?n(t,r,a):n(a))||a);return i&&a&&N(t,r,a),a};exports.SchmancyPaymentCardForm=class extends w.$LitElement(){constructor(){super(...arguments),this.value={cardName:"",cardNumber:"",expirationDate:"",cvv:""}}firstUpdated(){new S(this.cardNumberInput,{creditCard:!0,creditCardStrictMode:!0,onCreditCardTypeChanged:e=>{e==="unknown"?this.cardNumberInput.setCustomValidity("Please enter a valid card number."):this.cardNumberInput.setCustomValidity("")}}),new S(this.expirationDateInput,{date:!0,datePattern:["m","y"],onValueChanged:e=>{!e.target.value||e.target.value.length<5?this.expirationDateInput.setCustomValidity("Please enter a valid expiration date."):this.expirationDateInput.setCustomValidity("")}}),new S(this.cvvInput,{blocks:[4],numericOnly:!0,onValueChanged:e=>{e.target.value.length<3?this.cvvInput.setCustomValidity("Please enter a valid CVV."):this.cvvInput.setCustomValidity("")}}),new S(this.cardNameInput,{uppercase:!0,delimiter:" "})}reportValidity(){return this.form.reportValidity()}checkValidity(){return!!this.form.reportValidity()}emitChange(){this.dispatchEvent(new CustomEvent("change",{detail:{...this.value}}))}render(){return b.html` <schmancy-form
|
|
2
|
-
@change=${e=>{e.stopPropagation(),e.preventDefault()}}
|
|
3
|
-
>
|
|
4
|
-
<schmancy-grid gap="sm">
|
|
5
|
-
<schmancy-input
|
|
6
|
-
autocomplete="cc-name"
|
|
7
|
-
id="cardName"
|
|
8
|
-
.value=${this.cardName??""}
|
|
9
|
-
type="text"
|
|
10
|
-
label="Name on card"
|
|
11
|
-
required
|
|
12
|
-
hint="Please enter a valid name."
|
|
13
|
-
@change=${e=>{this.cardName=e.detail.value,this.value.cardName=e.detail.value,this.emitChange()}}
|
|
14
|
-
></schmancy-input>
|
|
15
|
-
<schmancy-input
|
|
16
|
-
autocomplete="cc-number"
|
|
17
|
-
id="cardNumber"
|
|
18
|
-
type="text"
|
|
19
|
-
label="Card number"
|
|
20
|
-
required
|
|
21
|
-
hint="Card number must be 16 digits."
|
|
22
|
-
@change=${e=>{this.cardNumber=e.detail.value,this.value.cardNumber=e.detail.value,this.emitChange()}}
|
|
23
|
-
></schmancy-input>
|
|
24
|
-
<schmancy-grid gap="sm" cols="1fr 1fr">
|
|
25
|
-
<schmancy-input
|
|
26
|
-
autocomplete="cc-exp"
|
|
27
|
-
id="expirationDate"
|
|
28
|
-
@change=${e=>{this.expirationDate=e.detail.value,this.value.expirationDate=e.detail.value,this.emitChange()}}
|
|
29
|
-
type="text"
|
|
30
|
-
label="Expiration date"
|
|
31
|
-
placeholder="MM/YY"
|
|
32
|
-
required
|
|
33
|
-
></schmancy-input>
|
|
34
|
-
<schmancy-input
|
|
35
|
-
id="cvv"
|
|
36
|
-
autocomplete="cc-csc"
|
|
37
|
-
@change=${e=>{this.cvv=e.detail.value,this.value.cvv=e.detail.value,this.emitChange()}}
|
|
38
|
-
label="CVV"
|
|
39
|
-
required
|
|
40
|
-
type="text"
|
|
41
|
-
maxlength="4"
|
|
42
|
-
minlength="3"
|
|
43
|
-
hint="CVV must be 3 or 4 digits."
|
|
44
|
-
></schmancy-input>
|
|
45
|
-
</schmancy-grid>
|
|
46
|
-
</schmancy-grid>
|
|
47
|
-
</schmancy-form>`}},v([f.property({type:Object,reflect:!0})],exports.SchmancyPaymentCardForm.prototype,"value",2),v([f.state()],exports.SchmancyPaymentCardForm.prototype,"cardName",2),v([f.state()],exports.SchmancyPaymentCardForm.prototype,"cardNumber",2),v([f.state()],exports.SchmancyPaymentCardForm.prototype,"expirationDate",2),v([f.state()],exports.SchmancyPaymentCardForm.prototype,"cvv",2),v([f.query("#cardNumber")],exports.SchmancyPaymentCardForm.prototype,"cardNumberInput",2),v([f.query("#expirationDate")],exports.SchmancyPaymentCardForm.prototype,"expirationDateInput",2),v([f.query("#cvv")],exports.SchmancyPaymentCardForm.prototype,"cvvInput",2),v([f.query("#cardName")],exports.SchmancyPaymentCardForm.prototype,"cardNameInput",2),v([f.query("schmancy-form")],exports.SchmancyPaymentCardForm.prototype,"form",2),exports.SchmancyPaymentCardForm=v([f.customElement("schmancy-payment-card-form")],exports.SchmancyPaymentCardForm);
|
|
48
|
-
//# sourceMappingURL=payment-card-form-Bi3yNg4b.cjs.map
|
package/dist/ripple-BumgqsDT.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { nothing as d } from "lit";
|
|
2
|
-
import { directive as s, Directive as h, PartType as r } from "lit/directive.js";
|
|
3
|
-
import { Subject as a, fromEvent as m, debounceTime as f, startWith as g, takeUntil as u } from "rxjs";
|
|
4
|
-
import { AsyncDirective as p } from "lit/async-directive.js";
|
|
5
|
-
const x = s(class extends h {
|
|
6
|
-
constructor(e) {
|
|
7
|
-
super(e), this.config = {};
|
|
8
|
-
}
|
|
9
|
-
update(e, [t]) {
|
|
10
|
-
if (e.type !== r.ELEMENT) throw new Error("The `classMap` directive must be used in the `class` attribute");
|
|
11
|
-
const n = e.element;
|
|
12
|
-
this.config = t, this.config.bgColor && (n.style.backgroundColor = this.config.bgColor), this.config.color && (n.style.color = this.config.color);
|
|
13
|
-
}
|
|
14
|
-
render(e) {
|
|
15
|
-
return this.config = e, d;
|
|
16
|
-
}
|
|
17
|
-
}), i = new a();
|
|
18
|
-
m(window, "resize").pipe(f(10), g(window)).subscribe({ next: () => {
|
|
19
|
-
i.next(window);
|
|
20
|
-
} });
|
|
21
|
-
const v = s(class extends p {
|
|
22
|
-
constructor(e) {
|
|
23
|
-
super(e), this.disconnecting = new a(), i.pipe(u(this.disconnecting)).subscribe(() => {
|
|
24
|
-
this.element.style.setProperty("height", `${window.innerHeight}px`), setTimeout(() => {
|
|
25
|
-
this.element.style.setProperty("height", `${window.innerHeight}px`);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
render() {
|
|
30
|
-
}
|
|
31
|
-
update(e) {
|
|
32
|
-
if (e.type !== r.ELEMENT) throw new Error("The `ripple` directive can only be used on elements");
|
|
33
|
-
this.element = e.element, i.next(window);
|
|
34
|
-
}
|
|
35
|
-
disconnected() {
|
|
36
|
-
this.disconnecting.next(!0);
|
|
37
|
-
}
|
|
38
|
-
reconnected() {
|
|
39
|
-
}
|
|
40
|
-
}), T = s(class extends p {
|
|
41
|
-
render() {
|
|
42
|
-
}
|
|
43
|
-
addRippleEffect(e) {
|
|
44
|
-
const t = e.target, n = document.createElement("span"), o = Math.max(t.clientWidth, t.clientHeight), c = o / 2;
|
|
45
|
-
n.style.width = n.style.height = `${o}px`, n.style.left = e.clientX - t.getBoundingClientRect().left - c + "px", n.style.top = e.clientY - t.getBoundingClientRect().top - c + "px", n.classList.add("ripple");
|
|
46
|
-
const l = t.getElementsByClassName("ripple")[0];
|
|
47
|
-
l && l.remove(), t.appendChild(n);
|
|
48
|
-
}
|
|
49
|
-
update(e) {
|
|
50
|
-
if (e.type !== r.ELEMENT) throw new Error("The `ripple` directive can only be used on elements");
|
|
51
|
-
this.element = e.element;
|
|
52
|
-
const t = document.createElement("style");
|
|
53
|
-
t.append(`.ripple {
|
|
54
|
-
position: absolute;
|
|
55
|
-
border-radius: 50%;
|
|
56
|
-
background: var(--schmancy-sys-color-surface-high);
|
|
57
|
-
transform: scale(0);
|
|
58
|
-
animation: ripple 600ms linear;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@keyframes ripple {
|
|
62
|
-
to {
|
|
63
|
-
transform: scale(4);
|
|
64
|
-
opacity: 0;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
`), this.element.append(t), this.element.addEventListener("click", this.addRippleEffect);
|
|
68
|
-
}
|
|
69
|
-
disconnected() {
|
|
70
|
-
this.element && this.element.removeEventListener("click", this.addRippleEffect);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
export {
|
|
74
|
-
x as c,
|
|
75
|
-
v as f,
|
|
76
|
-
T as r
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=ripple-BumgqsDT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ripple-BumgqsDT.js","sources":["../src/directives/color.ts","../src/directives/height.ts","../src/directives/ripple.ts"],"sourcesContent":["// color.ts\nimport { Part, nothing } from 'lit'\nimport { Directive, PartInfo, PartType, directive } from 'lit/directive.js'\n\nexport type ColorConfig = {\n\tbgColor?: string\n\tcolor?: string\n}\n\nclass ColorDirective extends Directive {\n\tprivate config: ColorConfig\n\n\tconstructor(partInfo: PartInfo) {\n\t\tsuper(partInfo)\n\t\tthis.config = {}\n\t}\n\n\tupdate(part: Part, [config]: [ColorConfig]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `classMap` directive must be used in the `class` attribute')\n\t\t}\n\t\tconst element = part.element as HTMLElement\n\t\tthis.config = config\n\t\tif (this.config.bgColor) {\n\t\t\telement.style.backgroundColor = this.config.bgColor\n\t\t}\n\n\t\tif (this.config.color) {\n\t\t\telement.style.color = this.config.color\n\t\t}\n\t}\n\n\trender(config: ColorConfig): unknown {\n\t\tthis.config = config\n\t\treturn nothing\n\t}\n}\n\nconst color = directive(ColorDirective)\n\nexport { color }\n","import { Subject, debounceTime, fromEvent, startWith, takeUntil } from 'rxjs'\n\nconst $SchmancyResize = new Subject<Window>()\nfromEvent<Event>(window, 'resize')\n\t.pipe(\n\t\tdebounceTime(10), // Adjust the debounce time as needed\n\t\tstartWith(window),\n\t)\n\t.subscribe({\n\t\tnext: () => {\n\t\t\t$SchmancyResize.next(window)\n\t\t},\n\t})\n\nimport { directive, PartInfo, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { LitElement } from 'lit'\n\nclass FullHeight extends AsyncDirective {\n\telement: HTMLElement & LitElement\n\tdisconnecting = new Subject<boolean>()\n\trender() {\n\t\treturn\n\t}\n\n\tconstructor(_partInfo: PartInfo) {\n\t\tsuper(_partInfo)\n\t\t$SchmancyResize.pipe(takeUntil(this.disconnecting)).subscribe(() => {\n\t\t\tthis.element.style.setProperty('height', `${window.innerHeight}px`)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.element.style.setProperty('height', `${window.innerHeight}px`)\n\t\t\t})\n\t\t})\n\t}\n\n\tupdate(part) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `ripple` directive can only be used on elements')\n\t\t}\n\t\tthis.element = part.element\n\t\t$SchmancyResize.next(window)\n\t}\n\n\tdisconnected() {\n\t\tthis.disconnecting.next(true)\n\t}\n\n\treconnected() {}\n}\n\nexport const fullHeight = directive(FullHeight)\n","import { directive, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\n\nconst rippleStyle = `.ripple {\n position: absolute;\n border-radius: 50%;\n background: var(--schmancy-sys-color-surface-high);\n transform: scale(0);\n animation: ripple 600ms linear;\n}\n\n@keyframes ripple {\n to {\n transform: scale(4);\n opacity: 0;\n }\n}\n`\nclass RippleDirective extends AsyncDirective {\n\telement: HTMLElement\n\trender() {\n\t\treturn\n\t}\n\n\taddRippleEffect(event) {\n\t\tconst element = event.target\n\t\tconst circle = document.createElement('span')\n\t\tconst diameter = Math.max(element.clientWidth, element.clientHeight)\n\t\tconst radius = diameter / 2\n\t\tcircle.style.width = circle.style.height = `${diameter}px`\n\t\tcircle.style.left = `${event.clientX - element.getBoundingClientRect().left - radius}px`\n\t\tcircle.style.top = `${event.clientY - element.getBoundingClientRect().top - radius}px`\n\t\tcircle.classList.add('ripple')\n\n\t\tconst ripple = element.getElementsByClassName('ripple')[0]\n\t\tif (ripple) {\n\t\t\tripple.remove()\n\t\t}\n\n\t\telement.appendChild(circle)\n\t}\n\n\tupdate(part) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `ripple` directive can only be used on elements')\n\t\t}\n\n\t\tthis.element = part.element\n\t\tconst style = document.createElement('style')\n\t\tstyle.append(rippleStyle)\n\t\tthis.element.append(style)\n\t\tthis.element.addEventListener('click', this.addRippleEffect)\n\t}\n\n\tdisconnected() {\n\t\tif (this.element) {\n\t\t\tthis.element.removeEventListener('click', this.addRippleEffect)\n\t\t}\n\t}\n}\n\nexport const ripple = directive(RippleDirective)\n"],"names":["color","directive","Directive","partInfo","super","this","config","part","type","PartType","ELEMENT","Error","element","bgColor","style","backgroundColor","nothing","$SchmancyResize","Subject","fromEvent","window","pipe","debounceTime","startWith","subscribe","next","fullHeight","AsyncDirective","_partInfo","disconnecting","takeUntil","setProperty","innerHeight","setTimeout","reconnected","ripple","render","event","target","circle","document","createElement","diameter","Math","max","clientWidth","clientHeight","radius","width","height","left","clientX","getBoundingClientRect","top","clientY","classList","add","getElementsByClassName","remove","appendChild","append","addEventListener","addRippleEffect","removeEventListener"],"mappings":"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"}
|
package/dist/ripple-C2BHbhcS.cjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";const a=require("lit"),i=require("lit/directive.js"),s=require("rxjs"),p=require("lit/async-directive.js");class h extends i.Directive{constructor(e){super(e),this.config={}}update(e,[t]){if(e.type!==i.PartType.ELEMENT)throw new Error("The `classMap` directive must be used in the `class` attribute");const n=e.element;this.config=t,this.config.bgColor&&(n.style.backgroundColor=this.config.bgColor),this.config.color&&(n.style.color=this.config.color)}render(e){return this.config=e,a.nothing}}const u=i.directive(h),r=new s.Subject;s.fromEvent(window,"resize").pipe(s.debounceTime(10),s.startWith(window)).subscribe({next:()=>{r.next(window)}});class m extends p.AsyncDirective{constructor(e){super(e),this.disconnecting=new s.Subject,r.pipe(s.takeUntil(this.disconnecting)).subscribe(()=>{this.element.style.setProperty("height",`${window.innerHeight}px`),setTimeout(()=>{this.element.style.setProperty("height",`${window.innerHeight}px`)})})}render(){}update(e){if(e.type!==i.PartType.ELEMENT)throw new Error("The `ripple` directive can only be used on elements");this.element=e.element,r.next(window)}disconnected(){this.disconnecting.next(!0)}reconnected(){}}const g=i.directive(m);class y extends p.AsyncDirective{render(){}addRippleEffect(e){const t=e.target,n=document.createElement("span"),o=Math.max(t.clientWidth,t.clientHeight),l=o/2;n.style.width=n.style.height=`${o}px`,n.style.left=e.clientX-t.getBoundingClientRect().left-l+"px",n.style.top=e.clientY-t.getBoundingClientRect().top-l+"px",n.classList.add("ripple");const d=t.getElementsByClassName("ripple")[0];d&&d.remove(),t.appendChild(n)}update(e){if(e.type!==i.PartType.ELEMENT)throw new Error("The `ripple` directive can only be used on elements");this.element=e.element;const t=document.createElement("style");t.append(`.ripple {
|
|
2
|
-
position: absolute;
|
|
3
|
-
border-radius: 50%;
|
|
4
|
-
background: var(--schmancy-sys-color-surface-high);
|
|
5
|
-
transform: scale(0);
|
|
6
|
-
animation: ripple 600ms linear;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
@keyframes ripple {
|
|
10
|
-
to {
|
|
11
|
-
transform: scale(4);
|
|
12
|
-
opacity: 0;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
`),this.element.append(t),this.element.addEventListener("click",this.addRippleEffect)}disconnected(){this.element&&this.element.removeEventListener("click",this.addRippleEffect)}}const f=i.directive(y);exports.color=u,exports.fullHeight=g,exports.ripple=f;
|
|
16
|
-
//# sourceMappingURL=ripple-C2BHbhcS.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ripple-C2BHbhcS.cjs","sources":["../src/directives/color.ts","../src/directives/height.ts","../src/directives/ripple.ts"],"sourcesContent":["// color.ts\nimport { Part, nothing } from 'lit'\nimport { Directive, PartInfo, PartType, directive } from 'lit/directive.js'\n\nexport type ColorConfig = {\n\tbgColor?: string\n\tcolor?: string\n}\n\nclass ColorDirective extends Directive {\n\tprivate config: ColorConfig\n\n\tconstructor(partInfo: PartInfo) {\n\t\tsuper(partInfo)\n\t\tthis.config = {}\n\t}\n\n\tupdate(part: Part, [config]: [ColorConfig]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `classMap` directive must be used in the `class` attribute')\n\t\t}\n\t\tconst element = part.element as HTMLElement\n\t\tthis.config = config\n\t\tif (this.config.bgColor) {\n\t\t\telement.style.backgroundColor = this.config.bgColor\n\t\t}\n\n\t\tif (this.config.color) {\n\t\t\telement.style.color = this.config.color\n\t\t}\n\t}\n\n\trender(config: ColorConfig): unknown {\n\t\tthis.config = config\n\t\treturn nothing\n\t}\n}\n\nconst color = directive(ColorDirective)\n\nexport { color }\n","import { Subject, debounceTime, fromEvent, startWith, takeUntil } from 'rxjs'\n\nconst $SchmancyResize = new Subject<Window>()\nfromEvent<Event>(window, 'resize')\n\t.pipe(\n\t\tdebounceTime(10), // Adjust the debounce time as needed\n\t\tstartWith(window),\n\t)\n\t.subscribe({\n\t\tnext: () => {\n\t\t\t$SchmancyResize.next(window)\n\t\t},\n\t})\n\nimport { directive, PartInfo, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { LitElement } from 'lit'\n\nclass FullHeight extends AsyncDirective {\n\telement: HTMLElement & LitElement\n\tdisconnecting = new Subject<boolean>()\n\trender() {\n\t\treturn\n\t}\n\n\tconstructor(_partInfo: PartInfo) {\n\t\tsuper(_partInfo)\n\t\t$SchmancyResize.pipe(takeUntil(this.disconnecting)).subscribe(() => {\n\t\t\tthis.element.style.setProperty('height', `${window.innerHeight}px`)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.element.style.setProperty('height', `${window.innerHeight}px`)\n\t\t\t})\n\t\t})\n\t}\n\n\tupdate(part) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `ripple` directive can only be used on elements')\n\t\t}\n\t\tthis.element = part.element\n\t\t$SchmancyResize.next(window)\n\t}\n\n\tdisconnected() {\n\t\tthis.disconnecting.next(true)\n\t}\n\n\treconnected() {}\n}\n\nexport const fullHeight = directive(FullHeight)\n","import { directive, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\n\nconst rippleStyle = `.ripple {\n position: absolute;\n border-radius: 50%;\n background: var(--schmancy-sys-color-surface-high);\n transform: scale(0);\n animation: ripple 600ms linear;\n}\n\n@keyframes ripple {\n to {\n transform: scale(4);\n opacity: 0;\n }\n}\n`\nclass RippleDirective extends AsyncDirective {\n\telement: HTMLElement\n\trender() {\n\t\treturn\n\t}\n\n\taddRippleEffect(event) {\n\t\tconst element = event.target\n\t\tconst circle = document.createElement('span')\n\t\tconst diameter = Math.max(element.clientWidth, element.clientHeight)\n\t\tconst radius = diameter / 2\n\t\tcircle.style.width = circle.style.height = `${diameter}px`\n\t\tcircle.style.left = `${event.clientX - element.getBoundingClientRect().left - radius}px`\n\t\tcircle.style.top = `${event.clientY - element.getBoundingClientRect().top - radius}px`\n\t\tcircle.classList.add('ripple')\n\n\t\tconst ripple = element.getElementsByClassName('ripple')[0]\n\t\tif (ripple) {\n\t\t\tripple.remove()\n\t\t}\n\n\t\telement.appendChild(circle)\n\t}\n\n\tupdate(part) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `ripple` directive can only be used on elements')\n\t\t}\n\n\t\tthis.element = part.element\n\t\tconst style = document.createElement('style')\n\t\tstyle.append(rippleStyle)\n\t\tthis.element.append(style)\n\t\tthis.element.addEventListener('click', this.addRippleEffect)\n\t}\n\n\tdisconnected() {\n\t\tif (this.element) {\n\t\t\tthis.element.removeEventListener('click', this.addRippleEffect)\n\t\t}\n\t}\n}\n\nexport const ripple = directive(RippleDirective)\n"],"names":["ColorDirective","Directive","partInfo","super","this","config","part","type","PartType","ELEMENT","Error","element","bgColor","style","backgroundColor","color","nothing","directive","$SchmancyResize","Subject","fromEvent","window","pipe","debounceTime","startWith","subscribe","next","FullHeight","AsyncDirective","_partInfo","disconnecting","takeUntil","setProperty","innerHeight","setTimeout","render","disconnected","reconnected","fullHeight","RippleDirective","event","target","circle","document","createElement","diameter","Math","max","clientWidth","clientHeight","radius","width","height","left","clientX","getBoundingClientRect","top","clientY","classList","add","ripple","getElementsByClassName","remove","appendChild","append","addEventListener","addRippleEffect","removeEventListener"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-8AjN6LbM.js","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\n\t@query('schmancy-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\t\t\tthis.options.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.ul.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown(e: KeyboardEvent) {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tlet selectedValues = Array.isArray(this.value) ? [...this.value] : []\n\n\t\t\tif (option.selected) {\n\t\t\t\tselectedValues = [...selectedValues, value]\n\t\t\t} else {\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.isValid = true // Reset validation on change\n\t\tthis.validationMessage = ''\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\tthis.isValid = this.multi ? Array.isArray(this.value) && this.value.length > 0 : Boolean(this.value)\n\t\tthis.validationMessage = this.isValid ? '' : 'Please select an option.'\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\tif (this.required) {\n\t\t\tthis.checkValidity()\n\t\t\tthis.inputRef.required = true\n\t\t\tif (!this.isValid) {\n\t\t\t\tthis.openDropdown()\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t}\n\n\trender(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<schmancy-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown(true))}\n\t\t\t\t></schmancy-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","super","arguments","this","required","placeholder","value","multi","label","isOpen","valueLabel","isValid","validationMessage","connectedCallback","id","Math","random","toString","substr","addEventListener","handleKeyDown","disconnectedCallback","removeEventListener","cleanupPositioner","firstUpdated","syncSelection","setupOptionsAccessibility","selectedValues","Array","isArray","options","forEach","o","selected","includes","length","filter","map","join","selectedOption","find","option","index","setAttribute","tabIndex","String","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","e","key","preventDefault","openDropdown","current","findIndex","matches","closeDropdown","focusOption","min","max","handleOptionSelect","focus","combobox","report","updateComplete","positionDropdown","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","Boolean","checkValidity","inputRef","message","render","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","__decorateClass","property","type","prototype","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|
package/dist/select-BdU6KcPX.cjs
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";const r=require("@floating-ui/dom");require("rxjs");const p=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const u=require("./litElement.mixin-djlKJ0lX.cjs");require("./tailwind.mixin-CBhPue3q.cjs");const d=require("./ripple-C2BHbhcS.cjs"),y=require("./theme.interface-Xg5Zi46a.cjs"),h=require("lit"),o=require("lit/decorators.js");var m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,a=(e,t,i,s)=>{for(var l,n=s>1?void 0:s?v(t,i):t,c=e.length-1;c>=0;c--)(l=e[c])&&(n=(s?l(t,i,n):l(n))||n);return s&&n&&m(t,i,n),n};exports.SchmancySelect=class extends u.$LitElement(h.css`
|
|
2
|
-
:host {
|
|
3
|
-
display: block;
|
|
4
|
-
position: relative;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
[role='listbox'] {
|
|
8
|
-
overflow-y: auto;
|
|
9
|
-
outline: none;
|
|
10
|
-
}
|
|
11
|
-
`){constructor(){super(...arguments),this.required=!1,this.placeholder="",this.value="",this.multi=!1,this.label="",this.isOpen=!1,this.valueLabel="",this.isValid=!0,this.validationMessage=""}connectedCallback(){super.connectedCallback(),this.id||(this.id=`schmancy-select-${Math.random().toString(36).substr(2,9)}`),this.addEventListener("keydown",this.handleKeyDown)}disconnectedCallback(){var e;super.disconnectedCallback(),this.removeEventListener("keydown",this.handleKeyDown),(e=this.cleanupPositioner)==null||e.call(this)}firstUpdated(){this.syncSelection(),this.setupOptionsAccessibility()}syncSelection(){if(this.multi){const e=Array.isArray(this.value)?this.value:[];this.options.forEach(t=>t.selected=e.includes(t.value)),this.valueLabel=e.length>0?this.options.filter(t=>e.includes(t.value)).map(t=>t.label).join(", "):this.placeholder}else{const e=this.options.find(t=>t.value===this.value);this.valueLabel=(e==null?void 0:e.label)||this.placeholder}}setupOptionsAccessibility(){this.options.forEach((e,t)=>{e.setAttribute("role","option"),e.id||(e.id=`${this.id}-option-${t}`),e.tabIndex=-1;const i=Array.isArray(this.value)?this.value:[];e.setAttribute("aria-selected",String(this.multi?i.includes(e.value):e.value===this.value))})}async positionDropdown(){const e=this.renderRoot.querySelector(".trigger");if(!e||!this.ul)return;const t=window.innerHeight-e.getBoundingClientRect().bottom-10;this.ul.style.maxHeight=`${t}px`,this.cleanupPositioner=r.autoUpdate(e,this.ul,async()=>{const{x:i,y:s}=await r.computePosition(e,this.ul,{placement:"bottom-start",middleware:[r.offset(5),r.flip(),r.shift({padding:5})]});Object.assign(this.ul.style,{left:`${i}px`,top:`${s}px`,position:"absolute"})})}handleKeyDown(e){if(!this.isOpen)return void(["Enter"," ","ArrowDown"].includes(e.key)&&(e.preventDefault(),this.openDropdown(!1)));const t=this.options.findIndex(i=>i.matches(":focus"))??-1;switch(e.key){case"Escape":case"Tab":this.closeDropdown();break;case"ArrowDown":e.preventDefault(),this.focusOption(this.options,Math.min(t+1,this.options.length-1));break;case"ArrowUp":e.preventDefault(),this.focusOption(this.options,Math.max(t-1,0));break;case"Enter":case" ":e.preventDefault(),t>=0&&this.handleOptionSelect(this.options[t].value)}}focusOption(e,t){const i=e[t];if(i){i.focus();const s=this.renderRoot.querySelector(".trigger");s==null||s.setAttribute("aria-activedescendant",i.id)}}async openDropdown(e=!1){this.isOpen=!0,await this.updateComplete,this.positionDropdown(),this.setupOptionsAccessibility();const t=Array.from(this.ul.querySelectorAll('[role="option"]')),i=this.multi?0:t.findIndex(s=>s.getAttribute("value")===this.value);this.focusOption(t,Math.max(i,0)),e&&this.reportValidity()}closeDropdown(){var t;this.isOpen=!1,(t=this.cleanupPositioner)==null||t.call(this);const e=this.renderRoot.querySelector(".trigger");e==null||e.removeAttribute("aria-activedescendant"),e==null||e.focus()}handleOptionSelect(e){var t;if(this.multi){const i=this.options.find(l=>l.value===e);if(!i)return;i.selected=!i.selected;let s=Array.isArray(this.value)?[...this.value]:[];s=i.selected?[...s,e]:s.filter(l=>l!==e),this.value=s,this.valueLabel=s.length>0?this.options.filter(l=>s.includes(l.value)).map(l=>l.label).join(", "):this.placeholder,this.dispatchChange(s)}else this.options.forEach(i=>i.selected=i.value===e),this.value=e,this.valueLabel=((t=this.options.find(i=>i.value===e))==null?void 0:t.label)||this.placeholder,this.dispatchChange(e),this.closeDropdown();this.setupOptionsAccessibility()}dispatchChange(e){this.isValid=!0,this.validationMessage="",this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0}))}checkValidity(){return this.isValid=this.multi?Array.isArray(this.value)&&this.value.length>0:!!this.value,this.validationMessage=this.isValid?"":"Please select an option.",this.isValid}reportValidity(){return!this.required||(this.checkValidity(),this.inputRef.required=!0,this.isValid?(this.inputRef.reportValidity(),!0):(this.openDropdown(),this.inputRef.reportValidity(),!1))}setCustomValidity(e){this.validationMessage=e}render(){return h.html`
|
|
12
|
-
<div class="relative">
|
|
13
|
-
<schmancy-input
|
|
14
|
-
.name=${this.name}
|
|
15
|
-
tabIndex="0"
|
|
16
|
-
class="trigger"
|
|
17
|
-
role="combobox"
|
|
18
|
-
aria-haspopup="listbox"
|
|
19
|
-
aria-expanded=${this.isOpen}
|
|
20
|
-
aria-controls="options"
|
|
21
|
-
aria-autocomplete="none"
|
|
22
|
-
aria-required=${this.required}
|
|
23
|
-
.label=${this.label}
|
|
24
|
-
.placeholder=${this.placeholder}
|
|
25
|
-
.value=${this.valueLabel}
|
|
26
|
-
.required=${this.required}
|
|
27
|
-
readonly
|
|
28
|
-
@click=${()=>this.isOpen?this.closeDropdown():this.openDropdown(!0)}
|
|
29
|
-
></schmancy-input>
|
|
30
|
-
|
|
31
|
-
<div
|
|
32
|
-
id="overlay"
|
|
33
|
-
class="fixed inset-0"
|
|
34
|
-
?hidden=${!this.isOpen}
|
|
35
|
-
@click=${this.closeDropdown}
|
|
36
|
-
tabindex="-1"
|
|
37
|
-
aria-hidden="true"
|
|
38
|
-
></div>
|
|
39
|
-
|
|
40
|
-
<ul
|
|
41
|
-
id="options"
|
|
42
|
-
role="listbox"
|
|
43
|
-
aria-multiselectable=${this.multi}
|
|
44
|
-
class=${p.classMap({"absolute z-[1000] mt-1 w-full rounded-md shadow-sm":!0,hidden:!this.isOpen})}
|
|
45
|
-
${d.color({bgColor:y.SchmancyTheme.sys.color.surface.container})}
|
|
46
|
-
@click=${e=>{var s;const t=e,i=(s=t.detail)==null?void 0:s.value;i&&this.handleOptionSelect(i)}}
|
|
47
|
-
>
|
|
48
|
-
<slot
|
|
49
|
-
@slotchange=${()=>{this.syncSelection(),this.setupOptionsAccessibility()}}
|
|
50
|
-
></slot>
|
|
51
|
-
</ul>
|
|
52
|
-
</div>
|
|
53
|
-
`}},a([o.property({type:String})],exports.SchmancySelect.prototype,"name",2),a([o.property({type:Boolean})],exports.SchmancySelect.prototype,"required",2),a([o.property({type:String})],exports.SchmancySelect.prototype,"placeholder",2),a([o.property({type:String})],exports.SchmancySelect.prototype,"value",2),a([o.property({type:Boolean})],exports.SchmancySelect.prototype,"multi",2),a([o.property({type:String})],exports.SchmancySelect.prototype,"label",2),a([o.state()],exports.SchmancySelect.prototype,"isOpen",2),a([o.state()],exports.SchmancySelect.prototype,"valueLabel",2),a([o.state()],exports.SchmancySelect.prototype,"isValid",2),a([o.property({type:String})],exports.SchmancySelect.prototype,"validationMessage",2),a([o.query("ul")],exports.SchmancySelect.prototype,"ul",2),a([o.query("schmancy-input")],exports.SchmancySelect.prototype,"inputRef",2),a([o.queryAssignedElements({flatten:!0})],exports.SchmancySelect.prototype,"options",2),exports.SchmancySelect=a([o.customElement("schmancy-select")],exports.SchmancySelect);
|
|
54
|
-
//# sourceMappingURL=select-BdU6KcPX.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-BdU6KcPX.cjs","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\n\t@query('schmancy-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\t\t\tthis.options.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.ul.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown(e: KeyboardEvent) {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tlet selectedValues = Array.isArray(this.value) ? [...this.value] : []\n\n\t\t\tif (option.selected) {\n\t\t\t\tselectedValues = [...selectedValues, value]\n\t\t\t} else {\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.isValid = true // Reset validation on change\n\t\tthis.validationMessage = ''\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\tthis.isValid = this.multi ? Array.isArray(this.value) && this.value.length > 0 : Boolean(this.value)\n\t\tthis.validationMessage = this.isValid ? '' : 'Please select an option.'\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\tif (this.required) {\n\t\t\tthis.checkValidity()\n\t\t\tthis.inputRef.required = true\n\t\t\tif (!this.isValid) {\n\t\t\t\tthis.openDropdown()\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t}\n\n\trender(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<schmancy-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown(true))}\n\t\t\t\t></schmancy-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","super","arguments","this","required","placeholder","value","multi","label","isOpen","valueLabel","isValid","validationMessage","connectedCallback","id","Math","random","toString","substr","addEventListener","handleKeyDown","disconnectedCallback","removeEventListener","cleanupPositioner","syncSelection","setupOptionsAccessibility","selectedValues","Array","isArray","options","forEach","o","selected","includes","length","filter","map","join","selectedOption","find","option","index","setAttribute","tabIndex","String","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","e","key","preventDefault","openDropdown","current","findIndex","matches","closeDropdown","focusOption","min","max","handleOptionSelect","focus","combobox","report","updateComplete","positionDropdown","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","Boolean","checkValidity","inputRef","message","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","__decorateClass","property","type","prototype","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|