@mhmo91/schmancy 0.2.199 → 0.2.200

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.
Files changed (280) hide show
  1. package/dist/_commonjsHelpers-Dw9sPFZy.js +7 -0
  2. package/dist/_commonjsHelpers-Dw9sPFZy.js.map +1 -0
  3. package/dist/_commonjsHelpers-k2hpEU-q.cjs +2 -0
  4. package/dist/_commonjsHelpers-k2hpEU-q.cjs.map +1 -0
  5. package/dist/{animated-text-Cb07SP6h.js → animated-text-BZWvzqEZ.js} +3 -3
  6. package/dist/{animated-text-Cb07SP6h.js.map → animated-text-BZWvzqEZ.js.map} +1 -1
  7. package/dist/{animated-text-DML1qmmR.cjs → animated-text-BgLktXr-.cjs} +2 -2
  8. package/dist/{animated-text-DML1qmmR.cjs.map → animated-text-BgLktXr-.cjs.map} +1 -1
  9. package/dist/animated-text.cjs +1 -1
  10. package/dist/animated-text.js +1 -1
  11. package/dist/area.cjs +1 -1
  12. package/dist/{area.component-Psgv50Lq.cjs → area.component-CqKoQRDp.cjs} +2 -2
  13. package/dist/{area.component-Psgv50Lq.cjs.map → area.component-CqKoQRDp.cjs.map} +1 -1
  14. package/dist/{area.component-CdFovqHE.js → area.component-zvrF1R-P.js} +3 -3
  15. package/dist/{area.component-CdFovqHE.js.map → area.component-zvrF1R-P.js.map} +1 -1
  16. package/dist/area.js +1 -1
  17. package/dist/{autocomplete-B4F-i4IH.cjs → autocomplete-BCE9oBkO.cjs} +2 -2
  18. package/dist/{autocomplete-B4F-i4IH.cjs.map → autocomplete-BCE9oBkO.cjs.map} +1 -1
  19. package/dist/{autocomplete-87RcHRRv.js → autocomplete-CpYDECg0.js} +3 -3
  20. package/dist/{autocomplete-87RcHRRv.js.map → autocomplete-CpYDECg0.js.map} +1 -1
  21. package/dist/autocomplete.cjs +1 -1
  22. package/dist/autocomplete.js +1 -1
  23. package/dist/{avatar-Dx-kdZaM.js → avatar-B_BubJYb.js} +46 -45
  24. package/dist/{avatar-Dx-kdZaM.js.map → avatar-B_BubJYb.js.map} +1 -1
  25. package/dist/{avatar-DI6tP5aD.cjs → avatar-B_y2vLrR.cjs} +2 -2
  26. package/dist/{avatar-DI6tP5aD.cjs.map → avatar-B_y2vLrR.cjs.map} +1 -1
  27. package/dist/badge.cjs +1 -1
  28. package/dist/badge.js +1 -1
  29. package/dist/busy.cjs +1 -1
  30. package/dist/busy.js +1 -1
  31. package/dist/button.cjs +1 -1
  32. package/dist/button.js +1 -1
  33. package/dist/card.cjs +1 -1
  34. package/dist/card.js +1 -1
  35. package/dist/{checkbox-Cntlr_eV.js → checkbox-CJ6x-G_b.js} +2 -2
  36. package/dist/{checkbox-Cntlr_eV.js.map → checkbox-CJ6x-G_b.js.map} +1 -1
  37. package/dist/{checkbox-C80YxaCN.cjs → checkbox-DATn1US_.cjs} +2 -2
  38. package/dist/{checkbox-C80YxaCN.cjs.map → checkbox-DATn1US_.cjs.map} +1 -1
  39. package/dist/checkbox.cjs +1 -1
  40. package/dist/checkbox.js +1 -1
  41. package/dist/{chips-CI-fsAqX.cjs → chips-BbWIMKDU.cjs} +2 -2
  42. package/dist/{chips-CI-fsAqX.cjs.map → chips-BbWIMKDU.cjs.map} +1 -1
  43. package/dist/{chips-vMtInVGX.js → chips-CcT1N7--.js} +9 -9
  44. package/dist/{chips-vMtInVGX.js.map → chips-CcT1N7--.js.map} +1 -1
  45. package/dist/chips.cjs +1 -1
  46. package/dist/chips.js +1 -1
  47. package/dist/{circular-progress-8LR4RVjD.js → circular-progress-Cs3G6PHo.js} +3 -3
  48. package/dist/{circular-progress-8LR4RVjD.js.map → circular-progress-Cs3G6PHo.js.map} +1 -1
  49. package/dist/{circular-progress-CSWSAcU6.cjs → circular-progress-JGc2_9ef.cjs} +2 -2
  50. package/dist/{circular-progress-CSWSAcU6.cjs.map → circular-progress-JGc2_9ef.cjs.map} +1 -1
  51. package/dist/circular-progress.cjs +1 -1
  52. package/dist/circular-progress.js +1 -1
  53. package/dist/code-highlight.cjs +2 -0
  54. package/dist/code-highlight.cjs.map +1 -0
  55. package/dist/code-highlight.js +7 -0
  56. package/dist/code-highlight.js.map +1 -0
  57. package/dist/code-preview-BZ-uk6y1.js +876 -0
  58. package/dist/code-preview-BZ-uk6y1.js.map +1 -0
  59. package/dist/code-preview-DXf_SN2X.cjs +133 -0
  60. package/dist/code-preview-DXf_SN2X.cjs.map +1 -0
  61. package/dist/components.cjs +1 -1
  62. package/dist/components.js +1 -1
  63. package/dist/content-drawer.cjs +1 -1
  64. package/dist/content-drawer.js +1 -1
  65. package/dist/date-range-D85imfq-.cjs +121 -0
  66. package/dist/{date-range-BkVCslGl.cjs.map → date-range-D85imfq-.cjs.map} +1 -1
  67. package/dist/{date-range-ChsdVWRV.js → date-range-Dt9V5MyB.js} +62 -64
  68. package/dist/{date-range-ChsdVWRV.js.map → date-range-Dt9V5MyB.js.map} +1 -1
  69. package/dist/date-range.cjs +1 -1
  70. package/dist/date-range.js +1 -1
  71. package/dist/{delay-D6UmIwSa.cjs → delay-BH-y0tJg.cjs} +2 -2
  72. package/dist/{delay-D6UmIwSa.cjs.map → delay-BH-y0tJg.cjs.map} +1 -1
  73. package/dist/{delay-DJMIbnvL.js → delay-CE3iPMYG.js} +11 -11
  74. package/dist/{delay-DJMIbnvL.js.map → delay-CE3iPMYG.js.map} +1 -1
  75. package/dist/delay.cjs +1 -1
  76. package/dist/delay.js +1 -1
  77. package/dist/{dialog-content-Cw1Al_Re.cjs → dialog-content-BQN75NSZ.cjs} +2 -2
  78. package/dist/{dialog-content-Cw1Al_Re.cjs.map → dialog-content-BQN75NSZ.cjs.map} +1 -1
  79. package/dist/{dialog-content-CWvxqVsr.js → dialog-content-E5R1XfK5.js} +3 -3
  80. package/dist/{dialog-content-CWvxqVsr.js.map → dialog-content-E5R1XfK5.js.map} +1 -1
  81. package/dist/dialog.cjs +1 -1
  82. package/dist/dialog.js +1 -1
  83. package/dist/{divider-Cp6EXlTN.cjs → divider-BEtL0P-_.cjs} +2 -2
  84. package/dist/{divider-Cp6EXlTN.cjs.map → divider-BEtL0P-_.cjs.map} +1 -1
  85. package/dist/{divider-BGo7hglJ.js → divider-BlSi0WWi.js} +3 -3
  86. package/dist/{divider-BGo7hglJ.js.map → divider-BlSi0WWi.js.map} +1 -1
  87. package/dist/divider.cjs +1 -1
  88. package/dist/divider.js +1 -1
  89. package/dist/{dropdown-content-CTWWDRgy.js → dropdown-content-DkKciM_R.js} +3 -3
  90. package/dist/{dropdown-content-CTWWDRgy.js.map → dropdown-content-DkKciM_R.js.map} +1 -1
  91. package/dist/{dropdown-content-CmCumNjC.cjs → dropdown-content-HRI7Jkak.cjs} +2 -2
  92. package/dist/{dropdown-content-CmCumNjC.cjs.map → dropdown-content-HRI7Jkak.cjs.map} +1 -1
  93. package/dist/dropdown.cjs +1 -1
  94. package/dist/dropdown.js +1 -1
  95. package/dist/extra.cjs +1 -1
  96. package/dist/extra.js +1 -1
  97. package/dist/{flex-Dyfn6mxF.cjs → flex-CwTn3AfA.cjs} +2 -2
  98. package/dist/{flex-Dyfn6mxF.cjs.map → flex-CwTn3AfA.cjs.map} +1 -1
  99. package/dist/{flex-CKtJkkxU.js → flex-DHA02Mfw.js} +2 -2
  100. package/dist/{flex-CKtJkkxU.js.map → flex-DHA02Mfw.js.map} +1 -1
  101. package/dist/{form-BbQRONBu.cjs → form-C9llOgOw.cjs} +2 -2
  102. package/dist/{form-BbQRONBu.cjs.map → form-C9llOgOw.cjs.map} +1 -1
  103. package/dist/{form-BZdw3XUt.js → form-DsprWndI.js} +2 -2
  104. package/dist/{form-BZdw3XUt.js.map → form-DsprWndI.js.map} +1 -1
  105. package/dist/form.cjs +1 -1
  106. package/dist/form.js +1 -1
  107. package/dist/{icon-CNkK3oMH.cjs → icon-B1vaqlkD.cjs} +2 -2
  108. package/dist/icon-B1vaqlkD.cjs.map +1 -0
  109. package/dist/{icon-PZTHZSsC.js → icon-D967cxey.js} +2 -3
  110. package/dist/icon-D967cxey.js.map +1 -0
  111. package/dist/{icon-button-5_uidIo2.js → icon-button-C_OqjQfc.js} +3 -3
  112. package/dist/{icon-button-5_uidIo2.js.map → icon-button-C_OqjQfc.js.map} +1 -1
  113. package/dist/{icon-button-L6UzTqIn.cjs → icon-button-D6RzSEQb.cjs} +2 -2
  114. package/dist/{icon-button-L6UzTqIn.cjs.map → icon-button-D6RzSEQb.cjs.map} +1 -1
  115. package/dist/icons.cjs +1 -1
  116. package/dist/icons.js +1 -1
  117. package/dist/index.cjs +1 -1
  118. package/dist/index.js +156 -152
  119. package/dist/index.js.map +1 -1
  120. package/dist/{input-cvO-mD1t.js → input-4heVsnGw.js} +2 -2
  121. package/dist/{input-cvO-mD1t.js.map → input-4heVsnGw.js.map} +1 -1
  122. package/dist/{input-GETorvfT.cjs → input-DschQCBp.cjs} +2 -2
  123. package/dist/{input-GETorvfT.cjs.map → input-DschQCBp.cjs.map} +1 -1
  124. package/dist/input.cjs +1 -1
  125. package/dist/input.js +1 -1
  126. package/dist/layout.cjs +1 -1
  127. package/dist/layout.js +1 -1
  128. package/dist/{list-BPQwn2ZD.cjs → list-B1bxSmd5.cjs} +2 -2
  129. package/dist/{list-BPQwn2ZD.cjs.map → list-B1bxSmd5.cjs.map} +1 -1
  130. package/dist/{list-CjVW-XS-.js → list-DE1otSG3.js} +2 -2
  131. package/dist/{list-CjVW-XS-.js.map → list-DE1otSG3.js.map} +1 -1
  132. package/dist/list.cjs +1 -1
  133. package/dist/list.js +1 -1
  134. package/dist/{litElement.mixin-BKgKxczr.js → litElement.mixin-1-y-wwQg.js} +2 -2
  135. package/dist/{litElement.mixin-BKgKxczr.js.map → litElement.mixin-1-y-wwQg.js.map} +1 -1
  136. package/dist/{litElement.mixin-0pIFA8ru.cjs → litElement.mixin-CB6DWbFn.cjs} +2 -2
  137. package/dist/{litElement.mixin-0pIFA8ru.cjs.map → litElement.mixin-CB6DWbFn.cjs.map} +1 -1
  138. package/dist/{menu-Bj9xX6Hn.js → menu-B1qPlV2t.js} +3 -3
  139. package/dist/{menu-Bj9xX6Hn.js.map → menu-B1qPlV2t.js.map} +1 -1
  140. package/dist/{menu-BpjaKAXC.cjs → menu-TDH53RmV.cjs} +2 -2
  141. package/dist/{menu-BpjaKAXC.cjs.map → menu-TDH53RmV.cjs.map} +1 -1
  142. package/dist/menu.cjs +1 -1
  143. package/dist/menu.js +1 -1
  144. package/dist/nav-drawer.cjs +1 -1
  145. package/dist/nav-drawer.js +1 -1
  146. package/dist/{notification-service-BFAKagab.cjs → notification-service-BKSRwonz.cjs} +2 -2
  147. package/dist/{notification-service-BFAKagab.cjs.map → notification-service-BKSRwonz.cjs.map} +1 -1
  148. package/dist/{notification-service-ITb5rmvM.js → notification-service-D2pgTqTS.js} +3 -3
  149. package/dist/{notification-service-ITb5rmvM.js.map → notification-service-D2pgTqTS.js.map} +1 -1
  150. package/dist/notification.cjs +1 -1
  151. package/dist/notification.js +1 -1
  152. package/dist/{option-_DZj4_on.js → option-CLY6hO5V.js} +2 -2
  153. package/dist/{option-_DZj4_on.js.map → option-CLY6hO5V.js.map} +1 -1
  154. package/dist/{option-vszqrPbH.cjs → option-Q6l-t3es.cjs} +2 -2
  155. package/dist/{option-vszqrPbH.cjs.map → option-Q6l-t3es.cjs.map} +1 -1
  156. package/dist/option.cjs +1 -1
  157. package/dist/option.js +1 -1
  158. package/dist/{payment-card-form-CxhMa60Q.js → payment-card-form-BpaCnjrt.js} +3 -3
  159. package/dist/{payment-card-form-CxhMa60Q.js.map → payment-card-form-BpaCnjrt.js.map} +1 -1
  160. package/dist/{payment-card-form-DgFUnANa.cjs → payment-card-form-V5eIamA9.cjs} +2 -2
  161. package/dist/{payment-card-form-DgFUnANa.cjs.map → payment-card-form-V5eIamA9.cjs.map} +1 -1
  162. package/dist/{radio-button-svaVfPn8.js → radio-button-CuTpkLr8.js} +2 -2
  163. package/dist/{radio-button-svaVfPn8.js.map → radio-button-CuTpkLr8.js.map} +1 -1
  164. package/dist/{radio-button-ChM1WZDg.cjs → radio-button-Dm2I9Ic4.cjs} +2 -2
  165. package/dist/{radio-button-ChM1WZDg.cjs.map → radio-button-Dm2I9Ic4.cjs.map} +1 -1
  166. package/dist/radio-group.cjs +1 -1
  167. package/dist/radio-group.js +1 -1
  168. package/dist/{schmancy-steps-container-C_-PFkRy.cjs → schmancy-steps-container-DO4tx0KH.cjs} +2 -2
  169. package/dist/{schmancy-steps-container-C_-PFkRy.cjs.map → schmancy-steps-container-DO4tx0KH.cjs.map} +1 -1
  170. package/dist/{schmancy-steps-container-9fHGNLHd.js → schmancy-steps-container-SrnYbTe-.js} +2 -2
  171. package/dist/{schmancy-steps-container-9fHGNLHd.js.map → schmancy-steps-container-SrnYbTe-.js.map} +1 -1
  172. package/dist/{select-DEd1YJF0.cjs → select-BJdRm5US.cjs} +2 -2
  173. package/dist/{select-DEd1YJF0.cjs.map → select-BJdRm5US.cjs.map} +1 -1
  174. package/dist/{select-CWulYSxd.js → select-DfemPf0w.js} +3 -3
  175. package/dist/{select-CWulYSxd.js.map → select-DfemPf0w.js.map} +1 -1
  176. package/dist/select.cjs +1 -1
  177. package/dist/select.js +1 -1
  178. package/dist/{sheet-BhKQmvCN.cjs → sheet-BtaT1eui.cjs} +2 -2
  179. package/dist/{sheet-BhKQmvCN.cjs.map → sheet-BtaT1eui.cjs.map} +1 -1
  180. package/dist/{sheet-C2f1XwT3.js → sheet-Bvj7tapP.js} +3 -3
  181. package/dist/{sheet-C2f1XwT3.js.map → sheet-Bvj7tapP.js.map} +1 -1
  182. package/dist/sheet.cjs +1 -1
  183. package/dist/sheet.js +1 -1
  184. package/dist/{slider-CetPyN3J.cjs → slider-AQvRuZ-m.cjs} +2 -2
  185. package/dist/{slider-CetPyN3J.cjs.map → slider-AQvRuZ-m.cjs.map} +1 -1
  186. package/dist/{slider-CmJGqDDU.js → slider-DAwHA6Az.js} +3 -3
  187. package/dist/{slider-CmJGqDDU.js.map → slider-DAwHA6Az.js.map} +1 -1
  188. package/dist/slider.cjs +1 -1
  189. package/dist/slider.js +1 -1
  190. package/dist/{spinner-CLfAy0cd.cjs → spinner-BLy3-lqb.cjs} +2 -2
  191. package/dist/{spinner-CLfAy0cd.cjs.map → spinner-BLy3-lqb.cjs.map} +1 -1
  192. package/dist/{spinner-CmJk8fIO.js → spinner-DrZuae0L.js} +3 -3
  193. package/dist/{spinner-CmJk8fIO.js.map → spinner-DrZuae0L.js.map} +1 -1
  194. package/dist/steps.cjs +1 -1
  195. package/dist/steps.js +1 -1
  196. package/dist/{surface-ChxX03-I.cjs → surface-BOerTano.cjs} +2 -2
  197. package/dist/{surface-ChxX03-I.cjs.map → surface-BOerTano.cjs.map} +1 -1
  198. package/dist/{surface-BnlEKr-d.js → surface-CAlEVfSs.js} +2 -2
  199. package/dist/{surface-BnlEKr-d.js.map → surface-CAlEVfSs.js.map} +1 -1
  200. package/dist/surface.cjs +1 -1
  201. package/dist/surface.js +1 -1
  202. package/dist/{table-CzD7rJ5o.cjs → table-B3VrNQUV.cjs} +2 -2
  203. package/dist/{table-CzD7rJ5o.cjs.map → table-B3VrNQUV.cjs.map} +1 -1
  204. package/dist/{table-CZJ14ZEI.js → table-hjsAGpRq.js} +2 -2
  205. package/dist/{table-CZJ14ZEI.js.map → table-hjsAGpRq.js.map} +1 -1
  206. package/dist/table.cjs +1 -1
  207. package/dist/table.js +1 -1
  208. package/dist/{tabs-compatibility-DHkghYmL.js → tabs-compatibility-D9ajXdXz.js} +2 -2
  209. package/dist/{tabs-compatibility-DHkghYmL.js.map → tabs-compatibility-D9ajXdXz.js.map} +1 -1
  210. package/dist/{tabs-compatibility-BviE0FdA.cjs → tabs-compatibility-DdXO8DcF.cjs} +2 -2
  211. package/dist/{tabs-compatibility-BviE0FdA.cjs.map → tabs-compatibility-DdXO8DcF.cjs.map} +1 -1
  212. package/dist/tabs.cjs +1 -1
  213. package/dist/tabs.js +1 -1
  214. package/dist/tailwind.mixin-DPUboU_5.js +43 -0
  215. package/dist/{tailwind.mixin-k9HTphsu.js.map → tailwind.mixin-DPUboU_5.js.map} +1 -1
  216. package/dist/tailwind.mixin-mxyACxyp.cjs +2 -0
  217. package/dist/{tailwind.mixin-DFxMrwgk.cjs.map → tailwind.mixin-mxyACxyp.cjs.map} +1 -1
  218. package/dist/teleport.cjs +1 -1
  219. package/dist/teleport.js +1 -1
  220. package/dist/{textarea-qNzKErHX.cjs → textarea-C16vg4ME.cjs} +2 -2
  221. package/dist/{textarea-qNzKErHX.cjs.map → textarea-C16vg4ME.cjs.map} +1 -1
  222. package/dist/{textarea-kTwx4MAh.js → textarea-DqFx1pM1.js} +2 -2
  223. package/dist/{textarea-kTwx4MAh.js.map → textarea-DqFx1pM1.js.map} +1 -1
  224. package/dist/textarea.cjs +1 -1
  225. package/dist/textarea.js +1 -1
  226. package/dist/{theme-button-Dt3WQdd4.cjs → theme-button-CgZ5qc7_.cjs} +2 -2
  227. package/dist/{theme-button-Dt3WQdd4.cjs.map → theme-button-CgZ5qc7_.cjs.map} +1 -1
  228. package/dist/{theme-button-CCwPpArv.js → theme-button-D5fnf2QD.js} +2 -2
  229. package/dist/{theme-button-CCwPpArv.js.map → theme-button-D5fnf2QD.js.map} +1 -1
  230. package/dist/theme-button.cjs +1 -1
  231. package/dist/theme-button.js +1 -1
  232. package/dist/theme.cjs +1 -1
  233. package/dist/{theme.component-Drq675ta.cjs → theme.component-B5uMqEbH.cjs} +2 -2
  234. package/dist/{theme.component-Drq675ta.cjs.map → theme.component-B5uMqEbH.cjs.map} +1 -1
  235. package/dist/{theme.component-CJHr6wNa.js → theme.component-BOnjDUB3.js} +2 -2
  236. package/dist/{theme.component-CJHr6wNa.js.map → theme.component-BOnjDUB3.js.map} +1 -1
  237. package/dist/theme.js +1 -1
  238. package/dist/{timezone-oZ1r5Z54.cjs → timezone-CdAu8QsM.cjs} +2 -2
  239. package/dist/{timezone-oZ1r5Z54.cjs.map → timezone-CdAu8QsM.cjs.map} +1 -1
  240. package/dist/{timezone-B53HOn4a.js → timezone-DwU-YCRw.js} +3 -3
  241. package/dist/{timezone-B53HOn4a.js.map → timezone-DwU-YCRw.js.map} +1 -1
  242. package/dist/{tooltip-Bfcu9uoC.js → tooltip-Bn-UWxd4.js} +2 -2
  243. package/dist/{tooltip-Bfcu9uoC.js.map → tooltip-Bn-UWxd4.js.map} +1 -1
  244. package/dist/{tooltip-DrLzz4rf.cjs → tooltip-CyI3NYzI.cjs} +2 -2
  245. package/dist/{tooltip-DrLzz4rf.cjs.map → tooltip-CyI3NYzI.cjs.map} +1 -1
  246. package/dist/tooltip.cjs +1 -1
  247. package/dist/tooltip.js +1 -1
  248. package/dist/{tree-n0KxiiWX.js → tree-D2g2zq2B.js} +2 -2
  249. package/dist/{tree-n0KxiiWX.js.map → tree-D2g2zq2B.js.map} +1 -1
  250. package/dist/{tree-Buf-0IQD.cjs → tree-DdXcAF6S.cjs} +2 -2
  251. package/dist/{tree-Buf-0IQD.cjs.map → tree-DdXcAF6S.cjs.map} +1 -1
  252. package/dist/tree.cjs +1 -1
  253. package/dist/tree.js +1 -1
  254. package/dist/{typewriter-W7Rj384X.js → typewriter-3w_PiJFo.js} +16 -16
  255. package/dist/{typewriter-W7Rj384X.js.map → typewriter-3w_PiJFo.js.map} +1 -1
  256. package/dist/{typewriter-DSUU_7wv.cjs → typewriter-RVqJuWSv.cjs} +2 -2
  257. package/dist/{typewriter-DSUU_7wv.cjs.map → typewriter-RVqJuWSv.cjs.map} +1 -1
  258. package/dist/typewriter.cjs +1 -1
  259. package/dist/typewriter.js +1 -1
  260. package/dist/typography-BLJPXhuT.cjs +10 -0
  261. package/dist/typography-BLJPXhuT.cjs.map +1 -0
  262. package/dist/typography-izBBu-t8.js +37 -0
  263. package/dist/typography-izBBu-t8.js.map +1 -0
  264. package/dist/typography.cjs +1 -1
  265. package/dist/typography.js +1 -1
  266. package/package.json +2 -1
  267. package/types/src/code-highlight/code-highlight.d.ts +39 -0
  268. package/types/src/code-highlight/code-preview.d.ts +25 -0
  269. package/types/src/code-highlight/index.d.ts +3 -0
  270. package/types/src/icons/icon.d.ts +1 -1
  271. package/types/src/index.d.ts +1 -0
  272. package/dist/date-range-BkVCslGl.cjs +0 -121
  273. package/dist/icon-CNkK3oMH.cjs.map +0 -1
  274. package/dist/icon-PZTHZSsC.js.map +0 -1
  275. package/dist/tailwind.mixin-DFxMrwgk.cjs +0 -2
  276. package/dist/tailwind.mixin-k9HTphsu.js +0 -43
  277. package/dist/typography-DaN7dGA2.cjs +0 -6
  278. package/dist/typography-DaN7dGA2.cjs.map +0 -1
  279. package/dist/typography-XkeTnrP9.js +0 -29
  280. package/dist/typography-XkeTnrP9.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typewriter-DSUU_7wv.cjs","sources":["../.yarn/unplugged/typeit-npm-8.8.7-4441c75f10/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 { css, 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(css`\n\t:host {\n\t\tdisplay: inherit;\n\t}\n\n\t#typewriter {\n\t\t--ti-cursor-display: initial;\n\t}\n\n\t#typewriter .ti-cursor {\n\t\tdisplay: var(--ti-cursor-display);\n\t}\n`) {\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","t","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","s","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","__privateAdd","_L_instances","timeouts","predictedCursorPosition","statuses","firing","opts","queue","flushCallback","unfreeze","is","key","this","buildOptions","newOptions","defaultFrames","defaultOptions","toString","substring","initialItems","add","steps","step","_q","set","Symbol","innerText","buildQueueItem","Boolean","typeable","cursorable","deletable","getQueue","rawValues","values","Map","item","keys","wipe","done","shouldDestroy","delete","get","reset","destroy","getItems","filter","getTypeable","getPendingQueueItems","pending","setUpCursor","typeitId","go","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","removeNode","rebuild","property","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","getPace","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","generateTemporaryOptionQueueItems","numberOfSteps","directionalStep","queueAndReturn","milliseconds","numCharacters","num","typeableQueueItems","rounds","derivedCursorPosition","then","flush","getOptions","getElement","empty","f_fn","elementIsInput","remember","qKey","queueKey","allChars","e","move","printedCharacters","min","max","newCursorPosition","nodeToInsertBefore","prepLoop","w_fn","fireItemWithContext","b_fn","callback","silent","setTimeout","shouldRenderCursor","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","n_fn","l_fn","maybeAppendPause","x_fn","o_fn","updateOptions","s_fn","generateQueue","type","splitItems","q_fn","prependHardcodedStrings","existingMarkup","replace","trim","split","concat","e_fn","className","style","visibility","S_fn","addSplitPause","items","a_fn","originalTarget","character","textContent","target","tagName","cursorNode","y_fn","slice","h_fn","rootElement","nodeParent","u_fn","c_get","v_get","TypewriterElement","$LitElement","css","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","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-RVqJuWSv.cjs","sources":["../.yarn/unplugged/typeit-npm-8.8.7-4441c75f10/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 { css, 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(css`\n\t:host {\n\t\tdisplay: inherit;\n\t}\n\n\t#typewriter {\n\t\t--ti-cursor-display: initial;\n\t}\n\n\t#typewriter .ti-cursor {\n\t\tdisplay: var(--ti-cursor-display);\n\t}\n`) {\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","t","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","s","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","__privateAdd","_L_instances","timeouts","predictedCursorPosition","statuses","firing","opts","queue","flushCallback","unfreeze","is","key","this","buildOptions","newOptions","defaultFrames","defaultOptions","toString","substring","initialItems","add","steps","step","_q","set","Symbol","innerText","buildQueueItem","Boolean","typeable","cursorable","deletable","getQueue","rawValues","values","Map","item","keys","wipe","done","shouldDestroy","delete","get","reset","destroy","getItems","filter","getTypeable","getPendingQueueItems","pending","setUpCursor","typeitId","go","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","removeNode","rebuild","property","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","getPace","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","generateTemporaryOptionQueueItems","numberOfSteps","directionalStep","queueAndReturn","milliseconds","numCharacters","num","typeableQueueItems","rounds","derivedCursorPosition","then","flush","getOptions","getElement","empty","f_fn","elementIsInput","remember","qKey","queueKey","allChars","e","move","printedCharacters","min","max","newCursorPosition","nodeToInsertBefore","prepLoop","w_fn","fireItemWithContext","b_fn","callback","silent","setTimeout","shouldRenderCursor","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","n_fn","l_fn","maybeAppendPause","x_fn","o_fn","updateOptions","s_fn","generateQueue","type","splitItems","q_fn","prependHardcodedStrings","existingMarkup","replace","trim","split","concat","e_fn","className","style","visibility","S_fn","addSplitPause","items","a_fn","originalTarget","character","textContent","target","tagName","cursorNode","y_fn","slice","h_fn","rootElement","nodeParent","u_fn","c_get","v_get","TypewriterElement","$LitElement","css","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"o1BACMA,GAAWC,GAAUC,MAAMF,QAAQC,GAEnCE,GAAWC,GAAUJ,GAAQI,CAAAA,EAASA,EAAQ,CAACA,CAyDrD,EAAMC,GAAiB,iBACjBC,EAAe,YAEfC,GAAmB,CACvBC,QAAS,GACTC,UAAW,GACXC,UACAC,UAAAA,EAEIC,EAAAA,EAAkB,CACtBC,WAAAA,GACAC,OAAQ,CACNC,UAAW,GACXC,eAAgB,IAChBC,UAAW,CACTC,OAAQ,CAAC,EAAG,EAAG,CAAGC,EAAAA,IAAKC,IACd,CAAEC,QAASD,CAAAA,EAAAA,EAEpBE,QAAS,CACPC,WAAYC,IACZC,OAAQ,kBACRC,KAAM,cAIZC,WAAY,IACZC,YAAa,IACbC,YAAa,KACbC,KAAAA,GACAC,SAAAA,GACAC,KAAAA,GACAC,UAAW,IACXC,gBAAiB,IACjBC,MAAO,IACPC,WAAY,IACZC,YAAAA,GACAC,QAAS,GACTC,iBAAkB,GAClBC,aAAc,IAAA,CAAA,EAEdC,YAAa,IAAA,CAAA,EAEbC,WAAY,IAAA,CAAA,EAEZC,UAAW,IAEXC,CAAAA,EAAAA,cAAe,IAGXC,CAAAA,CAAAA,EAAAA,GAAkB,IAAIxC,EAEtByC,gFAAAA,EAAiBC,GAAOC,SAASF,cAAcC,CAE/CE,EAAAA,EAAkBC,GAAYF,SAASC,eAAeC,CAEtDC,EAAAA,GAAmB,CAACC,EAAQC,EAAK,KACrC,CAAA,IAAIC,EAAaR,EAAc,SAC/BQ,EAAWD,GAAKA,EAChBC,EAAWC,YAAYN,EAAeG,CAAAA,CAAAA,EACtCJ,SAASQ,KAAKD,YAAYD,CAAAA,CAAW,EAGjCG,GAAkBC,IACjB1D,GAAQ0D,CAAAA,IACXA,EAAW,CAACA,EAAW,EAAGA,EAAW,CAEhCA,GAAAA,GAGHC,GAAgB,CAACvD,EAAOwD,IACrBC,KAAKC,IACVD,KAAKE,OAAY3D,GAAAA,EAAQwD,GAASxD,EAAQwD,KAAWxD,EAAQwD,EAAAA,EAIjE,IAAIA,GAASI,GAAQA,EAAM,EAU3B,MAAMC,GAAWD,GAAQ9D,MAAMgE,KAAKF,CAEpC,EAAA,IAAIG,EAAmBC,IACrB,IAAIA,EAAQC,UAAAA,EAAYC,QAASC,GAAAA,CAC/B,GAAIA,EAAMC,UAKR,MAJA,CAAA,GAAID,EAAMC,SAAWF,EAAAA,QAASG,GAC5BF,CAAAA,EAAMG,WAAWC,aAAa1B,EAAewB,CAAIF,EAAAA,CAAAA,CAAM,QAEzDA,EAAMK,OAAAA,EAGRT,EAAgBI,CAAAA,CAAM,GAEjBH,GAGT,MAAMS,GAAiB3B,GAAAA,CACrB,IAAI4B,EAAM9B,SAAS+B,eAAeC,mBAAAA,EAElC,OADAF,EAAIG,KAAKC,UAAYhC,EACdiB,EAAgBW,EAAIG,IAAK,CAAA,EAGlC,SAASE,GAAiBf,EAASgB,EAAgB,GAAOC,KACxD,CAAA,IAcIC,EAdAxE,EAASsD,EAAQmB,cAAc,IAAIjF,CAAAA,EAAAA,EACnCkF,EAASxC,SAASyC,iBAAiBrB,EAASsB,WAAWC,SAAU,CACnEC,WAAaC,GACX,SAAA,GAAI/E,GAAUuE,EAAqB,CACjC,IAAIQ,EAAAA,EAAKC,YAALD,MAAAA,EAAgBE,SAASzF,GAC3B,OAAOoF,WAAWM,cAEpB,GAAIlF,EAAOiF,SAASF,GAClB,OAAOH,WAAWO,aAE5B,CACM,OAAOJ,EAAAA,EAAKC,YAALD,MAAAA,EAAgBE,SAASzF,GAAgBoF,WAAWO,cAAgBP,WAAWM,aAAa,CAAA,CAAA,EAInGE,EAAQ,CACZ,EAAA,KAAOZ,EAAWE,EAAOF,YAClBA,EAASa,iBACZb,EAASa,eAAiBb,EAASZ,YAErCwB,EAAME,KAAKd,CAAAA,EAEb,OAAOF,EAAgBc,EAAMG,QAAAA,EAAYH,CAC3C,CAIA,SAASI,GAAuBC,EAAKC,KACnC,CAAA,OAAOA,EAHArB,GAAiBN,GAGU0B,CAAOtC,CAAAA,EAAAA,GAAQsC,CAAKpF,EAAAA,IAAI8B,CAC5D,CAAA,CAEA,MAAMwD,GAAiB,EACrBC,MACAC,EAAAA,SAAAA,EACAC,WACAC,EAAAA,QAAAA,CAAAA,IAAAA,CAEA,QAASC,EAAIJ,EAAQ,EAAGI,EAAIH,EAAW,EAAGG,IACxCD,EAAQD,EAAWE,CAAAA,EAAG,CAC1B,CAAA,CAAA,EAGMC,GAAY3G,GAAU4G,OAAOC,UAAU7G,CAAAA,EAEvC8G,GAAuB,CAC3BN,CAAAA,WAAAA,EACAO,SACAC,EAAAA,eAAAA,EACAC,SAEA,GAAIN,GAASI,CACX,EAAA,MAAA,GAAOA,EAET,IAAIG,EAAgB,IAAIC,OA/Jd,MA+J0B,GAAKC,EAAAA,KAAKH,GAC1CI,EAAgBN,EAAW,CAAIP,GAAAA,CAAAA,EAAYP,UAAUqB,UAAU,CAAA,CAAGC,KACpEC,CAAA,IAAA,CAAA,IAAIC,EAAgBF,EAAKE,cACrBC,EAAgBD,EAAcE,QAAQZ,CAAAA,EAC1C,MAAIG,EAAAA,CAAAA,GAAAA,CAAiBQ,IAGdA,GAAiBD,EAAcG,WAAWC,WAAWN,EAAK,CAC5D,EAAA,GAKP,OAJIF,EAAgB,IAClBA,EAAgBH,EAAgB,EAAIV,EAAWsB,OAAS,GAGnDT,EAAgBL,GADVE,EAAgB,EAAI,EACa,EAQ1Ca,EAAY,CAAC/H,EAAOgI,IAAU,IAAIlI,MAAMkI,CAAO1G,EAAAA,KAAKtB,CAE1D,EAAA,IAAIiI,EAAeC,GACV,IAAIC,QAASC,GAAAA,CAClBC,sBAAsBC,SACpBF,CAAAA,EAAAA,MAAcF,EAAK,CAAA,CAAA,CAAA,CACnB,GAIFK,GAA2BvE,GACtBA,GAAAA,YAAAA,EAASwE,gBAAgBC,KAAM5H,GAC7BA,EAAUoC,KAAOe,EAAQ0E,QAAQC,eAIxCC,GAAqB,CACvBlI,CAAAA,OAAAA,EACAI,SACAI,QAEA2H,CAAA,IAAA,CAAA,IAAIhI,EAAYH,EAAOoI,QAAQhI,EAAQI,CAAAA,EAQvC,OAPAL,EAAUkI,MACVlI,EAAAA,EAAUoC,GAAKvC,EAAOgI,QAAQC,cAC9BV,EAAY,IACVA,CAAAA,EAAY,KACVpH,EAAUmI,KAAAA,CAAM,CAChB,CAAA,CAAA,EAEGnI,CAAS,EA2BdoI,GAAWC,GAAcA,OAAAA,OAAAA,EAAAA,EAAUC,OAAVD,YAAAA,EAAgBE,KAAK,OAC9CC,GAAWf,OACbhC,MACAE,EAAAA,WAAAA,EACA8C,KACA5I,EAAAA,OAAAA,EACA6I,oBAEA,IAAIL,EAAY1C,EAAWF,CAAAA,EAAO,GAC9BkD,EAAe,CAAA,EACfC,EAAYnD,EACZoD,EAAaR,EACbS,EAAkB,IAAMD,IAAeA,EAAWE,MAClDC,EAAoBX,EAAUW,qBAAuBN,EAAc5I,UACvE,KAAOgJ,EAAAA,GACLH,EAAaxD,KAAK0D,CAAAA,EAClBC,EAAqBF,GAAAA,IACrBC,EAAalD,EAAWiD,CAAAA,EAAajD,EAAWiD,CAAAA,EAAW,GAAK,KAElE,GAAID,EAAa1B,OAMf,aALMG,EAAYK,SAAAA,CAChB,QAASwB,KAAKN,EACNP,MAAAA,GAAQa,CACtB,CAAA,CAAA,EAEWL,EAAY,EAErB,IACIvI,EADAL,EAAY0H,GAAwB7H,CAAAA,EAqBxC,OAnBIG,IACFK,EAAU,CACLL,GAAAA,EAAUkJ,OAAOC,kBAAAA,EACpBJ,MAAOC,EAAoBN,EAAc3I,eAAiB,CAAA,GAAA,MAGxD0I,EAAKhB,SAAAA,CACLzH,GAAagJ,GACfhJ,EAAUoJ,OAENhC,EAAAA,MAAAA,EAAY,IAChBgB,CAAAA,GAAQC,EAAU,CAClB,CAAA,EACDA,EAAUU,KAAAA,EAAAA,QAjEblJ,OACAQ,EAAAA,QAAAA,EACAqI,cAEAV,EAAA,IAAA,CAAA,GAAA,CAAKnI,GAAW6I,CAAAA,GAAe,OAC/B,IACIW,EADArJ,EAAY0H,GAAwB7H,CAEpCG,EAAAA,IACFK,EAAQ0I,MAAQ/I,EAAUkJ,OAAOC,kBAAAA,EAAoBJ,MACrDM,EAAiBrJ,EAAUsJ,YAC3BtJ,EAAUoJ,UAEZ,IAAIG,GAAexB,GAAmB,CACpClI,SACAI,OAAQyI,GAAc1I,UAAUC,OAChCI,YAKF,OAHIgJ,IACFE,GAAaD,YAAcD,GAEtBE,EAAY,GA8CU,CAC3B1J,OACAQ,EAAAA,QAAAA,EACAqI,cAEKjD,CAAAA,CAAAA,EAAAA,CAAK,EAGd,MAiBM+D,EAAW1H,GACR,UAAWA,EAGpB,IASI2H,EAAuBC,GACH,OAARA,GAAQ,WAAaA,EAAQA,EAAAA,EAGzCC,EAAS,CAACzD,EAAU/C,EAAUpB,SAAU6H,EAAAA,KACnCzG,EAAQ,iBAAgByG,EAAM,MAAQ,KAAM1D,CAuBrD,EAAA,MAEM2D,EAAQ,CAACC,EAAaC,IAAWC,OAAOC,OAAO,CAAE,EAAEH,EAAaC,CA+CtE,EAAA,IAAIG,GAAmB,CACrB,cAAe,GACf,cAAe,GACf,YAAa,GACb,aAAc,GACd,cAAe,GACfC,MAAO,GACPC,UAAW,qBAuCb,gEAAA,MAAMC,EACJlH,CAkBA,YAAYA,EAAS9C,EAAU,IAnBjCiK,EAAA,KAAAC,GACEpH,EAAAA,gBACAqH,EAAAA,iBACArE,EAAAA,uBACAsE,EAAAA,gCACAC,EAAAA,gBAAW,CACTnL,WACAC,UAAAA,GACAC,OAAAA,GACAC,UAAW,GACXiL,OAAQ,EAAA,GAEVC,EAAAA,aACAxI,EAAAA,WACAyI,EAAAA,cACAhL,EAAAA,eACAiL,EAAAA,qBAAgB,MAChBC,EAAAA,gBAAW,IAEX,CAAA,GAsDAC,EAAAA,UAAK,SAASC,EACZ,CAAA,OAAOC,KAAKR,SAASO,CACtB,CAAA,GAyUDE,EAAAA,KAAAA,EAAiB9K,GACf6K,CAAAA,KAAKN,KAAK/K,QAhfc6I,GAC1B,SAAA,UAAWA,GAAkB,SAAU,CACrC,IAAI0C,EAAa,CAAE,EACbnL,CAAAA,OAAQoL,EAAehL,QAASiL,CAAmB3L,EAAAA,EAAgBE,OAAOG,UAShF,OARAoL,EAAWpL,UAAY0I,EAAc1I,WAAa,CAAE,EACpDoL,EAAWpL,UAAUC,SAASyI,EAAAA,EAAc1I,YAAd0I,YAAAA,EAAyBzI,SAAUoL,EACjED,EAAWpL,UAAUK,QAAUwJ,EAC7ByB,IACA5C,EAAAA,EAAc1I,YAAd0I,YAAAA,EAAyBrI,UAAW,CAAA,CAAA,EAEtC+K,EAAWtL,UAAY4I,EAAc5I,WAAaH,EAAgBE,OAAOC,UACzEsL,EAAWrL,eAAiB2I,EAAc3I,gBAAkBJ,EAAgBE,OAAOE,eAC5EqL,CACX,CACE,OAAI1C,IAAJ,GACS/I,EAAgBE,OAElB6I,CAAa,GAgehBrI,EAAQR,QAAUF,EAAgBE,MAEpCqL,EAAAA,KAAKN,KAAKvJ,QAAU6J,EAAAA,KAAAA,EAAAA,IAAAA,UAClBhM,GAAQgM,KAAKN,KAAKvJ,OAAAA,GAEpB6J,KAAKN,KAAOf,EAAMqB,KAAKN,KAAM,CAC3B/J,KAAAA,CAAOqK,EAAAA,WAAiBA,KAAKN,KAAK/J,KAClCI,gBAAiBuB,GAAe0I,KAAKN,KAAK3J,iBAC1CD,UAAWwB,GAAe0I,KAAKN,KAAK5J,YACpC,GAjdN,IAA2BhC,EAsEvBkM,KAAKN,KAAOf,EAAMlK,EAAiBU,CAAAA,EACnC6K,KAAK/H,eAvEkBnE,EAuEUmE,IAtEX,SAAWwG,EAAO3K,CAAAA,EAASA,EAuEjDkM,KAAKV,SAAW,CAChBU,EAAAA,KAAK/E,eAAiB,EACtB+E,KAAKH,SAAW,IAAA,CAAA,EAEhBG,KAAKT,wBAA0B,KAC/BS,KAAKR,SAAWb,EAAM,CAAA,EAAIvK,EAAAA,EAC1B4L,KAAK9I,GAtKkBQ,KAAKE,OAASyI,EAAAA,SAAAA,EAAWC,UAAU,EAAG,CAAA,EAuK7DN,KAAKL,MA9gBG,SAASY,EACnB,CAAA,IAAIC,EAAM,SAASC,GAIjB,OAHAzM,GAAQyM,CAAOtI,EAAAA,QAASuI,UACfC,OAAAA,EAAGC,IAAIC,QAAOH,EAAAA,EAAKlF,OAALkF,YAAAA,EAAWI,SAAYC,EAAAA,EAAe,CAAKL,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAE3DV,IACR,EAMGe,EAAkB5D,IACpBA,EAAUW,kBAAoB,UAAA,CAC5B,MAAOkD,GAAQhB,KAAKiB,UAAYjB,KAAKkB,YAAclB,KAAKmB,UACzD,EACMhE,GASLiE,EAAW,IAAMT,EACjBU,EAAY,IAAMtN,MAAMgE,KAAK4I,EAAGW,OAAAA,CAAAA,EAahCX,EAAqB,IAAIY,IAE7B,OADAf,EAAID,CACG,EAAA,CACLC,MACAI,IAnCQ,SAASrG,EAAOiH,EAAAA,CACxB,IAAIC,EAAO,CAAId,GAAAA,EAAGc,QAClBd,EAAGC,IAAIa,EAAKlH,CAAAA,EAAQwG,EAAeS,CACpC,CAAA,CAAA,EAiCCE,KAvBS,UAAA,CACTf,EAAqB,IAAIY,IACzBf,EAAID,CAAAA,CACL,EAqBCoB,KAPS,CAAC5B,EAAK6B,EAAAA,KAA0BA,EAAgBjB,EAAGkB,OAAO9B,CAAAA,EAAOY,EAAGmB,IAAI/B,CAAAA,EAAK4B,KAAO,GAQ7FI,MA5BU,UACVpB,CAAAA,EAAGxI,QAASqJ,GAAAA,OAAgBA,EAAKG,IAAAA,CAClC,EA2BCK,QApBajC,GAAQY,EAAGkB,OAAO9B,CAqB/BkC,EAAAA,SAXa,CAACvD,EAAM,KAAUA,EAAM2C,EAAAA,EAAcA,IAAYa,OAAQvH,GAAAA,CAAOA,EAAEgH,IAAAA,EAY/EP,SACAe,EAAAA,YA3CgB,IAAMd,EAAAA,EAAYa,OAAQjO,GAAUA,EAAMgN,QA4C1DmB,EAAAA,qBAvByB,KACzB,MAAMC,EAAU,CAChB,EAAA,QAAY,CAAApO,CAAAA,IAAUmN,EACfnN,EAAAA,EAAM0N,MACTU,EAAQpI,KAAKhG,CAAAA,EAGjB,OAAOoO,CAAO,CAAA,CAkBlB,EAyduB,CAAC,CAAExE,MAAOmC,KAAKN,KAAKzJ,cACvC+J,EAAAA,KAAKC,GAALD,UAAmB7K,GACnB6K,KAAKrL,OAASqL,EAAAA,KAAKsC,EAAAA,IAALtC,WACdA,KAAK/H,QAAQ0E,QAAQ4F,SAAWvC,KAAK9I,GACrCF,GAAiBN,IACbsJ,KAAKN,KAAKvJ,QAAQ4F,QACpBiE,EAAAA,WAAAA,UAEN,CAIE,IAAAwC,CACE,OAAIxC,KAAKR,SAASnL,QACT2L,MAETA,EAAAA,KAAKyC,EAAAA,GAALzC,WACKA,KAAKN,KAAKtJ,kBAvMM6B,EA2ML+H,KAAK/H,QA3MSmF,EA2MA4C,EAAAA,UAAW0C,KAAK1C,IA1MjC,EAAA,IAAI2C,qBACjB,CAACC,EAASC,IAAAA,CACRD,EAAQzK,QAAS2K,GAAAA,CACXA,EAAMC,iBACR3F,IACAyF,EAAUG,UAAU/K,CAC9B,EAAA,CAAA,CACQ,EAEJ,CAAEgL,UAAW,CAENC,CAAAA,EAAAA,QAAQjL,CAgMR+H,EAAAA,OAJLA,EAAAA,KAAKmD,EAAAA,GAALnD,WACOA,OAzMW,IAAC/H,EAASmF,CA6MlC,CACE,QAAQgG,EAAAA,GACNpD,CAAAA,KAAKV,UAA2BU,KAAKV,SA9T9BnH,QAAQkL,YAAAA,EACV,CA8TL9E,GAAAA,EAAoB6E,CAAuBpD,GAAAA,KAAKrL,QAAUqL,EAAAA,KAAKsD,EAAAA,GAALtD,UAAiBA,KAAKrL,QAChFqL,KAAKR,SAAShL,UAAAA,EAClB,CACE,MAAM+O,EAAAA,CAAAA,CACHvD,KAAKF,GAAG,WAAgBE,GAAAA,KAAKgC,QAC1BuB,EAAAA,GACFvD,KAAKL,MAAM+B,KAAAA,EACX6B,EAAQvD,IAAAA,GAERA,KAAKL,MAAMoC,MAAAA,EAEb/B,KAAK/E,eAAiB,EACtB,QAASuI,KAAYxD,KAAKR,SACxBQ,KAAKR,SAASgE,CAAAA,EAAAA,GAGhB,OADAxD,KAAK/H,QAAQ+H,EAAAA,KAAAA,EAAAA,GAAAA,WAAyB,QAAU,WAAA,EAAe,GACxDA,IACX,CAIE,KAAKyD,EAAQC,EAAa,IACxBD,EAASlF,EAAoBkF,CAC7B,EAAA,GAAA,CAAIE,QAAEA,CAAYD,EAAAA,EACdE,EAAoB5D,EAAAA,KAAAA,EAAAA,GAAAA,UAAwC0D,GAE5DG,EADQ1J,GAAuBsJ,EAAQzD,KAAKN,KAAK/J,IAAAA,EACvBX,IAAKwG,GAAAA,CACjC,MAAO,CACL4B,KAAM,IAAM4C,EAAAA,KAAAA,EAAAA,GAAAA,UAAWxE,GACvBA,KAAAA,EACAqC,MAAO8F,IApLW/M,EAoLiB4E,EApLV,sBAAsBH,KAAKzE,EAAGkN,SAoLZ,GAAA,EAAI9D,EAAAA,KAAK+D,EAAAA,GAAL/D,WAC/CiB,SAAUzF,EAAKwI,WAAaC,KAAKC,SAAAA,EArLhB,IAACtN,CAsLnB,CAAA,EAECuN,EAAe,CACjBP,EAAkB,CAAA,EAClB,CAAExG,KAAMb,eAAkByD,KAAKN,KAAKrJ,aAAaoN,EAAQzD,UACtD6D,EACH,CAAEzG,KAAMb,SAAAA,MAAkByD,KAAKN,KAAKpJ,YAAYmN,EAAQzD,IAAAA,CAAAA,EACxD4D,EAAkB,CAAA,CAAA,EAEpB,OAAO5D,EAAAA,KAAAA,EAAAA,GAAAA,UAAqBmE,EAAcT,EAC9C,CACE,MAAMA,EAAa,IACjB,OAAO1D,EAAAA,KAAAA,EAAAA,GAAAA,UACL,CACE5C,KAAM,IAAM4C,EAAAA,KAAAA,EAAAA,GAAAA,UAAWrJ,EAAc,IAAA,GACrCsK,SAAU,EAAA,EAEZyC,EAEN,CACE,KAAKU,EAAaV,EAAa,IAC7BU,EAAc7F,EAAoB6F,GAClC,IAAIR,EAAoB5D,EAAAA,KAAKqE,EAAAA,GAALrE,UAAwC0D,GAC5DC,CAAAA,QAAEA,EAAOzI,GAAEA,GAAOwI,EAClBY,EAAgBvJ,GAAqB,CACvCN,WAAYuF,KAAKL,MAAMwC,YACvBnH,EAAAA,SAAUoJ,IAAgB,KAAO,GAAKA,EACtClJ,GAAAA,EACAD,eAAgB+E,EAAAA,KAAAA,EAAAA,EAEduE,CAAAA,EAAAA,EAAkBD,EAAgB,EAAM,GAAG,EAE/C,OADAtE,KAAKT,wBAA0BS,EAAAA,KAAAA,EAAAA,GAA8BsE,EACtDtE,EAAAA,UAAAA,UACL,CACE4D,EAAkB,CAAA,EAAA,GACf5H,EACD,CACEoB,KAAM,IAAM4C,EAAAA,UAAAA,UAAWuE,GACvB1G,MAAO8F,EAAU,EAAI3D,EAAAA,KAAK+D,EAAAA,GAAL/D,WACrBkB,WAAY,EAAA,EAEdxJ,KAAKC,IAAI2M,CAAAA,CAAAA,EAEXV,EAAkB,CAAA,CAAA,EAEpBF,EAEN,CACE,KAAKtG,EAAMsG,EAAa,IACtB,IAAIE,EAAoB5D,EAAAA,UAAAA,UAAwC0D,GAChE,OAAO1D,EAAAA,KAAAA,EAAAA,GAAAA,UACL,CAAC4D,EAAkB,CAAI,EAAA,CAAExG,KAAM,IAAMA,EAAK4C,IAAAA,CAAAA,EAAS4D,EAAkB,CACrEF,CAAAA,EAAAA,EAEN,CACE,QAAQhE,EAAMgE,EAAa,IAGzB,OAFAhE,EAAOnB,EAAoBmB,CAC3BM,EAAAA,EAAAA,KAAAA,EAAAA,GAAAA,UAAoBN,GACbM,EAAAA,KAAKwE,EAAAA,GAALxE,UAAqB,CAAE,EAAE0D,EACpC,CACE,MAAMe,EAAcf,EAAa,IAC/B,OAAO1D,EAAAA,KAAKwE,EAAAA,GAALxE,UACL,CAAEnC,MAAOU,EAAoBkG,CAAAA,CAAAA,EAC7Bf,EAEN,CACE,OAAOgB,EAAgB,KAAMhB,EAAa,CAAA,GACxCgB,EAAgBnG,EAAoBmG,CACpC,EAAA,IAAId,EAAoB5D,EAAAA,KAAKqE,EAAAA,GAALrE,UAAwC0D,GAC5DiB,EAAMD,EACNf,CAAAA,QAAEA,EAAOzI,GAAEA,GAAOwI,EAClBkB,EAAqB5E,KAAKL,MAAMwC,cAChC0C,EACEF,IAAQ,KACHC,EAAmB7I,OAExBnB,GAAS+J,CACJA,EAAAA,EAEF5J,GAAqB,CAC1BN,WAAYmK,EACZ5J,SAAU2J,EACV1J,eAAgB+E,EAAAA,KAAK8E,EAAAA,GACrB5J,OAGJ,OAAO8E,EAAAA,KAAKwE,EAAAA,GAALxE,UACL,CACE4D,EAAkB,CAAA,EAAA,GACf5H,EACD,CACEoB,KAAM4C,EAAAA,KAAAA,EAAAA,GAAa0C,KAAK1C,MACxBnC,MAAO8F,EAAU,EAAI3D,EAAAA,KAAAA,EAAAA,GAAAA,UAAc,GACnCmB,UAAAA,EAEF0D,EAAAA,CAAAA,EAEFjB,EAAkB,CAEpBF,CAAAA,EAAAA,EAEN,CACE,QACE1D,CAAAA,KAAKR,SAASjL,OAAAA,EAClB,CAUE,MAAM4H,EAAK,MAET,OADA6D,KAAKJ,cAAgBzD,GAAM6D,KAAKJ,cAC5BI,KAAKR,SAASC,SAGlBO,EAAAA,UAAAA,WACAA,EAAAA,KAAAA,EAAAA,GAAAA,UAAW,IAAO+E,KAAK,IACrB,CAAA,GAAI/E,KAAKL,MAAMyC,uBAAuBrG,OAAS,EAC7C,OAAOiE,KAAKgF,QAEdhF,KAAKJ,cAAAA,EACLI,KAAKJ,cAAgB,IAAI,CAAA,GARlBI,IAWb,CACE,UACE,CAAA,OAAOA,KAAKL,KAChB,CACE,YAAAsF,CACE,OAAOjF,KAAKN,IAChB,CACE,cAAcvK,EAAAA,CACZ,OAAO6K,EAAAA,KAAAA,EAAAA,GAAAA,UAAoB7K,EAC/B,CACE,YAAA+P,CACE,OAAOlF,KAAK/H,OAChB,CACE,MAAMyL,EAAa,GACjB,CAAA,OAAO1D,EAAAA,KAAKwE,EAAAA,GAALxE,UAAqB,CAAE5C,KAAM4C,EAAAA,KAAKmF,EAAAA,IAAOzC,KAAK1C,IAAS0D,CAAAA,EAAAA,EAClE,CAmQA,CAzeArE,EAAA,YAuOE+F,GAAMD,iBACAnF,EAAAA,KAAKqF,EAAAA,GAALrF,WACFA,KAAK/H,QAAQhE,MAAQ,GAGvB+L,EAAAA,KAAAA,EAAAA,GAAe7H,QAAQ6H,EAAAA,UAAiB0C,KAAK1C,IAEjD,CAAA,CAAA,IAOQmD,eAAMmC,EAAAA,GACVtF,CAAAA,KAAKR,SAASnL,QAAU,GACxB2L,KAAKR,SAASC,UACd,IAAI/E,EAAW6K,GAAAA,CACbvF,KAAKL,MAAMgC,KAAK4D,EAAAA,CAAOD,EAAS,EAElC,GAAA,CACE,IAAI7K,EAAa,IAAIuF,KAAKL,MAAMyB,SAChC,CAAA,EAAA,QAAS7G,EAAQ,EAAGA,EAAQE,EAAWsB,OAAQxB,IAAS,CACtD,GAAA,CAAKiL,EAAUrI,CAAa1C,EAAAA,EAAWF,CACvC,EAAA,GAAA,CAAI4C,EAAUwE,KAAd,CACA,GAAKxE,CAAAA,EAAUgE,WAAahE,EAAUgE,WAAanB,EAAAA,KAAKyF,EAAAA,GAAU1J,OAAQ,CACxE,IAAIvB,EAAAA,MAAiBwF,EAAAA,UAAAA,UAA0BzF,EAAOE,GACtDH,GAAe,CACbC,MACAC,EAAAA,SAAAA,EACAC,WACAC,EAAAA,QAAAA,CAAAA,CAAAA,EAEFH,EAAQC,CAClB,CACQE,EAAQ8K,CAAAA,CAXY,CAY5B,CACM,GAAA,CAAKF,EAEH,OADAtF,KAAKR,SAASC,OAAAA,GACPO,KAKT,GAHAA,KAAKR,SAASlL,UAAY,GAC1B0L,KAAKR,SAASC,OAAAA,GACRO,MAAAA,KAAKN,KAAKjJ,cAAcuJ,IACzBA,EAAAA,CAAAA,KAAKN,KAAK7J,KACb,KAAM,GAER,IAAIgI,EAAQmC,KAAKN,KAAK5J,UACtBkK,EAAAA,KAAAA,EAAAA,GAAAA,UAAWzD,SACHyD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,IAAAA,UAAenC,EAAM,CAC3BmC,GAAAA,EAAAA,KAAAA,EAAAA,GAAAA,UAAY,EACXnC,EAAM,CACV,EAAA,MAAQ6H,CACb,CAEI,OADA1F,KAAKR,SAASC,OAAAA,GACPO,IACX,EACQ2F,EAAAA,eAAMjF,EAjTa,CAAA,IAACD,EAAOxF,EAAgB2K,EAkT/C5F,KAAK/E,gBAlTmBwF,EAmTtBC,EAnT6BzF,EAoT7B+E,KAAK/E,eApTwC2K,EAqT7C5F,EAAAA,KAAAA,EAAAA,GApTGtI,KAAKmO,IACVnO,KAAKoO,IAAI7K,EAAiBwF,EAAO,CACjCmF,EAAAA,EAAkB7J,UA3CI9D,CAAAA,EAASwN,EAAUM,IAAAA,CAC3C,IAAIC,EAAqBP,EAASM,EAAoB,CAAA,EAClDpR,EAAS8J,EAAO,IAAItK,CAAgB8D,GAAAA,CAAAA,GACxCA,GAAU+N,GAAAA,YAAAA,EAAoBzN,aAAcN,GACpCO,aAAa7D,EAAQqR,GAAsB,IAAK,CAAA,GA2VrChG,KAAK/H,QAAS+H,EAAAA,KAAKyF,EAAAA,GAAWzF,KAAK/E,cACxD,CAAA,EAKQgL,GAAAA,eAAUpI,EACd,CAAA,IAAIiH,EAAwB9E,EAAAA,KAAAA,EAAAA,GAC5B8E,GAA+B9E,MAAAA,EAAAA,KAAAA,EAAAA,GAAAA,UAAW,CAAE/L,MAAO6Q,CACnD,GAAA,IAAIrK,EAAauF,EAAAA,KAAAA,EAAAA,GAAehL,IAAKsD,GAC5B,CACLuI,OAAAA,EACA,CACEzD,KAAM4C,EAAAA,KAAK6B,EAAAA,GAAQa,KAAK1C,IACxBnC,EAAAA,MAAOmC,EAAAA,KAAK+D,EAAAA,GAAL/D,UAAc,GACrBmB,UAAW,GACXrD,kBAAmB,IAAA,MAIzB,QAASvD,EAAQ,EAAGA,EAAQE,EAAWsB,OAAQxB,IACvCyF,MAAAA,EAAAA,KAAAA,EAAAA,GAAAA,UAA0BzF,EAAOE,GAEzCuF,KAAKL,MAAMoC,QACX/B,KAAKL,MAAMiB,IAAI,EAAG,CAAE/C,MACxBpC,CAAA,CAAA,CAAA,EACEyK,EAAAC,SAAqB5L,EAAOE,EAAAA,CAC1B,OAAO6C,GAAS,CACd/C,MACAE,EAAAA,WAAAA,EACA8C,KAAMyC,EAAAA,KAAAA,EAAAA,GAAW0C,KAAK1C,IAAAA,EACtBrL,OAAQqL,KAAKrL,OACb6I,cAAewC,KAAKN,KAAK/K,MAAAA,CAAAA,CAE/B,EACEyR,EAAM7I,eAAM8I,EAAUxI,EAAOyI,EAAS,GAAA,CAChCtG,KAAKR,SAASjL,cACV,IAAI6H,QAASC,GACjB2D,CAAAA,KAAKH,SAAW,IACdG,CAAAA,KAAKR,SAASjL,OAAAA,GACd8H,EAAAA,CAAS,CACV,CAAA,EAGLiK,SAAgBtG,KAAKN,KAAKnJ,WAAWyJ,IAAAA,EAAAA,OA5V7BqG,EAAUxI,EAAOyB,IACpB,IAAIlD,QAASC,GAKlBiD,CAAAA,EAASrF,KAAKsM,WAJLhK,gBACD8J,EACNhK,EAAAA,EAAAA,CAAS,EAEkBwB,GAAS,GAAG,CAuVnCN,GAAK8I,EAAUxI,EAAOmC,KAAKV,QACjCgH,EAAAA,GAAAA,MAAgBtG,KAAKN,KAAKlJ,UAAUwJ,IACxC,CAAA,EAIQyC,EAAAA,gBAAAA,CAEJ,GADCzC,CAAAA,EAAAA,KAAAA,EAAAA,GAAAA,YAA0BA,KAAKrL,QAAUqL,KAAK/H,QAAQb,YAAY4I,KAAKrL,QACpEqL,EAAAA,KAAKwG,EAAAA,GAAqB,EAhYZ,CAACtP,EAAIe,IACzB,CAAA,IACIwO,EAAiB,IADEvS,EAAmBgD,KAAAA,CAAAA,OACD/C,CACrCuS,GAAAA,EAAiBC,iBAAiB1O,CAClC2O,EAAAA,EAAmB9H,OAAO8D,QAAQ5D,IAAkB6H,OACtD,CAACC,EAActF,CAAAA,EAAMvN,KACZ,GAAG6S,CAAAA,IAAetF,CAAyBA,qBAAAA,CAAAA,KAASvN,GAASyS,EAAelF,CAErF,CAAA,KAAA,EAAA,EAEFxK,GACE,GAAGyP,CAAAA,uCAAqDG,CACxD1P,KAAAA,CAAAA,CACD,GAoXmB8I,KAAK9I,GAAI8I,KAAK/H,SAC9B+H,KAAKrL,OAAOgI,QAAQC,cAAgBoD,KAAK9I,GACzC,GAAA,CAAIpC,UAAEA,CAAAA,EAAckL,KAAKN,KAAK/K,OAAAA,CAC1BI,OAAEA,EAAMI,QAAEA,CAAYL,EAAAA,EAC1B+H,GAAmB,CACjB9H,SACAJ,OAAQqL,KAAKrL,OACbQ,QAAS,CACP4R,SAAU/G,KAAKN,KAAKjK,eACjBN,CAGb,CAAA,CAAA,CAAA,CACA,EACE6R,EAAA3B,WACE,OAAO/G,EAAQ0B,KAAK/H,OAAAA,CACxB,EACEgP,EAAAzC,SAAgB/D,EAAOf,EAAAA,CAGrB,OAFAM,KAAKL,MAAMa,IAAIC,GACfT,EAAAA,KAAKkH,EAAAA,IAALlH,UAAuBN,GAChBM,IACX,EACEmH,GAAAD,SAAkBxH,EAAO,IACvB,IAAI7B,EAAQ6B,EAAK7B,MACjBA,GAASmC,KAAKL,MAAMa,IAAI,CAAE3C,MAC9B6H,CAAA,CAAA,CAAA,EACE0B,EAAA/C,SAAmCnE,EAAa,IAC9C,MAAO,CACL,CAAE9C,KAAM,IAAM4C,EAAAA,KAAKqH,EAAAA,GAALrH,UAAoBE,EAClC,EAAA,CAAE9C,KAAM,IAAM4C,EAAAA,UAAAA,UAAoBA,KAAKN,KAE7C,CAAA,CAAA,IACQ2H,eAAe3H,EAAAA,CACnBM,KAAKN,KAAOf,EAAMqB,KAAKN,KAAMA,CACjC,CAAA,EAKE4H,GAAAC,UAAAA,CACE,IAAIpR,EAAU6J,KAAKN,KAAKvJ,QAAQ+L,OAAQuB,GAAAA,CAAAA,CAAaA,GACrDtN,EAAQgC,QAAQ,CAACsL,EAAQlJ,KAEvB,GADAyF,KAAKwH,KAAK/D,CAAAA,EACNlJ,EAAQ,IAAMpE,EAAQ4F,OACxB,OAEF,IAAI0L,EAAazH,KAAKN,KAAKhL,WAAa,CAAC,CAAE0I,KAAM,IAAM4C,EAAAA,UAAAA,UAAWrJ,EAAc,IAAQsK,GAAAA,SAAAA,EAAoBjF,CAAAA,EAAAA,EAC1G,CACEoB,KAAM4C,EAAAA,UAAa0C,KAAK1C,IACxBnC,EAAAA,MAAOmC,EAAAA,UAAAA,UAAc,EAAA,EAEvBA,KAAKL,MAAMwC,cAAcpG,MAE3BiE,EAAAA,EAAAA,KAAAA,EAAAA,GAAAA,UAAoByH,EAAW,EAErC,EACExH,EAAAA,YAaAyH,GAAAC,SAAyBxR,EAAAA,CACvB,IAAIyR,EAAiB5H,KAAK/H,QAAQc,UAClC,OAAK6O,GAGL5H,KAAK/H,QAAQc,UAAY,GACrBiH,KAAKN,KAAKxJ,aACZ8J,KAAK/H,QAAQc,UAAY6O,EACzB5P,EAAgBgI,KAAK/H,OACrB+H,EAAAA,EAAAA,KAAAA,EAAAA,GAAAA,UACEhE,EACE,CACEoB,KAAM4C,EAAAA,KAAK6B,EAAAA,GAAQa,KAAK1C,IACxBnC,EAAAA,MAAOmC,EAAAA,KAAK+D,EAAAA,GAAL/D,UAAc,GACrBmB,UAAW,EAAA,EAEbnB,EAAAA,KAAKyF,EAAAA,GAAU1J,SAGZ5F,IAzcSiE,EA2cEwN,EA1cfxN,EAAIyN,QAAQ,gBAAiB,EAAA,EAAIC,KAAOC,EAAAA,MAAM,wBA0cfC,OAAO7R,CAAAA,GAlBlCA,EAzbb,IAAsBiE,CA4ctB,EAKE6N,GAAA3F,UACE,CAAA,GAAItC,EAAAA,UACF,OAAO,KAET,IAAIrL,EAASgC,EAAc,MAE3B,EAAA,OADAhC,EAAOuT,UAAY/T,EACd6L,EAAAA,KAAKwG,EAAAA,IAIV7R,EAAOoE,UAAYL,GAAcsH,KAAKN,KAAKlK,YAAYuD,UAChDpE,IAJLA,EAAOwT,MAAMC,WAAa,SACnBzT,EAIb,EACE0T,EAAAC,SAAeC,EAAAA,CACb,IAAI1K,EAAQmC,KAAKN,KAAK3J,gBACtBiK,KAAKL,MAAMa,IAAI,CAAC,CAAE3C,MAAOA,EAAM,CAAS0K,CAAAA,EAAAA,GAAAA,EAAO,CAAE1K,MAAOA,EAAM,CAClE,CAAA,CAAA,CAAA,CAAA,EACE2K,EAAAhB,SAAMhM,IA9jBiBiN,CAAAA,EAAgBC,IACvC,CAAA,GAAIpK,EAAQmK,CAEV,EAAA,OAAA,KADAA,EAAexU,MAAQ,GAAGwU,EAAexU,KAAQyU,GAAAA,EAAUC,eAG7DD,EAAU3P,UAAY,GACtB,IAAI6P,GARelP,EAQQgP,EAAU1O,eART,QAAQqB,KAAK3B,GAAAA,YAAAA,EAAMmP,OAAAA,EAQQJ,EAGrDC,EAAU1O,gBAAkByO,GAXZ,IAAC/O,EAanB,IAAIoP,EAAarK,EAAO,IAAMtK,EAAcyU,IAAW,KACnDE,GAAcA,EAAWpN,gBAAkBkN,IAC7CA,EAASE,EAAWpN,eAEtBkN,EAAOpQ,aAAakQ,EAAWI,CAAW,CAAA,GAgjBtB9I,KAAK/H,QAASuD,CACpC,CAAA,EACEuN,EAAAlH,UACO7B,CAAAA,EAAAA,KAAAA,EAAAA,GAAejE,SAChBiE,EAAAA,UACFA,KAAK/H,QAAQhE,MAAQ+L,KAAK/H,QAAQhE,MAAM+U,MAAM,IAE9ChJ,EAAAA,EAAAA,KAAAA,EAAAA,GAAAA,UAAiBA,EAAAA,KAAAA,EAAAA,GAAeA,KAAK/E,cAAAA,GAE3C,EACEgO,EAAA3F,SAAY5J,EA/hBK,EAAA,CAACA,EAAMwP,IAAAA,CACxB,IAAKxP,EAAM,OACX,IAAIyP,EAAazP,EAAKnB,YACH4Q,EAAWjR,WAAW6D,OAAS,GAAKoN,EAAWrN,WAAWoN,CAAY,EAAA,EAG3FpM,GAKerE,OAAQ,CAAA,GAqhBRiB,EAAMsG,KAAK/H,OAAAA,CAC1B,EACEmR,EAAArF,SAASxJ,EAAQ,EAAA,CACf,OA10BJ,SAAuBpF,GACrB,GAAIa,CAAAA,MAAEA,EAAKN,YAAEA,EAAWE,SAAEA,CAAAA,EAAaT,EAEvC,OADAO,EAAcA,IAAgB,KAAOA,EAAcM,EAAQ,EACpDJ,EAAW,CAChB4B,GAAcxB,EAAOyB,GAAMzB,CAAAA,CAAAA,EAC3BwB,GAAc9B,EAAa+B,GAAM/B,CAC/B,CAAA,CAAA,EAAA,CAACM,EAAON,CAAAA,CACd,EAm0ByBsK,KAAKN,IAAAA,EAAMnF,EACpC,EACE8O,EAAIvE,UACF,CAAA,OAAO9E,KAAKT,yBAA2BS,KAAK/E,cAChD,IACMqD,UACF,CAAA,OAAOA,EAAQ0B,KAAK/H,QACxB,EACEqR,EAAI9C,UACF,CAAA,MAAA,CAAA,CAASxG,KAAKN,KAAK/K,QAAAA,CAAWqL,EAAAA,KAAK1B,EAAAA,EACvC,EACMmH,EAAAA,UAAAA,CACF,OA5mBexN,EA4mBI+H,KAAK/H,QA3mBtBqG,EAAQrG,CACHH,EAAAA,GAAQG,EAAQhE,KAAAA,EAElB+E,GAAiBf,EAAAA,IAAeiK,OACpC5J,GAAAA,EAAQA,EAAEJ,WAAW6D,OAAS,EALjB,EAAA,IAAC9D,CA6mBnB,sMCr9BasR,QAAAA,kBAAN,cAAgCC,GAAAA,YAAYC,GAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAA5C,aAAAC,CAAAC,MAAAC,GAAAA,SAAAA,EAiBU5J,KAAAhK,MAAA,GAOAgK,KAAAnC,MAAA,EAMKmC,KAAA6J,UAAAA,GAMA7J,KAAAxK,WAAA,GAMCwK,KAAAtK,YAAA,GAEcsK,KAAA8J,KAAAA,GAIpC9J,KAAQ+J,eAAgC,KAsBxC/J,KAAQgK,WAAa,EAAA,CACrB,sBACCL,CAAAA,MAAMM,qBACNjK,EAAAA,KAAKkK,eAAe,CAAA,CAMb,cAAAC,WAMP,GAJAnK,KAAKkK,eAEAlK,EAAAA,KAAAgK,WAAahK,KAAKoK,mBAEnBpK,EAAAA,KAAK8J,MAAQO,eAAeC,QAAQtK,KAAKgK,UAAAA,IAAgB,OAG5D,OADAhK,MAAAA,GAAAA,EAAAA,KAAKuK,aAALvK,YAAAA,EAAiB5G,cAAc,UAA/B4G,YAAAA,EAAwCwK,gBAAgB,WAIrD,GAAA,CAACxK,KAAKyK,oBAET,OAID,MAAMC,EAA+B,CACpC1U,MAAOgK,KAAKhK,MACZC,WAAY+J,KAAKnC,MACjBlJ,OAAAA,CAAAA,CAAUqL,KAAKxK,WACfA,WAAYwK,KAAKxK,WACjBE,YAAasK,KAAKtK,YAClBe,cAAe,IAAA,CACd,GAAIuJ,KAAK8J,KACJ,GAAA,CACYO,eAAAM,QAAQ3K,KAAKgK,WAAY,aAEe,CAAA,CAIpDhK,KAAA4K,cAAc,IAAIC,YAAY,kBAAmB,CAAEC,QAAS,GAAMC,SAAU,EAAA,CAAA,CAAA,EAGjF/K,KAAKyK,oBAAoBtC,MAAM6C,YAAY,sBAAuB,MAAA,CAAM,CAK1EhL,EAAAA,KAAK+J,eAAiB,IAAI5K,GAAOa,KAAKyK,oBAAqBC,CAAAA,EAGtC1K,KAAKiL,iBACb9S,QAAgBuB,GACxBA,OAAAA,EAAKsK,WAAaC,KAAKC,WAE1BlE,EAAAA,KAAK+J,iBAAL/J,MAAAA,EAAqBwH,KAAK9N,EAAKiP,aAAe,IACpCjP,aAAgBwR,aAE1BlL,KAAKmL,sBAAsBzR,CAAI,CAAA,CAAA,EAMjC0R,GAAAA,eAAcpL,EAAAA,KAAKuK,aAALvK,YAAAA,EAAiBqL,IAAiBC,EAAAA,UAAU,IAEzDtL,QAAAA,EAAAA,KAAK+J,iBAAL/J,MAAAA,EAAqBwC,IAAG,CACxB,CAAA,CAIM,oBACD,CAAA,MAAA+I,EAAcvL,KAAKwL,oBAAoBxW,OAAU4B,EAAGkN,SAAW2H,EAAAA,KAAK,EAC1E,EAAA,OAAOzL,KAAK8J,KAAO4B,eAAYH,CAAe,EAAA,EAAA,CAKvC,gBACP,CAAA,GAAIvL,KAAK+J,eAAgB,CACpB,GAAA,CACH/J,KAAK+J,eAAe/H,eAEoC,CAAA,CAEzDhC,KAAK+J,eAAiB,IAAA,CACvB,CAMO,sBAAsB9R,EAAAA,WACvB,MAAA0T,EAAS1T,EAAQ2T,aAAa,QAC9B3X,EAAAA,EAAQgE,EAAQ2T,aAAa,OACnC,EAAA,OAAQD,EACP,CAAA,IAAK,SACJ3L,EAAAA,KAAK+J,iBAAL/J,MAAAA,EAAqBhD,MAAM6O,SAAS5X,GAAS,IAAK,EAAA,GAClD,MACD,IAAK,UACJ+L,EAAAA,KAAK+J,iBAAL/J,MAAAA,EAAqB6B,OAAOgK,SAAS5X,GAAS,IAAK,EACnD,GAAA,MACD,QACKgE,EAAQ4Q,UAAY,KACvB7I,KAAK+J,eAAe+B,MAGrB9L,GAAAA,EAAAA,KAAK+J,iBAAL/J,MAAAA,EAAqBwH,KAAKvP,EAAQ0Q,aAAe,GAEnD,CAAA,CAMD,QAAAoD,CACQ,OAAApW;;;;;mBAKU,IAAA,CACbqK,KAAKmK,aAAa,CAAA,CAAA;AAAA;AAAA,WAClB,CAlLL6B,EAAAA,EAAA,CADCxI,WAAS,CAAEgE,KAAM3M,MAAAA,CAAAA,CAAAA,EAhBN0O,0BAiBZ0C,UAAA,QAAA,CAOAD,EAAAA,EAAA,CAFCE,GAAAA,EAAQ,CAAEC,QAASC,GAAcA,aAAAd,UAAAA,EACjC9H,CAAAA,EAAAA,WAAS,CAAEgE,KAAM3M,MAAAA,CAAAA,CAAAA,EAvBN0O,0BAwBZ0C,UAAA,QAAA,CAAA,EAMAD,EAAA,CADCxI,WAAS,CAAEgE,KAAMxG,OA7BNuI,CAAAA,CAAAA,EAAAA,0BA8BZ0C,UAAA,YAAA,CAAA,EAMAD,EAAA,CADCxI,WAAS,CAAEgE,KAAM6E,MAnCN9C,CAAAA,CAAAA,EAAAA,0BAoCZ0C,UAAA,aAAA,CAAA,EAMAD,EAAA,CADCxI,WAAS,CAAEgE,KAAM3M,MAAAA,CAAAA,CAAAA,EAzCN0O,0BA0CZ0C,UAAA,cAAA,CAE6BD,EAAAA,EAAA,CAA5BxI,WAAS,CAAEgE,KAAMxG,OAAAA,CAAAA,CAAAA,EA5CNuI,0BA4CiB0C,UAAA,OAAA,CAUrBD,EAAAA,EAAA,CADPM,EAAAA,MAAM,aAAA,CAAA,EArDK/C,0BAsDJ0C,UAAA,sBAAA,CAKAD,EAAAA,EAAA,CAHPO,qBAAmB,CACnBC,QAAS,EAAA,CAAA,CAAA,EAzDEjD,0BA2DJ0C,UAAA,mBAAA,CAKAD,EAAAA,EAAA,CAHPS,wBAAsB,CACtBD,QAAS,EAAA,CAAA,CAAA,EA9DEjD,0BAgEJ0C,UAAA,sBAAA,CAhEI1C,EAAAA,QAANA,kBAAAyC,EAAA,CADNU,EAAAA,cAAc,qBAAA,CAAA,EACFnD","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typewriter-DSUU_7wv.cjs");Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>e.TypewriterElement});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typewriter-RVqJuWSv.cjs");Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>e.TypewriterElement});
2
2
  //# sourceMappingURL=typewriter.cjs.map
@@ -1,4 +1,4 @@
1
- import { T as t } from "./typewriter-W7Rj384X.js";
1
+ import { T as t } from "./typewriter-3w_PiJFo.js";
2
2
  export {
3
3
  t as TypewriterElement
4
4
  };
@@ -0,0 +1,10 @@
1
+ "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const k=require("./tailwind.mixin-mxyACxyp.cjs"),d=require("lit"),i=require("lit/decorators.js");var u=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p=(h,n,x,s)=>{for(var l,e=s>1?void 0:s?f(n,x):n,a=h.length-1;a>=0;a--)(l=h[a])&&(e=(s?l(n,x,e):l(e))||e);return s&&e&&u(n,x,e),e};exports.SchmancyTypography=class extends k.TailwindElement("h1,h2,h3,h4,h5,h6,p{margin-block-start:0px;margin-block-end:0px;margin:0}:host{display:block;font-family:inherit}:host(.flex){display:flex}:host(.inline-flex){display:inline-flex}:host(.items-center){align-items:center}:host(.justify-center){justify-content:center}:host(.gap-1){gap:.25rem}:host(.gap-2){gap:.5rem}"){constructor(){super(...arguments),this.token="md"}render(){var o,g,y,c;const h=(o=this.classList)==null?void 0:o.contains("flex"),n=(g=this.classList)==null?void 0:g.contains("grid"),x=(y=this.classList)==null?void 0:y.contains("inline-flex"),s=(c=this.classList)==null?void 0:c.contains("inline-grid"),l=h||n||x||s,e=[];this.classList&&this.classList.forEach(t=>{(t.startsWith("flex")||t.startsWith("grid")||t.startsWith("gap")||t.startsWith("items")||t.startsWith("justify")||t.startsWith("content")||t.startsWith("place")||t==="inline-flex"||t==="inline-grid")&&e.push(t)});const a={...e.reduce((t,m)=>({...t,[m]:!0}),{}),"hyphens-none":!0,"text-center":this.align==="center","text-start":this.align==="left","text-right":this.align==="right","text-justify":this.align==="justify","line-clamp-1":this.maxLines===1,"line-clamp-2":this.maxLines===2,"line-clamp-3":this.maxLines===3,"line-clamp-4":this.maxLines===4,"line-clamp-5":this.maxLines===5,"line-clamp-6":this.maxLines===6,"line-clamp-none":this.maxLines===void 0,"text-[72px] tracking-[-0.5px] leading-[80px]":this.type==="display"&&this.token==="2xl","text-[64px] tracking-[-0.25px] leading-[72px]":this.type==="display"&&this.token==="xl","text-[57px] tracking-[-0.25px] leading-[64px]":this.type==="display"&&this.token==="lg","text-[45px] tracking-[0px] leading-[52px]":this.type==="display"&&this.token==="md","text-[36px] tracking-[0px] leading-[44px]":this.type==="display"&&this.token==="sm","text-[28px] tracking-[0px] leading-[36px]":this.type==="display"&&this.token==="xs","text-[36px] tracking-[0px] leading-[44px] headline-xl":this.type==="headline"&&this.token==="xl","text-[32px] tracking-[0px] leading-[40px] headline-lg":this.type==="headline"&&this.token==="lg","text-[28px] tracking-[0px] leading-[36px] headline-md":this.type==="headline"&&this.token==="md","text-[24px] tracking-[0px] leading-[32px] headline-sm":this.type==="headline"&&this.token==="sm","text-[20px] tracking-[0px] leading-[28px] headline-xs":this.type==="headline"&&this.token==="xs","text-[24px] tracking-[0px] leading-[32px] title-xl":this.type==="title"&&this.token==="xl","text-[22px] tracking-[0px] leading-[28px] title-lg":this.type==="title"&&this.token==="lg","font-medium text-[16px] tracking-[0.15px] leading-[24px] title-md":this.type==="title"&&this.token==="md","font-medium text-[14px] tracking-[0.1px] leading-[20px] title-sm":this.type==="title"&&this.token==="sm","font-medium text-[12px] tracking-[0.1px] leading-[16px] title-xs":this.type==="title"&&this.token==="xs","font-medium text-[20px] tracking-[0.15px] leading-[28px] subtitle-xl":this.type==="subtitle"&&this.token==="xl","font-medium text-[18px] tracking-[0.15px] leading-[24px] subtitle-lg":this.type==="subtitle"&&this.token==="lg","font-medium text-[16px] tracking-[0.15px] leading-[24px] subtitle-md":this.type==="subtitle"&&this.token==="md","font-medium text-[14px] tracking-[0.1px] leading-[20px] subtitle-sm":this.type==="subtitle"&&this.token==="sm","font-medium text-[12px] tracking-[0.1px] leading-[16px] subtitle-xs":this.type==="subtitle"&&this.token==="xs","text-[18px] tracking-[0.5px] leading-[28px]":this.type==="body"&&this.token==="xl","text-[16px] tracking-[0.5px] leading-[24px]":this.type==="body"&&this.token==="lg","text-[14px] tracking-[0.25px] leading-[20px]":this.type==="body"&&this.token==="md","text-[12px] tracking-[0.4px] leading-[16px]":this.type==="body"&&this.token==="sm","text-[10px] tracking-[0.4px] leading-[14px]":this.type==="body"&&this.token==="xs","font-medium text-[18px] tracking-[0.1px] leading-[24px]":this.type==="label"&&this.token==="2xl","font-medium text-[16px] tracking-[0.1px] leading-[22px]":this.type==="label"&&this.token==="xl","font-medium text-[14px] tracking-[0.1px] leading-[20px]":this.type==="label"&&this.token==="lg","text-[12px] tracking-[0.5px] leading-[16px]":this.type==="label"&&this.token==="md","text-[11px] tracking-[0.5px] leading-[16px]":this.type==="label"&&this.token==="sm","text-[10px] tracking-[0.5px] leading-[14px]":this.type==="label"&&this.token==="xs","text-[12px] tracking-[0.3px] leading-[16px]":this.type==="caption"&&this.token==="lg","text-[11px] tracking-[0.4px] leading-[16px]":this.type==="caption"&&this.token==="md","text-[10px] tracking-[0.4px] leading-[13px]":this.type==="caption"&&this.token==="sm","text-[9px] tracking-[0.4px] leading-[12px]":this.type==="caption"&&this.token==="xs","font-bold":this.weight==="bold","font-medium":this.weight==="medium","font-normal":this.weight==="normal",uppercase:this.transform==="uppercase",lowercase:this.transform==="lowercase",capitalize:this.transform==="capitalize"},r={letterSpacing:this.letterSpacing,fontSize:this.fontSize,lineHeight:this.lineHeight};return l?d.html`
2
+ <div style=${this.styleMap(r)} class=${this.classMap(a)}>
3
+ <slot></slot>
4
+ </div>
5
+ `:d.html`
6
+ <span style=${this.styleMap(r)} class=${this.classMap(a)}>
7
+ <slot></slot>
8
+ </span>
9
+ `}},p([i.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"type",2),p([i.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"token",2),p([i.property({type:String})],exports.SchmancyTypography.prototype,"align",2),p([i.property({type:String})],exports.SchmancyTypography.prototype,"weight",2),p([i.property({type:String})],exports.SchmancyTypography.prototype,"lineHeight",2),p([i.property({type:String})],exports.SchmancyTypography.prototype,"transform",2),p([i.property({type:Number})],exports.SchmancyTypography.prototype,"maxLines",2),p([i.property({type:String})],exports.SchmancyTypography.prototype,"letterSpacing",2),p([i.property({type:String})],exports.SchmancyTypography.prototype,"fontSize",2),exports.SchmancyTypography=p([i.customElement("schmancy-typography")],exports.SchmancyTypography);
10
+ //# sourceMappingURL=typography-BLJPXhuT.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography-BLJPXhuT.cjs","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport typographyStyle from './typography.scss?inline'\n// based on M3 typography https://m3.material.io/styles/typography/overview\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(typographyStyle) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default inherit\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' | 'caption'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' | 'caption'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String })\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 })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\n\t@property({ type: String }) lineHeight: string | undefined\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 }) transform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number }) maxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\t@property({ type: String }) letterSpacing: string | undefined\n\t@property({ type: String }) fontSize: string | undefined\n\n\trender() {\n\t\t// Check if the host element has layout-related classes\n\t\tconst hasFlexClass = this.classList?.contains('flex')\n\t\tconst hasGridClass = this.classList?.contains('grid')\n\t\tconst hasInlineFlexClass = this.classList?.contains('inline-flex')\n\t\tconst hasInlineGridClass = this.classList?.contains('inline-grid')\n\t\t\n\t\t// Determine which element to use based on layout classes\n\t\tconst isLayoutContainer = hasFlexClass || hasGridClass || hasInlineFlexClass || hasInlineGridClass\n\t\t\n\t\t// Extract layout-related classes from the host element\n\t\tconst layoutClasses: string[] = []\n\t\tif (this.classList) {\n\t\t\tthis.classList.forEach((className) => {\n\t\t\t\t// Include flex/grid related classes\n\t\t\t\tif (className.startsWith('flex') || \n\t\t\t\t\tclassName.startsWith('grid') || \n\t\t\t\t\tclassName.startsWith('gap') || \n\t\t\t\t\tclassName.startsWith('items') || \n\t\t\t\t\tclassName.startsWith('justify') || \n\t\t\t\t\tclassName.startsWith('content') || \n\t\t\t\t\tclassName.startsWith('place') ||\n\t\t\t\t\tclassName === 'inline-flex' ||\n\t\t\t\t\tclassName === 'inline-grid') {\n\t\t\t\t\tlayoutClasses.push(className)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tconst classes = {\n\t\t\t// Apply layout classes if this is a layout container\n\t\t\t...layoutClasses.reduce((acc, cls) => ({ ...acc, [cls]: true }), {}),\n\t\t\t\n\t\t\t// Typography-specific classes\n\t\t\t'hyphens-none': true,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-start': this.align === 'left',\n\t\t\t'text-right': this.align === 'right',\n\t\t\t'text-justify': this.align === 'justify',\n\t\t\t'line-clamp-1': this.maxLines === 1,\n\t\t\t'line-clamp-2': this.maxLines === 2,\n\t\t\t'line-clamp-3': this.maxLines === 3,\n\t\t\t'line-clamp-4': this.maxLines === 4,\n\t\t\t'line-clamp-5': this.maxLines === 5,\n\t\t\t'line-clamp-6': this.maxLines === 6,\n\t\t\t'line-clamp-none': this.maxLines === undefined,\n\n\t\t\t// Display\n\t\t\t'text-[72px] tracking-[-0.5px] leading-[80px]': this.type === 'display' && this.token === '2xl',\n\t\t\t'text-[64px] tracking-[-0.25px] leading-[72px]': this.type === 'display' && this.token === 'xl',\n\t\t\t'text-[57px] tracking-[-0.25px] leading-[64px]': this.type === 'display' && this.token === 'lg',\n\t\t\t'text-[45px] tracking-[0px] leading-[52px]': this.type === 'display' && this.token === 'md',\n\t\t\t'text-[36px] tracking-[0px] leading-[44px]': this.type === 'display' && this.token === 'sm',\n\t\t\t'text-[28px] tracking-[0px] leading-[36px]': this.type === 'display' && this.token === 'xs',\n\n\t\t\t// Headline\n\t\t\t'text-[36px] tracking-[0px] leading-[44px] headline-xl': this.type === 'headline' && this.token === 'xl',\n\t\t\t'text-[32px] tracking-[0px] leading-[40px] headline-lg': this.type === 'headline' && this.token === 'lg',\n\t\t\t'text-[28px] tracking-[0px] leading-[36px] headline-md': this.type === 'headline' && this.token === 'md',\n\t\t\t'text-[24px] tracking-[0px] leading-[32px] headline-sm': this.type === 'headline' && this.token === 'sm',\n\t\t\t'text-[20px] tracking-[0px] leading-[28px] headline-xs': this.type === 'headline' && this.token === 'xs',\n\n\t\t\t// Title\n\t\t\t'text-[24px] tracking-[0px] leading-[32px] title-xl': this.type === 'title' && this.token === 'xl',\n\t\t\t'text-[22px] tracking-[0px] leading-[28px] title-lg': this.type === 'title' && this.token === 'lg',\n\t\t\t'font-medium text-[16px] tracking-[0.15px] leading-[24px] title-md': this.type === 'title' && this.token === 'md',\n\t\t\t'font-medium text-[14px] tracking-[0.1px] leading-[20px] title-sm': this.type === 'title' && this.token === 'sm',\n\t\t\t'font-medium text-[12px] tracking-[0.1px] leading-[16px] title-xs': this.type === 'title' && this.token === 'xs',\n\n\t\t\t// Subtitle\n\t\t\t'font-medium text-[20px] tracking-[0.15px] leading-[28px] subtitle-xl':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'xl',\n\t\t\t'font-medium text-[18px] tracking-[0.15px] leading-[24px] subtitle-lg':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'lg',\n\t\t\t'font-medium text-[16px] tracking-[0.15px] leading-[24px] subtitle-md':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'md',\n\t\t\t'font-medium text-[14px] tracking-[0.1px] leading-[20px] subtitle-sm':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'sm',\n\t\t\t'font-medium text-[12px] tracking-[0.1px] leading-[16px] subtitle-xs':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'xs',\n\n\t\t\t// Body\n\t\t\t'text-[18px] tracking-[0.5px] leading-[28px]': this.type === 'body' && this.token === 'xl',\n\t\t\t'text-[16px] tracking-[0.5px] leading-[24px]': this.type === 'body' && this.token === 'lg',\n\t\t\t'text-[14px] tracking-[0.25px] leading-[20px]': this.type === 'body' && this.token === 'md',\n\t\t\t'text-[12px] tracking-[0.4px] leading-[16px]': this.type === 'body' && this.token === 'sm',\n\t\t\t'text-[10px] tracking-[0.4px] leading-[14px]': this.type === 'body' && this.token === 'xs',\n\n\t\t\t// Label\n\t\t\t'font-medium text-[18px] tracking-[0.1px] leading-[24px]': this.type === 'label' && this.token === '2xl',\n\t\t\t'font-medium text-[16px] tracking-[0.1px] leading-[22px]': this.type === 'label' && this.token === 'xl',\n\t\t\t'font-medium text-[14px] tracking-[0.1px] leading-[20px]': this.type === 'label' && this.token === 'lg',\n\t\t\t'text-[12px] tracking-[0.5px] leading-[16px]': this.type === 'label' && this.token === 'md',\n\t\t\t'text-[11px] tracking-[0.5px] leading-[16px]': this.type === 'label' && this.token === 'sm',\n\t\t\t'text-[10px] tracking-[0.5px] leading-[14px]': this.type === 'label' && this.token === 'xs',\n\n\t\t\t// Caption\n\t\t\t'text-[12px] tracking-[0.3px] leading-[16px]': this.type === 'caption' && this.token === 'lg',\n\t\t\t'text-[11px] tracking-[0.4px] leading-[16px]': this.type === 'caption' && this.token === 'md',\n\t\t\t'text-[10px] tracking-[0.4px] leading-[13px]': this.type === 'caption' && this.token === 'sm',\n\t\t\t'text-[9px] tracking-[0.4px] leading-[12px]': this.type === 'caption' && this.token === 'xs',\n\n\t\t\t'font-bold': this.weight === 'bold',\n\t\t\t'font-medium': this.weight === 'medium',\n\t\t\t'font-normal': this.weight === 'normal',\n\n\t\t\tuppercase: this.transform === 'uppercase',\n\t\t\tlowercase: this.transform === 'lowercase',\n\t\t\tcapitalize: this.transform === 'capitalize',\n\t\t}\n\n\t\tconst styles = {\n\t\t\tletterSpacing: this.letterSpacing,\n\t\t\tfontSize: this.fontSize,\n\t\t\tlineHeight: this.lineHeight,\n\t\t}\n\n\t\t// Use div for layout containers, span for inline text\n\t\tif (isLayoutContainer) {\n\t\t\treturn html`\n\t\t\t\t<div style=${this.styleMap(styles)} class=${this.classMap(classes)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t`\n\t\t} else {\n\t\t\treturn html`\n\t\t\t\t<span style=${this.styleMap(styles)} class=${this.classMap(classes)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</span>\n\t\t\t`\n\t\t}\n\t}\n}\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}\n"],"names":["SchmancyTypography","TailwindElement","constructor","super","arguments","this","token","render","hasFlexClass","classList","contains","hasGridClass","hasInlineFlexClass","hasInlineGridClass","isLayoutContainer","layoutClasses","forEach","className","startsWith","push","classes","reduce","acc","cls","align","maxLines","type","weight","uppercase","transform","lowercase","capitalize","styles","letterSpacing","fontSize","lineHeight","html","styleMap","classMap","__decorateClass","property","String","reflect","prototype","Number","customElement"],"mappings":"4YAWaA,QAAAA,mBAAN,cAAiCC,gVAAjC,aAAAC,CAAAC,MAAAC,GAAAA,SAAAA,EAe4CC,KAAAC,MAAA,IAAA,CAkClD,QAAAC,aAEC,MAAMC,GAAeH,EAAAA,KAAKI,YAALJ,YAAAA,EAAgBK,SAAS,QACxCC,GAAeN,EAAAA,KAAKI,YAALJ,YAAAA,EAAgBK,SAAS,QACxCE,GAAqBP,EAAAA,KAAKI,YAALJ,YAAAA,EAAgBK,SAAS,eAC9CG,GAAqBR,EAAAA,KAAKI,YAALJ,YAAAA,EAAgBK,SAAS,eAG9CI,EAAoBN,GAAgBG,GAAgBC,GAAsBC,EAG1EE,EAA0B,CAAA,EAC5BV,KAAKI,WACHJ,KAAAI,UAAUO,QAASC,GAAAA,EAEnBA,EAAUC,WAAW,MACxBD,GAAAA,EAAUC,WAAW,MACrBD,GAAAA,EAAUC,WAAW,KAAA,GACrBD,EAAUC,WAAW,OACrBD,GAAAA,EAAUC,WAAW,SAAA,GACrBD,EAAUC,WAAW,SACrBD,GAAAA,EAAUC,WAAW,OAAA,GACrBD,IAAc,eACdA,IAAc,gBACdF,EAAcI,KAAKF,CAAS,CAAA,CAAA,EAK/B,MAAMG,EAAU,CAEZL,GAAAA,EAAcM,OAAO,CAACC,EAAKC,KAAS,CAAKD,GAAAA,EAAKC,CAACA,CAAAA,EAAAA,EAAe,GAAA,CAAA,CAGjE,EAAA,eAAA,GACA,cAAelB,KAAKmB,QAAU,SAC9B,aAAcnB,KAAKmB,QAAU,OAC7B,aAAcnB,KAAKmB,QAAU,QAC7B,eAAgBnB,KAAKmB,QAAU,UAC/B,eAAgBnB,KAAKoB,WAAa,EAClC,eAAgBpB,KAAKoB,WAAa,EAClC,eAAgBpB,KAAKoB,WAAa,EAClC,eAAgBpB,KAAKoB,WAAa,EAClC,eAAgBpB,KAAKoB,WAAa,EAClC,eAAgBpB,KAAKoB,WAAa,EAClC,kBAAmBpB,KAAKoB,WAAa,OAGrC,+CAAgDpB,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,MAC1F,gDAAiDD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KAC3F,gDAAiDD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KAC3F,4CAA6CD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KACvF,4CAA6CD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KACvF,4CAA6CD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KAGvF,wDAAyDD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KACpG,wDAAyDD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KACpG,wDAAyDD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KACpG,wDAAyDD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KACpG,wDAAyDD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KAGpG,qDAAsDD,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KAC9F,qDAAsDD,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KAC9F,oEAAqED,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KAC7G,mEAAoED,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KAC5G,mEAAoED,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KAG5G,uEACCD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KAC5C,uEACCD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KAC5C,uEACCD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KAC5C,sEACCD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KAC5C,sEACCD,KAAKqB,OAAS,YAAcrB,KAAKC,QAAU,KAG5C,8CAA+CD,KAAKqB,OAAS,QAAUrB,KAAKC,QAAU,KACtF,8CAA+CD,KAAKqB,OAAS,QAAUrB,KAAKC,QAAU,KACtF,+CAAgDD,KAAKqB,OAAS,QAAUrB,KAAKC,QAAU,KACvF,8CAA+CD,KAAKqB,OAAS,QAAUrB,KAAKC,QAAU,KACtF,8CAA+CD,KAAKqB,OAAS,QAAUrB,KAAKC,QAAU,KAGtF,0DAA2DD,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,MACnG,0DAA2DD,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KACnG,0DAA2DD,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KACnG,8CAA+CD,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KACvF,8CAA+CD,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KACvF,8CAA+CD,KAAKqB,OAAS,SAAWrB,KAAKC,QAAU,KAGvF,8CAA+CD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KACzF,8CAA+CD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KACzF,8CAA+CD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KACzF,6CAA8CD,KAAKqB,OAAS,WAAarB,KAAKC,QAAU,KAExF,YAAaD,KAAKsB,SAAW,OAC7B,cAAetB,KAAKsB,SAAW,SAC/B,cAAetB,KAAKsB,SAAW,SAE/BC,UAAWvB,KAAKwB,YAAc,YAC9BC,UAAWzB,KAAKwB,YAAc,YAC9BE,WAAY1B,KAAKwB,YAAc,YAAdA,EAGZG,EAAS,CACdC,cAAe5B,KAAK4B,cACpBC,SAAU7B,KAAK6B,SACfC,WAAY9B,KAAK8B,UAIlB,EAAA,OAAIrB,EACIsB,EAAAA;AAAAA,iBACO/B,KAAKgC,SAASL,CAAiB3B,CAAAA,UAAAA,KAAKiC,SAASlB,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA,KAKpDgB,EAAAA;AAAAA,kBACQ/B,KAAKgC,SAASL,CAAiB3B,CAAAA,UAAAA,KAAKiC,SAASlB,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA,IAI7D,CA5KDmB,EAAAA,EAAA,CADCC,EAAAA,SAAS,CAAEd,KAAMe,OAAQC,QAAS,EAAA,CAAA,CAAA,EANvB1C,2BAOZ2C,UAAA,OAAA,GAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEd,KAAMe,OAAQC,QAAAA,EAdd1C,CAAAA,CAAAA,EAAAA,2BAeZ2C,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,WAAS,CAAEd,KAAMe,MAAAA,CAAAA,CAAAA,EAtBNzC,2BAuBZ2C,UAAA,QAAA,CASAJ,EAAAA,EAAA,CADCC,WAAS,CAAEd,KAAMe,MAAAA,CAAAA,CAAAA,EA/BNzC,2BAgCZ2C,UAAA,SAAA,CAE4BJ,EAAAA,EAAA,CAA3BC,WAAS,CAAEd,KAAMe,MAAAA,CAAAA,CAAAA,EAlCNzC,2BAkCgB2C,UAAA,aAAA,CAAA,EAQAJ,EAAA,CAA3BC,WAAS,CAAEd,KAAMe,MA1CNzC,CAAAA,CAAAA,EAAAA,2BA0CgB2C,UAAA,YAAA,CAAA,EAEAJ,EAAA,CAA3BC,WAAS,CAAEd,KAAMkB,MA5CN5C,CAAAA,CAAAA,EAAAA,2BA4CgB2C,UAAA,WAAA,CAAA,EAEAJ,EAAA,CAA3BC,WAAS,CAAEd,KAAMe,MAAAA,CAAAA,CAAAA,EA9CNzC,2BA8CgB2C,UAAA,gBAAA,CACAJ,EAAAA,EAAA,CAA3BC,WAAS,CAAEd,KAAMe,MAAAA,CAAAA,CAAAA,EA/CNzC,2BA+CgB2C,UAAA,WAAA,CA/ChB3C,EAAAA,QAANA,mBAAAuC,EAAA,CADNM,EAAAA,cAAc,qBAAA,CAAA,EACF7C"}
@@ -0,0 +1,37 @@
1
+ import "rxjs";
2
+ import "lit/directives/class-map.js";
3
+ import "lit/directives/style-map.js";
4
+ import { T as f } from "./tailwind.mixin-DPUboU_5.js";
5
+ import { html as y } from "lit";
6
+ import { property as n, customElement as u } from "lit/decorators.js";
7
+ var b = Object.defineProperty, S = Object.getOwnPropertyDescriptor, s = (o, p, l, x) => {
8
+ for (var h, i = x > 1 ? void 0 : x ? S(p, l) : p, a = o.length - 1; a >= 0; a--) (h = o[a]) && (i = (x ? h(p, l, i) : h(i)) || i);
9
+ return x && i && b(p, l, i), i;
10
+ };
11
+ let e = class extends f("h1,h2,h3,h4,h5,h6,p{margin-block-start:0px;margin-block-end:0px;margin:0}:host{display:block;font-family:inherit}:host(.flex){display:flex}:host(.inline-flex){display:inline-flex}:host(.items-center){align-items:center}:host(.justify-center){justify-content:center}:host(.gap-1){gap:.25rem}:host(.gap-2){gap:.5rem}") {
12
+ constructor() {
13
+ super(...arguments), this.token = "md";
14
+ }
15
+ render() {
16
+ var g, d, c, m;
17
+ const o = (g = this.classList) == null ? void 0 : g.contains("flex"), p = (d = this.classList) == null ? void 0 : d.contains("grid"), l = (c = this.classList) == null ? void 0 : c.contains("inline-flex"), x = (m = this.classList) == null ? void 0 : m.contains("inline-grid"), h = o || p || l || x, i = [];
18
+ this.classList && this.classList.forEach((t) => {
19
+ (t.startsWith("flex") || t.startsWith("grid") || t.startsWith("gap") || t.startsWith("items") || t.startsWith("justify") || t.startsWith("content") || t.startsWith("place") || t === "inline-flex" || t === "inline-grid") && i.push(t);
20
+ });
21
+ const a = { ...i.reduce((t, k) => ({ ...t, [k]: !0 }), {}), "hyphens-none": !0, "text-center": this.align === "center", "text-start": this.align === "left", "text-right": this.align === "right", "text-justify": this.align === "justify", "line-clamp-1": this.maxLines === 1, "line-clamp-2": this.maxLines === 2, "line-clamp-3": this.maxLines === 3, "line-clamp-4": this.maxLines === 4, "line-clamp-5": this.maxLines === 5, "line-clamp-6": this.maxLines === 6, "line-clamp-none": this.maxLines === void 0, "text-[72px] tracking-[-0.5px] leading-[80px]": this.type === "display" && this.token === "2xl", "text-[64px] tracking-[-0.25px] leading-[72px]": this.type === "display" && this.token === "xl", "text-[57px] tracking-[-0.25px] leading-[64px]": this.type === "display" && this.token === "lg", "text-[45px] tracking-[0px] leading-[52px]": this.type === "display" && this.token === "md", "text-[36px] tracking-[0px] leading-[44px]": this.type === "display" && this.token === "sm", "text-[28px] tracking-[0px] leading-[36px]": this.type === "display" && this.token === "xs", "text-[36px] tracking-[0px] leading-[44px] headline-xl": this.type === "headline" && this.token === "xl", "text-[32px] tracking-[0px] leading-[40px] headline-lg": this.type === "headline" && this.token === "lg", "text-[28px] tracking-[0px] leading-[36px] headline-md": this.type === "headline" && this.token === "md", "text-[24px] tracking-[0px] leading-[32px] headline-sm": this.type === "headline" && this.token === "sm", "text-[20px] tracking-[0px] leading-[28px] headline-xs": this.type === "headline" && this.token === "xs", "text-[24px] tracking-[0px] leading-[32px] title-xl": this.type === "title" && this.token === "xl", "text-[22px] tracking-[0px] leading-[28px] title-lg": this.type === "title" && this.token === "lg", "font-medium text-[16px] tracking-[0.15px] leading-[24px] title-md": this.type === "title" && this.token === "md", "font-medium text-[14px] tracking-[0.1px] leading-[20px] title-sm": this.type === "title" && this.token === "sm", "font-medium text-[12px] tracking-[0.1px] leading-[16px] title-xs": this.type === "title" && this.token === "xs", "font-medium text-[20px] tracking-[0.15px] leading-[28px] subtitle-xl": this.type === "subtitle" && this.token === "xl", "font-medium text-[18px] tracking-[0.15px] leading-[24px] subtitle-lg": this.type === "subtitle" && this.token === "lg", "font-medium text-[16px] tracking-[0.15px] leading-[24px] subtitle-md": this.type === "subtitle" && this.token === "md", "font-medium text-[14px] tracking-[0.1px] leading-[20px] subtitle-sm": this.type === "subtitle" && this.token === "sm", "font-medium text-[12px] tracking-[0.1px] leading-[16px] subtitle-xs": this.type === "subtitle" && this.token === "xs", "text-[18px] tracking-[0.5px] leading-[28px]": this.type === "body" && this.token === "xl", "text-[16px] tracking-[0.5px] leading-[24px]": this.type === "body" && this.token === "lg", "text-[14px] tracking-[0.25px] leading-[20px]": this.type === "body" && this.token === "md", "text-[12px] tracking-[0.4px] leading-[16px]": this.type === "body" && this.token === "sm", "text-[10px] tracking-[0.4px] leading-[14px]": this.type === "body" && this.token === "xs", "font-medium text-[18px] tracking-[0.1px] leading-[24px]": this.type === "label" && this.token === "2xl", "font-medium text-[16px] tracking-[0.1px] leading-[22px]": this.type === "label" && this.token === "xl", "font-medium text-[14px] tracking-[0.1px] leading-[20px]": this.type === "label" && this.token === "lg", "text-[12px] tracking-[0.5px] leading-[16px]": this.type === "label" && this.token === "md", "text-[11px] tracking-[0.5px] leading-[16px]": this.type === "label" && this.token === "sm", "text-[10px] tracking-[0.5px] leading-[14px]": this.type === "label" && this.token === "xs", "text-[12px] tracking-[0.3px] leading-[16px]": this.type === "caption" && this.token === "lg", "text-[11px] tracking-[0.4px] leading-[16px]": this.type === "caption" && this.token === "md", "text-[10px] tracking-[0.4px] leading-[13px]": this.type === "caption" && this.token === "sm", "text-[9px] tracking-[0.4px] leading-[12px]": this.type === "caption" && this.token === "xs", "font-bold": this.weight === "bold", "font-medium": this.weight === "medium", "font-normal": this.weight === "normal", uppercase: this.transform === "uppercase", lowercase: this.transform === "lowercase", capitalize: this.transform === "capitalize" }, r = { letterSpacing: this.letterSpacing, fontSize: this.fontSize, lineHeight: this.lineHeight };
22
+ return h ? y`
23
+ <div style=${this.styleMap(r)} class=${this.classMap(a)}>
24
+ <slot></slot>
25
+ </div>
26
+ ` : y`
27
+ <span style=${this.styleMap(r)} class=${this.classMap(a)}>
28
+ <slot></slot>
29
+ </span>
30
+ `;
31
+ }
32
+ };
33
+ s([n({ type: String, reflect: !0 })], e.prototype, "type", 2), s([n({ type: String, reflect: !0 })], e.prototype, "token", 2), s([n({ type: String })], e.prototype, "align", 2), s([n({ type: String })], e.prototype, "weight", 2), s([n({ type: String })], e.prototype, "lineHeight", 2), s([n({ type: String })], e.prototype, "transform", 2), s([n({ type: Number })], e.prototype, "maxLines", 2), s([n({ type: String })], e.prototype, "letterSpacing", 2), s([n({ type: String })], e.prototype, "fontSize", 2), e = s([u("schmancy-typography")], e);
34
+ export {
35
+ e as S
36
+ };
37
+ //# sourceMappingURL=typography-izBBu-t8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography-izBBu-t8.js","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport typographyStyle from './typography.scss?inline'\n// based on M3 typography https://m3.material.io/styles/typography/overview\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(typographyStyle) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default inherit\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' | 'caption'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' | 'caption'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String })\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 })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\n\t@property({ type: String }) lineHeight: string | undefined\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 }) transform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number }) maxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\t@property({ type: String }) letterSpacing: string | undefined\n\t@property({ type: String }) fontSize: string | undefined\n\n\trender() {\n\t\t// Check if the host element has layout-related classes\n\t\tconst hasFlexClass = this.classList?.contains('flex')\n\t\tconst hasGridClass = this.classList?.contains('grid')\n\t\tconst hasInlineFlexClass = this.classList?.contains('inline-flex')\n\t\tconst hasInlineGridClass = this.classList?.contains('inline-grid')\n\t\t\n\t\t// Determine which element to use based on layout classes\n\t\tconst isLayoutContainer = hasFlexClass || hasGridClass || hasInlineFlexClass || hasInlineGridClass\n\t\t\n\t\t// Extract layout-related classes from the host element\n\t\tconst layoutClasses: string[] = []\n\t\tif (this.classList) {\n\t\t\tthis.classList.forEach((className) => {\n\t\t\t\t// Include flex/grid related classes\n\t\t\t\tif (className.startsWith('flex') || \n\t\t\t\t\tclassName.startsWith('grid') || \n\t\t\t\t\tclassName.startsWith('gap') || \n\t\t\t\t\tclassName.startsWith('items') || \n\t\t\t\t\tclassName.startsWith('justify') || \n\t\t\t\t\tclassName.startsWith('content') || \n\t\t\t\t\tclassName.startsWith('place') ||\n\t\t\t\t\tclassName === 'inline-flex' ||\n\t\t\t\t\tclassName === 'inline-grid') {\n\t\t\t\t\tlayoutClasses.push(className)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tconst classes = {\n\t\t\t// Apply layout classes if this is a layout container\n\t\t\t...layoutClasses.reduce((acc, cls) => ({ ...acc, [cls]: true }), {}),\n\t\t\t\n\t\t\t// Typography-specific classes\n\t\t\t'hyphens-none': true,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-start': this.align === 'left',\n\t\t\t'text-right': this.align === 'right',\n\t\t\t'text-justify': this.align === 'justify',\n\t\t\t'line-clamp-1': this.maxLines === 1,\n\t\t\t'line-clamp-2': this.maxLines === 2,\n\t\t\t'line-clamp-3': this.maxLines === 3,\n\t\t\t'line-clamp-4': this.maxLines === 4,\n\t\t\t'line-clamp-5': this.maxLines === 5,\n\t\t\t'line-clamp-6': this.maxLines === 6,\n\t\t\t'line-clamp-none': this.maxLines === undefined,\n\n\t\t\t// Display\n\t\t\t'text-[72px] tracking-[-0.5px] leading-[80px]': this.type === 'display' && this.token === '2xl',\n\t\t\t'text-[64px] tracking-[-0.25px] leading-[72px]': this.type === 'display' && this.token === 'xl',\n\t\t\t'text-[57px] tracking-[-0.25px] leading-[64px]': this.type === 'display' && this.token === 'lg',\n\t\t\t'text-[45px] tracking-[0px] leading-[52px]': this.type === 'display' && this.token === 'md',\n\t\t\t'text-[36px] tracking-[0px] leading-[44px]': this.type === 'display' && this.token === 'sm',\n\t\t\t'text-[28px] tracking-[0px] leading-[36px]': this.type === 'display' && this.token === 'xs',\n\n\t\t\t// Headline\n\t\t\t'text-[36px] tracking-[0px] leading-[44px] headline-xl': this.type === 'headline' && this.token === 'xl',\n\t\t\t'text-[32px] tracking-[0px] leading-[40px] headline-lg': this.type === 'headline' && this.token === 'lg',\n\t\t\t'text-[28px] tracking-[0px] leading-[36px] headline-md': this.type === 'headline' && this.token === 'md',\n\t\t\t'text-[24px] tracking-[0px] leading-[32px] headline-sm': this.type === 'headline' && this.token === 'sm',\n\t\t\t'text-[20px] tracking-[0px] leading-[28px] headline-xs': this.type === 'headline' && this.token === 'xs',\n\n\t\t\t// Title\n\t\t\t'text-[24px] tracking-[0px] leading-[32px] title-xl': this.type === 'title' && this.token === 'xl',\n\t\t\t'text-[22px] tracking-[0px] leading-[28px] title-lg': this.type === 'title' && this.token === 'lg',\n\t\t\t'font-medium text-[16px] tracking-[0.15px] leading-[24px] title-md': this.type === 'title' && this.token === 'md',\n\t\t\t'font-medium text-[14px] tracking-[0.1px] leading-[20px] title-sm': this.type === 'title' && this.token === 'sm',\n\t\t\t'font-medium text-[12px] tracking-[0.1px] leading-[16px] title-xs': this.type === 'title' && this.token === 'xs',\n\n\t\t\t// Subtitle\n\t\t\t'font-medium text-[20px] tracking-[0.15px] leading-[28px] subtitle-xl':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'xl',\n\t\t\t'font-medium text-[18px] tracking-[0.15px] leading-[24px] subtitle-lg':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'lg',\n\t\t\t'font-medium text-[16px] tracking-[0.15px] leading-[24px] subtitle-md':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'md',\n\t\t\t'font-medium text-[14px] tracking-[0.1px] leading-[20px] subtitle-sm':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'sm',\n\t\t\t'font-medium text-[12px] tracking-[0.1px] leading-[16px] subtitle-xs':\n\t\t\t\tthis.type === 'subtitle' && this.token === 'xs',\n\n\t\t\t// Body\n\t\t\t'text-[18px] tracking-[0.5px] leading-[28px]': this.type === 'body' && this.token === 'xl',\n\t\t\t'text-[16px] tracking-[0.5px] leading-[24px]': this.type === 'body' && this.token === 'lg',\n\t\t\t'text-[14px] tracking-[0.25px] leading-[20px]': this.type === 'body' && this.token === 'md',\n\t\t\t'text-[12px] tracking-[0.4px] leading-[16px]': this.type === 'body' && this.token === 'sm',\n\t\t\t'text-[10px] tracking-[0.4px] leading-[14px]': this.type === 'body' && this.token === 'xs',\n\n\t\t\t// Label\n\t\t\t'font-medium text-[18px] tracking-[0.1px] leading-[24px]': this.type === 'label' && this.token === '2xl',\n\t\t\t'font-medium text-[16px] tracking-[0.1px] leading-[22px]': this.type === 'label' && this.token === 'xl',\n\t\t\t'font-medium text-[14px] tracking-[0.1px] leading-[20px]': this.type === 'label' && this.token === 'lg',\n\t\t\t'text-[12px] tracking-[0.5px] leading-[16px]': this.type === 'label' && this.token === 'md',\n\t\t\t'text-[11px] tracking-[0.5px] leading-[16px]': this.type === 'label' && this.token === 'sm',\n\t\t\t'text-[10px] tracking-[0.5px] leading-[14px]': this.type === 'label' && this.token === 'xs',\n\n\t\t\t// Caption\n\t\t\t'text-[12px] tracking-[0.3px] leading-[16px]': this.type === 'caption' && this.token === 'lg',\n\t\t\t'text-[11px] tracking-[0.4px] leading-[16px]': this.type === 'caption' && this.token === 'md',\n\t\t\t'text-[10px] tracking-[0.4px] leading-[13px]': this.type === 'caption' && this.token === 'sm',\n\t\t\t'text-[9px] tracking-[0.4px] leading-[12px]': this.type === 'caption' && this.token === 'xs',\n\n\t\t\t'font-bold': this.weight === 'bold',\n\t\t\t'font-medium': this.weight === 'medium',\n\t\t\t'font-normal': this.weight === 'normal',\n\n\t\t\tuppercase: this.transform === 'uppercase',\n\t\t\tlowercase: this.transform === 'lowercase',\n\t\t\tcapitalize: this.transform === 'capitalize',\n\t\t}\n\n\t\tconst styles = {\n\t\t\tletterSpacing: this.letterSpacing,\n\t\t\tfontSize: this.fontSize,\n\t\t\tlineHeight: this.lineHeight,\n\t\t}\n\n\t\t// Use div for layout containers, span for inline text\n\t\tif (isLayoutContainer) {\n\t\t\treturn html`\n\t\t\t\t<div style=${this.styleMap(styles)} class=${this.classMap(classes)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t`\n\t\t} else {\n\t\t\treturn html`\n\t\t\t\t<span style=${this.styleMap(styles)} class=${this.classMap(classes)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</span>\n\t\t\t`\n\t\t}\n\t}\n}\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}\n"],"names":["SchmancyTypography","TailwindElement","super","arguments","this","token","hasFlexClass","classList","contains","hasGridClass","hasInlineFlexClass","hasInlineGridClass","isLayoutContainer","layoutClasses","forEach","className","startsWith","push","classes","reduce","acc","cls","align","maxLines","type","weight","uppercase","transform","lowercase","capitalize","styles","letterSpacing","fontSize","lineHeight","html","styleMap","classMap","__decorateClass","property","String","reflect","prototype","Number","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-DaN7dGA2.cjs");Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>e.SchmancyTypography});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-BLJPXhuT.cjs");Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>e.SchmancyTypography});
2
2
  //# sourceMappingURL=typography.cjs.map
@@ -1,4 +1,4 @@
1
- import { S as p } from "./typography-XkeTnrP9.js";
1
+ import { S as p } from "./typography-izBBu-t8.js";
2
2
  export {
3
3
  p as SchmancyTypography
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhmo91/schmancy",
3
- "version": "0.2.199",
3
+ "version": "0.2.200",
4
4
  "description": "UI library build with web components",
5
5
  "main": "./dist/index.js",
6
6
  "packageManager": "yarn@4.6.0",
@@ -64,6 +64,7 @@
64
64
  "cleave.js": "^1.6.0",
65
65
  "dayjs": "^1.11.13",
66
66
  "fastest-levenshtein": "^1.0.16",
67
+ "highlight.js": "^11.11.1",
67
68
  "immer": "^10.1.1",
68
69
  "lit": "^3.3.0",
69
70
  "playground-elements": "^0.20.0",
@@ -0,0 +1,39 @@
1
+ declare const SchmancyCode_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
+ /**
3
+ * @element schmancy-code
4
+ * Code highlighting component using highlight.js with Schmancy dark theme
5
+ */
6
+ export declare class SchmancyCode extends SchmancyCode_base {
7
+ /**
8
+ * Programming language for syntax highlighting
9
+ */
10
+ language: string;
11
+ /**
12
+ * Code content to highlight
13
+ */
14
+ code: string;
15
+ /**
16
+ * Optional filename or title to display in header
17
+ */
18
+ filename?: string;
19
+ /**
20
+ * Show line numbers
21
+ */
22
+ lineNumbers: boolean;
23
+ /**
24
+ * Show copy button
25
+ */
26
+ copyButton: boolean;
27
+ private copied;
28
+ private get highlightedCode();
29
+ private addLineNumbers;
30
+ private copyCode;
31
+ private getLanguageLabel;
32
+ render(): import("lit-html").TemplateResult<1>;
33
+ }
34
+ declare global {
35
+ interface HTMLElementTagNameMap {
36
+ 'schmancy-code': SchmancyCode;
37
+ }
38
+ }
39
+ export {};
@@ -0,0 +1,25 @@
1
+ declare const SchmancyCodePreview_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
+ /**
3
+ * @element schmancy-code-preview
4
+ * A component that shows code and its rendered preview side by side
5
+ * Takes the content as a slot and displays both the source and rendered result
6
+ */
7
+ export declare class SchmancyCodePreview extends SchmancyCodePreview_base {
8
+ /**
9
+ * Programming language for syntax highlighting
10
+ */
11
+ language: string;
12
+ /**
13
+ * Show code on top or side-by-side
14
+ */
15
+ layout: 'vertical' | 'horizontal';
16
+ private slotContent;
17
+ connectedCallback(): void;
18
+ render(): import("lit-html").TemplateResult<1>;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'schmancy-code-preview': SchmancyCodePreview;
23
+ }
24
+ }
25
+ export {};
@@ -0,0 +1,3 @@
1
+ export { SchmancyCode } from './code-highlight';
2
+ export { SchmancyCode as SchmancyCodeHighlight } from './code-highlight';
3
+ export { SchmancyCodePreview } from './code-preview';
@@ -1,4 +1,4 @@
1
- declare const SchmancyIcon_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
1
+ declare const SchmancyIcon_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
2
  /**
3
3
  * @element schmancy-icon
4
4
  * Material Symbols icon component with configurable size