@mhmo91/schmancy 0.2.195 → 0.2.197
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/animated-text.md +114 -0
- package/ai/card.md +162 -131
- package/ai/circular-progress.md +91 -0
- package/ai/date-range.md +142 -0
- package/ai/delay.md +158 -0
- package/ai/divider.md +153 -0
- package/ai/index.md +42 -3
- package/ai/nav-drawer.md +206 -0
- package/ai/option.md +173 -0
- package/ai/slider.md +227 -0
- package/ai/steps.md +231 -0
- package/ai/surface.md +139 -200
- package/ai/teleport.md +196 -0
- package/ai/theme-button.md +173 -0
- package/ai/theme.md +241 -0
- package/ai/typewriter.md +217 -0
- package/dist/ai/animated-text.md +114 -0
- package/dist/ai/card.md +162 -131
- package/dist/ai/circular-progress.md +91 -0
- package/dist/ai/date-range.md +142 -0
- package/dist/ai/delay.md +158 -0
- package/dist/ai/divider.md +153 -0
- package/dist/ai/index.md +42 -3
- package/dist/ai/nav-drawer.md +206 -0
- package/dist/ai/option.md +173 -0
- package/dist/ai/slider.md +227 -0
- package/dist/ai/steps.md +231 -0
- package/dist/ai/surface.md +139 -200
- package/dist/ai/teleport.md +196 -0
- package/dist/ai/theme-button.md +173 -0
- package/dist/ai/theme.md +241 -0
- package/dist/ai/typewriter.md +217 -0
- package/dist/{animated-text-Bu9wh3wv.cjs → animated-text-DnX2TopW.cjs} +2 -2
- package/dist/{animated-text-Bu9wh3wv.cjs.map → animated-text-DnX2TopW.cjs.map} +1 -1
- package/dist/{animated-text-Ci7M0QTx.js → animated-text-jv1yAwLh.js} +3 -3
- package/dist/{animated-text-Ci7M0QTx.js.map → animated-text-jv1yAwLh.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-eJJ_wryh.js → area.component-DMD20wqd.js} +3 -3
- package/dist/{area.component-eJJ_wryh.js.map → area.component-DMD20wqd.js.map} +1 -1
- package/dist/{area.component-Cg9dqZJ5.cjs → area.component-Vs2WGXgk.cjs} +2 -2
- package/dist/{area.component-Cg9dqZJ5.cjs.map → area.component-Vs2WGXgk.cjs.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-BH7nQbid.cjs → autocomplete-BrAxEJJq.cjs} +2 -2
- package/dist/{autocomplete-BH7nQbid.cjs.map → autocomplete-BrAxEJJq.cjs.map} +1 -1
- package/dist/{autocomplete-D9n1MeKT.js → autocomplete-OS61ngsy.js} +3 -3
- package/dist/{autocomplete-D9n1MeKT.js.map → autocomplete-OS61ngsy.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-Bg-rdjAe.cjs → avatar-CFcVZgL9.cjs} +2 -2
- package/dist/{avatar-Bg-rdjAe.cjs.map → avatar-CFcVZgL9.cjs.map} +1 -1
- package/dist/{avatar-B4lSs4z5.js → avatar-gkzmu5FJ.js} +41 -41
- package/dist/{avatar-B4lSs4z5.js.map → avatar-gkzmu5FJ.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-y37-tGrk.js → checkbox-CVXRiSWP.js} +2 -2
- package/dist/{checkbox-y37-tGrk.js.map → checkbox-CVXRiSWP.js.map} +1 -1
- package/dist/{checkbox-CgL23smr.cjs → checkbox-Chd-COYm.cjs} +2 -2
- package/dist/{checkbox-CgL23smr.cjs.map → checkbox-Chd-COYm.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-CKST7ug-.cjs → chips-Bx9gSvN1.cjs} +2 -2
- package/dist/{chips-CKST7ug-.cjs.map → chips-Bx9gSvN1.cjs.map} +1 -1
- package/dist/{chips-Ndwt1V4b.js → chips-Dx_erk55.js} +3 -3
- package/dist/{chips-Ndwt1V4b.js.map → chips-Dx_erk55.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/{circular-progress-vokDGjmG.js → circular-progress-BQnGvbss.js} +3 -3
- package/dist/{circular-progress-vokDGjmG.js.map → circular-progress-BQnGvbss.js.map} +1 -1
- package/dist/{circular-progress-BDmc1zlm.cjs → circular-progress-CNBah5dz.cjs} +2 -2
- package/dist/{circular-progress-BDmc1zlm.cjs.map → circular-progress-CNBah5dz.cjs.map} +1 -1
- package/dist/circular-progress.cjs +1 -1
- package/dist/circular-progress.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-DfZz3ifP.cjs → date-range-BW4YaNoF.cjs} +6 -3
- package/dist/{date-range-DfZz3ifP.cjs.map → date-range-BW4YaNoF.cjs.map} +1 -1
- package/dist/{date-range-CpDVPn_v.js → date-range-CtXGl9uE.js} +7 -4
- package/dist/{date-range-CpDVPn_v.js.map → date-range-CtXGl9uE.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-ASLyLkQL.cjs → delay-BzkhDhs0.cjs} +2 -2
- package/dist/{delay-ASLyLkQL.cjs.map → delay-BzkhDhs0.cjs.map} +1 -1
- package/dist/{delay-CG5SRrzF.js → delay-Ds5suSsc.js} +2 -2
- package/dist/{delay-CG5SRrzF.js.map → delay-Ds5suSsc.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{dialog-content-D88EcY6L.cjs → dialog-content-CJY69qfC.cjs} +2 -2
- package/dist/{dialog-content-D88EcY6L.cjs.map → dialog-content-CJY69qfC.cjs.map} +1 -1
- package/dist/{dialog-content-BoPviBAt.js → dialog-content-DFJnYzff.js} +3 -3
- package/dist/{dialog-content-BoPviBAt.js.map → dialog-content-DFJnYzff.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-N7GWgK6o.js → divider-C3w1_-N1.js} +3 -3
- package/dist/{divider-N7GWgK6o.js.map → divider-C3w1_-N1.js.map} +1 -1
- package/dist/{divider-C38JDYss.cjs → divider-CFzbCFsr.cjs} +2 -2
- package/dist/{divider-C38JDYss.cjs.map → divider-CFzbCFsr.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-DmO_yIVb.js → dropdown-content-BGFYBXcx.js} +3 -3
- package/dist/{dropdown-content-DmO_yIVb.js.map → dropdown-content-BGFYBXcx.js.map} +1 -1
- package/dist/{dropdown-content-rH8awIRA.cjs → dropdown-content-PaMOJphI.cjs} +2 -2
- package/dist/{dropdown-content-rH8awIRA.cjs.map → dropdown-content-PaMOJphI.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-CXYfL6bE.js → flex-Cy4Stl_1.js} +2 -2
- package/dist/{flex-CXYfL6bE.js.map → flex-Cy4Stl_1.js.map} +1 -1
- package/dist/{flex-wYuewqrr.cjs → flex-DP5O5644.cjs} +2 -2
- package/dist/{flex-wYuewqrr.cjs.map → flex-DP5O5644.cjs.map} +1 -1
- package/dist/{form-q3JZjWez.js → form-BQamcLFL.js} +2 -2
- package/dist/{form-q3JZjWez.js.map → form-BQamcLFL.js.map} +1 -1
- package/dist/{form-CNWWdhT_.cjs → form-CG3kns69.cjs} +2 -2
- package/dist/{form-CNWWdhT_.cjs.map → form-CG3kns69.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-pLQWXzo8.js → icon-Cd4p9jRB.js} +3 -3
- package/dist/{icon-pLQWXzo8.js.map → icon-Cd4p9jRB.js.map} +1 -1
- package/dist/{icon-QnmfHtfT.cjs → icon-CilwMTXB.cjs} +2 -2
- package/dist/{icon-QnmfHtfT.cjs.map → icon-CilwMTXB.cjs.map} +1 -1
- package/dist/{icon-button-DOTB_28y.js → icon-button-By17is4V.js} +3 -3
- package/dist/{icon-button-DOTB_28y.js.map → icon-button-By17is4V.js.map} +1 -1
- package/dist/{icon-button-oAOX71_s.cjs → icon-button-C4Hf63hY.cjs} +2 -2
- package/dist/{icon-button-oAOX71_s.cjs.map → icon-button-C4Hf63hY.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 +39 -39
- package/dist/{input-CCniOtAr.cjs → input-BIi0rS2t.cjs} +2 -2
- package/dist/{input-CCniOtAr.cjs.map → input-BIi0rS2t.cjs.map} +1 -1
- package/dist/{input-DeJitVSV.js → input-C8OAokVe.js} +2 -2
- package/dist/{input-DeJitVSV.js.map → input-C8OAokVe.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-Ca79GGNH.js → list-BC3OE3Pu.js} +2 -2
- package/dist/{list-Ca79GGNH.js.map → list-BC3OE3Pu.js.map} +1 -1
- package/dist/{list-Ad-24MHW.cjs → list-jFsCubuy.cjs} +2 -2
- package/dist/{list-Ad-24MHW.cjs.map → list-jFsCubuy.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-BoUiP2tU.js → litElement.mixin-C6PzcPXd.js} +2 -2
- package/dist/{litElement.mixin-BoUiP2tU.js.map → litElement.mixin-C6PzcPXd.js.map} +1 -1
- package/dist/{litElement.mixin-qOTYSaNG.cjs → litElement.mixin-Cypiq-N-.cjs} +2 -2
- package/dist/{litElement.mixin-qOTYSaNG.cjs.map → litElement.mixin-Cypiq-N-.cjs.map} +1 -1
- package/dist/{menu-6Wum4ysc.cjs → menu-CDjqdEd6.cjs} +2 -2
- package/dist/{menu-6Wum4ysc.cjs.map → menu-CDjqdEd6.cjs.map} +1 -1
- package/dist/{menu-Dd_X9oET.js → menu-n_Doj-bW.js} +3 -3
- package/dist/{menu-Dd_X9oET.js.map → menu-n_Doj-bW.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-CrNyAbmv.cjs → notification-service--VLqOJJg.cjs} +2 -2
- package/dist/{notification-service-CrNyAbmv.cjs.map → notification-service--VLqOJJg.cjs.map} +1 -1
- package/dist/{notification-service-C-9IqObm.js → notification-service-DHIhgWQr.js} +3 -3
- package/dist/{notification-service-C-9IqObm.js.map → notification-service-DHIhgWQr.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-BbBbwrJq.cjs → option-B359EBiZ.cjs} +2 -2
- package/dist/{option-BbBbwrJq.cjs.map → option-B359EBiZ.cjs.map} +1 -1
- package/dist/{option-DVSXUJ96.js → option-oyyjCwnL.js} +2 -2
- package/dist/{option-DVSXUJ96.js.map → option-oyyjCwnL.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-R5wNWHAv.cjs → payment-card-form-B-ZAsSED.cjs} +2 -2
- package/dist/{payment-card-form-R5wNWHAv.cjs.map → payment-card-form-B-ZAsSED.cjs.map} +1 -1
- package/dist/{payment-card-form-CTjgVoJK.js → payment-card-form-BSueaw97.js} +3 -3
- package/dist/{payment-card-form-CTjgVoJK.js.map → payment-card-form-BSueaw97.js.map} +1 -1
- package/dist/{radio-button-BDAW1Euc.js → radio-button-84TD7rpH.js} +2 -2
- package/dist/{radio-button-BDAW1Euc.js.map → radio-button-84TD7rpH.js.map} +1 -1
- package/dist/{radio-button-Cg1JobXT.cjs → radio-button-BO6mIWCi.cjs} +2 -2
- package/dist/{radio-button-Cg1JobXT.cjs.map → radio-button-BO6mIWCi.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-BAPIxl4s.cjs → schmancy-steps-container-Cfq8OsWt.cjs} +2 -2
- package/dist/{schmancy-steps-container-BAPIxl4s.cjs.map → schmancy-steps-container-Cfq8OsWt.cjs.map} +1 -1
- package/dist/{schmancy-steps-container--d7VK-QR.js → schmancy-steps-container-Lo4d27n3.js} +2 -2
- package/dist/{schmancy-steps-container--d7VK-QR.js.map → schmancy-steps-container-Lo4d27n3.js.map} +1 -1
- package/dist/{select-DfbOOZtm.js → select-B-zgP_v6.js} +3 -3
- package/dist/{select-DfbOOZtm.js.map → select-B-zgP_v6.js.map} +1 -1
- package/dist/{select-CnjO7DLl.cjs → select-DhEVsWh6.cjs} +2 -2
- package/dist/{select-CnjO7DLl.cjs.map → select-DhEVsWh6.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-Ds0Fp0lM.cjs → sheet-BEWq40cN.cjs} +2 -2
- package/dist/{sheet-Ds0Fp0lM.cjs.map → sheet-BEWq40cN.cjs.map} +1 -1
- package/dist/{sheet-DhbKM9gJ.js → sheet-DDY4pbD4.js} +3 -3
- package/dist/{sheet-DhbKM9gJ.js.map → sheet-DDY4pbD4.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-Ba3AEh2W.js → slider--irxEv_B.js} +3 -3
- package/dist/{slider-Ba3AEh2W.js.map → slider--irxEv_B.js.map} +1 -1
- package/dist/{slider-CSOzhUhA.cjs → slider-De-H5fe8.cjs} +2 -2
- package/dist/{slider-CSOzhUhA.cjs.map → slider-De-H5fe8.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-BgeQqlFU.js → spinner-Bl9n09Z5.js} +3 -3
- package/dist/{spinner-BgeQqlFU.js.map → spinner-Bl9n09Z5.js.map} +1 -1
- package/dist/{spinner-llMfjiIc.cjs → spinner-DNz1IjmL.cjs} +2 -2
- package/dist/{spinner-llMfjiIc.cjs.map → spinner-DNz1IjmL.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-CT2g8fDM.cjs → surface-BAEUiWcq.cjs} +2 -2
- package/dist/{surface-CT2g8fDM.cjs.map → surface-BAEUiWcq.cjs.map} +1 -1
- package/dist/{surface-UcsAmLj5.js → surface-h9dLHMTm.js} +2 -2
- package/dist/{surface-UcsAmLj5.js.map → surface-h9dLHMTm.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-DuUlrDCu.js → table-CxazXBjI.js} +2 -2
- package/dist/{table-DuUlrDCu.js.map → table-CxazXBjI.js.map} +1 -1
- package/dist/{table-CSBhQ-pa.cjs → table-Dn07ykGG.cjs} +2 -2
- package/dist/{table-CSBhQ-pa.cjs.map → table-Dn07ykGG.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-BVFHArgV.js → tabs-compatibility-B8I0vg7Y.js} +2 -2
- package/dist/{tabs-compatibility-BVFHArgV.js.map → tabs-compatibility-B8I0vg7Y.js.map} +1 -1
- package/dist/{tabs-compatibility-Bt3coGzN.cjs → tabs-compatibility-BrTxeSS-.cjs} +2 -2
- package/dist/{tabs-compatibility-Bt3coGzN.cjs.map → tabs-compatibility-BrTxeSS-.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-Du4i6vQR.js +43 -0
- package/dist/{tailwind.mixin-C71e_LC1.js.map → tailwind.mixin-Du4i6vQR.js.map} +1 -1
- package/dist/tailwind.mixin-qyIcoDLk.cjs +2 -0
- package/dist/{tailwind.mixin-CFCJhe5p.cjs.map → tailwind.mixin-qyIcoDLk.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-B8eIpYa-.js → textarea-DibCLxC2.js} +2 -2
- package/dist/{textarea-B8eIpYa-.js.map → textarea-DibCLxC2.js.map} +1 -1
- package/dist/{textarea-CtCk_1Fq.cjs → textarea-pMec4Wpg.cjs} +2 -2
- package/dist/{textarea-CtCk_1Fq.cjs.map → textarea-pMec4Wpg.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DQe5uOxU.cjs → theme-button-CG1w_waw.cjs} +2 -2
- package/dist/{theme-button-DQe5uOxU.cjs.map → theme-button-CG1w_waw.cjs.map} +1 -1
- package/dist/{theme-button-TEzhKUy6.js → theme-button-irLEczd5.js} +2 -2
- package/dist/{theme-button-TEzhKUy6.js.map → theme-button-irLEczd5.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-DiTpToTC.js → theme.component-CMM8Xws2.js} +2 -2
- package/dist/{theme.component-DiTpToTC.js.map → theme.component-CMM8Xws2.js.map} +1 -1
- package/dist/{theme.component-Be6M74nN.cjs → theme.component-CpRuySmd.cjs} +2 -2
- package/dist/{theme.component-Be6M74nN.cjs.map → theme.component-CpRuySmd.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-CBSuTrU2.js → timezone-DIrmlnD6.js} +3 -3
- package/dist/{timezone-CBSuTrU2.js.map → timezone-DIrmlnD6.js.map} +1 -1
- package/dist/{timezone-C1aR24i0.cjs → timezone-n5GflDRe.cjs} +2 -2
- package/dist/{timezone-C1aR24i0.cjs.map → timezone-n5GflDRe.cjs.map} +1 -1
- package/dist/{tooltip-DYcXTtFy.cjs → tooltip-0vIcVm5-.cjs} +2 -2
- package/dist/{tooltip-DYcXTtFy.cjs.map → tooltip-0vIcVm5-.cjs.map} +1 -1
- package/dist/{tooltip-DYQW9R3I.js → tooltip-N_B-vsDa.js} +2 -2
- package/dist/{tooltip-DYQW9R3I.js.map → tooltip-N_B-vsDa.js.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-nsSIkdNT.js → tree-2Hf2X0Hv.js} +2 -2
- package/dist/{tree-nsSIkdNT.js.map → tree-2Hf2X0Hv.js.map} +1 -1
- package/dist/{tree-D-rTjnPs.cjs → tree-Q8AMxJxP.cjs} +2 -2
- package/dist/{tree-D-rTjnPs.cjs.map → tree-Q8AMxJxP.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-Cj0R-RDa.cjs → typewriter-CsL-NfYC.cjs} +2 -2
- package/dist/{typewriter-Cj0R-RDa.cjs.map → typewriter-CsL-NfYC.cjs.map} +1 -1
- package/dist/{typewriter-DrYb6_FB.js → typewriter-bqbNKczJ.js} +4 -4
- package/dist/{typewriter-DrYb6_FB.js.map → typewriter-bqbNKczJ.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DMj2H_lZ.js → typography-CbrvouLo.js} +2 -2
- package/dist/{typography-DMj2H_lZ.js.map → typography-CbrvouLo.js.map} +1 -1
- package/dist/{typography-B0Kj2XoC.cjs → typography-Hlts-hzc.cjs} +2 -2
- package/dist/{typography-B0Kj2XoC.cjs.map → typography-Hlts-hzc.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/dist/tailwind.mixin-C71e_LC1.js +0 -43
- package/dist/tailwind.mixin-CFCJhe5p.cjs +0 -2
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Schmancy Animated Text - AI Reference
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
// Animated Text Component
|
|
5
|
+
<schmancy-animated-text
|
|
6
|
+
ease="outExpo"
|
|
7
|
+
delay="0"
|
|
8
|
+
stagger="50"
|
|
9
|
+
duration="750"
|
|
10
|
+
scale="[0, 1]"
|
|
11
|
+
opacity="[0, 1]"
|
|
12
|
+
translateX="['0.55em', '0em']"
|
|
13
|
+
translateY="['1.1em', '0em']"
|
|
14
|
+
rotate3d="[0, 0, 1, 45]">
|
|
15
|
+
Text to animate
|
|
16
|
+
</schmancy-animated-text>
|
|
17
|
+
|
|
18
|
+
// Animation Properties
|
|
19
|
+
ease: string // Animation easing function (default: "outExpo")
|
|
20
|
+
delay: number // Initial delay in milliseconds (default: 0)
|
|
21
|
+
stagger: number // Delay between letter animations (default: 50)
|
|
22
|
+
duration: number // Animation duration in milliseconds (default: 750)
|
|
23
|
+
scale: number[] // Scale transformation [from, to] (default: [0, 1])
|
|
24
|
+
opacity: number[] // Opacity transition [from, to] (default: [0, 1])
|
|
25
|
+
translateX: string[] // X translation ["from", "to"] (default: ['0.55em', '0em'])
|
|
26
|
+
translateY: string[] // Y translation ["from", "to"] (default: ['1.1em', '0em'])
|
|
27
|
+
rotate3d: number[] // 3D rotation [x, y, z, angle] (default: [0, 0, 1, 45])
|
|
28
|
+
|
|
29
|
+
// Examples
|
|
30
|
+
// 1. Basic fade in
|
|
31
|
+
<schmancy-animated-text>
|
|
32
|
+
Welcome to our application
|
|
33
|
+
</schmancy-animated-text>
|
|
34
|
+
|
|
35
|
+
// 2. Custom stagger effect
|
|
36
|
+
<schmancy-animated-text
|
|
37
|
+
stagger="100"
|
|
38
|
+
duration="1000"
|
|
39
|
+
translateY="['2em', '0em']">
|
|
40
|
+
Cascading Letters
|
|
41
|
+
</schmancy-animated-text>
|
|
42
|
+
|
|
43
|
+
// 3. Scale and rotate effect
|
|
44
|
+
<schmancy-animated-text
|
|
45
|
+
scale="[0.5, 1]"
|
|
46
|
+
rotate3d="[0, 1, 0, 180]"
|
|
47
|
+
duration="1500">
|
|
48
|
+
Dramatic Entrance
|
|
49
|
+
</schmancy-animated-text>
|
|
50
|
+
|
|
51
|
+
// 4. No translation effect
|
|
52
|
+
<schmancy-animated-text
|
|
53
|
+
translateX="['0em', '0em']"
|
|
54
|
+
translateY="['0em', '0em']"
|
|
55
|
+
opacity="[0, 1]">
|
|
56
|
+
Fade Only
|
|
57
|
+
</schmancy-animated-text>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Related Components
|
|
61
|
+
- **[Typography](./typography.md)**: Base text styling component
|
|
62
|
+
- **[Typewriter](./typewriter.md)**: Alternative text animation with typing effect
|
|
63
|
+
|
|
64
|
+
## Technical Details
|
|
65
|
+
|
|
66
|
+
### Animation Behavior
|
|
67
|
+
- Text is split into individual letter spans
|
|
68
|
+
- Each letter animates with the specified stagger delay
|
|
69
|
+
- Uses Web Animations API for performance
|
|
70
|
+
- Animations trigger on component mount and when text changes
|
|
71
|
+
- Responsive to viewport visibility
|
|
72
|
+
|
|
73
|
+
### CSS Classes
|
|
74
|
+
- `.ml7`: Main wrapper class
|
|
75
|
+
- `.text-wrapper`: Container for animated text
|
|
76
|
+
- `.letter`: Individual animated letter span
|
|
77
|
+
|
|
78
|
+
## Common Use Cases
|
|
79
|
+
|
|
80
|
+
1. **Hero Text**: Large headings with dramatic entrance animations
|
|
81
|
+
```html
|
|
82
|
+
<h1>
|
|
83
|
+
<schmancy-animated-text duration="2000" scale="[0.3, 1]">
|
|
84
|
+
Welcome to Schmancy
|
|
85
|
+
</schmancy-animated-text>
|
|
86
|
+
</h1>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
2. **Loading Messages**: Staggered letter animations for loading states
|
|
90
|
+
```html
|
|
91
|
+
<schmancy-animated-text stagger="100" translateY="['1em', '0em']">
|
|
92
|
+
Loading...
|
|
93
|
+
</schmancy-animated-text>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
3. **Notifications**: Subtle fade-in for status messages
|
|
97
|
+
```html
|
|
98
|
+
<schmancy-animated-text
|
|
99
|
+
duration="500"
|
|
100
|
+
translateX="['0em', '0em']"
|
|
101
|
+
translateY="['0em', '0em']">
|
|
102
|
+
Operation completed successfully
|
|
103
|
+
</schmancy-animated-text>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
4. **Interactive Reveals**: Combined with visibility triggers
|
|
107
|
+
```html
|
|
108
|
+
<schmancy-animated-text
|
|
109
|
+
delay="500"
|
|
110
|
+
stagger="75"
|
|
111
|
+
opacity="[0, 1]">
|
|
112
|
+
Scroll to reveal this text
|
|
113
|
+
</schmancy-animated-text>
|
|
114
|
+
```
|
package/dist/ai/card.md
CHANGED
|
@@ -1,155 +1,186 @@
|
|
|
1
1
|
# Schmancy Card - AI Reference
|
|
2
2
|
|
|
3
3
|
```js
|
|
4
|
-
//
|
|
5
|
-
<schmancy-card
|
|
6
|
-
|
|
4
|
+
// Card Component
|
|
5
|
+
<schmancy-card
|
|
6
|
+
type="elevated|filled|outlined"
|
|
7
|
+
elevation="0|1|2|3|4|5">
|
|
8
|
+
Card content
|
|
7
9
|
</schmancy-card>
|
|
8
10
|
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<h2>Card Title</h2>
|
|
13
|
-
<p>Card description text goes here.</p>
|
|
14
|
-
</schmancy-card-content>
|
|
15
|
-
</schmancy-card>
|
|
11
|
+
// Properties
|
|
12
|
+
type: string // "elevated", "filled", "outlined" (default: "elevated")
|
|
13
|
+
elevation: number // Shadow depth 0-5 (default: 0)
|
|
16
14
|
|
|
17
|
-
// Card
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
alt="Image description"
|
|
22
|
-
height="200px">
|
|
23
|
-
</schmancy-card-media>
|
|
24
|
-
|
|
25
|
-
<schmancy-card-content>
|
|
26
|
-
<h2>Card with Media</h2>
|
|
27
|
-
<p>Card content below the image.</p>
|
|
28
|
-
</schmancy-card-content>
|
|
29
|
-
</schmancy-card>
|
|
15
|
+
// Card Types
|
|
16
|
+
"elevated" // Surface with shadow, uses surface-low color
|
|
17
|
+
"filled" // Filled background, uses surface-highest color
|
|
18
|
+
"outlined" // Border outline, uses surface color
|
|
30
19
|
|
|
31
|
-
//
|
|
20
|
+
// Examples
|
|
21
|
+
// 1. Basic elevated card
|
|
32
22
|
<schmancy-card>
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
<p>Card content with action buttons.</p>
|
|
36
|
-
</schmancy-card-content>
|
|
37
|
-
|
|
38
|
-
<schmancy-card-actions>
|
|
39
|
-
<schmancy-button>Action 1</schmancy-button>
|
|
40
|
-
<schmancy-button>Action 2</schmancy-button>
|
|
41
|
-
</schmancy-card-actions>
|
|
23
|
+
<h3>Card Title</h3>
|
|
24
|
+
<p>Card content goes here</p>
|
|
42
25
|
</schmancy-card>
|
|
43
26
|
|
|
44
|
-
//
|
|
45
|
-
<schmancy-card>
|
|
46
|
-
<schmancy-card-media
|
|
47
|
-
|
|
48
|
-
alt="Image description">
|
|
27
|
+
// 2. Filled card with custom elevation
|
|
28
|
+
<schmancy-card type="filled" elevation="2">
|
|
29
|
+
<schmancy-card-media>
|
|
30
|
+
<img src="image.jpg" alt="Card image">
|
|
49
31
|
</schmancy-card-media>
|
|
50
|
-
|
|
51
32
|
<schmancy-card-content>
|
|
52
|
-
<
|
|
53
|
-
<p>
|
|
33
|
+
<h3>Product Name</h3>
|
|
34
|
+
<p>Product description</p>
|
|
54
35
|
</schmancy-card-content>
|
|
55
|
-
|
|
56
36
|
<schmancy-card-actions>
|
|
57
|
-
<schmancy-button
|
|
58
|
-
<schmancy-button kind="primary">Submit</schmancy-button>
|
|
37
|
+
<schmancy-button>Add to Cart</schmancy-button>
|
|
59
38
|
</schmancy-card-actions>
|
|
60
39
|
</schmancy-card>
|
|
61
40
|
|
|
62
|
-
//
|
|
63
|
-
outlined
|
|
64
|
-
|
|
65
|
-
|
|
41
|
+
// 3. Outlined card
|
|
42
|
+
<schmancy-card type="outlined">
|
|
43
|
+
<div style="padding: 16px;">
|
|
44
|
+
<h4>Settings</h4>
|
|
45
|
+
<p>Configure your preferences</p>
|
|
46
|
+
</div>
|
|
47
|
+
</schmancy-card>
|
|
66
48
|
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
49
|
+
// 4. Interactive card with hover effect
|
|
50
|
+
<schmancy-card elevation="1">
|
|
51
|
+
<a href="/details" style="text-decoration: none; color: inherit;">
|
|
52
|
+
<div style="padding: 16px;">
|
|
53
|
+
<h3>Click for Details</h3>
|
|
54
|
+
<p>This card has hover elevation changes</p>
|
|
55
|
+
</div>
|
|
56
|
+
</a>
|
|
57
|
+
</schmancy-card>
|
|
58
|
+
```
|
|
72
59
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
60
|
+
## Related Components
|
|
61
|
+
- **[Surface](./surface.md)**: Base container component with more options
|
|
62
|
+
- **[Card Content](./card.md#content)**: Structured content area
|
|
63
|
+
- **[Card Media](./card.md#media)**: Media container for cards
|
|
64
|
+
- **[Card Actions](./card.md#actions)**: Action button container
|
|
76
65
|
|
|
77
|
-
|
|
78
|
-
// Basic card with content
|
|
79
|
-
<schmancy-card>
|
|
80
|
-
<schmancy-card-content>
|
|
81
|
-
<h2>Welcome to Schmancy</h2>
|
|
82
|
-
<p>A modern component library for web applications.</p>
|
|
83
|
-
</schmancy-card-content>
|
|
84
|
-
</schmancy-card>
|
|
66
|
+
## Technical Details
|
|
85
67
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<h3>Click Me</h3>
|
|
92
|
-
<p>This entire card is clickable.</p>
|
|
93
|
-
</schmancy-card-content>
|
|
94
|
-
</schmancy-card>
|
|
68
|
+
### CSS Host Styling
|
|
69
|
+
The component uses `:host` selectors for all styling:
|
|
70
|
+
- No wrapper elements - clean component boundary
|
|
71
|
+
- Type and elevation properties reflect to HTML attributes
|
|
72
|
+
- Automatic hover states for elevated and outlined types
|
|
95
73
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
</schmancy-card>
|
|
74
|
+
### Theme Integration
|
|
75
|
+
```css
|
|
76
|
+
/* Type-based colors */
|
|
77
|
+
type="elevated" -> --schmancy-sys-color-surface-low
|
|
78
|
+
type="filled" -> --schmancy-sys-color-surface-highest
|
|
79
|
+
type="outlined" -> --schmancy-sys-color-surface-default
|
|
103
80
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
</
|
|
122
|
-
</
|
|
81
|
+
/* Outline color */
|
|
82
|
+
--schmancy-sys-color-outlineVariant
|
|
83
|
+
|
|
84
|
+
/* Elevation shadows */
|
|
85
|
+
--schmancy-sys-elevation-1 through --schmancy-sys-elevation-5
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Hover Behavior
|
|
89
|
+
- Elevated cards: elevation 1 → 2 on hover
|
|
90
|
+
- Filled cards: no elevation → 1 on hover
|
|
91
|
+
- Outlined cards: no elevation → 1 on hover
|
|
92
|
+
|
|
93
|
+
## Card Sub-components
|
|
94
|
+
|
|
95
|
+
### Card Content
|
|
96
|
+
```html
|
|
97
|
+
<schmancy-card-content>
|
|
98
|
+
<h3>Title</h3>
|
|
99
|
+
<p>Description text</p>
|
|
100
|
+
</schmancy-card-content>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Card Media
|
|
104
|
+
```html
|
|
105
|
+
<schmancy-card-media>
|
|
106
|
+
<img src="image.jpg" alt="Media">
|
|
107
|
+
</schmancy-card-media>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Card Actions
|
|
111
|
+
```html
|
|
112
|
+
<schmancy-card-actions>
|
|
113
|
+
<schmancy-button>Action 1</schmancy-button>
|
|
114
|
+
<schmancy-button variant="text">Action 2</schmancy-button>
|
|
115
|
+
</schmancy-card-actions>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Common Use Cases
|
|
119
|
+
|
|
120
|
+
1. **Product Cards**: E-commerce product display
|
|
121
|
+
```html
|
|
122
|
+
<schmancy-card type="elevated">
|
|
123
|
+
<schmancy-card-media>
|
|
124
|
+
<img src="product.jpg" alt="Product">
|
|
125
|
+
</schmancy-card-media>
|
|
126
|
+
<schmancy-card-content>
|
|
127
|
+
<h3>Product Name</h3>
|
|
128
|
+
<p class="price">$29.99</p>
|
|
129
|
+
<p class="description">Product description...</p>
|
|
130
|
+
</schmancy-card-content>
|
|
131
|
+
<schmancy-card-actions>
|
|
132
|
+
<schmancy-button variant="filled">Add to Cart</schmancy-button>
|
|
133
|
+
<schmancy-button variant="text">Details</schmancy-button>
|
|
134
|
+
</schmancy-card-actions>
|
|
135
|
+
</schmancy-card>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
2. **Info Cards**: Dashboard or stats display
|
|
139
|
+
```html
|
|
140
|
+
<schmancy-card type="filled" elevation="0">
|
|
141
|
+
<div style="padding: 24px;">
|
|
142
|
+
<schmancy-icon icon="users" size="32"></schmancy-icon>
|
|
143
|
+
<h2>1,234</h2>
|
|
144
|
+
<p>Active Users</p>
|
|
145
|
+
</div>
|
|
146
|
+
</schmancy-card>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
3. **Settings Cards**: Options or configuration
|
|
150
|
+
```html
|
|
151
|
+
<schmancy-card type="outlined">
|
|
152
|
+
<schmancy-card-content>
|
|
153
|
+
<h4>Notification Settings</h4>
|
|
154
|
+
<schmancy-form>
|
|
155
|
+
<schmancy-checkbox>Email notifications</schmancy-checkbox>
|
|
156
|
+
<schmancy-checkbox>Push notifications</schmancy-checkbox>
|
|
157
|
+
</schmancy-form>
|
|
158
|
+
</schmancy-card-content>
|
|
159
|
+
</schmancy-card>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
4. **Media Cards**: Image galleries
|
|
163
|
+
```html
|
|
164
|
+
<schmancy-card elevation="2">
|
|
165
|
+
<schmancy-card-media aspect-ratio="16:9">
|
|
166
|
+
<img src="gallery-image.jpg" alt="Gallery">
|
|
167
|
+
</schmancy-card-media>
|
|
168
|
+
<schmancy-card-content>
|
|
169
|
+
<p>Image caption or description</p>
|
|
170
|
+
</schmancy-card-content>
|
|
171
|
+
</schmancy-card>
|
|
172
|
+
```
|
|
123
173
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
<schmancy-card-content>
|
|
139
|
-
<h3>${product.name}</h3>
|
|
140
|
-
<p>${product.description}</p>
|
|
141
|
-
<p><strong>${product.price}</strong></p>
|
|
142
|
-
</schmancy-card-content>
|
|
143
|
-
|
|
144
|
-
<schmancy-card-actions>
|
|
145
|
-
<schmancy-button @click=${() => viewProduct(product)}>
|
|
146
|
-
View
|
|
147
|
-
</schmancy-button>
|
|
148
|
-
<schmancy-button kind="primary" @click=${() => addToCart(product)}>
|
|
149
|
-
Add to Cart
|
|
150
|
-
</schmancy-button>
|
|
151
|
-
</schmancy-card-actions>
|
|
152
|
-
</schmancy-card>
|
|
153
|
-
`)}
|
|
154
|
-
</schmancy-grid>
|
|
155
|
-
```
|
|
174
|
+
5. **List Item Cards**: Clickable list items
|
|
175
|
+
```html
|
|
176
|
+
<schmancy-card type="elevated" elevation="1">
|
|
177
|
+
<a href="/user/123" style="display: flex; padding: 16px; align-items: center; text-decoration: none; color: inherit;">
|
|
178
|
+
<schmancy-avatar src="user.jpg"></schmancy-avatar>
|
|
179
|
+
<div style="margin-left: 16px; flex: 1;">
|
|
180
|
+
<h4>User Name</h4>
|
|
181
|
+
<p>user@example.com</p>
|
|
182
|
+
</div>
|
|
183
|
+
<schmancy-icon icon="chevron-right"></schmancy-icon>
|
|
184
|
+
</a>
|
|
185
|
+
</schmancy-card>
|
|
186
|
+
```
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Schmancy Circular Progress - AI Reference
|
|
2
|
+
|
|
3
|
+
```js
|
|
4
|
+
// Circular Progress Component
|
|
5
|
+
<schmancy-circular-progress
|
|
6
|
+
size="xs|sm|md|lg|xl|{custom}"
|
|
7
|
+
indeterminate?>
|
|
8
|
+
</schmancy-circular-progress>
|
|
9
|
+
|
|
10
|
+
// Properties
|
|
11
|
+
size: string // "xs", "sm", "md", "lg", "xl", or custom size (default: "md")
|
|
12
|
+
indeterminate: boolean // Whether the progress is indeterminate (default: false)
|
|
13
|
+
|
|
14
|
+
// Size values
|
|
15
|
+
"xs" = 16px
|
|
16
|
+
"sm" = 24px
|
|
17
|
+
"md" = 32px
|
|
18
|
+
"lg" = 48px
|
|
19
|
+
"xl" = 64px
|
|
20
|
+
|
|
21
|
+
// Examples
|
|
22
|
+
// 1. Basic medium progress
|
|
23
|
+
<schmancy-circular-progress></schmancy-circular-progress>
|
|
24
|
+
|
|
25
|
+
// 2. Large indeterminate progress
|
|
26
|
+
<schmancy-circular-progress
|
|
27
|
+
size="lg"
|
|
28
|
+
indeterminate>
|
|
29
|
+
</schmancy-circular-progress>
|
|
30
|
+
|
|
31
|
+
// 3. Custom size
|
|
32
|
+
<schmancy-circular-progress size="100">
|
|
33
|
+
</schmancy-circular-progress>
|
|
34
|
+
|
|
35
|
+
// 4. Small progress indicator
|
|
36
|
+
<schmancy-circular-progress size="xs">
|
|
37
|
+
</schmancy-circular-progress>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Related Components
|
|
41
|
+
- **[Busy](./busy.md)**: Parent component providing spinner functionality
|
|
42
|
+
- **[Button](./button.md)**: Often used with buttons to show loading state
|
|
43
|
+
|
|
44
|
+
## Technical Details
|
|
45
|
+
|
|
46
|
+
### Implementation
|
|
47
|
+
- Internally uses `<schmancy-spinner>` component
|
|
48
|
+
- Size can be predefined string or custom CSS value
|
|
49
|
+
- Numeric values are converted to pixels
|
|
50
|
+
- Reflects indeterminate attribute to host element
|
|
51
|
+
|
|
52
|
+
### CSS Custom Properties
|
|
53
|
+
The component inherits spinner styling from the busy component.
|
|
54
|
+
|
|
55
|
+
## Common Use Cases
|
|
56
|
+
|
|
57
|
+
1. **Loading Buttons**: Show progress inside buttons
|
|
58
|
+
```html
|
|
59
|
+
<schmancy-button disabled>
|
|
60
|
+
<schmancy-circular-progress size="sm"></schmancy-circular-progress>
|
|
61
|
+
Processing...
|
|
62
|
+
</schmancy-button>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
2. **Page Loading**: Full-page loading indicator
|
|
66
|
+
```html
|
|
67
|
+
<div class="loading-overlay">
|
|
68
|
+
<schmancy-circular-progress
|
|
69
|
+
size="xl"
|
|
70
|
+
indeterminate>
|
|
71
|
+
</schmancy-circular-progress>
|
|
72
|
+
</div>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
3. **Inline Loading**: Small indicators in lists or tables
|
|
76
|
+
```html
|
|
77
|
+
<td>
|
|
78
|
+
<schmancy-circular-progress size="xs"></schmancy-circular-progress>
|
|
79
|
+
Loading data...
|
|
80
|
+
</td>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
4. **Card Loading State**: Centered in content areas
|
|
84
|
+
```html
|
|
85
|
+
<schmancy-card>
|
|
86
|
+
<div class="centered">
|
|
87
|
+
<schmancy-circular-progress size="lg"></schmancy-circular-progress>
|
|
88
|
+
<p>Fetching results...</p>
|
|
89
|
+
</div>
|
|
90
|
+
</schmancy-card>
|
|
91
|
+
```
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Date Range Component
|
|
2
|
+
|
|
3
|
+
A sophisticated date range selector that supports both date and datetime selection with presets, manual input, and intelligent range navigation.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<!-- Basic date range selector -->
|
|
9
|
+
<schmancy-date-range
|
|
10
|
+
.dateFrom="${{ label: 'Start', value: '2024-01-01' }}"
|
|
11
|
+
.dateTo="${{ label: 'End', value: '2024-12-31' }}"
|
|
12
|
+
></schmancy-date-range>
|
|
13
|
+
|
|
14
|
+
<!-- DateTime selector with custom presets -->
|
|
15
|
+
<schmancy-date-range
|
|
16
|
+
type="datetime-local"
|
|
17
|
+
.customPresets="${[
|
|
18
|
+
{ label: 'Last Sprint', dateFrom: '2024-01-01', dateTo: '2024-01-14' }
|
|
19
|
+
]}"
|
|
20
|
+
></schmancy-date-range>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Properties
|
|
24
|
+
|
|
25
|
+
| Property | Type | Default | Description |
|
|
26
|
+
|----------|------|---------|-------------|
|
|
27
|
+
| `type` | `'date' \| 'datetime-local'` | `'date'` | Date input type |
|
|
28
|
+
| `dateFrom` | `{ label: string, value: string }` | `{ label: 'From', value: '' }` | Start date configuration |
|
|
29
|
+
| `dateTo` | `{ label: string, value: string }` | `{ label: 'To', value: '' }` | End date configuration |
|
|
30
|
+
| `minDate` | `string` | - | Minimum selectable date |
|
|
31
|
+
| `maxDate` | `string` | - | Maximum selectable date |
|
|
32
|
+
| `customPresets` | `Array<{ label, dateFrom, dateTo }>` | `[]` | Custom preset ranges |
|
|
33
|
+
| `format` | `string` | - | Date format (defaults based on type) |
|
|
34
|
+
| `disabled` | `boolean` | `false` | Disable the component |
|
|
35
|
+
| `required` | `boolean` | `false` | Mark as required field |
|
|
36
|
+
| `placeholder` | `string` | `'Select date range'` | Placeholder text |
|
|
37
|
+
| `clearable` | `boolean` | `true` | Show clear button |
|
|
38
|
+
|
|
39
|
+
## Events
|
|
40
|
+
|
|
41
|
+
### change
|
|
42
|
+
Fired when date range changes.
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
interface DateRangeChangeEvent {
|
|
46
|
+
detail: {
|
|
47
|
+
dateFrom: string;
|
|
48
|
+
dateTo: string;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
### With Form Integration
|
|
56
|
+
```html
|
|
57
|
+
<schmancy-form>
|
|
58
|
+
<schmancy-date-range
|
|
59
|
+
name="project-timeline"
|
|
60
|
+
required
|
|
61
|
+
.dateFrom="${{ label: 'Project Start', value: '' }}"
|
|
62
|
+
.dateTo="${{ label: 'Project End', value: '' }}"
|
|
63
|
+
@change="${(e) => console.log('Timeline:', e.detail)}"
|
|
64
|
+
></schmancy-date-range>
|
|
65
|
+
</schmancy-form>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Analytics Dashboard
|
|
69
|
+
```html
|
|
70
|
+
<!-- Date range for analytics with custom presets -->
|
|
71
|
+
<schmancy-date-range
|
|
72
|
+
.customPresets="${[
|
|
73
|
+
{ label: 'Holiday Season', dateFrom: '2023-11-24', dateTo: '2024-01-02' },
|
|
74
|
+
{ label: 'Q4 2023', dateFrom: '2023-10-01', dateTo: '2023-12-31' }
|
|
75
|
+
]}"
|
|
76
|
+
@change="${updateAnalytics}"
|
|
77
|
+
></schmancy-date-range>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### DateTime Range for Events
|
|
81
|
+
```html
|
|
82
|
+
<schmancy-date-range
|
|
83
|
+
type="datetime-local"
|
|
84
|
+
.dateFrom="${{ label: 'Event Start', value: '2024-03-15T09:00' }}"
|
|
85
|
+
.dateTo="${{ label: 'Event End', value: '2024-03-15T17:00' }}"
|
|
86
|
+
minDate="2024-01-01T00:00"
|
|
87
|
+
></schmancy-date-range>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Features
|
|
91
|
+
|
|
92
|
+
### Built-in Presets
|
|
93
|
+
The component includes intelligent preset categories:
|
|
94
|
+
- **Days**: Today, Yesterday, Last 7/30/90 Days
|
|
95
|
+
- **Weeks**: This Week, Last Week
|
|
96
|
+
- **Months**: This Month, Last Month
|
|
97
|
+
- **Quarters**: This Quarter, Last Quarter
|
|
98
|
+
- **Years**: This Year, Last Year, Year to Date
|
|
99
|
+
- **Hours** (datetime-local): Last 12/24 Hours
|
|
100
|
+
|
|
101
|
+
### Smart Navigation
|
|
102
|
+
- Arrow buttons shift ranges intelligently based on duration
|
|
103
|
+
- Maintains full period boundaries (weeks, months, quarters)
|
|
104
|
+
- Automatically detects and preserves preset selections
|
|
105
|
+
|
|
106
|
+
### Responsive Dropdown
|
|
107
|
+
- Floating UI positioning with automatic adjustments
|
|
108
|
+
- Categorized preset display
|
|
109
|
+
- Manual date inputs with validation
|
|
110
|
+
|
|
111
|
+
## Styling
|
|
112
|
+
|
|
113
|
+
The component uses semantic color tokens and supports theming:
|
|
114
|
+
|
|
115
|
+
```css
|
|
116
|
+
schmancy-date-range {
|
|
117
|
+
--animation-duration: 200ms;
|
|
118
|
+
--dropdown-min-width: 16rem;
|
|
119
|
+
--dropdown-max-width: 24rem;
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Accessibility
|
|
124
|
+
|
|
125
|
+
- Full keyboard navigation support
|
|
126
|
+
- ARIA labels and roles
|
|
127
|
+
- Focus management
|
|
128
|
+
- Screen reader announcements
|
|
129
|
+
|
|
130
|
+
## Related Components
|
|
131
|
+
|
|
132
|
+
- [Input](./input.md) - For single date inputs
|
|
133
|
+
- [Form](./form.md) - Form integration
|
|
134
|
+
- [Button](./button.md) - Used for triggers and actions
|
|
135
|
+
- [Surface](./surface.md) - Dropdown container
|
|
136
|
+
|
|
137
|
+
## Best Practices
|
|
138
|
+
|
|
139
|
+
1. **Validation**: Always validate date ranges on the backend
|
|
140
|
+
2. **Timezones**: Consider timezone handling for datetime-local inputs
|
|
141
|
+
3. **Presets**: Add domain-specific presets for better UX
|
|
142
|
+
4. **Loading States**: Show loading indicators when fetching data based on range changes
|