@mhmo91/schmancy 0.2.115 → 0.2.117
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/{animated-text-C-LJVhLw.js → animated-text-6DhYKKzt.js} +3 -3
- package/dist/{animated-text-C-LJVhLw.js.map → animated-text-6DhYKKzt.js.map} +1 -1
- package/dist/{animated-text-BJ8e_TdT.cjs → animated-text-C2EvhDmf.cjs} +2 -2
- package/dist/{animated-text-BJ8e_TdT.cjs.map → animated-text-C2EvhDmf.cjs.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-6ebQ-3Kb.js → area.component-DAry93pl.js} +3 -3
- package/dist/{area.component-6ebQ-3Kb.js.map → area.component-DAry93pl.js.map} +1 -1
- package/dist/{area.component-Bf5USqvC.cjs → area.component-X-1ZwgJL.cjs} +2 -2
- package/dist/{area.component-Bf5USqvC.cjs.map → area.component-X-1ZwgJL.cjs.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-CM_YM2UF.cjs → autocomplete-BIJ9G0y1.cjs} +2 -2
- package/dist/{autocomplete-CM_YM2UF.cjs.map → autocomplete-BIJ9G0y1.cjs.map} +1 -1
- package/dist/{autocomplete-NTEOksdT.js → autocomplete-C_QyhPJw.js} +3 -3
- package/dist/{autocomplete-NTEOksdT.js.map → autocomplete-C_QyhPJw.js.map} +1 -1
- 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-jcFvgv_5.cjs → checkbox-BkGLOzBe.cjs} +2 -2
- package/dist/{checkbox-jcFvgv_5.cjs.map → checkbox-BkGLOzBe.cjs.map} +1 -1
- package/dist/{checkbox-1tBSHNXu.js → checkbox-CTRhgYJB.js} +2 -2
- package/dist/{checkbox-1tBSHNXu.js.map → checkbox-CTRhgYJB.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-K7p1j3Uk.cjs → chips-B4X5PxUQ.cjs} +2 -2
- package/dist/{chips-K7p1j3Uk.cjs.map → chips-B4X5PxUQ.cjs.map} +1 -1
- package/dist/{chips-CdcS0QXD.js → chips-DjX_Zznh.js} +3 -3
- package/dist/{chips-CdcS0QXD.js.map → chips-DjX_Zznh.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- 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-BmVLxD4w.cjs → date-range-CCsKoZUV.cjs} +2 -2
- package/dist/{date-range-BmVLxD4w.cjs.map → date-range-CCsKoZUV.cjs.map} +1 -1
- package/dist/{date-range-BSBJICYH.js → date-range-CRJ7wYwK.js} +3 -3
- package/dist/{date-range-BSBJICYH.js.map → date-range-CRJ7wYwK.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-CgOaVklg.js → delay-BkSIN-In.js} +2 -2
- package/dist/{delay-CgOaVklg.js.map → delay-BkSIN-In.js.map} +1 -1
- package/dist/{delay-BC-GT6yV.cjs → delay-ttYmIqo7.cjs} +2 -2
- package/dist/{delay-BC-GT6yV.cjs.map → delay-ttYmIqo7.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{divider-Dw4upy-U.cjs → divider-2AVp1yWB.cjs} +2 -2
- package/dist/{divider-Dw4upy-U.cjs.map → divider-2AVp1yWB.cjs.map} +1 -1
- package/dist/{divider-lRP5ZCxr.js → divider-C3zQQjqq.js} +3 -3
- package/dist/{divider-lRP5ZCxr.js.map → divider-C3zQQjqq.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-X4APHjaR.cjs → flex-CfGGWirm.cjs} +3 -3
- package/dist/flex-CfGGWirm.cjs.map +1 -0
- package/dist/{flex-BkuM0UK7.js → flex-CfRUWQWK.js} +13 -13
- package/dist/flex-CfRUWQWK.js.map +1 -0
- package/dist/{form-Ci8uCvU-.js → form-BTg8x5QO.js} +2 -2
- package/dist/{form-Ci8uCvU-.js.map → form-BTg8x5QO.js.map} +1 -1
- package/dist/{form-Ct_Qt0rD.cjs → form-DPRTjp4Q.cjs} +2 -2
- package/dist/{form-Ct_Qt0rD.cjs.map → form-DPRTjp4Q.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-DOJOFG3x.js → icon-BLvikygg.js} +3 -3
- package/dist/{icon-DOJOFG3x.js.map → icon-BLvikygg.js.map} +1 -1
- package/dist/{icon-BPsYPc8h.cjs → icon-BfUZ5ZBV.cjs} +2 -2
- package/dist/{icon-BPsYPc8h.cjs.map → icon-BfUZ5ZBV.cjs.map} +1 -1
- package/dist/{icon-button-cirbgD54.cjs → icon-button-BefimCfp.cjs} +2 -2
- package/dist/{icon-button-cirbgD54.cjs.map → icon-button-BefimCfp.cjs.map} +1 -1
- package/dist/{icon-button-BPa29txC.js → icon-button-OidywZ1U.js} +3 -3
- package/dist/{icon-button-BPa29txC.js.map → icon-button-OidywZ1U.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +35 -35
- package/dist/{input-CuvPPYVq.js → input-BNIa-xYu.js} +34 -34
- package/dist/input-BNIa-xYu.js.map +1 -0
- package/dist/input-CqYkuOF4.cjs +51 -0
- package/dist/input-CqYkuOF4.cjs.map +1 -0
- package/dist/{input-B4miYmDK.cjs → input-Dq3dT_7p.cjs} +2 -2
- package/dist/{input-B4miYmDK.cjs.map → input-Dq3dT_7p.cjs.map} +1 -1
- package/dist/{input-DTJsOi9t.js → input-igN7Vis2.js} +2 -2
- package/dist/{input-DTJsOi9t.js.map → input-igN7Vis2.js.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-QiglVzPK.cjs → list-C78nnFIZ.cjs} +2 -2
- package/dist/{list-QiglVzPK.cjs.map → list-C78nnFIZ.cjs.map} +1 -1
- package/dist/{list-CWbygRrR.js → list-CQV0ecrY.js} +2 -2
- package/dist/{list-CWbygRrR.js.map → list-CQV0ecrY.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-MZntPOCu.js → litElement.mixin-B1ZP2iG4.js} +2 -2
- package/dist/{litElement.mixin-MZntPOCu.js.map → litElement.mixin-B1ZP2iG4.js.map} +1 -1
- package/dist/{litElement.mixin-D_oDZMIO.cjs → litElement.mixin-DGx3SrGX.cjs} +2 -2
- package/dist/{litElement.mixin-D_oDZMIO.cjs.map → litElement.mixin-DGx3SrGX.cjs.map} +1 -1
- package/dist/{menu-iSx7aWwL.js → menu-15yMmtd2.js} +3 -3
- package/dist/{menu-iSx7aWwL.js.map → menu-15yMmtd2.js.map} +1 -1
- package/dist/{menu-Bn4JuaBS.cjs → menu-DqLKbEXx.cjs} +2 -2
- package/dist/{menu-Bn4JuaBS.cjs.map → menu-DqLKbEXx.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- 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 → option-BaOmCXP8.cjs} +2 -2
- package/dist/{option-DBfFfXNm.cjs.map → option-BaOmCXP8.cjs.map} +1 -1
- package/dist/{option-DMwxI7ML.js → option-DleJMgj-.js} +2 -2
- package/dist/{option-DMwxI7ML.js.map → option-DleJMgj-.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{outlet-KhTjvKCU.js → outlet-I1IE2wTK.js} +2 -2
- package/dist/{outlet-KhTjvKCU.js.map → outlet-I1IE2wTK.js.map} +1 -1
- package/dist/{outlet-CEaS1zUl.cjs → outlet-mNvq9oaA.cjs} +2 -2
- package/dist/{outlet-CEaS1zUl.cjs.map → outlet-mNvq9oaA.cjs.map} +1 -1
- package/dist/{payment-card-form-CVZyDkcJ.cjs → payment-card-form-Cm_-ul4G.cjs} +2 -2
- package/dist/{payment-card-form-CVZyDkcJ.cjs.map → payment-card-form-Cm_-ul4G.cjs.map} +1 -1
- package/dist/{payment-card-form-DK86Lcng.js → payment-card-form-DHmtfa_H.js} +3 -3
- package/dist/{payment-card-form-DK86Lcng.js.map → payment-card-form-DHmtfa_H.js.map} +1 -1
- package/dist/{radio-group-DNmZuvSj.js → radio-group-CSKgiPxL.js} +2 -2
- package/dist/{radio-group-DNmZuvSj.js.map → radio-group-CSKgiPxL.js.map} +1 -1
- package/dist/{radio-group-CxJXNx54.cjs → radio-group-RChAvIUM.cjs} +2 -2
- package/dist/{radio-group-CxJXNx54.cjs.map → radio-group-RChAvIUM.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{select-DRi9CB_N.js → select-CHXdCR-t.js} +12 -12
- package/dist/select-CHXdCR-t.js.map +1 -0
- package/dist/select-Gbo-xjwq.cjs +56 -0
- package/dist/select-Gbo-xjwq.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/sheet-CHFWbG_0.js +210 -0
- package/dist/sheet-CHFWbG_0.js.map +1 -0
- package/dist/sheet-CrlIJTBl.cjs +47 -0
- package/dist/sheet-CrlIJTBl.cjs.map +1 -0
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-A_LoTZ1P.js → slider-njrfDqrk.js} +3 -3
- package/dist/{slider-A_LoTZ1P.js.map → slider-njrfDqrk.js.map} +1 -1
- package/dist/{slider-XRH0sXZN.cjs → slider-rumGp8Bz.cjs} +2 -2
- package/dist/{slider-XRH0sXZN.cjs.map → slider-rumGp8Bz.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-D0l2eAK5.js → spinner-C3JUT7Lx.js} +3 -3
- package/dist/{spinner-D0l2eAK5.js.map → spinner-C3JUT7Lx.js.map} +1 -1
- package/dist/{spinner-CSsb6sKK.cjs → spinner-DVEN9TFJ.cjs} +2 -2
- package/dist/{spinner-CSsb6sKK.cjs.map → spinner-DVEN9TFJ.cjs.map} +1 -1
- package/dist/{surface-D5FgxeIB.js → surface-BpQasVOW.js} +2 -2
- package/dist/{surface-D5FgxeIB.js.map → surface-BpQasVOW.js.map} +1 -1
- package/dist/{surface-DEAdaZUh.cjs → surface-CZayNjQ8.cjs} +2 -2
- package/dist/{surface-DEAdaZUh.cjs.map → surface-CZayNjQ8.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-Cygw_pIl.cjs → table-BzJFv5qf.cjs} +2 -2
- package/dist/{table-Cygw_pIl.cjs.map → table-BzJFv5qf.cjs.map} +1 -1
- package/dist/{table-DC86Vj6Z.js → table-CWRqwAtQ.js} +2 -2
- package/dist/{table-DC86Vj6Z.js.map → table-CWRqwAtQ.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-group-BQomo5q3.cjs → tabs-group-BWmuXV1M.cjs} +2 -2
- package/dist/{tabs-group-BQomo5q3.cjs.map → tabs-group-BWmuXV1M.cjs.map} +1 -1
- package/dist/{tabs-group-7bz0I9uV.js → tabs-group-Dsupy-TK.js} +2 -2
- package/dist/{tabs-group-7bz0I9uV.js.map → tabs-group-Dsupy-TK.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-C2MUeArS.js +43 -0
- package/dist/{tailwind.mixin-B-T2bBPl.js.map → tailwind.mixin-C2MUeArS.js.map} +1 -1
- package/dist/tailwind.mixin-UzdLTEsN.cjs +2 -0
- package/dist/{tailwind.mixin-CduPdozY.cjs.map → tailwind.mixin-UzdLTEsN.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-BMLwCM8y.cjs → teleport.component-CHl-4cYz.cjs} +2 -2
- package/dist/{teleport.component-BMLwCM8y.cjs.map → teleport.component-CHl-4cYz.cjs.map} +1 -1
- package/dist/{teleport.component-gFIqLOrA.js → teleport.component-MPE8PARx.js} +37 -37
- package/dist/{teleport.component-gFIqLOrA.js.map → teleport.component-MPE8PARx.js.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-1aeql05N.js → textarea-DZhAzd2-.js} +2 -2
- package/dist/{textarea-1aeql05N.js.map → textarea-DZhAzd2-.js.map} +1 -1
- package/dist/{textarea-CixoZTFB.cjs → textarea-DtP4CN8S.cjs} +2 -2
- package/dist/{textarea-CixoZTFB.cjs.map → textarea-DtP4CN8S.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-MRgILdtC.js → theme-button-B7v53G35.js} +2 -2
- package/dist/{theme-button-MRgILdtC.js.map → theme-button-B7v53G35.js.map} +1 -1
- package/dist/{theme-button-DocSoRxe.cjs → theme-button-XUBpRyVd.cjs} +2 -2
- package/dist/{theme-button-DocSoRxe.cjs.map → theme-button-XUBpRyVd.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-BFkhNT0D.js → theme.component-4tKB3U5D.js} +2 -2
- package/dist/{theme.component-BFkhNT0D.js.map → theme.component-4tKB3U5D.js.map} +1 -1
- package/dist/{theme.component-BgOdO6iM.cjs → theme.component-Df85q2pE.cjs} +2 -2
- package/dist/{theme.component-BgOdO6iM.cjs.map → theme.component-Df85q2pE.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-BW6MC511.js → timezone-C9zQrHBV.js} +3 -3
- package/dist/{timezone-BW6MC511.js.map → timezone-C9zQrHBV.js.map} +1 -1
- package/dist/{timezone-CvOrPfno.cjs → timezone-FYjFkh4S.cjs} +2 -2
- package/dist/{timezone-CvOrPfno.cjs.map → timezone-FYjFkh4S.cjs.map} +1 -1
- package/dist/{tree-PSCsuzDT.js → tree-BEsQyzsP.js} +2 -2
- package/dist/{tree-PSCsuzDT.js.map → tree-BEsQyzsP.js.map} +1 -1
- package/dist/{tree-DysB6Y8C.cjs → tree-k_BipeY0.cjs} +2 -2
- package/dist/{tree-DysB6Y8C.cjs.map → tree-k_BipeY0.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-C8pWgRuU.cjs → typewriter-B3B8JBRl.cjs} +2 -2
- package/dist/{typewriter-C8pWgRuU.cjs.map → typewriter-B3B8JBRl.cjs.map} +1 -1
- package/dist/{typewriter-DmzUuxvZ.js → typewriter-CjgsbmTc.js} +4 -4
- package/dist/{typewriter-DmzUuxvZ.js.map → typewriter-CjgsbmTc.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-D486o2A3.js → typography-BzTRpIGt.js} +2 -2
- package/dist/{typography-D486o2A3.js.map → typography-BzTRpIGt.js.map} +1 -1
- package/dist/{typography-BfjWKELJ.cjs → typography-Cs7PQACq.cjs} +2 -2
- package/dist/{typography-BfjWKELJ.cjs.map → typography-Cs7PQACq.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/v2.cjs +1 -1
- package/dist/v2.js +1 -1
- package/package.json +1 -1
- package/types/src/select/select.d.ts +1 -0
- package/types/src/sheet/header.d.ts +0 -1
- package/types/src/sheet/sheet.service.d.ts +34 -0
- package/dist/flex-BkuM0UK7.js.map +0 -1
- package/dist/flex-X4APHjaR.cjs.map +0 -1
- package/dist/input-CuvPPYVq.js.map +0 -1
- package/dist/input-DibJxeWY.cjs +0 -51
- package/dist/input-DibJxeWY.cjs.map +0 -1
- package/dist/select-DRi9CB_N.js.map +0 -1
- package/dist/select-SQOIioEy.cjs +0 -56
- package/dist/select-SQOIioEy.cjs.map +0 -1
- package/dist/sheet-BJGyAQko.js +0 -182
- package/dist/sheet-BJGyAQko.js.map +0 -1
- package/dist/sheet-QIcFyBDD.cjs +0 -43
- package/dist/sheet-QIcFyBDD.cjs.map +0 -1
- package/dist/tailwind.mixin-B-T2bBPl.js +0 -43
- package/dist/tailwind.mixin-CduPdozY.cjs +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flex-BkuM0UK7.js","sources":["../src/layout/layout.ts","../src/layout/flex/flex.ts","../src/layout/grid/grid.ts","../src/layout/scroll/scroll.ts","../src/layout/v2/flex.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { property } from 'lit/decorators.js'\n\nexport default class Layout extends TailwindElement() {\n\tstatic styles = [this.styles]\n\tlayout = true\n\t@property({ type: Boolean }) center: boolean | undefined = undefined\n\t@property({ type: String }) padding: string | undefined\n\t@property({ type: String }) margin: string | undefined\n\t@property({ type: String }) width: string | undefined\n\t@property({ type: String }) height: string | undefined\n\t@property({ type: String }) minWidth: string | undefined\n\t@property({ type: String }) minHeight: string | undefined\n\t@property({ type: String }) maxWidth: string | undefined\n\t@property({ type: String }) maxHeight: string | undefined\n\t@property({ type: String }) display:\n\t\t| 'block'\n\t\t| 'inline-block'\n\t\t| 'inline'\n\t\t| 'flex'\n\t\t| 'inline-flex'\n\t\t| 'grid'\n\t\t| 'inline-grid'\n\t\t| 'table'\n\t\t| 'inline-table'\n\t\t| 'flow-root'\n\t\t| 'none'\n\t\t| undefined = undefined\n\t@property({ type: String }) overflow: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) overflowX: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) overflowY: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) position: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' | undefined = undefined\n\t@property({ type: String }) top: string | undefined\n\t@property({ type: String }) right: string | undefined\n\t@property({ type: String }) bottom: string | undefined\n\t@property({ type: String }) left: string | undefined\n\t@property({ type: String }) inset: string | undefined\n\t@property({ type: String }) zIndex: string | undefined\n\n\t@property({ type: String }) border: string | undefined\n\t@property({ type: String }) borderTop: string | undefined\n\t@property({ type: String }) borderRight: string | undefined\n\t@property({ type: String }) borderBottom: string | undefined\n\t@property({ type: String }) borderLeft: string | undefined\n\t@property({ type: String }) borderColor: string | undefined\n\t@property({ type: String }) borderRadius: string | undefined\n\t@property({ type: String }) borderWidth: string | undefined\n\n\t@property({ type: String }) boxShadow: string | undefined\n\t@property({ type: String }) opacity: string | undefined\n\t@property({ type: String }) background: string | undefined\n\t@property({ type: String }) backgroundImage: string | undefined\n\t@property({ type: String }) backgroundPosition: string | undefined\n\t@property({ type: String }) backgroundSize: string | undefined\n\t@property({ type: String }) backgroundRepeat: string | undefined\n\t@property({ type: String }) backgroundAttachment: string | undefined\n\t@property({ type: String }) backgroundColor: string | undefined\n\t@property({ type: String }) backgroundClip: string | undefined\n\t@property({ type: String }) backgroundOrigin: string | undefined\n\t@property({ type: String }) backgroundBlendMode: string | undefined\n\t@property({ type: String }) filter: string | undefined\n\t@property({ type: String }) backdropFilter: string | undefined\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.style.setProperty('padding', this.padding ?? '')\n\t\tthis.style.setProperty('margin', this.margin ?? '')\n\t\tthis.style.setProperty('width', this.width ?? '')\n\t\tthis.style.setProperty('height', this.height ?? '')\n\t\tthis.style.setProperty('min-width', this.minWidth ?? '')\n\t\tthis.style.setProperty('min-height', this.minHeight ?? '')\n\t\tthis.style.setProperty('max-width', this.maxWidth ?? '')\n\t\tthis.style.setProperty('max-height', this.maxHeight ?? '')\n\t\tthis.style.setProperty('display', this.display ?? '')\n\t\tthis.style.setProperty('overflow', this.overflow ?? '')\n\t\tthis.style.setProperty('overflow-x', this.overflowX ?? '')\n\t\tthis.style.setProperty('overflow-y', this.overflowY ?? '')\n\t\tthis.style.setProperty('position', this.position ?? '')\n\t\tthis.style.setProperty('top', this.top ?? '')\n\t\tthis.style.setProperty('right', this.right ?? '')\n\t\tthis.style.setProperty('bottom', this.bottom ?? '')\n\t\tthis.style.setProperty('left', this.left ?? '')\n\t\tthis.style.setProperty('inset', this.inset ?? '')\n\t\tthis.style.setProperty('z-index', this.zIndex ?? '')\n\t\tthis.style.setProperty('border', this.border ?? '')\n\t\tthis.style.setProperty('border-top', this.borderTop ?? '')\n\t\tthis.style.setProperty('border-right', this.borderRight ?? '')\n\t\tthis.style.setProperty('border-bottom', this.borderBottom ?? '')\n\t\tthis.style.setProperty('border-left', this.borderLeft ?? '')\n\t\tthis.style.setProperty('border-color', this.borderColor ?? '')\n\t\tthis.style.setProperty('border-radius', this.borderRadius ?? '')\n\t\tthis.style.setProperty('border-width', this.borderWidth ?? '')\n\t\tthis.style.setProperty('box-shadow', this.boxShadow ?? '')\n\t\tthis.style.setProperty('opacity', this.opacity ?? '')\n\t\tthis.style.setProperty('background', this.background ?? '')\n\t\tthis.style.setProperty('background-image', this.backgroundImage ?? '')\n\t\tthis.style.setProperty('background-position', this.backgroundPosition ?? '')\n\t\tthis.style.setProperty('background-size', this.backgroundSize ?? '')\n\t\tthis.style.setProperty('background-repeat', this.backgroundRepeat ?? '')\n\t\tthis.style.setProperty('background-attachment', this.backgroundAttachment ?? '')\n\t\tthis.style.setProperty('background-color', this.backgroundColor ?? '')\n\t\tthis.style.setProperty('background-clip', this.backgroundClip ?? '')\n\t\tthis.style.setProperty('background-origin', this.backgroundOrigin ?? '')\n\t\tthis.style.setProperty('background-blend-mode', this.backgroundBlendMode ?? '')\n\t\tthis.style.setProperty('filter', this.filter ?? '')\n\t\tthis.style.setProperty('backdrop-filter', this.backdropFilter ?? '')\n\t\tif (this.center) {\n\t\t\tthis.style.setProperty('margin-left', 'auto')\n\t\t\tthis.style.setProperty('margin-right', 'auto')\n\t\t}\n\t}\n}\n","import { html, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { styleMap } from 'lit/directives/style-map.js'\nimport Layout from '../layout'\nimport style from './flex.scss?inline'\n@customElement('schmancy-flex')\nexport class SchmancyFlex extends Layout {\n\tstatic styles = [Layout.styles, unsafeCSS(style)]\n\tlayout = true\n\t@property({ type: String, reflect: true }) flow: 'row' | 'row-reverse' | 'col' | 'col-reverse' = 'col'\n\t@property({ type: String, reflect: true }) wrap: 'wrap' | 'nowrap' | 'wrap-reverse' = 'wrap'\n\t@property({ type: String, reflect: true }) align: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'start'\n\t@property({ type: String, reflect: true }) justify: 'start' | 'center' | 'end' | 'stretch' | 'between' = 'start'\n\t@property({ type: String, reflect: true }) gap: 'none' | 'sm' | 'md' | 'lg' = 'none'\n\n\trender() {\n\t\tconst classes = {\n\t\t\tflex: true,\n\t\t\t// Direction\n\t\t\t'flex-col': this.flow === 'row',\n\t\t\t'flex-col-reverse': this.flow === 'row-reverse',\n\t\t\t'flex-row': this.flow === 'col',\n\t\t\t'flex-row-reverse': this.flow === 'col-reverse',\n\t\t\t// Wrap\n\t\t\t'flex-wrap': this.wrap === 'wrap',\n\t\t\t'flex-wrap-reverse': this.wrap === 'wrap-reverse',\n\t\t\t'flex-nowrap': this.wrap === 'nowrap',\n\t\t\t// Align\n\t\t\t'items-start': this.align === 'start',\n\t\t\t'items-center': this.align === 'center',\n\t\t\t'items-end': this.align === 'end',\n\t\t\t'items-stretch': this.align === 'stretch',\n\t\t\t'justify-baseline': this.align === 'baseline',\n\n\t\t\t// Justify\n\t\t\t'justify-center': this.justify === 'center',\n\t\t\t'justify-end': this.justify === 'end',\n\t\t\t'justify-start': this.justify === 'start',\n\t\t\t'justify-stretch': this.justify === 'stretch',\n\t\t\t'justify-between': this.justify === 'between',\n\n\t\t\t// Gap\n\t\t\t'gap-0': this.gap === 'none',\n\t\t\t'gap-2': this.gap === 'sm',\n\t\t\t'gap-4': this.gap === 'md',\n\t\t\t'gap-8': this.gap === 'lg',\n\t\t}\n\n\t\tconst styles = {}\n\t\treturn html`\n\t\t\t<section class=${classMap(classes)} style=${styleMap(styles)}>\n\t\t\t\t<slot></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-flex': SchmancyFlex\n\t}\n}\n","import { html, unsafeCSS } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, startWith, takeUntil } from 'rxjs'\nimport Layout from '../layout'\nimport style from './grid.scss?inline'\n\n@customElement('schmancy-grid')\nexport class SchmancyGrid extends Layout {\n\tstatic styles = [Layout.styles, unsafeCSS(style)]\n\tlayout = true\n\t@property({ type: String }) flow: 'row' | 'col' | 'dense' | 'row-dense' | 'col-dense' = 'row'\n\t@property({ type: String }) align: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'stretch'\n\t@property({ type: String }) justify: 'start' | 'center' | 'end' | 'stretch' = 'stretch'\n\t@property({ type: String }) content: 'start' | 'center' | 'end' | 'stretch' | 'around' | 'evenly' | 'between' =\n\t\t'stretch'\n\t@property({ type: String }) gap: 'none' | 'xs' | 'sm' | 'md' | 'lg' = 'none'\n\n\t@property({ type: String }) cols?: string\n\t@property({ type: String }) rows?: string\n\t@property({ type: Object }) rcols?: {\n\t\txs?: string | number\n\t\tsm?: string | number\n\t\tmd?: string | number\n\t\tlg?: string | number\n\t\txl?: string | number\n\t\t'2xl'?: string | number\n\t}\n\n\t@property({ type: Boolean }) wrap = false\n\n\t@queryAssignedElements() assignedElements!: HTMLElement[]\n\n\tfirstUpdated() {\n\t\tif (this.rcols)\n\t\t\tfromEvent<CustomEvent>(window, 'resize')\n\t\t\t\t.pipe(\n\t\t\t\t\tmap(event => event.target as Window),\n\t\t\t\t\tstartWith(1),\n\t\t\t\t\tmap(() => (this.clientWidth ? this.clientWidth : window.innerWidth)),\n\t\t\t\t\tdistinctUntilChanged(),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\tdebounceTime(10),\n\t\t\t\t\tmap(w => {\n\t\t\t\t\t\tlet cols\n\t\t\t\t\t\tif (this.rcols?.['2xl'] && w >= 1536) cols = this.rcols?.['2xl']\n\t\t\t\t\t\telse if (this.rcols?.xl && w >= 1280) cols = this.rcols?.xl\n\t\t\t\t\t\telse if (this.rcols?.lg && w >= 1024) cols = this.rcols?.lg\n\t\t\t\t\t\telse if (this.rcols?.md && w >= 768) cols = this.rcols?.md\n\t\t\t\t\t\telse if (this.rcols?.sm && w >= 640) cols = this.rcols?.sm\n\t\t\t\t\t\telse if (this.rcols?.xs && w < 640) cols = this.rcols?.xs\n\t\t\t\t\t\treturn cols\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.subscribe(cols => {\n\t\t\t\t\tthis.cols = cols\n\t\t\t\t})\n\t}\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'h-full': true,\n\t\t\t'grid flex-1': true,\n\t\t\t// flow classes: https://tailwindcss.com/docs/grid-auto-flow\n\t\t\t'grid-flow-row auto-rows-max': this.flow === 'row',\n\t\t\t'grid-flow-col auto-cols-max': this.flow === 'col',\n\t\t\t'grid-flow-row-dense': this.flow === 'row-dense',\n\t\t\t'grid-flow-col-dense': this.flow === 'col-dense',\n\t\t\t'grid-flow-dense': this.flow === 'dense',\n\n\t\t\t'justify-center': this.content === 'center',\n\t\t\t'justify-end': this.content === 'end',\n\t\t\t'justify-start': this.content === 'start',\n\t\t\t'justify-stretch': this.content === 'stretch',\n\t\t\t'justify-between': this.content === 'between',\n\t\t\t'justify-around': this.content === 'around',\n\t\t\t'justify-evenly': this.content === 'evenly',\n\n\t\t\t'justify-items-center': this.justify === 'center',\n\t\t\t'justify-items-end': this.justify === 'end',\n\t\t\t'justify-items-start': this.justify === 'start',\n\t\t\t'justify-items-stretch': this.justify === 'stretch',\n\t\t\t'items-center': this.align === 'center',\n\t\t\t'items-end': this.align === 'end',\n\t\t\t'items-start': this.align === 'start',\n\t\t\t'items-stretch': this.align === 'stretch',\n\t\t\t'items-baseline': this.align === 'baseline',\n\t\t\t'gap-0': this.gap === 'none',\n\t\t\t'gap-1': this.gap === 'xs',\n\t\t\t'gap-2': this.gap === 'sm',\n\t\t\t'gap-4': this.gap === 'md',\n\t\t\t'gap-8': this.gap === 'lg',\n\t\t\t'flex-nowrap': this.wrap,\n\t\t\t'flex-wrap': !this.wrap,\n\t\t}\n\t\tconst style = {\n\t\t\tgridTemplateRows: this.rows ? this.rows : undefined,\n\t\t\tgridTemplateColumns: this.cols ? this.cols : undefined,\n\t\t}\n\t\treturn html`\n\t\t\t<section class=\"${this.classMap(classes)}\" style=${this.styleMap(style)}>\n\t\t\t\t<slot> </slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-grid': SchmancyGrid\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-scroll')\nexport class SchmancyScroll extends TailwindElement(css`\n\t:host {\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\toverflow: hidden;\n\t\tbox-sizing: border-box; /* Ensures proper sizing */\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tinset: 0px;\n\t}\n\t.scrollbar-hide {\n\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\tscrollbar-width: none; /* Firefox */\n\t}\n\t.scrollbar-hide::-webkit-scrollbar {\n\t\tdisplay: none; /* Chrome, Safari, and Opera */\n\t}\n`) {\n\t/**\n\t * Determines whether the scrollbar is hidden.\n\t *\n\t * When `hide` is true, the inner scrollable div receives the `scrollbar-hide` class,\n\t * which hides scrollbars in supported browsers.\n\t *\n\t * @attr hide\n\t * @example <schmancy-scroll hide></schmancy-scroll>\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic hide = false\n\n\trender() {\n\t\t// The classes are dynamically assigned based on the `hide` property.\n\t\tconst classes = {\n\t\t\t'h-full w-full inset-0 overflow-x-scroll overflow-y-scroll scroll-smooth overscroll-contain': true,\n\t\t\t'scrollbar-hide': this.hide,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=\"relative inset-0 h-full w-full overscroll-none\">\n\t\t\t\t<div class=${this.classMap(classes)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-scroll': SchmancyScroll\n\t}\n}\n","import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport Layout from '../layout'\n\n/**\n * SchmancyFlex exposes a flex container with all the Tailwind CSS 4 options:\n *\n * - **Display**: By default uses `flex` but can be set to inline using the `inline` property.\n * - **Flow**: Accepts 'row', 'row-reverse', 'col', 'col-reverse' as well as grid‐like dense variants:\n * - Dense variants (`row-dense`, `col-dense`) force wrapping.\n * - **Wrap**: 'wrap', 'nowrap', or 'wrap-reverse'\n * - **Align Items**: 'start', 'center', 'end', 'stretch', or 'baseline'\n * - **Justify Content**: 'start', 'center', 'end', 'between', 'around', or 'evenly'\n * - **Align Content** (for multi-line flex containers): 'start', 'center', 'end', 'between', 'around', or 'evenly'\n * - **Gap**: Supports Tailwind’s spacing scale (e.g. 'none', '0', '1', '2', …, '64')\n */\n@customElement('sch-flex')\nexport class SchmancyFlexV2 extends Layout {\n\tstatic styles = [\n\t\tLayout.styles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t`,\n\t]\n\t// If true, the container will use inline-flex instead of flex.\n\t@property({ type: Boolean, reflect: true })\n\tinline = false\n\n\t/**\n\t * Flow property that determines the flex direction.\n\t * Allowed values:\n\t * - Standard: 'row', 'row-reverse', 'col', 'col-reverse'\n\t * - Dense variants: 'row-dense', 'col-dense' (dense implies wrapping)\n\t */\n\t@property({ type: String, reflect: true })\n\tflow: 'row' | 'row-reverse' | 'col' | 'col-reverse' | 'row-dense' | 'col-dense' = 'row'\n\n\t/**\n\t * Flex-wrap options:\n\t * - 'wrap', 'nowrap', or 'wrap-reverse'\n\t */\n\t@property({ type: String, reflect: true })\n\twrap: 'wrap' | 'nowrap' | 'wrap-reverse' = 'wrap'\n\n\t/**\n\t * Align-items (vertical alignment of flex items):\n\t * - 'start', 'center', 'end', 'stretch', or 'baseline'\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'stretch'\n\n\t/**\n\t * Justify-content (horizontal distribution):\n\t * - 'start', 'center', 'end', 'between', 'around', or 'evenly'\n\t */\n\t@property({ type: String, reflect: true })\n\tjustify: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly' = 'start'\n\n\t/**\n\t * Align-content (spacing between rows when wrapping):\n\t * - 'start', 'center', 'end', 'between', 'around', or 'evenly'\n\t */\n\t@property({ type: String, reflect: true })\n\tcontent?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'\n\n\t/**\n\t * Gap between flex items.\n\t * Options (based on Tailwind CSS 4 spacing scale):\n\t * - 'none', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '12', '16', '20', '24', '32', '40', '48', '56', or '64'\n\t */\n\t@property({ type: String, reflect: true })\n\tgap:\n\t\t| 'none'\n\t\t| '0'\n\t\t| '1'\n\t\t| '2'\n\t\t| '3'\n\t\t| '4'\n\t\t| '5'\n\t\t| '6'\n\t\t| '7'\n\t\t| '8'\n\t\t| '9'\n\t\t| '10'\n\t\t| '12'\n\t\t| '16'\n\t\t| '20'\n\t\t| '24'\n\t\t| '32'\n\t\t| '40'\n\t\t| '48'\n\t\t| '56'\n\t\t| '64' = 'none'\n\n\trender() {\n\t\t// Determine whether to use inline-flex or flex.\n\t\tconst baseDisplay = this.inline ? 'inline-flex' : 'flex'\n\n\t\t// Map the flow property to a flex-direction class.\n\t\t// (Dense variants use the same class as their standard counterparts.)\n\t\tlet directionClass = ''\n\t\tswitch (this.flow) {\n\t\t\tcase 'row':\n\t\t\tcase 'row-dense':\n\t\t\t\tdirectionClass = 'flex-row'\n\t\t\t\tbreak\n\t\t\tcase 'row-reverse':\n\t\t\t\tdirectionClass = 'flex-row-reverse'\n\t\t\t\tbreak\n\t\t\tcase 'col':\n\t\t\tcase 'col-dense':\n\t\t\t\tdirectionClass = 'flex-col'\n\t\t\t\tbreak\n\t\t\tcase 'col-reverse':\n\t\t\t\tdirectionClass = 'flex-col-reverse'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tdirectionClass = 'flex-row'\n\t\t}\n\n\t\t// Dense variants force wrapping regardless of the wrap property.\n\t\tconst isDense = this.flow === 'row-dense' || this.flow === 'col-dense'\n\t\tconst effectiveWrap = isDense ? 'wrap' : this.wrap\n\n\t\tlet wrapClass = ''\n\t\tswitch (effectiveWrap) {\n\t\t\tcase 'wrap':\n\t\t\t\twrapClass = 'flex-wrap'\n\t\t\t\tbreak\n\t\t\tcase 'nowrap':\n\t\t\t\twrapClass = 'flex-nowrap'\n\t\t\t\tbreak\n\t\t\tcase 'wrap-reverse':\n\t\t\t\twrapClass = 'flex-wrap-reverse'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\twrapClass = 'flex-wrap'\n\t\t}\n\n\t\t// Map align-items.\n\t\tlet alignClass = ''\n\t\tswitch (this.align) {\n\t\t\tcase 'start':\n\t\t\t\talignClass = 'items-start'\n\t\t\t\tbreak\n\t\t\tcase 'center':\n\t\t\t\talignClass = 'items-center'\n\t\t\t\tbreak\n\t\t\tcase 'end':\n\t\t\t\talignClass = 'items-end'\n\t\t\t\tbreak\n\t\t\tcase 'stretch':\n\t\t\t\talignClass = 'items-stretch'\n\t\t\t\tbreak\n\t\t\tcase 'baseline':\n\t\t\t\talignClass = 'items-baseline'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\talignClass = 'items-stretch'\n\t\t}\n\n\t\t// Map justify-content.\n\t\tlet justifyClass = ''\n\t\tswitch (this.justify) {\n\t\t\tcase 'start':\n\t\t\t\tjustifyClass = 'justify-start'\n\t\t\t\tbreak\n\t\t\tcase 'center':\n\t\t\t\tjustifyClass = 'justify-center'\n\t\t\t\tbreak\n\t\t\tcase 'end':\n\t\t\t\tjustifyClass = 'justify-end'\n\t\t\t\tbreak\n\t\t\tcase 'between':\n\t\t\t\tjustifyClass = 'justify-between'\n\t\t\t\tbreak\n\t\t\tcase 'around':\n\t\t\t\tjustifyClass = 'justify-around'\n\t\t\t\tbreak\n\t\t\tcase 'evenly':\n\t\t\t\tjustifyClass = 'justify-evenly'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tjustifyClass = 'justify-start'\n\t\t}\n\n\t\t// Map align-content (if provided).\n\t\tlet contentClass = ''\n\t\tif (this.content) {\n\t\t\tswitch (this.content) {\n\t\t\t\tcase 'start':\n\t\t\t\t\tcontentClass = 'content-start'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'center':\n\t\t\t\t\tcontentClass = 'content-center'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'end':\n\t\t\t\t\tcontentClass = 'content-end'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'between':\n\t\t\t\t\tcontentClass = 'content-between'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'around':\n\t\t\t\t\tcontentClass = 'content-around'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'evenly':\n\t\t\t\t\tcontentClass = 'content-evenly'\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Map gap value.\n\t\tconst gapClass = this.gap === 'none' ? 'gap-0' : `gap-${this.gap}`\n\n\t\t// Build the complete list of classes.\n\t\tconst classes = [baseDisplay, directionClass, wrapClass, alignClass, justifyClass, contentClass, gapClass]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ')\n\n\t\treturn html`\n\t\t\t<section class=${classes}>\n\t\t\t\t<slot></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-flex': SchmancyFlexV2\n\t}\n}\n"],"names":["Layout","TailwindElement","constructor","super","arguments","this","layout","center","display","overflow","overflowX","overflowY","position","connectedCallback","style","setProperty","padding","margin","width","height","minWidth","minHeight","maxWidth","maxHeight","top","right","bottom","left","inset","zIndex","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderRadius","borderWidth","boxShadow","opacity","background","backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","backgroundAttachment","backgroundColor","backgroundClip","backgroundOrigin","backgroundBlendMode","filter","backdropFilter","__decorateClass","styles","_u","property","type","Boolean","prototype","String","SchmancyFlex","flow","wrap","align","justify","gap","render","classes","flex","html","classMap","styleMap","unsafeCSS","reflect","customElement","SchmancyGrid","content","rcols","fromEvent","window","pipe","map","event","target","startWith","clientWidth","innerWidth","distinctUntilChanged","takeUntil","disconnecting","debounceTime","w","cols","xl","lg","md","sm","xs","subscribe","gridTemplateRows","rows","gridTemplateColumns","Object","queryAssignedElements","SchmancyScroll","css","hide","SchmancyFlexV2","inline","baseDisplay","directionClass","wrapClass","alignClass","justifyClass","contentClass","join"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flex-X4APHjaR.cjs","sources":["../src/layout/layout.ts","../src/layout/flex/flex.ts","../src/layout/grid/grid.ts","../src/layout/scroll/scroll.ts","../src/layout/v2/flex.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { property } from 'lit/decorators.js'\n\nexport default class Layout extends TailwindElement() {\n\tstatic styles = [this.styles]\n\tlayout = true\n\t@property({ type: Boolean }) center: boolean | undefined = undefined\n\t@property({ type: String }) padding: string | undefined\n\t@property({ type: String }) margin: string | undefined\n\t@property({ type: String }) width: string | undefined\n\t@property({ type: String }) height: string | undefined\n\t@property({ type: String }) minWidth: string | undefined\n\t@property({ type: String }) minHeight: string | undefined\n\t@property({ type: String }) maxWidth: string | undefined\n\t@property({ type: String }) maxHeight: string | undefined\n\t@property({ type: String }) display:\n\t\t| 'block'\n\t\t| 'inline-block'\n\t\t| 'inline'\n\t\t| 'flex'\n\t\t| 'inline-flex'\n\t\t| 'grid'\n\t\t| 'inline-grid'\n\t\t| 'table'\n\t\t| 'inline-table'\n\t\t| 'flow-root'\n\t\t| 'none'\n\t\t| undefined = undefined\n\t@property({ type: String }) overflow: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) overflowX: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) overflowY: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) position: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' | undefined = undefined\n\t@property({ type: String }) top: string | undefined\n\t@property({ type: String }) right: string | undefined\n\t@property({ type: String }) bottom: string | undefined\n\t@property({ type: String }) left: string | undefined\n\t@property({ type: String }) inset: string | undefined\n\t@property({ type: String }) zIndex: string | undefined\n\n\t@property({ type: String }) border: string | undefined\n\t@property({ type: String }) borderTop: string | undefined\n\t@property({ type: String }) borderRight: string | undefined\n\t@property({ type: String }) borderBottom: string | undefined\n\t@property({ type: String }) borderLeft: string | undefined\n\t@property({ type: String }) borderColor: string | undefined\n\t@property({ type: String }) borderRadius: string | undefined\n\t@property({ type: String }) borderWidth: string | undefined\n\n\t@property({ type: String }) boxShadow: string | undefined\n\t@property({ type: String }) opacity: string | undefined\n\t@property({ type: String }) background: string | undefined\n\t@property({ type: String }) backgroundImage: string | undefined\n\t@property({ type: String }) backgroundPosition: string | undefined\n\t@property({ type: String }) backgroundSize: string | undefined\n\t@property({ type: String }) backgroundRepeat: string | undefined\n\t@property({ type: String }) backgroundAttachment: string | undefined\n\t@property({ type: String }) backgroundColor: string | undefined\n\t@property({ type: String }) backgroundClip: string | undefined\n\t@property({ type: String }) backgroundOrigin: string | undefined\n\t@property({ type: String }) backgroundBlendMode: string | undefined\n\t@property({ type: String }) filter: string | undefined\n\t@property({ type: String }) backdropFilter: string | undefined\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.style.setProperty('padding', this.padding ?? '')\n\t\tthis.style.setProperty('margin', this.margin ?? '')\n\t\tthis.style.setProperty('width', this.width ?? '')\n\t\tthis.style.setProperty('height', this.height ?? '')\n\t\tthis.style.setProperty('min-width', this.minWidth ?? '')\n\t\tthis.style.setProperty('min-height', this.minHeight ?? '')\n\t\tthis.style.setProperty('max-width', this.maxWidth ?? '')\n\t\tthis.style.setProperty('max-height', this.maxHeight ?? '')\n\t\tthis.style.setProperty('display', this.display ?? '')\n\t\tthis.style.setProperty('overflow', this.overflow ?? '')\n\t\tthis.style.setProperty('overflow-x', this.overflowX ?? '')\n\t\tthis.style.setProperty('overflow-y', this.overflowY ?? '')\n\t\tthis.style.setProperty('position', this.position ?? '')\n\t\tthis.style.setProperty('top', this.top ?? '')\n\t\tthis.style.setProperty('right', this.right ?? '')\n\t\tthis.style.setProperty('bottom', this.bottom ?? '')\n\t\tthis.style.setProperty('left', this.left ?? '')\n\t\tthis.style.setProperty('inset', this.inset ?? '')\n\t\tthis.style.setProperty('z-index', this.zIndex ?? '')\n\t\tthis.style.setProperty('border', this.border ?? '')\n\t\tthis.style.setProperty('border-top', this.borderTop ?? '')\n\t\tthis.style.setProperty('border-right', this.borderRight ?? '')\n\t\tthis.style.setProperty('border-bottom', this.borderBottom ?? '')\n\t\tthis.style.setProperty('border-left', this.borderLeft ?? '')\n\t\tthis.style.setProperty('border-color', this.borderColor ?? '')\n\t\tthis.style.setProperty('border-radius', this.borderRadius ?? '')\n\t\tthis.style.setProperty('border-width', this.borderWidth ?? '')\n\t\tthis.style.setProperty('box-shadow', this.boxShadow ?? '')\n\t\tthis.style.setProperty('opacity', this.opacity ?? '')\n\t\tthis.style.setProperty('background', this.background ?? '')\n\t\tthis.style.setProperty('background-image', this.backgroundImage ?? '')\n\t\tthis.style.setProperty('background-position', this.backgroundPosition ?? '')\n\t\tthis.style.setProperty('background-size', this.backgroundSize ?? '')\n\t\tthis.style.setProperty('background-repeat', this.backgroundRepeat ?? '')\n\t\tthis.style.setProperty('background-attachment', this.backgroundAttachment ?? '')\n\t\tthis.style.setProperty('background-color', this.backgroundColor ?? '')\n\t\tthis.style.setProperty('background-clip', this.backgroundClip ?? '')\n\t\tthis.style.setProperty('background-origin', this.backgroundOrigin ?? '')\n\t\tthis.style.setProperty('background-blend-mode', this.backgroundBlendMode ?? '')\n\t\tthis.style.setProperty('filter', this.filter ?? '')\n\t\tthis.style.setProperty('backdrop-filter', this.backdropFilter ?? '')\n\t\tif (this.center) {\n\t\t\tthis.style.setProperty('margin-left', 'auto')\n\t\t\tthis.style.setProperty('margin-right', 'auto')\n\t\t}\n\t}\n}\n","import { html, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { styleMap } from 'lit/directives/style-map.js'\nimport Layout from '../layout'\nimport style from './flex.scss?inline'\n@customElement('schmancy-flex')\nexport class SchmancyFlex extends Layout {\n\tstatic styles = [Layout.styles, unsafeCSS(style)]\n\tlayout = true\n\t@property({ type: String, reflect: true }) flow: 'row' | 'row-reverse' | 'col' | 'col-reverse' = 'col'\n\t@property({ type: String, reflect: true }) wrap: 'wrap' | 'nowrap' | 'wrap-reverse' = 'wrap'\n\t@property({ type: String, reflect: true }) align: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'start'\n\t@property({ type: String, reflect: true }) justify: 'start' | 'center' | 'end' | 'stretch' | 'between' = 'start'\n\t@property({ type: String, reflect: true }) gap: 'none' | 'sm' | 'md' | 'lg' = 'none'\n\n\trender() {\n\t\tconst classes = {\n\t\t\tflex: true,\n\t\t\t// Direction\n\t\t\t'flex-col': this.flow === 'row',\n\t\t\t'flex-col-reverse': this.flow === 'row-reverse',\n\t\t\t'flex-row': this.flow === 'col',\n\t\t\t'flex-row-reverse': this.flow === 'col-reverse',\n\t\t\t// Wrap\n\t\t\t'flex-wrap': this.wrap === 'wrap',\n\t\t\t'flex-wrap-reverse': this.wrap === 'wrap-reverse',\n\t\t\t'flex-nowrap': this.wrap === 'nowrap',\n\t\t\t// Align\n\t\t\t'items-start': this.align === 'start',\n\t\t\t'items-center': this.align === 'center',\n\t\t\t'items-end': this.align === 'end',\n\t\t\t'items-stretch': this.align === 'stretch',\n\t\t\t'justify-baseline': this.align === 'baseline',\n\n\t\t\t// Justify\n\t\t\t'justify-center': this.justify === 'center',\n\t\t\t'justify-end': this.justify === 'end',\n\t\t\t'justify-start': this.justify === 'start',\n\t\t\t'justify-stretch': this.justify === 'stretch',\n\t\t\t'justify-between': this.justify === 'between',\n\n\t\t\t// Gap\n\t\t\t'gap-0': this.gap === 'none',\n\t\t\t'gap-2': this.gap === 'sm',\n\t\t\t'gap-4': this.gap === 'md',\n\t\t\t'gap-8': this.gap === 'lg',\n\t\t}\n\n\t\tconst styles = {}\n\t\treturn html`\n\t\t\t<section class=${classMap(classes)} style=${styleMap(styles)}>\n\t\t\t\t<slot></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-flex': SchmancyFlex\n\t}\n}\n","import { html, unsafeCSS } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, startWith, takeUntil } from 'rxjs'\nimport Layout from '../layout'\nimport style from './grid.scss?inline'\n\n@customElement('schmancy-grid')\nexport class SchmancyGrid extends Layout {\n\tstatic styles = [Layout.styles, unsafeCSS(style)]\n\tlayout = true\n\t@property({ type: String }) flow: 'row' | 'col' | 'dense' | 'row-dense' | 'col-dense' = 'row'\n\t@property({ type: String }) align: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'stretch'\n\t@property({ type: String }) justify: 'start' | 'center' | 'end' | 'stretch' = 'stretch'\n\t@property({ type: String }) content: 'start' | 'center' | 'end' | 'stretch' | 'around' | 'evenly' | 'between' =\n\t\t'stretch'\n\t@property({ type: String }) gap: 'none' | 'xs' | 'sm' | 'md' | 'lg' = 'none'\n\n\t@property({ type: String }) cols?: string\n\t@property({ type: String }) rows?: string\n\t@property({ type: Object }) rcols?: {\n\t\txs?: string | number\n\t\tsm?: string | number\n\t\tmd?: string | number\n\t\tlg?: string | number\n\t\txl?: string | number\n\t\t'2xl'?: string | number\n\t}\n\n\t@property({ type: Boolean }) wrap = false\n\n\t@queryAssignedElements() assignedElements!: HTMLElement[]\n\n\tfirstUpdated() {\n\t\tif (this.rcols)\n\t\t\tfromEvent<CustomEvent>(window, 'resize')\n\t\t\t\t.pipe(\n\t\t\t\t\tmap(event => event.target as Window),\n\t\t\t\t\tstartWith(1),\n\t\t\t\t\tmap(() => (this.clientWidth ? this.clientWidth : window.innerWidth)),\n\t\t\t\t\tdistinctUntilChanged(),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\tdebounceTime(10),\n\t\t\t\t\tmap(w => {\n\t\t\t\t\t\tlet cols\n\t\t\t\t\t\tif (this.rcols?.['2xl'] && w >= 1536) cols = this.rcols?.['2xl']\n\t\t\t\t\t\telse if (this.rcols?.xl && w >= 1280) cols = this.rcols?.xl\n\t\t\t\t\t\telse if (this.rcols?.lg && w >= 1024) cols = this.rcols?.lg\n\t\t\t\t\t\telse if (this.rcols?.md && w >= 768) cols = this.rcols?.md\n\t\t\t\t\t\telse if (this.rcols?.sm && w >= 640) cols = this.rcols?.sm\n\t\t\t\t\t\telse if (this.rcols?.xs && w < 640) cols = this.rcols?.xs\n\t\t\t\t\t\treturn cols\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.subscribe(cols => {\n\t\t\t\t\tthis.cols = cols\n\t\t\t\t})\n\t}\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'h-full': true,\n\t\t\t'grid flex-1': true,\n\t\t\t// flow classes: https://tailwindcss.com/docs/grid-auto-flow\n\t\t\t'grid-flow-row auto-rows-max': this.flow === 'row',\n\t\t\t'grid-flow-col auto-cols-max': this.flow === 'col',\n\t\t\t'grid-flow-row-dense': this.flow === 'row-dense',\n\t\t\t'grid-flow-col-dense': this.flow === 'col-dense',\n\t\t\t'grid-flow-dense': this.flow === 'dense',\n\n\t\t\t'justify-center': this.content === 'center',\n\t\t\t'justify-end': this.content === 'end',\n\t\t\t'justify-start': this.content === 'start',\n\t\t\t'justify-stretch': this.content === 'stretch',\n\t\t\t'justify-between': this.content === 'between',\n\t\t\t'justify-around': this.content === 'around',\n\t\t\t'justify-evenly': this.content === 'evenly',\n\n\t\t\t'justify-items-center': this.justify === 'center',\n\t\t\t'justify-items-end': this.justify === 'end',\n\t\t\t'justify-items-start': this.justify === 'start',\n\t\t\t'justify-items-stretch': this.justify === 'stretch',\n\t\t\t'items-center': this.align === 'center',\n\t\t\t'items-end': this.align === 'end',\n\t\t\t'items-start': this.align === 'start',\n\t\t\t'items-stretch': this.align === 'stretch',\n\t\t\t'items-baseline': this.align === 'baseline',\n\t\t\t'gap-0': this.gap === 'none',\n\t\t\t'gap-1': this.gap === 'xs',\n\t\t\t'gap-2': this.gap === 'sm',\n\t\t\t'gap-4': this.gap === 'md',\n\t\t\t'gap-8': this.gap === 'lg',\n\t\t\t'flex-nowrap': this.wrap,\n\t\t\t'flex-wrap': !this.wrap,\n\t\t}\n\t\tconst style = {\n\t\t\tgridTemplateRows: this.rows ? this.rows : undefined,\n\t\t\tgridTemplateColumns: this.cols ? this.cols : undefined,\n\t\t}\n\t\treturn html`\n\t\t\t<section class=\"${this.classMap(classes)}\" style=${this.styleMap(style)}>\n\t\t\t\t<slot> </slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-grid': SchmancyGrid\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-scroll')\nexport class SchmancyScroll extends TailwindElement(css`\n\t:host {\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\toverflow: hidden;\n\t\tbox-sizing: border-box; /* Ensures proper sizing */\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tinset: 0px;\n\t}\n\t.scrollbar-hide {\n\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\tscrollbar-width: none; /* Firefox */\n\t}\n\t.scrollbar-hide::-webkit-scrollbar {\n\t\tdisplay: none; /* Chrome, Safari, and Opera */\n\t}\n`) {\n\t/**\n\t * Determines whether the scrollbar is hidden.\n\t *\n\t * When `hide` is true, the inner scrollable div receives the `scrollbar-hide` class,\n\t * which hides scrollbars in supported browsers.\n\t *\n\t * @attr hide\n\t * @example <schmancy-scroll hide></schmancy-scroll>\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic hide = false\n\n\trender() {\n\t\t// The classes are dynamically assigned based on the `hide` property.\n\t\tconst classes = {\n\t\t\t'h-full w-full inset-0 overflow-x-scroll overflow-y-scroll scroll-smooth overscroll-contain': true,\n\t\t\t'scrollbar-hide': this.hide,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=\"relative inset-0 h-full w-full overscroll-none\">\n\t\t\t\t<div class=${this.classMap(classes)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-scroll': SchmancyScroll\n\t}\n}\n","import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport Layout from '../layout'\n\n/**\n * SchmancyFlex exposes a flex container with all the Tailwind CSS 4 options:\n *\n * - **Display**: By default uses `flex` but can be set to inline using the `inline` property.\n * - **Flow**: Accepts 'row', 'row-reverse', 'col', 'col-reverse' as well as grid‐like dense variants:\n * - Dense variants (`row-dense`, `col-dense`) force wrapping.\n * - **Wrap**: 'wrap', 'nowrap', or 'wrap-reverse'\n * - **Align Items**: 'start', 'center', 'end', 'stretch', or 'baseline'\n * - **Justify Content**: 'start', 'center', 'end', 'between', 'around', or 'evenly'\n * - **Align Content** (for multi-line flex containers): 'start', 'center', 'end', 'between', 'around', or 'evenly'\n * - **Gap**: Supports Tailwind’s spacing scale (e.g. 'none', '0', '1', '2', …, '64')\n */\n@customElement('sch-flex')\nexport class SchmancyFlexV2 extends Layout {\n\tstatic styles = [\n\t\tLayout.styles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t`,\n\t]\n\t// If true, the container will use inline-flex instead of flex.\n\t@property({ type: Boolean, reflect: true })\n\tinline = false\n\n\t/**\n\t * Flow property that determines the flex direction.\n\t * Allowed values:\n\t * - Standard: 'row', 'row-reverse', 'col', 'col-reverse'\n\t * - Dense variants: 'row-dense', 'col-dense' (dense implies wrapping)\n\t */\n\t@property({ type: String, reflect: true })\n\tflow: 'row' | 'row-reverse' | 'col' | 'col-reverse' | 'row-dense' | 'col-dense' = 'row'\n\n\t/**\n\t * Flex-wrap options:\n\t * - 'wrap', 'nowrap', or 'wrap-reverse'\n\t */\n\t@property({ type: String, reflect: true })\n\twrap: 'wrap' | 'nowrap' | 'wrap-reverse' = 'wrap'\n\n\t/**\n\t * Align-items (vertical alignment of flex items):\n\t * - 'start', 'center', 'end', 'stretch', or 'baseline'\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'stretch'\n\n\t/**\n\t * Justify-content (horizontal distribution):\n\t * - 'start', 'center', 'end', 'between', 'around', or 'evenly'\n\t */\n\t@property({ type: String, reflect: true })\n\tjustify: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly' = 'start'\n\n\t/**\n\t * Align-content (spacing between rows when wrapping):\n\t * - 'start', 'center', 'end', 'between', 'around', or 'evenly'\n\t */\n\t@property({ type: String, reflect: true })\n\tcontent?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'\n\n\t/**\n\t * Gap between flex items.\n\t * Options (based on Tailwind CSS 4 spacing scale):\n\t * - 'none', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '12', '16', '20', '24', '32', '40', '48', '56', or '64'\n\t */\n\t@property({ type: String, reflect: true })\n\tgap:\n\t\t| 'none'\n\t\t| '0'\n\t\t| '1'\n\t\t| '2'\n\t\t| '3'\n\t\t| '4'\n\t\t| '5'\n\t\t| '6'\n\t\t| '7'\n\t\t| '8'\n\t\t| '9'\n\t\t| '10'\n\t\t| '12'\n\t\t| '16'\n\t\t| '20'\n\t\t| '24'\n\t\t| '32'\n\t\t| '40'\n\t\t| '48'\n\t\t| '56'\n\t\t| '64' = 'none'\n\n\trender() {\n\t\t// Determine whether to use inline-flex or flex.\n\t\tconst baseDisplay = this.inline ? 'inline-flex' : 'flex'\n\n\t\t// Map the flow property to a flex-direction class.\n\t\t// (Dense variants use the same class as their standard counterparts.)\n\t\tlet directionClass = ''\n\t\tswitch (this.flow) {\n\t\t\tcase 'row':\n\t\t\tcase 'row-dense':\n\t\t\t\tdirectionClass = 'flex-row'\n\t\t\t\tbreak\n\t\t\tcase 'row-reverse':\n\t\t\t\tdirectionClass = 'flex-row-reverse'\n\t\t\t\tbreak\n\t\t\tcase 'col':\n\t\t\tcase 'col-dense':\n\t\t\t\tdirectionClass = 'flex-col'\n\t\t\t\tbreak\n\t\t\tcase 'col-reverse':\n\t\t\t\tdirectionClass = 'flex-col-reverse'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tdirectionClass = 'flex-row'\n\t\t}\n\n\t\t// Dense variants force wrapping regardless of the wrap property.\n\t\tconst isDense = this.flow === 'row-dense' || this.flow === 'col-dense'\n\t\tconst effectiveWrap = isDense ? 'wrap' : this.wrap\n\n\t\tlet wrapClass = ''\n\t\tswitch (effectiveWrap) {\n\t\t\tcase 'wrap':\n\t\t\t\twrapClass = 'flex-wrap'\n\t\t\t\tbreak\n\t\t\tcase 'nowrap':\n\t\t\t\twrapClass = 'flex-nowrap'\n\t\t\t\tbreak\n\t\t\tcase 'wrap-reverse':\n\t\t\t\twrapClass = 'flex-wrap-reverse'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\twrapClass = 'flex-wrap'\n\t\t}\n\n\t\t// Map align-items.\n\t\tlet alignClass = ''\n\t\tswitch (this.align) {\n\t\t\tcase 'start':\n\t\t\t\talignClass = 'items-start'\n\t\t\t\tbreak\n\t\t\tcase 'center':\n\t\t\t\talignClass = 'items-center'\n\t\t\t\tbreak\n\t\t\tcase 'end':\n\t\t\t\talignClass = 'items-end'\n\t\t\t\tbreak\n\t\t\tcase 'stretch':\n\t\t\t\talignClass = 'items-stretch'\n\t\t\t\tbreak\n\t\t\tcase 'baseline':\n\t\t\t\talignClass = 'items-baseline'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\talignClass = 'items-stretch'\n\t\t}\n\n\t\t// Map justify-content.\n\t\tlet justifyClass = ''\n\t\tswitch (this.justify) {\n\t\t\tcase 'start':\n\t\t\t\tjustifyClass = 'justify-start'\n\t\t\t\tbreak\n\t\t\tcase 'center':\n\t\t\t\tjustifyClass = 'justify-center'\n\t\t\t\tbreak\n\t\t\tcase 'end':\n\t\t\t\tjustifyClass = 'justify-end'\n\t\t\t\tbreak\n\t\t\tcase 'between':\n\t\t\t\tjustifyClass = 'justify-between'\n\t\t\t\tbreak\n\t\t\tcase 'around':\n\t\t\t\tjustifyClass = 'justify-around'\n\t\t\t\tbreak\n\t\t\tcase 'evenly':\n\t\t\t\tjustifyClass = 'justify-evenly'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tjustifyClass = 'justify-start'\n\t\t}\n\n\t\t// Map align-content (if provided).\n\t\tlet contentClass = ''\n\t\tif (this.content) {\n\t\t\tswitch (this.content) {\n\t\t\t\tcase 'start':\n\t\t\t\t\tcontentClass = 'content-start'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'center':\n\t\t\t\t\tcontentClass = 'content-center'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'end':\n\t\t\t\t\tcontentClass = 'content-end'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'between':\n\t\t\t\t\tcontentClass = 'content-between'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'around':\n\t\t\t\t\tcontentClass = 'content-around'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'evenly':\n\t\t\t\t\tcontentClass = 'content-evenly'\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Map gap value.\n\t\tconst gapClass = this.gap === 'none' ? 'gap-0' : `gap-${this.gap}`\n\n\t\t// Build the complete list of classes.\n\t\tconst classes = [baseDisplay, directionClass, wrapClass, alignClass, justifyClass, contentClass, gapClass]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ')\n\n\t\treturn html`\n\t\t\t<section class=${classes}>\n\t\t\t\t<slot></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-flex': SchmancyFlexV2\n\t}\n}\n"],"names":["Layout","TailwindElement","super","arguments","this","layout","center","display","overflow","overflowX","overflowY","position","connectedCallback","style","setProperty","padding","margin","width","height","minWidth","minHeight","maxWidth","maxHeight","top","right","bottom","left","inset","zIndex","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderRadius","borderWidth","boxShadow","opacity","background","backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","backgroundAttachment","backgroundColor","backgroundClip","backgroundOrigin","backgroundBlendMode","filter","backdropFilter","__decorateClass","styles","_a","property","type","Boolean","prototype","String","SchmancyFlex","constructor","flow","wrap","align","justify","gap","classes","flex","html","classMap","styleMap","unsafeCSS","reflect","customElement","SchmancyGrid","content","rcols","fromEvent","window","pipe","map","event","target","startWith","clientWidth","innerWidth","distinctUntilChanged","takeUntil","disconnecting","debounceTime","w","cols","xl","lg","md","sm","xs","subscribe","gridTemplateRows","rows","gridTemplateColumns","Object","queryAssignedElements","SchmancyScroll","css","hide","render","SchmancyFlexV2","inline","baseDisplay","directionClass","wrapClass","alignClass","justifyClass","contentClass","join"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
package/dist/input-DibJxeWY.cjs
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";const u=require("lit"),i=require("lit/decorators.js"),m=require("lit/directives/class-map.js"),s=require("lit/directives/if-defined.js"),f=require("lit/directives/ref.js"),b=require("lit/directives/when.js"),o=require("rxjs");require("lit/directives/style-map.js");const g=require("./tailwind.mixin-CduPdozY.cjs"),y=require("./color-D8r6dpWm.cjs");require("./ripple-B_wT0zgD.cjs");const h=require("./theme.interface-Xg5Zi46a.cjs");var v=Object.defineProperty,$=Object.getOwnPropertyDescriptor,r=(t,n,p,a)=>{for(var c,l=a>1?void 0:a?$(n,p):n,d=t.length-1;d>=0;d--)(c=t[d])&&(l=(a?c(n,p,l):c(l))||l);return a&&l&&v(n,p,l),l};let e=class extends g.TailwindElement(":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}"){constructor(){if(super(),this.id="",this.label="",this.type="text",this.name=`name_${Date.now()}`,this.placeholder="",this.value="",this.required=!1,this.disabled=!1,this.readonly=!1,this.clickable=!1,this.spellcheck=!1,this.align="left",this.autofocus=!1,this.autocomplete="on",this.tabIndex=0,this.error=!1,this.inputRef=f.createRef(),"attachInternals"in this)try{this.internals=this.attachInternals()}catch{this.internals=void 0}}willUpdate(t){this.id||(this.id="schmancy-input-"+e._idCounter++),super.willUpdate(t)}get form(){var t;return((t=this.internals)==null?void 0:t.form)??null}updated(t){var n,p,a;super.updated(t),t.has("value")&&((n=this.internals)==null||n.setFormValue(this.value)),t.has("error")&&(this.error?(p=this.internals)==null||p.setValidity({customError:!0},"Invalid input",this.inputElement):(a=this.internals)==null||a.setValidity({}))}checkValidity(){var t;return((t=this.inputRef.value)==null?void 0:t.checkValidity())??!0}reportValidity(){var t;return((t=this.inputRef.value)==null?void 0:t.reportValidity())??!0}setCustomValidity(t){var n;(n=this.inputRef.value)==null||n.setCustomValidity(t)}firstUpdated(){this.autofocus&&this.focus(),o.fromEvent(this.inputElement,"input").pipe(o.map(t=>t.target.value),o.distinctUntilChanged(),o.takeUntil(this.disconnecting)).subscribe(t=>{this.value=t,this.dispatchEvent(new CustomEvent("input",{detail:{value:t},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:{value:t},bubbles:!0,composed:!0}))}),o.fromEvent(this.inputElement,"change").pipe(o.map(t=>t.target.value),o.distinctUntilChanged(),o.takeUntil(this.disconnecting)).subscribe(t=>{this.value=t,this.dispatchEvent(new CustomEvent("change",{detail:{value:t},bubbles:!0,composed:!0}))}),o.fromEvent(this.inputElement,"keyup").pipe(o.filter(t=>t.key==="Enter"),o.takeUntil(this.disconnecting)).subscribe(t=>{const{value:n}=t.target;this.value=n,this.dispatchEvent(new CustomEvent("enter",{detail:{value:n},bubbles:!0,composed:!0}))}),o.fromEvent(this.inputElement,"animationstart").pipe(o.filter(t=>t.animationName==="onAutoFillStart"),o.takeUntil(this.disconnecting)).subscribe(t=>{const{value:n}=t.target;this.value=n,this.dispatchEvent(new CustomEvent("change",{detail:{value:n},bubbles:!0,composed:!0}))})}select(){var t;return(t=this.inputRef.value)==null?void 0:t.select()}getValidity(){var t;return(t=this.inputRef.value)==null?void 0:t.validity}focus(t){var n;(n=this.inputRef.value)==null||n.focus(t),this.dispatchEvent(new Event("focus"))}click(){var t;(t=this.inputRef.value)==null||t.click(),this.dispatchEvent(new Event("click"))}blur(){var t;(t=this.inputRef.value)==null||t.blur(),this.dispatchEvent(new Event("blur"))}render(){const t={"w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]":!0,"outline-secondary-default focus:outline-1 ":!0,"disabled:opacity-40 disabled:cursor-not-allowed":!0,"placeholder:text-muted":!0,"ring-0 ring-inset focus:ring-1 focus:ring-inset":!0,"ring-secondary-default ring-outline focus:ring-secondary-default":!this.error,"ring-error-default focus:ring-error-default":this.error,"caret-transparent focus:outline-hidden cursor-pointer text-select-none":this.readonly,"cursor-pointer":this.clickable,"text-center":this.align==="center","text-right":this.align==="right"},n={"opacity-40":this.disabled,"block mb-[4px]":!0};return u.html`
|
|
2
|
-
${b.when(this.label,()=>u.html`
|
|
3
|
-
<label
|
|
4
|
-
for=${this.id}
|
|
5
|
-
id="label-${this.id}"
|
|
6
|
-
class=${m.classMap(n)}
|
|
7
|
-
${y.color({color:this.error?h.SchmancyTheme.sys.color.error.default:h.SchmancyTheme.sys.color.primary.default})}
|
|
8
|
-
>
|
|
9
|
-
<schmancy-typography type="label" token="lg">${this.label}</schmancy-typography>
|
|
10
|
-
</label>
|
|
11
|
-
`)}
|
|
12
|
-
|
|
13
|
-
<input
|
|
14
|
-
${y.color({bgColor:h.SchmancyTheme.sys.color.surface.highest,color:h.SchmancyTheme.sys.color.surface.on})}
|
|
15
|
-
${f.ref(this.inputRef)}
|
|
16
|
-
id=${this.id}
|
|
17
|
-
name=${this.name}
|
|
18
|
-
class=${m.classMap(t)}
|
|
19
|
-
.value=${this.value}
|
|
20
|
-
.type=${this.type}
|
|
21
|
-
.autocomplete=${this.autocomplete}
|
|
22
|
-
.spellcheck=${this.spellcheck}
|
|
23
|
-
placeholder=${this.placeholder}
|
|
24
|
-
inputmode=${s.ifDefined(this.inputmode)}
|
|
25
|
-
pattern=${s.ifDefined(this.pattern)}
|
|
26
|
-
step=${s.ifDefined(this.step)}
|
|
27
|
-
minlength=${s.ifDefined(this.minlength)}
|
|
28
|
-
maxlength=${s.ifDefined(this.maxlength)}
|
|
29
|
-
min=${s.ifDefined(this.min)}
|
|
30
|
-
max=${s.ifDefined(this.max)}
|
|
31
|
-
?required=${this.required}
|
|
32
|
-
?disabled=${this.disabled}
|
|
33
|
-
?readonly=${this.readonly}
|
|
34
|
-
aria-invalid=${this.error?"true":"false"}
|
|
35
|
-
aria-required=${this.required?"true":"false"}
|
|
36
|
-
aria-labelledby=${this.label?`label-${this.id}`:u.nothing}
|
|
37
|
-
aria-describedby=${this.hint?`hint-${this.id}`:u.nothing}
|
|
38
|
-
aria-label=${s.ifDefined(this.label?void 0:this.placeholder||"Input")}
|
|
39
|
-
/>
|
|
40
|
-
|
|
41
|
-
${b.when(this.hint,()=>u.html`
|
|
42
|
-
<div
|
|
43
|
-
id="hint-${this.id}"
|
|
44
|
-
class="pt-[2px]"
|
|
45
|
-
${y.color({color:this.error?h.SchmancyTheme.sys.color.error.default:h.SchmancyTheme.sys.color.primary.default})}
|
|
46
|
-
>
|
|
47
|
-
<schmancy-typography align="left" type="label"> ${this.hint} </schmancy-typography>
|
|
48
|
-
</div>
|
|
49
|
-
`)}
|
|
50
|
-
`}};e._idCounter=0,e.formAssociated=!0,e.shadowRootOptions={...u.LitElement.shadowRootOptions,delegatesFocus:!0},r([i.property({reflect:!0})],e.prototype,"id",2),r([i.property({type:String})],e.prototype,"label",2),r([i.property({reflect:!0})],e.prototype,"type",2),r([i.property()],e.prototype,"name",2),r([i.property()],e.prototype,"placeholder",2),r([i.property({type:String,reflect:!0})],e.prototype,"value",2),r([i.property({type:String,reflect:!0})],e.prototype,"pattern",2),r([i.property({type:Boolean,reflect:!0})],e.prototype,"required",2),r([i.property({type:Boolean,reflect:!0})],e.prototype,"disabled",2),r([i.property({type:Boolean,reflect:!0})],e.prototype,"readonly",2),r([i.property({type:Boolean,reflect:!0})],e.prototype,"clickable",2),r([i.property({type:Boolean,reflect:!0})],e.prototype,"spellcheck",2),r([i.property({type:String,reflect:!0})],e.prototype,"align",2),r([i.property()],e.prototype,"inputmode",2),r([i.property({type:Number})],e.prototype,"minlength",2),r([i.property({type:Number})],e.prototype,"maxlength",2),r([i.property()],e.prototype,"min",2),r([i.property()],e.prototype,"max",2),r([i.property({type:Number,reflect:!0})],e.prototype,"step",2),r([i.property({type:Boolean})],e.prototype,"autofocus",2),r([i.property({type:String,reflect:!0})],e.prototype,"autocomplete",2),r([i.property({type:Number,reflect:!0})],e.prototype,"tabIndex",2),r([i.property()],e.prototype,"hint",2),r([i.property({type:Boolean,reflect:!0})],e.prototype,"error",2),r([i.query("input")],e.prototype,"inputElement",2),e=r([i.customElement("schmancy-input")],e);
|
|
51
|
-
//# sourceMappingURL=input-DibJxeWY.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-DibJxeWY.cjs","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","focus","fromEvent","pipe","map","ev","target","distinctUntilChanged","takeUntil","disconnecting","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","animationName","select","validity","options","Event","click","blur","render","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 +0,0 @@
|
|
|
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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"}
|
package/dist/select-SQOIioEy.cjs
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";const r=require("@floating-ui/dom");require("rxjs");const p=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const u=require("./litElement.mixin-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
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|