@mhmo91/schmancy 0.5.37 → 0.5.39
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/boat.md +38 -106
- package/dist/ai/boat.md +38 -106
- package/dist/{animated-text-Cfs1zx2e.js → animated-text-B6BM8UAR.js} +3 -3
- package/dist/{animated-text-Cfs1zx2e.js.map → animated-text-B6BM8UAR.js.map} +1 -1
- package/dist/{animated-text-DoLx8YhT.cjs → animated-text-DMLVAWR9.cjs} +2 -2
- package/dist/{animated-text-DoLx8YhT.cjs.map → animated-text-DMLVAWR9.cjs.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/{area.component-A6Xw-dfF.js → area.component-C0i1I-XN.js} +3 -3
- package/dist/{area.component-A6Xw-dfF.js.map → area.component-C0i1I-XN.js.map} +1 -1
- package/dist/{area.component-DMRF1lD-.cjs → area.component-D630N8ae.cjs} +2 -2
- package/dist/{area.component-DMRF1lD-.cjs.map → area.component-D630N8ae.cjs.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-C5DIxpTG.js → autocomplete-B8VgSG8j.js} +4 -4
- package/dist/{autocomplete-C5DIxpTG.js.map → autocomplete-B8VgSG8j.js.map} +1 -1
- package/dist/{autocomplete-DkJqOYTg.cjs → autocomplete-Dz24IUoU.cjs} +2 -2
- package/dist/{autocomplete-DkJqOYTg.cjs.map → autocomplete-Dz24IUoU.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-BDy0wAek.js → avatar-C2xjrYfL.js} +55 -53
- package/dist/{avatar-BDy0wAek.js.map → avatar-C2xjrYfL.js.map} +1 -1
- package/dist/{avatar-BmcocEQ4.cjs → avatar-zSZZctwI.cjs} +4 -4
- package/dist/{avatar-BmcocEQ4.cjs.map → avatar-zSZZctwI.cjs.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/boat-DAV-HLhF.cjs +83 -0
- package/dist/boat-DAV-HLhF.cjs.map +1 -0
- package/dist/{boat-DumUFcmT.js → boat-DuCSpIQv.js} +83 -95
- package/dist/boat-DuCSpIQv.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-CsMLbxBY.cjs → checkbox-BxVFUa5d.cjs} +2 -2
- package/dist/{checkbox-CsMLbxBY.cjs.map → checkbox-BxVFUa5d.cjs.map} +1 -1
- package/dist/{checkbox-CHG-gT2P.js → checkbox-IXHvFU8T.js} +2 -2
- package/dist/{checkbox-CHG-gT2P.js.map → checkbox-IXHvFU8T.js.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-Bp4OemTD.js → code-preview-BckcSzge.js} +2 -2
- package/dist/{code-preview-Bp4OemTD.js.map → code-preview-BckcSzge.js.map} +1 -1
- package/dist/{code-preview-BgUU7bPR.cjs → code-preview-BtlXrJte.cjs} +2 -2
- package/dist/{code-preview-BgUU7bPR.cjs.map → code-preview-BtlXrJte.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-D_DBil9n.cjs → date-range-CEBvpz9I.cjs} +2 -2
- package/dist/{date-range-D_DBil9n.cjs.map → date-range-CEBvpz9I.cjs.map} +1 -1
- package/dist/{date-range-BcJ0YN2n.js → date-range-DJlpBhfg.js} +3 -3
- package/dist/{date-range-BcJ0YN2n.js.map → date-range-DJlpBhfg.js.map} +1 -1
- package/dist/{date-range-inline-Dqxqgu2s.js → date-range-inline-DUkLYZw-.js} +3 -3
- package/dist/{date-range-inline-Dqxqgu2s.js.map → date-range-inline-DUkLYZw-.js.map} +1 -1
- package/dist/{date-range-inline-DQjOVUxD.cjs → date-range-inline-svKzfEjk.cjs} +2 -2
- package/dist/{date-range-inline-DQjOVUxD.cjs.map → date-range-inline-svKzfEjk.cjs.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-BbtlKEc4.cjs → delay-dCJupQL7.cjs} +2 -2
- package/dist/{delay-BbtlKEc4.cjs.map → delay-dCJupQL7.cjs.map} +1 -1
- package/dist/{delay-CC_14mn4.js → delay-zFsG2bgS.js} +2 -2
- package/dist/{delay-CC_14mn4.js.map → delay-zFsG2bgS.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-CTdm7rbG.cjs → details-63cgbcG4.cjs} +2 -2
- package/dist/{details-CTdm7rbG.cjs.map → details-63cgbcG4.cjs.map} +1 -1
- package/dist/{details-dk2hnRIp.js → details-zr1wF8T5.js} +2 -2
- package/dist/{details-dk2hnRIp.js.map → details-zr1wF8T5.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-BSZ5dwnP.cjs → dialog-content-CCwZGDWl.cjs} +2 -2
- package/dist/{dialog-content-BSZ5dwnP.cjs.map → dialog-content-CCwZGDWl.cjs.map} +1 -1
- package/dist/{dialog-content-BM-lfqHq.js → dialog-content-D4hLDFG7.js} +3 -3
- package/dist/{dialog-content-BM-lfqHq.js.map → dialog-content-D4hLDFG7.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-DgJXEKxB.cjs → divider-BDpbyVks.cjs} +2 -2
- package/dist/{divider-DgJXEKxB.cjs.map → divider-BDpbyVks.cjs.map} +1 -1
- package/dist/{divider-BWVdeJm1.js → divider-DXh9y_Nv.js} +3 -3
- package/dist/{divider-BWVdeJm1.js.map → divider-DXh9y_Nv.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-ZAB82v-h.cjs → dropdown-content-DGxquZCA.cjs} +2 -2
- package/dist/{dropdown-content-ZAB82v-h.cjs.map → dropdown-content-DGxquZCA.cjs.map} +1 -1
- package/dist/{dropdown-content-BgLy9dwU.js → dropdown-content-zM3fWF1d.js} +3 -3
- package/dist/{dropdown-content-BgLy9dwU.js.map → dropdown-content-zM3fWF1d.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-IXQLqBaI.js → email-recipients-DqOHKxsV.js} +5 -5
- package/dist/{email-recipients-IXQLqBaI.js.map → email-recipients-DqOHKxsV.js.map} +1 -1
- package/dist/{email-recipients-R7jCXy_I.cjs → email-recipients-MvSCLUmk.cjs} +2 -2
- package/dist/{email-recipients-R7jCXy_I.cjs.map → email-recipients-MvSCLUmk.cjs.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-Cp1nomar.js → flex-BjpIb0Xr.js} +2 -2
- package/dist/{flex-Cp1nomar.js.map → flex-BjpIb0Xr.js.map} +1 -1
- package/dist/{flex-sAQsXdsk.cjs → flex-D1NZuZez.cjs} +2 -2
- package/dist/{flex-sAQsXdsk.cjs.map → flex-D1NZuZez.cjs.map} +1 -1
- package/dist/{form-DHTbrnEl.cjs → form-CRPFTmNd.cjs} +2 -2
- package/dist/{form-DHTbrnEl.cjs.map → form-CRPFTmNd.cjs.map} +1 -1
- package/dist/{form-Dtc128QU.js → form-UlL9mkQq.js} +2 -2
- package/dist/{form-Dtc128QU.js.map → form-UlL9mkQq.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-CCB_CKYb.js → formField.mixin-6_cx2CQR.js} +2 -2
- package/dist/{formField.mixin-CCB_CKYb.js.map → formField.mixin-6_cx2CQR.js.map} +1 -1
- package/dist/{formField.mixin-CZQ7alVs.cjs → formField.mixin-CXYETznz.cjs} +2 -2
- package/dist/{formField.mixin-CZQ7alVs.cjs.map → formField.mixin-CXYETznz.cjs.map} +1 -1
- package/dist/{icon-CocdSdlX.cjs → icon-BjvTgGum.cjs} +2 -2
- package/dist/{icon-CocdSdlX.cjs.map → icon-BjvTgGum.cjs.map} +1 -1
- package/dist/{icon-BHhOyVjB.js → icon-Ce_dFWKs.js} +2 -2
- package/dist/{icon-BHhOyVjB.js.map → icon-Ce_dFWKs.js.map} +1 -1
- package/dist/{icon-button-CjSaBrg0.js → icon-button-BLp0zzBs.js} +3 -3
- package/dist/{icon-button-CjSaBrg0.js.map → icon-button-BLp0zzBs.js.map} +1 -1
- package/dist/{icon-button-m8kXxOvS.cjs → icon-button-yr8UowN8.cjs} +2 -2
- package/dist/{icon-button-m8kXxOvS.cjs.map → icon-button-yr8UowN8.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 +49 -49
- package/dist/{input-BuDPnk5e.cjs → input-BbBgA67h.cjs} +2 -2
- package/dist/{input-BuDPnk5e.cjs.map → input-BbBgA67h.cjs.map} +1 -1
- package/dist/{input-D_gdNxxR.js → input-FbaIdP-U.js} +3 -3
- package/dist/{input-D_gdNxxR.js.map → input-FbaIdP-U.js.map} +1 -1
- package/dist/{input-chip-CDLblIp9.cjs → input-chip-B49269QA.cjs} +2 -2
- package/dist/{input-chip-CDLblIp9.cjs.map → input-chip-B49269QA.cjs.map} +1 -1
- package/dist/{input-chip-CLnR4vSR.js → input-chip-r5DIdtls.js} +2 -2
- package/dist/{input-chip-CLnR4vSR.js.map → input-chip-r5DIdtls.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-KCakyWxw.cjs → list-BLG8XA7G.cjs} +2 -2
- package/dist/{list-KCakyWxw.cjs.map → list-BLG8XA7G.cjs.map} +1 -1
- package/dist/{list-C069T9ey.js → list-QEY7H4eL.js} +2 -2
- package/dist/{list-C069T9ey.js.map → list-QEY7H4eL.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-Dp4mBSNw.js → litElement.mixin-D5MC2dPM.js} +2 -2
- package/dist/{litElement.mixin-Dp4mBSNw.js.map → litElement.mixin-D5MC2dPM.js.map} +1 -1
- package/dist/{litElement.mixin-DoBMt4ia.cjs → litElement.mixin-Dmtg7y_h.cjs} +2 -2
- package/dist/{litElement.mixin-DoBMt4ia.cjs.map → litElement.mixin-Dmtg7y_h.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-vNMrrat-.cjs → map-BygoKmAX.cjs} +2 -2
- package/dist/{map-vNMrrat-.cjs.map → map-BygoKmAX.cjs.map} +1 -1
- package/dist/{map-pn_6ziZf.js → map-DY3fXMM4.js} +2 -2
- package/dist/{map-pn_6ziZf.js.map → map-DY3fXMM4.js.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-CAtXPif3.cjs → media-BFkmF0pK.cjs} +2 -2
- package/dist/{media-CAtXPif3.cjs.map → media-BFkmF0pK.cjs.map} +1 -1
- package/dist/{media-DC3r4y8-.js → media-ChpYwvB3.js} +2 -2
- package/dist/{media-DC3r4y8-.js.map → media-ChpYwvB3.js.map} +1 -1
- package/dist/{menu-C2ZKJe1g.cjs → menu-BXHjDZge.cjs} +2 -2
- package/dist/{menu-C2ZKJe1g.cjs.map → menu-BXHjDZge.cjs.map} +1 -1
- package/dist/{menu-BAs2snSu.js → menu-gLYzAVLB.js} +3 -3
- package/dist/{menu-BAs2snSu.js.map → menu-gLYzAVLB.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/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/{navigation-rail-KdVjbO1I.js → navigation-rail-SPrrtWOS.js} +22 -20
- package/dist/{navigation-rail-KdVjbO1I.js.map → navigation-rail-SPrrtWOS.js.map} +1 -1
- package/dist/{navigation-rail-B0zofile.cjs → navigation-rail-luQXsJ36.cjs} +7 -7
- package/dist/{navigation-rail-B0zofile.cjs.map → navigation-rail-luQXsJ36.cjs.map} +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-BOCdK7B0.js → notification-service-Bzxf4TIc.js} +4 -4
- package/dist/{notification-service-BOCdK7B0.js.map → notification-service-Bzxf4TIc.js.map} +1 -1
- package/dist/{notification-service-DXsySIdG.cjs → notification-service-uoprkE19.cjs} +2 -2
- package/dist/{notification-service-DXsySIdG.cjs.map → notification-service-uoprkE19.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-Cglpgay3.js → notify-BK0mniGw.js} +2 -2
- package/dist/{notify-Cglpgay3.js.map → notify-BK0mniGw.js.map} +1 -1
- package/dist/{notify-CvDL-o79.cjs → notify-BhSCT3Xk.cjs} +2 -2
- package/dist/{notify-CvDL-o79.cjs.map → notify-BhSCT3Xk.cjs.map} +1 -1
- package/dist/{option-tDU1Z_vP.js → option-BZue6YG8.js} +2 -2
- package/dist/{option-tDU1Z_vP.js.map → option-BZue6YG8.js.map} +1 -1
- package/dist/{option-ezGy71aI.cjs → option-Kk_GQY6j.cjs} +2 -2
- package/dist/{option-ezGy71aI.cjs.map → option-Kk_GQY6j.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-B5b-LA2Y.cjs → payment-card-form-BcKkjxkm.cjs} +2 -2
- package/dist/{payment-card-form-B5b-LA2Y.cjs.map → payment-card-form-BcKkjxkm.cjs.map} +1 -1
- package/dist/{payment-card-form-CZpc-zfO.js → payment-card-form-C3JgpEIE.js} +3 -3
- package/dist/{payment-card-form-CZpc-zfO.js.map → payment-card-form-C3JgpEIE.js.map} +1 -1
- package/dist/{progress-OMGbiNv5.cjs → progress-BXnQuNBd.cjs} +2 -2
- package/dist/{progress-OMGbiNv5.cjs.map → progress-BXnQuNBd.cjs.map} +1 -1
- package/dist/{progress-Bqih11TQ.js → progress-CPGV-HHh.js} +2 -2
- package/dist/{progress-Bqih11TQ.js.map → progress-CPGV-HHh.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-BuSpPTO4.cjs → radio-button-DDgwyanN.cjs} +2 -2
- package/dist/{radio-button-BuSpPTO4.cjs.map → radio-button-DDgwyanN.cjs.map} +1 -1
- package/dist/{radio-button-mHT1573u.js → radio-button-Dsv9rYTJ.js} +3 -3
- package/dist/{radio-button-mHT1573u.js.map → radio-button-Dsv9rYTJ.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-Bht_BlLU.cjs → schmancy-steps-container-C7evWzAc.cjs} +2 -2
- package/dist/{schmancy-steps-container-Bht_BlLU.cjs.map → schmancy-steps-container-C7evWzAc.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-DDMiJJyw.js → schmancy-steps-container-Cbzqrhes.js} +2 -2
- package/dist/{schmancy-steps-container-DDMiJJyw.js.map → schmancy-steps-container-Cbzqrhes.js.map} +1 -1
- package/dist/{select-HPtumqyg.cjs → select-BuZt9KsB.cjs} +2 -2
- package/dist/{select-HPtumqyg.cjs.map → select-BuZt9KsB.cjs.map} +1 -1
- package/dist/{select-CKtpFPTr.js → select-Ru5E-2M3.js} +3 -3
- package/dist/{select-CKtpFPTr.js.map → select-Ru5E-2M3.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-B-vTiTi8.js → sheet-Cta5o1Yq.js} +3 -3
- package/dist/{sheet-B-vTiTi8.js.map → sheet-Cta5o1Yq.js.map} +1 -1
- package/dist/{sheet-DP7nFOEo.cjs → sheet-Dg6bkAGj.cjs} +2 -2
- package/dist/{sheet-DP7nFOEo.cjs.map → sheet-Dg6bkAGj.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-Bu7kQ0_w.js → slider-C7pfCYir.js} +3 -3
- package/dist/{slider-Bu7kQ0_w.js.map → slider-C7pfCYir.js.map} +1 -1
- package/dist/{slider-Diqgkt3E.cjs → slider-CDhICxOr.cjs} +2 -2
- package/dist/{slider-Diqgkt3E.cjs.map → slider-CDhICxOr.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-paAzgY93.js → spinner-6-lTUGhs.js} +2 -2
- package/dist/{spinner-paAzgY93.js.map → spinner-6-lTUGhs.js.map} +1 -1
- package/dist/{spinner-b6hiAljR.cjs → spinner-nAYWwwNr.cjs} +2 -2
- package/dist/{spinner-b6hiAljR.cjs.map → spinner-nAYWwwNr.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{suggestion-chip-DnnfUAqx.js → suggestion-chip-5_s9HR2Y.js} +3 -3
- package/dist/{suggestion-chip-DnnfUAqx.js.map → suggestion-chip-5_s9HR2Y.js.map} +1 -1
- package/dist/{suggestion-chip--FVeCUSI.cjs → suggestion-chip-CsGRZal0.cjs} +2 -2
- package/dist/{suggestion-chip--FVeCUSI.cjs.map → suggestion-chip-CsGRZal0.cjs.map} +1 -1
- package/dist/{surface-BBhAIoZq.js → surface-D5c_ddsq.js} +2 -2
- package/dist/{surface-BBhAIoZq.js.map → surface-D5c_ddsq.js.map} +1 -1
- package/dist/{surface-SICYUsoB.cjs → surface-EDSS-N2K.cjs} +2 -2
- package/dist/{surface-SICYUsoB.cjs.map → surface-EDSS-N2K.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-CepjNGT6.js → table-5TjWY5RR.js} +2 -2
- package/dist/{table-CepjNGT6.js.map → table-5TjWY5RR.js.map} +1 -1
- package/dist/{table-yYKET4qQ.cjs → table-B_GbZCU6.cjs} +2 -2
- package/dist/{table-yYKET4qQ.cjs.map → table-B_GbZCU6.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-BWaRkr9s.cjs → tabs-compatibility-byG-7uxY.cjs} +2 -2
- package/dist/{tabs-compatibility-BWaRkr9s.cjs.map → tabs-compatibility-byG-7uxY.cjs.map} +1 -1
- package/dist/{tabs-compatibility-BXdyrybs.js → tabs-compatibility-eM8y7Hkw.js} +2 -2
- package/dist/{tabs-compatibility-BXdyrybs.js.map → tabs-compatibility-eM8y7Hkw.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-BOTmjQKh.js +64 -0
- package/dist/{tailwind.mixin-Cn7vup-6.js.map → tailwind.mixin-BOTmjQKh.js.map} +1 -1
- package/dist/tailwind.mixin-SjjyWekZ.cjs +2 -0
- package/dist/{tailwind.mixin-CYhJgwwb.cjs.map → tailwind.mixin-SjjyWekZ.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-BpNEwBP9.js → textarea-Ba0EbwKj.js} +2 -2
- package/dist/{textarea-BpNEwBP9.js.map → textarea-Ba0EbwKj.js.map} +1 -1
- package/dist/{textarea-Xgbs3rjA.cjs → textarea-C5G_bBP8.cjs} +2 -2
- package/dist/{textarea-Xgbs3rjA.cjs.map → textarea-C5G_bBP8.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-77xbTIaH.js → theme-button--FRHwiCC.js} +2 -2
- package/dist/{theme-button-77xbTIaH.js.map → theme-button--FRHwiCC.js.map} +1 -1
- package/dist/{theme-button-BsjsULjH.cjs → theme-button-BiQ-jfG4.cjs} +2 -2
- package/dist/{theme-button-BsjsULjH.cjs.map → theme-button-BiQ-jfG4.cjs.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.controls-BeNS8iSM.cjs → theme.controls-BPnEjft1.cjs} +2 -2
- package/dist/{theme.controls-BeNS8iSM.cjs.map → theme.controls-BPnEjft1.cjs.map} +1 -1
- package/dist/{theme.controls-DtcpHuz9.js → theme.controls-Bua4rENX.js} +3 -3
- package/dist/{theme.controls-DtcpHuz9.js.map → theme.controls-Bua4rENX.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-D3kdUX6c.cjs → timezone-CCvqNgyF.cjs} +2 -2
- package/dist/{timezone-D3kdUX6c.cjs.map → timezone-CCvqNgyF.cjs.map} +1 -1
- package/dist/{timezone-CtH2a7Hw.js → timezone-D54Cff6x.js} +3 -3
- package/dist/{timezone-CtH2a7Hw.js.map → timezone-D54Cff6x.js.map} +1 -1
- package/dist/{tooltip-DgGZouB5.js → tooltip-C8m-rfYS.js} +2 -2
- package/dist/{tooltip-DgGZouB5.js.map → tooltip-C8m-rfYS.js.map} +1 -1
- package/dist/{tooltip-BwZ_zIEI.cjs → tooltip-CCl6ctrG.cjs} +2 -2
- package/dist/{tooltip-BwZ_zIEI.cjs.map → tooltip-CCl6ctrG.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-B9fWtaGW.cjs → tree-COuLggJS.cjs} +2 -2
- package/dist/{tree-B9fWtaGW.cjs.map → tree-COuLggJS.cjs.map} +1 -1
- package/dist/{tree-BSENnhB2.js → tree-t1IWaICA.js} +2 -2
- package/dist/{tree-BSENnhB2.js.map → tree-t1IWaICA.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-BCXtlffJ.js → typewriter-B1SrKdhR.js} +4 -4
- package/dist/{typewriter-BCXtlffJ.js.map → typewriter-B1SrKdhR.js.map} +1 -1
- package/dist/{typewriter-DeNR2E_p.cjs → typewriter-iHUlWvZZ.cjs} +2 -2
- package/dist/{typewriter-DeNR2E_p.cjs.map → typewriter-iHUlWvZZ.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-Cm7pGqRe.cjs → typography-J_EEO2HF.cjs} +2 -2
- package/dist/{typography-Cm7pGqRe.cjs.map → typography-J_EEO2HF.cjs.map} +1 -1
- package/dist/{typography-sxQLtA6a.js → typography-X_jjdG7E.js} +2 -2
- package/dist/{typography-sxQLtA6a.js.map → typography-X_jjdG7E.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/boat/boat.d.ts +3 -3
- package/types/src/navigation-bar/navigation-bar.d.ts +2 -1
- package/types/src/navigation-rail/navigation-rail.d.ts +2 -3
- package/dist/boat-CfIXRMn-.cjs +0 -78
- package/dist/boat-CfIXRMn-.cjs.map +0 -1
- package/dist/boat-DumUFcmT.js.map +0 -1
- package/dist/tailwind.mixin-CYhJgwwb.cjs +0 -2
- package/dist/tailwind.mixin-Cn7vup-6.js +0 -64
package/ai/boat.md
CHANGED
|
@@ -1,120 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# schmancy-boat
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
The boat component is a bottom sheet that slides up from the bottom of the screen. It can be in one of three states: hidden, minimized, or expanded. This component is perfect for displaying additional content or actions while keeping the main interface accessible.
|
|
3
|
+
Floating, draggable bottom sheet component with three states: `hidden`, `minimized`, `expanded`.
|
|
5
4
|
|
|
6
|
-
##
|
|
5
|
+
## API
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|------|-------------|
|
|
24
|
-
| `header` | Content to display in the header area (visible in both minimized and expanded states) |
|
|
25
|
-
| Default | Main content displayed when the boat is expanded |
|
|
7
|
+
```typescript
|
|
8
|
+
state: 'hidden' | 'minimized' | 'expanded' // Current state
|
|
9
|
+
id: string // Unique ID for position persistence
|
|
10
|
+
icon?: string // Material icon name
|
|
11
|
+
label?: string // Header text
|
|
12
|
+
badge?: string | number // Notification badge
|
|
13
|
+
lowered?: boolean // Reduced shadow elevation
|
|
14
|
+
|
|
15
|
+
// Methods
|
|
16
|
+
toggleState() // Toggle minimized ↔ expanded
|
|
17
|
+
close() // Hide and add to navigation
|
|
18
|
+
|
|
19
|
+
// Events
|
|
20
|
+
@toggle // CustomEvent<'hidden' | 'minimized' | 'expanded'>
|
|
21
|
+
```
|
|
26
22
|
|
|
27
23
|
## Usage
|
|
28
24
|
|
|
29
|
-
### Basic Example
|
|
30
25
|
```html
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
</div>
|
|
26
|
+
<!-- Basic -->
|
|
27
|
+
<schmancy-boat
|
|
28
|
+
id="chat"
|
|
29
|
+
icon="chat"
|
|
30
|
+
label="Support"
|
|
31
|
+
badge="3"
|
|
32
|
+
state="minimized"
|
|
33
|
+
@toggle=${e => this.state = e.detail}
|
|
34
|
+
>
|
|
35
|
+
<div class="p-6">Content here</div>
|
|
41
36
|
</schmancy-boat>
|
|
42
37
|
```
|
|
43
38
|
|
|
44
|
-
|
|
45
|
-
```html
|
|
46
|
-
<schmancy-boat state="minimized" @toggle="${(e) => console.log(e.detail)}">
|
|
47
|
-
<div slot="header" class="flex gap-2 justify-center">
|
|
48
|
-
<schmancy-icon>info</schmancy-icon>
|
|
49
|
-
<schmancy-typography variant="title">Settings</schmancy-typography>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
<div class="flex flex-col gap-4 p-4">
|
|
53
|
-
<!-- Settings content -->
|
|
54
|
-
</div>
|
|
55
|
-
</schmancy-boat>
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Controlling State
|
|
59
|
-
```typescript
|
|
60
|
-
// Get reference to boat
|
|
61
|
-
const boat = document.querySelector('schmancy-boat');
|
|
39
|
+
## Critical Rules
|
|
62
40
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
// Hide
|
|
70
|
-
boat.state = 'hidden';
|
|
71
|
-
|
|
72
|
-
// Listen for state changes
|
|
73
|
-
boat.addEventListener('toggle', (e) => {
|
|
74
|
-
console.log('New state:', e.detail);
|
|
75
|
-
});
|
|
76
|
-
```
|
|
41
|
+
- ✅ **ALWAYS** provide unique `id` (position persists to localStorage)
|
|
42
|
+
- ✅ **ALWAYS** use `icon`, `label`, `badge` properties (NOT `slot="header"`)
|
|
43
|
+
- ✅ **REQUIRES** content in default slot
|
|
44
|
+
- ❌ **NEVER** self-closing
|
|
45
|
+
- ❌ **NEVER** use deprecated `slot="header"`
|
|
77
46
|
|
|
78
47
|
## Features
|
|
79
48
|
|
|
80
|
-
- **
|
|
81
|
-
- **
|
|
82
|
-
- **
|
|
83
|
-
|
|
84
|
-
- Tablet: 70% width
|
|
85
|
-
- Desktop: 60% width
|
|
86
|
-
- Large screens: 40% width
|
|
87
|
-
- **Fixed Positioning**: Always appears at the bottom-right of the viewport
|
|
88
|
-
- **Overflow Handling**: Content scrolls when it exceeds 80vh max height
|
|
89
|
-
- **Sticky Header**: Header remains visible when scrolling through content
|
|
90
|
-
|
|
91
|
-
## CSS Classes
|
|
92
|
-
|
|
93
|
-
The component uses internal CSS classes for styling:
|
|
94
|
-
- `.translate-y-full`: Positions the boat completely off-screen (hidden state)
|
|
95
|
-
- `.translate-y-full-minus-64`: Shows only the header (minimized state)
|
|
96
|
-
- `.translate-y-0`: Shows the entire boat (expanded state)
|
|
97
|
-
|
|
98
|
-
## Use Cases
|
|
99
|
-
|
|
100
|
-
- **Chat Interfaces**: Keep a chat window accessible while browsing
|
|
101
|
-
- **Media Players**: Minimize music/video controls while using other features
|
|
102
|
-
- **Quick Settings**: Provide easy access to frequently used settings
|
|
103
|
-
- **Notifications**: Show important information that users can minimize
|
|
104
|
-
- **Form Wizards**: Multi-step forms that can be minimized during the process
|
|
105
|
-
- **Help/Support**: Keep help documentation accessible while working
|
|
106
|
-
|
|
107
|
-
## Accessibility
|
|
108
|
-
|
|
109
|
-
- The component uses semantic HTML structure
|
|
110
|
-
- State changes are announced via events
|
|
111
|
-
- Keyboard navigation is supported through the button controls
|
|
112
|
-
- Focus management is handled automatically
|
|
113
|
-
|
|
114
|
-
## Best Practices
|
|
115
|
-
|
|
116
|
-
1. **Header Content**: Keep header content concise and descriptive
|
|
117
|
-
2. **State Management**: Store the boat state in your application state if persistence is needed
|
|
118
|
-
3. **Content Height**: Design content to work well within the max-height constraint
|
|
119
|
-
4. **Mobile Considerations**: Test thoroughly on mobile devices where the boat takes full width
|
|
120
|
-
5. **Z-Index**: The component uses `z-[100]` - ensure this works with your app's z-index hierarchy
|
|
49
|
+
- **Draggable**: Drag header to reposition, position saved to localStorage
|
|
50
|
+
- **Responsive**: Auto-adjusts width (mobile: full, desktop: 40vw)
|
|
51
|
+
- **Keyboard**: `Escape` to minimize/hide
|
|
52
|
+
- **Navigation**: Close button adds to nav rail/bar if available
|
package/dist/ai/boat.md
CHANGED
|
@@ -1,120 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# schmancy-boat
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
The boat component is a bottom sheet that slides up from the bottom of the screen. It can be in one of three states: hidden, minimized, or expanded. This component is perfect for displaying additional content or actions while keeping the main interface accessible.
|
|
3
|
+
Floating, draggable bottom sheet component with three states: `hidden`, `minimized`, `expanded`.
|
|
5
4
|
|
|
6
|
-
##
|
|
5
|
+
## API
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|------|-------------|
|
|
24
|
-
| `header` | Content to display in the header area (visible in both minimized and expanded states) |
|
|
25
|
-
| Default | Main content displayed when the boat is expanded |
|
|
7
|
+
```typescript
|
|
8
|
+
state: 'hidden' | 'minimized' | 'expanded' // Current state
|
|
9
|
+
id: string // Unique ID for position persistence
|
|
10
|
+
icon?: string // Material icon name
|
|
11
|
+
label?: string // Header text
|
|
12
|
+
badge?: string | number // Notification badge
|
|
13
|
+
lowered?: boolean // Reduced shadow elevation
|
|
14
|
+
|
|
15
|
+
// Methods
|
|
16
|
+
toggleState() // Toggle minimized ↔ expanded
|
|
17
|
+
close() // Hide and add to navigation
|
|
18
|
+
|
|
19
|
+
// Events
|
|
20
|
+
@toggle // CustomEvent<'hidden' | 'minimized' | 'expanded'>
|
|
21
|
+
```
|
|
26
22
|
|
|
27
23
|
## Usage
|
|
28
24
|
|
|
29
|
-
### Basic Example
|
|
30
25
|
```html
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
</div>
|
|
26
|
+
<!-- Basic -->
|
|
27
|
+
<schmancy-boat
|
|
28
|
+
id="chat"
|
|
29
|
+
icon="chat"
|
|
30
|
+
label="Support"
|
|
31
|
+
badge="3"
|
|
32
|
+
state="minimized"
|
|
33
|
+
@toggle=${e => this.state = e.detail}
|
|
34
|
+
>
|
|
35
|
+
<div class="p-6">Content here</div>
|
|
41
36
|
</schmancy-boat>
|
|
42
37
|
```
|
|
43
38
|
|
|
44
|
-
|
|
45
|
-
```html
|
|
46
|
-
<schmancy-boat state="minimized" @toggle="${(e) => console.log(e.detail)}">
|
|
47
|
-
<div slot="header" class="flex gap-2 justify-center">
|
|
48
|
-
<schmancy-icon>info</schmancy-icon>
|
|
49
|
-
<schmancy-typography variant="title">Settings</schmancy-typography>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
<div class="flex flex-col gap-4 p-4">
|
|
53
|
-
<!-- Settings content -->
|
|
54
|
-
</div>
|
|
55
|
-
</schmancy-boat>
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Controlling State
|
|
59
|
-
```typescript
|
|
60
|
-
// Get reference to boat
|
|
61
|
-
const boat = document.querySelector('schmancy-boat');
|
|
39
|
+
## Critical Rules
|
|
62
40
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
// Hide
|
|
70
|
-
boat.state = 'hidden';
|
|
71
|
-
|
|
72
|
-
// Listen for state changes
|
|
73
|
-
boat.addEventListener('toggle', (e) => {
|
|
74
|
-
console.log('New state:', e.detail);
|
|
75
|
-
});
|
|
76
|
-
```
|
|
41
|
+
- ✅ **ALWAYS** provide unique `id` (position persists to localStorage)
|
|
42
|
+
- ✅ **ALWAYS** use `icon`, `label`, `badge` properties (NOT `slot="header"`)
|
|
43
|
+
- ✅ **REQUIRES** content in default slot
|
|
44
|
+
- ❌ **NEVER** self-closing
|
|
45
|
+
- ❌ **NEVER** use deprecated `slot="header"`
|
|
77
46
|
|
|
78
47
|
## Features
|
|
79
48
|
|
|
80
|
-
- **
|
|
81
|
-
- **
|
|
82
|
-
- **
|
|
83
|
-
|
|
84
|
-
- Tablet: 70% width
|
|
85
|
-
- Desktop: 60% width
|
|
86
|
-
- Large screens: 40% width
|
|
87
|
-
- **Fixed Positioning**: Always appears at the bottom-right of the viewport
|
|
88
|
-
- **Overflow Handling**: Content scrolls when it exceeds 80vh max height
|
|
89
|
-
- **Sticky Header**: Header remains visible when scrolling through content
|
|
90
|
-
|
|
91
|
-
## CSS Classes
|
|
92
|
-
|
|
93
|
-
The component uses internal CSS classes for styling:
|
|
94
|
-
- `.translate-y-full`: Positions the boat completely off-screen (hidden state)
|
|
95
|
-
- `.translate-y-full-minus-64`: Shows only the header (minimized state)
|
|
96
|
-
- `.translate-y-0`: Shows the entire boat (expanded state)
|
|
97
|
-
|
|
98
|
-
## Use Cases
|
|
99
|
-
|
|
100
|
-
- **Chat Interfaces**: Keep a chat window accessible while browsing
|
|
101
|
-
- **Media Players**: Minimize music/video controls while using other features
|
|
102
|
-
- **Quick Settings**: Provide easy access to frequently used settings
|
|
103
|
-
- **Notifications**: Show important information that users can minimize
|
|
104
|
-
- **Form Wizards**: Multi-step forms that can be minimized during the process
|
|
105
|
-
- **Help/Support**: Keep help documentation accessible while working
|
|
106
|
-
|
|
107
|
-
## Accessibility
|
|
108
|
-
|
|
109
|
-
- The component uses semantic HTML structure
|
|
110
|
-
- State changes are announced via events
|
|
111
|
-
- Keyboard navigation is supported through the button controls
|
|
112
|
-
- Focus management is handled automatically
|
|
113
|
-
|
|
114
|
-
## Best Practices
|
|
115
|
-
|
|
116
|
-
1. **Header Content**: Keep header content concise and descriptive
|
|
117
|
-
2. **State Management**: Store the boat state in your application state if persistence is needed
|
|
118
|
-
3. **Content Height**: Design content to work well within the max-height constraint
|
|
119
|
-
4. **Mobile Considerations**: Test thoroughly on mobile devices where the boat takes full width
|
|
120
|
-
5. **Z-Index**: The component uses `z-[100]` - ensure this works with your app's z-index hierarchy
|
|
49
|
+
- **Draggable**: Drag header to reposition, position saved to localStorage
|
|
50
|
+
- **Responsive**: Auto-adjusts width (mobile: full, desktop: 40vw)
|
|
51
|
+
- **Keyboard**: `Escape` to minimize/hide
|
|
52
|
+
- **Navigation**: Close button adds to nav rail/bar if available
|
|
@@ -3,8 +3,8 @@ import "rxjs/operators";
|
|
|
3
3
|
import "lit/directives/class-map.js";
|
|
4
4
|
import "lit/directives/style-map.js";
|
|
5
5
|
import { property as a, queryAssignedNodes as x, query as m, customElement as S } from "lit/decorators.js";
|
|
6
|
-
import "./tailwind.mixin-
|
|
7
|
-
import { $ as Z } from "./litElement.mixin-
|
|
6
|
+
import "./tailwind.mixin-BOTmjQKh.js";
|
|
7
|
+
import { $ as Z } from "./litElement.mixin-D5MC2dPM.js";
|
|
8
8
|
import { css as v, html as A } from "lit";
|
|
9
9
|
var E = Object.defineProperty, O = Object.getOwnPropertyDescriptor, e = (r, s, n, i) => {
|
|
10
10
|
for (var l, o = i > 1 ? void 0 : i ? O(s, n) : s, p = r.length - 1; p >= 0; p--) (l = r[p]) && (o = (i ? l(s, n, o) : l(o)) || o);
|
|
@@ -73,4 +73,4 @@ let t = class extends Z(v`
|
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
75
|
e([a({ type: String })], t.prototype, "ease", 2), e([a({ type: Number })], t.prototype, "delay", 2), e([a({ type: Number })], t.prototype, "stagger", 2), e([a({ type: Number })], t.prototype, "duration", 2), e([a({ type: Array })], t.prototype, "scale", 2), e([a({ type: Array })], t.prototype, "opacity", 2), e([a({ type: Array })], t.prototype, "translateX", 2), e([a({ type: Array })], t.prototype, "translateY", 2), e([a({ type: Array })], t.prototype, "translateZ", 2), e([a({ type: Array })], t.prototype, "rotateZ", 2), e([a({ type: Boolean })], t.prototype, "resetOnScroll", 2), e([x()], t.prototype, "defaultSlot", 2), e([m(".letters")], t.prototype, "letters", 2), e([m(".ml7")], t.prototype, "ml7", 2), t = e([S("schmancy-animated-text")], t);
|
|
76
|
-
//# sourceMappingURL=animated-text-
|
|
76
|
+
//# sourceMappingURL=animated-text-B6BM8UAR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-text-Cfs1zx2e.js","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"animated-text-B6BM8UAR.js","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const e=require("rxjs");require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-
|
|
1
|
+
"use strict";const e=require("rxjs");require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-SjjyWekZ.cjs");const h=require("./litElement.mixin-Dmtg7y_h.cjs"),c=require("lit");var d=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=(i,a,p,n)=>{for(var l,o=n>1?void 0:n?u(a,p):a,y=i.length-1;y>=0;y--)(l=i[y])&&(o=(n?l(a,p,o):l(o))||o);return n&&o&&d(a,p,o),o};let t=class extends h.$LitElement(c.css`
|
|
2
2
|
:host {
|
|
3
3
|
font-family: inherit;
|
|
4
4
|
display: block;
|
|
@@ -34,4 +34,4 @@
|
|
|
34
34
|
</span>
|
|
35
35
|
</span>
|
|
36
36
|
`}};s([r.property({type:String})],t.prototype,"ease",2),s([r.property({type:Number})],t.prototype,"delay",2),s([r.property({type:Number})],t.prototype,"stagger",2),s([r.property({type:Number})],t.prototype,"duration",2),s([r.property({type:Array})],t.prototype,"scale",2),s([r.property({type:Array})],t.prototype,"opacity",2),s([r.property({type:Array})],t.prototype,"translateX",2),s([r.property({type:Array})],t.prototype,"translateY",2),s([r.property({type:Array})],t.prototype,"translateZ",2),s([r.property({type:Array})],t.prototype,"rotateZ",2),s([r.property({type:Boolean})],t.prototype,"resetOnScroll",2),s([r.queryAssignedNodes()],t.prototype,"defaultSlot",2),s([r.query(".letters")],t.prototype,"letters",2),s([r.query(".ml7")],t.prototype,"ml7",2),t=s([r.customElement("schmancy-animated-text")],t);
|
|
37
|
-
//# sourceMappingURL=animated-text-
|
|
37
|
+
//# sourceMappingURL=animated-text-DMLVAWR9.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-text-DoLx8YhT.cjs","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"animated-text-DMLVAWR9.cjs","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
|
package/dist/animated-text.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("./animated-text-
|
|
1
|
+
"use strict";require("./animated-text-DMLVAWR9.cjs");
|
|
2
2
|
//# sourceMappingURL=animated-text.cjs.map
|
package/dist/animated-text.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./animated-text-
|
|
1
|
+
import "./animated-text-B6BM8UAR.js";
|
|
2
2
|
//# sourceMappingURL=animated-text.js.map
|
package/dist/area.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./area.component-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./area.component-D630N8ae.cjs"),e=require("./utils-C38P63L6.cjs");exports.FINDING_MORTIES=t.FINDING_MORTIES,exports.HERE_RICKY=t.HERE_RICKY,exports.HISTORY_STRATEGY=t.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>t.SchmancyArea}),Object.defineProperty(exports,"SchmancyRoute",{enumerable:!0,get:()=>t.SchmancyRoute}),exports.area=t.area,exports.routerHistory=t.routerHistory,exports.buildQueryString=e.buildQueryString,exports.compareActiveRoutes=e.compareActiveRoutes,exports.compareCustomElementConstructors=e.compareCustomElementConstructors,exports.compareRouteActions=e.compareRouteActions,exports.createRouteCacheKey=e.createRouteCacheKey,exports.debounce=e.debounce,exports.decodeData=e.decodeData,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeData=e.encodeData,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.lazy=e.lazy,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
|
|
2
2
|
//# sourceMappingURL=area.cjs.map
|
|
@@ -3,8 +3,8 @@ import "rxjs/operators";
|
|
|
3
3
|
import "lit/directives/class-map.js";
|
|
4
4
|
import "lit/directives/style-map.js";
|
|
5
5
|
import { property as S, customElement as M, queryAssignedElements as W } from "lit/decorators.js";
|
|
6
|
-
import "./tailwind.mixin-
|
|
7
|
-
import { $ as P } from "./litElement.mixin-
|
|
6
|
+
import "./tailwind.mixin-BOTmjQKh.js";
|
|
7
|
+
import { $ as P } from "./litElement.mixin-D5MC2dPM.js";
|
|
8
8
|
import { css as H, html as B } from "lit";
|
|
9
9
|
const q = new I(), G = "FINDING_MORTIES", K = "HERE_RICKY", N = /* @__PURE__ */ new WeakMap();
|
|
10
10
|
class O {
|
|
@@ -313,4 +313,4 @@ export {
|
|
|
313
313
|
m as c,
|
|
314
314
|
q as r
|
|
315
315
|
};
|
|
316
|
-
//# sourceMappingURL=area.component-
|
|
316
|
+
//# sourceMappingURL=area.component-C0i1I-XN.js.map
|