@mhmo91/schmancy 0.7.5 → 0.7.6

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 (397) hide show
  1. package/ai/directives.md +214 -7
  2. package/ai/typewriter.md +151 -33
  3. package/dist/ai/directives.md +214 -7
  4. package/dist/ai/typewriter.md +151 -33
  5. package/dist/{animated-text-DnFenRS1.cjs → animated-text-1FDC-OTA.cjs} +2 -2
  6. package/dist/{animated-text-DnFenRS1.cjs.map → animated-text-1FDC-OTA.cjs.map} +1 -1
  7. package/dist/{animated-text-YBgWXuVJ.js → animated-text-1_latidd.js} +3 -3
  8. package/dist/{animated-text-YBgWXuVJ.js.map → animated-text-1_latidd.js.map} +1 -1
  9. package/dist/animated-text.cjs +1 -1
  10. package/dist/animated-text.js +1 -1
  11. package/dist/area.cjs +1 -1
  12. package/dist/{area.component-C_nUxyiY.js → area.component-CQq-Mh0Z.js} +47 -39
  13. package/dist/area.component-CQq-Mh0Z.js.map +1 -0
  14. package/dist/{area.component-BojFAcRk.cjs → area.component-Ciw7vGsx.cjs} +4 -4
  15. package/dist/area.component-Ciw7vGsx.cjs.map +1 -0
  16. package/dist/area.js +1 -1
  17. package/dist/{autocomplete-B-X_D8MC.js → autocomplete-DT9MFPEG.js} +5 -5
  18. package/dist/{autocomplete-B-X_D8MC.js.map → autocomplete-DT9MFPEG.js.map} +1 -1
  19. package/dist/{autocomplete-B8oOdRsV.cjs → autocomplete-auTO_M_w.cjs} +2 -2
  20. package/dist/{autocomplete-B8oOdRsV.cjs.map → autocomplete-auTO_M_w.cjs.map} +1 -1
  21. package/dist/autocomplete.cjs +1 -1
  22. package/dist/autocomplete.js +1 -1
  23. package/dist/{avatar-DBdyON6Y.cjs → avatar-Bo8kRnA-.cjs} +2 -2
  24. package/dist/{avatar-DBdyON6Y.cjs.map → avatar-Bo8kRnA-.cjs.map} +1 -1
  25. package/dist/{avatar-Cro3M4Lw.js → avatar-Dm_qg-n1.js} +52 -52
  26. package/dist/{avatar-Cro3M4Lw.js.map → avatar-Dm_qg-n1.js.map} +1 -1
  27. package/dist/badge.cjs +1 -1
  28. package/dist/badge.js +1 -1
  29. package/dist/boat-98He5-K8.cjs +97 -0
  30. package/dist/boat-98He5-K8.cjs.map +1 -0
  31. package/dist/boat-RNCKlx8b.js +301 -0
  32. package/dist/boat-RNCKlx8b.js.map +1 -0
  33. package/dist/boat.cjs +1 -1
  34. package/dist/boat.js +1 -1
  35. package/dist/busy.cjs +1 -1
  36. package/dist/busy.js +1 -1
  37. package/dist/button.cjs +1 -1
  38. package/dist/button.js +1 -1
  39. package/dist/card.cjs +1 -1
  40. package/dist/card.js +1 -1
  41. package/dist/{checkbox-BOmazo-k.js → checkbox-Bdn1_WJg.js} +2 -2
  42. package/dist/{checkbox-BOmazo-k.js.map → checkbox-Bdn1_WJg.js.map} +1 -1
  43. package/dist/{checkbox-DMfwDgYx.cjs → checkbox-Dj06r6MD.cjs} +2 -2
  44. package/dist/{checkbox-DMfwDgYx.cjs.map → checkbox-Dj06r6MD.cjs.map} +1 -1
  45. package/dist/checkbox.cjs +1 -1
  46. package/dist/checkbox.js +1 -1
  47. package/dist/chips.cjs +1 -1
  48. package/dist/chips.js +2 -2
  49. package/dist/code-highlight.cjs +1 -1
  50. package/dist/code-highlight.js +1 -1
  51. package/dist/{code-preview-DgyY3Jlw.js → code-preview-Br7zBkyM.js} +2 -2
  52. package/dist/{code-preview-DgyY3Jlw.js.map → code-preview-Br7zBkyM.js.map} +1 -1
  53. package/dist/{code-preview-CbZzYTk2.cjs → code-preview-ByxcwPma.cjs} +2 -2
  54. package/dist/{code-preview-CbZzYTk2.cjs.map → code-preview-ByxcwPma.cjs.map} +1 -1
  55. package/dist/components.cjs +1 -1
  56. package/dist/components.js +1 -1
  57. package/dist/content-drawer.cjs +1 -1
  58. package/dist/content-drawer.js +1 -1
  59. package/dist/{date-range-BV0479CW.js → date-range-VkIMcQdT.js} +3 -3
  60. package/dist/{date-range-BV0479CW.js.map → date-range-VkIMcQdT.js.map} +1 -1
  61. package/dist/{date-range-inline-HNDLTnYi.cjs → date-range-inline-kbokz03Z.cjs} +2 -2
  62. package/dist/{date-range-inline-HNDLTnYi.cjs.map → date-range-inline-kbokz03Z.cjs.map} +1 -1
  63. package/dist/{date-range-inline-GfLao0NN.js → date-range-inline-l2G48xTX.js} +3 -3
  64. package/dist/{date-range-inline-GfLao0NN.js.map → date-range-inline-l2G48xTX.js.map} +1 -1
  65. package/dist/date-range-inline.cjs +1 -1
  66. package/dist/date-range-inline.js +1 -1
  67. package/dist/{date-range-47SnbVM6.cjs → date-range-xYUr_KKx.cjs} +2 -2
  68. package/dist/{date-range-47SnbVM6.cjs.map → date-range-xYUr_KKx.cjs.map} +1 -1
  69. package/dist/date-range.cjs +1 -1
  70. package/dist/date-range.js +1 -1
  71. package/dist/{delay-Dr3Fr5YB.cjs → delay-CCreUpYu.cjs} +2 -2
  72. package/dist/{delay-Dr3Fr5YB.cjs.map → delay-CCreUpYu.cjs.map} +1 -1
  73. package/dist/{delay-B40l99jW.js → delay-Nu7RVtYd.js} +2 -2
  74. package/dist/{delay-B40l99jW.js.map → delay-Nu7RVtYd.js.map} +1 -1
  75. package/dist/delay.cjs +1 -1
  76. package/dist/delay.js +1 -1
  77. package/dist/details-CjQrqBli.cjs +98 -0
  78. package/dist/details-CjQrqBli.cjs.map +1 -0
  79. package/dist/details-DVIWpEsI.js +137 -0
  80. package/dist/details-DVIWpEsI.js.map +1 -0
  81. package/dist/details.cjs +1 -1
  82. package/dist/details.js +1 -1
  83. package/dist/{dialog-content-B_amCfq7.js → dialog-content-BgxKi73O.js} +3 -3
  84. package/dist/{dialog-content-B_amCfq7.js.map → dialog-content-BgxKi73O.js.map} +1 -1
  85. package/dist/{dialog-content-Emd7BLQA.cjs → dialog-content-CM3-RXQQ.cjs} +2 -2
  86. package/dist/{dialog-content-Emd7BLQA.cjs.map → dialog-content-CM3-RXQQ.cjs.map} +1 -1
  87. package/dist/dialog.cjs +1 -1
  88. package/dist/dialog.js +1 -1
  89. package/dist/directives.cjs +1 -1
  90. package/dist/directives.js +10 -6
  91. package/dist/divider-0yHQS8kR.cjs +58 -0
  92. package/dist/divider-0yHQS8kR.cjs.map +1 -0
  93. package/dist/divider-CqyzFfn1.js +84 -0
  94. package/dist/divider-CqyzFfn1.js.map +1 -0
  95. package/dist/divider.cjs +1 -1
  96. package/dist/divider.js +1 -1
  97. package/dist/{dropdown-content-BpJq8Q1u.cjs → dropdown-content-BmHQE5-P.cjs} +2 -2
  98. package/dist/{dropdown-content-BpJq8Q1u.cjs.map → dropdown-content-BmHQE5-P.cjs.map} +1 -1
  99. package/dist/{dropdown-content-Bw9jnfCR.js → dropdown-content-iFlLupVo.js} +3 -3
  100. package/dist/{dropdown-content-Bw9jnfCR.js.map → dropdown-content-iFlLupVo.js.map} +1 -1
  101. package/dist/dropdown.cjs +1 -1
  102. package/dist/dropdown.js +1 -1
  103. package/dist/{email-recipients-Bxvu6zi9.cjs → email-recipients-Cioc3U0Z.cjs} +2 -2
  104. package/dist/{email-recipients-Bxvu6zi9.cjs.map → email-recipients-Cioc3U0Z.cjs.map} +1 -1
  105. package/dist/{email-recipients-DZGMhyg4.js → email-recipients-CmAEJDMC.js} +6 -6
  106. package/dist/{email-recipients-DZGMhyg4.js.map → email-recipients-CmAEJDMC.js.map} +1 -1
  107. package/dist/extra.cjs +1 -1
  108. package/dist/extra.js +1 -1
  109. package/dist/{flex-DakK9gco.cjs → flex-BEB1yuMF.cjs} +2 -2
  110. package/dist/{flex-DakK9gco.cjs.map → flex-BEB1yuMF.cjs.map} +1 -1
  111. package/dist/{flex-DUgMxT_9.js → flex-BgcbHlPo.js} +2 -2
  112. package/dist/{flex-DUgMxT_9.js.map → flex-BgcbHlPo.js.map} +1 -1
  113. package/dist/{form-yZ1fh3h9.js → form-CxrvY530.js} +2 -2
  114. package/dist/{form-yZ1fh3h9.js.map → form-CxrvY530.js.map} +1 -1
  115. package/dist/{form-CPmMvWvE.cjs → form-DFDTspmH.cjs} +2 -2
  116. package/dist/{form-CPmMvWvE.cjs.map → form-DFDTspmH.cjs.map} +1 -1
  117. package/dist/form.cjs +1 -1
  118. package/dist/form.js +1 -1
  119. package/dist/{formField.mixin-D51klHq7.cjs → formField.mixin-C7H5DaEl.cjs} +2 -2
  120. package/dist/{formField.mixin-D51klHq7.cjs.map → formField.mixin-C7H5DaEl.cjs.map} +1 -1
  121. package/dist/{formField.mixin-Cmb9YpmX.js → formField.mixin-hZ2qP4iG.js} +2 -2
  122. package/dist/{formField.mixin-Cmb9YpmX.js.map → formField.mixin-hZ2qP4iG.js.map} +1 -1
  123. package/dist/{icon-DHT8YsE3.js → icon-D0FAI5uJ.js} +2 -2
  124. package/dist/{icon-DHT8YsE3.js.map → icon-D0FAI5uJ.js.map} +1 -1
  125. package/dist/{icon-Dsa_BddL.cjs → icon-DJnGMAQ2.cjs} +2 -2
  126. package/dist/{icon-Dsa_BddL.cjs.map → icon-DJnGMAQ2.cjs.map} +1 -1
  127. package/dist/{icon-button-BRcfLsJL.cjs → icon-button-CSZtSmOy.cjs} +8 -8
  128. package/dist/icon-button-CSZtSmOy.cjs.map +1 -0
  129. package/dist/{icon-button-PpRHFLCj.js → icon-button-CbgQp3AL.js} +19 -19
  130. package/dist/icon-button-CbgQp3AL.js.map +1 -0
  131. package/dist/icons.cjs +1 -1
  132. package/dist/icons.js +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.js +196 -192
  135. package/dist/{input-CYGSlByl.js → input-DLnKAj3B.js} +4 -4
  136. package/dist/{input-CYGSlByl.js.map → input-DLnKAj3B.js.map} +1 -1
  137. package/dist/{input-chip-CKYO8Lww.cjs → input-chip-C3EPsHcP.cjs} +2 -2
  138. package/dist/{input-chip-CKYO8Lww.cjs.map → input-chip-C3EPsHcP.cjs.map} +1 -1
  139. package/dist/{input-chip-CTKPIRVA.js → input-chip-dmqYCExV.js} +2 -2
  140. package/dist/{input-chip-CTKPIRVA.js.map → input-chip-dmqYCExV.js.map} +1 -1
  141. package/dist/input-wZ6ORWru.cjs +51 -0
  142. package/dist/{input-DB269a2X.cjs.map → input-wZ6ORWru.cjs.map} +1 -1
  143. package/dist/input.cjs +1 -1
  144. package/dist/input.js +1 -1
  145. package/dist/layout.cjs +1 -1
  146. package/dist/layout.js +1 -1
  147. package/dist/{list-BbzeVuby.js → list-BegNkhOn.js} +2 -2
  148. package/dist/{list-BbzeVuby.js.map → list-BegNkhOn.js.map} +1 -1
  149. package/dist/{list-BQVTFNkq.cjs → list-CLKiZ6lk.cjs} +2 -2
  150. package/dist/{list-BQVTFNkq.cjs.map → list-CLKiZ6lk.cjs.map} +1 -1
  151. package/dist/list.cjs +1 -1
  152. package/dist/list.js +1 -1
  153. package/dist/{litElement.mixin-DzCpXwcY.cjs → litElement.mixin-CPQYJnK_.cjs} +2 -2
  154. package/dist/{litElement.mixin-DzCpXwcY.cjs.map → litElement.mixin-CPQYJnK_.cjs.map} +1 -1
  155. package/dist/{litElement.mixin-BzbZQbxa.js → litElement.mixin-DWDPaNoc.js} +2 -2
  156. package/dist/{litElement.mixin-BzbZQbxa.js.map → litElement.mixin-DWDPaNoc.js.map} +1 -1
  157. package/dist/mailbox.cjs +1 -1
  158. package/dist/mailbox.js +1 -1
  159. package/dist/{map-CgwU5Px4.js → map-CUKZ6LrR.js} +2 -2
  160. package/dist/{map-CgwU5Px4.js.map → map-CUKZ6LrR.js.map} +1 -1
  161. package/dist/{map-DuTFI2lm.cjs → map-w4Kdtycx.cjs} +2 -2
  162. package/dist/{map-DuTFI2lm.cjs.map → map-w4Kdtycx.cjs.map} +1 -1
  163. package/dist/map.cjs +1 -1
  164. package/dist/map.js +1 -1
  165. package/dist/{media-BnktmFRW.js → media-CjdCchz8.js} +2 -2
  166. package/dist/{media-BnktmFRW.js.map → media-CjdCchz8.js.map} +1 -1
  167. package/dist/{media-gtpSHRFx.cjs → media-DDNmuoV0.cjs} +2 -2
  168. package/dist/{media-gtpSHRFx.cjs.map → media-DDNmuoV0.cjs.map} +1 -1
  169. package/dist/menu-D9-9vipn.cjs +26 -0
  170. package/dist/menu-D9-9vipn.cjs.map +1 -0
  171. package/dist/menu-ofiPDY2a.js +61 -0
  172. package/dist/menu-ofiPDY2a.js.map +1 -0
  173. package/dist/menu.cjs +1 -1
  174. package/dist/menu.js +1 -1
  175. package/dist/mixins.cjs +1 -1
  176. package/dist/mixins.js +3 -3
  177. package/dist/nav-drawer.cjs +1 -1
  178. package/dist/nav-drawer.js +1 -1
  179. package/dist/navigation-bar.cjs +1 -1
  180. package/dist/navigation-bar.js +1 -1
  181. package/dist/{navigation-rail-D8otIR2P.cjs → navigation-rail-CEDLJTrH.cjs} +2 -2
  182. package/dist/{navigation-rail-D8otIR2P.cjs.map → navigation-rail-CEDLJTrH.cjs.map} +1 -1
  183. package/dist/{navigation-rail-CUMNSz0h.js → navigation-rail-weSW6BCv.js} +3 -3
  184. package/dist/{navigation-rail-CUMNSz0h.js.map → navigation-rail-weSW6BCv.js.map} +1 -1
  185. package/dist/navigation-rail.cjs +1 -1
  186. package/dist/navigation-rail.js +1 -1
  187. package/dist/{notification-service-E16lPsiT.js → notification-service-B4nvP2Jc.js} +5 -5
  188. package/dist/{notification-service-E16lPsiT.js.map → notification-service-B4nvP2Jc.js.map} +1 -1
  189. package/dist/{notification-service-CP6kGXVL.cjs → notification-service-B_pa74hl.cjs} +2 -2
  190. package/dist/{notification-service-CP6kGXVL.cjs.map → notification-service-B_pa74hl.cjs.map} +1 -1
  191. package/dist/notification.cjs +1 -1
  192. package/dist/notification.js +2 -2
  193. package/dist/{notify-D865xIlu.js → notify-Ci0HrUIo.js} +2 -2
  194. package/dist/{notify-D865xIlu.js.map → notify-Ci0HrUIo.js.map} +1 -1
  195. package/dist/{notify-Czdp7BbG.cjs → notify-aasSKQGA.cjs} +2 -2
  196. package/dist/{notify-Czdp7BbG.cjs.map → notify-aasSKQGA.cjs.map} +1 -1
  197. package/dist/{option-cJ8fM5qJ.js → option-Cs4e3CzF.js} +2 -2
  198. package/dist/{option-cJ8fM5qJ.js.map → option-Cs4e3CzF.js.map} +1 -1
  199. package/dist/{option-B1r0hb3H.cjs → option-Uze_q9Ef.cjs} +2 -2
  200. package/dist/{option-B1r0hb3H.cjs.map → option-Uze_q9Ef.cjs.map} +1 -1
  201. package/dist/option.cjs +1 -1
  202. package/dist/option.js +1 -1
  203. package/dist/{payment-card-form-RBjpMc2m.js → payment-card-form-BLoUTYiB.js} +3 -3
  204. package/dist/{payment-card-form-RBjpMc2m.js.map → payment-card-form-BLoUTYiB.js.map} +1 -1
  205. package/dist/{payment-card-form-EO3auDS8.cjs → payment-card-form-rJCPUtWE.cjs} +2 -2
  206. package/dist/{payment-card-form-EO3auDS8.cjs.map → payment-card-form-rJCPUtWE.cjs.map} +1 -1
  207. package/dist/{progress-4v9FzvOT.js → progress-B1f3y-Mf.js} +2 -2
  208. package/dist/{progress-4v9FzvOT.js.map → progress-B1f3y-Mf.js.map} +1 -1
  209. package/dist/{progress-DnhvJMz_.cjs → progress-DdBHNIMT.cjs} +2 -2
  210. package/dist/{progress-DnhvJMz_.cjs.map → progress-DdBHNIMT.cjs.map} +1 -1
  211. package/dist/progress.cjs +1 -1
  212. package/dist/progress.js +1 -1
  213. package/dist/{radio-button-BVegeFKE.cjs → radio-button-BAS7gKmA.cjs} +2 -2
  214. package/dist/{radio-button-BVegeFKE.cjs.map → radio-button-BAS7gKmA.cjs.map} +1 -1
  215. package/dist/{radio-button-DDavzgCz.js → radio-button-CaDaw5VH.js} +3 -3
  216. package/dist/{radio-button-DDavzgCz.js.map → radio-button-CaDaw5VH.js.map} +1 -1
  217. package/dist/radio-group.cjs +1 -1
  218. package/dist/radio-group.js +1 -1
  219. package/dist/ripple-QoNZUUw_.js +148 -0
  220. package/dist/ripple-QoNZUUw_.js.map +1 -0
  221. package/dist/ripple-Ujq_REH4.cjs +16 -0
  222. package/dist/ripple-Ujq_REH4.cjs.map +1 -0
  223. package/dist/{schmancy-steps-container-DN9c-HeX.js → schmancy-steps-container-BInNput3.js} +2 -2
  224. package/dist/{schmancy-steps-container-DN9c-HeX.js.map → schmancy-steps-container-BInNput3.js.map} +1 -1
  225. package/dist/{schmancy-steps-container-s6kZWhcr.cjs → schmancy-steps-container-wQsksygx.cjs} +2 -2
  226. package/dist/{schmancy-steps-container-s6kZWhcr.cjs.map → schmancy-steps-container-wQsksygx.cjs.map} +1 -1
  227. package/dist/search-B1s7thB0.cjs +2 -0
  228. package/dist/search-B1s7thB0.cjs.map +1 -0
  229. package/dist/search-DxxnLa5u.js +95 -0
  230. package/dist/search-DxxnLa5u.js.map +1 -0
  231. package/dist/{select--D6l5ru7.js → select-ApLZefMf.js} +4 -4
  232. package/dist/{select--D6l5ru7.js.map → select-ApLZefMf.js.map} +1 -1
  233. package/dist/{select-DVT_kFNR.cjs → select-_2Ag_znm.cjs} +2 -2
  234. package/dist/{select-DVT_kFNR.cjs.map → select-_2Ag_znm.cjs.map} +1 -1
  235. package/dist/select.cjs +1 -1
  236. package/dist/select.js +1 -1
  237. package/dist/selector-hook-Cok22ifx.cjs +2 -0
  238. package/dist/selector-hook-Cok22ifx.cjs.map +1 -0
  239. package/dist/selector-hook-l2fe2UO5.js +319 -0
  240. package/dist/selector-hook-l2fe2UO5.js.map +1 -0
  241. package/dist/{sheet-CNn_huhz.js → sheet-DovyNsok.js} +14 -14
  242. package/dist/sheet-DovyNsok.js.map +1 -0
  243. package/dist/{sheet-Bza5jVS2.cjs → sheet-wjDOQ8Hs.cjs} +4 -4
  244. package/dist/sheet-wjDOQ8Hs.cjs.map +1 -0
  245. package/dist/sheet.cjs +1 -1
  246. package/dist/sheet.js +2 -2
  247. package/dist/{sheet.service-CmNDL4f6.js → sheet.service-BvOiOFMm.js} +2 -2
  248. package/dist/{sheet.service-CmNDL4f6.js.map → sheet.service-BvOiOFMm.js.map} +1 -1
  249. package/dist/{sheet.service--zUgftN3.cjs → sheet.service-DfHrOxyc.cjs} +2 -2
  250. package/dist/{sheet.service--zUgftN3.cjs.map → sheet.service-DfHrOxyc.cjs.map} +1 -1
  251. package/dist/{slider-Cf0pED-U.cjs → slider-BgJccHrg.cjs} +2 -2
  252. package/dist/{slider-Cf0pED-U.cjs.map → slider-BgJccHrg.cjs.map} +1 -1
  253. package/dist/{slider-DPxBmmFD.js → slider-CeVgx4pL.js} +3 -3
  254. package/dist/{slider-DPxBmmFD.js.map → slider-CeVgx4pL.js.map} +1 -1
  255. package/dist/slider.cjs +1 -1
  256. package/dist/slider.js +1 -1
  257. package/dist/{spinner-BDSDxr_W.cjs → spinner-BKeA2bdB.cjs} +3 -3
  258. package/dist/spinner-BKeA2bdB.cjs.map +1 -0
  259. package/dist/{spinner-Dyz6HBFa.js → spinner-Brq1TenP.js} +3 -3
  260. package/dist/spinner-Brq1TenP.js.map +1 -0
  261. package/dist/steps.cjs +1 -1
  262. package/dist/steps.js +1 -1
  263. package/dist/store.cjs +1 -1
  264. package/dist/store.js +1 -1
  265. package/dist/{suggestion-chip-CCW8g_3S.js → suggestion-chip-CWBSzu7C.js} +3 -3
  266. package/dist/{suggestion-chip-CCW8g_3S.js.map → suggestion-chip-CWBSzu7C.js.map} +1 -1
  267. package/dist/{suggestion-chip-B7COqb4l.cjs → suggestion-chip-dq20NKWy.cjs} +2 -2
  268. package/dist/{suggestion-chip-B7COqb4l.cjs.map → suggestion-chip-dq20NKWy.cjs.map} +1 -1
  269. package/dist/{surface-B4CxtF38.js → surface-Bf8pvmdG.js} +34 -10
  270. package/dist/{surface-B4CxtF38.js.map → surface-Bf8pvmdG.js.map} +1 -1
  271. package/dist/{surface-CkzbeSYN.cjs → surface-fEPJ-cuu.cjs} +27 -3
  272. package/dist/{surface-CkzbeSYN.cjs.map → surface-fEPJ-cuu.cjs.map} +1 -1
  273. package/dist/surface.cjs +1 -1
  274. package/dist/surface.js +1 -1
  275. package/dist/{table-D-g4ZBys.cjs → table-DEnB9_Rf.cjs} +4 -3
  276. package/dist/{table-D-g4ZBys.cjs.map → table-DEnB9_Rf.cjs.map} +1 -1
  277. package/dist/{table-KPNVMJtn.js → table-MLd3oXm6.js} +14 -10
  278. package/dist/{table-KPNVMJtn.js.map → table-MLd3oXm6.js.map} +1 -1
  279. package/dist/table.cjs +1 -1
  280. package/dist/table.js +1 -1
  281. package/dist/{tabs-compatibility-sMoQP12I.cjs → tabs-compatibility-CXVHOR5X.cjs} +2 -2
  282. package/dist/{tabs-compatibility-sMoQP12I.cjs.map → tabs-compatibility-CXVHOR5X.cjs.map} +1 -1
  283. package/dist/{tabs-compatibility-xUK4vD1M.js → tabs-compatibility-KWKzYolX.js} +2 -2
  284. package/dist/{tabs-compatibility-xUK4vD1M.js.map → tabs-compatibility-KWKzYolX.js.map} +1 -1
  285. package/dist/tabs.cjs +1 -1
  286. package/dist/tabs.js +1 -1
  287. package/dist/tailwind.mixin-3TPVvhYf.cjs +2 -0
  288. package/dist/{tailwind.mixin-scDxsqaX.cjs.map → tailwind.mixin-3TPVvhYf.cjs.map} +1 -1
  289. package/dist/tailwind.mixin-DIW0B_of.js +67 -0
  290. package/dist/{tailwind.mixin-xIIxrXd8.js.map → tailwind.mixin-DIW0B_of.js.map} +1 -1
  291. package/dist/teleport.cjs +1 -1
  292. package/dist/teleport.js +1 -1
  293. package/dist/{textarea-BSBYVs99.cjs → textarea-B7arkA7y.cjs} +2 -2
  294. package/dist/{textarea-BSBYVs99.cjs.map → textarea-B7arkA7y.cjs.map} +1 -1
  295. package/dist/{textarea-CFrirT5y.js → textarea-BK1m_CFR.js} +3 -3
  296. package/dist/{textarea-CFrirT5y.js.map → textarea-BK1m_CFR.js.map} +1 -1
  297. package/dist/textarea.cjs +1 -1
  298. package/dist/textarea.js +1 -1
  299. package/dist/{theme-button-B8Xqrz1M.cjs → theme-button-BTKwL3oC.cjs} +2 -2
  300. package/dist/{theme-button-B8Xqrz1M.cjs.map → theme-button-BTKwL3oC.cjs.map} +1 -1
  301. package/dist/{theme-button-D-LTPh88.js → theme-button-C6kk8bay.js} +2 -2
  302. package/dist/{theme-button-D-LTPh88.js.map → theme-button-C6kk8bay.js.map} +1 -1
  303. package/dist/theme-button.cjs +1 -1
  304. package/dist/theme-button.js +1 -1
  305. package/dist/{theme-controller-boat-BOddzVdU.js → theme-controller-boat-BK59LqH9.js} +3 -3
  306. package/dist/{theme-controller-boat-BOddzVdU.js.map → theme-controller-boat-BK59LqH9.js.map} +1 -1
  307. package/dist/{theme-controller-boat-C2F-qRyu.cjs → theme-controller-boat-Y5QXwJxW.cjs} +2 -2
  308. package/dist/{theme-controller-boat-C2F-qRyu.cjs.map → theme-controller-boat-Y5QXwJxW.cjs.map} +1 -1
  309. package/dist/theme.cjs +1 -1
  310. package/dist/theme.js +1 -1
  311. package/dist/{timezone-BvOWa9Nt.js → timezone-D_skWX6Z.js} +3 -3
  312. package/dist/{timezone-BvOWa9Nt.js.map → timezone-D_skWX6Z.js.map} +1 -1
  313. package/dist/{timezone-xHmnktrm.cjs → timezone-nbn0o5GC.cjs} +2 -2
  314. package/dist/{timezone-xHmnktrm.cjs.map → timezone-nbn0o5GC.cjs.map} +1 -1
  315. package/dist/{tooltip-D3ZZJEAk.js → tooltip-Btl0IKYC.js} +2 -2
  316. package/dist/{tooltip-D3ZZJEAk.js.map → tooltip-Btl0IKYC.js.map} +1 -1
  317. package/dist/{tooltip-D24v5bvM.cjs → tooltip-DyuMJEjL.cjs} +2 -2
  318. package/dist/{tooltip-D24v5bvM.cjs.map → tooltip-DyuMJEjL.cjs.map} +1 -1
  319. package/dist/tooltip.cjs +1 -1
  320. package/dist/tooltip.js +1 -1
  321. package/dist/{tree-CfVyhRIH.js → tree-B_2eIFQi.js} +2 -2
  322. package/dist/{tree-CfVyhRIH.js.map → tree-B_2eIFQi.js.map} +1 -1
  323. package/dist/{tree-DC_jbDRu.cjs → tree-N4Y6MoQe.cjs} +2 -2
  324. package/dist/{tree-DC_jbDRu.cjs.map → tree-N4Y6MoQe.cjs.map} +1 -1
  325. package/dist/tree.cjs +1 -1
  326. package/dist/tree.js +1 -1
  327. package/dist/{typewriter-By-3T0Jm.js → typewriter-Blyrk_4c.js} +247 -118
  328. package/dist/typewriter-Blyrk_4c.js.map +1 -0
  329. package/dist/typewriter-CFQAeOaw.cjs +124 -0
  330. package/dist/typewriter-CFQAeOaw.cjs.map +1 -0
  331. package/dist/typewriter.cjs +1 -1
  332. package/dist/typewriter.js +1 -1
  333. package/dist/{typography-B7kvO8iJ.js → typography-DjGWK58I.js} +2 -2
  334. package/dist/{typography-B7kvO8iJ.js.map → typography-DjGWK58I.js.map} +1 -1
  335. package/dist/{typography-9lVCjAbj.cjs → typography-DsIU0TGe.cjs} +2 -2
  336. package/dist/{typography-9lVCjAbj.cjs.map → typography-DsIU0TGe.cjs.map} +1 -1
  337. package/dist/typography.cjs +1 -1
  338. package/dist/typography.js +1 -1
  339. package/dist/utils.cjs +1 -1
  340. package/dist/utils.js +1 -1
  341. package/package.json +1 -1
  342. package/types/src/area/router.types.d.ts +1 -0
  343. package/types/src/boat/boat.d.ts +0 -1
  344. package/types/src/button/button.d.ts +8 -0
  345. package/types/src/details/details.d.ts +3 -11
  346. package/types/src/directives/drag.d.ts +30 -0
  347. package/types/src/directives/index.d.ts +1 -0
  348. package/types/src/divider/divider.d.ts +6 -1
  349. package/types/src/menu/menu-item.d.ts +0 -1
  350. package/types/src/store/filter-directive.d.ts +1 -1
  351. package/types/src/surface/surface.d.ts +2 -1
  352. package/types/src/types/surface.d.ts +1 -1
  353. package/types/src/typewriter/typewriter.d.ts +15 -0
  354. package/types/src/utils/index.d.ts +4 -4
  355. package/types/src/utils/search.d.ts +39 -1
  356. package/dist/area.component-BojFAcRk.cjs.map +0 -1
  357. package/dist/area.component-C_nUxyiY.js.map +0 -1
  358. package/dist/boat-B7AKN6Ge.js +0 -276
  359. package/dist/boat-B7AKN6Ge.js.map +0 -1
  360. package/dist/boat-BhAuteUk.cjs +0 -93
  361. package/dist/boat-BhAuteUk.cjs.map +0 -1
  362. package/dist/details-CQPpI_la.js +0 -211
  363. package/dist/details-CQPpI_la.js.map +0 -1
  364. package/dist/details-DydvHvfw.cjs +0 -143
  365. package/dist/details-DydvHvfw.cjs.map +0 -1
  366. package/dist/divider-BF9xljgI.cjs +0 -2
  367. package/dist/divider-BF9xljgI.cjs.map +0 -1
  368. package/dist/divider-BHruVdsE.js +0 -23
  369. package/dist/divider-BHruVdsE.js.map +0 -1
  370. package/dist/icon-button-BRcfLsJL.cjs.map +0 -1
  371. package/dist/icon-button-PpRHFLCj.js.map +0 -1
  372. package/dist/input-DB269a2X.cjs +0 -51
  373. package/dist/menu-DA2pO48m.cjs +0 -26
  374. package/dist/menu-DA2pO48m.cjs.map +0 -1
  375. package/dist/menu-DwFriXTu.js +0 -63
  376. package/dist/menu-DwFriXTu.js.map +0 -1
  377. package/dist/ripple-Cy-nvO8W.js +0 -80
  378. package/dist/ripple-Cy-nvO8W.js.map +0 -1
  379. package/dist/ripple-DqQrvaTe.cjs +0 -16
  380. package/dist/ripple-DqQrvaTe.cjs.map +0 -1
  381. package/dist/search-BeEqIiuO.js +0 -53
  382. package/dist/search-BeEqIiuO.js.map +0 -1
  383. package/dist/search-bfOHCuHZ.cjs +0 -2
  384. package/dist/search-bfOHCuHZ.cjs.map +0 -1
  385. package/dist/selector-hook-BG6g_IEN.cjs +0 -2
  386. package/dist/selector-hook-BG6g_IEN.cjs.map +0 -1
  387. package/dist/selector-hook-CrwQCPxL.js +0 -313
  388. package/dist/selector-hook-CrwQCPxL.js.map +0 -1
  389. package/dist/sheet-Bza5jVS2.cjs.map +0 -1
  390. package/dist/sheet-CNn_huhz.js.map +0 -1
  391. package/dist/spinner-BDSDxr_W.cjs.map +0 -1
  392. package/dist/spinner-Dyz6HBFa.js.map +0 -1
  393. package/dist/tailwind.mixin-scDxsqaX.cjs +0 -2
  394. package/dist/tailwind.mixin-xIIxrXd8.js +0 -67
  395. package/dist/typewriter-By-3T0Jm.js.map +0 -1
  396. package/dist/typewriter-vit0P1N1.cjs +0 -9
  397. package/dist/typewriter-vit0P1N1.cjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";const r=require("lit/decorators.js"),p=require("./tailwind.mixin-scDxsqaX.cjs");var h=Object.defineProperty,i=(s,e,a,d)=>{for(var t,o=void 0,l=s.length-1;l>=0;l--)(t=s[l])&&(o=t(e,a,o)||o);return o&&h(e,a,o),o};function n(s){const a=class a extends s{constructor(...t){super(...t),this.name="",this.value="",this.label="",this.required=!1,this.disabled=!1,this.readonly=!1,this.error=!1,this.validationMessage="",this.id=`schmancy-field-${Date.now()}-${Math.floor(1e3*Math.random())}`;try{this.internals=this.attachInternals()}catch{this.internals=void 0}}get form(){return this.internals?.form??null}willUpdate(t){super.willUpdate(t),t.has("value")&&this.internals?.setFormValue(this.value),(t.has("error")||t.has("validationMessage"))&&(this.error&&this.validationMessage?this.internals?.setValidity({customError:!0},this.validationMessage):this.internals?.setValidity({}))}checkValidity(){return!!this.disabled||!this.required||this.value!==""&&this.value!==void 0&&this.value!==null||(this.error=!0,this.validationMessage="This field is required",!1)}reportValidity(){const t=this.checkValidity();return t||this.internals?.reportValidity(),t}setCustomValidity(t){this.validationMessage=t,this.error=t!=="",t?this.internals?.setValidity({customError:!0},t):this.internals?.setValidity({})}emitChange(t){this.dispatchEvent(new CustomEvent("change",{detail:t,bubbles:!0,composed:!0}))}};a.formAssociated=!0;let e=a;return i([r.property({type:String})],e.prototype,"name"),i([r.property({reflect:!0})],e.prototype,"value"),i([r.property({type:String})],e.prototype,"label"),i([r.property({type:Boolean,reflect:!0})],e.prototype,"required"),i([r.property({type:Boolean,reflect:!0})],e.prototype,"disabled"),i([r.property({type:Boolean,reflect:!0})],e.prototype,"readonly"),i([r.property({type:Boolean,reflect:!0})],e.prototype,"error"),i([r.property({type:String})],e.prototype,"validationMessage"),i([r.property({type:String})],e.prototype,"hint"),i([r.property({reflect:!0})],e.prototype,"id"),e}exports.FormFieldMixin=n,exports.SchmancyFormField=function(s){return n(p.TailwindElement(s))};
2
- //# sourceMappingURL=formField.mixin-D51klHq7.cjs.map
1
+ "use strict";const r=require("lit/decorators.js"),p=require("./tailwind.mixin-3TPVvhYf.cjs");var h=Object.defineProperty,i=(s,e,a,d)=>{for(var t,o=void 0,l=s.length-1;l>=0;l--)(t=s[l])&&(o=t(e,a,o)||o);return o&&h(e,a,o),o};function n(s){const a=class a extends s{constructor(...t){super(...t),this.name="",this.value="",this.label="",this.required=!1,this.disabled=!1,this.readonly=!1,this.error=!1,this.validationMessage="",this.id=`schmancy-field-${Date.now()}-${Math.floor(1e3*Math.random())}`;try{this.internals=this.attachInternals()}catch{this.internals=void 0}}get form(){return this.internals?.form??null}willUpdate(t){super.willUpdate(t),t.has("value")&&this.internals?.setFormValue(this.value),(t.has("error")||t.has("validationMessage"))&&(this.error&&this.validationMessage?this.internals?.setValidity({customError:!0},this.validationMessage):this.internals?.setValidity({}))}checkValidity(){return!!this.disabled||!this.required||this.value!==""&&this.value!==void 0&&this.value!==null||(this.error=!0,this.validationMessage="This field is required",!1)}reportValidity(){const t=this.checkValidity();return t||this.internals?.reportValidity(),t}setCustomValidity(t){this.validationMessage=t,this.error=t!=="",t?this.internals?.setValidity({customError:!0},t):this.internals?.setValidity({})}emitChange(t){this.dispatchEvent(new CustomEvent("change",{detail:t,bubbles:!0,composed:!0}))}};a.formAssociated=!0;let e=a;return i([r.property({type:String})],e.prototype,"name"),i([r.property({reflect:!0})],e.prototype,"value"),i([r.property({type:String})],e.prototype,"label"),i([r.property({type:Boolean,reflect:!0})],e.prototype,"required"),i([r.property({type:Boolean,reflect:!0})],e.prototype,"disabled"),i([r.property({type:Boolean,reflect:!0})],e.prototype,"readonly"),i([r.property({type:Boolean,reflect:!0})],e.prototype,"error"),i([r.property({type:String})],e.prototype,"validationMessage"),i([r.property({type:String})],e.prototype,"hint"),i([r.property({reflect:!0})],e.prototype,"id"),e}exports.FormFieldMixin=n,exports.SchmancyFormField=function(s){return n(p.TailwindElement(s))};
2
+ //# sourceMappingURL=formField.mixin-C7H5DaEl.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formField.mixin-D51klHq7.cjs","sources":["../mixins/formField.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement, PropertyValueMap } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\nimport { ITailwindElementMixin, TailwindElement } from './tailwind.mixin'\n\n/**\n * Interface defining the properties and methods that the FormFieldMixin adds.\n */\nexport interface IFormFieldMixin extends Element {\n\t// Properties\n\tname: string\n\tvalue: string | string[] | boolean | number | undefined\n\tlabel: string\n\trequired: boolean\n\tdisabled: boolean\n\treadonly: boolean\n\terror: boolean\n\tvalidationMessage: string\n\thint?: string\n\tid: string\n\n\t// Form association\n\tform: HTMLFormElement | null\n\n\t// Methods\n\tcheckValidity(): boolean\n\treportValidity(): boolean\n\tsetCustomValidity(message: string): void\n\n\t// Event emitter helper\n\temitChange(detail: any): void\n}\n\n/**\n * A mixin that adds form field capabilities to a LitElement class.\n * This provides common form field properties, validation, and form association.\n *\n * @example\n * ```ts\n * class MyInput extends FormFieldMixin(TailwindElement(css`...`)) {\n * // Your component code here\n * }\n * ```\n */\nexport function FormFieldMixin<T extends Constructor<LitElement>>(superClass: T) {\n\tclass FormFieldMixinClass extends superClass {\n\t\tstatic formAssociated = true\n\n\t\t// Element internals for form association\n\t\tprivate internals: ElementInternals | undefined\n\n\t\t// Properties common to form fields\n\t\t/**\n\t\t * The name of the form field (used for form submission)\n\t\t */\n\t\t@property({ type: String })\n\t\tname: string = ''\n\n\t\t/**\n\t\t * The current value of the form field\n\t\t */\n\t\t@property({ reflect: true })\n\t\tvalue: string | string[] | boolean | number | undefined = ''\n\n\t\t/**\n\t\t * Label text for the form field\n\t\t */\n\t\t@property({ type: String })\n\t\tlabel: string = ''\n\n\t\t/**\n\t\t * Whether the field is required\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\trequired: boolean = false\n\n\t\t/**\n\t\t * Whether the field is disabled\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\tdisabled: boolean = false\n\n\t\t/**\n\t\t * Whether the field is read-only\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\treadonly: boolean = false\n\n\t\t/**\n\t\t * Whether the field is in an error state\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\terror: boolean = false\n\n\t\t/**\n\t\t * The validation message to display\n\t\t */\n\t\t@property({ type: String })\n\t\tvalidationMessage: string = ''\n\n\t\t/**\n\t\t * Optional hint text to display below the field\n\t\t */\n\t\t@property({ type: String })\n\t\thint?: string\n\n\t\t/**\n\t\t * Unique identifier for the field\n\t\t */\n\t\t@property({ reflect: true })\n\t\toverride id: string = `schmancy-field-${Date.now()}-${Math.floor(Math.random() * 1000)}`\n\n\t\tconstructor(...args: any[]) {\n\t\t\tsuper(...args)\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Gets the form this element is associated with\n\t\t */\n\t\tget form(): HTMLFormElement | null {\n\t\t\treturn this.internals?.form ?? null\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle method called when properties change\n\t\t */\n\t\tprotected willUpdate(changedProps: PropertyValueMap<any>): void {\n\t\t\tsuper.willUpdate(changedProps)\n\n\t\t\t// Update form value when value changes\n\t\t\tif (changedProps.has('value')) {\n\t\t\t\tthis.internals?.setFormValue(this.value as string | File | FormData | null)\n\t\t\t}\n\n\t\t\t// Update validation state when error or validation message changes\n\t\t\tif (changedProps.has('error') || changedProps.has('validationMessage')) {\n\t\t\t\tif (this.error && this.validationMessage) {\n\t\t\t\t\tthis.internals?.setValidity({ customError: true }, this.validationMessage)\n\t\t\t\t} else {\n\t\t\t\t\tthis.internals?.setValidity({})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Checks if the field is valid without showing validation UI\n\t\t */\n\t\tcheckValidity(): boolean {\n\t\t\tif (this.disabled) return true\n\n\t\t\tif (this.required && (this.value === '' || this.value === undefined || this.value === null)) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = 'This field is required'\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * Reports validity and shows validation UI if invalid\n\t\t */\n\t\treportValidity(): boolean {\n\t\t\tconst isValid = this.checkValidity()\n\t\t\tif (!isValid) {\n\t\t\t\tthis.internals?.reportValidity()\n\t\t\t}\n\t\t\treturn isValid\n\t\t}\n\n\t\t/**\n\t\t * Sets a custom validation message\n\t\t */\n\t\tsetCustomValidity(message: string): void {\n\t\t\tthis.validationMessage = message\n\t\t\tthis.error = message !== ''\n\t\t\tif (message) {\n\t\t\t\tthis.internals?.setValidity({ customError: true }, message)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Helper method to emit change events\n\t\t */\n\t\temitChange(detail: any): void {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\treturn FormFieldMixinClass as Constructor<IFormFieldMixin> & T\n}\n\n/**\n * A convenience function that composes FormFieldMixin with TailwindElement\n * to create a base class for Schmancy form components.\n *\n * @example\n * ```ts\n * class MyInput extends SchmancyFormField(css`...`) {\n * // Your component code here\n * }\n * ```\n */\nexport function SchmancyFormField<T extends CSSResult>(componentStyle?: T) {\n\treturn FormFieldMixin(TailwindElement(componentStyle)) as Constructor<IFormFieldMixin> &\n\t\tConstructor<ITailwindElementMixin> &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin>\n}\n"],"names":["FormFieldMixin","superClass","FormFieldMixinClass","args","super","this","name","value","label","required","disabled","readonly","error","validationMessage","id","Date","now","Math","floor","random","internals","attachInternals","form","changedProps","willUpdate","has","setFormValue","setValidity","customError","checkValidity","isValid","reportValidity","message","detail","dispatchEvent","CustomEvent","bubbles","composed","formAssociated","_i","__decorateClass","property","type","String","prototype","reflect","Boolean","componentStyle","TailwindElement"],"mappings":"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"}
1
+ {"version":3,"file":"formField.mixin-C7H5DaEl.cjs","sources":["../mixins/formField.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement, PropertyValueMap } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\nimport { ITailwindElementMixin, TailwindElement } from './tailwind.mixin'\n\n/**\n * Interface defining the properties and methods that the FormFieldMixin adds.\n */\nexport interface IFormFieldMixin extends Element {\n\t// Properties\n\tname: string\n\tvalue: string | string[] | boolean | number | undefined\n\tlabel: string\n\trequired: boolean\n\tdisabled: boolean\n\treadonly: boolean\n\terror: boolean\n\tvalidationMessage: string\n\thint?: string\n\tid: string\n\n\t// Form association\n\tform: HTMLFormElement | null\n\n\t// Methods\n\tcheckValidity(): boolean\n\treportValidity(): boolean\n\tsetCustomValidity(message: string): void\n\n\t// Event emitter helper\n\temitChange(detail: any): void\n}\n\n/**\n * A mixin that adds form field capabilities to a LitElement class.\n * This provides common form field properties, validation, and form association.\n *\n * @example\n * ```ts\n * class MyInput extends FormFieldMixin(TailwindElement(css`...`)) {\n * // Your component code here\n * }\n * ```\n */\nexport function FormFieldMixin<T extends Constructor<LitElement>>(superClass: T) {\n\tclass FormFieldMixinClass extends superClass {\n\t\tstatic formAssociated = true\n\n\t\t// Element internals for form association\n\t\tprivate internals: ElementInternals | undefined\n\n\t\t// Properties common to form fields\n\t\t/**\n\t\t * The name of the form field (used for form submission)\n\t\t */\n\t\t@property({ type: String })\n\t\tname: string = ''\n\n\t\t/**\n\t\t * The current value of the form field\n\t\t */\n\t\t@property({ reflect: true })\n\t\tvalue: string | string[] | boolean | number | undefined = ''\n\n\t\t/**\n\t\t * Label text for the form field\n\t\t */\n\t\t@property({ type: String })\n\t\tlabel: string = ''\n\n\t\t/**\n\t\t * Whether the field is required\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\trequired: boolean = false\n\n\t\t/**\n\t\t * Whether the field is disabled\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\tdisabled: boolean = false\n\n\t\t/**\n\t\t * Whether the field is read-only\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\treadonly: boolean = false\n\n\t\t/**\n\t\t * Whether the field is in an error state\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\terror: boolean = false\n\n\t\t/**\n\t\t * The validation message to display\n\t\t */\n\t\t@property({ type: String })\n\t\tvalidationMessage: string = ''\n\n\t\t/**\n\t\t * Optional hint text to display below the field\n\t\t */\n\t\t@property({ type: String })\n\t\thint?: string\n\n\t\t/**\n\t\t * Unique identifier for the field\n\t\t */\n\t\t@property({ reflect: true })\n\t\toverride id: string = `schmancy-field-${Date.now()}-${Math.floor(Math.random() * 1000)}`\n\n\t\tconstructor(...args: any[]) {\n\t\t\tsuper(...args)\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Gets the form this element is associated with\n\t\t */\n\t\tget form(): HTMLFormElement | null {\n\t\t\treturn this.internals?.form ?? null\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle method called when properties change\n\t\t */\n\t\tprotected willUpdate(changedProps: PropertyValueMap<any>): void {\n\t\t\tsuper.willUpdate(changedProps)\n\n\t\t\t// Update form value when value changes\n\t\t\tif (changedProps.has('value')) {\n\t\t\t\tthis.internals?.setFormValue(this.value as string | File | FormData | null)\n\t\t\t}\n\n\t\t\t// Update validation state when error or validation message changes\n\t\t\tif (changedProps.has('error') || changedProps.has('validationMessage')) {\n\t\t\t\tif (this.error && this.validationMessage) {\n\t\t\t\t\tthis.internals?.setValidity({ customError: true }, this.validationMessage)\n\t\t\t\t} else {\n\t\t\t\t\tthis.internals?.setValidity({})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Checks if the field is valid without showing validation UI\n\t\t */\n\t\tcheckValidity(): boolean {\n\t\t\tif (this.disabled) return true\n\n\t\t\tif (this.required && (this.value === '' || this.value === undefined || this.value === null)) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = 'This field is required'\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * Reports validity and shows validation UI if invalid\n\t\t */\n\t\treportValidity(): boolean {\n\t\t\tconst isValid = this.checkValidity()\n\t\t\tif (!isValid) {\n\t\t\t\tthis.internals?.reportValidity()\n\t\t\t}\n\t\t\treturn isValid\n\t\t}\n\n\t\t/**\n\t\t * Sets a custom validation message\n\t\t */\n\t\tsetCustomValidity(message: string): void {\n\t\t\tthis.validationMessage = message\n\t\t\tthis.error = message !== ''\n\t\t\tif (message) {\n\t\t\t\tthis.internals?.setValidity({ customError: true }, message)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Helper method to emit change events\n\t\t */\n\t\temitChange(detail: any): void {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\treturn FormFieldMixinClass as Constructor<IFormFieldMixin> & T\n}\n\n/**\n * A convenience function that composes FormFieldMixin with TailwindElement\n * to create a base class for Schmancy form components.\n *\n * @example\n * ```ts\n * class MyInput extends SchmancyFormField(css`...`) {\n * // Your component code here\n * }\n * ```\n */\nexport function SchmancyFormField<T extends CSSResult>(componentStyle?: T) {\n\treturn FormFieldMixin(TailwindElement(componentStyle)) as Constructor<IFormFieldMixin> &\n\t\tConstructor<ITailwindElementMixin> &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin>\n}\n"],"names":["FormFieldMixin","superClass","FormFieldMixinClass","args","super","this","name","value","label","required","disabled","readonly","error","validationMessage","id","Date","now","Math","floor","random","internals","attachInternals","form","changedProps","willUpdate","has","setFormValue","setValidity","customError","checkValidity","isValid","reportValidity","message","detail","dispatchEvent","CustomEvent","bubbles","composed","formAssociated","_i","__decorateClass","property","type","String","prototype","reflect","Boolean","componentStyle","TailwindElement"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { property as i } from "lit/decorators.js";
2
- import { T as n } from "./tailwind.mixin-xIIxrXd8.js";
2
+ import { T as n } from "./tailwind.mixin-DIW0B_of.js";
3
3
  var h = Object.defineProperty, r = (s, e, a, p) => {
4
4
  for (var t, o = void 0, l = s.length - 1; l >= 0; l--) (t = s[l]) && (o = t(e, a, o) || o);
5
5
  return o && h(e, a, o), o;
@@ -45,4 +45,4 @@ export {
45
45
  d as F,
46
46
  c as S
47
47
  };
48
- //# sourceMappingURL=formField.mixin-Cmb9YpmX.js.map
48
+ //# sourceMappingURL=formField.mixin-hZ2qP4iG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formField.mixin-Cmb9YpmX.js","sources":["../mixins/formField.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement, PropertyValueMap } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\nimport { ITailwindElementMixin, TailwindElement } from './tailwind.mixin'\n\n/**\n * Interface defining the properties and methods that the FormFieldMixin adds.\n */\nexport interface IFormFieldMixin extends Element {\n\t// Properties\n\tname: string\n\tvalue: string | string[] | boolean | number | undefined\n\tlabel: string\n\trequired: boolean\n\tdisabled: boolean\n\treadonly: boolean\n\terror: boolean\n\tvalidationMessage: string\n\thint?: string\n\tid: string\n\n\t// Form association\n\tform: HTMLFormElement | null\n\n\t// Methods\n\tcheckValidity(): boolean\n\treportValidity(): boolean\n\tsetCustomValidity(message: string): void\n\n\t// Event emitter helper\n\temitChange(detail: any): void\n}\n\n/**\n * A mixin that adds form field capabilities to a LitElement class.\n * This provides common form field properties, validation, and form association.\n *\n * @example\n * ```ts\n * class MyInput extends FormFieldMixin(TailwindElement(css`...`)) {\n * // Your component code here\n * }\n * ```\n */\nexport function FormFieldMixin<T extends Constructor<LitElement>>(superClass: T) {\n\tclass FormFieldMixinClass extends superClass {\n\t\tstatic formAssociated = true\n\n\t\t// Element internals for form association\n\t\tprivate internals: ElementInternals | undefined\n\n\t\t// Properties common to form fields\n\t\t/**\n\t\t * The name of the form field (used for form submission)\n\t\t */\n\t\t@property({ type: String })\n\t\tname: string = ''\n\n\t\t/**\n\t\t * The current value of the form field\n\t\t */\n\t\t@property({ reflect: true })\n\t\tvalue: string | string[] | boolean | number | undefined = ''\n\n\t\t/**\n\t\t * Label text for the form field\n\t\t */\n\t\t@property({ type: String })\n\t\tlabel: string = ''\n\n\t\t/**\n\t\t * Whether the field is required\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\trequired: boolean = false\n\n\t\t/**\n\t\t * Whether the field is disabled\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\tdisabled: boolean = false\n\n\t\t/**\n\t\t * Whether the field is read-only\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\treadonly: boolean = false\n\n\t\t/**\n\t\t * Whether the field is in an error state\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\terror: boolean = false\n\n\t\t/**\n\t\t * The validation message to display\n\t\t */\n\t\t@property({ type: String })\n\t\tvalidationMessage: string = ''\n\n\t\t/**\n\t\t * Optional hint text to display below the field\n\t\t */\n\t\t@property({ type: String })\n\t\thint?: string\n\n\t\t/**\n\t\t * Unique identifier for the field\n\t\t */\n\t\t@property({ reflect: true })\n\t\toverride id: string = `schmancy-field-${Date.now()}-${Math.floor(Math.random() * 1000)}`\n\n\t\tconstructor(...args: any[]) {\n\t\t\tsuper(...args)\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Gets the form this element is associated with\n\t\t */\n\t\tget form(): HTMLFormElement | null {\n\t\t\treturn this.internals?.form ?? null\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle method called when properties change\n\t\t */\n\t\tprotected willUpdate(changedProps: PropertyValueMap<any>): void {\n\t\t\tsuper.willUpdate(changedProps)\n\n\t\t\t// Update form value when value changes\n\t\t\tif (changedProps.has('value')) {\n\t\t\t\tthis.internals?.setFormValue(this.value as string | File | FormData | null)\n\t\t\t}\n\n\t\t\t// Update validation state when error or validation message changes\n\t\t\tif (changedProps.has('error') || changedProps.has('validationMessage')) {\n\t\t\t\tif (this.error && this.validationMessage) {\n\t\t\t\t\tthis.internals?.setValidity({ customError: true }, this.validationMessage)\n\t\t\t\t} else {\n\t\t\t\t\tthis.internals?.setValidity({})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Checks if the field is valid without showing validation UI\n\t\t */\n\t\tcheckValidity(): boolean {\n\t\t\tif (this.disabled) return true\n\n\t\t\tif (this.required && (this.value === '' || this.value === undefined || this.value === null)) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = 'This field is required'\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * Reports validity and shows validation UI if invalid\n\t\t */\n\t\treportValidity(): boolean {\n\t\t\tconst isValid = this.checkValidity()\n\t\t\tif (!isValid) {\n\t\t\t\tthis.internals?.reportValidity()\n\t\t\t}\n\t\t\treturn isValid\n\t\t}\n\n\t\t/**\n\t\t * Sets a custom validation message\n\t\t */\n\t\tsetCustomValidity(message: string): void {\n\t\t\tthis.validationMessage = message\n\t\t\tthis.error = message !== ''\n\t\t\tif (message) {\n\t\t\t\tthis.internals?.setValidity({ customError: true }, message)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Helper method to emit change events\n\t\t */\n\t\temitChange(detail: any): void {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\treturn FormFieldMixinClass as Constructor<IFormFieldMixin> & T\n}\n\n/**\n * A convenience function that composes FormFieldMixin with TailwindElement\n * to create a base class for Schmancy form components.\n *\n * @example\n * ```ts\n * class MyInput extends SchmancyFormField(css`...`) {\n * // Your component code here\n * }\n * ```\n */\nexport function SchmancyFormField<T extends CSSResult>(componentStyle?: T) {\n\treturn FormFieldMixin(TailwindElement(componentStyle)) as Constructor<IFormFieldMixin> &\n\t\tConstructor<ITailwindElementMixin> &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin>\n}\n"],"names":["FormFieldMixin","superClass","FormFieldMixinClass","args","super","this","name","value","label","required","disabled","readonly","error","validationMessage","id","Date","now","Math","floor","random","internals","attachInternals","form","changedProps","willUpdate","has","setFormValue","setValidity","customError","checkValidity","isValid","reportValidity","message","detail","dispatchEvent","CustomEvent","bubbles","composed","formAssociated","_e","__decorateClass","property","type","String","prototype","reflect","Boolean","SchmancyFormField","componentStyle","TailwindElement"],"mappings":"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"}
1
+ {"version":3,"file":"formField.mixin-hZ2qP4iG.js","sources":["../mixins/formField.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement, PropertyValueMap } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\nimport { ITailwindElementMixin, TailwindElement } from './tailwind.mixin'\n\n/**\n * Interface defining the properties and methods that the FormFieldMixin adds.\n */\nexport interface IFormFieldMixin extends Element {\n\t// Properties\n\tname: string\n\tvalue: string | string[] | boolean | number | undefined\n\tlabel: string\n\trequired: boolean\n\tdisabled: boolean\n\treadonly: boolean\n\terror: boolean\n\tvalidationMessage: string\n\thint?: string\n\tid: string\n\n\t// Form association\n\tform: HTMLFormElement | null\n\n\t// Methods\n\tcheckValidity(): boolean\n\treportValidity(): boolean\n\tsetCustomValidity(message: string): void\n\n\t// Event emitter helper\n\temitChange(detail: any): void\n}\n\n/**\n * A mixin that adds form field capabilities to a LitElement class.\n * This provides common form field properties, validation, and form association.\n *\n * @example\n * ```ts\n * class MyInput extends FormFieldMixin(TailwindElement(css`...`)) {\n * // Your component code here\n * }\n * ```\n */\nexport function FormFieldMixin<T extends Constructor<LitElement>>(superClass: T) {\n\tclass FormFieldMixinClass extends superClass {\n\t\tstatic formAssociated = true\n\n\t\t// Element internals for form association\n\t\tprivate internals: ElementInternals | undefined\n\n\t\t// Properties common to form fields\n\t\t/**\n\t\t * The name of the form field (used for form submission)\n\t\t */\n\t\t@property({ type: String })\n\t\tname: string = ''\n\n\t\t/**\n\t\t * The current value of the form field\n\t\t */\n\t\t@property({ reflect: true })\n\t\tvalue: string | string[] | boolean | number | undefined = ''\n\n\t\t/**\n\t\t * Label text for the form field\n\t\t */\n\t\t@property({ type: String })\n\t\tlabel: string = ''\n\n\t\t/**\n\t\t * Whether the field is required\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\trequired: boolean = false\n\n\t\t/**\n\t\t * Whether the field is disabled\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\tdisabled: boolean = false\n\n\t\t/**\n\t\t * Whether the field is read-only\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\treadonly: boolean = false\n\n\t\t/**\n\t\t * Whether the field is in an error state\n\t\t */\n\t\t@property({ type: Boolean, reflect: true })\n\t\terror: boolean = false\n\n\t\t/**\n\t\t * The validation message to display\n\t\t */\n\t\t@property({ type: String })\n\t\tvalidationMessage: string = ''\n\n\t\t/**\n\t\t * Optional hint text to display below the field\n\t\t */\n\t\t@property({ type: String })\n\t\thint?: string\n\n\t\t/**\n\t\t * Unique identifier for the field\n\t\t */\n\t\t@property({ reflect: true })\n\t\toverride id: string = `schmancy-field-${Date.now()}-${Math.floor(Math.random() * 1000)}`\n\n\t\tconstructor(...args: any[]) {\n\t\t\tsuper(...args)\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Gets the form this element is associated with\n\t\t */\n\t\tget form(): HTMLFormElement | null {\n\t\t\treturn this.internals?.form ?? null\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle method called when properties change\n\t\t */\n\t\tprotected willUpdate(changedProps: PropertyValueMap<any>): void {\n\t\t\tsuper.willUpdate(changedProps)\n\n\t\t\t// Update form value when value changes\n\t\t\tif (changedProps.has('value')) {\n\t\t\t\tthis.internals?.setFormValue(this.value as string | File | FormData | null)\n\t\t\t}\n\n\t\t\t// Update validation state when error or validation message changes\n\t\t\tif (changedProps.has('error') || changedProps.has('validationMessage')) {\n\t\t\t\tif (this.error && this.validationMessage) {\n\t\t\t\t\tthis.internals?.setValidity({ customError: true }, this.validationMessage)\n\t\t\t\t} else {\n\t\t\t\t\tthis.internals?.setValidity({})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Checks if the field is valid without showing validation UI\n\t\t */\n\t\tcheckValidity(): boolean {\n\t\t\tif (this.disabled) return true\n\n\t\t\tif (this.required && (this.value === '' || this.value === undefined || this.value === null)) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = 'This field is required'\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * Reports validity and shows validation UI if invalid\n\t\t */\n\t\treportValidity(): boolean {\n\t\t\tconst isValid = this.checkValidity()\n\t\t\tif (!isValid) {\n\t\t\t\tthis.internals?.reportValidity()\n\t\t\t}\n\t\t\treturn isValid\n\t\t}\n\n\t\t/**\n\t\t * Sets a custom validation message\n\t\t */\n\t\tsetCustomValidity(message: string): void {\n\t\t\tthis.validationMessage = message\n\t\t\tthis.error = message !== ''\n\t\t\tif (message) {\n\t\t\t\tthis.internals?.setValidity({ customError: true }, message)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setValidity({})\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Helper method to emit change events\n\t\t */\n\t\temitChange(detail: any): void {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\treturn FormFieldMixinClass as Constructor<IFormFieldMixin> & T\n}\n\n/**\n * A convenience function that composes FormFieldMixin with TailwindElement\n * to create a base class for Schmancy form components.\n *\n * @example\n * ```ts\n * class MyInput extends SchmancyFormField(css`...`) {\n * // Your component code here\n * }\n * ```\n */\nexport function SchmancyFormField<T extends CSSResult>(componentStyle?: T) {\n\treturn FormFieldMixin(TailwindElement(componentStyle)) as Constructor<IFormFieldMixin> &\n\t\tConstructor<ITailwindElementMixin> &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin>\n}\n"],"names":["FormFieldMixin","superClass","FormFieldMixinClass","args","super","this","name","value","label","required","disabled","readonly","error","validationMessage","id","Date","now","Math","floor","random","internals","attachInternals","form","changedProps","willUpdate","has","setFormValue","setValidity","customError","checkValidity","isValid","reportValidity","message","detail","dispatchEvent","CustomEvent","bubbles","composed","formAssociated","_e","__decorateClass","property","type","String","prototype","reflect","Boolean","SchmancyFormField","componentStyle","TailwindElement"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { tap as d } from "rxjs/operators";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
5
  import { property as h, customElement as p } from "lit/decorators.js";
6
- import { T as g } from "./tailwind.mixin-xIIxrXd8.js";
6
+ import { T as g } from "./tailwind.mixin-DIW0B_of.js";
7
7
  import { css as f, html as u } from "lit";
8
8
  var b = Object.defineProperty, w = Object.getOwnPropertyDescriptor, o = (t, i, n, a) => {
9
9
  for (var r, s = a > 1 ? void 0 : a ? w(i, n) : i, c = t.length - 1; c >= 0; c--) (r = t[c]) && (s = (a ? r(i, n, s) : r(s)) || s);
@@ -81,4 +81,4 @@ let e = class extends g(f`
81
81
  }
82
82
  };
83
83
  e.fontsLoaded = !1, o([h({ type: Number, reflect: !0 })], e.prototype, "fill", 2), o([h({ type: Number, reflect: !0 })], e.prototype, "weight", 2), o([h({ type: Number, reflect: !0 })], e.prototype, "grade", 2), o([h({ type: String, reflect: !0 })], e.prototype, "variant", 2), e = o([p("schmancy-icon")], e);
84
- //# sourceMappingURL=icon-DHT8YsE3.js.map
84
+ //# sourceMappingURL=icon-D0FAI5uJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-DHT8YsE3.js","sources":["../src/icons/icon.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { BehaviorSubject, combineLatest, takeUntil } from 'rxjs'\nimport { tap } from 'rxjs/operators'\n\n/**\n * @element schmancy-icon\n * Material Symbols icon component with flexible font variation properties\n *\n * @cssprop --schmancy-icon-size - The size of the icon (default: 24px)\n * @cssprop --schmancy-icon-fill - Fill value for icon (0-1)\n * @cssprop --schmancy-icon-weight - Weight value for icon (100-700)\n * @cssprop --schmancy-icon-grade - Grade value for icon (-50-200)\n * @cssprop --schmancy-icon-opsz - Optical size (default: 24)\n */\n@customElement('schmancy-icon')\nexport default class SchmancyIcon extends TailwindElement(css`\n\t:host {\n\t\t--schmancy-icon-size: 24px;\n\t\t--schmancy-icon-fill: 0;\n\t\t--schmancy-icon-weight: 400;\n\t\t--schmancy-icon-grade: 0;\n\t\t--schmancy-icon-opsz: 24;\n\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--schmancy-icon-size);\n\t\theight: var(--schmancy-icon-size);\n\t\tfont-size: var(--schmancy-icon-size);\n\t\tcolor: inherit;\n\t\ttransition: font-variation-settings 0.2s ease;\n\t}\n\n\t.material-symbols {\n\t\tfont-family: var(--schmancy-icon-font, 'Material Symbols Outlined');\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n\t\tline-height: 1;\n\t\tletter-spacing: normal;\n\t\ttext-transform: none;\n\t\tdisplay: inline-block;\n\t\twhite-space: nowrap;\n\t\tword-wrap: normal;\n\t\tdirection: ltr;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-webkit-font-feature-settings: 'liga';\n\t\tfont-feature-settings: 'liga';\n\t\tfont-variation-settings:\n\t\t\t'FILL' var(--schmancy-icon-fill),\n\t\t\t'wght' var(--schmancy-icon-weight),\n\t\t\t'GRAD' var(--schmancy-icon-grade),\n\t\t\t'opsz' var(--schmancy-icon-opsz);\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n`) {\n\t// Static flag to track if Google Fonts have been loaded\n\tprivate static fontsLoaded = false\n\n\t/**\n\t * Load Material Symbols fonts from Google Fonts CDN\n\t */\n\tprivate static loadFonts(): void {\n\t\tif (SchmancyIcon.fontsLoaded) {\n\t\t\treturn\n\t\t}\n\n\t\tconst link = document.createElement('link')\n\t\tlink.rel = 'stylesheet'\n\t\tlink.href = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap'\n\t\tdocument.head.appendChild(link)\n\n\t\tSchmancyIcon.fontsLoaded = true\n\t}\n\n\t/**\n\t * Fill value for the icon (0-1)\n\t * 0 = outlined, 1 = filled\n\t */\n\t@property({ type: Number, reflect: true })\n\tfill = 0\n\n\t/**\n\t * Weight value for the icon (100-700)\n\t * Controls the thickness of the icon strokes\n\t */\n\t@property({ type: Number, reflect: true })\n\tweight = 400\n\n\t/**\n\t * Grade value for the icon (-50-200)\n\t * Adjusts the visual weight/grade\n\t */\n\t@property({ type: Number, reflect: true })\n\tgrade = 0\n\n\t/**\n\t * Icon variant style\n\t * @values outlined | rounded | sharp\n\t */\n\t@property({ type: String, reflect: true })\n\tvariant: 'outlined' | 'rounded' | 'sharp' = 'outlined'\n\n\t// RxJS subjects for reactive property updates\n\tprivate fill$ = new BehaviorSubject(this.fill)\n\tprivate weight$ = new BehaviorSubject(this.weight)\n\tprivate grade$ = new BehaviorSubject(this.grade)\n\tprivate variant$ = new BehaviorSubject(this.variant)\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Load Google Fonts if not already loaded\n\t\tSchmancyIcon.loadFonts()\n\n\t\t// Set accessibility attributes for decorative icons\n\t\tif (!this.hasAttribute('aria-label') &&\n\t\t !this.hasAttribute('aria-labelledby') &&\n\t\t !this.hasAttribute('aria-hidden') &&\n\t\t !this.hasAttribute('role')) {\n\t\t\tthis.setAttribute('aria-hidden', 'true')\n\t\t}\n\n\t\t// Setup reactive CSS variable updates\n\t\tcombineLatest([\n\t\t\tthis.fill$,\n\t\t\tthis.weight$,\n\t\t\tthis.grade$,\n\t\t\tthis.variant$\n\t\t]).pipe(\n\t\t\ttap(([fill, weight, grade, variant]) => {\n\t\t\t\t// Update CSS custom properties for smooth transitions\n\t\t\t\tthis.style.setProperty('--schmancy-icon-fill', String(fill))\n\t\t\t\tthis.style.setProperty('--schmancy-icon-weight', String(weight))\n\t\t\t\tthis.style.setProperty('--schmancy-icon-grade', String(grade))\n\n\t\t\t\t// Update font family based on variant\n\t\t\t\tconst fontFamily = {\n\t\t\t\t\t'outlined': 'Material Symbols Outlined',\n\t\t\t\t\t'rounded': 'Material Symbols Rounded',\n\t\t\t\t\t'sharp': 'Material Symbols Sharp'\n\t\t\t\t}[variant] || 'Material Symbols Outlined'\n\n\t\t\t\tthis.style.setProperty('--schmancy-icon-font', fontFamily)\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprotected updated(changedProperties: Map<string | number | symbol, unknown>): void {\n\t\tsuper.updated(changedProperties)\n\n\t\t// Update BehaviorSubjects when properties change\n\t\tif (changedProperties.has('fill')) {\n\t\t\tthis.fill$.next(this.fill)\n\t\t}\n\t\tif (changedProperties.has('weight')) {\n\t\t\tthis.weight$.next(this.weight)\n\t\t}\n\t\tif (changedProperties.has('grade')) {\n\t\t\tthis.grade$.next(this.grade)\n\t\t}\n\t\tif (changedProperties.has('variant')) {\n\t\t\tthis.variant$.next(this.variant)\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\tconst fontFamily = {\n\t\t\t'outlined': 'Material Symbols Outlined',\n\t\t\t'rounded': 'Material Symbols Rounded',\n\t\t\t'sharp': 'Material Symbols Sharp'\n\t\t}[this.variant] || 'Material Symbols Outlined'\n\n\t\tconst style = {\n\t\t\t'--schmancy-icon-fill': this.fill,\n\t\t\t'--schmancy-icon-weight': this.weight,\n\t\t\t'--schmancy-icon-grade': this.grade,\n\t\t\t'--schmancy-icon-font': fontFamily\n\t\t}\n\n\t\treturn html`\n\t\t\t<span class=\"material-symbols\" part=\"icon\" style=${this.styleMap(style)}>\n\t\t\t\t<slot></slot>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon': SchmancyIcon\n\t}\n}"],"names":["SchmancyIcon","TailwindElement","css","constructor","super","arguments","this","fill","weight","grade","variant","fill$","BehaviorSubject","weight$","grade$","variant$","loadFonts","fontsLoaded","link","document","createElement","rel","href","head","appendChild","connectedCallback","hasAttribute","setAttribute","combineLatest","pipe","tap","style","setProperty","String","fontFamily","outlined","rounded","sharp","takeUntil","disconnecting","subscribe","changedProperties","updated","has","next","render","html","styleMap","__decorateClass","property","type","Number","reflect","prototype","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"icon-D0FAI5uJ.js","sources":["../src/icons/icon.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { BehaviorSubject, combineLatest, takeUntil } from 'rxjs'\nimport { tap } from 'rxjs/operators'\n\n/**\n * @element schmancy-icon\n * Material Symbols icon component with flexible font variation properties\n *\n * @cssprop --schmancy-icon-size - The size of the icon (default: 24px)\n * @cssprop --schmancy-icon-fill - Fill value for icon (0-1)\n * @cssprop --schmancy-icon-weight - Weight value for icon (100-700)\n * @cssprop --schmancy-icon-grade - Grade value for icon (-50-200)\n * @cssprop --schmancy-icon-opsz - Optical size (default: 24)\n */\n@customElement('schmancy-icon')\nexport default class SchmancyIcon extends TailwindElement(css`\n\t:host {\n\t\t--schmancy-icon-size: 24px;\n\t\t--schmancy-icon-fill: 0;\n\t\t--schmancy-icon-weight: 400;\n\t\t--schmancy-icon-grade: 0;\n\t\t--schmancy-icon-opsz: 24;\n\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--schmancy-icon-size);\n\t\theight: var(--schmancy-icon-size);\n\t\tfont-size: var(--schmancy-icon-size);\n\t\tcolor: inherit;\n\t\ttransition: font-variation-settings 0.2s ease;\n\t}\n\n\t.material-symbols {\n\t\tfont-family: var(--schmancy-icon-font, 'Material Symbols Outlined');\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n\t\tline-height: 1;\n\t\tletter-spacing: normal;\n\t\ttext-transform: none;\n\t\tdisplay: inline-block;\n\t\twhite-space: nowrap;\n\t\tword-wrap: normal;\n\t\tdirection: ltr;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-webkit-font-feature-settings: 'liga';\n\t\tfont-feature-settings: 'liga';\n\t\tfont-variation-settings:\n\t\t\t'FILL' var(--schmancy-icon-fill),\n\t\t\t'wght' var(--schmancy-icon-weight),\n\t\t\t'GRAD' var(--schmancy-icon-grade),\n\t\t\t'opsz' var(--schmancy-icon-opsz);\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n`) {\n\t// Static flag to track if Google Fonts have been loaded\n\tprivate static fontsLoaded = false\n\n\t/**\n\t * Load Material Symbols fonts from Google Fonts CDN\n\t */\n\tprivate static loadFonts(): void {\n\t\tif (SchmancyIcon.fontsLoaded) {\n\t\t\treturn\n\t\t}\n\n\t\tconst link = document.createElement('link')\n\t\tlink.rel = 'stylesheet'\n\t\tlink.href = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap'\n\t\tdocument.head.appendChild(link)\n\n\t\tSchmancyIcon.fontsLoaded = true\n\t}\n\n\t/**\n\t * Fill value for the icon (0-1)\n\t * 0 = outlined, 1 = filled\n\t */\n\t@property({ type: Number, reflect: true })\n\tfill = 0\n\n\t/**\n\t * Weight value for the icon (100-700)\n\t * Controls the thickness of the icon strokes\n\t */\n\t@property({ type: Number, reflect: true })\n\tweight = 400\n\n\t/**\n\t * Grade value for the icon (-50-200)\n\t * Adjusts the visual weight/grade\n\t */\n\t@property({ type: Number, reflect: true })\n\tgrade = 0\n\n\t/**\n\t * Icon variant style\n\t * @values outlined | rounded | sharp\n\t */\n\t@property({ type: String, reflect: true })\n\tvariant: 'outlined' | 'rounded' | 'sharp' = 'outlined'\n\n\t// RxJS subjects for reactive property updates\n\tprivate fill$ = new BehaviorSubject(this.fill)\n\tprivate weight$ = new BehaviorSubject(this.weight)\n\tprivate grade$ = new BehaviorSubject(this.grade)\n\tprivate variant$ = new BehaviorSubject(this.variant)\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Load Google Fonts if not already loaded\n\t\tSchmancyIcon.loadFonts()\n\n\t\t// Set accessibility attributes for decorative icons\n\t\tif (!this.hasAttribute('aria-label') &&\n\t\t !this.hasAttribute('aria-labelledby') &&\n\t\t !this.hasAttribute('aria-hidden') &&\n\t\t !this.hasAttribute('role')) {\n\t\t\tthis.setAttribute('aria-hidden', 'true')\n\t\t}\n\n\t\t// Setup reactive CSS variable updates\n\t\tcombineLatest([\n\t\t\tthis.fill$,\n\t\t\tthis.weight$,\n\t\t\tthis.grade$,\n\t\t\tthis.variant$\n\t\t]).pipe(\n\t\t\ttap(([fill, weight, grade, variant]) => {\n\t\t\t\t// Update CSS custom properties for smooth transitions\n\t\t\t\tthis.style.setProperty('--schmancy-icon-fill', String(fill))\n\t\t\t\tthis.style.setProperty('--schmancy-icon-weight', String(weight))\n\t\t\t\tthis.style.setProperty('--schmancy-icon-grade', String(grade))\n\n\t\t\t\t// Update font family based on variant\n\t\t\t\tconst fontFamily = {\n\t\t\t\t\t'outlined': 'Material Symbols Outlined',\n\t\t\t\t\t'rounded': 'Material Symbols Rounded',\n\t\t\t\t\t'sharp': 'Material Symbols Sharp'\n\t\t\t\t}[variant] || 'Material Symbols Outlined'\n\n\t\t\t\tthis.style.setProperty('--schmancy-icon-font', fontFamily)\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprotected updated(changedProperties: Map<string | number | symbol, unknown>): void {\n\t\tsuper.updated(changedProperties)\n\n\t\t// Update BehaviorSubjects when properties change\n\t\tif (changedProperties.has('fill')) {\n\t\t\tthis.fill$.next(this.fill)\n\t\t}\n\t\tif (changedProperties.has('weight')) {\n\t\t\tthis.weight$.next(this.weight)\n\t\t}\n\t\tif (changedProperties.has('grade')) {\n\t\t\tthis.grade$.next(this.grade)\n\t\t}\n\t\tif (changedProperties.has('variant')) {\n\t\t\tthis.variant$.next(this.variant)\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\tconst fontFamily = {\n\t\t\t'outlined': 'Material Symbols Outlined',\n\t\t\t'rounded': 'Material Symbols Rounded',\n\t\t\t'sharp': 'Material Symbols Sharp'\n\t\t}[this.variant] || 'Material Symbols Outlined'\n\n\t\tconst style = {\n\t\t\t'--schmancy-icon-fill': this.fill,\n\t\t\t'--schmancy-icon-weight': this.weight,\n\t\t\t'--schmancy-icon-grade': this.grade,\n\t\t\t'--schmancy-icon-font': fontFamily\n\t\t}\n\n\t\treturn html`\n\t\t\t<span class=\"material-symbols\" part=\"icon\" style=${this.styleMap(style)}>\n\t\t\t\t<slot></slot>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon': SchmancyIcon\n\t}\n}"],"names":["SchmancyIcon","TailwindElement","css","constructor","super","arguments","this","fill","weight","grade","variant","fill$","BehaviorSubject","weight$","grade$","variant$","loadFonts","fontsLoaded","link","document","createElement","rel","href","head","appendChild","connectedCallback","hasAttribute","setAttribute","combineLatest","pipe","tap","style","setProperty","String","fontFamily","outlined","rounded","sharp","takeUntil","disconnecting","subscribe","changedProperties","updated","has","next","render","html","styleMap","__decorateClass","property","type","Number","reflect","prototype","customElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";const n=require("rxjs"),d=require("rxjs/operators");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const l=require("lit/decorators.js"),p=require("./tailwind.mixin-scDxsqaX.cjs"),y=require("lit");var m=Object.defineProperty,g=Object.getOwnPropertyDescriptor,h=(t,i,r,s)=>{for(var o,a=s>1?void 0:s?g(i,r):i,c=t.length-1;c>=0;c--)(o=t[c])&&(a=(s?o(i,r,a):o(a))||a);return s&&a&&m(i,r,a),a};let e=class extends p.TailwindElement(y.css`
1
+ "use strict";const n=require("rxjs"),d=require("rxjs/operators");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const l=require("lit/decorators.js"),p=require("./tailwind.mixin-3TPVvhYf.cjs"),y=require("lit");var m=Object.defineProperty,g=Object.getOwnPropertyDescriptor,h=(t,i,r,s)=>{for(var o,a=s>1?void 0:s?g(i,r):i,c=t.length-1;c>=0;c--)(o=t[c])&&(a=(s?o(i,r,a):o(a))||a);return s&&a&&m(i,r,a),a};let e=class extends p.TailwindElement(y.css`
2
2
  :host {
3
3
  --schmancy-icon-size: 24px;
4
4
  --schmancy-icon-fill: 0;
@@ -46,4 +46,4 @@
46
46
  <slot></slot>
47
47
  </span>
48
48
  `}};e.fontsLoaded=!1,h([l.property({type:Number,reflect:!0})],e.prototype,"fill",2),h([l.property({type:Number,reflect:!0})],e.prototype,"weight",2),h([l.property({type:Number,reflect:!0})],e.prototype,"grade",2),h([l.property({type:String,reflect:!0})],e.prototype,"variant",2),e=h([l.customElement("schmancy-icon")],e);
49
- //# sourceMappingURL=icon-Dsa_BddL.cjs.map
49
+ //# sourceMappingURL=icon-DJnGMAQ2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-Dsa_BddL.cjs","sources":["../src/icons/icon.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { BehaviorSubject, combineLatest, takeUntil } from 'rxjs'\nimport { tap } from 'rxjs/operators'\n\n/**\n * @element schmancy-icon\n * Material Symbols icon component with flexible font variation properties\n *\n * @cssprop --schmancy-icon-size - The size of the icon (default: 24px)\n * @cssprop --schmancy-icon-fill - Fill value for icon (0-1)\n * @cssprop --schmancy-icon-weight - Weight value for icon (100-700)\n * @cssprop --schmancy-icon-grade - Grade value for icon (-50-200)\n * @cssprop --schmancy-icon-opsz - Optical size (default: 24)\n */\n@customElement('schmancy-icon')\nexport default class SchmancyIcon extends TailwindElement(css`\n\t:host {\n\t\t--schmancy-icon-size: 24px;\n\t\t--schmancy-icon-fill: 0;\n\t\t--schmancy-icon-weight: 400;\n\t\t--schmancy-icon-grade: 0;\n\t\t--schmancy-icon-opsz: 24;\n\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--schmancy-icon-size);\n\t\theight: var(--schmancy-icon-size);\n\t\tfont-size: var(--schmancy-icon-size);\n\t\tcolor: inherit;\n\t\ttransition: font-variation-settings 0.2s ease;\n\t}\n\n\t.material-symbols {\n\t\tfont-family: var(--schmancy-icon-font, 'Material Symbols Outlined');\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n\t\tline-height: 1;\n\t\tletter-spacing: normal;\n\t\ttext-transform: none;\n\t\tdisplay: inline-block;\n\t\twhite-space: nowrap;\n\t\tword-wrap: normal;\n\t\tdirection: ltr;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-webkit-font-feature-settings: 'liga';\n\t\tfont-feature-settings: 'liga';\n\t\tfont-variation-settings:\n\t\t\t'FILL' var(--schmancy-icon-fill),\n\t\t\t'wght' var(--schmancy-icon-weight),\n\t\t\t'GRAD' var(--schmancy-icon-grade),\n\t\t\t'opsz' var(--schmancy-icon-opsz);\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n`) {\n\t// Static flag to track if Google Fonts have been loaded\n\tprivate static fontsLoaded = false\n\n\t/**\n\t * Load Material Symbols fonts from Google Fonts CDN\n\t */\n\tprivate static loadFonts(): void {\n\t\tif (SchmancyIcon.fontsLoaded) {\n\t\t\treturn\n\t\t}\n\n\t\tconst link = document.createElement('link')\n\t\tlink.rel = 'stylesheet'\n\t\tlink.href = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap'\n\t\tdocument.head.appendChild(link)\n\n\t\tSchmancyIcon.fontsLoaded = true\n\t}\n\n\t/**\n\t * Fill value for the icon (0-1)\n\t * 0 = outlined, 1 = filled\n\t */\n\t@property({ type: Number, reflect: true })\n\tfill = 0\n\n\t/**\n\t * Weight value for the icon (100-700)\n\t * Controls the thickness of the icon strokes\n\t */\n\t@property({ type: Number, reflect: true })\n\tweight = 400\n\n\t/**\n\t * Grade value for the icon (-50-200)\n\t * Adjusts the visual weight/grade\n\t */\n\t@property({ type: Number, reflect: true })\n\tgrade = 0\n\n\t/**\n\t * Icon variant style\n\t * @values outlined | rounded | sharp\n\t */\n\t@property({ type: String, reflect: true })\n\tvariant: 'outlined' | 'rounded' | 'sharp' = 'outlined'\n\n\t// RxJS subjects for reactive property updates\n\tprivate fill$ = new BehaviorSubject(this.fill)\n\tprivate weight$ = new BehaviorSubject(this.weight)\n\tprivate grade$ = new BehaviorSubject(this.grade)\n\tprivate variant$ = new BehaviorSubject(this.variant)\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Load Google Fonts if not already loaded\n\t\tSchmancyIcon.loadFonts()\n\n\t\t// Set accessibility attributes for decorative icons\n\t\tif (!this.hasAttribute('aria-label') &&\n\t\t !this.hasAttribute('aria-labelledby') &&\n\t\t !this.hasAttribute('aria-hidden') &&\n\t\t !this.hasAttribute('role')) {\n\t\t\tthis.setAttribute('aria-hidden', 'true')\n\t\t}\n\n\t\t// Setup reactive CSS variable updates\n\t\tcombineLatest([\n\t\t\tthis.fill$,\n\t\t\tthis.weight$,\n\t\t\tthis.grade$,\n\t\t\tthis.variant$\n\t\t]).pipe(\n\t\t\ttap(([fill, weight, grade, variant]) => {\n\t\t\t\t// Update CSS custom properties for smooth transitions\n\t\t\t\tthis.style.setProperty('--schmancy-icon-fill', String(fill))\n\t\t\t\tthis.style.setProperty('--schmancy-icon-weight', String(weight))\n\t\t\t\tthis.style.setProperty('--schmancy-icon-grade', String(grade))\n\n\t\t\t\t// Update font family based on variant\n\t\t\t\tconst fontFamily = {\n\t\t\t\t\t'outlined': 'Material Symbols Outlined',\n\t\t\t\t\t'rounded': 'Material Symbols Rounded',\n\t\t\t\t\t'sharp': 'Material Symbols Sharp'\n\t\t\t\t}[variant] || 'Material Symbols Outlined'\n\n\t\t\t\tthis.style.setProperty('--schmancy-icon-font', fontFamily)\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprotected updated(changedProperties: Map<string | number | symbol, unknown>): void {\n\t\tsuper.updated(changedProperties)\n\n\t\t// Update BehaviorSubjects when properties change\n\t\tif (changedProperties.has('fill')) {\n\t\t\tthis.fill$.next(this.fill)\n\t\t}\n\t\tif (changedProperties.has('weight')) {\n\t\t\tthis.weight$.next(this.weight)\n\t\t}\n\t\tif (changedProperties.has('grade')) {\n\t\t\tthis.grade$.next(this.grade)\n\t\t}\n\t\tif (changedProperties.has('variant')) {\n\t\t\tthis.variant$.next(this.variant)\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\tconst fontFamily = {\n\t\t\t'outlined': 'Material Symbols Outlined',\n\t\t\t'rounded': 'Material Symbols Rounded',\n\t\t\t'sharp': 'Material Symbols Sharp'\n\t\t}[this.variant] || 'Material Symbols Outlined'\n\n\t\tconst style = {\n\t\t\t'--schmancy-icon-fill': this.fill,\n\t\t\t'--schmancy-icon-weight': this.weight,\n\t\t\t'--schmancy-icon-grade': this.grade,\n\t\t\t'--schmancy-icon-font': fontFamily\n\t\t}\n\n\t\treturn html`\n\t\t\t<span class=\"material-symbols\" part=\"icon\" style=${this.styleMap(style)}>\n\t\t\t\t<slot></slot>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon': SchmancyIcon\n\t}\n}"],"names":["SchmancyIcon","TailwindElement","css","constructor","super","arguments","this","fill","weight","grade","variant","fill$","BehaviorSubject","weight$","grade$","variant$","loadFonts","fontsLoaded","link","document","createElement","rel","href","head","appendChild","connectedCallback","hasAttribute","setAttribute","combineLatest","pipe","tap","style","setProperty","String","fontFamily","outlined","rounded","sharp","takeUntil","disconnecting","subscribe","changedProperties","updated","has","next","render","html","styleMap","__decorateClass","property","type","Number","reflect","prototype","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"icon-DJnGMAQ2.cjs","sources":["../src/icons/icon.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { BehaviorSubject, combineLatest, takeUntil } from 'rxjs'\nimport { tap } from 'rxjs/operators'\n\n/**\n * @element schmancy-icon\n * Material Symbols icon component with flexible font variation properties\n *\n * @cssprop --schmancy-icon-size - The size of the icon (default: 24px)\n * @cssprop --schmancy-icon-fill - Fill value for icon (0-1)\n * @cssprop --schmancy-icon-weight - Weight value for icon (100-700)\n * @cssprop --schmancy-icon-grade - Grade value for icon (-50-200)\n * @cssprop --schmancy-icon-opsz - Optical size (default: 24)\n */\n@customElement('schmancy-icon')\nexport default class SchmancyIcon extends TailwindElement(css`\n\t:host {\n\t\t--schmancy-icon-size: 24px;\n\t\t--schmancy-icon-fill: 0;\n\t\t--schmancy-icon-weight: 400;\n\t\t--schmancy-icon-grade: 0;\n\t\t--schmancy-icon-opsz: 24;\n\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--schmancy-icon-size);\n\t\theight: var(--schmancy-icon-size);\n\t\tfont-size: var(--schmancy-icon-size);\n\t\tcolor: inherit;\n\t\ttransition: font-variation-settings 0.2s ease;\n\t}\n\n\t.material-symbols {\n\t\tfont-family: var(--schmancy-icon-font, 'Material Symbols Outlined');\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n\t\tline-height: 1;\n\t\tletter-spacing: normal;\n\t\ttext-transform: none;\n\t\tdisplay: inline-block;\n\t\twhite-space: nowrap;\n\t\tword-wrap: normal;\n\t\tdirection: ltr;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-webkit-font-feature-settings: 'liga';\n\t\tfont-feature-settings: 'liga';\n\t\tfont-variation-settings:\n\t\t\t'FILL' var(--schmancy-icon-fill),\n\t\t\t'wght' var(--schmancy-icon-weight),\n\t\t\t'GRAD' var(--schmancy-icon-grade),\n\t\t\t'opsz' var(--schmancy-icon-opsz);\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n`) {\n\t// Static flag to track if Google Fonts have been loaded\n\tprivate static fontsLoaded = false\n\n\t/**\n\t * Load Material Symbols fonts from Google Fonts CDN\n\t */\n\tprivate static loadFonts(): void {\n\t\tif (SchmancyIcon.fontsLoaded) {\n\t\t\treturn\n\t\t}\n\n\t\tconst link = document.createElement('link')\n\t\tlink.rel = 'stylesheet'\n\t\tlink.href = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap'\n\t\tdocument.head.appendChild(link)\n\n\t\tSchmancyIcon.fontsLoaded = true\n\t}\n\n\t/**\n\t * Fill value for the icon (0-1)\n\t * 0 = outlined, 1 = filled\n\t */\n\t@property({ type: Number, reflect: true })\n\tfill = 0\n\n\t/**\n\t * Weight value for the icon (100-700)\n\t * Controls the thickness of the icon strokes\n\t */\n\t@property({ type: Number, reflect: true })\n\tweight = 400\n\n\t/**\n\t * Grade value for the icon (-50-200)\n\t * Adjusts the visual weight/grade\n\t */\n\t@property({ type: Number, reflect: true })\n\tgrade = 0\n\n\t/**\n\t * Icon variant style\n\t * @values outlined | rounded | sharp\n\t */\n\t@property({ type: String, reflect: true })\n\tvariant: 'outlined' | 'rounded' | 'sharp' = 'outlined'\n\n\t// RxJS subjects for reactive property updates\n\tprivate fill$ = new BehaviorSubject(this.fill)\n\tprivate weight$ = new BehaviorSubject(this.weight)\n\tprivate grade$ = new BehaviorSubject(this.grade)\n\tprivate variant$ = new BehaviorSubject(this.variant)\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Load Google Fonts if not already loaded\n\t\tSchmancyIcon.loadFonts()\n\n\t\t// Set accessibility attributes for decorative icons\n\t\tif (!this.hasAttribute('aria-label') &&\n\t\t !this.hasAttribute('aria-labelledby') &&\n\t\t !this.hasAttribute('aria-hidden') &&\n\t\t !this.hasAttribute('role')) {\n\t\t\tthis.setAttribute('aria-hidden', 'true')\n\t\t}\n\n\t\t// Setup reactive CSS variable updates\n\t\tcombineLatest([\n\t\t\tthis.fill$,\n\t\t\tthis.weight$,\n\t\t\tthis.grade$,\n\t\t\tthis.variant$\n\t\t]).pipe(\n\t\t\ttap(([fill, weight, grade, variant]) => {\n\t\t\t\t// Update CSS custom properties for smooth transitions\n\t\t\t\tthis.style.setProperty('--schmancy-icon-fill', String(fill))\n\t\t\t\tthis.style.setProperty('--schmancy-icon-weight', String(weight))\n\t\t\t\tthis.style.setProperty('--schmancy-icon-grade', String(grade))\n\n\t\t\t\t// Update font family based on variant\n\t\t\t\tconst fontFamily = {\n\t\t\t\t\t'outlined': 'Material Symbols Outlined',\n\t\t\t\t\t'rounded': 'Material Symbols Rounded',\n\t\t\t\t\t'sharp': 'Material Symbols Sharp'\n\t\t\t\t}[variant] || 'Material Symbols Outlined'\n\n\t\t\t\tthis.style.setProperty('--schmancy-icon-font', fontFamily)\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprotected updated(changedProperties: Map<string | number | symbol, unknown>): void {\n\t\tsuper.updated(changedProperties)\n\n\t\t// Update BehaviorSubjects when properties change\n\t\tif (changedProperties.has('fill')) {\n\t\t\tthis.fill$.next(this.fill)\n\t\t}\n\t\tif (changedProperties.has('weight')) {\n\t\t\tthis.weight$.next(this.weight)\n\t\t}\n\t\tif (changedProperties.has('grade')) {\n\t\t\tthis.grade$.next(this.grade)\n\t\t}\n\t\tif (changedProperties.has('variant')) {\n\t\t\tthis.variant$.next(this.variant)\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\tconst fontFamily = {\n\t\t\t'outlined': 'Material Symbols Outlined',\n\t\t\t'rounded': 'Material Symbols Rounded',\n\t\t\t'sharp': 'Material Symbols Sharp'\n\t\t}[this.variant] || 'Material Symbols Outlined'\n\n\t\tconst style = {\n\t\t\t'--schmancy-icon-fill': this.fill,\n\t\t\t'--schmancy-icon-weight': this.weight,\n\t\t\t'--schmancy-icon-grade': this.grade,\n\t\t\t'--schmancy-icon-font': fontFamily\n\t\t}\n\n\t\treturn html`\n\t\t\t<span class=\"material-symbols\" part=\"icon\" style=${this.styleMap(style)}>\n\t\t\t\t<slot></slot>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon': SchmancyIcon\n\t}\n}"],"names":["SchmancyIcon","TailwindElement","css","constructor","super","arguments","this","fill","weight","grade","variant","fill$","BehaviorSubject","weight$","grade$","variant$","loadFonts","fontsLoaded","link","document","createElement","rel","href","head","appendChild","connectedCallback","hasAttribute","setAttribute","combineLatest","pipe","tap","style","setProperty","String","fontFamily","outlined","rounded","sharp","takeUntil","disconnecting","subscribe","changedProperties","updated","has","next","render","html","styleMap","__decorateClass","property","type","Number","reflect","prototype","customElement"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- "use strict";require("rxjs"),require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const e=require("lit/decorators.js");require("./tailwind.mixin-scDxsqaX.cjs");const u=require("./litElement.mixin-DzCpXwcY.cjs"),a=require("lit"),d=require("lit/directives/if-defined.js"),p=require("lit/directives/when.js");var b=Object.defineProperty,y=Object.getOwnPropertyDescriptor,l=(t,i,o,r)=>{for(var h,s=r>1?void 0:r?y(i,o):i,c=t.length-1;c>=0;c--)(h=t[c])&&(s=(r?h(i,o,s):h(s))||s);return r&&s&&b(i,o,s),s};exports.SchmancyButton=class extends u.$LitElement(a.css`:host{
1
+ "use strict";require("rxjs"),require("rxjs/operators"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const e=require("lit/decorators.js");require("./tailwind.mixin-3TPVvhYf.cjs");const u=require("./litElement.mixin-CPQYJnK_.cjs"),a=require("lit"),d=require("lit/directives/if-defined.js"),c=require("lit/directives/when.js");var b=Object.defineProperty,y=Object.getOwnPropertyDescriptor,l=(t,i,o,r)=>{for(var h,s=r>1?void 0:r?y(i,o):i,p=t.length-1;p>=0;p--)(h=t[p])&&(s=(r?h(i,o,s):h(s))||s);return r&&s&&b(i,o,s),s};exports.SchmancyButton=class extends u.$LitElement(a.css`:host{
2
2
  display: inline-block;
3
3
  min-width: fit-content;
4
4
  overflow: hidden;
5
5
  position: relative;
6
- }`){constructor(){super(...arguments),this.variant="text",this.width="auto",this.type="button",this.disabled=!1}set ariaLabel(t){const i=this._ariaLabel;this._ariaLabel=t,this.hasAttribute("aria-label")&&this.removeAttribute("aria-label"),this.requestUpdate("ariaLabel",i)}get ariaLabel(){return this._ariaLabel}focus(t){this.nativeElement.focus(t)}blur(){this.nativeElement.blur()}get imgClasses(){return["max-h-5","max-w-5","sm:max-h-6","sm:max-w-6","object-contain"]}firstUpdated(){this.prefixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")}),this.suffixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")})}click(){this.dispatchEvent(new Event("click",{bubbles:!0,composed:!0}))}_preventDefault(t){t.preventDefault(),t.stopPropagation()}render(){const t=this.variant==="tonal"?"filled tonal":this.variant,i={"z-0 py-2 px-3 sm:py-1.5 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-1 sm:gap-1.5 md:gap-2 outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit] overflow-hidden":!0,"cursor-pointer":!this.disabled,"opacity-[0.38]":this.disabled,"hover:shadow-xs":!this.disabled&&(t==="outlined"||t==="text"||t==="filled"||t==="filled tonal"),"hover:shadow-sm":!this.disabled&&t==="elevated","w-full tex-center":this.width==="full","bg-surface-low text-primary-default shadow-xs":t==="elevated","bg-transparent text-primary-default border-1 border-solid border-outline":t==="outlined","bg-primary-default text-primary-on":t==="filled","bg-secondary-container text-secondary-onContainer":t==="filled tonal","text-primary-default":t==="text"},o={"absolute inset-0 hover:opacity-[0.08] z-0 rounded-full":!0,"hover:bg-primary-on":t==="filled","hover:bg-primary-default":t==="outlined"||t==="elevated"||t==="text","hover:bg-secondary-container":t==="filled tonal"};return this.href?a.html`
6
+ }`){constructor(){super(...arguments),this.variant="text",this.width="auto",this.size="md",this.type="button",this.disabled=!1}set ariaLabel(t){const i=this._ariaLabel;this._ariaLabel=t,this.hasAttribute("aria-label")&&this.removeAttribute("aria-label"),this.requestUpdate("ariaLabel",i)}get ariaLabel(){return this._ariaLabel}focus(t){this.nativeElement.focus(t)}blur(){this.nativeElement.blur()}get imgClasses(){return["max-h-5","max-w-5","sm:max-h-6","sm:max-w-6","object-contain"]}firstUpdated(){this.prefixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")}),this.suffixImgs?.forEach(t=>{t.classList.add(...this.imgClasses),t.hasAttribute("alt")||t.setAttribute("alt","")})}click(){this.dispatchEvent(new Event("click",{bubbles:!0,composed:!0}))}_preventDefault(t){t.preventDefault(),t.stopPropagation()}render(){const t=this.variant==="tonal"?"filled tonal":this.variant,i={"z-0 transition-all duration-200 relative rounded-full inline-flex justify-center items-center outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit] overflow-hidden":!0,"py-1 px-2 text-sm gap-1":this.size==="sm","py-1.5 px-3 sm:py-2 sm:px-4 text-sm sm:text-base gap-1 sm:gap-1.5 md:gap-2":this.size==="md","py-2 px-4 sm:py-3 sm:px-5 text-base sm:text-lg gap-1.5 sm:gap-2 md:gap-3":this.size==="lg","cursor-pointer":!this.disabled,"opacity-[0.38]":this.disabled,"hover:shadow-xs":!this.disabled&&(t==="outlined"||t==="text"||t==="filled"||t==="filled tonal"),"hover:shadow-sm":!this.disabled&&t==="elevated","w-full tex-center":this.width==="full","bg-surface-low text-primary-default shadow-xs":t==="elevated","bg-transparent text-primary-default border-1 border-solid border-outline":t==="outlined","bg-primary-default text-primary-on":t==="filled","bg-secondary-container text-secondary-onContainer":t==="filled tonal","text-primary-default":t==="text"},o={"absolute inset-0 hover:opacity-[0.08] z-0 rounded-full":!0,"hover:bg-primary-on":t==="filled","hover:bg-primary-default":t==="outlined"||t==="elevated"||t==="text","hover:bg-secondary-container":t==="filled tonal"};return this.href?a.html`
7
7
  <a
8
8
  part="base"
9
9
  href=${d.ifDefined(this.disabled?void 0:this.href)}
@@ -13,7 +13,7 @@
13
13
  aria-disabled=${this.disabled}
14
14
  @click=${this.disabled?this._preventDefault:void 0}
15
15
  >
16
- ${p.when(!this.disabled,()=>a.html`<div class="${this.classMap(o)}"></div>`)}
16
+ ${c.when(!this.disabled,()=>a.html`<div class="${this.classMap(o)}"></div>`)}
17
17
  <slot name="prefix"></slot>
18
18
  <slot></slot>
19
19
  <slot name="suffix"></slot>
@@ -27,12 +27,12 @@
27
27
  type=${d.ifDefined(this.type)}
28
28
  tabindex=${d.ifDefined(this.disabled?"-1":void 0)}
29
29
  >
30
- ${p.when(!this.disabled,()=>a.html`<div class="${this.classMap(o)}"></div>`)}
30
+ ${c.when(!this.disabled,()=>a.html`<div class="${this.classMap(o)}"></div>`)}
31
31
  <slot name="prefix"></slot>
32
32
  <slot></slot>
33
33
  <slot name="suffix"></slot>
34
34
  </button>
35
- `}},exports.SchmancyButton.shadowRootOptions={...a.LitElement.shadowRootOptions,mode:"open",delegatesFocus:!0},l([e.query('[part="base"]',!0)],exports.SchmancyButton.prototype,"nativeElement",2),l([e.property({reflect:!0,type:String})],exports.SchmancyButton.prototype,"variant",2),l([e.property()],exports.SchmancyButton.prototype,"width",2),l([e.property({reflect:!0,type:String})],exports.SchmancyButton.prototype,"type",2),l([e.property()],exports.SchmancyButton.prototype,"href",2),l([e.property({type:Boolean,reflect:!0})],exports.SchmancyButton.prototype,"disabled",2),l([e.property({attribute:"aria-label"})],exports.SchmancyButton.prototype,"ariaLabel",1),l([e.queryAssignedElements({slot:"prefix",flatten:!0,selector:"img"})],exports.SchmancyButton.prototype,"prefixImgs",2),l([e.queryAssignedElements({slot:"suffix",flatten:!0,selector:"img"})],exports.SchmancyButton.prototype,"suffixImgs",2),exports.SchmancyButton=l([e.customElement("schmancy-button")],exports.SchmancyButton);var f=Object.defineProperty,m=Object.getOwnPropertyDescriptor,n=(t,i,o,r)=>{for(var h,s=r>1?void 0:r?m(i,o):i,c=t.length-1;c>=0;c--)(h=t[c])&&(s=(r?h(i,o,s):h(s))||s);return r&&s&&f(i,o,s),s};exports.SchmnacyIconButton=class extends u.$LitElement(a.css`
35
+ `}},exports.SchmancyButton.shadowRootOptions={...a.LitElement.shadowRootOptions,mode:"open",delegatesFocus:!0},l([e.query('[part="base"]',!0)],exports.SchmancyButton.prototype,"nativeElement",2),l([e.property({reflect:!0,type:String})],exports.SchmancyButton.prototype,"variant",2),l([e.property()],exports.SchmancyButton.prototype,"width",2),l([e.property({type:String})],exports.SchmancyButton.prototype,"size",2),l([e.property({reflect:!0,type:String})],exports.SchmancyButton.prototype,"type",2),l([e.property()],exports.SchmancyButton.prototype,"href",2),l([e.property({type:Boolean,reflect:!0})],exports.SchmancyButton.prototype,"disabled",2),l([e.property({attribute:"aria-label"})],exports.SchmancyButton.prototype,"ariaLabel",1),l([e.queryAssignedElements({slot:"prefix",flatten:!0,selector:"img"})],exports.SchmancyButton.prototype,"prefixImgs",2),l([e.queryAssignedElements({slot:"suffix",flatten:!0,selector:"img"})],exports.SchmancyButton.prototype,"suffixImgs",2),exports.SchmancyButton=l([e.customElement("schmancy-button")],exports.SchmancyButton);var m=Object.defineProperty,f=Object.getOwnPropertyDescriptor,n=(t,i,o,r)=>{for(var h,s=r>1?void 0:r?f(i,o):i,p=t.length-1;p>=0;p--)(h=t[p])&&(s=(r?h(i,o,s):h(s))||s);return r&&s&&m(i,o,s),s};exports.SchmnacyIconButton=class extends u.$LitElement(a.css`
36
36
  :host {
37
37
  display: block;
38
38
  }
@@ -46,7 +46,7 @@
46
46
  aria-disabled=${this.disabled}
47
47
  @click=${this.disabled?this._preventDefault:void 0}
48
48
  >
49
- ${p.when(!this.disabled,()=>a.html`<div class="absolute inset-0 ${this.classMap(o)}"></div>`)}
49
+ ${c.when(!this.disabled,()=>a.html`<div class="absolute inset-0 ${this.classMap(o)}"></div>`)}
50
50
  ${this.text?a.html`<slot></slot>`:a.html`<schmancy-icon size=${r}><slot></slot></schmancy-icon>`}
51
51
  </a>
52
52
  `:a.html`
@@ -58,8 +58,8 @@
58
58
  type=${d.ifDefined(this.type)}
59
59
  tabindex=${d.ifDefined(this.disabled?"-1":void 0)}
60
60
  >
61
- ${p.when(!this.disabled,()=>a.html`<div class="absolute inset-0 ${this.classMap(o)}"></div>`)}
61
+ ${c.when(!this.disabled,()=>a.html`<div class="absolute inset-0 ${this.classMap(o)}"></div>`)}
62
62
  ${this.text?a.html`<slot></slot>`:a.html`<schmancy-icon size=${r}><slot></slot></schmancy-icon>`}
63
63
  </button>
64
64
  `}},exports.SchmnacyIconButton.shadowRootOptions={...a.LitElement.shadowRootOptions,mode:"open",delegatesFocus:!0},n([e.query('[part="base"]',!0)],exports.SchmnacyIconButton.prototype,"nativeElement",2),n([e.property({type:String})],exports.SchmnacyIconButton.prototype,"size",2),n([e.property({reflect:!0,type:String})],exports.SchmnacyIconButton.prototype,"variant",2),n([e.property()],exports.SchmnacyIconButton.prototype,"width",2),n([e.property({reflect:!0,type:String})],exports.SchmnacyIconButton.prototype,"type",2),n([e.property()],exports.SchmnacyIconButton.prototype,"href",2),n([e.property({type:Boolean,reflect:!0})],exports.SchmnacyIconButton.prototype,"disabled",2),n([e.property({type:Boolean,reflect:!0})],exports.SchmnacyIconButton.prototype,"text",2),n([e.property({attribute:"aria-label"})],exports.SchmnacyIconButton.prototype,"ariaLabel",1),exports.SchmnacyIconButton=n([e.customElement("schmancy-icon-button")],exports.SchmnacyIconButton);
65
- //# sourceMappingURL=icon-button-BRcfLsJL.cjs.map
65
+ //# sourceMappingURL=icon-button-CSZtSmOy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-button-CSZtSmOy.cjs","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement(\n\tcss`:host{\n\t\tdisplay: inline-block;\n\t\tmin-width: fit-content;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t}`\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The size of the button.\n\t * @attr\n\t * @type {'sm' | 'md' | 'lg'}\n\t * @default 'md'\n\t * @public\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' = 'md'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-5', 'max-w-5', 'sm:max-h-6', 'sm:max-w-6', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 transition-all duration-200 relative rounded-full inline-flex justify-center items-center outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit] overflow-hidden':\n\t\t\t\ttrue,\n\t\t\t// Size-based padding and text sizing\n\t\t\t'py-1 px-2 text-sm gap-1': this.size === 'sm',\n\t\t\t'py-1.5 px-3 sm:py-2 sm:px-4 text-sm sm:text-base gap-1 sm:gap-1.5 md:gap-2': this.size === 'md',\n\t\t\t'py-2 px-4 sm:py-3 sm:px-5 text-base sm:text-lg gap-1.5 sm:gap-2 md:gap-3': this.size === 'lg',\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t/**\n\t * Render slot content as text instead of wrapping in schmancy-icon.\n\t * Use this when you want to display text labels in the button.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic text = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t\t'px-[16px] py-[16px]': this.size === 'xl',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// Icon size mapping\n\t\tconst iconSize = this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : this.size === 'lg' ? '32px' : '40px';\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t${this.text\n\t\t\t\t\t\t? html`<slot></slot>`\n\t\t\t\t\t\t: html`<schmancy-icon size=${iconSize}><slot></slot></schmancy-icon>`\n\t\t\t\t\t}\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t${this.text\n\t\t\t\t\t? html`<slot></slot>`\n\t\t\t\t\t: html`<schmancy-icon size=${iconSize}><slot></slot></schmancy-icon>`\n\t\t\t\t}\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","css","constructor","super","arguments","this","variant","width","size","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","ariaLabel","options","nativeElement","focus","blur","imgClasses","firstUpdated","prefixImgs","forEach","img","classList","add","setAttribute","suffixImgs","click","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","effectiveVariant","classes","stateLayerClasses","href","html","ifDefined","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","text","_changedProperties","render","iconSize"],"mappings":"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"}
@@ -3,23 +3,23 @@ import "rxjs/operators";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
5
  import { query as m, property as s, queryAssignedElements as f, customElement as y } from "lit/decorators.js";
6
- import "./tailwind.mixin-xIIxrXd8.js";
7
- import { $ as v } from "./litElement.mixin-BzbZQbxa.js";
8
- import { css as x, html as d, LitElement as g } from "lit";
6
+ import "./tailwind.mixin-DIW0B_of.js";
7
+ import { $ as x } from "./litElement.mixin-DWDPaNoc.js";
8
+ import { css as v, html as d, LitElement as g } from "lit";
9
9
  import { ifDefined as h } from "lit/directives/if-defined.js";
10
10
  import { when as u } from "lit/directives/when.js";
11
- var $ = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (t, e, a, l) => {
12
- for (var b, i = l > 1 ? void 0 : l ? w(e, a) : e, c = t.length - 1; c >= 0; c--) (b = t[c]) && (i = (l ? b(e, a, i) : b(i)) || i);
13
- return l && i && $(e, a, i), i;
11
+ var $ = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (t, e, a, r) => {
12
+ for (var b, i = r > 1 ? void 0 : r ? w(e, a) : e, c = t.length - 1; c >= 0; c--) (b = t[c]) && (i = (r ? b(e, a, i) : b(i)) || i);
13
+ return r && i && $(e, a, i), i;
14
14
  };
15
- let r = class extends v(x`:host{
15
+ let l = class extends x(v`:host{
16
16
  display: inline-block;
17
17
  min-width: fit-content;
18
18
  overflow: hidden;
19
19
  position: relative;
20
20
  }`) {
21
21
  constructor() {
22
- super(...arguments), this.variant = "text", this.width = "auto", this.type = "button", this.disabled = !1;
22
+ super(...arguments), this.variant = "text", this.width = "auto", this.size = "md", this.type = "button", this.disabled = !1;
23
23
  }
24
24
  set ariaLabel(t) {
25
25
  const e = this._ariaLabel;
@@ -51,7 +51,7 @@ let r = class extends v(x`:host{
51
51
  t.preventDefault(), t.stopPropagation();
52
52
  }
53
53
  render() {
54
- const t = this.variant === "tonal" ? "filled tonal" : this.variant, e = { "z-0 py-2 px-3 sm:py-1.5 sm:px-3 md:py-2 md:px-4 text-sm sm:text-base transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-1 sm:gap-1.5 md:gap-2 outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit] overflow-hidden": !0, "cursor-pointer": !this.disabled, "opacity-[0.38]": this.disabled, "hover:shadow-xs": !this.disabled && (t === "outlined" || t === "text" || t === "filled" || t === "filled tonal"), "hover:shadow-sm": !this.disabled && t === "elevated", "w-full tex-center": this.width === "full", "bg-surface-low text-primary-default shadow-xs": t === "elevated", "bg-transparent text-primary-default border-1 border-solid border-outline": t === "outlined", "bg-primary-default text-primary-on": t === "filled", "bg-secondary-container text-secondary-onContainer": t === "filled tonal", "text-primary-default": t === "text" }, a = { "absolute inset-0 hover:opacity-[0.08] z-0 rounded-full": !0, "hover:bg-primary-on": t === "filled", "hover:bg-primary-default": t === "outlined" || t === "elevated" || t === "text", "hover:bg-secondary-container": t === "filled tonal" };
54
+ const t = this.variant === "tonal" ? "filled tonal" : this.variant, e = { "z-0 transition-all duration-200 relative rounded-full inline-flex justify-center items-center outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit] overflow-hidden": !0, "py-1 px-2 text-sm gap-1": this.size === "sm", "py-1.5 px-3 sm:py-2 sm:px-4 text-sm sm:text-base gap-1 sm:gap-1.5 md:gap-2": this.size === "md", "py-2 px-4 sm:py-3 sm:px-5 text-base sm:text-lg gap-1.5 sm:gap-2 md:gap-3": this.size === "lg", "cursor-pointer": !this.disabled, "opacity-[0.38]": this.disabled, "hover:shadow-xs": !this.disabled && (t === "outlined" || t === "text" || t === "filled" || t === "filled tonal"), "hover:shadow-sm": !this.disabled && t === "elevated", "w-full tex-center": this.width === "full", "bg-surface-low text-primary-default shadow-xs": t === "elevated", "bg-transparent text-primary-default border-1 border-solid border-outline": t === "outlined", "bg-primary-default text-primary-on": t === "filled", "bg-secondary-container text-secondary-onContainer": t === "filled tonal", "text-primary-default": t === "text" }, a = { "absolute inset-0 hover:opacity-[0.08] z-0 rounded-full": !0, "hover:bg-primary-on": t === "filled", "hover:bg-primary-default": t === "outlined" || t === "elevated" || t === "text", "hover:bg-secondary-container": t === "filled tonal" };
55
55
  return this.href ? d`
56
56
  <a
57
57
  part="base"
@@ -84,12 +84,12 @@ let r = class extends v(x`:host{
84
84
  `;
85
85
  }
86
86
  };
87
- r.shadowRootOptions = { ...g.shadowRootOptions, mode: "open", delegatesFocus: !0 }, n([m('[part="base"]', !0)], r.prototype, "nativeElement", 2), n([s({ reflect: !0, type: String })], r.prototype, "variant", 2), n([s()], r.prototype, "width", 2), n([s({ reflect: !0, type: String })], r.prototype, "type", 2), n([s()], r.prototype, "href", 2), n([s({ type: Boolean, reflect: !0 })], r.prototype, "disabled", 2), n([s({ attribute: "aria-label" })], r.prototype, "ariaLabel", 1), n([f({ slot: "prefix", flatten: !0, selector: "img" })], r.prototype, "prefixImgs", 2), n([f({ slot: "suffix", flatten: !0, selector: "img" })], r.prototype, "suffixImgs", 2), r = n([y("schmancy-button")], r);
88
- var L = Object.defineProperty, z = Object.getOwnPropertyDescriptor, p = (t, e, a, l) => {
89
- for (var b, i = l > 1 ? void 0 : l ? z(e, a) : e, c = t.length - 1; c >= 0; c--) (b = t[c]) && (i = (l ? b(e, a, i) : b(i)) || i);
90
- return l && i && L(e, a, i), i;
87
+ l.shadowRootOptions = { ...g.shadowRootOptions, mode: "open", delegatesFocus: !0 }, n([m('[part="base"]', !0)], l.prototype, "nativeElement", 2), n([s({ reflect: !0, type: String })], l.prototype, "variant", 2), n([s()], l.prototype, "width", 2), n([s({ type: String })], l.prototype, "size", 2), n([s({ reflect: !0, type: String })], l.prototype, "type", 2), n([s()], l.prototype, "href", 2), n([s({ type: Boolean, reflect: !0 })], l.prototype, "disabled", 2), n([s({ attribute: "aria-label" })], l.prototype, "ariaLabel", 1), n([f({ slot: "prefix", flatten: !0, selector: "img" })], l.prototype, "prefixImgs", 2), n([f({ slot: "suffix", flatten: !0, selector: "img" })], l.prototype, "suffixImgs", 2), l = n([y("schmancy-button")], l);
88
+ var L = Object.defineProperty, z = Object.getOwnPropertyDescriptor, p = (t, e, a, r) => {
89
+ for (var b, i = r > 1 ? void 0 : r ? z(e, a) : e, c = t.length - 1; c >= 0; c--) (b = t[c]) && (i = (r ? b(e, a, i) : b(i)) || i);
90
+ return r && i && L(e, a, i), i;
91
91
  };
92
- let o = class extends v(x`
92
+ let o = class extends x(v`
93
93
  :host {
94
94
  display: block;
95
95
  }
@@ -119,7 +119,7 @@ let o = class extends v(x`
119
119
  firstUpdated(t) {
120
120
  }
121
121
  render() {
122
- const t = this.variant === "tonal" ? "filled tonal" : this.variant, e = { "z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden": !0, "opacity-[0.38]": this.disabled, "cursor-pointer": !this.disabled, "hover:shadow-xs": !this.disabled && (t === "outlined" || t === "text" || t === "filled" || t === "filled tonal"), "hover:shadow-sm": !this.disabled && t === "elevated", "w-full text-center": this.width === "full", "bg-surface-low text-primary-default shadow-xs": t === "elevated", "bg-transparent text-primary-default border-1 border-outline": t === "outlined", "bg-primary-default text-primary-on": t === "filled", "bg-secondary-container text-secondary-onContainer": t === "filled tonal", "text-primary-default": t === "text", "px-[6px] py-[6px]": this.size === "sm", "px-[8px] py-[8px]": this.size === "md", "px-[12px] py-[12px]": this.size === "lg", "px-[16px] py-[16px]": this.size === "xl" }, a = { "hover:opacity-[0.08] rounded-full z-0": !0, "hover:bg-primary-on": t === "filled", "hover:bg-primary-default": t === "outlined" || t === "elevated" || t === "text", "hover:bg-secondary-container": t === "filled tonal" }, l = this.size === "sm" ? "18px" : this.size === "md" ? "24px" : this.size === "lg" ? "32px" : "40px";
122
+ const t = this.variant === "tonal" ? "filled tonal" : this.variant, e = { "z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden": !0, "opacity-[0.38]": this.disabled, "cursor-pointer": !this.disabled, "hover:shadow-xs": !this.disabled && (t === "outlined" || t === "text" || t === "filled" || t === "filled tonal"), "hover:shadow-sm": !this.disabled && t === "elevated", "w-full text-center": this.width === "full", "bg-surface-low text-primary-default shadow-xs": t === "elevated", "bg-transparent text-primary-default border-1 border-outline": t === "outlined", "bg-primary-default text-primary-on": t === "filled", "bg-secondary-container text-secondary-onContainer": t === "filled tonal", "text-primary-default": t === "text", "px-[6px] py-[6px]": this.size === "sm", "px-[8px] py-[8px]": this.size === "md", "px-[12px] py-[12px]": this.size === "lg", "px-[16px] py-[16px]": this.size === "xl" }, a = { "hover:opacity-[0.08] rounded-full z-0": !0, "hover:bg-primary-on": t === "filled", "hover:bg-primary-default": t === "outlined" || t === "elevated" || t === "text", "hover:bg-secondary-container": t === "filled tonal" }, r = this.size === "sm" ? "18px" : this.size === "md" ? "24px" : this.size === "lg" ? "32px" : "40px";
123
123
  return this.href ? d`
124
124
  <a
125
125
  part="base"
@@ -131,7 +131,7 @@ let o = class extends v(x`
131
131
  @click=${this.disabled ? this._preventDefault : void 0}
132
132
  >
133
133
  ${u(!this.disabled, () => d`<div class="absolute inset-0 ${this.classMap(a)}"></div>`)}
134
- ${this.text ? d`<slot></slot>` : d`<schmancy-icon size=${l}><slot></slot></schmancy-icon>`}
134
+ ${this.text ? d`<slot></slot>` : d`<schmancy-icon size=${r}><slot></slot></schmancy-icon>`}
135
135
  </a>
136
136
  ` : d`
137
137
  <button
@@ -143,14 +143,14 @@ let o = class extends v(x`
143
143
  tabindex=${h(this.disabled ? "-1" : void 0)}
144
144
  >
145
145
  ${u(!this.disabled, () => d`<div class="absolute inset-0 ${this.classMap(a)}"></div>`)}
146
- ${this.text ? d`<slot></slot>` : d`<schmancy-icon size=${l}><slot></slot></schmancy-icon>`}
146
+ ${this.text ? d`<slot></slot>` : d`<schmancy-icon size=${r}><slot></slot></schmancy-icon>`}
147
147
  </button>
148
148
  `;
149
149
  }
150
150
  };
151
151
  o.shadowRootOptions = { ...g.shadowRootOptions, mode: "open", delegatesFocus: !0 }, p([m('[part="base"]', !0)], o.prototype, "nativeElement", 2), p([s({ type: String })], o.prototype, "size", 2), p([s({ reflect: !0, type: String })], o.prototype, "variant", 2), p([s()], o.prototype, "width", 2), p([s({ reflect: !0, type: String })], o.prototype, "type", 2), p([s()], o.prototype, "href", 2), p([s({ type: Boolean, reflect: !0 })], o.prototype, "disabled", 2), p([s({ type: Boolean, reflect: !0 })], o.prototype, "text", 2), p([s({ attribute: "aria-label" })], o.prototype, "ariaLabel", 1), o = p([y("schmancy-icon-button")], o);
152
152
  export {
153
- r as S,
153
+ l as S,
154
154
  o as a
155
155
  };
156
- //# sourceMappingURL=icon-button-PpRHFLCj.js.map
156
+ //# sourceMappingURL=icon-button-CbgQp3AL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-button-CbgQp3AL.js","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement(\n\tcss`:host{\n\t\tdisplay: inline-block;\n\t\tmin-width: fit-content;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t}`\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The size of the button.\n\t * @attr\n\t * @type {'sm' | 'md' | 'lg'}\n\t * @default 'md'\n\t * @public\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' = 'md'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-5', 'max-w-5', 'sm:max-h-6', 'sm:max-w-6', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 transition-all duration-200 relative rounded-full inline-flex justify-center items-center outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden w-[inherit] overflow-hidden':\n\t\t\t\ttrue,\n\t\t\t// Size-based padding and text sizing\n\t\t\t'py-1 px-2 text-sm gap-1': this.size === 'sm',\n\t\t\t'py-1.5 px-3 sm:py-2 sm:px-4 text-sm sm:text-base gap-1 sm:gap-1.5 md:gap-2': this.size === 'md',\n\t\t\t'py-2 px-4 sm:py-3 sm:px-5 text-base sm:text-lg gap-1.5 sm:gap-2 md:gap-3': this.size === 'lg',\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t/**\n\t * Render slot content as text instead of wrapping in schmancy-icon.\n\t * Use this when you want to display text labels in the button.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic text = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Map 'tonal' variant to 'filled tonal' for backwards compatibility\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant;\n\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(effectiveVariant === 'outlined' ||\n\t\t\t\t\teffectiveVariant === 'text' ||\n\t\t\t\t\teffectiveVariant === 'filled' ||\n\t\t\t\t\teffectiveVariant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && effectiveVariant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': effectiveVariant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': effectiveVariant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': effectiveVariant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': effectiveVariant === 'filled tonal',\n\t\t\t'text-primary-default': effectiveVariant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t\t'px-[16px] py-[16px]': this.size === 'xl',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled',\n\t\t\t'hover:bg-primary-default': effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal',\n\t\t}\n\n\t\t// Icon size mapping\n\t\tconst iconSize = this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : this.size === 'lg' ? '32px' : '40px';\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t${this.text\n\t\t\t\t\t\t? html`<slot></slot>`\n\t\t\t\t\t\t: html`<schmancy-icon size=${iconSize}><slot></slot></schmancy-icon>`\n\t\t\t\t\t}\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t${this.text\n\t\t\t\t\t? html`<slot></slot>`\n\t\t\t\t\t: html`<schmancy-icon size=${iconSize}><slot></slot></schmancy-icon>`\n\t\t\t\t}\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","css","constructor","super","arguments","this","variant","width","size","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","ariaLabel","options","nativeElement","focus","blur","imgClasses","firstUpdated","prefixImgs","forEach","img","classList","add","setAttribute","suffixImgs","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","render","effectiveVariant","classes","stateLayerClasses","href","html","ifDefined","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","text","click","_changedProperties","iconSize"],"mappings":"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"}
package/dist/icons.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./icon-Dsa_BddL.cjs");
1
+ "use strict";require("./icon-DJnGMAQ2.cjs");
2
2
  //# sourceMappingURL=icons.cjs.map
package/dist/icons.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./icon-DHT8YsE3.js";
1
+ import "./icon-D0FAI5uJ.js";
2
2
  //# sourceMappingURL=icons.js.map