@mhmo91/schmancy 0.6.17 → 0.6.18

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 (325) hide show
  1. package/ai/surface.md +122 -10
  2. package/dist/ai/surface.md +122 -10
  3. package/dist/{animated-text-Cp_4seiu.cjs → animated-text-CgKXZOvy.cjs} +2 -2
  4. package/dist/{animated-text-Cp_4seiu.cjs.map → animated-text-CgKXZOvy.cjs.map} +1 -1
  5. package/dist/{animated-text-B8iGYrYI.js → animated-text-Df3UZBT2.js} +3 -3
  6. package/dist/{animated-text-B8iGYrYI.js.map → animated-text-Df3UZBT2.js.map} +1 -1
  7. package/dist/animated-text.cjs +1 -1
  8. package/dist/animated-text.js +1 -1
  9. package/dist/area.cjs +1 -1
  10. package/dist/{area.component-DHYxBzb7.js → area.component-DXQff5kK.js} +3 -3
  11. package/dist/{area.component-DHYxBzb7.js.map → area.component-DXQff5kK.js.map} +1 -1
  12. package/dist/{area.component-CCwwAl-Y.cjs → area.component-_AwKbrLf.cjs} +2 -2
  13. package/dist/{area.component-CCwwAl-Y.cjs.map → area.component-_AwKbrLf.cjs.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-pmX57mE7.cjs → autocomplete-DEzGDw9s.cjs} +2 -2
  16. package/dist/{autocomplete-pmX57mE7.cjs.map → autocomplete-DEzGDw9s.cjs.map} +1 -1
  17. package/dist/{autocomplete-yPq8zNOI.js → autocomplete-DLzc6eqO.js} +4 -4
  18. package/dist/{autocomplete-yPq8zNOI.js.map → autocomplete-DLzc6eqO.js.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-C_6IwWuo.js → avatar-RIbulvWL.js} +51 -51
  22. package/dist/{avatar-C_6IwWuo.js.map → avatar-RIbulvWL.js.map} +1 -1
  23. package/dist/{avatar-BE78CIkm.cjs → avatar-Wu763qgL.cjs} +2 -2
  24. package/dist/{avatar-BE78CIkm.cjs.map → avatar-Wu763qgL.cjs.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-DdWgKGDm.js → boat-CWADeoFv.js} +3 -3
  28. package/dist/{boat-DdWgKGDm.js.map → boat-CWADeoFv.js.map} +1 -1
  29. package/dist/{boat-D-tWc7q3.cjs → boat-VzOnSD8z.cjs} +2 -2
  30. package/dist/{boat-D-tWc7q3.cjs.map → boat-VzOnSD8z.cjs.map} +1 -1
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/busy.cjs +1 -1
  34. package/dist/busy.js +1 -1
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.js +1 -1
  37. package/dist/card.cjs +1 -1
  38. package/dist/card.js +1 -1
  39. package/dist/{checkbox-sd72C6z5.cjs → checkbox-DClxbWbU.cjs} +2 -2
  40. package/dist/{checkbox-sd72C6z5.cjs.map → checkbox-DClxbWbU.cjs.map} +1 -1
  41. package/dist/{checkbox-C-EFwpvs.js → checkbox-ZryxdmZz.js} +2 -2
  42. package/dist/{checkbox-C-EFwpvs.js.map → checkbox-ZryxdmZz.js.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/chips.cjs +1 -1
  46. package/dist/chips.js +2 -2
  47. package/dist/code-highlight.cjs +1 -1
  48. package/dist/code-highlight.js +1 -1
  49. package/dist/{code-preview-DU8t16Io.js → code-preview-Bn2K5K9h.js} +2 -2
  50. package/dist/{code-preview-DU8t16Io.js.map → code-preview-Bn2K5K9h.js.map} +1 -1
  51. package/dist/{code-preview-DWvUMJXJ.cjs → code-preview-BoYqlMxl.cjs} +2 -2
  52. package/dist/{code-preview-DWvUMJXJ.cjs.map → code-preview-BoYqlMxl.cjs.map} +1 -1
  53. package/dist/components.cjs +1 -1
  54. package/dist/components.js +1 -1
  55. package/dist/content-drawer.cjs +1 -1
  56. package/dist/content-drawer.js +1 -1
  57. package/dist/{date-range-GOzI_28R.cjs → date-range-B-rPnyst.cjs} +2 -2
  58. package/dist/{date-range-GOzI_28R.cjs.map → date-range-B-rPnyst.cjs.map} +1 -1
  59. package/dist/{date-range-C6plrAKq.js → date-range-CCQsqKSy.js} +3 -3
  60. package/dist/{date-range-C6plrAKq.js.map → date-range-CCQsqKSy.js.map} +1 -1
  61. package/dist/{date-range-inline-BzdUNxOn.js → date-range-inline-DO0Ps_QS.js} +3 -3
  62. package/dist/{date-range-inline-BzdUNxOn.js.map → date-range-inline-DO0Ps_QS.js.map} +1 -1
  63. package/dist/{date-range-inline-CIq1qoPA.cjs → date-range-inline-NACS06ev.cjs} +2 -2
  64. package/dist/{date-range-inline-CIq1qoPA.cjs.map → date-range-inline-NACS06ev.cjs.map} +1 -1
  65. package/dist/date-range-inline.cjs +1 -1
  66. package/dist/date-range-inline.js +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-NrcUS15l.js → delay-BaltOHAs.js} +2 -2
  70. package/dist/{delay-NrcUS15l.js.map → delay-BaltOHAs.js.map} +1 -1
  71. package/dist/{delay-DoqqTMT9.cjs → delay-DzqfMSBJ.cjs} +2 -2
  72. package/dist/{delay-DoqqTMT9.cjs.map → delay-DzqfMSBJ.cjs.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/{details-BSkVxC5z.js → details-Bic4ZKNZ.js} +2 -2
  76. package/dist/{details-BSkVxC5z.js.map → details-Bic4ZKNZ.js.map} +1 -1
  77. package/dist/{details-CE2aawZr.cjs → details-DPSpg2dL.cjs} +2 -2
  78. package/dist/{details-CE2aawZr.cjs.map → details-DPSpg2dL.cjs.map} +1 -1
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-CZANVFV4.cjs → dialog-content-CR4l1Yts.cjs} +2 -2
  82. package/dist/{dialog-content-CZANVFV4.cjs.map → dialog-content-CR4l1Yts.cjs.map} +1 -1
  83. package/dist/{dialog-content-B6coEskF.js → dialog-content-CwsV3nWG.js} +3 -3
  84. package/dist/{dialog-content-B6coEskF.js.map → dialog-content-CwsV3nWG.js.map} +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-DJZwg-YL.js → divider-ChXDN5-E.js} +3 -3
  88. package/dist/{divider-DJZwg-YL.js.map → divider-ChXDN5-E.js.map} +1 -1
  89. package/dist/{divider-BLRJorDu.cjs → divider-CpiE9MZW.cjs} +2 -2
  90. package/dist/{divider-BLRJorDu.cjs.map → divider-CpiE9MZW.cjs.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/{dropdown-content-BxPsdPhI.cjs → dropdown-content-8I1uIUoF.cjs} +2 -2
  94. package/dist/{dropdown-content-BxPsdPhI.cjs.map → dropdown-content-8I1uIUoF.cjs.map} +1 -1
  95. package/dist/{dropdown-content-BsnFk-nJ.js → dropdown-content-BmA6vuhB.js} +3 -3
  96. package/dist/{dropdown-content-BsnFk-nJ.js.map → dropdown-content-BmA6vuhB.js.map} +1 -1
  97. package/dist/dropdown.cjs +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/{email-recipients-2cYEfkH9.cjs → email-recipients-Cl_-UNWo.cjs} +2 -2
  100. package/dist/{email-recipients-2cYEfkH9.cjs.map → email-recipients-Cl_-UNWo.cjs.map} +1 -1
  101. package/dist/{email-recipients-BpeZJENf.js → email-recipients-Ew87bYRp.js} +6 -6
  102. package/dist/{email-recipients-BpeZJENf.js.map → email-recipients-Ew87bYRp.js.map} +1 -1
  103. package/dist/extra.cjs +1 -1
  104. package/dist/extra.js +1 -1
  105. package/dist/{flex-BbFqMmJg.js → flex-CW7oSqU1.js} +2 -2
  106. package/dist/{flex-BbFqMmJg.js.map → flex-CW7oSqU1.js.map} +1 -1
  107. package/dist/{flex-Dq9FKhvn.cjs → flex-DsHnuUb7.cjs} +2 -2
  108. package/dist/{flex-Dq9FKhvn.cjs.map → flex-DsHnuUb7.cjs.map} +1 -1
  109. package/dist/{form-QA4ruG62.js → form-C5d6gWUg.js} +2 -2
  110. package/dist/{form-QA4ruG62.js.map → form-C5d6gWUg.js.map} +1 -1
  111. package/dist/{form-9Eka_fiN.cjs → form-DZ9l7TjO.cjs} +2 -2
  112. package/dist/{form-9Eka_fiN.cjs.map → form-DZ9l7TjO.cjs.map} +1 -1
  113. package/dist/form.cjs +1 -1
  114. package/dist/form.js +1 -1
  115. package/dist/{formField.mixin-CYJF9Y62.cjs → formField.mixin-BW4RaqbT.cjs} +2 -2
  116. package/dist/{formField.mixin-CYJF9Y62.cjs.map → formField.mixin-BW4RaqbT.cjs.map} +1 -1
  117. package/dist/{formField.mixin-CgiAzRuy.js → formField.mixin-DpD9oPMR.js} +2 -2
  118. package/dist/{formField.mixin-CgiAzRuy.js.map → formField.mixin-DpD9oPMR.js.map} +1 -1
  119. package/dist/{icon-DUB5k2gF.js → icon-BATnNWHh.js} +2 -2
  120. package/dist/{icon-DUB5k2gF.js.map → icon-BATnNWHh.js.map} +1 -1
  121. package/dist/{icon-CfC-30so.cjs → icon-CV5KKSMK.cjs} +2 -2
  122. package/dist/{icon-CfC-30so.cjs.map → icon-CV5KKSMK.cjs.map} +1 -1
  123. package/dist/{icon-button-CM5LpeUv.js → icon-button-BlyzaNtE.js} +11 -9
  124. package/dist/icon-button-BlyzaNtE.js.map +1 -0
  125. package/dist/{icon-button-CD3zR7_w.cjs → icon-button-CST9ztNW.cjs} +4 -2
  126. package/dist/icon-button-CST9ztNW.cjs.map +1 -0
  127. package/dist/icons.cjs +1 -1
  128. package/dist/icons.js +1 -1
  129. package/dist/index.cjs +1 -1
  130. package/dist/index.js +50 -50
  131. package/dist/{input-ZPc0PgSj.js → input-BJvZX3nK.js} +3 -3
  132. package/dist/{input-ZPc0PgSj.js.map → input-BJvZX3nK.js.map} +1 -1
  133. package/dist/{input-D1IQ2HAv.cjs → input-RPj2xLz4.cjs} +2 -2
  134. package/dist/{input-D1IQ2HAv.cjs.map → input-RPj2xLz4.cjs.map} +1 -1
  135. package/dist/{input-chip-Bt-qOSEB.cjs → input-chip-CGilKpgN.cjs} +2 -2
  136. package/dist/{input-chip-Bt-qOSEB.cjs.map → input-chip-CGilKpgN.cjs.map} +1 -1
  137. package/dist/{input-chip-DPmwgnLg.js → input-chip-CyvaAJiR.js} +2 -2
  138. package/dist/{input-chip-DPmwgnLg.js.map → input-chip-CyvaAJiR.js.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-BSbuXagR.cjs → list-Dphnkgjm.cjs} +2 -2
  144. package/dist/{list-BSbuXagR.cjs.map → list-Dphnkgjm.cjs.map} +1 -1
  145. package/dist/{list-CyeSi6on.js → list-Dqwbw_0L.js} +2 -2
  146. package/dist/{list-CyeSi6on.js.map → list-Dqwbw_0L.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-BfKE8dJc.cjs → litElement.mixin-1i17ImwN.cjs} +2 -2
  150. package/dist/{litElement.mixin-BfKE8dJc.cjs.map → litElement.mixin-1i17ImwN.cjs.map} +1 -1
  151. package/dist/{litElement.mixin-DYomCqIu.js → litElement.mixin-BbwZRaPp.js} +2 -2
  152. package/dist/{litElement.mixin-DYomCqIu.js.map → litElement.mixin-BbwZRaPp.js.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-B0RIANKu.js → map-BHfXl4eZ.js} +2 -2
  156. package/dist/{map-B0RIANKu.js.map → map-BHfXl4eZ.js.map} +1 -1
  157. package/dist/{map-dviafjXB.cjs → map-DEjWWl14.cjs} +2 -2
  158. package/dist/{map-dviafjXB.cjs.map → map-DEjWWl14.cjs.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/{media-CWsGoRyl.js → media-CFqac3i-.js} +2 -2
  162. package/dist/{media-CWsGoRyl.js.map → media-CFqac3i-.js.map} +1 -1
  163. package/dist/{media-C7X1ikuw.cjs → media-wEB2juTQ.cjs} +2 -2
  164. package/dist/{media-C7X1ikuw.cjs.map → media-wEB2juTQ.cjs.map} +1 -1
  165. package/dist/{menu-xrrIvGSW.js → menu-BlR27aWR.js} +3 -3
  166. package/dist/{menu-xrrIvGSW.js.map → menu-BlR27aWR.js.map} +1 -1
  167. package/dist/{menu-BLqx4UO2.cjs → menu-DYWTnN4u.cjs} +2 -2
  168. package/dist/{menu-BLqx4UO2.cjs.map → menu-DYWTnN4u.cjs.map} +1 -1
  169. package/dist/menu.cjs +1 -1
  170. package/dist/menu.js +1 -1
  171. package/dist/nav-drawer.cjs +1 -1
  172. package/dist/nav-drawer.js +1 -1
  173. package/dist/navigation-bar.cjs +1 -1
  174. package/dist/navigation-bar.js +1 -1
  175. package/dist/{navigation-rail-BG2bMjOl.js → navigation-rail-Cdklj_Vy.js} +3 -3
  176. package/dist/{navigation-rail-BG2bMjOl.js.map → navigation-rail-Cdklj_Vy.js.map} +1 -1
  177. package/dist/{navigation-rail-D_IprLlU.cjs → navigation-rail-eNmqnFXJ.cjs} +2 -2
  178. package/dist/{navigation-rail-D_IprLlU.cjs.map → navigation-rail-eNmqnFXJ.cjs.map} +1 -1
  179. package/dist/navigation-rail.cjs +1 -1
  180. package/dist/navigation-rail.js +1 -1
  181. package/dist/{notification-service-DFQoqjNa.js → notification-service-CqxmKVJX.js} +4 -4
  182. package/dist/{notification-service-DFQoqjNa.js.map → notification-service-CqxmKVJX.js.map} +1 -1
  183. package/dist/{notification-service-CgloltK7.cjs → notification-service-jityv87S.cjs} +2 -2
  184. package/dist/{notification-service-CgloltK7.cjs.map → notification-service-jityv87S.cjs.map} +1 -1
  185. package/dist/notification.cjs +1 -1
  186. package/dist/notification.js +2 -2
  187. package/dist/{notify-ByAaGcdh.js → notify-C8EM_JmR.js} +2 -2
  188. package/dist/{notify-ByAaGcdh.js.map → notify-C8EM_JmR.js.map} +1 -1
  189. package/dist/{notify-CKK9jYPV.cjs → notify-CxqHlCZF.cjs} +2 -2
  190. package/dist/{notify-CKK9jYPV.cjs.map → notify-CxqHlCZF.cjs.map} +1 -1
  191. package/dist/{option-D39HiGpX.cjs → option-CBQoRZ86.cjs} +2 -2
  192. package/dist/{option-D39HiGpX.cjs.map → option-CBQoRZ86.cjs.map} +1 -1
  193. package/dist/{option-BdAu99R9.js → option-COJIldwK.js} +2 -2
  194. package/dist/{option-BdAu99R9.js.map → option-COJIldwK.js.map} +1 -1
  195. package/dist/option.cjs +1 -1
  196. package/dist/option.js +1 -1
  197. package/dist/{payment-card-form-Bwlayv0c.cjs → payment-card-form-BzDuKScU.cjs} +2 -2
  198. package/dist/{payment-card-form-Bwlayv0c.cjs.map → payment-card-form-BzDuKScU.cjs.map} +1 -1
  199. package/dist/{payment-card-form-Dzkw0Zxb.js → payment-card-form-CHMYeZs2.js} +3 -3
  200. package/dist/{payment-card-form-Dzkw0Zxb.js.map → payment-card-form-CHMYeZs2.js.map} +1 -1
  201. package/dist/{progress-B2OiyRFr.js → progress-CtNg2SPw.js} +2 -2
  202. package/dist/{progress-B2OiyRFr.js.map → progress-CtNg2SPw.js.map} +1 -1
  203. package/dist/{progress-xtDRWuk5.cjs → progress-nOhWloHs.cjs} +2 -2
  204. package/dist/{progress-xtDRWuk5.cjs.map → progress-nOhWloHs.cjs.map} +1 -1
  205. package/dist/progress.cjs +1 -1
  206. package/dist/progress.js +1 -1
  207. package/dist/{radio-button-q537q2UW.js → radio-button-DggshTfa.js} +3 -3
  208. package/dist/{radio-button-q537q2UW.js.map → radio-button-DggshTfa.js.map} +1 -1
  209. package/dist/{radio-button-CvbFaOTU.cjs → radio-button-DttgXEeY.cjs} +2 -2
  210. package/dist/{radio-button-CvbFaOTU.cjs.map → radio-button-DttgXEeY.cjs.map} +1 -1
  211. package/dist/radio-group.cjs +1 -1
  212. package/dist/radio-group.js +1 -1
  213. package/dist/{schmancy-steps-container-BXtHI-tR.js → schmancy-steps-container-DhtHaKgX.js} +2 -2
  214. package/dist/{schmancy-steps-container-BXtHI-tR.js.map → schmancy-steps-container-DhtHaKgX.js.map} +1 -1
  215. package/dist/{schmancy-steps-container-Bhl3Bn6r.cjs → schmancy-steps-container-hIBLjMgI.cjs} +2 -2
  216. package/dist/{schmancy-steps-container-Bhl3Bn6r.cjs.map → schmancy-steps-container-hIBLjMgI.cjs.map} +1 -1
  217. package/dist/{select-CCKHSCwG.js → select-BqyRn0cF.js} +3 -3
  218. package/dist/{select-CCKHSCwG.js.map → select-BqyRn0cF.js.map} +1 -1
  219. package/dist/{select-CVIMXcxl.cjs → select-xZKW8cHu.cjs} +2 -2
  220. package/dist/{select-CVIMXcxl.cjs.map → select-xZKW8cHu.cjs.map} +1 -1
  221. package/dist/select.cjs +1 -1
  222. package/dist/select.js +1 -1
  223. package/dist/{sheet-B0UL6iVh.cjs → sheet-C6Liqa_3.cjs} +2 -2
  224. package/dist/{sheet-B0UL6iVh.cjs.map → sheet-C6Liqa_3.cjs.map} +1 -1
  225. package/dist/{sheet-BqvL8L7x.js → sheet-DE8jIQUk.js} +5 -5
  226. package/dist/{sheet-BqvL8L7x.js.map → sheet-DE8jIQUk.js.map} +1 -1
  227. package/dist/sheet.cjs +1 -1
  228. package/dist/sheet.js +2 -2
  229. package/dist/{sheet.service-C6493Pke.js → sheet.service-1jZMJbNp.js} +2 -2
  230. package/dist/{sheet.service-C6493Pke.js.map → sheet.service-1jZMJbNp.js.map} +1 -1
  231. package/dist/{sheet.service-ADoGq10G.cjs → sheet.service-NAV5vSsM.cjs} +2 -2
  232. package/dist/{sheet.service-ADoGq10G.cjs.map → sheet.service-NAV5vSsM.cjs.map} +1 -1
  233. package/dist/{slider-Bc_6eyrO.js → slider-BvbkpEef.js} +3 -3
  234. package/dist/{slider-Bc_6eyrO.js.map → slider-BvbkpEef.js.map} +1 -1
  235. package/dist/{slider-Cl84WZAd.cjs → slider-lEoCLK-7.cjs} +2 -2
  236. package/dist/{slider-Cl84WZAd.cjs.map → slider-lEoCLK-7.cjs.map} +1 -1
  237. package/dist/slider.cjs +1 -1
  238. package/dist/slider.js +1 -1
  239. package/dist/{spinner-CQQSTCev.cjs → spinner-CQxy0lF3.cjs} +2 -2
  240. package/dist/{spinner-CQQSTCev.cjs.map → spinner-CQxy0lF3.cjs.map} +1 -1
  241. package/dist/{spinner-DZIA0ztk.js → spinner-DdG6BEOr.js} +2 -2
  242. package/dist/{spinner-DZIA0ztk.js.map → spinner-DdG6BEOr.js.map} +1 -1
  243. package/dist/steps.cjs +1 -1
  244. package/dist/steps.js +1 -1
  245. package/dist/{suggestion-chip-C7umNn8S.js → suggestion-chip-BRz15zwU.js} +3 -3
  246. package/dist/{suggestion-chip-C7umNn8S.js.map → suggestion-chip-BRz15zwU.js.map} +1 -1
  247. package/dist/{suggestion-chip-BzRaUcJI.cjs → suggestion-chip-DK4xFJvZ.cjs} +2 -2
  248. package/dist/{suggestion-chip-BzRaUcJI.cjs.map → suggestion-chip-DK4xFJvZ.cjs.map} +1 -1
  249. package/dist/{surface-CE6siCtd.cjs → surface-Bt1FetPM.cjs} +58 -3
  250. package/dist/surface-Bt1FetPM.cjs.map +1 -0
  251. package/dist/{surface-CAHL8-r2.js → surface-C3vER2uq.js} +68 -13
  252. package/dist/surface-C3vER2uq.js.map +1 -0
  253. package/dist/surface.cjs +1 -1
  254. package/dist/surface.js +1 -1
  255. package/dist/{table-CE5zNYKo.cjs → table-DYay68qu.cjs} +2 -2
  256. package/dist/{table-CE5zNYKo.cjs.map → table-DYay68qu.cjs.map} +1 -1
  257. package/dist/{table-CF6jit0u.js → table-DhheYeQ8.js} +2 -2
  258. package/dist/{table-CF6jit0u.js.map → table-DhheYeQ8.js.map} +1 -1
  259. package/dist/table.cjs +1 -1
  260. package/dist/table.js +1 -1
  261. package/dist/{tabs-compatibility-CEZTTGar.js → tabs-compatibility-C-gQwADa.js} +2 -2
  262. package/dist/{tabs-compatibility-CEZTTGar.js.map → tabs-compatibility-C-gQwADa.js.map} +1 -1
  263. package/dist/{tabs-compatibility-C2rKG59P.cjs → tabs-compatibility-Dz5YaB06.cjs} +2 -2
  264. package/dist/{tabs-compatibility-C2rKG59P.cjs.map → tabs-compatibility-Dz5YaB06.cjs.map} +1 -1
  265. package/dist/tabs.cjs +1 -1
  266. package/dist/tabs.js +1 -1
  267. package/dist/{tailwind.mixin-N1MaFaUo.js → tailwind.mixin-BTS7jBB1.js} +2 -2
  268. package/dist/{tailwind.mixin-N1MaFaUo.js.map → tailwind.mixin-BTS7jBB1.js.map} +1 -1
  269. package/dist/{tailwind.mixin-I9Q1jeEr.cjs → tailwind.mixin-Ge3p8F8Z.cjs} +2 -2
  270. package/dist/{tailwind.mixin-I9Q1jeEr.cjs.map → tailwind.mixin-Ge3p8F8Z.cjs.map} +1 -1
  271. package/dist/teleport.cjs +1 -1
  272. package/dist/teleport.js +1 -1
  273. package/dist/{textarea-BDivoZfH.js → textarea-DmoZM65K.js} +2 -2
  274. package/dist/{textarea-BDivoZfH.js.map → textarea-DmoZM65K.js.map} +1 -1
  275. package/dist/{textarea-DsqzyNLB.cjs → textarea-Dn1lmlIx.cjs} +2 -2
  276. package/dist/{textarea-DsqzyNLB.cjs.map → textarea-Dn1lmlIx.cjs.map} +1 -1
  277. package/dist/textarea.cjs +1 -1
  278. package/dist/textarea.js +1 -1
  279. package/dist/{theme-button-Dd344f5C.js → theme-button-BkoRO_Ko.js} +2 -2
  280. package/dist/{theme-button-Dd344f5C.js.map → theme-button-BkoRO_Ko.js.map} +1 -1
  281. package/dist/{theme-button-i1gafNgr.cjs → theme-button-CtF2dxRy.cjs} +2 -2
  282. package/dist/{theme-button-i1gafNgr.cjs.map → theme-button-CtF2dxRy.cjs.map} +1 -1
  283. package/dist/theme-button.cjs +1 -1
  284. package/dist/theme-button.js +1 -1
  285. package/dist/{theme-controller-boat-CpyUG712.cjs → theme-controller-boat-CBQlbHHc.cjs} +2 -2
  286. package/dist/{theme-controller-boat-CpyUG712.cjs.map → theme-controller-boat-CBQlbHHc.cjs.map} +1 -1
  287. package/dist/{theme-controller-boat-aZ_v5n-0.js → theme-controller-boat-DDsW4EOJ.js} +3 -3
  288. package/dist/{theme-controller-boat-aZ_v5n-0.js.map → theme-controller-boat-DDsW4EOJ.js.map} +1 -1
  289. package/dist/theme.cjs +1 -1
  290. package/dist/theme.js +1 -1
  291. package/dist/{timezone-aOO7z9Qo.js → timezone-C-V8qJE3.js} +3 -3
  292. package/dist/{timezone-aOO7z9Qo.js.map → timezone-C-V8qJE3.js.map} +1 -1
  293. package/dist/{timezone-T8C73VAV.cjs → timezone-DM_3vLZj.cjs} +2 -2
  294. package/dist/{timezone-T8C73VAV.cjs.map → timezone-DM_3vLZj.cjs.map} +1 -1
  295. package/dist/{tooltip-Dn_MGXjw.js → tooltip-Cw5mfhRj.js} +2 -2
  296. package/dist/{tooltip-Dn_MGXjw.js.map → tooltip-Cw5mfhRj.js.map} +1 -1
  297. package/dist/{tooltip-CdhFhx_T.cjs → tooltip-DntsYOsj.cjs} +2 -2
  298. package/dist/{tooltip-CdhFhx_T.cjs.map → tooltip-DntsYOsj.cjs.map} +1 -1
  299. package/dist/tooltip.cjs +1 -1
  300. package/dist/tooltip.js +1 -1
  301. package/dist/{tree-BCKEHEwK.cjs → tree-C3487udC.cjs} +2 -2
  302. package/dist/{tree-BCKEHEwK.cjs.map → tree-C3487udC.cjs.map} +1 -1
  303. package/dist/{tree-Dcob4BMm.js → tree-DimUJjcj.js} +2 -2
  304. package/dist/{tree-Dcob4BMm.js.map → tree-DimUJjcj.js.map} +1 -1
  305. package/dist/tree.cjs +1 -1
  306. package/dist/tree.js +1 -1
  307. package/dist/{typewriter-Cd-6RBof.js → typewriter-B7nBcBU9.js} +4 -4
  308. package/dist/{typewriter-Cd-6RBof.js.map → typewriter-B7nBcBU9.js.map} +1 -1
  309. package/dist/{typewriter-BQuKztry.cjs → typewriter-CHcRZUee.cjs} +2 -2
  310. package/dist/{typewriter-BQuKztry.cjs.map → typewriter-CHcRZUee.cjs.map} +1 -1
  311. package/dist/typewriter.cjs +1 -1
  312. package/dist/typewriter.js +1 -1
  313. package/dist/{typography-BYjA_BbW.cjs → typography-CRVUouR2.cjs} +2 -2
  314. package/dist/{typography-BYjA_BbW.cjs.map → typography-CRVUouR2.cjs.map} +1 -1
  315. package/dist/{typography-B8r6CRfv.js → typography-DnZjZEIe.js} +2 -2
  316. package/dist/{typography-B8r6CRfv.js.map → typography-DnZjZEIe.js.map} +1 -1
  317. package/dist/typography.cjs +1 -1
  318. package/dist/typography.js +1 -1
  319. package/package.json +1 -1
  320. package/types/src/surface/surface.d.ts +4 -1
  321. package/types/src/types/surface.d.ts +1 -1
  322. package/dist/icon-button-CD3zR7_w.cjs.map +0 -1
  323. package/dist/icon-button-CM5LpeUv.js.map +0 -1
  324. package/dist/surface-CAHL8-r2.js.map +0 -1
  325. package/dist/surface-CE6siCtd.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typewriter-BQuKztry.cjs","sources":["../node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, queryAssignedNodes } from 'lit/decorators.js'\nimport TypeIt, { Options as TypeItOptions } from 'typeit'\n\n@customElement('schmancy-typewriter')\nexport class TypewriterElement extends $LitElement() {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 50\n\n\t/**\n\t * Delay before typing starts (ms).\n\t */\n\t@consume({ context: delayContext, subscribe: true })\n\t@property({ type: Number })\n\tdelay: number = 0\n\n\t/**\n\t * Automatically start typing on initialization.\n\t */\n\t@property({ type: Boolean })\n\tautoStart: boolean = true\n\n\t/**\n\t * The cursor character.\n\t */\n\t@property({ type: String })\n\tcursorChar: string = ''\n\n\t/**\n\t * Typing speed for deletions (ms per character).\n\t */\n\t@property({ type: Number })\n\tdeleteSpeed: number = 25\n\n\t@property({ type: Boolean }) once = true\n\t/**\n\t * TypeIt instance.\n\t */\n\tprivate typeItInstance: TypeIt | null = null\n\n\t/**\n\t * Reference to the typewriter container.\n\t */\n\t@query('#typewriter')\n\tprivate typewriterContainer!: HTMLElement\n\n\t@queryAssignedNodes({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedNodes!: Node[]\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedElements!: HTMLElement[]\n\t/**\n\t * Lifecycle method called when the component is disconnected from the DOM.\n\t * Ensures that TypeIt instances are properly cleaned up.\n\t */\n\n\tprivate sessionKey = ''\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._destroyTypeIt()\n\t}\n\n\t/**\n\t * Initializes the TypeIt instance with the provided slotted content.\n\t */\n\tprivate _startTyping() {\n\t\t// Destroy any existing TypeIt instance\n\t\tthis._destroyTypeIt()\n\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.shadowRoot?.querySelector('slot')?.removeAttribute('hidden')\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.typewriterContainer) {\n\t\t\tconsole.warn('Typewriter container not found.')\n\t\t\treturn\n\t\t}\n\n\t\t// Configure TypeIt options\n\t\tconst typeItOptions: TypeItOptions = {\n\t\t\tspeed: this.speed,\n\t\t\tstartDelay: this.delay,\n\t\t\tcursor: !!this.cursorChar,\n\t\t\tcursorChar: this.cursorChar,\n\t\t\tdeleteSpeed: this.deleteSpeed,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Dispatch the custom event\n\t\t\t\tthis.dispatchEvent(new CustomEvent('typeit-complete', { bubbles: true, composed: true }))\n\n\t\t\t\t// Hide the cursor\n\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t},\n\t\t}\n\n\t\t// Initialize TypeIt\n\t\tthis.typeItInstance = new TypeIt(this.typewriterContainer, typeItOptions)\n\n\t\t// Process slotted content as actions\n\t\tconst slottedNodes = this._getSlottedNodes\n\t\tslottedNodes.forEach(node => {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t// Handle plain text\n\t\t\t\tthis.typeItInstance?.type(node.textContent || '')\n\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t// Handle custom element\n\t\t\t\tthis._processCustomElement(node)\n\t\t\t}\n\t\t})\n\n\t\t// Start the typing animation if autoStart is enabled\n\t\t// use rxjs to detect once we are in the view port\n\t\tintersection$(this.shadowRoot?.host as Element).subscribe(() => {\n\t\t\t// alert('in view')\n\t\t\tthis.typeItInstance?.go()\n\t\t})\n\t\t// Start the typing animation if autoStart is enabled\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this._getSlottedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\t/**\n\t * Destroys the current TypeIt instance if it exists.\n\t */\n\tprivate _destroyTypeIt() {\n\t\tif (this.typeItInstance) {\n\t\t\ttry {\n\t\t\t\tthis.typeItInstance.destroy()\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error destroying TypeIt instance:', error)\n\t\t\t}\n\t\t\tthis.typeItInstance = null\n\t\t}\n\t}\n\n\t/**\n\t * Processes a custom element for its typing behavior.\n\t */\n\tprivate _processCustomElement(element: HTMLElement) {\n\t\tconst action = element.getAttribute('action')\n\t\tconst value = element.getAttribute('value')\n\t\tswitch (action) {\n\t\t\tcase 'pause':\n\t\t\t\tthis.typeItInstance?.pause(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tcase 'delete':\n\t\t\t\tthis.typeItInstance?.delete(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (element.tagName === 'P') {\n\t\t\t\t\tthis.typeItInstance.break()\n\t\t\t\t}\n\t\t\t\t// Treat as text if no action is defined\n\t\t\t\tthis.typeItInstance?.type(element.textContent || '')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Renders the component's HTML.\n\t */\n\trender(): TemplateResult {\n\t\treturn html`<div id=\"typewriter\" aria-live=\"polite\"></div>\n\n\t\t\t<div class=\"typewriter\">\n\t\t\t\t<slot\n\t\t\t\t\thidden\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._startTyping()\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typewriter': TypewriterElement\n\t}\n}\n"],"names":["isArray","thing","Array","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","n","opacity","options","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","el","document","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","forEach","child","nodeValue","c","parentNode","insertBefore","remove","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","querySelector","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","classList","contains","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","maybeChunkStringAsHtml","str","asHtml","cleanUpSkipped","index","newIndex","queueItems","cleanUp","i","isNumber","Number","isInteger","countStepsToSelector","selector","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","animate","pause","play","execute","queueItem","func","call","fireItem","wait","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","delay","shouldPauseCursor","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","isInput","handleFunctionalArg","arg","select","all","merge","originalObj","newObj","Object","assign","cursorFontStyles","color","transform","TypeIt","timeouts","predictedCursorPosition","statuses","firing","opts","queue","flushCallback","unfreeze","this","toString","substring","initialItems","add","steps","step","_q","set","Symbol","innerText","buildQueueItem","Boolean","typeable","cursorable","deletable","getQueue","rawValues","values","Map","item","keys","wipe","done","key","shouldDestroy","delete","get","reset","destroy","getItems","filter","getTypeable","getPendingQueueItems","pending","setUpCursor","typeitId","generateQueue","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","rebuild","is","property","elementIsInput","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","getPace","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","numberOfSteps","directionalStep","milliseconds","numCharacters","num","typeableQueueItems","rounds","then","flush","getElement","#y","empty","#r","remember","qKey","queueKey","e","#d","printedCharacters","min","max","allChars","newCursorPosition","nodeToInsertBefore","derivedCursorPosition","#w","#b","callback","silent","setTimeout","#i","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","#n","#l","#x","#o","newOptions","#s","type","splitItems","buildOptions","defaultFrames","defaultOptions","#q","existingMarkup","replace","trim","split","concat","#e","className","style","visibility","#S","items","#u","originalTarget","character","textContent","target","tagName","cursorNode","#f","slice","#h","rootElement","nodeParent","s","#a","#c","#I","shouldRenderCursor","#m","TypewriterElement","$LitElement","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","error","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","go","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"typewriter-CHcRZUee.cjs","sources":["../node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, queryAssignedNodes } from 'lit/decorators.js'\nimport TypeIt, { Options as TypeItOptions } from 'typeit'\n\n@customElement('schmancy-typewriter')\nexport class TypewriterElement extends $LitElement() {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 50\n\n\t/**\n\t * Delay before typing starts (ms).\n\t */\n\t@consume({ context: delayContext, subscribe: true })\n\t@property({ type: Number })\n\tdelay: number = 0\n\n\t/**\n\t * Automatically start typing on initialization.\n\t */\n\t@property({ type: Boolean })\n\tautoStart: boolean = true\n\n\t/**\n\t * The cursor character.\n\t */\n\t@property({ type: String })\n\tcursorChar: string = ''\n\n\t/**\n\t * Typing speed for deletions (ms per character).\n\t */\n\t@property({ type: Number })\n\tdeleteSpeed: number = 25\n\n\t@property({ type: Boolean }) once = true\n\t/**\n\t * TypeIt instance.\n\t */\n\tprivate typeItInstance: TypeIt | null = null\n\n\t/**\n\t * Reference to the typewriter container.\n\t */\n\t@query('#typewriter')\n\tprivate typewriterContainer!: HTMLElement\n\n\t@queryAssignedNodes({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedNodes!: Node[]\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedElements!: HTMLElement[]\n\t/**\n\t * Lifecycle method called when the component is disconnected from the DOM.\n\t * Ensures that TypeIt instances are properly cleaned up.\n\t */\n\n\tprivate sessionKey = ''\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._destroyTypeIt()\n\t}\n\n\t/**\n\t * Initializes the TypeIt instance with the provided slotted content.\n\t */\n\tprivate _startTyping() {\n\t\t// Destroy any existing TypeIt instance\n\t\tthis._destroyTypeIt()\n\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.shadowRoot?.querySelector('slot')?.removeAttribute('hidden')\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.typewriterContainer) {\n\t\t\tconsole.warn('Typewriter container not found.')\n\t\t\treturn\n\t\t}\n\n\t\t// Configure TypeIt options\n\t\tconst typeItOptions: TypeItOptions = {\n\t\t\tspeed: this.speed,\n\t\t\tstartDelay: this.delay,\n\t\t\tcursor: !!this.cursorChar,\n\t\t\tcursorChar: this.cursorChar,\n\t\t\tdeleteSpeed: this.deleteSpeed,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Dispatch the custom event\n\t\t\t\tthis.dispatchEvent(new CustomEvent('typeit-complete', { bubbles: true, composed: true }))\n\n\t\t\t\t// Hide the cursor\n\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t},\n\t\t}\n\n\t\t// Initialize TypeIt\n\t\tthis.typeItInstance = new TypeIt(this.typewriterContainer, typeItOptions)\n\n\t\t// Process slotted content as actions\n\t\tconst slottedNodes = this._getSlottedNodes\n\t\tslottedNodes.forEach(node => {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t// Handle plain text\n\t\t\t\tthis.typeItInstance?.type(node.textContent || '')\n\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t// Handle custom element\n\t\t\t\tthis._processCustomElement(node)\n\t\t\t}\n\t\t})\n\n\t\t// Start the typing animation if autoStart is enabled\n\t\t// use rxjs to detect once we are in the view port\n\t\tintersection$(this.shadowRoot?.host as Element).subscribe(() => {\n\t\t\t// alert('in view')\n\t\t\tthis.typeItInstance?.go()\n\t\t})\n\t\t// Start the typing animation if autoStart is enabled\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this._getSlottedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\t/**\n\t * Destroys the current TypeIt instance if it exists.\n\t */\n\tprivate _destroyTypeIt() {\n\t\tif (this.typeItInstance) {\n\t\t\ttry {\n\t\t\t\tthis.typeItInstance.destroy()\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error destroying TypeIt instance:', error)\n\t\t\t}\n\t\t\tthis.typeItInstance = null\n\t\t}\n\t}\n\n\t/**\n\t * Processes a custom element for its typing behavior.\n\t */\n\tprivate _processCustomElement(element: HTMLElement) {\n\t\tconst action = element.getAttribute('action')\n\t\tconst value = element.getAttribute('value')\n\t\tswitch (action) {\n\t\t\tcase 'pause':\n\t\t\t\tthis.typeItInstance?.pause(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tcase 'delete':\n\t\t\t\tthis.typeItInstance?.delete(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (element.tagName === 'P') {\n\t\t\t\t\tthis.typeItInstance.break()\n\t\t\t\t}\n\t\t\t\t// Treat as text if no action is defined\n\t\t\t\tthis.typeItInstance?.type(element.textContent || '')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Renders the component's HTML.\n\t */\n\trender(): TemplateResult {\n\t\treturn html`<div id=\"typewriter\" aria-live=\"polite\"></div>\n\n\t\t\t<div class=\"typewriter\">\n\t\t\t\t<slot\n\t\t\t\t\thidden\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._startTyping()\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typewriter': TypewriterElement\n\t}\n}\n"],"names":["isArray","thing","Array","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","n","opacity","options","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","el","document","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","forEach","child","nodeValue","c","parentNode","insertBefore","remove","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","querySelector","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","classList","contains","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","maybeChunkStringAsHtml","str","asHtml","cleanUpSkipped","index","newIndex","queueItems","cleanUp","i","isNumber","Number","isInteger","countStepsToSelector","selector","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","animate","pause","play","execute","queueItem","func","call","fireItem","wait","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","delay","shouldPauseCursor","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","isInput","handleFunctionalArg","arg","select","all","merge","originalObj","newObj","Object","assign","cursorFontStyles","color","transform","TypeIt","timeouts","predictedCursorPosition","statuses","firing","opts","queue","flushCallback","unfreeze","this","toString","substring","initialItems","add","steps","step","_q","set","Symbol","innerText","buildQueueItem","Boolean","typeable","cursorable","deletable","getQueue","rawValues","values","Map","item","keys","wipe","done","key","shouldDestroy","delete","get","reset","destroy","getItems","filter","getTypeable","getPendingQueueItems","pending","setUpCursor","typeitId","generateQueue","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","rebuild","is","property","elementIsInput","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","getPace","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","numberOfSteps","directionalStep","milliseconds","numCharacters","num","typeableQueueItems","rounds","then","flush","getElement","#y","empty","#r","remember","qKey","queueKey","e","#d","printedCharacters","min","max","allChars","newCursorPosition","nodeToInsertBefore","derivedCursorPosition","#w","#b","callback","silent","setTimeout","#i","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","#n","#l","#x","#o","newOptions","#s","type","splitItems","buildOptions","defaultFrames","defaultOptions","#q","existingMarkup","replace","trim","split","concat","#e","className","style","visibility","#S","items","#u","originalTarget","character","textContent","target","tagName","cursorNode","#f","slice","#h","rootElement","nodeParent","s","#a","#c","#I","shouldRenderCursor","#m","TypewriterElement","$LitElement","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","error","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","go","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typewriter-BQuKztry.cjs");Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>e.TypewriterElement});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typewriter-CHcRZUee.cjs");Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>e.TypewriterElement});
2
2
  //# sourceMappingURL=typewriter.cjs.map
@@ -1,4 +1,4 @@
1
- import { T as t } from "./typewriter-Cd-6RBof.js";
1
+ import { T as t } from "./typewriter-B7nBcBU9.js";
2
2
  export {
3
3
  t as TypewriterElement
4
4
  };
@@ -1,4 +1,4 @@
1
- "use strict";const r=require("./tailwind.mixin-I9Q1jeEr.cjs"),a=require("lit"),e=require("lit/decorators.js");var g=Object.defineProperty,y=Object.getOwnPropertyDescriptor,i=(l,o,h,n)=>{for(var p,t=n>1?void 0:n?y(o,h):o,s=l.length-1;s>=0;s--)(p=l[s])&&(t=(n?p(o,h,t):p(t))||t);return n&&t&&g(o,h,t),t};exports.SchmancyTypography=class extends r.TailwindElement(a.css`
1
+ "use strict";const r=require("./tailwind.mixin-Ge3p8F8Z.cjs"),a=require("lit"),e=require("lit/decorators.js");var g=Object.defineProperty,y=Object.getOwnPropertyDescriptor,i=(l,o,h,n)=>{for(var p,t=n>1?void 0:n?y(o,h):o,s=l.length-1;s>=0;s--)(p=l[s])&&(t=(n?p(o,h,t):p(t))||t);return n&&t&&g(o,h,t),t};exports.SchmancyTypography=class extends r.TailwindElement(a.css`
2
2
  :host {
3
3
  display: block;
4
4
  font-family: inherit;
@@ -283,4 +283,4 @@
283
283
 
284
284
  /* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */
285
285
  `){constructor(){super(...arguments),this.type="body",this.token="md"}render(){return a.html`<slot></slot>`}},i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"type",2),i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"token",2),i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"align",2),i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"weight",2),i([e.property({type:String,reflect:!0})],exports.SchmancyTypography.prototype,"transform",2),i([e.property({type:Number,attribute:"max-lines",reflect:!0})],exports.SchmancyTypography.prototype,"maxLines",2),exports.SchmancyTypography=i([e.customElement("schmancy-typography")],exports.SchmancyTypography);
286
- //# sourceMappingURL=typography-BYjA_BbW.cjs.map
286
+ //# sourceMappingURL=typography-CRVUouR2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography-BYjA_BbW.cjs","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":"8SAWaA,QAAAA,mBAAN,cAAiCC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAjD,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAmSNC,KAAAC,KAAyE,OAQzED,KAAAE,MAA0C,IAAA,CAgChC,QAAAC,CACT,OAAOC,EAAAA,mBACR,CAAA,EA1CAC,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlSvBd,2BAmSZe,UAAA,OAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA1SvBd,2BA2SZe,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlTvBd,2BAmTZe,UAAA,QAAA,CAAA,EASAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA3TvBd,2BA4TZe,UAAA,SAAA,CAAA,EAUAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EArUvBd,2BAsUZe,UAAA,YAAA,CAAA,EAGAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMS,OAAQC,UAAW,YAAaH,QAAAA,MAxUtCd,2BAyUZe,UAAA,WAAA,CAAA,EAzUYf,QAAAA,mBAANW,EAAA,CADNO,EAAAA,cAAc,qBAAA,CAAA,EACFlB"}
1
+ {"version":3,"file":"typography-CRVUouR2.cjs","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":"8SAWaA,QAAAA,mBAAN,cAAiCC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAjD,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAmSNC,KAAAC,KAAyE,OAQzED,KAAAE,MAA0C,IAAA,CAgChC,QAAAC,CACT,OAAOC,EAAAA,mBACR,CAAA,EA1CAC,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlSvBd,2BAmSZe,UAAA,OAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA1SvBd,2BA2SZe,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlTvBd,2BAmTZe,UAAA,QAAA,CAAA,EASAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA3TvBd,2BA4TZe,UAAA,SAAA,CAAA,EAUAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EArUvBd,2BAsUZe,UAAA,YAAA,CAAA,EAGAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMS,OAAQC,UAAW,YAAaH,QAAAA,MAxUtCd,2BAyUZe,UAAA,WAAA,CAAA,EAzUYf,QAAAA,mBAANW,EAAA,CADNO,EAAAA,cAAc,qBAAA,CAAA,EACFlB"}
@@ -1,4 +1,4 @@
1
- import { T as r } from "./tailwind.mixin-N1MaFaUo.js";
1
+ import { T as r } from "./tailwind.mixin-BTS7jBB1.js";
2
2
  import { css as x, html as g } from "lit";
3
3
  import { property as o, customElement as f } from "lit/decorators.js";
4
4
  var y = Object.defineProperty, d = Object.getOwnPropertyDescriptor, i = (a, n, s, h) => {
@@ -301,4 +301,4 @@ i([o({ type: String, reflect: !0 })], t.prototype, "type", 2), i([o({ type: Stri
301
301
  export {
302
302
  t as S
303
303
  };
304
- //# sourceMappingURL=typography-B8r6CRfv.js.map
304
+ //# sourceMappingURL=typography-DnZjZEIe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography-B8r6CRfv.js","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":";;;;;;;AAWO,IAAMA,IAAN,cAAiCC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAAjD,cAAAC;AAAAC,aAAAC,SAAAA,GAmSNC,KAAAC,OAAyE,QAQzED,KAAAE,QAA0C;AAAA,EAAA;AAAA,EAgChC,SAAAC;AACT,WAAOC;AAAAA,EACR;AAAA;AA1CAC,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GAlSvBd,EAmSZe,WAAA,QAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GA1SvBd,EA2SZe,WAAA,SAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QAlTdd,EAmTZe,WAAA,SAAA,CAAA,GASAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QA3Tdd,EA4TZe,WAAA,UAAA,CAAA,GAUAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,GAAS,CAAA,CAAA,GArUvBd,EAsUZe,WAAA,aAAA,IAGAJ,EAAA,CADCC,EAAS,EAAEL,MAAMS,QAAQC,WAAW,aAAaH,YAAS,CAAA,CAAA,GAxU/Cd,EAyUZe,WAAA,YAAA,CAAA,GAzUYf,IAANW,EAAA,CADNO,EAAc,qBAAA,CAAA,GACFlB,CAAAA;"}
1
+ {"version":3,"file":"typography-DnZjZEIe.js","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":";;;;;;;AAWO,IAAMA,IAAN,cAAiCC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAAjD,cAAAC;AAAAC,aAAAC,SAAAA,GAmSNC,KAAAC,OAAyE,QAQzED,KAAAE,QAA0C;AAAA,EAAA;AAAA,EAgChC,SAAAC;AACT,WAAOC;AAAAA,EACR;AAAA;AA1CAC,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GAlSvBd,EAmSZe,WAAA,QAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GA1SvBd,EA2SZe,WAAA,SAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QAlTdd,EAmTZe,WAAA,SAAA,CAAA,GASAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QA3Tdd,EA4TZe,WAAA,UAAA,CAAA,GAUAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,GAAS,CAAA,CAAA,GArUvBd,EAsUZe,WAAA,aAAA,IAGAJ,EAAA,CADCC,EAAS,EAAEL,MAAMS,QAAQC,WAAW,aAAaH,YAAS,CAAA,CAAA,GAxU/Cd,EAyUZe,WAAA,YAAA,CAAA,GAzUYf,IAANW,EAAA,CADNO,EAAc,qBAAA,CAAA,GACFlB,CAAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-BYjA_BbW.cjs");Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>e.SchmancyTypography});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-CRVUouR2.cjs");Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>e.SchmancyTypography});
2
2
  //# sourceMappingURL=typography.cjs.map
@@ -1,4 +1,4 @@
1
- import { S as p } from "./typography-B8r6CRfv.js";
1
+ import { S as p } from "./typography-DnZjZEIe.js";
2
2
  export {
3
3
  p as SchmancyTypography
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhmo91/schmancy",
3
- "version": "0.6.17",
3
+ "version": "0.6.18",
4
4
  "description": "UI library build with web components",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
@@ -37,7 +37,10 @@ export declare class SchmancySurface extends SchmancySurface_base {
37
37
  * Specifies the surface type for styling.
38
38
  * Provided to descendant components via context.
39
39
  * Options: 'surface', 'surfaceDim', 'surfaceBright', 'containerLowest',
40
- * 'containerLow', 'container', 'containerHigh', 'containerHighest'.
40
+ * 'containerLow', 'container', 'containerHigh', 'containerHighest',
41
+ * 'glass', 'transparent', 'glassOforim', 'primary', 'primaryContainer',
42
+ * 'secondary', 'secondaryContainer', 'tertiary', 'tertiaryContainer',
43
+ * 'error', 'errorContainer'.
41
44
  * @default 'container'
42
45
  */
43
46
  type: TSurfaceColor;
@@ -1 +1 @@
1
- export type TSurfaceColor = 'surface' | 'surfaceDim' | 'surfaceBright' | 'containerLowest' | 'containerLow' | 'container' | 'containerHigh' | 'containerHighest';
1
+ export type TSurfaceColor = 'surface' | 'surfaceDim' | 'surfaceBright' | 'containerLowest' | 'containerLow' | 'container' | 'containerHigh' | 'containerHighest' | 'glass' | 'transparent' | 'glassOforim' | 'primary' | 'primaryContainer' | 'secondary' | 'secondaryContainer' | 'tertiary' | 'tertiaryContainer' | 'error' | 'errorContainer';
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button-CD3zR7_w.cjs","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement(\n\tcss`:host{\n\t\tdisplay: inline-block;\n\t\tmin-width: fit-content;\n\t}`\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-5', 'max-w-5', 'sm:max-h-6', 'sm:max-w-6', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 py-2 px-3 sm:py-1.5 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-1 sm:gap-1.5 md:gap-2 outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit]':\n\t\t\t\ttrue,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t/**\n\t * Render slot content as text instead of wrapping in schmancy-icon.\n\t * Use this when you want to display text labels in the button.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic text = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t\t'px-[16px] py-[16px]': this.size === 'xl',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// Icon size mapping\n\t\tconst iconSize = this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : this.size === 'lg' ? '32px' : '40px';\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t${this.text\n\t\t\t\t\t\t? html`<slot></slot>`\n\t\t\t\t\t\t: html`<schmancy-icon size=${iconSize}><slot></slot></schmancy-icon>`\n\t\t\t\t\t}\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t${this.text\n\t\t\t\t\t? html`<slot></slot>`\n\t\t\t\t\t: html`<schmancy-icon size=${iconSize}><slot></slot></schmancy-icon>`\n\t\t\t\t}\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","css","constructor","super","arguments","this","variant","width","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","options","nativeElement","focus","blur","imgClasses","firstUpdated","prefixImgs","forEach","img","classList","add","setAttribute","suffixImgs","click","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","effectiveVariant","classes","stateLayerClasses","href","html","ifDefined","ariaLabel","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","size","text","_changedProperties","render","iconSize"],"mappings":"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"}