@mhmo91/schmancy 0.7.4 → 0.7.6
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/directives.md +214 -7
- package/ai/typewriter.md +151 -33
- package/dist/ai/directives.md +214 -7
- package/dist/ai/typewriter.md +151 -33
- package/dist/{animated-text-DnFenRS1.cjs → animated-text-1FDC-OTA.cjs} +2 -2
- package/dist/{animated-text-DnFenRS1.cjs.map → animated-text-1FDC-OTA.cjs.map} +1 -1
- package/dist/{animated-text-YBgWXuVJ.js → animated-text-1_latidd.js} +3 -3
- package/dist/{animated-text-YBgWXuVJ.js.map → animated-text-1_latidd.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-C_nUxyiY.js → area.component-CQq-Mh0Z.js} +47 -39
- package/dist/area.component-CQq-Mh0Z.js.map +1 -0
- package/dist/{area.component-BojFAcRk.cjs → area.component-Ciw7vGsx.cjs} +4 -4
- package/dist/area.component-Ciw7vGsx.cjs.map +1 -0
- package/dist/area.js +1 -1
- package/dist/{autocomplete-B-X_D8MC.js → autocomplete-DT9MFPEG.js} +5 -5
- package/dist/{autocomplete-B-X_D8MC.js.map → autocomplete-DT9MFPEG.js.map} +1 -1
- package/dist/{autocomplete-B8oOdRsV.cjs → autocomplete-auTO_M_w.cjs} +2 -2
- package/dist/{autocomplete-B8oOdRsV.cjs.map → autocomplete-auTO_M_w.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-Db95uagl.cjs → avatar-Bo8kRnA-.cjs} +2 -2
- package/dist/{avatar-Db95uagl.cjs.map → avatar-Bo8kRnA-.cjs.map} +1 -1
- package/dist/{avatar-TpHjBCrR.js → avatar-Dm_qg-n1.js} +52 -52
- package/dist/{avatar-TpHjBCrR.js.map → avatar-Dm_qg-n1.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/boat-98He5-K8.cjs +97 -0
- package/dist/boat-98He5-K8.cjs.map +1 -0
- package/dist/boat-RNCKlx8b.js +301 -0
- package/dist/boat-RNCKlx8b.js.map +1 -0
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-BOmazo-k.js → checkbox-Bdn1_WJg.js} +2 -2
- package/dist/{checkbox-BOmazo-k.js.map → checkbox-Bdn1_WJg.js.map} +1 -1
- package/dist/{checkbox-DMfwDgYx.cjs → checkbox-Dj06r6MD.cjs} +2 -2
- package/dist/{checkbox-DMfwDgYx.cjs.map → checkbox-Dj06r6MD.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-DgyY3Jlw.js → code-preview-Br7zBkyM.js} +2 -2
- package/dist/{code-preview-DgyY3Jlw.js.map → code-preview-Br7zBkyM.js.map} +1 -1
- package/dist/{code-preview-CbZzYTk2.cjs → code-preview-ByxcwPma.cjs} +2 -2
- package/dist/{code-preview-CbZzYTk2.cjs.map → code-preview-ByxcwPma.cjs.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-BV0479CW.js → date-range-VkIMcQdT.js} +3 -3
- package/dist/{date-range-BV0479CW.js.map → date-range-VkIMcQdT.js.map} +1 -1
- package/dist/{date-range-inline-HNDLTnYi.cjs → date-range-inline-kbokz03Z.cjs} +2 -2
- package/dist/{date-range-inline-HNDLTnYi.cjs.map → date-range-inline-kbokz03Z.cjs.map} +1 -1
- package/dist/{date-range-inline-GfLao0NN.js → date-range-inline-l2G48xTX.js} +3 -3
- package/dist/{date-range-inline-GfLao0NN.js.map → date-range-inline-l2G48xTX.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/{date-range-47SnbVM6.cjs → date-range-xYUr_KKx.cjs} +2 -2
- package/dist/{date-range-47SnbVM6.cjs.map → date-range-xYUr_KKx.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-Dr3Fr5YB.cjs → delay-CCreUpYu.cjs} +2 -2
- package/dist/{delay-Dr3Fr5YB.cjs.map → delay-CCreUpYu.cjs.map} +1 -1
- package/dist/{delay-B40l99jW.js → delay-Nu7RVtYd.js} +2 -2
- package/dist/{delay-B40l99jW.js.map → delay-Nu7RVtYd.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/details-CjQrqBli.cjs +98 -0
- package/dist/details-CjQrqBli.cjs.map +1 -0
- package/dist/details-DVIWpEsI.js +137 -0
- package/dist/details-DVIWpEsI.js.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-B_amCfq7.js → dialog-content-BgxKi73O.js} +3 -3
- package/dist/{dialog-content-B_amCfq7.js.map → dialog-content-BgxKi73O.js.map} +1 -1
- package/dist/{dialog-content-Emd7BLQA.cjs → dialog-content-CM3-RXQQ.cjs} +2 -2
- package/dist/{dialog-content-Emd7BLQA.cjs.map → dialog-content-CM3-RXQQ.cjs.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +10 -6
- package/dist/divider-0yHQS8kR.cjs +58 -0
- package/dist/divider-0yHQS8kR.cjs.map +1 -0
- package/dist/divider-CqyzFfn1.js +84 -0
- package/dist/divider-CqyzFfn1.js.map +1 -0
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-BpJq8Q1u.cjs → dropdown-content-BmHQE5-P.cjs} +2 -2
- package/dist/{dropdown-content-BpJq8Q1u.cjs.map → dropdown-content-BmHQE5-P.cjs.map} +1 -1
- package/dist/{dropdown-content-Bw9jnfCR.js → dropdown-content-iFlLupVo.js} +3 -3
- package/dist/{dropdown-content-Bw9jnfCR.js.map → dropdown-content-iFlLupVo.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-Bxvu6zi9.cjs → email-recipients-Cioc3U0Z.cjs} +2 -2
- package/dist/{email-recipients-Bxvu6zi9.cjs.map → email-recipients-Cioc3U0Z.cjs.map} +1 -1
- package/dist/{email-recipients-DZGMhyg4.js → email-recipients-CmAEJDMC.js} +6 -6
- package/dist/{email-recipients-DZGMhyg4.js.map → email-recipients-CmAEJDMC.js.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DakK9gco.cjs → flex-BEB1yuMF.cjs} +2 -2
- package/dist/{flex-DakK9gco.cjs.map → flex-BEB1yuMF.cjs.map} +1 -1
- package/dist/{flex-DUgMxT_9.js → flex-BgcbHlPo.js} +2 -2
- package/dist/{flex-DUgMxT_9.js.map → flex-BgcbHlPo.js.map} +1 -1
- package/dist/{form-yZ1fh3h9.js → form-CxrvY530.js} +2 -2
- package/dist/{form-yZ1fh3h9.js.map → form-CxrvY530.js.map} +1 -1
- package/dist/{form-CPmMvWvE.cjs → form-DFDTspmH.cjs} +2 -2
- package/dist/{form-CPmMvWvE.cjs.map → form-DFDTspmH.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-D51klHq7.cjs → formField.mixin-C7H5DaEl.cjs} +2 -2
- package/dist/{formField.mixin-D51klHq7.cjs.map → formField.mixin-C7H5DaEl.cjs.map} +1 -1
- package/dist/{formField.mixin-Cmb9YpmX.js → formField.mixin-hZ2qP4iG.js} +2 -2
- package/dist/{formField.mixin-Cmb9YpmX.js.map → formField.mixin-hZ2qP4iG.js.map} +1 -1
- package/dist/{icon-DHT8YsE3.js → icon-D0FAI5uJ.js} +2 -2
- package/dist/{icon-DHT8YsE3.js.map → icon-D0FAI5uJ.js.map} +1 -1
- package/dist/{icon-Dsa_BddL.cjs → icon-DJnGMAQ2.cjs} +2 -2
- package/dist/{icon-Dsa_BddL.cjs.map → icon-DJnGMAQ2.cjs.map} +1 -1
- package/dist/{icon-button-BRcfLsJL.cjs → icon-button-CSZtSmOy.cjs} +8 -8
- package/dist/icon-button-CSZtSmOy.cjs.map +1 -0
- package/dist/{icon-button-PpRHFLCj.js → icon-button-CbgQp3AL.js} +19 -19
- package/dist/icon-button-CbgQp3AL.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +196 -192
- package/dist/{input-CYGSlByl.js → input-DLnKAj3B.js} +4 -4
- package/dist/{input-CYGSlByl.js.map → input-DLnKAj3B.js.map} +1 -1
- package/dist/{input-chip-CKYO8Lww.cjs → input-chip-C3EPsHcP.cjs} +2 -2
- package/dist/{input-chip-CKYO8Lww.cjs.map → input-chip-C3EPsHcP.cjs.map} +1 -1
- package/dist/{input-chip-CTKPIRVA.js → input-chip-dmqYCExV.js} +2 -2
- package/dist/{input-chip-CTKPIRVA.js.map → input-chip-dmqYCExV.js.map} +1 -1
- package/dist/input-wZ6ORWru.cjs +51 -0
- package/dist/{input-DB269a2X.cjs.map → input-wZ6ORWru.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-BbzeVuby.js → list-BegNkhOn.js} +2 -2
- package/dist/{list-BbzeVuby.js.map → list-BegNkhOn.js.map} +1 -1
- package/dist/{list-BQVTFNkq.cjs → list-CLKiZ6lk.cjs} +2 -2
- package/dist/{list-BQVTFNkq.cjs.map → list-CLKiZ6lk.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-DzCpXwcY.cjs → litElement.mixin-CPQYJnK_.cjs} +2 -2
- package/dist/{litElement.mixin-DzCpXwcY.cjs.map → litElement.mixin-CPQYJnK_.cjs.map} +1 -1
- package/dist/{litElement.mixin-BzbZQbxa.js → litElement.mixin-DWDPaNoc.js} +2 -2
- package/dist/{litElement.mixin-BzbZQbxa.js.map → litElement.mixin-DWDPaNoc.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-CgwU5Px4.js → map-CUKZ6LrR.js} +2 -2
- package/dist/{map-CgwU5Px4.js.map → map-CUKZ6LrR.js.map} +1 -1
- package/dist/{map-DuTFI2lm.cjs → map-w4Kdtycx.cjs} +2 -2
- package/dist/{map-DuTFI2lm.cjs.map → map-w4Kdtycx.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-BnktmFRW.js → media-CjdCchz8.js} +2 -2
- package/dist/{media-BnktmFRW.js.map → media-CjdCchz8.js.map} +1 -1
- package/dist/{media-gtpSHRFx.cjs → media-DDNmuoV0.cjs} +2 -2
- package/dist/{media-gtpSHRFx.cjs.map → media-DDNmuoV0.cjs.map} +1 -1
- package/dist/menu-D9-9vipn.cjs +26 -0
- package/dist/menu-D9-9vipn.cjs.map +1 -0
- package/dist/menu-ofiPDY2a.js +61 -0
- package/dist/menu-ofiPDY2a.js.map +1 -0
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +3 -3
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/{navigation-rail-D8otIR2P.cjs → navigation-rail-CEDLJTrH.cjs} +2 -2
- package/dist/{navigation-rail-D8otIR2P.cjs.map → navigation-rail-CEDLJTrH.cjs.map} +1 -1
- package/dist/{navigation-rail-CUMNSz0h.js → navigation-rail-weSW6BCv.js} +3 -3
- package/dist/{navigation-rail-CUMNSz0h.js.map → navigation-rail-weSW6BCv.js.map} +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-E16lPsiT.js → notification-service-B4nvP2Jc.js} +5 -5
- package/dist/{notification-service-E16lPsiT.js.map → notification-service-B4nvP2Jc.js.map} +1 -1
- package/dist/{notification-service-CP6kGXVL.cjs → notification-service-B_pa74hl.cjs} +2 -2
- package/dist/{notification-service-CP6kGXVL.cjs.map → notification-service-B_pa74hl.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-D865xIlu.js → notify-Ci0HrUIo.js} +2 -2
- package/dist/{notify-D865xIlu.js.map → notify-Ci0HrUIo.js.map} +1 -1
- package/dist/{notify-Czdp7BbG.cjs → notify-aasSKQGA.cjs} +2 -2
- package/dist/{notify-Czdp7BbG.cjs.map → notify-aasSKQGA.cjs.map} +1 -1
- package/dist/{option-cJ8fM5qJ.js → option-Cs4e3CzF.js} +2 -2
- package/dist/{option-cJ8fM5qJ.js.map → option-Cs4e3CzF.js.map} +1 -1
- package/dist/{option-B1r0hb3H.cjs → option-Uze_q9Ef.cjs} +2 -2
- package/dist/{option-B1r0hb3H.cjs.map → option-Uze_q9Ef.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-RBjpMc2m.js → payment-card-form-BLoUTYiB.js} +3 -3
- package/dist/{payment-card-form-RBjpMc2m.js.map → payment-card-form-BLoUTYiB.js.map} +1 -1
- package/dist/{payment-card-form-EO3auDS8.cjs → payment-card-form-rJCPUtWE.cjs} +2 -2
- package/dist/{payment-card-form-EO3auDS8.cjs.map → payment-card-form-rJCPUtWE.cjs.map} +1 -1
- package/dist/{progress-4v9FzvOT.js → progress-B1f3y-Mf.js} +2 -2
- package/dist/{progress-4v9FzvOT.js.map → progress-B1f3y-Mf.js.map} +1 -1
- package/dist/{progress-DnhvJMz_.cjs → progress-DdBHNIMT.cjs} +2 -2
- package/dist/{progress-DnhvJMz_.cjs.map → progress-DdBHNIMT.cjs.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-BVegeFKE.cjs → radio-button-BAS7gKmA.cjs} +2 -2
- package/dist/{radio-button-BVegeFKE.cjs.map → radio-button-BAS7gKmA.cjs.map} +1 -1
- package/dist/{radio-button-DDavzgCz.js → radio-button-CaDaw5VH.js} +3 -3
- package/dist/{radio-button-DDavzgCz.js.map → radio-button-CaDaw5VH.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/ripple-QoNZUUw_.js +148 -0
- package/dist/ripple-QoNZUUw_.js.map +1 -0
- package/dist/ripple-Ujq_REH4.cjs +16 -0
- package/dist/ripple-Ujq_REH4.cjs.map +1 -0
- package/dist/{schmancy-steps-container-DN9c-HeX.js → schmancy-steps-container-BInNput3.js} +2 -2
- package/dist/{schmancy-steps-container-DN9c-HeX.js.map → schmancy-steps-container-BInNput3.js.map} +1 -1
- package/dist/{schmancy-steps-container-s6kZWhcr.cjs → schmancy-steps-container-wQsksygx.cjs} +2 -2
- package/dist/{schmancy-steps-container-s6kZWhcr.cjs.map → schmancy-steps-container-wQsksygx.cjs.map} +1 -1
- package/dist/search-B1s7thB0.cjs +2 -0
- package/dist/search-B1s7thB0.cjs.map +1 -0
- package/dist/search-DxxnLa5u.js +95 -0
- package/dist/search-DxxnLa5u.js.map +1 -0
- package/dist/{select--D6l5ru7.js → select-ApLZefMf.js} +4 -4
- package/dist/{select--D6l5ru7.js.map → select-ApLZefMf.js.map} +1 -1
- package/dist/{select-DVT_kFNR.cjs → select-_2Ag_znm.cjs} +2 -2
- package/dist/{select-DVT_kFNR.cjs.map → select-_2Ag_znm.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/selector-hook-Cok22ifx.cjs +2 -0
- package/dist/selector-hook-Cok22ifx.cjs.map +1 -0
- package/dist/selector-hook-l2fe2UO5.js +319 -0
- package/dist/selector-hook-l2fe2UO5.js.map +1 -0
- package/dist/{sheet-CNn_huhz.js → sheet-DovyNsok.js} +14 -14
- package/dist/sheet-DovyNsok.js.map +1 -0
- package/dist/{sheet-Bza5jVS2.cjs → sheet-wjDOQ8Hs.cjs} +4 -4
- package/dist/sheet-wjDOQ8Hs.cjs.map +1 -0
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-CmNDL4f6.js → sheet.service-BvOiOFMm.js} +2 -2
- package/dist/{sheet.service-CmNDL4f6.js.map → sheet.service-BvOiOFMm.js.map} +1 -1
- package/dist/{sheet.service--zUgftN3.cjs → sheet.service-DfHrOxyc.cjs} +2 -2
- package/dist/{sheet.service--zUgftN3.cjs.map → sheet.service-DfHrOxyc.cjs.map} +1 -1
- package/dist/{slider-Cf0pED-U.cjs → slider-BgJccHrg.cjs} +2 -2
- package/dist/{slider-Cf0pED-U.cjs.map → slider-BgJccHrg.cjs.map} +1 -1
- package/dist/{slider-DPxBmmFD.js → slider-CeVgx4pL.js} +3 -3
- package/dist/{slider-DPxBmmFD.js.map → slider-CeVgx4pL.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-BDSDxr_W.cjs → spinner-BKeA2bdB.cjs} +3 -3
- package/dist/spinner-BKeA2bdB.cjs.map +1 -0
- package/dist/{spinner-Dyz6HBFa.js → spinner-Brq1TenP.js} +3 -3
- package/dist/spinner-Brq1TenP.js.map +1 -0
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +1 -1
- package/dist/{suggestion-chip-CCW8g_3S.js → suggestion-chip-CWBSzu7C.js} +3 -3
- package/dist/{suggestion-chip-CCW8g_3S.js.map → suggestion-chip-CWBSzu7C.js.map} +1 -1
- package/dist/{suggestion-chip-B7COqb4l.cjs → suggestion-chip-dq20NKWy.cjs} +2 -2
- package/dist/{suggestion-chip-B7COqb4l.cjs.map → suggestion-chip-dq20NKWy.cjs.map} +1 -1
- package/dist/{surface-B4CxtF38.js → surface-Bf8pvmdG.js} +34 -10
- package/dist/{surface-B4CxtF38.js.map → surface-Bf8pvmdG.js.map} +1 -1
- package/dist/{surface-CkzbeSYN.cjs → surface-fEPJ-cuu.cjs} +27 -3
- package/dist/{surface-CkzbeSYN.cjs.map → surface-fEPJ-cuu.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-D-g4ZBys.cjs → table-DEnB9_Rf.cjs} +4 -3
- package/dist/{table-D-g4ZBys.cjs.map → table-DEnB9_Rf.cjs.map} +1 -1
- package/dist/{table-KPNVMJtn.js → table-MLd3oXm6.js} +14 -10
- package/dist/{table-KPNVMJtn.js.map → table-MLd3oXm6.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-sMoQP12I.cjs → tabs-compatibility-CXVHOR5X.cjs} +2 -2
- package/dist/{tabs-compatibility-sMoQP12I.cjs.map → tabs-compatibility-CXVHOR5X.cjs.map} +1 -1
- package/dist/{tabs-compatibility-xUK4vD1M.js → tabs-compatibility-KWKzYolX.js} +2 -2
- package/dist/{tabs-compatibility-xUK4vD1M.js.map → tabs-compatibility-KWKzYolX.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-3TPVvhYf.cjs +2 -0
- package/dist/{tailwind.mixin-scDxsqaX.cjs.map → tailwind.mixin-3TPVvhYf.cjs.map} +1 -1
- package/dist/tailwind.mixin-DIW0B_of.js +67 -0
- package/dist/{tailwind.mixin-xIIxrXd8.js.map → tailwind.mixin-DIW0B_of.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-BSBYVs99.cjs → textarea-B7arkA7y.cjs} +2 -2
- package/dist/{textarea-BSBYVs99.cjs.map → textarea-B7arkA7y.cjs.map} +1 -1
- package/dist/{textarea-CFrirT5y.js → textarea-BK1m_CFR.js} +3 -3
- package/dist/{textarea-CFrirT5y.js.map → textarea-BK1m_CFR.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-B8Xqrz1M.cjs → theme-button-BTKwL3oC.cjs} +2 -2
- package/dist/{theme-button-B8Xqrz1M.cjs.map → theme-button-BTKwL3oC.cjs.map} +1 -1
- package/dist/{theme-button-D-LTPh88.js → theme-button-C6kk8bay.js} +2 -2
- package/dist/{theme-button-D-LTPh88.js.map → theme-button-C6kk8bay.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/{theme-controller-boat-BOddzVdU.js → theme-controller-boat-BK59LqH9.js} +3 -3
- package/dist/{theme-controller-boat-BOddzVdU.js.map → theme-controller-boat-BK59LqH9.js.map} +1 -1
- package/dist/{theme-controller-boat-C2F-qRyu.cjs → theme-controller-boat-Y5QXwJxW.cjs} +2 -2
- package/dist/{theme-controller-boat-C2F-qRyu.cjs.map → theme-controller-boat-Y5QXwJxW.cjs.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-BvOWa9Nt.js → timezone-D_skWX6Z.js} +3 -3
- package/dist/{timezone-BvOWa9Nt.js.map → timezone-D_skWX6Z.js.map} +1 -1
- package/dist/{timezone-xHmnktrm.cjs → timezone-nbn0o5GC.cjs} +2 -2
- package/dist/{timezone-xHmnktrm.cjs.map → timezone-nbn0o5GC.cjs.map} +1 -1
- package/dist/{tooltip-D3ZZJEAk.js → tooltip-Btl0IKYC.js} +2 -2
- package/dist/{tooltip-D3ZZJEAk.js.map → tooltip-Btl0IKYC.js.map} +1 -1
- package/dist/{tooltip-D24v5bvM.cjs → tooltip-DyuMJEjL.cjs} +2 -2
- package/dist/{tooltip-D24v5bvM.cjs.map → tooltip-DyuMJEjL.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-CfVyhRIH.js → tree-B_2eIFQi.js} +2 -2
- package/dist/{tree-CfVyhRIH.js.map → tree-B_2eIFQi.js.map} +1 -1
- package/dist/{tree-DC_jbDRu.cjs → tree-N4Y6MoQe.cjs} +2 -2
- package/dist/{tree-DC_jbDRu.cjs.map → tree-N4Y6MoQe.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-By-3T0Jm.js → typewriter-Blyrk_4c.js} +247 -118
- package/dist/typewriter-Blyrk_4c.js.map +1 -0
- package/dist/typewriter-CFQAeOaw.cjs +124 -0
- package/dist/typewriter-CFQAeOaw.cjs.map +1 -0
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-B7kvO8iJ.js → typography-DjGWK58I.js} +2 -2
- package/dist/{typography-B7kvO8iJ.js.map → typography-DjGWK58I.js.map} +1 -1
- package/dist/{typography-9lVCjAbj.cjs → typography-DsIU0TGe.cjs} +2 -2
- package/dist/{typography-9lVCjAbj.cjs.map → typography-DsIU0TGe.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/types/src/area/router.types.d.ts +1 -0
- package/types/src/boat/boat.d.ts +0 -1
- package/types/src/button/button.d.ts +8 -0
- package/types/src/details/details.d.ts +3 -11
- package/types/src/directives/drag.d.ts +30 -0
- package/types/src/directives/index.d.ts +1 -0
- package/types/src/divider/divider.d.ts +6 -1
- package/types/src/menu/menu-item.d.ts +0 -1
- package/types/src/store/filter-directive.d.ts +1 -1
- package/types/src/surface/surface.d.ts +2 -1
- package/types/src/types/surface.d.ts +1 -1
- package/types/src/typewriter/typewriter.d.ts +15 -0
- package/types/src/utils/index.d.ts +4 -4
- package/types/src/utils/search.d.ts +39 -1
- package/dist/area.component-BojFAcRk.cjs.map +0 -1
- package/dist/area.component-C_nUxyiY.js.map +0 -1
- package/dist/boat-B7AKN6Ge.js +0 -276
- package/dist/boat-B7AKN6Ge.js.map +0 -1
- package/dist/boat-BhAuteUk.cjs +0 -93
- package/dist/boat-BhAuteUk.cjs.map +0 -1
- package/dist/details-CQPpI_la.js +0 -211
- package/dist/details-CQPpI_la.js.map +0 -1
- package/dist/details-DydvHvfw.cjs +0 -143
- package/dist/details-DydvHvfw.cjs.map +0 -1
- package/dist/divider-BF9xljgI.cjs +0 -2
- package/dist/divider-BF9xljgI.cjs.map +0 -1
- package/dist/divider-BHruVdsE.js +0 -23
- package/dist/divider-BHruVdsE.js.map +0 -1
- package/dist/icon-button-BRcfLsJL.cjs.map +0 -1
- package/dist/icon-button-PpRHFLCj.js.map +0 -1
- package/dist/input-DB269a2X.cjs +0 -51
- package/dist/menu-C8PcWr7Y.cjs +0 -26
- package/dist/menu-C8PcWr7Y.cjs.map +0 -1
- package/dist/menu-DthqNQR7.js +0 -63
- package/dist/menu-DthqNQR7.js.map +0 -1
- package/dist/ripple-Cy-nvO8W.js +0 -80
- package/dist/ripple-Cy-nvO8W.js.map +0 -1
- package/dist/ripple-DqQrvaTe.cjs +0 -16
- package/dist/ripple-DqQrvaTe.cjs.map +0 -1
- package/dist/search-BeEqIiuO.js +0 -53
- package/dist/search-BeEqIiuO.js.map +0 -1
- package/dist/search-bfOHCuHZ.cjs +0 -2
- package/dist/search-bfOHCuHZ.cjs.map +0 -1
- package/dist/selector-hook-BG6g_IEN.cjs +0 -2
- package/dist/selector-hook-BG6g_IEN.cjs.map +0 -1
- package/dist/selector-hook-CrwQCPxL.js +0 -313
- package/dist/selector-hook-CrwQCPxL.js.map +0 -1
- package/dist/sheet-Bza5jVS2.cjs.map +0 -1
- package/dist/sheet-CNn_huhz.js.map +0 -1
- package/dist/spinner-BDSDxr_W.cjs.map +0 -1
- package/dist/spinner-Dyz6HBFa.js.map +0 -1
- package/dist/tailwind.mixin-scDxsqaX.cjs +0 -2
- package/dist/tailwind.mixin-xIIxrXd8.js +0 -67
- package/dist/typewriter-By-3T0Jm.js.map +0 -1
- package/dist/typewriter-vit0P1N1.cjs +0 -9
- package/dist/typewriter-vit0P1N1.cjs.map +0 -1
package/ai/directives.md
CHANGED
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
## Quick Start
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
|
-
import { ripple, color, height, visibility } from '@schmancy/index'
|
|
7
|
-
// Or specific import: import { ripple, color, height, visibility } from '@schmancy/directives'
|
|
6
|
+
import { ripple, color, height, visibility, drag, drop } from '@schmancy/index'
|
|
7
|
+
// Or specific import: import { ripple, color, height, visibility, drag, drop } from '@schmancy/directives'
|
|
8
|
+
|
|
9
|
+
// Import types
|
|
10
|
+
import type { SchmancyDropEvent } from '@schmancy/index'
|
|
8
11
|
```
|
|
9
12
|
|
|
10
13
|
## Directives Overview
|
|
@@ -60,6 +63,28 @@ Lit directives that add common UI behaviors and styling capabilities to any elem
|
|
|
60
63
|
// When true, removes display style
|
|
61
64
|
```
|
|
62
65
|
|
|
66
|
+
### Drag & Drop Directives
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
// Make element draggable
|
|
70
|
+
<div ${drag(id: string)}></div>
|
|
71
|
+
|
|
72
|
+
// Make element a drop zone
|
|
73
|
+
<div ${drop(destinationId: string)} @drop=${handleDrop}></div>
|
|
74
|
+
|
|
75
|
+
// Drop event type
|
|
76
|
+
export type SchmancyDropEvent = CustomEvent<{
|
|
77
|
+
source: string; // ID of dragged element
|
|
78
|
+
destination: string; // ID of drop zone
|
|
79
|
+
}>
|
|
80
|
+
|
|
81
|
+
// Handle drop event
|
|
82
|
+
const handleDrop = (e: SchmancyDropEvent) => {
|
|
83
|
+
const { source, destination } = e.detail
|
|
84
|
+
// Handle the drop...
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
63
88
|
## Examples
|
|
64
89
|
|
|
65
90
|
### Basic Usage
|
|
@@ -100,12 +125,25 @@ Lit directives that add common UI behaviors and styling capabilities to any elem
|
|
|
100
125
|
</div>
|
|
101
126
|
|
|
102
127
|
// Animated drawer
|
|
103
|
-
<div
|
|
128
|
+
<div
|
|
104
129
|
${height(isOpen ? '300px' : '0')}
|
|
105
130
|
${visibility(isOpen)}
|
|
106
131
|
class="transition-all duration-300 overflow-hidden">
|
|
107
132
|
Drawer Content
|
|
108
133
|
</div>
|
|
134
|
+
|
|
135
|
+
// Drag and drop list items
|
|
136
|
+
<div class="space-y-2">
|
|
137
|
+
${items.map(item => html`
|
|
138
|
+
<div
|
|
139
|
+
${drag(item.id)}
|
|
140
|
+
${drop(item.id)}
|
|
141
|
+
@drop=${handleReorder}
|
|
142
|
+
class="p-4 bg-surface-container rounded cursor-grab">
|
|
143
|
+
${item.name}
|
|
144
|
+
</div>
|
|
145
|
+
`)}
|
|
146
|
+
</div>
|
|
109
147
|
```
|
|
110
148
|
|
|
111
149
|
### Real-World Examples
|
|
@@ -155,10 +193,10 @@ render() {
|
|
|
155
193
|
render() {
|
|
156
194
|
const isDark = this.theme === 'dark'
|
|
157
195
|
return html`
|
|
158
|
-
<div
|
|
196
|
+
<div
|
|
159
197
|
${color({
|
|
160
|
-
bgColor: isDark
|
|
161
|
-
? 'var(--schmancy-sys-color-surface-dim)'
|
|
198
|
+
bgColor: isDark
|
|
199
|
+
? 'var(--schmancy-sys-color-surface-dim)'
|
|
162
200
|
: 'var(--schmancy-sys-color-surface-bright)',
|
|
163
201
|
color: 'var(--schmancy-sys-color-on-surface)'
|
|
164
202
|
})}
|
|
@@ -167,6 +205,109 @@ render() {
|
|
|
167
205
|
</div>
|
|
168
206
|
`
|
|
169
207
|
}
|
|
208
|
+
|
|
209
|
+
// Warehouse hierarchy management with drag & drop
|
|
210
|
+
@customElement('warehouse-manager')
|
|
211
|
+
class WarehouseManager extends $LitElement() {
|
|
212
|
+
@state()
|
|
213
|
+
warehouses: Warehouse[] = []
|
|
214
|
+
|
|
215
|
+
private handleWarehouseReparent = (e: SchmancyDropEvent) => {
|
|
216
|
+
const { source, destination } = e.detail
|
|
217
|
+
|
|
218
|
+
// Find the warehouse being dragged and the new parent
|
|
219
|
+
const warehouse = this.warehouses.find(w => w.id === source)
|
|
220
|
+
const newParent = this.warehouses.find(w => w.id === destination)
|
|
221
|
+
|
|
222
|
+
if (!warehouse || !newParent) return
|
|
223
|
+
|
|
224
|
+
// Update the warehouse's parent
|
|
225
|
+
warehouse.parentID = newParent.id
|
|
226
|
+
|
|
227
|
+
// Save to database
|
|
228
|
+
this.saveWarehouse(warehouse)
|
|
229
|
+
|
|
230
|
+
// Notify user
|
|
231
|
+
this.dispatchEvent(new CustomEvent('warehouse-moved', {
|
|
232
|
+
detail: { warehouse, newParent }
|
|
233
|
+
}))
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
render() {
|
|
237
|
+
return html`
|
|
238
|
+
<div class="space-y-2">
|
|
239
|
+
${repeat(
|
|
240
|
+
this.warehouses,
|
|
241
|
+
w => w.id,
|
|
242
|
+
w => html`
|
|
243
|
+
<schmancy-surface
|
|
244
|
+
${drag(w.id)}
|
|
245
|
+
${drop(w.id)}
|
|
246
|
+
@drop=${this.handleWarehouseReparent}
|
|
247
|
+
type="containerLow"
|
|
248
|
+
class="p-4 cursor-grab active:cursor-grabbing">
|
|
249
|
+
<div class="flex items-center gap-3">
|
|
250
|
+
<span>${w.emoji || '📦'}</span>
|
|
251
|
+
<span>${w.name}</span>
|
|
252
|
+
</div>
|
|
253
|
+
</schmancy-surface>
|
|
254
|
+
`
|
|
255
|
+
)}
|
|
256
|
+
</div>
|
|
257
|
+
`
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Sortable task list
|
|
262
|
+
@customElement('task-list')
|
|
263
|
+
class TaskList extends $LitElement() {
|
|
264
|
+
@state()
|
|
265
|
+
tasks: Task[] = []
|
|
266
|
+
|
|
267
|
+
private handleTaskReorder = (e: SchmancyDropEvent) => {
|
|
268
|
+
const { source, destination } = e.detail
|
|
269
|
+
|
|
270
|
+
// Find indices
|
|
271
|
+
const sourceIndex = this.tasks.findIndex(t => t.id === source)
|
|
272
|
+
const destIndex = this.tasks.findIndex(t => t.id === destination)
|
|
273
|
+
|
|
274
|
+
if (sourceIndex === -1 || destIndex === -1) return
|
|
275
|
+
|
|
276
|
+
// Reorder array
|
|
277
|
+
const [movedTask] = this.tasks.splice(sourceIndex, 1)
|
|
278
|
+
this.tasks.splice(destIndex, 0, movedTask)
|
|
279
|
+
|
|
280
|
+
// Trigger re-render
|
|
281
|
+
this.tasks = [...this.tasks]
|
|
282
|
+
|
|
283
|
+
// Persist order
|
|
284
|
+
this.saveTasks()
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
render() {
|
|
288
|
+
return html`
|
|
289
|
+
<div class="space-y-2">
|
|
290
|
+
${repeat(
|
|
291
|
+
this.tasks,
|
|
292
|
+
t => t.id,
|
|
293
|
+
t => html`
|
|
294
|
+
<div
|
|
295
|
+
${drag(t.id)}
|
|
296
|
+
${drop(t.id)}
|
|
297
|
+
@drop=${this.handleTaskReorder}
|
|
298
|
+
class="p-4 bg-surface-container rounded cursor-grab hover:bg-surface-containerHigh transition-colors">
|
|
299
|
+
<schmancy-checkbox
|
|
300
|
+
?checked=${t.completed}
|
|
301
|
+
@change=${() => this.toggleTask(t)}>
|
|
302
|
+
${t.title}
|
|
303
|
+
</schmancy-checkbox>
|
|
304
|
+
</div>
|
|
305
|
+
`
|
|
306
|
+
)}
|
|
307
|
+
</div>
|
|
308
|
+
`
|
|
309
|
+
}
|
|
310
|
+
}
|
|
170
311
|
```
|
|
171
312
|
|
|
172
313
|
## Implementation Details
|
|
@@ -196,6 +337,42 @@ render() {
|
|
|
196
337
|
- When true: removes display style
|
|
197
338
|
- Preserves other display values
|
|
198
339
|
|
|
340
|
+
### Drag & Drop Directives
|
|
341
|
+
|
|
342
|
+
**Drag Directive:**
|
|
343
|
+
- Sets `draggable="true"` on the element
|
|
344
|
+
- Sets cursor to `grab` (changes to `grabbing` during drag)
|
|
345
|
+
- Uses HTML5 Drag and Drop API
|
|
346
|
+
- Stores dragged element ID in global variable for access by drop zones
|
|
347
|
+
- Transfers data via `dataTransfer` API
|
|
348
|
+
- Implements `dragstart` and `dragend` event handlers
|
|
349
|
+
- Uses RxJS for event handling with automatic cleanup
|
|
350
|
+
- Prevents event bubbling with `stopPropagation()`
|
|
351
|
+
|
|
352
|
+
**Drop Directive:**
|
|
353
|
+
- Enables element as a drop zone
|
|
354
|
+
- Provides visual feedback during drag-over:
|
|
355
|
+
- Dashed outline in tertiary color
|
|
356
|
+
- Drop shadow effect for emphasis
|
|
357
|
+
- Prevents dropping element onto itself
|
|
358
|
+
- Cleans up visual feedback on drag leave
|
|
359
|
+
- Dispatches custom `SchmancyDropEvent` with source and destination IDs
|
|
360
|
+
- Event bubbles up for easy handling
|
|
361
|
+
- Uses RxJS to manage `dragover`, `dragleave`, and `drop` events
|
|
362
|
+
- Automatically calls `preventDefault()` to enable dropping
|
|
363
|
+
|
|
364
|
+
**Global State Management:**
|
|
365
|
+
- Uses module-level `currentDragSourceId` variable
|
|
366
|
+
- Tracks which element is being dragged
|
|
367
|
+
- Allows drop zones to prevent self-drop
|
|
368
|
+
- Cleared automatically when drag ends
|
|
369
|
+
|
|
370
|
+
**RxJS Integration:**
|
|
371
|
+
- All event listeners use RxJS `fromEvent()`
|
|
372
|
+
- Cleanup via `takeUntil(this.destroy$)` in `disconnected()`
|
|
373
|
+
- Combines multiple event streams with `merge()`
|
|
374
|
+
- Proper memory management and no event listener leaks
|
|
375
|
+
|
|
199
376
|
## Best Practices
|
|
200
377
|
|
|
201
378
|
1. **Ripple Usage**: Best on interactive elements (buttons, cards, list items)
|
|
@@ -203,6 +380,13 @@ render() {
|
|
|
203
380
|
3. **Height Animations**: Combine with CSS transitions for smooth effects
|
|
204
381
|
4. **Visibility**: Use for simple show/hide; consider v-show for more control
|
|
205
382
|
5. **Performance**: Directives are lightweight but avoid excessive updates
|
|
383
|
+
6. **Drag IDs**: Always use unique, stable IDs (not array indices that can change)
|
|
384
|
+
7. **Drop Zones**: Make drop zones visually distinct so users know where to drop
|
|
385
|
+
8. **Accessibility**: Drag & drop isn't accessible - provide alternative keyboard navigation
|
|
386
|
+
9. **Touch Devices**: HTML5 drag/drop has limited mobile support - consider alternatives for mobile
|
|
387
|
+
10. **Visual Feedback**: Use cursor changes and hover states to indicate draggable elements
|
|
388
|
+
11. **Prevent Self-Drop**: Both directives automatically prevent dropping onto self
|
|
389
|
+
12. **Event Bubbling**: Drop events bubble up - handle at parent level if needed
|
|
206
390
|
|
|
207
391
|
## Common Pitfalls
|
|
208
392
|
|
|
@@ -210,6 +394,14 @@ render() {
|
|
|
210
394
|
- **Color Specificity**: Inline styles from color directive override CSS classes
|
|
211
395
|
- **Height Auto**: Transitioning to/from 'auto' requires special handling
|
|
212
396
|
- **Visibility vs Display**: Visibility directive uses display, not visibility property
|
|
397
|
+
- **Drag Ghost Image**: Browser creates default ghost image - customize with `setDragImage()`
|
|
398
|
+
- **Mobile Support**: Touch events don't trigger HTML5 drag/drop - polyfill required
|
|
399
|
+
- **Z-Index Issues**: Dragged element may appear behind other elements
|
|
400
|
+
- **Drop Validation**: Always validate source/destination IDs before processing
|
|
401
|
+
- **Memory Leaks**: Directives handle cleanup automatically via RxJS `takeUntil()`
|
|
402
|
+
- **Multiple Drops**: If element has both `drag()` and `drop()`, ensure IDs match intent
|
|
403
|
+
- **Event Order**: `dragstart` → `dragover` (repeated) → `drop` → `dragend`
|
|
404
|
+
- **DataTransfer**: Data is only accessible in `drop` event, not `dragover`
|
|
213
405
|
|
|
214
406
|
## Related Components
|
|
215
407
|
|
|
@@ -230,9 +422,24 @@ color(config: {
|
|
|
230
422
|
color?: string;
|
|
231
423
|
}): DirectiveResult
|
|
232
424
|
|
|
233
|
-
// Height directive
|
|
425
|
+
// Height directive
|
|
234
426
|
height(value: string | number): DirectiveResult
|
|
235
427
|
|
|
236
428
|
// Visibility directive
|
|
237
429
|
visibility(isVisible: boolean): DirectiveResult
|
|
430
|
+
|
|
431
|
+
// Drag directive
|
|
432
|
+
drag(id: string): DirectiveResult
|
|
433
|
+
|
|
434
|
+
// Drop directive
|
|
435
|
+
drop(destinationId: string): DirectiveResult
|
|
436
|
+
|
|
437
|
+
// Drop event type
|
|
438
|
+
export type SchmancyDropEvent = CustomEvent<{
|
|
439
|
+
source: string; // ID of the dragged element
|
|
440
|
+
destination: string; // ID of the drop zone
|
|
441
|
+
}>
|
|
442
|
+
|
|
443
|
+
// Example event handler signature
|
|
444
|
+
type DropHandler = (e: SchmancyDropEvent) => void
|
|
238
445
|
```
|
package/ai/typewriter.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Typewriter Component
|
|
2
2
|
|
|
3
|
-
An engaging text animation component that simulates typing effects with customizable speed, delays, and advanced sequencing capabilities.
|
|
3
|
+
An engaging text animation component that simulates typing effects with customizable speed, delays, and advanced sequencing capabilities. Features a simple API for cycling through text with automatic character deletion.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -10,18 +10,20 @@ An engaging text animation component that simulates typing effects with customiz
|
|
|
10
10
|
Hello, World! This text will be typed out character by character.
|
|
11
11
|
</schmancy-typewriter>
|
|
12
12
|
|
|
13
|
-
<!--
|
|
14
|
-
<schmancy-typewriter
|
|
15
|
-
|
|
13
|
+
<!-- Cycling through words (auto-calculates delete counts) -->
|
|
14
|
+
<schmancy-typewriter>
|
|
15
|
+
We are <span cycle="developers | designers | innovators"></span>
|
|
16
16
|
</schmancy-typewriter>
|
|
17
17
|
|
|
18
|
-
<!-- With
|
|
19
|
-
<schmancy-typewriter>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
<!-- With custom speed and cursor -->
|
|
19
|
+
<schmancy-typewriter speed="30" delay="500" cursorChar="|">
|
|
20
|
+
Fast typing with a blinking cursor.
|
|
21
|
+
</schmancy-typewriter>
|
|
22
|
+
|
|
23
|
+
<!-- Infinite loop -->
|
|
24
|
+
<schmancy-typewriter loop>
|
|
25
|
+
This will type and delete forever!
|
|
26
|
+
<span cycle="Amazing | Incredible | Fantastic"></span>
|
|
25
27
|
</schmancy-typewriter>
|
|
26
28
|
```
|
|
27
29
|
|
|
@@ -32,9 +34,11 @@ An engaging text animation component that simulates typing effects with customiz
|
|
|
32
34
|
| `speed` | `number` | `50` | Typing speed (ms per character) |
|
|
33
35
|
| `delay` | `number` | `0` | Initial delay before typing starts |
|
|
34
36
|
| `autoStart` | `boolean` | `true` | Start typing automatically |
|
|
35
|
-
| `cursorChar` | `string` | `''` | Custom cursor character |
|
|
37
|
+
| `cursorChar` | `string` | `''` | Custom cursor character (empty = no cursor) |
|
|
36
38
|
| `deleteSpeed` | `number` | `25` | Speed for deletion (ms per character) |
|
|
39
|
+
| `cyclePause` | `number` | `1500` | Default pause between cycle items (ms) |
|
|
37
40
|
| `once` | `boolean` | `true` | Only animate once per session |
|
|
41
|
+
| `loop` | `boolean` | `false` | Loop animation infinitely (overrides `once`) |
|
|
38
42
|
|
|
39
43
|
## Events
|
|
40
44
|
|
|
@@ -49,12 +53,12 @@ element.addEventListener('typeit-complete', () => {
|
|
|
49
53
|
|
|
50
54
|
## Examples
|
|
51
55
|
|
|
52
|
-
### Hero Section
|
|
56
|
+
### Hero Section with Cycling
|
|
53
57
|
```html
|
|
54
58
|
<div class="hero">
|
|
55
59
|
<h1>
|
|
56
60
|
<schmancy-typewriter speed="100" delay="300">
|
|
57
|
-
Welcome to the Future
|
|
61
|
+
Welcome to the <span cycle="Future | Innovation | Revolution"></span>
|
|
58
62
|
</schmancy-typewriter>
|
|
59
63
|
</h1>
|
|
60
64
|
<p>
|
|
@@ -65,6 +69,17 @@ element.addEventListener('typeit-complete', () => {
|
|
|
65
69
|
</div>
|
|
66
70
|
```
|
|
67
71
|
|
|
72
|
+
### Rotating Value Propositions
|
|
73
|
+
```html
|
|
74
|
+
<schmancy-typewriter speed="80" cyclePause="1200">
|
|
75
|
+
Building systems that are
|
|
76
|
+
<br />
|
|
77
|
+
<span cycle="Trustless | Permissionless | Transparent | Borderless | Resilient" pause="1500"></span>
|
|
78
|
+
<br />
|
|
79
|
+
empowering everyone to operate freely.
|
|
80
|
+
</schmancy-typewriter>
|
|
81
|
+
```
|
|
82
|
+
|
|
68
83
|
### Multi-line Typing
|
|
69
84
|
```html
|
|
70
85
|
<schmancy-typewriter speed="60">
|
|
@@ -87,21 +102,20 @@ element.addEventListener('typeit-complete', () => {
|
|
|
87
102
|
</div>
|
|
88
103
|
```
|
|
89
104
|
|
|
90
|
-
###
|
|
105
|
+
### Product Features Carousel
|
|
91
106
|
```html
|
|
92
|
-
<schmancy-typewriter>
|
|
93
|
-
|
|
94
|
-
<span action="pause" value="500"></span>
|
|
95
|
-
developers
|
|
96
|
-
<span action="delete" value="10"></span>
|
|
97
|
-
designers
|
|
98
|
-
<span action="delete" value="9"></span>
|
|
99
|
-
innovators
|
|
100
|
-
<span action="pause" value="1000"></span>
|
|
101
|
-
!
|
|
107
|
+
<schmancy-typewriter loop cursorChar="_">
|
|
108
|
+
<span cycle="Lightning Fast ⚡ | Fully Typed 📘 | Zero Config 🎯 | Production Ready 🚀"></span>
|
|
102
109
|
</schmancy-typewriter>
|
|
103
110
|
```
|
|
104
111
|
|
|
112
|
+
### Dynamic Job Titles
|
|
113
|
+
```html
|
|
114
|
+
<h2>
|
|
115
|
+
We're hiring <span cycle="Frontend Developers | Backend Engineers | UI/UX Designers | DevOps Specialists"></span>
|
|
116
|
+
</h2>
|
|
117
|
+
```
|
|
118
|
+
|
|
105
119
|
### Code Tutorial
|
|
106
120
|
```html
|
|
107
121
|
<schmancy-typewriter speed="40">
|
|
@@ -115,20 +129,72 @@ element.addEventListener('typeit-complete', () => {
|
|
|
115
129
|
</schmancy-typewriter>
|
|
116
130
|
```
|
|
117
131
|
|
|
132
|
+
## Cycling API (NEW!)
|
|
133
|
+
|
|
134
|
+
The `cycle` attribute makes it effortless to rotate through text with **automatic character deletion**. No need to manually count characters!
|
|
135
|
+
|
|
136
|
+
### Basic Usage
|
|
137
|
+
|
|
138
|
+
```html
|
|
139
|
+
<!-- Simple cycling -->
|
|
140
|
+
<span cycle="Option 1 | Option 2 | Option 3"></span>
|
|
141
|
+
|
|
142
|
+
<!-- With custom pause duration -->
|
|
143
|
+
<span cycle="Fast | Quick | Rapid" pause="800"></span>
|
|
144
|
+
|
|
145
|
+
<!-- In context -->
|
|
146
|
+
<schmancy-typewriter>
|
|
147
|
+
We are <span cycle="developers | designers | innovators"></span>
|
|
148
|
+
</schmancy-typewriter>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Cycle Attributes
|
|
152
|
+
|
|
153
|
+
| Attribute | Type | Description |
|
|
154
|
+
|-----------|------|-------------|
|
|
155
|
+
| `cycle` | `string` | Pipe-separated list of text items to cycle through |
|
|
156
|
+
| `pause` | `number` | Override default pause between items (milliseconds) |
|
|
157
|
+
|
|
158
|
+
### Benefits
|
|
159
|
+
|
|
160
|
+
- ✅ **Auto-calculated deletes** - no manual character counting
|
|
161
|
+
- ✅ **Clean syntax** - just list your items with `|` separator
|
|
162
|
+
- ✅ **Consistent timing** - uses `cyclePause` property or custom `pause`
|
|
163
|
+
- ✅ **Works with `loop`** - infinite cycling made simple
|
|
164
|
+
|
|
165
|
+
### Advanced Cycling
|
|
166
|
+
|
|
167
|
+
```html
|
|
168
|
+
<!-- Hero headline that cycles forever -->
|
|
169
|
+
<schmancy-typewriter loop cyclePause="2000">
|
|
170
|
+
<h1>Welcome to <span cycle="the Future | Innovation | Tomorrow"></span></h1>
|
|
171
|
+
</schmancy-typewriter>
|
|
172
|
+
|
|
173
|
+
<!-- Mixed static and cycling text -->
|
|
174
|
+
<schmancy-typewriter>
|
|
175
|
+
Our product is
|
|
176
|
+
<span action="pause" value="500"></span>
|
|
177
|
+
<span cycle="Fast ⚡ | Secure 🔒 | Reliable ✅ | Modern 🚀" pause="1800"></span>
|
|
178
|
+
for your business.
|
|
179
|
+
</schmancy-typewriter>
|
|
180
|
+
```
|
|
181
|
+
|
|
118
182
|
## Actions System
|
|
119
183
|
|
|
120
|
-
Special action elements
|
|
184
|
+
Special action elements for fine-grained control:
|
|
121
185
|
|
|
122
186
|
| Action | Value | Description |
|
|
123
187
|
|--------|-------|-------------|
|
|
124
188
|
| `pause` | milliseconds | Pause typing for specified duration |
|
|
125
|
-
| `delete` | character count | Delete specified number of characters |
|
|
189
|
+
| `delete` | character count | Delete specified number of characters (manual) |
|
|
126
190
|
|
|
127
191
|
```html
|
|
128
192
|
<span action="pause" value="1000"></span> <!-- 1 second pause -->
|
|
129
|
-
<span action="delete" value="5"></span> <!-- Delete 5 characters -->
|
|
193
|
+
<span action="delete" value="5"></span> <!-- Delete 5 characters manually -->
|
|
130
194
|
```
|
|
131
195
|
|
|
196
|
+
**Note:** For cycling text with automatic deletion, use the `cycle` attribute instead!
|
|
197
|
+
|
|
132
198
|
## Features
|
|
133
199
|
|
|
134
200
|
### Session Memory
|
|
@@ -210,8 +276,60 @@ const typeItOptions = {
|
|
|
210
276
|
|
|
211
277
|
## Use Cases
|
|
212
278
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
279
|
+
### Perfect for:
|
|
280
|
+
|
|
281
|
+
1. **Hero Headlines**: Rotating value propositions and key messages
|
|
282
|
+
```html
|
|
283
|
+
<span cycle="Fast | Secure | Reliable"></span>
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
2. **Product Features**: Cycling through benefits and capabilities
|
|
287
|
+
```html
|
|
288
|
+
<span cycle="Zero Config 🎯 | Type-Safe 📘 | Lightning Fast ⚡"></span>
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
3. **Job Postings**: Dynamic role descriptions
|
|
292
|
+
```html
|
|
293
|
+
We're hiring <span cycle="Developers | Designers | Engineers"></span>
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
4. **Testimonials**: Rotating customer quotes
|
|
297
|
+
```html
|
|
298
|
+
<span cycle="Amazing product! | Best tool ever! | Game changer!"></span>
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
5. **Tutorials**: Step-by-step code examples with timing
|
|
302
|
+
6. **Storytelling**: Narrative experiences with dramatic pauses
|
|
303
|
+
7. **Loading States**: Entertaining wait messages that cycle
|
|
304
|
+
8. **Terminal UIs**: Command-line interface simulations
|
|
305
|
+
|
|
306
|
+
## Migration Guide
|
|
307
|
+
|
|
308
|
+
### From Manual Deletes to Cycle API
|
|
309
|
+
|
|
310
|
+
**Before (Manual counting - error prone!):**
|
|
311
|
+
```html
|
|
312
|
+
<schmancy-typewriter>
|
|
313
|
+
We are
|
|
314
|
+
developers
|
|
315
|
+
<span action="delete" value="10"></span>
|
|
316
|
+
designers
|
|
317
|
+
<span action="delete" value="9"></span>
|
|
318
|
+
innovators
|
|
319
|
+
</schmancy-typewriter>
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
**After (Automatic - clean & simple!):**
|
|
323
|
+
```html
|
|
324
|
+
<schmancy-typewriter>
|
|
325
|
+
We are <span cycle="developers | designers | innovators"></span>
|
|
326
|
+
</schmancy-typewriter>
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Benefits of the New API
|
|
330
|
+
|
|
331
|
+
- 🚫 **No more counting characters** - automatic deletion
|
|
332
|
+
- ✨ **Cleaner markup** - one line instead of many
|
|
333
|
+
- 🛡️ **Less error-prone** - no typos in character counts
|
|
334
|
+
- 🔄 **Easy updates** - just add/remove words from the list
|
|
335
|
+
- 🎨 **Better readability** - see all options at a glance
|