@mhmo91/schmancy 0.5.29 → 0.5.31
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/autocomplete.md +21 -22
- package/ai/option.md +1 -1
- package/dist/ai/autocomplete.md +21 -22
- package/dist/ai/option.md +1 -1
- package/dist/{animated-text-vdNivzdc.cjs → animated-text-BZUrBdvN.cjs} +2 -2
- package/dist/{animated-text-vdNivzdc.cjs.map → animated-text-BZUrBdvN.cjs.map} +1 -1
- package/dist/{animated-text-Bn8-ILmB.js → animated-text-COvhr8E3.js} +3 -3
- package/dist/{animated-text-Bn8-ILmB.js.map → animated-text-COvhr8E3.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-pd24G8zW.js → area.component-BHtBHWVt.js} +3 -3
- package/dist/{area.component-pd24G8zW.js.map → area.component-BHtBHWVt.js.map} +1 -1
- package/dist/{area.component-DwPL6bdo.cjs → area.component-Ch2Eaa4i.cjs} +2 -2
- package/dist/{area.component-DwPL6bdo.cjs.map → area.component-Ch2Eaa4i.cjs.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-CeB2VvCm.js → autocomplete-9RkU9LmA.js} +4 -4
- package/dist/{autocomplete-CeB2VvCm.js.map → autocomplete-9RkU9LmA.js.map} +1 -1
- package/dist/{autocomplete-ChRZ5y2p.cjs → autocomplete-CenwFcT1.cjs} +2 -2
- package/dist/{autocomplete-ChRZ5y2p.cjs.map → autocomplete-CenwFcT1.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-B44Yq_7I.cjs → avatar-DVvQCuqb.cjs} +2 -2
- package/dist/{avatar-B44Yq_7I.cjs.map → avatar-DVvQCuqb.cjs.map} +1 -1
- package/dist/{avatar-ByCv3NzJ.js → avatar-vN5sPaPb.js} +50 -50
- package/dist/{avatar-ByCv3NzJ.js.map → avatar-vN5sPaPb.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-dSTPix8t.js → boat-CUsJXaLf.js} +2 -2
- package/dist/{boat-dSTPix8t.js.map → boat-CUsJXaLf.js.map} +1 -1
- package/dist/{boat-DNmaFlxD.cjs → boat-Dfx9-P8c.cjs} +2 -2
- package/dist/{boat-DNmaFlxD.cjs.map → boat-Dfx9-P8c.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-BJ5aqrKY.cjs → checkbox-8djp_8NK.cjs} +2 -2
- package/dist/{checkbox-BJ5aqrKY.cjs.map → checkbox-8djp_8NK.cjs.map} +1 -1
- package/dist/{checkbox-CU2tyEL0.js → checkbox-D6-WQeEk.js} +2 -2
- package/dist/{checkbox-CU2tyEL0.js.map → checkbox-D6-WQeEk.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-fda91FDi.cjs → code-preview-BFoEmN8y.cjs} +2 -2
- package/dist/{code-preview-fda91FDi.cjs.map → code-preview-BFoEmN8y.cjs.map} +1 -1
- package/dist/{code-preview-KDpn0Q3T.js → code-preview-Z02-2suM.js} +2 -2
- package/dist/{code-preview-KDpn0Q3T.js.map → code-preview-Z02-2suM.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-0nOdLk-l.cjs → date-range-DoCtnpW6.cjs} +2 -2
- package/dist/{date-range-0nOdLk-l.cjs.map → date-range-DoCtnpW6.cjs.map} +1 -1
- package/dist/{date-range-inline-b0yYxPn_.js → date-range-inline-BXeX6T7R.js} +3 -3
- package/dist/{date-range-inline-b0yYxPn_.js.map → date-range-inline-BXeX6T7R.js.map} +1 -1
- package/dist/{date-range-inline-UoP6EDug.cjs → date-range-inline-DNr7C5X-.cjs} +2 -2
- package/dist/{date-range-inline-UoP6EDug.cjs.map → date-range-inline-DNr7C5X-.cjs.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/{date-range-yd-FnXRe.js → date-range-kFnTrnHN.js} +3 -3
- package/dist/{date-range-yd-FnXRe.js.map → date-range-kFnTrnHN.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-CaOsI0yP.cjs → delay-CrdOikhP.cjs} +2 -2
- package/dist/{delay-CaOsI0yP.cjs.map → delay-CrdOikhP.cjs.map} +1 -1
- package/dist/{delay-CE9VOJBG.js → delay-Cz-9rZxi.js} +2 -2
- package/dist/{delay-CE9VOJBG.js.map → delay-Cz-9rZxi.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-B_kKG0Du.cjs → details-CsqhGMjL.cjs} +7 -7
- package/dist/details-CsqhGMjL.cjs.map +1 -0
- package/dist/{details-m-njXkGl.js → details-DeBtsJlp.js} +6 -6
- package/dist/details-DeBtsJlp.js.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-B5MUa6uq.cjs → dialog-content-BzSQoM2J.cjs} +2 -2
- package/dist/{dialog-content-B5MUa6uq.cjs.map → dialog-content-BzSQoM2J.cjs.map} +1 -1
- package/dist/{dialog-content-BireCTdH.js → dialog-content-DTKdAF_l.js} +3 -3
- package/dist/{dialog-content-BireCTdH.js.map → dialog-content-DTKdAF_l.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-CMaqpnia.js → divider-7iyyEd8k.js} +3 -3
- package/dist/{divider-CMaqpnia.js.map → divider-7iyyEd8k.js.map} +1 -1
- package/dist/{divider-DekMH80a.cjs → divider-CNxOc8ep.cjs} +2 -2
- package/dist/{divider-DekMH80a.cjs.map → divider-CNxOc8ep.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-eXth59vX.cjs → dropdown-content-De0OkNoq.cjs} +2 -2
- package/dist/{dropdown-content-eXth59vX.cjs.map → dropdown-content-De0OkNoq.cjs.map} +1 -1
- package/dist/{dropdown-content-CViuccZ6.js → dropdown-content-_GMpqsNq.js} +3 -3
- package/dist/{dropdown-content-CViuccZ6.js.map → dropdown-content-_GMpqsNq.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-BSopuO1J.js → email-recipients-CPZlUiRR.js} +5 -5
- package/dist/{email-recipients-BSopuO1J.js.map → email-recipients-CPZlUiRR.js.map} +1 -1
- package/dist/{email-recipients-DNcWf4_1.cjs → email-recipients-DS01C3V3.cjs} +2 -2
- package/dist/{email-recipients-DNcWf4_1.cjs.map → email-recipients-DS01C3V3.cjs.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-Czj-zqJQ.js → flex-BeSoRNTu.js} +81 -66
- package/dist/flex-BeSoRNTu.js.map +1 -0
- package/dist/flex-CHf9Gc5V.cjs +42 -0
- package/dist/flex-CHf9Gc5V.cjs.map +1 -0
- package/dist/{form-CAvvBQiv.js → form-DNeKagke.js} +2 -2
- package/dist/{form-CAvvBQiv.js.map → form-DNeKagke.js.map} +1 -1
- package/dist/{form-OUNdJnUW.cjs → form-DzDksPgv.cjs} +2 -2
- package/dist/{form-OUNdJnUW.cjs.map → form-DzDksPgv.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-DlYLC82X.js → formField.mixin-BNj75WQ4.js} +2 -2
- package/dist/{formField.mixin-DlYLC82X.js.map → formField.mixin-BNj75WQ4.js.map} +1 -1
- package/dist/{formField.mixin-Bu0ygAbE.cjs → formField.mixin-D5YAYIS1.cjs} +2 -2
- package/dist/{formField.mixin-Bu0ygAbE.cjs.map → formField.mixin-D5YAYIS1.cjs.map} +1 -1
- package/dist/{icon-D0EaNtwd.js → icon-B72X_AQX.js} +2 -2
- package/dist/{icon-D0EaNtwd.js.map → icon-B72X_AQX.js.map} +1 -1
- package/dist/{icon-BwhQbcAk.cjs → icon-DbIBlAjy.cjs} +2 -2
- package/dist/{icon-BwhQbcAk.cjs.map → icon-DbIBlAjy.cjs.map} +1 -1
- package/dist/{icon-button-CGMdsmXS.js → icon-button-D6DH52j4.js} +3 -3
- package/dist/{icon-button-CGMdsmXS.js.map → icon-button-D6DH52j4.js.map} +1 -1
- package/dist/{icon-button-BrRSVzzx.cjs → icon-button-DwnnW2oj.cjs} +2 -2
- package/dist/{icon-button-BrRSVzzx.cjs.map → icon-button-DwnnW2oj.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +49 -49
- package/dist/{input-lzxE1e5L.cjs → input-C2Vz-51i.cjs} +2 -2
- package/dist/{input-lzxE1e5L.cjs.map → input-C2Vz-51i.cjs.map} +1 -1
- package/dist/{input-DZYN1TnY.js → input-DtHPCCyd.js} +3 -3
- package/dist/{input-DZYN1TnY.js.map → input-DtHPCCyd.js.map} +1 -1
- package/dist/{input-chip-Cf25jEob.cjs → input-chip-B7ANrtLF.cjs} +2 -2
- package/dist/{input-chip-Cf25jEob.cjs.map → input-chip-B7ANrtLF.cjs.map} +1 -1
- package/dist/{input-chip-CNLkwei6.js → input-chip-DbIvSyvP.js} +2 -2
- package/dist/{input-chip-CNLkwei6.js.map → input-chip-DbIvSyvP.js.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-Cqo45m_h.js → list-BBo0--_Q.js} +2 -2
- package/dist/{list-Cqo45m_h.js.map → list-BBo0--_Q.js.map} +1 -1
- package/dist/{list-rGx4YHgo.cjs → list-BH8OJ3Rv.cjs} +2 -2
- package/dist/{list-rGx4YHgo.cjs.map → list-BH8OJ3Rv.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-B0Rsd4Km.js → litElement.mixin-CzF0mNQd.js} +2 -2
- package/dist/{litElement.mixin-B0Rsd4Km.js.map → litElement.mixin-CzF0mNQd.js.map} +1 -1
- package/dist/{litElement.mixin-DUiUa087.cjs → litElement.mixin-LplXbzd8.cjs} +2 -2
- package/dist/{litElement.mixin-DUiUa087.cjs.map → litElement.mixin-LplXbzd8.cjs.map} +1 -1
- package/dist/logo-dark.png +0 -0
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-8DhybTup.cjs → map-C7lxYU4A.cjs} +2 -2
- package/dist/{map-8DhybTup.cjs.map → map-C7lxYU4A.cjs.map} +1 -1
- package/dist/{map-DWf43TA1.js → map-DeiCBxMP.js} +2 -2
- package/dist/{map-DWf43TA1.js.map → map-DeiCBxMP.js.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-BVKgZzK_.js → media-CEnaqjig.js} +2 -2
- package/dist/{media-BVKgZzK_.js.map → media-CEnaqjig.js.map} +1 -1
- package/dist/{media-BZwiyJto.cjs → media-CsYVcfaX.cjs} +2 -2
- package/dist/{media-BZwiyJto.cjs.map → media-CsYVcfaX.cjs.map} +1 -1
- package/dist/{menu-D8qP_e7D.cjs → menu-Boqsyfmh.cjs} +2 -2
- package/dist/{menu-D8qP_e7D.cjs.map → menu-Boqsyfmh.cjs.map} +1 -1
- package/dist/{menu-CGaCEOer.js → menu-wtkHGlyc.js} +3 -3
- package/dist/{menu-CGaCEOer.js.map → menu-wtkHGlyc.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-Bk9exaNK.js +237 -0
- package/dist/navigation-rail-Bk9exaNK.js.map +1 -0
- package/dist/navigation-rail-D_dDK8C4.cjs +78 -0
- package/dist/navigation-rail-D_dDK8C4.cjs.map +1 -0
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-service-DCmDSvc-.cjs → notification-service-9HXSKWcw.cjs} +2 -2
- package/dist/{notification-service-DCmDSvc-.cjs.map → notification-service-9HXSKWcw.cjs.map} +1 -1
- package/dist/{notification-service-Dv4oQi_Z.js → notification-service-ZiGUSd63.js} +4 -4
- package/dist/{notification-service-Dv4oQi_Z.js.map → notification-service-ZiGUSd63.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-COuaNTJP.js → notify-DbfX6Z2P.js} +2 -2
- package/dist/{notify-COuaNTJP.js.map → notify-DbfX6Z2P.js.map} +1 -1
- package/dist/{notify-XY2e8y_a.cjs → notify-W-NrP0cC.cjs} +2 -2
- package/dist/{notify-XY2e8y_a.cjs.map → notify-W-NrP0cC.cjs.map} +1 -1
- package/dist/{option-CSSmqUBi.js → option-BFlWiCu0.js} +2 -2
- package/dist/{option-CSSmqUBi.js.map → option-BFlWiCu0.js.map} +1 -1
- package/dist/{option-q-dig7LF.cjs → option-D2bxihLu.cjs} +2 -2
- package/dist/{option-q-dig7LF.cjs.map → option-D2bxihLu.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-C8bWa_hh.cjs → payment-card-form--v94EhJF.cjs} +2 -2
- package/dist/{payment-card-form-C8bWa_hh.cjs.map → payment-card-form--v94EhJF.cjs.map} +1 -1
- package/dist/{payment-card-form-CWboYwqO.js → payment-card-form-DLRNX9NX.js} +3 -3
- package/dist/{payment-card-form-CWboYwqO.js.map → payment-card-form-DLRNX9NX.js.map} +1 -1
- package/dist/{progress-Cci0dXzp.js → progress-BYohUvYO.js} +2 -2
- package/dist/{progress-Cci0dXzp.js.map → progress-BYohUvYO.js.map} +1 -1
- package/dist/{progress-CP2lpJsl.cjs → progress-CjkD8QBy.cjs} +2 -2
- package/dist/{progress-CP2lpJsl.cjs.map → progress-CjkD8QBy.cjs.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-DFbfVgox.js → radio-button-BlxeCjdq.js} +3 -3
- package/dist/{radio-button-DFbfVgox.js.map → radio-button-BlxeCjdq.js.map} +1 -1
- package/dist/{radio-button-CU-lMs92.cjs → radio-button-CGmGOAil.cjs} +2 -2
- package/dist/{radio-button-CU-lMs92.cjs.map → radio-button-CGmGOAil.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-vW7r1ZTL.js → schmancy-steps-container-BtAHCm73.js} +2 -2
- package/dist/{schmancy-steps-container-vW7r1ZTL.js.map → schmancy-steps-container-BtAHCm73.js.map} +1 -1
- package/dist/{schmancy-steps-container-CQY1zmws.cjs → schmancy-steps-container-CydL78yk.cjs} +2 -2
- package/dist/{schmancy-steps-container-CQY1zmws.cjs.map → schmancy-steps-container-CydL78yk.cjs.map} +1 -1
- package/dist/{select-BkGodZaS.js → select-BiN334GN.js} +3 -3
- package/dist/{select-BkGodZaS.js.map → select-BiN334GN.js.map} +1 -1
- package/dist/{select-Be8HIqWu.cjs → select-CrB02cIO.cjs} +2 -2
- package/dist/{select-Be8HIqWu.cjs.map → select-CrB02cIO.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-DECb9whB.js → sheet-DpJv4DRi.js} +3 -3
- package/dist/{sheet-DECb9whB.js.map → sheet-DpJv4DRi.js.map} +1 -1
- package/dist/{sheet-dK5UPVjp.cjs → sheet-sgVoRMi1.cjs} +2 -2
- package/dist/{sheet-dK5UPVjp.cjs.map → sheet-sgVoRMi1.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BhFc1oRj.js → slider-D7qdxfvX.js} +3 -3
- package/dist/{slider-BhFc1oRj.js.map → slider-D7qdxfvX.js.map} +1 -1
- package/dist/{slider-CP3JRaWR.cjs → slider-Dd1L6oYm.cjs} +2 -2
- package/dist/{slider-CP3JRaWR.cjs.map → slider-Dd1L6oYm.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-BD8cXVK_.cjs → spinner-CaXU45TV.cjs} +2 -2
- package/dist/{spinner-BD8cXVK_.cjs.map → spinner-CaXU45TV.cjs.map} +1 -1
- package/dist/{spinner-DGyRYqUZ.js → spinner-XN4W5ihQ.js} +2 -2
- package/dist/{spinner-DGyRYqUZ.js.map → spinner-XN4W5ihQ.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{suggestion-chip-CASXKYnD.js → suggestion-chip-CdhoATv9.js} +3 -3
- package/dist/{suggestion-chip-CASXKYnD.js.map → suggestion-chip-CdhoATv9.js.map} +1 -1
- package/dist/{suggestion-chip-BPCzI7GW.cjs → suggestion-chip-PI24Hc3s.cjs} +2 -2
- package/dist/{suggestion-chip-BPCzI7GW.cjs.map → suggestion-chip-PI24Hc3s.cjs.map} +1 -1
- package/dist/{surface-ClIDhSRv.cjs → surface-Ax6I7ldp.cjs} +2 -2
- package/dist/{surface-ClIDhSRv.cjs.map → surface-Ax6I7ldp.cjs.map} +1 -1
- package/dist/{surface-C3V23wh9.js → surface-CKrYJ58l.js} +2 -2
- package/dist/{surface-C3V23wh9.js.map → surface-CKrYJ58l.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-1New2HBS.cjs → table-BlwUyf_4.cjs} +2 -2
- package/dist/{table-1New2HBS.cjs.map → table-BlwUyf_4.cjs.map} +1 -1
- package/dist/{table-CLA3cxIk.js → table-CP6_NkPm.js} +2 -2
- package/dist/{table-CLA3cxIk.js.map → table-CP6_NkPm.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-RMzYuSJ1.js → tabs-compatibility-7QKuXX4i.js} +2 -2
- package/dist/{tabs-compatibility-RMzYuSJ1.js.map → tabs-compatibility-7QKuXX4i.js.map} +1 -1
- package/dist/{tabs-compatibility-DDtYFCUj.cjs → tabs-compatibility-CX0cIu_Y.cjs} +2 -2
- package/dist/{tabs-compatibility-DDtYFCUj.cjs.map → tabs-compatibility-CX0cIu_Y.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-BjDGMGbj.js +43 -0
- package/dist/{tailwind.mixin-CZKT1dUr.js.map → tailwind.mixin-BjDGMGbj.js.map} +1 -1
- package/dist/tailwind.mixin-ClfV2_Nh.cjs +2 -0
- package/dist/{tailwind.mixin-CFrLBtkD.cjs.map → tailwind.mixin-ClfV2_Nh.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-B4DXG5Sg.js → textarea-DHrDn-O6.js} +2 -2
- package/dist/{textarea-B4DXG5Sg.js.map → textarea-DHrDn-O6.js.map} +1 -1
- package/dist/{textarea-ChDsPBZz.cjs → textarea-qLA0vP78.cjs} +2 -2
- package/dist/{textarea-ChDsPBZz.cjs.map → textarea-qLA0vP78.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DGjG_shg.js → theme-button-BEUsbH5m.js} +2 -2
- package/dist/{theme-button-DGjG_shg.js.map → theme-button-BEUsbH5m.js.map} +1 -1
- package/dist/{theme-button-qzDX0i9Q.cjs → theme-button-D7fBEUGf.cjs} +2 -2
- package/dist/{theme-button-qzDX0i9Q.cjs.map → theme-button-D7fBEUGf.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-C3r_-QqQ.js → theme.component-ByGua01V.js} +2 -2
- package/dist/{theme.component-C3r_-QqQ.js.map → theme.component-ByGua01V.js.map} +1 -1
- package/dist/{theme.component-Blc_4wu9.cjs → theme.component-CQ1trrZB.cjs} +2 -2
- package/dist/{theme.component-Blc_4wu9.cjs.map → theme.component-CQ1trrZB.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-BkE20wzQ.js → timezone-BpDMR26D.js} +3 -3
- package/dist/{timezone-BkE20wzQ.js.map → timezone-BpDMR26D.js.map} +1 -1
- package/dist/{timezone-wWfEuXrb.cjs → timezone-Bw4EXBt7.cjs} +2 -2
- package/dist/{timezone-wWfEuXrb.cjs.map → timezone-Bw4EXBt7.cjs.map} +1 -1
- package/dist/{tooltip-UtpbXzQX.js → tooltip-B1jynZOH.js} +2 -2
- package/dist/{tooltip-UtpbXzQX.js.map → tooltip-B1jynZOH.js.map} +1 -1
- package/dist/{tooltip-DLadXXnP.cjs → tooltip-Dhs4HL3A.cjs} +2 -2
- package/dist/{tooltip-DLadXXnP.cjs.map → tooltip-Dhs4HL3A.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-VkXtw2P8.js → tree-BH1qCJ_U.js} +2 -2
- package/dist/{tree-VkXtw2P8.js.map → tree-BH1qCJ_U.js.map} +1 -1
- package/dist/{tree-Brtho3Eu.cjs → tree-D-ezei_U.cjs} +2 -2
- package/dist/{tree-Brtho3Eu.cjs.map → tree-D-ezei_U.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-CEgaw_pR.cjs → typewriter-CtPh4Pyj.cjs} +2 -2
- package/dist/{typewriter-CEgaw_pR.cjs.map → typewriter-CtPh4Pyj.cjs.map} +1 -1
- package/dist/{typewriter-CsReDsYS.js → typewriter-DQbpNPtY.js} +4 -4
- package/dist/{typewriter-CsReDsYS.js.map → typewriter-DQbpNPtY.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-NurK7F-8.cjs → typography-BrIaOYmC.cjs} +2 -2
- package/dist/{typography-NurK7F-8.cjs.map → typography-BrIaOYmC.cjs.map} +1 -1
- package/dist/{typography-D_bM5DW7.js → typography-D71cmr0R.js} +2 -2
- package/dist/{typography-D_bM5DW7.js.map → typography-D71cmr0R.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/layout/scroll/scroll.d.ts +5 -0
- package/types/src/navigation-rail/navigation-rail.d.ts +17 -0
- package/dist/details-B_kKG0Du.cjs.map +0 -1
- package/dist/details-m-njXkGl.js.map +0 -1
- package/dist/flex-CE0IKjR4.cjs +0 -36
- package/dist/flex-CE0IKjR4.cjs.map +0 -1
- package/dist/flex-Czj-zqJQ.js.map +0 -1
- package/dist/navigation-rail-BzMOzaFm.cjs +0 -453
- package/dist/navigation-rail-BzMOzaFm.cjs.map +0 -1
- package/dist/navigation-rail-CjBw96pi.js +0 -602
- package/dist/navigation-rail-CjBw96pi.js.map +0 -1
- package/dist/tailwind.mixin-CFrLBtkD.cjs +0 -2
- package/dist/tailwind.mixin-CZKT1dUr.js +0 -43
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typewriter-CsReDsYS.js","sources":["../node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, queryAssignedNodes } from 'lit/decorators.js'\nimport TypeIt, { Options as TypeItOptions } from 'typeit'\n\n@customElement('schmancy-typewriter')\nexport class TypewriterElement extends $LitElement() {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 50\n\n\t/**\n\t * Delay before typing starts (ms).\n\t */\n\t@consume({ context: delayContext, subscribe: true })\n\t@property({ type: Number })\n\tdelay: number = 0\n\n\t/**\n\t * Automatically start typing on initialization.\n\t */\n\t@property({ type: Boolean })\n\tautoStart: boolean = true\n\n\t/**\n\t * The cursor character.\n\t */\n\t@property({ type: String })\n\tcursorChar: string = ''\n\n\t/**\n\t * Typing speed for deletions (ms per character).\n\t */\n\t@property({ type: Number })\n\tdeleteSpeed: number = 25\n\n\t@property({ type: Boolean }) once = true\n\t/**\n\t * TypeIt instance.\n\t */\n\tprivate typeItInstance: TypeIt | null = null\n\n\t/**\n\t * Reference to the typewriter container.\n\t */\n\t@query('#typewriter')\n\tprivate typewriterContainer!: HTMLElement\n\n\t@queryAssignedNodes({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedNodes!: Node[]\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedElements!: HTMLElement[]\n\t/**\n\t * Lifecycle method called when the component is disconnected from the DOM.\n\t * Ensures that TypeIt instances are properly cleaned up.\n\t */\n\n\tprivate sessionKey = ''\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._destroyTypeIt()\n\t}\n\n\t/**\n\t * Initializes the TypeIt instance with the provided slotted content.\n\t */\n\tprivate _startTyping() {\n\t\t// Destroy any existing TypeIt instance\n\t\tthis._destroyTypeIt()\n\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.shadowRoot?.querySelector('slot')?.removeAttribute('hidden')\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.typewriterContainer) {\n\t\t\tconsole.warn('Typewriter container not found.')\n\t\t\treturn\n\t\t}\n\n\t\t// Configure TypeIt options\n\t\tconst typeItOptions: TypeItOptions = {\n\t\t\tspeed: this.speed,\n\t\t\tstartDelay: this.delay,\n\t\t\tcursor: !!this.cursorChar,\n\t\t\tcursorChar: this.cursorChar,\n\t\t\tdeleteSpeed: this.deleteSpeed,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Dispatch the custom event\n\t\t\t\tthis.dispatchEvent(new CustomEvent('typeit-complete', { bubbles: true, composed: true }))\n\n\t\t\t\t// Hide the cursor\n\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t},\n\t\t}\n\n\t\t// Initialize TypeIt\n\t\tthis.typeItInstance = new TypeIt(this.typewriterContainer, typeItOptions)\n\n\t\t// Process slotted content as actions\n\t\tconst slottedNodes = this._getSlottedNodes\n\t\tslottedNodes.forEach(node => {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t// Handle plain text\n\t\t\t\tthis.typeItInstance?.type(node.textContent || '')\n\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t// Handle custom element\n\t\t\t\tthis._processCustomElement(node)\n\t\t\t}\n\t\t})\n\n\t\t// Start the typing animation if autoStart is enabled\n\t\t// use rxjs to detect once we are in the view port\n\t\tintersection$(this.shadowRoot?.host as Element).subscribe(() => {\n\t\t\t// alert('in view')\n\t\t\tthis.typeItInstance?.go()\n\t\t})\n\t\t// Start the typing animation if autoStart is enabled\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this._getSlottedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\t/**\n\t * Destroys the current TypeIt instance if it exists.\n\t */\n\tprivate _destroyTypeIt() {\n\t\tif (this.typeItInstance) {\n\t\t\ttry {\n\t\t\t\tthis.typeItInstance.destroy()\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error destroying TypeIt instance:', error)\n\t\t\t}\n\t\t\tthis.typeItInstance = null\n\t\t}\n\t}\n\n\t/**\n\t * Processes a custom element for its typing behavior.\n\t */\n\tprivate _processCustomElement(element: HTMLElement) {\n\t\tconst action = element.getAttribute('action')\n\t\tconst value = element.getAttribute('value')\n\t\tswitch (action) {\n\t\t\tcase 'pause':\n\t\t\t\tthis.typeItInstance?.pause(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tcase 'delete':\n\t\t\t\tthis.typeItInstance?.delete(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (element.tagName === 'P') {\n\t\t\t\t\tthis.typeItInstance.break()\n\t\t\t\t}\n\t\t\t\t// Treat as text if no action is defined\n\t\t\t\tthis.typeItInstance?.type(element.textContent || '')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Renders the component's HTML.\n\t */\n\trender(): TemplateResult {\n\t\treturn html`<div id=\"typewriter\" aria-live=\"polite\"></div>\n\n\t\t\t<div class=\"typewriter\">\n\t\t\t\t<slot\n\t\t\t\t\thidden\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._startTyping()\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typewriter': TypewriterElement\n\t}\n}\n"],"names":["isArray","thing","Array","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","n","opacity","options","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","el","document","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","forEach","child","nodeValue","c","parentNode","insertBefore","remove","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","querySelector","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","classList","contains","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","maybeChunkStringAsHtml","str","asHtml","cleanUpSkipped","index","newIndex","queueItems","cleanUp","i","isNumber","Number","isInteger","countStepsToSelector","selector","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","animate","pause","play","execute","queueItem","func","call","fireItem","wait","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","delay","shouldPauseCursor","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","isInput","handleFunctionalArg","arg","select","all","merge","originalObj","newObj","Object","assign","cursorFontStyles","color","transform","TypeIt","timeouts","predictedCursorPosition","statuses","firing","opts","queue","flushCallback","unfreeze","this","toString","substring","initialItems","add","steps","step","_q","set","Symbol","innerText","buildQueueItem","Boolean","typeable","cursorable","deletable","getQueue","rawValues","values","Map","item","keys","wipe","done","key","shouldDestroy","delete","get","reset","destroy","getItems","filter","getTypeable","getPendingQueueItems","pending","setUpCursor","typeitId","generateQueue","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","rebuild","is","property","elementIsInput","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","numberOfSteps","derivedCursorPosition","directionalStep","getPace","milliseconds","numCharacters","num","typeableQueueItems","rounds","then","flush","getOptions","getElement","#y","#r","remember","qKey","queueKey","printedCharacters","min","max","allChars","newCursorPosition","nodeToInsertBefore","#g","#w","#b","callback","silent","setTimeout","#i","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","#n","#u","#S","#o","newOptions","#s","type","splitItems","buildOptions","defaultFrames","defaultOptions","#C","existingMarkup","replace","trim","split","concat","#e","className","style","visibility","#I","items","#a","originalTarget","character","textContent","target","tagName","cursorNode","#f","slice","#h","rootElement","nodeParent","t","s","#l","#c","#v","shouldRenderCursor","#m","TypewriterElement","$LitElement","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","error","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","go","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"typewriter-DQbpNPtY.js","sources":["../node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, queryAssignedNodes } from 'lit/decorators.js'\nimport TypeIt, { Options as TypeItOptions } from 'typeit'\n\n@customElement('schmancy-typewriter')\nexport class TypewriterElement extends $LitElement() {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 50\n\n\t/**\n\t * Delay before typing starts (ms).\n\t */\n\t@consume({ context: delayContext, subscribe: true })\n\t@property({ type: Number })\n\tdelay: number = 0\n\n\t/**\n\t * Automatically start typing on initialization.\n\t */\n\t@property({ type: Boolean })\n\tautoStart: boolean = true\n\n\t/**\n\t * The cursor character.\n\t */\n\t@property({ type: String })\n\tcursorChar: string = ''\n\n\t/**\n\t * Typing speed for deletions (ms per character).\n\t */\n\t@property({ type: Number })\n\tdeleteSpeed: number = 25\n\n\t@property({ type: Boolean }) once = true\n\t/**\n\t * TypeIt instance.\n\t */\n\tprivate typeItInstance: TypeIt | null = null\n\n\t/**\n\t * Reference to the typewriter container.\n\t */\n\t@query('#typewriter')\n\tprivate typewriterContainer!: HTMLElement\n\n\t@queryAssignedNodes({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedNodes!: Node[]\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedElements!: HTMLElement[]\n\t/**\n\t * Lifecycle method called when the component is disconnected from the DOM.\n\t * Ensures that TypeIt instances are properly cleaned up.\n\t */\n\n\tprivate sessionKey = ''\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._destroyTypeIt()\n\t}\n\n\t/**\n\t * Initializes the TypeIt instance with the provided slotted content.\n\t */\n\tprivate _startTyping() {\n\t\t// Destroy any existing TypeIt instance\n\t\tthis._destroyTypeIt()\n\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.shadowRoot?.querySelector('slot')?.removeAttribute('hidden')\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.typewriterContainer) {\n\t\t\tconsole.warn('Typewriter container not found.')\n\t\t\treturn\n\t\t}\n\n\t\t// Configure TypeIt options\n\t\tconst typeItOptions: TypeItOptions = {\n\t\t\tspeed: this.speed,\n\t\t\tstartDelay: this.delay,\n\t\t\tcursor: !!this.cursorChar,\n\t\t\tcursorChar: this.cursorChar,\n\t\t\tdeleteSpeed: this.deleteSpeed,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Dispatch the custom event\n\t\t\t\tthis.dispatchEvent(new CustomEvent('typeit-complete', { bubbles: true, composed: true }))\n\n\t\t\t\t// Hide the cursor\n\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t},\n\t\t}\n\n\t\t// Initialize TypeIt\n\t\tthis.typeItInstance = new TypeIt(this.typewriterContainer, typeItOptions)\n\n\t\t// Process slotted content as actions\n\t\tconst slottedNodes = this._getSlottedNodes\n\t\tslottedNodes.forEach(node => {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t// Handle plain text\n\t\t\t\tthis.typeItInstance?.type(node.textContent || '')\n\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t// Handle custom element\n\t\t\t\tthis._processCustomElement(node)\n\t\t\t}\n\t\t})\n\n\t\t// Start the typing animation if autoStart is enabled\n\t\t// use rxjs to detect once we are in the view port\n\t\tintersection$(this.shadowRoot?.host as Element).subscribe(() => {\n\t\t\t// alert('in view')\n\t\t\tthis.typeItInstance?.go()\n\t\t})\n\t\t// Start the typing animation if autoStart is enabled\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this._getSlottedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\t/**\n\t * Destroys the current TypeIt instance if it exists.\n\t */\n\tprivate _destroyTypeIt() {\n\t\tif (this.typeItInstance) {\n\t\t\ttry {\n\t\t\t\tthis.typeItInstance.destroy()\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error destroying TypeIt instance:', error)\n\t\t\t}\n\t\t\tthis.typeItInstance = null\n\t\t}\n\t}\n\n\t/**\n\t * Processes a custom element for its typing behavior.\n\t */\n\tprivate _processCustomElement(element: HTMLElement) {\n\t\tconst action = element.getAttribute('action')\n\t\tconst value = element.getAttribute('value')\n\t\tswitch (action) {\n\t\t\tcase 'pause':\n\t\t\t\tthis.typeItInstance?.pause(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tcase 'delete':\n\t\t\t\tthis.typeItInstance?.delete(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (element.tagName === 'P') {\n\t\t\t\t\tthis.typeItInstance.break()\n\t\t\t\t}\n\t\t\t\t// Treat as text if no action is defined\n\t\t\t\tthis.typeItInstance?.type(element.textContent || '')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Renders the component's HTML.\n\t */\n\trender(): TemplateResult {\n\t\treturn html`<div id=\"typewriter\" aria-live=\"polite\"></div>\n\n\t\t\t<div class=\"typewriter\">\n\t\t\t\t<slot\n\t\t\t\t\thidden\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._startTyping()\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typewriter': TypewriterElement\n\t}\n}\n"],"names":["isArray","thing","Array","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","n","opacity","options","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","el","document","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","forEach","child","nodeValue","c","parentNode","insertBefore","remove","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","querySelector","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","classList","contains","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","maybeChunkStringAsHtml","str","asHtml","cleanUpSkipped","index","newIndex","queueItems","cleanUp","i","isNumber","Number","isInteger","countStepsToSelector","selector","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","animate","pause","play","execute","queueItem","func","call","fireItem","wait","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","delay","shouldPauseCursor","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","isInput","handleFunctionalArg","arg","select","all","merge","originalObj","newObj","Object","assign","cursorFontStyles","color","transform","TypeIt","timeouts","predictedCursorPosition","statuses","firing","opts","queue","flushCallback","unfreeze","this","toString","substring","initialItems","add","steps","step","_q","set","Symbol","innerText","buildQueueItem","Boolean","typeable","cursorable","deletable","getQueue","rawValues","values","Map","item","keys","wipe","done","key","shouldDestroy","delete","get","reset","destroy","getItems","filter","getTypeable","getPendingQueueItems","pending","setUpCursor","typeitId","generateQueue","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","rebuild","is","property","elementIsInput","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","numberOfSteps","derivedCursorPosition","directionalStep","getPace","milliseconds","numCharacters","num","typeableQueueItems","rounds","then","flush","getOptions","getElement","#y","#r","remember","qKey","queueKey","printedCharacters","min","max","allChars","newCursorPosition","nodeToInsertBefore","#g","#w","#b","callback","silent","setTimeout","#i","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","#n","#u","#S","#o","newOptions","#s","type","splitItems","buildOptions","defaultFrames","defaultOptions","#C","existingMarkup","replace","trim","split","concat","#e","className","style","visibility","#I","items","#a","originalTarget","character","textContent","target","tagName","cursorNode","#f","slice","#h","rootElement","nodeParent","t","s","#l","#c","#v","shouldRenderCursor","#m","TypewriterElement","$LitElement","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","error","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","go","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/typewriter.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typewriter-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typewriter-CtPh4Pyj.cjs");Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>e.TypewriterElement});
|
|
2
2
|
//# sourceMappingURL=typewriter.cjs.map
|
package/dist/typewriter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const r=require("./tailwind.mixin-
|
|
1
|
+
"use strict";const r=require("./tailwind.mixin-ClfV2_Nh.cjs"),a=require("lit"),e=require("lit/decorators.js");var g=Object.defineProperty,y=Object.getOwnPropertyDescriptor,i=(l,o,h,n)=>{for(var p,t=n>1?void 0:n?y(o,h):o,s=l.length-1;s>=0;s--)(p=l[s])&&(t=(n?p(o,h,t):p(t))||t);return n&&t&&g(o,h,t),t};exports.SchmancyTypography=class extends r.TailwindElement(a.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
font-family: inherit;
|
|
@@ -283,4 +283,4 @@
|
|
|
283
283
|
|
|
284
284
|
/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */
|
|
285
285
|
`){constructor(){super(...arguments),this.type="body",this.token="md"}render(){return a.html`<slot></slot>`}},i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"type",2),i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"token",2),i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"align",2),i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"weight",2),i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"transform",2),i([e.property({type:Number,attribute:"max-lines",reflect:!0})],exports.SchmancyTypography.prototype,"maxLines",2),exports.SchmancyTypography=i([e.customElement("schmancy-typography")],exports.SchmancyTypography);
|
|
286
|
-
//# sourceMappingURL=typography-
|
|
286
|
+
//# sourceMappingURL=typography-BrIaOYmC.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typography-NurK7F-8.cjs","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":"8SAWaA,QAAAA,mBAAN,cAAiCC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAjD,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAmSNC,KAAAC,KAAyE,OAQzED,KAAAE,MAA0C,IAAA,CAgChC,QAAAC,CACT,OAAOC,EAAAA,mBACR,CAAA,EA1CAC,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlSvBd,2BAmSZe,UAAA,OAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA1SvBd,2BA2SZe,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlTvBd,2BAmTZe,UAAA,QAAA,CAAA,EASAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA3TvBd,2BA4TZe,UAAA,SAAA,CAAA,EAUAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EArUvBd,2BAsUZe,UAAA,YAAA,CAAA,EAGAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMS,OAAQC,UAAW,YAAaH,QAAAA,MAxUtCd,2BAyUZe,UAAA,WAAA,CAAA,EAzUYf,QAAAA,mBAANW,EAAA,CADNO,EAAAA,cAAc,qBAAA,CAAA,EACFlB"}
|
|
1
|
+
{"version":3,"file":"typography-BrIaOYmC.cjs","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":"8SAWaA,QAAAA,mBAAN,cAAiCC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAjD,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAmSNC,KAAAC,KAAyE,OAQzED,KAAAE,MAA0C,IAAA,CAgChC,QAAAC,CACT,OAAOC,EAAAA,mBACR,CAAA,EA1CAC,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlSvBd,2BAmSZe,UAAA,OAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA1SvBd,2BA2SZe,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlTvBd,2BAmTZe,UAAA,QAAA,CAAA,EASAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA3TvBd,2BA4TZe,UAAA,SAAA,CAAA,EAUAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EArUvBd,2BAsUZe,UAAA,YAAA,CAAA,EAGAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMS,OAAQC,UAAW,YAAaH,QAAAA,MAxUtCd,2BAyUZe,UAAA,WAAA,CAAA,EAzUYf,QAAAA,mBAANW,EAAA,CADNO,EAAAA,cAAc,qBAAA,CAAA,EACFlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { T as r } from "./tailwind.mixin-
|
|
1
|
+
import { T as r } from "./tailwind.mixin-BjDGMGbj.js";
|
|
2
2
|
import { css as x, html as g } from "lit";
|
|
3
3
|
import { property as o, customElement as f } from "lit/decorators.js";
|
|
4
4
|
var y = Object.defineProperty, d = Object.getOwnPropertyDescriptor, i = (a, n, s, h) => {
|
|
@@ -301,4 +301,4 @@ i([o({ type: String, reflect: !0 })], t.prototype, "type", 2), i([o({ type: Stri
|
|
|
301
301
|
export {
|
|
302
302
|
t as S
|
|
303
303
|
};
|
|
304
|
-
//# sourceMappingURL=typography-
|
|
304
|
+
//# sourceMappingURL=typography-D71cmr0R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typography-D_bM5DW7.js","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":";;;;;;;AAWO,IAAMA,IAAN,cAAiCC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAAjD,cAAAC;AAAAC,aAAAC,SAAAA,GAmSNC,KAAAC,OAAyE,QAQzED,KAAAE,QAA0C;AAAA,EAAA;AAAA,EAgChC,SAAAC;AACT,WAAOC;AAAAA,EACR;AAAA;AA1CAC,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GAlSvBd,EAmSZe,WAAA,QAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GA1SvBd,EA2SZe,WAAA,SAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QAlTdd,EAmTZe,WAAA,SAAA,CAAA,GASAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QA3Tdd,EA4TZe,WAAA,UAAA,CAAA,GAUAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,GAAS,CAAA,CAAA,GArUvBd,EAsUZe,WAAA,aAAA,IAGAJ,EAAA,CADCC,EAAS,EAAEL,MAAMS,QAAQC,WAAW,aAAaH,YAAS,CAAA,CAAA,GAxU/Cd,EAyUZe,WAAA,YAAA,CAAA,GAzUYf,IAANW,EAAA,CADNO,EAAc,qBAAA,CAAA,GACFlB,CAAAA;"}
|
|
1
|
+
{"version":3,"file":"typography-D71cmr0R.js","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":";;;;;;;AAWO,IAAMA,IAAN,cAAiCC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAAjD,cAAAC;AAAAC,aAAAC,SAAAA,GAmSNC,KAAAC,OAAyE,QAQzED,KAAAE,QAA0C;AAAA,EAAA;AAAA,EAgChC,SAAAC;AACT,WAAOC;AAAAA,EACR;AAAA;AA1CAC,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GAlSvBd,EAmSZe,WAAA,QAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GA1SvBd,EA2SZe,WAAA,SAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QAlTdd,EAmTZe,WAAA,SAAA,CAAA,GASAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QA3Tdd,EA4TZe,WAAA,UAAA,CAAA,GAUAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,GAAS,CAAA,CAAA,GArUvBd,EAsUZe,WAAA,aAAA,IAGAJ,EAAA,CADCC,EAAS,EAAEL,MAAMS,QAAQC,WAAW,aAAaH,YAAS,CAAA,CAAA,GAxU/Cd,EAyUZe,WAAA,YAAA,CAAA,GAzUYf,IAANW,EAAA,CADNO,EAAc,qBAAA,CAAA,GACFlB,CAAAA;"}
|
package/dist/typography.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-BrIaOYmC.cjs");Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>e.SchmancyTypography});
|
|
2
2
|
//# sourceMappingURL=typography.cjs.map
|
package/dist/typography.js
CHANGED
package/package.json
CHANGED
|
@@ -129,6 +129,11 @@ export declare class SchmancyScroll extends SchmancyScroll_base {
|
|
|
129
129
|
* @private
|
|
130
130
|
*/
|
|
131
131
|
private updateScrollingStyles;
|
|
132
|
+
/**
|
|
133
|
+
* Updates the layout context based on parent container type
|
|
134
|
+
* @private
|
|
135
|
+
*/
|
|
136
|
+
private updateLayoutContext;
|
|
132
137
|
/**
|
|
133
138
|
* Called when properties change
|
|
134
139
|
* @protected
|
|
@@ -80,6 +80,11 @@ export declare class SchmancyNavigationRail extends SchmancyNavigationRail_base
|
|
|
80
80
|
* @default true
|
|
81
81
|
*/
|
|
82
82
|
keyboardNavigation: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Whether the navigation rail is expanded
|
|
85
|
+
* @default false
|
|
86
|
+
*/
|
|
87
|
+
expanded: boolean;
|
|
83
88
|
private focusedIndex;
|
|
84
89
|
private allElements;
|
|
85
90
|
private get navigationItems();
|
|
@@ -88,6 +93,18 @@ export declare class SchmancyNavigationRail extends SchmancyNavigationRail_base
|
|
|
88
93
|
private updateActiveStates;
|
|
89
94
|
private updateActiveByValue;
|
|
90
95
|
private updateLabelVisibility;
|
|
96
|
+
/**
|
|
97
|
+
* Programmatically expand the navigation rail
|
|
98
|
+
*/
|
|
99
|
+
expand(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Programmatically collapse the navigation rail
|
|
102
|
+
*/
|
|
103
|
+
collapse(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Toggle the navigation rail between expanded and collapsed states
|
|
106
|
+
*/
|
|
107
|
+
toggle(): void;
|
|
91
108
|
private handleKeyDown;
|
|
92
109
|
private handleFabClick;
|
|
93
110
|
private handleMenuClick;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"details-B_kKG0Du.cjs","sources":["../src/details/details.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\r\nimport { css, html, LitElement } from 'lit'\r\nimport { customElement, property, state } from 'lit/decorators.js'\r\nimport { BehaviorSubject } from 'rxjs'\r\n\r\n@customElement('schmancy-details')\r\nexport default class SchmancyDetails extends TailwindElement(css`\r\n\t:host {\r\n\t\tdisplay: block;\r\n\t\tposition: relative;\r\n\t}\r\n\r\n\t/* Hide browser default marker */\r\n\tsummary::-webkit-details-marker {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\tsummary {\r\n\t\tlist-style: none;\r\n\t}\r\n\r\n\t/* Container border-radius following M3 spec */\r\n\tdetails {\r\n\t\t/* M3 medium shape for expandable components */\r\n\t\tborder-radius: var(--schmancy-sys-shape-corner-medium);\r\n\t\ttransition: all var(--schmancy-sys-motion-duration-short4) var(--schmancy-sys-motion-easing-standard);\r\n\t}\r\n\r\n\t/* Variant-specific styles */\r\n\t:host([variant='outlined']) details {\r\n\t\tborder: 1px solid var(--schmancy-sys-color-outlineVariant);\r\n\t\tbackground-color: var(--schmancy-sys-color-surface-default);\r\n\t}\r\n\r\n\t:host([variant='filled']) details {\r\n\t\t/* M3: container surface */\r\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\r\n\t}\r\n\r\n\t:host([variant='elevated']) details {\r\n\t\t/* M3: containerLow when closed */\r\n\t\tbackground-color: var(--schmancy-sys-color-surface-low);\r\n\t\tbox-shadow: var(--schmancy-sys-elevation-1);\r\n\t}\r\n\r\n\t:host([variant='elevated']) details[open] {\r\n\t\t/* M3: elevated state increases elevation and changes surface */\r\n\t\tbox-shadow: var(--schmancy-sys-elevation-2);\r\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\r\n\t}\r\n\r\n\t/* Animation keyframes */\r\n\t@keyframes slideDown {\r\n\t\tfrom { opacity: 0; transform: translateY(-8px); }\r\n\t\tto { opacity: 1; transform: translateY(0); }\r\n\t}\r\n\r\n\t@keyframes ripple {\r\n\t\tto { transform: scale(4); opacity: 0; }\r\n\t}\r\n\r\n\t.content-wrapper[data-open='true'] {\r\n\t\tanimation: slideDown var(--schmancy-sys-motion-duration-medium1) var(--schmancy-sys-motion-easing-emphasized-decelerate);\r\n\t}\r\n\r\n\t/* Focus ring following M3 spec */\r\n\tsummary:focus-visible {\r\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\r\n\t\toutline-offset: 2px;\r\n\t\tborder-radius: var(--schmancy-sys-shape-corner-medium);\r\n\t}\r\n\r\n\t/* Icon rotation transition with M3 motion */\r\n\t.icon-rotate {\r\n\t\ttransform: rotate(90deg);\r\n\t}\r\n`) {\r\n\tprotected static shadowRootOptions = {\r\n\t\t...LitElement.shadowRootOptions,\r\n\t\tmode: 'open' as const,\r\n\t\tdelegatesFocus: true,\r\n\t}\r\n\r\n\t@property() summary = ''\r\n\t@property({ type: Boolean, reflect: true })\r\n\tget open() {\r\n\t\treturn this._open$.value\r\n\t}\r\n\tset open(value: boolean) {\r\n\t\tif (this._open$.value !== value) {\r\n\t\t\tthis._open$.next(value)\r\n\t\t}\r\n\t}\r\n\t@property({ reflect: true }) variant: 'default' | 'outlined' | 'filled' | 'elevated' = 'default'\r\n\r\n\t// Internal state for ripple effects\r\n\t@state() private ripples: Array<{ x: number; y: number; id: number }> = []\r\n\t@state() private pressed = false\r\n\r\n\tprivate nextRippleId = 0\r\n\tprivate _open$ = new BehaviorSubject<boolean>(false)\r\n\r\n\trender() {\r\n\t\tconst isOpen = this._open$.value\r\n\r\n\t\t// Dynamic state layer opacity\r\n\t\tconst stateLayerOpacity = this.pressed\r\n\t\t\t? 'opacity-[var(--schmancy-sys-state-pressed-opacity)]'\r\n\t\t\t: this.variant === 'default'\r\n\t\t\t\t? 'opacity-0 hover:opacity-[var(--schmancy-sys-state-hover-opacity)]'\r\n\t\t\t\t: 'opacity-0 hover:opacity-[0.04]'\r\n\r\n\t\t// Dynamic icon rotation class\r\n\t\tconst iconClasses = this.classMap({\r\n\t\t\t'flex items-center justify-center w-6 h-6 rounded-full flex-shrink-0': true,\r\n\t\t\t'text-surface-onVariant group-hover:text-surface-on': true,\r\n\t\t\t'transition-all duration-200': true,\r\n\t\t\t'icon-rotate': isOpen\r\n\t\t})\r\n\r\n\t\treturn html`\r\n\t\t\t<details\r\n\t\t\t\t?open=${isOpen}\r\n\t\t\t\t@toggle=${this._handleToggle}\r\n\t\t\t\tclass=\"w-full overflow-hidden\"\r\n\t\t\t>\r\n\t\t\t\t<summary\r\n\t\t\t\t\tclass=\"cursor-pointer select-none relative flex items-center gap-3 min-h-[48px] sm:min-h-[56px] px-4 sm:px-6 py-3 sm:py-4 rounded-xl transition-colors duration-200 text-surface-on group\"\r\n\t\t\t\t\t@click=${this._handleClick}\r\n\t\t\t\t\t@mousedown=${this._handleMouseDown}\r\n\t\t\t\t\t@mouseup=${this._handleMouseUp}\r\n\t\t\t\t\t@mouseleave=${this._handleMouseLeave}\r\n\t\t\t\t\t@keydown=${this._handleKeyDown}\r\n\t\t\t\t\t@keyup=${this._handleKeyUp}\r\n\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<!-- State layer for hover/focus/pressed states -->\r\n\t\t\t\t\t<div class=\"absolute inset-0 rounded-xl pointer-events-none transition-opacity duration-200 bg-surface-on ${stateLayerOpacity}\"></div>\r\n\r\n\t\t\t\t\t<!-- Ripple container -->\r\n\t\t\t\t\t<div class=\"absolute inset-0 rounded-xl overflow-hidden pointer-events-none\">\r\n\t\t\t\t\t\t${this.ripples.map(\r\n\t\t\t\t\t\t\tripple => html`\r\n\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\tclass=\"absolute rounded-full scale-0 animate-[ripple_600ms_linear] bg-surface-on opacity-[0.12] pointer-events-none\"\r\n\t\t\t\t\t\t\t\t\tstyle=\"\r\n\t\t\t\t\t\t\t\t\t\tleft: ${ripple.x}px;\r\n\t\t\t\t\t\t\t\t\t\ttop: ${ripple.y}px;\r\n\t\t\t\t\t\t\t\t\t\twidth: 20px;\r\n\t\t\t\t\t\t\t\t\t\theight: 20px;\r\n\t\t\t\t\t\t\t\t\t\tmargin-left: -10px;\r\n\t\t\t\t\t\t\t\t\t\tmargin-top: -10px;\r\n\t\t\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t\t\t></span>\r\n\t\t\t\t\t\t\t`,\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<!-- Summary content -->\r\n\t\t\t\t\t<span class=\"relative flex-1 font-medium text-base sm:text-lg z-10\">\r\n\t\t\t\t\t\t<slot name=\"summary\">${this.summary}</slot>\r\n\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t<!-- Expand/collapse icon -->\r\n\t\t\t\t\t<span class=${iconClasses}>\r\n\t\t\t\t\t\t<svg\r\n\t\t\t\t\t\t\twidth=\"24\"\r\n\t\t\t\t\t\t\theight=\"24\"\r\n\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\r\n\t\t\t\t\t\t\tfill=\"none\"\r\n\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\t\tclass=\"w-5 h-5 sm:w-6 sm:h-6\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\td=\"M9 6L15 12L9 18\"\r\n\t\t\t\t\t\t\t\tstroke=\"currentColor\"\r\n\t\t\t\t\t\t\t\tstroke-width=\"2\"\r\n\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\r\n\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</summary>\r\n\r\n\t\t\t\t<!-- Content area -->\r\n\t\t\t\t${isOpen ? html`\r\n\t\t\t\t\t<div class=\"px-4 sm:px-6 pb-3 sm:pb-4 text-surface-onVariant text-sm sm:text-base\">\r\n\t\t\t\t\t\t<div class=\"content-wrapper\" data-open=\"true\">\r\n\t\t\t\t\t\t\t<slot></slot>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t` : ''}\r\n\t\t\t</details>\r\n\t\t`\r\n\t}\r\n\r\n\tprivate _handleToggle(e: Event) {\r\n\t\tconst details = e.target as HTMLDetailsElement\r\n\t\tthis._open$.next(details.open)\r\n\t\tthis._dispatchToggleEvent(details.open)\r\n\t}\r\n\r\n\tprivate _toggleOpen(x: number, y: number) {\r\n\t\t// Add ripple effect\r\n\t\tconst id = this.nextRippleId++\r\n\t\tthis.ripples = [...this.ripples, { x, y, id }]\r\n\r\n\t\t// Remove ripple after animation\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.ripples = this.ripples.filter(r => r.id !== id)\r\n\t\t}, 600)\r\n\r\n\t\t// Toggle state\r\n\t\tconst newState = !this._open$.value\r\n\t\tthis._open$.next(newState)\r\n\t\tthis._dispatchToggleEvent(newState)\r\n\t}\r\n\r\n\tprivate _dispatchToggleEvent(open: boolean) {\r\n\t\tthis.dispatchEvent(\r\n\t\t\tnew CustomEvent('toggle', {\r\n\t\t\t\tdetail: { open },\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcomposed: true,\r\n\t\t\t})\r\n\t\t)\r\n\t}\r\n\r\n\tprivate _handleClick(e: MouseEvent) {\r\n\t\te.preventDefault()\r\n\t\tconst rect = (e.currentTarget as HTMLElement).getBoundingClientRect()\r\n\t\tthis._toggleOpen(e.clientX - rect.left, e.clientY - rect.top)\r\n\t}\r\n\r\n\tprivate _handleKeyDown(e: KeyboardEvent) {\r\n\t\tif (e.key === 'Enter' || e.key === ' ') {\r\n\t\t\te.preventDefault()\r\n\t\t\tthis.pressed = true\r\n\t\t\tconst rect = (e.currentTarget as HTMLElement).getBoundingClientRect()\r\n\t\t\tthis._toggleOpen(rect.width / 2, rect.height / 2)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _handleKeyUp(e: KeyboardEvent) {\r\n\t\tif (e.key === 'Enter' || e.key === ' ') {\r\n\t\t\tthis.pressed = false\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _handleMouseDown() {\r\n\t\tthis.pressed = true\r\n\t}\r\n\r\n\tprivate _handleMouseUp() {\r\n\t\tthis.pressed = false\r\n\t}\r\n\r\n\tprivate _handleMouseLeave() {\r\n\t\tthis.pressed = false\r\n\t}\r\n}\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'schmancy-details': SchmancyDetails\r\n\t}\r\n}\r\n"],"names":["SchmancyDetails","TailwindElement","css","constructor","super","arguments","this","summary","variant","ripples","pressed","nextRippleId","_open$","BehaviorSubject","open","value","next","render","isOpen","stateLayerOpacity","iconClasses","classMap","html","_handleToggle","_handleClick","_handleMouseDown","_handleMouseUp","_handleMouseLeave","_handleKeyDown","_handleKeyUp","map","ripple","x","y","e","details","target","_dispatchToggleEvent","id","setTimeout","filter","r","newState","dispatchEvent","CustomEvent","detail","bubbles","composed","preventDefault","rect","currentTarget","getBoundingClientRect","_toggleOpen","clientX","left","clientY","top","key","width","height","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","property","prototype","type","Boolean","reflect","state","customElement"],"mappings":"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"}
|