@mhmo91/schmancy 0.2.194 → 0.2.196
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/area.md +158 -78
- package/ai/card.md +162 -131
- package/ai/circular-progress.md +91 -0
- package/ai/content-drawer.md +190 -0
- package/ai/date-range.md +142 -0
- package/ai/delay.md +158 -0
- package/ai/dialog.md +10 -0
- package/ai/divider.md +153 -0
- package/ai/index.md +43 -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/table.md +99 -1
- 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/_headers +2 -0
- package/dist/ai/animated-text.md +114 -0
- package/dist/ai/area.md +158 -78
- package/dist/ai/card.md +162 -131
- package/dist/ai/circular-progress.md +91 -0
- package/dist/ai/content-drawer.md +190 -0
- package/dist/ai/date-range.md +142 -0
- package/dist/ai/delay.md +158 -0
- package/dist/ai/dialog.md +10 -0
- package/dist/ai/divider.md +153 -0
- package/dist/ai/index.md +43 -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/table.md +99 -1
- 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-9AM64DHd.cjs → animated-text-DnX2TopW.cjs} +2 -2
- package/dist/{animated-text-9AM64DHd.cjs.map → animated-text-DnX2TopW.cjs.map} +1 -1
- package/dist/{animated-text-CVStWn5N.js → animated-text-jv1yAwLh.js} +3 -3
- package/dist/{animated-text-CVStWn5N.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-DMD20wqd.js +191 -0
- package/dist/area.component-DMD20wqd.js.map +1 -0
- package/dist/area.component-Vs2WGXgk.cjs +8 -0
- package/dist/area.component-Vs2WGXgk.cjs.map +1 -0
- package/dist/area.js +21 -6
- package/dist/area.js.map +1 -1
- package/dist/{autocomplete-DBXvIJgc.cjs → autocomplete-BrAxEJJq.cjs} +2 -2
- package/dist/{autocomplete-DBXvIJgc.cjs.map → autocomplete-BrAxEJJq.cjs.map} +1 -1
- package/dist/{autocomplete-ih92pPkb.js → autocomplete-OS61ngsy.js} +3 -3
- package/dist/{autocomplete-ih92pPkb.js.map → autocomplete-OS61ngsy.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-Bmg5TXj9.cjs → avatar-CEdv8DJY.cjs} +62 -24
- package/dist/avatar-CEdv8DJY.cjs.map +1 -0
- package/dist/{avatar-CgP1tBZq.js → avatar-CUHTDenQ.js} +183 -145
- package/dist/avatar-CUHTDenQ.js.map +1 -0
- 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-Jxxbjxp0.js → checkbox-CVXRiSWP.js} +72 -65
- package/dist/{checkbox-Jxxbjxp0.js.map → checkbox-CVXRiSWP.js.map} +1 -1
- package/dist/{checkbox-DtnX5sT6.cjs → checkbox-Chd-COYm.cjs} +10 -10
- package/dist/{checkbox-DtnX5sT6.cjs.map → checkbox-Chd-COYm.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-CVDnpVUM.cjs → chips-Bx9gSvN1.cjs} +2 -2
- package/dist/{chips-CVDnpVUM.cjs.map → chips-Bx9gSvN1.cjs.map} +1 -1
- package/dist/{chips-lP7ohQep.js → chips-Dx_erk55.js} +3 -3
- package/dist/{chips-lP7ohQep.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-BQnGvbss.js +35 -0
- package/dist/circular-progress-BQnGvbss.js.map +1 -0
- package/dist/circular-progress-CNBah5dz.cjs +9 -0
- package/dist/circular-progress-CNBah5dz.cjs.map +1 -0
- package/dist/circular-progress.cjs +2 -0
- package/dist/circular-progress.cjs.map +1 -0
- package/dist/circular-progress.js +5 -0
- package/dist/circular-progress.js.map +1 -0
- 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-DbPA5Y-t.cjs → date-range-Cq0diVSY.cjs} +4 -3
- package/dist/{date-range-DbPA5Y-t.cjs.map → date-range-Cq0diVSY.cjs.map} +1 -1
- package/dist/{date-range-Ca9WLI4Q.js → date-range-wxdt6Ha0.js} +5 -4
- package/dist/date-range-wxdt6Ha0.js.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-BgNgQV2G.cjs → delay-BzkhDhs0.cjs} +2 -2
- package/dist/{delay-BgNgQV2G.cjs.map → delay-BzkhDhs0.cjs.map} +1 -1
- package/dist/{delay-5cCl7ji3.js → delay-Ds5suSsc.js} +2 -2
- package/dist/{delay-5cCl7ji3.js.map → delay-Ds5suSsc.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{dialog-content-qj1E8aye.cjs → dialog-content-CJY69qfC.cjs} +8 -8
- package/dist/dialog-content-CJY69qfC.cjs.map +1 -0
- package/dist/{dialog-content-9pumpyLD.js → dialog-content-DFJnYzff.js} +86 -82
- package/dist/dialog-content-DFJnYzff.js.map +1 -0
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-r8-9eNnl.js → divider-C3w1_-N1.js} +3 -3
- package/dist/{divider-r8-9eNnl.js.map → divider-C3w1_-N1.js.map} +1 -1
- package/dist/{divider-CHckHGEQ.cjs → divider-CFzbCFsr.cjs} +2 -2
- package/dist/{divider-CHckHGEQ.cjs.map → divider-CFzbCFsr.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-D-TddflQ.js → dropdown-content-BGFYBXcx.js} +3 -3
- package/dist/{dropdown-content-D-TddflQ.js.map → dropdown-content-BGFYBXcx.js.map} +1 -1
- package/dist/{dropdown-content-B41MDDRG.cjs → dropdown-content-PaMOJphI.cjs} +2 -2
- package/dist/{dropdown-content-B41MDDRG.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-Bf0zNqji.js → flex-Cy4Stl_1.js} +2 -2
- package/dist/{flex-Bf0zNqji.js.map → flex-Cy4Stl_1.js.map} +1 -1
- package/dist/{flex-CFv-Zb76.cjs → flex-DP5O5644.cjs} +2 -2
- package/dist/{flex-CFv-Zb76.cjs.map → flex-DP5O5644.cjs.map} +1 -1
- package/dist/{form-uYcr1RLJ.js → form-BQamcLFL.js} +2 -2
- package/dist/{form-uYcr1RLJ.js.map → form-BQamcLFL.js.map} +1 -1
- package/dist/{form-BN75s0PI.cjs → form-CG3kns69.cjs} +2 -2
- package/dist/{form-BN75s0PI.cjs.map → form-CG3kns69.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-BR-jE0Y2.js → icon-Cd4p9jRB.js} +3 -3
- package/dist/{icon-BR-jE0Y2.js.map → icon-Cd4p9jRB.js.map} +1 -1
- package/dist/{icon-Cu-imayV.cjs → icon-CilwMTXB.cjs} +2 -2
- package/dist/{icon-Cu-imayV.cjs.map → icon-CilwMTXB.cjs.map} +1 -1
- package/dist/{icon-button-1tZaicyb.js → icon-button-By17is4V.js} +3 -3
- package/dist/{icon-button-1tZaicyb.js.map → icon-button-By17is4V.js.map} +1 -1
- package/dist/{icon-button-D0BbHnDL.cjs → icon-button-C4Hf63hY.cjs} +2 -2
- package/dist/{icon-button-D0BbHnDL.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 +190 -173
- package/dist/index.js.map +1 -1
- package/dist/{input-B2oV6Hck.cjs → input-BIi0rS2t.cjs} +2 -2
- package/dist/{input-B2oV6Hck.cjs.map → input-BIi0rS2t.cjs.map} +1 -1
- package/dist/{input-kiz5O3dY.js → input-C8OAokVe.js} +2 -2
- package/dist/{input-kiz5O3dY.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-wT4DLXCh.js → list-BC3OE3Pu.js} +2 -2
- package/dist/{list-wT4DLXCh.js.map → list-BC3OE3Pu.js.map} +1 -1
- package/dist/{list-CMHoPfX9.cjs → list-jFsCubuy.cjs} +2 -2
- package/dist/{list-CMHoPfX9.cjs.map → list-jFsCubuy.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-B9Qdq5S_.js → litElement.mixin-C6PzcPXd.js} +2 -2
- package/dist/{litElement.mixin-B9Qdq5S_.js.map → litElement.mixin-C6PzcPXd.js.map} +1 -1
- package/dist/{litElement.mixin-CHvyxfxf.cjs → litElement.mixin-Cypiq-N-.cjs} +2 -2
- package/dist/{litElement.mixin-CHvyxfxf.cjs.map → litElement.mixin-Cypiq-N-.cjs.map} +1 -1
- package/dist/{menu-BcSplMNh.cjs → menu-CDjqdEd6.cjs} +2 -2
- package/dist/{menu-BcSplMNh.cjs.map → menu-CDjqdEd6.cjs.map} +1 -1
- package/dist/{menu-Dl1QU86K.js → menu-n_Doj-bW.js} +3 -3
- package/dist/{menu-Dl1QU86K.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-BV9ybQBu.cjs → notification-service--VLqOJJg.cjs} +2 -2
- package/dist/{notification-service-BV9ybQBu.cjs.map → notification-service--VLqOJJg.cjs.map} +1 -1
- package/dist/{notification-service-CC698xHg.js → notification-service-DHIhgWQr.js} +3 -3
- package/dist/{notification-service-CC698xHg.js.map → notification-service-DHIhgWQr.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-CkLBgH71.cjs → option-B359EBiZ.cjs} +2 -2
- package/dist/{option-CkLBgH71.cjs.map → option-B359EBiZ.cjs.map} +1 -1
- package/dist/{option-DDxxXwwc.js → option-oyyjCwnL.js} +2 -2
- package/dist/{option-DDxxXwwc.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-UWbAYNPR.cjs → payment-card-form-B-ZAsSED.cjs} +2 -2
- package/dist/{payment-card-form-UWbAYNPR.cjs.map → payment-card-form-B-ZAsSED.cjs.map} +1 -1
- package/dist/{payment-card-form-DDTO5_AA.js → payment-card-form-BSueaw97.js} +3 -3
- package/dist/{payment-card-form-DDTO5_AA.js.map → payment-card-form-BSueaw97.js.map} +1 -1
- package/dist/{radio-button-wWoxPDfq.js → radio-button-84TD7rpH.js} +2 -2
- package/dist/{radio-button-wWoxPDfq.js.map → radio-button-84TD7rpH.js.map} +1 -1
- package/dist/{radio-button-BykiVxTD.cjs → radio-button-BO6mIWCi.cjs} +2 -2
- package/dist/{radio-button-BykiVxTD.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-B1mIGa9M.cjs → schmancy-steps-container-Cfq8OsWt.cjs} +2 -2
- package/dist/{schmancy-steps-container-B1mIGa9M.cjs.map → schmancy-steps-container-Cfq8OsWt.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-ByO98z7L.js → schmancy-steps-container-Lo4d27n3.js} +2 -2
- package/dist/{schmancy-steps-container-ByO98z7L.js.map → schmancy-steps-container-Lo4d27n3.js.map} +1 -1
- package/dist/{select-BIOhocL7.js → select-B-zgP_v6.js} +3 -3
- package/dist/{select-BIOhocL7.js.map → select-B-zgP_v6.js.map} +1 -1
- package/dist/{select-DE57Nios.cjs → select-DhEVsWh6.cjs} +2 -2
- package/dist/{select-DE57Nios.cjs.map → select-DhEVsWh6.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-fZYAWGsm.cjs → sheet-BEWq40cN.cjs} +2 -2
- package/dist/{sheet-fZYAWGsm.cjs.map → sheet-BEWq40cN.cjs.map} +1 -1
- package/dist/{sheet-Dh4MLVsU.js → sheet-DDY4pbD4.js} +3 -3
- package/dist/{sheet-Dh4MLVsU.js.map → sheet-DDY4pbD4.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-DVlJoDgU.js → slider--irxEv_B.js} +3 -3
- package/dist/{slider-DVlJoDgU.js.map → slider--irxEv_B.js.map} +1 -1
- package/dist/{slider-CejrdmPF.cjs → slider-De-H5fe8.cjs} +2 -2
- package/dist/{slider-CejrdmPF.cjs.map → slider-De-H5fe8.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-DbTnai_Q.js → spinner-Bl9n09Z5.js} +3 -3
- package/dist/{spinner-DbTnai_Q.js.map → spinner-Bl9n09Z5.js.map} +1 -1
- package/dist/{spinner-DxVJ7QJZ.cjs → spinner-DNz1IjmL.cjs} +2 -2
- package/dist/{spinner-DxVJ7QJZ.cjs.map → spinner-DNz1IjmL.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/surface-BAEUiWcq.cjs +92 -0
- package/dist/surface-BAEUiWcq.cjs.map +1 -0
- package/dist/surface-h9dLHMTm.js +113 -0
- package/dist/surface-h9dLHMTm.js.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-CqUv1TOC.js → table-CxazXBjI.js} +72 -68
- package/dist/{table-CqUv1TOC.js.map → table-CxazXBjI.js.map} +1 -1
- package/dist/{table-CBhyHINV.cjs → table-Dn07ykGG.cjs} +4 -4
- package/dist/{table-CBhyHINV.cjs.map → table-Dn07ykGG.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-DUo2f_sV.js → tabs-compatibility-B8I0vg7Y.js} +2 -2
- package/dist/{tabs-compatibility-DUo2f_sV.js.map → tabs-compatibility-B8I0vg7Y.js.map} +1 -1
- package/dist/{tabs-compatibility-DPD6jfGF.cjs → tabs-compatibility-BrTxeSS-.cjs} +2 -2
- package/dist/{tabs-compatibility-DPD6jfGF.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-Di7KWye7.js.map → tailwind.mixin-Du4i6vQR.js.map} +1 -1
- package/dist/tailwind.mixin-qyIcoDLk.cjs +2 -0
- package/dist/{tailwind.mixin-Dm5QDZav.cjs.map → tailwind.mixin-qyIcoDLk.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-Dbz18REy.js → textarea-DibCLxC2.js} +2 -2
- package/dist/{textarea-Dbz18REy.js.map → textarea-DibCLxC2.js.map} +1 -1
- package/dist/{textarea-CesFdBkm.cjs → textarea-pMec4Wpg.cjs} +2 -2
- package/dist/{textarea-CesFdBkm.cjs.map → textarea-pMec4Wpg.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-Bt2OV4iu.cjs → theme-button-CG1w_waw.cjs} +2 -2
- package/dist/{theme-button-Bt2OV4iu.cjs.map → theme-button-CG1w_waw.cjs.map} +1 -1
- package/dist/{theme-button-lqbT2_LL.js → theme-button-irLEczd5.js} +2 -2
- package/dist/{theme-button-lqbT2_LL.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-xarFSe8p.js → theme.component-CMM8Xws2.js} +2 -2
- package/dist/{theme.component-xarFSe8p.js.map → theme.component-CMM8Xws2.js.map} +1 -1
- package/dist/{theme.component-BlBaN7d6.cjs → theme.component-CpRuySmd.cjs} +3 -3
- package/dist/{theme.component-BlBaN7d6.cjs.map → theme.component-CpRuySmd.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-DwT_pQrj.js → timezone-DIrmlnD6.js} +3 -3
- package/dist/{timezone-DwT_pQrj.js.map → timezone-DIrmlnD6.js.map} +1 -1
- package/dist/{timezone-VUMRmZaJ.cjs → timezone-n5GflDRe.cjs} +2 -2
- package/dist/{timezone-VUMRmZaJ.cjs.map → timezone-n5GflDRe.cjs.map} +1 -1
- package/dist/{tooltip-Cvoroe7w.cjs → tooltip-0vIcVm5-.cjs} +2 -2
- package/dist/{tooltip-Cvoroe7w.cjs.map → tooltip-0vIcVm5-.cjs.map} +1 -1
- package/dist/{tooltip-BKOHVCMK.js → tooltip-N_B-vsDa.js} +2 -2
- package/dist/{tooltip-BKOHVCMK.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-_FJnHVmP.js → tree-2Hf2X0Hv.js} +2 -2
- package/dist/{tree-_FJnHVmP.js.map → tree-2Hf2X0Hv.js.map} +1 -1
- package/dist/{tree-Cyp2AZ8g.cjs → tree-Q8AMxJxP.cjs} +2 -2
- package/dist/{tree-Cyp2AZ8g.cjs.map → tree-Q8AMxJxP.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-BIm2tOe4.cjs → typewriter-CsL-NfYC.cjs} +2 -2
- package/dist/{typewriter-BIm2tOe4.cjs.map → typewriter-CsL-NfYC.cjs.map} +1 -1
- package/dist/{typewriter-DWfXPBni.js → typewriter-bqbNKczJ.js} +22 -22
- package/dist/{typewriter-DWfXPBni.js.map → typewriter-bqbNKczJ.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DaKLzjFB.js → typography-CbrvouLo.js} +2 -2
- package/dist/{typography-DaKLzjFB.js.map → typography-CbrvouLo.js.map} +1 -1
- package/dist/{typography-OpLt6LNd.cjs → typography-Hlts-hzc.cjs} +2 -2
- package/dist/{typography-OpLt6LNd.cjs.map → typography-Hlts-hzc.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/utils-BqFGvnN9.cjs +2 -0
- package/dist/utils-BqFGvnN9.cjs.map +1 -0
- package/dist/utils-jduntaQU.js +128 -0
- package/dist/utils-jduntaQU.js.map +1 -0
- package/package.json +13 -14
- package/types/src/area/area.component.d.ts +1 -1
- package/types/src/area/area.service.d.ts +44 -26
- package/types/src/area/index.d.ts +1 -0
- package/types/src/area/utils.d.ts +91 -1
- package/types/src/checkbox/checkbox.d.ts +9 -0
- package/types/src/circular-progress/circular-progress.d.ts +15 -0
- package/types/src/circular-progress/index.d.ts +1 -0
- package/types/src/dialog/dailog.d.ts +8 -0
- package/types/src/dialog/dialog-service.d.ts +1 -0
- package/types/src/index.d.ts +1 -0
- package/types/src/table/table.d.ts +1 -0
- package/dist/area.component-CzFJM7Y4.js +0 -143
- package/dist/area.component-CzFJM7Y4.js.map +0 -1
- package/dist/area.component-WxccFh1z.cjs +0 -8
- package/dist/area.component-WxccFh1z.cjs.map +0 -1
- package/dist/avatar-Bmg5TXj9.cjs.map +0 -1
- package/dist/avatar-CgP1tBZq.js.map +0 -1
- package/dist/date-range-Ca9WLI4Q.js.map +0 -1
- package/dist/dialog-content-9pumpyLD.js.map +0 -1
- package/dist/dialog-content-qj1E8aye.cjs.map +0 -1
- package/dist/surface-BTuzKmT2.cjs +0 -20
- package/dist/surface-BTuzKmT2.cjs.map +0 -1
- package/dist/surface-DXx1bJN4.js +0 -43
- package/dist/surface-DXx1bJN4.js.map +0 -1
- package/dist/tailwind.mixin-Di7KWye7.js +0 -43
- package/dist/tailwind.mixin-Dm5QDZav.cjs +0 -2
package/ai/nav-drawer.md
ADDED
|
@@ -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
|
package/ai/option.md
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Option Component
|
|
2
|
+
|
|
3
|
+
A versatile option element designed for use with select dropdowns and autocomplete components, providing accessible and interactive selection items.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<!-- Basic option -->
|
|
9
|
+
<schmancy-option value="1">Option One</schmancy-option>
|
|
10
|
+
|
|
11
|
+
<!-- Option with custom label -->
|
|
12
|
+
<schmancy-option value="us" label="United States"></schmancy-option>
|
|
13
|
+
|
|
14
|
+
<!-- Option with icon -->
|
|
15
|
+
<schmancy-option value="email" icon="✉️">Email Notifications</schmancy-option>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Properties
|
|
19
|
+
|
|
20
|
+
| Property | Type | Default | Description |
|
|
21
|
+
|----------|------|---------|-------------|
|
|
22
|
+
| `value` | `string` | `''` | The value when selected |
|
|
23
|
+
| `label` | `string` | `''` | Display label (defaults to text content) |
|
|
24
|
+
| `selected` | `boolean` | `false` | Whether option is selected |
|
|
25
|
+
| `disabled` | `boolean` | `false` | Whether option is disabled |
|
|
26
|
+
| `group` | `string` | `''` | Optional group name |
|
|
27
|
+
| `icon` | `string` | `''` | Optional icon/emoji |
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
### option-select
|
|
32
|
+
Fired when option is clicked or selected via keyboard.
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
interface OptionSelectEvent {
|
|
36
|
+
detail: {
|
|
37
|
+
value: string;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
### In Select Component
|
|
45
|
+
```html
|
|
46
|
+
<schmancy-select placeholder="Choose country">
|
|
47
|
+
<schmancy-option value="us" icon="🇺🇸">United States</schmancy-option>
|
|
48
|
+
<schmancy-option value="uk" icon="🇬🇧">United Kingdom</schmancy-option>
|
|
49
|
+
<schmancy-option value="ca" icon="🇨🇦">Canada</schmancy-option>
|
|
50
|
+
<schmancy-option value="au" icon="🇦🇺">Australia</schmancy-option>
|
|
51
|
+
</schmancy-select>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Grouped Options
|
|
55
|
+
```html
|
|
56
|
+
<schmancy-select>
|
|
57
|
+
<!-- North America -->
|
|
58
|
+
<schmancy-option value="us" group="North America">United States</schmancy-option>
|
|
59
|
+
<schmancy-option value="ca" group="North America">Canada</schmancy-option>
|
|
60
|
+
<schmancy-option value="mx" group="North America">Mexico</schmancy-option>
|
|
61
|
+
|
|
62
|
+
<!-- Europe -->
|
|
63
|
+
<schmancy-option value="uk" group="Europe">United Kingdom</schmancy-option>
|
|
64
|
+
<schmancy-option value="de" group="Europe">Germany</schmancy-option>
|
|
65
|
+
<schmancy-option value="fr" group="Europe">France</schmancy-option>
|
|
66
|
+
</schmancy-select>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### With Status Indicators
|
|
70
|
+
```html
|
|
71
|
+
<schmancy-autocomplete>
|
|
72
|
+
<schmancy-option value="active" icon="🟢">Active</schmancy-option>
|
|
73
|
+
<schmancy-option value="pending" icon="🟡">Pending</schmancy-option>
|
|
74
|
+
<schmancy-option value="inactive" icon="🔴">Inactive</schmancy-option>
|
|
75
|
+
<schmancy-option value="archived" icon="📦" disabled>Archived</schmancy-option>
|
|
76
|
+
</schmancy-autocomplete>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Dynamic Options
|
|
80
|
+
```html
|
|
81
|
+
${users.map(user => html`
|
|
82
|
+
<schmancy-option
|
|
83
|
+
value="${user.id}"
|
|
84
|
+
label="${user.name}"
|
|
85
|
+
?disabled="${!user.active}"
|
|
86
|
+
>
|
|
87
|
+
<span class="flex items-center gap-2">
|
|
88
|
+
<schmancy-avatar size="xs" name="${user.name}"></schmancy-avatar>
|
|
89
|
+
<span>
|
|
90
|
+
<div>${user.name}</div>
|
|
91
|
+
<div class="text-xs opacity-70">${user.email}</div>
|
|
92
|
+
</span>
|
|
93
|
+
</span>
|
|
94
|
+
</schmancy-option>
|
|
95
|
+
`)}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Features
|
|
99
|
+
|
|
100
|
+
### Automatic Value Assignment
|
|
101
|
+
- If no value is provided, uses text content
|
|
102
|
+
- If no label is provided, uses text content or value
|
|
103
|
+
|
|
104
|
+
### Keyboard Navigation
|
|
105
|
+
- `Space` or `Enter` to select
|
|
106
|
+
- Full keyboard accessibility
|
|
107
|
+
|
|
108
|
+
### Visual States
|
|
109
|
+
- Hover highlighting
|
|
110
|
+
- Selected state with checkmark
|
|
111
|
+
- Disabled state with reduced opacity
|
|
112
|
+
- Focus ring for keyboard navigation
|
|
113
|
+
|
|
114
|
+
### Unique IDs
|
|
115
|
+
Automatically generates unique IDs for accessibility if not provided.
|
|
116
|
+
|
|
117
|
+
## Styling
|
|
118
|
+
|
|
119
|
+
The component uses semantic design tokens:
|
|
120
|
+
|
|
121
|
+
```css
|
|
122
|
+
/* Default state */
|
|
123
|
+
.hover:bg-surface-high
|
|
124
|
+
|
|
125
|
+
/* Selected state */
|
|
126
|
+
.bg-primary-container
|
|
127
|
+
.text-primary-onContainer
|
|
128
|
+
|
|
129
|
+
/* Custom styling */
|
|
130
|
+
schmancy-option {
|
|
131
|
+
--option-padding-y: 0.5rem;
|
|
132
|
+
--option-padding-x: 0.75rem;
|
|
133
|
+
--option-border-radius: 0.25rem;
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Accessibility
|
|
138
|
+
|
|
139
|
+
- `role="option"` for semantic meaning
|
|
140
|
+
- `aria-selected` state management
|
|
141
|
+
- `aria-disabled` for disabled options
|
|
142
|
+
- Keyboard event handling
|
|
143
|
+
- Focus management
|
|
144
|
+
|
|
145
|
+
## Integration
|
|
146
|
+
|
|
147
|
+
Options are designed to work seamlessly with:
|
|
148
|
+
- `schmancy-select` - Dropdown selection
|
|
149
|
+
- `schmancy-autocomplete` - Filtered selection
|
|
150
|
+
- Custom dropdown components
|
|
151
|
+
|
|
152
|
+
## Best Practices
|
|
153
|
+
|
|
154
|
+
1. **Clear Values**: Use meaningful, unique values
|
|
155
|
+
2. **Icons**: Use icons to improve scannability
|
|
156
|
+
3. **Groups**: Group related options together
|
|
157
|
+
4. **Labels**: Provide clear, concise labels
|
|
158
|
+
5. **Disabled State**: Clearly indicate why options are disabled
|
|
159
|
+
|
|
160
|
+
## Related Components
|
|
161
|
+
|
|
162
|
+
- [Select](./select.md) - Dropdown selector
|
|
163
|
+
- [Autocomplete](./autocomplete.md) - Searchable selector
|
|
164
|
+
- [List](./list.md) - Similar list item pattern
|
|
165
|
+
- [Menu](./menu.md) - Menu items
|
|
166
|
+
|
|
167
|
+
## Use Cases
|
|
168
|
+
|
|
169
|
+
1. **Form Selects**: Country, state, category selection
|
|
170
|
+
2. **Settings**: Preference options
|
|
171
|
+
3. **Filters**: Data filtering options
|
|
172
|
+
4. **Status Selection**: Workflow states
|
|
173
|
+
5. **User Selection**: Team member pickers
|
package/ai/slider.md
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Slider Component
|
|
2
|
+
|
|
3
|
+
A smooth, touch-friendly carousel component for displaying content in slides with navigation controls and indicators.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<!-- Basic image slider -->
|
|
9
|
+
<schmancy-slider>
|
|
10
|
+
<schmancy-slide type="image" src="/image1.jpg" alt="Slide 1"></schmancy-slide>
|
|
11
|
+
<schmancy-slide type="image" src="/image2.jpg" alt="Slide 2"></schmancy-slide>
|
|
12
|
+
<schmancy-slide type="image" src="/image3.jpg" alt="Slide 3"></schmancy-slide>
|
|
13
|
+
</schmancy-slider>
|
|
14
|
+
|
|
15
|
+
<!-- Content slider -->
|
|
16
|
+
<schmancy-slider showArrows>
|
|
17
|
+
<schmancy-slide>
|
|
18
|
+
<schmancy-card>
|
|
19
|
+
<h3>Feature One</h3>
|
|
20
|
+
<p>Description of the first feature...</p>
|
|
21
|
+
</schmancy-card>
|
|
22
|
+
</schmancy-slide>
|
|
23
|
+
<schmancy-slide>
|
|
24
|
+
<schmancy-card>
|
|
25
|
+
<h3>Feature Two</h3>
|
|
26
|
+
<p>Description of the second feature...</p>
|
|
27
|
+
</schmancy-card>
|
|
28
|
+
</schmancy-slide>
|
|
29
|
+
</schmancy-slider>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Components
|
|
33
|
+
|
|
34
|
+
### schmancy-slider
|
|
35
|
+
The main container that handles slide navigation and controls.
|
|
36
|
+
|
|
37
|
+
**Properties:**
|
|
38
|
+
| Property | Type | Default | Description |
|
|
39
|
+
|----------|------|---------|-------------|
|
|
40
|
+
| `showArrows` | `boolean` | `true` | Show navigation arrows |
|
|
41
|
+
|
|
42
|
+
**Events:**
|
|
43
|
+
- `slide-changed`: Fired when active slide changes with `{ detail: { index: number } }`
|
|
44
|
+
|
|
45
|
+
### schmancy-slide
|
|
46
|
+
Individual slide component supporting various content types.
|
|
47
|
+
|
|
48
|
+
**Properties:**
|
|
49
|
+
| Property | Type | Default | Description |
|
|
50
|
+
|----------|------|---------|-------------|
|
|
51
|
+
| `type` | `'image' \| 'video' \| 'content'` | `'content'` | Slide content type |
|
|
52
|
+
| `src` | `string` | `''` | Source for image/video |
|
|
53
|
+
| `alt` | `string` | `''` | Alt text for images |
|
|
54
|
+
| `controls` | `boolean` | `true` | Show video controls |
|
|
55
|
+
| `autoplay` | `boolean` | `false` | Autoplay video |
|
|
56
|
+
| `loop` | `boolean` | `false` | Loop video |
|
|
57
|
+
| `muted` | `boolean` | `false` | Mute video |
|
|
58
|
+
| `fit` | `'cover' \| 'contain' \| 'fill' \| 'scale-down' \| 'none'` | `'cover'` | Object fit style |
|
|
59
|
+
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
62
|
+
### Product Gallery
|
|
63
|
+
```html
|
|
64
|
+
<schmancy-slider class="h-96">
|
|
65
|
+
${products.map(product => html`
|
|
66
|
+
<schmancy-slide type="image"
|
|
67
|
+
src="${product.image}"
|
|
68
|
+
alt="${product.name}"
|
|
69
|
+
fit="contain"
|
|
70
|
+
></schmancy-slide>
|
|
71
|
+
`)}
|
|
72
|
+
</schmancy-slider>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Testimonials Carousel
|
|
76
|
+
```html
|
|
77
|
+
<schmancy-slider showArrows>
|
|
78
|
+
${testimonials.map(testimonial => html`
|
|
79
|
+
<schmancy-slide>
|
|
80
|
+
<div class="p-8 text-center">
|
|
81
|
+
<schmancy-avatar
|
|
82
|
+
src="${testimonial.avatar}"
|
|
83
|
+
name="${testimonial.name}"
|
|
84
|
+
size="lg"
|
|
85
|
+
class="mx-auto mb-4"
|
|
86
|
+
></schmancy-avatar>
|
|
87
|
+
<blockquote class="text-lg italic mb-4">
|
|
88
|
+
"${testimonial.quote}"
|
|
89
|
+
</blockquote>
|
|
90
|
+
<cite class="text-sm">
|
|
91
|
+
- ${testimonial.name}, ${testimonial.role}
|
|
92
|
+
</cite>
|
|
93
|
+
</div>
|
|
94
|
+
</schmancy-slide>
|
|
95
|
+
`)}
|
|
96
|
+
</schmancy-slider>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Video Showcase
|
|
100
|
+
```html
|
|
101
|
+
<schmancy-slider>
|
|
102
|
+
<schmancy-slide
|
|
103
|
+
type="video"
|
|
104
|
+
src="/demo-video-1.mp4"
|
|
105
|
+
controls
|
|
106
|
+
muted
|
|
107
|
+
autoplay
|
|
108
|
+
></schmancy-slide>
|
|
109
|
+
<schmancy-slide
|
|
110
|
+
type="video"
|
|
111
|
+
src="/demo-video-2.mp4"
|
|
112
|
+
controls
|
|
113
|
+
></schmancy-slide>
|
|
114
|
+
</schmancy-slider>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Mixed Content Slider
|
|
118
|
+
```html
|
|
119
|
+
<schmancy-slider>
|
|
120
|
+
<!-- Welcome slide -->
|
|
121
|
+
<schmancy-slide>
|
|
122
|
+
<div class="flex items-center justify-center h-full p-8">
|
|
123
|
+
<div class="text-center">
|
|
124
|
+
<h1 class="text-4xl mb-4">Welcome</h1>
|
|
125
|
+
<p>Swipe to explore our features</p>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</schmancy-slide>
|
|
129
|
+
|
|
130
|
+
<!-- Feature image -->
|
|
131
|
+
<schmancy-slide type="image" src="/feature.jpg" alt="Main Feature"></schmancy-slide>
|
|
132
|
+
|
|
133
|
+
<!-- Video demo -->
|
|
134
|
+
<schmancy-slide type="video" src="/demo.mp4" controls></schmancy-slide>
|
|
135
|
+
|
|
136
|
+
<!-- Call to action -->
|
|
137
|
+
<schmancy-slide>
|
|
138
|
+
<div class="flex items-center justify-center h-full">
|
|
139
|
+
<schmancy-button variant="filled" size="lg">
|
|
140
|
+
Get Started
|
|
141
|
+
</schmancy-button>
|
|
142
|
+
</div>
|
|
143
|
+
</schmancy-slide>
|
|
144
|
+
</schmancy-slider>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Features
|
|
148
|
+
|
|
149
|
+
### Smooth Scrolling
|
|
150
|
+
- Native scroll behavior with CSS scroll-snap
|
|
151
|
+
- Touch and mouse support
|
|
152
|
+
- Keyboard navigation ready
|
|
153
|
+
|
|
154
|
+
### Navigation Controls
|
|
155
|
+
- Previous/Next arrow buttons
|
|
156
|
+
- Automatic disable at bounds
|
|
157
|
+
- Dot indicators showing current position
|
|
158
|
+
|
|
159
|
+
### Responsive Design
|
|
160
|
+
- Slides automatically fill container width
|
|
161
|
+
- Hidden scrollbars for clean appearance
|
|
162
|
+
- Works on all device sizes
|
|
163
|
+
|
|
164
|
+
### Performance
|
|
165
|
+
- Lazy loading for images
|
|
166
|
+
- Throttled scroll events
|
|
167
|
+
- Efficient slide position detection
|
|
168
|
+
|
|
169
|
+
## Styling
|
|
170
|
+
|
|
171
|
+
```css
|
|
172
|
+
/* Container styling */
|
|
173
|
+
schmancy-slider {
|
|
174
|
+
height: 400px; /* Set explicit height */
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* Custom arrow positioning */
|
|
178
|
+
schmancy-slider::part(prev-button) {
|
|
179
|
+
left: 1rem;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
schmancy-slider::part(next-button) {
|
|
183
|
+
right: 1rem;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* Indicator customization */
|
|
187
|
+
schmancy-slider::part(indicators) {
|
|
188
|
+
bottom: 2rem;
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Navigation Methods
|
|
193
|
+
|
|
194
|
+
```javascript
|
|
195
|
+
// Get slider element
|
|
196
|
+
const slider = document.querySelector('schmancy-slider');
|
|
197
|
+
|
|
198
|
+
// Listen for slide changes
|
|
199
|
+
slider.addEventListener('slide-changed', (e) => {
|
|
200
|
+
console.log('Current slide:', e.detail.index);
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
// Programmatically navigate (if exposed)
|
|
204
|
+
// slider.goToSlide(2);
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Best Practices
|
|
208
|
+
|
|
209
|
+
1. **Height**: Always set explicit height on slider container
|
|
210
|
+
2. **Images**: Optimize images for web delivery
|
|
211
|
+
3. **Accessibility**: Provide meaningful alt text
|
|
212
|
+
4. **Performance**: Limit number of slides for better performance
|
|
213
|
+
5. **Touch**: Ensure adequate touch targets on mobile
|
|
214
|
+
|
|
215
|
+
## Related Components
|
|
216
|
+
|
|
217
|
+
- [Card](./card.md) - Content containers for slides
|
|
218
|
+
- [Button](./button.md) - Navigation controls
|
|
219
|
+
- [Surface](./surface.md) - Slide backgrounds
|
|
220
|
+
|
|
221
|
+
## Use Cases
|
|
222
|
+
|
|
223
|
+
1. **Product Galleries**: E-commerce product images
|
|
224
|
+
2. **Hero Sections**: Landing page carousels
|
|
225
|
+
3. **Testimonials**: Customer feedback showcase
|
|
226
|
+
4. **Tutorials**: Step-by-step guides
|
|
227
|
+
5. **Media Galleries**: Photo and video collections
|