@mhmo91/schmancy 0.4.84 → 0.4.86
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/area.md +72 -66
- package/dist/ai/area.md +72 -66
- package/dist/{animated-text-CLWwT8SD.js → animated-text-BBFb6BUA.js} +3 -3
- package/dist/{animated-text-CLWwT8SD.js.map → animated-text-BBFb6BUA.js.map} +1 -1
- package/dist/{animated-text-Btjma28b.cjs → animated-text-BzF1me9y.cjs} +2 -2
- package/dist/{animated-text-Btjma28b.cjs.map → animated-text-BzF1me9y.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.js +1 -1
- package/dist/{autocomplete-DFtKSlra.cjs → autocomplete-B1tq2699.cjs} +2 -2
- package/dist/{autocomplete-DFtKSlra.cjs.map → autocomplete-B1tq2699.cjs.map} +1 -1
- package/dist/{autocomplete--PVrgHin.js → autocomplete-C3z4e3Ly.js} +3 -3
- package/dist/{autocomplete--PVrgHin.js.map → autocomplete-C3z4e3Ly.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-mVeyzMlO.cjs → avatar-C9PFVVlF.cjs} +2 -2
- package/dist/{avatar-mVeyzMlO.cjs.map → avatar-C9PFVVlF.cjs.map} +1 -1
- package/dist/{avatar-BdzN2LRa.js → avatar-DD_G2k07.js} +48 -48
- package/dist/{avatar-BdzN2LRa.js.map → avatar-DD_G2k07.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-CHZti0-T.js → boat-BK-KTZEE.js} +2 -2
- package/dist/{boat-CHZti0-T.js.map → boat-BK-KTZEE.js.map} +1 -1
- package/dist/{boat-DrHMgjiX.cjs → boat-CrNTd6Ch.cjs} +2 -2
- package/dist/{boat-DrHMgjiX.cjs.map → boat-CrNTd6Ch.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-N8Ya9262.js → checkbox-BMkDymE4.js} +2 -2
- package/dist/{checkbox-N8Ya9262.js.map → checkbox-BMkDymE4.js.map} +1 -1
- package/dist/{checkbox-DxeljEZx.cjs → checkbox-veUxscIm.cjs} +2 -2
- package/dist/{checkbox-DxeljEZx.cjs.map → checkbox-veUxscIm.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-BFShbTLs.cjs → chips-B0Cs_yqn.cjs} +21 -12
- package/dist/{chips-BFShbTLs.cjs.map → chips-B0Cs_yqn.cjs.map} +1 -1
- package/dist/{chips-D9pCQpJp.js → chips-Ds61GP4u.js} +23 -14
- package/dist/{chips-D9pCQpJp.js.map → chips-Ds61GP4u.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-BHbWcQdG.js → code-preview-BeSz-wVq.js} +3 -3
- package/dist/{code-preview-BHbWcQdG.js.map → code-preview-BeSz-wVq.js.map} +1 -1
- package/dist/{code-preview-D0Tovz9G.cjs → code-preview-z2t9woXK.cjs} +3 -3
- package/dist/{code-preview-D0Tovz9G.cjs.map → code-preview-z2t9woXK.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-BINyvRpA.cjs → date-range-B0dZ-ZxU.cjs} +2 -2
- package/dist/{date-range-BINyvRpA.cjs.map → date-range-B0dZ-ZxU.cjs.map} +1 -1
- package/dist/{date-range-C9dH5nMU.js → date-range-B43RMZey.js} +3 -3
- package/dist/{date-range-C9dH5nMU.js.map → date-range-B43RMZey.js.map} +1 -1
- package/dist/{date-range-inline-BngE5mVB.cjs → date-range-inline-CtscYXNF.cjs} +2 -2
- package/dist/{date-range-inline-BngE5mVB.cjs.map → date-range-inline-CtscYXNF.cjs.map} +1 -1
- package/dist/{date-range-inline-WCeaVllZ.js → date-range-inline-DQdJ-4xz.js} +3 -3
- package/dist/{date-range-inline-WCeaVllZ.js.map → date-range-inline-DQdJ-4xz.js.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-gXEydaD3.js → delay-CUPSl-Ap.js} +2 -2
- package/dist/{delay-gXEydaD3.js.map → delay-CUPSl-Ap.js.map} +1 -1
- package/dist/{delay-C7bWLosy.cjs → delay-Dyic69rg.cjs} +2 -2
- package/dist/{delay-C7bWLosy.cjs.map → delay-Dyic69rg.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-vkuW1krC.js → details-BBjhtq9N.js} +2 -2
- package/dist/{details-vkuW1krC.js.map → details-BBjhtq9N.js.map} +1 -1
- package/dist/{details-DPa1HCmJ.cjs → details-Cg2ECa6Y.cjs} +2 -2
- package/dist/{details-DPa1HCmJ.cjs.map → details-Cg2ECa6Y.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-GjsAatEw.cjs → dialog-content-DG1ZcFps.cjs} +2 -2
- package/dist/{dialog-content-GjsAatEw.cjs.map → dialog-content-DG1ZcFps.cjs.map} +1 -1
- package/dist/{dialog-content-B0SV_jdE.js → dialog-content-lonIiKBc.js} +3 -3
- package/dist/{dialog-content-B0SV_jdE.js.map → dialog-content-lonIiKBc.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-_QCadPBX.js → divider-Dndm7G0s.js} +3 -3
- package/dist/{divider-_QCadPBX.js.map → divider-Dndm7G0s.js.map} +1 -1
- package/dist/{divider-DxqKp5Rb.cjs → divider-DoRb1pt7.cjs} +2 -2
- package/dist/{divider-DxqKp5Rb.cjs.map → divider-DoRb1pt7.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-BETWKOm1.cjs → dropdown-content-38DssXv9.cjs} +2 -2
- package/dist/{dropdown-content-BETWKOm1.cjs.map → dropdown-content-38DssXv9.cjs.map} +1 -1
- package/dist/{dropdown-content-DFQit9eI.js → dropdown-content-DFkRKues.js} +3 -3
- package/dist/{dropdown-content-DFQit9eI.js.map → dropdown-content-DFkRKues.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-CGLyhrII.cjs → email-recipients-Bj8uR1QI.cjs} +2 -2
- package/dist/{email-recipients-CGLyhrII.cjs.map → email-recipients-Bj8uR1QI.cjs.map} +1 -1
- package/dist/{email-recipients-DQyDjfZ0.js → email-recipients-Bvx9gwzv.js} +5 -5
- package/dist/{email-recipients-DQyDjfZ0.js.map → email-recipients-Bvx9gwzv.js.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-BdzuSHtX.js → flex-CPsVuAEB.js} +2 -2
- package/dist/{flex-BdzuSHtX.js.map → flex-CPsVuAEB.js.map} +1 -1
- package/dist/{flex-BbYuzhdg.cjs → flex-Y6PrkJsw.cjs} +2 -2
- package/dist/{flex-BbYuzhdg.cjs.map → flex-Y6PrkJsw.cjs.map} +1 -1
- package/dist/{form-DHdjN-iV.cjs → form-BtOPnoLD.cjs} +2 -2
- package/dist/{form-DHdjN-iV.cjs.map → form-BtOPnoLD.cjs.map} +1 -1
- package/dist/{form-ByWvLdjk.js → form-MS8kORrA.js} +2 -2
- package/dist/{form-ByWvLdjk.js.map → form-MS8kORrA.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-BvjhA8Rz.js → formField.mixin-CZXj_f1X.js} +2 -2
- package/dist/{formField.mixin-BvjhA8Rz.js.map → formField.mixin-CZXj_f1X.js.map} +1 -1
- package/dist/{formField.mixin-C47L98MP.cjs → formField.mixin-DIp1fXAG.cjs} +2 -2
- package/dist/{formField.mixin-C47L98MP.cjs.map → formField.mixin-DIp1fXAG.cjs.map} +1 -1
- package/dist/{icon-JgJFaHaK.cjs → icon-BzPexeAU.cjs} +2 -2
- package/dist/{icon-JgJFaHaK.cjs.map → icon-BzPexeAU.cjs.map} +1 -1
- package/dist/{icon-Ci8q_2UE.js → icon-NnH2gfue.js} +2 -2
- package/dist/{icon-Ci8q_2UE.js.map → icon-NnH2gfue.js.map} +1 -1
- package/dist/{icon-button-D6AnvnyR.cjs → icon-button-DSe3Feog.cjs} +2 -2
- package/dist/{icon-button-D6AnvnyR.cjs.map → icon-button-DSe3Feog.cjs.map} +1 -1
- package/dist/{icon-button-BrR9adoo.js → icon-button-DrQH9kqH.js} +3 -3
- package/dist/{icon-button-BrR9adoo.js.map → icon-button-DrQH9kqH.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 +47 -47
- package/dist/{input-CkWToYUp.js → input-CzU9F4hO.js} +3 -3
- package/dist/{input-CkWToYUp.js.map → input-CzU9F4hO.js.map} +1 -1
- package/dist/{input-PwHKdwKy.cjs → input-DxvDh8ZI.cjs} +2 -2
- package/dist/{input-PwHKdwKy.cjs.map → input-DxvDh8ZI.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-CX86Y2XC.cjs → list-CL0hxvtB.cjs} +2 -2
- package/dist/{list-CX86Y2XC.cjs.map → list-CL0hxvtB.cjs.map} +1 -1
- package/dist/{list-BdHn0KpK.js → list-yOHdUuvO.js} +2 -2
- package/dist/{list-BdHn0KpK.js.map → list-yOHdUuvO.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-CkMWAuts.cjs → litElement.mixin-006uBooN.cjs} +2 -2
- package/dist/{litElement.mixin-CkMWAuts.cjs.map → litElement.mixin-006uBooN.cjs.map} +1 -1
- package/dist/{litElement.mixin-D03SVj4R.js → litElement.mixin-DAYjFyul.js} +2 -2
- package/dist/{litElement.mixin-D03SVj4R.js.map → litElement.mixin-DAYjFyul.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-CYQAoQOV.cjs → map-9_IpEjT1.cjs} +2 -2
- package/dist/{map-CYQAoQOV.cjs.map → map-9_IpEjT1.cjs.map} +1 -1
- package/dist/{map-CIfrwXia.js → map-Dx434ooB.js} +2 -2
- package/dist/{map-CIfrwXia.js.map → map-Dx434ooB.js.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-0bL2h0ht.cjs → media-CAfjltfD.cjs} +2 -2
- package/dist/{media-0bL2h0ht.cjs.map → media-CAfjltfD.cjs.map} +1 -1
- package/dist/{media-BSC1mxJ-.js → media-CeX30RWS.js} +2 -2
- package/dist/{media-BSC1mxJ-.js.map → media-CeX30RWS.js.map} +1 -1
- package/dist/{menu-BO7CfCQI.cjs → menu-CFTDuSxx.cjs} +2 -2
- package/dist/{menu-BO7CfCQI.cjs.map → menu-CFTDuSxx.cjs.map} +1 -1
- package/dist/{menu-B9ZZ4WHF.js → menu-WNUbgj9t.js} +3 -3
- package/dist/{menu-B9ZZ4WHF.js.map → menu-WNUbgj9t.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/{notification-service-ClFjiF0G.cjs → notification-service-BvLTdqgl.cjs} +2 -2
- package/dist/{notification-service-ClFjiF0G.cjs.map → notification-service-BvLTdqgl.cjs.map} +1 -1
- package/dist/{notification-service-BoCflvxa.js → notification-service-DUQ7xT0I.js} +4 -4
- package/dist/{notification-service-BoCflvxa.js.map → notification-service-DUQ7xT0I.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-yJOOWt01.js → notify-2V6TLOj5.js} +2 -2
- package/dist/{notify-yJOOWt01.js.map → notify-2V6TLOj5.js.map} +1 -1
- package/dist/{notify-DGuNoxAT.cjs → notify-D-G4OyTY.cjs} +2 -2
- package/dist/{notify-DGuNoxAT.cjs.map → notify-D-G4OyTY.cjs.map} +1 -1
- package/dist/{option-Dlpzp5ay.cjs → option-DWGmv9r-.cjs} +2 -2
- package/dist/{option-Dlpzp5ay.cjs.map → option-DWGmv9r-.cjs.map} +1 -1
- package/dist/{option-CKdtmOjL.js → option-toJbFctP.js} +2 -2
- package/dist/{option-CKdtmOjL.js.map → option-toJbFctP.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-C3eShNvJ.js → payment-card-form-DyHB-uB8.js} +3 -3
- package/dist/{payment-card-form-C3eShNvJ.js.map → payment-card-form-DyHB-uB8.js.map} +1 -1
- package/dist/{payment-card-form-0ZOeAzl2.cjs → payment-card-form-qTrmbZcH.cjs} +2 -2
- package/dist/{payment-card-form-0ZOeAzl2.cjs.map → payment-card-form-qTrmbZcH.cjs.map} +1 -1
- package/dist/{progress-8AmL3mGg.cjs → progress-BSgYSjQL.cjs} +2 -2
- package/dist/{progress-8AmL3mGg.cjs.map → progress-BSgYSjQL.cjs.map} +1 -1
- package/dist/{progress-DCLvVsj1.js → progress-DbL0K73c.js} +2 -2
- package/dist/{progress-DCLvVsj1.js.map → progress-DbL0K73c.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-DvrHF9aF.js → radio-button-BJHI503c.js} +3 -3
- package/dist/{radio-button-DvrHF9aF.js.map → radio-button-BJHI503c.js.map} +1 -1
- package/dist/{radio-button-BXAynEM0.cjs → radio-button-QTMwWEtn.cjs} +2 -2
- package/dist/{radio-button-BXAynEM0.cjs.map → radio-button-QTMwWEtn.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{route.component-gEKg8wCv.js → route.component-BWTQXJoB.js} +3 -3
- package/dist/{route.component-gEKg8wCv.js.map → route.component-BWTQXJoB.js.map} +1 -1
- package/dist/{route.component-ChTVfEpU.cjs → route.component-CHbEbIka.cjs} +2 -2
- package/dist/{route.component-ChTVfEpU.cjs.map → route.component-CHbEbIka.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-CLs0cxAU.js → schmancy-steps-container-CJ5gT6OU.js} +2 -2
- package/dist/{schmancy-steps-container-CLs0cxAU.js.map → schmancy-steps-container-CJ5gT6OU.js.map} +1 -1
- package/dist/{schmancy-steps-container-CW0vm29u.cjs → schmancy-steps-container-D0B62cm2.cjs} +2 -2
- package/dist/{schmancy-steps-container-CW0vm29u.cjs.map → schmancy-steps-container-D0B62cm2.cjs.map} +1 -1
- package/dist/{select-COniURPf.cjs → select-Cj3hf8jk.cjs} +2 -2
- package/dist/{select-COniURPf.cjs.map → select-Cj3hf8jk.cjs.map} +1 -1
- package/dist/{select-CBc4iitP.js → select-m4hJ9ODj.js} +3 -3
- package/dist/{select-CBc4iitP.js.map → select-m4hJ9ODj.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-DWiK9G7a.cjs → sheet-CZILH5ub.cjs} +2 -2
- package/dist/{sheet-DWiK9G7a.cjs.map → sheet-CZILH5ub.cjs.map} +1 -1
- package/dist/{sheet-DK3K8u-L.js → sheet-DHlKi7sz.js} +3 -3
- package/dist/{sheet-DK3K8u-L.js.map → sheet-DHlKi7sz.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BkEJTxkZ.cjs → slider-BNkh1_XO.cjs} +2 -2
- package/dist/{slider-BkEJTxkZ.cjs.map → slider-BNkh1_XO.cjs.map} +1 -1
- package/dist/{slider-pw7RrHd-.js → slider-Kx2oPYg2.js} +3 -3
- package/dist/{slider-pw7RrHd-.js.map → slider-Kx2oPYg2.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-nQhKzev7.cjs → spinner-Crr2bDKq.cjs} +2 -2
- package/dist/{spinner-nQhKzev7.cjs.map → spinner-Crr2bDKq.cjs.map} +1 -1
- package/dist/{spinner-1wQEakyk.js → spinner-DHrCIT3D.js} +2 -2
- package/dist/{spinner-1wQEakyk.js.map → spinner-DHrCIT3D.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-zW10SCtj.js → surface-DAKCibnv.js} +2 -2
- package/dist/{surface-zW10SCtj.js.map → surface-DAKCibnv.js.map} +1 -1
- package/dist/{surface-BzivH4s_.cjs → surface-DTbjpeLg.cjs} +2 -2
- package/dist/{surface-BzivH4s_.cjs.map → surface-DTbjpeLg.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-DxwOyGAP.js → table-DH3F6prl.js} +2 -2
- package/dist/{table-DxwOyGAP.js.map → table-DH3F6prl.js.map} +1 -1
- package/dist/{table-e_PFi-ae.cjs → table-DnFpFaYl.cjs} +2 -2
- package/dist/{table-e_PFi-ae.cjs.map → table-DnFpFaYl.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-CSsgxakF.cjs → tabs-compatibility-BJHjUWrD.cjs} +2 -2
- package/dist/{tabs-compatibility-CSsgxakF.cjs.map → tabs-compatibility-BJHjUWrD.cjs.map} +1 -1
- package/dist/{tabs-compatibility-MF5SSZLz.js → tabs-compatibility-CpgYOwxT.js} +2 -2
- package/dist/{tabs-compatibility-MF5SSZLz.js.map → tabs-compatibility-CpgYOwxT.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-CWzfUWCy.js +43 -0
- package/dist/{tailwind.mixin-4vALHpnN.js.map → tailwind.mixin-CWzfUWCy.js.map} +1 -1
- package/dist/tailwind.mixin-Tq-L3-9Z.cjs +2 -0
- package/dist/{tailwind.mixin-DTRBuu6Z.cjs.map → tailwind.mixin-Tq-L3-9Z.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DFxMh9Ri.js → textarea-CbRmRLGj.js} +2 -2
- package/dist/{textarea-DFxMh9Ri.js.map → textarea-CbRmRLGj.js.map} +1 -1
- package/dist/{textarea-bcQt-g0b.cjs → textarea-jM9uCEl9.cjs} +2 -2
- package/dist/{textarea-bcQt-g0b.cjs.map → textarea-jM9uCEl9.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-Inp9r41v.js → theme-button-BZOUqXsN.js} +2 -2
- package/dist/{theme-button-Inp9r41v.js.map → theme-button-BZOUqXsN.js.map} +1 -1
- package/dist/{theme-button-DylIPAHj.cjs → theme-button-rZg7hdKW.cjs} +2 -2
- package/dist/{theme-button-DylIPAHj.cjs.map → theme-button-rZg7hdKW.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.component-DH44ct8S.cjs → theme.component-Cg8Fduyp.cjs} +2 -2
- package/dist/{theme.component-DH44ct8S.cjs.map → theme.component-Cg8Fduyp.cjs.map} +1 -1
- package/dist/{theme.component-eJC13Rf2.js → theme.component-FgMMhjVT.js} +2 -2
- package/dist/{theme.component-eJC13Rf2.js.map → theme.component-FgMMhjVT.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-BCxDmIBc.js → timezone-BwMbgslj.js} +3 -3
- package/dist/{timezone-BCxDmIBc.js.map → timezone-BwMbgslj.js.map} +1 -1
- package/dist/{timezone-c-CedJKo.cjs → timezone-CONs47rh.cjs} +2 -2
- package/dist/{timezone-c-CedJKo.cjs.map → timezone-CONs47rh.cjs.map} +1 -1
- package/dist/{tooltip-BcFaPEpk.cjs → tooltip-Bw7AzLMA.cjs} +2 -2
- package/dist/{tooltip-BcFaPEpk.cjs.map → tooltip-Bw7AzLMA.cjs.map} +1 -1
- package/dist/{tooltip-BjEmpAF2.js → tooltip-JZ8dVPkX.js} +2 -2
- package/dist/{tooltip-BjEmpAF2.js.map → tooltip-JZ8dVPkX.js.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-BQsHVUa2.js → tree-BUrkI5Fj.js} +2 -2
- package/dist/{tree-BQsHVUa2.js.map → tree-BUrkI5Fj.js.map} +1 -1
- package/dist/{tree-zQ0JPcsx.cjs → tree-d4yIiFCU.cjs} +2 -2
- package/dist/{tree-zQ0JPcsx.cjs.map → tree-d4yIiFCU.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-D9lcUV7j.cjs → typewriter-D8Ff4Xo8.cjs} +2 -2
- package/dist/{typewriter-D9lcUV7j.cjs.map → typewriter-D8Ff4Xo8.cjs.map} +1 -1
- package/dist/{typewriter-DiPhW97Q.js → typewriter-TQEc6iI1.js} +4 -4
- package/dist/{typewriter-DiPhW97Q.js.map → typewriter-TQEc6iI1.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DbhS5CmR.js → typography-9ExiG9JA.js} +2 -2
- package/dist/{typography-DbhS5CmR.js.map → typography-9ExiG9JA.js.map} +1 -1
- package/dist/{typography-CH4NmKXT.cjs → typography-DLVRocZl.cjs} +2 -2
- package/dist/{typography-CH4NmKXT.cjs.map → typography-DLVRocZl.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/dist/tailwind.mixin-4vALHpnN.js +0 -43
- package/dist/tailwind.mixin-DTRBuu6Z.cjs +0 -2
package/dist/ai/area.md
CHANGED
|
@@ -27,27 +27,27 @@ Define routes declaratively with segment matching and guards.
|
|
|
27
27
|
```html
|
|
28
28
|
<!-- Simple route -->
|
|
29
29
|
<schmancy-route
|
|
30
|
-
when="
|
|
30
|
+
when="products" <!-- Matches 'products' segment in URL -->
|
|
31
31
|
component="product-list"
|
|
32
32
|
exact>
|
|
33
33
|
</schmancy-route>
|
|
34
34
|
|
|
35
|
-
<!--
|
|
35
|
+
<!-- Component tag name matching -->
|
|
36
36
|
<schmancy-route
|
|
37
|
-
when="
|
|
37
|
+
when="product-detail" <!-- Matches when component is 'product-detail' -->
|
|
38
38
|
component="product-detail">
|
|
39
39
|
</schmancy-route>
|
|
40
40
|
|
|
41
41
|
<!-- Route with guard -->
|
|
42
42
|
<schmancy-route
|
|
43
|
-
when="
|
|
43
|
+
when="admin" <!-- Matches 'admin' segment anywhere in URL -->
|
|
44
44
|
component="admin-panel"
|
|
45
45
|
.guard=${() => isAuthenticated()}>
|
|
46
46
|
</schmancy-route>
|
|
47
47
|
|
|
48
48
|
<!-- Route with default component -->
|
|
49
49
|
<schmancy-route
|
|
50
|
-
when="
|
|
50
|
+
when="dashboard"
|
|
51
51
|
component="dashboard-main"
|
|
52
52
|
default="dashboard-overview">
|
|
53
53
|
</schmancy-route>
|
|
@@ -66,7 +66,7 @@ Define routes declaratively with segment matching and guards.
|
|
|
66
66
|
|
|
67
67
|
| Property | Type | Description |
|
|
68
68
|
|----------|------|-------------|
|
|
69
|
-
| `when` | `string` | **Required**. URL segment
|
|
69
|
+
| `when` | `string` | **Required**. URL segment name OR component tag name to match. NOT a full path! |
|
|
70
70
|
| `component` | `any` | Component to render when route matches (string, constructor, element). |
|
|
71
71
|
| `exact` | `boolean` | Whether route should match exactly (default: false). |
|
|
72
72
|
| `guard` | `() => GuardResult \| Promise<GuardResult>` | Navigation guard function returning boolean, string, or redirect object. |
|
|
@@ -76,21 +76,25 @@ Define routes declaratively with segment matching and guards.
|
|
|
76
76
|
The `when` attribute supports powerful segment-based routing:
|
|
77
77
|
|
|
78
78
|
```html
|
|
79
|
-
<!--
|
|
80
|
-
<schmancy-route when="
|
|
79
|
+
<!-- Segment name matching -->
|
|
80
|
+
<schmancy-route when="home" component="home-page"></schmancy-route>
|
|
81
|
+
<!-- Matches: /home, /app/home, any URL containing 'home' segment -->
|
|
81
82
|
|
|
82
|
-
<!--
|
|
83
|
-
<schmancy-route when="
|
|
83
|
+
<!-- Component name matching -->
|
|
84
|
+
<schmancy-route when="user-profile" component="user-profile"></schmancy-route>
|
|
85
|
+
<!-- Matches when routing to 'user-profile' component -->
|
|
84
86
|
|
|
85
|
-
<!--
|
|
86
|
-
<schmancy-route when="
|
|
87
|
+
<!-- Admin section matching -->
|
|
88
|
+
<schmancy-route when="admin" component="admin-layout"></schmancy-route>
|
|
89
|
+
<!-- Matches: /admin, /admin/users, /app/admin, etc. -->
|
|
87
90
|
|
|
88
|
-
<!--
|
|
89
|
-
<schmancy-route when="
|
|
91
|
+
<!-- Product section matching -->
|
|
92
|
+
<schmancy-route when="products" component="product-list"></schmancy-route>
|
|
93
|
+
<!-- Matches: /products, /store/products, /products/123, etc. -->
|
|
90
94
|
|
|
91
|
-
<!--
|
|
92
|
-
<schmancy-route when="
|
|
93
|
-
<!-- Matches
|
|
95
|
+
<!-- About page matching -->
|
|
96
|
+
<schmancy-route when="about" component="about-page"></schmancy-route>
|
|
97
|
+
<!-- Matches: /about, /info/about, /about/team, etc. -->
|
|
94
98
|
```
|
|
95
99
|
|
|
96
100
|
### Segment Matching Rules
|
|
@@ -107,21 +111,21 @@ Guards protect routes and can redirect navigation:
|
|
|
107
111
|
```typescript
|
|
108
112
|
// Boolean guard - simple allow/deny
|
|
109
113
|
<schmancy-route
|
|
110
|
-
when="
|
|
114
|
+
when="admin"
|
|
111
115
|
component="admin-panel"
|
|
112
116
|
.guard=${() => user.isAdmin}>
|
|
113
117
|
</schmancy-route>
|
|
114
118
|
|
|
115
119
|
// String guard - redirect to path
|
|
116
120
|
<schmancy-route
|
|
117
|
-
when="
|
|
121
|
+
when="profile"
|
|
118
122
|
component="user-profile"
|
|
119
123
|
.guard=${() => isAuthenticated() || '/login'}>
|
|
120
124
|
</schmancy-route>
|
|
121
125
|
|
|
122
126
|
// Object guard - redirect with explicit syntax
|
|
123
127
|
<schmancy-route
|
|
124
|
-
when="
|
|
128
|
+
when="settings"
|
|
125
129
|
component="settings-page"
|
|
126
130
|
.guard=${() => {
|
|
127
131
|
if (!isAuthenticated()) {
|
|
@@ -136,7 +140,7 @@ Guards protect routes and can redirect navigation:
|
|
|
136
140
|
|
|
137
141
|
// Async guard - check with backend
|
|
138
142
|
<schmancy-route
|
|
139
|
-
when="
|
|
143
|
+
when="premium"
|
|
140
144
|
component="premium-content"
|
|
141
145
|
.guard=${async () => {
|
|
142
146
|
const subscription = await checkSubscription();
|
|
@@ -162,7 +166,7 @@ Create complex nested routing structures:
|
|
|
162
166
|
```html
|
|
163
167
|
<!-- Parent component with nested routes -->
|
|
164
168
|
<schmancy-route
|
|
165
|
-
when="
|
|
169
|
+
when="app" <!-- Matches 'app' segment in URL -->
|
|
166
170
|
component="app-layout"
|
|
167
171
|
default="app-dashboard">
|
|
168
172
|
|
|
@@ -170,11 +174,11 @@ Create complex nested routing structures:
|
|
|
170
174
|
<div class="app-container">
|
|
171
175
|
<nav>...</nav>
|
|
172
176
|
<schmancy-area name="app-content">
|
|
173
|
-
<!-- Nested routes -->
|
|
174
|
-
<schmancy-route when="
|
|
175
|
-
<schmancy-route when="
|
|
176
|
-
<schmancy-route when="
|
|
177
|
-
<schmancy-route when="
|
|
177
|
+
<!-- Nested routes also use segment matching -->
|
|
178
|
+
<schmancy-route when="dashboard" component="app-dashboard"></schmancy-route>
|
|
179
|
+
<schmancy-route when="users" component="user-list"></schmancy-route>
|
|
180
|
+
<schmancy-route when="user-detail" component="user-detail"></schmancy-route>
|
|
181
|
+
<schmancy-route when="settings" component="settings-layout">
|
|
178
182
|
<!-- Even deeper nesting in settings-layout -->
|
|
179
183
|
</schmancy-route>
|
|
180
184
|
</schmancy-area>
|
|
@@ -187,17 +191,17 @@ Create complex nested routing structures:
|
|
|
187
191
|
```html
|
|
188
192
|
<!-- Root level -->
|
|
189
193
|
<schmancy-area name="root">
|
|
190
|
-
<schmancy-route when="
|
|
194
|
+
<schmancy-route when="" component="app-shell" default="home-page"> <!-- Empty when = catch-all -->
|
|
191
195
|
|
|
192
196
|
<!-- Inside app-shell -->
|
|
193
197
|
<schmancy-area name="main">
|
|
194
|
-
<schmancy-route when="
|
|
198
|
+
<schmancy-route when="products" component="product-layout">
|
|
195
199
|
|
|
196
200
|
<!-- Inside product-layout -->
|
|
197
201
|
<schmancy-area name="product-content">
|
|
198
|
-
<schmancy-route when="
|
|
199
|
-
<schmancy-route when="
|
|
200
|
-
<schmancy-route when="
|
|
202
|
+
<schmancy-route when="product-list" component="product-list"></schmancy-route>
|
|
203
|
+
<schmancy-route when="product-detail" component="product-detail"></schmancy-route>
|
|
204
|
+
<schmancy-route when="reviews" component="product-reviews"></schmancy-route>
|
|
201
205
|
</schmancy-area>
|
|
202
206
|
|
|
203
207
|
</schmancy-route>
|
|
@@ -275,25 +279,26 @@ area.push({
|
|
|
275
279
|
```html
|
|
276
280
|
<schmancy-area name="main">
|
|
277
281
|
<!-- Public routes -->
|
|
278
|
-
<schmancy-route when="
|
|
279
|
-
<schmancy-route when="
|
|
282
|
+
<schmancy-route when="home" component="home-page"></schmancy-route>
|
|
283
|
+
<schmancy-route when="about" component="about-page"></schmancy-route>
|
|
280
284
|
|
|
281
285
|
<!-- Protected routes -->
|
|
282
286
|
<schmancy-route
|
|
283
|
-
when="
|
|
287
|
+
when="dashboard"
|
|
284
288
|
component="dashboard-layout"
|
|
285
289
|
.guard=${() => isAuthenticated() || '/login'}>
|
|
286
290
|
</schmancy-route>
|
|
287
291
|
|
|
288
292
|
<!-- Admin only -->
|
|
289
293
|
<schmancy-route
|
|
290
|
-
when="
|
|
294
|
+
when="admin"
|
|
291
295
|
component="admin-panel"
|
|
292
296
|
.guard=${() => hasRole('admin') || { redirect: '/unauthorized' }}>
|
|
293
297
|
</schmancy-route>
|
|
294
298
|
|
|
295
299
|
<!-- Catch-all route (should be last) -->
|
|
296
|
-
|
|
300
|
+
<!-- Note: Empty 'when' will match any route not matched above -->
|
|
301
|
+
<schmancy-route when="" component="not-found-page"></schmancy-route>
|
|
297
302
|
</schmancy-area>
|
|
298
303
|
```
|
|
299
304
|
|
|
@@ -345,16 +350,16 @@ Default components provide fallback UI when no route matches:
|
|
|
345
350
|
```html
|
|
346
351
|
<!-- Area-level default -->
|
|
347
352
|
<schmancy-area name="main" default="welcome-page">
|
|
348
|
-
<schmancy-route when="
|
|
349
|
-
<!-- Shows welcome-page when
|
|
353
|
+
<schmancy-route when="products" component="product-list"></schmancy-route>
|
|
354
|
+
<!-- Shows welcome-page when no route matches -->
|
|
350
355
|
</schmancy-area>
|
|
351
356
|
|
|
352
357
|
<!-- Route-level default for nested routing -->
|
|
353
358
|
<schmancy-route
|
|
354
|
-
when="
|
|
359
|
+
when="app"
|
|
355
360
|
component="app-layout"
|
|
356
361
|
default="app-dashboard">
|
|
357
|
-
<!-- Shows app-dashboard
|
|
362
|
+
<!-- Shows app-dashboard as default content inside app-layout -->
|
|
358
363
|
</schmancy-route>
|
|
359
364
|
```
|
|
360
365
|
|
|
@@ -365,16 +370,16 @@ Default components provide fallback UI when no route matches:
|
|
|
365
370
|
```html
|
|
366
371
|
<!-- Order routes from most specific to least specific -->
|
|
367
372
|
<schmancy-area name="main">
|
|
368
|
-
<!--
|
|
369
|
-
<schmancy-route when="
|
|
370
|
-
<schmancy-route when="
|
|
371
|
-
<schmancy-route when="
|
|
373
|
+
<!-- More specific component names first -->
|
|
374
|
+
<schmancy-route when="product-create" component="product-create"></schmancy-route>
|
|
375
|
+
<schmancy-route when="product-edit" component="product-edit"></schmancy-route>
|
|
376
|
+
<schmancy-route when="product-detail" component="product-detail"></schmancy-route>
|
|
372
377
|
|
|
373
|
-
<!-- General
|
|
374
|
-
<schmancy-route when="
|
|
378
|
+
<!-- General segment names -->
|
|
379
|
+
<schmancy-route when="products" component="product-list"></schmancy-route>
|
|
375
380
|
|
|
376
|
-
<!--
|
|
377
|
-
<schmancy-route when="
|
|
381
|
+
<!-- Catch-all (empty when) last -->
|
|
382
|
+
<schmancy-route when="" component="not-found"></schmancy-route>
|
|
378
383
|
</schmancy-area>
|
|
379
384
|
```
|
|
380
385
|
|
|
@@ -395,7 +400,7 @@ const premiumAdminGuard = () => {
|
|
|
395
400
|
};
|
|
396
401
|
|
|
397
402
|
<schmancy-route
|
|
398
|
-
when="
|
|
403
|
+
when="premium-admin"
|
|
399
404
|
component="premium-admin-panel"
|
|
400
405
|
.guard=${premiumAdminGuard}>
|
|
401
406
|
</schmancy-route>
|
|
@@ -415,8 +420,8 @@ class AppLayout extends LitElement {
|
|
|
415
420
|
</nav>
|
|
416
421
|
|
|
417
422
|
<schmancy-area name="app-content">
|
|
418
|
-
<schmancy-route when="
|
|
419
|
-
<schmancy-route when="
|
|
423
|
+
<schmancy-route when="dashboard" component="dashboard"></schmancy-route>
|
|
424
|
+
<schmancy-route when="users" component="users-module"></schmancy-route>
|
|
420
425
|
</schmancy-area>
|
|
421
426
|
</div>
|
|
422
427
|
`;
|
|
@@ -451,7 +456,7 @@ area.push({
|
|
|
451
456
|
|
|
452
457
|
// Use with declarative routes
|
|
453
458
|
<schmancy-route
|
|
454
|
-
when="
|
|
459
|
+
when="analytics"
|
|
455
460
|
.component=${LazyAnalytics}
|
|
456
461
|
.guard=${() => hasFeature('analytics') || '/upgrade'}>
|
|
457
462
|
</schmancy-route>
|
|
@@ -630,7 +635,7 @@ The traditional dynamic import method is still supported:
|
|
|
630
635
|
```typescript
|
|
631
636
|
// Direct dynamic import (without lazy helper)
|
|
632
637
|
<schmancy-route
|
|
633
|
-
when="
|
|
638
|
+
when="analytics"
|
|
634
639
|
.component=${() => import('./analytics-dashboard.js').then(m => m.AnalyticsDashboard)}
|
|
635
640
|
.guard=${() => hasFeature('analytics') || '/upgrade'}>
|
|
636
641
|
</schmancy-route>
|
|
@@ -691,8 +696,8 @@ if (path === '/products') {
|
|
|
691
696
|
```html
|
|
692
697
|
<!-- New declarative approach -->
|
|
693
698
|
<schmancy-area name="main">
|
|
694
|
-
<schmancy-route when="
|
|
695
|
-
<schmancy-route when="
|
|
699
|
+
<schmancy-route when="products" component="product-list"></schmancy-route>
|
|
700
|
+
<schmancy-route when="product-detail" component="product-detail"></schmancy-route>
|
|
696
701
|
</schmancy-area>
|
|
697
702
|
```
|
|
698
703
|
|
|
@@ -716,7 +721,7 @@ area.on('protected-area').pipe(
|
|
|
716
721
|
```html
|
|
717
722
|
<!-- Built-in guard support -->
|
|
718
723
|
<schmancy-route
|
|
719
|
-
when="
|
|
724
|
+
when="protected"
|
|
720
725
|
component="protected-content"
|
|
721
726
|
.guard=${() => isAuthenticated() || '/login'}>
|
|
722
727
|
</schmancy-route>
|
|
@@ -730,18 +735,19 @@ area.on('protected-area').pipe(
|
|
|
730
735
|
<schmancy-area name="root">
|
|
731
736
|
<!-- Tenant detection route -->
|
|
732
737
|
<schmancy-route
|
|
733
|
-
when="
|
|
738
|
+
when="tenant-app" <!-- Matches based on component tag name -->
|
|
734
739
|
component="tenant-app"
|
|
735
|
-
.guard=${async (
|
|
740
|
+
.guard=${async (params) => {
|
|
741
|
+
const tenant = params.tenant;
|
|
736
742
|
const isValid = await validateTenant(tenant);
|
|
737
743
|
return isValid || { redirect: '/invalid-tenant' };
|
|
738
744
|
}}>
|
|
739
745
|
|
|
740
746
|
<!-- Inside tenant-app -->
|
|
741
747
|
<schmancy-area name="tenant-content">
|
|
742
|
-
<schmancy-route when="
|
|
743
|
-
<schmancy-route when="
|
|
744
|
-
<schmancy-route when="
|
|
748
|
+
<schmancy-route when="dashboard" component="tenant-dashboard"></schmancy-route>
|
|
749
|
+
<schmancy-route when="users" component="tenant-users"></schmancy-route>
|
|
750
|
+
<schmancy-route when="settings" component="tenant-settings"></schmancy-route>
|
|
745
751
|
</schmancy-area>
|
|
746
752
|
|
|
747
753
|
</schmancy-route>
|
|
@@ -751,23 +757,23 @@ area.on('protected-area').pipe(
|
|
|
751
757
|
### Wizard/Step Navigation
|
|
752
758
|
|
|
753
759
|
```html
|
|
754
|
-
<schmancy-route when="
|
|
760
|
+
<schmancy-route when="onboarding" component="onboarding-wizard">
|
|
755
761
|
<!-- Inside onboarding-wizard -->
|
|
756
762
|
<schmancy-area name="wizard-step">
|
|
757
763
|
<schmancy-route
|
|
758
|
-
when="
|
|
764
|
+
when="profile"
|
|
759
765
|
component="step-profile"
|
|
760
766
|
.guard=${() => hasCompletedStep(0) || '/onboarding/welcome'}>
|
|
761
767
|
</schmancy-route>
|
|
762
768
|
|
|
763
769
|
<schmancy-route
|
|
764
|
-
when="
|
|
770
|
+
when="preferences"
|
|
765
771
|
component="step-preferences"
|
|
766
772
|
.guard=${() => hasCompletedStep(1) || '/onboarding/profile'}>
|
|
767
773
|
</schmancy-route>
|
|
768
774
|
|
|
769
775
|
<schmancy-route
|
|
770
|
-
when="
|
|
776
|
+
when="complete"
|
|
771
777
|
component="step-complete"
|
|
772
778
|
.guard=${() => hasCompletedStep(2) || '/onboarding/preferences'}>
|
|
773
779
|
</schmancy-route>
|
|
@@ -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-CWzfUWCy.js";
|
|
6
|
+
import { $ as Z } from "./litElement.mixin-DAYjFyul.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-BBFb6BUA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-text-CLWwT8SD.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-BBFb6BUA.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("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-Tq-L3-9Z.cjs");const h=require("./litElement.mixin-006uBooN.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-BzF1me9y.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-text-Btjma28b.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-BzF1me9y.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-BzF1me9y.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-BBFb6BUA.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("./route.component-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./route.component-CHbEbIka.cjs"),e=require("./lazy-DObpkuL6.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.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,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
|
package/dist/area.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as s, H as t, c as o, S as r, a as c, b as m, r as u } from "./route.component-
|
|
1
|
+
import { F as s, H as t, c as o, S as r, a as c, b as m, r as u } from "./route.component-BWTQXJoB.js";
|
|
2
2
|
import { l as n, h as i, c as S, f as d, j as y, a as g, b as p, d as T, e as b, k as l, g as E, i as I, m as h, n as A, s as C } from "./lazy-E2LCDm7n.js";
|
|
3
3
|
export {
|
|
4
4
|
s as FINDING_MORTIES,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const h=require("rxjs"),y=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const u=require("lit/decorators.js");require("./tailwind.mixin-
|
|
1
|
+
"use strict";const h=require("rxjs"),y=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const u=require("lit/decorators.js");require("./tailwind.mixin-Tq-L3-9Z.cjs");const f=require("./litElement.mixin-006uBooN.cjs"),b=require("lit"),$=require("lit/directives/ref.js"),i=require("rxjs/operators"),_=require("./search-DWW8IoOp.cjs");var x=Object.defineProperty,g=Object.getOwnPropertyDescriptor,r=(e,t,o,s)=>{for(var n,l=s>1?void 0:s?g(t,o):t,p=e.length-1;p>=0;p--)(n=e[p])&&(l=(s?n(t,o,l):n(l))||l);return s&&l&&x(t,o,l),l};let a=class extends f.$LitElement(":host{display:block;border:unset!important;line-height:unset!important;background:unset!important;padding:unset!important;font-size:unset!important;box-shadow:unset!important}:host:focus{box-shadow:unset!important}@keyframes onAutoFillStart{}sch-input::part(input):-webkit-autofill,sch-input input:-webkit-autofill{animation-name:onAutoFillStart;animation-duration:1ms}"){constructor(){super(...arguments),this.required=!1,this.placeholder="",this.label="",this.name="",this.maxHeight="300px",this.multi=!1,this.description="",this.size="md",this.autocomplete="on",this.debounceMs=200,this.similarityThreshold=.3,this._open=!1,this._inputValue="",this._visibleOptionsCount=0,this._hasResults=!0,this._inputElementRef=$.createRef(),this._selectedValue$=new h.BehaviorSubject(""),this._selectedValues$=new h.BehaviorSubject([]),this._inputValue$=new h.BehaviorSubject(""),this._open$=new h.BehaviorSubject(!1),this._options$=new h.BehaviorSubject([]),this._optionSelect$=new h.Subject,this._documentClick$=new h.Subject}get values(){return[...this._selectedValues$.value]}set values(e){this._selectedValues$.next(Array.isArray(e)?[...e]:[])}get value(){return this.multi?this._selectedValues$.value.join(","):this._selectedValue$.value}set value(e){this.multi?this._selectedValues$.next(e?e.split(",").map(t=>t.trim()).filter(Boolean):[]):this._selectedValue$.next(e)}connectedCallback(){super.connectedCallback(),this.id||(this.id=`sch-autocomplete-${Math.random().toString(36).slice(2,9)}`),this._setupAutocompleteLogic(),this._setupDocumentClickHandler()}_setupAutocompleteLogic(){this._options$.pipe(i.tap(e=>{e.forEach((t,o)=>{t.setAttribute("role","option"),t.tabIndex=-1,t.id||(t.id=`${this.id}-option-${o}`),t.hasAttribute("data-event-bound")||(h.fromEvent(t,"pointerdown").pipe(i.tap(s=>{s.preventDefault(),s.stopPropagation()}),i.takeUntil(this.disconnecting)).subscribe(()=>this._optionSelect$.next(t)),t.setAttribute("data-event-bound","true"))})}),i.takeUntil(this.disconnecting)).subscribe(),h.combineLatest([this._selectedValue$,this._selectedValues$,this._options$]).pipe(i.tap(([e,t,o])=>{o.forEach(s=>{s.selected=this.multi?t.includes(s.value):s.value===e,s.setAttribute("aria-selected",String(s.selected))})}),i.takeUntil(this.disconnecting)).subscribe(),this._inputValue$.pipe(i.distinctUntilChanged(),i.debounceTime(this.debounceMs),i.withLatestFrom(this._options$,this._open$),i.tap(([e,t,o])=>{if(!o)return;const s=e.trim();if(s){const n=t.map(p=>{const c=p.label||p.textContent||"",d=p.value,m=_.similarity(s,c),v=_.similarity(s,d);return{option:p,score:Math.max(1.1*m,v)}});n.sort((p,c)=>c.score-p.score);let l=0;n.forEach((p,c)=>{const{option:d,score:m}=p;m<this.similarityThreshold?d.hidden=!0:(d.hidden=!1,l++,d.style.order=String(c))}),this._visibleOptionsCount=l,this._hasResults=l>0}else t.forEach(n=>{n.hidden=!1,n.style.order="0"}),this._visibleOptionsCount=t.length,this._hasResults=!0;this._announceToScreenReader(this._visibleOptionsCount>0?`${this._visibleOptionsCount} option${this._visibleOptionsCount===1?"":"s"} available.`:"No results found.")}),i.takeUntil(this.disconnecting)).subscribe(),this._optionSelect$.pipe(i.withLatestFrom(this._selectedValue$,this._selectedValues$),i.tap(([e,t,o])=>{if(this.multi){const s=o.indexOf(e.value),n=s>-1?[...o.slice(0,s),...o.slice(s+1)]:[...o,e.value];this._selectedValues$.next(n),this._inputValue$.next(""),this._inputValue="";const l=this._getSelectedLabels();this._announceToScreenReader(l.length>0?`Selected: ${l.join(", ")}`:"No options selected")}else this._selectedValue$.next(e.value),this._open$.next(!1),this._open=!1,this._inputValue=e.label||e.textContent||"",this._inputValue$.next(this._inputValue),h.timer(100).pipe(i.tap(()=>this._inputElementRef.value?.blur()),i.take(1)).subscribe(),this._announceToScreenReader(`Selected: ${e.label||e.textContent}`)}),i.tap(()=>this._fireChangeEvent()),i.takeUntil(this.disconnecting)).subscribe(),h.combineLatest([this._open$,this._selectedValue$,this._selectedValues$,this._options$]).pipe(i.filter(()=>!this._open$.value),i.tap(([,e,t,o])=>{if(this.multi){const s=o.filter(n=>t.includes(n.value)).map(n=>n.label||n.textContent||"");this._inputValue=s.join(", ")}else{const s=o.find(n=>n.value===e);this._inputValue=s&&(s.label||s.textContent)||""}this._inputValue$.next(this._inputValue)}),i.takeUntil(this.disconnecting)).subscribe(),this._open$.pipe(i.tap(e=>this._open=e),i.takeUntil(this.disconnecting)).subscribe()}_setupDocumentClickHandler(){this._documentClick$.pipe(i.filter(e=>!e.composedPath().includes(this)),i.filter(e=>!this._options.some(t=>e.composedPath().includes(t))),i.filter(()=>this._open),i.tap(()=>{this._open$.next(!1),this._updateInputDisplay()}),i.takeUntil(this.disconnecting)).subscribe(),this._open$.pipe(i.distinctUntilChanged(),i.switchMap(e=>e?h.timer(10).pipe(i.tap(()=>document.addEventListener("click",t=>this._documentClick$.next(t))),i.switchMap(()=>h.EMPTY)):h.of(null).pipe(i.tap(()=>document.removeEventListener("click",t=>this._documentClick$.next(t))))),i.takeUntil(this.disconnecting)).subscribe()}_updateInputDisplay(){h.of(null).pipe(i.withLatestFrom(this._selectedValue$,this._selectedValues$,this._options$,this._open$),i.tap(([,e,t,o,s])=>{if(this._inputElementRef.value&&(!s||!this.multi)){if(this.multi){const n=o.filter(l=>t.includes(l.value)).map(l=>l.label||l.textContent||"");this._inputValue=n.join(", ")}else{const n=o.find(l=>l.value===e);this._inputValue=n&&(n.label||n.textContent)||""}this._inputValue$.next(this._inputValue),this._inputElementRef.value.value=this._inputValue}}),i.take(1)).subscribe()}_getSelectedLabels(){return this._options.filter(e=>this.multi?this._selectedValues$.value.includes(e.value):e.value===this._selectedValue$.value).map(e=>e.label||e.textContent||"")}_announceToScreenReader(e){const t=this.shadowRoot?.querySelector("#live-status");t&&(t.textContent=e)}_fireChangeEvent(){const e={value:this.value};this.multi&&(e.values=[...this._selectedValues$.value]),this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0,composed:!0}))}checkValidity(){return!this.required||(this.multi?this._selectedValues$.value.length>0:!!this._selectedValue$.value)}reportValidity(){return this._inputElementRef.value?this._inputElementRef.value.reportValidity():this.checkValidity()}firstUpdated(){}render(){const e=`${this.id}-desc`;return b.html`
|
|
2
2
|
<div class="relative">
|
|
3
3
|
<!-- Screen reader live region -->
|
|
4
4
|
<div id="live-status" role="status" aria-live="polite" class="sr-only"></div>
|
|
@@ -54,4 +54,4 @@
|
|
|
54
54
|
</ul>
|
|
55
55
|
</div>
|
|
56
56
|
`}_handleAutoSelectOnBlur(){if(this.multi||!this._open||!this._inputValue.trim())return;const e=this._inputValue.trim();let t=null,o=0;this._options.forEach(s=>{if(s.hidden)return;const n=s.label||s.textContent||"",l=s.value,p=_.similarity(e,n),c=_.similarity(e,l),d=Math.max(1.1*p,c);d>o&&d>=this.similarityThreshold&&(o=d,t=s)}),t&&(this._optionSelect$.next(t),this._open$.next(!1),this._open=!1)}_handleKeyDown(e){h.fromEvent(document,"keydown").pipe(i.take(1),i.withLatestFrom(this._open$,this._options$),i.tap(([t,o,s])=>{if(!o&&(t.key==="ArrowDown"||t.key==="Enter"))return t.preventDefault(),this._open$.next(!0),void h.timer(10).pipe(i.tap(()=>{s.find(d=>!d.hidden)?.focus()}),i.take(1)).subscribe();if(!o)return;const n=s.filter(c=>!c.hidden).sort((c,d)=>parseInt(c.style.order||"0")-parseInt(d.style.order||"0")),l=n.find(c=>c===document.activeElement),p=l?n.indexOf(l):-1;switch(t.key){case"Escape":t.preventDefault(),this._open$.next(!1),this._updateInputDisplay(),this._inputElementRef.value?.focus();break;case"Tab":this._open$.next(!1),this._updateInputDisplay();break;case"ArrowDown":t.preventDefault();const c=p<n.length-1?p+1:0;n[c]?.focus();break;case"ArrowUp":t.preventDefault();const d=p>0?p-1:n.length-1;n[d]?.focus();break;case"Home":t.preventDefault(),n[0]?.focus();break;case"End":t.preventDefault(),n[n.length-1]?.focus();break;case"Enter":case" ":l&&(t.preventDefault(),this._optionSelect$.next(l))}})).subscribe()}};r([u.property({type:Boolean})],a.prototype,"required",2),r([u.property({type:String})],a.prototype,"placeholder",2),r([u.property({type:String,reflect:!0})],a.prototype,"label",2),r([u.property({type:String})],a.prototype,"name",2),r([u.property({type:String})],a.prototype,"maxHeight",2),r([u.property({type:Boolean})],a.prototype,"multi",2),r([u.property({type:String})],a.prototype,"description",2),r([u.property({type:String,reflect:!0})],a.prototype,"size",2),r([u.property({type:String})],a.prototype,"autocomplete",2),r([u.property({type:Number})],a.prototype,"debounceMs",2),r([u.property({type:Number})],a.prototype,"similarityThreshold",2),r([u.property({type:Array})],a.prototype,"values",1),r([u.property({type:String,reflect:!0})],a.prototype,"value",1),r([u.state()],a.prototype,"_open",2),r([u.state()],a.prototype,"_inputValue",2),r([u.state()],a.prototype,"_visibleOptionsCount",2),r([u.state()],a.prototype,"_hasResults",2),r([u.query("#options")],a.prototype,"_listbox",2),r([u.query("sch-input")],a.prototype,"_input",2),r([u.queryAssignedElements({flatten:!0})],a.prototype,"_options",2),a=r([u.customElement("schmancy-autocomplete")],a);
|
|
57
|
-
//# sourceMappingURL=autocomplete-
|
|
57
|
+
//# sourceMappingURL=autocomplete-B1tq2699.cjs.map
|