@mhmo91/schmancy 0.4.13 → 0.4.15
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/busy.md +6 -7
- package/ai/button.md +5 -5
- package/ai/card.md +1 -1
- package/ai/checkbox.md +15 -25
- package/ai/form.md +63 -66
- package/ai/input.md +33 -28
- package/ai/notification.md +47 -61
- package/ai/radio-group.md +47 -29
- package/ai/select.md +3 -3
- package/ai/typography.md +12 -12
- package/dist/ai/busy.md +6 -7
- package/dist/ai/button.md +5 -5
- package/dist/ai/card.md +1 -1
- package/dist/ai/checkbox.md +15 -25
- package/dist/ai/form.md +63 -66
- package/dist/ai/input.md +33 -28
- package/dist/ai/notification.md +47 -61
- package/dist/ai/radio-group.md +47 -29
- package/dist/ai/select.md +3 -3
- package/dist/ai/typography.md +12 -12
- package/dist/{animated-text-DrgxxVXA.js → animated-text-CuOeUPBc.js} +3 -3
- package/dist/{animated-text-DrgxxVXA.js.map → animated-text-CuOeUPBc.js.map} +1 -1
- package/dist/{animated-text-aOZ4KXTt.cjs → animated-text-vI_J_T4H.cjs} +2 -2
- package/dist/{animated-text-aOZ4KXTt.cjs.map → animated-text-vI_J_T4H.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-BNENor9z.js → area.component-BM9ihM3x.js} +3 -3
- package/dist/{area.component-BNENor9z.js.map → area.component-BM9ihM3x.js.map} +1 -1
- package/dist/{area.component-BEiNkBI9.cjs → area.component-DMXMTNuu.cjs} +2 -2
- package/dist/{area.component-BEiNkBI9.cjs.map → area.component-DMXMTNuu.cjs.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-L0aas1vi.cjs → autocomplete-BF2L9FvO.cjs} +2 -2
- package/dist/{autocomplete-L0aas1vi.cjs.map → autocomplete-BF2L9FvO.cjs.map} +1 -1
- package/dist/{autocomplete-86x1z92h.js → autocomplete-BmY1HiRm.js} +3 -3
- package/dist/{autocomplete-86x1z92h.js.map → autocomplete-BmY1HiRm.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-Cy-cEMb2.cjs → avatar-C4oY5hJn.cjs} +2 -2
- package/dist/{avatar-Cy-cEMb2.cjs.map → avatar-C4oY5hJn.cjs.map} +1 -1
- package/dist/{avatar-DtzFyhlM.js → avatar-Cpqpem_H.js} +45 -45
- package/dist/{avatar-DtzFyhlM.js.map → avatar-Cpqpem_H.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-CMO8rBpx.js → boat-DhLd0NFJ.js} +2 -2
- package/dist/{boat-CMO8rBpx.js.map → boat-DhLd0NFJ.js.map} +1 -1
- package/dist/{boat-BMESV9c8.cjs → boat-GHXDYUXo.cjs} +2 -2
- package/dist/{boat-BMESV9c8.cjs.map → boat-GHXDYUXo.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.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-Chh3OgWJ.js → checkbox-BOQEemBC.js} +2 -2
- package/dist/{checkbox-Chh3OgWJ.js.map → checkbox-BOQEemBC.js.map} +1 -1
- package/dist/{checkbox-C7Xx4zVu.cjs → checkbox-CRwmpo0I.cjs} +2 -2
- package/dist/{checkbox-C7Xx4zVu.cjs.map → checkbox-CRwmpo0I.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-CZWOuWYh.js → chips-CAdNz2hu.js} +3 -3
- package/dist/{chips-CZWOuWYh.js.map → chips-CAdNz2hu.js.map} +1 -1
- package/dist/{chips-BPaU1fIQ.cjs → chips-CL4ex3S5.cjs} +2 -2
- package/dist/{chips-BPaU1fIQ.cjs.map → chips-CL4ex3S5.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/{circular-progress-xJRFI7FV.js → circular-progress-Byjn--Fy.js} +3 -3
- package/dist/{circular-progress-xJRFI7FV.js.map → circular-progress-Byjn--Fy.js.map} +1 -1
- package/dist/{circular-progress-B716jMbW.cjs → circular-progress-DHLvm1dK.cjs} +2 -2
- package/dist/{circular-progress-B716jMbW.cjs.map → circular-progress-DHLvm1dK.cjs.map} +1 -1
- package/dist/circular-progress.cjs +1 -1
- package/dist/circular-progress.js +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-D1CCeP9o.cjs → code-preview-C0kMHrZp.cjs} +2 -2
- package/dist/{code-preview-D1CCeP9o.cjs.map → code-preview-C0kMHrZp.cjs.map} +1 -1
- package/dist/{code-preview-BMLIHTbp.js → code-preview-KWJFLNdy.js} +2 -2
- package/dist/{code-preview-BMLIHTbp.js.map → code-preview-KWJFLNdy.js.map} +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-fP7yi819.js → date-range-Dbw7tlTg.js} +3 -3
- package/dist/{date-range-fP7yi819.js.map → date-range-Dbw7tlTg.js.map} +1 -1
- package/dist/{date-range-BncoO-ye.cjs → date-range-Dq9AYUX9.cjs} +2 -2
- package/dist/{date-range-BncoO-ye.cjs.map → date-range-Dq9AYUX9.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-oQ9qrOV_.cjs → delay-CHFrBv7q.cjs} +2 -2
- package/dist/{delay-oQ9qrOV_.cjs.map → delay-CHFrBv7q.cjs.map} +1 -1
- package/dist/{delay-DN_yNSsK.js → delay-DVNcXeFo.js} +2 -2
- package/dist/{delay-DN_yNSsK.js.map → delay-DVNcXeFo.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{dialog-content-BxiEOcGi.js → dialog-content-BUZnNGK5.js} +3 -3
- package/dist/{dialog-content-BxiEOcGi.js.map → dialog-content-BUZnNGK5.js.map} +1 -1
- package/dist/{dialog-content-aKmUf0nh.cjs → dialog-content-Bgc7dtoN.cjs} +2 -2
- package/dist/{dialog-content-aKmUf0nh.cjs.map → dialog-content-Bgc7dtoN.cjs.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-CZMnnY6N.js → divider-Baxo2_bg.js} +3 -3
- package/dist/{divider-CZMnnY6N.js.map → divider-Baxo2_bg.js.map} +1 -1
- package/dist/{divider-DH4gDqR3.cjs → divider-ONYdMCC3.cjs} +2 -2
- package/dist/{divider-DH4gDqR3.cjs.map → divider-ONYdMCC3.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-CDONqec-.js → dropdown-content-Di_ThsYr.js} +3 -3
- package/dist/{dropdown-content-CDONqec-.js.map → dropdown-content-Di_ThsYr.js.map} +1 -1
- package/dist/{dropdown-content-B_nQ7JQb.cjs → dropdown-content-DjcEmYM4.cjs} +2 -2
- package/dist/{dropdown-content-B_nQ7JQb.cjs.map → dropdown-content-DjcEmYM4.cjs.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-CdU3dsnT.cjs → flex-B_mu8j3k.cjs} +2 -2
- package/dist/{flex-CdU3dsnT.cjs.map → flex-B_mu8j3k.cjs.map} +1 -1
- package/dist/{flex-DpEq-xBP.js → flex-CqNaXCKb.js} +2 -2
- package/dist/{flex-DpEq-xBP.js.map → flex-CqNaXCKb.js.map} +1 -1
- package/dist/{form-DOXwEWEA.cjs → form-ha4Eqx8c.cjs} +2 -2
- package/dist/{form-DOXwEWEA.cjs.map → form-ha4Eqx8c.cjs.map} +1 -1
- package/dist/{form-CBQ7tqoN.js → form-t3eedyiY.js} +2 -2
- package/dist/{form-CBQ7tqoN.js.map → form-t3eedyiY.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-Dua_nJpW.js → formField.mixin-DzKDhHbR.js} +2 -2
- package/dist/{formField.mixin-Dua_nJpW.js.map → formField.mixin-DzKDhHbR.js.map} +1 -1
- package/dist/{formField.mixin-s6FQGAPU.cjs → formField.mixin-d14Fm5er.cjs} +2 -2
- package/dist/{formField.mixin-s6FQGAPU.cjs.map → formField.mixin-d14Fm5er.cjs.map} +1 -1
- package/dist/{icon-MwCR53u1.cjs → icon-CFCGmi4A.cjs} +2 -2
- package/dist/{icon-MwCR53u1.cjs.map → icon-CFCGmi4A.cjs.map} +1 -1
- package/dist/{icon-button-Dv6GLseS.cjs → icon-button-D4GrKqC0.cjs} +2 -2
- package/dist/{icon-button-Dv6GLseS.cjs.map → icon-button-D4GrKqC0.cjs.map} +1 -1
- package/dist/{icon-button-nX-6I8-n.js → icon-button-UhONt-F9.js} +3 -3
- package/dist/{icon-button-nX-6I8-n.js.map → icon-button-UhONt-F9.js.map} +1 -1
- package/dist/{icon-h6T16FZr.js → icon-tJDnrQSl.js} +2 -2
- package/dist/{icon-h6T16FZr.js.map → icon-tJDnrQSl.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 +43 -43
- package/dist/{input-CRyjA5vL.js → input-BKGOpZ3z.js} +3 -3
- package/dist/{input-CRyjA5vL.js.map → input-BKGOpZ3z.js.map} +1 -1
- package/dist/{input-oZQ_ATz5.cjs → input-dNXzVzgY.cjs} +2 -2
- package/dist/{input-oZQ_ATz5.cjs.map → input-dNXzVzgY.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-le1t7wnv.js → list-BXQI_aVt.js} +2 -2
- package/dist/{list-le1t7wnv.js.map → list-BXQI_aVt.js.map} +1 -1
- package/dist/{list-DsOs1b2s.cjs → list-DLKOrlMB.cjs} +2 -2
- package/dist/{list-DsOs1b2s.cjs.map → list-DLKOrlMB.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-nh8G1Uii.js → litElement.mixin-BFshhc99.js} +2 -2
- package/dist/{litElement.mixin-nh8G1Uii.js.map → litElement.mixin-BFshhc99.js.map} +1 -1
- package/dist/{litElement.mixin-HAhKNS-6.cjs → litElement.mixin-D80K-DKp.cjs} +2 -2
- package/dist/{litElement.mixin-HAhKNS-6.cjs.map → litElement.mixin-D80K-DKp.cjs.map} +1 -1
- package/dist/{media-BP4kiHwu.js → media-CMy1y_G4.js} +2 -2
- package/dist/{media-BP4kiHwu.js.map → media-CMy1y_G4.js.map} +1 -1
- package/dist/{media-D90bHvDD.cjs → media-DrrOd3Cp.cjs} +2 -2
- package/dist/{media-D90bHvDD.cjs.map → media-DrrOd3Cp.cjs.map} +1 -1
- package/dist/{menu-BirD28L0.js → menu-CIbYjq5w.js} +3 -3
- package/dist/{menu-BirD28L0.js.map → menu-CIbYjq5w.js.map} +1 -1
- package/dist/{menu-C0F6gTv9.cjs → menu-HxSHRr44.cjs} +2 -2
- package/dist/{menu-C0F6gTv9.cjs.map → menu-HxSHRr44.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-service-COqkYPMO.cjs → notification-service-D6dwccSa.cjs} +2 -2
- package/dist/{notification-service-COqkYPMO.cjs.map → notification-service-D6dwccSa.cjs.map} +1 -1
- package/dist/{notification-service-CX1notpL.js → notification-service-DqhrEhim.js} +3 -3
- package/dist/{notification-service-CX1notpL.js.map → notification-service-DqhrEhim.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-BgfgOhne.js → option-B7mh5iBR.js} +2 -2
- package/dist/{option-BgfgOhne.js.map → option-B7mh5iBR.js.map} +1 -1
- package/dist/{option-C2ioIuX3.cjs → option-YZacOiKm.cjs} +2 -2
- package/dist/{option-C2ioIuX3.cjs.map → option-YZacOiKm.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-CPdQDBjl.cjs → payment-card-form-Ba3j-mko.cjs} +2 -2
- package/dist/{payment-card-form-CPdQDBjl.cjs.map → payment-card-form-Ba3j-mko.cjs.map} +1 -1
- package/dist/{payment-card-form-BV5TjuAP.js → payment-card-form-jeoZZi6p.js} +3 -3
- package/dist/{payment-card-form-BV5TjuAP.js.map → payment-card-form-jeoZZi6p.js.map} +1 -1
- package/dist/progress-CZXKwGBB.cjs +35 -0
- package/dist/progress-CZXKwGBB.cjs.map +1 -0
- package/dist/progress-D4y0dpK9.js +57 -0
- package/dist/progress-D4y0dpK9.js.map +1 -0
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-D6ZQIEMc.js → radio-button-CKty5_sG.js} +3 -3
- package/dist/{radio-button-D6ZQIEMc.js.map → radio-button-CKty5_sG.js.map} +1 -1
- package/dist/{radio-button-Bplx6LUo.cjs → radio-button-DeAY1R3D.cjs} +2 -2
- package/dist/{radio-button-Bplx6LUo.cjs.map → radio-button-DeAY1R3D.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-CI_dfEaJ.cjs → schmancy-steps-container-CmSXDf7C.cjs} +2 -2
- package/dist/{schmancy-steps-container-CI_dfEaJ.cjs.map → schmancy-steps-container-CmSXDf7C.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-feCUXcti.js → schmancy-steps-container-DdxlPOl3.js} +2 -2
- package/dist/{schmancy-steps-container-feCUXcti.js.map → schmancy-steps-container-DdxlPOl3.js.map} +1 -1
- package/dist/{select-B4HKxJNd.js → select-DCqtkgHe.js} +7 -7
- package/dist/select-DCqtkgHe.js.map +1 -0
- package/dist/select-JeuY2nWW.cjs +56 -0
- package/dist/select-JeuY2nWW.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-CoHqDHlJ.js → sheet-q6FFKREE.js} +4 -4
- package/dist/{sheet-CoHqDHlJ.js.map → sheet-q6FFKREE.js.map} +1 -1
- package/dist/{sheet-BD7mNPgo.cjs → sheet-t4A4BeGz.cjs} +2 -2
- package/dist/{sheet-BD7mNPgo.cjs.map → sheet-t4A4BeGz.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{theme.component-CqT-wazM.cjs → sheet.service-DO-2bnGp.cjs} +3 -3
- package/dist/sheet.service-DO-2bnGp.cjs.map +1 -0
- package/dist/{theme.component-Biom0Mmq.js → sheet.service-DqO2aRtR.js} +60 -60
- package/dist/sheet.service-DqO2aRtR.js.map +1 -0
- package/dist/{slider-D8YnrJ-8.cjs → slider-BtKp18tE.cjs} +2 -2
- package/dist/{slider-D8YnrJ-8.cjs.map → slider-BtKp18tE.cjs.map} +1 -1
- package/dist/{slider-B7r8w_31.js → slider-Cv78iuoH.js} +3 -3
- package/dist/{slider-B7r8w_31.js.map → slider-Cv78iuoH.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/spinner-BZKI4Aje.cjs +77 -0
- package/dist/spinner-BZKI4Aje.cjs.map +1 -0
- package/dist/spinner-DIXpf7Xc.js +106 -0
- package/dist/spinner-DIXpf7Xc.js.map +1 -0
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-CjUKBdLJ.cjs → surface-6Kwk9NCC.cjs} +2 -2
- package/dist/{surface-CjUKBdLJ.cjs.map → surface-6Kwk9NCC.cjs.map} +1 -1
- package/dist/{surface-Bw7q1kMH.js → surface-By-1_D5m.js} +2 -2
- package/dist/{surface-Bw7q1kMH.js.map → surface-By-1_D5m.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-DQ38Z4T0.js → table-BKdxrE64.js} +2 -2
- package/dist/{table-DQ38Z4T0.js.map → table-BKdxrE64.js.map} +1 -1
- package/dist/{table-DFnbyo4s.cjs → table-BojV1cr-.cjs} +2 -2
- package/dist/{table-DFnbyo4s.cjs.map → table-BojV1cr-.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-DYErcu_5.js → tabs-compatibility-BddIPDk-.js} +2 -2
- package/dist/{tabs-compatibility-DYErcu_5.js.map → tabs-compatibility-BddIPDk-.js.map} +1 -1
- package/dist/{tabs-compatibility-BFULPNKJ.cjs → tabs-compatibility-BuSTUrbW.cjs} +2 -2
- package/dist/{tabs-compatibility-BFULPNKJ.cjs.map → tabs-compatibility-BuSTUrbW.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-C9wSwMyj.cjs +2 -0
- package/dist/{tailwind.mixin-DN3mj7AF.cjs.map → tailwind.mixin-C9wSwMyj.cjs.map} +1 -1
- package/dist/tailwind.mixin-CjS7whsn.js +43 -0
- package/dist/{tailwind.mixin-CGuZJSAV.js.map → tailwind.mixin-CjS7whsn.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DUQC00Fd.js → textarea-BkUV1o5c.js} +2 -2
- package/dist/{textarea-DUQC00Fd.js.map → textarea-BkUV1o5c.js.map} +1 -1
- package/dist/{textarea-B1kV_2eH.cjs → textarea-Csc71VAg.cjs} +2 -2
- package/dist/{textarea-B1kV_2eH.cjs.map → textarea-Csc71VAg.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-nswF-4e7.cjs → theme-button-BBAfag6o.cjs} +2 -2
- package/dist/{theme-button-nswF-4e7.cjs.map → theme-button-BBAfag6o.cjs.map} +1 -1
- package/dist/{theme-button-CXnJIlOE.js → theme-button-D-bDzeOP.js} +2 -2
- package/dist/{theme-button-CXnJIlOE.js.map → theme-button-D-bDzeOP.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.js +1 -1
- package/dist/{timezone-DEfdZ7Ih.js → timezone-CRh0TVA5.js} +3 -3
- package/dist/{timezone-DEfdZ7Ih.js.map → timezone-CRh0TVA5.js.map} +1 -1
- package/dist/{timezone-BanTl7db.cjs → timezone-DntF7Anf.cjs} +2 -2
- package/dist/{timezone-BanTl7db.cjs.map → timezone-DntF7Anf.cjs.map} +1 -1
- package/dist/{tooltip-DyiokkSK.cjs → tooltip-7Vz-0dIm.cjs} +2 -2
- package/dist/{tooltip-DyiokkSK.cjs.map → tooltip-7Vz-0dIm.cjs.map} +1 -1
- package/dist/{tooltip-Cwd97bhO.js → tooltip-DSZZBYgA.js} +2 -2
- package/dist/{tooltip-Cwd97bhO.js.map → tooltip-DSZZBYgA.js.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-DiGklPGH.js → tree-BNtkejK4.js} +2 -2
- package/dist/{tree-DiGklPGH.js.map → tree-BNtkejK4.js.map} +1 -1
- package/dist/{tree-CkEPnffd.cjs → tree-CPQBVpEO.cjs} +2 -2
- package/dist/{tree-CkEPnffd.cjs.map → tree-CPQBVpEO.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-CclJKtWA.js → typewriter-Brhk0nKN.js} +4 -4
- package/dist/{typewriter-CclJKtWA.js.map → typewriter-Brhk0nKN.js.map} +1 -1
- package/dist/{typewriter-3DNeJHA8.cjs → typewriter-h4SJqRGh.cjs} +2 -2
- package/dist/{typewriter-3DNeJHA8.cjs.map → typewriter-h4SJqRGh.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-CddeXVmZ.cjs → typography-7ntwHeb5.cjs} +2 -2
- package/dist/{typography-CddeXVmZ.cjs.map → typography-7ntwHeb5.cjs.map} +1 -1
- package/dist/{typography-UQvNQS6H.js → typography-Bt0EPE8x.js} +2 -2
- package/dist/{typography-UQvNQS6H.js.map → typography-Bt0EPE8x.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/dist/progress-C7nnUVNo.cjs +0 -30
- package/dist/progress-C7nnUVNo.cjs.map +0 -1
- package/dist/progress-DNoDfb2_.js +0 -52
- package/dist/progress-DNoDfb2_.js.map +0 -1
- package/dist/select-7MfozdvB.cjs +0 -56
- package/dist/select-7MfozdvB.cjs.map +0 -1
- package/dist/select-B4HKxJNd.js.map +0 -1
- package/dist/spinner-CXfX6eka.js +0 -77
- package/dist/spinner-CXfX6eka.js.map +0 -1
- package/dist/spinner-DYX-qUui.cjs +0 -45
- package/dist/spinner-DYX-qUui.cjs.map +0 -1
- package/dist/tailwind.mixin-CGuZJSAV.js +0 -43
- package/dist/tailwind.mixin-DN3mj7AF.cjs +0 -2
- package/dist/theme.component-Biom0Mmq.js.map +0 -1
- package/dist/theme.component-CqT-wazM.cjs.map +0 -1
package/ai/radio-group.md
CHANGED
|
@@ -1,57 +1,75 @@
|
|
|
1
1
|
# Schmancy Radio Group - AI Reference
|
|
2
2
|
|
|
3
3
|
```js
|
|
4
|
-
// Basic Radio Group
|
|
4
|
+
// Basic Radio Group with options array
|
|
5
5
|
<schmancy-radio-group
|
|
6
6
|
name="radio-group-name"
|
|
7
7
|
label="Group Label"
|
|
8
8
|
value="selected-value"
|
|
9
|
+
.options=${[
|
|
10
|
+
{ value: "option1", label: "Option 1" },
|
|
11
|
+
{ value: "option2", label: "Option 2" },
|
|
12
|
+
{ value: "option3", label: "Option 3" }
|
|
13
|
+
]}
|
|
9
14
|
required?
|
|
10
|
-
disabled?
|
|
11
|
-
error="Error message"
|
|
12
15
|
@change=${handleChange}>
|
|
13
|
-
|
|
14
|
-
<schmancy-radio-button
|
|
15
|
-
value="option1"
|
|
16
|
-
label="Option 1">
|
|
17
|
-
</schmancy-radio-button>
|
|
18
|
-
|
|
19
|
-
<schmancy-radio-button
|
|
20
|
-
value="option2"
|
|
21
|
-
label="Option 2">
|
|
22
|
-
</schmancy-radio-button>
|
|
23
|
-
|
|
24
|
-
<schmancy-radio-button
|
|
25
|
-
value="option3"
|
|
26
|
-
label="Option 3"
|
|
27
|
-
disabled>
|
|
28
|
-
</schmancy-radio-button>
|
|
29
16
|
</schmancy-radio-group>
|
|
30
17
|
|
|
31
|
-
// Radio Group with
|
|
18
|
+
// Radio Group with slotted radio buttons
|
|
32
19
|
<schmancy-radio-group
|
|
33
20
|
label="Select payment method"
|
|
34
|
-
|
|
35
|
-
|
|
21
|
+
value="credit"
|
|
22
|
+
@change=${handleChange}>
|
|
36
23
|
|
|
37
24
|
<schmancy-radio-button
|
|
38
25
|
value="credit"
|
|
39
|
-
|
|
26
|
+
name="payment">
|
|
27
|
+
<span slot="label">Credit Card</span>
|
|
40
28
|
</schmancy-radio-button>
|
|
41
29
|
|
|
42
30
|
<schmancy-radio-button
|
|
43
31
|
value="paypal"
|
|
44
|
-
|
|
32
|
+
name="payment">
|
|
33
|
+
<span slot="label">PayPal</span>
|
|
34
|
+
</schmancy-radio-button>
|
|
35
|
+
|
|
36
|
+
<schmancy-radio-button
|
|
37
|
+
value="bank"
|
|
38
|
+
name="payment"
|
|
39
|
+
disabled>
|
|
40
|
+
<span slot="label">Bank Transfer</span>
|
|
45
41
|
</schmancy-radio-button>
|
|
46
42
|
</schmancy-radio-group>
|
|
47
43
|
|
|
48
|
-
//
|
|
49
|
-
<schmancy-radio-button
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
// Standalone radio button (without group)
|
|
45
|
+
<schmancy-radio-button
|
|
46
|
+
value="standalone"
|
|
47
|
+
name="standalone-radio"
|
|
48
|
+
checked
|
|
49
|
+
@change=${handleChange}>
|
|
50
|
+
<span slot="label">Standalone Option</span>
|
|
53
51
|
</schmancy-radio-button>
|
|
54
52
|
|
|
53
|
+
// Radio Group Properties
|
|
54
|
+
name: string // Form field name
|
|
55
|
+
label: string // Group label
|
|
56
|
+
value: string // Currently selected value
|
|
57
|
+
options: Array<{ // Options array (alternative to slotted content)
|
|
58
|
+
value: string,
|
|
59
|
+
label: string
|
|
60
|
+
}>
|
|
61
|
+
required: boolean // Whether selection is required
|
|
62
|
+
|
|
63
|
+
// Radio Button Properties
|
|
64
|
+
value: string // The value of this option
|
|
65
|
+
name: string // Form field name (for standalone use)
|
|
66
|
+
checked: boolean // Whether this option is selected
|
|
67
|
+
disabled: boolean // Whether this option is disabled
|
|
68
|
+
|
|
69
|
+
// Events
|
|
70
|
+
@change // CustomEvent<{ value: string }> - Fired when selection changes
|
|
71
|
+
@radio-button-click // Internal event for group communication
|
|
72
|
+
|
|
55
73
|
// Radio Group Methods
|
|
56
74
|
radioGroup.focus() -> void // Focus the first/selected radio button
|
|
57
75
|
radioGroup.validate() -> boolean // Validate and show error if invalid
|
package/ai/select.md
CHANGED
|
@@ -17,17 +17,17 @@
|
|
|
17
17
|
<schmancy-option value="option3" disabled>Option 3</schmancy-option>
|
|
18
18
|
</schmancy-select>
|
|
19
19
|
|
|
20
|
-
// Select with
|
|
20
|
+
// Select with hint text
|
|
21
21
|
<schmancy-select
|
|
22
22
|
label="Country"
|
|
23
|
-
|
|
23
|
+
hint="Select your country of residence"
|
|
24
24
|
required>
|
|
25
25
|
<!-- Options -->
|
|
26
26
|
</schmancy-select>
|
|
27
27
|
|
|
28
28
|
// Multiple select
|
|
29
29
|
<schmancy-select
|
|
30
|
-
|
|
30
|
+
multi
|
|
31
31
|
label="Select Skills"
|
|
32
32
|
.value=${['html', 'css']}
|
|
33
33
|
@change=${(e) => console.log('Selected:', e.detail.value)}>
|
package/ai/typography.md
CHANGED
|
@@ -20,9 +20,9 @@ import '@mhmo91/schmancy/typography'
|
|
|
20
20
|
// Typography Scale Reference (size/line-height)
|
|
21
21
|
// Display: xl (72/80), lg (57/64), md (45/52), sm (36/44), xs (28/36)
|
|
22
22
|
// Headline: xl (36/44), lg (32/40), md (28/36), sm (24/32), xs (20/28)
|
|
23
|
-
// Title: xl (
|
|
24
|
-
// Subtitle: xl (20/28), lg (18/24), md (16/
|
|
25
|
-
// Label: xl (16/
|
|
23
|
+
// Title: xl (24/32), lg (22/28), md (16/24), sm (14/20), xs (12/16)
|
|
24
|
+
// Subtitle: xl (20/28), lg (18/24), md (16/24), sm (14/20), xs (12/16)
|
|
25
|
+
// Label: xl (16/22), lg (14/20), md (12/16), sm (11/16), xs (10/14)
|
|
26
26
|
// Body: xl (18/28), lg (16/24), md (14/20), sm (12/16), xs (10/14)
|
|
27
27
|
|
|
28
28
|
// Examples
|
|
@@ -111,22 +111,22 @@ Material Design 3 typography scale with 6 types, each with 5 sizes:
|
|
|
111
111
|
- `sm`: 24px/32px line-height
|
|
112
112
|
- `xs`: 20px/28px line-height
|
|
113
113
|
|
|
114
|
-
**Title** - Smaller titles and subtitles (weight: 400
|
|
115
|
-
- `xl`:
|
|
114
|
+
**Title** - Smaller titles and subtitles (weight: 400)
|
|
115
|
+
- `xl`: 24px/32px line-height (weight: 400)
|
|
116
116
|
- `lg`: 22px/28px line-height (weight: 400)
|
|
117
117
|
- `md`: 16px/24px line-height (weight: 500)
|
|
118
118
|
- `sm`: 14px/20px line-height (weight: 500)
|
|
119
119
|
- `xs`: 12px/16px line-height (weight: 500)
|
|
120
120
|
|
|
121
|
-
**Subtitle** - Secondary headings (weight:
|
|
121
|
+
**Subtitle** - Secondary headings (weight: 500)
|
|
122
122
|
- `xl`: 20px/28px line-height
|
|
123
123
|
- `lg`: 18px/24px line-height
|
|
124
|
-
- `md`: 16px/
|
|
125
|
-
- `sm`: 14px/
|
|
124
|
+
- `md`: 16px/24px line-height
|
|
125
|
+
- `sm`: 14px/20px line-height
|
|
126
126
|
- `xs`: 12px/16px line-height
|
|
127
127
|
|
|
128
128
|
**Label** - UI labels and buttons (weight: 500)
|
|
129
|
-
- `xl`: 16px/
|
|
129
|
+
- `xl`: 16px/22px line-height
|
|
130
130
|
- `lg`: 14px/20px line-height
|
|
131
131
|
- `md`: 12px/16px line-height
|
|
132
132
|
- `sm`: 11px/16px line-height
|
|
@@ -172,9 +172,9 @@ Typography automatically inherits colors from the theme:
|
|
|
172
172
|
### Implementation Details
|
|
173
173
|
- Uses Shadow DOM with encapsulated styles
|
|
174
174
|
- All typography values are hardcoded in the component
|
|
175
|
-
- Renders
|
|
176
|
-
- Font family
|
|
177
|
-
-
|
|
175
|
+
- Renders with `display: block` by default
|
|
176
|
+
- Font family inherits from parent
|
|
177
|
+
- All properties reflect to HTML attributes for CSS targeting
|
|
178
178
|
|
|
179
179
|
## Common Use Cases
|
|
180
180
|
|
package/dist/ai/busy.md
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
// Spinner Component
|
|
15
15
|
<schmancy-spinner
|
|
16
|
-
size="
|
|
17
|
-
color="
|
|
16
|
+
size="24px" // Any CSS size value (e.g., "16px", "2em", "32px")
|
|
17
|
+
color="gray"> // Currently not used - spinner uses secondary color
|
|
18
18
|
</schmancy-spinner>
|
|
19
19
|
|
|
20
20
|
// Busy overlaying content
|
|
@@ -50,16 +50,15 @@ delay: number // Delay in ms before showing (to prevent flashing)
|
|
|
50
50
|
minDuration: number // Minimum duration in ms to show
|
|
51
51
|
|
|
52
52
|
// Spinner Properties
|
|
53
|
-
size: string //
|
|
54
|
-
color: string //
|
|
55
|
-
thickness: number // Thickness of the spinner stroke
|
|
53
|
+
size: string // CSS size value (default: "24px"). Examples: "16px", "20px", "32px", "2rem"
|
|
54
|
+
color: string // Currently not used - spinner always uses secondary color
|
|
56
55
|
|
|
57
56
|
// Examples
|
|
58
57
|
// Basic usage
|
|
59
58
|
<schmancy-busy active=${loading} label="Loading..."></schmancy-busy>
|
|
60
59
|
|
|
61
|
-
// Spinner with custom size
|
|
62
|
-
<schmancy-spinner size="32px"
|
|
60
|
+
// Spinner with custom size
|
|
61
|
+
<schmancy-spinner size="32px"></schmancy-spinner>
|
|
63
62
|
|
|
64
63
|
// Busy indicator in a button
|
|
65
64
|
<schmancy-button ?disabled=${loading}>
|
package/dist/ai/button.md
CHANGED
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
type="button|reset|submit" // HTML button type (default: "button")
|
|
22
22
|
href?="string" // Makes button a link
|
|
23
23
|
disabled? // Disable state
|
|
24
|
-
aria-label="string"> // Accessibility label
|
|
25
|
-
|
|
24
|
+
aria-label="string"> // Accessibility label (REQUIRED)
|
|
25
|
+
<!-- Icon name as content -->
|
|
26
26
|
</schmancy-icon-button>
|
|
27
27
|
|
|
28
28
|
// Component Methods
|
|
@@ -99,9 +99,9 @@ Material Design 3 emphasis levels (highest to lowest):
|
|
|
99
99
|
4. `text` - Low emphasis, tertiary actions
|
|
100
100
|
|
|
101
101
|
### Icon Button Sizes
|
|
102
|
-
- `sm`:
|
|
103
|
-
- `md`:
|
|
104
|
-
- `lg`:
|
|
102
|
+
- `sm`: 18px icon size
|
|
103
|
+
- `md`: 24px icon size (default)
|
|
104
|
+
- `lg`: 32px icon size
|
|
105
105
|
|
|
106
106
|
### CSS Custom Properties
|
|
107
107
|
```css
|
package/dist/ai/card.md
CHANGED
|
@@ -59,7 +59,7 @@ elevation: number // Shadow depth 0-5 (default: 0, overrides type defaults)
|
|
|
59
59
|
### CSS Host Styling
|
|
60
60
|
The component uses `:host` selectors for all styling:
|
|
61
61
|
- No wrapper elements - clean component boundary
|
|
62
|
-
-
|
|
62
|
+
- CSS attribute selectors work with the properties
|
|
63
63
|
- Automatic hover states for elevated and outlined types
|
|
64
64
|
|
|
65
65
|
### Theme Integration
|
package/dist/ai/checkbox.md
CHANGED
|
@@ -5,49 +5,39 @@
|
|
|
5
5
|
<schmancy-checkbox
|
|
6
6
|
name="checkbox-name"
|
|
7
7
|
label="Checkbox Label"
|
|
8
|
-
value="
|
|
9
|
-
checked?
|
|
10
|
-
indeterminate?
|
|
8
|
+
value="true|false" // Boolean value (default: false)
|
|
9
|
+
checked? // Alias for value
|
|
11
10
|
disabled?
|
|
12
11
|
required?
|
|
12
|
+
size="sm|md|lg" // Size of checkbox (default: "md")
|
|
13
13
|
@change=${handleChange}>
|
|
14
14
|
</schmancy-checkbox>
|
|
15
15
|
|
|
16
|
-
// Checkbox with
|
|
16
|
+
// Checkbox with label
|
|
17
17
|
<schmancy-checkbox
|
|
18
18
|
label="Subscribe to newsletter"
|
|
19
|
-
|
|
19
|
+
value="false">
|
|
20
20
|
</schmancy-checkbox>
|
|
21
21
|
|
|
22
|
-
// Checkbox with
|
|
22
|
+
// Checkbox with slot content
|
|
23
23
|
<schmancy-checkbox
|
|
24
|
-
|
|
25
|
-
error="You must accept the terms to continue"
|
|
24
|
+
name="terms"
|
|
26
25
|
required>
|
|
26
|
+
I accept the <a href="/terms">terms and conditions</a>
|
|
27
27
|
</schmancy-checkbox>
|
|
28
28
|
|
|
29
|
-
// Checkbox Methods
|
|
30
|
-
checkbox.check() -> void // Programmatically check
|
|
31
|
-
checkbox.uncheck() -> void // Programmatically uncheck
|
|
32
|
-
checkbox.toggle() -> void // Toggle current state
|
|
33
|
-
checkbox.focus() -> void // Focus the checkbox
|
|
34
|
-
checkbox.blur() -> void // Remove focus
|
|
35
|
-
checkbox.validate() -> boolean // Validate and show error if invalid
|
|
36
|
-
|
|
37
29
|
// Checkbox Properties
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
value: boolean // The checked state (true/false)
|
|
31
|
+
checked: boolean // Alias for value
|
|
32
|
+
name: string // The name attribute (auto-generated if not provided)
|
|
33
|
+
id: string // The id attribute (auto-generated if not provided)
|
|
42
34
|
disabled: boolean // Whether the checkbox is disabled
|
|
43
35
|
required: boolean // Whether the checkbox is required
|
|
44
|
-
|
|
36
|
+
label?: string // Optional label text
|
|
37
|
+
size: 'sm'|'md'|'lg' // Size of the checkbox (default: 'md')
|
|
45
38
|
|
|
46
39
|
// Checkbox Events
|
|
47
|
-
@change // Fires when checked state changes, with { detail: {
|
|
48
|
-
@input // Fires when value changes during interaction
|
|
49
|
-
@focus // Fires when checkbox gains focus
|
|
50
|
-
@blur // Fires when checkbox loses focus
|
|
40
|
+
@change // Fires when checked state changes, with { detail: { value: boolean } }
|
|
51
41
|
|
|
52
42
|
// Examples
|
|
53
43
|
// Basic usage
|
package/dist/ai/form.md
CHANGED
|
@@ -3,66 +3,59 @@
|
|
|
3
3
|
```js
|
|
4
4
|
// Form Container
|
|
5
5
|
<schmancy-form
|
|
6
|
-
|
|
7
|
-
@
|
|
8
|
-
@
|
|
6
|
+
novalidate? // Skip form validation on submit
|
|
7
|
+
@submit=${handleSubmit} // Form submission event
|
|
8
|
+
@reset=${handleReset}> // Form reset event
|
|
9
9
|
<!-- Form fields go here -->
|
|
10
10
|
</schmancy-form>
|
|
11
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
12
|
// Form Methods
|
|
22
|
-
form.submit() ->
|
|
23
|
-
form.reset() -> void
|
|
24
|
-
form.
|
|
25
|
-
form.
|
|
26
|
-
form.
|
|
13
|
+
form.submit() -> boolean // Submit the form programmatically
|
|
14
|
+
form.reset() -> void // Reset all form fields to default values
|
|
15
|
+
form.getFormData() -> FormData // Get form data as FormData object
|
|
16
|
+
form.reportValidity() -> boolean // Check validity and show validation messages
|
|
17
|
+
form.checkValidity() -> boolean // Check validity without showing messages
|
|
27
18
|
|
|
28
19
|
// Events
|
|
29
|
-
@submit //
|
|
30
|
-
@
|
|
31
|
-
@change // { detail: { name: string, value: any, values: Object } }
|
|
20
|
+
@submit // CustomEvent<FormData> // Fired when form is submitted
|
|
21
|
+
@reset // CustomEvent // Fired when form is reset
|
|
32
22
|
|
|
33
23
|
// Examples
|
|
34
24
|
// 1. Basic form with validation
|
|
35
25
|
<schmancy-form @submit=${(e) => {
|
|
36
|
-
const
|
|
37
|
-
console.log('Form submitted:',
|
|
26
|
+
const formData = e.detail;
|
|
27
|
+
console.log('Form submitted:', formData);
|
|
28
|
+
// Convert FormData to object if needed
|
|
29
|
+
const values = Object.fromEntries(formData);
|
|
30
|
+
console.log('Values:', values);
|
|
38
31
|
}}>
|
|
39
32
|
<schmancy-input
|
|
40
33
|
name="email"
|
|
41
34
|
label="Email Address"
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
type="email"
|
|
36
|
+
required>
|
|
44
37
|
</schmancy-input>
|
|
45
38
|
|
|
46
39
|
<schmancy-button type="submit">Submit</schmancy-button>
|
|
47
40
|
</schmancy-form>
|
|
48
41
|
|
|
49
|
-
// 2. Form
|
|
50
|
-
<schmancy-form
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}}
|
|
59
|
-
@submit=${(e) => console.log('Valid data:', e.detail.values)}>
|
|
42
|
+
// 2. Form with multiple fields and validation
|
|
43
|
+
<schmancy-form
|
|
44
|
+
@submit=${async (e) => {
|
|
45
|
+
const formData = e.detail;
|
|
46
|
+
// Send to server
|
|
47
|
+
await fetch('/api/submit', {
|
|
48
|
+
method: 'POST',
|
|
49
|
+
body: formData
|
|
50
|
+
});
|
|
51
|
+
}}>
|
|
60
52
|
|
|
61
|
-
<schmancy-input name="username" label="Username"></schmancy-input>
|
|
62
|
-
<schmancy-input name="password" label="Password" type="password"></schmancy-input>
|
|
53
|
+
<schmancy-input name="username" label="Username" required></schmancy-input>
|
|
54
|
+
<schmancy-input name="password" label="Password" type="password" required></schmancy-input>
|
|
55
|
+
<schmancy-checkbox name="remember" label="Remember me"></schmancy-checkbox>
|
|
63
56
|
|
|
64
57
|
<schmancy-button type="submit">Login</schmancy-button>
|
|
65
|
-
</schmancy-form
|
|
58
|
+
</schmancy-form>
|
|
66
59
|
```
|
|
67
60
|
|
|
68
61
|
## Related Components
|
|
@@ -89,20 +82,12 @@ success? // Shows success state
|
|
|
89
82
|
placeholder="Text" // Placeholder text (where applicable)
|
|
90
83
|
```
|
|
91
84
|
|
|
92
|
-
### Form
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
-
```
|
|
85
|
+
### Form Behavior
|
|
86
|
+
- Submits when Enter key is pressed in input fields
|
|
87
|
+
- Submits when submit button is clicked
|
|
88
|
+
- Automatically collects data from all form controls
|
|
89
|
+
- Supports native HTML5 validation
|
|
90
|
+
- Works with custom Schmancy form components
|
|
106
91
|
|
|
107
92
|
### Common Use Cases
|
|
108
93
|
|
|
@@ -117,32 +102,44 @@ interface FormErrors {
|
|
|
117
102
|
</schmancy-form>
|
|
118
103
|
```
|
|
119
104
|
|
|
120
|
-
2. **
|
|
105
|
+
2. **Programmatic form submission**
|
|
121
106
|
```js
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
107
|
+
const form = document.querySelector('schmancy-form');
|
|
108
|
+
|
|
109
|
+
// Check validity before submitting
|
|
110
|
+
if (form.checkValidity()) {
|
|
111
|
+
form.submit();
|
|
112
|
+
} else {
|
|
113
|
+
// Show validation messages
|
|
114
|
+
form.reportValidity();
|
|
115
|
+
}
|
|
130
116
|
```
|
|
131
117
|
|
|
132
118
|
3. **Form with server validation**: Handle backend validation errors
|
|
133
119
|
```js
|
|
134
120
|
async function submitForm(e) {
|
|
121
|
+
const formData = e.detail;
|
|
122
|
+
|
|
135
123
|
try {
|
|
136
124
|
const response = await fetch('/api/submit', {
|
|
137
125
|
method: 'POST',
|
|
138
|
-
body:
|
|
126
|
+
body: formData
|
|
139
127
|
});
|
|
140
|
-
|
|
141
|
-
if (!
|
|
142
|
-
|
|
128
|
+
|
|
129
|
+
if (!response.ok) {
|
|
130
|
+
// Handle server errors
|
|
131
|
+
const errors = await response.json();
|
|
132
|
+
// Update form fields with errors
|
|
133
|
+
Object.entries(errors).forEach(([field, message]) => {
|
|
134
|
+
const input = form.querySelector(`[name="${field}"]`);
|
|
135
|
+
if (input) {
|
|
136
|
+
input.error = true;
|
|
137
|
+
input.hint = message;
|
|
138
|
+
}
|
|
139
|
+
});
|
|
143
140
|
}
|
|
144
141
|
} catch (error) {
|
|
145
|
-
console.error(error);
|
|
142
|
+
console.error('Submission failed:', error);
|
|
146
143
|
}
|
|
147
144
|
}
|
|
148
145
|
```
|
package/dist/ai/input.md
CHANGED
|
@@ -11,13 +11,14 @@
|
|
|
11
11
|
placeholder="Placeholder text" // Placeholder text
|
|
12
12
|
hint?="Helper text" // Helper text below input
|
|
13
13
|
align?="left|center|right" // Text alignment (default: "left")
|
|
14
|
+
size?="sm|md|lg" // Input size (default: "md")
|
|
14
15
|
required? // Required field
|
|
15
16
|
disabled? // Disabled state
|
|
16
17
|
readonly? // Read-only state
|
|
17
18
|
clickable? // Show pointer cursor when readonly
|
|
18
19
|
error? // Error state (boolean)
|
|
19
20
|
autofocus? // Auto-focus on render
|
|
20
|
-
spellcheck? // Enable spellcheck
|
|
21
|
+
spellcheck? // Enable spellcheck (default: false)
|
|
21
22
|
inputmode?="none|text|tel|url|email|numeric|decimal|search" // Virtual keyboard hint
|
|
22
23
|
autocomplete?="off|on|name|email|tel|etc" // Autofill hints
|
|
23
24
|
pattern?="regex" // Validation pattern
|
|
@@ -26,12 +27,14 @@
|
|
|
26
27
|
min?="number|date" // Min value (number/date)
|
|
27
28
|
max?="number|date" // Max value (number/date)
|
|
28
29
|
step?="number|any" // Step increment
|
|
29
|
-
|
|
30
|
+
list?="datalist-id" // Associate with datalist
|
|
31
|
+
validateOn?="always|touched|dirty|submitted" // Validation strategy (default: "touched")
|
|
30
32
|
@input=${handleInput} // Every keystroke
|
|
31
33
|
@change=${handleChange} // On blur/change
|
|
32
34
|
@enter=${handleEnter} // Enter key pressed
|
|
33
35
|
@focus=${handleFocus} // Focus event
|
|
34
|
-
@blur=${handleBlur}
|
|
36
|
+
@blur=${handleBlur} // Blur event
|
|
37
|
+
@autofill=${handleAutofill}> // Autofill detected
|
|
35
38
|
</schmancy-input>
|
|
36
39
|
|
|
37
40
|
// Input Methods
|
|
@@ -43,14 +46,23 @@ input.checkValidity() -> boolean
|
|
|
43
46
|
input.reportValidity() -> boolean
|
|
44
47
|
input.setCustomValidity(message: string) -> void
|
|
45
48
|
input.getValidity() -> ValidityState
|
|
49
|
+
input.setSelectionRange(start: number, end: number, direction?: 'forward'|'backward'|'none') -> void
|
|
50
|
+
input.setRangeText(replacement: string, start?: number, end?: number, selectMode?: 'select'|'start'|'end'|'preserve') -> void
|
|
51
|
+
|
|
52
|
+
// Input Properties
|
|
53
|
+
input.selectionStart -> number | null
|
|
54
|
+
input.selectionEnd -> number | null
|
|
55
|
+
input.selectionDirection -> 'forward' | 'backward' | 'none' | null
|
|
46
56
|
|
|
47
57
|
// Events (Custom Events with detail)
|
|
48
|
-
@input
|
|
49
|
-
@change
|
|
50
|
-
@enter
|
|
51
|
-
@
|
|
52
|
-
@
|
|
53
|
-
@
|
|
58
|
+
@input // CustomEvent<{ value: string }>
|
|
59
|
+
@change // CustomEvent<{ value: string }>
|
|
60
|
+
@enter // CustomEvent<{ value: string }>
|
|
61
|
+
@autofill // CustomEvent<{ value: string }>
|
|
62
|
+
@reset // CustomEvent<void>
|
|
63
|
+
@focus // Standard FocusEvent
|
|
64
|
+
@blur // Standard FocusEvent
|
|
65
|
+
@click // Standard MouseEvent
|
|
54
66
|
|
|
55
67
|
// Examples
|
|
56
68
|
// 1. Basic input with validation
|
|
@@ -142,18 +154,12 @@ input.checkValidity() // Returns true/false
|
|
|
142
154
|
input.reportValidity() // Shows validation message
|
|
143
155
|
input.setCustomValidity('Custom error') // Set custom message
|
|
144
156
|
input.getValidity() // Get ValidityState object
|
|
145
|
-
suffix: Content displayed after the input field
|
|
146
157
|
```
|
|
147
158
|
|
|
148
|
-
###
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
--schmancy-input-focus-color: /* Controls the focus color */
|
|
153
|
-
--schmancy-input-error-color: /* Controls the error state color */
|
|
154
|
-
--schmancy-input-success-color: /* Controls the success state color */
|
|
155
|
-
--schmancy-input-font-size: /* Controls the font size */
|
|
156
|
-
```
|
|
159
|
+
### Input Sizes
|
|
160
|
+
- `sm`: 40px height, 14px font size, compact padding
|
|
161
|
+
- `md`: 50px height, 16px font size, standard padding (default)
|
|
162
|
+
- `lg`: 60px height, 18px font size, spacious padding
|
|
157
163
|
|
|
158
164
|
### Input v2 Interfaces
|
|
159
165
|
```typescript
|
|
@@ -172,17 +178,13 @@ interface InputParser {
|
|
|
172
178
|
|
|
173
179
|
### Common Use Cases
|
|
174
180
|
|
|
175
|
-
1. **Password input with
|
|
181
|
+
1. **Password input with show/hide functionality**
|
|
176
182
|
```html
|
|
177
183
|
<schmancy-input
|
|
178
184
|
type="password"
|
|
179
185
|
label="Password"
|
|
180
|
-
name="password"
|
|
181
|
-
|
|
182
|
-
slot="suffix"
|
|
183
|
-
icon="eye"
|
|
184
|
-
@click=${togglePasswordVisibility}>
|
|
185
|
-
</schmancy-icon>
|
|
186
|
+
name="password"
|
|
187
|
+
@enter=${handleSubmit}>
|
|
186
188
|
</schmancy-input>
|
|
187
189
|
```
|
|
188
190
|
|
|
@@ -205,7 +207,10 @@ interface InputParser {
|
|
|
205
207
|
label="Message"
|
|
206
208
|
name="message"
|
|
207
209
|
maxlength="100"
|
|
208
|
-
|
|
209
|
-
|
|
210
|
+
hint="0/100 characters"
|
|
211
|
+
@input=${e => {
|
|
212
|
+
const count = e.target.value.length;
|
|
213
|
+
e.target.hint = `${count}/100 characters`;
|
|
214
|
+
}}>
|
|
210
215
|
</schmancy-input>
|
|
211
216
|
```
|