@mhmo91/schmancy 0.9.3 → 0.9.5

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 (583) hide show
  1. package/.claude-plugin/plugin.json +13 -0
  2. package/README.md +14 -4
  3. package/dist/.claude-plugin/plugin.json +13 -0
  4. package/dist/{area-CC8fUnra.js → area-CRoGqD_u.js} +2 -2
  5. package/dist/area-CRoGqD_u.js.map +1 -0
  6. package/dist/{area-wnWUAHEn.cjs → area-JPykB7A9.cjs} +1 -1
  7. package/dist/area-JPykB7A9.cjs.map +1 -0
  8. package/dist/area.cjs +1 -1
  9. package/dist/area.js +1 -1
  10. package/dist/{autocomplete-B2Z3WK_7.cjs → autocomplete-5rVhbieU.cjs} +1 -1
  11. package/dist/{autocomplete-B2Z3WK_7.cjs.map → autocomplete-5rVhbieU.cjs.map} +1 -1
  12. package/dist/{autocomplete-CJ7YgtKN.js → autocomplete-BllPQwr8.js} +3 -3
  13. package/dist/{autocomplete-CJ7YgtKN.js.map → autocomplete-BllPQwr8.js.map} +1 -1
  14. package/dist/autocomplete.cjs +1 -1
  15. package/dist/autocomplete.js +1 -1
  16. package/dist/badge.cjs +1 -1
  17. package/dist/badge.js +1 -1
  18. package/dist/{boat-C9eU6NO-.js → boat-BDTQ-du9.js} +2 -2
  19. package/dist/{boat-C9eU6NO-.js.map → boat-BDTQ-du9.js.map} +1 -1
  20. package/dist/{boat-B57_4TzJ.cjs → boat-DYEAZ8Qj.cjs} +1 -1
  21. package/dist/{boat-B57_4TzJ.cjs.map → boat-DYEAZ8Qj.cjs.map} +1 -1
  22. package/dist/boat.cjs +1 -1
  23. package/dist/boat.js +1 -1
  24. package/dist/{busy-CGZXy0h-.js → busy-ChDAeaKF.js} +1 -1
  25. package/dist/{busy-CGZXy0h-.js.map → busy-ChDAeaKF.js.map} +1 -1
  26. package/dist/{busy--6oimtop.cjs → busy-Dj7Xn0Z0.cjs} +1 -1
  27. package/dist/{busy--6oimtop.cjs.map → busy-Dj7Xn0Z0.cjs.map} +1 -1
  28. package/dist/busy.cjs +1 -1
  29. package/dist/busy.js +1 -1
  30. package/dist/button.cjs +1 -1
  31. package/dist/button.js +2 -2
  32. package/dist/{card-BGJ0Hb1O.cjs → card-BvPWVEJX.cjs} +1 -1
  33. package/dist/{card-BGJ0Hb1O.cjs.map → card-BvPWVEJX.cjs.map} +1 -1
  34. package/dist/{card-C-ee-l5O.js → card-DZFPRPqs.js} +1 -1
  35. package/dist/{card-C-ee-l5O.js.map → card-DZFPRPqs.js.map} +1 -1
  36. package/dist/card.cjs +1 -1
  37. package/dist/card.js +1 -1
  38. package/dist/charts.cjs +1 -1
  39. package/dist/charts.js +2 -2
  40. package/dist/{checkbox-DuYaKoDZ.cjs → checkbox-BC_37rsG.cjs} +1 -1
  41. package/dist/{checkbox-DuYaKoDZ.cjs.map → checkbox-BC_37rsG.cjs.map} +1 -1
  42. package/dist/{checkbox-FRcorDrD.js → checkbox-GSSjqo6w.js} +1 -1
  43. package/dist/{checkbox-FRcorDrD.js.map → checkbox-GSSjqo6w.js.map} +1 -1
  44. package/dist/checkbox.cjs +1 -1
  45. package/dist/checkbox.js +1 -1
  46. package/dist/{chips-BpA0A-qr.cjs → chips-B19XS8Xc.cjs} +1 -1
  47. package/dist/{chips-BpA0A-qr.cjs.map → chips-B19XS8Xc.cjs.map} +1 -1
  48. package/dist/{chips-CyzNbKJD.js → chips-B9oAEfE_.js} +3 -3
  49. package/dist/{chips-CyzNbKJD.js.map → chips-B9oAEfE_.js.map} +1 -1
  50. package/dist/chips.cjs +1 -1
  51. package/dist/chips.js +2 -2
  52. package/dist/{code-highlight-C7O9ltXm.js → code-highlight-DCk5lJY-.js} +1 -1
  53. package/dist/{code-highlight-C7O9ltXm.js.map → code-highlight-DCk5lJY-.js.map} +1 -1
  54. package/dist/{code-highlight-DsBdSQBG.cjs → code-highlight-fSLrlgOb.cjs} +1 -1
  55. package/dist/{code-highlight-DsBdSQBG.cjs.map → code-highlight-fSLrlgOb.cjs.map} +1 -1
  56. package/dist/code-highlight.cjs +1 -1
  57. package/dist/code-highlight.js +1 -1
  58. package/dist/{components-CkMvOiTR.js → components-COsM6sJZ.js} +2 -2
  59. package/dist/{components-CkMvOiTR.js.map → components-COsM6sJZ.js.map} +1 -1
  60. package/dist/{components-dDI3xeIf.cjs → components-CyD6a7gQ.cjs} +1 -1
  61. package/dist/{components-dDI3xeIf.cjs.map → components-CyD6a7gQ.cjs.map} +1 -1
  62. package/dist/components.cjs +1 -1
  63. package/dist/components.js +1 -1
  64. package/dist/connectivity.cjs +1 -1
  65. package/dist/connectivity.js +1 -1
  66. package/dist/content-drawer.cjs +1 -1
  67. package/dist/content-drawer.js +1 -1
  68. package/dist/{date-range-BrN_Bs6_.js → date-range-Sfyco9-n.js} +3 -3
  69. package/dist/{date-range-BrN_Bs6_.js.map → date-range-Sfyco9-n.js.map} +1 -1
  70. package/dist/{date-range-70zhLUKE.cjs → date-range-ZAaQB22I.cjs} +1 -1
  71. package/dist/{date-range-70zhLUKE.cjs.map → date-range-ZAaQB22I.cjs.map} +1 -1
  72. package/dist/{date-range-inline-Cp294DxR.js → date-range-inline-Bl8qbiQF.js} +1 -1
  73. package/dist/{date-range-inline-Cp294DxR.js.map → date-range-inline-Bl8qbiQF.js.map} +1 -1
  74. package/dist/{date-range-inline-CPzD-tIv.cjs → date-range-inline-m7nLjOMI.cjs} +1 -1
  75. package/dist/{date-range-inline-CPzD-tIv.cjs.map → date-range-inline-m7nLjOMI.cjs.map} +1 -1
  76. package/dist/date-range-inline.cjs +1 -1
  77. package/dist/date-range-inline.js +1 -1
  78. package/dist/date-range.cjs +1 -1
  79. package/dist/date-range.js +1 -1
  80. package/dist/{delay-COcAkBqB.cjs → delay-7boauN6N.cjs} +1 -1
  81. package/dist/{delay-COcAkBqB.cjs.map → delay-7boauN6N.cjs.map} +1 -1
  82. package/dist/{delay-IV0Swce2.js → delay-CgX6m0HN.js} +3 -3
  83. package/dist/{delay-IV0Swce2.js.map → delay-CgX6m0HN.js.map} +1 -1
  84. package/dist/delay.cjs +1 -1
  85. package/dist/delay.js +1 -1
  86. package/dist/{details-DgWkPqmt.cjs → details-BHnk8l4q.cjs} +1 -1
  87. package/dist/{details-DgWkPqmt.cjs.map → details-BHnk8l4q.cjs.map} +1 -1
  88. package/dist/{details-CuKmr3Qw.js → details-BPkUg8Cq.js} +2 -2
  89. package/dist/{details-CuKmr3Qw.js.map → details-BPkUg8Cq.js.map} +1 -1
  90. package/dist/details.cjs +1 -1
  91. package/dist/details.js +1 -1
  92. package/dist/dialog.cjs +1 -1
  93. package/dist/dialog.js +2 -2
  94. package/dist/directives.cjs.map +1 -1
  95. package/dist/directives.js.map +1 -1
  96. package/dist/discovery.cjs.map +1 -1
  97. package/dist/discovery.js.map +1 -1
  98. package/dist/{divider-BWoUbfgZ.js → divider-CW9a7MMj.js} +2 -2
  99. package/dist/{divider-BWoUbfgZ.js.map → divider-CW9a7MMj.js.map} +1 -1
  100. package/dist/{divider-BghtrMbn.cjs → divider-_khrhrZo.cjs} +1 -1
  101. package/dist/{divider-BghtrMbn.cjs.map → divider-_khrhrZo.cjs.map} +1 -1
  102. package/dist/divider.cjs +1 -1
  103. package/dist/divider.js +1 -1
  104. package/dist/dropdown.cjs +1 -1
  105. package/dist/dropdown.js +2 -2
  106. package/dist/{expand-XyDE5SsO.cjs → expand-Cp7-PH8b.cjs} +1 -1
  107. package/dist/{expand-XyDE5SsO.cjs.map → expand-Cp7-PH8b.cjs.map} +1 -1
  108. package/dist/{expand-CJU9m4ga.js → expand-iQ7EOMP7.js} +3 -3
  109. package/dist/{expand-CJU9m4ga.js.map → expand-iQ7EOMP7.js.map} +1 -1
  110. package/dist/expand.cjs +1 -1
  111. package/dist/expand.js +1 -1
  112. package/dist/{extra-CsrRKKqE.cjs → extra-IKAiJJhv.cjs} +1 -1
  113. package/dist/{extra-CsrRKKqE.cjs.map → extra-IKAiJJhv.cjs.map} +1 -1
  114. package/dist/{extra-BxXFmW1w.js → extra-wEpvEFbK.js} +2 -2
  115. package/dist/{extra-BxXFmW1w.js.map → extra-wEpvEFbK.js.map} +1 -1
  116. package/dist/extra.cjs +1 -1
  117. package/dist/extra.js +1 -1
  118. package/dist/{float-BD86t_NU.js → float-BQ_urmMs.js} +2 -2
  119. package/dist/{float-BD86t_NU.js.map → float-BQ_urmMs.js.map} +1 -1
  120. package/dist/{float-DBv1FINW.cjs → float-D5rNC82i.cjs} +1 -1
  121. package/dist/{float-DBv1FINW.cjs.map → float-D5rNC82i.cjs.map} +1 -1
  122. package/dist/float.cjs +1 -1
  123. package/dist/float.js +1 -1
  124. package/dist/{form-D0bIeDWT.cjs → form-BqN1AGFj.cjs} +1 -1
  125. package/dist/{form-D0bIeDWT.cjs.map → form-BqN1AGFj.cjs.map} +1 -1
  126. package/dist/{form-Cp5-I_ZV.js → form-CajC5HnO.js} +1 -1
  127. package/dist/{form-Cp5-I_ZV.js.map → form-CajC5HnO.js.map} +1 -1
  128. package/dist/form.cjs +1 -1
  129. package/dist/form.js +1 -1
  130. package/dist/{icons-D8w_20mO.cjs → icons-B57_93VV.cjs} +1 -1
  131. package/dist/{icons-D8w_20mO.cjs.map → icons-B57_93VV.cjs.map} +1 -1
  132. package/dist/{icons-BpU0_l92.js → icons-BDqiGXrO.js} +1 -1
  133. package/dist/{icons-BpU0_l92.js.map → icons-BDqiGXrO.js.map} +1 -1
  134. package/dist/icons.cjs +1 -1
  135. package/dist/icons.js +1 -1
  136. package/dist/{iframe-BjwxA2Pg.cjs → iframe-DNHL3GIk.cjs} +1 -1
  137. package/dist/{iframe-BjwxA2Pg.cjs.map → iframe-DNHL3GIk.cjs.map} +1 -1
  138. package/dist/{iframe-tY1GY5g1.js → iframe-WnWPIrBG.js} +1 -1
  139. package/dist/{iframe-tY1GY5g1.js.map → iframe-WnWPIrBG.js.map} +1 -1
  140. package/dist/iframe.cjs +1 -1
  141. package/dist/iframe.js +1 -1
  142. package/dist/index.cjs +1 -1
  143. package/dist/index.js +33 -33
  144. package/dist/{input-BwxwognS.cjs → input-BiSrTcrR.cjs} +1 -1
  145. package/dist/{input-BwxwognS.cjs.map → input-BiSrTcrR.cjs.map} +1 -1
  146. package/dist/{input-BnfTpRN9.js → input-VaXHFrRn.js} +1 -1
  147. package/dist/{input-BnfTpRN9.js.map → input-VaXHFrRn.js.map} +1 -1
  148. package/dist/{input-chip-MjOwX5EY.cjs → input-chip-Dy-AiP55.cjs} +1 -1
  149. package/dist/{input-chip-MjOwX5EY.cjs.map → input-chip-Dy-AiP55.cjs.map} +1 -1
  150. package/dist/{input-chip-CkM2aYmO.js → input-chip-QejNcRnS.js} +1 -1
  151. package/dist/{input-chip-CkM2aYmO.js.map → input-chip-QejNcRnS.js.map} +1 -1
  152. package/dist/input.cjs +1 -1
  153. package/dist/input.js +1 -1
  154. package/dist/json.cjs +1 -1
  155. package/dist/json.js +2 -2
  156. package/dist/{layout-CJSlZlFL.js → layout-CnsXeCAy.js} +2 -2
  157. package/dist/{layout-CJSlZlFL.js.map → layout-CnsXeCAy.js.map} +1 -1
  158. package/dist/{layout-BV0EeyUS.cjs → layout-DNYG3phx.cjs} +1 -1
  159. package/dist/{layout-BV0EeyUS.cjs.map → layout-DNYG3phx.cjs.map} +1 -1
  160. package/dist/layout.cjs +1 -1
  161. package/dist/layout.js +2 -2
  162. package/dist/{lightbox-groqGmJH.js → lightbox-BrI1Z31s.js} +2 -2
  163. package/dist/{lightbox-groqGmJH.js.map → lightbox-BrI1Z31s.js.map} +1 -1
  164. package/dist/{lightbox-CpNMZHZW.cjs → lightbox-CmACf0t5.cjs} +1 -1
  165. package/dist/{lightbox-CpNMZHZW.cjs.map → lightbox-CmACf0t5.cjs.map} +1 -1
  166. package/dist/lightbox.cjs +1 -1
  167. package/dist/lightbox.js +1 -1
  168. package/dist/{list-DzkqT_r-.js → list-Cm-jjXxM.js} +2 -2
  169. package/dist/{list-DzkqT_r-.js.map → list-Cm-jjXxM.js.map} +1 -1
  170. package/dist/{list-CyHd0Zc2.cjs → list-swIL9VDv.cjs} +1 -1
  171. package/dist/{list-CyHd0Zc2.cjs.map → list-swIL9VDv.cjs.map} +1 -1
  172. package/dist/list.cjs +1 -1
  173. package/dist/list.js +1 -1
  174. package/dist/{litElement.mixin-BG6_-nYX.cjs → litElement.mixin-3llHwB-8.cjs} +1 -1
  175. package/dist/{litElement.mixin-BG6_-nYX.cjs.map → litElement.mixin-3llHwB-8.cjs.map} +1 -1
  176. package/dist/{litElement.mixin-Dm-4L8zL.js → litElement.mixin-6jJYHCrZ.js} +1 -1
  177. package/dist/{litElement.mixin-Dm-4L8zL.js.map → litElement.mixin-6jJYHCrZ.js.map} +1 -1
  178. package/dist/{mailbox-BcqnXYVP.js → mailbox-BuvsVaAQ.js} +4 -4
  179. package/dist/{mailbox-BcqnXYVP.js.map → mailbox-BuvsVaAQ.js.map} +1 -1
  180. package/dist/{mailbox-C5eYTd7p.cjs → mailbox-D6LkQcN5.cjs} +1 -1
  181. package/dist/{mailbox-C5eYTd7p.cjs.map → mailbox-D6LkQcN5.cjs.map} +1 -1
  182. package/dist/mailbox.cjs +1 -1
  183. package/dist/mailbox.js +1 -1
  184. package/dist/{map-C0o1PgLE.js → map-CQiKAxC3.js} +1 -1
  185. package/dist/{map-C0o1PgLE.js.map → map-CQiKAxC3.js.map} +1 -1
  186. package/dist/{map-BncheFt5.cjs → map-D5NN4VET.cjs} +1 -1
  187. package/dist/{map-BncheFt5.cjs.map → map-D5NN4VET.cjs.map} +1 -1
  188. package/dist/map.cjs +1 -1
  189. package/dist/map.js +1 -1
  190. package/dist/{menu-uwqlQbLd.js → menu-C1x04YZw.js} +2 -2
  191. package/dist/{menu-uwqlQbLd.js.map → menu-C1x04YZw.js.map} +1 -1
  192. package/dist/{menu-yXzwJZFf.cjs → menu-CkgMO9K5.cjs} +1 -1
  193. package/dist/{menu-yXzwJZFf.cjs.map → menu-CkgMO9K5.cjs.map} +1 -1
  194. package/dist/menu.cjs +1 -1
  195. package/dist/menu.js +1 -1
  196. package/dist/mixins.cjs +1 -1
  197. package/dist/mixins.js +3 -3
  198. package/dist/nav-drawer.cjs +1 -1
  199. package/dist/nav-drawer.js +1 -1
  200. package/dist/navigation-bar.cjs +1 -1
  201. package/dist/navigation-bar.js +1 -1
  202. package/dist/navigation-rail.cjs +1 -1
  203. package/dist/navigation-rail.js +2 -2
  204. package/dist/{notification-DzYT4deA.js → notification-BnBgxjF-.js} +3 -3
  205. package/dist/{notification-DzYT4deA.js.map → notification-BnBgxjF-.js.map} +1 -1
  206. package/dist/{notification-BjwTfLAl.cjs → notification-CZFEhWxc.cjs} +1 -1
  207. package/dist/{notification-BjwTfLAl.cjs.map → notification-CZFEhWxc.cjs.map} +1 -1
  208. package/dist/notification.cjs +1 -1
  209. package/dist/notification.js +1 -1
  210. package/dist/{option-BJsD3u2D.cjs → option-BrxCVwSx.cjs} +1 -1
  211. package/dist/{option-BJsD3u2D.cjs.map → option-BrxCVwSx.cjs.map} +1 -1
  212. package/dist/{option-JFHxgiYl.js → option-DBO8xZwd.js} +1 -1
  213. package/dist/{option-JFHxgiYl.js.map → option-DBO8xZwd.js.map} +1 -1
  214. package/dist/option.cjs +1 -1
  215. package/dist/option.js +1 -1
  216. package/dist/page.cjs +1 -1
  217. package/dist/page.js +3 -3
  218. package/dist/{progress-BoRmyGAa.cjs → progress-Db2e4_Zd.cjs} +1 -1
  219. package/dist/{progress-BoRmyGAa.cjs.map → progress-Db2e4_Zd.cjs.map} +1 -1
  220. package/dist/{progress-BUh5WBqx.js → progress-DeiHxXo7.js} +2 -2
  221. package/dist/{progress-BUh5WBqx.js.map → progress-DeiHxXo7.js.map} +1 -1
  222. package/dist/progress.cjs +1 -1
  223. package/dist/progress.js +1 -1
  224. package/dist/{provide-8MrDz_qX.js → provide-C1aQhxYo.js} +1 -1
  225. package/dist/{provide-8MrDz_qX.js.map → provide-C1aQhxYo.js.map} +1 -1
  226. package/dist/{provide-CDkxgjHb.cjs → provide-DHnhQtCH.cjs} +1 -1
  227. package/dist/{provide-CDkxgjHb.cjs.map → provide-DHnhQtCH.cjs.map} +1 -1
  228. package/dist/qr-scanner.cjs +1 -1
  229. package/dist/qr-scanner.js +2 -2
  230. package/dist/{radio-group-rhrvhB5X.cjs → radio-group-Cspwd-Vw.cjs} +1 -1
  231. package/dist/{radio-group-rhrvhB5X.cjs.map → radio-group-Cspwd-Vw.cjs.map} +1 -1
  232. package/dist/{radio-group-DbOWUPhi.js → radio-group-zSO0AkJf.js} +1 -1
  233. package/dist/{radio-group-DbOWUPhi.js.map → radio-group-zSO0AkJf.js.map} +1 -1
  234. package/dist/radio-group.cjs +1 -1
  235. package/dist/radio-group.js +1 -1
  236. package/dist/range.cjs +1 -1
  237. package/dist/range.js +1 -1
  238. package/dist/{scroll-BE9W9PF2.cjs → scroll-QMCmbbDv.cjs} +1 -1
  239. package/dist/{scroll-BE9W9PF2.cjs.map → scroll-QMCmbbDv.cjs.map} +1 -1
  240. package/dist/{scroll-qGks1R0k.js → scroll-cBDzye64.js} +1 -1
  241. package/dist/{scroll-qGks1R0k.js.map → scroll-cBDzye64.js.map} +1 -1
  242. package/dist/{select-DXU2kzg4.cjs → select-Ct37l3lg.cjs} +1 -1
  243. package/dist/{select-DXU2kzg4.cjs.map → select-Ct37l3lg.cjs.map} +1 -1
  244. package/dist/{select-D9sgBRjU.js → select-c6HbWvKP.js} +2 -2
  245. package/dist/{select-D9sgBRjU.js.map → select-c6HbWvKP.js.map} +1 -1
  246. package/dist/select.cjs +1 -1
  247. package/dist/select.js +1 -1
  248. package/dist/{sheet-CIxCCJ3H.js → sheet-BMXcUiIm.js} +4 -4
  249. package/dist/{sheet-CIxCCJ3H.js.map → sheet-BMXcUiIm.js.map} +1 -1
  250. package/dist/{sheet-CeX6BbNp.cjs → sheet-CQec-bCV.cjs} +1 -1
  251. package/dist/{sheet-CeX6BbNp.cjs.map → sheet-CQec-bCV.cjs.map} +1 -1
  252. package/dist/sheet.cjs +1 -1
  253. package/dist/sheet.js +2 -2
  254. package/dist/{sheet.service-CAB7weBc.js → sheet.service-BcPV3Du4.js} +1 -1
  255. package/dist/{sheet.service-CAB7weBc.js.map → sheet.service-BcPV3Du4.js.map} +1 -1
  256. package/dist/{sheet.service-DPAp7E3x.cjs → sheet.service-Dumvr1HT.cjs} +1 -1
  257. package/dist/{sheet.service-DPAp7E3x.cjs.map → sheet.service-Dumvr1HT.cjs.map} +1 -1
  258. package/dist/skills/INDEX.md +72 -0
  259. package/dist/skills/SKILL.md +120 -0
  260. package/dist/skills/area.md +141 -0
  261. package/{ai → dist/skills}/mailbox.md +1 -1
  262. package/dist/skills/mixins.md +99 -0
  263. package/dist/skills/schmancy/INDEX.md +72 -0
  264. package/dist/skills/schmancy/SKILL.md +120 -0
  265. package/dist/skills/schmancy/area.md +141 -0
  266. package/dist/{ai → skills/schmancy}/mailbox.md +1 -1
  267. package/dist/skills/schmancy/mixins.md +99 -0
  268. package/dist/skills/schmancy/store.md +126 -0
  269. package/dist/skills/store.md +126 -0
  270. package/dist/slider.cjs +1 -1
  271. package/dist/slider.js +2 -2
  272. package/dist/{src-CbO5kJ2O.js → src-BLngW2bl.js} +42 -42
  273. package/dist/{src-CbO5kJ2O.js.map → src-BLngW2bl.js.map} +1 -1
  274. package/dist/{src-SraDxEeg.cjs → src-BtQVyqMy.cjs} +1 -1
  275. package/dist/{src-SraDxEeg.cjs.map → src-BtQVyqMy.cjs.map} +1 -1
  276. package/dist/steps.cjs +1 -1
  277. package/dist/steps.js +3 -3
  278. package/dist/{surface-DuH0pm2v.cjs → surface-BjKZoJxK.cjs} +1 -1
  279. package/dist/{surface-DuH0pm2v.cjs.map → surface-BjKZoJxK.cjs.map} +1 -1
  280. package/dist/{surface-eN_Jy2MJ.js → surface-pK8hME5c.js} +3 -3
  281. package/dist/{surface-eN_Jy2MJ.js.map → surface-pK8hME5c.js.map} +1 -1
  282. package/dist/surface.cjs +1 -1
  283. package/dist/surface.js +1 -1
  284. package/dist/{surface.mixin-CIXgN6iw.cjs → surface.mixin-C5sDI1-_.cjs} +1 -1
  285. package/dist/{surface.mixin-CIXgN6iw.cjs.map → surface.mixin-C5sDI1-_.cjs.map} +1 -1
  286. package/dist/{surface.mixin-D9jv1sKG.js → surface.mixin-CBNRpJum.js} +1 -1
  287. package/dist/{surface.mixin-D9jv1sKG.js.map → surface.mixin-CBNRpJum.js.map} +1 -1
  288. package/dist/{table-Dg_tUGB_.js → table-BXIHX9h4.js} +2 -2
  289. package/dist/{table-Dg_tUGB_.js.map → table-BXIHX9h4.js.map} +1 -1
  290. package/dist/{table-C9rRQJEB.cjs → table-CiqgZzSd.cjs} +1 -1
  291. package/dist/{table-C9rRQJEB.cjs.map → table-CiqgZzSd.cjs.map} +1 -1
  292. package/dist/table.cjs +1 -1
  293. package/dist/table.js +1 -1
  294. package/dist/{tabs-soTL-x4G.cjs → tabs-CKa-W4qA.cjs} +1 -1
  295. package/dist/{tabs-soTL-x4G.cjs.map → tabs-CKa-W4qA.cjs.map} +1 -1
  296. package/dist/{tabs-BbFC9omR.js → tabs-nbV5eblZ.js} +2 -2
  297. package/dist/{tabs-BbFC9omR.js.map → tabs-nbV5eblZ.js.map} +1 -1
  298. package/dist/tabs.cjs +1 -1
  299. package/dist/tabs.js +1 -1
  300. package/dist/tailwind.mixin-BCJOOX1_.js +225 -0
  301. package/dist/tailwind.mixin-BCJOOX1_.js.map +1 -0
  302. package/dist/tailwind.mixin-BF1Huas7.cjs +2 -0
  303. package/dist/tailwind.mixin-BF1Huas7.cjs.map +1 -0
  304. package/dist/teleport.cjs +1 -1
  305. package/dist/teleport.js +1 -1
  306. package/dist/{textarea-DaRUJ0ri.cjs → textarea-Cp1ZE60O.cjs} +1 -1
  307. package/dist/{textarea-DaRUJ0ri.cjs.map → textarea-Cp1ZE60O.cjs.map} +1 -1
  308. package/dist/{textarea-hChvHbNM.js → textarea-D7q8exMg.js} +1 -1
  309. package/dist/{textarea-hChvHbNM.js.map → textarea-D7q8exMg.js.map} +1 -1
  310. package/dist/textarea.cjs +1 -1
  311. package/dist/textarea.js +1 -1
  312. package/dist/{theme-ZYH2MqX9.cjs → theme-Da4SPq9X.cjs} +1 -1
  313. package/dist/{theme-ZYH2MqX9.cjs.map → theme-Da4SPq9X.cjs.map} +1 -1
  314. package/dist/{theme-B0M8Hlyo.js → theme-_VPV6Bxh.js} +3 -3
  315. package/dist/{theme-B0M8Hlyo.js.map → theme-_VPV6Bxh.js.map} +1 -1
  316. package/dist/{theme-button-BtlX_Zgd.js → theme-button--sX8A-m1.js} +1 -1
  317. package/dist/{theme-button-BtlX_Zgd.js.map → theme-button--sX8A-m1.js.map} +1 -1
  318. package/dist/{theme-button-Dvqg-rE_.cjs → theme-button-Ci8VQ7KW.cjs} +1 -1
  319. package/dist/{theme-button-Dvqg-rE_.cjs.map → theme-button-Ci8VQ7KW.cjs.map} +1 -1
  320. package/dist/theme-button.cjs +1 -1
  321. package/dist/theme-button.js +1 -1
  322. package/dist/theme.cjs +1 -1
  323. package/dist/theme.js +2 -2
  324. package/dist/tooltip.cjs +1 -1
  325. package/dist/tooltip.js +1 -1
  326. package/dist/tree.cjs +1 -1
  327. package/dist/tree.js +1 -1
  328. package/dist/{typewriter-Cf9f2bdx.cjs → typewriter-B2TnHPjw.cjs} +1 -1
  329. package/dist/{typewriter-Cf9f2bdx.cjs.map → typewriter-B2TnHPjw.cjs.map} +1 -1
  330. package/dist/{typewriter-CCel8Nta.js → typewriter-BrZNa8T-.js} +3 -3
  331. package/dist/{typewriter-CCel8Nta.js.map → typewriter-BrZNa8T-.js.map} +1 -1
  332. package/dist/typewriter.cjs +1 -1
  333. package/dist/typewriter.js +1 -1
  334. package/dist/typography.cjs +1 -1
  335. package/dist/typography.js +1 -1
  336. package/dist/{window-CbgdwOZD.js → window-CM1ycigo.js} +2 -2
  337. package/dist/{window-CbgdwOZD.js.map → window-CM1ycigo.js.map} +1 -1
  338. package/dist/{window-B9_14c12.cjs → window-Uii13x_r.cjs} +1 -1
  339. package/dist/{window-B9_14c12.cjs.map → window-Uii13x_r.cjs.map} +1 -1
  340. package/dist/window.cjs +1 -1
  341. package/dist/window.js +1 -1
  342. package/mixins/baseElement.ts +1 -1
  343. package/mixins/discovery.service.ts +1 -1
  344. package/package.json +3 -4
  345. package/skills/schmancy/INDEX.md +72 -0
  346. package/skills/schmancy/SKILL.md +120 -0
  347. package/skills/schmancy/animation.md +64 -0
  348. package/skills/schmancy/area.md +141 -0
  349. package/skills/schmancy/audio.md +69 -0
  350. package/skills/schmancy/autocomplete.md +53 -0
  351. package/skills/schmancy/avatar.md +47 -0
  352. package/skills/schmancy/badge.md +41 -0
  353. package/skills/schmancy/boat.md +47 -0
  354. package/skills/schmancy/busy.md +36 -0
  355. package/skills/schmancy/button.md +59 -0
  356. package/skills/schmancy/card.md +53 -0
  357. package/skills/schmancy/charts.md +93 -0
  358. package/skills/schmancy/checkbox.md +36 -0
  359. package/skills/schmancy/chips.md +87 -0
  360. package/skills/schmancy/code-highlight.md +47 -0
  361. package/skills/schmancy/connectivity.md +36 -0
  362. package/skills/schmancy/content-drawer.md +65 -0
  363. package/skills/schmancy/date-range-inline.md +44 -0
  364. package/skills/schmancy/date-range.md +50 -0
  365. package/skills/schmancy/delay.md +50 -0
  366. package/skills/schmancy/details.md +66 -0
  367. package/skills/schmancy/dialog.md +69 -0
  368. package/skills/schmancy/directives.md +298 -0
  369. package/skills/schmancy/discovery.md +67 -0
  370. package/skills/schmancy/divider.md +31 -0
  371. package/skills/schmancy/dropdown.md +47 -0
  372. package/skills/schmancy/expand.md +63 -0
  373. package/skills/schmancy/extra.md +59 -0
  374. package/skills/schmancy/float.md +14 -0
  375. package/skills/schmancy/form.md +49 -0
  376. package/skills/schmancy/icons.md +44 -0
  377. package/skills/schmancy/iframe.md +44 -0
  378. package/skills/schmancy/input.md +56 -0
  379. package/skills/schmancy/json.md +33 -0
  380. package/skills/schmancy/layout.md +63 -0
  381. package/skills/schmancy/lightbox.md +36 -0
  382. package/skills/schmancy/list.md +67 -0
  383. package/skills/schmancy/mailbox.md +102 -0
  384. package/skills/schmancy/map.md +55 -0
  385. package/skills/schmancy/menu.md +39 -0
  386. package/skills/schmancy/mixins.md +99 -0
  387. package/skills/schmancy/nav-drawer.md +52 -0
  388. package/skills/schmancy/navigation-bar.md +48 -0
  389. package/skills/schmancy/navigation-rail.md +62 -0
  390. package/skills/schmancy/notification.md +60 -0
  391. package/skills/schmancy/option.md +43 -0
  392. package/skills/schmancy/page.md +42 -0
  393. package/skills/schmancy/progress.md +30 -0
  394. package/skills/schmancy/qr-scanner.md +51 -0
  395. package/skills/schmancy/radio-group.md +50 -0
  396. package/skills/schmancy/range.md +47 -0
  397. package/skills/schmancy/rxjs-utils.md +60 -0
  398. package/skills/schmancy/select.md +49 -0
  399. package/skills/schmancy/sheet.md +76 -0
  400. package/skills/schmancy/slider.md +43 -0
  401. package/skills/schmancy/steps.md +53 -0
  402. package/skills/schmancy/store.md +126 -0
  403. package/skills/schmancy/surface.md +86 -0
  404. package/skills/schmancy/table.md +60 -0
  405. package/skills/schmancy/tabs.md +49 -0
  406. package/skills/schmancy/teleport.md +55 -0
  407. package/skills/schmancy/textarea.md +48 -0
  408. package/skills/schmancy/theme-button.md +26 -0
  409. package/skills/schmancy/theme.md +58 -0
  410. package/skills/schmancy/tooltip.md +38 -0
  411. package/skills/schmancy/tree.md +53 -0
  412. package/skills/schmancy/typewriter.md +46 -0
  413. package/skills/schmancy/typography.md +53 -0
  414. package/skills/schmancy/utils.md +95 -0
  415. package/skills/schmancy/window.md +67 -0
  416. package/src/area/area.service.ts +1 -1
  417. package/src/area/router.types.ts +1 -1
  418. package/src/directives/animate-text.ts +1 -1
  419. package/src/discovery/discovery.service.ts +1 -1
  420. package/src/input/input.ts +1 -1
  421. package/src/mailbox/README.md +7 -10
  422. package/src/mailbox/types.ts +0 -1
  423. package/types/mixins/discovery.service.d.ts +1 -1
  424. package/types/src/discovery/discovery.service.d.ts +1 -1
  425. package/types/src/mailbox/types.d.ts +0 -1
  426. package/ai/INDEX.md +0 -321
  427. package/ai/area.md +0 -215
  428. package/ai/mixins.md +0 -201
  429. package/ai/store.md +0 -192
  430. package/dist/ai/INDEX.md +0 -321
  431. package/dist/ai/area.md +0 -215
  432. package/dist/ai/mixins.md +0 -201
  433. package/dist/ai/store.md +0 -192
  434. package/dist/area-CC8fUnra.js.map +0 -1
  435. package/dist/area-wnWUAHEn.cjs.map +0 -1
  436. package/dist/tailwind.mixin-BIVhjNvD.js +0 -225
  437. package/dist/tailwind.mixin-BIVhjNvD.js.map +0 -1
  438. package/dist/tailwind.mixin-DSuEu-y3.cjs +0 -2
  439. package/dist/tailwind.mixin-DSuEu-y3.cjs.map +0 -1
  440. package/src/area/readme.md +0 -338
  441. package/src/area/router-guide.md +0 -360
  442. package/src/autocomplete/README.md +0 -485
  443. package/src/content-drawer/readme.md +0 -709
  444. package/src/icons/readme.md +0 -37
  445. package/src/list/readme.md +0 -62
  446. package/src/radio-group/readme.md +0 -315
  447. package/src/select/README.md +0 -405
  448. package/src/tabs/Readme.md +0 -397
  449. package/src/teleport/readme.md +0 -91
  450. package/src/tree/README.md +0 -59
  451. package/src/typewriter/IMPROVEMENTS.md +0 -174
  452. package/src/typewriter/QUICK_REFERENCE.md +0 -166
  453. package/src/typewriter/test-typewriter.html +0 -97
  454. /package/{ai → dist/skills}/animation.md +0 -0
  455. /package/{ai → dist/skills}/audio.md +0 -0
  456. /package/{ai → dist/skills}/autocomplete.md +0 -0
  457. /package/{ai → dist/skills}/avatar.md +0 -0
  458. /package/{ai → dist/skills}/badge.md +0 -0
  459. /package/{ai → dist/skills}/boat.md +0 -0
  460. /package/{ai → dist/skills}/busy.md +0 -0
  461. /package/{ai → dist/skills}/button.md +0 -0
  462. /package/{ai → dist/skills}/card.md +0 -0
  463. /package/{ai → dist/skills}/charts.md +0 -0
  464. /package/{ai → dist/skills}/checkbox.md +0 -0
  465. /package/{ai → dist/skills}/chips.md +0 -0
  466. /package/{ai → dist/skills}/code-highlight.md +0 -0
  467. /package/{ai → dist/skills}/connectivity.md +0 -0
  468. /package/{ai → dist/skills}/content-drawer.md +0 -0
  469. /package/{ai → dist/skills}/date-range-inline.md +0 -0
  470. /package/{ai → dist/skills}/date-range.md +0 -0
  471. /package/{ai → dist/skills}/delay.md +0 -0
  472. /package/{ai → dist/skills}/details.md +0 -0
  473. /package/{ai → dist/skills}/dialog.md +0 -0
  474. /package/{ai → dist/skills}/directives.md +0 -0
  475. /package/{ai → dist/skills}/discovery.md +0 -0
  476. /package/{ai → dist/skills}/divider.md +0 -0
  477. /package/{ai → dist/skills}/dropdown.md +0 -0
  478. /package/{ai → dist/skills}/expand.md +0 -0
  479. /package/{ai → dist/skills}/extra.md +0 -0
  480. /package/{ai → dist/skills}/float.md +0 -0
  481. /package/{ai → dist/skills}/form.md +0 -0
  482. /package/{ai → dist/skills}/icons.md +0 -0
  483. /package/{ai → dist/skills}/iframe.md +0 -0
  484. /package/{ai → dist/skills}/input.md +0 -0
  485. /package/{ai → dist/skills}/json.md +0 -0
  486. /package/{ai → dist/skills}/layout.md +0 -0
  487. /package/{ai → dist/skills}/lightbox.md +0 -0
  488. /package/{ai → dist/skills}/list.md +0 -0
  489. /package/{ai → dist/skills}/map.md +0 -0
  490. /package/{ai → dist/skills}/menu.md +0 -0
  491. /package/{ai → dist/skills}/nav-drawer.md +0 -0
  492. /package/{ai → dist/skills}/navigation-bar.md +0 -0
  493. /package/{ai → dist/skills}/navigation-rail.md +0 -0
  494. /package/{ai → dist/skills}/notification.md +0 -0
  495. /package/{ai → dist/skills}/option.md +0 -0
  496. /package/{ai → dist/skills}/page.md +0 -0
  497. /package/{ai → dist/skills}/progress.md +0 -0
  498. /package/{ai → dist/skills}/qr-scanner.md +0 -0
  499. /package/{ai → dist/skills}/radio-group.md +0 -0
  500. /package/{ai → dist/skills}/range.md +0 -0
  501. /package/{ai → dist/skills}/rxjs-utils.md +0 -0
  502. /package/dist/{ai → skills/schmancy}/animation.md +0 -0
  503. /package/dist/{ai → skills/schmancy}/audio.md +0 -0
  504. /package/dist/{ai → skills/schmancy}/autocomplete.md +0 -0
  505. /package/dist/{ai → skills/schmancy}/avatar.md +0 -0
  506. /package/dist/{ai → skills/schmancy}/badge.md +0 -0
  507. /package/dist/{ai → skills/schmancy}/boat.md +0 -0
  508. /package/dist/{ai → skills/schmancy}/busy.md +0 -0
  509. /package/dist/{ai → skills/schmancy}/button.md +0 -0
  510. /package/dist/{ai → skills/schmancy}/card.md +0 -0
  511. /package/dist/{ai → skills/schmancy}/charts.md +0 -0
  512. /package/dist/{ai → skills/schmancy}/checkbox.md +0 -0
  513. /package/dist/{ai → skills/schmancy}/chips.md +0 -0
  514. /package/dist/{ai → skills/schmancy}/code-highlight.md +0 -0
  515. /package/dist/{ai → skills/schmancy}/connectivity.md +0 -0
  516. /package/dist/{ai → skills/schmancy}/content-drawer.md +0 -0
  517. /package/dist/{ai → skills/schmancy}/date-range-inline.md +0 -0
  518. /package/dist/{ai → skills/schmancy}/date-range.md +0 -0
  519. /package/dist/{ai → skills/schmancy}/delay.md +0 -0
  520. /package/dist/{ai → skills/schmancy}/details.md +0 -0
  521. /package/dist/{ai → skills/schmancy}/dialog.md +0 -0
  522. /package/dist/{ai → skills/schmancy}/directives.md +0 -0
  523. /package/dist/{ai → skills/schmancy}/discovery.md +0 -0
  524. /package/dist/{ai → skills/schmancy}/divider.md +0 -0
  525. /package/dist/{ai → skills/schmancy}/dropdown.md +0 -0
  526. /package/dist/{ai → skills/schmancy}/expand.md +0 -0
  527. /package/dist/{ai → skills/schmancy}/extra.md +0 -0
  528. /package/dist/{ai → skills/schmancy}/float.md +0 -0
  529. /package/dist/{ai → skills/schmancy}/form.md +0 -0
  530. /package/dist/{ai → skills/schmancy}/icons.md +0 -0
  531. /package/dist/{ai → skills/schmancy}/iframe.md +0 -0
  532. /package/dist/{ai → skills/schmancy}/input.md +0 -0
  533. /package/dist/{ai → skills/schmancy}/json.md +0 -0
  534. /package/dist/{ai → skills/schmancy}/layout.md +0 -0
  535. /package/dist/{ai → skills/schmancy}/lightbox.md +0 -0
  536. /package/dist/{ai → skills/schmancy}/list.md +0 -0
  537. /package/dist/{ai → skills/schmancy}/map.md +0 -0
  538. /package/dist/{ai → skills/schmancy}/menu.md +0 -0
  539. /package/dist/{ai → skills/schmancy}/nav-drawer.md +0 -0
  540. /package/dist/{ai → skills/schmancy}/navigation-bar.md +0 -0
  541. /package/dist/{ai → skills/schmancy}/navigation-rail.md +0 -0
  542. /package/dist/{ai → skills/schmancy}/notification.md +0 -0
  543. /package/dist/{ai → skills/schmancy}/option.md +0 -0
  544. /package/dist/{ai → skills/schmancy}/page.md +0 -0
  545. /package/dist/{ai → skills/schmancy}/progress.md +0 -0
  546. /package/dist/{ai → skills/schmancy}/qr-scanner.md +0 -0
  547. /package/dist/{ai → skills/schmancy}/radio-group.md +0 -0
  548. /package/dist/{ai → skills/schmancy}/range.md +0 -0
  549. /package/dist/{ai → skills/schmancy}/rxjs-utils.md +0 -0
  550. /package/{ai → dist/skills/schmancy}/select.md +0 -0
  551. /package/{ai → dist/skills/schmancy}/sheet.md +0 -0
  552. /package/{ai → dist/skills/schmancy}/slider.md +0 -0
  553. /package/{ai → dist/skills/schmancy}/steps.md +0 -0
  554. /package/{ai → dist/skills/schmancy}/surface.md +0 -0
  555. /package/{ai → dist/skills/schmancy}/table.md +0 -0
  556. /package/{ai → dist/skills/schmancy}/tabs.md +0 -0
  557. /package/{ai → dist/skills/schmancy}/teleport.md +0 -0
  558. /package/{ai → dist/skills/schmancy}/textarea.md +0 -0
  559. /package/{ai → dist/skills/schmancy}/theme-button.md +0 -0
  560. /package/{ai → dist/skills/schmancy}/theme.md +0 -0
  561. /package/{ai → dist/skills/schmancy}/tooltip.md +0 -0
  562. /package/{ai → dist/skills/schmancy}/tree.md +0 -0
  563. /package/{ai → dist/skills/schmancy}/typewriter.md +0 -0
  564. /package/{ai → dist/skills/schmancy}/typography.md +0 -0
  565. /package/{ai → dist/skills/schmancy}/utils.md +0 -0
  566. /package/{ai → dist/skills/schmancy}/window.md +0 -0
  567. /package/dist/{ai → skills}/select.md +0 -0
  568. /package/dist/{ai → skills}/sheet.md +0 -0
  569. /package/dist/{ai → skills}/slider.md +0 -0
  570. /package/dist/{ai → skills}/steps.md +0 -0
  571. /package/dist/{ai → skills}/surface.md +0 -0
  572. /package/dist/{ai → skills}/table.md +0 -0
  573. /package/dist/{ai → skills}/tabs.md +0 -0
  574. /package/dist/{ai → skills}/teleport.md +0 -0
  575. /package/dist/{ai → skills}/textarea.md +0 -0
  576. /package/dist/{ai → skills}/theme-button.md +0 -0
  577. /package/dist/{ai → skills}/theme.md +0 -0
  578. /package/dist/{ai → skills}/tooltip.md +0 -0
  579. /package/dist/{ai → skills}/tree.md +0 -0
  580. /package/dist/{ai → skills}/typewriter.md +0 -0
  581. /package/dist/{ai → skills}/typography.md +0 -0
  582. /package/dist/{ai → skills}/utils.md +0 -0
  583. /package/dist/{ai → skills}/window.md +0 -0
@@ -1,4 +1,4 @@
1
- import { i as e, t } from "./tailwind.mixin-BIVhjNvD.js";
1
+ import { i as e, t } from "./tailwind.mixin-BCJOOX1_.js";
2
2
  import "./mixins.js";
3
3
  import { customElement as n, query as r } from "lit/decorators.js";
4
4
  import { html as i } from "lit";
@@ -1 +1 @@
1
- {"version":3,"file":"theme-button-BtlX_Zgd.js","names":[],"sources":["../src/theme-button/theme-button.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\n@customElement('schmancy-theme-button')\nexport default class SchmancyThemeButton extends TailwindElement() {\n\t@query('#color') color!: HTMLElement\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-button\n\t\t\t\t@click=${() => {\n\t\t\t\t\t// Trigger any other effects you have\n\t\t\t\t\t// $newSchmancyTheme.next(undefined)\n\n\t\t\t\t\t// Native Web Animations API usage:\n\t\t\t\t\tthis.color.animate([{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }], {\n\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t// fill: 'forwards', // Use if you want it to remain rotated at 360°\n\t\t\t\t\t\t// easing: 'ease-out', // Or another easing function\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t\tvariant=\"text\"\n\t\t\t>\n\t\t\t\t<schmancy-icon id=\"color\">palette</schmancy-icon>\n\t\t\t</schmancy-button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-theme-button': SchmancyThemeButton\n\t}\n}\n"],"mappings":";;;;AAKe,IAAA,IAAA,cAAkC,GAAA,CAAA;CAGhD,SAAA;AACC,SAAO,CAAI;;;AAOR,QAAK,MAAM,QAAQ,CAAC,EAAE,WAAW,gBAAA,EAAkB,EAAE,WAAW,kBAAA,CAAA,EAAqB,EACpF,UAAU,KAAA,CAAA;IAAA;;;;;;;;GAXd,EAAM,SAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAFhB,EAAc,wBAAA,CAAA,EAAwB,EAAA"}
1
+ {"version":3,"file":"theme-button--sX8A-m1.js","names":[],"sources":["../src/theme-button/theme-button.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\n@customElement('schmancy-theme-button')\nexport default class SchmancyThemeButton extends TailwindElement() {\n\t@query('#color') color!: HTMLElement\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-button\n\t\t\t\t@click=${() => {\n\t\t\t\t\t// Trigger any other effects you have\n\t\t\t\t\t// $newSchmancyTheme.next(undefined)\n\n\t\t\t\t\t// Native Web Animations API usage:\n\t\t\t\t\tthis.color.animate([{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }], {\n\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t// fill: 'forwards', // Use if you want it to remain rotated at 360°\n\t\t\t\t\t\t// easing: 'ease-out', // Or another easing function\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t\tvariant=\"text\"\n\t\t\t>\n\t\t\t\t<schmancy-icon id=\"color\">palette</schmancy-icon>\n\t\t\t</schmancy-button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-theme-button': SchmancyThemeButton\n\t}\n}\n"],"mappings":";;;;AAKe,IAAA,IAAA,cAAkC,GAAA,CAAA;CAGhD,SAAA;AACC,SAAO,CAAI;;;AAOR,QAAK,MAAM,QAAQ,CAAC,EAAE,WAAW,gBAAA,EAAkB,EAAE,WAAW,kBAAA,CAAA,EAAqB,EACpF,UAAU,KAAA,CAAA;IAAA;;;;;;;;GAXd,EAAM,SAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAFhB,EAAc,wBAAA,CAAA,EAAwB,EAAA"}
@@ -1,4 +1,4 @@
1
- require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-DSuEu-y3.cjs`);require(`./mixins.cjs`);let t=require(`lit/decorators.js`),n=require(`lit`);var r=class extends e.t(){render(){return n.html`
1
+ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`);require(`./mixins.cjs`);let t=require(`lit/decorators.js`),n=require(`lit`);var r=class extends e.t(){render(){return n.html`
2
2
  <schmancy-button
3
3
  @click=${()=>{this.color.animate([{transform:`rotate(0deg)`},{transform:`rotate(360deg)`}],{duration:300})}}
4
4
  variant="text"
@@ -1 +1 @@
1
- {"version":3,"file":"theme-button-Dvqg-rE_.cjs","names":[],"sources":["../src/theme-button/theme-button.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\n@customElement('schmancy-theme-button')\nexport default class SchmancyThemeButton extends TailwindElement() {\n\t@query('#color') color!: HTMLElement\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-button\n\t\t\t\t@click=${() => {\n\t\t\t\t\t// Trigger any other effects you have\n\t\t\t\t\t// $newSchmancyTheme.next(undefined)\n\n\t\t\t\t\t// Native Web Animations API usage:\n\t\t\t\t\tthis.color.animate([{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }], {\n\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t// fill: 'forwards', // Use if you want it to remain rotated at 360°\n\t\t\t\t\t\t// easing: 'ease-out', // Or another easing function\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t\tvariant=\"text\"\n\t\t\t>\n\t\t\t\t<schmancy-icon id=\"color\">palette</schmancy-icon>\n\t\t\t</schmancy-button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-theme-button': SchmancyThemeButton\n\t}\n}\n"],"mappings":"6JAKe,IAAA,EAAA,cAAkC,EAAA,GAAA,AAAA,CAGhD,QAAA,CACC,MAAO,GAAA,IAAI;;kBAOR,KAAK,MAAM,QAAQ,CAAC,CAAE,UAAW,eAAA,CAAkB,CAAE,UAAW,iBAAA,CAAA,CAAqB,CACpF,SAAU,IAAA,CAAA,EAAA;;;;;uBAXR,SAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAFF,wBAAA,CAAA,CAAwB,EAAA"}
1
+ {"version":3,"file":"theme-button-Ci8VQ7KW.cjs","names":[],"sources":["../src/theme-button/theme-button.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\n@customElement('schmancy-theme-button')\nexport default class SchmancyThemeButton extends TailwindElement() {\n\t@query('#color') color!: HTMLElement\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-button\n\t\t\t\t@click=${() => {\n\t\t\t\t\t// Trigger any other effects you have\n\t\t\t\t\t// $newSchmancyTheme.next(undefined)\n\n\t\t\t\t\t// Native Web Animations API usage:\n\t\t\t\t\tthis.color.animate([{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }], {\n\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t// fill: 'forwards', // Use if you want it to remain rotated at 360°\n\t\t\t\t\t\t// easing: 'ease-out', // Or another easing function\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t\tvariant=\"text\"\n\t\t\t>\n\t\t\t\t<schmancy-icon id=\"color\">palette</schmancy-icon>\n\t\t\t</schmancy-button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-theme-button': SchmancyThemeButton\n\t}\n}\n"],"mappings":"6JAKe,IAAA,EAAA,cAAkC,EAAA,GAAA,AAAA,CAGhD,QAAA,CACC,MAAO,GAAA,IAAI;;kBAOR,KAAK,MAAM,QAAQ,CAAC,CAAE,UAAW,eAAA,CAAkB,CAAE,UAAW,iBAAA,CAAA,CAAqB,CACpF,SAAU,IAAA,CAAA,EAAA;;;;;uBAXR,SAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAFF,wBAAA,CAAA,CAAwB,EAAA"}
@@ -1 +1 @@
1
- require(`./theme-button-Dvqg-rE_.cjs`);
1
+ require(`./theme-button-Ci8VQ7KW.cjs`);
@@ -1 +1 @@
1
- import "./theme-button-BtlX_Zgd.js";
1
+ import "./theme-button--sX8A-m1.js";
package/dist/theme.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./tailwind.mixin-DSuEu-y3.cjs`),t=require(`./theme.events-DM4H5F2d.cjs`),n=require(`./theme.service-C_tjlqgy.cjs`),r=require(`./theme.interface-Da23QAYb.cjs`),i=require(`./theme-ZYH2MqX9.cjs`);exports.SchmancyGenerateMoodAudioEvent=i.n,exports.SchmancyTheme=r.t,Object.defineProperty(exports,`SchmancyThemeAudioPlayer`,{enumerable:!0,get:function(){return i.r}}),Object.defineProperty(exports,`SchmancyThemeComponent`,{enumerable:!0,get:function(){return i.a}}),Object.defineProperty(exports,`SchmancyThemeController`,{enumerable:!0,get:function(){return i.i}}),Object.defineProperty(exports,`SchmancyThemeControllerBoat`,{enumerable:!0,get:function(){return i.t}}),exports.ThemeHereIAm=t.t,exports.ThemeWhereAreYou=t.n,exports.createDarkTonalPaletteFromBaseColor=i.s,exports.createLightTonalPaletteFromBaseColor=i.c,exports.formatTheme=i.l,exports.schmancyTheme=n.t,exports.tailwindStyles=i.o,exports.theme=n.n,exports.themeContext=e.a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./tailwind.mixin-BF1Huas7.cjs`),t=require(`./theme.events-DM4H5F2d.cjs`),n=require(`./theme.service-C_tjlqgy.cjs`),r=require(`./theme.interface-Da23QAYb.cjs`),i=require(`./theme-Da4SPq9X.cjs`);exports.SchmancyGenerateMoodAudioEvent=i.n,exports.SchmancyTheme=r.t,Object.defineProperty(exports,`SchmancyThemeAudioPlayer`,{enumerable:!0,get:function(){return i.r}}),Object.defineProperty(exports,`SchmancyThemeComponent`,{enumerable:!0,get:function(){return i.a}}),Object.defineProperty(exports,`SchmancyThemeController`,{enumerable:!0,get:function(){return i.i}}),Object.defineProperty(exports,`SchmancyThemeControllerBoat`,{enumerable:!0,get:function(){return i.t}}),exports.ThemeHereIAm=t.t,exports.ThemeWhereAreYou=t.n,exports.createDarkTonalPaletteFromBaseColor=i.s,exports.createLightTonalPaletteFromBaseColor=i.c,exports.formatTheme=i.l,exports.schmancyTheme=n.t,exports.tailwindStyles=i.o,exports.theme=n.n,exports.themeContext=e.a;
package/dist/theme.js CHANGED
@@ -1,6 +1,6 @@
1
- import { a as e } from "./tailwind.mixin-BIVhjNvD.js";
1
+ import { a as e } from "./tailwind.mixin-BCJOOX1_.js";
2
2
  import { n as t, t as n } from "./theme.events-Cv7N4Toe.js";
3
3
  import { n as r, t as i } from "./theme.service-D9lEas89.js";
4
4
  import { t as a } from "./theme.interface-CXloMUCw.js";
5
- import { a as o, c as s, i as c, l, n as u, o as d, r as f, s as p, t as m } from "./theme-B0M8Hlyo.js";
5
+ import { a as o, c as s, i as c, l, n as u, o as d, r as f, s as p, t as m } from "./theme-_VPV6Bxh.js";
6
6
  export { u as SchmancyGenerateMoodAudioEvent, a as SchmancyTheme, f as SchmancyThemeAudioPlayer, o as SchmancyThemeComponent, c as SchmancyThemeController, m as SchmancyThemeControllerBoat, n as ThemeHereIAm, t as ThemeWhereAreYou, p as createDarkTonalPaletteFromBaseColor, s as createLightTonalPaletteFromBaseColor, l as formatTheme, i as schmancyTheme, d as tailwindStyles, r as theme, e as themeContext };
package/dist/tooltip.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-DSuEu-y3.cjs`);let t=require(`rxjs`),n=require(`lit/decorators.js`),r=require(`lit`),i=require(`lit/directive.js`),a=require(`@floating-ui/dom`);var o=new WeakMap,s=class extends i.Directive{constructor(e){if(super(e),e.type!==i.PartType.ELEMENT)throw Error(`The tooltip directive can only be used on elements`)}render(e,t={}){return{text:e,options:t}}update(e,[n,r={}]){let i=e.element,s=r?.position||`top`,c=r?.delay||300,l=!1!==r?.showArrow,u=o.get(i);if(u)u.tooltipElement.textContent=n,u.arrowElement&&(u.arrowElement.style.visibility=l?`visible`:`hidden`);else{let e=document.createElement(`div`),r;e.className=`schmancy-tooltip`,Object.assign(e.style,{position:`absolute`,zIndex:`10000`,backgroundColor:`var(--schmancy-sys-color-surface-highest, #333)`,color:`var(--schmancy-sys-color-surface-on, white)`,padding:`8px 12px`,borderRadius:`4px`,fontSize:`14px`,fontWeight:`normal`,maxWidth:`300px`,pointerEvents:`none`,opacity:`0`,transition:`opacity 150ms ease`,boxShadow:`var(--schmancy-sys-elevation-2)`,textAlign:`center`,visibility:`hidden`}),l&&(r=document.createElement(`div`),r.className=`schmancy-tooltip-arrow`,Object.assign(r.style,{position:`absolute`,width:`8px`,height:`8px`,background:`inherit`,visibility:`hidden`,transform:`rotate(45deg)`}),e.appendChild(r)),e.setAttribute(`role`,`tooltip`);let d=`tooltip-${Math.random().toString(36).slice(2,9)}`;e.id=d,i.setAttribute(`aria-describedby`,d),document.body.appendChild(e),u={tooltipElement:e,arrowElement:r},o.set(i,u);let f=()=>{u?.showTimeout&&clearTimeout(u.showTimeout),u.showTimeout=window.setTimeout(()=>{u.tooltipElement.textContent=n,l&&u.arrowElement&&!u.tooltipElement.contains(u.arrowElement)&&u.tooltipElement.appendChild(u.arrowElement),u.tooltipElement.style.visibility=`visible`,u.cleanup&&u.cleanup(),u.cleanup=(0,a.autoUpdate)(i,u.tooltipElement,()=>async function(e,t,n,r){let i=[(0,a.offset)(8),(0,a.flip)({fallbackPlacements:[`top`,`right`,`bottom`,`left`].filter(e=>e!==n),padding:5}),(0,a.shift)({padding:5})];r&&t.arrowElement&&i.push((0,a.arrow)({element:t.arrowElement}));let{x:o,y:s,placement:c,middlewareData:l}=await(0,a.computePosition)(e,t.tooltipElement,{placement:n,middleware:i,strategy:`fixed`});if(Object.assign(t.tooltipElement.style,{left:`${o}px`,top:`${s}px`,position:`fixed`}),r&&t.arrowElement&&l.arrow){let{x:e,y:n}=l.arrow,r={top:`bottom`,right:`left`,bottom:`top`,left:`right`}[c.split(`-`)[0]]||`bottom`;Object.assign(t.arrowElement.style,{left:e==null?``:`${e}px`,top:n==null?``:`${n}px`,[r]:`-4px`,visibility:`visible`})}}(i,u,s,l)),requestAnimationFrame(()=>{u.tooltipElement.style.opacity=`1`})},c)},p=()=>{u?.showTimeout&&clearTimeout(u.showTimeout),u.tooltipElement.style.opacity=`0`,setTimeout(()=>{u.tooltipElement.style.visibility=`hidden`},150),u?.cleanup&&(u.cleanup(),u.cleanup=void 0)},m=[(0,t.fromEvent)(i,`mouseenter`).subscribe(f),(0,t.fromEvent)(i,`focus`).subscribe(f),(0,t.fromEvent)(i,`mouseleave`).subscribe(p),(0,t.fromEvent)(i,`blur`).subscribe(p),(0,t.fromEvent)(document,`keydown`).subscribe(e=>{e.key===`Escape`&&u?.tooltipElement.style.opacity===`1`&&p()})];u.subscriptions=m}return{text:n,options:r}}disconnected(e){let t=e.element,n=o.get(t);n&&(n.subscriptions&&n.subscriptions.forEach(e=>e.unsubscribe()),n.showTimeout&&clearTimeout(n.showTimeout),n.cleanup&&n.cleanup(),document.body.contains(n.tooltipElement)&&document.body.removeChild(n.tooltipElement),t.hasAttribute(`aria-describedby`)&&t.removeAttribute(`aria-describedby`),o.delete(t))}},c=(0,i.directive)(s),l=class extends e.t(r.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`);let t=require(`rxjs`),n=require(`lit/decorators.js`),r=require(`lit`),i=require(`lit/directive.js`),a=require(`@floating-ui/dom`);var o=new WeakMap,s=class extends i.Directive{constructor(e){if(super(e),e.type!==i.PartType.ELEMENT)throw Error(`The tooltip directive can only be used on elements`)}render(e,t={}){return{text:e,options:t}}update(e,[n,r={}]){let i=e.element,s=r?.position||`top`,c=r?.delay||300,l=!1!==r?.showArrow,u=o.get(i);if(u)u.tooltipElement.textContent=n,u.arrowElement&&(u.arrowElement.style.visibility=l?`visible`:`hidden`);else{let e=document.createElement(`div`),r;e.className=`schmancy-tooltip`,Object.assign(e.style,{position:`absolute`,zIndex:`10000`,backgroundColor:`var(--schmancy-sys-color-surface-highest, #333)`,color:`var(--schmancy-sys-color-surface-on, white)`,padding:`8px 12px`,borderRadius:`4px`,fontSize:`14px`,fontWeight:`normal`,maxWidth:`300px`,pointerEvents:`none`,opacity:`0`,transition:`opacity 150ms ease`,boxShadow:`var(--schmancy-sys-elevation-2)`,textAlign:`center`,visibility:`hidden`}),l&&(r=document.createElement(`div`),r.className=`schmancy-tooltip-arrow`,Object.assign(r.style,{position:`absolute`,width:`8px`,height:`8px`,background:`inherit`,visibility:`hidden`,transform:`rotate(45deg)`}),e.appendChild(r)),e.setAttribute(`role`,`tooltip`);let d=`tooltip-${Math.random().toString(36).slice(2,9)}`;e.id=d,i.setAttribute(`aria-describedby`,d),document.body.appendChild(e),u={tooltipElement:e,arrowElement:r},o.set(i,u);let f=()=>{u?.showTimeout&&clearTimeout(u.showTimeout),u.showTimeout=window.setTimeout(()=>{u.tooltipElement.textContent=n,l&&u.arrowElement&&!u.tooltipElement.contains(u.arrowElement)&&u.tooltipElement.appendChild(u.arrowElement),u.tooltipElement.style.visibility=`visible`,u.cleanup&&u.cleanup(),u.cleanup=(0,a.autoUpdate)(i,u.tooltipElement,()=>async function(e,t,n,r){let i=[(0,a.offset)(8),(0,a.flip)({fallbackPlacements:[`top`,`right`,`bottom`,`left`].filter(e=>e!==n),padding:5}),(0,a.shift)({padding:5})];r&&t.arrowElement&&i.push((0,a.arrow)({element:t.arrowElement}));let{x:o,y:s,placement:c,middlewareData:l}=await(0,a.computePosition)(e,t.tooltipElement,{placement:n,middleware:i,strategy:`fixed`});if(Object.assign(t.tooltipElement.style,{left:`${o}px`,top:`${s}px`,position:`fixed`}),r&&t.arrowElement&&l.arrow){let{x:e,y:n}=l.arrow,r={top:`bottom`,right:`left`,bottom:`top`,left:`right`}[c.split(`-`)[0]]||`bottom`;Object.assign(t.arrowElement.style,{left:e==null?``:`${e}px`,top:n==null?``:`${n}px`,[r]:`-4px`,visibility:`visible`})}}(i,u,s,l)),requestAnimationFrame(()=>{u.tooltipElement.style.opacity=`1`})},c)},p=()=>{u?.showTimeout&&clearTimeout(u.showTimeout),u.tooltipElement.style.opacity=`0`,setTimeout(()=>{u.tooltipElement.style.visibility=`hidden`},150),u?.cleanup&&(u.cleanup(),u.cleanup=void 0)},m=[(0,t.fromEvent)(i,`mouseenter`).subscribe(f),(0,t.fromEvent)(i,`focus`).subscribe(f),(0,t.fromEvent)(i,`mouseleave`).subscribe(p),(0,t.fromEvent)(i,`blur`).subscribe(p),(0,t.fromEvent)(document,`keydown`).subscribe(e=>{e.key===`Escape`&&u?.tooltipElement.style.opacity===`1`&&p()})];u.subscriptions=m}return{text:n,options:r}}disconnected(e){let t=e.element,n=o.get(t);n&&(n.subscriptions&&n.subscriptions.forEach(e=>e.unsubscribe()),n.showTimeout&&clearTimeout(n.showTimeout),n.cleanup&&n.cleanup(),document.body.contains(n.tooltipElement)&&document.body.removeChild(n.tooltipElement),t.hasAttribute(`aria-describedby`)&&t.removeAttribute(`aria-describedby`),o.delete(t))}},c=(0,i.directive)(s),l=class extends e.t(r.css`
2
2
  :host {
3
3
  display: inline-block;
4
4
  position: relative;
package/dist/tooltip.js CHANGED
@@ -1,4 +1,4 @@
1
- import { i as e, t } from "./tailwind.mixin-BIVhjNvD.js";
1
+ import { i as e, t } from "./tailwind.mixin-BCJOOX1_.js";
2
2
  import { fromEvent as n, merge as r, takeUntil as i } from "rxjs";
3
3
  import { customElement as a, property as o, state as s } from "lit/decorators.js";
4
4
  import { css as c, html as l } from "lit";
package/dist/tree.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-DSuEu-y3.cjs`);require(`./mixins.cjs`);let t=require(`rxjs`),n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends e.t(r.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`);require(`./mixins.cjs`);let t=require(`rxjs`),n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends e.t(r.css`
2
2
  :host {
3
3
  display: block;
4
4
  position: relative;
package/dist/tree.js CHANGED
@@ -1,4 +1,4 @@
1
- import { i as e, t } from "./tailwind.mixin-BIVhjNvD.js";
1
+ import { i as e, t } from "./tailwind.mixin-BCJOOX1_.js";
2
2
  import "./mixins.js";
3
3
  import { fromEvent as n, merge as r, switchMap as i, takeUntil as a, tap as o, zip as s } from "rxjs";
4
4
  import { customElement as c, property as l, query as u } from "lit/decorators.js";
@@ -1,4 +1,4 @@
1
- require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-DSuEu-y3.cjs`),t=require(`./litElement.mixin-BG6_-nYX.cjs`);require(`./mixins.cjs`);const n=require(`./delay-COcAkBqB.cjs`),r=require(`./hashContent-DaeGmY-p.cjs`),i=require(`./intersection-CZpaIHeT.cjs`);let a=require(`lit/decorators.js`),o=require(`lit`);var s=e=>Array.isArray(e),c=e=>s(e)?e:[e],l=`data-typeit-id`,u=`ti-cursor`,d={started:!1,completed:!1,frozen:!1,destroyed:!1},f={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map(e=>({opacity:e})),options:{iterations:1/0,easing:`steps(2, start)`,fill:`forwards`}}},cursorChar:`|`,cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},p=`[${l}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,m=e=>document.createElement(e),h=e=>document.createTextNode(e),g=(e,t=``)=>{let n=m(`style`);n.id=t,n.appendChild(h(e)),document.head.appendChild(n)},_=e=>(s(e)||(e=[e/2,e/2]),e),v=(e,t)=>Math.abs(Math.random()*(e+t-(e-t))+(e-t)),y=e=>e/2,b=e=>Array.from(e),x=e=>([...e.childNodes].forEach(e=>{if(e.nodeValue)return[...e.nodeValue].forEach(t=>{e.parentNode.insertBefore(h(t),e)}),void e.remove();x(e)}),e),S=e=>{let t=document.implementation.createHTMLDocument();return t.body.innerHTML=e,x(t.body)};function C(e,t=!1,n=!1){let r,i=e.querySelector(`.${u}`),a=document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:e=>{if(i&&n){if(e.classList?.contains(u))return NodeFilter.FILTER_ACCEPT;if(i.contains(e))return NodeFilter.FILTER_REJECT}return e.classList?.contains(u)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),o=[];for(;r=a.nextNode();)r.originalParent||=r.parentNode,o.push(r);return t?o.reverse():o}function w(e,t=!0){return t?C(S(e)):b(e).map(h)}var T=({index:e,newIndex:t,queueItems:n,cleanUp:r})=>{for(let i=e+1;i<t+1;i++)r(n[i][0])},E=e=>Number.isInteger(e),D=({queueItems:e,selector:t,cursorPosition:n,to:r})=>{if(E(t))return-1*t;let i=RegExp(`END`,`i`).test(r),a=t?[...e].reverse().findIndex(({char:e})=>{let n=e.parentElement,r=n.matches(t);return!(!i||!r)||r&&n.firstChild.isSameNode(e)}):-1;return a<0&&(a=i?0:e.length-1),a-n+ +!i},O=(e,t)=>Array(t).fill(e),k=e=>new Promise(t=>{requestAnimationFrame(async()=>{t(await e())})}),A=e=>e?.getAnimations().find(t=>t.id===e.dataset.tiAnimationId),j=({cursor:e,frames:t,options:n})=>{let r=e.animate(t,n);return r.pause(),r.id=e.dataset.tiAnimationId,k(()=>{k(()=>{r.play()})}),r},M=e=>e.func?.call(null),N=async({index:e,queueItems:t,wait:n,cursor:r,cursorOptions:i})=>{let a=t[e][1],o=[],s=e,c=a,l=()=>c&&!c.delay,u=a.shouldPauseCursor()&&i.autoPause;for(;l();)o.push(c),l()&&s++,c=t[s]?t[s][1]:null;if(o.length)return await k(async()=>{for(let e of o)await M(e)}),s-1;let d,f=A(r);return f&&(d={...f.effect.getComputedTiming(),delay:u?i.autoPauseDelay:0}),await n(async()=>{f&&u&&f.cancel(),await k(()=>{M(a)})},a.delay),await(({cursor:e,options:t,cursorOptions:n})=>{if(!e||!n)return;let r,i=A(e);i&&(t.delay=i.effect.getComputedTiming().delay,r=i.currentTime,i.cancel());let a=j({cursor:e,frames:n.animation.frames,options:t});return r&&(a.currentTime=r),a})({cursor:r,options:d,cursorOptions:i}),e},P=e=>`value`in e,F=e=>typeof e==`function`?e():e,I=(e,t=document,n=!1)=>t[`querySelector`+(n?`All`:``)](e),L=(e,t)=>Object.assign({},e,t),R={"font-family":``,"font-weight":``,"font-size":``,"font-style":``,"line-height":``,color:``,transform:`translateX(-.125em)`},z=class{element;timeouts;cursorPosition;predictedCursorPosition;statuses={started:!1,completed:!1,frozen:!1,destroyed:!1,firing:!1};opts;id;queue;cursor;flushCallback=null;unfreeze=()=>{};constructor(e,t={}){var n;this.opts=L(f,t),this.element=typeof(n=e)==`string`?I(n):n,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=L({},d),this.id=Math.random().toString().substring(2,9),this.queue=function(e){let t=function(e){return c(e).forEach(e=>a.set(Symbol(e.char?.innerText),n({...e}))),this},n=e=>(e.shouldPauseCursor=function(){return!!(this.typeable||this.cursorable||this.deletable)},e),r=()=>a,i=()=>Array.from(a.values()),a=new Map;return t(e),{add:t,set:function(e,t){let r=[...a.keys()];a.set(r[e],n(t))},wipe:function(){a=new Map,t(e)},done:(e,t=!1)=>t?a.delete(e):a.get(e).done=!0,reset:function(){a.forEach(e=>delete e.done)},destroy:e=>a.delete(e),getItems:(e=!1)=>e?i():i().filter(e=>!e.done),getQueue:r,getTypeable:()=>i().filter(e=>e.typeable),getPendingQueueItems:()=>{let e=[];for(let[,t]of r())t.done||e.push(t);return e}}}([{delay:this.opts.startDelay}]),this.#p(t),this.cursor=this.#h(),this.element.dataset.typeitId=this.id,g(p),this.opts.strings.length&&this.#f()}go(){return this.statuses.started?this:(this.#o(),this.opts.waitUntilVisible?(e=this.element,t=this.#t.bind(this),new IntersectionObserver((n,r)=>{n.forEach(n=>{n.isIntersecting&&(t(),r.unobserve(e))})},{threshold:1}).observe(e),this):(this.#t(),this));var e,t}destroy(e=!0){this.timeouts=(this.timeouts.forEach(clearTimeout),[]),F(e)&&this.cursor&&this.#y(this.cursor),this.statuses.destroyed=!0}reset(e){!this.is(`destroyed`)&&this.destroy(),e?(this.queue.wipe(),e(this)):this.queue.reset(),this.cursorPosition=0;for(let e in this.statuses)this.statuses[e]=!1;return this.element[this.#s()?`value`:`innerHTML`]=``,this}is=function(e){return this.statuses[e]};type(e,t={}){e=F(e);let{instant:n}=t,r=this.#u(t),i=w(e,this.opts.html).map(e=>{return{func:()=>this.#_(e),char:e,delay:n||(t=e,/<(.+)>(.*?)<\/(.+)>/.test(t.outerHTML))?0:this.#b(),typeable:e.nodeType===Node.TEXT_NODE};var t}),a=[r[0],{func:async()=>await this.opts.beforeString(e,this)},...i,{func:async()=>await this.opts.afterString(e,this)},r[1]];return this.#c(a,t)}break(e={}){return this.#c({func:()=>this.#_(m(`BR`)),typeable:!0},e)}move(e,t={}){e=F(e);let n=this.#u(t),{instant:r,to:i}=t,a=D({queueItems:this.queue.getTypeable(),selector:e===null?``:e,to:i,cursorPosition:this.#x}),o=a<0?-1:1;return this.predictedCursorPosition=this.#x+a,this.#c([n[0],...O({func:()=>this.#n(o),delay:r?0:this.#b(),cursorable:!0},Math.abs(a)),n[1]],t)}exec(e,t={}){let n=this.#u(t);return this.#c([n[0],{func:()=>e(this)},n[1]],t)}options(e,t={}){return e=F(e),this.#d(e),this.#c({},t)}pause(e,t={}){return this.#c({delay:F(e)},t)}delete(e=null,t={}){e=F(e);let n=this.#u(t),r=e,{instant:i,to:a}=t,o=this.queue.getTypeable(),s=r===null?o.length:E(r)?r:D({queueItems:o,selector:r,cursorPosition:this.#x,to:a});return this.#c([n[0],...O({func:this.#v.bind(this),delay:i?0:this.#b(1),deletable:!0},s),n[1]],t)}freeze(){this.statuses.frozen=!0}flush(e=null){return this.flushCallback=e||this.flushCallback,this.statuses.firing||(this.#o(),this.#t(!1).then(()=>{if(this.queue.getPendingQueueItems().length>0)return this.flush();this.flushCallback(),this.flushCallback=null})),this}getQueue(){return this.queue}getOptions(){return this.opts}updateOptions(e){return this.#d(e)}getElement(){return this.element}empty(e={}){return this.#c({func:this.#e.bind(this)},e)}async#e(){this.#s()?this.element.value=``:this.#w.forEach(this.#y.bind(this))}async#t(e=!0){this.statuses.started=!0,this.statuses.firing=!0;let t=t=>{this.queue.done(t,!e)};try{let n=[...this.queue.getQueue()];for(let e=0;e<n.length;e++){let[r,i]=n[e];if(!i.done){if(!i.deletable||i.deletable&&this.#w.length){let r=await this.#i(e,n);T({index:e,newIndex:r,queueItems:n,cleanUp:t}),e=r}t(r)}}if(!e)return this.statuses.firing=!1,this;if(this.statuses.completed=!0,this.statuses.firing=!1,await this.opts.afterComplete(this),!this.opts.loop)throw``;let r=this.opts.loopDelay;this.#a(async()=>{await this.#r(r[0]),this.#t()},r[1])}catch{}return this.statuses.firing=!1,this}async#n(e){var t,n,r;this.cursorPosition=(t=e,n=this.cursorPosition,r=this.#w,Math.min(Math.max(n+t,0),r.length)),((e,t,n)=>{let r=t[n-1],i=I(`.${u}`,e);(e=r?.parentNode||e).insertBefore(i,r||null)})(this.element,this.#w,this.cursorPosition)}async#r(e){let t=this.#x;t&&await this.#n({value:t});let n=this.#w.map(e=>[Symbol(),{func:this.#v.bind(this),delay:this.#b(1),deletable:!0,shouldPauseCursor:()=>!0}]);for(let e=0;e<n.length;e++)await this.#i(e,n);this.queue.reset(),this.queue.set(0,{delay:e})}#i(e,t){return N({index:e,queueItems:t,wait:this.#a.bind(this),cursor:this.cursor,cursorOptions:this.opts.cursor})}async#a(e,t,n=!1){this.statuses.frozen&&await new Promise(e=>{this.unfreeze=()=>{this.statuses.frozen=!1,e()}}),n||await this.opts.beforeStep(this),await((e,t,n)=>new Promise(r=>{n.push(setTimeout(async()=>{await e(),r()},t||0))}))(e,t,this.timeouts),n||await this.opts.afterStep(this)}async#o(){if(!this.#s()&&this.cursor&&this.element.appendChild(this.cursor),this.#C){((e,t)=>{let n=`[${l}='${e}'] .${u}`,r=getComputedStyle(t);g(`${n} { display: inline-block; width: 0; ${Object.entries(R).reduce((e,[t,n])=>`${e} ${t}: var(--ti-cursor-${t}, ${n||r[t]});`,``)} }`,e)})(this.id,this.element),this.cursor.dataset.tiAnimationId=this.id;let{animation:e}=this.opts.cursor,{frames:t,options:n}=e;j({frames:t,cursor:this.cursor,options:{duration:this.opts.cursorSpeed,...n}})}}#s(){return P(this.element)}#c(e,t){return this.queue.add(e),this.#l(t),this}#l(e={}){let t=e.delay;t&&this.queue.add({delay:t})}#u(e={}){return[{func:()=>this.#d(e)},{func:()=>this.#d(this.opts)}]}async#d(e){this.opts=L(this.opts,e)}#f(){let e=this.opts.strings.filter(e=>!!e);e.forEach((t,n)=>{if(this.type(t),n+1===e.length)return;let r=this.opts.breakLines?[{func:()=>this.#_(m(`BR`)),typeable:!0}]:O({func:this.#v.bind(this),delay:this.#b(1)},this.queue.getTypeable().length);this.#g(r)})}#p=e=>{this.opts.cursor=(e=>{if(typeof e==`object`){let t={},{frames:n,options:r}=f.cursor.animation;return t.animation=e.animation||{},t.animation.frames=e.animation?.frames||n,t.animation.options=L(r,e.animation?.options||{}),t.autoPause=e.autoPause??f.cursor.autoPause,t.autoPauseDelay=e.autoPauseDelay||f.cursor.autoPauseDelay,t}return!0===e?f.cursor:e})(e.cursor??f.cursor),this.opts.strings=this.#m(c(this.opts.strings)),this.opts=L(this.opts,{html:!this.#S&&this.opts.html,nextStringDelay:_(this.opts.nextStringDelay),loopDelay:_(this.opts.loopDelay)})};#m(e){let t=this.element.innerHTML;return t?(this.element.innerHTML=``,this.opts.startDelete?(this.element.innerHTML=t,x(this.element),this.#g(O({func:this.#v.bind(this),delay:this.#b(1),deletable:!0},this.#w.length)),e):(n=t,n.replace(/<!--(.+?)-->/g,``).trim().split(/<br(?:\s*?)(?:\/)?>/)).concat(e)):e;var n}#h(){if(this.#S)return null;let e=m(`span`);return e.className=u,this.#C?(e.innerHTML=S(this.opts.cursorChar).innerHTML,e):(e.style.visibility=`hidden`,e)}#g(e){let t=this.opts.nextStringDelay;this.queue.add([{delay:t[0]},...e,{delay:t[1]}])}#_(e){((e,t)=>{if(P(e))return void(e.value=`${e.value}${t.textContent}`);t.innerHTML=``;let n=(r=t.originalParent,/body/i.test(r?.tagName)?e:t.originalParent||e);var r;let i=I(`.`+u,n)||null;i&&i.parentElement!==n&&(n=i.parentElement),n.insertBefore(t,i)})(this.element,e)}#v(){this.#w.length&&(this.#S?this.element.value=this.element.value.slice(0,-1):this.#y(this.#w[this.cursorPosition]))}#y(e){((e,t)=>{if(!e)return;let n=e.parentNode;(n.childNodes.length>1||n.isSameNode(t)?e:n).remove()})(e,this.element)}#b(e=0){return function(e){let{speed:t,deleteSpeed:n,lifeLike:r}=e;return n=n===null?t/3:n,r?[v(t,y(t)),v(n,y(n))]:[t,n]}(this.opts)[e]}get#x(){return this.predictedCursorPosition??this.cursorPosition}get#S(){return P(this.element)}get#C(){return!!this.opts.cursor&&!this.#S}get#w(){return e=this.element,P(e)?b(e.value):C(e,!0).filter(e=>!(e.childNodes.length>0));var e}},B=class extends t.t(o.css`
1
+ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`),t=require(`./litElement.mixin-3llHwB-8.cjs`);require(`./mixins.cjs`);const n=require(`./delay-7boauN6N.cjs`),r=require(`./hashContent-DaeGmY-p.cjs`),i=require(`./intersection-CZpaIHeT.cjs`);let a=require(`lit/decorators.js`),o=require(`lit`);var s=e=>Array.isArray(e),c=e=>s(e)?e:[e],l=`data-typeit-id`,u=`ti-cursor`,d={started:!1,completed:!1,frozen:!1,destroyed:!1},f={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map(e=>({opacity:e})),options:{iterations:1/0,easing:`steps(2, start)`,fill:`forwards`}}},cursorChar:`|`,cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},p=`[${l}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,m=e=>document.createElement(e),h=e=>document.createTextNode(e),g=(e,t=``)=>{let n=m(`style`);n.id=t,n.appendChild(h(e)),document.head.appendChild(n)},_=e=>(s(e)||(e=[e/2,e/2]),e),v=(e,t)=>Math.abs(Math.random()*(e+t-(e-t))+(e-t)),y=e=>e/2,b=e=>Array.from(e),x=e=>([...e.childNodes].forEach(e=>{if(e.nodeValue)return[...e.nodeValue].forEach(t=>{e.parentNode.insertBefore(h(t),e)}),void e.remove();x(e)}),e),S=e=>{let t=document.implementation.createHTMLDocument();return t.body.innerHTML=e,x(t.body)};function C(e,t=!1,n=!1){let r,i=e.querySelector(`.${u}`),a=document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:e=>{if(i&&n){if(e.classList?.contains(u))return NodeFilter.FILTER_ACCEPT;if(i.contains(e))return NodeFilter.FILTER_REJECT}return e.classList?.contains(u)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),o=[];for(;r=a.nextNode();)r.originalParent||=r.parentNode,o.push(r);return t?o.reverse():o}function w(e,t=!0){return t?C(S(e)):b(e).map(h)}var T=({index:e,newIndex:t,queueItems:n,cleanUp:r})=>{for(let i=e+1;i<t+1;i++)r(n[i][0])},E=e=>Number.isInteger(e),D=({queueItems:e,selector:t,cursorPosition:n,to:r})=>{if(E(t))return-1*t;let i=RegExp(`END`,`i`).test(r),a=t?[...e].reverse().findIndex(({char:e})=>{let n=e.parentElement,r=n.matches(t);return!(!i||!r)||r&&n.firstChild.isSameNode(e)}):-1;return a<0&&(a=i?0:e.length-1),a-n+ +!i},O=(e,t)=>Array(t).fill(e),k=e=>new Promise(t=>{requestAnimationFrame(async()=>{t(await e())})}),A=e=>e?.getAnimations().find(t=>t.id===e.dataset.tiAnimationId),j=({cursor:e,frames:t,options:n})=>{let r=e.animate(t,n);return r.pause(),r.id=e.dataset.tiAnimationId,k(()=>{k(()=>{r.play()})}),r},M=e=>e.func?.call(null),N=async({index:e,queueItems:t,wait:n,cursor:r,cursorOptions:i})=>{let a=t[e][1],o=[],s=e,c=a,l=()=>c&&!c.delay,u=a.shouldPauseCursor()&&i.autoPause;for(;l();)o.push(c),l()&&s++,c=t[s]?t[s][1]:null;if(o.length)return await k(async()=>{for(let e of o)await M(e)}),s-1;let d,f=A(r);return f&&(d={...f.effect.getComputedTiming(),delay:u?i.autoPauseDelay:0}),await n(async()=>{f&&u&&f.cancel(),await k(()=>{M(a)})},a.delay),await(({cursor:e,options:t,cursorOptions:n})=>{if(!e||!n)return;let r,i=A(e);i&&(t.delay=i.effect.getComputedTiming().delay,r=i.currentTime,i.cancel());let a=j({cursor:e,frames:n.animation.frames,options:t});return r&&(a.currentTime=r),a})({cursor:r,options:d,cursorOptions:i}),e},P=e=>`value`in e,F=e=>typeof e==`function`?e():e,I=(e,t=document,n=!1)=>t[`querySelector`+(n?`All`:``)](e),L=(e,t)=>Object.assign({},e,t),R={"font-family":``,"font-weight":``,"font-size":``,"font-style":``,"line-height":``,color:``,transform:`translateX(-.125em)`},z=class{element;timeouts;cursorPosition;predictedCursorPosition;statuses={started:!1,completed:!1,frozen:!1,destroyed:!1,firing:!1};opts;id;queue;cursor;flushCallback=null;unfreeze=()=>{};constructor(e,t={}){var n;this.opts=L(f,t),this.element=typeof(n=e)==`string`?I(n):n,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=L({},d),this.id=Math.random().toString().substring(2,9),this.queue=function(e){let t=function(e){return c(e).forEach(e=>a.set(Symbol(e.char?.innerText),n({...e}))),this},n=e=>(e.shouldPauseCursor=function(){return!!(this.typeable||this.cursorable||this.deletable)},e),r=()=>a,i=()=>Array.from(a.values()),a=new Map;return t(e),{add:t,set:function(e,t){let r=[...a.keys()];a.set(r[e],n(t))},wipe:function(){a=new Map,t(e)},done:(e,t=!1)=>t?a.delete(e):a.get(e).done=!0,reset:function(){a.forEach(e=>delete e.done)},destroy:e=>a.delete(e),getItems:(e=!1)=>e?i():i().filter(e=>!e.done),getQueue:r,getTypeable:()=>i().filter(e=>e.typeable),getPendingQueueItems:()=>{let e=[];for(let[,t]of r())t.done||e.push(t);return e}}}([{delay:this.opts.startDelay}]),this.#p(t),this.cursor=this.#h(),this.element.dataset.typeitId=this.id,g(p),this.opts.strings.length&&this.#f()}go(){return this.statuses.started?this:(this.#o(),this.opts.waitUntilVisible?(e=this.element,t=this.#t.bind(this),new IntersectionObserver((n,r)=>{n.forEach(n=>{n.isIntersecting&&(t(),r.unobserve(e))})},{threshold:1}).observe(e),this):(this.#t(),this));var e,t}destroy(e=!0){this.timeouts=(this.timeouts.forEach(clearTimeout),[]),F(e)&&this.cursor&&this.#y(this.cursor),this.statuses.destroyed=!0}reset(e){!this.is(`destroyed`)&&this.destroy(),e?(this.queue.wipe(),e(this)):this.queue.reset(),this.cursorPosition=0;for(let e in this.statuses)this.statuses[e]=!1;return this.element[this.#s()?`value`:`innerHTML`]=``,this}is=function(e){return this.statuses[e]};type(e,t={}){e=F(e);let{instant:n}=t,r=this.#u(t),i=w(e,this.opts.html).map(e=>{return{func:()=>this.#_(e),char:e,delay:n||(t=e,/<(.+)>(.*?)<\/(.+)>/.test(t.outerHTML))?0:this.#b(),typeable:e.nodeType===Node.TEXT_NODE};var t}),a=[r[0],{func:async()=>await this.opts.beforeString(e,this)},...i,{func:async()=>await this.opts.afterString(e,this)},r[1]];return this.#c(a,t)}break(e={}){return this.#c({func:()=>this.#_(m(`BR`)),typeable:!0},e)}move(e,t={}){e=F(e);let n=this.#u(t),{instant:r,to:i}=t,a=D({queueItems:this.queue.getTypeable(),selector:e===null?``:e,to:i,cursorPosition:this.#x}),o=a<0?-1:1;return this.predictedCursorPosition=this.#x+a,this.#c([n[0],...O({func:()=>this.#n(o),delay:r?0:this.#b(),cursorable:!0},Math.abs(a)),n[1]],t)}exec(e,t={}){let n=this.#u(t);return this.#c([n[0],{func:()=>e(this)},n[1]],t)}options(e,t={}){return e=F(e),this.#d(e),this.#c({},t)}pause(e,t={}){return this.#c({delay:F(e)},t)}delete(e=null,t={}){e=F(e);let n=this.#u(t),r=e,{instant:i,to:a}=t,o=this.queue.getTypeable(),s=r===null?o.length:E(r)?r:D({queueItems:o,selector:r,cursorPosition:this.#x,to:a});return this.#c([n[0],...O({func:this.#v.bind(this),delay:i?0:this.#b(1),deletable:!0},s),n[1]],t)}freeze(){this.statuses.frozen=!0}flush(e=null){return this.flushCallback=e||this.flushCallback,this.statuses.firing||(this.#o(),this.#t(!1).then(()=>{if(this.queue.getPendingQueueItems().length>0)return this.flush();this.flushCallback(),this.flushCallback=null})),this}getQueue(){return this.queue}getOptions(){return this.opts}updateOptions(e){return this.#d(e)}getElement(){return this.element}empty(e={}){return this.#c({func:this.#e.bind(this)},e)}async#e(){this.#s()?this.element.value=``:this.#w.forEach(this.#y.bind(this))}async#t(e=!0){this.statuses.started=!0,this.statuses.firing=!0;let t=t=>{this.queue.done(t,!e)};try{let n=[...this.queue.getQueue()];for(let e=0;e<n.length;e++){let[r,i]=n[e];if(!i.done){if(!i.deletable||i.deletable&&this.#w.length){let r=await this.#i(e,n);T({index:e,newIndex:r,queueItems:n,cleanUp:t}),e=r}t(r)}}if(!e)return this.statuses.firing=!1,this;if(this.statuses.completed=!0,this.statuses.firing=!1,await this.opts.afterComplete(this),!this.opts.loop)throw``;let r=this.opts.loopDelay;this.#a(async()=>{await this.#r(r[0]),this.#t()},r[1])}catch{}return this.statuses.firing=!1,this}async#n(e){var t,n,r;this.cursorPosition=(t=e,n=this.cursorPosition,r=this.#w,Math.min(Math.max(n+t,0),r.length)),((e,t,n)=>{let r=t[n-1],i=I(`.${u}`,e);(e=r?.parentNode||e).insertBefore(i,r||null)})(this.element,this.#w,this.cursorPosition)}async#r(e){let t=this.#x;t&&await this.#n({value:t});let n=this.#w.map(e=>[Symbol(),{func:this.#v.bind(this),delay:this.#b(1),deletable:!0,shouldPauseCursor:()=>!0}]);for(let e=0;e<n.length;e++)await this.#i(e,n);this.queue.reset(),this.queue.set(0,{delay:e})}#i(e,t){return N({index:e,queueItems:t,wait:this.#a.bind(this),cursor:this.cursor,cursorOptions:this.opts.cursor})}async#a(e,t,n=!1){this.statuses.frozen&&await new Promise(e=>{this.unfreeze=()=>{this.statuses.frozen=!1,e()}}),n||await this.opts.beforeStep(this),await((e,t,n)=>new Promise(r=>{n.push(setTimeout(async()=>{await e(),r()},t||0))}))(e,t,this.timeouts),n||await this.opts.afterStep(this)}async#o(){if(!this.#s()&&this.cursor&&this.element.appendChild(this.cursor),this.#C){((e,t)=>{let n=`[${l}='${e}'] .${u}`,r=getComputedStyle(t);g(`${n} { display: inline-block; width: 0; ${Object.entries(R).reduce((e,[t,n])=>`${e} ${t}: var(--ti-cursor-${t}, ${n||r[t]});`,``)} }`,e)})(this.id,this.element),this.cursor.dataset.tiAnimationId=this.id;let{animation:e}=this.opts.cursor,{frames:t,options:n}=e;j({frames:t,cursor:this.cursor,options:{duration:this.opts.cursorSpeed,...n}})}}#s(){return P(this.element)}#c(e,t){return this.queue.add(e),this.#l(t),this}#l(e={}){let t=e.delay;t&&this.queue.add({delay:t})}#u(e={}){return[{func:()=>this.#d(e)},{func:()=>this.#d(this.opts)}]}async#d(e){this.opts=L(this.opts,e)}#f(){let e=this.opts.strings.filter(e=>!!e);e.forEach((t,n)=>{if(this.type(t),n+1===e.length)return;let r=this.opts.breakLines?[{func:()=>this.#_(m(`BR`)),typeable:!0}]:O({func:this.#v.bind(this),delay:this.#b(1)},this.queue.getTypeable().length);this.#g(r)})}#p=e=>{this.opts.cursor=(e=>{if(typeof e==`object`){let t={},{frames:n,options:r}=f.cursor.animation;return t.animation=e.animation||{},t.animation.frames=e.animation?.frames||n,t.animation.options=L(r,e.animation?.options||{}),t.autoPause=e.autoPause??f.cursor.autoPause,t.autoPauseDelay=e.autoPauseDelay||f.cursor.autoPauseDelay,t}return!0===e?f.cursor:e})(e.cursor??f.cursor),this.opts.strings=this.#m(c(this.opts.strings)),this.opts=L(this.opts,{html:!this.#S&&this.opts.html,nextStringDelay:_(this.opts.nextStringDelay),loopDelay:_(this.opts.loopDelay)})};#m(e){let t=this.element.innerHTML;return t?(this.element.innerHTML=``,this.opts.startDelete?(this.element.innerHTML=t,x(this.element),this.#g(O({func:this.#v.bind(this),delay:this.#b(1),deletable:!0},this.#w.length)),e):(n=t,n.replace(/<!--(.+?)-->/g,``).trim().split(/<br(?:\s*?)(?:\/)?>/)).concat(e)):e;var n}#h(){if(this.#S)return null;let e=m(`span`);return e.className=u,this.#C?(e.innerHTML=S(this.opts.cursorChar).innerHTML,e):(e.style.visibility=`hidden`,e)}#g(e){let t=this.opts.nextStringDelay;this.queue.add([{delay:t[0]},...e,{delay:t[1]}])}#_(e){((e,t)=>{if(P(e))return void(e.value=`${e.value}${t.textContent}`);t.innerHTML=``;let n=(r=t.originalParent,/body/i.test(r?.tagName)?e:t.originalParent||e);var r;let i=I(`.`+u,n)||null;i&&i.parentElement!==n&&(n=i.parentElement),n.insertBefore(t,i)})(this.element,e)}#v(){this.#w.length&&(this.#S?this.element.value=this.element.value.slice(0,-1):this.#y(this.#w[this.cursorPosition]))}#y(e){((e,t)=>{if(!e)return;let n=e.parentNode;(n.childNodes.length>1||n.isSameNode(t)?e:n).remove()})(e,this.element)}#b(e=0){return function(e){let{speed:t,deleteSpeed:n,lifeLike:r}=e;return n=n===null?t/3:n,r?[v(t,y(t)),v(n,y(n))]:[t,n]}(this.opts)[e]}get#x(){return this.predictedCursorPosition??this.cursorPosition}get#S(){return P(this.element)}get#C(){return!!this.opts.cursor&&!this.#S}get#w(){return e=this.element,P(e)?b(e.value):C(e,!0).filter(e=>!(e.childNodes.length>0));var e}},B=class extends t.t(o.css`
2
2
  :host {
3
3
  display: inline-block;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typewriter-Cf9f2bdx.cjs","names":["#buildOptions","#setUpCursor","#generateQueue","#attachCursor","#fire","#removeNode","#elementIsInput","#generateTemporaryOptionQueueItems","#type","#getPace","#queueAndReturn","#derivedCursorPosition","#move","#updateOptions","#delete","#empty","#allChars","#fireItemWithContext","#wait","#prepLoop","#shouldRenderCursor","#maybeAppendPause","#addSplitPause","#prependHardcodedStrings","#isInput"],"sources":["../node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { 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: inline-block;\n\t}\n\n\t#typewriter {\n\t\tposition: relative;\n\t}\n\n\t/* Enhanced cursor with glow effect */\n\t#typewriter :global(.ti-cursor) {\n\t\tanimation: cursor-pulse 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n\t\tcolor: currentColor;\n\t\tfilter: drop-shadow(0 0 8px currentColor);\n\t}\n\n\t@keyframes cursor-pulse {\n\t\t0%, 100% {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.3;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t}\n\n\t/* Character entrance animation */\n\t#typewriter :global(.ti-container *) {\n\t\tanimation: char-entrance 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;\n\t}\n\n\t@keyframes char-entrance {\n\t\t0% {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.3) translateY(10px);\n\t\t\tfilter: blur(4px);\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.8;\n\t\t\ttransform: scale(1.1) translateY(-2px);\n\t\t}\n\t\t100% {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1) translateY(0);\n\t\t\tfilter: blur(0);\n\t\t}\n\t}\n\n\t/* Subtle character wobble on appear */\n\t#typewriter :global(.ti-container *:nth-child(odd)) {\n\t\tanimation: char-entrance 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) backwards,\n\t\t char-wobble 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s backwards;\n\t}\n\n\t@keyframes char-wobble {\n\t\t0%, 100% {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\t25% {\n\t\t\ttransform: rotate(2deg);\n\t\t}\n\t\t75% {\n\t\t\ttransform: rotate(-2deg);\n\t\t}\n\t}\n\n\t/* Deletion animation - fade out and scale down */\n\t#typewriter :global(.ti-container .deleting) {\n\t\tanimation: char-delete 0.2s cubic-bezier(0.4, 0, 1, 1) forwards;\n\t}\n\n\t@keyframes char-delete {\n\t\t0% {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t\tfilter: blur(0);\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.5;\n\t\t\ttransform: scale(0.8) translateY(-3px);\n\t\t}\n\t\t100% {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.4) translateY(-8px);\n\t\t\tfilter: blur(3px);\n\t\t}\n\t}\n\n\t/* Gradient text effect on typed text */\n\t#typewriter :global(.ti-container) {\n\t\tbackground: linear-gradient(\n\t\t\t90deg,\n\t\t\tcurrentColor 0%,\n\t\t\tcurrentColor 70%,\n\t\t\ttransparent 100%\n\t\t);\n\t\t-webkit-background-clip: text;\n\t\tbackground-clip: text;\n\t\tanimation: gradient-shift 3s ease-in-out infinite;\n\t}\n\n\t@keyframes gradient-shift {\n\t\t0%, 100% {\n\t\t\tfilter: brightness(1) saturate(1);\n\t\t}\n\t\t50% {\n\t\t\tfilter: brightness(1.15) saturate(1.2);\n\t\t}\n\t}\n\n\t/* Smooth transitions for all text */\n\t#typewriter * {\n\t\ttransition: opacity 0.15s ease-out, transform 0.15s cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n`) {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 35\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 = 20\n\n\t/**\n\t * Only animate once per session.\n\t */\n\t@property({ type: Boolean }) once = true\n\n\t/**\n\t * Loop the animation infinitely (overrides once).\n\t */\n\t@property({ type: Boolean }) loop = false\n\n\t/**\n\t * Default pause duration for cycling (ms).\n\t */\n\t@property({ type: Number }) cyclePause = 1500\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\tloop: this.loop,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once && !this.loop) {\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 (unless looping)\n\t\t\t\tif (!this.loop) {\n\t\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t\t}\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 - skip whitespace-only text nodes\n\t\t\t\tconst textContent = node.textContent || ''\n\t\t\t\tif (textContent.trim()) {\n\t\t\t\t\tthis.typeItInstance?.type(textContent)\n\t\t\t\t}\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\tconst cycle = element.getAttribute('cycle')\n\n\t\t// Handle cycle attribute - simple pipe-separated list\n\t\tif (cycle) {\n\t\t\tconst items = cycle.split('|').map(item => item.trim())\n\t\t\tthis._processCycle(items, element)\n\t\t\treturn\n\t\t}\n\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 * Processes cycling text with auto-calculated delete counts.\n\t */\n\tprivate _processCycle(items: string[], element: HTMLElement) {\n\t\tif (items.length === 0) return\n\n\t\tconst customPause = element.getAttribute('pause')\n\t\tconst pauseDuration = customPause ? parseInt(customPause, 10) : this.cyclePause\n\n\t\t// Type each item with automatic deletion\n\t\titems.forEach((item, index) => {\n\t\t\t// Type the item\n\t\t\tthis.typeItInstance?.type(item)\n\n\t\t\t// Pause after typing (except after last item when not looping)\n\t\t\tif (index < items.length - 1 || this.loop) {\n\t\t\t\tthis.typeItInstance?.pause(pauseDuration)\n\t\t\t}\n\n\t\t\t// Delete back to start (except for last item when not looping)\n\t\t\tif (index < items.length - 1) {\n\t\t\t\tthis.typeItInstance?.delete(item.length)\n\t\t\t} else if (this.loop) {\n\t\t\t\t// For looping, delete and start over\n\t\t\t\tthis.typeItInstance?.delete(item.length)\n\t\t\t}\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"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"typewriter-B2TnHPjw.cjs","names":["#buildOptions","#setUpCursor","#generateQueue","#attachCursor","#fire","#removeNode","#elementIsInput","#generateTemporaryOptionQueueItems","#type","#getPace","#queueAndReturn","#derivedCursorPosition","#move","#updateOptions","#delete","#empty","#allChars","#fireItemWithContext","#wait","#prepLoop","#shouldRenderCursor","#maybeAppendPause","#addSplitPause","#prependHardcodedStrings","#isInput"],"sources":["../node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { 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: inline-block;\n\t}\n\n\t#typewriter {\n\t\tposition: relative;\n\t}\n\n\t/* Enhanced cursor with glow effect */\n\t#typewriter :global(.ti-cursor) {\n\t\tanimation: cursor-pulse 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n\t\tcolor: currentColor;\n\t\tfilter: drop-shadow(0 0 8px currentColor);\n\t}\n\n\t@keyframes cursor-pulse {\n\t\t0%, 100% {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.3;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t}\n\n\t/* Character entrance animation */\n\t#typewriter :global(.ti-container *) {\n\t\tanimation: char-entrance 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;\n\t}\n\n\t@keyframes char-entrance {\n\t\t0% {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.3) translateY(10px);\n\t\t\tfilter: blur(4px);\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.8;\n\t\t\ttransform: scale(1.1) translateY(-2px);\n\t\t}\n\t\t100% {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1) translateY(0);\n\t\t\tfilter: blur(0);\n\t\t}\n\t}\n\n\t/* Subtle character wobble on appear */\n\t#typewriter :global(.ti-container *:nth-child(odd)) {\n\t\tanimation: char-entrance 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) backwards,\n\t\t char-wobble 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s backwards;\n\t}\n\n\t@keyframes char-wobble {\n\t\t0%, 100% {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\t25% {\n\t\t\ttransform: rotate(2deg);\n\t\t}\n\t\t75% {\n\t\t\ttransform: rotate(-2deg);\n\t\t}\n\t}\n\n\t/* Deletion animation - fade out and scale down */\n\t#typewriter :global(.ti-container .deleting) {\n\t\tanimation: char-delete 0.2s cubic-bezier(0.4, 0, 1, 1) forwards;\n\t}\n\n\t@keyframes char-delete {\n\t\t0% {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t\tfilter: blur(0);\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.5;\n\t\t\ttransform: scale(0.8) translateY(-3px);\n\t\t}\n\t\t100% {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.4) translateY(-8px);\n\t\t\tfilter: blur(3px);\n\t\t}\n\t}\n\n\t/* Gradient text effect on typed text */\n\t#typewriter :global(.ti-container) {\n\t\tbackground: linear-gradient(\n\t\t\t90deg,\n\t\t\tcurrentColor 0%,\n\t\t\tcurrentColor 70%,\n\t\t\ttransparent 100%\n\t\t);\n\t\t-webkit-background-clip: text;\n\t\tbackground-clip: text;\n\t\tanimation: gradient-shift 3s ease-in-out infinite;\n\t}\n\n\t@keyframes gradient-shift {\n\t\t0%, 100% {\n\t\t\tfilter: brightness(1) saturate(1);\n\t\t}\n\t\t50% {\n\t\t\tfilter: brightness(1.15) saturate(1.2);\n\t\t}\n\t}\n\n\t/* Smooth transitions for all text */\n\t#typewriter * {\n\t\ttransition: opacity 0.15s ease-out, transform 0.15s cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n`) {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 35\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 = 20\n\n\t/**\n\t * Only animate once per session.\n\t */\n\t@property({ type: Boolean }) once = true\n\n\t/**\n\t * Loop the animation infinitely (overrides once).\n\t */\n\t@property({ type: Boolean }) loop = false\n\n\t/**\n\t * Default pause duration for cycling (ms).\n\t */\n\t@property({ type: Number }) cyclePause = 1500\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\tloop: this.loop,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once && !this.loop) {\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 (unless looping)\n\t\t\t\tif (!this.loop) {\n\t\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t\t}\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 - skip whitespace-only text nodes\n\t\t\t\tconst textContent = node.textContent || ''\n\t\t\t\tif (textContent.trim()) {\n\t\t\t\t\tthis.typeItInstance?.type(textContent)\n\t\t\t\t}\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\tconst cycle = element.getAttribute('cycle')\n\n\t\t// Handle cycle attribute - simple pipe-separated list\n\t\tif (cycle) {\n\t\t\tconst items = cycle.split('|').map(item => item.trim())\n\t\t\tthis._processCycle(items, element)\n\t\t\treturn\n\t\t}\n\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 * Processes cycling text with auto-calculated delete counts.\n\t */\n\tprivate _processCycle(items: string[], element: HTMLElement) {\n\t\tif (items.length === 0) return\n\n\t\tconst customPause = element.getAttribute('pause')\n\t\tconst pauseDuration = customPause ? parseInt(customPause, 10) : this.cyclePause\n\n\t\t// Type each item with automatic deletion\n\t\titems.forEach((item, index) => {\n\t\t\t// Type the item\n\t\t\tthis.typeItInstance?.type(item)\n\n\t\t\t// Pause after typing (except after last item when not looping)\n\t\t\tif (index < items.length - 1 || this.loop) {\n\t\t\t\tthis.typeItInstance?.pause(pauseDuration)\n\t\t\t}\n\n\t\t\t// Delete back to start (except for last item when not looping)\n\t\t\tif (index < items.length - 1) {\n\t\t\t\tthis.typeItInstance?.delete(item.length)\n\t\t\t} else if (this.loop) {\n\t\t\t\t// For looping, delete and start over\n\t\t\t\tthis.typeItInstance?.delete(item.length)\n\t\t\t}\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"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { i as e, o as t } from "./tailwind.mixin-BIVhjNvD.js";
2
- import { t as n } from "./litElement.mixin-Dm-4L8zL.js";
1
+ import { i as e, o as t } from "./tailwind.mixin-BCJOOX1_.js";
2
+ import { t as n } from "./litElement.mixin-6jJYHCrZ.js";
3
3
  import "./mixins.js";
4
- import { n as r } from "./delay-IV0Swce2.js";
4
+ import { n as r } from "./delay-CgX6m0HN.js";
5
5
  import { t as i } from "./hashContent-DYM21p6t.js";
6
6
  import { t as a } from "./intersection-BPLpqYEd.js";
7
7
  import { customElement as o, property as s, query as c, queryAssignedElements as l, queryAssignedNodes as u } from "lit/decorators.js";