@mhmo91/schmancy 0.2.118 → 0.2.121
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-C2EvhDmf.cjs → animated-text-BH6DM-pF.cjs} +2 -2
- package/dist/{animated-text-C2EvhDmf.cjs.map → animated-text-BH6DM-pF.cjs.map} +1 -1
- package/dist/{animated-text-6DhYKKzt.js → animated-text-C92_eFNP.js} +3 -3
- package/dist/{animated-text-6DhYKKzt.js.map → animated-text-C92_eFNP.js.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/{area.component-X-1ZwgJL.cjs → area.component-BDkmpYX3.cjs} +2 -2
- package/dist/{area.component-X-1ZwgJL.cjs.map → area.component-BDkmpYX3.cjs.map} +1 -1
- package/dist/{area.component-DAry93pl.js → area.component-Bh_XioGp.js} +10 -10
- package/dist/{area.component-DAry93pl.js.map → area.component-Bh_XioGp.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/autocomplete-DMSMomJC.cjs +57 -0
- package/dist/{autocomplete-BIJ9G0y1.cjs.map → autocomplete-DMSMomJC.cjs.map} +1 -1
- package/dist/{autocomplete-C_QyhPJw.js → autocomplete-IOFBU8oc.js} +4 -5
- package/dist/{autocomplete-C_QyhPJw.js.map → autocomplete-IOFBU8oc.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-CTRhgYJB.js → checkbox-4y1DGu22.js} +8 -7
- package/dist/{checkbox-CTRhgYJB.js.map → checkbox-4y1DGu22.js.map} +1 -1
- package/dist/{checkbox-BkGLOzBe.cjs → checkbox-BfFsbs3h.cjs} +6 -6
- package/dist/{checkbox-BkGLOzBe.cjs.map → checkbox-BfFsbs3h.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-B4X5PxUQ.cjs → chips-C6a7NyzB.cjs} +16 -16
- package/dist/{chips-B4X5PxUQ.cjs.map → chips-C6a7NyzB.cjs.map} +1 -1
- package/dist/{chips-DjX_Zznh.js → chips-DqXt-vj6.js} +16 -15
- package/dist/{chips-DjX_Zznh.js.map → chips-DqXt-vj6.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/context-object-CVqtbNDv.js +303 -0
- package/dist/context-object-CVqtbNDv.js.map +1 -0
- package/dist/context-object-CgZ6F8E9.cjs +2 -0
- package/dist/context-object-CgZ6F8E9.cjs.map +1 -0
- package/dist/{date-range-CRJ7wYwK.js → date-range-BBY-tMEk.js} +3 -3
- package/dist/{date-range-CRJ7wYwK.js.map → date-range-BBY-tMEk.js.map} +1 -1
- package/dist/{date-range-CCsKoZUV.cjs → date-range-DC3sAepm.cjs} +2 -2
- package/dist/{date-range-CCsKoZUV.cjs.map → date-range-DC3sAepm.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-BkSIN-In.js → delay-DcwT5pHi.js} +2 -2
- package/dist/{delay-BkSIN-In.js.map → delay-DcwT5pHi.js.map} +1 -1
- package/dist/{delay-ttYmIqo7.cjs → delay-UhlOkp1Q.cjs} +2 -2
- package/dist/{delay-ttYmIqo7.cjs.map → delay-UhlOkp1Q.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +4 -5
- package/dist/directives.js.map +1 -1
- package/dist/{divider-C3zQQjqq.js → divider-B-bxtxQ9.js} +3 -3
- package/dist/{divider-C3zQQjqq.js.map → divider-B-bxtxQ9.js.map} +1 -1
- package/dist/{divider-2AVp1yWB.cjs → divider-yLBrmrYU.cjs} +2 -2
- package/dist/{divider-2AVp1yWB.cjs.map → divider-yLBrmrYU.cjs.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-CfGGWirm.cjs → flex-CG8OOL02.cjs} +2 -2
- package/dist/{flex-CfGGWirm.cjs.map → flex-CG8OOL02.cjs.map} +1 -1
- package/dist/{flex-CfRUWQWK.js → flex-CofCUs7b.js} +4 -4
- package/dist/{flex-CfRUWQWK.js.map → flex-CofCUs7b.js.map} +1 -1
- package/dist/flow-B1wMqea2.js +342 -0
- package/dist/flow-B1wMqea2.js.map +1 -0
- package/dist/flow-CnJl1T1A.cjs +2 -0
- package/dist/flow-CnJl1T1A.cjs.map +1 -0
- package/dist/form-BqHD2BmW.cjs +14 -0
- package/dist/form-BqHD2BmW.cjs.map +1 -0
- package/dist/form-CbH5yVTc.js +161 -0
- package/dist/form-CbH5yVTc.js.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-BLvikygg.js → icon-2u-dF77v.js} +3 -3
- package/dist/{icon-BLvikygg.js.map → icon-2u-dF77v.js.map} +1 -1
- package/dist/{icon-BfUZ5ZBV.cjs → icon-CqImPgUG.cjs} +2 -2
- package/dist/{icon-BfUZ5ZBV.cjs.map → icon-CqImPgUG.cjs.map} +1 -1
- package/dist/{icon-button-BefimCfp.cjs → icon-button-CZjaNotL.cjs} +2 -2
- package/dist/{icon-button-BefimCfp.cjs.map → icon-button-CZjaNotL.cjs.map} +1 -1
- package/dist/{icon-button-OidywZ1U.js → icon-button-xKDMAiJd.js} +3 -3
- package/dist/{icon-button-OidywZ1U.js.map → icon-button-xKDMAiJd.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 +128 -105
- package/dist/index.js.map +1 -1
- package/dist/input-BDXWcxNw.cjs +111 -0
- package/dist/input-BDXWcxNw.cjs.map +1 -0
- package/dist/input-fP8EqcLF.js +390 -0
- package/dist/input-fP8EqcLF.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-C78nnFIZ.cjs → list-C8pDC7As.cjs} +2 -2
- package/dist/{list-C78nnFIZ.cjs.map → list-C8pDC7As.cjs.map} +1 -1
- package/dist/{list-CQV0ecrY.js → list-O7kfL-NW.js} +2 -2
- package/dist/{list-CQV0ecrY.js.map → list-O7kfL-NW.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-DGx3SrGX.cjs → litElement.mixin-Ct-snNwC.cjs} +2 -2
- package/dist/{litElement.mixin-DGx3SrGX.cjs.map → litElement.mixin-Ct-snNwC.cjs.map} +1 -1
- package/dist/{litElement.mixin-B1ZP2iG4.js → litElement.mixin-CtugwVVz.js} +2 -2
- package/dist/{litElement.mixin-B1ZP2iG4.js.map → litElement.mixin-CtugwVVz.js.map} +1 -1
- package/dist/{menu-15yMmtd2.js → menu-DoVBeCHb.js} +3 -3
- package/dist/{menu-15yMmtd2.js.map → menu-DoVBeCHb.js.map} +1 -1
- package/dist/{menu-DqLKbEXx.cjs → menu-bkGcaSru.cjs} +2 -2
- package/dist/{menu-DqLKbEXx.cjs.map → menu-bkGcaSru.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-DleJMgj-.js → option-D_RxI1cV.js} +2 -2
- package/dist/{option-DleJMgj-.js.map → option-D_RxI1cV.js.map} +1 -1
- package/dist/{option-BaOmCXP8.cjs → option-DrizkeI1.cjs} +2 -2
- package/dist/{option-BaOmCXP8.cjs.map → option-DrizkeI1.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{outlet-mNvq9oaA.cjs → outlet-BIwnmuNu.cjs} +2 -2
- package/dist/{outlet-mNvq9oaA.cjs.map → outlet-BIwnmuNu.cjs.map} +1 -1
- package/dist/{outlet-I1IE2wTK.js → outlet-U_CoKIxQ.js} +2 -2
- package/dist/{outlet-I1IE2wTK.js.map → outlet-U_CoKIxQ.js.map} +1 -1
- package/dist/{payment-card-form-Cm_-ul4G.cjs → payment-card-form-BPtQt3Xd.cjs} +2 -2
- package/dist/{payment-card-form-Cm_-ul4G.cjs.map → payment-card-form-BPtQt3Xd.cjs.map} +1 -1
- package/dist/{payment-card-form-DHmtfa_H.js → payment-card-form-CSboFL3Z.js} +3 -3
- package/dist/{payment-card-form-DHmtfa_H.js.map → payment-card-form-CSboFL3Z.js.map} +1 -1
- package/dist/{radio-group-CSKgiPxL.js → radio-group-BNyzzO-F.js} +2 -2
- package/dist/{radio-group-CSKgiPxL.js.map → radio-group-BNyzzO-F.js.map} +1 -1
- package/dist/{radio-group-RChAvIUM.cjs → radio-group-DiRAAiCy.cjs} +2 -2
- package/dist/{radio-group-RChAvIUM.cjs.map → radio-group-DiRAAiCy.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{redispatch-event-vOGO-T8W.js → redispatch-event-CF5ekzwZ.js} +33 -39
- package/dist/redispatch-event-CF5ekzwZ.js.map +1 -0
- package/dist/redispatch-event-roczetCU.cjs +4 -0
- package/dist/redispatch-event-roczetCU.cjs.map +1 -0
- package/dist/ripple-BumgqsDT.js +78 -0
- package/dist/ripple-BumgqsDT.js.map +1 -0
- package/dist/ripple-C2BHbhcS.cjs +16 -0
- package/dist/ripple-C2BHbhcS.cjs.map +1 -0
- package/dist/rxjs-utils.js +4 -4
- package/dist/schmancy-steps-container-3Odvvi2u.cjs +64 -0
- package/dist/schmancy-steps-container-3Odvvi2u.cjs.map +1 -0
- package/dist/schmancy-steps-container-Ke5dskhS.js +147 -0
- package/dist/schmancy-steps-container-Ke5dskhS.js.map +1 -0
- package/dist/select-BYI_HL-h.js +234 -0
- package/dist/select-BYI_HL-h.js.map +1 -0
- package/dist/select-DiFknGpF.cjs +57 -0
- package/dist/select-DiFknGpF.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/selector-hook-B5oIBdcJ.cjs +2 -0
- package/dist/selector-hook-B5oIBdcJ.cjs.map +1 -0
- package/dist/selector-hook-BdsJkaE2.js +185 -0
- package/dist/selector-hook-BdsJkaE2.js.map +1 -0
- package/dist/{sheet-DcDDkPRG.js → sheet-9d1u9s1_.js} +12 -12
- package/dist/{sheet-DcDDkPRG.js.map → sheet-9d1u9s1_.js.map} +1 -1
- package/dist/{sheet-OQg2AgBP.cjs → sheet-BKvr585i.cjs} +2 -2
- package/dist/{sheet-OQg2AgBP.cjs.map → sheet-BKvr585i.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-njrfDqrk.js → slider-DAawYwTF.js} +3 -3
- package/dist/{slider-njrfDqrk.js.map → slider-DAawYwTF.js.map} +1 -1
- package/dist/{slider-rumGp8Bz.cjs → slider-bPjwDSDc.cjs} +2 -2
- package/dist/{slider-rumGp8Bz.cjs.map → slider-bPjwDSDc.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-DVEN9TFJ.cjs → spinner-BgkHeWML.cjs} +4 -4
- package/dist/{spinner-DVEN9TFJ.cjs.map → spinner-BgkHeWML.cjs.map} +1 -1
- package/dist/{spinner-C3JUT7Lx.js → spinner-CTrfi93b.js} +11 -12
- package/dist/{spinner-C3JUT7Lx.js.map → spinner-CTrfi93b.js.map} +1 -1
- package/dist/steps.cjs +2 -0
- package/dist/steps.cjs.map +1 -0
- package/dist/steps.js +8 -0
- package/dist/steps.js.map +1 -0
- package/dist/store.cjs +2 -0
- package/dist/store.cjs.map +1 -0
- package/dist/store.js +22 -0
- package/dist/store.js.map +1 -0
- package/dist/{surface-BpQasVOW.js → surface-CjUAkHMv.js} +2 -2
- package/dist/{surface-BpQasVOW.js.map → surface-CjUAkHMv.js.map} +1 -1
- package/dist/{surface-CZayNjQ8.cjs → surface-QtNAwY0v.cjs} +2 -2
- package/dist/{surface-CZayNjQ8.cjs.map → surface-QtNAwY0v.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/table-C8Lqlb9G.js +556 -0
- package/dist/table-C8Lqlb9G.js.map +1 -0
- package/dist/table-lUgP7-kl.cjs +80 -0
- package/dist/table-lUgP7-kl.cjs.map +1 -0
- package/dist/table.cjs +1 -1
- package/dist/table.js +5 -1
- package/dist/{tabs-group-BWmuXV1M.cjs → tabs-group-B4ZCjn7j.cjs} +2 -2
- package/dist/{tabs-group-BWmuXV1M.cjs.map → tabs-group-B4ZCjn7j.cjs.map} +1 -1
- package/dist/{tabs-group-Dsupy-TK.js → tabs-group-BhHCB2nJ.js} +2 -2
- package/dist/{tabs-group-Dsupy-TK.js.map → tabs-group-BhHCB2nJ.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-Bn3Brhz1.js +43 -0
- package/dist/{tailwind.mixin-C2MUeArS.js.map → tailwind.mixin-Bn3Brhz1.js.map} +1 -1
- package/dist/tailwind.mixin-DqqGTjD_.cjs +2 -0
- package/dist/{tailwind.mixin-UzdLTEsN.cjs.map → tailwind.mixin-DqqGTjD_.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-Cf9BZUyf.js → teleport.component-BhLw5gCA.js} +52 -52
- package/dist/{teleport.component-Cf9BZUyf.js.map → teleport.component-BhLw5gCA.js.map} +1 -1
- package/dist/{teleport.component-DElxiimP.cjs → teleport.component-qYuoWGaE.cjs} +19 -19
- package/dist/{teleport.component-DElxiimP.cjs.map → teleport.component-qYuoWGaE.cjs.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/textarea-8T5kXo2A.cjs +42 -0
- package/dist/{textarea-DtP4CN8S.cjs.map → textarea-8T5kXo2A.cjs.map} +1 -1
- package/dist/{textarea-DZhAzd2-.js → textarea-CqkmSvJg.js} +8 -9
- package/dist/{textarea-DZhAzd2-.js.map → textarea-CqkmSvJg.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-XUBpRyVd.cjs → theme-button-CZFLICY-.cjs} +2 -2
- package/dist/{theme-button-XUBpRyVd.cjs.map → theme-button-CZFLICY-.cjs.map} +1 -1
- package/dist/{theme-button-B7v53G35.js → theme-button-CyebufWg.js} +2 -2
- package/dist/{theme-button-B7v53G35.js.map → theme-button-CyebufWg.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-Df85q2pE.cjs → theme.component-DTaJ-jCs.cjs} +2 -2
- package/dist/{theme.component-Df85q2pE.cjs.map → theme.component-DTaJ-jCs.cjs.map} +1 -1
- package/dist/{theme.component-4tKB3U5D.js → theme.component-HyW-lfw_.js} +2 -2
- package/dist/{theme.component-4tKB3U5D.js.map → theme.component-HyW-lfw_.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-FYjFkh4S.cjs → timezone-CgtDcgym.cjs} +2 -2
- package/dist/{timezone-FYjFkh4S.cjs.map → timezone-CgtDcgym.cjs.map} +1 -1
- package/dist/{timezone-C9zQrHBV.js → timezone-Cn0_OvVY.js} +3 -3
- package/dist/{timezone-C9zQrHBV.js.map → timezone-Cn0_OvVY.js.map} +1 -1
- package/dist/{tree-BEsQyzsP.js → tree-B0bZOfLC.js} +2 -2
- package/dist/{tree-BEsQyzsP.js.map → tree-B0bZOfLC.js.map} +1 -1
- package/dist/{tree-k_BipeY0.cjs → tree-Bg8L88Pd.cjs} +2 -2
- package/dist/{tree-k_BipeY0.cjs.map → tree-Bg8L88Pd.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/tslib.es6-DgOcxv4s.cjs +2 -0
- package/dist/tslib.es6-DgOcxv4s.cjs.map +1 -0
- package/dist/tslib.es6-ujVQHAQ4.js +10 -0
- package/dist/tslib.es6-ujVQHAQ4.js.map +1 -0
- package/dist/{typewriter-B3B8JBRl.cjs → typewriter-C-U4rB_m.cjs} +2 -2
- package/dist/{typewriter-B3B8JBRl.cjs.map → typewriter-C-U4rB_m.cjs.map} +1 -1
- package/dist/{typewriter-CjgsbmTc.js → typewriter-FTQ_LV70.js} +4 -4
- package/dist/{typewriter-CjgsbmTc.js.map → typewriter-FTQ_LV70.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-BzTRpIGt.js → typography-CdFf2sTC.js} +2 -2
- package/dist/{typography-BzTRpIGt.js.map → typography-CdFf2sTC.js.map} +1 -1
- package/dist/{typography-Cs7PQACq.cjs → typography-DvI9Wos_.cjs} +2 -2
- package/dist/{typography-Cs7PQACq.cjs.map → typography-DvI9Wos_.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/form/form-v2.d.ts +72 -0
- package/types/src/form/index.d.ts +1 -0
- package/types/src/index.d.ts +2 -1
- package/types/src/input/index.d.ts +1 -0
- package/types/src/input/input-v2.d.ts +250 -0
- package/types/src/select/select.d.ts +10 -1
- package/types/src/steps/index.d.ts +3 -0
- package/types/src/steps/schmancy-step.d.ts +52 -0
- package/types/src/steps/schmancy-steps-container.d.ts +17 -0
- package/types/src/steps/steps.context.d.ts +12 -0
- package/types/src/store/action-creator.d.ts +8 -0
- package/types/src/store/clear.d.ts +1 -0
- package/types/src/store/context-collection.d.ts +74 -0
- package/types/src/store/context-create.d.ts +8 -0
- package/types/src/store/context-object.d.ts +69 -0
- package/types/src/store/filter-directive.d.ts +32 -0
- package/types/src/store/index.d.ts +8 -0
- package/types/src/store/selector-hook.d.ts +15 -0
- package/types/src/store/selectors.d.ts +50 -0
- package/types/src/store/storage-manager.d.ts +56 -0
- package/types/src/store/types.d.ts +84 -0
- package/types/src/table/index.d.ts +1 -0
- package/types/src/table/row.d.ts +19 -0
- package/types/src/table/table.d.ts +27 -4
- package/dist/autocomplete-BIJ9G0y1.cjs +0 -57
- package/dist/color-D8r6dpWm.cjs +0 -2
- package/dist/color-D8r6dpWm.cjs.map +0 -1
- package/dist/color-DrgmL7QT.js +0 -19
- package/dist/color-DrgmL7QT.js.map +0 -1
- package/dist/form-BTg8x5QO.js +0 -73
- package/dist/form-BTg8x5QO.js.map +0 -1
- package/dist/form-DPRTjp4Q.cjs +0 -8
- package/dist/form-DPRTjp4Q.cjs.map +0 -1
- package/dist/input-BNIa-xYu.js +0 -136
- package/dist/input-BNIa-xYu.js.map +0 -1
- package/dist/input-CqYkuOF4.cjs +0 -51
- package/dist/input-CqYkuOF4.cjs.map +0 -1
- package/dist/input-Dq3dT_7p.cjs +0 -98
- package/dist/input-Dq3dT_7p.cjs.map +0 -1
- package/dist/input-igN7Vis2.js +0 -205
- package/dist/input-igN7Vis2.js.map +0 -1
- package/dist/redispatch-event-vOGO-T8W.js.map +0 -1
- package/dist/redispatch-event-yBlefmeU.cjs +0 -4
- package/dist/redispatch-event-yBlefmeU.cjs.map +0 -1
- package/dist/ripple-3indJ14o.js +0 -64
- package/dist/ripple-3indJ14o.js.map +0 -1
- package/dist/ripple-B_wT0zgD.cjs +0 -16
- package/dist/ripple-B_wT0zgD.cjs.map +0 -1
- package/dist/select-CHXdCR-t.js +0 -206
- package/dist/select-CHXdCR-t.js.map +0 -1
- package/dist/select-Gbo-xjwq.cjs +0 -56
- package/dist/select-Gbo-xjwq.cjs.map +0 -1
- package/dist/table-BzJFv5qf.cjs +0 -6
- package/dist/table-BzJFv5qf.cjs.map +0 -1
- package/dist/table-CWRqwAtQ.js +0 -21
- package/dist/table-CWRqwAtQ.js.map +0 -1
- package/dist/tailwind.mixin-C2MUeArS.js +0 -43
- package/dist/tailwind.mixin-UzdLTEsN.cjs +0 -2
- package/dist/textarea-DtP4CN8S.cjs +0 -42
- package/dist/v2.cjs +0 -2
- package/dist/v2.cjs.map +0 -1
- package/dist/v2.js +0 -5
- package/dist/v2.js.map +0 -1
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { LitElement, PropertyValueMap } from 'lit';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'sch-input': SchmancyInputV2;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
type EventDetails = {
|
|
8
|
+
value: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Custom events the component may emit:
|
|
12
|
+
* - 'input': on every keystroke
|
|
13
|
+
* - 'change': on native blur/change
|
|
14
|
+
* - 'enter': specifically when user presses Enter
|
|
15
|
+
*/
|
|
16
|
+
export type SchmancyInputInputEventV2 = CustomEvent<EventDetails>;
|
|
17
|
+
export type SchmancyInputChangeEventV2 = CustomEvent<EventDetails>;
|
|
18
|
+
export type SchmancyInputEnterEventV2 = CustomEvent<EventDetails>;
|
|
19
|
+
/**
|
|
20
|
+
* Size variants for the input.
|
|
21
|
+
* - sm: Small, compact input (40px height)
|
|
22
|
+
* - md: Medium input (50px height, default)
|
|
23
|
+
* - lg: Large, spacious input (60px height)
|
|
24
|
+
*/
|
|
25
|
+
export type InputSize = 'sm' | 'md' | 'lg';
|
|
26
|
+
declare const SchmancyInputV2_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
27
|
+
/**
|
|
28
|
+
* Enhanced version of the SchmancyInput component with improved form integration
|
|
29
|
+
* and compatibility with legacy API.
|
|
30
|
+
*
|
|
31
|
+
* This component uses the native form association API and maintains parity with
|
|
32
|
+
* native input behaviors while providing a stylish, accessible interface.
|
|
33
|
+
*/
|
|
34
|
+
export default class SchmancyInputV2 extends SchmancyInputV2_base {
|
|
35
|
+
/** Auto-incrementing counter for generating unique IDs */
|
|
36
|
+
static _idCounter: number;
|
|
37
|
+
id: string;
|
|
38
|
+
/**
|
|
39
|
+
* The label for the control. If populated, we render a `<label for="...">`.
|
|
40
|
+
* If empty, we add an `aria-label` to the <input> for better screenreader support.
|
|
41
|
+
*/
|
|
42
|
+
label: string;
|
|
43
|
+
/**
|
|
44
|
+
* The type of input. (e.g. 'text', 'password', 'email', etc.)
|
|
45
|
+
*/
|
|
46
|
+
type: HTMLInputElement['type'];
|
|
47
|
+
/**
|
|
48
|
+
* Name attribute (for form submissions). By default, a unique fallback.
|
|
49
|
+
*/
|
|
50
|
+
name: string;
|
|
51
|
+
placeholder: string;
|
|
52
|
+
/** Current value of the input. */
|
|
53
|
+
value: string;
|
|
54
|
+
/** Pattern validation attribute. */
|
|
55
|
+
pattern?: string;
|
|
56
|
+
/** Whether the control is required for form validation. */
|
|
57
|
+
required: boolean;
|
|
58
|
+
/** Whether the control is disabled. */
|
|
59
|
+
disabled: boolean;
|
|
60
|
+
/** Whether the input is read-only. */
|
|
61
|
+
readonly: boolean;
|
|
62
|
+
/** If true, we visually show a pointer cursor even if readOnly. */
|
|
63
|
+
clickable: boolean;
|
|
64
|
+
/** Whether browser spellcheck is enabled. */
|
|
65
|
+
spellcheck: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Text alignment within the input.
|
|
68
|
+
* - 'left' | 'center' | 'right'
|
|
69
|
+
*/
|
|
70
|
+
align: 'left' | 'center' | 'right';
|
|
71
|
+
/** inputmode attribute (affects on-screen keyboards in mobile). */
|
|
72
|
+
inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';
|
|
73
|
+
minlength?: number;
|
|
74
|
+
maxlength?: number;
|
|
75
|
+
min?: string;
|
|
76
|
+
max?: string;
|
|
77
|
+
step?: number;
|
|
78
|
+
/** If true, auto-focus this input on first render. */
|
|
79
|
+
autofocus: boolean;
|
|
80
|
+
/** Autocomplete/autofill hints. */
|
|
81
|
+
autocomplete: AutoFill;
|
|
82
|
+
/**
|
|
83
|
+
* tabIndex for focusing by tab key. Typically 0 or -1.
|
|
84
|
+
*/
|
|
85
|
+
tabIndex: number;
|
|
86
|
+
/**
|
|
87
|
+
* A small hint text or error message to display under the input.
|
|
88
|
+
*/
|
|
89
|
+
hint?: string;
|
|
90
|
+
/**
|
|
91
|
+
* If true, we style the input as an error state, and possibly display
|
|
92
|
+
* the hint as an error message.
|
|
93
|
+
*/
|
|
94
|
+
error: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* The size of the input.
|
|
97
|
+
* - 'sm': Small, compact size
|
|
98
|
+
* - 'md': Medium size (default)
|
|
99
|
+
* - 'lg': Large size
|
|
100
|
+
*/
|
|
101
|
+
size: InputSize;
|
|
102
|
+
/**
|
|
103
|
+
* Controls when validation should show.
|
|
104
|
+
* - 'always' - Always show validation
|
|
105
|
+
* - 'touched' - Only show after field has been focused and then blurred
|
|
106
|
+
* - 'dirty' - Only show after value has changed
|
|
107
|
+
* - 'submitted' - Only show after form submission
|
|
108
|
+
*/
|
|
109
|
+
validateOn: 'always' | 'touched' | 'dirty' | 'submitted';
|
|
110
|
+
/**
|
|
111
|
+
* For datalist support
|
|
112
|
+
*/
|
|
113
|
+
list?: string;
|
|
114
|
+
/**
|
|
115
|
+
* The validation message to display (mimics native input.validationMessage)
|
|
116
|
+
*/
|
|
117
|
+
validationMessage: string;
|
|
118
|
+
private inputElement;
|
|
119
|
+
private inputRef;
|
|
120
|
+
/**
|
|
121
|
+
* For integration with browser's autofill support
|
|
122
|
+
*/
|
|
123
|
+
private isAutofilled;
|
|
124
|
+
/**
|
|
125
|
+
* Track user interaction state for validation
|
|
126
|
+
*/
|
|
127
|
+
private touched;
|
|
128
|
+
private dirty;
|
|
129
|
+
private submitted;
|
|
130
|
+
/**
|
|
131
|
+
* Store the default value for reset behavior
|
|
132
|
+
*/
|
|
133
|
+
private defaultValue;
|
|
134
|
+
static formAssociated: boolean;
|
|
135
|
+
protected static shadowRootOptions: {
|
|
136
|
+
delegatesFocus: boolean;
|
|
137
|
+
mode: ShadowRootMode;
|
|
138
|
+
serializable?: boolean;
|
|
139
|
+
slotAssignment?: SlotAssignmentMode;
|
|
140
|
+
};
|
|
141
|
+
private internals?;
|
|
142
|
+
private formResetObserver?;
|
|
143
|
+
constructor();
|
|
144
|
+
/**
|
|
145
|
+
* If user did not provide an ID, auto-generate one so <label for="...">
|
|
146
|
+
* and various aria-* attributes can reference it.
|
|
147
|
+
*/
|
|
148
|
+
protected willUpdate(changedProps: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
|
|
149
|
+
/** The form this element is associated with, if any. */
|
|
150
|
+
get form(): HTMLFormElement;
|
|
151
|
+
protected updated(changedProps: Map<string, unknown>): void;
|
|
152
|
+
/**
|
|
153
|
+
* Connect to the closest form element and set up form integration
|
|
154
|
+
*/
|
|
155
|
+
connectedCallback(): void;
|
|
156
|
+
/**
|
|
157
|
+
* Set up form integration with ElementInternals
|
|
158
|
+
*/
|
|
159
|
+
private setupFormIntegration;
|
|
160
|
+
/**
|
|
161
|
+
* Set up external label association for native HTML label support
|
|
162
|
+
*/
|
|
163
|
+
private setupExternalLabelAssociation;
|
|
164
|
+
disconnectedCallback(): void;
|
|
165
|
+
/**
|
|
166
|
+
* Reset the input to its default state
|
|
167
|
+
*/
|
|
168
|
+
private resetToDefault;
|
|
169
|
+
/**
|
|
170
|
+
* Determines if validation errors should be shown based on current state
|
|
171
|
+
* and validation strategy
|
|
172
|
+
*/
|
|
173
|
+
private shouldShowValidation;
|
|
174
|
+
/**
|
|
175
|
+
* Update validity state based on current error state
|
|
176
|
+
*/
|
|
177
|
+
private updateValidityState;
|
|
178
|
+
/**
|
|
179
|
+
* Validate input based on required, pattern, etc.
|
|
180
|
+
* This mimics native validation behavior
|
|
181
|
+
*/
|
|
182
|
+
private validateInput;
|
|
183
|
+
/**
|
|
184
|
+
* Check validity without showing validation UI
|
|
185
|
+
*/
|
|
186
|
+
checkValidity(): boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Show validation UI and check validity
|
|
189
|
+
*/
|
|
190
|
+
reportValidity(): boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Set a custom validation error message
|
|
193
|
+
*/
|
|
194
|
+
setCustomValidity(message: string): void;
|
|
195
|
+
firstUpdated(): void;
|
|
196
|
+
/**
|
|
197
|
+
* Set up input event handling for value changes
|
|
198
|
+
*/
|
|
199
|
+
private setupInputEvents;
|
|
200
|
+
/**
|
|
201
|
+
* Set up focus/blur event handling
|
|
202
|
+
*/
|
|
203
|
+
private setupFocusBlurEvents;
|
|
204
|
+
/**
|
|
205
|
+
* Set up autofill detection
|
|
206
|
+
*/
|
|
207
|
+
private setupAutofillDetection;
|
|
208
|
+
/**
|
|
209
|
+
* Set up enter key event handling
|
|
210
|
+
*/
|
|
211
|
+
private setupEnterKeyEvents;
|
|
212
|
+
/** Selects all text within the input. */
|
|
213
|
+
select(): void;
|
|
214
|
+
/** Returns the native validity state of the inner <input>. */
|
|
215
|
+
getValidity(): ValidityState | undefined;
|
|
216
|
+
/**
|
|
217
|
+
* Sets the selection range. Mirrors native input.setSelectionRange
|
|
218
|
+
*/
|
|
219
|
+
setSelectionRange(start: number, end: number, direction?: 'forward' | 'backward' | 'none'): void;
|
|
220
|
+
/**
|
|
221
|
+
* Returns the selected text within the input (start position)
|
|
222
|
+
*/
|
|
223
|
+
get selectionStart(): number | null;
|
|
224
|
+
/**
|
|
225
|
+
* Returns the selected text within the input (end position)
|
|
226
|
+
*/
|
|
227
|
+
get selectionEnd(): number | null;
|
|
228
|
+
/**
|
|
229
|
+
* Returns the direction of selection
|
|
230
|
+
*/
|
|
231
|
+
get selectionDirection(): 'forward' | 'backward' | 'none' | null;
|
|
232
|
+
/**
|
|
233
|
+
* Sets the range of text to be selected.
|
|
234
|
+
*/
|
|
235
|
+
setRangeText(replacement: string, start?: number, end?: number, selectMode?: 'select' | 'start' | 'end' | 'preserve'): void;
|
|
236
|
+
/**
|
|
237
|
+
* Override to forward focus to the internal <input>.
|
|
238
|
+
* Also dispatch a 'focus' event for external listeners.
|
|
239
|
+
*/
|
|
240
|
+
focus(options?: FocusOptions): void;
|
|
241
|
+
/**
|
|
242
|
+
* Override to forward clicks to the internal <input>.
|
|
243
|
+
* Also dispatch a 'click' event for external listeners.
|
|
244
|
+
*/
|
|
245
|
+
click(): void;
|
|
246
|
+
/** Forward blur to the internal <input>. */
|
|
247
|
+
blur(): void;
|
|
248
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
249
|
+
}
|
|
250
|
+
export {};
|
|
@@ -13,6 +13,7 @@ export declare class SchmancySelect extends SchmancySelect_base {
|
|
|
13
13
|
multi: boolean;
|
|
14
14
|
label: string;
|
|
15
15
|
hint: string;
|
|
16
|
+
validateOn: 'always' | 'touched' | 'dirty' | 'submitted';
|
|
16
17
|
private isOpen;
|
|
17
18
|
private valueLabel;
|
|
18
19
|
private isValid;
|
|
@@ -21,13 +22,21 @@ export declare class SchmancySelect extends SchmancySelect_base {
|
|
|
21
22
|
private inputRef;
|
|
22
23
|
private options;
|
|
23
24
|
private cleanupPositioner?;
|
|
24
|
-
|
|
25
|
+
_userInteracted: boolean;
|
|
26
|
+
private _touched;
|
|
27
|
+
private _dirty;
|
|
28
|
+
private _submitted;
|
|
25
29
|
constructor();
|
|
26
30
|
get form(): HTMLFormElement;
|
|
27
31
|
connectedCallback(): void;
|
|
28
32
|
disconnectedCallback(): void;
|
|
29
33
|
firstUpdated(): void;
|
|
30
34
|
updated(changedProps: PropertyValues): void;
|
|
35
|
+
/**
|
|
36
|
+
* Determines if validation errors should be shown based on current state
|
|
37
|
+
* and validation strategy
|
|
38
|
+
*/
|
|
39
|
+
private shouldShowValidation;
|
|
31
40
|
private syncSelection;
|
|
32
41
|
private setupOptionsAccessibility;
|
|
33
42
|
private positionDropdown;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
declare const SchmancyStep_base: CustomElementConstructor & import("../../mixins").Constructor<import("lit").LitElement> & import("../../mixins").Constructor<import("../../mixins").IBaseMixin>;
|
|
2
|
+
export declare class SchmancyStep extends SchmancyStep_base {
|
|
3
|
+
/**
|
|
4
|
+
* The step's position (1-based). This is used to compare against
|
|
5
|
+
* the container's current step to decide if it's "complete",
|
|
6
|
+
* "current", or "upcoming".
|
|
7
|
+
*/
|
|
8
|
+
position: number;
|
|
9
|
+
title: string;
|
|
10
|
+
description: string;
|
|
11
|
+
completed: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* NEW: Lock API to disable users from going back.
|
|
14
|
+
* When set to true, clicking on a previous (completed) step is ignored.
|
|
15
|
+
*/
|
|
16
|
+
lockBack: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Consume the shared StepsController from context.
|
|
19
|
+
*/
|
|
20
|
+
private steps;
|
|
21
|
+
/**
|
|
22
|
+
* Local reactive copy of the container's current step number.
|
|
23
|
+
*/
|
|
24
|
+
private currentStep;
|
|
25
|
+
/**
|
|
26
|
+
* Keep a reference to our subscription so we can unsubscribe cleanly.
|
|
27
|
+
*/
|
|
28
|
+
private subscription?;
|
|
29
|
+
connectedCallback(): void;
|
|
30
|
+
disconnectedCallback(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Update the host element's flex properties based on active state
|
|
33
|
+
*/
|
|
34
|
+
private updateFlexProperties;
|
|
35
|
+
/**
|
|
36
|
+
* Compute visual status for styling purposes. Note that if a step is explicitly
|
|
37
|
+
* marked as completed, it always appears as complete even if it's active.
|
|
38
|
+
*/
|
|
39
|
+
get status(): 'complete' | 'current' | 'upcoming';
|
|
40
|
+
/**
|
|
41
|
+
* Click handler to allow navigation between completed (or active) steps.
|
|
42
|
+
* With lockBack enabled, clicking on a previous step is ignored.
|
|
43
|
+
*/
|
|
44
|
+
private _onStepClick;
|
|
45
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
46
|
+
}
|
|
47
|
+
declare global {
|
|
48
|
+
interface HTMLElementTagNameMap {
|
|
49
|
+
'schmancy-step': SchmancyStep;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { StepsController } from './steps.context';
|
|
2
|
+
declare const SchmancyStepsContainer_base: CustomElementConstructor & import("../../mixins").Constructor<import("lit").LitElement> & import("../../mixins").Constructor<import("../../mixins").IBaseMixin>;
|
|
3
|
+
export declare class SchmancyStepsContainer extends SchmancyStepsContainer_base {
|
|
4
|
+
private controller;
|
|
5
|
+
stepsController: StepsController;
|
|
6
|
+
set currentStep(value: number);
|
|
7
|
+
get currentStep(): number;
|
|
8
|
+
private _currentStep;
|
|
9
|
+
connectedCallback(): void;
|
|
10
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
11
|
+
}
|
|
12
|
+
declare global {
|
|
13
|
+
interface HTMLElementTagNameMap {
|
|
14
|
+
'schmancy-steps-container': SchmancyStepsContainer;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class StepsController {
|
|
2
|
+
private _currentStep;
|
|
3
|
+
get currentStep$(): import("rxjs").Observable<number>;
|
|
4
|
+
get currentStep(): number;
|
|
5
|
+
setStep(step: number): void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The actual context object. We provide/consume this in the container and steps.
|
|
9
|
+
*/
|
|
10
|
+
export declare const stepsContext: {
|
|
11
|
+
__context__: StepsController;
|
|
12
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type Action<T = any> = {
|
|
2
|
+
type: string;
|
|
3
|
+
payload?: T;
|
|
4
|
+
};
|
|
5
|
+
export type ActionCreator<P = void, R = void> = P extends void ? () => R : (payload: P) => R;
|
|
6
|
+
export type ActionCreatorMap<T> = {
|
|
7
|
+
[K in keyof T]: T[K] extends (...args: infer A) => infer R ? (...args: A) => R : never;
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function contextClear(): void;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { ICollectionStore, StorageType, StoreError } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Enhanced collection store with better TypeScript support
|
|
5
|
+
*/
|
|
6
|
+
export default class SchmancyCollectionStore<V = any> implements ICollectionStore<V> {
|
|
7
|
+
private storageType;
|
|
8
|
+
private key;
|
|
9
|
+
static type: string;
|
|
10
|
+
private static instances;
|
|
11
|
+
private _ready;
|
|
12
|
+
private _destroy$;
|
|
13
|
+
$: BehaviorSubject<Map<string, V>>;
|
|
14
|
+
error$: BehaviorSubject<StoreError<unknown>>;
|
|
15
|
+
readonly defaultValue: Map<string, V>;
|
|
16
|
+
private storage;
|
|
17
|
+
/**
|
|
18
|
+
* Get ready state
|
|
19
|
+
*/
|
|
20
|
+
get ready(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Set ready state
|
|
23
|
+
*/
|
|
24
|
+
set ready(value: boolean);
|
|
25
|
+
/**
|
|
26
|
+
* Private constructor to enforce singleton pattern
|
|
27
|
+
*/
|
|
28
|
+
private constructor();
|
|
29
|
+
/**
|
|
30
|
+
* Static method to get or create an instance with proper typing
|
|
31
|
+
*/
|
|
32
|
+
static getInstance<V = any>(storage: StorageType, key: string, defaultValue: Map<string, V>): SchmancyCollectionStore<V>;
|
|
33
|
+
/**
|
|
34
|
+
* Get the current value
|
|
35
|
+
*/
|
|
36
|
+
get value(): Map<string, V>;
|
|
37
|
+
/**
|
|
38
|
+
* Set a value in the collection with proper typing
|
|
39
|
+
*/
|
|
40
|
+
set<T = V>(key: string, value: T): void;
|
|
41
|
+
/**
|
|
42
|
+
* Delete a value from the collection
|
|
43
|
+
*/
|
|
44
|
+
delete(key: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* Clear the collection
|
|
47
|
+
*/
|
|
48
|
+
clear(): void;
|
|
49
|
+
replace(newValue: Map<string, V>): void;
|
|
50
|
+
/**
|
|
51
|
+
* Update the state with error handling
|
|
52
|
+
*/
|
|
53
|
+
private updateState;
|
|
54
|
+
/**
|
|
55
|
+
* Initialize from persistent storage
|
|
56
|
+
*/
|
|
57
|
+
private initializeFromStorage;
|
|
58
|
+
/**
|
|
59
|
+
* Load data from IndexedDB with better typing
|
|
60
|
+
*/
|
|
61
|
+
private loadFromIndexedDB;
|
|
62
|
+
/**
|
|
63
|
+
* Set up persistence to storage
|
|
64
|
+
*/
|
|
65
|
+
private setupPersistence;
|
|
66
|
+
/**
|
|
67
|
+
* Setup development tools for debugging
|
|
68
|
+
*/
|
|
69
|
+
private setupDevTools;
|
|
70
|
+
/**
|
|
71
|
+
* Clean up resources
|
|
72
|
+
*/
|
|
73
|
+
destroy(): void;
|
|
74
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ICollectionStore, IStore, StorageType } from './types';
|
|
2
|
+
import { SchmancyStoreObject } from './context-object';
|
|
3
|
+
import SchmancyCollectionStore from './context-collection';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a context for managing state with better type safety
|
|
6
|
+
*/
|
|
7
|
+
export declare function createContext<T extends Record<string, any>>(initialData: T, storage: StorageType, key: string): IStore<T> & SchmancyStoreObject<T>;
|
|
8
|
+
export declare function createContext<V>(initialData: Map<string, V>, storage: StorageType, key: string): ICollectionStore<V> & SchmancyCollectionStore<V>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { IStore, StorageType, StoreError } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Enhanced store object with better TypeScript support
|
|
5
|
+
*/
|
|
6
|
+
export declare class SchmancyStoreObject<T extends Record<string, any>> implements IStore<T> {
|
|
7
|
+
private storageType;
|
|
8
|
+
private key;
|
|
9
|
+
static type: string;
|
|
10
|
+
private static instances;
|
|
11
|
+
private _ready;
|
|
12
|
+
private _destroy$;
|
|
13
|
+
$: BehaviorSubject<T>;
|
|
14
|
+
error$: BehaviorSubject<StoreError<unknown>>;
|
|
15
|
+
readonly defaultValue: T;
|
|
16
|
+
private storage;
|
|
17
|
+
/**
|
|
18
|
+
* Get store ready state
|
|
19
|
+
*/
|
|
20
|
+
get ready(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Set store ready state
|
|
23
|
+
*/
|
|
24
|
+
set ready(value: boolean);
|
|
25
|
+
/**
|
|
26
|
+
* Private constructor to enforce singleton pattern
|
|
27
|
+
*/
|
|
28
|
+
private constructor();
|
|
29
|
+
/**
|
|
30
|
+
* Static method to get or create an instance with strong typing
|
|
31
|
+
*/
|
|
32
|
+
static getInstance<T extends Record<string, any>>(storage: StorageType, key: string, defaultValue: T): SchmancyStoreObject<T>;
|
|
33
|
+
/**
|
|
34
|
+
* Get the current value from the store
|
|
35
|
+
*/
|
|
36
|
+
get value(): T;
|
|
37
|
+
/**
|
|
38
|
+
* Set state with proper typing
|
|
39
|
+
*/
|
|
40
|
+
set(value: Partial<T>, merge?: boolean): void;
|
|
41
|
+
/**
|
|
42
|
+
* Reset the store to its default value
|
|
43
|
+
*/
|
|
44
|
+
clear(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Replace the store with a new value
|
|
47
|
+
*/
|
|
48
|
+
replace(newValue: T): void;
|
|
49
|
+
/**
|
|
50
|
+
* Delete a specific key from the store with type checking
|
|
51
|
+
*/
|
|
52
|
+
delete<K extends keyof T>(key: K): void;
|
|
53
|
+
/**
|
|
54
|
+
* Update the state with proper error handling
|
|
55
|
+
*/
|
|
56
|
+
private updateState;
|
|
57
|
+
/**
|
|
58
|
+
* Initialize the store from persistent storage
|
|
59
|
+
*/
|
|
60
|
+
private initializeFromStorage;
|
|
61
|
+
/**
|
|
62
|
+
* Setup development tools for debugging
|
|
63
|
+
*/
|
|
64
|
+
private setupDevTools;
|
|
65
|
+
/**
|
|
66
|
+
* Clean up resources
|
|
67
|
+
*/
|
|
68
|
+
destroy(): void;
|
|
69
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Supported comparison operators. */
|
|
2
|
+
type ComparisonOperator = '==' | '!=' | '>' | '<' | '>=' | '<=' | 'includes' | 'notIncludes' | 'startsWith' | 'endsWith' | 'in' | 'notIn' | 'any';
|
|
3
|
+
/**
|
|
4
|
+
* Query condition which can be either a tuple:
|
|
5
|
+
* [field, operator, expected]
|
|
6
|
+
* or an object:
|
|
7
|
+
* { key, operator, value }
|
|
8
|
+
*/
|
|
9
|
+
export type QueryCondition = [field: string, op: ComparisonOperator, expected: unknown, strict?: boolean] | {
|
|
10
|
+
key: string;
|
|
11
|
+
operator: ComparisonOperator;
|
|
12
|
+
value: unknown;
|
|
13
|
+
strict?: boolean;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Filter a Map of items given an array of query conditions.
|
|
17
|
+
* For each query condition:
|
|
18
|
+
* - If the expected value is empty/null/undefined, it is treated as a match.
|
|
19
|
+
* - For non-fuzzy operators, the condition must strictly match.
|
|
20
|
+
* - For the "any" operator, a fuzzy similarity score is computed.
|
|
21
|
+
* Items with a fuzzy score below a given threshold (e.g., 0.3) are excluded.
|
|
22
|
+
*
|
|
23
|
+
* The overall item score is the average of the scores from all conditions.
|
|
24
|
+
* The results are sorted in descending order of relevance.
|
|
25
|
+
*
|
|
26
|
+
* @param items - A Map containing items to filter.
|
|
27
|
+
* @param queries - An array of query conditions to apply.
|
|
28
|
+
* @returns An array of items that match all query conditions, sorted by relevance.
|
|
29
|
+
*/
|
|
30
|
+
export declare const filterMapItems: <T extends Record<string, any>>(items: Map<string, T>, queries?: QueryCondition[]) => T[];
|
|
31
|
+
export declare const filterMap: <T extends Record<string, any>>(items: Map<string, T>, queries?: QueryCondition[]) => T[];
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './context-collection';
|
|
2
|
+
export * from './context-create';
|
|
3
|
+
export * from './context-object';
|
|
4
|
+
export * from './filter-directive';
|
|
5
|
+
export * from './selector-hook';
|
|
6
|
+
export * from './selectors';
|
|
7
|
+
export * from './storage-manager';
|
|
8
|
+
export * from './types';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ICollectionStore, IStore } from './types';
|
|
2
|
+
type PropertyDescriptor<T> = {
|
|
3
|
+
get?: () => T;
|
|
4
|
+
set?: (value: T) => void;
|
|
5
|
+
value?: T;
|
|
6
|
+
configurable?: boolean;
|
|
7
|
+
enumerable?: boolean;
|
|
8
|
+
writable?: boolean;
|
|
9
|
+
};
|
|
10
|
+
interface SelectOptions {
|
|
11
|
+
required?: boolean;
|
|
12
|
+
updateOnly?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function select<T, R>(store: IStore<T> | ICollectionStore<T>, selectorFn?: (state: any) => R, options?: SelectOptions): (proto: Record<string, any>, propName: string, _descriptor?: PropertyDescriptor<R>) => void;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { IStore, ICollectionStore } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a selector that derives a value from store state
|
|
5
|
+
*
|
|
6
|
+
* @param store The store to observe
|
|
7
|
+
* @param selectorFn Function that transforms the state
|
|
8
|
+
* @returns An observable of the selected state that only emits when the derived value changes
|
|
9
|
+
*/
|
|
10
|
+
export declare function createSelector<T, R>(store: IStore<T>, selectorFn: (state: T) => R): Observable<R>;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a selector for collection stores that derives a value from the collection
|
|
13
|
+
*
|
|
14
|
+
* @param store The collection store to observe
|
|
15
|
+
* @param selectorFn Function that transforms the collection
|
|
16
|
+
* @returns An observable of the selected state that only emits when the derived value changes
|
|
17
|
+
*/
|
|
18
|
+
export declare function createCollectionSelector<T, R>(store: ICollectionStore<T>, selectorFn: (state: Map<string, T>) => R): Observable<R>;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a selector that filters items from a collection
|
|
21
|
+
*
|
|
22
|
+
* @param store The collection store
|
|
23
|
+
* @param filterFn Function that returns true for items to include
|
|
24
|
+
* @returns An observable of filtered items as an array
|
|
25
|
+
*/
|
|
26
|
+
export declare function createFilterSelector<T>(store: ICollectionStore<T>, filterFn: (item: T, key: string) => boolean): Observable<T[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a selector that retrieves a single item from a collection
|
|
29
|
+
*
|
|
30
|
+
* @param store The collection store
|
|
31
|
+
* @param itemKey The key of the item to select
|
|
32
|
+
* @returns An observable of the selected item that emits when the item changes
|
|
33
|
+
*/
|
|
34
|
+
export declare function createItemSelector<T>(store: ICollectionStore<T>, itemKey: string): Observable<T | undefined>;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a selector that counts items in a collection, optionally filtered
|
|
37
|
+
*
|
|
38
|
+
* @param store The collection store
|
|
39
|
+
* @param filterFn Optional function to filter which items to count
|
|
40
|
+
* @returns An observable of the count
|
|
41
|
+
*/
|
|
42
|
+
export declare function createCountSelector<T>(store: ICollectionStore<T>, filterFn?: (item: T, key: string) => boolean): Observable<number>;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a compound selector that depends on multiple other selectors
|
|
45
|
+
*
|
|
46
|
+
* @param selectors Array of source selectors
|
|
47
|
+
* @param combinerFn Function that combines all selector results
|
|
48
|
+
* @returns An observable of the combined result
|
|
49
|
+
*/
|
|
50
|
+
export declare function createCompoundSelector<R, T extends any[]>(selectors: Observable<any>[], combinerFn: (...values: T) => R): Observable<R>;
|