@mhmo91/schmancy 0.4.18 → 0.4.20

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 (293) hide show
  1. package/ai/chips.md +43 -14
  2. package/ai/context.md +545 -0
  3. package/ai/typography.md +8 -8
  4. package/dist/ai/chips.md +43 -14
  5. package/dist/ai/context.md +545 -0
  6. package/dist/ai/typography.md +8 -8
  7. package/dist/{animated-text-Dt7ULIfK.cjs → animated-text-Be4toKE0.cjs} +2 -2
  8. package/dist/{animated-text-Dt7ULIfK.cjs.map → animated-text-Be4toKE0.cjs.map} +1 -1
  9. package/dist/{animated-text-BLAxtIAw.js → animated-text-CNPSIIYg.js} +3 -3
  10. package/dist/{animated-text-BLAxtIAw.js.map → animated-text-CNPSIIYg.js.map} +1 -1
  11. package/dist/animated-text.cjs +1 -1
  12. package/dist/animated-text.js +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/{area.component-BgxB7rJS.cjs → area.component-YKEQV9hc.cjs} +2 -2
  15. package/dist/{area.component-BgxB7rJS.cjs.map → area.component-YKEQV9hc.cjs.map} +1 -1
  16. package/dist/{area.component-BLgSdlkJ.js → area.component-i-mmh5is.js} +3 -3
  17. package/dist/{area.component-BLgSdlkJ.js.map → area.component-i-mmh5is.js.map} +1 -1
  18. package/dist/area.js +1 -1
  19. package/dist/{autocomplete-DpNmzOji.cjs → autocomplete-C0EU8KiN.cjs} +2 -2
  20. package/dist/{autocomplete-DpNmzOji.cjs.map → autocomplete-C0EU8KiN.cjs.map} +1 -1
  21. package/dist/{autocomplete-C8uZsIcD.js → autocomplete-EapOt3ES.js} +3 -3
  22. package/dist/{autocomplete-C8uZsIcD.js.map → autocomplete-EapOt3ES.js.map} +1 -1
  23. package/dist/autocomplete.cjs +1 -1
  24. package/dist/autocomplete.js +1 -1
  25. package/dist/{avatar-CUNb2WdS.js → avatar-7Rif8_0P.js} +46 -46
  26. package/dist/{avatar-CUNb2WdS.js.map → avatar-7Rif8_0P.js.map} +1 -1
  27. package/dist/{avatar-CTu9FwSF.cjs → avatar-BoOnOo3X.cjs} +2 -2
  28. package/dist/{avatar-CTu9FwSF.cjs.map → avatar-BoOnOo3X.cjs.map} +1 -1
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/{boat-CkVYkaEC.cjs → boat-C59hzqZ0.cjs} +2 -2
  32. package/dist/{boat-CkVYkaEC.cjs.map → boat-C59hzqZ0.cjs.map} +1 -1
  33. package/dist/{boat-d9gIROWW.js → boat-DPTS3Kpw.js} +2 -2
  34. package/dist/{boat-d9gIROWW.js.map → boat-DPTS3Kpw.js.map} +1 -1
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/busy.cjs +1 -1
  38. package/dist/busy.js +1 -1
  39. package/dist/button.cjs +1 -1
  40. package/dist/button.js +1 -1
  41. package/dist/card.cjs +1 -1
  42. package/dist/card.js +1 -1
  43. package/dist/{checkbox-BtGm_bDJ.js → checkbox-B85eeKqn.js} +2 -2
  44. package/dist/{checkbox-BtGm_bDJ.js.map → checkbox-B85eeKqn.js.map} +1 -1
  45. package/dist/{checkbox-D_GZpk5w.cjs → checkbox-C-kjO37F.cjs} +2 -2
  46. package/dist/{checkbox-D_GZpk5w.cjs.map → checkbox-C-kjO37F.cjs.map} +1 -1
  47. package/dist/checkbox.cjs +1 -1
  48. package/dist/checkbox.js +1 -1
  49. package/dist/{chips-BdxXRe8e.js → chips-BNRMzGrx.js} +64 -60
  50. package/dist/{chips-BdxXRe8e.js.map → chips-BNRMzGrx.js.map} +1 -1
  51. package/dist/{chips-Dcgoq3mi.cjs → chips-DW6y4ZMs.cjs} +22 -18
  52. package/dist/{chips-Dcgoq3mi.cjs.map → chips-DW6y4ZMs.cjs.map} +1 -1
  53. package/dist/chips.cjs +1 -1
  54. package/dist/chips.js +1 -1
  55. package/dist/{circular-progress-hdKLycBS.cjs → circular-progress-BridvYCS.cjs} +2 -2
  56. package/dist/{circular-progress-hdKLycBS.cjs.map → circular-progress-BridvYCS.cjs.map} +1 -1
  57. package/dist/{circular-progress-I-eWIvbu.js → circular-progress-Cl_dXUPO.js} +3 -3
  58. package/dist/{circular-progress-I-eWIvbu.js.map → circular-progress-Cl_dXUPO.js.map} +1 -1
  59. package/dist/circular-progress.cjs +1 -1
  60. package/dist/circular-progress.js +1 -1
  61. package/dist/code-highlight.cjs +1 -1
  62. package/dist/code-highlight.js +1 -1
  63. package/dist/{code-preview-Cj3yKkoI.cjs → code-preview-B0oGIV9F.cjs} +2 -2
  64. package/dist/{code-preview-Cj3yKkoI.cjs.map → code-preview-B0oGIV9F.cjs.map} +1 -1
  65. package/dist/{code-preview-vm-MGUcq.js → code-preview-B8X7JaxA.js} +2 -2
  66. package/dist/{code-preview-vm-MGUcq.js.map → code-preview-B8X7JaxA.js.map} +1 -1
  67. package/dist/components.cjs +1 -1
  68. package/dist/components.js +1 -1
  69. package/dist/content-drawer.cjs +1 -1
  70. package/dist/content-drawer.js +1 -1
  71. package/dist/{date-range-CEah0Br4.js → date-range-9sVFbxK0.js} +3 -3
  72. package/dist/{date-range-CEah0Br4.js.map → date-range-9sVFbxK0.js.map} +1 -1
  73. package/dist/{date-range-D8Y4NfOS.cjs → date-range-DqaB9kwM.cjs} +2 -2
  74. package/dist/{date-range-D8Y4NfOS.cjs.map → date-range-DqaB9kwM.cjs.map} +1 -1
  75. package/dist/{date-range-inline-DsJ52mz_.js → date-range-inline-Bqnc8wBb.js} +3 -3
  76. package/dist/{date-range-inline-DsJ52mz_.js.map → date-range-inline-Bqnc8wBb.js.map} +1 -1
  77. package/dist/{date-range-inline-lrZkGjTt.cjs → date-range-inline-DGRKHzTX.cjs} +2 -2
  78. package/dist/{date-range-inline-lrZkGjTt.cjs.map → date-range-inline-DGRKHzTX.cjs.map} +1 -1
  79. package/dist/date-range-inline.cjs +1 -1
  80. package/dist/date-range-inline.js +1 -1
  81. package/dist/date-range.cjs +1 -1
  82. package/dist/date-range.js +1 -1
  83. package/dist/{delay-CMthr2Hj.cjs → delay-ClP0gwsX.cjs} +2 -2
  84. package/dist/{delay-CMthr2Hj.cjs.map → delay-ClP0gwsX.cjs.map} +1 -1
  85. package/dist/{delay-C_vw_yei.js → delay-u5isp6Vb.js} +2 -2
  86. package/dist/{delay-C_vw_yei.js.map → delay-u5isp6Vb.js.map} +1 -1
  87. package/dist/delay.cjs +1 -1
  88. package/dist/delay.js +1 -1
  89. package/dist/{dialog-content-B2j1jowD.cjs → dialog-content-CGgHTvcB.cjs} +2 -2
  90. package/dist/{dialog-content-B2j1jowD.cjs.map → dialog-content-CGgHTvcB.cjs.map} +1 -1
  91. package/dist/{dialog-content-mEW0FAuk.js → dialog-content-ZpgRQC1m.js} +3 -3
  92. package/dist/{dialog-content-mEW0FAuk.js.map → dialog-content-ZpgRQC1m.js.map} +1 -1
  93. package/dist/dialog.cjs +1 -1
  94. package/dist/dialog.js +1 -1
  95. package/dist/{divider-Crcv35Yc.js → divider-BK4PNB76.js} +3 -3
  96. package/dist/{divider-Crcv35Yc.js.map → divider-BK4PNB76.js.map} +1 -1
  97. package/dist/{divider-Dhl8ZwLT.cjs → divider-CIXGsKd7.cjs} +2 -2
  98. package/dist/{divider-Dhl8ZwLT.cjs.map → divider-CIXGsKd7.cjs.map} +1 -1
  99. package/dist/divider.cjs +1 -1
  100. package/dist/divider.js +1 -1
  101. package/dist/{dropdown-content-BmIs8S4S.cjs → dropdown-content-CeYUqD56.cjs} +2 -2
  102. package/dist/{dropdown-content-BmIs8S4S.cjs.map → dropdown-content-CeYUqD56.cjs.map} +1 -1
  103. package/dist/{dropdown-content-xZnz8Pxv.js → dropdown-content-DbHKYDCS.js} +3 -3
  104. package/dist/{dropdown-content-xZnz8Pxv.js.map → dropdown-content-DbHKYDCS.js.map} +1 -1
  105. package/dist/dropdown.cjs +1 -1
  106. package/dist/dropdown.js +1 -1
  107. package/dist/extra.cjs +1 -1
  108. package/dist/extra.js +1 -1
  109. package/dist/{flex-CKZqzjoT.cjs → flex-Dub7SPI7.cjs} +2 -2
  110. package/dist/{flex-CKZqzjoT.cjs.map → flex-Dub7SPI7.cjs.map} +1 -1
  111. package/dist/{flex-BxLHuykH.js → flex-JcwYdb2G.js} +2 -2
  112. package/dist/{flex-BxLHuykH.js.map → flex-JcwYdb2G.js.map} +1 -1
  113. package/dist/{form-CkXLwrgF.js → form-CMv0SQko.js} +2 -2
  114. package/dist/{form-CkXLwrgF.js.map → form-CMv0SQko.js.map} +1 -1
  115. package/dist/{form-BILl3KSi.cjs → form-DKF6UgIS.cjs} +2 -2
  116. package/dist/{form-BILl3KSi.cjs.map → form-DKF6UgIS.cjs.map} +1 -1
  117. package/dist/form.cjs +1 -1
  118. package/dist/form.js +1 -1
  119. package/dist/{formField.mixin-7oRbKIJG.cjs → formField.mixin-BrHllh45.cjs} +2 -2
  120. package/dist/{formField.mixin-7oRbKIJG.cjs.map → formField.mixin-BrHllh45.cjs.map} +1 -1
  121. package/dist/{formField.mixin-B5IdUrHP.js → formField.mixin-D0GeY28y.js} +2 -2
  122. package/dist/{formField.mixin-B5IdUrHP.js.map → formField.mixin-D0GeY28y.js.map} +1 -1
  123. package/dist/{icon-DSNyRhWY.js → icon--s5dpU1N.js} +2 -2
  124. package/dist/{icon-DSNyRhWY.js.map → icon--s5dpU1N.js.map} +1 -1
  125. package/dist/{icon-BMRm6Q7E.cjs → icon-CJe2TSk1.cjs} +2 -2
  126. package/dist/{icon-BMRm6Q7E.cjs.map → icon-CJe2TSk1.cjs.map} +1 -1
  127. package/dist/{icon-button-BzelG5eZ.js → icon-button-Ckd9jE-a.js} +3 -3
  128. package/dist/{icon-button-BzelG5eZ.js.map → icon-button-Ckd9jE-a.js.map} +1 -1
  129. package/dist/{icon-button-CSP3nxqH.cjs → icon-button-x5uqpaeg.cjs} +2 -2
  130. package/dist/{icon-button-CSP3nxqH.cjs.map → icon-button-x5uqpaeg.cjs.map} +1 -1
  131. package/dist/icons.cjs +1 -1
  132. package/dist/icons.js +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.js +44 -44
  135. package/dist/{input-BA52VU9F.cjs → input-DcWJTrr9.cjs} +2 -2
  136. package/dist/{input-BA52VU9F.cjs.map → input-DcWJTrr9.cjs.map} +1 -1
  137. package/dist/{input-BxvmmN6J.js → input-P8bwT-4D.js} +3 -3
  138. package/dist/{input-BxvmmN6J.js.map → input-P8bwT-4D.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-GmGQKun4.cjs → list-DZAZpM5m.cjs} +2 -2
  144. package/dist/{list-GmGQKun4.cjs.map → list-DZAZpM5m.cjs.map} +1 -1
  145. package/dist/{list-Cp-I9q0R.js → list-rGydduh7.js} +2 -2
  146. package/dist/{list-Cp-I9q0R.js.map → list-rGydduh7.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-bzDPHaHQ.cjs → litElement.mixin-B1eYYBf4.cjs} +2 -2
  150. package/dist/{litElement.mixin-bzDPHaHQ.cjs.map → litElement.mixin-B1eYYBf4.cjs.map} +1 -1
  151. package/dist/{litElement.mixin-BzhYdE-s.js → litElement.mixin-Cq-COufw.js} +2 -2
  152. package/dist/{litElement.mixin-BzhYdE-s.js.map → litElement.mixin-Cq-COufw.js.map} +1 -1
  153. package/dist/{media-DTdOxwsY.js → media-BG2j6r0I.js} +27 -55
  154. package/dist/media-BG2j6r0I.js.map +1 -0
  155. package/dist/{media-DzPzgQVq.cjs → media-C_UPDRKi.cjs} +8 -36
  156. package/dist/media-C_UPDRKi.cjs.map +1 -0
  157. package/dist/{menu-DmRH9LKU.cjs → menu-D5aDG-Rp.cjs} +2 -2
  158. package/dist/{menu-DmRH9LKU.cjs.map → menu-D5aDG-Rp.cjs.map} +1 -1
  159. package/dist/{menu-CyouBgEC.js → menu-DvZSvoOx.js} +3 -3
  160. package/dist/{menu-CyouBgEC.js.map → menu-DvZSvoOx.js.map} +1 -1
  161. package/dist/menu.cjs +1 -1
  162. package/dist/menu.js +1 -1
  163. package/dist/nav-drawer.cjs +1 -1
  164. package/dist/nav-drawer.js +1 -1
  165. package/dist/{notification-service-iaaiYOCz.cjs → notification-service-BzzXjm4l.cjs} +2 -2
  166. package/dist/{notification-service-iaaiYOCz.cjs.map → notification-service-BzzXjm4l.cjs.map} +1 -1
  167. package/dist/{notification-service-5CLr66rH.js → notification-service-DKHubhXv.js} +3 -3
  168. package/dist/{notification-service-5CLr66rH.js.map → notification-service-DKHubhXv.js.map} +1 -1
  169. package/dist/notification.cjs +1 -1
  170. package/dist/notification.js +1 -1
  171. package/dist/{option-BN5jqJ5U.cjs → option-DqN5-RK7.cjs} +2 -2
  172. package/dist/{option-BN5jqJ5U.cjs.map → option-DqN5-RK7.cjs.map} +1 -1
  173. package/dist/{option-BCCLGZkk.js → option-T6zGawbH.js} +2 -2
  174. package/dist/{option-BCCLGZkk.js.map → option-T6zGawbH.js.map} +1 -1
  175. package/dist/option.cjs +1 -1
  176. package/dist/option.js +1 -1
  177. package/dist/{payment-card-form-CC19F7EH.cjs → payment-card-form-C42icpX4.cjs} +2 -2
  178. package/dist/{payment-card-form-CC19F7EH.cjs.map → payment-card-form-C42icpX4.cjs.map} +1 -1
  179. package/dist/{payment-card-form-C7IkJyYO.js → payment-card-form-GEOaUypQ.js} +3 -3
  180. package/dist/{payment-card-form-C7IkJyYO.js.map → payment-card-form-GEOaUypQ.js.map} +1 -1
  181. package/dist/{progress-Dbfk44z0.cjs → progress-CL35MIi9.cjs} +2 -2
  182. package/dist/{progress-Dbfk44z0.cjs.map → progress-CL35MIi9.cjs.map} +1 -1
  183. package/dist/{progress-DYk5Em61.js → progress-EL16etnw.js} +2 -2
  184. package/dist/{progress-DYk5Em61.js.map → progress-EL16etnw.js.map} +1 -1
  185. package/dist/progress.cjs +1 -1
  186. package/dist/progress.js +1 -1
  187. package/dist/{radio-button-CABGVVlQ.js → radio-button-BQ7snEVj.js} +3 -3
  188. package/dist/{radio-button-CABGVVlQ.js.map → radio-button-BQ7snEVj.js.map} +1 -1
  189. package/dist/{radio-button-CNQZeJgH.cjs → radio-button-DrSJB4B-.cjs} +2 -2
  190. package/dist/{radio-button-CNQZeJgH.cjs.map → radio-button-DrSJB4B-.cjs.map} +1 -1
  191. package/dist/radio-group.cjs +1 -1
  192. package/dist/radio-group.js +1 -1
  193. package/dist/{schmancy-steps-container-Dlr_V8N0.js → schmancy-steps-container-2WW-9LYL.js} +2 -2
  194. package/dist/{schmancy-steps-container-Dlr_V8N0.js.map → schmancy-steps-container-2WW-9LYL.js.map} +1 -1
  195. package/dist/{schmancy-steps-container-39pHxNAK.cjs → schmancy-steps-container-C_HHZFeb.cjs} +2 -2
  196. package/dist/{schmancy-steps-container-39pHxNAK.cjs.map → schmancy-steps-container-C_HHZFeb.cjs.map} +1 -1
  197. package/dist/{select-DxmJTxAy.cjs → select-BHRtVoTo.cjs} +2 -2
  198. package/dist/{select-DxmJTxAy.cjs.map → select-BHRtVoTo.cjs.map} +1 -1
  199. package/dist/{select-UfyNhLTO.js → select-Bl8FO2kb.js} +3 -3
  200. package/dist/{select-UfyNhLTO.js.map → select-Bl8FO2kb.js.map} +1 -1
  201. package/dist/select.cjs +1 -1
  202. package/dist/select.js +1 -1
  203. package/dist/{sheet-Dp2wyj6y.cjs → sheet-BiUUD0Td.cjs} +2 -2
  204. package/dist/{sheet-Dp2wyj6y.cjs.map → sheet-BiUUD0Td.cjs.map} +1 -1
  205. package/dist/{sheet-b-tYD9Bq.js → sheet-WpG2m2yT.js} +4 -4
  206. package/dist/{sheet-b-tYD9Bq.js.map → sheet-WpG2m2yT.js.map} +1 -1
  207. package/dist/sheet.cjs +1 -1
  208. package/dist/sheet.js +2 -2
  209. package/dist/{sheet.service-IRrxLZ3N.cjs → sheet.service-B5sh8d0k.cjs} +2 -2
  210. package/dist/{sheet.service-IRrxLZ3N.cjs.map → sheet.service-B5sh8d0k.cjs.map} +1 -1
  211. package/dist/{sheet.service-Cnpanz9P.js → sheet.service-COPNmxwp.js} +2 -2
  212. package/dist/{sheet.service-Cnpanz9P.js.map → sheet.service-COPNmxwp.js.map} +1 -1
  213. package/dist/{slider-BzsOgIrd.js → slider-4ggti1yr.js} +3 -3
  214. package/dist/{slider-BzsOgIrd.js.map → slider-4ggti1yr.js.map} +1 -1
  215. package/dist/{slider-DxUw0ywu.cjs → slider-DX-XUnE-.cjs} +2 -2
  216. package/dist/{slider-DxUw0ywu.cjs.map → slider-DX-XUnE-.cjs.map} +1 -1
  217. package/dist/slider.cjs +1 -1
  218. package/dist/slider.js +1 -1
  219. package/dist/{spinner-EZjRf-QZ.js → spinner-BPqLh7JL.js} +2 -2
  220. package/dist/{spinner-EZjRf-QZ.js.map → spinner-BPqLh7JL.js.map} +1 -1
  221. package/dist/{spinner-B2VjkiCF.cjs → spinner-Cq8tY2xk.cjs} +2 -2
  222. package/dist/{spinner-B2VjkiCF.cjs.map → spinner-Cq8tY2xk.cjs.map} +1 -1
  223. package/dist/steps.cjs +1 -1
  224. package/dist/steps.js +1 -1
  225. package/dist/{surface-BmAoIqMr.js → surface-1xboRERM.js} +2 -2
  226. package/dist/{surface-BmAoIqMr.js.map → surface-1xboRERM.js.map} +1 -1
  227. package/dist/{surface-063HkUq8.cjs → surface-YyZ8eXfj.cjs} +2 -2
  228. package/dist/{surface-063HkUq8.cjs.map → surface-YyZ8eXfj.cjs.map} +1 -1
  229. package/dist/surface.cjs +1 -1
  230. package/dist/surface.js +1 -1
  231. package/dist/{table-DyqYDcX9.js → table-C6EWKqDY.js} +2 -2
  232. package/dist/{table-DyqYDcX9.js.map → table-C6EWKqDY.js.map} +1 -1
  233. package/dist/{table-DiUP88FH.cjs → table-DpXmflf7.cjs} +2 -2
  234. package/dist/{table-DiUP88FH.cjs.map → table-DpXmflf7.cjs.map} +1 -1
  235. package/dist/table.cjs +1 -1
  236. package/dist/table.js +1 -1
  237. package/dist/{tabs-compatibility-Cy8kD9mX.js → tabs-compatibility-AFzKAP2D.js} +2 -2
  238. package/dist/{tabs-compatibility-Cy8kD9mX.js.map → tabs-compatibility-AFzKAP2D.js.map} +1 -1
  239. package/dist/{tabs-compatibility-DfgDgm3L.cjs → tabs-compatibility-ThgWuSrK.cjs} +2 -2
  240. package/dist/{tabs-compatibility-DfgDgm3L.cjs.map → tabs-compatibility-ThgWuSrK.cjs.map} +1 -1
  241. package/dist/tabs.cjs +1 -1
  242. package/dist/tabs.js +1 -1
  243. package/dist/{tailwind.mixin-C9z3GSDB.cjs → tailwind.mixin-DNME2oUL.cjs} +2 -2
  244. package/dist/{tailwind.mixin-C9z3GSDB.cjs.map → tailwind.mixin-DNME2oUL.cjs.map} +1 -1
  245. package/dist/{tailwind.mixin-Bnsuwr6X.js → tailwind.mixin-epCxS6FK.js} +9 -9
  246. package/dist/{tailwind.mixin-Bnsuwr6X.js.map → tailwind.mixin-epCxS6FK.js.map} +1 -1
  247. package/dist/teleport.cjs +1 -1
  248. package/dist/teleport.js +1 -1
  249. package/dist/{textarea-C655CWvM.cjs → textarea-B_TlKSop.cjs} +2 -2
  250. package/dist/{textarea-C655CWvM.cjs.map → textarea-B_TlKSop.cjs.map} +1 -1
  251. package/dist/{textarea-CQM25O_4.js → textarea-JO7OVdfk.js} +2 -2
  252. package/dist/{textarea-CQM25O_4.js.map → textarea-JO7OVdfk.js.map} +1 -1
  253. package/dist/textarea.cjs +1 -1
  254. package/dist/textarea.js +1 -1
  255. package/dist/{theme-button-CWlSwmLe.js → theme-button-C8cK7un6.js} +2 -2
  256. package/dist/{theme-button-CWlSwmLe.js.map → theme-button-C8cK7un6.js.map} +1 -1
  257. package/dist/{theme-button-D70_9T_Q.cjs → theme-button-DnrKANEK.cjs} +2 -2
  258. package/dist/{theme-button-D70_9T_Q.cjs.map → theme-button-DnrKANEK.cjs.map} +1 -1
  259. package/dist/theme-button.cjs +1 -1
  260. package/dist/theme-button.js +1 -1
  261. package/dist/theme.cjs +1 -1
  262. package/dist/theme.js +1 -1
  263. package/dist/{timezone-DrQWdXpw.cjs → timezone-C56jMhLK.cjs} +2 -2
  264. package/dist/{timezone-DrQWdXpw.cjs.map → timezone-C56jMhLK.cjs.map} +1 -1
  265. package/dist/{timezone-DnBsehNw.js → timezone-CEEEd-9_.js} +3 -3
  266. package/dist/{timezone-DnBsehNw.js.map → timezone-CEEEd-9_.js.map} +1 -1
  267. package/dist/{tooltip-DdXpj7ri.js → tooltip-CnuYee5c.js} +2 -2
  268. package/dist/{tooltip-DdXpj7ri.js.map → tooltip-CnuYee5c.js.map} +1 -1
  269. package/dist/{tooltip-dlvpo-O7.cjs → tooltip-twQMYpmk.cjs} +2 -2
  270. package/dist/{tooltip-dlvpo-O7.cjs.map → tooltip-twQMYpmk.cjs.map} +1 -1
  271. package/dist/tooltip.cjs +1 -1
  272. package/dist/tooltip.js +1 -1
  273. package/dist/{tree-BX1rDcI3.js → tree-CfnCGGn7.js} +2 -2
  274. package/dist/{tree-BX1rDcI3.js.map → tree-CfnCGGn7.js.map} +1 -1
  275. package/dist/{tree-BUQThnka.cjs → tree-Dv5R6kdP.cjs} +2 -2
  276. package/dist/{tree-BUQThnka.cjs.map → tree-Dv5R6kdP.cjs.map} +1 -1
  277. package/dist/tree.cjs +1 -1
  278. package/dist/tree.js +1 -1
  279. package/dist/{typewriter-Czy543Ke.js → typewriter-DAxRjeRy.js} +4 -4
  280. package/dist/{typewriter-Czy543Ke.js.map → typewriter-DAxRjeRy.js.map} +1 -1
  281. package/dist/{typewriter-BfD8bxa4.cjs → typewriter-egr1HiFJ.cjs} +2 -2
  282. package/dist/{typewriter-BfD8bxa4.cjs.map → typewriter-egr1HiFJ.cjs.map} +1 -1
  283. package/dist/typewriter.cjs +1 -1
  284. package/dist/typewriter.js +1 -1
  285. package/dist/{typography-DyM6-J-U.cjs → typography-DVZ2ezpU.cjs} +2 -2
  286. package/dist/{typography-DyM6-J-U.cjs.map → typography-DVZ2ezpU.cjs.map} +1 -1
  287. package/dist/{typography-DS-zFvYn.js → typography-De5UXL0j.js} +2 -2
  288. package/dist/{typography-DS-zFvYn.js.map → typography-De5UXL0j.js.map} +1 -1
  289. package/dist/typography.cjs +1 -1
  290. package/dist/typography.js +1 -1
  291. package/package.json +1 -1
  292. package/dist/media-DTdOxwsY.js.map +0 -1
  293. package/dist/media-DzPzgQVq.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typewriter-BfD8bxa4.cjs","sources":["../.yarn/unplugged/typeit-npm-8.8.7-4441c75f10/node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { css, html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, queryAssignedNodes } from 'lit/decorators.js'\nimport TypeIt, { Options as TypeItOptions } from 'typeit'\n\n@customElement('schmancy-typewriter')\nexport class TypewriterElement extends $LitElement(css`\n\t:host {\n\t\tdisplay: inherit;\n\t}\n\n\t#typewriter {\n\t\t--ti-cursor-display: initial;\n\t}\n\n\t#typewriter .ti-cursor {\n\t\tdisplay: var(--ti-cursor-display);\n\t}\n`) {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 50\n\n\t/**\n\t * Delay before typing starts (ms).\n\t */\n\t@consume({ context: delayContext, subscribe: true })\n\t@property({ type: Number })\n\tdelay: number = 0\n\n\t/**\n\t * Automatically start typing on initialization.\n\t */\n\t@property({ type: Boolean })\n\tautoStart: boolean = true\n\n\t/**\n\t * The cursor character.\n\t */\n\t@property({ type: String })\n\tcursorChar: string = ''\n\n\t/**\n\t * Typing speed for deletions (ms per character).\n\t */\n\t@property({ type: Number })\n\tdeleteSpeed: number = 25\n\n\t@property({ type: Boolean }) once = true\n\t/**\n\t * TypeIt instance.\n\t */\n\tprivate typeItInstance: TypeIt | null = null\n\n\t/**\n\t * Reference to the typewriter container.\n\t */\n\t@query('#typewriter')\n\tprivate typewriterContainer!: HTMLElement\n\n\t@queryAssignedNodes({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedNodes!: Node[]\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedElements!: HTMLElement[]\n\t/**\n\t * Lifecycle method called when the component is disconnected from the DOM.\n\t * Ensures that TypeIt instances are properly cleaned up.\n\t */\n\n\tprivate sessionKey = ''\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._destroyTypeIt()\n\t}\n\n\t/**\n\t * Initializes the TypeIt instance with the provided slotted content.\n\t */\n\tprivate _startTyping() {\n\t\t// Destroy any existing TypeIt instance\n\t\tthis._destroyTypeIt()\n\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.shadowRoot?.querySelector('slot')?.removeAttribute('hidden')\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.typewriterContainer) {\n\t\t\tconsole.warn('Typewriter container not found.')\n\t\t\treturn\n\t\t}\n\n\t\t// Configure TypeIt options\n\t\tconst typeItOptions: TypeItOptions = {\n\t\t\tspeed: this.speed,\n\t\t\tstartDelay: this.delay,\n\t\t\tcursor: !!this.cursorChar,\n\t\t\tcursorChar: this.cursorChar,\n\t\t\tdeleteSpeed: this.deleteSpeed,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Dispatch the custom event\n\t\t\t\tthis.dispatchEvent(new CustomEvent('typeit-complete', { bubbles: true, composed: true }))\n\n\t\t\t\t// Hide the cursor\n\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t},\n\t\t}\n\n\t\t// Initialize TypeIt\n\t\tthis.typeItInstance = new TypeIt(this.typewriterContainer, typeItOptions)\n\n\t\t// Process slotted content as actions\n\t\tconst slottedNodes = this._getSlottedNodes\n\t\tslottedNodes.forEach(node => {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t// Handle plain text\n\t\t\t\tthis.typeItInstance?.type(node.textContent || '')\n\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t// Handle custom element\n\t\t\t\tthis._processCustomElement(node)\n\t\t\t}\n\t\t})\n\n\t\t// Start the typing animation if autoStart is enabled\n\t\t// use rxjs to detect once we are in the view port\n\t\tintersection$(this.shadowRoot?.host as Element).subscribe(() => {\n\t\t\t// alert('in view')\n\t\t\tthis.typeItInstance?.go()\n\t\t})\n\t\t// Start the typing animation if autoStart is enabled\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this._getSlottedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\t/**\n\t * Destroys the current TypeIt instance if it exists.\n\t */\n\tprivate _destroyTypeIt() {\n\t\tif (this.typeItInstance) {\n\t\t\ttry {\n\t\t\t\tthis.typeItInstance.destroy()\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error destroying TypeIt instance:', error)\n\t\t\t}\n\t\t\tthis.typeItInstance = null\n\t\t}\n\t}\n\n\t/**\n\t * Processes a custom element for its typing behavior.\n\t */\n\tprivate _processCustomElement(element: HTMLElement) {\n\t\tconst action = element.getAttribute('action')\n\t\tconst value = element.getAttribute('value')\n\t\tswitch (action) {\n\t\t\tcase 'pause':\n\t\t\t\tthis.typeItInstance?.pause(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tcase 'delete':\n\t\t\t\tthis.typeItInstance?.delete(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (element.tagName === 'P') {\n\t\t\t\t\tthis.typeItInstance.break()\n\t\t\t\t}\n\t\t\t\t// Treat as text if no action is defined\n\t\t\t\tthis.typeItInstance?.type(element.textContent || '')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Renders the component's HTML.\n\t */\n\trender(): TemplateResult {\n\t\treturn html`<div id=\"typewriter\" aria-live=\"polite\"></div>\n\n\t\t\t<div class=\"typewriter\">\n\t\t\t\t<slot\n\t\t\t\t\thidden\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._startTyping()\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typewriter': TypewriterElement\n\t}\n}\n"],"names":["isArray","thing","Array","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","n","opacity","options","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","el","document","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","forEach","child","nodeValue","c","parentNode","insertBefore","remove","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","querySelector","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","classList","contains","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","maybeChunkStringAsHtml","str","asHtml","cleanUpSkipped","index","newIndex","queueItems","cleanUp","i","isNumber","Number","isInteger","countStepsToSelector","selector","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","t","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","s","animate","pause","play","execute","queueItem","func","call","fireItem","wait","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","delay","shouldPauseCursor","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","isInput","handleFunctionalArg","arg","select","all","merge","originalObj","newObj","Object","assign","cursorFontStyles","color","transform","TypeIt","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","buildOptions","setUpCursor","typeitId","go","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","removeNode","rebuild","is","property","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","getPace","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","generateTemporaryOptionQueueItems","numberOfSteps","directionalStep","queueAndReturn","milliseconds","numCharacters","num","typeableQueueItems","rounds","derivedCursorPosition","then","flush","getOptions","getElement","empty","#f","elementIsInput","remember","qKey","queueKey","allChars","e","move","printedCharacters","min","max","newCursorPosition","nodeToInsertBefore","prepLoop","#w","#b","callback","silent","setTimeout","shouldRenderCursor","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","#n","#l","maybeAppendPause","#x","#o","newOptions","updateOptions","#s","generateQueue","type","splitItems","defaultFrames","defaultOptions","#q","existingMarkup","replace","trim","split","concat","#e","className","style","visibility","#S","items","#a","originalTarget","character","textContent","target","tagName","cursorNode","#y","slice","#h","rootElement","nodeParent","#u","#c","#v","TypewriterElement","$LitElement","css","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"typewriter-egr1HiFJ.cjs","sources":["../.yarn/unplugged/typeit-npm-8.8.7-4441c75f10/node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { css, html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, queryAssignedNodes } from 'lit/decorators.js'\nimport TypeIt, { Options as TypeItOptions } from 'typeit'\n\n@customElement('schmancy-typewriter')\nexport class TypewriterElement extends $LitElement(css`\n\t:host {\n\t\tdisplay: inherit;\n\t}\n\n\t#typewriter {\n\t\t--ti-cursor-display: initial;\n\t}\n\n\t#typewriter .ti-cursor {\n\t\tdisplay: var(--ti-cursor-display);\n\t}\n`) {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 50\n\n\t/**\n\t * Delay before typing starts (ms).\n\t */\n\t@consume({ context: delayContext, subscribe: true })\n\t@property({ type: Number })\n\tdelay: number = 0\n\n\t/**\n\t * Automatically start typing on initialization.\n\t */\n\t@property({ type: Boolean })\n\tautoStart: boolean = true\n\n\t/**\n\t * The cursor character.\n\t */\n\t@property({ type: String })\n\tcursorChar: string = ''\n\n\t/**\n\t * Typing speed for deletions (ms per character).\n\t */\n\t@property({ type: Number })\n\tdeleteSpeed: number = 25\n\n\t@property({ type: Boolean }) once = true\n\t/**\n\t * TypeIt instance.\n\t */\n\tprivate typeItInstance: TypeIt | null = null\n\n\t/**\n\t * Reference to the typewriter container.\n\t */\n\t@query('#typewriter')\n\tprivate typewriterContainer!: HTMLElement\n\n\t@queryAssignedNodes({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedNodes!: Node[]\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedElements!: HTMLElement[]\n\t/**\n\t * Lifecycle method called when the component is disconnected from the DOM.\n\t * Ensures that TypeIt instances are properly cleaned up.\n\t */\n\n\tprivate sessionKey = ''\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._destroyTypeIt()\n\t}\n\n\t/**\n\t * Initializes the TypeIt instance with the provided slotted content.\n\t */\n\tprivate _startTyping() {\n\t\t// Destroy any existing TypeIt instance\n\t\tthis._destroyTypeIt()\n\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.shadowRoot?.querySelector('slot')?.removeAttribute('hidden')\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.typewriterContainer) {\n\t\t\tconsole.warn('Typewriter container not found.')\n\t\t\treturn\n\t\t}\n\n\t\t// Configure TypeIt options\n\t\tconst typeItOptions: TypeItOptions = {\n\t\t\tspeed: this.speed,\n\t\t\tstartDelay: this.delay,\n\t\t\tcursor: !!this.cursorChar,\n\t\t\tcursorChar: this.cursorChar,\n\t\t\tdeleteSpeed: this.deleteSpeed,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Dispatch the custom event\n\t\t\t\tthis.dispatchEvent(new CustomEvent('typeit-complete', { bubbles: true, composed: true }))\n\n\t\t\t\t// Hide the cursor\n\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t},\n\t\t}\n\n\t\t// Initialize TypeIt\n\t\tthis.typeItInstance = new TypeIt(this.typewriterContainer, typeItOptions)\n\n\t\t// Process slotted content as actions\n\t\tconst slottedNodes = this._getSlottedNodes\n\t\tslottedNodes.forEach(node => {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t// Handle plain text\n\t\t\t\tthis.typeItInstance?.type(node.textContent || '')\n\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t// Handle custom element\n\t\t\t\tthis._processCustomElement(node)\n\t\t\t}\n\t\t})\n\n\t\t// Start the typing animation if autoStart is enabled\n\t\t// use rxjs to detect once we are in the view port\n\t\tintersection$(this.shadowRoot?.host as Element).subscribe(() => {\n\t\t\t// alert('in view')\n\t\t\tthis.typeItInstance?.go()\n\t\t})\n\t\t// Start the typing animation if autoStart is enabled\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this._getSlottedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\t/**\n\t * Destroys the current TypeIt instance if it exists.\n\t */\n\tprivate _destroyTypeIt() {\n\t\tif (this.typeItInstance) {\n\t\t\ttry {\n\t\t\t\tthis.typeItInstance.destroy()\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error destroying TypeIt instance:', error)\n\t\t\t}\n\t\t\tthis.typeItInstance = null\n\t\t}\n\t}\n\n\t/**\n\t * Processes a custom element for its typing behavior.\n\t */\n\tprivate _processCustomElement(element: HTMLElement) {\n\t\tconst action = element.getAttribute('action')\n\t\tconst value = element.getAttribute('value')\n\t\tswitch (action) {\n\t\t\tcase 'pause':\n\t\t\t\tthis.typeItInstance?.pause(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tcase 'delete':\n\t\t\t\tthis.typeItInstance?.delete(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (element.tagName === 'P') {\n\t\t\t\t\tthis.typeItInstance.break()\n\t\t\t\t}\n\t\t\t\t// Treat as text if no action is defined\n\t\t\t\tthis.typeItInstance?.type(element.textContent || '')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Renders the component's HTML.\n\t */\n\trender(): TemplateResult {\n\t\treturn html`<div id=\"typewriter\" aria-live=\"polite\"></div>\n\n\t\t\t<div class=\"typewriter\">\n\t\t\t\t<slot\n\t\t\t\t\thidden\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._startTyping()\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typewriter': TypewriterElement\n\t}\n}\n"],"names":["isArray","thing","Array","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","n","opacity","options","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","el","document","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","forEach","child","nodeValue","c","parentNode","insertBefore","remove","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","querySelector","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","classList","contains","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","maybeChunkStringAsHtml","str","asHtml","cleanUpSkipped","index","newIndex","queueItems","cleanUp","i","isNumber","Number","isInteger","countStepsToSelector","selector","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","t","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","s","animate","pause","play","execute","queueItem","func","call","fireItem","wait","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","delay","shouldPauseCursor","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","isInput","handleFunctionalArg","arg","select","all","merge","originalObj","newObj","Object","assign","cursorFontStyles","color","transform","TypeIt","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","buildOptions","setUpCursor","typeitId","go","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","removeNode","rebuild","is","property","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","getPace","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","generateTemporaryOptionQueueItems","numberOfSteps","directionalStep","queueAndReturn","milliseconds","numCharacters","num","typeableQueueItems","rounds","derivedCursorPosition","then","flush","getOptions","getElement","empty","#f","elementIsInput","remember","qKey","queueKey","allChars","e","move","printedCharacters","min","max","newCursorPosition","nodeToInsertBefore","prepLoop","#w","#b","callback","silent","setTimeout","shouldRenderCursor","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","#n","#l","maybeAppendPause","#x","#o","newOptions","updateOptions","#s","generateQueue","type","splitItems","defaultFrames","defaultOptions","#q","existingMarkup","replace","trim","split","concat","#e","className","style","visibility","#S","items","#a","originalTarget","character","textContent","target","tagName","cursorNode","#y","slice","#h","rootElement","nodeParent","#u","#c","#v","TypewriterElement","$LitElement","css","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typewriter-BfD8bxa4.cjs");Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>e.TypewriterElement});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typewriter-egr1HiFJ.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-Czy543Ke.js";
1
+ import { T as t } from "./typewriter-DAxRjeRy.js";
2
2
  export {
3
3
  t as TypewriterElement
4
4
  };
@@ -1,4 +1,4 @@
1
- "use strict";const r=require("./tailwind.mixin-C9z3GSDB.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-DNME2oUL.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-DyM6-J-U.cjs.map
286
+ //# sourceMappingURL=typography-DVZ2ezpU.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography-DyM6-J-U.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,MAAAC,GAAAA,SAAAA,EAmSmEC,KAAAC,KAAA,OAQ/BD,KAAAE,MAAA,IAAA,CAgChC,QAAAC,CACF,OAAAC,EAAAA,mBAAA,CAAA,EAzCRC,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAS,EAAA,CAAA,CAAA,EAlSvBd,2BAmSZe,UAAA,OAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAS,EAAA,CAAA,CAAA,EA1SvBd,2BA2SZe,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAlTdd,CAAAA,CAAAA,EAAAA,2BAmTZe,UAAA,QAAA,CASAJ,EAAAA,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EA3Tdd,CAAAA,CAAAA,EAAAA,2BA4TZe,UAAA,SAAA,CAUAJ,EAAAA,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EArUdd,CAAAA,CAAAA,EAAAA,2BAsUZe,UAAA,YAAA,CAGAJ,EAAAA,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMS,OAAQC,UAAW,YAAaH,QAAAA,MAxUtCd,2BAyUZe,UAAA,WAAA,CAzUYf,EAAAA,QAANA,mBAAAW,EAAA,CADNO,EAAAA,cAAc,qBAAA,CAAA,EACFlB"}
1
+ {"version":3,"file":"typography-DVZ2ezpU.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,MAAAC,GAAAA,SAAAA,EAmSmEC,KAAAC,KAAA,OAQ/BD,KAAAE,MAAA,IAAA,CAgChC,QAAAC,CACF,OAAAC,EAAAA,mBAAA,CAAA,EAzCRC,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAS,EAAA,CAAA,CAAA,EAlSvBd,2BAmSZe,UAAA,OAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAS,EAAA,CAAA,CAAA,EA1SvBd,2BA2SZe,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAlTdd,CAAAA,CAAAA,EAAAA,2BAmTZe,UAAA,QAAA,CASAJ,EAAAA,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EA3Tdd,CAAAA,CAAAA,EAAAA,2BA4TZe,UAAA,SAAA,CAUAJ,EAAAA,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EArUdd,CAAAA,CAAAA,EAAAA,2BAsUZe,UAAA,YAAA,CAGAJ,EAAAA,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMS,OAAQC,UAAW,YAAaH,QAAAA,MAxUtCd,2BAyUZe,UAAA,WAAA,CAzUYf,EAAAA,QAANA,mBAAAW,EAAA,CADNO,EAAAA,cAAc,qBAAA,CAAA,EACFlB"}
@@ -1,4 +1,4 @@
1
- import { T as r } from "./tailwind.mixin-Bnsuwr6X.js";
1
+ import { T as r } from "./tailwind.mixin-epCxS6FK.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-DS-zFvYn.js.map
304
+ //# sourceMappingURL=typography-De5UXL0j.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography-DS-zFvYn.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","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":";;;;;;;AAWa,IAAAA,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,SAmSmEC,GAAAA,KAAAC,OAAA,QAQ/BD,KAAAE,QAAA;AAAA,EAAA;AAAA,EAgChC,SACF;AAAA,WAAAC;AAAAA,EAAA;AAAA;AAzCRC,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,YAlSdb,CAAAA,CAAAA,GAAAA,EAmSZc,WAAA,QAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,YA1Sdb,CAAAA,CAAAA,GAAAA,EA2SZc,WAAA,SAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,SAAAA,QAlTdb,EAmTZc,WAAA,SAAA,CASAJ,GAAAA,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,SAAAA,QA3Tdb,EA4TZc,WAAA,UAAA,CAUAJ,GAAAA,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,SAAS,GAAA,CAAA,CAAA,GArUvBb,EAsUZc,WAAA,aAAA,IAGAJ,EAAA,CADCC,EAAS,EAAEJ,MAAMQ,QAAQC,WAAW,aAAaH,YAxUtCb,CAAAA,CAAAA,GAAAA,EAyUZc,WAAA,YAAA,CAAA,GAzUYd,IAANU,EAAA,CADNO,EAAc,qBAAA,CAAA,GACFjB;"}
1
+ {"version":3,"file":"typography-De5UXL0j.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","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":";;;;;;;AAWa,IAAAA,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,SAmSmEC,GAAAA,KAAAC,OAAA,QAQ/BD,KAAAE,QAAA;AAAA,EAAA;AAAA,EAgChC,SACF;AAAA,WAAAC;AAAAA,EAAA;AAAA;AAzCRC,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,YAlSdb,CAAAA,CAAAA,GAAAA,EAmSZc,WAAA,QAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,YA1Sdb,CAAAA,CAAAA,GAAAA,EA2SZc,WAAA,SAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,SAAAA,QAlTdb,EAmTZc,WAAA,SAAA,CASAJ,GAAAA,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,SAAAA,QA3Tdb,EA4TZc,WAAA,UAAA,CAUAJ,GAAAA,EAAA,CADCC,EAAS,EAAEJ,MAAMK,QAAQC,SAAS,GAAA,CAAA,CAAA,GArUvBb,EAsUZc,WAAA,aAAA,IAGAJ,EAAA,CADCC,EAAS,EAAEJ,MAAMQ,QAAQC,WAAW,aAAaH,YAxUtCb,CAAAA,CAAAA,GAAAA,EAyUZc,WAAA,YAAA,CAAA,GAzUYd,IAANU,EAAA,CADNO,EAAc,qBAAA,CAAA,GACFjB;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-DyM6-J-U.cjs");Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>e.SchmancyTypography});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-DVZ2ezpU.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-DS-zFvYn.js";
1
+ import { S as p } from "./typography-De5UXL0j.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.4.18",
3
+ "version": "0.4.20",
4
4
  "description": "UI library build with web components",
5
5
  "main": "./dist/index.js",
6
6
  "packageManager": "yarn@4.9.2",
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-DTdOxwsY.js","sources":["../src/card/actions.ts","../src/card/card.ts","../src/card/content.ts","../src/card/media.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-action\n * @slot - The content of the action\n */\n@customElement('schmancy-card-action')\nexport default class SchmancyCardAction extends TailwindElement(css`\n\t:host {\n\t\tdisplay: flex;\n\t\tgap: 0.5rem;\n\t\tpadding: 0.5rem 1rem;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-action': SchmancyCardAction\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-card')\nexport default class SchmancyCard extends TailwindElement(css`:host{\n\tdisplay: block;\n\tposition: relative;\n\tinset: 0;\n\tborder-radius: 0.375rem; /* rounded-md */\n}\n:host([type=\"elevated\"]) {\n\tbackground-color: var(--schmancy-sys-color-surface-low);\n\tbox-shadow: var(--schmancy-sys-elevation-1);\n}\n:host([type=\"elevated\"]:hover) {\n\tbox-shadow: var(--schmancy-sys-elevation-2);\n}\n:host([type=\"filled\"]) {\n\tbackground-color: var(--schmancy-sys-color-surface-highest);\n}\n:host([type=\"filled\"]:hover) {\n\tbox-shadow: var(--schmancy-sys-elevation-1);\n}\n:host([type=\"outlined\"]) {\n\tbackground-color: var(--schmancy-sys-color-surface-default);\n\tborder: 1px solid var(--schmancy-sys-color-outlineVariant);\n}\n:host([type=\"outlined\"]:hover) {\n\tbox-shadow: var(--schmancy-sys-elevation-1);\n}\n:host([elevation=\"1\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-1);\n}\n:host([elevation=\"2\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-2);\n}\n:host([elevation=\"3\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-3);\n}\n:host([elevation=\"4\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-4);\n}\n:host([elevation=\"5\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-5);\n}`) {\n\t@property() type: 'elevated' | 'filled' | 'outlined' = 'elevated'\n\t@property({ type: Number }) elevation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card': SchmancyCard\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-content\n * @slot headline - The headline text of the card\n * @slot subhead - The subhead text of the card\n * @slot default - The main content of the card\n */\n@customElement('schmancy-card-content')\nexport default class SchmancyCardContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 1rem;\n\t\tpadding: 24px 16px;\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t}\n\t\n\t.header-container {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 0.25rem;\n\t}\n\t\n\t::slotted([slot=\"headline\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tfont-size: 1.125rem;\n\t\tline-height: 1.75rem;\n\t\tfont-weight: 400;\n\t}\n\t\n\t::slotted([slot=\"subhead\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t\tfont-size: 0.875rem;\n\t\tline-height: 1.25rem;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<div class=\"header-container\">\n\t\t\t\t<slot name=\"headline\"></slot>\n\t\t\t\t<slot name=\"subhead\"></slot>\n\t\t\t</div>\n\t\t\t<slot></slot>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-content': SchmancyCardContent\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-media\n */\n@customElement('schmancy-card-media')\nexport default class SchmancyCardMedia extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\theight: 200px;\n\t\toverflow: hidden;\n\t}\n\t\n\t/* Allow height to be overridden when used in flex/grid layouts */\n\t:host-context(.h-full) {\n\t\theight: 100%;\n\t}\n\t\n\t::slotted(img),\n\timg {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tobject-position: center;\n\t}\n\t\n\t/* Object fit styles based on fit attribute */\n\t:host([fit=\"contain\"]) img,\n\t:host([fit=\"contain\"]) ::slotted(img) {\n\t\tobject-fit: contain;\n\t}\n\t\n\t:host([fit=\"cover\"]) img,\n\t:host([fit=\"cover\"]) ::slotted(img) {\n\t\tobject-fit: cover;\n\t}\n\t\n\t:host([fit=\"fill\"]) img,\n\t:host([fit=\"fill\"]) ::slotted(img) {\n\t\tobject-fit: fill;\n\t}\n\t\n\t:host([fit=\"none\"]) img,\n\t:host([fit=\"none\"]) ::slotted(img) {\n\t\tobject-fit: none;\n\t}\n\t\n\t:host([fit=\"scale-down\"]) img,\n\t:host([fit=\"scale-down\"]) ::slotted(img) {\n\t\tobject-fit: scale-down;\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tsrc: string = ''\n\n\t@property({ type: String, reflect: true })\n\tfit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' = 'contain'\n\t\n\t@property({ type: String })\n\talt: string = ''\n\n\tprotected render(): unknown {\n\t\t// If src is provided, render an img element\n\t\t// Otherwise, allow users to slot their own content\n\t\treturn this.src \n\t\t\t? html`<img src=\"${this.src}\" alt=\"${this.alt}\" />` \n\t\t\t: html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-media': SchmancyCardMedia\n\t}\n}\n"],"names":["SchmancyCardAction","TailwindElement","css","render","html","customElement","SchmancyCard","constructor","super","arguments","this","type","elevation","__decorateClass","property","prototype","Number","SchmancyCardContent","SchmancyCardMedia","src","fit","alt","String","reflect"],"mappings":";;;;;;;AASqB,IAAAA,IAArB,cAAgDC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EASrD,SAAAC;AACF,WAAAC;AAAAA,EAAA;;AAVYJ;;;GAArB,CADCK,EAAc,sBAAA,CAAA,GACML;;;;;ACJA,IAAAM,IAArB,cAA0CL,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;EAA1D,cAAAK;AAAAC,aAAAC,SAyCwDC,GAAAA,KAAAC,OAAA,YACQD,KAAAE,YAAA;AAAA,EAAA;AAAA,EACrD,SACF;AAAA,WAAAR;AAAAA,EAAA;AAAA;AAHIS,EAAA,CAAXC,EAAAA,CAAAA,GAzCmBR,EAyCRS,WAAA,QAAA,CAAA,GACgBF,EAAA,CAA3BC,EAAS,EAAEH,MAAMK,OAAAA,CAAAA,CAAAA,GA1CEV,EA0CQS,WAAA,aAAA,CA1CRT,GAAAA,IAArBO,EAAA,CADCR,EAAc,eACMC,CAAAA,GAAAA,CAAAA;;ACMA,IAAAW,IAArB,cAAiDhB,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;EA4BtD,SAAAC;AACF,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAA;AA7BYa;AAAAA;;;GAArB,CADCZ,EAAc,2BACMY;;;;;ACHA,IAAAC,IAArB,cAA+CjB,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,CAA/D,EAAA;AAAA,EAAA,cAAAM;AAAAA,UAAAA,GAAAC,SA+CeC,GAAAA,KAAAS,MAAA,IAG8CT,KAAAU,MAAA,WAG9CV,KAAAW,MAAA;AAAA,EAAA;AAAA,EAEJ,SAGF;AAAA,WAAAX,KAAKS,MACTf,cAAiBM,KAAKS,GAAAA,UAAaT,KAAKW,GACxCjB,SAAAA;AAAAA,EAAA;AAAA;AAbJS,EAAA,CADCC,EAAS,EAAEH,MAAMW,QAAQC,SAAAA,GA9CNL,CAAAA,CAAAA,GAAAA,EA+CpBH,WAAA,OAAA,CAGAF,GAAAA,EAAA,CADCC,EAAS,EAAEH,MAAMW,QAAQC,SAAS,GAAA,CAAA,CAAA,GAjDfL,EAkDpBH,WAAA,OAAA,CAGAF,GAAAA,EAAA,CADCC,EAAS,EAAEH,MAAMW,OApDEJ,CAAAA,CAAAA,GAAAA,EAqDpBH,WAAA,OAAA,CAAA,GArDoBG,IAArBL,EAAA,CADCR,EAAc,qBAAA,CAAA,GACMa;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-DzPzgQVq.cjs","sources":["../src/card/actions.ts","../src/card/card.ts","../src/card/content.ts","../src/card/media.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-action\n * @slot - The content of the action\n */\n@customElement('schmancy-card-action')\nexport default class SchmancyCardAction extends TailwindElement(css`\n\t:host {\n\t\tdisplay: flex;\n\t\tgap: 0.5rem;\n\t\tpadding: 0.5rem 1rem;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-action': SchmancyCardAction\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-card')\nexport default class SchmancyCard extends TailwindElement(css`:host{\n\tdisplay: block;\n\tposition: relative;\n\tinset: 0;\n\tborder-radius: 0.375rem; /* rounded-md */\n}\n:host([type=\"elevated\"]) {\n\tbackground-color: var(--schmancy-sys-color-surface-low);\n\tbox-shadow: var(--schmancy-sys-elevation-1);\n}\n:host([type=\"elevated\"]:hover) {\n\tbox-shadow: var(--schmancy-sys-elevation-2);\n}\n:host([type=\"filled\"]) {\n\tbackground-color: var(--schmancy-sys-color-surface-highest);\n}\n:host([type=\"filled\"]:hover) {\n\tbox-shadow: var(--schmancy-sys-elevation-1);\n}\n:host([type=\"outlined\"]) {\n\tbackground-color: var(--schmancy-sys-color-surface-default);\n\tborder: 1px solid var(--schmancy-sys-color-outlineVariant);\n}\n:host([type=\"outlined\"]:hover) {\n\tbox-shadow: var(--schmancy-sys-elevation-1);\n}\n:host([elevation=\"1\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-1);\n}\n:host([elevation=\"2\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-2);\n}\n:host([elevation=\"3\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-3);\n}\n:host([elevation=\"4\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-4);\n}\n:host([elevation=\"5\"]) {\n\tbox-shadow: var(--schmancy-sys-elevation-5);\n}`) {\n\t@property() type: 'elevated' | 'filled' | 'outlined' = 'elevated'\n\t@property({ type: Number }) elevation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card': SchmancyCard\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-content\n * @slot headline - The headline text of the card\n * @slot subhead - The subhead text of the card\n * @slot default - The main content of the card\n */\n@customElement('schmancy-card-content')\nexport default class SchmancyCardContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 1rem;\n\t\tpadding: 24px 16px;\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t}\n\t\n\t.header-container {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 0.25rem;\n\t}\n\t\n\t::slotted([slot=\"headline\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tfont-size: 1.125rem;\n\t\tline-height: 1.75rem;\n\t\tfont-weight: 400;\n\t}\n\t\n\t::slotted([slot=\"subhead\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t\tfont-size: 0.875rem;\n\t\tline-height: 1.25rem;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<div class=\"header-container\">\n\t\t\t\t<slot name=\"headline\"></slot>\n\t\t\t\t<slot name=\"subhead\"></slot>\n\t\t\t</div>\n\t\t\t<slot></slot>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-content': SchmancyCardContent\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-media\n */\n@customElement('schmancy-card-media')\nexport default class SchmancyCardMedia extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\theight: 200px;\n\t\toverflow: hidden;\n\t}\n\t\n\t/* Allow height to be overridden when used in flex/grid layouts */\n\t:host-context(.h-full) {\n\t\theight: 100%;\n\t}\n\t\n\t::slotted(img),\n\timg {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tobject-position: center;\n\t}\n\t\n\t/* Object fit styles based on fit attribute */\n\t:host([fit=\"contain\"]) img,\n\t:host([fit=\"contain\"]) ::slotted(img) {\n\t\tobject-fit: contain;\n\t}\n\t\n\t:host([fit=\"cover\"]) img,\n\t:host([fit=\"cover\"]) ::slotted(img) {\n\t\tobject-fit: cover;\n\t}\n\t\n\t:host([fit=\"fill\"]) img,\n\t:host([fit=\"fill\"]) ::slotted(img) {\n\t\tobject-fit: fill;\n\t}\n\t\n\t:host([fit=\"none\"]) img,\n\t:host([fit=\"none\"]) ::slotted(img) {\n\t\tobject-fit: none;\n\t}\n\t\n\t:host([fit=\"scale-down\"]) img,\n\t:host([fit=\"scale-down\"]) ::slotted(img) {\n\t\tobject-fit: scale-down;\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tsrc: string = ''\n\n\t@property({ type: String, reflect: true })\n\tfit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' = 'contain'\n\t\n\t@property({ type: String })\n\talt: string = ''\n\n\tprotected render(): unknown {\n\t\t// If src is provided, render an img element\n\t\t// Otherwise, allow users to slot their own content\n\t\treturn this.src \n\t\t\t? html`<img src=\"${this.src}\" alt=\"${this.alt}\" />` \n\t\t\t: html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-media': SchmancyCardMedia\n\t}\n}\n"],"names":["SchmancyCardAction","TailwindElement","css","render","html","customElement","SchmancyCard","constructor","super","arguments","this","type","elevation","__decorateClass","property","prototype","Number","SchmancyCardContent","SchmancyCardMedia","src","fit","alt","String","reflect"],"mappings":"kPASqBA,QAAAA,mBAArB,cAAgDC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GASrD,QAAAC,CACF,OAAAC,EAAAA,mBAAA,GAVYJ,QAArBA,yHAAA,CADCK,EAAAA,cAAc,sBAAA,CAAA,EACML,4NCJAM,QAAAA,aAArB,cAA0CL,EAAgBA,gBAAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA1D,aAAAK,CAAAC,MAAAC,GAAAA,SAAAA,EAyCwDC,KAAAC,KAAA,WACQD,KAAAE,UAAA,CAAA,CACrD,QACF,CAAA,OAAAR,EAAAA,mBAAA,CAHIS,EAAAA,EAAA,CAAXC,EAASA,SAzCUR,CAAAA,EAAAA,qBAyCRS,UAAA,OAAA,CAAA,EACgBF,EAAA,CAA3BC,WAAS,CAAEH,KAAMK,MAAAA,CAAAA,CAAAA,EA1CEV,qBA0CQS,UAAA,YAAA,CA1CRT,EAAAA,QAArBA,aAAAO,EAAA,CADCR,EAAAA,cAAc,eAAA,CAAA,EACMC,4DCMAW,QAAAA,oBAArB,cAAiDhB,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,GA4BtD,QAAAC,CACF,OAAAC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAA,CA7BYa,EAAAA,QAArBA,0HAAA,CADCZ,EAAAA,cAAc,uBACMY,CAAAA,EAAAA,6NCHAC,QAAAA,kBAArB,cAA+CjB,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,CAA/D,CAAA,CAAA,cAAAM,MAAAC,GAAAA,SAAAA,EA+CeC,KAAAS,IAAA,GAG8CT,KAAAU,IAAA,UAG9CV,KAAAW,IAAA,EAAA,CAEJ,QAAAlB,CAGF,OAAAO,KAAKS,IACTf,mBAAiBM,KAAKS,GAAAA,UAAaT,KAAKW,GAAAA,OACxCjB,EAAAA,mBAAA,CAbJS,EAAAA,EAAA,CADCC,EAAAA,SAAS,CAAEH,KAAMW,OAAQC,QAAS,EAAA,CAAA,CAAA,EA9CfL,0BA+CpBH,UAAA,MAAA,CAAA,EAGAF,EAAA,CADCC,EAAAA,SAAS,CAAEH,KAAMW,OAAQC,UAjDNL,CAAAA,CAAAA,EAAAA,0BAkDpBH,UAAA,MAAA,CAGAF,EAAAA,EAAA,CADCC,WAAS,CAAEH,KAAMW,MApDEJ,CAAAA,CAAAA,EAAAA,0BAqDpBH,UAAA,MAAA,CArDoBG,EAAAA,QAArBA,kBAAAL,EAAA,CADCR,EAAAA,cAAc,wBACMa"}