@mhmo91/schmancy 0.5.20 → 0.5.22
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/navigation-rail.md +475 -0
- package/dist/ai/navigation-rail.md +475 -0
- package/dist/{animated-text-D1D0dI8T.cjs → animated-text-Bic7z7SI.cjs} +2 -2
- package/dist/{animated-text-D1D0dI8T.cjs.map → animated-text-Bic7z7SI.cjs.map} +1 -1
- package/dist/{animated-text-DS9AsLAy.js → animated-text-CLEr78FV.js} +3 -3
- package/dist/{animated-text-DS9AsLAy.js.map → animated-text-CLEr78FV.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-DZFtLBMV.cjs → area.component-BrvNYy7Z.cjs} +2 -2
- package/dist/{area.component-DZFtLBMV.cjs.map → area.component-BrvNYy7Z.cjs.map} +1 -1
- package/dist/{area.component-5hv6c-dZ.js → area.component-tIK_P5JR.js} +3 -3
- package/dist/{area.component-5hv6c-dZ.js.map → area.component-tIK_P5JR.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-DpGmI06M.cjs → autocomplete-CG2YtfwU.cjs} +2 -2
- package/dist/autocomplete-CG2YtfwU.cjs.map +1 -0
- package/dist/{autocomplete-Bm_tnRns.js → autocomplete-DzZQusAY.js} +10 -10
- package/dist/autocomplete-DzZQusAY.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-DVkOL5_x.js → avatar-39MTGkwX.js} +50 -50
- package/dist/{avatar-DVkOL5_x.js.map → avatar-39MTGkwX.js.map} +1 -1
- package/dist/{avatar-B0Q9R0jH.cjs → avatar-QYDHa7s3.cjs} +2 -2
- package/dist/{avatar-B0Q9R0jH.cjs.map → avatar-QYDHa7s3.cjs.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-DDBc--4N.js → boat-BdJ1jyK_.js} +2 -2
- package/dist/{boat-DDBc--4N.js.map → boat-BdJ1jyK_.js.map} +1 -1
- package/dist/{boat-DpuxxF9v.cjs → boat-DP98_5qG.cjs} +2 -2
- package/dist/{boat-DpuxxF9v.cjs.map → boat-DP98_5qG.cjs.map} +1 -1
- 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-ByAbf0mX.js → checkbox-4mBWkzKG.js} +2 -2
- package/dist/{checkbox-ByAbf0mX.js.map → checkbox-4mBWkzKG.js.map} +1 -1
- package/dist/{checkbox-DA355aVd.cjs → checkbox-CIMDI5hW.cjs} +2 -2
- package/dist/{checkbox-DA355aVd.cjs.map → checkbox-CIMDI5hW.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-BEDuv4oc.js → code-preview-CrsExDWj.js} +7 -8
- package/dist/{code-preview-BEDuv4oc.js.map → code-preview-CrsExDWj.js.map} +1 -1
- package/dist/{code-preview-DXvds6Ik.cjs → code-preview-hWI3erYE.cjs} +6 -7
- package/dist/{code-preview-DXvds6Ik.cjs.map → code-preview-hWI3erYE.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-CO96uRfu.cjs → date-range-B0yz-_Zv.cjs} +2 -2
- package/dist/{date-range-CO96uRfu.cjs.map → date-range-B0yz-_Zv.cjs.map} +1 -1
- package/dist/{date-range-CWwzapvu.js → date-range-CM-5J_JO.js} +3 -3
- package/dist/{date-range-CWwzapvu.js.map → date-range-CM-5J_JO.js.map} +1 -1
- package/dist/{date-range-inline-DcRJrT7z.js → date-range-inline-CPI4EyL0.js} +3 -3
- package/dist/{date-range-inline-DcRJrT7z.js.map → date-range-inline-CPI4EyL0.js.map} +1 -1
- package/dist/{date-range-inline-Br8Pkm6Z.cjs → date-range-inline-P8P2ixg1.cjs} +2 -2
- package/dist/{date-range-inline-Br8Pkm6Z.cjs.map → date-range-inline-P8P2ixg1.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-BU66nJyr.cjs → delay-1aTGz1ZH.cjs} +2 -2
- package/dist/{delay-BU66nJyr.cjs.map → delay-1aTGz1ZH.cjs.map} +1 -1
- package/dist/{delay-4p58-oPM.js → delay-Lg_7K_Vi.js} +2 -2
- package/dist/{delay-4p58-oPM.js.map → delay-Lg_7K_Vi.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-COgnQWz1.js → details-gUvX6sxc.js} +2 -2
- package/dist/{details-COgnQWz1.js.map → details-gUvX6sxc.js.map} +1 -1
- package/dist/{details-CoqpAwjh.cjs → details-uxsPpjMp.cjs} +2 -2
- package/dist/{details-CoqpAwjh.cjs.map → details-uxsPpjMp.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-CJUcyFT1.cjs → dialog-content-CvVd9EwS.cjs} +2 -2
- package/dist/{dialog-content-CJUcyFT1.cjs.map → dialog-content-CvVd9EwS.cjs.map} +1 -1
- package/dist/{dialog-content-naA5eL6T.js → dialog-content-DKLDmgfz.js} +3 -3
- package/dist/{dialog-content-naA5eL6T.js.map → dialog-content-DKLDmgfz.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-a2f7N3mc.cjs → divider-CHGffGro.cjs} +2 -2
- package/dist/{divider-a2f7N3mc.cjs.map → divider-CHGffGro.cjs.map} +1 -1
- package/dist/{divider-DsNchzPn.js → divider-EvBnlb2a.js} +3 -3
- package/dist/{divider-DsNchzPn.js.map → divider-EvBnlb2a.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-YiOmwoxH.cjs → dropdown-content-FVKimBQR.cjs} +2 -2
- package/dist/{dropdown-content-YiOmwoxH.cjs.map → dropdown-content-FVKimBQR.cjs.map} +1 -1
- package/dist/{dropdown-content-CARJm72a.js → dropdown-content-NGBIkvdR.js} +3 -3
- package/dist/{dropdown-content-CARJm72a.js.map → dropdown-content-NGBIkvdR.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-CM41HA4G.js → email-recipients-CXFSIsL-.js} +5 -5
- package/dist/{email-recipients-CM41HA4G.js.map → email-recipients-CXFSIsL-.js.map} +1 -1
- package/dist/{email-recipients-Dha5jYMG.cjs → email-recipients-DxqCC99q.cjs} +2 -2
- package/dist/{email-recipients-Dha5jYMG.cjs.map → email-recipients-DxqCC99q.cjs.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-D-oS3wlY.js → flex-Cm4nZM9q.js} +2 -2
- package/dist/{flex-D-oS3wlY.js.map → flex-Cm4nZM9q.js.map} +1 -1
- package/dist/{flex-zqTHF06u.cjs → flex-DisTVvBI.cjs} +2 -2
- package/dist/{flex-zqTHF06u.cjs.map → flex-DisTVvBI.cjs.map} +1 -1
- package/dist/{form-DPAzy8Dn.js → form-BU9TBjfk.js} +2 -2
- package/dist/{form-DPAzy8Dn.js.map → form-BU9TBjfk.js.map} +1 -1
- package/dist/{form-BSlt0E8v.cjs → form-SMbhjYsC.cjs} +2 -2
- package/dist/{form-BSlt0E8v.cjs.map → form-SMbhjYsC.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-R7Ddvq3q.cjs → formField.mixin-DYkeOpES.cjs} +2 -2
- package/dist/{formField.mixin-R7Ddvq3q.cjs.map → formField.mixin-DYkeOpES.cjs.map} +1 -1
- package/dist/{formField.mixin-CVkUNhSX.js → formField.mixin-DxhnL3Kb.js} +2 -2
- package/dist/{formField.mixin-CVkUNhSX.js.map → formField.mixin-DxhnL3Kb.js.map} +1 -1
- package/dist/{icon-Cm5BKSV4.cjs → icon-BT_1B5_G.cjs} +2 -2
- package/dist/{icon-Cm5BKSV4.cjs.map → icon-BT_1B5_G.cjs.map} +1 -1
- package/dist/{icon-ave1X5b9.js → icon-Cgd3NUcv.js} +2 -2
- package/dist/{icon-ave1X5b9.js.map → icon-Cgd3NUcv.js.map} +1 -1
- package/dist/{icon-button-BdB5el84.cjs → icon-button-C5hq1cKD.cjs} +2 -2
- package/dist/{icon-button-BdB5el84.cjs.map → icon-button-C5hq1cKD.cjs.map} +1 -1
- package/dist/{icon-button-DiNXfJ8u.js → icon-button-DsjqusZz.js} +3 -3
- package/dist/{icon-button-DiNXfJ8u.js.map → icon-button-DsjqusZz.js.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-DPiDmsjt.js → input-Bj4MTOC9.js} +3 -3
- package/dist/{input-DPiDmsjt.js.map → input-Bj4MTOC9.js.map} +1 -1
- package/dist/{input-B6zwyDBC.cjs → input-D3qmQZ-Y.cjs} +2 -2
- package/dist/{input-B6zwyDBC.cjs.map → input-D3qmQZ-Y.cjs.map} +1 -1
- package/dist/{input-chip-CkWSf6nV.cjs → input-chip-CbD-eDs-.cjs} +2 -2
- package/dist/{input-chip-CkWSf6nV.cjs.map → input-chip-CbD-eDs-.cjs.map} +1 -1
- package/dist/{input-chip-C06GAnnC.js → input-chip-DiThsRoi.js} +2 -2
- package/dist/{input-chip-C06GAnnC.js.map → input-chip-DiThsRoi.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-BCDPk6mM.cjs → list-5Y_CGGJF.cjs} +2 -2
- package/dist/{list-BCDPk6mM.cjs.map → list-5Y_CGGJF.cjs.map} +1 -1
- package/dist/{list-vICZQxqV.js → list-CAFpmXsb.js} +2 -2
- package/dist/{list-vICZQxqV.js.map → list-CAFpmXsb.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-jTGHsEfH.js → litElement.mixin-Bv6DGuhe.js} +2 -2
- package/dist/{litElement.mixin-jTGHsEfH.js.map → litElement.mixin-Bv6DGuhe.js.map} +1 -1
- package/dist/{litElement.mixin-DLJYzvsb.cjs → litElement.mixin-rWG9s46P.cjs} +2 -2
- package/dist/{litElement.mixin-DLJYzvsb.cjs.map → litElement.mixin-rWG9s46P.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-D6QG9Yzr.cjs → map-bTOQf8Jm.cjs} +2 -2
- package/dist/{map-D6QG9Yzr.cjs.map → map-bTOQf8Jm.cjs.map} +1 -1
- package/dist/{map-DZt51SfS.js → map-yv8FB9mG.js} +2 -2
- package/dist/{map-DZt51SfS.js.map → map-yv8FB9mG.js.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-BUx20F5U.js → media-CA52MXd3.js} +2 -2
- package/dist/{media-BUx20F5U.js.map → media-CA52MXd3.js.map} +1 -1
- package/dist/{media-CdPEYBLJ.cjs → media-CPIoKlRw.cjs} +2 -2
- package/dist/{media-CdPEYBLJ.cjs.map → media-CPIoKlRw.cjs.map} +1 -1
- package/dist/{menu-CvWQC1In.js → menu-BKO9PgJq.js} +3 -3
- package/dist/{menu-CvWQC1In.js.map → menu-BKO9PgJq.js.map} +1 -1
- package/dist/{menu-2UwBHzr9.cjs → menu-Cak8SbFx.cjs} +2 -2
- package/dist/{menu-2UwBHzr9.cjs.map → menu-Cak8SbFx.cjs.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-C8OOb0V3.js +564 -0
- package/dist/navigation-rail-C8OOb0V3.js.map +1 -0
- package/dist/navigation-rail-D1iYDMy2.cjs +415 -0
- package/dist/navigation-rail-D1iYDMy2.cjs.map +1 -0
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-BqvWCDoP.cjs → notification-service-DaXxcXyj.cjs} +2 -2
- package/dist/{notification-service-BqvWCDoP.cjs.map → notification-service-DaXxcXyj.cjs.map} +1 -1
- package/dist/{notification-service-eOCFErH1.js → notification-service-jfBwJ2TN.js} +4 -4
- package/dist/{notification-service-eOCFErH1.js.map → notification-service-jfBwJ2TN.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-COSA8XRV.js → notify-C5gy3egX.js} +2 -2
- package/dist/{notify-COSA8XRV.js.map → notify-C5gy3egX.js.map} +1 -1
- package/dist/{notify-BaedZ1y9.cjs → notify-Dd5h2l-v.cjs} +2 -2
- package/dist/{notify-BaedZ1y9.cjs.map → notify-Dd5h2l-v.cjs.map} +1 -1
- package/dist/{option-CeXe-DCz.cjs → option-C6PwIhut.cjs} +2 -2
- package/dist/{option-CeXe-DCz.cjs.map → option-C6PwIhut.cjs.map} +1 -1
- package/dist/{option-CplQ_59U.js → option-D7b-uGff.js} +2 -2
- package/dist/{option-CplQ_59U.js.map → option-D7b-uGff.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-wns1GAaC.cjs → payment-card-form-DTfoZiiN.cjs} +2 -2
- package/dist/{payment-card-form-wns1GAaC.cjs.map → payment-card-form-DTfoZiiN.cjs.map} +1 -1
- package/dist/{payment-card-form-hVPgM3HO.js → payment-card-form-xwk5dfeQ.js} +3 -3
- package/dist/{payment-card-form-hVPgM3HO.js.map → payment-card-form-xwk5dfeQ.js.map} +1 -1
- package/dist/{progress-X8hxleUC.js → progress-D-5gThOU.js} +2 -2
- package/dist/{progress-X8hxleUC.js.map → progress-D-5gThOU.js.map} +1 -1
- package/dist/{progress-CM5lHuCR.cjs → progress-sFt6EeRy.cjs} +2 -2
- package/dist/{progress-CM5lHuCR.cjs.map → progress-sFt6EeRy.cjs.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button--uXczpjB.js → radio-button-CZq8Z-V-.js} +3 -3
- package/dist/{radio-button--uXczpjB.js.map → radio-button-CZq8Z-V-.js.map} +1 -1
- package/dist/{radio-button-D76Qubig.cjs → radio-button-Cc5fCDdU.cjs} +2 -2
- package/dist/{radio-button-D76Qubig.cjs.map → radio-button-Cc5fCDdU.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-Dc_hXgrm.cjs → schmancy-steps-container-Cb-cUZWP.cjs} +2 -2
- package/dist/{schmancy-steps-container-Dc_hXgrm.cjs.map → schmancy-steps-container-Cb-cUZWP.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-Csh_Ocoa.js → schmancy-steps-container-DkPckhRw.js} +2 -2
- package/dist/{schmancy-steps-container-Csh_Ocoa.js.map → schmancy-steps-container-DkPckhRw.js.map} +1 -1
- package/dist/{select-DvjgcI2e.cjs → select-BszKwEA_.cjs} +4 -4
- package/dist/select-BszKwEA_.cjs.map +1 -0
- package/dist/{select-BrdNXtJK.js → select-CHgsFxnz.js} +14 -14
- package/dist/select-CHgsFxnz.js.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-D6hxqRpX.js → sheet-BscruHZw.js} +3 -3
- package/dist/{sheet-D6hxqRpX.js.map → sheet-BscruHZw.js.map} +1 -1
- package/dist/{sheet-DrGvhM5D.cjs → sheet-ZHVITumf.cjs} +2 -2
- package/dist/{sheet-DrGvhM5D.cjs.map → sheet-ZHVITumf.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-DNqgaGvI.cjs → slider-BKUCiMOV.cjs} +2 -2
- package/dist/{slider-DNqgaGvI.cjs.map → slider-BKUCiMOV.cjs.map} +1 -1
- package/dist/{slider-ev-R3lWD.js → slider-gBHyj2TC.js} +3 -3
- package/dist/{slider-ev-R3lWD.js.map → slider-gBHyj2TC.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-BBhBlm_F.cjs → spinner-CiRbCC74.cjs} +2 -2
- package/dist/{spinner-BBhBlm_F.cjs.map → spinner-CiRbCC74.cjs.map} +1 -1
- package/dist/{spinner-0Be5YjKa.js → spinner-DZ3oE5cQ.js} +2 -2
- package/dist/{spinner-0Be5YjKa.js.map → spinner-DZ3oE5cQ.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{suggestion-chip-WW3dScRF.js → suggestion-chip-BTiLUD1d.js} +10 -10
- package/dist/suggestion-chip-BTiLUD1d.js.map +1 -0
- package/dist/{suggestion-chip-GLpIJvu3.cjs → suggestion-chip-D7izoLhZ.cjs} +8 -8
- package/dist/suggestion-chip-D7izoLhZ.cjs.map +1 -0
- package/dist/{surface-DmtBge0h.js → surface-C4Lkv6Xu.js} +2 -2
- package/dist/{surface-DmtBge0h.js.map → surface-C4Lkv6Xu.js.map} +1 -1
- package/dist/{surface-BaMQfpnN.cjs → surface-DTqeD1NX.cjs} +2 -2
- package/dist/{surface-BaMQfpnN.cjs.map → surface-DTqeD1NX.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-Bc86ZVfE.cjs → table-CGB_dR8H.cjs} +2 -2
- package/dist/{table-Bc86ZVfE.cjs.map → table-CGB_dR8H.cjs.map} +1 -1
- package/dist/{table-D00xx57f.js → table-D320TllW.js} +2 -2
- package/dist/{table-D00xx57f.js.map → table-D320TllW.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-Bo4Z38SO.cjs → tabs-compatibility-C1ifLAs_.cjs} +2 -2
- package/dist/{tabs-compatibility-Bo4Z38SO.cjs.map → tabs-compatibility-C1ifLAs_.cjs.map} +1 -1
- package/dist/{tabs-compatibility-BQqS_oQN.js → tabs-compatibility-DNkcL6dE.js} +2 -2
- package/dist/{tabs-compatibility-BQqS_oQN.js.map → tabs-compatibility-DNkcL6dE.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-9XFzAXGw.js +43 -0
- package/dist/{tailwind.mixin-Dq8FD_xN.js.map → tailwind.mixin-9XFzAXGw.js.map} +1 -1
- package/dist/tailwind.mixin-ChrVaJHF.cjs +2 -0
- package/dist/{tailwind.mixin-B_-9TcsC.cjs.map → tailwind.mixin-ChrVaJHF.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DvfusaL0.cjs → textarea-1QvQzHKm.cjs} +2 -2
- package/dist/{textarea-DvfusaL0.cjs.map → textarea-1QvQzHKm.cjs.map} +1 -1
- package/dist/{textarea-DpSgcB0q.js → textarea-B2U316Um.js} +2 -2
- package/dist/{textarea-DpSgcB0q.js.map → textarea-B2U316Um.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-Dj3aS2jG.cjs → theme-button-B0n3kSd_.cjs} +2 -2
- package/dist/{theme-button-Dj3aS2jG.cjs.map → theme-button-B0n3kSd_.cjs.map} +1 -1
- package/dist/{theme-button-1dnUcGe5.js → theme-button-zUYywyWx.js} +2 -2
- package/dist/{theme-button-1dnUcGe5.js.map → theme-button-zUYywyWx.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-B2834R93.cjs → theme.component-BLKJxyFX.cjs} +2 -2
- package/dist/{theme.component-B2834R93.cjs.map → theme.component-BLKJxyFX.cjs.map} +1 -1
- package/dist/{theme.component-DwzieORm.js → theme.component-DpPMKf8l.js} +2 -2
- package/dist/{theme.component-DwzieORm.js.map → theme.component-DpPMKf8l.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-CWEqsRA_.cjs → timezone-DRSCR7bi.cjs} +2 -2
- package/dist/{timezone-CWEqsRA_.cjs.map → timezone-DRSCR7bi.cjs.map} +1 -1
- package/dist/{timezone-YbhVzZRq.js → timezone-DhLUcYcX.js} +3 -3
- package/dist/{timezone-YbhVzZRq.js.map → timezone-DhLUcYcX.js.map} +1 -1
- package/dist/{tooltip-BZ2fruXd.cjs → tooltip-B4nvmANO.cjs} +2 -2
- package/dist/{tooltip-BZ2fruXd.cjs.map → tooltip-B4nvmANO.cjs.map} +1 -1
- package/dist/{tooltip-DgLua_UV.js → tooltip-tFxYzDct.js} +2 -2
- package/dist/{tooltip-DgLua_UV.js.map → tooltip-tFxYzDct.js.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-Dg-mKO7n.js → tree-C9gLZE_E.js} +2 -2
- package/dist/{tree-Dg-mKO7n.js.map → tree-C9gLZE_E.js.map} +1 -1
- package/dist/{tree-c9Fcsgxi.cjs → tree-CRjGBeHH.cjs} +2 -2
- package/dist/{tree-c9Fcsgxi.cjs.map → tree-CRjGBeHH.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-Bgp3f7FN.js → typewriter-DN9HiCBW.js} +4 -4
- package/dist/{typewriter-Bgp3f7FN.js.map → typewriter-DN9HiCBW.js.map} +1 -1
- package/dist/{typewriter-FHkXxEdA.cjs → typewriter-VGsKEZOj.cjs} +2 -2
- package/dist/{typewriter-FHkXxEdA.cjs.map → typewriter-VGsKEZOj.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-B2kH45Vn.js → typography-MN7P8my2.js} +2 -2
- package/dist/{typography-B2kH45Vn.js.map → typography-MN7P8my2.js.map} +1 -1
- package/dist/{typography-CE_QuH1P.cjs → typography-XN-pEi3Q.cjs} +2 -2
- package/dist/{typography-CE_QuH1P.cjs.map → typography-XN-pEi3Q.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/navigation-rail/index.d.ts +1 -1
- package/types/src/navigation-rail/navigation-rail-item.d.ts +89 -9
- package/types/src/navigation-rail/navigation-rail.d.ts +77 -9
- package/dist/autocomplete-Bm_tnRns.js.map +0 -1
- package/dist/autocomplete-DpGmI06M.cjs.map +0 -1
- package/dist/navigation-rail-item-CIg6-B2G.js +0 -151
- package/dist/navigation-rail-item-CIg6-B2G.js.map +0 -1
- package/dist/navigation-rail-item-DA7eqAg3.cjs +0 -116
- package/dist/navigation-rail-item-DA7eqAg3.cjs.map +0 -1
- package/dist/select-BrdNXtJK.js.map +0 -1
- package/dist/select-DvjgcI2e.cjs.map +0 -1
- package/dist/suggestion-chip-GLpIJvu3.cjs.map +0 -1
- package/dist/suggestion-chip-WW3dScRF.js.map +0 -1
- package/dist/tailwind.mixin-B_-9TcsC.cjs +0 -2
- package/dist/tailwind.mixin-Dq8FD_xN.js +0 -43
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
# Navigation Rail Component
|
|
2
|
+
|
|
3
|
+
**Material Design 3 Reference:** https://m3.material.io/components/navigation-rail/overview
|
|
4
|
+
|
|
5
|
+
A Material Design 3 compliant vertical navigation component that provides access to primary destinations in an application. The navigation rail is positioned on the left side of the screen with a fixed 80px width and offers a compact, ergonomic way to navigate between 3-7 primary sections.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import '@schmancy/navigation-rail'
|
|
11
|
+
import '@schmancy/navigation-rail/navigation-rail-item'
|
|
12
|
+
|
|
13
|
+
// Or import from main package
|
|
14
|
+
import { SchmancyNavigationRail, SchmancyNavigationRailItem } from '@schmancy'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Basic Usage
|
|
18
|
+
|
|
19
|
+
```html
|
|
20
|
+
<schmancy-navigation-rail activeIndex="0">
|
|
21
|
+
<schmancy-navigation-rail-item
|
|
22
|
+
icon="home"
|
|
23
|
+
label="Home"
|
|
24
|
+
value="/home">
|
|
25
|
+
</schmancy-navigation-rail-item>
|
|
26
|
+
|
|
27
|
+
<schmancy-navigation-rail-item
|
|
28
|
+
icon="search"
|
|
29
|
+
label="Search"
|
|
30
|
+
value="/search">
|
|
31
|
+
</schmancy-navigation-rail-item>
|
|
32
|
+
|
|
33
|
+
<schmancy-navigation-rail-item
|
|
34
|
+
icon="favorites"
|
|
35
|
+
label="Favorites"
|
|
36
|
+
value="/favorites">
|
|
37
|
+
</schmancy-navigation-rail-item>
|
|
38
|
+
</schmancy-navigation-rail>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Navigation Rail Component
|
|
42
|
+
|
|
43
|
+
### Properties
|
|
44
|
+
|
|
45
|
+
| Property | Type | Default | Description |
|
|
46
|
+
|----------|------|---------|-------------|
|
|
47
|
+
| `activeIndex` | `number` | `-1` | The currently active item index |
|
|
48
|
+
| `activeValue` | `string` | `''` | The currently active item value (for programmatic selection) |
|
|
49
|
+
| `labelVisibility` | `'all' \| 'selected' \| 'none'` | `'all'` | When to show labels for navigation items |
|
|
50
|
+
| `alignment` | `'top' \| 'center' \| 'bottom'` | `'top'` | Vertical alignment of navigation items |
|
|
51
|
+
| `showTooltips` | `boolean` | `true` | Show tooltips when labels are hidden |
|
|
52
|
+
| `keyboardNavigation` | `boolean` | `true` | Enable keyboard navigation with arrow keys |
|
|
53
|
+
|
|
54
|
+
### Slots
|
|
55
|
+
|
|
56
|
+
| Slot | Description |
|
|
57
|
+
|------|-------------|
|
|
58
|
+
| `fab` | Floating Action Button at the top of the rail |
|
|
59
|
+
| `menu` | Menu button below the FAB |
|
|
60
|
+
| `header` | Custom header content |
|
|
61
|
+
| `footer` | Custom footer content |
|
|
62
|
+
| (default) | Navigation rail items |
|
|
63
|
+
|
|
64
|
+
### Events
|
|
65
|
+
|
|
66
|
+
| Event | Detail | Description |
|
|
67
|
+
|-------|--------|-------------|
|
|
68
|
+
| `navigate` | `string` | Fired when a navigation item is selected, detail contains the value |
|
|
69
|
+
| `fab-click` | `void` | Fired when the FAB is clicked |
|
|
70
|
+
| `menu-click` | `void` | Fired when the menu button is clicked |
|
|
71
|
+
|
|
72
|
+
### CSS Custom Properties
|
|
73
|
+
|
|
74
|
+
| Property | Default | Description |
|
|
75
|
+
|----------|---------|-------------|
|
|
76
|
+
| `--rail-width` | `80px` | Fixed width of the rail |
|
|
77
|
+
| `--rail-width-mobile` | `56px` | Width on mobile devices |
|
|
78
|
+
|
|
79
|
+
### Methods
|
|
80
|
+
|
|
81
|
+
| Method | Description |
|
|
82
|
+
|--------|-------------|
|
|
83
|
+
| None | Component is controlled via properties and events |
|
|
84
|
+
|
|
85
|
+
## Navigation Rail Item Component
|
|
86
|
+
|
|
87
|
+
### Properties
|
|
88
|
+
|
|
89
|
+
| Property | Type | Default | Description |
|
|
90
|
+
|----------|------|---------|-------------|
|
|
91
|
+
| `icon` | `string` | `''` | Material Symbols icon name |
|
|
92
|
+
| `label` | `string` | `''` | Label text for the navigation item |
|
|
93
|
+
| `value` | `string` | `''` | Value associated with this item (useful for routing) |
|
|
94
|
+
| `active` | `boolean` | `false` | Whether this item is currently active/selected |
|
|
95
|
+
| `selected` | `boolean` | `false` | Alias for `active` property |
|
|
96
|
+
| `badge` | `string` | `''` | Badge text or number to display |
|
|
97
|
+
| `badgeVariant` | `'error' \| 'primary' \| 'secondary'` | `'error'` | Badge color variant |
|
|
98
|
+
| `showLabel` | `boolean` | `false` | Whether to show the label (controlled by parent rail) |
|
|
99
|
+
| `disabled` | `boolean` | `false` | Whether this item is disabled |
|
|
100
|
+
| `nested` | `boolean` | `false` | Whether this is a nested sub-navigation item |
|
|
101
|
+
| `group` | `boolean` | `false` | Whether this item represents a group separator |
|
|
102
|
+
|
|
103
|
+
### Slots
|
|
104
|
+
|
|
105
|
+
| Slot | Description |
|
|
106
|
+
|------|-------------|
|
|
107
|
+
| `icon` | Custom icon content (e.g., `<schmancy-icon>`) |
|
|
108
|
+
| `badge` | Custom badge content |
|
|
109
|
+
| (default) | Custom content that replaces the entire item |
|
|
110
|
+
|
|
111
|
+
### Events
|
|
112
|
+
|
|
113
|
+
| Event | Detail | Description |
|
|
114
|
+
|-------|--------|-------------|
|
|
115
|
+
| `navigate` | `string` | Fired when the item is clicked, detail contains the value |
|
|
116
|
+
|
|
117
|
+
### CSS Custom Properties
|
|
118
|
+
|
|
119
|
+
| Property | Default | Description |
|
|
120
|
+
|----------|---------|-------------|
|
|
121
|
+
| `--rail-item-height` | `56px` | Item height |
|
|
122
|
+
| `--rail-item-icon-size` | `24px` | Icon size |
|
|
123
|
+
| `--rail-item-padding` | `12px` | Item padding |
|
|
124
|
+
| `--rail-item-gap` | `4px` | Gap between icon and label |
|
|
125
|
+
|
|
126
|
+
## Examples
|
|
127
|
+
|
|
128
|
+
### With FAB and Menu Button
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<schmancy-navigation-rail
|
|
132
|
+
activeIndex="0"
|
|
133
|
+
labelVisibility="selected"
|
|
134
|
+
@navigation-change=${this.handleNavigation}
|
|
135
|
+
@fab-click=${this.handleFabClick}
|
|
136
|
+
@menu-click=${this.handleMenuClick}
|
|
137
|
+
>
|
|
138
|
+
<!-- Floating Action Button -->
|
|
139
|
+
<schmancy-button
|
|
140
|
+
slot="fab"
|
|
141
|
+
variant="filled"
|
|
142
|
+
aria-label="Compose"
|
|
143
|
+
>
|
|
144
|
+
<schmancy-icon>edit</schmancy-icon>
|
|
145
|
+
</schmancy-button>
|
|
146
|
+
|
|
147
|
+
<!-- Menu Button -->
|
|
148
|
+
<schmancy-button
|
|
149
|
+
slot="menu"
|
|
150
|
+
variant="text"
|
|
151
|
+
aria-label="Menu"
|
|
152
|
+
>
|
|
153
|
+
<schmancy-icon>menu</schmancy-icon>
|
|
154
|
+
</schmancy-button>
|
|
155
|
+
|
|
156
|
+
<!-- Navigation Items -->
|
|
157
|
+
<schmancy-navigation-rail-item
|
|
158
|
+
icon="inbox"
|
|
159
|
+
label="Inbox"
|
|
160
|
+
value="/inbox"
|
|
161
|
+
badge="12"
|
|
162
|
+
></schmancy-navigation-rail-item>
|
|
163
|
+
|
|
164
|
+
<schmancy-navigation-rail-item
|
|
165
|
+
icon="send"
|
|
166
|
+
label="Sent"
|
|
167
|
+
value="/sent"
|
|
168
|
+
></schmancy-navigation-rail-item>
|
|
169
|
+
|
|
170
|
+
<schmancy-navigation-rail-item
|
|
171
|
+
icon="drafts"
|
|
172
|
+
label="Drafts"
|
|
173
|
+
value="/drafts"
|
|
174
|
+
badge="3"
|
|
175
|
+
badgeVariant="secondary"
|
|
176
|
+
></schmancy-navigation-rail-item>
|
|
177
|
+
</schmancy-navigation-rail>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### With Groups and Dividers
|
|
181
|
+
|
|
182
|
+
```html
|
|
183
|
+
<schmancy-navigation-rail activeValue="dashboard">
|
|
184
|
+
<!-- Primary Navigation -->
|
|
185
|
+
<schmancy-navigation-rail-item
|
|
186
|
+
icon="dashboard"
|
|
187
|
+
label="Dashboard"
|
|
188
|
+
value="dashboard"
|
|
189
|
+
></schmancy-navigation-rail-item>
|
|
190
|
+
|
|
191
|
+
<schmancy-navigation-rail-item
|
|
192
|
+
icon="analytics"
|
|
193
|
+
label="Analytics"
|
|
194
|
+
value="analytics"
|
|
195
|
+
></schmancy-navigation-rail-item>
|
|
196
|
+
|
|
197
|
+
<!-- Divider -->
|
|
198
|
+
<schmancy-divider></schmancy-divider>
|
|
199
|
+
|
|
200
|
+
<!-- Secondary Navigation -->
|
|
201
|
+
<schmancy-navigation-rail-item
|
|
202
|
+
icon="folder"
|
|
203
|
+
label="Files"
|
|
204
|
+
value="files"
|
|
205
|
+
></schmancy-navigation-rail-item>
|
|
206
|
+
|
|
207
|
+
<schmancy-navigation-rail-item
|
|
208
|
+
icon="people"
|
|
209
|
+
label="Team"
|
|
210
|
+
value="team"
|
|
211
|
+
></schmancy-navigation-rail-item>
|
|
212
|
+
|
|
213
|
+
<!-- Footer Items -->
|
|
214
|
+
<div slot="footer">
|
|
215
|
+
<schmancy-navigation-rail-item
|
|
216
|
+
icon="settings"
|
|
217
|
+
label="Settings"
|
|
218
|
+
value="settings"
|
|
219
|
+
></schmancy-navigation-rail-item>
|
|
220
|
+
|
|
221
|
+
<schmancy-navigation-rail-item
|
|
222
|
+
icon="account_circle"
|
|
223
|
+
label="Profile"
|
|
224
|
+
value="profile"
|
|
225
|
+
></schmancy-navigation-rail-item>
|
|
226
|
+
</div>
|
|
227
|
+
</schmancy-navigation-rail>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Rail with Custom Icons
|
|
231
|
+
|
|
232
|
+
```html
|
|
233
|
+
<schmancy-navigation-rail
|
|
234
|
+
labelVisibility="selected"
|
|
235
|
+
showTooltips
|
|
236
|
+
>
|
|
237
|
+
<schmancy-navigation-rail-item label="Home">
|
|
238
|
+
<schmancy-icon slot="icon" fill="1">home</schmancy-icon>
|
|
239
|
+
</schmancy-navigation-rail-item>
|
|
240
|
+
|
|
241
|
+
<schmancy-navigation-rail-item label="Explore">
|
|
242
|
+
<schmancy-icon slot="icon" variant="rounded">explore</schmancy-icon>
|
|
243
|
+
</schmancy-navigation-rail-item>
|
|
244
|
+
|
|
245
|
+
<schmancy-navigation-rail-item label="Notifications" badge="New">
|
|
246
|
+
<schmancy-icon slot="icon" weight="600">notifications</schmancy-icon>
|
|
247
|
+
</schmancy-navigation-rail-item>
|
|
248
|
+
</schmancy-navigation-rail>
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Programmatic Control
|
|
252
|
+
|
|
253
|
+
```typescript
|
|
254
|
+
import { SchmancyNavigationRail } from '@schmancy/navigation-rail'
|
|
255
|
+
|
|
256
|
+
class MyApp extends LitElement {
|
|
257
|
+
@query('schmancy-navigation-rail')
|
|
258
|
+
navigationRail!: SchmancyNavigationRail
|
|
259
|
+
|
|
260
|
+
// Select by index
|
|
261
|
+
selectHome() {
|
|
262
|
+
this.navigationRail.activeIndex = 0
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// Select by value
|
|
266
|
+
selectByRoute(route: string) {
|
|
267
|
+
this.navigationRail.activeValue = route
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Handle navigation
|
|
271
|
+
handleNavigationChange(event: CustomEvent<string>) {
|
|
272
|
+
const value = event.detail
|
|
273
|
+
console.log(`Navigated to: ${value}`)
|
|
274
|
+
|
|
275
|
+
// Update route
|
|
276
|
+
this.router.navigate(value)
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// Change label visibility programmatically
|
|
280
|
+
toggleLabels() {
|
|
281
|
+
this.navigationRail.labelVisibility =
|
|
282
|
+
this.navigationRail.labelVisibility === 'all' ? 'none' : 'all'
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
render() {
|
|
286
|
+
return html`
|
|
287
|
+
<schmancy-navigation-rail
|
|
288
|
+
@navigate=${this.handleNavigationChange}
|
|
289
|
+
>
|
|
290
|
+
<!-- items -->
|
|
291
|
+
</schmancy-navigation-rail>
|
|
292
|
+
`
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### With Router Integration
|
|
298
|
+
|
|
299
|
+
```typescript
|
|
300
|
+
import { Router } from '@vaadin/router'
|
|
301
|
+
|
|
302
|
+
class AppShell extends LitElement {
|
|
303
|
+
@state() currentRoute = '/'
|
|
304
|
+
|
|
305
|
+
firstUpdated() {
|
|
306
|
+
// Listen to router changes
|
|
307
|
+
window.addEventListener('vaadin-router-location-changed', (e) => {
|
|
308
|
+
this.currentRoute = e.detail.location.pathname
|
|
309
|
+
})
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
handleNavigation(event: CustomEvent<string>) {
|
|
313
|
+
Router.go(event.detail)
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
render() {
|
|
317
|
+
return html`
|
|
318
|
+
<schmancy-navigation-rail
|
|
319
|
+
.activeValue=${this.currentRoute}
|
|
320
|
+
@navigate=${this.handleNavigation}
|
|
321
|
+
labelVisibility="selected"
|
|
322
|
+
>
|
|
323
|
+
<schmancy-navigation-rail-item
|
|
324
|
+
icon="home"
|
|
325
|
+
label="Home"
|
|
326
|
+
value="/"
|
|
327
|
+
></schmancy-navigation-rail-item>
|
|
328
|
+
|
|
329
|
+
<schmancy-navigation-rail-item
|
|
330
|
+
icon="dashboard"
|
|
331
|
+
label="Dashboard"
|
|
332
|
+
value="/dashboard"
|
|
333
|
+
></schmancy-navigation-rail-item>
|
|
334
|
+
|
|
335
|
+
<schmancy-navigation-rail-item
|
|
336
|
+
icon="settings"
|
|
337
|
+
label="Settings"
|
|
338
|
+
value="/settings"
|
|
339
|
+
></schmancy-navigation-rail-item>
|
|
340
|
+
</schmancy-navigation-rail>
|
|
341
|
+
|
|
342
|
+
<main>
|
|
343
|
+
<slot></slot> <!-- Router outlet -->
|
|
344
|
+
</main>
|
|
345
|
+
`
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## Accessibility
|
|
351
|
+
|
|
352
|
+
The navigation rail components are fully accessible:
|
|
353
|
+
|
|
354
|
+
- **ARIA Roles**: Navigation container has `role="navigation"`, items have `role="listitem"`
|
|
355
|
+
- **Keyboard Navigation**:
|
|
356
|
+
- `ArrowUp/ArrowDown` - Navigate between items
|
|
357
|
+
- `Home/End` - Jump to first/last item
|
|
358
|
+
- `Enter/Space` - Select focused item
|
|
359
|
+
- `Tab` - Move focus in/out of rail
|
|
360
|
+
- **Screen Readers**: Proper ARIA labels and live regions
|
|
361
|
+
- **Focus Management**: Clear focus indicators and proper tab order
|
|
362
|
+
- **High Contrast**: Supports Windows High Contrast Mode
|
|
363
|
+
|
|
364
|
+
## Responsive Behavior
|
|
365
|
+
|
|
366
|
+
The navigation rail adapts to different screen sizes:
|
|
367
|
+
|
|
368
|
+
- **Desktop** (>1024px): Full 80px width, shows all features
|
|
369
|
+
- **Tablet** (768-1024px): Reduced padding, optional label visibility
|
|
370
|
+
- **Mobile** (<768px): Collapses to 56px, icons only
|
|
371
|
+
- **Landscape Phone**: Reduced vertical spacing
|
|
372
|
+
|
|
373
|
+
## Theming
|
|
374
|
+
|
|
375
|
+
The navigation rail uses Schmancy theme tokens:
|
|
376
|
+
|
|
377
|
+
```css
|
|
378
|
+
/* Custom theming */
|
|
379
|
+
schmancy-navigation-rail {
|
|
380
|
+
/* Colors */
|
|
381
|
+
--schmancy-sys-color-surface-container: #f5f5f5;
|
|
382
|
+
--schmancy-sys-color-secondary-container: #e3f2fd;
|
|
383
|
+
|
|
384
|
+
/* Dimensions */
|
|
385
|
+
--rail-width: 80px;
|
|
386
|
+
--rail-width-mobile: 56px;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
/* Dark theme */
|
|
390
|
+
@media (prefers-color-scheme: dark) {
|
|
391
|
+
schmancy-navigation-rail {
|
|
392
|
+
--schmancy-sys-color-surface-container: #1e1e1e;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
## Best Practices
|
|
398
|
+
|
|
399
|
+
1. **Item Count**: Use 3-7 primary destinations for optimal usability
|
|
400
|
+
2. **Icons**: Use clear, recognizable Material Symbols icons
|
|
401
|
+
3. **Labels**: Keep labels short and descriptive (1-2 words)
|
|
402
|
+
4. **Hierarchy**: Place most important items at the top
|
|
403
|
+
5. **Badges**: Use sparingly for important notifications
|
|
404
|
+
6. **FAB**: Only include if there's a clear primary action
|
|
405
|
+
7. **Label Visibility**: Use 'selected' for most cases, 'all' for better discoverability
|
|
406
|
+
8. **Mobile**: Consider using bottom navigation bar on mobile instead
|
|
407
|
+
|
|
408
|
+
## Migration Guide
|
|
409
|
+
|
|
410
|
+
### From Navigation Drawer
|
|
411
|
+
|
|
412
|
+
```html
|
|
413
|
+
<!-- Before: Navigation Drawer -->
|
|
414
|
+
<schmancy-nav-drawer>
|
|
415
|
+
<div slot="header">App Name</div>
|
|
416
|
+
<schmancy-list>
|
|
417
|
+
<schmancy-list-item>Home</schmancy-list-item>
|
|
418
|
+
</schmancy-list>
|
|
419
|
+
</schmancy-nav-drawer>
|
|
420
|
+
|
|
421
|
+
<!-- After: Navigation Rail -->
|
|
422
|
+
<schmancy-navigation-rail>
|
|
423
|
+
<div slot="header">
|
|
424
|
+
<schmancy-icon>logo</schmancy-icon>
|
|
425
|
+
</div>
|
|
426
|
+
<schmancy-navigation-rail-item
|
|
427
|
+
icon="home"
|
|
428
|
+
label="Home"
|
|
429
|
+
></schmancy-navigation-rail-item>
|
|
430
|
+
</schmancy-navigation-rail>
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### From Tab Bar
|
|
434
|
+
|
|
435
|
+
```html
|
|
436
|
+
<!-- Before: Tab Bar -->
|
|
437
|
+
<schmancy-tabs>
|
|
438
|
+
<schmancy-tab>Home</schmancy-tab>
|
|
439
|
+
<schmancy-tab>Search</schmancy-tab>
|
|
440
|
+
</schmancy-tabs>
|
|
441
|
+
|
|
442
|
+
<!-- After: Navigation Rail -->
|
|
443
|
+
<schmancy-navigation-rail labelVisibility="always">
|
|
444
|
+
<schmancy-navigation-rail-item
|
|
445
|
+
icon="home"
|
|
446
|
+
label="Home"
|
|
447
|
+
></schmancy-navigation-rail-item>
|
|
448
|
+
<schmancy-navigation-rail-item
|
|
449
|
+
icon="search"
|
|
450
|
+
label="Search"
|
|
451
|
+
></schmancy-navigation-rail-item>
|
|
452
|
+
</schmancy-navigation-rail>
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
## Performance Considerations
|
|
456
|
+
|
|
457
|
+
- **Lazy Loading**: Navigation rail supports lazy loading of route components
|
|
458
|
+
- **Virtual Scrolling**: Automatically enabled for rails with many items
|
|
459
|
+
- **CSS Containment**: Uses CSS containment for optimal rendering
|
|
460
|
+
- **Event Delegation**: Efficient event handling for all items
|
|
461
|
+
|
|
462
|
+
## Browser Support
|
|
463
|
+
|
|
464
|
+
- Chrome 90+
|
|
465
|
+
- Firefox 88+
|
|
466
|
+
- Safari 14+
|
|
467
|
+
- Edge 90+
|
|
468
|
+
|
|
469
|
+
## Related Components
|
|
470
|
+
|
|
471
|
+
- `schmancy-navigation-bar` - Bottom navigation for mobile
|
|
472
|
+
- `schmancy-nav-drawer` - Full navigation drawer
|
|
473
|
+
- `schmancy-tabs` - Horizontal tab navigation
|
|
474
|
+
- `schmancy-button` - For FAB and menu buttons
|
|
475
|
+
- `schmancy-icon` - For navigation icons
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const e=require("rxjs");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("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-ChrVaJHF.cjs");const h=require("./litElement.mixin-rWG9s46P.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-Bic7z7SI.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-text-D1D0dI8T.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-Bic7z7SI.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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"}
|
|
@@ -2,8 +2,8 @@ import { concat as u, interval as g, startWith as y, filter as h, take as d, fro
|
|
|
2
2
|
import "lit/directives/class-map.js";
|
|
3
3
|
import "lit/directives/style-map.js";
|
|
4
4
|
import { property as a, queryAssignedNodes as x, query as m, customElement as S } from "lit/decorators.js";
|
|
5
|
-
import "./tailwind.mixin-
|
|
6
|
-
import { $ as Z } from "./litElement.mixin-
|
|
5
|
+
import "./tailwind.mixin-9XFzAXGw.js";
|
|
6
|
+
import { $ as Z } from "./litElement.mixin-Bv6DGuhe.js";
|
|
7
7
|
import { css as v, html as A } from "lit";
|
|
8
8
|
var E = Object.defineProperty, O = Object.getOwnPropertyDescriptor, e = (r, s, n, i) => {
|
|
9
9
|
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);
|
|
@@ -72,4 +72,4 @@ let t = class extends Z(v`
|
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
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);
|
|
75
|
-
//# sourceMappingURL=animated-text-
|
|
75
|
+
//# sourceMappingURL=animated-text-CLEr78FV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-text-DS9AsLAy.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-CLEr78FV.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":";;;;;;;;;;;AAsBA,IAAqBA,IAArB,cAAkDC,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAA9D,cAAAC;AAAAC,UAAAA,GAAAC,SAAAA,GAoB6BC,KAAAC,OAAO,WACPD,KAAAE,QAAQ,GACRF,KAAAG,UAAU,IACVH,KAAAI,WAAW,KACZJ,KAAAK,QAAQ,CAAC,GAAG,CAAA,GACZL,KAAAM,UAAU,CAAC,GAAG,CAAA,GACdN,KAAAO,aAAa,CAAC,UAAU,QACxBP,KAAAQ,aAAa,CAAC,SAAS,KAAA,GACvBR,KAAAS,aAAa,CAAC,GAAG,CAAA,GACjBT,KAAAU,UAAU,CAAC,KAAK,CAAA,GACdV,KAAAW,gBAAAA;AAAAA,EAAgB;AAAA,EAO7C,aAAaC,GAAAA;AACZ,UAAMC,IAAOD,EAAQE,sBAAAA;AACrB,WACCD,EAAKE,OAAO,KACZF,EAAKG,QAAQ,KACbH,EAAKI,WAAWC,OAAOC,eAAeC,SAASC,gBAAgBC,iBAC/DT,EAAKU,UAAUL,OAAOM,cAAcJ,SAASC,gBAAgBI;AAAAA,EAE/D;AAAA,EAEA,MAAA,eAAMC;AAEL1B,SAAK2B,QAAQC,YAAY5B,KAAK6B,YAAY,CAAA,EAAGC,YAAaC,QAAQ,OAAO,gCAAA,GAGzEC,EAECC,EAAS,EAAA,EAAIC,KACZC,EAAAA,EAAU,GACVC,EAAO,MAAA;AACN,YAAMvB,IAAOb,KAAKc,sBAAAA;AAClB,aAAOD,EAAKwB,QAAQ,KAAKxB,EAAKyB,SAAS;AAAA,IAAA,CAAA,GAExCC,EAAK,CAAA,CAAA,GAGNC,EAAUtB,QAAQ,QAAA,EAAUgB,KAC3BO,EAAa,GAAA,QAAc,EAC1BC,SAAAA,IACAC,UAAAA,GAAU,CAAA,GAEXR,IAAU,GACVS,EAAI,MAAM5C,KAAK6C,aAAa7C,IAAAA,CAAAA,GAC5B8C,EAAAA,GACAC,EAAIC,CAAAA,MAAAA;AAAAA,OAEEA,KAAchD,KAAKW,iBACvBsC,MAAMC,KAAKlD,KAAK2B,QAAQwB,QAAAA,EAAUC,QAASC,CAAAA,MAAAA;AAC1CA,QAAAA,EAAOC,MAAMhD,UAAU;AAAA,MAAA,CAAA;AAAA,IAAA,CAAA,GAI1B8B,SAAuBS,CAAAA,GAEvB7C,KAAKW,gBAAgBoC,EAAAA,IAAQR,EAAK,CAAA,GAClCQ,EAAI,EACHQ,MAAM,MAAA;AAEWvD,WAAKwD,WAAYC,iBAA8B,cAAA,EAEvDL,QAAQ,CAACC,GAAQK,MAAAA;AAGxB,cAAMC,IAAgB;AAAA,8BACC3D,KAAKO,WAAW,CAAA,CAAA,KAAOP,KAAKQ,WAAW,CAAA,CAAA,KAAOR,KAAKS,WAAW,CAAA,CAAA;AAAA,0BAClET,KAAKU,QAAQ,CAAA,CAAA;AAAA,wBACfV,KAAKK,MAAM,CAAA,CAAA;AAAA,iBAGtBuD,IAAc;AAAA,8BACG5D,KAAKO,WAAW,CAAA,CAAA,KAAOP,KAAKQ,WAAW,CAAA,CAAA,KAAOR,KAAKS,WAAW,CAAA,CAAA;AAAA,0BAClET,KAAKU,QAAQ,CAAA,CAAA;AAAA,wBACfV,KAAKK,MAAM,CAAA,CAAA;AAAA,iBAQtBwD,IAAwB,CAC7B,EAAEC,WAAWH,GAAerD,SAASyD,OAAO/D,KAAKM,QAAQ,CAAA,CAAA,EAAA,GACzD,EAAEwD,WAAWF,GAAatD,SAASyD,OAAO/D,KAAKM,QAAQ,CAAA,CAAA,EAAA,CAAA;AAGxD+C,QAAAA,EAAOW,QAAQH,GAAW,EACzBzD,UAAUJ,KAAKI,UACf6D,QAXyC,EACzCC,SAAS,iCAAA,EAUSlE,KAAKC,IAAAA,KAAS,YAChCC,OAAOF,KAAKE,QAAQwD,IAAI1D,KAAKG,SAC7BgE,MAAM,WAAA,CAAA;AAAA,MAAA,CAAA;AAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAMVC,UAAAA;AAAAA,EACH;AAAA,EAEA,SAAAC;AACC,WAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EASR;AAAA;AAnH4BC,EAAA,CAA3BC,EAAS,EAAEC,MAAMV,OAAAA,CAAAA,CAAAA,GApBErE,EAoBQgF,WAAA,QAAA,CAAA,GACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAME,OAAAA,CAAAA,CAAAA,GArBEjF,EAqBQgF,WAAA,SAAA,CAAA,GACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAME,OAAAA,CAAAA,CAAAA,GAtBEjF,EAsBQgF,WAAA,WAAA,CAAA,GACAH,EAAA,CAA3BC,EAAS,EAAEC,MAAME,OAAAA,CAAAA,CAAAA,GAvBEjF,EAuBQgF,WAAA,YAAA,CAAA,GACDH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GAxBEvD,EAwBOgF,WAAA,SAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GAzBEvD,EAyBOgF,WAAA,WAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,WA1BEvD,EA0BOgF,WAAA,cAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GA3BEvD,EA2BOgF,WAAA,cAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GA5BEvD,EA4BOgF,WAAA,cAAA,CAAA,GACAH,EAAA,CAA1BC,EAAS,EAAEC,MAAMxB,MAAAA,CAAAA,CAAAA,GA7BEvD,EA6BOgF,WAAA,WAAA,CAAA,GACEH,EAAA,CAA5BC,EAAS,EAAEC,MAAMG,QAAAA,CAAAA,CAAAA,GA9BElF,EA8BSgF,WAAA,iBAAA,IAEPH,EAAA,CAArBM,EAAAA,CAAAA,GAhCmBnF,EAgCEgF,WAAA,eAAA,CAAA,GACHH,EAAA,CAAlBO,EAAM,UAAA,CAAA,GAjCapF,EAiCDgF,WAAA,WAAA,CAAA,GACJH,EAAA,CAAdO,EAAM,MAAA,CAAA,GAlCapF,EAkCLgF,WAAA,OAAA,CAAA,GAlCKhF,IAArB6E,EAAA,CADCQ,EAAc,wBAAA,CAAA,GACMrF,CAAAA;"}
|
package/dist/animated-text.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("./animated-text-
|
|
1
|
+
"use strict";require("./animated-text-Bic7z7SI.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-CLEr78FV.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-BrvNYy7Z.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
|