@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
package/dist/ai/delay.md
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Delay Component
|
|
2
|
+
|
|
3
|
+
A utility component that delays the rendering of its content with sophisticated animation support and session-based memory.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<!-- Basic delay -->
|
|
9
|
+
<schmancy-delay delay="300">
|
|
10
|
+
<schmancy-card>Welcome!</schmancy-card>
|
|
11
|
+
</schmancy-delay>
|
|
12
|
+
|
|
13
|
+
<!-- Staggered delays for list items -->
|
|
14
|
+
<div>
|
|
15
|
+
<schmancy-delay delay="100">
|
|
16
|
+
<div>First item</div>
|
|
17
|
+
</schmancy-delay>
|
|
18
|
+
<schmancy-delay delay="100">
|
|
19
|
+
<div>Second item (200ms total)</div>
|
|
20
|
+
</schmancy-delay>
|
|
21
|
+
<schmancy-delay delay="100">
|
|
22
|
+
<div>Third item (300ms total)</div>
|
|
23
|
+
</schmancy-delay>
|
|
24
|
+
</div>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Properties
|
|
28
|
+
|
|
29
|
+
| Property | Type | Default | Description |
|
|
30
|
+
|----------|------|---------|-------------|
|
|
31
|
+
| `delay` | `number` | `0` | Delay in milliseconds |
|
|
32
|
+
| `motion` | `string` | `'flyBelow'` | Animation type: 'flyBelow', 'flyAbove', or 'fadeIn' |
|
|
33
|
+
| `once` | `boolean` | `true` | Only animate once per session |
|
|
34
|
+
|
|
35
|
+
## Context Integration
|
|
36
|
+
|
|
37
|
+
The component participates in a delay context system, allowing nested delays to accumulate:
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<!-- Parent provides 500ms base delay -->
|
|
41
|
+
<schmancy-delay delay="500">
|
|
42
|
+
<div>
|
|
43
|
+
<!-- Child adds 200ms (700ms total) -->
|
|
44
|
+
<schmancy-delay delay="200">
|
|
45
|
+
<schmancy-card>Nested content</schmancy-card>
|
|
46
|
+
</schmancy-delay>
|
|
47
|
+
</div>
|
|
48
|
+
</schmancy-delay>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
|
|
53
|
+
### Hero Section Animation
|
|
54
|
+
```html
|
|
55
|
+
<schmancy-delay delay="0" motion="fadeIn">
|
|
56
|
+
<h1>Welcome to Our App</h1>
|
|
57
|
+
</schmancy-delay>
|
|
58
|
+
<schmancy-delay delay="300" motion="flyBelow">
|
|
59
|
+
<p>Discover amazing features</p>
|
|
60
|
+
</schmancy-delay>
|
|
61
|
+
<schmancy-delay delay="600" motion="flyBelow">
|
|
62
|
+
<schmancy-button variant="filled">Get Started</schmancy-button>
|
|
63
|
+
</schmancy-delay>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Staggered List Animation
|
|
67
|
+
```html
|
|
68
|
+
<schmancy-list>
|
|
69
|
+
${items.map((item, index) => html`
|
|
70
|
+
<schmancy-delay delay="${index * 100}" motion="flyBelow">
|
|
71
|
+
<schmancy-list-item>
|
|
72
|
+
${item.title}
|
|
73
|
+
</schmancy-list-item>
|
|
74
|
+
</schmancy-delay>
|
|
75
|
+
`)}
|
|
76
|
+
</schmancy-list>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Dashboard Cards
|
|
80
|
+
```html
|
|
81
|
+
<div class="grid grid-cols-3 gap-4">
|
|
82
|
+
<schmancy-delay delay="0">
|
|
83
|
+
<schmancy-card>
|
|
84
|
+
<h3>Total Sales</h3>
|
|
85
|
+
<p>$45,231</p>
|
|
86
|
+
</schmancy-card>
|
|
87
|
+
</schmancy-delay>
|
|
88
|
+
|
|
89
|
+
<schmancy-delay delay="150">
|
|
90
|
+
<schmancy-card>
|
|
91
|
+
<h3>New Users</h3>
|
|
92
|
+
<p>1,234</p>
|
|
93
|
+
</schmancy-card>
|
|
94
|
+
</schmancy-delay>
|
|
95
|
+
|
|
96
|
+
<schmancy-delay delay="300">
|
|
97
|
+
<schmancy-card>
|
|
98
|
+
<h3>Active Sessions</h3>
|
|
99
|
+
<p>892</p>
|
|
100
|
+
</schmancy-card>
|
|
101
|
+
</schmancy-delay>
|
|
102
|
+
</div>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Features
|
|
106
|
+
|
|
107
|
+
### Session Memory
|
|
108
|
+
When `once` is true, the component remembers if content has been shown and skips the delay on subsequent visits within the same session.
|
|
109
|
+
|
|
110
|
+
### Intelligent Staggering
|
|
111
|
+
Sibling delay components automatically accumulate delays, creating smooth staggered animations without manual calculation.
|
|
112
|
+
|
|
113
|
+
### Motion Types
|
|
114
|
+
- `flyBelow`: Content slides up from below with fade
|
|
115
|
+
- `flyAbove`: Content slides down from above with fade
|
|
116
|
+
- `fadeIn`: Simple opacity fade
|
|
117
|
+
|
|
118
|
+
### Performance Optimized
|
|
119
|
+
- Uses native Web Animations API
|
|
120
|
+
- Cleans up observers on disconnect
|
|
121
|
+
- Efficient session storage usage
|
|
122
|
+
|
|
123
|
+
## Animation Customization
|
|
124
|
+
|
|
125
|
+
The component uses Lit's `@lit-labs/motion` for animations:
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
// Animation duration and easing are configurable
|
|
129
|
+
${animate({
|
|
130
|
+
in: this.motionLit,
|
|
131
|
+
keyframeOptions: {
|
|
132
|
+
duration: 300,
|
|
133
|
+
easing: 'ease-out'
|
|
134
|
+
}
|
|
135
|
+
})}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Best Practices
|
|
139
|
+
|
|
140
|
+
1. **Performance**: Use reasonable delays (typically under 1000ms)
|
|
141
|
+
2. **Accessibility**: Respect `prefers-reduced-motion`
|
|
142
|
+
3. **UX**: Don't delay critical content
|
|
143
|
+
4. **Staggering**: Keep increments small (50-150ms) for smooth effects
|
|
144
|
+
|
|
145
|
+
## Related Components
|
|
146
|
+
|
|
147
|
+
- [Animated Text](./animated-text.md) - For text-specific animations
|
|
148
|
+
- [Typewriter](./typewriter.md) - For typing animations
|
|
149
|
+
- [Card](./card.md) - Common content to delay
|
|
150
|
+
- [List](./list.md) - For staggered list animations
|
|
151
|
+
|
|
152
|
+
## Use Cases
|
|
153
|
+
|
|
154
|
+
1. **Landing Pages**: Create engaging hero sections
|
|
155
|
+
2. **Dashboards**: Stagger widget appearances
|
|
156
|
+
3. **Onboarding**: Guide user attention
|
|
157
|
+
4. **Data Loading**: Smooth transitions for async content
|
|
158
|
+
5. **Navigation**: Animate route transitions
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Divider Component
|
|
2
|
+
|
|
3
|
+
A sleek animated divider component that provides visual separation between content sections with customizable orientation and animation effects.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<!-- Basic horizontal divider -->
|
|
9
|
+
<schmancy-divider></schmancy-divider>
|
|
10
|
+
|
|
11
|
+
<!-- Vertical divider -->
|
|
12
|
+
<schmancy-divider orientation="vertical"></schmancy-divider>
|
|
13
|
+
|
|
14
|
+
<!-- Animated from center -->
|
|
15
|
+
<schmancy-divider grow="both"></schmancy-divider>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Properties
|
|
19
|
+
|
|
20
|
+
| Property | Type | Default | Description |
|
|
21
|
+
|----------|------|---------|-------------|
|
|
22
|
+
| `outline` | `'default' \| 'variant'` | `'variant'` | Color style of the divider |
|
|
23
|
+
| `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | Divider direction |
|
|
24
|
+
| `grow` | `'start' \| 'end' \| 'both'` | `'start'` | Animation growth direction |
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Section Separators
|
|
29
|
+
```html
|
|
30
|
+
<schmancy-surface>
|
|
31
|
+
<h2>Section One</h2>
|
|
32
|
+
<p>Content for the first section...</p>
|
|
33
|
+
|
|
34
|
+
<schmancy-divider class="my-6"></schmancy-divider>
|
|
35
|
+
|
|
36
|
+
<h2>Section Two</h2>
|
|
37
|
+
<p>Content for the second section...</p>
|
|
38
|
+
</schmancy-surface>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Sidebar Layout
|
|
42
|
+
```html
|
|
43
|
+
<div class="flex">
|
|
44
|
+
<nav class="w-64 p-4">
|
|
45
|
+
<!-- Navigation items -->
|
|
46
|
+
</nav>
|
|
47
|
+
|
|
48
|
+
<schmancy-divider orientation="vertical" class="h-screen"></schmancy-divider>
|
|
49
|
+
|
|
50
|
+
<main class="flex-1 p-4">
|
|
51
|
+
<!-- Main content -->
|
|
52
|
+
</main>
|
|
53
|
+
</div>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Animated List Separators
|
|
57
|
+
```html
|
|
58
|
+
<schmancy-list>
|
|
59
|
+
${items.map((item, index) => html`
|
|
60
|
+
<schmancy-list-item>${item.name}</schmancy-list-item>
|
|
61
|
+
${index < items.length - 1 ? html`
|
|
62
|
+
<schmancy-divider
|
|
63
|
+
grow="both"
|
|
64
|
+
style="--animation-duration: 0.3s"
|
|
65
|
+
></schmancy-divider>
|
|
66
|
+
` : ''}
|
|
67
|
+
`)}
|
|
68
|
+
</schmancy-list>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Card with Sections
|
|
72
|
+
```html
|
|
73
|
+
<schmancy-card>
|
|
74
|
+
<div slot="header">
|
|
75
|
+
<h3>User Profile</h3>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<div>
|
|
79
|
+
<p>Name: John Doe</p>
|
|
80
|
+
<p>Email: john@example.com</p>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<schmancy-divider outline="default" class="my-4"></schmancy-divider>
|
|
84
|
+
|
|
85
|
+
<div>
|
|
86
|
+
<h4>Recent Activity</h4>
|
|
87
|
+
<ul>
|
|
88
|
+
<li>Logged in - 2 hours ago</li>
|
|
89
|
+
<li>Updated profile - Yesterday</li>
|
|
90
|
+
</ul>
|
|
91
|
+
</div>
|
|
92
|
+
</schmancy-card>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Features
|
|
96
|
+
|
|
97
|
+
### Animation Options
|
|
98
|
+
|
|
99
|
+
**Growth Direction**:
|
|
100
|
+
- `start`: Animates from start (left/top)
|
|
101
|
+
- `end`: Animates from end (right/bottom)
|
|
102
|
+
- `both`: Animates from center outward
|
|
103
|
+
|
|
104
|
+
### RTL Support
|
|
105
|
+
The component automatically adjusts animation direction for right-to-left layouts.
|
|
106
|
+
|
|
107
|
+
### Color Variants
|
|
108
|
+
- `variant`: Uses `outlineVariant` color (subtle)
|
|
109
|
+
- `default`: Uses `outline` color (more prominent)
|
|
110
|
+
|
|
111
|
+
## Styling
|
|
112
|
+
|
|
113
|
+
### CSS Custom Properties
|
|
114
|
+
```css
|
|
115
|
+
schmancy-divider {
|
|
116
|
+
--divider-color: var(--schmancy-sys-color-outlineVariant);
|
|
117
|
+
--animation-duration: 1s;
|
|
118
|
+
--transform-origin: left; /* or right, center */
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Animation Keyframes
|
|
123
|
+
The component uses CSS animations for smooth drawing effects:
|
|
124
|
+
- Horizontal dividers use `scaleX` transformation
|
|
125
|
+
- Vertical dividers use `scaleY` transformation
|
|
126
|
+
|
|
127
|
+
## Accessibility
|
|
128
|
+
|
|
129
|
+
- Uses `aria-hidden="true"` on decorative connector lines
|
|
130
|
+
- Semantic HTML structure
|
|
131
|
+
- No interactive elements
|
|
132
|
+
|
|
133
|
+
## Related Components
|
|
134
|
+
|
|
135
|
+
- [Surface](./surface.md) - Container for divided content
|
|
136
|
+
- [Card](./card.md) - Cards with divided sections
|
|
137
|
+
- [List](./list.md) - Lists with dividers
|
|
138
|
+
- [Layout](./layout.md) - Page layout divisions
|
|
139
|
+
|
|
140
|
+
## Best Practices
|
|
141
|
+
|
|
142
|
+
1. **Spacing**: Use consistent margin/padding around dividers
|
|
143
|
+
2. **Animation**: Keep animations subtle (300-500ms)
|
|
144
|
+
3. **Contrast**: Ensure sufficient contrast in both light/dark themes
|
|
145
|
+
4. **Semantic HTML**: Use dividers for visual separation, not structural
|
|
146
|
+
|
|
147
|
+
## Use Cases
|
|
148
|
+
|
|
149
|
+
1. **Form Sections**: Separate form groups
|
|
150
|
+
2. **Navigation**: Divide menu sections
|
|
151
|
+
3. **Content**: Break up long text content
|
|
152
|
+
4. **Lists**: Separate list items
|
|
153
|
+
5. **Layouts**: Create visual boundaries in layouts
|
package/dist/ai/index.md
CHANGED
|
@@ -4,18 +4,57 @@ This directory contains concise reference documentation for the Schmancy compone
|
|
|
4
4
|
|
|
5
5
|
## Components
|
|
6
6
|
|
|
7
|
+
### Core Components
|
|
8
|
+
- [Animated Text](./animated-text.md) - Animated text effects with word and letter animations
|
|
7
9
|
- [Area](./area.md) - Routing and subscription API for application areas
|
|
10
|
+
- [Autocomplete](./autocomplete.md) - Searchable input with dropdown suggestions
|
|
11
|
+
- [Avatar](./avatar.md) - User profile images with fallback initials
|
|
12
|
+
- [Badge](./badge.md) - Status indicators and notification counts
|
|
13
|
+
- [Busy](./busy.md) - Loading states and progress indicators
|
|
8
14
|
- [Button](./button.md) - Primary, secondary, and tertiary buttons with various states
|
|
15
|
+
- [Card](./card.md) - Content containers with headers and actions
|
|
16
|
+
- [Checkbox](./checkbox.md) - Checkable input with indeterminate state
|
|
17
|
+
- [Chips](./chips.md) - Compact elements for input or selection
|
|
18
|
+
|
|
19
|
+
### Layout & Navigation
|
|
9
20
|
- [Content Drawer](./content-drawer.md) - Sliding panel system for navigation and overlays
|
|
21
|
+
- [Date Range](./date-range.md) - Date range selector with presets
|
|
22
|
+
- [Delay](./delay.md) - Delayed content rendering with animations
|
|
10
23
|
- [Dialog](./dialog.md) - Modal dialog boxes for confirmations and custom content
|
|
11
|
-
- [
|
|
12
|
-
- [
|
|
24
|
+
- [Divider](./divider.md) - Visual separators with animations
|
|
25
|
+
- [Dropdown](./dropdown.md) - Floating dropdown menus
|
|
13
26
|
- [Layout](./layout.md) - Flex and grid layout components
|
|
14
27
|
- [List](./list.md) - Interactive lists with selection support
|
|
28
|
+
- [Menu](./menu.md) - Context and dropdown menus
|
|
29
|
+
- [Nav Drawer](./nav-drawer.md) - Responsive navigation drawer system
|
|
30
|
+
|
|
31
|
+
### Form Elements
|
|
32
|
+
- [Form](./form.md) - Form containers with validation capabilities
|
|
33
|
+
- [Input](./input.md) - Text input fields with various types and features
|
|
34
|
+
- [Option](./option.md) - Option elements for selects and autocomplete
|
|
35
|
+
- [Radio Group](./radio-group.md) - Single-selection radio button groups
|
|
36
|
+
- [Select](./select.md) - Dropdown selection components
|
|
37
|
+
- [Textarea](./textarea.md) - Multi-line text input
|
|
38
|
+
|
|
39
|
+
### Feedback & Interaction
|
|
15
40
|
- [Notification](./notification.md) - Toast notifications and alerts
|
|
16
41
|
- [Sheet](./sheet.md) - Side panels and drawers
|
|
17
|
-
- [
|
|
42
|
+
- [Slider](./slider.md) - Carousel component for content
|
|
43
|
+
- [Steps](./steps.md) - Multi-step process indicators
|
|
18
44
|
- [Tabs](./tabs.md) - Tabbed interface components
|
|
45
|
+
- [Tooltip](./tooltip.md) - Contextual help text
|
|
46
|
+
|
|
47
|
+
### Utilities
|
|
48
|
+
- [Icons](./icons.md) - Material Design icon system
|
|
49
|
+
- [Store](./store.md) - State management system
|
|
50
|
+
- [Surface](./surface.md) - Elevation and container system
|
|
51
|
+
- [Table](./table.md) - Data table components
|
|
52
|
+
- [Teleport](./teleport.md) - FLIP animations between DOM positions
|
|
53
|
+
- [Theme](./theme.md) - Material Design 3 theming system
|
|
54
|
+
- [Theme Button](./theme-button.md) - Theme switching button
|
|
55
|
+
- [Tree](./tree.md) - Hierarchical tree view
|
|
56
|
+
- [Typography](./typography.md) - Text styling system
|
|
57
|
+
- [Typewriter](./typewriter.md) - Typing animation effects
|
|
19
58
|
|
|
20
59
|
## Reference Format
|
|
21
60
|
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# Navigation Drawer Component
|
|
2
|
+
|
|
3
|
+
A responsive navigation drawer system that adapts between overlay and push modes based on screen size, providing flexible app navigation patterns.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<!-- Basic navigation drawer -->
|
|
9
|
+
<schmancy-nav-drawer>
|
|
10
|
+
<schmancy-nav-drawer-navbar>
|
|
11
|
+
<nav>
|
|
12
|
+
<schmancy-list>
|
|
13
|
+
<schmancy-list-item>Dashboard</schmancy-list-item>
|
|
14
|
+
<schmancy-list-item>Settings</schmancy-list-item>
|
|
15
|
+
</schmancy-list>
|
|
16
|
+
</nav>
|
|
17
|
+
</schmancy-nav-drawer-navbar>
|
|
18
|
+
|
|
19
|
+
<schmancy-nav-drawer-content>
|
|
20
|
+
<schmancy-nav-drawer-appbar>
|
|
21
|
+
<h1>My App</h1>
|
|
22
|
+
</schmancy-nav-drawer-appbar>
|
|
23
|
+
<main>
|
|
24
|
+
<!-- Page content -->
|
|
25
|
+
</main>
|
|
26
|
+
</schmancy-nav-drawer-content>
|
|
27
|
+
</schmancy-nav-drawer>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Components
|
|
31
|
+
|
|
32
|
+
### schmancy-nav-drawer
|
|
33
|
+
The root container that manages drawer state and responsive behavior.
|
|
34
|
+
|
|
35
|
+
**Properties:**
|
|
36
|
+
| Property | Type | Default | Description |
|
|
37
|
+
|----------|------|---------|-------------|
|
|
38
|
+
| `fullscreen` | `boolean` | `false` | Hide drawer in fullscreen mode |
|
|
39
|
+
| `breakpoint` | `'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` | Responsive breakpoint |
|
|
40
|
+
| `open` | `'open' \| 'close'` | - | Drawer state |
|
|
41
|
+
|
|
42
|
+
### schmancy-nav-drawer-navbar
|
|
43
|
+
The navigation sidebar component.
|
|
44
|
+
|
|
45
|
+
**Properties:**
|
|
46
|
+
| Property | Type | Default | Description |
|
|
47
|
+
|----------|------|---------|-------------|
|
|
48
|
+
| `width` | `string` | `'320px'` | Drawer width |
|
|
49
|
+
|
|
50
|
+
### schmancy-nav-drawer-content
|
|
51
|
+
Container for main content area.
|
|
52
|
+
|
|
53
|
+
### schmancy-nav-drawer-appbar
|
|
54
|
+
Optional app bar for the content area.
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
### Complete App Layout
|
|
59
|
+
```html
|
|
60
|
+
<schmancy-nav-drawer breakpoint="lg">
|
|
61
|
+
<!-- Navigation Sidebar -->
|
|
62
|
+
<schmancy-nav-drawer-navbar width="280px">
|
|
63
|
+
<div class="p-4">
|
|
64
|
+
<h2 class="text-xl font-bold mb-4">My App</h2>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<schmancy-list>
|
|
68
|
+
<schmancy-list-item @click="${() => navigate('/dashboard')}">
|
|
69
|
+
<schmancy-icon slot="start">dashboard</schmancy-icon>
|
|
70
|
+
Dashboard
|
|
71
|
+
</schmancy-list-item>
|
|
72
|
+
|
|
73
|
+
<schmancy-list-item @click="${() => navigate('/users')}">
|
|
74
|
+
<schmancy-icon slot="start">people</schmancy-icon>
|
|
75
|
+
Users
|
|
76
|
+
</schmancy-list-item>
|
|
77
|
+
|
|
78
|
+
<schmancy-divider class="my-2"></schmancy-divider>
|
|
79
|
+
|
|
80
|
+
<schmancy-list-item @click="${() => navigate('/settings')}">
|
|
81
|
+
<schmancy-icon slot="start">settings</schmancy-icon>
|
|
82
|
+
Settings
|
|
83
|
+
</schmancy-list-item>
|
|
84
|
+
</schmancy-list>
|
|
85
|
+
</schmancy-nav-drawer-navbar>
|
|
86
|
+
|
|
87
|
+
<!-- Main Content -->
|
|
88
|
+
<schmancy-nav-drawer-content>
|
|
89
|
+
<!-- App Bar -->
|
|
90
|
+
<schmancy-nav-drawer-appbar>
|
|
91
|
+
<schmancy-icon-button @click="${toggleDrawer}">
|
|
92
|
+
menu
|
|
93
|
+
</schmancy-icon-button>
|
|
94
|
+
<h1 class="text-xl">Dashboard</h1>
|
|
95
|
+
</schmancy-nav-drawer-appbar>
|
|
96
|
+
|
|
97
|
+
<!-- Page Content -->
|
|
98
|
+
<main class="p-4">
|
|
99
|
+
<router-outlet></router-outlet>
|
|
100
|
+
</main>
|
|
101
|
+
</schmancy-nav-drawer-content>
|
|
102
|
+
</schmancy-nav-drawer>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### With User Profile
|
|
106
|
+
```html
|
|
107
|
+
<schmancy-nav-drawer>
|
|
108
|
+
<schmancy-nav-drawer-navbar>
|
|
109
|
+
<!-- User Profile Section -->
|
|
110
|
+
<div class="p-4 border-b">
|
|
111
|
+
<schmancy-avatar
|
|
112
|
+
src="/user-avatar.jpg"
|
|
113
|
+
name="John Doe"
|
|
114
|
+
></schmancy-avatar>
|
|
115
|
+
<div class="mt-2">
|
|
116
|
+
<div class="font-medium">John Doe</div>
|
|
117
|
+
<div class="text-sm opacity-70">john@example.com</div>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
<!-- Navigation -->
|
|
122
|
+
<schmancy-list class="py-2">
|
|
123
|
+
<!-- Menu items -->
|
|
124
|
+
</schmancy-list>
|
|
125
|
+
</schmancy-nav-drawer-navbar>
|
|
126
|
+
|
|
127
|
+
<schmancy-nav-drawer-content>
|
|
128
|
+
<!-- Content -->
|
|
129
|
+
</schmancy-nav-drawer-content>
|
|
130
|
+
</schmancy-nav-drawer>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Features
|
|
134
|
+
|
|
135
|
+
### Responsive Modes
|
|
136
|
+
- **Push Mode**: Drawer pushes content (desktop)
|
|
137
|
+
- **Overlay Mode**: Drawer overlays content (mobile)
|
|
138
|
+
- Automatic switching based on breakpoint
|
|
139
|
+
|
|
140
|
+
### Breakpoint Values
|
|
141
|
+
- `sm`: 640px
|
|
142
|
+
- `md`: 768px (default)
|
|
143
|
+
- `lg`: 1024px
|
|
144
|
+
- `xl`: 1280px
|
|
145
|
+
|
|
146
|
+
### Events
|
|
147
|
+
Toggle drawer programmatically:
|
|
148
|
+
```javascript
|
|
149
|
+
window.dispatchEvent(
|
|
150
|
+
new CustomEvent('schmancy-nav-drawer-toggle', {
|
|
151
|
+
detail: { state: 'open' } // or 'close'
|
|
152
|
+
})
|
|
153
|
+
);
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Animation
|
|
157
|
+
Smooth transitions with customizable easing:
|
|
158
|
+
- Overlay fade: 200ms open, 150ms close
|
|
159
|
+
- Drawer slide: 200ms
|
|
160
|
+
- Cubic bezier easing for natural motion
|
|
161
|
+
|
|
162
|
+
## Styling
|
|
163
|
+
|
|
164
|
+
```css
|
|
165
|
+
/* Custom drawer styling */
|
|
166
|
+
schmancy-nav-drawer-navbar {
|
|
167
|
+
--drawer-width: 320px;
|
|
168
|
+
--animation-duration: 200ms;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* Overlay customization */
|
|
172
|
+
schmancy-nav-drawer {
|
|
173
|
+
--overlay-opacity: 0.4;
|
|
174
|
+
--overlay-color: var(--schmancy-sys-color-scrim);
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Context System
|
|
179
|
+
|
|
180
|
+
The component uses Lit Context API for state management:
|
|
181
|
+
- `SchmancyDrawerNavbarMode`: Current mode (push/overlay)
|
|
182
|
+
- `SchmancyDrawerNavbarState`: Open/close state
|
|
183
|
+
|
|
184
|
+
## Best Practices
|
|
185
|
+
|
|
186
|
+
1. **Navigation Structure**: Keep navigation hierarchy shallow
|
|
187
|
+
2. **Mobile First**: Design for overlay mode first
|
|
188
|
+
3. **Breakpoints**: Choose breakpoints based on content
|
|
189
|
+
4. **Performance**: Use `fullscreen` prop for immersive experiences
|
|
190
|
+
5. **Accessibility**: Include proper ARIA labels
|
|
191
|
+
|
|
192
|
+
## Related Components
|
|
193
|
+
|
|
194
|
+
- [List](./list.md) - Navigation menu items
|
|
195
|
+
- [Icon](./icons.md) - Menu icons
|
|
196
|
+
- [Avatar](./avatar.md) - User profiles
|
|
197
|
+
- [Surface](./surface.md) - Content containers
|
|
198
|
+
- [Button](./button.md) - Navigation triggers
|
|
199
|
+
|
|
200
|
+
## Use Cases
|
|
201
|
+
|
|
202
|
+
1. **Admin Dashboards**: Multi-section navigation
|
|
203
|
+
2. **Mobile Apps**: Responsive app shells
|
|
204
|
+
3. **Documentation Sites**: Side navigation
|
|
205
|
+
4. **E-commerce**: Category navigation
|
|
206
|
+
5. **Social Apps**: User navigation with profiles
|