@mhmo91/schmancy 0.2.192 → 0.2.194
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/ai/area.md +125 -0
- package/ai/autocomplete.md +135 -0
- package/ai/avatar.md +178 -0
- package/ai/badge.md +100 -0
- package/ai/busy.md +195 -0
- package/ai/button.md +112 -0
- package/ai/card.md +155 -0
- package/ai/checkbox.md +108 -0
- package/ai/chips.md +180 -0
- package/ai/component-relationships.md +93 -0
- package/ai/dialog.md +109 -0
- package/ai/dropdown.md +238 -0
- package/ai/form.md +148 -0
- package/ai/icons.md +147 -0
- package/ai/index.md +71 -0
- package/ai/input.md +167 -0
- package/ai/layout.md +166 -0
- package/ai/list.md +145 -0
- package/ai/menu.md +217 -0
- package/ai/notification.md +93 -0
- package/ai/radio-group.md +176 -0
- package/ai/select.md +174 -0
- package/ai/sheet.md +122 -0
- package/ai/store.md +235 -0
- package/ai/surface.md +221 -0
- package/ai/table.md +236 -0
- package/ai/tabs.md +71 -0
- package/ai/template.md +144 -0
- package/ai/textarea.md +147 -0
- package/ai/tooltip.md +149 -0
- package/ai/tree.md +279 -0
- package/ai/typography.md +170 -0
- package/dist/ai/area.md +125 -0
- package/dist/ai/autocomplete.md +135 -0
- package/dist/ai/avatar.md +178 -0
- package/dist/ai/badge.md +100 -0
- package/dist/ai/busy.md +195 -0
- package/dist/ai/button.md +112 -0
- package/dist/ai/card.md +155 -0
- package/dist/ai/checkbox.md +108 -0
- package/dist/ai/chips.md +180 -0
- package/dist/ai/component-relationships.md +93 -0
- package/dist/ai/dialog.md +109 -0
- package/dist/ai/dropdown.md +238 -0
- package/dist/ai/form.md +148 -0
- package/dist/ai/icons.md +147 -0
- package/dist/ai/index.md +71 -0
- package/dist/ai/input.md +167 -0
- package/dist/ai/layout.md +166 -0
- package/dist/ai/list.md +145 -0
- package/dist/ai/menu.md +217 -0
- package/dist/ai/notification.md +93 -0
- package/dist/ai/radio-group.md +176 -0
- package/dist/ai/select.md +174 -0
- package/dist/ai/sheet.md +122 -0
- package/dist/ai/store.md +235 -0
- package/dist/ai/surface.md +221 -0
- package/dist/ai/table.md +236 -0
- package/dist/ai/tabs.md +71 -0
- package/dist/ai/template.md +144 -0
- package/dist/ai/textarea.md +147 -0
- package/dist/ai/tooltip.md +149 -0
- package/dist/ai/tree.md +279 -0
- package/dist/ai/typography.md +170 -0
- package/dist/{animated-text-DU8PPnsu.cjs → animated-text-9AM64DHd.cjs} +2 -2
- package/dist/{animated-text-DU8PPnsu.cjs.map → animated-text-9AM64DHd.cjs.map} +1 -1
- package/dist/{animated-text-CRlnEvtJ.js → animated-text-CVStWn5N.js} +3 -3
- package/dist/{animated-text-CRlnEvtJ.js.map → animated-text-CVStWn5N.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-CzFJM7Y4.js +143 -0
- package/dist/area.component-CzFJM7Y4.js.map +1 -0
- package/dist/area.component-WxccFh1z.cjs +8 -0
- package/dist/area.component-WxccFh1z.cjs.map +1 -0
- package/dist/area.js +1 -1
- package/dist/autocomplete-DBXvIJgc.cjs +56 -0
- package/dist/autocomplete-DBXvIJgc.cjs.map +1 -0
- package/dist/{autocomplete-BYVrh34v.js → autocomplete-ih92pPkb.js} +23 -17
- package/dist/autocomplete-ih92pPkb.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-Da4jaDOV.cjs → avatar-Bmg5TXj9.cjs} +2 -2
- package/dist/{avatar-Da4jaDOV.cjs.map → avatar-Bmg5TXj9.cjs.map} +1 -1
- package/dist/{avatar-CZJwWLSE.js → avatar-CgP1tBZq.js} +40 -40
- package/dist/{avatar-CZJwWLSE.js.map → avatar-CgP1tBZq.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.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-JoeyCVVx.cjs → checkbox-DtnX5sT6.cjs} +2 -2
- package/dist/{checkbox-JoeyCVVx.cjs.map → checkbox-DtnX5sT6.cjs.map} +1 -1
- package/dist/{checkbox-2zE3U2CA.js → checkbox-Jxxbjxp0.js} +2 -2
- package/dist/{checkbox-2zE3U2CA.js.map → checkbox-Jxxbjxp0.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-BkXSfa41.cjs → chips-CVDnpVUM.cjs} +2 -2
- package/dist/{chips-BkXSfa41.cjs.map → chips-CVDnpVUM.cjs.map} +1 -1
- package/dist/{chips-DBx_2dFJ.js → chips-lP7ohQep.js} +3 -3
- package/dist/{chips-DBx_2dFJ.js.map → chips-lP7ohQep.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-sbuFYvFc.js → date-range-Ca9WLI4Q.js} +3 -3
- package/dist/{date-range-sbuFYvFc.js.map → date-range-Ca9WLI4Q.js.map} +1 -1
- package/dist/{date-range-TqPcxDV6.cjs → date-range-DbPA5Y-t.cjs} +2 -2
- package/dist/{date-range-TqPcxDV6.cjs.map → date-range-DbPA5Y-t.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-B1vg8_Gp.js → delay-5cCl7ji3.js} +2 -2
- package/dist/{delay-B1vg8_Gp.js.map → delay-5cCl7ji3.js.map} +1 -1
- package/dist/{delay-rMaXv8P_.cjs → delay-BgNgQV2G.cjs} +2 -2
- package/dist/{delay-rMaXv8P_.cjs.map → delay-BgNgQV2G.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{dialog-content-H5JNHI4z.js → dialog-content-9pumpyLD.js} +3 -3
- package/dist/{dialog-content-H5JNHI4z.js.map → dialog-content-9pumpyLD.js.map} +1 -1
- package/dist/{dialog-content-BOJ4BpEr.cjs → dialog-content-qj1E8aye.cjs} +2 -2
- package/dist/{dialog-content-BOJ4BpEr.cjs.map → dialog-content-qj1E8aye.cjs.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-D9xov_XO.cjs → divider-CHckHGEQ.cjs} +2 -2
- package/dist/{divider-D9xov_XO.cjs.map → divider-CHckHGEQ.cjs.map} +1 -1
- package/dist/{divider-BxeCR4pP.js → divider-r8-9eNnl.js} +3 -3
- package/dist/{divider-BxeCR4pP.js.map → divider-r8-9eNnl.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-ltAuKAq_.cjs → dropdown-content-B41MDDRG.cjs} +2 -2
- package/dist/{dropdown-content-ltAuKAq_.cjs.map → dropdown-content-B41MDDRG.cjs.map} +1 -1
- package/dist/{dropdown-content-QrlJDJj9.js → dropdown-content-D-TddflQ.js} +3 -3
- package/dist/{dropdown-content-QrlJDJj9.js.map → dropdown-content-D-TddflQ.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DT3XHFSb.js → flex-Bf0zNqji.js} +2 -2
- package/dist/{flex-DT3XHFSb.js.map → flex-Bf0zNqji.js.map} +1 -1
- package/dist/{flex-CRTV1yz3.cjs → flex-CFv-Zb76.cjs} +2 -2
- package/dist/{flex-CRTV1yz3.cjs.map → flex-CFv-Zb76.cjs.map} +1 -1
- package/dist/{form-D6n2UP9B.cjs → form-BN75s0PI.cjs} +2 -2
- package/dist/{form-D6n2UP9B.cjs.map → form-BN75s0PI.cjs.map} +1 -1
- package/dist/{form-DfCknx7Y.js → form-uYcr1RLJ.js} +2 -2
- package/dist/{form-DfCknx7Y.js.map → form-uYcr1RLJ.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-BmJGenTZ.js → icon-BR-jE0Y2.js} +3 -3
- package/dist/{icon-BmJGenTZ.js.map → icon-BR-jE0Y2.js.map} +1 -1
- package/dist/{icon-Xqq_eMXt.cjs → icon-Cu-imayV.cjs} +2 -2
- package/dist/{icon-Xqq_eMXt.cjs.map → icon-Cu-imayV.cjs.map} +1 -1
- package/dist/{icon-button-DpxC8WQP.js → icon-button-1tZaicyb.js} +3 -3
- package/dist/{icon-button-DpxC8WQP.js.map → icon-button-1tZaicyb.js.map} +1 -1
- package/dist/{icon-button-UiEHOmmk.cjs → icon-button-D0BbHnDL.cjs} +2 -2
- package/dist/{icon-button-UiEHOmmk.cjs.map → icon-button-D0BbHnDL.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +38 -38
- package/dist/{input-o74ZxIRk.cjs → input-B2oV6Hck.cjs} +2 -2
- package/dist/{input-o74ZxIRk.cjs.map → input-B2oV6Hck.cjs.map} +1 -1
- package/dist/{input-DnEvTRuh.js → input-kiz5O3dY.js} +2 -2
- package/dist/{input-DnEvTRuh.js.map → input-kiz5O3dY.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-ChRCTc9A.cjs → list-CMHoPfX9.cjs} +2 -2
- package/dist/{list-ChRCTc9A.cjs.map → list-CMHoPfX9.cjs.map} +1 -1
- package/dist/{list-CPRV9D4J.js → list-wT4DLXCh.js} +2 -2
- package/dist/{list-CPRV9D4J.js.map → list-wT4DLXCh.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-CifwP6Gy.js → litElement.mixin-B9Qdq5S_.js} +2 -2
- package/dist/{litElement.mixin-CifwP6Gy.js.map → litElement.mixin-B9Qdq5S_.js.map} +1 -1
- package/dist/{litElement.mixin-BrC_tdrr.cjs → litElement.mixin-CHvyxfxf.cjs} +2 -2
- package/dist/{litElement.mixin-BrC_tdrr.cjs.map → litElement.mixin-CHvyxfxf.cjs.map} +1 -1
- package/dist/{menu-D08kPl8X.cjs → menu-BcSplMNh.cjs} +2 -2
- package/dist/{menu-D08kPl8X.cjs.map → menu-BcSplMNh.cjs.map} +1 -1
- package/dist/{menu-DZtTU6cT.js → menu-Dl1QU86K.js} +3 -3
- package/dist/{menu-DZtTU6cT.js.map → menu-Dl1QU86K.js.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-service-zNn5My79.cjs → notification-service-BV9ybQBu.cjs} +2 -2
- package/dist/{notification-service-zNn5My79.cjs.map → notification-service-BV9ybQBu.cjs.map} +1 -1
- package/dist/{notification-service-jcW6LcD9.js → notification-service-CC698xHg.js} +3 -3
- package/dist/{notification-service-jcW6LcD9.js.map → notification-service-CC698xHg.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-BeSO48Ou.cjs → option-CkLBgH71.cjs} +2 -2
- package/dist/{option-BeSO48Ou.cjs.map → option-CkLBgH71.cjs.map} +1 -1
- package/dist/{option-XmhVdbQ0.js → option-DDxxXwwc.js} +2 -2
- package/dist/{option-XmhVdbQ0.js.map → option-DDxxXwwc.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-xPdGrSUi.js → payment-card-form-DDTO5_AA.js} +3 -3
- package/dist/{payment-card-form-xPdGrSUi.js.map → payment-card-form-DDTO5_AA.js.map} +1 -1
- package/dist/{payment-card-form-Cs_Kjcge.cjs → payment-card-form-UWbAYNPR.cjs} +2 -2
- package/dist/{payment-card-form-Cs_Kjcge.cjs.map → payment-card-form-UWbAYNPR.cjs.map} +1 -1
- package/dist/{radio-button-BFwFYicE.cjs → radio-button-BykiVxTD.cjs} +2 -2
- package/dist/{radio-button-BFwFYicE.cjs.map → radio-button-BykiVxTD.cjs.map} +1 -1
- package/dist/{radio-button-fAQpF9XC.js → radio-button-wWoxPDfq.js} +2 -2
- package/dist/{radio-button-fAQpF9XC.js.map → radio-button-wWoxPDfq.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-CNCQfw48.cjs → schmancy-steps-container-B1mIGa9M.cjs} +2 -2
- package/dist/{schmancy-steps-container-CNCQfw48.cjs.map → schmancy-steps-container-B1mIGa9M.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-Cd6wx804.js → schmancy-steps-container-ByO98z7L.js} +2 -2
- package/dist/{schmancy-steps-container-Cd6wx804.js.map → schmancy-steps-container-ByO98z7L.js.map} +1 -1
- package/dist/{select-ujdAxZ6K.js → select-BIOhocL7.js} +3 -3
- package/dist/{select-ujdAxZ6K.js.map → select-BIOhocL7.js.map} +1 -1
- package/dist/{select-CzHttZpN.cjs → select-DE57Nios.cjs} +2 -2
- package/dist/{select-CzHttZpN.cjs.map → select-DE57Nios.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-CX5mgzlz.js → sheet-Dh4MLVsU.js} +3 -3
- package/dist/{sheet-CX5mgzlz.js.map → sheet-Dh4MLVsU.js.map} +1 -1
- package/dist/{sheet-ABpUdDjY.cjs → sheet-fZYAWGsm.cjs} +2 -2
- package/dist/{sheet-ABpUdDjY.cjs.map → sheet-fZYAWGsm.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-Drp85D_v.cjs → slider-CejrdmPF.cjs} +2 -2
- package/dist/{slider-Drp85D_v.cjs.map → slider-CejrdmPF.cjs.map} +1 -1
- package/dist/{slider-C4cTmjLY.js → slider-DVlJoDgU.js} +3 -3
- package/dist/{slider-C4cTmjLY.js.map → slider-DVlJoDgU.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-fGK3FMoM.js → spinner-DbTnai_Q.js} +3 -3
- package/dist/{spinner-fGK3FMoM.js.map → spinner-DbTnai_Q.js.map} +1 -1
- package/dist/{spinner-Bmopv8Vn.cjs → spinner-DxVJ7QJZ.cjs} +2 -2
- package/dist/{spinner-Bmopv8Vn.cjs.map → spinner-DxVJ7QJZ.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-BTpQe1mC.cjs → surface-BTuzKmT2.cjs} +2 -2
- package/dist/{surface-BTpQe1mC.cjs.map → surface-BTuzKmT2.cjs.map} +1 -1
- package/dist/{surface-BgYWVNyL.js → surface-DXx1bJN4.js} +2 -2
- package/dist/{surface-BgYWVNyL.js.map → surface-DXx1bJN4.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-BVojeUhT.cjs → table-CBhyHINV.cjs} +2 -2
- package/dist/{table-BVojeUhT.cjs.map → table-CBhyHINV.cjs.map} +1 -1
- package/dist/{table-COmozyPk.js → table-CqUv1TOC.js} +2 -2
- package/dist/{table-COmozyPk.js.map → table-CqUv1TOC.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-DU2bf7Xr.cjs → tabs-compatibility-DPD6jfGF.cjs} +2 -2
- package/dist/{tabs-compatibility-DU2bf7Xr.cjs.map → tabs-compatibility-DPD6jfGF.cjs.map} +1 -1
- package/dist/{tabs-compatibility-BdcN_IDz.js → tabs-compatibility-DUo2f_sV.js} +2 -2
- package/dist/{tabs-compatibility-BdcN_IDz.js.map → tabs-compatibility-DUo2f_sV.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{tailwind.mixin-D-kkSKp-.js → tailwind.mixin-Di7KWye7.js} +2 -2
- package/dist/{tailwind.mixin-D-kkSKp-.js.map → tailwind.mixin-Di7KWye7.js.map} +1 -1
- package/dist/{tailwind.mixin-BAGuwQKs.cjs → tailwind.mixin-Dm5QDZav.cjs} +2 -2
- package/dist/{tailwind.mixin-BAGuwQKs.cjs.map → tailwind.mixin-Dm5QDZav.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-CPyQvAWI.cjs → textarea-CesFdBkm.cjs} +2 -2
- package/dist/{textarea-CPyQvAWI.cjs.map → textarea-CesFdBkm.cjs.map} +1 -1
- package/dist/{textarea-CztnQryA.js → textarea-Dbz18REy.js} +2 -2
- package/dist/{textarea-CztnQryA.js.map → textarea-Dbz18REy.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DRACAw64.cjs → theme-button-Bt2OV4iu.cjs} +2 -2
- package/dist/{theme-button-DRACAw64.cjs.map → theme-button-Bt2OV4iu.cjs.map} +1 -1
- package/dist/{theme-button-DaEkh8la.js → theme-button-lqbT2_LL.js} +2 -2
- package/dist/{theme-button-DaEkh8la.js.map → theme-button-lqbT2_LL.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-Hb2RlmAN.cjs → theme.component-BlBaN7d6.cjs} +2 -2
- package/dist/{theme.component-Hb2RlmAN.cjs.map → theme.component-BlBaN7d6.cjs.map} +1 -1
- package/dist/{theme.component-DkFe9fpE.js → theme.component-xarFSe8p.js} +2 -2
- package/dist/{theme.component-DkFe9fpE.js.map → theme.component-xarFSe8p.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-UKEAXQcC.js → timezone-DwT_pQrj.js} +3 -3
- package/dist/{timezone-UKEAXQcC.js.map → timezone-DwT_pQrj.js.map} +1 -1
- package/dist/{timezone-DpzKnPVI.cjs → timezone-VUMRmZaJ.cjs} +2 -2
- package/dist/{timezone-DpzKnPVI.cjs.map → timezone-VUMRmZaJ.cjs.map} +1 -1
- package/dist/{tooltip-CmvJQPh0.js → tooltip-BKOHVCMK.js} +2 -2
- package/dist/{tooltip-CmvJQPh0.js.map → tooltip-BKOHVCMK.js.map} +1 -1
- package/dist/{tooltip-BuZzFSoa.cjs → tooltip-Cvoroe7w.cjs} +2 -2
- package/dist/{tooltip-BuZzFSoa.cjs.map → tooltip-Cvoroe7w.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-ChJhwwCs.cjs → tree-Cyp2AZ8g.cjs} +2 -2
- package/dist/{tree-ChJhwwCs.cjs.map → tree-Cyp2AZ8g.cjs.map} +1 -1
- package/dist/{tree-BEYMdPfY.js → tree-_FJnHVmP.js} +2 -2
- package/dist/{tree-BEYMdPfY.js.map → tree-_FJnHVmP.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-CQj9HK5k.cjs → typewriter-BIm2tOe4.cjs} +2 -2
- package/dist/{typewriter-CQj9HK5k.cjs.map → typewriter-BIm2tOe4.cjs.map} +1 -1
- package/dist/{typewriter-CFYwWJfp.js → typewriter-DWfXPBni.js} +4 -4
- package/dist/{typewriter-CFYwWJfp.js.map → typewriter-DWfXPBni.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-C8sf8eaH.js → typography-DaKLzjFB.js} +2 -2
- package/dist/{typography-C8sf8eaH.js.map → typography-DaKLzjFB.js.map} +1 -1
- package/dist/{typography-CMvzZ9Ec.cjs → typography-OpLt6LNd.cjs} +2 -2
- package/dist/{typography-CMvzZ9Ec.cjs.map → typography-OpLt6LNd.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +2 -1
- package/types/src/area/area.service.d.ts +53 -4
- package/types/src/area/router.types.d.ts +41 -2
- package/types/src/autocomplete/autocomplete.d.ts +7 -0
- package/dist/area.component-BoR212xW.cjs +0 -8
- package/dist/area.component-BoR212xW.cjs.map +0 -1
- package/dist/area.component-CRk-Eoq4.js +0 -107
- package/dist/area.component-CRk-Eoq4.js.map +0 -1
- package/dist/autocomplete-BYVrh34v.js.map +0 -1
- package/dist/autocomplete-C7HIgBT5.cjs +0 -56
- package/dist/autocomplete-C7HIgBT5.cjs.map +0 -1
package/dist/ai/form.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Schmancy Form - AI Reference
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
// Form Container
|
|
5
|
+
<schmancy-form
|
|
6
|
+
@submit=${handleSubmit}
|
|
7
|
+
@validate=${handleValidation}
|
|
8
|
+
@change=${handleChange}>
|
|
9
|
+
<!-- Form fields go here -->
|
|
10
|
+
</schmancy-form>
|
|
11
|
+
|
|
12
|
+
// Form v2 (enhanced version with model binding)
|
|
13
|
+
<schmancy-form-v2
|
|
14
|
+
.model=${formData}
|
|
15
|
+
.validators=${validators}
|
|
16
|
+
@submit=${handleSubmit}
|
|
17
|
+
@change=${handleChange}>
|
|
18
|
+
<!-- Form fields go here -->
|
|
19
|
+
</schmancy-form-v2>
|
|
20
|
+
|
|
21
|
+
// Form Methods
|
|
22
|
+
form.submit() -> Promise<any>
|
|
23
|
+
form.reset() -> void
|
|
24
|
+
form.validate() -> Promise<boolean>
|
|
25
|
+
form.setErrors({fieldName: errorMessage}) -> void
|
|
26
|
+
form.getValues() -> Object
|
|
27
|
+
|
|
28
|
+
// Events
|
|
29
|
+
@submit // { detail: { values: Object, isValid: boolean } }
|
|
30
|
+
@validate // { detail: { errors: Object, isValid: boolean } }
|
|
31
|
+
@change // { detail: { name: string, value: any, values: Object } }
|
|
32
|
+
|
|
33
|
+
// Examples
|
|
34
|
+
// 1. Basic form with validation
|
|
35
|
+
<schmancy-form @submit=${(e) => {
|
|
36
|
+
const values = e.detail.values;
|
|
37
|
+
console.log('Form submitted:', values);
|
|
38
|
+
}}>
|
|
39
|
+
<schmancy-input
|
|
40
|
+
name="email"
|
|
41
|
+
label="Email Address"
|
|
42
|
+
required
|
|
43
|
+
error=${emailError}>
|
|
44
|
+
</schmancy-input>
|
|
45
|
+
|
|
46
|
+
<schmancy-button type="submit">Submit</schmancy-button>
|
|
47
|
+
</schmancy-form>
|
|
48
|
+
|
|
49
|
+
// 2. Form v2 with model binding and validators
|
|
50
|
+
<schmancy-form-v2
|
|
51
|
+
.model=${{
|
|
52
|
+
username: '',
|
|
53
|
+
password: ''
|
|
54
|
+
}}
|
|
55
|
+
.validators=${{
|
|
56
|
+
username: (value) => value ? '' : 'Username is required',
|
|
57
|
+
password: (value) => value.length >= 8 ? '' : 'Password must be at least 8 characters'
|
|
58
|
+
}}
|
|
59
|
+
@submit=${(e) => console.log('Valid data:', e.detail.values)}>
|
|
60
|
+
|
|
61
|
+
<schmancy-input name="username" label="Username"></schmancy-input>
|
|
62
|
+
<schmancy-input name="password" label="Password" type="password"></schmancy-input>
|
|
63
|
+
|
|
64
|
+
<schmancy-button type="submit">Login</schmancy-button>
|
|
65
|
+
</schmancy-form-v2>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Related Components
|
|
69
|
+
- **[Input](./input.md)**: Form input fields for text entry
|
|
70
|
+
- **[Textarea](./textarea.md)**: Multi-line text input fields
|
|
71
|
+
- **[Select](./select.md)**: Dropdown selection fields
|
|
72
|
+
- **[Checkbox](./checkbox.md)**: Boolean selection controls
|
|
73
|
+
- **[Radio-Group](./radio-group.md)**: Exclusive option selection controls
|
|
74
|
+
- **[Button](./button.md)**: Action triggers for form submission
|
|
75
|
+
|
|
76
|
+
## Technical Details
|
|
77
|
+
|
|
78
|
+
### Form Field Common Attributes
|
|
79
|
+
All form fields (input, textarea, select, checkbox, radio) support these attributes:
|
|
80
|
+
```js
|
|
81
|
+
name="field-name" // Field identifier
|
|
82
|
+
label="Field Label" // Display label
|
|
83
|
+
required? // Makes field required
|
|
84
|
+
disabled? // Disables the field
|
|
85
|
+
readonly? // Makes field read-only
|
|
86
|
+
value="initial value" // Sets initial value
|
|
87
|
+
error="Error message" // Shows validation error
|
|
88
|
+
success? // Shows success state
|
|
89
|
+
placeholder="Text" // Placeholder text (where applicable)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Form v2 Interfaces
|
|
93
|
+
```typescript
|
|
94
|
+
interface FormModel {
|
|
95
|
+
[key: string]: any;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
interface FormValidators {
|
|
99
|
+
[key: string]: (value: any, allValues: FormModel) => string | null;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
interface FormErrors {
|
|
103
|
+
[key: string]: string;
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Common Use Cases
|
|
108
|
+
|
|
109
|
+
1. **Multi-step forms**: Create wizard-like experiences
|
|
110
|
+
```html
|
|
111
|
+
<schmancy-form id="step1" @submit=${nextStep}>
|
|
112
|
+
<!-- Step 1 fields -->
|
|
113
|
+
</schmancy-form>
|
|
114
|
+
|
|
115
|
+
<schmancy-form id="step2" @submit=${submitAll} style="display: none;">
|
|
116
|
+
<!-- Step 2 fields -->
|
|
117
|
+
</schmancy-form>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
2. **Dynamic form fields**: Add or remove fields based on user input
|
|
121
|
+
```js
|
|
122
|
+
<schmancy-form-v2
|
|
123
|
+
.model=${dynamicModel}
|
|
124
|
+
.validators=${dynamicValidators}>
|
|
125
|
+
${dynamicFields.map(field => html`
|
|
126
|
+
<schmancy-input name=${field.name} label=${field.label}></schmancy-input>
|
|
127
|
+
`)}
|
|
128
|
+
<button type="button" @click=${addField}>Add Field</button>
|
|
129
|
+
</schmancy-form-v2>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
3. **Form with server validation**: Handle backend validation errors
|
|
133
|
+
```js
|
|
134
|
+
async function submitForm(e) {
|
|
135
|
+
try {
|
|
136
|
+
const response = await fetch('/api/submit', {
|
|
137
|
+
method: 'POST',
|
|
138
|
+
body: JSON.stringify(e.detail.values)
|
|
139
|
+
});
|
|
140
|
+
const data = await response.json();
|
|
141
|
+
if (!data.success) {
|
|
142
|
+
formRef.setErrors(data.errors);
|
|
143
|
+
}
|
|
144
|
+
} catch (error) {
|
|
145
|
+
console.error(error);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
package/dist/ai/icons.md
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Schmancy Icons - AI Reference
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
// Basic Icon
|
|
5
|
+
<schmancy-icon
|
|
6
|
+
icon="icon-name"
|
|
7
|
+
size="small|medium|large|x-large"
|
|
8
|
+
color="primary|secondary|success|warning|danger|info|currentColor">
|
|
9
|
+
</schmancy-icon>
|
|
10
|
+
|
|
11
|
+
// Icon with custom size
|
|
12
|
+
<schmancy-icon
|
|
13
|
+
icon="home"
|
|
14
|
+
size="24px">
|
|
15
|
+
</schmancy-icon>
|
|
16
|
+
|
|
17
|
+
// Icon with custom color
|
|
18
|
+
<schmancy-icon
|
|
19
|
+
icon="star"
|
|
20
|
+
color="#f5a623">
|
|
21
|
+
</schmancy-icon>
|
|
22
|
+
|
|
23
|
+
// Icon Properties
|
|
24
|
+
icon: string // Icon name to display
|
|
25
|
+
size: string // Size: "small" (16px), "medium" (24px), "large" (32px), "x-large" (48px), or custom size
|
|
26
|
+
color: string // Color: semantic colors, CSS color values, or "currentColor"
|
|
27
|
+
rotate: number // Rotation in degrees
|
|
28
|
+
flip: string // Flip transformation: "horizontal", "vertical", "both"
|
|
29
|
+
spin: boolean // Apply a spinning animation
|
|
30
|
+
clickable: boolean // Make icon clickable with hover effects
|
|
31
|
+
|
|
32
|
+
// Icon Events
|
|
33
|
+
@click // Fires when icon is clicked
|
|
34
|
+
|
|
35
|
+
// Available Icons
|
|
36
|
+
// The library includes a comprehensive set of icons. Some common ones:
|
|
37
|
+
// - UI Actions: "add", "remove", "edit", "delete", "search", "close", "check", "menu"
|
|
38
|
+
// - Navigation: "home", "back", "forward", "up", "down", "download", "upload"
|
|
39
|
+
// - Communication: "mail", "chat", "phone", "notification", "share"
|
|
40
|
+
// - Media: "play", "pause", "stop", "volume", "camera", "image"
|
|
41
|
+
// - Objects: "file", "folder", "document", "calendar", "clock", "location"
|
|
42
|
+
// - Social: "user", "group", "like", "star", "settings"
|
|
43
|
+
// - Alerts: "info", "warning", "error", "success"
|
|
44
|
+
// - Arrows: "arrow-up", "arrow-right", "arrow-down", "arrow-left"
|
|
45
|
+
// - Chevrons: "chevron-up", "chevron-right", "chevron-down", "chevron-left"
|
|
46
|
+
|
|
47
|
+
// Examples
|
|
48
|
+
// Basic icon usage
|
|
49
|
+
<schmancy-icon icon="home"></schmancy-icon>
|
|
50
|
+
|
|
51
|
+
// Icons with different sizes
|
|
52
|
+
<div>
|
|
53
|
+
<schmancy-icon icon="star" size="small"></schmancy-icon>
|
|
54
|
+
<schmancy-icon icon="star" size="medium"></schmancy-icon>
|
|
55
|
+
<schmancy-icon icon="star" size="large"></schmancy-icon>
|
|
56
|
+
<schmancy-icon icon="star" size="x-large"></schmancy-icon>
|
|
57
|
+
<schmancy-icon icon="star" size="64px"></schmancy-icon>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
// Icons with different colors
|
|
61
|
+
<div>
|
|
62
|
+
<schmancy-icon icon="info" color="info"></schmancy-icon>
|
|
63
|
+
<schmancy-icon icon="check" color="success"></schmancy-icon>
|
|
64
|
+
<schmancy-icon icon="warning" color="warning"></schmancy-icon>
|
|
65
|
+
<schmancy-icon icon="error" color="danger"></schmancy-icon>
|
|
66
|
+
<schmancy-icon icon="help" color="primary"></schmancy-icon>
|
|
67
|
+
<schmancy-icon icon="settings" color="secondary"></schmancy-icon>
|
|
68
|
+
<schmancy-icon icon="star" color="#f5a623"></schmancy-icon>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
// Icon in a button
|
|
72
|
+
<schmancy-button>
|
|
73
|
+
<schmancy-icon slot="prefix" icon="download"></schmancy-icon>
|
|
74
|
+
Download
|
|
75
|
+
</schmancy-button>
|
|
76
|
+
|
|
77
|
+
<schmancy-icon-button icon="edit"></schmancy-icon-button>
|
|
78
|
+
|
|
79
|
+
// Icon with rotation and flip
|
|
80
|
+
<div>
|
|
81
|
+
<schmancy-icon icon="arrow-right" rotate="45"></schmancy-icon>
|
|
82
|
+
<schmancy-icon icon="arrow-right" rotate="90"></schmancy-icon>
|
|
83
|
+
<schmancy-icon icon="arrow-right" rotate="180"></schmancy-icon>
|
|
84
|
+
<schmancy-icon icon="arrow-right" rotate="270"></schmancy-icon>
|
|
85
|
+
<schmancy-icon icon="arrow-right" flip="horizontal"></schmancy-icon>
|
|
86
|
+
<schmancy-icon icon="arrow-right" flip="vertical"></schmancy-icon>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
// Spinning icon
|
|
90
|
+
<schmancy-icon icon="refresh" spin></schmancy-icon>
|
|
91
|
+
|
|
92
|
+
// Loading state with icon
|
|
93
|
+
<div>
|
|
94
|
+
<schmancy-icon icon="refresh" spin></schmancy-icon>
|
|
95
|
+
<span>Loading...</span>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
// Icon in form fields
|
|
99
|
+
<schmancy-input>
|
|
100
|
+
<schmancy-icon slot="prefix" icon="search"></schmancy-icon>
|
|
101
|
+
</schmancy-input>
|
|
102
|
+
|
|
103
|
+
<schmancy-input type="password">
|
|
104
|
+
<schmancy-icon
|
|
105
|
+
slot="suffix"
|
|
106
|
+
icon=${passwordVisible ? "eye-off" : "eye"}
|
|
107
|
+
clickable
|
|
108
|
+
@click=${togglePasswordVisibility}>
|
|
109
|
+
</schmancy-icon>
|
|
110
|
+
</schmancy-input>
|
|
111
|
+
|
|
112
|
+
// Navigation menu with icons
|
|
113
|
+
<schmancy-list interactive>
|
|
114
|
+
<schmancy-list-item>
|
|
115
|
+
<schmancy-icon slot="start" icon="home"></schmancy-icon>
|
|
116
|
+
Home
|
|
117
|
+
</schmancy-list-item>
|
|
118
|
+
<schmancy-list-item>
|
|
119
|
+
<schmancy-icon slot="start" icon="user"></schmancy-icon>
|
|
120
|
+
Profile
|
|
121
|
+
</schmancy-list-item>
|
|
122
|
+
<schmancy-list-item>
|
|
123
|
+
<schmancy-icon slot="start" icon="settings"></schmancy-icon>
|
|
124
|
+
Settings
|
|
125
|
+
</schmancy-list-item>
|
|
126
|
+
<schmancy-list-item>
|
|
127
|
+
<schmancy-icon slot="start" icon="help"></schmancy-icon>
|
|
128
|
+
Help
|
|
129
|
+
</schmancy-list-item>
|
|
130
|
+
</schmancy-list>
|
|
131
|
+
|
|
132
|
+
// Status indicators with icons
|
|
133
|
+
<div>
|
|
134
|
+
<div style="display: flex; align-items: center; gap: 8px;">
|
|
135
|
+
<schmancy-icon icon="check-circle" color="success"></schmancy-icon>
|
|
136
|
+
<span>Completed</span>
|
|
137
|
+
</div>
|
|
138
|
+
<div style="display: flex; align-items: center; gap: 8px;">
|
|
139
|
+
<schmancy-icon icon="clock" color="warning"></schmancy-icon>
|
|
140
|
+
<span>Pending</span>
|
|
141
|
+
</div>
|
|
142
|
+
<div style="display: flex; align-items: center; gap: 8px;">
|
|
143
|
+
<schmancy-icon icon="x-circle" color="danger"></schmancy-icon>
|
|
144
|
+
<span>Failed</span>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
```
|
package/dist/ai/index.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Schmancy Component Library - AI Reference
|
|
2
|
+
|
|
3
|
+
This directory contains concise reference documentation for the Schmancy component library, formatted for AI assistance.
|
|
4
|
+
|
|
5
|
+
## Components
|
|
6
|
+
|
|
7
|
+
- [Area](./area.md) - Routing and subscription API for application areas
|
|
8
|
+
- [Button](./button.md) - Primary, secondary, and tertiary buttons with various states
|
|
9
|
+
- [Dialog](./dialog.md) - Modal dialog boxes for confirmations and custom content
|
|
10
|
+
- [Form](./form.md) - Form containers with validation capabilities
|
|
11
|
+
- [Input](./input.md) - Text input fields with various types and features
|
|
12
|
+
- [Layout](./layout.md) - Flex and grid layout components
|
|
13
|
+
- [List](./list.md) - Interactive lists with selection support
|
|
14
|
+
- [Notification](./notification.md) - Toast notifications and alerts
|
|
15
|
+
- [Sheet](./sheet.md) - Side panels and drawers
|
|
16
|
+
- [Store](./store.md) - State management system
|
|
17
|
+
- [Tabs](./tabs.md) - Tabbed interface components
|
|
18
|
+
|
|
19
|
+
## Reference Format
|
|
20
|
+
|
|
21
|
+
Each reference file follows a consistent pattern:
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
// Component name and basic usage
|
|
25
|
+
<component-name attribute="value" boolean-attribute>
|
|
26
|
+
Content or children
|
|
27
|
+
</component-name>
|
|
28
|
+
|
|
29
|
+
// Component variations and options
|
|
30
|
+
<component-name
|
|
31
|
+
option1="value"
|
|
32
|
+
option2>
|
|
33
|
+
<!-- Structure examples -->
|
|
34
|
+
</component-name>
|
|
35
|
+
|
|
36
|
+
// Component methods and events
|
|
37
|
+
component.method() -> returnType
|
|
38
|
+
@event // Event description with { detail: { properties } }
|
|
39
|
+
|
|
40
|
+
// Examples of common usage patterns (numbered for clarity)
|
|
41
|
+
// 1. Basic usage
|
|
42
|
+
<component-name attribute="value">
|
|
43
|
+
Example content
|
|
44
|
+
</component-name>
|
|
45
|
+
|
|
46
|
+
// 2. Advanced configuration
|
|
47
|
+
<component-name attribute="value" advanced-config="true">
|
|
48
|
+
Complex example
|
|
49
|
+
</component-name>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Each component documentation also includes:
|
|
53
|
+
|
|
54
|
+
- **Related Components**: Links to related components with relationship descriptions
|
|
55
|
+
- **Technical Details**: Interfaces, types, CSS custom properties
|
|
56
|
+
- **Common Use Cases**: Practical examples with explanations
|
|
57
|
+
|
|
58
|
+
This format is designed to quickly convey:
|
|
59
|
+
1. Component tag names and attributes
|
|
60
|
+
2. Available options and variations
|
|
61
|
+
3. Component methods and events
|
|
62
|
+
4. Relationships to other components
|
|
63
|
+
5. Practical usage patterns
|
|
64
|
+
|
|
65
|
+
For detailed documentation guidelines, see [template.md](./template.md).
|
|
66
|
+
|
|
67
|
+
## Library Structure
|
|
68
|
+
|
|
69
|
+
The Schmancy library is organized into individual component directories under `/src`, each exporting its components through an `index.ts` file. The main library entry point is `/src/index.ts` which re-exports all components.
|
|
70
|
+
|
|
71
|
+
Most components follow LitElement patterns with TypeScript typing and are designed to be used with a reactive rendering system like lit-html.
|
package/dist/ai/input.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Schmancy Input - AI Reference
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
// Text Input
|
|
5
|
+
<schmancy-input
|
|
6
|
+
name="field-name"
|
|
7
|
+
label="Field Label"
|
|
8
|
+
value="initial value"
|
|
9
|
+
type="text|password|email|number|tel|url|search|date"
|
|
10
|
+
placeholder="Placeholder text"
|
|
11
|
+
required?
|
|
12
|
+
disabled?
|
|
13
|
+
readonly?
|
|
14
|
+
error="Error message"
|
|
15
|
+
success?
|
|
16
|
+
size="small|medium|large"
|
|
17
|
+
@input=${handleInput}
|
|
18
|
+
@change=${handleChange}
|
|
19
|
+
@focus=${handleFocus}
|
|
20
|
+
@blur=${handleBlur}>
|
|
21
|
+
</schmancy-input>
|
|
22
|
+
|
|
23
|
+
// Input v2 (enhanced version with formatting and validation)
|
|
24
|
+
<schmancy-input-v2
|
|
25
|
+
name="field-name"
|
|
26
|
+
label="Field Label"
|
|
27
|
+
value="initial value"
|
|
28
|
+
type="text|password|email|number|tel|url|search|date"
|
|
29
|
+
placeholder="Placeholder text"
|
|
30
|
+
required?
|
|
31
|
+
disabled?
|
|
32
|
+
readonly?
|
|
33
|
+
error="Error message"
|
|
34
|
+
success?
|
|
35
|
+
size="small|medium|large"
|
|
36
|
+
.format=${(value) => formattedValue}
|
|
37
|
+
.parse=${(displayValue) => parsedValue}
|
|
38
|
+
.validate=${(value) => errorMessage}
|
|
39
|
+
@input=${handleInput}
|
|
40
|
+
@change=${handleChange}>
|
|
41
|
+
</schmancy-input-v2>
|
|
42
|
+
|
|
43
|
+
// Input Methods
|
|
44
|
+
input.focus() -> void
|
|
45
|
+
input.blur() -> void
|
|
46
|
+
input.validate() -> boolean
|
|
47
|
+
input.setCustomValidity(message) -> void
|
|
48
|
+
input.select() -> void
|
|
49
|
+
|
|
50
|
+
// Events
|
|
51
|
+
@input // { target: { value: string } }
|
|
52
|
+
@change // { target: { value: string } }
|
|
53
|
+
@focus // { target: HTMLElement }
|
|
54
|
+
@blur // { target: HTMLElement }
|
|
55
|
+
|
|
56
|
+
// Examples
|
|
57
|
+
// 1. Basic input with validation
|
|
58
|
+
<schmancy-input
|
|
59
|
+
name="email"
|
|
60
|
+
label="Email Address"
|
|
61
|
+
type="email"
|
|
62
|
+
required
|
|
63
|
+
placeholder="Enter your email"
|
|
64
|
+
@change=${(e) => console.log(e.target.value)}>
|
|
65
|
+
</schmancy-input>
|
|
66
|
+
|
|
67
|
+
// 2. Input with currency formatting
|
|
68
|
+
<schmancy-input-v2
|
|
69
|
+
name="amount"
|
|
70
|
+
label="Amount"
|
|
71
|
+
type="number"
|
|
72
|
+
.format=${(value) => `$${value.toFixed(2)}`}
|
|
73
|
+
.parse=${(value) => parseFloat(value.replace('$', ''))}
|
|
74
|
+
.validate=${(value) => value < 0 ? 'Amount must be positive' : ''}>
|
|
75
|
+
</schmancy-input-v2>
|
|
76
|
+
|
|
77
|
+
// 3. Input with prefix/suffix
|
|
78
|
+
<schmancy-input label="Price">
|
|
79
|
+
<span slot="prefix">$</span>
|
|
80
|
+
<span slot="suffix">.00</span>
|
|
81
|
+
</schmancy-input>
|
|
82
|
+
|
|
83
|
+
// 4. Input with icons
|
|
84
|
+
<schmancy-input label="Search">
|
|
85
|
+
<schmancy-icon slot="prefix" icon="search"></schmancy-icon>
|
|
86
|
+
<schmancy-icon slot="suffix" icon="close" @click=${clearInput}></schmancy-icon>
|
|
87
|
+
</schmancy-input>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Related Components
|
|
91
|
+
- **[Form](./form.md)**: Container for input and other form components
|
|
92
|
+
- **[Textarea](./textarea.md)**: Multi-line text input fields
|
|
93
|
+
- **[Icons](./icons.md)**: Can be used within input slots
|
|
94
|
+
- **[Autocomplete](./autocomplete.md)**: Extended input with suggestions
|
|
95
|
+
|
|
96
|
+
## Technical Details
|
|
97
|
+
|
|
98
|
+
### Slots
|
|
99
|
+
```html
|
|
100
|
+
prefix: Content displayed before the input field
|
|
101
|
+
suffix: Content displayed after the input field
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### CSS Custom Properties
|
|
105
|
+
```css
|
|
106
|
+
--schmancy-input-height: /* Controls the input height */
|
|
107
|
+
--schmancy-input-border-color: /* Controls the border color */
|
|
108
|
+
--schmancy-input-focus-color: /* Controls the focus color */
|
|
109
|
+
--schmancy-input-error-color: /* Controls the error state color */
|
|
110
|
+
--schmancy-input-success-color: /* Controls the success state color */
|
|
111
|
+
--schmancy-input-font-size: /* Controls the font size */
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Input v2 Interfaces
|
|
115
|
+
```typescript
|
|
116
|
+
interface InputValidator {
|
|
117
|
+
(value: any): string | null;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
interface InputFormatter {
|
|
121
|
+
(value: any): string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
interface InputParser {
|
|
125
|
+
(displayValue: string): any;
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Common Use Cases
|
|
130
|
+
|
|
131
|
+
1. **Password input with toggle visibility**
|
|
132
|
+
```html
|
|
133
|
+
<schmancy-input
|
|
134
|
+
type="password"
|
|
135
|
+
label="Password"
|
|
136
|
+
name="password">
|
|
137
|
+
<schmancy-icon
|
|
138
|
+
slot="suffix"
|
|
139
|
+
icon="eye"
|
|
140
|
+
@click=${togglePasswordVisibility}>
|
|
141
|
+
</schmancy-icon>
|
|
142
|
+
</schmancy-input>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
2. **Validating email format**
|
|
146
|
+
```html
|
|
147
|
+
<schmancy-input-v2
|
|
148
|
+
type="email"
|
|
149
|
+
label="Email"
|
|
150
|
+
name="email"
|
|
151
|
+
.validate=${value => {
|
|
152
|
+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
153
|
+
return emailRegex.test(value) ? '' : 'Please enter a valid email';
|
|
154
|
+
}}>
|
|
155
|
+
</schmancy-input-v2>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
3. **Input with character count**
|
|
159
|
+
```html
|
|
160
|
+
<schmancy-input
|
|
161
|
+
label="Message"
|
|
162
|
+
name="message"
|
|
163
|
+
maxlength="100"
|
|
164
|
+
@input=${e => updateCharCount(e.target.value.length)}>
|
|
165
|
+
<span slot="suffix" id="charCount">0/100</span>
|
|
166
|
+
</schmancy-input>
|
|
167
|
+
```
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Schmancy Layout - AI Reference
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
// Grid Layout
|
|
5
|
+
<schmancy-grid
|
|
6
|
+
columns="3" // Number of columns or template
|
|
7
|
+
rows="auto" // Number of rows or template
|
|
8
|
+
gap="16px" // Gap between items
|
|
9
|
+
column-gap="16px" // Column-specific gap
|
|
10
|
+
row-gap="16px" // Row-specific gap
|
|
11
|
+
justify-items="start|center|end|stretch"
|
|
12
|
+
align-items="start|center|end|stretch"
|
|
13
|
+
justify-content="start|center|end|space-between|space-around|space-evenly"
|
|
14
|
+
align-content="start|center|end|space-between|space-around|space-evenly">
|
|
15
|
+
|
|
16
|
+
<div>Item 1</div>
|
|
17
|
+
<div>Item 2</div>
|
|
18
|
+
<div>Item 3</div>
|
|
19
|
+
</schmancy-grid>
|
|
20
|
+
|
|
21
|
+
// Advanced grid with template
|
|
22
|
+
<schmancy-grid
|
|
23
|
+
columns="repeat(12, 1fr)"
|
|
24
|
+
rows="auto auto 1fr"
|
|
25
|
+
template-areas="
|
|
26
|
+
'header header header header'
|
|
27
|
+
'sidebar content content content'
|
|
28
|
+
'footer footer footer footer'
|
|
29
|
+
">
|
|
30
|
+
<div style="grid-area: header">Header</div>
|
|
31
|
+
<div style="grid-area: sidebar">Sidebar</div>
|
|
32
|
+
<div style="grid-area: content">Content</div>
|
|
33
|
+
<div style="grid-area: footer">Footer</div>
|
|
34
|
+
</schmancy-grid>
|
|
35
|
+
|
|
36
|
+
// Flex Layout
|
|
37
|
+
<schmancy-flex
|
|
38
|
+
direction="row|column|row-reverse|column-reverse"
|
|
39
|
+
wrap="nowrap|wrap|wrap-reverse"
|
|
40
|
+
justify-content="start|center|end|space-between|space-around|space-evenly"
|
|
41
|
+
align-items="start|center|end|stretch|baseline"
|
|
42
|
+
align-content="start|center|end|space-between|space-around|space-evenly"
|
|
43
|
+
gap="16px" // Gap between items
|
|
44
|
+
column-gap="16px" // Column-specific gap
|
|
45
|
+
row-gap="16px"> // Row-specific gap
|
|
46
|
+
|
|
47
|
+
<div>Item 1</div>
|
|
48
|
+
<div>Item 2</div>
|
|
49
|
+
<div style="flex: 1">Flexible Item</div>
|
|
50
|
+
</schmancy-flex>
|
|
51
|
+
|
|
52
|
+
// Responsive layouts (using attributes)
|
|
53
|
+
<schmancy-grid
|
|
54
|
+
columns="1"
|
|
55
|
+
columns-md="2"
|
|
56
|
+
columns-lg="3"
|
|
57
|
+
columns-xl="4"
|
|
58
|
+
gap="8px"
|
|
59
|
+
gap-md="16px"
|
|
60
|
+
gap-lg="24px">
|
|
61
|
+
|
|
62
|
+
<!-- Content -->
|
|
63
|
+
</schmancy-grid>
|
|
64
|
+
|
|
65
|
+
<schmancy-flex
|
|
66
|
+
direction="column"
|
|
67
|
+
direction-md="row"
|
|
68
|
+
align-items="center"
|
|
69
|
+
justify-content-md="space-between">
|
|
70
|
+
|
|
71
|
+
<!-- Content -->
|
|
72
|
+
</schmancy-flex>
|
|
73
|
+
|
|
74
|
+
// Scroll Container
|
|
75
|
+
<schmancy-scroll
|
|
76
|
+
direction="vertical|horizontal|both"
|
|
77
|
+
scrollbar="auto|always|hover|none">
|
|
78
|
+
|
|
79
|
+
<!-- Scrollable content -->
|
|
80
|
+
</schmancy-scroll>
|
|
81
|
+
|
|
82
|
+
// Layout v2 Components (enhanced versions)
|
|
83
|
+
<schmancy-flex-v2
|
|
84
|
+
display="flex|inline-flex"
|
|
85
|
+
direction="row|column"
|
|
86
|
+
wrap="nowrap|wrap|wrap-reverse"
|
|
87
|
+
justify="flex-start|flex-end|center|space-between|space-around|space-evenly"
|
|
88
|
+
items="flex-start|flex-end|center|stretch|baseline"
|
|
89
|
+
content="flex-start|flex-end|center|space-between|space-around|space-evenly"
|
|
90
|
+
gap="none|xs|sm|md|lg|xl">
|
|
91
|
+
|
|
92
|
+
<!-- Content -->
|
|
93
|
+
</schmancy-flex-v2>
|
|
94
|
+
|
|
95
|
+
<schmancy-grid-v2
|
|
96
|
+
display="grid|inline-grid"
|
|
97
|
+
template-columns="1fr 1fr|repeat(3, 1fr)"
|
|
98
|
+
template-rows="auto|1fr auto"
|
|
99
|
+
template-areas="'header header' 'sidebar content' 'footer footer'"
|
|
100
|
+
gap="none|xs|sm|md|lg|xl"
|
|
101
|
+
justify-content="start|end|center|stretch|space-around|space-between|space-evenly"
|
|
102
|
+
align-content="start|end|center|stretch|space-around|space-between|space-evenly"
|
|
103
|
+
justify-items="start|end|center|stretch"
|
|
104
|
+
align-items="start|end|center|stretch">
|
|
105
|
+
|
|
106
|
+
<!-- Content -->
|
|
107
|
+
</schmancy-grid-v2>
|
|
108
|
+
|
|
109
|
+
// Examples
|
|
110
|
+
// Responsive grid layout
|
|
111
|
+
<schmancy-grid
|
|
112
|
+
columns="1"
|
|
113
|
+
columns-md="2"
|
|
114
|
+
columns-lg="4"
|
|
115
|
+
gap="16px">
|
|
116
|
+
<div>Card 1</div>
|
|
117
|
+
<div>Card 2</div>
|
|
118
|
+
<div>Card 3</div>
|
|
119
|
+
<div>Card 4</div>
|
|
120
|
+
</schmancy-grid>
|
|
121
|
+
|
|
122
|
+
// Flex layout for a form
|
|
123
|
+
<schmancy-flex
|
|
124
|
+
direction="column"
|
|
125
|
+
gap="16px">
|
|
126
|
+
<h2>Contact Form</h2>
|
|
127
|
+
<schmancy-input label="Name"></schmancy-input>
|
|
128
|
+
<schmancy-input label="Email"></schmancy-input>
|
|
129
|
+
<schmancy-textarea label="Message"></schmancy-textarea>
|
|
130
|
+
|
|
131
|
+
<schmancy-flex
|
|
132
|
+
direction="row"
|
|
133
|
+
justify-content="end"
|
|
134
|
+
gap="8px">
|
|
135
|
+
<schmancy-button kind="secondary">Cancel</schmancy-button>
|
|
136
|
+
<schmancy-button kind="primary">Submit</schmancy-button>
|
|
137
|
+
</schmancy-flex>
|
|
138
|
+
</schmancy-flex>
|
|
139
|
+
|
|
140
|
+
// App layout with header, sidebar and content
|
|
141
|
+
<schmancy-grid
|
|
142
|
+
style="height: 100vh"
|
|
143
|
+
template-areas="
|
|
144
|
+
'header header'
|
|
145
|
+
'sidebar content'
|
|
146
|
+
"
|
|
147
|
+
template-rows="64px 1fr"
|
|
148
|
+
template-columns="250px 1fr">
|
|
149
|
+
|
|
150
|
+
<div style="grid-area: header">
|
|
151
|
+
<schmancy-appbar>App Title</schmancy-appbar>
|
|
152
|
+
</div>
|
|
153
|
+
|
|
154
|
+
<div style="grid-area: sidebar">
|
|
155
|
+
<schmancy-list>
|
|
156
|
+
<schmancy-list-item>Dashboard</schmancy-list-item>
|
|
157
|
+
<schmancy-list-item>Settings</schmancy-list-item>
|
|
158
|
+
<schmancy-list-item>Profile</schmancy-list-item>
|
|
159
|
+
</schmancy-list>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<schmancy-scroll style="grid-area: content">
|
|
163
|
+
<!-- Main content -->
|
|
164
|
+
</schmancy-scroll>
|
|
165
|
+
</schmancy-grid>
|
|
166
|
+
```
|