@mhmo91/schmancy 0.2.114 → 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-DTDFQDv-.js → chips-CdcS0QXD.js} +14 -14
- package/dist/{chips-DTDFQDv-.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-Dzei5ynQ.cjs → delay-BC-GT6yV.cjs} +2 -2
- package/dist/{delay-Dzei5ynQ.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 +1 -1
- package/dist/extra.js +1 -1
- 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 +77 -74
- 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-CZX1sxBe.js → input-CuvPPYVq.js} +18 -17
- package/dist/{input-CZX1sxBe.js.map → input-CuvPPYVq.js.map} +1 -1
- 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-CTC1BTOb.cjs.map → input-DibJxeWY.cjs.map} +1 -1
- 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-CxalubCR.js → option-DMwxI7ML.js} +29 -13
- 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/rxjs-utils.js +4 -4
- 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-C9Q1WHQe.cjs → teleport.component-BMLwCM8y.cjs} +19 -19
- package/dist/{teleport.component-C9Q1WHQe.cjs.map → teleport.component-BMLwCM8y.cjs.map} +1 -1
- package/dist/{teleport.component-DY1Q8ilK.js → teleport.component-gFIqLOrA.js} +43 -41
- package/dist/{teleport.component-DY1Q8ilK.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-EDGZdfbO.js → timezone-BW6MC511.js} +93 -41
- 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-DtWpV0Xd.cjs → typewriter-C8pWgRuU.cjs} +2 -2
- package/dist/{typewriter-DtWpV0Xd.cjs.map → typewriter-C8pWgRuU.cjs.map} +1 -1
- package/dist/{typewriter-C1Ij3c--.js → typewriter-DmzUuxvZ.js} +4 -4
- package/dist/{typewriter-C1Ij3c--.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 +13 -0
- package/types/src/extra/timezone/timezone.d.ts +13 -0
- package/types/src/index.d.ts +1 -0
- package/types/src/option/option.d.ts +3 -0
- package/types/src/select/select.d.ts +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-BU0sC_l-.cjs +0 -49
- package/dist/autocomplete-BU0sC_l-.cjs.map +0 -1
- package/dist/autocomplete-u76bIDqg.js +0 -264
- package/dist/autocomplete-u76bIDqg.js.map +0 -1
- package/dist/input-CTC1BTOb.cjs +0 -51
- package/dist/option-CxalubCR.js.map +0 -1
- package/dist/option-DJLLszO6.cjs +0 -18
- package/dist/option-DJLLszO6.cjs.map +0 -1
- package/dist/payment-card-form-Bi3yNg4b.cjs +0 -48
- package/dist/ripple-BumgqsDT.js +0 -78
- package/dist/ripple-BumgqsDT.js.map +0 -1
- package/dist/ripple-C2BHbhcS.cjs +0 -16
- package/dist/ripple-C2BHbhcS.cjs.map +0 -1
- package/dist/select-8AjN6LbM.js.map +0 -1
- package/dist/select-BdU6KcPX.cjs +0 -54
- package/dist/select-BdU6KcPX.cjs.map +0 -1
- package/dist/tailwind.mixin-CBhPue3q.cjs +0 -2
- package/dist/tailwind.mixin-DklgfhB4.js +0 -43
- package/dist/textarea-BCWPb0Sn.cjs +0 -42
- package/dist/timezone-Cv2QSsl4.cjs +0 -24
- package/dist/timezone-Cv2QSsl4.cjs.map +0 -1
- package/dist/timezone-EDGZdfbO.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,112 +1,115 @@
|
|
|
1
|
-
import "./animated-text-
|
|
2
|
-
import { F as C, H as T, b as d, S as u, a as b, r as N } from "./area.component-
|
|
3
|
-
import "./autocomplete-
|
|
4
|
-
import "./spinner-
|
|
5
|
-
import { S as R, a as v } from "./icon-button-
|
|
6
|
-
import { $ as M, H as g, e as E, b as
|
|
7
|
-
import { S as U } from "./checkbox-
|
|
8
|
-
import "./chips-
|
|
9
|
-
import { S as Z } from "./payment-card-form-
|
|
10
|
-
import "./date-range-
|
|
11
|
-
import { S as ra, d as ea } from "./delay-
|
|
12
|
-
import { c as oa
|
|
13
|
-
import "./
|
|
14
|
-
import
|
|
15
|
-
import "./
|
|
16
|
-
import "./
|
|
17
|
-
import "./
|
|
18
|
-
import
|
|
19
|
-
import {
|
|
20
|
-
import "./
|
|
21
|
-
import
|
|
22
|
-
import "./
|
|
23
|
-
import
|
|
24
|
-
import {
|
|
1
|
+
import "./animated-text-C-LJVhLw.js";
|
|
2
|
+
import { F as C, H as T, b as d, S as u, a as b, r as N } from "./area.component-6ebQ-3Kb.js";
|
|
3
|
+
import "./autocomplete-NTEOksdT.js";
|
|
4
|
+
import "./spinner-D0l2eAK5.js";
|
|
5
|
+
import { S as R, a as v } from "./icon-button-BPa29txC.js";
|
|
6
|
+
import { $ as M, H as g, e as E, b as F, f as A, c as Y, d as $, g as k, S as G, a as L, i as O, k as W, l as _, m as B, j as P, n as j, o as z, W as K, s as V, h as q, t as J } from "./teleport.component-gFIqLOrA.js";
|
|
7
|
+
import { S as U } from "./checkbox-1tBSHNXu.js";
|
|
8
|
+
import "./chips-CdcS0QXD.js";
|
|
9
|
+
import { S as Z } from "./payment-card-form-DK86Lcng.js";
|
|
10
|
+
import "./date-range-BSBJICYH.js";
|
|
11
|
+
import { S as ra, d as ea } from "./delay-CgOaVklg.js";
|
|
12
|
+
import { c as oa } from "./color-DrgmL7QT.js";
|
|
13
|
+
import { f as ma, r as na } from "./ripple-3indJ14o.js";
|
|
14
|
+
import "./divider-lRP5ZCxr.js";
|
|
15
|
+
import { S as Sa, a as ha } from "./timezone-BW6MC511.js";
|
|
16
|
+
import "./form-Ci8uCvU-.js";
|
|
17
|
+
import "./icon-DOJOFG3x.js";
|
|
18
|
+
import "./input-CuvPPYVq.js";
|
|
19
|
+
import { S as ya, c as pa, a as fa, b as xa } from "./flex-BkuM0UK7.js";
|
|
20
|
+
import { L as wa, a as Da, S as Ca } from "./list-CWbygRrR.js";
|
|
21
|
+
import "./menu-iSx7aWwL.js";
|
|
22
|
+
import { $ as da, S as ua, a as ba } from "./outlet-KhTjvKCU.js";
|
|
23
|
+
import "./option-DMwxI7ML.js";
|
|
24
|
+
import { R as Ha } from "./radio-group-DNmZuvSj.js";
|
|
25
|
+
import { mutationObserver as va } from "./rxjs-utils.js";
|
|
25
26
|
import "rxjs";
|
|
26
27
|
import "./index-CuY8m6ta.js";
|
|
27
|
-
import { S as
|
|
28
|
-
import { S as
|
|
29
|
-
import { S as
|
|
30
|
-
import { a as
|
|
31
|
-
import "./table-
|
|
32
|
-
import "./tabs-group-
|
|
33
|
-
import "./textarea-
|
|
34
|
-
import { S as
|
|
35
|
-
import { S as
|
|
36
|
-
import "./theme-button-
|
|
37
|
-
import { S as
|
|
38
|
-
import { SchmancyEvents as
|
|
39
|
-
import { T as
|
|
40
|
-
import { S as
|
|
41
|
-
import { i as
|
|
28
|
+
import { S as Ma } from "./select-DRi9CB_N.js";
|
|
29
|
+
import { S as Ea, b as Fa, a as Aa, s as Ya } from "./sheet-BJGyAQko.js";
|
|
30
|
+
import { S as ka, a as Ga } from "./slider-A_LoTZ1P.js";
|
|
31
|
+
import { a as Oa, S as Wa } from "./surface-D5FgxeIB.js";
|
|
32
|
+
import "./table-DC86Vj6Z.js";
|
|
33
|
+
import "./tabs-group-7bz0I9uV.js";
|
|
34
|
+
import "./textarea-1aeql05N.js";
|
|
35
|
+
import { S as Ba, f as Pa, t as ja } from "./theme.component-BFkhNT0D.js";
|
|
36
|
+
import { S as Ka } from "./theme.interface-C5Kj6WjD.js";
|
|
37
|
+
import "./theme-button-MRgILdtC.js";
|
|
38
|
+
import { S as qa } from "./tree-PSCsuzDT.js";
|
|
39
|
+
import { SchmancyEvents as Qa } from "./types.js";
|
|
40
|
+
import { T as Xa } from "./typewriter-DmzUuxvZ.js";
|
|
41
|
+
import { S as ar } from "./typography-D486o2A3.js";
|
|
42
|
+
import { i as er } from "./intersection-CJxzz8c-.js";
|
|
43
|
+
import { S as or } from "./input-DTJsOi9t.js";
|
|
42
44
|
export {
|
|
43
45
|
M as $drawer,
|
|
44
|
-
|
|
46
|
+
da as $notify,
|
|
45
47
|
C as FINDING_MORTIES,
|
|
46
48
|
T as HERE_RICKY,
|
|
47
49
|
d as HISTORY_STRATEGY,
|
|
48
50
|
g as HereMorty,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
wa as List,
|
|
52
|
+
Ha as RadioGroup,
|
|
53
|
+
or as SchForm,
|
|
51
54
|
u as SchmancyArea,
|
|
52
55
|
R as SchmancyButton,
|
|
53
56
|
U as SchmancyCheckbox,
|
|
54
57
|
E as SchmancyContentDrawer,
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
F as SchmancyContentDrawerID,
|
|
59
|
+
A as SchmancyContentDrawerMain,
|
|
57
60
|
Y as SchmancyContentDrawerMaxHeight,
|
|
58
61
|
$ as SchmancyContentDrawerMinWidth,
|
|
59
62
|
k as SchmancyContentDrawerSheet,
|
|
60
63
|
G as SchmancyContentDrawerSheetMode,
|
|
61
64
|
L as SchmancyContentDrawerSheetState,
|
|
62
|
-
|
|
65
|
+
Sa as SchmancyCountriesSelect,
|
|
63
66
|
ra as SchmancyDelay,
|
|
64
67
|
O as SchmancyDrawerAppbar,
|
|
65
68
|
W as SchmancyDrawerNavbarMode,
|
|
66
69
|
_ as SchmancyDrawerNavbarState,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
Qa as SchmancyEvents,
|
|
71
|
+
ya as SchmancyFlex,
|
|
72
|
+
pa as SchmancyFlexV2,
|
|
73
|
+
fa as SchmancyGrid,
|
|
74
|
+
Da as SchmancyListItem,
|
|
75
|
+
Ca as SchmancyListTypeContext,
|
|
73
76
|
B as SchmancyNavigationDrawer,
|
|
74
77
|
P as SchmancyNavigationDrawerContent,
|
|
75
78
|
j as SchmancyNavigationDrawerSidebar,
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
ua as SchmancyNotification,
|
|
80
|
+
ba as SchmancyNotificationOutlet,
|
|
78
81
|
Z as SchmancyPaymentCardForm,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
xa as SchmancyScroll,
|
|
83
|
+
Ma as SchmancySelect,
|
|
84
|
+
Ea as SchmancySheetPosition,
|
|
85
|
+
ka as SchmancySlide,
|
|
86
|
+
Ga as SchmancySlider,
|
|
87
|
+
Oa as SchmancySurface,
|
|
88
|
+
Wa as SchmancySurfaceTypeContext,
|
|
86
89
|
z as SchmancyTeleportation,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
Ka as SchmancyTheme,
|
|
91
|
+
Ba as SchmancyThemeComponent,
|
|
92
|
+
ha as SchmancyTimezonesSelect,
|
|
93
|
+
qa as SchmancyTree,
|
|
94
|
+
ar as SchmancyTypography,
|
|
92
95
|
v as SchmnacyIconButton,
|
|
93
|
-
|
|
96
|
+
Fa as SheetHereMorty,
|
|
94
97
|
Aa as SheetWhereAreYouRicky,
|
|
95
|
-
|
|
98
|
+
Xa as TypewriterElement,
|
|
96
99
|
K as WhereAreYouRicky,
|
|
97
100
|
b as area,
|
|
98
101
|
oa as color,
|
|
99
102
|
ea as delayContext,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
Pa as formateTheme,
|
|
104
|
+
ma as fullHeight,
|
|
105
|
+
er as intersection$,
|
|
106
|
+
va as mutationObserver,
|
|
107
|
+
na as ripple,
|
|
105
108
|
N as routerHistory,
|
|
106
109
|
V as schmancyContentDrawer,
|
|
107
110
|
q as schmancyNavDrawer,
|
|
108
|
-
|
|
109
|
-
|
|
111
|
+
Ya as sheet,
|
|
112
|
+
ja as tailwindStyles,
|
|
110
113
|
J as teleport
|
|
111
114
|
};
|
|
112
115
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";const b=require("./tailwind.mixin-CduPdozY.cjs"),d=require("lit"),i=require("lit/decorators.js"),f=require("lit/directives/ref.js"),v=require("lit/directives/when.js"),g=require("./color-D8r6dpWm.cjs"),u=require("./theme.interface-Xg5Zi46a.cjs");var $=Object.defineProperty,w=Object.getOwnPropertyDescriptor,c=(e,s,r,o)=>{for(var n,t=o>1?void 0:o?w(s,r):s,a=e.length-1;a>=0;a--)(n=e[a])&&(t=(o?n(s,r,t):n(t))||t);return o&&t&&$(s,r,t),t};exports.SchForm=class extends b.TailwindElement(d.css`
|
|
2
|
+
:host {
|
|
3
|
+
display: block;
|
|
4
|
+
}
|
|
5
|
+
`){constructor(){super(...arguments),this.novalidate=!1,this.method="post",this.action="",this.enctype="application/x-www-form-urlencoded"}handleSubmit(e){if(e.preventDefault(),!this.novalidate&&!this.formElement.checkValidity())return void this.formElement.reportValidity();const s=new FormData(this.formElement),r=Array.from(s.entries()).reduce((o,[n,t])=>(o[n]!==void 0?(Array.isArray(o[n])||(o[n]=[o[n]]),o[n].push(t)):o[n]=t,o),{});this.dispatchEvent(new CustomEvent("submit",{detail:{formData:s,data:r},bubbles:!0})),this.action&&!this.novalidate&&this.formElement.submit()}reset(){var e;(e=this.formElement)==null||e.reset()}render(){return d.html`
|
|
6
|
+
<form
|
|
7
|
+
method=${this.method}
|
|
8
|
+
action=${this.action}
|
|
9
|
+
enctype=${this.enctype}
|
|
10
|
+
?novalidate=${this.novalidate}
|
|
11
|
+
@submit=${this.handleSubmit}
|
|
12
|
+
>
|
|
13
|
+
<slot></slot>
|
|
14
|
+
</form>
|
|
15
|
+
`}},c([i.property({type:Boolean})],exports.SchForm.prototype,"novalidate",2),c([i.property({type:String})],exports.SchForm.prototype,"method",2),c([i.property({type:String})],exports.SchForm.prototype,"action",2),c([i.property({type:String})],exports.SchForm.prototype,"enctype",2),c([i.query("form")],exports.SchForm.prototype,"formElement",2),exports.SchForm=c([i.customElement("sch-form")],exports.SchForm);var S=Object.defineProperty,l=(e,s,r,o)=>{for(var n,t=void 0,a=e.length-1;a>=0;a--)(n=e[a])&&(t=n(s,r,t)||t);return t&&S(s,r,t),t};function x(e){return function(s){const o=class o extends s{constructor(...t){super(...t),this.name="",this.value="",this.label="",this.required=!1,this.disabled=!1,this.readonly=!1,this.error=!1,this.validationMessage="",this.id=`schmancy-field-${Date.now()}-${Math.floor(1e3*Math.random())}`;try{this.internals=this.attachInternals()}catch{this.internals=void 0}}get form(){var t;return((t=this.internals)==null?void 0:t.form)??null}willUpdate(t){var a,y,m;super.willUpdate(t),t.has("value")&&((a=this.internals)==null||a.setFormValue(this.value)),(t.has("error")||t.has("validationMessage"))&&(this.error&&this.validationMessage?(y=this.internals)==null||y.setValidity({customError:!0},this.validationMessage):(m=this.internals)==null||m.setValidity({}))}checkValidity(){return!!this.disabled||!this.required||this.value!==""&&this.value!==void 0&&this.value!==null||(this.error=!0,this.validationMessage="This field is required",!1)}reportValidity(){var a;const t=this.checkValidity();return t||((a=this.internals)==null||a.reportValidity()),t}setCustomValidity(t){var a,y;this.validationMessage=t,this.error=t!=="",t?(a=this.internals)==null||a.setValidity({customError:!0},t):(y=this.internals)==null||y.setValidity({})}emitChange(t){this.dispatchEvent(new CustomEvent("change",{detail:t,bubbles:!0,composed:!0}))}};o.formAssociated=!0;let r=o;return l([i.property({type:String})],r.prototype,"name"),l([i.property({reflect:!0})],r.prototype,"value"),l([i.property({type:String})],r.prototype,"label"),l([i.property({type:Boolean,reflect:!0})],r.prototype,"required"),l([i.property({type:Boolean,reflect:!0})],r.prototype,"disabled"),l([i.property({type:Boolean,reflect:!0})],r.prototype,"readonly"),l([i.property({type:Boolean,reflect:!0})],r.prototype,"error"),l([i.property({type:String})],r.prototype,"validationMessage"),l([i.property({type:String})],r.prototype,"hint"),l([i.property({reflect:!0})],r.prototype,"id"),r}(b.TailwindElement(e))}var V=Object.defineProperty,E=Object.getOwnPropertyDescriptor,h=(e,s,r,o)=>{for(var n,t=o>1?void 0:o?E(s,r):s,a=e.length-1;a>=0;a--)(n=e[a])&&(t=(o?n(s,r,t):n(t))||t);return o&&t&&V(s,r,t),t};let p=class extends x(d.css`
|
|
16
|
+
:host {
|
|
17
|
+
display: block;
|
|
18
|
+
width: 100%;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
input {
|
|
22
|
+
width: 100%;
|
|
23
|
+
height: var(--sch-input-height, 40px);
|
|
24
|
+
padding: var(--sch-input-padding, 0 12px);
|
|
25
|
+
border-radius: var(--sch-input-radius, 4px);
|
|
26
|
+
font-family: inherit;
|
|
27
|
+
font-size: inherit;
|
|
28
|
+
background-color: var(--schmancy-sys-color-surface-highest);
|
|
29
|
+
color: var(--schmancy-sys-color-surface-on);
|
|
30
|
+
border: 1px solid var(--schmancy-sys-color-surface-onVariant);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
input:focus {
|
|
34
|
+
outline: none;
|
|
35
|
+
border-color: var(--schmancy-sys-color-primary-default);
|
|
36
|
+
box-shadow: 0 0 0 1px var(--schmancy-sys-color-primary-default);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Only show invalid state after the user has interacted with the field */
|
|
40
|
+
input:not(:placeholder-shown):invalid {
|
|
41
|
+
border-color: var(--schmancy-sys-color-error-default);
|
|
42
|
+
box-shadow: 0 0 0 1px var(--schmancy-sys-color-error-default);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.input-wrapper {
|
|
46
|
+
position: relative;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
label {
|
|
50
|
+
display: block;
|
|
51
|
+
margin-bottom: 4px;
|
|
52
|
+
font-size: 0.875rem;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.hint {
|
|
56
|
+
font-size: 0.75rem;
|
|
57
|
+
margin-top: 4px;
|
|
58
|
+
}
|
|
59
|
+
`){constructor(){super(...arguments),this.type="text",this.placeholder="",this.autocomplete="off",this.inputRef=f.createRef()}handleInput(e){this.value=e.target.value,this.emitChange({value:this.value})}focus(e){var s;(s=this.inputRef.value)==null||s.focus(e)}blur(){var e;(e=this.inputRef.value)==null||e.blur()}checkValidity(){var e;return((e=this.inputRef.value)==null?void 0:e.checkValidity())??!0}reportValidity(){var e;return((e=this.inputRef.value)==null?void 0:e.reportValidity())??!0}render(){return d.html`
|
|
60
|
+
${v.when(this.label,()=>d.html`
|
|
61
|
+
<label
|
|
62
|
+
for=${this.id}
|
|
63
|
+
${g.color({color:this.error?u.SchmancyTheme.sys.color.error.default:u.SchmancyTheme.sys.color.primary.default})}
|
|
64
|
+
>
|
|
65
|
+
${this.label}
|
|
66
|
+
</label>
|
|
67
|
+
`)}
|
|
68
|
+
|
|
69
|
+
<div class="input-wrapper">
|
|
70
|
+
<input
|
|
71
|
+
${f.ref(this.inputRef)}
|
|
72
|
+
id=${this.id}
|
|
73
|
+
.type=${this.type}
|
|
74
|
+
name=${this.name}
|
|
75
|
+
placeholder=${this.placeholder}
|
|
76
|
+
?required=${this.required}
|
|
77
|
+
?disabled=${this.disabled}
|
|
78
|
+
?readonly=${this.readonly}
|
|
79
|
+
minlength=${this.minlength??""}
|
|
80
|
+
maxlength=${this.maxlength??""}
|
|
81
|
+
pattern=${this.pattern??""}
|
|
82
|
+
.autocomplete=${this.autocomplete}
|
|
83
|
+
aria-invalid=${this.error?"true":"false"}
|
|
84
|
+
.value=${this.value}
|
|
85
|
+
@input=${this.handleInput}
|
|
86
|
+
/>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
${v.when(this.hint,()=>d.html`
|
|
90
|
+
<div
|
|
91
|
+
class="hint"
|
|
92
|
+
${g.color({color:u.SchmancyTheme.sys.color.surface.onVariant})}
|
|
93
|
+
>
|
|
94
|
+
${this.hint}
|
|
95
|
+
</div>
|
|
96
|
+
`)}
|
|
97
|
+
`}};h([i.property({type:String})],p.prototype,"type",2),h([i.property({type:String})],p.prototype,"placeholder",2),h([i.property({type:Number})],p.prototype,"minlength",2),h([i.property({type:Number})],p.prototype,"maxlength",2),h([i.property({type:String})],p.prototype,"pattern",2),h([i.property({type:String})],p.prototype,"autocomplete",2),p=h([i.customElement("sch-input")],p);
|
|
98
|
+
//# sourceMappingURL=input-B4miYmDK.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-B4miYmDK.cjs","sources":["../src/v2/form.ts","../mixins/formField.mixin.ts","../src/v2/input.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { html, css } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\n/**\n * A form component that enforces native browser validation\n * for all contained form elements.\n *\n * @example\n * ```html\n * <sch-form @submit=${handleSubmit}>\n * <sch-input label=\"Name\" required></sch-input>\n * <schmancy-button type=\"submit\">Submit</schmancy-button>\n * </sch-form>\n * ```\n */\n@customElement('sch-form')\nexport class SchForm extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t/**\n\t * If true, form validation will be skipped\n\t */\n\t@property({ type: Boolean })\n\tnovalidate = false\n\n\t/**\n\t * The form's submission method (get or post)\n\t */\n\t@property({ type: String })\n\tmethod: 'get' | 'post' = 'post'\n\n\t/**\n\t * The URL to submit the form to\n\t */\n\t@property({ type: String })\n\taction = ''\n\n\t/**\n\t * The form's encoding type\n\t */\n\t@property({ type: String })\n\tenctype: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain' =\n\t\t'application/x-www-form-urlencoded'\n\n\t/**\n\t * Reference to the internal form element\n\t */\n\t@query('form')\n\tformElement!: HTMLFormElement\n\n\t/**\n\t * Handle form submission\n\t * This is the key method that ensures browser validation works\n\t */\n\tprivate handleSubmit(e: Event) {\n\t\t// Always prevent the default submission\n\t\te.preventDefault()\n\n\t\t// Use the browser's built-in validation\n\t\tif (!this.novalidate && !this.formElement.checkValidity()) {\n\t\t\t// This will trigger the browser's default validation UI on all fields\n\t\t\tthis.formElement.reportValidity()\n\t\t\treturn\n\t\t}\n\n\t\t// If validation passes or is disabled, collect the form data\n\t\tconst formData = new FormData(this.formElement)\n\n\t\t// Convert FormData to a plain object for easier consumption\n\t\tconst formDataObj = Array.from(formData.entries()).reduce(\n\t\t\t(obj, [key, value]) => {\n\t\t\t\tif (obj[key] !== undefined) {\n\t\t\t\t\tif (!Array.isArray(obj[key])) {\n\t\t\t\t\t\tobj[key] = [obj[key]]\n\t\t\t\t\t}\n\t\t\t\t\tobj[key].push(value)\n\t\t\t\t} else {\n\t\t\t\t\tobj[key] = value\n\t\t\t\t}\n\t\t\t\treturn obj\n\t\t\t},\n\t\t\t{} as Record<string, any>,\n\t\t)\n\n\t\t// Dispatch a submit event with the form data\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('submit', {\n\t\t\t\tdetail: { formData, data: formDataObj },\n\t\t\t\tbubbles: true,\n\t\t\t}),\n\t\t)\n\n\t\t// If there's an action URL, submit the form to it\n\t\tif (this.action && !this.novalidate) {\n\t\t\tthis.formElement.submit()\n\t\t}\n\t}\n\n\t/**\n\t * Reset the form\n\t */\n\tpublic reset() {\n\t\tthis.formElement?.reset()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<form\n\t\t\t\tmethod=${this.method}\n\t\t\t\taction=${this.action}\n\t\t\t\tenctype=${this.enctype}\n\t\t\t\t?novalidate=${this.novalidate}\n\t\t\t\t@submit=${this.handleSubmit}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</form>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-form': SchForm\n\t}\n}\n","import { CSSResult, LitElement, PropertyValueMap } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { IBaseMixin } from '../mixins/baseElement'\nimport { Constructor } from '../mixins/constructor'\nimport { ITailwindElementMixin, TailwindElement } from '../mixins/tailwind.mixin'\n\n/**\n * Interface defining the properties and methods that the FormFieldMixin adds.\n */\nexport interface IFormFieldMixin extends Element {\n\t// Properties\n\tname: string\n\tvalue: string | string[] | boolean | number | undefined\n\tlabel: string\n\trequired: boolean\n\tdisabled: boolean\n\treadonly: boolean\n\terror: boolean\n\tvalidationMessage: string\n\thint?: string\n\tid: string\n\n\t// Form association\n\tform: HTMLFormElement | null\n\n\t// Methods\n\tcheckValidity(): boolean\n\treportValidity(): boolean\n\tsetCustomValidity(message: string): void\n\n\t// Event emitter helper\n\temitChange(detail: any): void\n}\n\n/**\n * A mixin that adds form field capabilities to a LitElement class.\n * This provides common form field properties, validation, and form association.\n *\n * @example\n * ```ts\n * class MyInput extends FormFieldMixin(TailwindElement(css`...`)) {\n * // Your component code here\n * }\n * ```\n */\nexport function FormFieldMixin<T extends Constructor<LitElement>>(superClass: T) {\n\tclass FormFieldMixinClass extends superClass {\n\t\tstatic formAssociated = true\n\n\t\t// Element internals for form association\n\t\tprivate internals: ElementInternals | undefined\n\n\t\t// Properties common to form fields\n\t\t/**\n\t\t * The name of the form field (used for form submission)\n\t\t */\n\t\t@property({ type: String })\n\t\tname: string = ''\n\n\t\t/**\n\t\t * The current value of the form field\n\t\t */\n\t\t@property({ reflect: true })\n\t\tvalue: string | string[] | boolean | number | undefined = ''\n\n\t\t/**\n\t\t * Label text for the form field\n\t\t */\n\t\t@property({ type: String })\n\t\tlabel: string = ''\n\n\t\t/**\n\t\t * Whether the field is required\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\trequired: boolean = false\n\n\t\t/**\n\t\t * Whether the field is disabled\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\tdisabled: boolean = false\n\n\t\t/**\n\t\t * Whether the field is read-only\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\treadonly: boolean = false\n\n\t\t/**\n\t\t * Whether the field is in an error state\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\terror: boolean = false\n\n\t\t/**\n\t\t * The validation message to display\n\t\t */\n\t\t@property({ type: String })\n\t\tvalidationMessage: string = ''\n\n\t\t/**\n\t\t * Optional hint text to display below the field\n\t\t */\n\t\t@property({ type: String })\n\t\thint?: string\n\n\t\t/**\n\t\t * Unique identifier for the field\n\t\t */\n\t\t@property({ reflect: true })\n\t\toverride id: string = `schmancy-field-${Date.now()}-${Math.floor(Math.random() * 1000)}`\n\n\t\tconstructor(...args: any[]) {\n\t\t\tsuper(...args)\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Gets the form this element is associated with\n\t\t */\n\t\tget form(): HTMLFormElement | null {\n\t\t\treturn this.internals?.form ?? null\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle method called when properties change\n\t\t */\n\t\tprotected willUpdate(changedProps: PropertyValueMap<any>): void {\n\t\t\tsuper.willUpdate(changedProps)\n\n\t\t\t// Update form value when value changes\n\t\t\tif (changedProps.has('value')) {\n\t\t\t\tthis.internals?.setFormValue(this.value as string | File | FormData | null)\n\t\t\t}\n\n\t\t\t// Update validation state when error or validation message changes\n\t\t\tif (changedProps.has('error') || changedProps.has('validationMessage')) {\n\t\t\t\tif (this.error && this.validationMessage) {\n\t\t\t\t\tthis.internals?.setValidity({ customError: true }, this.validationMessage)\n\t\t\t\t} else {\n\t\t\t\t\tthis.internals?.setValidity({})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Checks if the field is valid without showing validation UI\n\t\t */\n\t\tcheckValidity(): boolean {\n\t\t\tif (this.disabled) return true\n\n\t\t\tif (this.required && (this.value === '' || this.value === undefined || this.value === null)) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = 'This field is required'\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * Reports validity and shows validation UI if invalid\n\t\t */\n\t\treportValidity(): boolean {\n\t\t\tconst isValid = this.checkValidity()\n\t\t\tif (!isValid) {\n\t\t\t\tthis.internals?.reportValidity()\n\t\t\t}\n\t\t\treturn isValid\n\t\t}\n\n\t\t/**\n\t\t * Sets a custom validation message\n\t\t */\n\t\tsetCustomValidity(message: string): void {\n\t\t\tthis.validationMessage = message\n\t\t\tthis.error = message !== ''\n\t\t\tif (message) {\n\t\t\t\tthis.internals?.setValidity({ customError: true }, message)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Helper method to emit change events\n\t\t */\n\t\temitChange(detail: any): void {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\treturn FormFieldMixinClass as Constructor<IFormFieldMixin> & T\n}\n\n/**\n * A convenience function that composes FormFieldMixin with TailwindElement\n * to create a base class for Schmancy form components.\n *\n * @example\n * ```ts\n * class MyInput extends SchmancyFormField(css`...`) {\n * // Your component code here\n * }\n * ```\n */\nexport function SchmancyFormField<T extends CSSResult>(componentStyle?: T) {\n\treturn FormFieldMixin(TailwindElement(componentStyle)) as Constructor<IFormFieldMixin> &\n\t\tConstructor<ITailwindElementMixin> &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin>\n}\n","import { html, css } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { color } from '../directives/color'\nimport { SchmancyTheme } from '../theme/theme.interface'\nimport { SchmancyFormField } from '@mixins/formField.mixin'\n\n/**\n * A simplified input component that works with browser validation.\n *\n * @example\n * ```html\n * <sch-input\n * label=\"Email\"\n * name=\"email\"\n * required\n * type=\"email\"\n * ></sch-input>\n * ```\n */\n@customElement('sch-input')\nexport default class SchInput extends SchmancyFormField(css`\n\t:host {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\tinput {\n\t\twidth: 100%;\n\t\theight: var(--sch-input-height, 40px);\n\t\tpadding: var(--sch-input-padding, 0 12px);\n\t\tborder-radius: var(--sch-input-radius, 4px);\n\t\tfont-family: inherit;\n\t\tfont-size: inherit;\n\t\tbackground-color: var(--schmancy-sys-color-surface-highest);\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tborder: 1px solid var(--schmancy-sys-color-surface-onVariant);\n\t}\n\n\tinput:focus {\n\t\toutline: none;\n\t\tborder-color: var(--schmancy-sys-color-primary-default);\n\t\tbox-shadow: 0 0 0 1px var(--schmancy-sys-color-primary-default);\n\t}\n\n\t/* Only show invalid state after the user has interacted with the field */\n\tinput:not(:placeholder-shown):invalid {\n\t\tborder-color: var(--schmancy-sys-color-error-default);\n\t\tbox-shadow: 0 0 0 1px var(--schmancy-sys-color-error-default);\n\t}\n\n\t.input-wrapper {\n\t\tposition: relative;\n\t}\n\n\tlabel {\n\t\tdisplay: block;\n\t\tmargin-bottom: 4px;\n\t\tfont-size: 0.875rem;\n\t}\n\n\t.hint {\n\t\tfont-size: 0.75rem;\n\t\tmargin-top: 4px;\n\t}\n`) {\n\t/**\n\t * The type of input (text, email, password, etc.)\n\t */\n\t@property({ type: String })\n\ttype: string = 'text'\n\n\t/**\n\t * Placeholder text\n\t */\n\t@property({ type: String })\n\tplaceholder: string = ''\n\n\t/**\n\t * Minimum input length\n\t */\n\t@property({ type: Number })\n\tminlength?: number\n\n\t/**\n\t * Maximum input length\n\t */\n\t@property({ type: Number })\n\tmaxlength?: number\n\n\t/**\n\t * Pattern for validation\n\t */\n\t@property({ type: String })\n\tpattern?: string\n\n\t/**\n\t * Whether to enable autocomplete\n\t */\n\t@property({ type: String })\n\tautocomplete: string = 'off'\n\n\t/**\n\t * Reference to the internal input element\n\t */\n\tprivate inputRef = createRef<HTMLInputElement>()\n\n\t/**\n\t * Handle input change\n\t */\n\tprivate handleInput(e: Event) {\n\t\tthis.value = (e.target as HTMLInputElement).value\n\t\tthis.emitChange({ value: this.value })\n\t}\n\n\t/**\n\t * Focus the input\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t}\n\n\t/**\n\t * Blur the input\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t}\n\n\t/**\n\t * Let the browser handle validation\n\t */\n\tpublic override checkValidity(): boolean {\n\t\treturn this.inputRef.value?.checkValidity() ?? true\n\t}\n\n\t/**\n\t * Use the browser's built-in validation UI\n\t */\n\tpublic override reportValidity(): boolean {\n\t\treturn this.inputRef.value?.reportValidity() ?? true\n\t}\n\n\trender() {\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\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${this.label}\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\n\t\t\t<div class=\"input-wrapper\">\n\t\t\t\t<input\n\t\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t\tid=${this.id}\n\t\t\t\t\t.type=${this.type}\n\t\t\t\t\tname=${this.name}\n\t\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t\t?required=${this.required}\n\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t?readonly=${this.readonly}\n\t\t\t\t\tminlength=${this.minlength ?? ''}\n\t\t\t\t\tmaxlength=${this.maxlength ?? ''}\n\t\t\t\t\tpattern=${this.pattern ?? ''}\n\t\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\t\taria-invalid=${this.error ? 'true' : 'false'}\n\t\t\t\t\t.value=${this.value as string}\n\t\t\t\t\t@input=${this.handleInput}\n\t\t\t\t/>\n\t\t\t</div>\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\tclass=\"hint\"\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.onVariant,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</div>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-input': SchInput\n\t}\n}\n"],"names":["SchForm","TailwindElement","css","constructor","super","arguments","this","novalidate","method","action","enctype","e","preventDefault","formElement","checkValidity","reportValidity","formData","FormData","formDataObj","Array","from","entries","reduce","obj","key","value","isArray","push","dispatchEvent","CustomEvent","detail","data","bubbles","submit","reset","render","html","handleSubmit","__decorateClass","property","type","Boolean","prototype","String","query","customElement","SchmancyFormField","componentStyle","superClass","FormFieldMixinClass","args","name","label","required","disabled","readonly","error","validationMessage","id","Date","now","Math","floor","random","internals","attachInternals","form","changedProps","willUpdate","has","setFormValue","setValidity","customError","isValid","message","composed","formAssociated","_e","reflect","SchInput","placeholder","autocomplete","inputRef","createRef","target","emitChange","options","focus","blur","when","color","SchmancyTheme","sys","default","primary","ref","minlength","maxlength","pattern","handleInput","hint","surface","onVariant","Number"],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { nothing as f, html as m, LitElement as w } from "lit";
|
|
2
2
|
import { property as r, query as E, customElement as k } from "lit/decorators.js";
|
|
3
3
|
import { classMap as b } from "lit/directives/class-map.js";
|
|
4
|
-
import { ifDefined as
|
|
4
|
+
import { ifDefined as o } from "lit/directives/if-defined.js";
|
|
5
5
|
import { createRef as R, ref as C } from "lit/directives/ref.js";
|
|
6
6
|
import { when as g } from "lit/directives/when.js";
|
|
7
7
|
import { fromEvent as h, map as v, distinctUntilChanged as $, takeUntil as u, filter as x } from "rxjs";
|
|
8
8
|
import "lit/directives/style-map.js";
|
|
9
|
-
import { T as V } from "./tailwind.mixin-
|
|
10
|
-
import { c as y } from "./
|
|
9
|
+
import { T as V } from "./tailwind.mixin-B-T2bBPl.js";
|
|
10
|
+
import { c as y } from "./color-DrgmL7QT.js";
|
|
11
|
+
import "./ripple-3indJ14o.js";
|
|
11
12
|
import { S as p } from "./theme.interface-C5Kj6WjD.js";
|
|
12
|
-
var S = Object.defineProperty, q = Object.getOwnPropertyDescriptor, i = (t, s, l,
|
|
13
|
-
for (var c, a =
|
|
14
|
-
return
|
|
13
|
+
var S = Object.defineProperty, q = Object.getOwnPropertyDescriptor, i = (t, s, l, n) => {
|
|
14
|
+
for (var c, a = n > 1 ? void 0 : n ? q(s, l) : s, d = t.length - 1; d >= 0; d--) (c = t[d]) && (a = (n ? c(s, l, a) : c(a)) || a);
|
|
15
|
+
return n && a && S(s, l, a), a;
|
|
15
16
|
};
|
|
16
17
|
let e = class extends V(":host{border:unset!important;line-height:unset!important;background:unset!important;padding:unset!important;font-size:unset!important;box-shadow:unset!important;width:-webkit-fill-available}:host:focus{box-shadow:unset!important}input:focus-visible{outline:none!important}input{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;text-decoration:inherit;text-indent:inherit;text-shadow:inherit;text-overflow:inherit;text-rendering:inherit;text-size-adjust:inherit;text-align-last:inherit}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@keyframes onAutoFillStart{}input:-webkit-autofill{animation-name:onAutoFillStart}") {
|
|
17
18
|
constructor() {
|
|
@@ -29,8 +30,8 @@ let e = class extends V(":host{border:unset!important;line-height:unset!importan
|
|
|
29
30
|
return ((t = this.internals) == null ? void 0 : t.form) ?? null;
|
|
30
31
|
}
|
|
31
32
|
updated(t) {
|
|
32
|
-
var s, l,
|
|
33
|
-
super.updated(t), t.has("value") && ((s = this.internals) == null || s.setFormValue(this.value)), t.has("error") && (this.error ? (l = this.internals) == null || l.setValidity({ customError: !0 }, "Invalid input", this.inputElement) : (
|
|
33
|
+
var s, l, n;
|
|
34
|
+
super.updated(t), t.has("value") && ((s = this.internals) == null || s.setFormValue(this.value)), t.has("error") && (this.error ? (l = this.internals) == null || l.setValidity({ customError: !0 }, "Invalid input", this.inputElement) : (n = this.internals) == null || n.setValidity({}));
|
|
34
35
|
}
|
|
35
36
|
checkValidity() {
|
|
36
37
|
var t;
|
|
@@ -102,13 +103,13 @@ let e = class extends V(":host{border:unset!important;line-height:unset!importan
|
|
|
102
103
|
.autocomplete=${this.autocomplete}
|
|
103
104
|
.spellcheck=${this.spellcheck}
|
|
104
105
|
placeholder=${this.placeholder}
|
|
105
|
-
inputmode=${
|
|
106
|
-
pattern=${
|
|
107
|
-
step=${
|
|
108
|
-
minlength=${
|
|
109
|
-
maxlength=${
|
|
110
|
-
min=${
|
|
111
|
-
max=${
|
|
106
|
+
inputmode=${o(this.inputmode)}
|
|
107
|
+
pattern=${o(this.pattern)}
|
|
108
|
+
step=${o(this.step)}
|
|
109
|
+
minlength=${o(this.minlength)}
|
|
110
|
+
maxlength=${o(this.maxlength)}
|
|
111
|
+
min=${o(this.min)}
|
|
112
|
+
max=${o(this.max)}
|
|
112
113
|
?required=${this.required}
|
|
113
114
|
?disabled=${this.disabled}
|
|
114
115
|
?readonly=${this.readonly}
|
|
@@ -116,7 +117,7 @@ let e = class extends V(":host{border:unset!important;line-height:unset!importan
|
|
|
116
117
|
aria-required=${this.required ? "true" : "false"}
|
|
117
118
|
aria-labelledby=${this.label ? `label-${this.id}` : f}
|
|
118
119
|
aria-describedby=${this.hint ? `hint-${this.id}` : f}
|
|
119
|
-
aria-label=${
|
|
120
|
+
aria-label=${o(this.label ? void 0 : this.placeholder || "Input")}
|
|
120
121
|
/>
|
|
121
122
|
|
|
122
123
|
${g(this.hint, () => m`
|
|
@@ -132,4 +133,4 @@ let e = class extends V(":host{border:unset!important;line-height:unset!importan
|
|
|
132
133
|
}
|
|
133
134
|
};
|
|
134
135
|
e._idCounter = 0, e.formAssociated = !0, e.shadowRootOptions = { ...w.shadowRootOptions, delegatesFocus: !0 }, i([r({ reflect: !0 })], e.prototype, "id", 2), i([r({ type: String })], e.prototype, "label", 2), i([r({ reflect: !0 })], e.prototype, "type", 2), i([r()], e.prototype, "name", 2), i([r()], e.prototype, "placeholder", 2), i([r({ type: String, reflect: !0 })], e.prototype, "value", 2), i([r({ type: String, reflect: !0 })], e.prototype, "pattern", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "required", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "disabled", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "readonly", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "clickable", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "spellcheck", 2), i([r({ type: String, reflect: !0 })], e.prototype, "align", 2), i([r()], e.prototype, "inputmode", 2), i([r({ type: Number })], e.prototype, "minlength", 2), i([r({ type: Number })], e.prototype, "maxlength", 2), i([r()], e.prototype, "min", 2), i([r()], e.prototype, "max", 2), i([r({ type: Number, reflect: !0 })], e.prototype, "step", 2), i([r({ type: Boolean })], e.prototype, "autofocus", 2), i([r({ type: String, reflect: !0 })], e.prototype, "autocomplete", 2), i([r({ type: Number, reflect: !0 })], e.prototype, "tabIndex", 2), i([r()], e.prototype, "hint", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "error", 2), i([E("input")], e.prototype, "inputElement", 2), e = i([k("schmancy-input")], e);
|
|
135
|
-
//# sourceMappingURL=input-
|
|
136
|
+
//# sourceMappingURL=input-CuvPPYVq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-CZX1sxBe.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'\nimport style from './input.scss?inline'\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(style) {\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","constructor","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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"}
|
|
1
|
+
{"version":3,"file":"input-CuvPPYVq.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'\nimport style from './input.scss?inline'\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(style) {\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","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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"}
|