@mhmo91/schmancy 0.5.44 → 0.5.46
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/content-drawer.md +90 -160
- package/dist/ai/content-drawer.md +90 -160
- package/dist/{animated-text-Dr32Ckh7.cjs → animated-text-2eNprXDV.cjs} +2 -2
- package/dist/{animated-text-Dr32Ckh7.cjs.map → animated-text-2eNprXDV.cjs.map} +1 -1
- package/dist/{animated-text-CPA937x-.js → animated-text-CCfSintu.js} +3 -3
- package/dist/{animated-text-CPA937x-.js.map → animated-text-CCfSintu.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-DAPQYHtN.cjs +12 -0
- package/dist/area.component-DAPQYHtN.cjs.map +1 -0
- package/dist/{area.component-CgAISzZ3.js → area.component-DUGxsL2-.js} +38 -38
- package/dist/area.component-DUGxsL2-.js.map +1 -0
- package/dist/area.js +1 -1
- package/dist/autocomplete-CbsmZ0p6.cjs +112 -0
- package/dist/autocomplete-CbsmZ0p6.cjs.map +1 -0
- package/dist/{autocomplete--0ZoSIp0.js → autocomplete-Dcw5go_X.js} +47 -46
- package/dist/autocomplete-Dcw5go_X.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-BixWcgH7.js → avatar-CcHlQTbR.js} +207 -191
- package/dist/avatar-CcHlQTbR.js.map +1 -0
- package/dist/{avatar-5cjrkZS5.cjs → avatar-D93Sjal-.cjs} +39 -52
- package/dist/avatar-D93Sjal-.cjs.map +1 -0
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-Bou0hRnM.js → boat-Ct95p20s.js} +3 -3
- package/dist/{boat-Bou0hRnM.js.map → boat-Ct95p20s.js.map} +1 -1
- package/dist/{boat-CkkEmZcE.cjs → boat-pwsR3UrD.cjs} +2 -2
- package/dist/{boat-CkkEmZcE.cjs.map → boat-pwsR3UrD.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-DODyS0zq.cjs → checkbox-BXpnd4MJ.cjs} +2 -2
- package/dist/{checkbox-DODyS0zq.cjs.map → checkbox-BXpnd4MJ.cjs.map} +1 -1
- package/dist/{checkbox-D8ZJSnVa.js → checkbox-DedHgVWe.js} +2 -2
- package/dist/{checkbox-D8ZJSnVa.js.map → checkbox-DedHgVWe.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-BZmBRwu-.cjs → code-preview-DC1nnjD6.cjs} +2 -2
- package/dist/{code-preview-BZmBRwu-.cjs.map → code-preview-DC1nnjD6.cjs.map} +1 -1
- package/dist/{code-preview-CTnFGeWr.js → code-preview-DmYqwM0J.js} +2 -2
- package/dist/{code-preview-CTnFGeWr.js.map → code-preview-DmYqwM0J.js.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-CoETNfZb.cjs → date-range-B1l0Wnyd.cjs} +2 -2
- package/dist/{date-range-CoETNfZb.cjs.map → date-range-B1l0Wnyd.cjs.map} +1 -1
- package/dist/{date-range-ClsaySUj.js → date-range-D5kBOyG0.js} +3 -3
- package/dist/{date-range-ClsaySUj.js.map → date-range-D5kBOyG0.js.map} +1 -1
- package/dist/{date-range-inline-DANhDNYe.cjs → date-range-inline-BbTCdiL0.cjs} +2 -2
- package/dist/{date-range-inline-DANhDNYe.cjs.map → date-range-inline-BbTCdiL0.cjs.map} +1 -1
- package/dist/{date-range-inline-DGlKBtNK.js → date-range-inline-Curj100b.js} +3 -3
- package/dist/{date-range-inline-DGlKBtNK.js.map → date-range-inline-Curj100b.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-BYgsZZlo.js → delay-B8D9ePlX.js} +2 -2
- package/dist/{delay-BYgsZZlo.js.map → delay-B8D9ePlX.js.map} +1 -1
- package/dist/{delay-C_eK0GWj.cjs → delay-BR6cMb_F.cjs} +2 -2
- package/dist/{delay-C_eK0GWj.cjs.map → delay-BR6cMb_F.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-YOyqdGM4.js → details-CpuplvIM.js} +2 -2
- package/dist/{details-YOyqdGM4.js.map → details-CpuplvIM.js.map} +1 -1
- package/dist/{details-CRLG7_Rx.cjs → details-DCzexjYw.cjs} +2 -2
- package/dist/{details-CRLG7_Rx.cjs.map → details-DCzexjYw.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-Bm8humI-.cjs → dialog-content-DUnSEoaA.cjs} +2 -2
- package/dist/{dialog-content-Bm8humI-.cjs.map → dialog-content-DUnSEoaA.cjs.map} +1 -1
- package/dist/{dialog-content-CXshnL4t.js → dialog-content-wcZn95Gx.js} +3 -3
- package/dist/{dialog-content-CXshnL4t.js.map → dialog-content-wcZn95Gx.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-BD7cCM-N.js → divider-C4d0QNQU.js} +3 -3
- package/dist/{divider-BD7cCM-N.js.map → divider-C4d0QNQU.js.map} +1 -1
- package/dist/{divider-W9uJ8C3q.cjs → divider-nVB0kEMZ.cjs} +2 -2
- package/dist/{divider-W9uJ8C3q.cjs.map → divider-nVB0kEMZ.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-DnWgB8CR.cjs → dropdown-content-CNc79RjI.cjs} +2 -2
- package/dist/{dropdown-content-DnWgB8CR.cjs.map → dropdown-content-CNc79RjI.cjs.map} +1 -1
- package/dist/{dropdown-content-C7b_9CMw.js → dropdown-content-D2GCSD5Z.js} +3 -3
- package/dist/{dropdown-content-C7b_9CMw.js.map → dropdown-content-D2GCSD5Z.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-CyIXLoSh.js → email-recipients-C-5ER5TU.js} +5 -5
- package/dist/{email-recipients-CyIXLoSh.js.map → email-recipients-C-5ER5TU.js.map} +1 -1
- package/dist/{email-recipients-whsZqIpA.cjs → email-recipients-DRxGI7gT.cjs} +2 -2
- package/dist/{email-recipients-whsZqIpA.cjs.map → email-recipients-DRxGI7gT.cjs.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DvZKaAtN.js → flex-BeghKdy8.js} +2 -2
- package/dist/{flex-DvZKaAtN.js.map → flex-BeghKdy8.js.map} +1 -1
- package/dist/{flex-C0O9O1yV.cjs → flex-C66W_bVN.cjs} +2 -2
- package/dist/{flex-C0O9O1yV.cjs.map → flex-C66W_bVN.cjs.map} +1 -1
- package/dist/{form-D4AZek8y.cjs → form-BLnfpLCB.cjs} +2 -2
- package/dist/{form-D4AZek8y.cjs.map → form-BLnfpLCB.cjs.map} +1 -1
- package/dist/{form-BsI5Sk-R.js → form-CzSXaOL2.js} +2 -2
- package/dist/{form-BsI5Sk-R.js.map → form-CzSXaOL2.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-DfxR1FzZ.cjs → formField.mixin-DdQvbwbp.cjs} +2 -2
- package/dist/{formField.mixin-DfxR1FzZ.cjs.map → formField.mixin-DdQvbwbp.cjs.map} +1 -1
- package/dist/{formField.mixin-C_a5Hccx.js → formField.mixin-SU-0UQ6O.js} +2 -2
- package/dist/{formField.mixin-C_a5Hccx.js.map → formField.mixin-SU-0UQ6O.js.map} +1 -1
- package/dist/{icon-J11blFZq.cjs → icon-B38Atn5F.cjs} +2 -2
- package/dist/{icon-J11blFZq.cjs.map → icon-B38Atn5F.cjs.map} +1 -1
- package/dist/{icon-5LbOG-V0.js → icon-BAE9GvxI.js} +2 -2
- package/dist/{icon-5LbOG-V0.js.map → icon-BAE9GvxI.js.map} +1 -1
- package/dist/{icon-button-DjfEYUdj.cjs → icon-button-D24NUFs7.cjs} +2 -2
- package/dist/{icon-button-DjfEYUdj.cjs.map → icon-button-D24NUFs7.cjs.map} +1 -1
- package/dist/{icon-button-Cwm3vcDO.js → icon-button-gNZEaDU2.js} +3 -3
- package/dist/{icon-button-Cwm3vcDO.js.map → icon-button-gNZEaDU2.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-DbzpwrUh.cjs → input-B-87Y5m2.cjs} +2 -2
- package/dist/{input-DbzpwrUh.cjs.map → input-B-87Y5m2.cjs.map} +1 -1
- package/dist/{input-DO5pS6fE.js → input-Db0akZJI.js} +3 -3
- package/dist/{input-DO5pS6fE.js.map → input-Db0akZJI.js.map} +1 -1
- package/dist/{input-chip-CXZTmfwT.js → input-chip-DT7Zln32.js} +2 -2
- package/dist/{input-chip-CXZTmfwT.js.map → input-chip-DT7Zln32.js.map} +1 -1
- package/dist/{input-chip-CBJxQ2MI.cjs → input-chip-Y6Umqn68.cjs} +2 -2
- package/dist/{input-chip-CBJxQ2MI.cjs.map → input-chip-Y6Umqn68.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-C7wTsdkZ.cjs → list-Bx4nE-9X.cjs} +2 -2
- package/dist/{list-C7wTsdkZ.cjs.map → list-Bx4nE-9X.cjs.map} +1 -1
- package/dist/{list-Cbrv1Y7B.js → list-D5CL0Hmr.js} +2 -2
- package/dist/{list-Cbrv1Y7B.js.map → list-D5CL0Hmr.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-DwXXrxwO.js → litElement.mixin-DLWHaMp5.js} +2 -2
- package/dist/{litElement.mixin-DwXXrxwO.js.map → litElement.mixin-DLWHaMp5.js.map} +1 -1
- package/dist/{litElement.mixin-Dlq4PNEh.cjs → litElement.mixin-vtpQghkf.cjs} +2 -2
- package/dist/{litElement.mixin-Dlq4PNEh.cjs.map → litElement.mixin-vtpQghkf.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-6p1rwGq_.js → map-BgWSgSOf.js} +2 -2
- package/dist/{map-6p1rwGq_.js.map → map-BgWSgSOf.js.map} +1 -1
- package/dist/{map-B3Ond3EJ.cjs → map-ChhBWqG-.cjs} +2 -2
- package/dist/{map-B3Ond3EJ.cjs.map → map-ChhBWqG-.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-8qL5J_9U.js → media-DnpRpbFQ.js} +2 -2
- package/dist/{media-8qL5J_9U.js.map → media-DnpRpbFQ.js.map} +1 -1
- package/dist/{media-urvTQuhG.cjs → media-hFrznC-7.cjs} +2 -2
- package/dist/{media-urvTQuhG.cjs.map → media-hFrznC-7.cjs.map} +1 -1
- package/dist/{menu-CAqcdA-t.cjs → menu-DkRVRYp4.cjs} +2 -2
- package/dist/{menu-CAqcdA-t.cjs.map → menu-DkRVRYp4.cjs.map} +1 -1
- package/dist/{menu-DqPjhh0F.js → menu-DqRauRjT.js} +3 -3
- package/dist/{menu-DqPjhh0F.js.map → menu-DqRauRjT.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/{navigation-rail-G9DFyu8b.cjs → navigation-rail-CBhirMNF.cjs} +3 -3
- package/dist/{navigation-rail-G9DFyu8b.cjs.map → navigation-rail-CBhirMNF.cjs.map} +1 -1
- package/dist/{navigation-rail-B1JZU-E_.js → navigation-rail-Ncy6rBEj.js} +4 -4
- package/dist/{navigation-rail-B1JZU-E_.js.map → navigation-rail-Ncy6rBEj.js.map} +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-D2iAqL5y.cjs → notification-service-BcrHAzSN.cjs} +2 -2
- package/dist/{notification-service-D2iAqL5y.cjs.map → notification-service-BcrHAzSN.cjs.map} +1 -1
- package/dist/{notification-service-C2FCNL6K.js → notification-service-CRAcOFSD.js} +4 -4
- package/dist/{notification-service-C2FCNL6K.js.map → notification-service-CRAcOFSD.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-CGUpuJK_.cjs → notify-BZLGxTpL.cjs} +2 -2
- package/dist/{notify-CGUpuJK_.cjs.map → notify-BZLGxTpL.cjs.map} +1 -1
- package/dist/{notify-CXgvep0J.js → notify-zBmyDMjt.js} +2 -2
- package/dist/{notify-CXgvep0J.js.map → notify-zBmyDMjt.js.map} +1 -1
- package/dist/{option-CWqav-ae.js → option-BOs02M9F.js} +2 -2
- package/dist/{option-CWqav-ae.js.map → option-BOs02M9F.js.map} +1 -1
- package/dist/{option-D8qnpwBr.cjs → option-CJZFrYDI.cjs} +2 -2
- package/dist/{option-D8qnpwBr.cjs.map → option-CJZFrYDI.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-pQBAeXvc.cjs → payment-card-form-C3RKAyE-.cjs} +2 -2
- package/dist/{payment-card-form-pQBAeXvc.cjs.map → payment-card-form-C3RKAyE-.cjs.map} +1 -1
- package/dist/{payment-card-form-09YuBc3U.js → payment-card-form-S9DUk7kb.js} +3 -3
- package/dist/{payment-card-form-09YuBc3U.js.map → payment-card-form-S9DUk7kb.js.map} +1 -1
- package/dist/{progress-nWFc1Ixd.cjs → progress-C36hgIf5.cjs} +2 -2
- package/dist/{progress-nWFc1Ixd.cjs.map → progress-C36hgIf5.cjs.map} +1 -1
- package/dist/{progress-BLRwJ_un.js → progress-DtJc6jWJ.js} +2 -2
- package/dist/{progress-BLRwJ_un.js.map → progress-DtJc6jWJ.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-DIjkirPr.cjs → radio-button-BEoY5yRc.cjs} +2 -2
- package/dist/{radio-button-DIjkirPr.cjs.map → radio-button-BEoY5yRc.cjs.map} +1 -1
- package/dist/{radio-button-BC0Of2-G.js → radio-button-aKwgu1bt.js} +3 -3
- package/dist/{radio-button-BC0Of2-G.js.map → radio-button-aKwgu1bt.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-Sf8RjF0N.js → schmancy-steps-container-D5sbskLl.js} +2 -2
- package/dist/{schmancy-steps-container-Sf8RjF0N.js.map → schmancy-steps-container-D5sbskLl.js.map} +1 -1
- package/dist/{schmancy-steps-container-B8B2ZnTB.cjs → schmancy-steps-container-DINAsJgP.cjs} +2 -2
- package/dist/{schmancy-steps-container-B8B2ZnTB.cjs.map → schmancy-steps-container-DINAsJgP.cjs.map} +1 -1
- package/dist/{select-C6QlML9m.js → select-Bq_CyEe1.js} +3 -3
- package/dist/{select-C6QlML9m.js.map → select-Bq_CyEe1.js.map} +1 -1
- package/dist/{select-CqlN3vWr.cjs → select-C0gf-GTX.cjs} +2 -2
- package/dist/{select-CqlN3vWr.cjs.map → select-C0gf-GTX.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-Dxx7iH9V.js → sheet-PXddkPIR.js} +3 -3
- package/dist/{sheet-Dxx7iH9V.js.map → sheet-PXddkPIR.js.map} +1 -1
- package/dist/{sheet-D6yxukD7.cjs → sheet-vJ5lJw8A.cjs} +2 -2
- package/dist/{sheet-D6yxukD7.cjs.map → sheet-vJ5lJw8A.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BIjiRBMB.js → slider-CSC7AOPU.js} +3 -3
- package/dist/{slider-BIjiRBMB.js.map → slider-CSC7AOPU.js.map} +1 -1
- package/dist/{slider-BGgXG44k.cjs → slider-In_OE4B9.cjs} +2 -2
- package/dist/{slider-BGgXG44k.cjs.map → slider-In_OE4B9.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-D8IKqMrW.js → spinner-Db7i3EZh.js} +2 -2
- package/dist/{spinner-D8IKqMrW.js.map → spinner-Db7i3EZh.js.map} +1 -1
- package/dist/{spinner-CFx3p13n.cjs → spinner-DpIB845r.cjs} +2 -2
- package/dist/{spinner-CFx3p13n.cjs.map → spinner-DpIB845r.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{suggestion-chip-DHpWcimf.js → suggestion-chip-CJygiEf_.js} +3 -3
- package/dist/{suggestion-chip-DHpWcimf.js.map → suggestion-chip-CJygiEf_.js.map} +1 -1
- package/dist/{suggestion-chip-KkPIwkYP.cjs → suggestion-chip-DgwbXrI1.cjs} +2 -2
- package/dist/{suggestion-chip-KkPIwkYP.cjs.map → suggestion-chip-DgwbXrI1.cjs.map} +1 -1
- package/dist/{surface-pMQpuZWM.cjs → surface-Do6Jvjgs.cjs} +2 -2
- package/dist/{surface-pMQpuZWM.cjs.map → surface-Do6Jvjgs.cjs.map} +1 -1
- package/dist/{surface-CkSAxbh2.js → surface-OK-98YMi.js} +2 -2
- package/dist/{surface-CkSAxbh2.js.map → surface-OK-98YMi.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-CVHtS_w_.cjs → table-CJAjGdP2.cjs} +2 -2
- package/dist/{table-CVHtS_w_.cjs.map → table-CJAjGdP2.cjs.map} +1 -1
- package/dist/{table-BgQCOk5g.js → table-IX2oy6pR.js} +2 -2
- package/dist/{table-BgQCOk5g.js.map → table-IX2oy6pR.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-BCtEpyN5.js → tabs-compatibility-BcjBZAcx.js} +2 -2
- package/dist/{tabs-compatibility-BCtEpyN5.js.map → tabs-compatibility-BcjBZAcx.js.map} +1 -1
- package/dist/{tabs-compatibility-w2lmMs2h.cjs → tabs-compatibility-DRL9DJHu.cjs} +2 -2
- package/dist/{tabs-compatibility-w2lmMs2h.cjs.map → tabs-compatibility-DRL9DJHu.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-CfBr6oca.cjs +2 -0
- package/dist/{tailwind.mixin-Bz_Bv8SX.cjs.map → tailwind.mixin-CfBr6oca.cjs.map} +1 -1
- package/dist/tailwind.mixin-Cx1vOdFr.js +64 -0
- package/dist/{tailwind.mixin-Be9DoonS.js.map → tailwind.mixin-Cx1vOdFr.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-BRI0tufi.cjs → textarea-D6tLCvgH.cjs} +2 -2
- package/dist/{textarea-BRI0tufi.cjs.map → textarea-D6tLCvgH.cjs.map} +1 -1
- package/dist/{textarea-DBc8Uh7D.js → textarea-DOdMuK9D.js} +2 -2
- package/dist/{textarea-DBc8Uh7D.js.map → textarea-DOdMuK9D.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DXCpzc5c.cjs → theme-button-BygpnNZP.cjs} +2 -2
- package/dist/{theme-button-DXCpzc5c.cjs.map → theme-button-BygpnNZP.cjs.map} +1 -1
- package/dist/{theme-button-DCYQYmF-.js → theme-button-Mtmrrq0s.js} +2 -2
- package/dist/{theme-button-DCYQYmF-.js.map → theme-button-Mtmrrq0s.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/{theme-controller-boat-HDnVrCW1.cjs → theme-controller-boat-6PcxsUUQ.cjs} +2 -2
- package/dist/{theme-controller-boat-HDnVrCW1.cjs.map → theme-controller-boat-6PcxsUUQ.cjs.map} +1 -1
- package/dist/{theme-controller-boat-C_6tVWSS.js → theme-controller-boat-CFWhF7oJ.js} +3 -3
- package/dist/{theme-controller-boat-C_6tVWSS.js.map → theme-controller-boat-CFWhF7oJ.js.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-Atm5Dy-B.js → timezone-CZ3y_y_n.js} +3 -3
- package/dist/{timezone-Atm5Dy-B.js.map → timezone-CZ3y_y_n.js.map} +1 -1
- package/dist/{timezone-BQaIFLiV.cjs → timezone-GffBsJxM.cjs} +2 -2
- package/dist/{timezone-BQaIFLiV.cjs.map → timezone-GffBsJxM.cjs.map} +1 -1
- package/dist/{tooltip-C-PhMMvT.js → tooltip-BlwQ_fIF.js} +2 -2
- package/dist/{tooltip-C-PhMMvT.js.map → tooltip-BlwQ_fIF.js.map} +1 -1
- package/dist/{tooltip-SBsMu8ZQ.cjs → tooltip-PI0IE4wA.cjs} +2 -2
- package/dist/{tooltip-SBsMu8ZQ.cjs.map → tooltip-PI0IE4wA.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-BagJ6dD2.js → tree-Cum3Na-a.js} +2 -2
- package/dist/{tree-BagJ6dD2.js.map → tree-Cum3Na-a.js.map} +1 -1
- package/dist/{tree-j0lH3CZh.cjs → tree-Cxfl4yJv.cjs} +2 -2
- package/dist/{tree-j0lH3CZh.cjs.map → tree-Cxfl4yJv.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-BawsYtHa.cjs → typewriter-BaiAOEvZ.cjs} +2 -2
- package/dist/{typewriter-BawsYtHa.cjs.map → typewriter-BaiAOEvZ.cjs.map} +1 -1
- package/dist/{typewriter-BjiolWBJ.js → typewriter-DTcmDBnt.js} +4 -4
- package/dist/{typewriter-BjiolWBJ.js.map → typewriter-DTcmDBnt.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-CyDDUJ9J.js → typography-BLHV8e7O.js} +2 -2
- package/dist/{typography-CyDDUJ9J.js.map → typography-BLHV8e7O.js.map} +1 -1
- package/dist/{typography-Bk9jOEtx.cjs → typography-CtesPGRT.cjs} +2 -2
- package/dist/{typography-Bk9jOEtx.cjs.map → typography-CtesPGRT.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/autocomplete/autocomplete.d.ts +1 -1
- package/types/src/content-drawer/drawer.d.ts +6 -0
- package/types/src/content-drawer/drawer.service.d.ts +28 -1
- package/types/src/content-drawer/main.d.ts +2 -2
- package/dist/area.component-C3uCk-c1.cjs +0 -12
- package/dist/area.component-C3uCk-c1.cjs.map +0 -1
- package/dist/area.component-CgAISzZ3.js.map +0 -1
- package/dist/autocomplete--0ZoSIp0.js.map +0 -1
- package/dist/autocomplete-CpCXamUl.cjs +0 -112
- package/dist/autocomplete-CpCXamUl.cjs.map +0 -1
- package/dist/avatar-5cjrkZS5.cjs.map +0 -1
- package/dist/avatar-BixWcgH7.js.map +0 -1
- package/dist/tailwind.mixin-Be9DoonS.js +0 -64
- package/dist/tailwind.mixin-Bz_Bv8SX.cjs +0 -2
package/ai/content-drawer.md
CHANGED
|
@@ -1,198 +1,128 @@
|
|
|
1
1
|
# Content Drawer
|
|
2
2
|
|
|
3
|
-
Responsive sliding panel that
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The content drawer provides a responsive panel system that adapts to different screen sizes:
|
|
8
|
-
- **Large screens**: Panel pushes content aside (push mode)
|
|
9
|
-
- **Small screens**: Panel overlays content (overlay mode)
|
|
10
|
-
- **Automatic switching**: Responds to screen width changes
|
|
11
|
-
|
|
12
|
-
## Components
|
|
13
|
-
|
|
14
|
-
```js
|
|
15
|
-
// Main container that manages responsive behavior
|
|
16
|
-
<schmancy-content-drawer
|
|
17
|
-
?open="${boolean}" // Controls drawer visibility (auto-managed)
|
|
18
|
-
.minWidth="${{main: 360, sheet: 576}}" // Min widths for main and sheet
|
|
19
|
-
>
|
|
20
|
-
<schmancy-content-drawer-main
|
|
21
|
-
minWidth="${number}" // Minimum width for main content (default: 360px)
|
|
22
|
-
>
|
|
23
|
-
// Main content area
|
|
24
|
-
</schmancy-content-drawer-main>
|
|
3
|
+
Responsive sliding panel that switches between push mode (desktop) and overlay mode (mobile).
|
|
25
4
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// Optional placeholder content when sheet is empty
|
|
31
|
-
</section>
|
|
32
|
-
</schmancy-content-drawer-sheet>
|
|
33
|
-
</schmancy-content-drawer>
|
|
5
|
+
## Service API
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { schmancyContentDrawer } from '@schmancy/content-drawer'
|
|
34
9
|
```
|
|
35
10
|
|
|
36
|
-
|
|
11
|
+
### `push(options)`
|
|
37
12
|
|
|
38
|
-
|
|
39
|
-
- **Push mode**: When `viewport >= main.minWidth + sheet.minWidth`
|
|
40
|
-
- Sheet panel appears inline beside main content
|
|
41
|
-
- Content is pushed to make room for the sheet
|
|
42
|
-
- Sheet remains visible
|
|
43
|
-
- **Overlay mode**: When `viewport < main.minWidth + sheet.minWidth`
|
|
44
|
-
- Sheet overlays on top of main content
|
|
45
|
-
- Opens/closes via the service API
|
|
46
|
-
- Shows as a modal sheet
|
|
13
|
+
Push a component to the drawer. Automatically resolves different component types.
|
|
47
14
|
|
|
48
|
-
|
|
15
|
+
**Parameters:**
|
|
49
16
|
|
|
50
|
-
|
|
51
|
-
|
|
17
|
+
- `options: ComponentType | DrawerPushOptions`
|
|
18
|
+
|
|
19
|
+
**ComponentType formats:**
|
|
52
20
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
// - HTMLElement: new DemoButton() (component instance)
|
|
58
|
-
// - Factory: () => new DemoButton() (factory function)
|
|
59
|
-
// - Async: async () => import('./button').then(m => new m.default())
|
|
21
|
+
- `string` - HTML tag name (e.g., `'demo-button'`)
|
|
22
|
+
- `HTMLElement` - Component instance (e.g., `new MyComponent()`)
|
|
23
|
+
- `() => HTMLElement` - Factory function
|
|
24
|
+
- `() => Promise<{default: any}>` - Async import
|
|
60
25
|
|
|
61
|
-
|
|
62
|
-
schmancyContentDrawer.render(ref, component, title?)
|
|
26
|
+
**DrawerPushOptions object:**
|
|
63
27
|
|
|
64
|
-
|
|
65
|
-
|
|
28
|
+
```typescript
|
|
29
|
+
{
|
|
30
|
+
component: ComponentType
|
|
31
|
+
props?: Record<string, unknown> // Properties to set on component
|
|
32
|
+
state?: Record<string, unknown> // Router state (push mode only)
|
|
33
|
+
params?: Record<string, unknown> // Router params (push mode only)
|
|
34
|
+
}
|
|
66
35
|
```
|
|
67
36
|
|
|
68
|
-
|
|
37
|
+
**Usage:**
|
|
69
38
|
|
|
70
|
-
|
|
39
|
+
```typescript
|
|
40
|
+
// String tag
|
|
41
|
+
schmancyContentDrawer.push('demo-button')
|
|
71
42
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const myComponent = new MyComponent()
|
|
75
|
-
myComponent.variant = 'filled'
|
|
43
|
+
// HTMLElement instance
|
|
44
|
+
schmancyContentDrawer.push(new UserDetail())
|
|
76
45
|
|
|
77
|
-
//
|
|
78
|
-
schmancyContentDrawer.push(
|
|
46
|
+
// With options object (recommended)
|
|
47
|
+
schmancyContentDrawer.push({
|
|
48
|
+
component: new UserDetail(),
|
|
49
|
+
props: { userId: '123' }
|
|
50
|
+
})
|
|
79
51
|
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
schmancyContentDrawer.push(myComponent) // Automatically re-renders with new properties
|
|
83
|
-
```
|
|
52
|
+
// Factory function
|
|
53
|
+
schmancyContentDrawer.push(() => new MyComponent())
|
|
84
54
|
|
|
85
|
-
|
|
55
|
+
// Async import
|
|
56
|
+
schmancyContentDrawer.push(() => import('./my-component'))
|
|
57
|
+
```
|
|
86
58
|
|
|
87
|
-
###
|
|
59
|
+
### `render(ref, component, title?)`
|
|
88
60
|
|
|
89
|
-
|
|
90
|
-
<schmancy-content-drawer>
|
|
91
|
-
<schmancy-content-drawer-main>
|
|
92
|
-
<schmancy-list class="p-0">
|
|
93
|
-
<schmancy-list-item @click=${() => {
|
|
94
|
-
schmancyContentDrawer.push('demo-button')
|
|
95
|
-
}}>
|
|
96
|
-
Show Button Demo
|
|
97
|
-
</schmancy-list-item>
|
|
98
|
-
<schmancy-list-item @click=${() => {
|
|
99
|
-
schmancyContentDrawer.push(new TypographyDemo())
|
|
100
|
-
}}>
|
|
101
|
-
Show Typography Demo
|
|
102
|
-
</schmancy-list-item>
|
|
103
|
-
</schmancy-list>
|
|
104
|
-
</schmancy-content-drawer-main>
|
|
61
|
+
Lower-level API for rendering. Use `push()` instead for most cases.
|
|
105
62
|
|
|
106
|
-
|
|
107
|
-
<section slot="placeholder">
|
|
108
|
-
<schmancy-typography>Select an item to view</schmancy-typography>
|
|
109
|
-
</section>
|
|
110
|
-
</schmancy-content-drawer-sheet>
|
|
111
|
-
</schmancy-content-drawer>
|
|
112
|
-
```
|
|
63
|
+
**Parameters:**
|
|
113
64
|
|
|
114
|
-
|
|
65
|
+
- `ref: Element | Window` - Element to dispatch events from
|
|
66
|
+
- `component: HTMLElement` - Component instance
|
|
67
|
+
- `title?: string` - Optional title
|
|
115
68
|
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
|
|
69
|
+
```typescript
|
|
70
|
+
schmancyContentDrawer.render(window, new UserDetail(), 'User Details')
|
|
71
|
+
```
|
|
119
72
|
|
|
120
|
-
|
|
121
|
-
const button = new DemoButton()
|
|
122
|
-
button.variant = 'filled'
|
|
123
|
-
schmancyContentDrawer.push(button)
|
|
73
|
+
### `dimiss(ref)`
|
|
124
74
|
|
|
125
|
-
|
|
126
|
-
schmancyContentDrawer.push(() => {
|
|
127
|
-
const comp = new MyComponent()
|
|
128
|
-
comp.setAttribute('theme', 'dark')
|
|
129
|
-
return comp
|
|
130
|
-
})
|
|
75
|
+
Closes the drawer. *Note: typo in actual API*
|
|
131
76
|
|
|
132
|
-
|
|
133
|
-
schmancyContentDrawer.
|
|
134
|
-
const module = await import('./lazy-component')
|
|
135
|
-
return new module.default()
|
|
136
|
-
})
|
|
77
|
+
```typescript
|
|
78
|
+
schmancyContentDrawer.dimiss(window)
|
|
137
79
|
```
|
|
138
80
|
|
|
139
|
-
|
|
81
|
+
## Component Structure
|
|
140
82
|
|
|
141
83
|
```html
|
|
142
84
|
<schmancy-content-drawer>
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
<div>Main application content</div>
|
|
85
|
+
<schmancy-content-drawer-main>
|
|
86
|
+
<!-- Main content area -->
|
|
146
87
|
</schmancy-content-drawer-main>
|
|
147
88
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
89
|
+
<schmancy-content-drawer-sheet>
|
|
90
|
+
<section slot="placeholder">
|
|
91
|
+
<!-- Empty state content -->
|
|
92
|
+
</section>
|
|
151
93
|
</schmancy-content-drawer-sheet>
|
|
152
94
|
</schmancy-content-drawer>
|
|
153
95
|
```
|
|
154
96
|
|
|
155
|
-
##
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
</schmancy-list
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
**Navigation Drawer**: Navigation links in main, content in sheet
|
|
188
|
-
```js
|
|
189
|
-
// Navigation item clicks update sheet content
|
|
190
|
-
schmancyContentDrawer.push(() => import(`./pages/${page}`))
|
|
97
|
+
## Properties
|
|
98
|
+
|
|
99
|
+
- `minWidth: {main: number, sheet: number}` - Minimum widths (default: `{main: 360, sheet: 576}`)
|
|
100
|
+
- `open: 'open' | 'close'` - Auto-managed based on mode
|
|
101
|
+
- `mode: 'push' | 'overlay'` - Auto-switches at 936px breakpoint
|
|
102
|
+
|
|
103
|
+
## Example
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
html`
|
|
107
|
+
<schmancy-content-drawer>
|
|
108
|
+
<schmancy-content-drawer-main>
|
|
109
|
+
<schmancy-list>
|
|
110
|
+
${items.map(item => html`
|
|
111
|
+
<schmancy-list-item @click=${() => {
|
|
112
|
+
schmancyContentDrawer.push({
|
|
113
|
+
component: new ItemDetail(),
|
|
114
|
+
props: { item }
|
|
115
|
+
})
|
|
116
|
+
}}>
|
|
117
|
+
${item.name}
|
|
118
|
+
</schmancy-list-item>
|
|
119
|
+
`)}
|
|
120
|
+
</schmancy-list>
|
|
121
|
+
</schmancy-content-drawer-main>
|
|
122
|
+
|
|
123
|
+
<schmancy-content-drawer-sheet>
|
|
124
|
+
<section slot="placeholder">Select an item</section>
|
|
125
|
+
</schmancy-content-drawer-sheet>
|
|
126
|
+
</schmancy-content-drawer>
|
|
127
|
+
`
|
|
191
128
|
```
|
|
192
|
-
|
|
193
|
-
## Related Components
|
|
194
|
-
|
|
195
|
-
- [Sheet](./sheet.md) - Modal sheet component used in overlay mode
|
|
196
|
-
- [Area](./area.md) - Routing system used in push mode
|
|
197
|
-
- [Grid](./grid.md) - Layout system for responsive design
|
|
198
|
-
- [List](./list.md) - List component for navigation items
|
|
@@ -1,198 +1,128 @@
|
|
|
1
1
|
# Content Drawer
|
|
2
2
|
|
|
3
|
-
Responsive sliding panel that
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The content drawer provides a responsive panel system that adapts to different screen sizes:
|
|
8
|
-
- **Large screens**: Panel pushes content aside (push mode)
|
|
9
|
-
- **Small screens**: Panel overlays content (overlay mode)
|
|
10
|
-
- **Automatic switching**: Responds to screen width changes
|
|
11
|
-
|
|
12
|
-
## Components
|
|
13
|
-
|
|
14
|
-
```js
|
|
15
|
-
// Main container that manages responsive behavior
|
|
16
|
-
<schmancy-content-drawer
|
|
17
|
-
?open="${boolean}" // Controls drawer visibility (auto-managed)
|
|
18
|
-
.minWidth="${{main: 360, sheet: 576}}" // Min widths for main and sheet
|
|
19
|
-
>
|
|
20
|
-
<schmancy-content-drawer-main
|
|
21
|
-
minWidth="${number}" // Minimum width for main content (default: 360px)
|
|
22
|
-
>
|
|
23
|
-
// Main content area
|
|
24
|
-
</schmancy-content-drawer-main>
|
|
3
|
+
Responsive sliding panel that switches between push mode (desktop) and overlay mode (mobile).
|
|
25
4
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// Optional placeholder content when sheet is empty
|
|
31
|
-
</section>
|
|
32
|
-
</schmancy-content-drawer-sheet>
|
|
33
|
-
</schmancy-content-drawer>
|
|
5
|
+
## Service API
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { schmancyContentDrawer } from '@schmancy/content-drawer'
|
|
34
9
|
```
|
|
35
10
|
|
|
36
|
-
|
|
11
|
+
### `push(options)`
|
|
37
12
|
|
|
38
|
-
|
|
39
|
-
- **Push mode**: When `viewport >= main.minWidth + sheet.minWidth`
|
|
40
|
-
- Sheet panel appears inline beside main content
|
|
41
|
-
- Content is pushed to make room for the sheet
|
|
42
|
-
- Sheet remains visible
|
|
43
|
-
- **Overlay mode**: When `viewport < main.minWidth + sheet.minWidth`
|
|
44
|
-
- Sheet overlays on top of main content
|
|
45
|
-
- Opens/closes via the service API
|
|
46
|
-
- Shows as a modal sheet
|
|
13
|
+
Push a component to the drawer. Automatically resolves different component types.
|
|
47
14
|
|
|
48
|
-
|
|
15
|
+
**Parameters:**
|
|
49
16
|
|
|
50
|
-
|
|
51
|
-
|
|
17
|
+
- `options: ComponentType | DrawerPushOptions`
|
|
18
|
+
|
|
19
|
+
**ComponentType formats:**
|
|
52
20
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
// - HTMLElement: new DemoButton() (component instance)
|
|
58
|
-
// - Factory: () => new DemoButton() (factory function)
|
|
59
|
-
// - Async: async () => import('./button').then(m => new m.default())
|
|
21
|
+
- `string` - HTML tag name (e.g., `'demo-button'`)
|
|
22
|
+
- `HTMLElement` - Component instance (e.g., `new MyComponent()`)
|
|
23
|
+
- `() => HTMLElement` - Factory function
|
|
24
|
+
- `() => Promise<{default: any}>` - Async import
|
|
60
25
|
|
|
61
|
-
|
|
62
|
-
schmancyContentDrawer.render(ref, component, title?)
|
|
26
|
+
**DrawerPushOptions object:**
|
|
63
27
|
|
|
64
|
-
|
|
65
|
-
|
|
28
|
+
```typescript
|
|
29
|
+
{
|
|
30
|
+
component: ComponentType
|
|
31
|
+
props?: Record<string, unknown> // Properties to set on component
|
|
32
|
+
state?: Record<string, unknown> // Router state (push mode only)
|
|
33
|
+
params?: Record<string, unknown> // Router params (push mode only)
|
|
34
|
+
}
|
|
66
35
|
```
|
|
67
36
|
|
|
68
|
-
|
|
37
|
+
**Usage:**
|
|
69
38
|
|
|
70
|
-
|
|
39
|
+
```typescript
|
|
40
|
+
// String tag
|
|
41
|
+
schmancyContentDrawer.push('demo-button')
|
|
71
42
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const myComponent = new MyComponent()
|
|
75
|
-
myComponent.variant = 'filled'
|
|
43
|
+
// HTMLElement instance
|
|
44
|
+
schmancyContentDrawer.push(new UserDetail())
|
|
76
45
|
|
|
77
|
-
//
|
|
78
|
-
schmancyContentDrawer.push(
|
|
46
|
+
// With options object (recommended)
|
|
47
|
+
schmancyContentDrawer.push({
|
|
48
|
+
component: new UserDetail(),
|
|
49
|
+
props: { userId: '123' }
|
|
50
|
+
})
|
|
79
51
|
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
schmancyContentDrawer.push(myComponent) // Automatically re-renders with new properties
|
|
83
|
-
```
|
|
52
|
+
// Factory function
|
|
53
|
+
schmancyContentDrawer.push(() => new MyComponent())
|
|
84
54
|
|
|
85
|
-
|
|
55
|
+
// Async import
|
|
56
|
+
schmancyContentDrawer.push(() => import('./my-component'))
|
|
57
|
+
```
|
|
86
58
|
|
|
87
|
-
###
|
|
59
|
+
### `render(ref, component, title?)`
|
|
88
60
|
|
|
89
|
-
|
|
90
|
-
<schmancy-content-drawer>
|
|
91
|
-
<schmancy-content-drawer-main>
|
|
92
|
-
<schmancy-list class="p-0">
|
|
93
|
-
<schmancy-list-item @click=${() => {
|
|
94
|
-
schmancyContentDrawer.push('demo-button')
|
|
95
|
-
}}>
|
|
96
|
-
Show Button Demo
|
|
97
|
-
</schmancy-list-item>
|
|
98
|
-
<schmancy-list-item @click=${() => {
|
|
99
|
-
schmancyContentDrawer.push(new TypographyDemo())
|
|
100
|
-
}}>
|
|
101
|
-
Show Typography Demo
|
|
102
|
-
</schmancy-list-item>
|
|
103
|
-
</schmancy-list>
|
|
104
|
-
</schmancy-content-drawer-main>
|
|
61
|
+
Lower-level API for rendering. Use `push()` instead for most cases.
|
|
105
62
|
|
|
106
|
-
|
|
107
|
-
<section slot="placeholder">
|
|
108
|
-
<schmancy-typography>Select an item to view</schmancy-typography>
|
|
109
|
-
</section>
|
|
110
|
-
</schmancy-content-drawer-sheet>
|
|
111
|
-
</schmancy-content-drawer>
|
|
112
|
-
```
|
|
63
|
+
**Parameters:**
|
|
113
64
|
|
|
114
|
-
|
|
65
|
+
- `ref: Element | Window` - Element to dispatch events from
|
|
66
|
+
- `component: HTMLElement` - Component instance
|
|
67
|
+
- `title?: string` - Optional title
|
|
115
68
|
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
|
|
69
|
+
```typescript
|
|
70
|
+
schmancyContentDrawer.render(window, new UserDetail(), 'User Details')
|
|
71
|
+
```
|
|
119
72
|
|
|
120
|
-
|
|
121
|
-
const button = new DemoButton()
|
|
122
|
-
button.variant = 'filled'
|
|
123
|
-
schmancyContentDrawer.push(button)
|
|
73
|
+
### `dimiss(ref)`
|
|
124
74
|
|
|
125
|
-
|
|
126
|
-
schmancyContentDrawer.push(() => {
|
|
127
|
-
const comp = new MyComponent()
|
|
128
|
-
comp.setAttribute('theme', 'dark')
|
|
129
|
-
return comp
|
|
130
|
-
})
|
|
75
|
+
Closes the drawer. *Note: typo in actual API*
|
|
131
76
|
|
|
132
|
-
|
|
133
|
-
schmancyContentDrawer.
|
|
134
|
-
const module = await import('./lazy-component')
|
|
135
|
-
return new module.default()
|
|
136
|
-
})
|
|
77
|
+
```typescript
|
|
78
|
+
schmancyContentDrawer.dimiss(window)
|
|
137
79
|
```
|
|
138
80
|
|
|
139
|
-
|
|
81
|
+
## Component Structure
|
|
140
82
|
|
|
141
83
|
```html
|
|
142
84
|
<schmancy-content-drawer>
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
<div>Main application content</div>
|
|
85
|
+
<schmancy-content-drawer-main>
|
|
86
|
+
<!-- Main content area -->
|
|
146
87
|
</schmancy-content-drawer-main>
|
|
147
88
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
89
|
+
<schmancy-content-drawer-sheet>
|
|
90
|
+
<section slot="placeholder">
|
|
91
|
+
<!-- Empty state content -->
|
|
92
|
+
</section>
|
|
151
93
|
</schmancy-content-drawer-sheet>
|
|
152
94
|
</schmancy-content-drawer>
|
|
153
95
|
```
|
|
154
96
|
|
|
155
|
-
##
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
</schmancy-list
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
**Navigation Drawer**: Navigation links in main, content in sheet
|
|
188
|
-
```js
|
|
189
|
-
// Navigation item clicks update sheet content
|
|
190
|
-
schmancyContentDrawer.push(() => import(`./pages/${page}`))
|
|
97
|
+
## Properties
|
|
98
|
+
|
|
99
|
+
- `minWidth: {main: number, sheet: number}` - Minimum widths (default: `{main: 360, sheet: 576}`)
|
|
100
|
+
- `open: 'open' | 'close'` - Auto-managed based on mode
|
|
101
|
+
- `mode: 'push' | 'overlay'` - Auto-switches at 936px breakpoint
|
|
102
|
+
|
|
103
|
+
## Example
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
html`
|
|
107
|
+
<schmancy-content-drawer>
|
|
108
|
+
<schmancy-content-drawer-main>
|
|
109
|
+
<schmancy-list>
|
|
110
|
+
${items.map(item => html`
|
|
111
|
+
<schmancy-list-item @click=${() => {
|
|
112
|
+
schmancyContentDrawer.push({
|
|
113
|
+
component: new ItemDetail(),
|
|
114
|
+
props: { item }
|
|
115
|
+
})
|
|
116
|
+
}}>
|
|
117
|
+
${item.name}
|
|
118
|
+
</schmancy-list-item>
|
|
119
|
+
`)}
|
|
120
|
+
</schmancy-list>
|
|
121
|
+
</schmancy-content-drawer-main>
|
|
122
|
+
|
|
123
|
+
<schmancy-content-drawer-sheet>
|
|
124
|
+
<section slot="placeholder">Select an item</section>
|
|
125
|
+
</schmancy-content-drawer-sheet>
|
|
126
|
+
</schmancy-content-drawer>
|
|
127
|
+
`
|
|
191
128
|
```
|
|
192
|
-
|
|
193
|
-
## Related Components
|
|
194
|
-
|
|
195
|
-
- [Sheet](./sheet.md) - Modal sheet component used in overlay mode
|
|
196
|
-
- [Area](./area.md) - Routing system used in push mode
|
|
197
|
-
- [Grid](./grid.md) - Layout system for responsive design
|
|
198
|
-
- [List](./list.md) - List component for navigation items
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const e=require("rxjs");require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-
|
|
1
|
+
"use strict";const e=require("rxjs");require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-CfBr6oca.cjs");const h=require("./litElement.mixin-vtpQghkf.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-2eNprXDV.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-text-Dr32Ckh7.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-2eNprXDV.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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"}
|