@mhmo91/schmancy 0.6.18 → 0.7.1

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 (409) hide show
  1. package/ai/menu.md +117 -186
  2. package/dist/ai/menu.md +117 -186
  3. package/dist/{animated-text-CgKXZOvy.cjs → animated-text-B8pXfnjg.cjs} +2 -2
  4. package/dist/{animated-text-CgKXZOvy.cjs.map → animated-text-B8pXfnjg.cjs.map} +1 -1
  5. package/dist/{animated-text-Df3UZBT2.js → animated-text-C7RzcmyV.js} +3 -3
  6. package/dist/{animated-text-Df3UZBT2.js.map → animated-text-C7RzcmyV.js.map} +1 -1
  7. package/dist/animated-text.cjs +1 -1
  8. package/dist/animated-text.js +1 -1
  9. package/dist/area.cjs +1 -1
  10. package/dist/{area.component-DXQff5kK.js → area.component-DfGcGjsN.js} +3 -3
  11. package/dist/{area.component-DXQff5kK.js.map → area.component-DfGcGjsN.js.map} +1 -1
  12. package/dist/{area.component-_AwKbrLf.cjs → area.component-TRIJcSoQ.cjs} +2 -2
  13. package/dist/{area.component-_AwKbrLf.cjs.map → area.component-TRIJcSoQ.cjs.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-DLzc6eqO.js → autocomplete-Bhv2JOnL.js} +4 -4
  16. package/dist/autocomplete-Bhv2JOnL.js.map +1 -0
  17. package/dist/{autocomplete-DEzGDw9s.cjs → autocomplete-Dio0lk_E.cjs} +2 -2
  18. package/dist/autocomplete-Dio0lk_E.cjs.map +1 -0
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-RIbulvWL.js → avatar-BCLeThlA.js} +51 -51
  22. package/dist/{avatar-RIbulvWL.js.map → avatar-BCLeThlA.js.map} +1 -1
  23. package/dist/{avatar-Wu763qgL.cjs → avatar-DecX7RJw.cjs} +2 -2
  24. package/dist/{avatar-Wu763qgL.cjs.map → avatar-DecX7RJw.cjs.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-VzOnSD8z.cjs → boat-B3IhIJhy.cjs} +2 -2
  28. package/dist/{boat-VzOnSD8z.cjs.map → boat-B3IhIJhy.cjs.map} +1 -1
  29. package/dist/{boat-CWADeoFv.js → boat-DrAkyCAd.js} +3 -3
  30. package/dist/{boat-CWADeoFv.js.map → boat-DrAkyCAd.js.map} +1 -1
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/busy.cjs +1 -1
  34. package/dist/busy.js +1 -1
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.js +1 -1
  37. package/dist/card.cjs +1 -1
  38. package/dist/card.js +1 -1
  39. package/dist/{checkbox-ZryxdmZz.js → checkbox-BKT1cZnv.js} +2 -2
  40. package/dist/checkbox-BKT1cZnv.js.map +1 -0
  41. package/dist/{checkbox-DClxbWbU.cjs → checkbox-C4CHTajr.cjs} +2 -2
  42. package/dist/checkbox-C4CHTajr.cjs.map +1 -0
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/chips.cjs +1 -1
  46. package/dist/chips.js +2 -2
  47. package/dist/code-highlight.cjs +1 -1
  48. package/dist/code-highlight.js +1 -1
  49. package/dist/{code-preview-BoYqlMxl.cjs → code-preview-CEbRCvUd.cjs} +2 -2
  50. package/dist/code-preview-CEbRCvUd.cjs.map +1 -0
  51. package/dist/{code-preview-Bn2K5K9h.js → code-preview-DzMETSJv.js} +2 -2
  52. package/dist/code-preview-DzMETSJv.js.map +1 -0
  53. package/dist/components.cjs +1 -1
  54. package/dist/components.js +1 -1
  55. package/dist/consume-5D1qfVWM.js.map +1 -1
  56. package/dist/consume-edta5ng5.cjs.map +1 -1
  57. package/dist/content-drawer.cjs +1 -1
  58. package/dist/content-drawer.js +1 -1
  59. package/dist/context-create-CA907mdD.cjs.map +1 -1
  60. package/dist/context-create-DCiujzV2.js.map +1 -1
  61. package/dist/{date-range-CCQsqKSy.js → date-range-B-5LtvhH.js} +3 -3
  62. package/dist/date-range-B-5LtvhH.js.map +1 -0
  63. package/dist/{date-range-B-rPnyst.cjs → date-range-B1PGOR7h.cjs} +2 -2
  64. package/dist/date-range-B1PGOR7h.cjs.map +1 -0
  65. package/dist/{date-range-inline-DO0Ps_QS.js → date-range-inline-D90CpK7z.js} +3 -3
  66. package/dist/{date-range-inline-DO0Ps_QS.js.map → date-range-inline-D90CpK7z.js.map} +1 -1
  67. package/dist/{date-range-inline-NACS06ev.cjs → date-range-inline-DLV7jB_x.cjs} +2 -2
  68. package/dist/{date-range-inline-NACS06ev.cjs.map → date-range-inline-DLV7jB_x.cjs.map} +1 -1
  69. package/dist/date-range-inline.cjs +1 -1
  70. package/dist/date-range-inline.js +1 -1
  71. package/dist/date-range.cjs +1 -1
  72. package/dist/date-range.js +1 -1
  73. package/dist/{delay-BaltOHAs.js → delay-D5RAR00M.js} +2 -2
  74. package/dist/delay-D5RAR00M.js.map +1 -0
  75. package/dist/{delay-DzqfMSBJ.cjs → delay-UAjkp-21.cjs} +2 -2
  76. package/dist/delay-UAjkp-21.cjs.map +1 -0
  77. package/dist/delay.cjs +1 -1
  78. package/dist/delay.js +1 -1
  79. package/dist/{details-Bic4ZKNZ.js → details-CiuixU2H.js} +2 -2
  80. package/dist/{details-Bic4ZKNZ.js.map → details-CiuixU2H.js.map} +1 -1
  81. package/dist/{details-DPSpg2dL.cjs → details-RHTdNCLS.cjs} +2 -2
  82. package/dist/{details-DPSpg2dL.cjs.map → details-RHTdNCLS.cjs.map} +1 -1
  83. package/dist/details.cjs +1 -1
  84. package/dist/details.js +1 -1
  85. package/dist/{dialog-content-CR4l1Yts.cjs → dialog-content-BF1xiYWw.cjs} +2 -2
  86. package/dist/{dialog-content-CR4l1Yts.cjs.map → dialog-content-BF1xiYWw.cjs.map} +1 -1
  87. package/dist/{dialog-content-CwsV3nWG.js → dialog-content-dtIrTHLU.js} +3 -3
  88. package/dist/{dialog-content-CwsV3nWG.js.map → dialog-content-dtIrTHLU.js.map} +1 -1
  89. package/dist/dialog.cjs +1 -1
  90. package/dist/dialog.js +1 -1
  91. package/dist/{divider-ChXDN5-E.js → divider-DcEB9uHV.js} +3 -3
  92. package/dist/{divider-ChXDN5-E.js.map → divider-DcEB9uHV.js.map} +1 -1
  93. package/dist/{divider-CpiE9MZW.cjs → divider-ZhcWRyc2.cjs} +2 -2
  94. package/dist/{divider-CpiE9MZW.cjs.map → divider-ZhcWRyc2.cjs.map} +1 -1
  95. package/dist/divider.cjs +1 -1
  96. package/dist/divider.js +1 -1
  97. package/dist/{dropdown-content-BmA6vuhB.js → dropdown-content-BoUnfAyz.js} +3 -3
  98. package/dist/{dropdown-content-BmA6vuhB.js.map → dropdown-content-BoUnfAyz.js.map} +1 -1
  99. package/dist/{dropdown-content-8I1uIUoF.cjs → dropdown-content-klaWLDI-.cjs} +2 -2
  100. package/dist/{dropdown-content-8I1uIUoF.cjs.map → dropdown-content-klaWLDI-.cjs.map} +1 -1
  101. package/dist/dropdown.cjs +1 -1
  102. package/dist/dropdown.js +1 -1
  103. package/dist/{email-recipients-Cl_-UNWo.cjs → email-recipients-DA2HLG8K.cjs} +2 -2
  104. package/dist/{email-recipients-Cl_-UNWo.cjs.map → email-recipients-DA2HLG8K.cjs.map} +1 -1
  105. package/dist/{email-recipients-Ew87bYRp.js → email-recipients-yN1Jcu9X.js} +6 -6
  106. package/dist/{email-recipients-Ew87bYRp.js.map → email-recipients-yN1Jcu9X.js.map} +1 -1
  107. package/dist/extra.cjs +1 -1
  108. package/dist/extra.js +1 -1
  109. package/dist/{flex-DsHnuUb7.cjs → flex-CYCtLC7W.cjs} +2 -2
  110. package/dist/{flex-DsHnuUb7.cjs.map → flex-CYCtLC7W.cjs.map} +1 -1
  111. package/dist/{flex-CW7oSqU1.js → flex-C_fGjgWC.js} +2 -2
  112. package/dist/{flex-CW7oSqU1.js.map → flex-C_fGjgWC.js.map} +1 -1
  113. package/dist/flow-D0e7hGXO.cjs.map +1 -1
  114. package/dist/flow-DXYqC9OA.js.map +1 -1
  115. package/dist/{form-DZ9l7TjO.cjs → form-CYBgxvdH.cjs} +2 -2
  116. package/dist/{form-DZ9l7TjO.cjs.map → form-CYBgxvdH.cjs.map} +1 -1
  117. package/dist/{form-C5d6gWUg.js → form-Dn3XWE7d.js} +2 -2
  118. package/dist/{form-C5d6gWUg.js.map → form-Dn3XWE7d.js.map} +1 -1
  119. package/dist/form.cjs +1 -1
  120. package/dist/form.js +1 -1
  121. package/dist/{formField.mixin-BW4RaqbT.cjs → formField.mixin-D_gQgJXC.cjs} +2 -2
  122. package/dist/{formField.mixin-BW4RaqbT.cjs.map → formField.mixin-D_gQgJXC.cjs.map} +1 -1
  123. package/dist/{formField.mixin-DpD9oPMR.js → formField.mixin-Ds2S1kRc.js} +2 -2
  124. package/dist/{formField.mixin-DpD9oPMR.js.map → formField.mixin-Ds2S1kRc.js.map} +1 -1
  125. package/dist/{icon-BATnNWHh.js → icon-Bw8hqRtQ.js} +2 -2
  126. package/dist/{icon-BATnNWHh.js.map → icon-Bw8hqRtQ.js.map} +1 -1
  127. package/dist/{icon-CV5KKSMK.cjs → icon-DYGsNRVu.cjs} +2 -2
  128. package/dist/{icon-CV5KKSMK.cjs.map → icon-DYGsNRVu.cjs.map} +1 -1
  129. package/dist/{icon-button-CST9ztNW.cjs → icon-button-BfjcTNKq.cjs} +3 -3
  130. package/dist/icon-button-BfjcTNKq.cjs.map +1 -0
  131. package/dist/{icon-button-BlyzaNtE.js → icon-button-Cu-RShdY.js} +7 -7
  132. package/dist/icon-button-Cu-RShdY.js.map +1 -0
  133. package/dist/icons.cjs +1 -1
  134. package/dist/icons.js +1 -1
  135. package/dist/index-CCi1otmh.cjs.map +1 -1
  136. package/dist/index-CW6PhEkx.js.map +1 -1
  137. package/dist/index.cjs +1 -1
  138. package/dist/index.js +50 -50
  139. package/dist/{input-RPj2xLz4.cjs → input-D-YRT2vo.cjs} +2 -2
  140. package/dist/input-D-YRT2vo.cjs.map +1 -0
  141. package/dist/{input-BJvZX3nK.js → input-UlrGLoXt.js} +3 -3
  142. package/dist/input-UlrGLoXt.js.map +1 -0
  143. package/dist/{input-chip-CyvaAJiR.js → input-chip-BwEuJAV5.js} +2 -2
  144. package/dist/{input-chip-CyvaAJiR.js.map → input-chip-BwEuJAV5.js.map} +1 -1
  145. package/dist/{input-chip-CGilKpgN.cjs → input-chip-pho9bYvS.cjs} +2 -2
  146. package/dist/{input-chip-CGilKpgN.cjs.map → input-chip-pho9bYvS.cjs.map} +1 -1
  147. package/dist/input.cjs +1 -1
  148. package/dist/input.js +1 -1
  149. package/dist/layout.cjs +1 -1
  150. package/dist/layout.js +1 -1
  151. package/dist/{list-Dqwbw_0L.js → list-B4x432bs.js} +2 -2
  152. package/dist/{list-Dqwbw_0L.js.map → list-B4x432bs.js.map} +1 -1
  153. package/dist/{list-Dphnkgjm.cjs → list-CyCR5ywg.cjs} +2 -2
  154. package/dist/{list-Dphnkgjm.cjs.map → list-CyCR5ywg.cjs.map} +1 -1
  155. package/dist/list.cjs +1 -1
  156. package/dist/list.js +1 -1
  157. package/dist/{litElement.mixin-BbwZRaPp.js → litElement.mixin-BPe38Tqd.js} +2 -2
  158. package/dist/{litElement.mixin-BbwZRaPp.js.map → litElement.mixin-BPe38Tqd.js.map} +1 -1
  159. package/dist/{litElement.mixin-1i17ImwN.cjs → litElement.mixin-DXaT0TQx.cjs} +2 -2
  160. package/dist/{litElement.mixin-1i17ImwN.cjs.map → litElement.mixin-DXaT0TQx.cjs.map} +1 -1
  161. package/dist/mailbox.cjs +1 -1
  162. package/dist/mailbox.js +1 -1
  163. package/dist/{map-DEjWWl14.cjs → map-C2fG3es8.cjs} +2 -2
  164. package/dist/{map-DEjWWl14.cjs.map → map-C2fG3es8.cjs.map} +1 -1
  165. package/dist/{map-BHfXl4eZ.js → map-CNoi0TZi.js} +2 -2
  166. package/dist/{map-BHfXl4eZ.js.map → map-CNoi0TZi.js.map} +1 -1
  167. package/dist/map.cjs +1 -1
  168. package/dist/map.js +1 -1
  169. package/dist/{media-CFqac3i-.js → media-D_ne5TmT.js} +2 -2
  170. package/dist/{media-CFqac3i-.js.map → media-D_ne5TmT.js.map} +1 -1
  171. package/dist/{media-wEB2juTQ.cjs → media-dMr54ISj.cjs} +2 -2
  172. package/dist/{media-wEB2juTQ.cjs.map → media-dMr54ISj.cjs.map} +1 -1
  173. package/dist/menu-BdWhwHXc.js +89 -0
  174. package/dist/menu-BdWhwHXc.js.map +1 -0
  175. package/dist/menu-BsX4Mjjn.cjs +23 -0
  176. package/dist/menu-BsX4Mjjn.cjs.map +1 -0
  177. package/dist/menu.cjs +1 -1
  178. package/dist/menu.js +1 -1
  179. package/dist/mixins.cjs +2 -0
  180. package/dist/mixins.cjs.map +1 -0
  181. package/dist/mixins.js +12 -0
  182. package/dist/mixins.js.map +1 -0
  183. package/dist/nav-drawer.cjs +1 -1
  184. package/dist/nav-drawer.js +1 -1
  185. package/dist/navigation-bar.cjs +1 -1
  186. package/dist/navigation-bar.js +1 -1
  187. package/dist/{navigation-rail-Cdklj_Vy.js → navigation-rail-DM2NQY_2.js} +3 -3
  188. package/dist/{navigation-rail-Cdklj_Vy.js.map → navigation-rail-DM2NQY_2.js.map} +1 -1
  189. package/dist/{navigation-rail-eNmqnFXJ.cjs → navigation-rail-DfFgV2PX.cjs} +2 -2
  190. package/dist/{navigation-rail-eNmqnFXJ.cjs.map → navigation-rail-DfFgV2PX.cjs.map} +1 -1
  191. package/dist/navigation-rail.cjs +1 -1
  192. package/dist/navigation-rail.js +1 -1
  193. package/dist/{notification-service-jityv87S.cjs → notification-service-Cm_0BsnA.cjs} +2 -2
  194. package/dist/{notification-service-jityv87S.cjs.map → notification-service-Cm_0BsnA.cjs.map} +1 -1
  195. package/dist/{notification-service-CqxmKVJX.js → notification-service-DDfyKN2r.js} +4 -4
  196. package/dist/{notification-service-CqxmKVJX.js.map → notification-service-DDfyKN2r.js.map} +1 -1
  197. package/dist/notification.cjs +1 -1
  198. package/dist/notification.js +2 -2
  199. package/dist/{notify-C8EM_JmR.js → notify-BGHQRbsD.js} +2 -2
  200. package/dist/{notify-C8EM_JmR.js.map → notify-BGHQRbsD.js.map} +1 -1
  201. package/dist/{notify-CxqHlCZF.cjs → notify-DMoBBADS.cjs} +2 -2
  202. package/dist/{notify-CxqHlCZF.cjs.map → notify-DMoBBADS.cjs.map} +1 -1
  203. package/dist/{option-COJIldwK.js → option-EBGoYClu.js} +2 -2
  204. package/dist/{option-COJIldwK.js.map → option-EBGoYClu.js.map} +1 -1
  205. package/dist/{option-CBQoRZ86.cjs → option-MaqD_vGw.cjs} +2 -2
  206. package/dist/{option-CBQoRZ86.cjs.map → option-MaqD_vGw.cjs.map} +1 -1
  207. package/dist/option.cjs +1 -1
  208. package/dist/option.js +1 -1
  209. package/dist/{payment-card-form-BzDuKScU.cjs → payment-card-form-DZmaLaVl.cjs} +2 -2
  210. package/dist/payment-card-form-DZmaLaVl.cjs.map +1 -0
  211. package/dist/{payment-card-form-CHMYeZs2.js → payment-card-form-p_Wj1NRm.js} +3 -3
  212. package/dist/payment-card-form-p_Wj1NRm.js.map +1 -0
  213. package/dist/{progress-nOhWloHs.cjs → progress-BqIOFoJX.cjs} +2 -2
  214. package/dist/{progress-nOhWloHs.cjs.map → progress-BqIOFoJX.cjs.map} +1 -1
  215. package/dist/{progress-CtNg2SPw.js → progress-DC88fksT.js} +2 -2
  216. package/dist/{progress-CtNg2SPw.js.map → progress-DC88fksT.js.map} +1 -1
  217. package/dist/progress.cjs +1 -1
  218. package/dist/progress.js +1 -1
  219. package/dist/provide-BxZ2kn_p.cjs.map +1 -1
  220. package/dist/provide-tcktw8xB.js.map +1 -1
  221. package/dist/{radio-button-DttgXEeY.cjs → radio-button-BfpkkEgE.cjs} +2 -2
  222. package/dist/radio-button-BfpkkEgE.cjs.map +1 -0
  223. package/dist/{radio-button-DggshTfa.js → radio-button-DQA5Kswx.js} +3 -3
  224. package/dist/radio-button-DQA5Kswx.js.map +1 -0
  225. package/dist/radio-group.cjs +1 -1
  226. package/dist/radio-group.js +1 -1
  227. package/dist/{schmancy-steps-container-DhtHaKgX.js → schmancy-steps-container-Br5qKWIs.js} +2 -2
  228. package/dist/{schmancy-steps-container-DhtHaKgX.js.map → schmancy-steps-container-Br5qKWIs.js.map} +1 -1
  229. package/dist/{schmancy-steps-container-hIBLjMgI.cjs → schmancy-steps-container-Cr2B9C-w.cjs} +2 -2
  230. package/dist/{schmancy-steps-container-hIBLjMgI.cjs.map → schmancy-steps-container-Cr2B9C-w.cjs.map} +1 -1
  231. package/dist/{select-BqyRn0cF.js → select-B_DaDLhe.js} +3 -3
  232. package/dist/select-B_DaDLhe.js.map +1 -0
  233. package/dist/{select-xZKW8cHu.cjs → select-DwaiJBG2.cjs} +2 -2
  234. package/dist/select-DwaiJBG2.cjs.map +1 -0
  235. package/dist/select.cjs +1 -1
  236. package/dist/select.js +1 -1
  237. package/dist/{sheet-DE8jIQUk.js → sheet-5c6WR3vS.js} +5 -5
  238. package/dist/{sheet-DE8jIQUk.js.map → sheet-5c6WR3vS.js.map} +1 -1
  239. package/dist/{sheet-C6Liqa_3.cjs → sheet-BrK8_X4J.cjs} +2 -2
  240. package/dist/{sheet-C6Liqa_3.cjs.map → sheet-BrK8_X4J.cjs.map} +1 -1
  241. package/dist/sheet.cjs +1 -1
  242. package/dist/sheet.js +2 -2
  243. package/dist/{sheet.service-NAV5vSsM.cjs → sheet.service-BkKHvgFa.cjs} +2 -2
  244. package/dist/{sheet.service-NAV5vSsM.cjs.map → sheet.service-BkKHvgFa.cjs.map} +1 -1
  245. package/dist/{sheet.service-1jZMJbNp.js → sheet.service-EPEmcCpX.js} +2 -2
  246. package/dist/{sheet.service-1jZMJbNp.js.map → sheet.service-EPEmcCpX.js.map} +1 -1
  247. package/dist/{slider-BvbkpEef.js → slider-CiNvtgZJ.js} +3 -3
  248. package/dist/{slider-BvbkpEef.js.map → slider-CiNvtgZJ.js.map} +1 -1
  249. package/dist/{slider-lEoCLK-7.cjs → slider-DW9URxIY.cjs} +2 -2
  250. package/dist/{slider-lEoCLK-7.cjs.map → slider-DW9URxIY.cjs.map} +1 -1
  251. package/dist/slider.cjs +1 -1
  252. package/dist/slider.js +1 -1
  253. package/dist/{spinner-CQxy0lF3.cjs → spinner-9JRrKdub.cjs} +2 -2
  254. package/dist/{spinner-CQxy0lF3.cjs.map → spinner-9JRrKdub.cjs.map} +1 -1
  255. package/dist/{spinner-DdG6BEOr.js → spinner-D8stZ8uP.js} +2 -2
  256. package/dist/{spinner-DdG6BEOr.js.map → spinner-D8stZ8uP.js.map} +1 -1
  257. package/dist/steps.cjs +1 -1
  258. package/dist/steps.js +1 -1
  259. package/dist/{suggestion-chip-BRz15zwU.js → suggestion-chip-CXPMf7Je.js} +3 -3
  260. package/dist/{suggestion-chip-BRz15zwU.js.map → suggestion-chip-CXPMf7Je.js.map} +1 -1
  261. package/dist/{suggestion-chip-DK4xFJvZ.cjs → suggestion-chip-inBIBMff.cjs} +2 -2
  262. package/dist/{suggestion-chip-DK4xFJvZ.cjs.map → suggestion-chip-inBIBMff.cjs.map} +1 -1
  263. package/dist/{surface-C3vER2uq.js → surface-BcZEnDON.js} +2 -2
  264. package/dist/{surface-C3vER2uq.js.map → surface-BcZEnDON.js.map} +1 -1
  265. package/dist/{surface-Bt1FetPM.cjs → surface-BsrV4kzE.cjs} +2 -2
  266. package/dist/{surface-Bt1FetPM.cjs.map → surface-BsrV4kzE.cjs.map} +1 -1
  267. package/dist/surface.cjs +1 -1
  268. package/dist/surface.js +1 -1
  269. package/dist/{table-DhheYeQ8.js → table-B5CHKp8S.js} +2 -2
  270. package/dist/table-B5CHKp8S.js.map +1 -0
  271. package/dist/{table-DYay68qu.cjs → table-CzejyN5W.cjs} +2 -2
  272. package/dist/table-CzejyN5W.cjs.map +1 -0
  273. package/dist/table.cjs +1 -1
  274. package/dist/table.js +1 -1
  275. package/dist/{tabs-compatibility-C-gQwADa.js → tabs-compatibility-8NddfF1x.js} +2 -2
  276. package/dist/{tabs-compatibility-C-gQwADa.js.map → tabs-compatibility-8NddfF1x.js.map} +1 -1
  277. package/dist/{tabs-compatibility-Dz5YaB06.cjs → tabs-compatibility-UitZoxcs.cjs} +2 -2
  278. package/dist/{tabs-compatibility-Dz5YaB06.cjs.map → tabs-compatibility-UitZoxcs.cjs.map} +1 -1
  279. package/dist/tabs.cjs +1 -1
  280. package/dist/tabs.js +1 -1
  281. package/dist/tailwind.mixin-2PdnHg0B.cjs +2 -0
  282. package/dist/{tailwind.mixin-Ge3p8F8Z.cjs.map → tailwind.mixin-2PdnHg0B.cjs.map} +1 -1
  283. package/dist/tailwind.mixin-BgdEBNZM.js +67 -0
  284. package/dist/{tailwind.mixin-BTS7jBB1.js.map → tailwind.mixin-BgdEBNZM.js.map} +1 -1
  285. package/dist/teleport.cjs +1 -1
  286. package/dist/teleport.js +1 -1
  287. package/dist/{textarea-DmoZM65K.js → textarea-2oVdZPXR.js} +2 -2
  288. package/dist/textarea-2oVdZPXR.js.map +1 -0
  289. package/dist/{textarea-Dn1lmlIx.cjs → textarea-D24UakyK.cjs} +2 -2
  290. package/dist/textarea-D24UakyK.cjs.map +1 -0
  291. package/dist/textarea.cjs +1 -1
  292. package/dist/textarea.js +1 -1
  293. package/dist/{theme-button-CtF2dxRy.cjs → theme-button-D0Xi4WHC.cjs} +2 -2
  294. package/dist/{theme-button-CtF2dxRy.cjs.map → theme-button-D0Xi4WHC.cjs.map} +1 -1
  295. package/dist/{theme-button-BkoRO_Ko.js → theme-button-D4BhpOj6.js} +2 -2
  296. package/dist/{theme-button-BkoRO_Ko.js.map → theme-button-D4BhpOj6.js.map} +1 -1
  297. package/dist/theme-button.cjs +1 -1
  298. package/dist/theme-button.js +1 -1
  299. package/dist/{theme-controller-boat-DDsW4EOJ.js → theme-controller-boat-C8AnrOkJ.js} +4 -4
  300. package/dist/theme-controller-boat-C8AnrOkJ.js.map +1 -0
  301. package/dist/{theme-controller-boat-CBQlbHHc.cjs → theme-controller-boat-r74J3tyl.cjs} +2 -2
  302. package/dist/theme-controller-boat-r74J3tyl.cjs.map +1 -0
  303. package/dist/theme.cjs +1 -1
  304. package/dist/theme.js +1 -1
  305. package/dist/{timezone-DM_3vLZj.cjs → timezone-BbGoZoJM.cjs} +2 -2
  306. package/dist/{timezone-DM_3vLZj.cjs.map → timezone-BbGoZoJM.cjs.map} +1 -1
  307. package/dist/{timezone-C-V8qJE3.js → timezone-D4wUA6zL.js} +3 -3
  308. package/dist/{timezone-C-V8qJE3.js.map → timezone-D4wUA6zL.js.map} +1 -1
  309. package/dist/{tooltip-Cw5mfhRj.js → tooltip-BL92Hwwe.js} +2 -2
  310. package/dist/{tooltip-Cw5mfhRj.js.map → tooltip-BL92Hwwe.js.map} +1 -1
  311. package/dist/{tooltip-DntsYOsj.cjs → tooltip-DxdU3Drr.cjs} +2 -2
  312. package/dist/{tooltip-DntsYOsj.cjs.map → tooltip-DxdU3Drr.cjs.map} +1 -1
  313. package/dist/tooltip.cjs +1 -1
  314. package/dist/tooltip.js +1 -1
  315. package/dist/{tree-C3487udC.cjs → tree-BuGpk0as.cjs} +2 -2
  316. package/dist/{tree-C3487udC.cjs.map → tree-BuGpk0as.cjs.map} +1 -1
  317. package/dist/{tree-DimUJjcj.js → tree-cZIPOana.js} +2 -2
  318. package/dist/{tree-DimUJjcj.js.map → tree-cZIPOana.js.map} +1 -1
  319. package/dist/tree.cjs +1 -1
  320. package/dist/tree.js +1 -1
  321. package/dist/tslib.es6-DgOcxv4s.cjs.map +1 -1
  322. package/dist/tslib.es6-ujVQHAQ4.js.map +1 -1
  323. package/dist/{typewriter-B7nBcBU9.js → typewriter-DT0f_Fla.js} +4 -4
  324. package/dist/typewriter-DT0f_Fla.js.map +1 -0
  325. package/dist/{typewriter-CHcRZUee.cjs → typewriter-Dc7MHBRy.cjs} +2 -2
  326. package/dist/typewriter-Dc7MHBRy.cjs.map +1 -0
  327. package/dist/typewriter.cjs +1 -1
  328. package/dist/typewriter.js +1 -1
  329. package/dist/{typography-CRVUouR2.cjs → typography-BBCRpsA_.cjs} +2 -2
  330. package/dist/{typography-CRVUouR2.cjs.map → typography-BBCRpsA_.cjs.map} +1 -1
  331. package/dist/{typography-DnZjZEIe.js → typography-DayYVIRD.js} +2 -2
  332. package/dist/{typography-DnZjZEIe.js.map → typography-DayYVIRD.js.map} +1 -1
  333. package/dist/typography.cjs +1 -1
  334. package/dist/typography.js +1 -1
  335. package/package.json +4 -10
  336. package/types/src/autocomplete/autocomplete.d.ts +11 -0
  337. package/types/src/extra/timezone/timezone.d.ts +8 -0
  338. package/types/src/input/input.d.ts +1 -0
  339. package/types/src/menu/menu.d.ts +5 -6
  340. package/types/src/radio-group/radio-button.d.ts +8 -0
  341. package/types/src/select/select.d.ts +11 -0
  342. package/types/src/textarea/textarea.d.ts +12 -0
  343. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Bold.woff +0 -0
  344. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Light.woff +0 -0
  345. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Medium.woff +0 -0
  346. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Regular.woff +0 -0
  347. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Thin.woff +0 -0
  348. package/dist/GT-Eesti/GT-Eesti-Pro-Display-UBold.woff +0 -0
  349. package/dist/GT-Eesti/GT-Eesti-Pro-Display-ULight.woff +0 -0
  350. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Bold-Italic.woff +0 -0
  351. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Bold.woff +0 -0
  352. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Book-Italic.woff +0 -0
  353. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Book.woff +0 -0
  354. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Light.woff +0 -0
  355. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Medium-Italic.woff +0 -0
  356. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Medium.woff +0 -0
  357. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Regular.woff +0 -0
  358. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Thin-Italic.woff +0 -0
  359. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Thin.woff +0 -0
  360. package/dist/GT-Eesti/GT-Eesti-Pro-Text-ULight-Italic.woff +0 -0
  361. package/dist/GT-Eesti/GT-Eesti-Pro-Text-ULight.woff +0 -0
  362. package/dist/GT-Eesti/GT-Eesti-Text-Regular.woff2 +0 -0
  363. package/dist/_headers +0 -3
  364. package/dist/autocomplete-DEzGDw9s.cjs.map +0 -1
  365. package/dist/autocomplete-DLzc6eqO.js.map +0 -1
  366. package/dist/checkbox-DClxbWbU.cjs.map +0 -1
  367. package/dist/checkbox-ZryxdmZz.js.map +0 -1
  368. package/dist/code-preview-Bn2K5K9h.js.map +0 -1
  369. package/dist/code-preview-BoYqlMxl.cjs.map +0 -1
  370. package/dist/date-range-B-rPnyst.cjs.map +0 -1
  371. package/dist/date-range-CCQsqKSy.js.map +0 -1
  372. package/dist/delay-BaltOHAs.js.map +0 -1
  373. package/dist/delay-DzqfMSBJ.cjs.map +0 -1
  374. package/dist/icon-button-BlyzaNtE.js.map +0 -1
  375. package/dist/icon-button-CST9ztNW.cjs.map +0 -1
  376. package/dist/input-BJvZX3nK.js.map +0 -1
  377. package/dist/input-RPj2xLz4.cjs.map +0 -1
  378. package/dist/logo-dark.png +0 -0
  379. package/dist/menu-BlR27aWR.js +0 -100
  380. package/dist/menu-BlR27aWR.js.map +0 -1
  381. package/dist/menu-DYWTnN4u.cjs +0 -36
  382. package/dist/menu-DYWTnN4u.cjs.map +0 -1
  383. package/dist/mixins/baseElement.ts +0 -73
  384. package/dist/mixins/constructor.ts +0 -3
  385. package/dist/mixins/discovery.service.ts +0 -60
  386. package/dist/mixins/formField.mixin.ts +0 -223
  387. package/dist/mixins/index.ts +0 -5
  388. package/dist/mixins/litElement.mixin.ts +0 -15
  389. package/dist/mixins/scss.d.ts +0 -21
  390. package/dist/mixins/tailwind.css +0 -201
  391. package/dist/mixins/tailwind.mixin.ts +0 -30
  392. package/dist/netlify.toml +0 -366
  393. package/dist/payment-card-form-BzDuKScU.cjs.map +0 -1
  394. package/dist/payment-card-form-CHMYeZs2.js.map +0 -1
  395. package/dist/radio-button-DggshTfa.js.map +0 -1
  396. package/dist/radio-button-DttgXEeY.cjs.map +0 -1
  397. package/dist/select-BqyRn0cF.js.map +0 -1
  398. package/dist/select-xZKW8cHu.cjs.map +0 -1
  399. package/dist/table-DYay68qu.cjs.map +0 -1
  400. package/dist/table-DhheYeQ8.js.map +0 -1
  401. package/dist/tailwind.mixin-BTS7jBB1.js +0 -66
  402. package/dist/tailwind.mixin-Ge3p8F8Z.cjs +0 -2
  403. package/dist/textarea-DmoZM65K.js.map +0 -1
  404. package/dist/textarea-Dn1lmlIx.cjs.map +0 -1
  405. package/dist/theme-controller-boat-CBQlbHHc.cjs.map +0 -1
  406. package/dist/theme-controller-boat-DDsW4EOJ.js.map +0 -1
  407. package/dist/typewriter-B7nBcBU9.js.map +0 -1
  408. package/dist/typewriter-CHcRZUee.cjs.map +0 -1
  409. package/readme.md +0 -307
@@ -1 +1 @@
1
- {"version":3,"file":"typography-CRVUouR2.cjs","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":"8SAWaA,QAAAA,mBAAN,cAAiCC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAjD,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAmSNC,KAAAC,KAAyE,OAQzED,KAAAE,MAA0C,IAAA,CAgChC,QAAAC,CACT,OAAOC,EAAAA,mBACR,CAAA,EA1CAC,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlSvBd,2BAmSZe,UAAA,OAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA1SvBd,2BA2SZe,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlTvBd,2BAmTZe,UAAA,QAAA,CAAA,EASAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA3TvBd,2BA4TZe,UAAA,SAAA,CAAA,EAUAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EArUvBd,2BAsUZe,UAAA,YAAA,CAAA,EAGAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMS,OAAQC,UAAW,YAAaH,QAAAA,MAxUtCd,2BAyUZe,UAAA,WAAA,CAAA,EAzUYf,QAAAA,mBAANW,EAAA,CADNO,EAAAA,cAAc,qBAAA,CAAA,EACFlB"}
1
+ {"version":3,"file":"typography-BBCRpsA_.cjs","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":"8SAWaA,QAAAA,mBAAN,cAAiCC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAjD,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAmSNC,KAAAC,KAAyE,OAQzED,KAAAE,MAA0C,IAAA,CAgChC,QAAAC,CACT,OAAOC,EAAAA,mBACR,CAAA,EA1CAC,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlSvBd,2BAmSZe,UAAA,OAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA1SvBd,2BA2SZe,UAAA,QAAA,CAAA,EAQAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EAlTvBd,2BAmTZe,UAAA,QAAA,CAAA,EASAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA3TvBd,2BA4TZe,UAAA,SAAA,CAAA,EAUAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMM,OAAQC,QAAAA,EAAS,CAAA,CAAA,EArUvBd,2BAsUZe,UAAA,YAAA,CAAA,EAGAJ,EAAA,CADCC,EAAAA,SAAS,CAAEL,KAAMS,OAAQC,UAAW,YAAaH,QAAAA,MAxUtCd,2BAyUZe,UAAA,WAAA,CAAA,EAzUYf,QAAAA,mBAANW,EAAA,CADNO,EAAAA,cAAc,qBAAA,CAAA,EACFlB"}
@@ -1,4 +1,4 @@
1
- import { T as r } from "./tailwind.mixin-BTS7jBB1.js";
1
+ import { T as r } from "./tailwind.mixin-BgdEBNZM.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-DnZjZEIe.js.map
304
+ //# sourceMappingURL=typography-DayYVIRD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography-DnZjZEIe.js","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":";;;;;;;AAWO,IAAMA,IAAN,cAAiCC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAAjD,cAAAC;AAAAC,aAAAC,SAAAA,GAmSNC,KAAAC,OAAyE,QAQzED,KAAAE,QAA0C;AAAA,EAAA;AAAA,EAgChC,SAAAC;AACT,WAAOC;AAAAA,EACR;AAAA;AA1CAC,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GAlSvBd,EAmSZe,WAAA,QAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GA1SvBd,EA2SZe,WAAA,SAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QAlTdd,EAmTZe,WAAA,SAAA,CAAA,GASAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QA3Tdd,EA4TZe,WAAA,UAAA,CAAA,GAUAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,GAAS,CAAA,CAAA,GArUvBd,EAsUZe,WAAA,aAAA,IAGAJ,EAAA,CADCC,EAAS,EAAEL,MAAMS,QAAQC,WAAW,aAAaH,YAAS,CAAA,CAAA,GAxU/Cd,EAyUZe,WAAA,YAAA,CAAA,GAzUYf,IAANW,EAAA,CADNO,EAAc,qBAAA,CAAA,GACFlB,CAAAA;"}
1
+ {"version":3,"file":"typography-DayYVIRD.js","sources":["../src/typography/typography.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n// Material Design 3 typography - https://m3.material.io/styles/typography/type-scale-tokens\n\n/**\n * @element schmancy-typography\n * @slot - The text for the typography.\n */\n@customElement('schmancy-typography')\nexport class SchmancyTypography extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\thyphens: none;\n\t}\n\n\t/* Text alignment */\n\t:host([align='center']) {\n\t\ttext-align: center;\n\t}\n\n\t:host([align='left']) {\n\t\ttext-align: start;\n\t}\n\n\t:host([align='right']) {\n\t\ttext-align: right;\n\t}\n\n\t:host([align='justify']) {\n\t\ttext-align: justify;\n\t}\n\n\t/* Max lines / line clamping */\n\t:host([max-lines='1']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 1;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='2']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 2;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='3']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='4']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 4;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='5']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 5;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t:host([max-lines='6']) {\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 6;\n\t\t-webkit-box-orient: vertical;\n\t\toverflow: hidden;\n\t}\n\n\t/* Font weight */\n\t:host([weight='bold']) {\n\t\tfont-weight: 700;\n\t}\n\n\t:host([weight='medium']) {\n\t\tfont-weight: 500;\n\t}\n\n\t:host([weight='normal']) {\n\t\tfont-weight: 400;\n\t}\n\n\t/* Text transform */\n\t:host([transform='uppercase']) {\n\t\ttext-transform: uppercase;\n\t}\n\n\t:host([transform='lowercase']) {\n\t\ttext-transform: lowercase;\n\t}\n\n\t:host([transform='capitalize']) {\n\t\ttext-transform: capitalize;\n\t}\n\n\t:host([transform='normal']) {\n\t\ttext-transform: none;\n\t}\n\n\t/* Display typography variants - Material Design 3 + Extended */\n\t:host([type='display'][token='xl']) {\n\t\tfont-size: 72px;\n\t\tline-height: 80px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='lg']) {\n\t\tfont-size: 57px;\n\t\tline-height: 64px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='md']) {\n\t\tfont-size: 45px;\n\t\tline-height: 52px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='sm']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='display'][token='xs']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Headline typography variants - Material Design 3 + Extended */\n\t:host([type='headline'][token='xl']) {\n\t\tfont-size: 36px;\n\t\tline-height: 44px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='lg']) {\n\t\tfont-size: 32px;\n\t\tline-height: 40px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='md']) {\n\t\tfont-size: 28px;\n\t\tline-height: 36px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='sm']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='headline'][token='xs']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Title typography variants - Material Design 3 + Extended */\n\t:host([type='title'][token='xl']) {\n\t\tfont-size: 24px;\n\t\tline-height: 32px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='lg']) {\n\t\tfont-size: 22px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='title'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='title'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Subtitle typography variants - Extended from Material Design 3 */\n\t:host([type='subtitle'][token='xl']) {\n\t\tfont-size: 20px;\n\t\tline-height: 28px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='lg']) {\n\t\tfont-size: 18px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='md']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='sm']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='subtitle'][token='xs']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Body typography variants - Material Design 3 + Extended */\n\t:host([type='body'][token='xl']) {\n\t\tfont-size: 18px;\n\t\tline-height: 28px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='lg']) {\n\t\tfont-size: 16px;\n\t\tline-height: 24px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='md']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='sm']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 400;\n\t}\n\n\t:host([type='body'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 400;\n\t}\n\n\t/* Label typography variants - Material Design 3 + Extended */\n\t:host([type='label'][token='xl']) {\n\t\tfont-size: 16px;\n\t\tline-height: 22px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='lg']) {\n\t\tfont-size: 14px;\n\t\tline-height: 20px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='md']) {\n\t\tfont-size: 12px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='sm']) {\n\t\tfont-size: 11px;\n\t\tline-height: 16px;\n\t\tfont-weight: 500;\n\t}\n\n\t:host([type='label'][token='xs']) {\n\t\tfont-size: 10px;\n\t\tline-height: 14px;\n\t\tfont-weight: 500;\n\t}\n\n\t/* Note: Custom letter-spacing, font-size, and line-height should be applied via inline styles or Tailwind classes */\n`) {\n\t/**\n\t * @attr type - The type of the typography.\n\t * @default 'body'\n\t * @type {'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttype: 'display' | 'headline' | 'title' | 'subtitle' | 'body' | 'label' = 'body'\n\n\t/**\n\t * @attr token - The token of the typography.\n\t * @default 'md'\n\t * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'}\n\t */\n\t@property({ type: String, reflect: true })\n\ttoken: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'left' |'center' |'right'}\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'left' | 'center' | 'justify' | 'right' | undefined\n\n\t/**\n\t * @attr\n\t * @default inherit\n\t * @type {'normal' | 'medium' |'bold'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true })\n\tweight: 'normal' | 'medium' | 'bold' | undefined\n\t\n\t/**\n\t *\n\t * @attr\n\t * @default inherit\n\t * @type {'uppercase' |'lowercase' |'capitalize' |'normal'}\n\t * @public\n\t */\n\t@property({ type: String, reflect: true }) \n\ttransform: 'uppercase' | 'lowercase' | 'capitalize' | 'normal' | undefined\n\n\t@property({ type: Number, attribute: 'max-lines', reflect: true }) \n\tmaxLines: 1 | 2 | 3 | 4 | 5 | 6 | undefined\n\n\tprotected render(): unknown {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typography': SchmancyTypography\n\t}\n}"],"names":["SchmancyTypography","TailwindElement","css","constructor","super","arguments","this","type","token","render","html","__decorateClass","property","String","reflect","prototype","Number","attribute","customElement"],"mappings":";;;;;;;AAWO,IAAMA,IAAN,cAAiCC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAAjD,cAAAC;AAAAC,aAAAC,SAAAA,GAmSNC,KAAAC,OAAyE,QAQzED,KAAAE,QAA0C;AAAA,EAAA;AAAA,EAgChC,SAAAC;AACT,WAAOC;AAAAA,EACR;AAAA;AA1CAC,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GAlSvBd,EAmSZe,WAAA,QAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,YAAS,CAAA,CAAA,GA1SvBd,EA2SZe,WAAA,SAAA,CAAA,GAQAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QAlTdd,EAmTZe,WAAA,SAAA,CAAA,GASAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,QA3Tdd,EA4TZe,WAAA,UAAA,CAAA,GAUAJ,EAAA,CADCC,EAAS,EAAEL,MAAMM,QAAQC,SAAAA,GAAS,CAAA,CAAA,GArUvBd,EAsUZe,WAAA,aAAA,IAGAJ,EAAA,CADCC,EAAS,EAAEL,MAAMS,QAAQC,WAAW,aAAaH,YAAS,CAAA,CAAA,GAxU/Cd,EAyUZe,WAAA,YAAA,CAAA,GAzUYf,IAANW,EAAA,CADNO,EAAc,qBAAA,CAAA,GACFlB,CAAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-CRVUouR2.cjs");Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>e.SchmancyTypography});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typography-BBCRpsA_.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-DnZjZEIe.js";
1
+ import { S as p } from "./typography-DayYVIRD.js";
2
2
  export {
3
3
  p as SchmancyTypography
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhmo91/schmancy",
3
- "version": "0.6.18",
3
+ "version": "0.7.1",
4
4
  "description": "UI library build with web components",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
@@ -10,11 +10,7 @@
10
10
  },
11
11
  "./mixins": {
12
12
  "types": "./types/mixins/index.d.ts",
13
- "default": "./dist/mixins/index.js"
14
- },
15
- "./mixins/*": {
16
- "types": "./types/mixins/*.d.ts",
17
- "default": "./dist/mixins/*.js"
13
+ "default": "./dist/mixins.js"
18
14
  },
19
15
  "./ai/*": "./ai/*",
20
16
  "./*": {
@@ -46,11 +42,8 @@
46
42
  "access": "public"
47
43
  },
48
44
  "scripts": {
49
- "dev": "vite --config vite.demo.config.ts --host",
50
- "build:demo": "vite build --config vite.demo.config.ts",
45
+ "dev": "tsc --watch --preserveWatchOutput",
51
46
  "build": "tsc && vite build --config vite.config.ts",
52
- "preview": "vite preview",
53
- "watch": "npm-watch build:components",
54
47
  "ncu": "ncu -u && npm i",
55
48
  "test": "vitest run",
56
49
  "test:watch": "vitest",
@@ -103,6 +96,7 @@
103
96
  "@vitest/ui": "^3.2.4",
104
97
  "autoprefixer": "^10.4.21",
105
98
  "c8": "^10.1.3",
99
+ "concurrently": "^9.2.1",
106
100
  "deepmerge": "^4.3.1",
107
101
  "eslint": "^9.36.0",
108
102
  "happy-dom": "^18.0.1",
@@ -5,6 +5,17 @@ export type SchmancyAutocompleteChangeEvent = CustomEvent<{
5
5
  values?: string[];
6
6
  }>;
7
7
  declare const SchmancyAutocomplete_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
8
+ /**
9
+ * Autocomplete input component with filtering and multi-select support.
10
+ *
11
+ * @prop {string} name - Name attribute for form submission
12
+ * @prop {string} label - Label text displayed above the input
13
+ * @prop {string} placeholder - Placeholder text for the input
14
+ * @prop {boolean} required - Whether the field is required
15
+ * @prop {boolean} multi - Enable multi-select mode
16
+ * @prop {string} value - Selected value (single select mode)
17
+ * @prop {string[]} values - Selected values (multi-select mode)
18
+ */
8
19
  export default class SchmancyAutocomplete extends SchmancyAutocomplete_base {
9
20
  _valueSet: boolean;
10
21
  _valuesSet: boolean;
@@ -1,4 +1,12 @@
1
1
  declare const SchmancyTimezonesSelect_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
+ /**
3
+ * Timezone selector component with autocomplete filtering.
4
+ *
5
+ * @prop {string} name - Name attribute for form submission
6
+ * @prop {string} value - Selected timezone value
7
+ * @prop {string} label - Label text for the field
8
+ * @prop {boolean} required - Whether the field is required
9
+ */
2
10
  export declare class SchmancyTimezonesSelect extends SchmancyTimezonesSelect_base {
3
11
  static formAssociated: boolean;
4
12
  private internals?;
@@ -32,6 +32,7 @@ declare const SchmancyInput_base: import("@mixins/index").Constructor<import("@m
32
32
  * This component uses the native form association API and maintains parity with
33
33
  * native input behaviors while providing a stylish, accessible interface.
34
34
  *
35
+ * @prop {string} name - Name attribute for form submission (inherited from FormFieldMixin)
35
36
  * @prop {string} label - Label text for the form field (inherited from FormFieldMixin)
36
37
  * @prop {boolean} required - Whether the field is required (inherited from FormFieldMixin)
37
38
  * @prop {boolean} disabled - Whether the field is disabled (inherited from FormFieldMixin)
@@ -1,10 +1,9 @@
1
- declare const SchmancyMenu_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
1
+ declare const SchmancyMenu_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
2
  export default class SchmancyMenu extends SchmancyMenu_base {
3
- buttonElement: Array<HTMLElement>;
4
- menuElement: HTMLElement;
5
- private cleanup?;
6
- private getMiddleware;
7
- updatePosition(): Promise<void>;
3
+ private buttonSlot;
4
+ private menuSlot;
5
+ private isOpen;
6
+ private get buttonElement();
8
7
  private showMenu;
9
8
  private hideMenu;
10
9
  firstUpdated(): void;
@@ -1,4 +1,12 @@
1
1
  declare const RadioButton_base: import("@mixins/index").Constructor<import("@mixins/index").IFormFieldMixin> & import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
2
+ /**
3
+ * Radio button component for use within radio groups.
4
+ *
5
+ * @prop {string} name - Name attribute for grouping radio buttons
6
+ * @prop {string} value - Value of this radio button
7
+ * @prop {boolean} checked - Whether the radio button is selected
8
+ * @prop {boolean} disabled - Whether the radio button is disabled
9
+ */
2
10
  export declare class RadioButton extends RadioButton_base {
3
11
  value: string;
4
12
  checked: boolean;
@@ -3,6 +3,17 @@ export type SchmancySelectChangeEvent = CustomEvent<{
3
3
  value: string | string[];
4
4
  }>;
5
5
  declare const SchmancySelect_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
6
+ /**
7
+ * Select dropdown component with single and multi-select support.
8
+ *
9
+ * @prop {string} name - Name attribute for form submission
10
+ * @prop {string} label - Label text displayed above the select
11
+ * @prop {string} placeholder - Placeholder text when no value is selected
12
+ * @prop {boolean} required - Whether the field is required
13
+ * @prop {boolean} multi - Enable multi-select mode
14
+ * @prop {string} value - Selected value (single select mode)
15
+ * @prop {string[]} values - Selected values (multi-select mode)
16
+ */
6
17
  export declare class SchmancySelect extends SchmancySelect_base {
7
18
  static formAssociated: boolean;
8
19
  private internals?;
@@ -1,5 +1,17 @@
1
1
  import { LitElement } from 'lit';
2
2
  declare const SchmancyTextarea_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
3
+ /**
4
+ * Textarea component with auto-resize and form integration.
5
+ *
6
+ * @prop {string} name - Name attribute for form submission
7
+ * @prop {string} value - Current value of the textarea
8
+ * @prop {string} placeholder - Placeholder text
9
+ * @prop {boolean} required - Whether the field is required
10
+ * @prop {boolean} disabled - Whether the field is disabled
11
+ * @prop {boolean} readonly - Whether the field is read-only
12
+ * @prop {number} rows - Number of visible text rows
13
+ * @prop {number} maxlength - Maximum character length
14
+ */
3
15
  export default class SchmancyTextarea extends SchmancyTextarea_base {
4
16
  protected static shadowRootOptions: {
5
17
  delegatesFocus: boolean;
package/dist/_headers DELETED
@@ -1,3 +0,0 @@
1
- /*
2
- Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https://cdn.jsdelivr.net/npm/ https://www.claudeusercontent.com https://cdnjs.cloudflare.com https://cdn.jsdelivr.net/pyodide/; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net/npm/ https://fonts.googleapis.com; font-src 'self' data: https://cdn.jsdelivr.net/npm/ https://fonts.gstatic.com; img-src 'self' data: https: blob:; connect-src 'self' https:
3
- Cache-Control: public, max-age=31536000, immutable
@@ -1 +0,0 @@
1
- {"version":3,"file":"autocomplete-DEzGDw9s.cjs","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize, SchmancyInput } from '@schmancy/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { when } from 'lit/directives/when.js'\nimport {\n BehaviorSubject,\n combineLatest\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\n// Import the similarity function (or include it inline)\nimport { similarity } from '../utils/search'\n// Import chip component for multi-select display\nimport '../chips/input-chip'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n value: string | string[]\n values?: string[]\n}>\n\ninterface FilteredOption {\n option: SchmancyOption\n score: number\n}\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n // Track whether value/values have been explicitly set\n _valueSet: boolean = false\n _valuesSet: boolean = false\n\n // Public API properties\n @property({ type: Boolean }) required = false\n @property({ type: String }) placeholder = ''\n @property({ type: String, reflect: true }) label = ''\n @property({ type: String }) name = ''\n @property({ type: String }) maxHeight = '300px'\n @property({ type: Boolean }) multi = false\n @property({ type: String }) description = ''\n @property({ type: String, reflect: true }) size: InputSize = 'md'\n @property({ type: String }) autocomplete = 'off'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n @property({ type: Boolean }) error = false\n @property({ type: String }) validationMessage = ''\n\n // Values property for multi-select mode\n @property({ type: Array })\n get values() {\n return [...this._selectedValues$.value]\n }\n set values(vals: string[]) {\n this._valuesSet = true\n this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])\n }\n\n // Value property\n @property({ type: String, reflect: true })\n get value() {\n return this.multi \n ? this._selectedValues$.value.join(',')\n : this._selectedValue$.value\n }\n set value(val: string) {\n this._valueSet = true\n if (this.multi) {\n const newValues = val ? val.split(',').map(v => v.trim()).filter(Boolean) : []\n const currentValues = this._selectedValues$.value\n // Only update if values actually changed\n if (JSON.stringify(newValues) !== JSON.stringify(currentValues)) {\n this._selectedValues$.next(newValues)\n }\n } else {\n // Only update if value actually changed\n if (val !== this._selectedValue$.value) {\n this._selectedValue$.next(val)\n // Update the input display when value is set\n this._updateInputDisplay()\n }\n }\n }\n\n // State\n @state() private _open = false\n @state() private _inputValue = ''\n @state() private _visibleOptionsCount = 0\n @state() private _hasResults = true\n\n // DOM references\n @query('#options') _listbox!: HTMLUListElement\n @query('sch-input') _input!: SchmancyInput\n @queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n private _inputElementRef = createRef<HTMLInputElement>()\n\n // RxJS Subjects - only what we actually need\n private _selectedValue$ = new BehaviorSubject<string>('')\n private _selectedValues$ = new BehaviorSubject<string[]>([])\n private _inputValue$ = new BehaviorSubject<string>('')\n\n connectedCallback() {\n super.connectedCallback()\n\n if (!this.id) {\n this.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n }\n\n this._setupAutocompleteLogic()\n this._setupDocumentClickHandler()\n }\n\n private _setupAutocompleteLogic() {\n // Sync selection state\n combineLatest([\n this._selectedValue$,\n this._selectedValues$\n ]).pipe(\n tap(([selectedValue, selectedValues]) => {\n this._updateOptionSelection(selectedValue, selectedValues)\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Filter options based on input\n this._inputValue$.pipe(\n distinctUntilChanged(),\n debounceTime(this.debounceMs),\n tap(searchTerm => {\n if (this._open) {\n this._filterOptions(searchTerm)\n }\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupOptionHandlers() {\n this._options.forEach((option, index) => {\n option.setAttribute('role', 'option')\n option.tabIndex = -1\n if (!option.id) {\n option.id = `${this.id}-option-${index}`\n }\n // Prevent blur handler from interfering with option selection\n option.onmousedown = (e: MouseEvent) => {\n e.preventDefault() // Prevent focus loss\n }\n\n // Handle the actual selection\n option.onclick = (e: MouseEvent) => {\n e.stopPropagation()\n this._selectOption(option)\n }\n })\n }\n\n private _updateOptionSelection(selectedValue: string, selectedValues: string[]) {\n this._options.forEach(option => {\n option.selected = this.multi\n ? selectedValues.includes(option.value)\n : option.value === selectedValue\n option.setAttribute('aria-selected', String(option.selected))\n })\n }\n\n private _filterOptions(searchTerm: string) {\n const term = searchTerm.trim()\n\n if (!term) {\n // Show all options if no search term\n this._options.forEach(option => {\n option.hidden = false\n option.style.order = '0'\n })\n this._visibleOptionsCount = this._options.length\n this._hasResults = true\n } else {\n // Calculate similarity scores for all options\n const scoredOptions: FilteredOption[] = this._options.map(option => {\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n\n const labelScore = similarity(term, optionLabel)\n const valueScore = similarity(term, optionValue)\n const score = Math.max(labelScore * 1.1, valueScore)\n\n return { option, score }\n })\n\n // Sort by score (highest first)\n scoredOptions.sort((a, b) => b.score - a.score)\n\n // Apply visibility and ordering\n let visibleCount = 0\n scoredOptions.forEach((item, index) => {\n const { option, score } = item\n\n if (score < this.similarityThreshold) {\n option.hidden = true\n } else {\n option.hidden = false\n visibleCount++\n option.style.order = String(index)\n }\n })\n\n this._visibleOptionsCount = visibleCount\n this._hasResults = visibleCount > 0\n }\n\n this._announceToScreenReader(\n this._visibleOptionsCount > 0\n ? `${this._visibleOptionsCount} option${this._visibleOptionsCount === 1 ? '' : 's'} available.`\n : 'No results found.'\n )\n }\n\n private _openDropdown() {\n this._open = true\n // Reset filters based on current input value when dropdown opens\n this._filterOptions(this._inputValue)\n }\n\n private _selectOption(option: SchmancyOption) {\n if (this.multi) {\n const currentValues = this._selectedValues$.value\n const index = currentValues.indexOf(option.value)\n const newValues = index > -1\n ? currentValues.filter(v => v !== option.value)\n : [...currentValues, option.value]\n\n this._selectedValues$.next(newValues)\n this._announceToScreenReader(\n newValues.length > 0\n ? `Selected: ${this._getSelectedLabels().join(', ')}`\n : 'No options selected'\n )\n this._fireChangeEvent()\n } else {\n // Update value first\n this._selectedValue$.next(option.value)\n\n // Close dropdown IMMEDIATELY to prevent blur handler from firing\n this._open = false\n\n // Now fire event with the NEW value\n this._fireChangeEvent()\n\n // Update UI\n this._inputValue = option.label || option.textContent || ''\n this._inputValue$.next(this._inputValue)\n\n this._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n }\n }\n\n private _setupDocumentClickHandler() {\n // Simple document click handler\n const handleDocumentClick = (e: MouseEvent) => {\n if (!this._open) return\n\n const path = e.composedPath()\n if (!path.includes(this) && !this._options.some(opt => path.includes(opt))) {\n this._open = false\n this._updateInputDisplay()\n }\n }\n\n document.addEventListener('click', handleDocumentClick)\n\n // Cleanup on disconnect\n this.disconnecting.pipe(take(1)).subscribe(() => {\n document.removeEventListener('click', handleDocumentClick)\n })\n }\n\n\n private _updateInputDisplay() {\n // For multi-select, we don't update input display since chips show the selections\n if (this.multi) return\n\n const selectedValue = this._selectedValue$.value\n const option = this._options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n this._inputValue$.next(this._inputValue)\n\n if (this._inputElementRef.value) {\n this._inputElementRef.value.value = this._inputValue\n }\n }\n\n private _getSelectedLabels(): string[] {\n return this._options\n .filter(option => \n this.multi \n ? this._selectedValues$.value.includes(option.value)\n : option.value === this._selectedValue$.value\n )\n .map(option => option.label || option.textContent || '')\n }\n\n private _announceToScreenReader(message: string) {\n const liveRegion = this.shadowRoot?.querySelector('#live-status')\n if (liveRegion) {\n liveRegion.textContent = message\n }\n }\n\n private _fireChangeEvent() {\n const detail: SchmancyAutocompleteChangeEvent['detail'] = {\n value: this.value,\n }\n\n if (this.multi) {\n detail.values = [...this._selectedValues$.value]\n }\n\n this.dispatchEvent(\n new CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n detail,\n bubbles: true,\n composed: true,\n })\n )\n }\n\n public checkValidity(): boolean {\n if (!this.required) return true\n return this.multi \n ? this._selectedValues$.value.length > 0 \n : Boolean(this._selectedValue$.value)\n }\n\n public reportValidity(): boolean {\n if (this._inputElementRef.value) {\n return this._inputElementRef.value.reportValidity()\n }\n return this.checkValidity()\n }\n\n firstUpdated() {\n this._setupOptionHandlers()\n\n // Sync initial value with display after options are available\n this._updateInputDisplay()\n\n // Update options when slot changes\n const slot = this.shadowRoot?.querySelector('slot')\n slot?.addEventListener('slotchange', () => {\n this._setupOptionHandlers()\n this._updateOptionSelection(this._selectedValue$.value, this._selectedValues$.value)\n })\n }\n\n private handleChipRemove(value: string) {\n const currentValues = this._selectedValues$.value\n const newValues = currentValues.filter(v => v !== value)\n this._selectedValues$.next(newValues)\n this._fireChangeEvent()\n this._announceToScreenReader(`Removed: ${this._getChipLabel(value)}`)\n }\n\n private _getChipLabel(value: string): string {\n const option = this._options.find(opt => opt.value === value)\n return option ? option.label || option.textContent || value : value\n }\n\n private _focusTextInput() {\n if (this._inputElementRef.value) {\n this._inputElementRef.value.focus()\n }\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n // Get size-based styling to match Schmancy input\n const getSizeStyles = () => {\n switch (this.size) {\n case 'sm':\n return {\n height: 'min-h-[40px]',\n padding: 'px-2',\n fontSize: 'text-sm', // 14px\n labelSize: 'text-sm'\n }\n case 'lg':\n return {\n height: 'min-h-[60px]',\n padding: 'px-5',\n fontSize: 'text-lg', // 18px\n labelSize: 'text-lg'\n }\n case 'md':\n default:\n return {\n height: 'min-h-[50px]',\n padding: 'px-4',\n fontSize: 'text-base', // 16px\n labelSize: 'text-base'\n }\n }\n }\n\n const { height, padding, fontSize, labelSize } = getSizeStyles()\n\n return html`\n <div class=\"relative\">\n <!-- Screen reader live region -->\n <div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n <!-- Description -->\n ${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n <!-- Custom input wrapper for Gmail-style chip input -->\n <slot name=\"trigger\">\n ${when(this.multi,\n () => html`\n <!-- Custom multi-select input with inline chips -->\n <div class=\"relative\">\n ${when(this.label, () => html`\n <label class=\"${classMap({\n 'block mb-1 font-medium': true,\n 'text-primary-default': !this.error,\n 'text-error-default': this.error,\n [labelSize]: true\n })}\">\n ${this.label}${this.required ? html`<span class=\"text-error-default ml-1\">*</span>` : ''}\n </label>\n `)}\n <div\n class=\"${classMap({\n 'flex flex-wrap items-center gap-1': true,\n [height]: true,\n [padding]: true,\n 'block w-full min-w-0 rounded-[8px] border-0': true,\n 'bg-surface-highest text-surface-on': true,\n 'ring-0 ring-inset focus-within:ring-1 focus-within:ring-inset': true,\n 'ring-secondary-default focus-within:ring-secondary-default': !this.error,\n 'ring-error-default focus-within:ring-error-default': this.error,\n 'cursor-text transition-colors duration-200': true\n })}\"\n @click=${() => this._focusTextInput()}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n >\n <!-- Render chips inline -->\n ${repeat(\n this._selectedValues$.value,\n value => value,\n value => html`\n <schmancy-input-chip\n .value=${value}\n @remove=${(e: CustomEvent) => this.handleChipRemove(e.detail.value)}\n class=\"flex-shrink-0 my-0.5\"\n >\n ${this._getChipLabel(value)}\n </schmancy-input-chip>\n `\n )}\n\n <!-- Text input for typing -->\n <input\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n type=\"text\"\n class=\"flex-1 min-w-[120px] py-1 bg-transparent border-none outline-none ${fontSize} font-medium text-surface-on placeholder:text-muted\"\n name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-') || ''}\n .placeholder=${this._selectedValues$.value.length > 0 ? 'Add more...' : this.placeholder}\n .value=${this._inputValue}\n .autocomplete=${this.autocomplete}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n // Clear input on focus for new searches\n this._inputValue = ''\n this._inputValue$.next('')\n this._openDropdown()\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n />\n </div>\n\n <!-- Validation message -->\n ${when(this.error && this.validationMessage, () => html`\n <div class=\"mt-1 text-sm text-error-default\">\n ${this.validationMessage}\n </div>\n `)}\n </div>\n `,\n () => html`\n <!-- Regular single-select input -->\n <schmancy-input\n .size=${this.size}\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n class=\"w-full\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-') || ''}\n .label=${this.label}\n .placeholder=${this.placeholder}\n .required=${this.required}\n .value=${this._inputValue}\n type=\"text\"\n autocomplete=${this.autocomplete}\n clickable\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n aria-describedby=${this.description ? descriptionId : undefined}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n this._openDropdown()\n }}\n @click=${(e: MouseEvent) => {\n e.stopPropagation()\n this._openDropdown()\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n >\n </schmancy-input>\n `\n )}\n </slot>\n\n <!-- Options dropdown -->\n <ul\n id=\"options\"\n class=${classMap({\n 'absolute': true,\n 'z-[1000]': true,\n 'mt-1': true,\n 'w-full': true,\n 'rounded-md': true,\n 'shadow-md': true,\n 'overflow-auto': true,\n 'min-w-full': true,\n 'bg-surface-low': true,\n 'flex': true,\n 'flex-col': true, // Enable flexbox for ordering\n })}\n role=\"listbox\"\n aria-multiselectable=${this.multi ? 'true' : 'false'}\n aria-label=${`${this.label || 'Options'} dropdown`}\n ?hidden=${!this._open}\n style=\"max-height: ${this.maxHeight}; display: ${this._open ? 'flex' : 'none'};\"\n @slotchange=${() => {\n this._setupOptionHandlers()\n }}\n >\n <slot></slot>\n ${!this._hasResults ? html`\n <li class=\"px-3 py-2 text-sm text-muted\">No results found</li>\n ` : ''}\n </ul>\n </div>\n `\n }\n\n private _handleAutoSelectOnBlur() {\n // Only auto-select in single-select mode and when dropdown is open with a search term\n if (this.multi || !this._open || !this._inputValue.trim()) {\n return\n }\n \n const searchTerm = this._inputValue.trim()\n \n // Find the best matching option using the same similarity logic as filtering\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n this._options.forEach(option => {\n // Skip hidden options\n if (option.hidden) return\n \n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(searchTerm, optionLabel)\n const valueScore = similarity(searchTerm, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n // Keep track of best match that meets threshold\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n \n // Auto-select the best match if found\n if (bestMatch) {\n // Silently update the selected value without firing change event\n this._selectedValue$.next(bestMatch.value)\n this._inputValue = bestMatch.label || bestMatch.textContent || ''\n this._inputValue$.next(this._inputValue)\n this._open = false\n }\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n const isOpen = this._open\n const selectedValues = this._selectedValues$.value\n\n // Handle backspace to remove last chip in multi-select when input is empty\n if (this.multi && event.key === 'Backspace' && !this._inputValue && selectedValues.length > 0 && !isOpen) {\n event.preventDefault()\n const lastValue = selectedValues[selectedValues.length - 1]\n this.handleChipRemove(lastValue)\n return\n }\n\n if (!isOpen && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault()\n this._openDropdown()\n\n setTimeout(() => {\n const firstVisible = this._options.find(opt => !opt.hidden)\n firstVisible?.focus()\n }, 10)\n return\n }\n\n if (!isOpen) return\n\n const visibleOptions = this._options.filter(opt => !opt.hidden)\n .sort((a, b) => parseInt(a.style.order || '0') - parseInt(b.style.order || '0'))\n\n const focusedOption = visibleOptions.find(opt => opt === document.activeElement)\n const currentIndex = focusedOption ? visibleOptions.indexOf(focusedOption) : -1\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault()\n this._open = false\n this._updateInputDisplay()\n this._inputElementRef.value?.focus()\n break\n\n case 'Tab':\n this._open = false\n this._updateInputDisplay()\n break\n\n case 'ArrowDown':\n event.preventDefault()\n const nextIndex = currentIndex < visibleOptions.length - 1 ? currentIndex + 1 : 0\n visibleOptions[nextIndex]?.focus()\n break\n\n case 'ArrowUp':\n event.preventDefault()\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : visibleOptions.length - 1\n visibleOptions[prevIndex]?.focus()\n break\n\n case 'Home':\n event.preventDefault()\n visibleOptions[0]?.focus()\n break\n\n case 'End':\n event.preventDefault()\n visibleOptions[visibleOptions.length - 1]?.focus()\n break\n\n case 'Enter':\n case ' ':\n if (focusedOption) {\n event.preventDefault()\n this._selectOption(focusedOption)\n }\n break\n }\n }\n}\n\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-autocomplete': SchmancyAutocomplete\n }\n}"],"names":["SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","_valueSet","_valuesSet","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","error","validationMessage","_open","_inputValue","_visibleOptionsCount","_hasResults","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","values","value","vals","next","Array","isArray","join","val","newValues","split","map","v","trim","filter","Boolean","currentValues","JSON","stringify","_updateInputDisplay","connectedCallback","id","Math","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","combineLatest","pipe","tap","selectedValue","selectedValues","_updateOptionSelection","takeUntil","disconnecting","subscribe","distinctUntilChanged","debounceTime","searchTerm","_filterOptions","_setupOptionHandlers","_options","forEach","option","index","setAttribute","tabIndex","onmousedown","e","preventDefault","onclick","stopPropagation","_selectOption","selected","includes","String","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","similarity","valueScore","score","max","sort","a","b","visibleCount","item","hidden","style","order","length","_announceToScreenReader","_openDropdown","indexOf","_getSelectedLabels","_fireChangeEvent","handleDocumentClick","path","composedPath","some","opt","document","addEventListener","take","removeEventListener","find","message","liveRegion","shadowRoot","querySelector","detail","dispatchEvent","CustomEvent","bubbles","composed","reportValidity","checkValidity","firstUpdated","_getChipLabel","_focusTextInput","focus","render","descriptionId","height","padding","fontSize","labelSize","getSizeStyles","html","when","classMap","repeat","handleChipRemove","ref","toLowerCase","replace","target","_handleKeyDown","_handleAutoSelectOnBlur","absolute","flex","bestMatch","bestScore","event","isOpen","key","lastValue","setTimeout","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"autocomplete-DLzc6eqO.js","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize, SchmancyInput } from '@schmancy/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { when } from 'lit/directives/when.js'\nimport {\n BehaviorSubject,\n combineLatest\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\n// Import the similarity function (or include it inline)\nimport { similarity } from '../utils/search'\n// Import chip component for multi-select display\nimport '../chips/input-chip'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n value: string | string[]\n values?: string[]\n}>\n\ninterface FilteredOption {\n option: SchmancyOption\n score: number\n}\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n // Track whether value/values have been explicitly set\n _valueSet: boolean = false\n _valuesSet: boolean = false\n\n // Public API properties\n @property({ type: Boolean }) required = false\n @property({ type: String }) placeholder = ''\n @property({ type: String, reflect: true }) label = ''\n @property({ type: String }) name = ''\n @property({ type: String }) maxHeight = '300px'\n @property({ type: Boolean }) multi = false\n @property({ type: String }) description = ''\n @property({ type: String, reflect: true }) size: InputSize = 'md'\n @property({ type: String }) autocomplete = 'off'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n @property({ type: Boolean }) error = false\n @property({ type: String }) validationMessage = ''\n\n // Values property for multi-select mode\n @property({ type: Array })\n get values() {\n return [...this._selectedValues$.value]\n }\n set values(vals: string[]) {\n this._valuesSet = true\n this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])\n }\n\n // Value property\n @property({ type: String, reflect: true })\n get value() {\n return this.multi \n ? this._selectedValues$.value.join(',')\n : this._selectedValue$.value\n }\n set value(val: string) {\n this._valueSet = true\n if (this.multi) {\n const newValues = val ? val.split(',').map(v => v.trim()).filter(Boolean) : []\n const currentValues = this._selectedValues$.value\n // Only update if values actually changed\n if (JSON.stringify(newValues) !== JSON.stringify(currentValues)) {\n this._selectedValues$.next(newValues)\n }\n } else {\n // Only update if value actually changed\n if (val !== this._selectedValue$.value) {\n this._selectedValue$.next(val)\n // Update the input display when value is set\n this._updateInputDisplay()\n }\n }\n }\n\n // State\n @state() private _open = false\n @state() private _inputValue = ''\n @state() private _visibleOptionsCount = 0\n @state() private _hasResults = true\n\n // DOM references\n @query('#options') _listbox!: HTMLUListElement\n @query('sch-input') _input!: SchmancyInput\n @queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n private _inputElementRef = createRef<HTMLInputElement>()\n\n // RxJS Subjects - only what we actually need\n private _selectedValue$ = new BehaviorSubject<string>('')\n private _selectedValues$ = new BehaviorSubject<string[]>([])\n private _inputValue$ = new BehaviorSubject<string>('')\n\n connectedCallback() {\n super.connectedCallback()\n\n if (!this.id) {\n this.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n }\n\n this._setupAutocompleteLogic()\n this._setupDocumentClickHandler()\n }\n\n private _setupAutocompleteLogic() {\n // Sync selection state\n combineLatest([\n this._selectedValue$,\n this._selectedValues$\n ]).pipe(\n tap(([selectedValue, selectedValues]) => {\n this._updateOptionSelection(selectedValue, selectedValues)\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Filter options based on input\n this._inputValue$.pipe(\n distinctUntilChanged(),\n debounceTime(this.debounceMs),\n tap(searchTerm => {\n if (this._open) {\n this._filterOptions(searchTerm)\n }\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupOptionHandlers() {\n this._options.forEach((option, index) => {\n option.setAttribute('role', 'option')\n option.tabIndex = -1\n if (!option.id) {\n option.id = `${this.id}-option-${index}`\n }\n // Prevent blur handler from interfering with option selection\n option.onmousedown = (e: MouseEvent) => {\n e.preventDefault() // Prevent focus loss\n }\n\n // Handle the actual selection\n option.onclick = (e: MouseEvent) => {\n e.stopPropagation()\n this._selectOption(option)\n }\n })\n }\n\n private _updateOptionSelection(selectedValue: string, selectedValues: string[]) {\n this._options.forEach(option => {\n option.selected = this.multi\n ? selectedValues.includes(option.value)\n : option.value === selectedValue\n option.setAttribute('aria-selected', String(option.selected))\n })\n }\n\n private _filterOptions(searchTerm: string) {\n const term = searchTerm.trim()\n\n if (!term) {\n // Show all options if no search term\n this._options.forEach(option => {\n option.hidden = false\n option.style.order = '0'\n })\n this._visibleOptionsCount = this._options.length\n this._hasResults = true\n } else {\n // Calculate similarity scores for all options\n const scoredOptions: FilteredOption[] = this._options.map(option => {\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n\n const labelScore = similarity(term, optionLabel)\n const valueScore = similarity(term, optionValue)\n const score = Math.max(labelScore * 1.1, valueScore)\n\n return { option, score }\n })\n\n // Sort by score (highest first)\n scoredOptions.sort((a, b) => b.score - a.score)\n\n // Apply visibility and ordering\n let visibleCount = 0\n scoredOptions.forEach((item, index) => {\n const { option, score } = item\n\n if (score < this.similarityThreshold) {\n option.hidden = true\n } else {\n option.hidden = false\n visibleCount++\n option.style.order = String(index)\n }\n })\n\n this._visibleOptionsCount = visibleCount\n this._hasResults = visibleCount > 0\n }\n\n this._announceToScreenReader(\n this._visibleOptionsCount > 0\n ? `${this._visibleOptionsCount} option${this._visibleOptionsCount === 1 ? '' : 's'} available.`\n : 'No results found.'\n )\n }\n\n private _openDropdown() {\n this._open = true\n // Reset filters based on current input value when dropdown opens\n this._filterOptions(this._inputValue)\n }\n\n private _selectOption(option: SchmancyOption) {\n if (this.multi) {\n const currentValues = this._selectedValues$.value\n const index = currentValues.indexOf(option.value)\n const newValues = index > -1\n ? currentValues.filter(v => v !== option.value)\n : [...currentValues, option.value]\n\n this._selectedValues$.next(newValues)\n this._announceToScreenReader(\n newValues.length > 0\n ? `Selected: ${this._getSelectedLabels().join(', ')}`\n : 'No options selected'\n )\n this._fireChangeEvent()\n } else {\n // Update value first\n this._selectedValue$.next(option.value)\n\n // Close dropdown IMMEDIATELY to prevent blur handler from firing\n this._open = false\n\n // Now fire event with the NEW value\n this._fireChangeEvent()\n\n // Update UI\n this._inputValue = option.label || option.textContent || ''\n this._inputValue$.next(this._inputValue)\n\n this._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n }\n }\n\n private _setupDocumentClickHandler() {\n // Simple document click handler\n const handleDocumentClick = (e: MouseEvent) => {\n if (!this._open) return\n\n const path = e.composedPath()\n if (!path.includes(this) && !this._options.some(opt => path.includes(opt))) {\n this._open = false\n this._updateInputDisplay()\n }\n }\n\n document.addEventListener('click', handleDocumentClick)\n\n // Cleanup on disconnect\n this.disconnecting.pipe(take(1)).subscribe(() => {\n document.removeEventListener('click', handleDocumentClick)\n })\n }\n\n\n private _updateInputDisplay() {\n // For multi-select, we don't update input display since chips show the selections\n if (this.multi) return\n\n const selectedValue = this._selectedValue$.value\n const option = this._options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n this._inputValue$.next(this._inputValue)\n\n if (this._inputElementRef.value) {\n this._inputElementRef.value.value = this._inputValue\n }\n }\n\n private _getSelectedLabels(): string[] {\n return this._options\n .filter(option => \n this.multi \n ? this._selectedValues$.value.includes(option.value)\n : option.value === this._selectedValue$.value\n )\n .map(option => option.label || option.textContent || '')\n }\n\n private _announceToScreenReader(message: string) {\n const liveRegion = this.shadowRoot?.querySelector('#live-status')\n if (liveRegion) {\n liveRegion.textContent = message\n }\n }\n\n private _fireChangeEvent() {\n const detail: SchmancyAutocompleteChangeEvent['detail'] = {\n value: this.value,\n }\n\n if (this.multi) {\n detail.values = [...this._selectedValues$.value]\n }\n\n this.dispatchEvent(\n new CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n detail,\n bubbles: true,\n composed: true,\n })\n )\n }\n\n public checkValidity(): boolean {\n if (!this.required) return true\n return this.multi \n ? this._selectedValues$.value.length > 0 \n : Boolean(this._selectedValue$.value)\n }\n\n public reportValidity(): boolean {\n if (this._inputElementRef.value) {\n return this._inputElementRef.value.reportValidity()\n }\n return this.checkValidity()\n }\n\n firstUpdated() {\n this._setupOptionHandlers()\n\n // Sync initial value with display after options are available\n this._updateInputDisplay()\n\n // Update options when slot changes\n const slot = this.shadowRoot?.querySelector('slot')\n slot?.addEventListener('slotchange', () => {\n this._setupOptionHandlers()\n this._updateOptionSelection(this._selectedValue$.value, this._selectedValues$.value)\n })\n }\n\n private handleChipRemove(value: string) {\n const currentValues = this._selectedValues$.value\n const newValues = currentValues.filter(v => v !== value)\n this._selectedValues$.next(newValues)\n this._fireChangeEvent()\n this._announceToScreenReader(`Removed: ${this._getChipLabel(value)}`)\n }\n\n private _getChipLabel(value: string): string {\n const option = this._options.find(opt => opt.value === value)\n return option ? option.label || option.textContent || value : value\n }\n\n private _focusTextInput() {\n if (this._inputElementRef.value) {\n this._inputElementRef.value.focus()\n }\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n // Get size-based styling to match Schmancy input\n const getSizeStyles = () => {\n switch (this.size) {\n case 'sm':\n return {\n height: 'min-h-[40px]',\n padding: 'px-2',\n fontSize: 'text-sm', // 14px\n labelSize: 'text-sm'\n }\n case 'lg':\n return {\n height: 'min-h-[60px]',\n padding: 'px-5',\n fontSize: 'text-lg', // 18px\n labelSize: 'text-lg'\n }\n case 'md':\n default:\n return {\n height: 'min-h-[50px]',\n padding: 'px-4',\n fontSize: 'text-base', // 16px\n labelSize: 'text-base'\n }\n }\n }\n\n const { height, padding, fontSize, labelSize } = getSizeStyles()\n\n return html`\n <div class=\"relative\">\n <!-- Screen reader live region -->\n <div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n <!-- Description -->\n ${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n <!-- Custom input wrapper for Gmail-style chip input -->\n <slot name=\"trigger\">\n ${when(this.multi,\n () => html`\n <!-- Custom multi-select input with inline chips -->\n <div class=\"relative\">\n ${when(this.label, () => html`\n <label class=\"${classMap({\n 'block mb-1 font-medium': true,\n 'text-primary-default': !this.error,\n 'text-error-default': this.error,\n [labelSize]: true\n })}\">\n ${this.label}${this.required ? html`<span class=\"text-error-default ml-1\">*</span>` : ''}\n </label>\n `)}\n <div\n class=\"${classMap({\n 'flex flex-wrap items-center gap-1': true,\n [height]: true,\n [padding]: true,\n 'block w-full min-w-0 rounded-[8px] border-0': true,\n 'bg-surface-highest text-surface-on': true,\n 'ring-0 ring-inset focus-within:ring-1 focus-within:ring-inset': true,\n 'ring-secondary-default focus-within:ring-secondary-default': !this.error,\n 'ring-error-default focus-within:ring-error-default': this.error,\n 'cursor-text transition-colors duration-200': true\n })}\"\n @click=${() => this._focusTextInput()}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n >\n <!-- Render chips inline -->\n ${repeat(\n this._selectedValues$.value,\n value => value,\n value => html`\n <schmancy-input-chip\n .value=${value}\n @remove=${(e: CustomEvent) => this.handleChipRemove(e.detail.value)}\n class=\"flex-shrink-0 my-0.5\"\n >\n ${this._getChipLabel(value)}\n </schmancy-input-chip>\n `\n )}\n\n <!-- Text input for typing -->\n <input\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n type=\"text\"\n class=\"flex-1 min-w-[120px] py-1 bg-transparent border-none outline-none ${fontSize} font-medium text-surface-on placeholder:text-muted\"\n name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-') || ''}\n .placeholder=${this._selectedValues$.value.length > 0 ? 'Add more...' : this.placeholder}\n .value=${this._inputValue}\n .autocomplete=${this.autocomplete}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n // Clear input on focus for new searches\n this._inputValue = ''\n this._inputValue$.next('')\n this._openDropdown()\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n />\n </div>\n\n <!-- Validation message -->\n ${when(this.error && this.validationMessage, () => html`\n <div class=\"mt-1 text-sm text-error-default\">\n ${this.validationMessage}\n </div>\n `)}\n </div>\n `,\n () => html`\n <!-- Regular single-select input -->\n <schmancy-input\n .size=${this.size}\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n class=\"w-full\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-') || ''}\n .label=${this.label}\n .placeholder=${this.placeholder}\n .required=${this.required}\n .value=${this._inputValue}\n type=\"text\"\n autocomplete=${this.autocomplete}\n clickable\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n aria-describedby=${this.description ? descriptionId : undefined}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n this._openDropdown()\n }}\n @click=${(e: MouseEvent) => {\n e.stopPropagation()\n this._openDropdown()\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n >\n </schmancy-input>\n `\n )}\n </slot>\n\n <!-- Options dropdown -->\n <ul\n id=\"options\"\n class=${classMap({\n 'absolute': true,\n 'z-[1000]': true,\n 'mt-1': true,\n 'w-full': true,\n 'rounded-md': true,\n 'shadow-md': true,\n 'overflow-auto': true,\n 'min-w-full': true,\n 'bg-surface-low': true,\n 'flex': true,\n 'flex-col': true, // Enable flexbox for ordering\n })}\n role=\"listbox\"\n aria-multiselectable=${this.multi ? 'true' : 'false'}\n aria-label=${`${this.label || 'Options'} dropdown`}\n ?hidden=${!this._open}\n style=\"max-height: ${this.maxHeight}; display: ${this._open ? 'flex' : 'none'};\"\n @slotchange=${() => {\n this._setupOptionHandlers()\n }}\n >\n <slot></slot>\n ${!this._hasResults ? html`\n <li class=\"px-3 py-2 text-sm text-muted\">No results found</li>\n ` : ''}\n </ul>\n </div>\n `\n }\n\n private _handleAutoSelectOnBlur() {\n // Only auto-select in single-select mode and when dropdown is open with a search term\n if (this.multi || !this._open || !this._inputValue.trim()) {\n return\n }\n \n const searchTerm = this._inputValue.trim()\n \n // Find the best matching option using the same similarity logic as filtering\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n this._options.forEach(option => {\n // Skip hidden options\n if (option.hidden) return\n \n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(searchTerm, optionLabel)\n const valueScore = similarity(searchTerm, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n // Keep track of best match that meets threshold\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n \n // Auto-select the best match if found\n if (bestMatch) {\n // Silently update the selected value without firing change event\n this._selectedValue$.next(bestMatch.value)\n this._inputValue = bestMatch.label || bestMatch.textContent || ''\n this._inputValue$.next(this._inputValue)\n this._open = false\n }\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n const isOpen = this._open\n const selectedValues = this._selectedValues$.value\n\n // Handle backspace to remove last chip in multi-select when input is empty\n if (this.multi && event.key === 'Backspace' && !this._inputValue && selectedValues.length > 0 && !isOpen) {\n event.preventDefault()\n const lastValue = selectedValues[selectedValues.length - 1]\n this.handleChipRemove(lastValue)\n return\n }\n\n if (!isOpen && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault()\n this._openDropdown()\n\n setTimeout(() => {\n const firstVisible = this._options.find(opt => !opt.hidden)\n firstVisible?.focus()\n }, 10)\n return\n }\n\n if (!isOpen) return\n\n const visibleOptions = this._options.filter(opt => !opt.hidden)\n .sort((a, b) => parseInt(a.style.order || '0') - parseInt(b.style.order || '0'))\n\n const focusedOption = visibleOptions.find(opt => opt === document.activeElement)\n const currentIndex = focusedOption ? visibleOptions.indexOf(focusedOption) : -1\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault()\n this._open = false\n this._updateInputDisplay()\n this._inputElementRef.value?.focus()\n break\n\n case 'Tab':\n this._open = false\n this._updateInputDisplay()\n break\n\n case 'ArrowDown':\n event.preventDefault()\n const nextIndex = currentIndex < visibleOptions.length - 1 ? currentIndex + 1 : 0\n visibleOptions[nextIndex]?.focus()\n break\n\n case 'ArrowUp':\n event.preventDefault()\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : visibleOptions.length - 1\n visibleOptions[prevIndex]?.focus()\n break\n\n case 'Home':\n event.preventDefault()\n visibleOptions[0]?.focus()\n break\n\n case 'End':\n event.preventDefault()\n visibleOptions[visibleOptions.length - 1]?.focus()\n break\n\n case 'Enter':\n case ' ':\n if (focusedOption) {\n event.preventDefault()\n this._selectOption(focusedOption)\n }\n break\n }\n }\n}\n\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-autocomplete': SchmancyAutocomplete\n }\n}"],"names":["SchmancyAutocomplete","$LitElement","super","arguments","this","_valueSet","_valuesSet","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","error","validationMessage","_open","_inputValue","_visibleOptionsCount","_hasResults","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","values","value","vals","next","Array","isArray","join","val","newValues","split","map","v","trim","filter","Boolean","currentValues","JSON","stringify","_updateInputDisplay","connectedCallback","id","Math","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","combineLatest","pipe","tap","selectedValue","selectedValues","_updateOptionSelection","takeUntil","disconnecting","subscribe","distinctUntilChanged","debounceTime","searchTerm","_filterOptions","_setupOptionHandlers","_options","forEach","option","index","setAttribute","tabIndex","onmousedown","e","preventDefault","onclick","stopPropagation","_selectOption","selected","includes","String","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","similarity","valueScore","score","max","sort","a","b","visibleCount","item","hidden","style","order","length","_announceToScreenReader","_openDropdown","indexOf","_getSelectedLabels","_fireChangeEvent","handleDocumentClick","path","composedPath","some","opt","document","addEventListener","take","removeEventListener","find","message","liveRegion","shadowRoot","querySelector","detail","dispatchEvent","CustomEvent","bubbles","composed","checkValidity","reportValidity","firstUpdated","_getChipLabel","_focusTextInput","focus","render","descriptionId","height","padding","fontSize","labelSize","getSizeStyles","html","when","classMap","repeat","handleChipRemove","ref","toLowerCase","replace","target","_handleKeyDown","_handleAutoSelectOnBlur","absolute","flex","bestMatch","bestScore","event","isOpen","key","lastValue","setTimeout","firstVisible","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}