@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
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Subject as c, fromEvent as d, debounceTime as m, startWith as h, takeUntil as y } from "rxjs";
|
|
2
|
+
import { directive as l, PartType as p } from "lit/directive.js";
|
|
3
|
+
import { AsyncDirective as a } from "lit/async-directive.js";
|
|
4
|
+
const i = new c();
|
|
5
|
+
d(window, "resize").pipe(m(10), h(window)).subscribe({ next: () => {
|
|
6
|
+
i.next(window);
|
|
7
|
+
} });
|
|
8
|
+
const g = l(class extends a {
|
|
9
|
+
constructor(e) {
|
|
10
|
+
super(e), this.disconnecting = new c(), i.pipe(y(this.disconnecting)).subscribe(() => {
|
|
11
|
+
this.element.style.setProperty("height", `${window.innerHeight}px`), setTimeout(() => {
|
|
12
|
+
this.element.style.setProperty("height", `${window.innerHeight}px`);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
render() {
|
|
17
|
+
}
|
|
18
|
+
update(e) {
|
|
19
|
+
if (e.type !== p.ELEMENT) throw new Error("The `ripple` directive can only be used on elements");
|
|
20
|
+
this.element = e.element, i.next(window);
|
|
21
|
+
}
|
|
22
|
+
disconnected() {
|
|
23
|
+
this.disconnecting.next(!0);
|
|
24
|
+
}
|
|
25
|
+
reconnected() {
|
|
26
|
+
}
|
|
27
|
+
}), E = l(class extends a {
|
|
28
|
+
render() {
|
|
29
|
+
}
|
|
30
|
+
addRippleEffect(e) {
|
|
31
|
+
const t = e.target, n = document.createElement("span"), s = Math.max(t.clientWidth, t.clientHeight), r = s / 2;
|
|
32
|
+
n.style.width = n.style.height = `${s}px`, n.style.left = e.clientX - t.getBoundingClientRect().left - r + "px", n.style.top = e.clientY - t.getBoundingClientRect().top - r + "px", n.classList.add("ripple");
|
|
33
|
+
const o = t.getElementsByClassName("ripple")[0];
|
|
34
|
+
o && o.remove(), t.appendChild(n);
|
|
35
|
+
}
|
|
36
|
+
update(e) {
|
|
37
|
+
if (e.type !== p.ELEMENT) throw new Error("The `ripple` directive can only be used on elements");
|
|
38
|
+
this.element = e.element;
|
|
39
|
+
const t = document.createElement("style");
|
|
40
|
+
t.append(`.ripple {
|
|
41
|
+
position: absolute;
|
|
42
|
+
border-radius: 50%;
|
|
43
|
+
background: var(--schmancy-sys-color-surface-high);
|
|
44
|
+
transform: scale(0);
|
|
45
|
+
animation: ripple 600ms linear;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@keyframes ripple {
|
|
49
|
+
to {
|
|
50
|
+
transform: scale(4);
|
|
51
|
+
opacity: 0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
`), this.element.append(t), this.element.addEventListener("click", this.addRippleEffect);
|
|
55
|
+
}
|
|
56
|
+
disconnected() {
|
|
57
|
+
this.element && this.element.removeEventListener("click", this.addRippleEffect);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
export {
|
|
61
|
+
g as f,
|
|
62
|
+
E as r
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=ripple-3indJ14o.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripple-3indJ14o.js","sources":["../src/directives/height.ts","../src/directives/ripple.ts"],"sourcesContent":["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":["$SchmancyResize","Subject","fromEvent","window","pipe","debounceTime","startWith","subscribe","next","fullHeight","directive","AsyncDirective","_partInfo","super","this","disconnecting","takeUntil","element","style","setProperty","innerHeight","setTimeout","render","part","type","PartType","ELEMENT","Error","disconnected","reconnected","ripple","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":";;;AAEA,MAAMA,IAAkB,IAAIC;AAC5BC,EAAiBC,QAAQ,QAAA,EACvBC,KACAC,EAAa,KACbC,EAAUH,MAAAA,CAAAA,EAEVI,UAAU,EACVC,MAAM,MAAA;AACLR,EAAAA,EAAgBQ,KAAKL,MAAAA;AAAM,EAwCjB,CAAA;AAAA,MAAAM,IAAaC,EAhC1B,cAAyBC,EAOxB;AAAA,EAAA,YAAYC,GAAAA;AACXC,UAAMD,CAAAA,GANPE,KAAAC,gBAAgB,IAAId,KAOnBD,EAAgBI,KAAKY,EAAUF,KAAKC,aAAAA,CAAAA,EAAgBR,UAAU,MAAA;AAC7DO,WAAKG,QAAQC,MAAMC,YAAY,UAAU,GAAGhB,OAAOiB,WACnDC,IAAAA,GAAAA,WAAW,MACVP;AAAAA,aAAKG,QAAQC,MAAMC,YAAY,UAAU,GAAGhB,OAAOiB,WAAAA,IAAAA;AAAAA,MAAe;IAClE,CACD;AAAA,EAAA;AAAA,EAXF,SAAAE;AAAAA,EACC;AAAA,EAaD,OAAOC,GACF;AAAA,QAAAA,EAAKC,SAASC,EAASC,QACpB,OAAA,IAAIC,MAAM,qDAEjBb;AAAAA,SAAKG,UAAUM,EAAKN,SACpBjB,EAAgBQ,KAAKL,MAAM;AAAA,EAAA;AAAA,EAG5B,eAAAyB;AACMd,SAAAC,cAAcP,KAAAA,EAAS;AAAA,EAAA;AAAA,EAG7B,cAAAqB;AAAAA,EAAc;ACcF,CAAA,GAAAC,IAASpB,EA3CtB,cAA8BC,EAAAA;AAAAA,EAE7B,SAAAW;AAAAA,EACC;AAAA,EAGD,gBAAgBS,GACf;AAAA,UAAMd,IAAUc,EAAMC,QAChBC,IAASC,SAASC,cAAc,MAAA,GAChCC,IAAWC,KAAKC,IAAIrB,EAAQsB,aAAatB,EAAQuB,YAAAA,GACjDC,IAASL,IAAW;AAC1BH,IAAAA,EAAOf,MAAMwB,QAAQT,EAAOf,MAAMyB,SAAS,GAAGP,CACvCH,MAAAA,EAAAf,MAAM0B,OAAUb,EAAMc,UAAU5B,EAAQ6B,sBAAwBF,EAAAA,OAAOH,IAA1D,MACbR,EAAAf,MAAM6B,MAAShB,EAAMiB,UAAU/B,EAAQ6B,sBAAAA,EAAwBC,MAAMN,IAAzD,MACZR,EAAAgB,UAAUC,IAAI,QAErB;AAAA,UAAMpB,IAASb,EAAQkC,uBAAuB,QAAU,EAAA,CAAA;AACpDrB,IAAAA,KACHA,EAAOsB,OAGRnC,GAAAA,EAAQoC,YAAYpB,CAAM;AAAA,EAAA;AAAA,EAG3B,OAAOV,GACF;AAAA,QAAAA,EAAKC,SAASC,EAASC,QACpB,OAAA,IAAIC,MAAM,qDAGjBb;AAAAA,SAAKG,UAAUM,EAAKN;AACd,UAAAC,IAAQgB,SAASC,cAAc,OACrCjB;AAAAA,IAAAA,EAAMoC,OA9CY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,GA+CbxC,KAAAG,QAAQqC,OAAOpC,CACpBJ,GAAAA,KAAKG,QAAQsC,iBAAiB,SAASzC,KAAK0C;EAAe;AAAA,EAG5D,eACK1C;AAAAA,SAAKG,WACRH,KAAKG,QAAQwC,oBAAoB,SAAS3C,KAAK0C,eAChD;AAAA,EAAA;AAAA,CAAA;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";const i=require("rxjs"),s=require("lit/directive.js"),p=require("lit/async-directive.js"),r=new i.Subject;i.fromEvent(window,"resize").pipe(i.debounceTime(10),i.startWith(window)).subscribe({next:()=>{r.next(window)}});class a extends p.AsyncDirective{constructor(e){super(e),this.disconnecting=new i.Subject,r.pipe(i.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!==s.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 h=s.directive(a);class m extends p.AsyncDirective{render(){}addRippleEffect(e){const t=e.target,n=document.createElement("span"),c=Math.max(t.clientWidth,t.clientHeight),l=c/2;n.style.width=n.style.height=`${c}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 o=t.getElementsByClassName("ripple")[0];o&&o.remove(),t.appendChild(n)}update(e){if(e.type!==s.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 u=s.directive(m);exports.fullHeight=h,exports.ripple=u;
|
|
16
|
+
//# sourceMappingURL=ripple-B_wT0zgD.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripple-B_wT0zgD.cjs","sources":["../src/directives/height.ts","../src/directives/ripple.ts"],"sourcesContent":["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":["$SchmancyResize","Subject","fromEvent","window","pipe","debounceTime","startWith","subscribe","next","FullHeight","AsyncDirective","_partInfo","super","this","disconnecting","takeUntil","element","style","setProperty","innerHeight","setTimeout","part","type","PartType","ELEMENT","Error","disconnected","fullHeight","directive","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":"qGAEMA,EAAAA,EAAkB,IAAIC,EAAAA,QAC5BC,EAAAA,UAAiBC,OAAQ,QACvBC,EAAAA,KACAC,EAAAA,aAAa,EACbC,EAAAA,EAAAA,UAAUH,MAAAA,CAAAA,EAEVI,UAAU,CACVC,KAAM,IAAA,CACLR,EAAgBQ,KAAKL,MAAAA,CAAM,CAQ9B,CAAA,EAAA,MAAMM,UAAmBC,EAAAA,cAOxB,CAAA,YAAYC,EAAAA,CACXC,MAAMD,CAAAA,EANPE,KAAAC,cAAgB,IAAIb,UAOnBD,EAAgBI,KAAKW,YAAUF,KAAKC,aAAgBP,CAAAA,EAAAA,UAAU,IAC7DM,CAAAA,KAAKG,QAAQC,MAAMC,YAAY,SAAU,GAAGf,OAAOgB,WAAAA,IAAAA,EACnDC,WAAW,IAAA,CACVP,KAAKG,QAAQC,MAAMC,YAAY,SAAU,GAAGf,OAAOgB,WAAAA,IAAAA,CAAe,CAClE,CAAA,CAAA,CACD,CAXF,QACC,CAAA,CAaD,OAAOE,EACF,CAAA,GAAAA,EAAKC,OAASC,EAAAA,SAASC,QACpB,MAAA,IAAIC,MAAM,uDAEjBZ,KAAKG,QAAUK,EAAKL,QACpBhB,EAAgBQ,KAAKL,MAAM,CAAA,CAG5B,cAAAuB,CACMb,KAAAC,cAAcN,KAAK,EAAA,CAAI,CAG7B,aAAc,CAAA,CAAA,CAGF,MAAAmB,EAAaC,YAAUnB,CChCpC,EAAA,MAAMoB,UAAwBnB,EAAAA,cAE7B,CAAA,QACC,CAAA,CAGD,gBAAgBoB,EAAAA,CACf,MAAMd,EAAUc,EAAMC,OAChBC,EAASC,SAASC,cAAc,MAAA,EAChCC,EAAWC,KAAKC,IAAIrB,EAAQsB,YAAatB,EAAQuB,YACjDC,EAAAA,EAASL,EAAW,EAC1BH,EAAOf,MAAMwB,MAAQT,EAAOf,MAAMyB,OAAS,GAAGP,CAAAA,KACvCH,EAAAf,MAAM0B,KAAUb,EAAMc,QAAU5B,EAAQ6B,sBAAAA,EAAwBF,KAAOH,EAA1D,KACbR,EAAAf,MAAM6B,IAAShB,EAAMiB,QAAU/B,EAAQ6B,sBAAAA,EAAwBC,IAAMN,EAAzD,KACZR,EAAAgB,UAAUC,IAAI,QAErB,EAAA,MAAMC,EAASlC,EAAQmC,uBAAuB,QAAA,EAAU,CACpDD,EAAAA,GACHA,EAAOE,OAAAA,EAGRpC,EAAQqC,YAAYrB,CAAAA,CAAM,CAG3B,OAAOX,EAAAA,CACF,GAAAA,EAAKC,OAASC,EAAAA,SAASC,QACpB,MAAA,IAAIC,MAAM,qDAAA,EAGjBZ,KAAKG,QAAUK,EAAKL,QACd,MAAAC,EAAQgB,SAASC,cAAc,OACrCjB,EAAAA,EAAMqC,OA9CY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,EA+CbzC,KAAAG,QAAQsC,OAAOrC,CACpBJ,EAAAA,KAAKG,QAAQuC,iBAAiB,QAAS1C,KAAK2C,eAAe,CAAA,CAG5D,cAAA9B,CACKb,KAAKG,SACRH,KAAKG,QAAQyC,oBAAoB,QAAS5C,KAAK2C,eAAAA,CAChD,CAIW,CAAA,MAAAN,EAAStB,YAAUC,CAAAA"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { autoUpdate as d, computePosition as u, offset as y, flip as v, shift as m } from "@floating-ui/dom";
|
|
2
2
|
import "rxjs";
|
|
3
|
-
import { classMap as
|
|
3
|
+
import { classMap as f } from "lit/directives/class-map.js";
|
|
4
4
|
import "lit/directives/style-map.js";
|
|
5
|
-
import { $ as
|
|
6
|
-
import "./tailwind.mixin-
|
|
7
|
-
import { c as g } from "./
|
|
5
|
+
import { $ as b } from "./litElement.mixin-MZntPOCu.js";
|
|
6
|
+
import "./tailwind.mixin-B-T2bBPl.js";
|
|
7
|
+
import { c as g } from "./color-DrgmL7QT.js";
|
|
8
|
+
import "./ripple-3indJ14o.js";
|
|
8
9
|
import { S as w } from "./theme.interface-C5Kj6WjD.js";
|
|
9
|
-
import { css as
|
|
10
|
-
import { property as
|
|
11
|
-
var
|
|
12
|
-
for (var l,
|
|
13
|
-
return s &&
|
|
10
|
+
import { css as A, html as O } from "lit";
|
|
11
|
+
import { property as n, state as p, query as c, queryAssignedElements as $, customElement as D } from "lit/decorators.js";
|
|
12
|
+
var V = Object.defineProperty, x = Object.getOwnPropertyDescriptor, a = (t, e, i, s) => {
|
|
13
|
+
for (var l, r = s > 1 ? void 0 : s ? x(e, i) : e, h = t.length - 1; h >= 0; h--) (l = t[h]) && (r = (s ? l(e, i, r) : l(r)) || r);
|
|
14
|
+
return s && r && V(e, i, r), r;
|
|
14
15
|
};
|
|
15
|
-
let o = class extends
|
|
16
|
+
let o = class extends b(A`
|
|
16
17
|
:host {
|
|
17
18
|
display: block;
|
|
18
19
|
position: relative;
|
|
@@ -24,7 +25,33 @@ let o = class extends f(O`
|
|
|
24
25
|
}
|
|
25
26
|
`) {
|
|
26
27
|
constructor() {
|
|
27
|
-
super(
|
|
28
|
+
super(), this.required = !1, this.placeholder = "", this.value = "", this.multi = !1, this.label = "", this.hint = "", this.isOpen = !1, this.valueLabel = "", this.isValid = !0, this.validationMessage = "", this.handleKeyDown = (t) => {
|
|
29
|
+
if (!this.isOpen) return void (["Enter", " ", "ArrowDown"].includes(t.key) && (t.preventDefault(), this.openDropdown(!1)));
|
|
30
|
+
const e = this.options.findIndex((i) => i.matches(":focus")) ?? -1;
|
|
31
|
+
switch (t.key) {
|
|
32
|
+
case "Escape":
|
|
33
|
+
case "Tab":
|
|
34
|
+
this.closeDropdown();
|
|
35
|
+
break;
|
|
36
|
+
case "ArrowDown":
|
|
37
|
+
t.preventDefault(), this.focusOption(this.options, Math.min(e + 1, this.options.length - 1));
|
|
38
|
+
break;
|
|
39
|
+
case "ArrowUp":
|
|
40
|
+
t.preventDefault(), this.focusOption(this.options, Math.max(e - 1, 0));
|
|
41
|
+
break;
|
|
42
|
+
case "Enter":
|
|
43
|
+
case " ":
|
|
44
|
+
t.preventDefault(), e >= 0 && this.handleOptionSelect(this.options[e].value);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
try {
|
|
48
|
+
this.internals = this.attachInternals();
|
|
49
|
+
} catch {
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
get form() {
|
|
53
|
+
var t;
|
|
54
|
+
return (t = this.internals) == null ? void 0 : t.form;
|
|
28
55
|
}
|
|
29
56
|
connectedCallback() {
|
|
30
57
|
super.connectedCallback(), this.id || (this.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`), this.addEventListener("keydown", this.handleKeyDown);
|
|
@@ -36,6 +63,13 @@ let o = class extends f(O`
|
|
|
36
63
|
firstUpdated() {
|
|
37
64
|
this.syncSelection(), this.setupOptionsAccessibility();
|
|
38
65
|
}
|
|
66
|
+
updated(t) {
|
|
67
|
+
var e;
|
|
68
|
+
if (super.updated(t), t.has("value")) {
|
|
69
|
+
const i = Array.isArray(this.value) ? this.value.join(",") : this.value;
|
|
70
|
+
(e = this.internals) == null || e.setFormValue(i), this.required && this.checkValidity();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
39
73
|
syncSelection() {
|
|
40
74
|
if (this.multi) {
|
|
41
75
|
const t = Array.isArray(this.value) ? this.value : [];
|
|
@@ -61,25 +95,6 @@ let o = class extends f(O`
|
|
|
61
95
|
Object.assign(this.ul.style, { left: `${i}px`, top: `${s}px`, position: "absolute" });
|
|
62
96
|
});
|
|
63
97
|
}
|
|
64
|
-
handleKeyDown(t) {
|
|
65
|
-
if (!this.isOpen) return void (["Enter", " ", "ArrowDown"].includes(t.key) && (t.preventDefault(), this.openDropdown(!1)));
|
|
66
|
-
const e = this.options.findIndex((i) => i.matches(":focus")) ?? -1;
|
|
67
|
-
switch (t.key) {
|
|
68
|
-
case "Escape":
|
|
69
|
-
case "Tab":
|
|
70
|
-
this.closeDropdown();
|
|
71
|
-
break;
|
|
72
|
-
case "ArrowDown":
|
|
73
|
-
t.preventDefault(), this.focusOption(this.options, Math.min(e + 1, this.options.length - 1));
|
|
74
|
-
break;
|
|
75
|
-
case "ArrowUp":
|
|
76
|
-
t.preventDefault(), this.focusOption(this.options, Math.max(e - 1, 0));
|
|
77
|
-
break;
|
|
78
|
-
case "Enter":
|
|
79
|
-
case " ":
|
|
80
|
-
t.preventDefault(), e >= 0 && this.handleOptionSelect(this.options[e].value);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
98
|
focusOption(t, e) {
|
|
84
99
|
const i = t[e];
|
|
85
100
|
if (i) {
|
|
@@ -108,22 +123,30 @@ let o = class extends f(O`
|
|
|
108
123
|
let s = Array.isArray(this.value) ? [...this.value] : [];
|
|
109
124
|
s = i.selected ? [...s, t] : s.filter((l) => l !== t), 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);
|
|
110
125
|
} else this.options.forEach((i) => i.selected = i.value === t), this.value = t, this.valueLabel = ((e = this.options.find((i) => i.value === t)) == null ? void 0 : e.label) || this.placeholder, this.dispatchChange(t), this.closeDropdown();
|
|
111
|
-
this.setupOptionsAccessibility();
|
|
126
|
+
this.setupOptionsAccessibility(), this.checkValidity();
|
|
112
127
|
}
|
|
113
128
|
dispatchChange(t) {
|
|
114
|
-
this.isValid = !0, this.validationMessage = "", this.dispatchEvent(new CustomEvent("change", { detail: { value: t }, bubbles: !0, composed: !0 }));
|
|
129
|
+
this.isValid = !0, this.validationMessage = "", this.dispatchEvent(new CustomEvent("change", { detail: { value: t }, bubbles: !0, composed: !0 })), this.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
115
130
|
}
|
|
116
131
|
checkValidity() {
|
|
117
|
-
|
|
132
|
+
var e, i;
|
|
133
|
+
const t = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value;
|
|
134
|
+
return this.isValid = !(this.required && t), this.isValid ? (this.validationMessage = "", (e = this.internals) == null || e.setValidity({})) : (this.validationMessage = "Please select an option.", (i = this.internals) == null || i.setValidity({ valueMissing: !0 }, "Please select an option.", this.inputRef)), this.isValid;
|
|
118
135
|
}
|
|
119
136
|
reportValidity() {
|
|
120
|
-
|
|
137
|
+
const t = this.checkValidity();
|
|
138
|
+
return !t && this.required && (this.inputRef.required = !0, this.inputRef.reportValidity(), this.isOpen || this.openDropdown(!1)), t;
|
|
121
139
|
}
|
|
122
140
|
setCustomValidity(t) {
|
|
123
|
-
|
|
141
|
+
var e;
|
|
142
|
+
this.validationMessage = t, (e = this.internals) == null || e.setValidity(t ? { customError: !0 } : {}, t, this.inputRef);
|
|
143
|
+
}
|
|
144
|
+
reset() {
|
|
145
|
+
var t;
|
|
146
|
+
this.value = "", this.valueLabel = this.placeholder, this.isValid = !0, this.validationMessage = "", (t = this.internals) == null || t.setValidity({}), this.options.forEach((e) => e.selected = !1);
|
|
124
147
|
}
|
|
125
148
|
render() {
|
|
126
|
-
return
|
|
149
|
+
return O`
|
|
127
150
|
<div class="relative">
|
|
128
151
|
<schmancy-input
|
|
129
152
|
.name=${this.name}
|
|
@@ -139,6 +162,8 @@ let o = class extends f(O`
|
|
|
139
162
|
.placeholder=${this.placeholder}
|
|
140
163
|
.value=${this.valueLabel}
|
|
141
164
|
.required=${this.required}
|
|
165
|
+
.hint=${this.hint || this.validationMessage}
|
|
166
|
+
.error=${!this.isValid}
|
|
142
167
|
readonly
|
|
143
168
|
@click=${() => this.isOpen ? this.closeDropdown() : this.openDropdown(!0)}
|
|
144
169
|
></schmancy-input>
|
|
@@ -156,7 +181,7 @@ let o = class extends f(O`
|
|
|
156
181
|
id="options"
|
|
157
182
|
role="listbox"
|
|
158
183
|
aria-multiselectable=${this.multi}
|
|
159
|
-
class=${
|
|
184
|
+
class=${f({ "absolute z-[1000] mt-1 w-full rounded-md shadow-sm": !0, hidden: !this.isOpen })}
|
|
160
185
|
${g({ bgColor: w.sys.color.surface.container })}
|
|
161
186
|
@click=${(t) => {
|
|
162
187
|
var s;
|
|
@@ -174,8 +199,8 @@ let o = class extends f(O`
|
|
|
174
199
|
`;
|
|
175
200
|
}
|
|
176
201
|
};
|
|
177
|
-
a([
|
|
202
|
+
o.formAssociated = !0, a([n({ type: String })], o.prototype, "name", 2), a([n({ type: Boolean, reflect: !0 })], o.prototype, "required", 2), a([n({ type: String })], o.prototype, "placeholder", 2), a([n({ type: String, reflect: !0 })], o.prototype, "value", 2), a([n({ type: Boolean })], o.prototype, "multi", 2), a([n({ type: String })], o.prototype, "label", 2), a([n({ type: String })], o.prototype, "hint", 2), a([p()], o.prototype, "isOpen", 2), a([p()], o.prototype, "valueLabel", 2), a([p()], o.prototype, "isValid", 2), a([n({ type: String })], o.prototype, "validationMessage", 2), a([c("ul")], o.prototype, "ul", 2), a([c("schmancy-input")], o.prototype, "inputRef", 2), a([$({ flatten: !0 })], o.prototype, "options", 2), o = a([D("schmancy-select")], o);
|
|
178
203
|
export {
|
|
179
204
|
o as S
|
|
180
205
|
};
|
|
181
|
-
//# sourceMappingURL=select-
|
|
206
|
+
//# sourceMappingURL=select-DRi9CB_N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-DRi9CB_N.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, PropertyValues, 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// Form association setup\n\tstatic formAssociated = true\n\tprivate internals?: ElementInternals\n\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) hint = ''\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\t@query('schmancy-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\n\tconstructor() {\n\t\tsuper()\n\t\t// Initialize ElementInternals for form association\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch (e) {\n\t\t\tconsole.warn('FormAssociated elements not supported in this browser', e)\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form\n\t}\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\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('value')) {\n\t\t\t// Update form value when component value changes\n\t\t\tconst formValue = Array.isArray(this.value) ? this.value.join(',') : this.value\n\t\t\tthis.internals?.setFormValue(formValue)\n\n\t\t\t// Check validity after value changes\n\t\t\tif (this.required) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\t\t}\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\tthis.checkValidity()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.isValid = true // Reset validation on change\n\t\tthis.validationMessage = ''\n\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\n\t\t// Also dispatch a standard change event for better form compatibility\n\t\tthis.dispatchEvent(new Event('change', { bubbles: true }))\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\tconst isEmpty = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value\n\n\t\tthis.isValid = !(this.required && isEmpty)\n\n\t\tif (!this.isValid) {\n\t\t\tthis.validationMessage = 'Please select an option.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)\n\t\t} else {\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\tconst valid = this.checkValidity()\n\n\t\tif (!valid && this.required) {\n\t\t\t// If invalid, make sure the input shows it\n\t\t\tthis.inputRef.required = true\n\t\t\tthis.inputRef.reportValidity()\n\n\t\t\t// Optionally open the dropdown to show options\n\t\t\tif (!this.isOpen) {\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t}\n\n\t\treturn valid\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t\tthis.internals?.setValidity(message ? { customError: true } : {}, message, this.inputRef)\n\t}\n\n\tpublic reset() {\n\t\tthis.value = ''\n\t\tthis.valueLabel = this.placeholder\n\t\tthis.isValid = true\n\t\tthis.validationMessage = ''\n\t\tthis.internals?.setValidity({})\n\t\tthis.options.forEach(o => (o.selected = false))\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\t.hint=${this.hint || this.validationMessage}\n\t\t\t\t\t.error=${!this.isValid}\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","this","required","placeholder","value","multi","label","hint","isOpen","valueLabel","isValid","validationMessage","handleKeyDown","e","includes","key","preventDefault","openDropdown","current","options","findIndex","o","matches","closeDropdown","focusOption","Math","min","length","max","handleOptionSelect","internals","attachInternals","form","connectedCallback","id","random","toString","substr","addEventListener","disconnectedCallback","removeEventListener","cleanupPositioner","syncSelection","setupOptionsAccessibility","changedProps","updated","has","formValue","Array","isArray","join","setFormValue","checkValidity","selectedValues","forEach","selected","filter","map","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","focus","combobox","report","updateComplete","positionDropdown","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","Event","isEmpty","setValidity","valueMissing","inputRef","valid","message","customError","render","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
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-D_oDZMIO.cjs");require("./tailwind.mixin-CduPdozY.cjs");const d=require("./color-D8r6dpWm.cjs");require("./ripple-B_wT0zgD.cjs");const y=require("./theme.interface-Xg5Zi46a.cjs"),h=require("lit"),a=require("lit/decorators.js");var v=Object.defineProperty,m=Object.getOwnPropertyDescriptor,o=(e,t,i,s)=>{for(var n,l=s>1?void 0:s?m(t,i):t,c=e.length-1;c>=0;c--)(n=e[c])&&(l=(s?n(t,i,l):n(l))||l);return s&&l&&v(t,i,l),l};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(),this.required=!1,this.placeholder="",this.value="",this.multi=!1,this.label="",this.hint="",this.isOpen=!1,this.valueLabel="",this.isValid=!0,this.validationMessage="",this.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)}};try{this.internals=this.attachInternals()}catch{}}get form(){var e;return(e=this.internals)==null?void 0:e.form}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()}updated(e){var t;if(super.updated(e),e.has("value")){const i=Array.isArray(this.value)?this.value.join(","):this.value;(t=this.internals)==null||t.setFormValue(i),this.required&&this.checkValidity()}}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"})})}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(n=>n.value===e);if(!i)return;i.selected=!i.selected;let s=Array.isArray(this.value)?[...this.value]:[];s=i.selected?[...s,e]:s.filter(n=>n!==e),this.value=s,this.valueLabel=s.length>0?this.options.filter(n=>s.includes(n.value)).map(n=>n.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(),this.checkValidity()}dispatchChange(e){this.isValid=!0,this.validationMessage="",this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0})),this.dispatchEvent(new Event("change",{bubbles:!0}))}checkValidity(){var t,i;const e=this.multi?!Array.isArray(this.value)||this.value.length===0:!this.value;return this.isValid=!(this.required&&e),this.isValid?(this.validationMessage="",(t=this.internals)==null||t.setValidity({})):(this.validationMessage="Please select an option.",(i=this.internals)==null||i.setValidity({valueMissing:!0},"Please select an option.",this.inputRef)),this.isValid}reportValidity(){const e=this.checkValidity();return!e&&this.required&&(this.inputRef.required=!0,this.inputRef.reportValidity(),this.isOpen||this.openDropdown(!1)),e}setCustomValidity(e){var t;this.validationMessage=e,(t=this.internals)==null||t.setValidity(e?{customError:!0}:{},e,this.inputRef)}reset(){var e;this.value="",this.valueLabel=this.placeholder,this.isValid=!0,this.validationMessage="",(e=this.internals)==null||e.setValidity({}),this.options.forEach(t=>t.selected=!1)}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
|
+
.hint=${this.hint||this.validationMessage}
|
|
28
|
+
.error=${!this.isValid}
|
|
29
|
+
readonly
|
|
30
|
+
@click=${()=>this.isOpen?this.closeDropdown():this.openDropdown(!0)}
|
|
31
|
+
></schmancy-input>
|
|
32
|
+
|
|
33
|
+
<div
|
|
34
|
+
id="overlay"
|
|
35
|
+
class="fixed inset-0"
|
|
36
|
+
?hidden=${!this.isOpen}
|
|
37
|
+
@click=${this.closeDropdown}
|
|
38
|
+
tabindex="-1"
|
|
39
|
+
aria-hidden="true"
|
|
40
|
+
></div>
|
|
41
|
+
|
|
42
|
+
<ul
|
|
43
|
+
id="options"
|
|
44
|
+
role="listbox"
|
|
45
|
+
aria-multiselectable=${this.multi}
|
|
46
|
+
class=${p.classMap({"absolute z-[1000] mt-1 w-full rounded-md shadow-sm":!0,hidden:!this.isOpen})}
|
|
47
|
+
${d.color({bgColor:y.SchmancyTheme.sys.color.surface.container})}
|
|
48
|
+
@click=${e=>{var s;const t=e,i=(s=t.detail)==null?void 0:s.value;i&&this.handleOptionSelect(i)}}
|
|
49
|
+
>
|
|
50
|
+
<slot
|
|
51
|
+
@slotchange=${()=>{this.syncSelection(),this.setupOptionsAccessibility()}}
|
|
52
|
+
></slot>
|
|
53
|
+
</ul>
|
|
54
|
+
</div>
|
|
55
|
+
`}},exports.SchmancySelect.formAssociated=!0,o([a.property({type:String})],exports.SchmancySelect.prototype,"name",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"required",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"placeholder",2),o([a.property({type:String,reflect:!0})],exports.SchmancySelect.prototype,"value",2),o([a.property({type:Boolean})],exports.SchmancySelect.prototype,"multi",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"label",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"hint",2),o([a.state()],exports.SchmancySelect.prototype,"isOpen",2),o([a.state()],exports.SchmancySelect.prototype,"valueLabel",2),o([a.state()],exports.SchmancySelect.prototype,"isValid",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"validationMessage",2),o([a.query("ul")],exports.SchmancySelect.prototype,"ul",2),o([a.query("schmancy-input")],exports.SchmancySelect.prototype,"inputRef",2),o([a.queryAssignedElements({flatten:!0})],exports.SchmancySelect.prototype,"options",2),exports.SchmancySelect=o([a.customElement("schmancy-select")],exports.SchmancySelect);
|
|
56
|
+
//# sourceMappingURL=select-SQOIioEy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-SQOIioEy.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, PropertyValues, 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// Form association setup\n\tstatic formAssociated = true\n\tprivate internals?: ElementInternals\n\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) hint = ''\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\t@query('schmancy-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\n\tconstructor() {\n\t\tsuper()\n\t\t// Initialize ElementInternals for form association\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch (e) {\n\t\t\tconsole.warn('FormAssociated elements not supported in this browser', e)\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form\n\t}\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\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('value')) {\n\t\t\t// Update form value when component value changes\n\t\t\tconst formValue = Array.isArray(this.value) ? this.value.join(',') : this.value\n\t\t\tthis.internals?.setFormValue(formValue)\n\n\t\t\t// Check validity after value changes\n\t\t\tif (this.required) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\t\t}\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\tthis.checkValidity()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.isValid = true // Reset validation on change\n\t\tthis.validationMessage = ''\n\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\n\t\t// Also dispatch a standard change event for better form compatibility\n\t\tthis.dispatchEvent(new Event('change', { bubbles: true }))\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\tconst isEmpty = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value\n\n\t\tthis.isValid = !(this.required && isEmpty)\n\n\t\tif (!this.isValid) {\n\t\t\tthis.validationMessage = 'Please select an option.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)\n\t\t} else {\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\tconst valid = this.checkValidity()\n\n\t\tif (!valid && this.required) {\n\t\t\t// If invalid, make sure the input shows it\n\t\t\tthis.inputRef.required = true\n\t\t\tthis.inputRef.reportValidity()\n\n\t\t\t// Optionally open the dropdown to show options\n\t\t\tif (!this.isOpen) {\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t}\n\n\t\treturn valid\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t\tthis.internals?.setValidity(message ? { customError: true } : {}, message, this.inputRef)\n\t}\n\n\tpublic reset() {\n\t\tthis.value = ''\n\t\tthis.valueLabel = this.placeholder\n\t\tthis.isValid = true\n\t\tthis.validationMessage = ''\n\t\tthis.internals?.setValidity({})\n\t\tthis.options.forEach(o => (o.selected = false))\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\t.hint=${this.hint || this.validationMessage}\n\t\t\t\t\t.error=${!this.isValid}\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","this","required","placeholder","value","multi","label","hint","isOpen","valueLabel","isValid","validationMessage","handleKeyDown","e","includes","key","preventDefault","openDropdown","current","options","findIndex","o","matches","closeDropdown","focusOption","Math","min","length","max","handleOptionSelect","internals","attachInternals","form","connectedCallback","id","random","toString","substr","addEventListener","disconnectedCallback","removeEventListener","cleanupPositioner","firstUpdated","syncSelection","setupOptionsAccessibility","changedProps","updated","has","formValue","Array","isArray","join","setFormValue","checkValidity","selectedValues","forEach","selected","filter","map","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","focus","combobox","report","updateComplete","positionDropdown","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","Event","isEmpty","setValidity","valueMissing","inputRef","valid","message","customError","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|
package/dist/select.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./select-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./select-SQOIioEy.cjs");Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>e.SchmancySelect});
|
|
2
2
|
//# sourceMappingURL=select.cjs.map
|
package/dist/select.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Subject as x, switchMap as D, forkJoin as S, fromEvent as d, of as k, takeUntil as f, timer as C, map as m, defaultIfEmpty as F, tap as h, delay as y, filter as U, take as j, mergeMap as P, merge as B } from "rxjs";
|
|
2
2
|
import "lit/directives/class-map.js";
|
|
3
3
|
import "lit/directives/style-map.js";
|
|
4
|
-
import { T } from "./tailwind.mixin-
|
|
4
|
+
import { T } from "./tailwind.mixin-B-T2bBPl.js";
|
|
5
5
|
import { html as g } from "lit";
|
|
6
|
-
import { property as c, customElement as A, query as z, queryAssignedElements as
|
|
7
|
-
import { $ as
|
|
6
|
+
import { property as c, customElement as A, query as z, queryAssignedElements as I } from "lit/decorators.js";
|
|
7
|
+
import { $ as q } from "./litElement.mixin-MZntPOCu.js";
|
|
8
8
|
import { when as L } from "lit/directives/when.js";
|
|
9
9
|
var N = Object.defineProperty, M = Object.getOwnPropertyDescriptor, $ = (t, e, s, i) => {
|
|
10
10
|
for (var a, o = i > 1 ? void 0 : i ? M(e, s) : e, l = t.length - 1; l >= 0; l--) (a = t[l]) && (o = (i ? a(e, s, o) : a(o)) || o);
|
|
@@ -77,7 +77,7 @@ var R = Object.defineProperty, J = Object.getOwnPropertyDescriptor, r = (t, e, s
|
|
|
77
77
|
for (var a, o = i > 1 ? void 0 : i ? J(e, s) : e, l = t.length - 1; l >= 0; l--) (a = t[l]) && (o = (i ? a(e, s, o) : a(o)) || o);
|
|
78
78
|
return i && o && R(e, s, o), o;
|
|
79
79
|
};
|
|
80
|
-
let n = class extends
|
|
80
|
+
let n = class extends q(":host{--overlay-color: var(--schmancy-sys-color-surface-dim);--transition-duration: .2s;--sheet-radius: 0;--max-height: 100vh}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;visibility:visible;transition:visibility var(--transition-duration) ease-in-out}.sheet[aria-hidden=true]{visibility:hidden;pointer-events:none}.sheet[aria-hidden=true] .content{transform:translateY(100%)}.sheet[aria-hidden=true] .content[data-position=side]{transform:translate(100%)}.sheet[aria-hidden=true] .overlay{opacity:0}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-color);opacity:.8;transition:opacity var(--transition-duration) ease-in-out}.content{z-index:1;transition:transform var(--transition-duration) ease-in-out;overflow:hidden}.content[data-position=side]{height:100vh;height:100%;min-width:320px;max-width:90vw;width:fit-content;margin-left:auto}.content[data-position=side] #body{max-height:100vh}.content[data-position=bottom]{width:100%;margin-top:auto;border-radius:16px 16px 0 0;max-height:90vh}.content[data-position=bottom] #body{max-height:90vh}") {
|
|
81
81
|
constructor() {
|
|
82
82
|
super(...arguments), this.open = !1, this.header = "visible", this.position = O.Side, this.persist = !1, this.allowOverlayDismiss = !0, this.title = "", this.focusAttribute = "autofocus", this.lastFocusedElement = null, this.handleFocusIn = (t) => {
|
|
83
83
|
var e;
|
|
@@ -164,7 +164,7 @@ let n = class extends I(":host{--overlay-color: var(--schmancy-sys-color-surface
|
|
|
164
164
|
}
|
|
165
165
|
};
|
|
166
166
|
var u, p;
|
|
167
|
-
r([c({ type: String, reflect: !0 })], n.prototype, "uid", 2), r([c({ type: Boolean, reflect: !0 })], n.prototype, "open", 2), r([c({ type: String, reflect: !0 })], n.prototype, "header", 2), r([c({ type: String, reflect: !0 })], n.prototype, "position", 2), r([c({ type: Boolean, reflect: !0 })], n.prototype, "persist", 2), r([c({ type: Boolean, reflect: !0 })], n.prototype, "allowOverlayDismiss", 2), r([c({ type: String, reflect: !0 })], n.prototype, "title", 2), r([z(".sheet")], n.prototype, "sheet", 2), r([
|
|
167
|
+
r([c({ type: String, reflect: !0 })], n.prototype, "uid", 2), r([c({ type: Boolean, reflect: !0 })], n.prototype, "open", 2), r([c({ type: String, reflect: !0 })], n.prototype, "header", 2), r([c({ type: String, reflect: !0 })], n.prototype, "position", 2), r([c({ type: Boolean, reflect: !0 })], n.prototype, "persist", 2), r([c({ type: Boolean, reflect: !0 })], n.prototype, "allowOverlayDismiss", 2), r([c({ type: String, reflect: !0 })], n.prototype, "title", 2), r([z(".sheet")], n.prototype, "sheet", 2), r([I({ flatten: !0 })], n.prototype, "assignedElements", 2), r([c()], n.prototype, "focusAttribute", 2), r([(u = "open", (t, e) => {
|
|
168
168
|
const { willUpdate: s } = t;
|
|
169
169
|
p = Object.assign({ waitUntilFirstUpdate: !1 }, p), t.willUpdate = function(i) {
|
|
170
170
|
if (s.call(this, i), i.has(u)) {
|
|
@@ -179,4 +179,4 @@ export {
|
|
|
179
179
|
E as b,
|
|
180
180
|
v as s
|
|
181
181
|
};
|
|
182
|
-
//# sourceMappingURL=sheet-
|
|
182
|
+
//# sourceMappingURL=sheet-BJGyAQko.js.map
|