@mhmo91/schmancy 0.9.27 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1041) hide show
  1. package/custom-elements.json +987 -2259
  2. package/dist/active-host-0of-L858.cjs +1 -0
  3. package/dist/active-host-0of-L858.cjs.map +1 -0
  4. package/dist/active-host-D-a1X-nq.js +57 -0
  5. package/dist/active-host-D-a1X-nq.js.map +1 -0
  6. package/dist/agent/{flow-CvG1fLW5.js.map → flow-CaPi2G8y.js.map} +1 -1
  7. package/dist/agent/{rolldown-runtime-BIIoCavz.js → rolldown-runtime-DsMetpgY.js} +2 -9
  8. package/dist/agent/schmancy.agent.js +6465 -7794
  9. package/dist/agent/schmancy.agent.js.map +1 -1
  10. package/dist/agent/schmancy.manifest.json +262 -1462
  11. package/dist/agent/{vendor-highlight-Dow87ZL_.js → vendor-highlight-CHJZQQB7.js} +85 -90
  12. package/dist/agent/{vendor-highlight-Dow87ZL_.js.map → vendor-highlight-CHJZQQB7.js.map} +1 -1
  13. package/dist/agent/{vendor-jsqr-Bl4iAtKC.js → vendor-jsqr-r7GNh4P3.js} +1 -1
  14. package/dist/agent/{vendor-jsqr-Bl4iAtKC.js.map → vendor-jsqr-r7GNh4P3.js.map} +1 -1
  15. package/dist/agent/{vendor-material-color-DcL7ZPxx.js.map → vendor-material-color-Be96dpGE.js.map} +1 -1
  16. package/dist/{animation-hXFClrIn.js.map → animation-BK-8BwY8.js.map} +1 -1
  17. package/dist/{animation-CQRdLgzX.cjs.map → animation-CO_Csq84.cjs.map} +1 -1
  18. package/dist/{area-BGBCMC79.js → area-C_J4qxKO.js} +20 -15
  19. package/dist/area-C_J4qxKO.js.map +1 -0
  20. package/dist/area-ISC8Mdkh.cjs +12 -0
  21. package/dist/area-ISC8Mdkh.cjs.map +1 -0
  22. package/dist/area.cjs +1 -1
  23. package/dist/area.js +2 -2
  24. package/dist/{audio-Dvr-RBzE.cjs → audio-DZN8HsSS.cjs} +1 -1
  25. package/dist/{audio-Dvr-RBzE.cjs.map → audio-DZN8HsSS.cjs.map} +1 -1
  26. package/dist/{audio-ql6nvY0y.js → audio-Tmre4WyL.js} +1 -1
  27. package/dist/{audio-ql6nvY0y.js.map → audio-Tmre4WyL.js.map} +1 -1
  28. package/dist/audio.cjs +1 -1
  29. package/dist/audio.js +2 -2
  30. package/dist/autocomplete-BDF85W0J.cjs +115 -0
  31. package/dist/autocomplete-BDF85W0J.cjs.map +1 -0
  32. package/dist/{autocomplete-C2P0Soht.js → autocomplete-CM8VqW9S.js} +29 -26
  33. package/dist/autocomplete-CM8VqW9S.js.map +1 -0
  34. package/dist/autocomplete.cjs +1 -1
  35. package/dist/autocomplete.js +1 -1
  36. package/dist/avatar.cjs +7 -0
  37. package/dist/avatar.cjs.map +1 -0
  38. package/dist/avatar.js +87 -0
  39. package/dist/avatar.js.map +1 -0
  40. package/dist/badge.cjs +1 -1
  41. package/dist/badge.js +1 -1
  42. package/dist/boat-CpXe-Qto.cjs +80 -0
  43. package/dist/boat-CpXe-Qto.cjs.map +1 -0
  44. package/dist/{boat-DXZ0k7oa.js → boat-DxYNK4xT.js} +43 -54
  45. package/dist/boat-DxYNK4xT.js.map +1 -0
  46. package/dist/boat.cjs +1 -1
  47. package/dist/boat.js +1 -1
  48. package/dist/breadcrumb.cjs +4 -4
  49. package/dist/breadcrumb.cjs.map +1 -1
  50. package/dist/breadcrumb.js +16 -11
  51. package/dist/breadcrumb.js.map +1 -1
  52. package/dist/{busy-iRjq6Nvd.js → busy-CP-gRfAP.js} +14 -9
  53. package/dist/busy-CP-gRfAP.js.map +1 -0
  54. package/dist/{busy-DGYhpTnO.cjs → busy-Dma4gtnz.cjs} +4 -4
  55. package/dist/busy-Dma4gtnz.cjs.map +1 -0
  56. package/dist/busy.cjs +1 -1
  57. package/dist/busy.js +1 -1
  58. package/dist/button.cjs +24 -24
  59. package/dist/button.cjs.map +1 -1
  60. package/dist/button.js +42 -37
  61. package/dist/button.js.map +1 -1
  62. package/dist/{card-wUTjx0EC.js → card-Bv--HeGO.js} +41 -30
  63. package/dist/card-Bv--HeGO.js.map +1 -0
  64. package/dist/{card-DjYnCckw.cjs → card-ClroODSK.cjs} +6 -6
  65. package/dist/card-ClroODSK.cjs.map +1 -0
  66. package/dist/card.cjs +1 -1
  67. package/dist/card.js +1 -1
  68. package/dist/charts.cjs +5 -5
  69. package/dist/charts.cjs.map +1 -1
  70. package/dist/charts.js +21 -16
  71. package/dist/charts.js.map +1 -1
  72. package/dist/{checkbox-VBSenxgb.js → checkbox-1gQOOcja.js} +86 -82
  73. package/dist/checkbox-1gQOOcja.js.map +1 -0
  74. package/dist/checkbox-DvTZXN1Y.cjs +39 -0
  75. package/dist/checkbox-DvTZXN1Y.cjs.map +1 -0
  76. package/dist/checkbox.cjs +1 -1
  77. package/dist/checkbox.js +1 -1
  78. package/dist/{chips-D6ptH5re.cjs → chips-Bw7FNDpX.cjs} +19 -19
  79. package/dist/chips-Bw7FNDpX.cjs.map +1 -0
  80. package/dist/{chips-BDS9lkPa.js → chips-wkfKzf_e.js} +146 -136
  81. package/dist/chips-wkfKzf_e.js.map +1 -0
  82. package/dist/chips.cjs +1 -1
  83. package/dist/chips.js +2 -2
  84. package/dist/{code-highlight-BzRmBZzz.cjs → code-highlight-CJzuds4c.cjs} +15 -15
  85. package/dist/code-highlight-CJzuds4c.cjs.map +1 -0
  86. package/dist/{code-highlight-Bi91XHJN.js → code-highlight-CcdCFMrn.js} +37 -40
  87. package/dist/code-highlight-CcdCFMrn.js.map +1 -0
  88. package/dist/code-highlight.cjs +1 -1
  89. package/dist/code-highlight.js +1 -1
  90. package/dist/connectivity.cjs +2 -2
  91. package/dist/connectivity.cjs.map +1 -1
  92. package/dist/connectivity.js +10 -7
  93. package/dist/connectivity.js.map +1 -1
  94. package/dist/content-drawer.cjs +1 -1
  95. package/dist/content-drawer.js +2 -2
  96. package/dist/context-Bdu1xt0W.js +3 -0
  97. package/dist/{context-BerzpUhI.js.map → context-Bdu1xt0W.js.map} +1 -1
  98. package/dist/context-daN5G6HS.cjs +1 -0
  99. package/dist/{context-C6dHUHhi.cjs.map → context-daN5G6HS.cjs.map} +1 -1
  100. package/dist/{cursor-glow-BydlDInj.js → cursor-glow-Ah7VXSj7.js} +1 -1
  101. package/dist/{cursor-glow-BydlDInj.js.map → cursor-glow-Ah7VXSj7.js.map} +1 -1
  102. package/dist/{cursor-glow-Duw9jHmh.cjs → cursor-glow-Bulq-38P.cjs} +1 -1
  103. package/dist/{cursor-glow-Duw9jHmh.cjs.map → cursor-glow-Bulq-38P.cjs.map} +1 -1
  104. package/dist/{date-range-ClTMg1AB.js → date-range-BDHz_Olm.js} +16 -17
  105. package/dist/date-range-BDHz_Olm.js.map +1 -0
  106. package/dist/date-range-BsPW60vp.cjs +131 -0
  107. package/dist/date-range-BsPW60vp.cjs.map +1 -0
  108. package/dist/{date-range-inline-CpKG6qt2.js → date-range-inline-1NmZE_Xr.js} +5 -5
  109. package/dist/{date-range-inline-CpKG6qt2.js.map → date-range-inline-1NmZE_Xr.js.map} +1 -1
  110. package/dist/date-range-inline-BsjNNGFR.cjs +43 -0
  111. package/dist/{date-range-inline-B9Dp2z6C.cjs.map → date-range-inline-BsjNNGFR.cjs.map} +1 -1
  112. package/dist/date-range-inline.cjs +1 -1
  113. package/dist/date-range-inline.js +1 -1
  114. package/dist/date-range.cjs +1 -1
  115. package/dist/date-range.js +1 -1
  116. package/dist/delay.cjs +9 -1
  117. package/dist/delay.cjs.map +1 -0
  118. package/dist/delay.js +77 -2
  119. package/dist/delay.js.map +1 -0
  120. package/dist/{details-CPjlqQD4.js → details-BEp2s2ca.js} +19 -18
  121. package/dist/details-BEp2s2ca.js.map +1 -0
  122. package/dist/{details-Cz9ok9si.cjs → details-BtUNqzn8.cjs} +9 -9
  123. package/dist/details-BtUNqzn8.cjs.map +1 -0
  124. package/dist/details.cjs +1 -1
  125. package/dist/details.js +1 -1
  126. package/dist/{dialog-service-DH-tjPuE.js → dialog-service-DI9PPy4H.js} +2 -2
  127. package/dist/dialog-service-DI9PPy4H.js.map +1 -0
  128. package/dist/{dialog-service-CzDO08Gy.cjs → dialog-service-DJd5L0f5.cjs} +1 -1
  129. package/dist/dialog-service-DJd5L0f5.cjs.map +1 -0
  130. package/dist/dialog.cjs +2 -2
  131. package/dist/dialog.cjs.map +1 -1
  132. package/dist/dialog.js +13 -14
  133. package/dist/dialog.js.map +1 -1
  134. package/dist/directives.cjs +2 -11
  135. package/dist/directives.cjs.map +1 -1
  136. package/dist/directives.js +141 -227
  137. package/dist/directives.js.map +1 -1
  138. package/dist/discovery.cjs +1 -1
  139. package/dist/discovery.cjs.map +1 -1
  140. package/dist/discovery.js +1 -1
  141. package/dist/discovery.js.map +1 -1
  142. package/dist/{divider-CILo3_vi.cjs → divider-CpNT11Iy.cjs} +3 -3
  143. package/dist/divider-CpNT11Iy.cjs.map +1 -0
  144. package/dist/{divider-ghgyw5CU.js → divider-VxpjZ8hk.js} +11 -9
  145. package/dist/divider-VxpjZ8hk.js.map +1 -0
  146. package/dist/divider.cjs +1 -1
  147. package/dist/divider.js +1 -1
  148. package/dist/dropdown.cjs +4 -4
  149. package/dist/dropdown.cjs.map +1 -1
  150. package/dist/dropdown.js +29 -28
  151. package/dist/dropdown.js.map +1 -1
  152. package/dist/expand-05azMpho.cjs +141 -0
  153. package/dist/expand-05azMpho.cjs.map +1 -0
  154. package/dist/{expand-CbjBr_Ds.js → expand-CRUl3-mN.js} +24 -20
  155. package/dist/expand-CRUl3-mN.js.map +1 -0
  156. package/dist/expand.cjs +1 -1
  157. package/dist/expand.js +1 -1
  158. package/dist/{extra-BZeZOMBI.cjs → extra-CyERULfm.cjs} +6 -6
  159. package/dist/extra-CyERULfm.cjs.map +1 -0
  160. package/dist/{extra-DK9MQtPJ.js → extra-aNV1fO6W.js} +19 -14
  161. package/dist/extra-aNV1fO6W.js.map +1 -0
  162. package/dist/extra.cjs +1 -1
  163. package/dist/extra.js +1 -1
  164. package/dist/float-DRET9mVZ.cjs +1 -0
  165. package/dist/{float-CuZ8LOgB.cjs.map → float-DRET9mVZ.cjs.map} +1 -1
  166. package/dist/{float-BfCvGeY9.js → float-N3qhNET_.js} +2 -2
  167. package/dist/{float-BfCvGeY9.js.map → float-N3qhNET_.js.map} +1 -1
  168. package/dist/float.cjs +1 -1
  169. package/dist/float.js +1 -1
  170. package/dist/{form-rCZqoAoK.js → form-BtwOBMZ9.js} +1 -1
  171. package/dist/form-BtwOBMZ9.js.map +1 -0
  172. package/dist/{form-wI58M85H.cjs → form-CSJp687X.cjs} +1 -1
  173. package/dist/form-CSJp687X.cjs.map +1 -0
  174. package/dist/form.cjs +1 -1
  175. package/dist/form.js +1 -1
  176. package/dist/handover/agent-runtime-followups.md +1 -1
  177. package/dist/handover/agent-runtime-v1.md +3 -3
  178. package/dist/handover/claude-design-brief.md +19 -54
  179. package/dist/handover/claude-design-setup.md +57 -0
  180. package/dist/{hashContent-B2IntJQf.js.map → hashContent-1ARKIsx9.js.map} +1 -1
  181. package/dist/{hashContent-CahnEuut.cjs.map → hashContent-Bp5S6T4U.cjs.map} +1 -1
  182. package/dist/{icons-Drq4kKy2.js → icons-BBJqwT_B.js} +27 -24
  183. package/dist/icons-BBJqwT_B.js.map +1 -0
  184. package/dist/icons-CNixJ6kL.cjs +52 -0
  185. package/dist/icons-CNixJ6kL.cjs.map +1 -0
  186. package/dist/icons.cjs +1 -1
  187. package/dist/icons.js +1 -1
  188. package/dist/{iframe-BmyHW8km.js → iframe-DoN_toqE.js} +17 -11
  189. package/dist/iframe-DoN_toqE.js.map +1 -0
  190. package/dist/iframe-g-4DjAD7.cjs +24 -0
  191. package/dist/iframe-g-4DjAD7.cjs.map +1 -0
  192. package/dist/iframe.cjs +1 -1
  193. package/dist/iframe.js +1 -1
  194. package/dist/index.cjs +1 -1
  195. package/dist/index.js +77 -77
  196. package/dist/{input-Bc3bVISm.js → input-ClnkMJgh.js} +30 -30
  197. package/dist/input-ClnkMJgh.js.map +1 -0
  198. package/dist/{input-BGNZlfL8.cjs → input-CwFslLcF.cjs} +14 -14
  199. package/dist/input-CwFslLcF.cjs.map +1 -0
  200. package/dist/{input-chip-DN-cwf11.cjs → input-chip-DMXRT7bK.cjs} +2 -2
  201. package/dist/input-chip-DMXRT7bK.cjs.map +1 -0
  202. package/dist/{input-chip-BQrjpjaQ.js → input-chip-DwSyFv1x.js} +7 -4
  203. package/dist/input-chip-DwSyFv1x.js.map +1 -0
  204. package/dist/input.cjs +1 -1
  205. package/dist/input.js +1 -1
  206. package/dist/json.cjs +1 -1
  207. package/dist/json.cjs.map +1 -1
  208. package/dist/json.js +7 -5
  209. package/dist/json.js.map +1 -1
  210. package/dist/kbd.cjs +2 -2
  211. package/dist/kbd.cjs.map +1 -1
  212. package/dist/kbd.js +9 -7
  213. package/dist/kbd.js.map +1 -1
  214. package/dist/{layout-fjM1DWlF.js → layout-BghHmee6.js} +1 -1
  215. package/dist/{layout-fjM1DWlF.js.map → layout-BghHmee6.js.map} +1 -1
  216. package/dist/{layout-CTfRXQoz.cjs → layout-VmxXuGGp.cjs} +1 -1
  217. package/dist/{layout-CTfRXQoz.cjs.map → layout-VmxXuGGp.cjs.map} +1 -1
  218. package/dist/layout.cjs +1 -1
  219. package/dist/layout.js +2 -3
  220. package/dist/{lazy-D6R5N5v4.js.map → lazy-B0ia54tT.js.map} +1 -1
  221. package/dist/{lazy-BDNnH_r7.cjs.map → lazy-Dq9mRRjT.cjs.map} +1 -1
  222. package/dist/{lightbox-CY52Z_ig.js → lightbox-IleIcq19.js} +13 -12
  223. package/dist/lightbox-IleIcq19.js.map +1 -0
  224. package/dist/lightbox-m5FLmYlv.cjs +202 -0
  225. package/dist/lightbox-m5FLmYlv.cjs.map +1 -0
  226. package/dist/lightbox.cjs +1 -1
  227. package/dist/lightbox.js +1 -1
  228. package/dist/{list-D7wUxu1C.js → list-BlXJlm16.js} +26 -21
  229. package/dist/list-BlXJlm16.js.map +1 -0
  230. package/dist/list-C-b9p1yi.cjs +40 -0
  231. package/dist/list-C-b9p1yi.cjs.map +1 -0
  232. package/dist/list.cjs +1 -1
  233. package/dist/list.js +1 -1
  234. package/dist/{magnetic-CVXEkYTA.cjs → magnetic-BH0TsofV.cjs} +1 -1
  235. package/dist/{magnetic-CVXEkYTA.cjs.map → magnetic-BH0TsofV.cjs.map} +1 -1
  236. package/dist/{magnetic-BhXebqF3.js → magnetic-BZGFxAWG.js} +2 -2
  237. package/dist/{magnetic-BhXebqF3.js.map → magnetic-BZGFxAWG.js.map} +1 -1
  238. package/dist/{mailbox-DLiBGJhY.cjs → mailbox-B0hZLpF1.cjs} +64 -66
  239. package/dist/mailbox-B0hZLpF1.cjs.map +1 -0
  240. package/dist/{mailbox--EN-JhjV.js → mailbox-DAmejcKa.js} +137 -126
  241. package/dist/mailbox-DAmejcKa.js.map +1 -0
  242. package/dist/mailbox.cjs +1 -1
  243. package/dist/mailbox.js +1 -1
  244. package/dist/{map-B0S_q3ma.js → map-BoIu47qU.js} +11 -9
  245. package/dist/map-BoIu47qU.js.map +1 -0
  246. package/dist/map-CZ0816EI.cjs +80 -0
  247. package/dist/map-CZ0816EI.cjs.map +1 -0
  248. package/dist/map.cjs +1 -1
  249. package/dist/map.js +1 -1
  250. package/dist/{menu-3edZGQ1x.cjs → menu-BFHBnp5M.cjs} +5 -5
  251. package/dist/menu-BFHBnp5M.cjs.map +1 -0
  252. package/dist/{menu-COeFpb6n.js → menu-BV9_8ys8.js} +15 -10
  253. package/dist/menu-BV9_8ys8.js.map +1 -0
  254. package/dist/menu.cjs +1 -1
  255. package/dist/menu.js +1 -1
  256. package/dist/mixins-BIXF7xkF.cjs +298 -0
  257. package/dist/mixins-BIXF7xkF.cjs.map +1 -0
  258. package/dist/mixins-CL1krSOE.js +627 -0
  259. package/dist/mixins-CL1krSOE.js.map +1 -0
  260. package/dist/mixins.cjs +1 -1
  261. package/dist/mixins.js +2 -87
  262. package/dist/nav-drawer.cjs +1 -1
  263. package/dist/nav-drawer.js +2 -2
  264. package/dist/navigation-bar.cjs +1 -1
  265. package/dist/navigation-bar.js +1 -1
  266. package/dist/navigation-rail.cjs +3 -3
  267. package/dist/navigation-rail.cjs.map +1 -1
  268. package/dist/navigation-rail.js +15 -16
  269. package/dist/navigation-rail.js.map +1 -1
  270. package/dist/notification-CigTy3ia.cjs +23 -0
  271. package/dist/notification-CigTy3ia.cjs.map +1 -0
  272. package/dist/{notification-CC-TFN5v.js → notification-Dzm6zWxX.js} +40 -38
  273. package/dist/notification-Dzm6zWxX.js.map +1 -0
  274. package/dist/notification.cjs +1 -1
  275. package/dist/notification.js +1 -1
  276. package/dist/option-BfvzzkzM.cjs +43 -0
  277. package/dist/option-BfvzzkzM.cjs.map +1 -0
  278. package/dist/{option-BwAF4nAw.js → option-Dyb0Q45u.js} +9 -7
  279. package/dist/option-Dyb0Q45u.js.map +1 -0
  280. package/dist/option.cjs +1 -1
  281. package/dist/option.js +1 -1
  282. package/dist/{overlay-stack-7bs4ZNnh.cjs → overlay-stack-BprhAE9a.cjs} +1 -1
  283. package/dist/{overlay-stack-7bs4ZNnh.cjs.map → overlay-stack-BprhAE9a.cjs.map} +1 -1
  284. package/dist/{overlay-stack-DXPYHPhk.js → overlay-stack-CAQno0CK.js} +1 -1
  285. package/dist/{overlay-stack-DXPYHPhk.js.map → overlay-stack-CAQno0CK.js.map} +1 -1
  286. package/dist/overlay.cjs +43 -45
  287. package/dist/overlay.cjs.map +1 -1
  288. package/dist/overlay.js +684 -268
  289. package/dist/overlay.js.map +1 -1
  290. package/dist/page.cjs +3 -3
  291. package/dist/page.cjs.map +1 -1
  292. package/dist/page.js +15 -13
  293. package/dist/page.js.map +1 -1
  294. package/dist/payment-card-form-CQ6sLlrh.cjs +73 -0
  295. package/dist/{components-DkmEgyAc.cjs.map → payment-card-form-CQ6sLlrh.cjs.map} +1 -1
  296. package/dist/{components-DZgJWHdZ.js → payment-card-form-D9N2Q0wM.js} +21 -22
  297. package/dist/{components-DZgJWHdZ.js.map → payment-card-form-D9N2Q0wM.js.map} +1 -1
  298. package/dist/payment-card-form.cjs +1 -0
  299. package/dist/payment-card-form.js +2 -0
  300. package/dist/{progress-Yz6EMNSu.cjs → progress-Dyri7dc2.cjs} +3 -3
  301. package/dist/progress-Dyri7dc2.cjs.map +1 -0
  302. package/dist/{progress-Bk_Q1Shy.js → progress-LPwPfzBi.js} +16 -13
  303. package/dist/progress-LPwPfzBi.js.map +1 -0
  304. package/dist/progress.cjs +1 -1
  305. package/dist/progress.js +1 -1
  306. package/dist/qr-scanner.cjs +5 -5
  307. package/dist/qr-scanner.cjs.map +1 -1
  308. package/dist/qr-scanner.js +14 -15
  309. package/dist/qr-scanner.js.map +1 -1
  310. package/dist/radio-group-DK-T6jGy.cjs +40 -0
  311. package/dist/radio-group-DK-T6jGy.cjs.map +1 -0
  312. package/dist/{radio-group-BcdcjLNC.js → radio-group-DqP886F-.js} +14 -12
  313. package/dist/radio-group-DqP886F-.js.map +1 -0
  314. package/dist/radio-group.cjs +1 -1
  315. package/dist/radio-group.js +1 -1
  316. package/dist/range.cjs +2 -2
  317. package/dist/range.cjs.map +1 -1
  318. package/dist/range.js +9 -7
  319. package/dist/range.js.map +1 -1
  320. package/dist/{reduced-motion-BZTLqAyl.js.map → reduced-motion-D-L12p7G.js.map} +1 -1
  321. package/dist/{reduced-motion-9RjNnhIg.cjs.map → reduced-motion-Ds-HjMzn.cjs.map} +1 -1
  322. package/dist/{rxjs-utils-DJbZRjp3.cjs.map → rxjs-utils-Csnks202.cjs.map} +1 -1
  323. package/dist/{rxjs-utils-CKTnEKUH.js.map → rxjs-utils-d-ivVN84.js.map} +1 -1
  324. package/dist/rxjs-utils.cjs +1 -1
  325. package/dist/rxjs-utils.js +1 -1
  326. package/dist/{scroll-DXQv0ejL.js → scroll-BD82ANjm.js} +9 -7
  327. package/dist/scroll-BD82ANjm.js.map +1 -0
  328. package/dist/scroll-yfNU0zNO.cjs +26 -0
  329. package/dist/scroll-yfNU0zNO.cjs.map +1 -0
  330. package/dist/search-BLCRsxIC.cjs +1 -0
  331. package/dist/{search-CwMav5QB.cjs.map → search-BLCRsxIC.cjs.map} +1 -1
  332. package/dist/{search-CvUZRLF1.js → search-BTz7-Rev.js} +1 -1
  333. package/dist/{search-CvUZRLF1.js.map → search-BTz7-Rev.js.map} +1 -1
  334. package/dist/{select-BV4lK2zy.cjs → select-BR3r3SZe.cjs} +6 -6
  335. package/dist/select-BR3r3SZe.cjs.map +1 -0
  336. package/dist/{select-DKyGWDsG.js → select-GONAphZI.js} +23 -20
  337. package/dist/select-GONAphZI.js.map +1 -0
  338. package/dist/select.cjs +1 -1
  339. package/dist/select.js +1 -1
  340. package/dist/{sheet-C3TLKItO.js → sheet-C4sAGqTf.js} +22 -20
  341. package/dist/sheet-C4sAGqTf.js.map +1 -0
  342. package/dist/sheet-D9pZMrzs.cjs +35 -0
  343. package/dist/sheet-D9pZMrzs.cjs.map +1 -0
  344. package/dist/sheet.cjs +1 -1
  345. package/dist/sheet.js +2 -2
  346. package/dist/{sheet.service-Dlv20Zfc.js → sheet.service-B7h_-e-q.js} +3 -3
  347. package/dist/{sheet.service-Dlv20Zfc.js.map → sheet.service-B7h_-e-q.js.map} +1 -1
  348. package/dist/sheet.service-C1J0-i4d.cjs +1 -0
  349. package/dist/{sheet.service-RcDBwHmv.cjs.map → sheet.service-C1J0-i4d.cjs.map} +1 -1
  350. package/dist/skeleton.cjs +2 -2
  351. package/dist/skeleton.cjs.map +1 -1
  352. package/dist/skeleton.js +9 -7
  353. package/dist/skeleton.js.map +1 -1
  354. package/dist/skills/INDEX.md +1 -1
  355. package/dist/skills/SKILL.md +17 -5
  356. package/dist/skills/mixins.md +78 -20
  357. package/dist/skills/schmancy/INDEX.md +1 -1
  358. package/dist/skills/schmancy/SKILL.md +17 -5
  359. package/dist/skills/schmancy/mixins.md +78 -20
  360. package/dist/skills/schmancy/state.md +501 -0
  361. package/dist/skills/schmancy/theme.md +15 -0
  362. package/dist/skills/schmancy/timeline-tile.md +95 -0
  363. package/dist/skills/state.md +501 -0
  364. package/dist/skills/theme.md +15 -0
  365. package/dist/skills/timeline-tile.md +95 -0
  366. package/dist/slider.cjs +5 -5
  367. package/dist/slider.cjs.map +1 -1
  368. package/dist/slider.js +18 -13
  369. package/dist/slider.js.map +1 -1
  370. package/dist/{sound.service-DWZe6swU.js → sound.service-Ba_HNBLD.js} +3 -3
  371. package/dist/sound.service-Ba_HNBLD.js.map +1 -0
  372. package/dist/sound.service-CvdB2yUJ.cjs +1 -0
  373. package/dist/sound.service-CvdB2yUJ.cjs.map +1 -0
  374. package/dist/{splash-screen-DbI5RgBf.js → splash-screen-BGMZmQRT.js} +12 -9
  375. package/dist/splash-screen-BGMZmQRT.js.map +1 -0
  376. package/dist/splash-screen-DqULOTZ0.cjs +41 -0
  377. package/dist/splash-screen-DqULOTZ0.cjs.map +1 -0
  378. package/dist/splash-screen.cjs +1 -1
  379. package/dist/splash-screen.js +1 -1
  380. package/dist/{src-00DfxCJq.js → src-CHM4hrEr.js} +299 -351
  381. package/dist/src-CHM4hrEr.js.map +1 -0
  382. package/dist/src-DzFcGdcn.cjs +263 -0
  383. package/dist/src-DzFcGdcn.cjs.map +1 -0
  384. package/dist/state-BAW3C11I.cjs +1 -0
  385. package/dist/state-BAW3C11I.cjs.map +1 -0
  386. package/dist/state-ClRXrqDA.js +846 -0
  387. package/dist/state-ClRXrqDA.js.map +1 -0
  388. package/dist/state.cjs +1 -0
  389. package/dist/state.js +3 -0
  390. package/dist/steps.cjs +10 -10
  391. package/dist/steps.cjs.map +1 -1
  392. package/dist/steps.js +29 -24
  393. package/dist/steps.js.map +1 -1
  394. package/dist/surface-BHJgIDz9.js +24 -0
  395. package/dist/surface-BHJgIDz9.js.map +1 -0
  396. package/dist/surface-DW78bc8W.cjs +7 -0
  397. package/dist/surface-DW78bc8W.cjs.map +1 -0
  398. package/dist/surface.cjs +1 -1
  399. package/dist/surface.js +1 -1
  400. package/dist/switch.cjs +2 -2
  401. package/dist/switch.cjs.map +1 -1
  402. package/dist/switch.js +7 -5
  403. package/dist/switch.js.map +1 -1
  404. package/dist/table.cjs +72 -1
  405. package/dist/table.cjs.map +1 -0
  406. package/dist/table.js +174 -2
  407. package/dist/table.js.map +1 -0
  408. package/dist/{tabs-Ce55RbwF.js → tabs-BCRVyQU1.js} +22 -22
  409. package/dist/tabs-BCRVyQU1.js.map +1 -0
  410. package/dist/tabs-EIEhkEUb.cjs +31 -0
  411. package/dist/tabs-EIEhkEUb.cjs.map +1 -0
  412. package/dist/tabs.cjs +1 -1
  413. package/dist/tabs.js +1 -1
  414. package/dist/teleport.cjs +1 -1
  415. package/dist/teleport.js +2 -2
  416. package/dist/{textarea-DjN1D9u0.js → textarea-DApOhSAL.js} +30 -28
  417. package/dist/textarea-DApOhSAL.js.map +1 -0
  418. package/dist/textarea-zxNlRLVm.cjs +39 -0
  419. package/dist/textarea-zxNlRLVm.cjs.map +1 -0
  420. package/dist/textarea.cjs +1 -1
  421. package/dist/textarea.js +1 -1
  422. package/dist/{theme-pbxlt72h.js → theme-BCUjQH6-.js} +45 -41
  423. package/dist/{theme-pbxlt72h.js.map → theme-BCUjQH6-.js.map} +1 -1
  424. package/dist/theme-Z43TLE61.cjs +181 -0
  425. package/dist/{theme-B-IJ2r7Q.cjs.map → theme-Z43TLE61.cjs.map} +1 -1
  426. package/dist/theme-button-Czsdp3o1.cjs +8 -0
  427. package/dist/theme-button-Czsdp3o1.cjs.map +1 -0
  428. package/dist/{theme-button-CEMeAUOL.js → theme-button-DdSbcivT.js} +3 -4
  429. package/dist/theme-button-DdSbcivT.js.map +1 -0
  430. package/dist/theme-button.cjs +1 -1
  431. package/dist/theme-button.js +1 -1
  432. package/dist/theme.cjs +1 -1
  433. package/dist/{theme.events-NuihzD_p.js.map → theme.events-Cv7N4Toe.js.map} +1 -1
  434. package/dist/{theme.events-DakXxZeP.cjs.map → theme.events-DM4H5F2d.cjs.map} +1 -1
  435. package/dist/{theme.interface-DTwkuAKJ.cjs.map → theme.interface-D9l33b-M.cjs.map} +1 -1
  436. package/dist/{theme.interface-Buged9Cg.js.map → theme.interface-DnVNre4O.js.map} +1 -1
  437. package/dist/theme.js +5 -5
  438. package/dist/{theme.service-cOfPrtfe.js → theme.service-9clsqyee.js} +4 -4
  439. package/dist/theme.service-9clsqyee.js.map +1 -0
  440. package/dist/theme.service-CP71ojp6.cjs +1 -0
  441. package/dist/theme.service-CP71ojp6.cjs.map +1 -0
  442. package/dist/timeline.cjs +277 -0
  443. package/dist/timeline.cjs.map +1 -0
  444. package/dist/timeline.js +326 -0
  445. package/dist/timeline.js.map +1 -0
  446. package/dist/tree.cjs +2 -2
  447. package/dist/tree.cjs.map +1 -1
  448. package/dist/tree.js +15 -13
  449. package/dist/tree.js.map +1 -1
  450. package/dist/typewriter.cjs +10 -123
  451. package/dist/typewriter.cjs.map +1 -1
  452. package/dist/typewriter.js +90 -212
  453. package/dist/typewriter.js.map +1 -1
  454. package/dist/typography.cjs +3 -3
  455. package/dist/typography.cjs.map +1 -1
  456. package/dist/typography.js +18 -112
  457. package/dist/typography.js.map +1 -1
  458. package/dist/utils-Cr-YO4Np.cjs +1 -0
  459. package/dist/utils-Cr-YO4Np.cjs.map +1 -0
  460. package/dist/{utils-Bp2jhyZc.js → utils-hp-DnFf5.js} +16 -6
  461. package/dist/utils-hp-DnFf5.js.map +1 -0
  462. package/dist/utils.cjs +1 -1
  463. package/dist/utils.js +4 -5
  464. package/dist/visually-hidden.cjs +2 -2
  465. package/dist/visually-hidden.cjs.map +1 -1
  466. package/dist/visually-hidden.js +7 -5
  467. package/dist/visually-hidden.js.map +1 -1
  468. package/dist/window-DTgKAQgz.cjs +59 -0
  469. package/dist/window-DTgKAQgz.cjs.map +1 -0
  470. package/dist/{window-CrjZdf7Y.js → window-moDKyGLZ.js} +28 -30
  471. package/dist/window-moDKyGLZ.js.map +1 -0
  472. package/dist/window.cjs +1 -1
  473. package/dist/window.js +1 -1
  474. package/package.json +14 -2
  475. package/plugins/vite-plugin-schmancy-auto-import.ts +143 -0
  476. package/plugins/vite-plugin-schmancy-manifest.ts +438 -0
  477. package/skills/schmancy/INDEX.md +1 -1
  478. package/skills/schmancy/SKILL.md +17 -5
  479. package/skills/schmancy/mixins.md +78 -20
  480. package/skills/schmancy/state.md +501 -0
  481. package/skills/schmancy/theme.md +15 -0
  482. package/skills/schmancy/timeline-tile.md +95 -0
  483. package/src/agent/agent-bundle.test.ts +0 -49
  484. package/src/agent/agent-entry.ts +4 -3
  485. package/src/agent/helpers.ts +1 -95
  486. package/src/agent/schmancy-skill.ts +2 -5
  487. package/src/agent/virtual-manifest.d.ts +1 -12
  488. package/src/area/area.component.ts +7 -19
  489. package/src/area/area.service.test.ts +4 -5
  490. package/src/area/area.service.ts +4 -3
  491. package/src/area/route.component.ts +17 -4
  492. package/src/area/utils.ts +3 -2
  493. package/src/audio/sound.service.ts +7 -11
  494. package/src/autocomplete/autocomplete.ts +18 -21
  495. package/src/{avatar.ts → avatar/avatar.ts} +2 -2
  496. package/src/avatar/index.ts +1 -0
  497. package/src/badge/badge.ts +4 -3
  498. package/src/boat/boat.ts +28 -36
  499. package/src/breadcrumb/breadcrumb.ts +11 -19
  500. package/src/busy/busy.ts +4 -3
  501. package/src/busy/spinner.ts +4 -3
  502. package/src/button/button.ts +6 -11
  503. package/src/button/icon-button.ts +8 -12
  504. package/src/card/actions.ts +4 -12
  505. package/src/card/card.ts +5 -23
  506. package/src/card/content.ts +4 -12
  507. package/src/card/media.ts +4 -9
  508. package/src/charts/area-chart.ts +7 -4
  509. package/src/charts/pills.ts +6 -4
  510. package/src/checkbox/checkbox.test.ts +2 -2
  511. package/src/checkbox/checkbox.ts +3 -9
  512. package/src/chips/assist-chip.ts +6 -14
  513. package/src/chips/chips.ts +7 -21
  514. package/src/chips/filter-chip.ts +4 -3
  515. package/src/chips/input-chip.ts +10 -9
  516. package/src/chips/suggestion-chip.ts +10 -12
  517. package/src/code-highlight/code-highlight.ts +28 -59
  518. package/src/code-highlight/code-preview.ts +11 -9
  519. package/src/connectivity/connectivity-status.ts +4 -3
  520. package/src/content-drawer/drawer.ts +5 -3
  521. package/src/content-drawer/main.ts +5 -3
  522. package/src/content-drawer/sheet.ts +6 -4
  523. package/src/date-range/date-range-dialog.ts +2 -2
  524. package/src/date-range/date-range.ts +3 -2
  525. package/src/delay/delay.ts +2 -2
  526. package/src/details/details.ts +4 -17
  527. package/src/dialog/dialog-service.ts +2 -0
  528. package/src/dialog/dialog.component.ts +9 -9
  529. package/src/directives/drag.ts +1 -9
  530. package/src/directives/index.ts +0 -1
  531. package/src/discovery/discovery.service.ts +1 -1
  532. package/src/divider/divider.ts +5 -14
  533. package/src/dropdown/dropdown-component.ts +5 -16
  534. package/src/dropdown/dropdown-content.ts +7 -14
  535. package/src/expand/expand-root.component.ts +5 -15
  536. package/src/expand/expand.component.ts +4 -17
  537. package/src/extra/countries/countries.ts +5 -13
  538. package/src/extra/timezone/timezone.ts +7 -12
  539. package/src/form/form.test.ts +2 -2
  540. package/src/form/form.ts +2 -9
  541. package/src/icons/icon.ts +4 -3
  542. package/src/iframe/iframe.ts +13 -4
  543. package/src/index.ts +3 -3
  544. package/src/input/input.ts +4 -11
  545. package/src/json/json.ts +4 -3
  546. package/src/kbd/kbd.ts +4 -3
  547. package/src/layout/index.ts +1 -5
  548. package/src/layout/scroll/scroll.ts +5 -8
  549. package/src/lightbox/flip-directive.ts +1 -1
  550. package/src/lightbox/lightbox.ts +5 -14
  551. package/src/list/list-item.ts +4 -13
  552. package/src/list/list.ts +12 -10
  553. package/src/mailbox/email-editor.ts +17 -11
  554. package/src/mailbox/email-layout-selector.ts +2 -2
  555. package/src/mailbox/email-recipients.ts +13 -8
  556. package/src/mailbox/email-template-picker.ts +6 -5
  557. package/src/mailbox/email-viewer.ts +5 -3
  558. package/src/mailbox/mailbox.ts +6 -5
  559. package/src/map/map.ts +8 -6
  560. package/src/menu/menu-item.ts +5 -16
  561. package/src/menu/menu.ts +27 -13
  562. package/src/nav-drawer/appbar.ts +4 -14
  563. package/src/nav-drawer/content.ts +5 -14
  564. package/src/nav-drawer/drawer.ts +5 -18
  565. package/src/nav-drawer/navbar.ts +3 -17
  566. package/src/navigation-bar/navigation-bar-item.ts +8 -6
  567. package/src/navigation-bar/navigation-bar.ts +19 -19
  568. package/src/navigation-rail/navigation-rail-item.ts +9 -5
  569. package/src/navigation-rail/navigation-rail.ts +10 -14
  570. package/src/notification/notification.ts +6 -3
  571. package/src/option/option.ts +4 -3
  572. package/src/overlay/overlay.animations.ts +196 -25
  573. package/src/overlay/overlay.component.ts +397 -190
  574. package/src/overlay/overlay.confirm-body.ts +21 -7
  575. package/src/overlay/overlay.gestures.ts +72 -36
  576. package/src/overlay/overlay.layout.ts +103 -1
  577. package/src/overlay/overlay.positioning.ts +301 -0
  578. package/src/overlay/overlay.service.ts +81 -3
  579. package/src/overlay/overlay.stack.ts +8 -4
  580. package/src/overlay/overlay.types.ts +83 -5
  581. package/src/page/page.ts +16 -11
  582. package/src/payment-card-form/index.ts +1 -0
  583. package/src/{components/form-elements → payment-card-form}/payment-card-form.ts +23 -23
  584. package/src/progress/progress.ts +5 -3
  585. package/src/qr-scanner/qr-scanner.ts +7 -30
  586. package/src/radio-group/radio-button.ts +3 -13
  587. package/src/radio-group/radio-group.ts +5 -22
  588. package/src/range/range.ts +4 -3
  589. package/src/rxjs-utils/waitForElements.ts +1 -1
  590. package/src/rxjs-utils/waitForElementsAll.ts +1 -1
  591. package/src/select/select.ts +10 -18
  592. package/src/sheet/hook.ts +1 -1
  593. package/src/sheet/sheet.ts +5 -20
  594. package/src/skeleton/skeleton.ts +4 -3
  595. package/src/slider/slide.ts +5 -3
  596. package/src/slider/slider.ts +5 -3
  597. package/src/splash-screen/splash-screen.ts +5 -3
  598. package/src/state/CLAUDE.md +161 -0
  599. package/src/state/MIGRATION.md +258 -0
  600. package/src/state/SCOPING.md +134 -0
  601. package/src/state/active-host.ts +156 -0
  602. package/src/state/index.ts +877 -0
  603. package/src/state/persist.ts +208 -0
  604. package/src/state/schmancy-context.ts +84 -0
  605. package/src/state/state.test-d.ts +227 -0
  606. package/src/state/state.test.ts +820 -0
  607. package/src/steps/schmancy-step.ts +5 -3
  608. package/src/steps/schmancy-steps-container.ts +5 -3
  609. package/src/surface/surface.ts +14 -9
  610. package/src/switch/switch.test.ts +2 -2
  611. package/src/switch/switch.ts +8 -10
  612. package/src/table/row.ts +7 -4
  613. package/src/table/table.ts +17 -14
  614. package/src/tabs/index.ts +0 -2
  615. package/src/tabs/tab.ts +2 -2
  616. package/src/tabs/tabs-group.ts +7 -4
  617. package/src/teleport/teleport.component.ts +5 -3
  618. package/src/textarea/textarea.ts +6 -12
  619. package/src/theme/theme-audio-player.ts +7 -5
  620. package/src/theme/theme-controller.ts +2 -2
  621. package/src/theme/theme.component.ts +22 -15
  622. package/src/theme/theme.service.ts +6 -7
  623. package/src/theme/theme.style.css +1 -0
  624. package/src/theme-button/theme-button.ts +2 -2
  625. package/src/timeline/index.ts +1 -0
  626. package/src/timeline/timeline-tile.ts +431 -0
  627. package/src/tree/tree.ts +4 -16
  628. package/src/typewriter/index.ts +1 -1
  629. package/src/typography/typography.ts +5 -98
  630. package/src/utils/intersection.ts +5 -1
  631. package/src/utils/overlay-stack.ts +1 -1
  632. package/src/utils/search.ts +2 -2
  633. package/src/visually-hidden/visually-hidden.ts +4 -3
  634. package/src/window/window-position.ts +3 -6
  635. package/src/window/window.ts +9 -7
  636. package/types/mixins/SchmancyElement.d.ts +49 -0
  637. package/types/mixins/formField.mixin.d.ts +4 -2
  638. package/types/mixins/index.d.ts +1 -0
  639. package/types/mixins/litElement.mixin.d.ts +11 -0
  640. package/types/src/agent/agent-entry.d.ts +1 -1
  641. package/types/src/agent/helpers.d.ts +0 -26
  642. package/types/src/agent/schmancy-skill.d.ts +3 -5
  643. package/types/src/area/area.component.d.ts +3 -17
  644. package/types/src/area/route.component.d.ts +14 -4
  645. package/types/src/autocomplete/autocomplete.d.ts +4 -15
  646. package/types/src/{avatar.d.ts → avatar/avatar.d.ts} +2 -3
  647. package/types/src/avatar/index.d.ts +1 -0
  648. package/types/src/badge/badge.d.ts +3 -3
  649. package/types/src/boat/boat.d.ts +3 -2
  650. package/types/src/breadcrumb/breadcrumb.d.ts +9 -19
  651. package/types/src/busy/busy.d.ts +3 -3
  652. package/types/src/busy/spinner.d.ts +3 -3
  653. package/types/src/button/button.d.ts +4 -10
  654. package/types/src/button/icon-button.d.ts +5 -11
  655. package/types/src/card/actions.d.ts +3 -12
  656. package/types/src/card/card.d.ts +4 -24
  657. package/types/src/card/content.d.ts +3 -12
  658. package/types/src/card/media.d.ts +3 -9
  659. package/types/src/charts/area-chart.d.ts +3 -3
  660. package/types/src/charts/pills.d.ts +3 -3
  661. package/types/src/checkbox/checkbox.d.ts +3 -10
  662. package/types/src/chips/assist-chip.d.ts +5 -15
  663. package/types/src/chips/chips.d.ts +3 -17
  664. package/types/src/chips/filter-chip.d.ts +3 -3
  665. package/types/src/chips/input-chip.d.ts +9 -10
  666. package/types/src/chips/suggestion-chip.d.ts +9 -13
  667. package/types/src/code-highlight/code-highlight.d.ts +4 -11
  668. package/types/src/code-highlight/code-preview.d.ts +3 -3
  669. package/types/src/connectivity/connectivity-status.d.ts +3 -3
  670. package/types/src/content-drawer/drawer.d.ts +4 -4
  671. package/types/src/content-drawer/main.d.ts +3 -3
  672. package/types/src/content-drawer/sheet.d.ts +4 -4
  673. package/types/src/date-range/date-range-dialog.d.ts +2 -3
  674. package/types/src/date-range/date-range.d.ts +2 -3
  675. package/types/src/delay/delay.d.ts +2 -3
  676. package/types/src/details/details.d.ts +3 -14
  677. package/types/src/dialog/dialog.component.d.ts +9 -9
  678. package/types/src/directives/drag.d.ts +1 -3
  679. package/types/src/directives/index.d.ts +0 -1
  680. package/types/src/divider/divider.d.ts +3 -14
  681. package/types/src/dropdown/dropdown-component.d.ts +4 -17
  682. package/types/src/dropdown/dropdown-content.d.ts +6 -14
  683. package/types/src/expand/expand-root.component.d.ts +4 -14
  684. package/types/src/expand/expand.component.d.ts +3 -17
  685. package/types/src/extra/countries/countries.d.ts +3 -13
  686. package/types/src/extra/timezone/timezone.d.ts +4 -11
  687. package/types/src/form/form.d.ts +2 -9
  688. package/types/src/icons/icon.d.ts +3 -3
  689. package/types/src/iframe/iframe.d.ts +5 -3
  690. package/types/src/index.d.ts +3 -3
  691. package/types/src/input/input.d.ts +4 -11
  692. package/types/src/json/json.d.ts +3 -3
  693. package/types/src/kbd/kbd.d.ts +3 -3
  694. package/types/src/layout/index.d.ts +0 -4
  695. package/types/src/layout/scroll/scroll.d.ts +4 -8
  696. package/types/src/lightbox/lightbox.d.ts +3 -14
  697. package/types/src/list/list-item.d.ts +3 -13
  698. package/types/src/list/list.d.ts +11 -10
  699. package/types/src/mailbox/email-editor.d.ts +3 -3
  700. package/types/src/mailbox/email-layout-selector.d.ts +2 -3
  701. package/types/src/mailbox/email-recipients.d.ts +7 -3
  702. package/types/src/mailbox/email-template-picker.d.ts +4 -4
  703. package/types/src/mailbox/email-viewer.d.ts +3 -3
  704. package/types/src/mailbox/mailbox.d.ts +4 -4
  705. package/types/src/map/map.d.ts +4 -3
  706. package/types/src/menu/menu-item.d.ts +3 -16
  707. package/types/src/menu/menu.d.ts +25 -13
  708. package/types/src/nav-drawer/appbar.d.ts +3 -14
  709. package/types/src/nav-drawer/content.d.ts +3 -14
  710. package/types/src/nav-drawer/drawer.d.ts +3 -18
  711. package/types/src/nav-drawer/navbar.d.ts +3 -18
  712. package/types/src/navigation-bar/navigation-bar-item.d.ts +7 -6
  713. package/types/src/navigation-bar/navigation-bar.d.ts +13 -7
  714. package/types/src/navigation-rail/navigation-rail-item.d.ts +9 -6
  715. package/types/src/navigation-rail/navigation-rail.d.ts +10 -15
  716. package/types/src/notification/notification.d.ts +3 -3
  717. package/types/src/option/option.d.ts +3 -3
  718. package/types/src/overlay/overlay.animations.d.ts +54 -5
  719. package/types/src/overlay/overlay.component.d.ts +39 -15
  720. package/types/src/overlay/overlay.confirm-body.d.ts +4 -4
  721. package/types/src/overlay/overlay.gestures.d.ts +26 -17
  722. package/types/src/overlay/overlay.layout.d.ts +27 -1
  723. package/types/src/overlay/overlay.positioning.d.ts +87 -0
  724. package/types/src/overlay/overlay.types.d.ts +59 -5
  725. package/types/src/page/page.d.ts +14 -11
  726. package/types/src/{components/form-elements → payment-card-form}/payment-card-form.d.ts +2 -3
  727. package/types/src/progress/progress.d.ts +3 -3
  728. package/types/src/qr-scanner/qr-scanner.d.ts +3 -3
  729. package/types/src/radio-group/radio-button.d.ts +3 -12
  730. package/types/src/radio-group/radio-group.d.ts +4 -20
  731. package/types/src/range/range.d.ts +3 -3
  732. package/types/src/rxjs-utils/waitForElements.d.ts +1 -1
  733. package/types/src/rxjs-utils/waitForElementsAll.d.ts +1 -1
  734. package/types/src/select/select.d.ts +4 -15
  735. package/types/src/sheet/sheet.d.ts +3 -20
  736. package/types/src/skeleton/skeleton.d.ts +3 -3
  737. package/types/src/slider/slide.d.ts +3 -2
  738. package/types/src/slider/slider.d.ts +3 -3
  739. package/types/src/splash-screen/splash-screen.d.ts +3 -3
  740. package/types/src/state/active-host.d.ts +18 -0
  741. package/types/src/state/index.d.ts +145 -0
  742. package/types/src/state/persist.d.ts +14 -0
  743. package/types/src/state/schmancy-context.d.ts +31 -0
  744. package/types/src/state/state.test-d.d.ts +131 -0
  745. package/types/src/state/state.test.d.ts +1 -0
  746. package/types/src/steps/schmancy-step.d.ts +3 -3
  747. package/types/src/steps/schmancy-steps-container.d.ts +3 -3
  748. package/types/src/surface/surface.d.ts +13 -5
  749. package/types/src/switch/switch.d.ts +7 -11
  750. package/types/src/table/row.d.ts +2 -3
  751. package/types/src/table/table.d.ts +4 -11
  752. package/types/src/tabs/index.d.ts +0 -2
  753. package/types/src/tabs/tab.d.ts +2 -3
  754. package/types/src/tabs/tabs-group.d.ts +3 -3
  755. package/types/src/teleport/teleport.component.d.ts +3 -3
  756. package/types/src/textarea/textarea.d.ts +5 -12
  757. package/types/src/theme/theme-audio-player.d.ts +3 -3
  758. package/types/src/theme/theme-controller.d.ts +2 -2
  759. package/types/src/theme/theme.component.d.ts +18 -13
  760. package/types/src/theme-button/theme-button.d.ts +2 -3
  761. package/types/src/timeline/index.d.ts +1 -0
  762. package/types/src/timeline/timeline-tile.d.ts +44 -0
  763. package/types/src/tree/tree.d.ts +3 -16
  764. package/types/src/typewriter/index.d.ts +1 -1
  765. package/types/src/typography/typography.d.ts +3 -36
  766. package/types/src/visually-hidden/visually-hidden.d.ts +3 -3
  767. package/types/src/window/window.d.ts +3 -3
  768. package/dist/agent/index.es-Dymj8REP.js +0 -489
  769. package/dist/agent/index.es-Dymj8REP.js.map +0 -1
  770. package/dist/area-BGBCMC79.js.map +0 -1
  771. package/dist/area-D7l9KR2N.cjs +0 -12
  772. package/dist/area-D7l9KR2N.cjs.map +0 -1
  773. package/dist/autocomplete-BPD5uraA.cjs +0 -115
  774. package/dist/autocomplete-BPD5uraA.cjs.map +0 -1
  775. package/dist/autocomplete-C2P0Soht.js.map +0 -1
  776. package/dist/boat-BkIO-0No.cjs +0 -80
  777. package/dist/boat-BkIO-0No.cjs.map +0 -1
  778. package/dist/boat-DXZ0k7oa.js.map +0 -1
  779. package/dist/busy-DGYhpTnO.cjs.map +0 -1
  780. package/dist/busy-iRjq6Nvd.js.map +0 -1
  781. package/dist/card-DjYnCckw.cjs.map +0 -1
  782. package/dist/card-wUTjx0EC.js.map +0 -1
  783. package/dist/checkbox-CiYEtw9F.cjs +0 -39
  784. package/dist/checkbox-CiYEtw9F.cjs.map +0 -1
  785. package/dist/checkbox-VBSenxgb.js.map +0 -1
  786. package/dist/chips-BDS9lkPa.js.map +0 -1
  787. package/dist/chips-D6ptH5re.cjs.map +0 -1
  788. package/dist/code-highlight-Bi91XHJN.js.map +0 -1
  789. package/dist/code-highlight-BzRmBZzz.cjs.map +0 -1
  790. package/dist/components-DkmEgyAc.cjs +0 -73
  791. package/dist/components.cjs +0 -1
  792. package/dist/components.js +0 -2
  793. package/dist/context-BerzpUhI.js +0 -3
  794. package/dist/context-C6dHUHhi.cjs +0 -1
  795. package/dist/date-range-BmFxTXiU.cjs +0 -131
  796. package/dist/date-range-BmFxTXiU.cjs.map +0 -1
  797. package/dist/date-range-ClTMg1AB.js.map +0 -1
  798. package/dist/date-range-inline-B9Dp2z6C.cjs +0 -43
  799. package/dist/delay-BHODnTg-.cjs +0 -9
  800. package/dist/delay-BHODnTg-.cjs.map +0 -1
  801. package/dist/delay-Dlk0A3he.js +0 -347
  802. package/dist/delay-Dlk0A3he.js.map +0 -1
  803. package/dist/details-CPjlqQD4.js.map +0 -1
  804. package/dist/details-Cz9ok9si.cjs.map +0 -1
  805. package/dist/dialog-service-CzDO08Gy.cjs.map +0 -1
  806. package/dist/dialog-service-DH-tjPuE.js.map +0 -1
  807. package/dist/divider-CILo3_vi.cjs.map +0 -1
  808. package/dist/divider-ghgyw5CU.js.map +0 -1
  809. package/dist/expand-CbjBr_Ds.js.map +0 -1
  810. package/dist/expand-r3OrSoDk.cjs +0 -141
  811. package/dist/expand-r3OrSoDk.cjs.map +0 -1
  812. package/dist/extra-BZeZOMBI.cjs.map +0 -1
  813. package/dist/extra-DK9MQtPJ.js.map +0 -1
  814. package/dist/float-CuZ8LOgB.cjs +0 -1
  815. package/dist/flow-BPDtbhLe.js +0 -386
  816. package/dist/flow-BPDtbhLe.js.map +0 -1
  817. package/dist/flow-Dn9AZktE.cjs +0 -1
  818. package/dist/flow-Dn9AZktE.cjs.map +0 -1
  819. package/dist/form-rCZqoAoK.js.map +0 -1
  820. package/dist/form-wI58M85H.cjs.map +0 -1
  821. package/dist/handover/agent-runtime-v2-loopback.md +0 -71
  822. package/dist/handover/claude-design-v2-paste.md +0 -42
  823. package/dist/icons-Drq4kKy2.js.map +0 -1
  824. package/dist/icons-DtdhaZdc.cjs +0 -52
  825. package/dist/icons-DtdhaZdc.cjs.map +0 -1
  826. package/dist/iframe-BkwwWIbQ.cjs +0 -24
  827. package/dist/iframe-BkwwWIbQ.cjs.map +0 -1
  828. package/dist/iframe-BmyHW8km.js.map +0 -1
  829. package/dist/index.es-BgmFX1JM.cjs +0 -1
  830. package/dist/index.es-BgmFX1JM.cjs.map +0 -1
  831. package/dist/index.es-CLyb_o3Y.js +0 -489
  832. package/dist/index.es-CLyb_o3Y.js.map +0 -1
  833. package/dist/input-BGNZlfL8.cjs.map +0 -1
  834. package/dist/input-Bc3bVISm.js.map +0 -1
  835. package/dist/input-chip-BQrjpjaQ.js.map +0 -1
  836. package/dist/input-chip-DN-cwf11.cjs.map +0 -1
  837. package/dist/intersection-BrXp4YTO.js +0 -12
  838. package/dist/intersection-BrXp4YTO.js.map +0 -1
  839. package/dist/intersection-DqBqnpgh.cjs +0 -1
  840. package/dist/intersection-DqBqnpgh.cjs.map +0 -1
  841. package/dist/layout-7eyMBmZk.cjs +0 -17
  842. package/dist/layout-7eyMBmZk.cjs.map +0 -1
  843. package/dist/layout-Ox6nJkzC.js +0 -268
  844. package/dist/layout-Ox6nJkzC.js.map +0 -1
  845. package/dist/lightbox-CY52Z_ig.js.map +0 -1
  846. package/dist/lightbox-H8Uq3AXy.cjs +0 -202
  847. package/dist/lightbox-H8Uq3AXy.cjs.map +0 -1
  848. package/dist/list-BGjVo6zb.cjs +0 -40
  849. package/dist/list-BGjVo6zb.cjs.map +0 -1
  850. package/dist/list-D7wUxu1C.js.map +0 -1
  851. package/dist/litElement.mixin-CszkJuNl.js +0 -12
  852. package/dist/litElement.mixin-CszkJuNl.js.map +0 -1
  853. package/dist/litElement.mixin-qh5-IIUq.cjs +0 -1
  854. package/dist/litElement.mixin-qh5-IIUq.cjs.map +0 -1
  855. package/dist/mailbox--EN-JhjV.js.map +0 -1
  856. package/dist/mailbox-DLiBGJhY.cjs.map +0 -1
  857. package/dist/map-B0S_q3ma.js.map +0 -1
  858. package/dist/map-EDQN0I6e.cjs +0 -80
  859. package/dist/map-EDQN0I6e.cjs.map +0 -1
  860. package/dist/menu-3edZGQ1x.cjs.map +0 -1
  861. package/dist/menu-COeFpb6n.js.map +0 -1
  862. package/dist/metric.cjs +0 -69
  863. package/dist/metric.cjs.map +0 -1
  864. package/dist/metric.js +0 -93
  865. package/dist/metric.js.map +0 -1
  866. package/dist/mixins.cjs.map +0 -1
  867. package/dist/mixins.js.map +0 -1
  868. package/dist/notification-CC-TFN5v.js.map +0 -1
  869. package/dist/notification-P4c-kFdH.cjs +0 -23
  870. package/dist/notification-P4c-kFdH.cjs.map +0 -1
  871. package/dist/option-BwAF4nAw.js.map +0 -1
  872. package/dist/option-Cu0ertuF.cjs +0 -43
  873. package/dist/option-Cu0ertuF.cjs.map +0 -1
  874. package/dist/progress-Bk_Q1Shy.js.map +0 -1
  875. package/dist/progress-Yz6EMNSu.cjs.map +0 -1
  876. package/dist/provide-CYgj58u_.cjs +0 -1
  877. package/dist/provide-CYgj58u_.cjs.map +0 -1
  878. package/dist/provide-ydIskwf2.js +0 -107
  879. package/dist/provide-ydIskwf2.js.map +0 -1
  880. package/dist/radio-group-BcdcjLNC.js.map +0 -1
  881. package/dist/radio-group-BpBz5tRA.cjs +0 -40
  882. package/dist/radio-group-BpBz5tRA.cjs.map +0 -1
  883. package/dist/scroll-DXQv0ejL.js.map +0 -1
  884. package/dist/scroll-DbZMTv0K.cjs +0 -26
  885. package/dist/scroll-DbZMTv0K.cjs.map +0 -1
  886. package/dist/search-CwMav5QB.cjs +0 -1
  887. package/dist/select-BV4lK2zy.cjs.map +0 -1
  888. package/dist/select-DKyGWDsG.js.map +0 -1
  889. package/dist/sheet-BAI_jH1t.cjs +0 -35
  890. package/dist/sheet-BAI_jH1t.cjs.map +0 -1
  891. package/dist/sheet-C3TLKItO.js.map +0 -1
  892. package/dist/sheet.service-RcDBwHmv.cjs +0 -1
  893. package/dist/skills/schmancy/store.md +0 -126
  894. package/dist/skills/store.md +0 -126
  895. package/dist/sound.service-BEN6Xjy_.cjs +0 -1
  896. package/dist/sound.service-BEN6Xjy_.cjs.map +0 -1
  897. package/dist/sound.service-DWZe6swU.js.map +0 -1
  898. package/dist/splash-screen-DbI5RgBf.js.map +0 -1
  899. package/dist/splash-screen-DoHRTHi8.cjs +0 -41
  900. package/dist/splash-screen-DoHRTHi8.cjs.map +0 -1
  901. package/dist/src-00DfxCJq.js.map +0 -1
  902. package/dist/src-C_JjQovE.cjs +0 -269
  903. package/dist/src-C_JjQovE.cjs.map +0 -1
  904. package/dist/store-CjFHCSDb.cjs +0 -1
  905. package/dist/store-CjFHCSDb.cjs.map +0 -1
  906. package/dist/store-CjzZDQt8.js +0 -1654
  907. package/dist/store-CjzZDQt8.js.map +0 -1
  908. package/dist/store.cjs +0 -1
  909. package/dist/store.js +0 -2
  910. package/dist/surface-D-GWBcsh.cjs +0 -7
  911. package/dist/surface-D-GWBcsh.cjs.map +0 -1
  912. package/dist/surface-D23JtxYP.js +0 -22
  913. package/dist/surface-D23JtxYP.js.map +0 -1
  914. package/dist/surface.mixin-DqMwoddO.js +0 -320
  915. package/dist/surface.mixin-DqMwoddO.js.map +0 -1
  916. package/dist/surface.mixin-DxOi-xo0.cjs +0 -297
  917. package/dist/surface.mixin-DxOi-xo0.cjs.map +0 -1
  918. package/dist/table-C7b73kdg.cjs +0 -63
  919. package/dist/table-C7b73kdg.cjs.map +0 -1
  920. package/dist/table-CTrhV9-k.js +0 -631
  921. package/dist/table-CTrhV9-k.js.map +0 -1
  922. package/dist/tabs-Ce55RbwF.js.map +0 -1
  923. package/dist/tabs-DAzB8O7w.cjs +0 -31
  924. package/dist/tabs-DAzB8O7w.cjs.map +0 -1
  925. package/dist/tailwind.mixin-DRI1oTYQ.cjs +0 -2
  926. package/dist/tailwind.mixin-DRI1oTYQ.cjs.map +0 -1
  927. package/dist/tailwind.mixin-mdQR3BEO.js +0 -219
  928. package/dist/tailwind.mixin-mdQR3BEO.js.map +0 -1
  929. package/dist/textarea-DjN1D9u0.js.map +0 -1
  930. package/dist/textarea-PuHxBvJA.cjs +0 -39
  931. package/dist/textarea-PuHxBvJA.cjs.map +0 -1
  932. package/dist/theme-B-IJ2r7Q.cjs +0 -181
  933. package/dist/theme-button-BSbYmS4p.cjs +0 -8
  934. package/dist/theme-button-BSbYmS4p.cjs.map +0 -1
  935. package/dist/theme-button-CEMeAUOL.js.map +0 -1
  936. package/dist/theme.service-DxJPUGlu.cjs +0 -1
  937. package/dist/theme.service-DxJPUGlu.cjs.map +0 -1
  938. package/dist/theme.service-cOfPrtfe.js.map +0 -1
  939. package/dist/tslib.es6-Cnt75pb6.cjs +0 -1
  940. package/dist/tslib.es6-Cnt75pb6.cjs.map +0 -1
  941. package/dist/tslib.es6-DMzzJKHV.js +0 -7
  942. package/dist/tslib.es6-DMzzJKHV.js.map +0 -1
  943. package/dist/utils-Bp2jhyZc.js.map +0 -1
  944. package/dist/utils-CBPQvxNW.cjs +0 -1
  945. package/dist/utils-CBPQvxNW.cjs.map +0 -1
  946. package/dist/window-CrjZdf7Y.js.map +0 -1
  947. package/dist/window-DTUARSrU.cjs +0 -59
  948. package/dist/window-DTUARSrU.cjs.map +0 -1
  949. package/skills/schmancy/store.md +0 -126
  950. package/src/components/form-elements/index.ts +0 -1
  951. package/src/components/index.ts +0 -1
  952. package/src/layout/flex/flex.scss +0 -4
  953. package/src/layout/flex/flex.ts +0 -74
  954. package/src/layout/flex/index.ts +0 -1
  955. package/src/layout/grid/.readme +0 -79
  956. package/src/layout/grid/grid.scss +0 -5
  957. package/src/layout/grid/grid.ts +0 -121
  958. package/src/layout/grid/index.ts +0 -1
  959. package/src/layout/layout.ts +0 -122
  960. package/src/layout/v2/flex.ts +0 -243
  961. package/src/layout/v2/index.ts +0 -1
  962. package/src/metric/index.ts +0 -1
  963. package/src/metric/metric.ts +0 -127
  964. package/src/store/context-array.ts +0 -358
  965. package/src/store/context-collection.ts +0 -218
  966. package/src/store/context-create.ts +0 -284
  967. package/src/store/context-object.ts +0 -298
  968. package/src/store/filter-directive.ts +0 -614
  969. package/src/store/index.ts +0 -10
  970. package/src/store/selector-hook.ts +0 -259
  971. package/src/store/selectors.ts +0 -289
  972. package/src/store/storage-manager.ts +0 -269
  973. package/src/store/store.class.ts +0 -239
  974. package/src/store/types.ts +0 -327
  975. package/src/tabs/tabs-compatibility.ts +0 -20
  976. package/src/typewriter/typewriter.ts +0 -410
  977. package/types/src/area/route.test.d.ts +0 -20
  978. package/types/src/button/button.test.d.ts +0 -1
  979. package/types/src/chips/chip.d.ts +0 -3
  980. package/types/src/components/index.d.ts +0 -1
  981. package/types/src/content-drawer/$sheet.d.ts +0 -14
  982. package/types/src/dialog/dailog.d.ts +0 -116
  983. package/types/src/dialog/dialog-content.d.ts +0 -17
  984. package/types/src/directives/guard.d.ts +0 -1
  985. package/types/src/directives/visibility.d.ts +0 -11
  986. package/types/src/form/form-v2.d.ts +0 -22
  987. package/types/src/input/input-v2.d.ts +0 -250
  988. package/types/src/layout/flex/flex.d.ts +0 -26
  989. package/types/src/layout/flex/index.d.ts +0 -1
  990. package/types/src/layout/grid/grid.d.ts +0 -39
  991. package/types/src/layout/grid/index.d.ts +0 -1
  992. package/types/src/layout/layout.d.ts +0 -59
  993. package/types/src/layout/v2/flex.d.ts +0 -65
  994. package/types/src/layout/v2/grid.d.ts +0 -51
  995. package/types/src/layout/v2/index.d.ts +0 -1
  996. package/types/src/lightbox/flip.directive.d.ts +0 -22
  997. package/types/src/metric/index.d.ts +0 -1
  998. package/types/src/metric/metric.d.ts +0 -39
  999. package/types/src/notification/outlet.d.ts +0 -10
  1000. package/types/src/sheet/header.d.ts +0 -10
  1001. package/types/src/store/context-array.d.ts +0 -83
  1002. package/types/src/store/context-collection.d.ts +0 -74
  1003. package/types/src/store/context-create.d.ts +0 -43
  1004. package/types/src/store/context-object.d.ts +0 -46
  1005. package/types/src/store/filter-directive.d.ts +0 -116
  1006. package/types/src/store/immer-integration.d.ts +0 -54
  1007. package/types/src/store/index.d.ts +0 -10
  1008. package/types/src/store/selector-hook.d.ts +0 -46
  1009. package/types/src/store/selectors.d.ts +0 -90
  1010. package/types/src/store/storage-manager.d.ts +0 -48
  1011. package/types/src/store/store.class.d.ts +0 -73
  1012. package/types/src/store/types.d.ts +0 -241
  1013. package/types/src/tabs/tabs-compatibility.d.ts +0 -13
  1014. package/types/src/theme/theme.elevation.d.ts +0 -131
  1015. package/types/src/theme/theme.motion.d.ts +0 -198
  1016. package/types/src/theme/theme.shape.d.ts +0 -144
  1017. package/types/src/theme/theme.state.d.ts +0 -546
  1018. package/types/src/theme/theme.typography.d.ts +0 -74
  1019. package/types/src/tooltip/tooltip.d.ts +0 -33
  1020. package/types/src/typewriter/typewriter.d.ts +0 -94
  1021. /package/dist/agent/{flow-CvG1fLW5.js → flow-CaPi2G8y.js} +0 -0
  1022. /package/dist/agent/{vendor-material-color-DcL7ZPxx.js → vendor-material-color-Be96dpGE.js} +0 -0
  1023. /package/dist/{animation-hXFClrIn.js → animation-BK-8BwY8.js} +0 -0
  1024. /package/dist/{animation-CQRdLgzX.cjs → animation-CO_Csq84.cjs} +0 -0
  1025. /package/dist/{decorate-D_utPUsC.js → decorate-23nYs4Le.js} +0 -0
  1026. /package/dist/{decorate-F9CuyeHg.cjs → decorate-DpFmy0nm.cjs} +0 -0
  1027. /package/dist/{hashContent-B2IntJQf.js → hashContent-1ARKIsx9.js} +0 -0
  1028. /package/dist/{hashContent-CahnEuut.cjs → hashContent-Bp5S6T4U.cjs} +0 -0
  1029. /package/dist/{lazy-D6R5N5v4.js → lazy-B0ia54tT.js} +0 -0
  1030. /package/dist/{lazy-BDNnH_r7.cjs → lazy-Dq9mRRjT.cjs} +0 -0
  1031. /package/dist/{reduced-motion-BZTLqAyl.js → reduced-motion-D-L12p7G.js} +0 -0
  1032. /package/dist/{reduced-motion-9RjNnhIg.cjs → reduced-motion-Ds-HjMzn.cjs} +0 -0
  1033. /package/dist/{rxjs-utils-DJbZRjp3.cjs → rxjs-utils-Csnks202.cjs} +0 -0
  1034. /package/dist/{rxjs-utils-CKTnEKUH.js → rxjs-utils-d-ivVN84.js} +0 -0
  1035. /package/dist/{theme.events-NuihzD_p.js → theme.events-Cv7N4Toe.js} +0 -0
  1036. /package/dist/{theme.events-DakXxZeP.cjs → theme.events-DM4H5F2d.cjs} +0 -0
  1037. /package/dist/{theme.interface-DTwkuAKJ.cjs → theme.interface-D9l33b-M.cjs} +0 -0
  1038. /package/dist/{theme.interface-Buged9Cg.js → theme.interface-DnVNre4O.js} +0 -0
  1039. /package/src/{directives/typewriter.ts → typewriter/typewriter.directive.ts} +0 -0
  1040. /package/types/src/{components/form-elements → payment-card-form}/index.d.ts +0 -0
  1041. /package/types/src/{directives/typewriter.d.ts → typewriter/typewriter.directive.d.ts} +0 -0
package/dist/button.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./provide-CYgj58u_.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./litElement.mixin-qh5-IIUq.cjs`);require(`./mixins.cjs`);const r=require(`./magnetic-CVXEkYTA.cjs`),i=require(`./context-C6dHUHhi.cjs`);let a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/when.js`),c=require(`lit/directives/if-defined.js`);var l=class extends n.t(o.css`:host{
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-BIXF7xkF.cjs`),t=require(`./decorate-DpFmy0nm.cjs`),n=require(`./magnetic-BH0TsofV.cjs`),r=require(`./context-daN5G6HS.cjs`);let i=require(`@lit/context`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/if-defined.js`),c=require(`lit/directives/when.js`);var l=class extends e.s{static{this.styles=[o.css`:host{
2
2
  display: inline-block;
3
3
  min-width: fit-content;
4
4
  overflow: hidden;
@@ -25,38 +25,38 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./ch
25
25
  :host *,
26
26
  * {
27
27
  touch-action: manipulation;
28
- }`){static{this.shadowRootOptions={...o.LitElement.shadowRootOptions,mode:`open`,delegatesFocus:!0}}static{this.formAssociated=!0}constructor(){super(),this.variant=`text`,this.width=`auto`,this.size=`md`,this.type=`button`,this.disabled=!1;try{this.internals=this.attachInternals()}catch{this.internals=void 0}this.addEventListener(`click`,e=>{if(this.disabled)return e.preventDefault(),void e.stopImmediatePropagation();let t=this.internals?.form;t&&(this.type===`submit`?(e.preventDefault(),t.requestSubmit()):this.type===`reset`&&(e.preventDefault(),t.reset()))})}get form(){return this.internals?.form??null}formDisabledCallback(e){this.disabled=e}set ariaLabel(e){let t=this._ariaLabel;this._ariaLabel=e,this.hasAttribute(`aria-label`)&&this.removeAttribute(`aria-label`),this.requestUpdate(`ariaLabel`,t)}get ariaLabel(){return this._ariaLabel}focus(e){this.nativeElement.focus(e)}blur(){this.nativeElement.blur()}get effectiveColor(){return this.color?this.color:(this.variant===`tonal`?`filled tonal`:this.variant)===`filled tonal`?`secondary`:`primary`}get imgClasses(){return[{xxs:`w-3 h-3`,xs:`w-4 h-4`,sm:`w-5 h-5`,md:`w-6 h-6`,lg:`w-7 h-7`}[this.size],`object-contain`]}firstUpdated(){this.prefixImgs?.forEach(e=>{e.classList.add(...this.imgClasses),e.hasAttribute(`alt`)||e.setAttribute(`alt`,``)}),this.suffixImgs?.forEach(e=>{e.classList.add(...this.imgClasses),e.hasAttribute(`alt`)||e.setAttribute(`alt`,``)})}click(){this.dispatchEvent(new Event(`click`,{bubbles:!0,composed:!0}))}_preventDefault(e){e.preventDefault(),e.stopPropagation()}render(){let e=this.variant===`tonal`?`filled tonal`:this.variant,t={"z-0 transition-all duration-200 relative rounded-2xl 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,"h-6":this.size===`xxs`,"h-8":this.size===`xs`,"h-10":this.size===`sm`,"h-12":this.size===`md`,"h-14":this.size===`lg`,"py-1 px-2":this.size===`xxs`,"py-2 px-4":this.size===`xs`,"py-2.5 px-5":this.size===`sm`,"py-3 px-6":this.size===`md`,"py-4 px-7":this.size===`lg`,"text-[10px] font-medium leading-3":this.size===`xxs`,"text-xs font-medium leading-4":this.size===`xs`,"text-sm font-medium leading-5":this.size===`sm`||this.size===`md`,"text-base font-medium leading-6":this.size===`lg`,"tracking-[0.1px]":!0,"gap-0.5":this.size===`xxs`,"gap-1":this.size===`xs`,"gap-1.5":this.size===`sm`,"gap-2":this.size===`md`,"gap-2.5":this.size===`lg`,"cursor-pointer":!this.disabled,"opacity-[0.38]":this.disabled,"hover:shadow-sm":!this.disabled&&e===`elevated`,"w-full tex-center":this.width===`full`,"bg-surface-low shadow-xs":e===`elevated`,"bg-transparent border-1 border-solid":e===`outlined`,"border-outline":e===`outlined`&&this.effectiveColor===`primary`,"border-success-default":e===`outlined`&&this.effectiveColor===`success`,"border-error-default":e===`outlined`&&this.effectiveColor===`error`,"border-warning-default":e===`outlined`&&this.effectiveColor===`warning`,"border-info-default":e===`outlined`&&this.effectiveColor===`info`,"border-secondary-default":e===`outlined`&&this.effectiveColor===`secondary`,"border-outline-variant":e===`outlined`&&this.effectiveColor===`neutral`,"bg-primary-default":e===`filled`&&this.effectiveColor===`primary`,"bg-secondary-default":e===`filled`&&this.effectiveColor===`secondary`,"bg-success-default":e===`filled`&&this.effectiveColor===`success`,"bg-error-default":e===`filled`&&this.effectiveColor===`error`,"bg-warning-default":e===`filled`&&this.effectiveColor===`warning`,"bg-info-default":e===`filled`&&this.effectiveColor===`info`,"bg-surface-containerHighest":e===`filled`&&this.effectiveColor===`neutral`,"text-primary-on":e===`filled`&&this.effectiveColor===`primary`,"text-secondary-on":e===`filled`&&this.effectiveColor===`secondary`,"text-success-on":e===`filled`&&this.effectiveColor===`success`,"text-error-on":e===`filled`&&this.effectiveColor===`error`,"text-warning-on":e===`filled`&&this.effectiveColor===`warning`,"text-info-on":e===`filled`&&this.effectiveColor===`info`,"text-surface-on":e===`filled`&&this.effectiveColor===`neutral`,"bg-primary-container":e===`filled tonal`&&this.effectiveColor===`primary`,"bg-secondary-container":e===`filled tonal`&&this.effectiveColor===`secondary`,"bg-success-container":e===`filled tonal`&&this.effectiveColor===`success`,"bg-error-container":e===`filled tonal`&&this.effectiveColor===`error`,"bg-warning-container":e===`filled tonal`&&this.effectiveColor===`warning`,"bg-info-container":e===`filled tonal`&&this.effectiveColor===`info`,"bg-surface-containerLow":e===`filled tonal`&&this.effectiveColor===`neutral`,"text-primary-onContainer":e===`filled tonal`&&this.effectiveColor===`primary`,"text-secondary-onContainer":e===`filled tonal`&&this.effectiveColor===`secondary`,"text-success-onContainer":e===`filled tonal`&&this.effectiveColor===`success`,"text-error-onContainer":e===`filled tonal`&&this.effectiveColor===`error`,"text-warning-onContainer":e===`filled tonal`&&this.effectiveColor===`warning`,"text-info-onContainer":e===`filled tonal`&&this.effectiveColor===`info`,"text-primary-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`primary`,"text-secondary-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`secondary`,"text-success-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`success`,"text-error-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`error`,"text-warning-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`warning`,"text-info-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`info`,"text-surface-onVariant":(e===`text`||e===`elevated`||e===`outlined`||e===`filled tonal`)&&this.effectiveColor===`neutral`},n={"absolute inset-0 hover:opacity-[0.08] z-0 rounded-2xl":!0,"focus-visible:opacity-[0.10]":!0,"active:opacity-[0.10]":!0,"hover:bg-primary-on":e===`filled`&&this.effectiveColor===`primary`,"hover:bg-secondary-on":e===`filled`&&this.effectiveColor===`secondary`,"hover:bg-success-on":e===`filled`&&this.effectiveColor===`success`,"hover:bg-error-on":e===`filled`&&this.effectiveColor===`error`,"hover:bg-warning-on":e===`filled`&&this.effectiveColor===`warning`,"hover:bg-info-on":e===`filled`&&this.effectiveColor===`info`,"hover:bg-surface-on":e===`filled`&&this.effectiveColor===`neutral`,"hover:bg-primary-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`primary`,"hover:bg-secondary-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`secondary`,"hover:bg-success-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`success`,"hover:bg-error-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`error`,"hover:bg-warning-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`warning`,"hover:bg-info-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`info`,"hover:bg-surface-onVariant":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`neutral`,"hover:bg-primary-container":e===`filled tonal`&&this.effectiveColor===`primary`,"hover:bg-secondary-container":e===`filled tonal`&&this.effectiveColor===`secondary`,"hover:bg-success-container":e===`filled tonal`&&this.effectiveColor===`success`,"hover:bg-error-container":e===`filled tonal`&&this.effectiveColor===`error`,"hover:bg-warning-container":e===`filled tonal`&&this.effectiveColor===`warning`,"hover:bg-info-container":e===`filled tonal`&&this.effectiveColor===`info`,"hover:bg-surface-containerLow":e===`filled tonal`&&this.effectiveColor===`neutral`};return this.href?o.html`
28
+ }`]}static{this.shadowRootOptions={...o.LitElement.shadowRootOptions,mode:`open`,delegatesFocus:!0}}static{this.formAssociated=!0}constructor(){super(),this.variant=`text`,this.width=`auto`,this.size=`md`,this.type=`button`,this.disabled=!1;try{this.internals=this.attachInternals()}catch{this.internals=void 0}this.addEventListener(`click`,e=>{if(this.disabled)return e.preventDefault(),void e.stopImmediatePropagation();let t=this.internals?.form;t&&(this.type===`submit`?(e.preventDefault(),t.requestSubmit()):this.type===`reset`&&(e.preventDefault(),t.reset()))})}get form(){return this.internals?.form??null}formDisabledCallback(e){this.disabled=e}set ariaLabel(e){let t=this._ariaLabel;this._ariaLabel=e,this.hasAttribute(`aria-label`)&&this.removeAttribute(`aria-label`),this.requestUpdate(`ariaLabel`,t)}get ariaLabel(){return this._ariaLabel}focus(e){this.nativeElement.focus(e)}blur(){this.nativeElement.blur()}get effectiveColor(){return this.color?this.color:(this.variant===`tonal`?`filled tonal`:this.variant)===`filled tonal`?`secondary`:`primary`}get imgClasses(){return[{xxs:`w-3 h-3`,xs:`w-4 h-4`,sm:`w-5 h-5`,md:`w-6 h-6`,lg:`w-7 h-7`}[this.size],`object-contain`]}firstUpdated(){this.prefixImgs?.forEach(e=>{e.classList.add(...this.imgClasses),e.hasAttribute(`alt`)||e.setAttribute(`alt`,``)}),this.suffixImgs?.forEach(e=>{e.classList.add(...this.imgClasses),e.hasAttribute(`alt`)||e.setAttribute(`alt`,``)})}click(){this.dispatchEvent(new Event(`click`,{bubbles:!0,composed:!0}))}_preventDefault(e){e.preventDefault(),e.stopPropagation()}render(){let e=this.variant===`tonal`?`filled tonal`:this.variant,t={"z-0 transition-all duration-200 relative rounded-2xl 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,"h-6":this.size===`xxs`,"h-8":this.size===`xs`,"h-10":this.size===`sm`,"h-12":this.size===`md`,"h-14":this.size===`lg`,"py-1 px-2":this.size===`xxs`,"py-2 px-4":this.size===`xs`,"py-2.5 px-5":this.size===`sm`,"py-3 px-6":this.size===`md`,"py-4 px-7":this.size===`lg`,"text-[10px] font-medium leading-3":this.size===`xxs`,"text-xs font-medium leading-4":this.size===`xs`,"text-sm font-medium leading-5":this.size===`sm`||this.size===`md`,"text-base font-medium leading-6":this.size===`lg`,"tracking-[0.1px]":!0,"gap-0.5":this.size===`xxs`,"gap-1":this.size===`xs`,"gap-1.5":this.size===`sm`,"gap-2":this.size===`md`,"gap-2.5":this.size===`lg`,"cursor-pointer":!this.disabled,"opacity-[0.38]":this.disabled,"hover:shadow-sm":!this.disabled&&e===`elevated`,"w-full tex-center":this.width===`full`,"bg-surface-low shadow-xs":e===`elevated`,"bg-transparent border-1 border-solid":e===`outlined`,"border-outline":e===`outlined`&&this.effectiveColor===`primary`,"border-success-default":e===`outlined`&&this.effectiveColor===`success`,"border-error-default":e===`outlined`&&this.effectiveColor===`error`,"border-warning-default":e===`outlined`&&this.effectiveColor===`warning`,"border-info-default":e===`outlined`&&this.effectiveColor===`info`,"border-secondary-default":e===`outlined`&&this.effectiveColor===`secondary`,"border-outline-variant":e===`outlined`&&this.effectiveColor===`neutral`,"bg-primary-default":e===`filled`&&this.effectiveColor===`primary`,"bg-secondary-default":e===`filled`&&this.effectiveColor===`secondary`,"bg-success-default":e===`filled`&&this.effectiveColor===`success`,"bg-error-default":e===`filled`&&this.effectiveColor===`error`,"bg-warning-default":e===`filled`&&this.effectiveColor===`warning`,"bg-info-default":e===`filled`&&this.effectiveColor===`info`,"bg-surface-containerHighest":e===`filled`&&this.effectiveColor===`neutral`,"text-primary-on":e===`filled`&&this.effectiveColor===`primary`,"text-secondary-on":e===`filled`&&this.effectiveColor===`secondary`,"text-success-on":e===`filled`&&this.effectiveColor===`success`,"text-error-on":e===`filled`&&this.effectiveColor===`error`,"text-warning-on":e===`filled`&&this.effectiveColor===`warning`,"text-info-on":e===`filled`&&this.effectiveColor===`info`,"text-surface-on":e===`filled`&&this.effectiveColor===`neutral`,"bg-primary-container":e===`filled tonal`&&this.effectiveColor===`primary`,"bg-secondary-container":e===`filled tonal`&&this.effectiveColor===`secondary`,"bg-success-container":e===`filled tonal`&&this.effectiveColor===`success`,"bg-error-container":e===`filled tonal`&&this.effectiveColor===`error`,"bg-warning-container":e===`filled tonal`&&this.effectiveColor===`warning`,"bg-info-container":e===`filled tonal`&&this.effectiveColor===`info`,"bg-surface-containerLow":e===`filled tonal`&&this.effectiveColor===`neutral`,"text-primary-onContainer":e===`filled tonal`&&this.effectiveColor===`primary`,"text-secondary-onContainer":e===`filled tonal`&&this.effectiveColor===`secondary`,"text-success-onContainer":e===`filled tonal`&&this.effectiveColor===`success`,"text-error-onContainer":e===`filled tonal`&&this.effectiveColor===`error`,"text-warning-onContainer":e===`filled tonal`&&this.effectiveColor===`warning`,"text-info-onContainer":e===`filled tonal`&&this.effectiveColor===`info`,"text-primary-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`primary`,"text-secondary-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`secondary`,"text-success-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`success`,"text-error-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`error`,"text-warning-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`warning`,"text-info-default":(e===`text`||e===`elevated`||e===`outlined`)&&this.effectiveColor===`info`,"text-surface-onVariant":(e===`text`||e===`elevated`||e===`outlined`||e===`filled tonal`)&&this.effectiveColor===`neutral`},r={"absolute inset-0 hover:opacity-[0.08] z-0 rounded-2xl":!0,"focus-visible:opacity-[0.10]":!0,"active:opacity-[0.10]":!0,"hover:bg-primary-on":e===`filled`&&this.effectiveColor===`primary`,"hover:bg-secondary-on":e===`filled`&&this.effectiveColor===`secondary`,"hover:bg-success-on":e===`filled`&&this.effectiveColor===`success`,"hover:bg-error-on":e===`filled`&&this.effectiveColor===`error`,"hover:bg-warning-on":e===`filled`&&this.effectiveColor===`warning`,"hover:bg-info-on":e===`filled`&&this.effectiveColor===`info`,"hover:bg-surface-on":e===`filled`&&this.effectiveColor===`neutral`,"hover:bg-primary-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`primary`,"hover:bg-secondary-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`secondary`,"hover:bg-success-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`success`,"hover:bg-error-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`error`,"hover:bg-warning-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`warning`,"hover:bg-info-default":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`info`,"hover:bg-surface-onVariant":(e===`outlined`||e===`elevated`||e===`text`)&&this.effectiveColor===`neutral`,"hover:bg-primary-container":e===`filled tonal`&&this.effectiveColor===`primary`,"hover:bg-secondary-container":e===`filled tonal`&&this.effectiveColor===`secondary`,"hover:bg-success-container":e===`filled tonal`&&this.effectiveColor===`success`,"hover:bg-error-container":e===`filled tonal`&&this.effectiveColor===`error`,"hover:bg-warning-container":e===`filled tonal`&&this.effectiveColor===`warning`,"hover:bg-info-container":e===`filled tonal`&&this.effectiveColor===`info`,"hover:bg-surface-containerLow":e===`filled tonal`&&this.effectiveColor===`neutral`};return this.href?o.html`
29
29
  <a
30
- ${r.t({strength:3,radius:60})}
30
+ ${n.t({strength:3,radius:60})}
31
31
  part="base"
32
- href=${(0,c.ifDefined)(this.disabled?void 0:this.href)}
33
- aria-label=${(0,c.ifDefined)(this.ariaLabel)}
32
+ href=${(0,s.ifDefined)(this.disabled?void 0:this.href)}
33
+ aria-label=${(0,s.ifDefined)(this.ariaLabel)}
34
34
  class="${this.classMap(t)}"
35
35
  tabindex=${this.disabled?`-1`:`0`}
36
36
  aria-disabled=${this.disabled}
37
37
  @click=${this.disabled?this._preventDefault:void 0}
38
38
  >
39
- ${(0,s.when)(!this.disabled,()=>o.html`<div class="${this.classMap(n)}"></div>`)}
39
+ ${(0,c.when)(!this.disabled,()=>o.html`<div class="${this.classMap(r)}"></div>`)}
40
40
  <slot name="prefix"></slot>
41
41
  <slot></slot>
42
42
  <slot name="suffix"></slot>
43
43
  </a>
44
44
  `:o.html`
45
45
  <button
46
- ${r.t({strength:3,radius:60})}
46
+ ${n.t({strength:3,radius:60})}
47
47
  part="base"
48
- aria-label=${(0,c.ifDefined)(this.ariaLabel)}
48
+ aria-label=${(0,s.ifDefined)(this.ariaLabel)}
49
49
  ?disabled=${this.disabled}
50
50
  class="${this.classMap(t)}"
51
- type=${(0,c.ifDefined)(this.type)}
52
- tabindex=${(0,c.ifDefined)(this.disabled?`-1`:void 0)}
51
+ type=${(0,s.ifDefined)(this.type)}
52
+ tabindex=${(0,s.ifDefined)(this.disabled?`-1`:void 0)}
53
53
  >
54
- ${(0,s.when)(!this.disabled,()=>o.html`<div class="${this.classMap(n)}"></div>`)}
54
+ ${(0,c.when)(!this.disabled,()=>o.html`<div class="${this.classMap(r)}"></div>`)}
55
55
  <slot name="prefix"></slot>
56
56
  <slot></slot>
57
57
  <slot name="suffix"></slot>
58
58
  </button>
59
- `}};t.t([(0,a.query)(`[part="base"]`,!0)],l.prototype,`nativeElement`,void 0),t.t([(0,a.property)({reflect:!0,type:String})],l.prototype,`variant`,void 0),t.t([(0,a.property)({reflect:!0,type:String})],l.prototype,`color`,void 0),t.t([(0,a.property)()],l.prototype,`width`,void 0),t.t([e.t({context:i.t}),(0,a.property)({type:String})],l.prototype,`size`,void 0),t.t([(0,a.property)({reflect:!0,type:String})],l.prototype,`type`,void 0),t.t([(0,a.property)()],l.prototype,`href`,void 0),t.t([(0,a.property)({type:Boolean,reflect:!0})],l.prototype,`disabled`,void 0),t.t([(0,a.property)({attribute:`aria-label`})],l.prototype,`ariaLabel`,null),t.t([(0,a.queryAssignedElements)({slot:`prefix`,flatten:!0,selector:`img`})],l.prototype,`prefixImgs`,void 0),t.t([(0,a.queryAssignedElements)({slot:`suffix`,flatten:!0,selector:`img`})],l.prototype,`suffixImgs`,void 0),l=t.t([(0,a.customElement)(`schmancy-button`)],l);var u=class extends n.t(o.css`
59
+ `}};t.t([(0,a.query)(`[part="base"]`,!0)],l.prototype,`nativeElement`,void 0),t.t([(0,a.property)({reflect:!0,type:String})],l.prototype,`variant`,void 0),t.t([(0,a.property)({reflect:!0,type:String})],l.prototype,`color`,void 0),t.t([(0,a.property)()],l.prototype,`width`,void 0),t.t([(0,i.provide)({context:r.t}),(0,a.property)({type:String})],l.prototype,`size`,void 0),t.t([(0,a.property)({reflect:!0,type:String})],l.prototype,`type`,void 0),t.t([(0,a.property)()],l.prototype,`href`,void 0),t.t([(0,a.property)({type:Boolean,reflect:!0})],l.prototype,`disabled`,void 0),t.t([(0,a.property)({attribute:`aria-label`})],l.prototype,`ariaLabel`,null),t.t([(0,a.queryAssignedElements)({slot:`prefix`,flatten:!0,selector:`img`})],l.prototype,`prefixImgs`,void 0),t.t([(0,a.queryAssignedElements)({slot:`suffix`,flatten:!0,selector:`img`})],l.prototype,`suffixImgs`,void 0),l=t.t([(0,a.customElement)(`schmancy-button`)],l);var u=class extends e.s{constructor(...e){super(...e),this.size=`md`,this.variant=`text`,this.width=`auto`,this.type=`button`,this.disabled=!1,this.text=!1}static{this.styles=[o.css`
60
60
  :host {
61
61
  display: block;
62
62
  border-radius: 9999px;
@@ -77,37 +77,37 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./ch
77
77
  :host(:hover:not([disabled])) { box-shadow: none; }
78
78
  :host(:active:not([disabled])) { transform: none; box-shadow: none; }
79
79
  }
80
- `){constructor(...e){super(...e),this.size=`md`,this.variant=`text`,this.width=`auto`,this.type=`button`,this.disabled=!1,this.text=!1}static{this.shadowRootOptions={...o.LitElement.shadowRootOptions,mode:`open`,delegatesFocus:!0}}connectedCallback(){super.connectedCallback(),this._captureIconFromChildren()}_captureIconFromChildren(){if(!this.icon&&!this.text){for(let e of this.childNodes)if(e.nodeType===Node.TEXT_NODE){let t=e.textContent?.trim();if(t)return void(this._capturedIcon=t)}}}_handleSlotChange(e){if(this.icon||this.text)return;let t=e.target.assignedNodes({flatten:!0});for(let e of t)if(e.nodeType===Node.TEXT_NODE){let t=e.textContent?.trim();if(t)return void(this._capturedIcon=t)}}set ariaLabel(e){let t=this._ariaLabel;this._ariaLabel=e,this.hasAttribute(`aria-label`)&&this.removeAttribute(`aria-label`),this.requestUpdate(`ariaLabel`,t)}get ariaLabel(){return this._ariaLabel}focus(e){this.nativeElement.focus(e)}blur(){this.nativeElement.blur()}click(){this.dispatchEvent(new Event(`click`,{bubbles:!0,composed:!0}))}_preventDefault(e){e.preventDefault(),e.stopPropagation()}firstUpdated(e){}render(){let e=this.variant===`tonal`?`filled tonal`:this.variant,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":!0,"opacity-[0.38]":this.disabled,"cursor-pointer":!this.disabled,"hover:shadow-xs":!this.disabled&&(e===`outlined`||e===`text`||e===`filled`||e===`filled tonal`),"hover:shadow-sm":!this.disabled&&e===`elevated`,"w-full text-center":this.width===`full`,"bg-surface-low text-primary-default shadow-xs":e===`elevated`,"bg-transparent text-primary-default border-1 border-outline":e===`outlined`,"bg-primary-default text-primary-on":e===`filled`,"bg-secondary-container text-secondary-onContainer":e===`filled tonal`,"text-primary-default":e===`text`,"p-1.5":this.size===`xxs`,"p-2":this.size===`xs`,"p-2.5":this.size===`sm`,"p-3":this.size===`md`,"p-4":this.size===`lg`,"p-5":this.size===`xl`},n={"hover:opacity-[0.08] rounded-full z-0":!0,"hover:bg-primary-on":e===`filled`,"hover:bg-primary-default":e===`outlined`||e===`elevated`||e===`text`,"hover:bg-secondary-container":e===`filled tonal`},i=this.size===`xxs`?`12px`:this.size===`xs`?`16px`:this.size===`sm`?`20px`:this.size===`md`||this.size===`lg`?`24px`:`40px`;return this.href?o.html`
80
+ `]}static{this.shadowRootOptions={...o.LitElement.shadowRootOptions,mode:`open`,delegatesFocus:!0}}connectedCallback(){super.connectedCallback(),this._captureIconFromChildren()}_captureIconFromChildren(){if(!this.icon&&!this.text){for(let e of this.childNodes)if(e.nodeType===Node.TEXT_NODE){let t=e.textContent?.trim();if(t)return void(this._capturedIcon=t)}}}_handleSlotChange(e){if(this.icon||this.text)return;let t=e.target.assignedNodes({flatten:!0});for(let e of t)if(e.nodeType===Node.TEXT_NODE){let t=e.textContent?.trim();if(t)return void(this._capturedIcon=t)}}set ariaLabel(e){let t=this._ariaLabel;this._ariaLabel=e,this.hasAttribute(`aria-label`)&&this.removeAttribute(`aria-label`),this.requestUpdate(`ariaLabel`,t)}get ariaLabel(){return this._ariaLabel}focus(e){this.nativeElement.focus(e)}blur(){this.nativeElement.blur()}click(){this.dispatchEvent(new Event(`click`,{bubbles:!0,composed:!0}))}_preventDefault(e){e.preventDefault(),e.stopPropagation()}firstUpdated(e){}render(){let e=this.variant===`tonal`?`filled tonal`:this.variant,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":!0,"opacity-[0.38]":this.disabled,"cursor-pointer":!this.disabled,"hover:shadow-xs":!this.disabled&&(e===`outlined`||e===`text`||e===`filled`||e===`filled tonal`),"hover:shadow-sm":!this.disabled&&e===`elevated`,"w-full text-center":this.width===`full`,"bg-surface-low text-primary-default shadow-xs":e===`elevated`,"bg-transparent text-primary-default border-1 border-outline":e===`outlined`,"bg-primary-default text-primary-on":e===`filled`,"bg-secondary-container text-secondary-onContainer":e===`filled tonal`,"text-primary-default":e===`text`,"p-1.5":this.size===`xxs`,"p-2":this.size===`xs`,"p-2.5":this.size===`sm`,"p-3":this.size===`md`,"p-4":this.size===`lg`,"p-5":this.size===`xl`},r={"hover:opacity-[0.08] rounded-full z-0":!0,"hover:bg-primary-on":e===`filled`,"hover:bg-primary-default":e===`outlined`||e===`elevated`||e===`text`,"hover:bg-secondary-container":e===`filled tonal`},i=this.size===`xxs`?`12px`:this.size===`xs`?`16px`:this.size===`sm`?`20px`:this.size===`md`||this.size===`lg`?`24px`:`40px`;return this.href?o.html`
81
81
  <a
82
- ${r.t({strength:3,radius:50})}
82
+ ${n.t({strength:3,radius:50})}
83
83
  part="base"
84
- href=${(0,c.ifDefined)(this.disabled?void 0:this.href)}
85
- aria-label=${(0,c.ifDefined)(this.ariaLabel)}
84
+ href=${(0,s.ifDefined)(this.disabled?void 0:this.href)}
85
+ aria-label=${(0,s.ifDefined)(this.ariaLabel)}
86
86
  class="${this.classMap(t)}"
87
87
  tabindex=${this.disabled?`-1`:`0`}
88
88
  aria-disabled=${this.disabled}
89
89
  @click=${this.disabled?this._preventDefault:void 0}
90
90
  >
91
- ${(0,s.when)(!this.disabled,()=>o.html`<div class="absolute inset-0 ${this.classMap(n)}"></div>`)}
91
+ ${(0,c.when)(!this.disabled,()=>o.html`<div class="absolute inset-0 ${this.classMap(r)}"></div>`)}
92
92
  ${this.text?o.html`<slot></slot>`:o.html`
93
93
  <slot style="display:none" @slotchange=${this._handleSlotChange}></slot>
94
- <schmancy-icon size=${i} icon=${this.icon||this._capturedIcon}></schmancy-icon>
94
+ <schmancy-icon size=${i} icon=${(0,s.ifDefined)(this.icon||this._capturedIcon)}></schmancy-icon>
95
95
  `}
96
96
  </a>
97
97
  `:o.html`
98
98
  <button
99
- ${r.t({strength:3,radius:50})}
99
+ ${n.t({strength:3,radius:50})}
100
100
  part="base"
101
- aria-label=${(0,c.ifDefined)(this.ariaLabel)}
101
+ aria-label=${(0,s.ifDefined)(this.ariaLabel)}
102
102
  ?disabled=${this.disabled}
103
103
  class="${this.classMap(t)}"
104
- type=${(0,c.ifDefined)(this.type)}
105
- tabindex=${(0,c.ifDefined)(this.disabled?`-1`:void 0)}
104
+ type=${(0,s.ifDefined)(this.type)}
105
+ tabindex=${(0,s.ifDefined)(this.disabled?`-1`:void 0)}
106
106
  >
107
- ${(0,s.when)(!this.disabled,()=>o.html`<div class="absolute inset-0 ${this.classMap(n)}"></div>`)}
107
+ ${(0,c.when)(!this.disabled,()=>o.html`<div class="absolute inset-0 ${this.classMap(r)}"></div>`)}
108
108
  ${this.text?o.html`<slot></slot>`:o.html`
109
109
  <slot style="display:none" @slotchange=${this._handleSlotChange}></slot>
110
- <schmancy-icon size=${i} icon=${this.icon||this._capturedIcon}></schmancy-icon>
110
+ <schmancy-icon size=${i} icon=${(0,s.ifDefined)(this.icon||this._capturedIcon)}></schmancy-icon>
111
111
  `}
112
112
  </button>
113
113
  `}};t.t([(0,a.query)(`[part="base"]`,!0)],u.prototype,`nativeElement`,void 0),t.t([(0,a.property)({type:String})],u.prototype,`size`,void 0),t.t([(0,a.property)({reflect:!0,type:String})],u.prototype,`variant`,void 0),t.t([(0,a.property)()],u.prototype,`width`,void 0),t.t([(0,a.property)({reflect:!0,type:String})],u.prototype,`type`,void 0),t.t([(0,a.property)()],u.prototype,`href`,void 0),t.t([(0,a.property)({type:Boolean,reflect:!0})],u.prototype,`disabled`,void 0),t.t([(0,a.property)({type:Boolean,reflect:!0})],u.prototype,`text`,void 0),t.t([(0,a.property)({type:String})],u.prototype,`icon`,void 0),t.t([(0,a.state)()],u.prototype,`_capturedIcon`,void 0),t.t([(0,a.property)({attribute:`aria-label`})],u.prototype,`ariaLabel`,null),u=t.t([(0,a.customElement)(`schmancy-icon-button`)],u),Object.defineProperty(exports,`SchmancyButton`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`SchmnacyIconButton`,{enumerable:!0,get:function(){return u}});
@@ -1 +1 @@
1
- {"version":3,"file":"button.cjs","names":[],"sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { provide } from '@lit/context'\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'\nimport { magnetic } from '../directives/magnetic'\nimport { SchmancyButtonSizeContext, type SchmancyButtonSize } from './context'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'tonal' | 'outlined' | 'text'\nexport type ButtonColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'neutral'\n\n/**\n * Material Design button — primary interactive surface for triggering actions or navigation.\n * @element schmancy-button\n * @summary Trigger actions or navigate. Form-associated; participates in native form submission.\n * @example\n * <schmancy-button variant=\"filled\" @click=${() => save()}>Save</schmancy-button>\n * <schmancy-button variant=\"outlined\" href=\"/next\">Continue</schmancy-button>\n * @platform button click - Schmancy-skinned native `<button type=\"submit\">`. When `href` is set, degrades to `<a href=\"…\">`. Falls back to plain `<button>` styled with Tailwind if the tag never registers.\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n * @csspart base - The underlying native `<button>` (or `<a>` when `href` is set).\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\ttouch-action: manipulation;\n\t\tborder-radius: 1rem;\n\t\ttransition:\n\t\t\tbox-shadow 300ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\t\ttransform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n\t:host(:hover:not([disabled])) {\n\t\tbox-shadow: 0 4px 16px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 20%, transparent);\n\t}\n\t:host(:active:not([disabled])) {\n\t\ttransform: scale(0.97);\n\t\tbox-shadow: 0 1px 4px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 10%, transparent);\n\t\ttransition-duration: 100ms;\n\t}\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host { transition: none; }\n\t\t:host(:hover:not([disabled])) { box-shadow: none; }\n\t\t:host(:active:not([disabled])) { transform: none; box-shadow: none; }\n\t}\n\t:host *,\n\t* {\n\t\ttouch-action: manipulation;\n\t}`\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\tstatic formAssociated = true\n\tprivate internals: ElementInternals | undefined\n\n\tconstructor() {\n\t\tsuper()\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch {\n\t\t\tthis.internals = undefined\n\t\t}\n\t\t// Translate clicks into native form semantics so the button works\n\t\t// inside any <form>, not just inside <schmancy-form>.\n\t\tthis.addEventListener('click', (e: MouseEvent) => {\n\t\t\tif (this.disabled) {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopImmediatePropagation()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst form = this.internals?.form\n\t\t\tif (!form) return\n\t\t\tif (this.type === 'submit') {\n\t\t\t\te.preventDefault()\n\t\t\t\tform.requestSubmit()\n\t\t\t} else if (this.type === 'reset') {\n\t\t\t\te.preventDefault()\n\t\t\t\tform.reset()\n\t\t\t}\n\t\t})\n\t}\n\n\t/** Associated form, when placed inside a <form>. */\n\tget form(): HTMLFormElement | null {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\tformDisabledCallback(disabled: boolean): void {\n\t\tthis.disabled = disabled\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 color of the button.\n\t * @attr\n\t * @default Depends on variant: 'primary' for filled/elevated/outlined/text, 'secondary' for tonal\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic color?: ButtonColor\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 * Provided as `SchmancyButtonSizeContext` to descendant elements so children\n\t * (e.g. `<schmancy-icon>`) can auto-size against the enclosing button.\n\t * @attr\n\t * @type {'xxs' | 'xs' | 'sm' | 'md' | 'lg'}\n\t * @default 'md'\n\t * @public\n\t */\n\t@provide({ context: SchmancyButtonSizeContext })\n\t@property({ type: String })\n\tpublic size: SchmancyButtonSize = '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\t/**\n\t * Get the effective color based on variant if not explicitly set\n\t * M3 spec: filled = primary, tonal = secondary, others = primary\n\t */\n\tprotected get effectiveColor(): ButtonColor {\n\t\tif (this.color) return this.color\n\n\t\t// Map 'tonal' to 'filled tonal' for checking\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant\n\n\t\t// M3 defaults: tonal uses secondary, others use primary\n\t\treturn effectiveVariant === 'filled tonal' ? 'secondary' : 'primary'\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\t// M3 spec: icon sizes scale with button size\n\t\tconst sizeMap = {\n\t\t\txxs: 'w-3 h-3', // 12px for 24px button (ultra-compact)\n\t\t\txs: 'w-4 h-4', // 16px for 32px button (M3 dense)\n\t\t\tsm: 'w-5 h-5', // 20px for 40px button (M3 default)\n\t\t\tmd: 'w-6 h-6', // 24px for 48px button (M3 large)\n\t\t\tlg: 'w-7 h-7' // 28px for 56px button (M3 extra large)\n\t\t}\n\t\treturn [sizeMap[this.size], '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-2xl 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// Height - M3 spec: 24dp (xxs) → 32dp (dense) → 40dp (default) → 48dp (large) → 56dp (XL)\n\t\t\t'h-6': this.size === 'xxs', // 24px - Ultra-compact\n\t\t\t'h-8': this.size === 'xs', // 32px - M3 dense/compact\n\t\t\t'h-10': this.size === 'sm', // 40px - M3 default\n\t\t\t'h-12': this.size === 'md', // 48px - M3 large\n\t\t\t'h-14': this.size === 'lg', // 56px - M3 extra large\n\t\t\t// Padding - M3 spec: horizontal padding 24dp default, scaled proportionally\n\t\t\t'py-1 px-2': this.size === 'xxs', // 4px/8px for 24px height\n\t\t\t'py-2 px-4': this.size === 'xs', // 8px/16px for 32px height\n\t\t\t'py-2.5 px-5': this.size === 'sm', // 10px/20px for 40px height\n\t\t\t'py-3 px-6': this.size === 'md', // 12px/24px for 48px height (M3 default)\n\t\t\t'py-4 px-7': this.size === 'lg', // 16px/28px for 56px height\n\t\t\t// Typography - M3 spec: label-large (14px) default, scaled\n\t\t\t'text-[10px] font-medium leading-3': this.size === 'xxs', // 10px\n\t\t\t'text-xs font-medium leading-4': this.size === 'xs', // 12px\n\t\t\t'text-sm font-medium leading-5': this.size === 'sm' || this.size === 'md', // 14px - M3 label-large\n\t\t\t'text-base font-medium leading-6': this.size === 'lg', // 16px\n\t\t\t// Letter spacing - M3 spec\n\t\t\t'tracking-[0.1px]': true,\n\t\t\t// Gap - Scaled with size\n\t\t\t'gap-0.5': this.size === 'xxs', // 2px\n\t\t\t'gap-1': this.size === 'xs', // 4px\n\t\t\t'gap-1.5': this.size === 'sm', // 6px\n\t\t\t'gap-2': this.size === 'md', // 8px\n\t\t\t'gap-2.5': this.size === 'lg', // 10px\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\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// Elevated variant\n\t\t\t'bg-surface-low shadow-xs': effectiveVariant === 'elevated',\n\t\t\t// Outlined variant\n\t\t\t'bg-transparent border-1 border-solid': effectiveVariant === 'outlined',\n\t\t\t'border-outline': effectiveVariant === 'outlined' && this.effectiveColor === 'primary',\n\t\t\t'border-success-default': effectiveVariant === 'outlined' && this.effectiveColor === 'success',\n\t\t\t'border-error-default': effectiveVariant === 'outlined' && this.effectiveColor === 'error',\n\t\t\t'border-warning-default': effectiveVariant === 'outlined' && this.effectiveColor === 'warning',\n\t\t\t'border-info-default': effectiveVariant === 'outlined' && this.effectiveColor === 'info',\n\t\t\t'border-secondary-default': effectiveVariant === 'outlined' && this.effectiveColor === 'secondary',\n\t\t\t'border-outline-variant': effectiveVariant === 'outlined' && this.effectiveColor === 'neutral',\n\t\t\t// Filled variant - background colors\n\t\t\t'bg-primary-default': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'bg-secondary-default': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'bg-success-default': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'bg-error-default': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'bg-warning-default': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'bg-info-default': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'bg-surface-containerHighest': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Filled variant - text colors\n\t\t\t'text-primary-on': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-on': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'text-success-on': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'text-error-on': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'text-warning-on': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'text-info-on': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'text-surface-on': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal variant - background colors\n\t\t\t'bg-primary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'bg-secondary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'bg-success-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'bg-error-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'bg-warning-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'bg-info-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t'bg-surface-containerLow': effectiveVariant === 'filled tonal' && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal variant - text colors\n\t\t\t'text-primary-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'text-success-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'text-error-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'text-warning-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'text-info-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t// Text and elevated variants - text colors\n\t\t\t'text-primary-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'secondary',\n\t\t\t'text-success-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'success',\n\t\t\t'text-error-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'error',\n\t\t\t'text-warning-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'warning',\n\t\t\t'text-info-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'info',\n\t\t\t'text-surface-onVariant': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined' || effectiveVariant === 'filled tonal') && this.effectiveColor === 'neutral',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-2xl': true,\n\t\t\t// M3 focus and pressed states\n\t\t\t'focus-visible:opacity-[0.10]': true, // M3 focus state\n\t\t\t'active:opacity-[0.10]': true, // M3 pressed state\n\t\t\t// Filled variant hover\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-on': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-on': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-on': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-on': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-on': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-on': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Outlined, elevated, text variants hover\n\t\t\t'hover:bg-primary-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-onVariant': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal hover\n\t\t\t'hover:bg-primary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-containerLow': effectiveVariant === 'filled tonal' && this.effectiveColor === 'neutral',\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\t${magnetic({ strength: 3, radius: 60 })}\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\t${magnetic({ strength: 3, radius: 60 })}\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, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { magnetic } from '../directives/magnetic'\nimport { ButtonVariant } from './button'\n\n/**\n * Icon-only button for toolbar actions, close affordances, or overflow menus.\n * @element schmancy-icon-button\n * @summary Compact round/square button wrapping a single icon glyph. Form-associated like schmancy-button.\n * @example\n * <schmancy-icon-button aria-label=\"Close\" @click=${() => close()}>\n * <schmancy-icon>close</schmancy-icon>\n * </schmancy-icon-button>\n * @platform button click - Schmancy-skinned native `<button>` (or `<a>` when `href` is set). aria-label is required for a11y because there's no text content.\n * @slot - The default slot (usually an icon or glyph).\n * @csspart base - The underlying native `<button>` (or `<a>` when `href` is set).\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tborder-radius: 9999px;\n\t\ttransition:\n\t\t\tbox-shadow 300ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\t\ttransform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n\t:host(:hover:not([disabled])) {\n\t\tbox-shadow: 0 2px 12px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 18%, transparent);\n\t}\n\t:host(:active:not([disabled])) {\n\t\ttransform: scale(0.92);\n\t\tbox-shadow: none;\n\t\ttransition-duration: 100ms;\n\t}\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host { transition: none; }\n\t\t:host(:hover:not([disabled])) { box-shadow: none; }\n\t\t:host(:active:not([disabled])) { transform: none; box-shadow: none; }\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: 'xxs' | 'xs' | '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/**\n\t * Icon name - use this instead of slot content to prevent translation breaking icons.\n\t * Example: <schmancy-icon-button icon=\"add\"></schmancy-icon-button>\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic icon?: string\n\n\t// Reactively captured icon name from slot content (translation-proof)\n\t@state()\n\tprivate _capturedIcon?: string\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\t// Pre-capture icon from children to avoid double render flash\n\t\tthis._captureIconFromChildren()\n\t}\n\n\t// Capture icon from direct children (for initial render)\n\tprivate _captureIconFromChildren(): void {\n\t\tif (this.icon || this.text) return\n\t\tfor (const node of this.childNodes) {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\tconst text = node.textContent?.trim()\n\t\t\t\tif (text) {\n\t\t\t\t\tthis._capturedIcon = text\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Handle slot content changes reactively (for dynamic updates)\n\tprivate _handleSlotChange(e: Event): void {\n\t\tif (this.icon || this.text) return\n\t\tconst slot = e.target as HTMLSlotElement\n\t\tconst nodes = slot.assignedNodes({ flatten: true })\n\t\tfor (const node of nodes) {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\tconst text = node.textContent?.trim()\n\t\t\t\tif (text) {\n\t\t\t\t\tthis._capturedIcon = text\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\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// M3 spec: 24dp (xxs) → 32dp (dense) → 40dp (default) → 48dp (standard) → 56dp (large)\n\t\t\t'p-1.5': this.size === 'xxs', // 6px padding = 24px total (12px icon) - Ultra-compact\n\t\t\t'p-2': this.size === 'xs', // 8px padding = 32px total (16px icon) - M3 dense\n\t\t\t'p-2.5': this.size === 'sm', // 10px padding = 40px total (20px icon) - M3 default\n\t\t\t'p-3': this.size === 'md', // 12px padding = 48px total (24px icon) - M3 standard\n\t\t\t'p-4': this.size === 'lg', // 16px padding = 56px total (24px icon) - M3 large\n\t\t\t'p-5': this.size === 'xl', // 20px padding = 80px total (40px icon) - custom 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 - M3 spec: 24dp standard, scaled for density\n\t\tconst iconSize = this.size === 'xxs' ? '12px' : this.size === 'xs' ? '16px' : this.size === 'sm' ? '20px' : this.size === 'md' ? '24px' : this.size === 'lg' ? '24px' : '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\t${magnetic({ strength: 3, radius: 50 })}\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`\n\t\t\t\t\t\t\t<slot style=\"display:none\" @slotchange=${this._handleSlotChange}></slot>\n\t\t\t\t\t\t\t<schmancy-icon size=${iconSize} icon=${this.icon || this._capturedIcon}></schmancy-icon>\n\t\t\t\t\t\t`\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\t${magnetic({ strength: 3, radius: 50 })}\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`\n\t\t\t\t\t\t<slot style=\"display:none\" @slotchange=${this._handleSlotChange}></slot>\n\t\t\t\t\t\t<schmancy-icon size=${iconSize} icon=${this.icon || this._capturedIcon}></schmancy-icon>\n\t\t\t\t\t`\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"],"mappings":"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"}
1
+ {"version":3,"file":"button.cjs","names":[],"sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { provide } from '@lit/context'\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'\nimport { magnetic } from '../directives/magnetic'\nimport { SchmancyButtonSizeContext, type SchmancyButtonSize } from './context'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'tonal' | 'outlined' | 'text'\nexport type ButtonColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'neutral'\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 * @csspart base - The underlying native `<button>` (or `<a>` when `href` is set).\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends SchmancyElement {\n\tstatic styles = [css`:host{\n\t\tdisplay: inline-block;\n\t\tmin-width: fit-content;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t\ttouch-action: manipulation;\n\t\tborder-radius: 1rem;\n\t\ttransition:\n\t\t\tbox-shadow 300ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\t\ttransform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n\t:host(:hover:not([disabled])) {\n\t\tbox-shadow: 0 4px 16px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 20%, transparent);\n\t}\n\t:host(:active:not([disabled])) {\n\t\ttransform: scale(0.97);\n\t\tbox-shadow: 0 1px 4px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 10%, transparent);\n\t\ttransition-duration: 100ms;\n\t}\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host { transition: none; }\n\t\t:host(:hover:not([disabled])) { box-shadow: none; }\n\t\t:host(:active:not([disabled])) { transform: none; box-shadow: none; }\n\t}\n\t:host *,\n\t* {\n\t\ttouch-action: manipulation;\n\t}`]\n\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\tstatic formAssociated = true\n\tprivate internals: ElementInternals | undefined\n\n\tconstructor() {\n\t\tsuper()\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch {\n\t\t\tthis.internals = undefined\n\t\t}\n\t\t// Translate clicks into native form semantics so the button works\n\t\t// inside any <form>, not just inside <schmancy-form>.\n\t\tthis.addEventListener('click', (e: MouseEvent) => {\n\t\t\tif (this.disabled) {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopImmediatePropagation()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst form = this.internals?.form\n\t\t\tif (!form) return\n\t\t\tif (this.type === 'submit') {\n\t\t\t\te.preventDefault()\n\t\t\t\tform.requestSubmit()\n\t\t\t} else if (this.type === 'reset') {\n\t\t\t\te.preventDefault()\n\t\t\t\tform.reset()\n\t\t\t}\n\t\t})\n\t}\n\n\t/** Associated form, when placed inside a <form>. */\n\tget form(): HTMLFormElement | null {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\tformDisabledCallback(disabled: boolean): void {\n\t\tthis.disabled = disabled\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 color of the button.\n\t * @attr\n\t * @default Depends on variant: 'primary' for filled/elevated/outlined/text, 'secondary' for tonal\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic color?: ButtonColor\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 * Provided as `SchmancyButtonSizeContext` to descendant elements so children\n\t * (e.g. `<schmancy-icon>`) can auto-size against the enclosing button.\n\t * @attr\n\t * @type {'xxs' | 'xs' | 'sm' | 'md' | 'lg'}\n\t * @default 'md'\n\t * @public\n\t */\n\t@provide({ context: SchmancyButtonSizeContext })\n\t@property({ type: String })\n\tpublic size: SchmancyButtonSize = '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\t/**\n\t * Get the effective color based on variant if not explicitly set\n\t * M3 spec: filled = primary, tonal = secondary, others = primary\n\t */\n\tprotected get effectiveColor(): ButtonColor {\n\t\tif (this.color) return this.color\n\n\t\t// Map 'tonal' to 'filled tonal' for checking\n\t\tconst effectiveVariant = this.variant === 'tonal' ? 'filled tonal' : this.variant\n\n\t\t// M3 defaults: tonal uses secondary, others use primary\n\t\treturn effectiveVariant === 'filled tonal' ? 'secondary' : 'primary'\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\t// M3 spec: icon sizes scale with button size\n\t\tconst sizeMap = {\n\t\t\txxs: 'w-3 h-3', // 12px for 24px button (ultra-compact)\n\t\t\txs: 'w-4 h-4', // 16px for 32px button (M3 dense)\n\t\t\tsm: 'w-5 h-5', // 20px for 40px button (M3 default)\n\t\t\tmd: 'w-6 h-6', // 24px for 48px button (M3 large)\n\t\t\tlg: 'w-7 h-7' // 28px for 56px button (M3 extra large)\n\t\t}\n\t\treturn [sizeMap[this.size], '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-2xl 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// Height - M3 spec: 24dp (xxs) → 32dp (dense) → 40dp (default) → 48dp (large) → 56dp (XL)\n\t\t\t'h-6': this.size === 'xxs', // 24px - Ultra-compact\n\t\t\t'h-8': this.size === 'xs', // 32px - M3 dense/compact\n\t\t\t'h-10': this.size === 'sm', // 40px - M3 default\n\t\t\t'h-12': this.size === 'md', // 48px - M3 large\n\t\t\t'h-14': this.size === 'lg', // 56px - M3 extra large\n\t\t\t// Padding - M3 spec: horizontal padding 24dp default, scaled proportionally\n\t\t\t'py-1 px-2': this.size === 'xxs', // 4px/8px for 24px height\n\t\t\t'py-2 px-4': this.size === 'xs', // 8px/16px for 32px height\n\t\t\t'py-2.5 px-5': this.size === 'sm', // 10px/20px for 40px height\n\t\t\t'py-3 px-6': this.size === 'md', // 12px/24px for 48px height (M3 default)\n\t\t\t'py-4 px-7': this.size === 'lg', // 16px/28px for 56px height\n\t\t\t// Typography - M3 spec: label-large (14px) default, scaled\n\t\t\t'text-[10px] font-medium leading-3': this.size === 'xxs', // 10px\n\t\t\t'text-xs font-medium leading-4': this.size === 'xs', // 12px\n\t\t\t'text-sm font-medium leading-5': this.size === 'sm' || this.size === 'md', // 14px - M3 label-large\n\t\t\t'text-base font-medium leading-6': this.size === 'lg', // 16px\n\t\t\t// Letter spacing - M3 spec\n\t\t\t'tracking-[0.1px]': true,\n\t\t\t// Gap - Scaled with size\n\t\t\t'gap-0.5': this.size === 'xxs', // 2px\n\t\t\t'gap-1': this.size === 'xs', // 4px\n\t\t\t'gap-1.5': this.size === 'sm', // 6px\n\t\t\t'gap-2': this.size === 'md', // 8px\n\t\t\t'gap-2.5': this.size === 'lg', // 10px\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\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// Elevated variant\n\t\t\t'bg-surface-low shadow-xs': effectiveVariant === 'elevated',\n\t\t\t// Outlined variant\n\t\t\t'bg-transparent border-1 border-solid': effectiveVariant === 'outlined',\n\t\t\t'border-outline': effectiveVariant === 'outlined' && this.effectiveColor === 'primary',\n\t\t\t'border-success-default': effectiveVariant === 'outlined' && this.effectiveColor === 'success',\n\t\t\t'border-error-default': effectiveVariant === 'outlined' && this.effectiveColor === 'error',\n\t\t\t'border-warning-default': effectiveVariant === 'outlined' && this.effectiveColor === 'warning',\n\t\t\t'border-info-default': effectiveVariant === 'outlined' && this.effectiveColor === 'info',\n\t\t\t'border-secondary-default': effectiveVariant === 'outlined' && this.effectiveColor === 'secondary',\n\t\t\t'border-outline-variant': effectiveVariant === 'outlined' && this.effectiveColor === 'neutral',\n\t\t\t// Filled variant - background colors\n\t\t\t'bg-primary-default': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'bg-secondary-default': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'bg-success-default': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'bg-error-default': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'bg-warning-default': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'bg-info-default': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'bg-surface-containerHighest': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Filled variant - text colors\n\t\t\t'text-primary-on': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-on': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'text-success-on': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'text-error-on': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'text-warning-on': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'text-info-on': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'text-surface-on': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal variant - background colors\n\t\t\t'bg-primary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'bg-secondary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'bg-success-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'bg-error-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'bg-warning-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'bg-info-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t'bg-surface-containerLow': effectiveVariant === 'filled tonal' && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal variant - text colors\n\t\t\t'text-primary-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'text-success-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'text-error-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'text-warning-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'text-info-onContainer': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t// Text and elevated variants - text colors\n\t\t\t'text-primary-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'primary',\n\t\t\t'text-secondary-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'secondary',\n\t\t\t'text-success-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'success',\n\t\t\t'text-error-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'error',\n\t\t\t'text-warning-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'warning',\n\t\t\t'text-info-default': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined') && this.effectiveColor === 'info',\n\t\t\t'text-surface-onVariant': (effectiveVariant === 'text' || effectiveVariant === 'elevated' || effectiveVariant === 'outlined' || effectiveVariant === 'filled tonal') && this.effectiveColor === 'neutral',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-2xl': true,\n\t\t\t// M3 focus and pressed states\n\t\t\t'focus-visible:opacity-[0.10]': true, // M3 focus state\n\t\t\t'active:opacity-[0.10]': true, // M3 pressed state\n\t\t\t// Filled variant hover\n\t\t\t'hover:bg-primary-on': effectiveVariant === 'filled' && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-on': effectiveVariant === 'filled' && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-on': effectiveVariant === 'filled' && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-on': effectiveVariant === 'filled' && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-on': effectiveVariant === 'filled' && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-on': effectiveVariant === 'filled' && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-on': effectiveVariant === 'filled' && this.effectiveColor === 'neutral',\n\t\t\t// Outlined, elevated, text variants hover\n\t\t\t'hover:bg-primary-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-default': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-onVariant': (effectiveVariant === 'outlined' || effectiveVariant === 'elevated' || effectiveVariant === 'text') && this.effectiveColor === 'neutral',\n\t\t\t// Filled tonal hover\n\t\t\t'hover:bg-primary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'primary',\n\t\t\t'hover:bg-secondary-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'secondary',\n\t\t\t'hover:bg-success-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'success',\n\t\t\t'hover:bg-error-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'error',\n\t\t\t'hover:bg-warning-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'warning',\n\t\t\t'hover:bg-info-container': effectiveVariant === 'filled tonal' && this.effectiveColor === 'info',\n\t\t\t'hover:bg-surface-containerLow': effectiveVariant === 'filled tonal' && this.effectiveColor === 'neutral',\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\t${magnetic({ strength: 3, radius: 60 })}\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\t${magnetic({ strength: 3, radius: 60 })}\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 { SchmancyElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { magnetic } from '../directives/magnetic'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot (usually an icon or glyph).\n * @csspart base - The underlying native `<button>` (or `<a>` when `href` is set).\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\tborder-radius: 9999px;\n\t\ttransition:\n\t\t\tbox-shadow 300ms cubic-bezier(0.34, 1.56, 0.64, 1),\n\t\t\ttransform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n\t:host(:hover:not([disabled])) {\n\t\tbox-shadow: 0 2px 12px -4px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 18%, transparent);\n\t}\n\t:host(:active:not([disabled])) {\n\t\ttransform: scale(0.92);\n\t\tbox-shadow: none;\n\t\ttransition-duration: 100ms;\n\t}\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host { transition: none; }\n\t\t:host(:hover:not([disabled])) { box-shadow: none; }\n\t\t:host(:active:not([disabled])) { transform: none; box-shadow: none; }\n\t}\n`]\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: 'xxs' | 'xs' | '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/**\n\t * Icon name - use this instead of slot content to prevent translation breaking icons.\n\t * Example: <schmancy-icon-button icon=\"add\"></schmancy-icon-button>\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic icon?: string\n\n\t// Reactively captured icon name from slot content (translation-proof)\n\t@state()\n\tprivate _capturedIcon?: string\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\t// Pre-capture icon from children to avoid double render flash\n\t\tthis._captureIconFromChildren()\n\t}\n\n\t// Capture icon from direct children (for initial render)\n\tprivate _captureIconFromChildren(): void {\n\t\tif (this.icon || this.text) return\n\t\tfor (const node of this.childNodes) {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\tconst text = node.textContent?.trim()\n\t\t\t\tif (text) {\n\t\t\t\t\tthis._capturedIcon = text\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Handle slot content changes reactively (for dynamic updates)\n\tprivate _handleSlotChange(e: Event): void {\n\t\tif (this.icon || this.text) return\n\t\tconst slot = e.target as HTMLSlotElement\n\t\tconst nodes = slot.assignedNodes({ flatten: true })\n\t\tfor (const node of nodes) {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\tconst text = node.textContent?.trim()\n\t\t\t\tif (text) {\n\t\t\t\t\tthis._capturedIcon = text\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\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// M3 spec: 24dp (xxs) → 32dp (dense) → 40dp (default) → 48dp (standard) → 56dp (large)\n\t\t\t'p-1.5': this.size === 'xxs', // 6px padding = 24px total (12px icon) - Ultra-compact\n\t\t\t'p-2': this.size === 'xs', // 8px padding = 32px total (16px icon) - M3 dense\n\t\t\t'p-2.5': this.size === 'sm', // 10px padding = 40px total (20px icon) - M3 default\n\t\t\t'p-3': this.size === 'md', // 12px padding = 48px total (24px icon) - M3 standard\n\t\t\t'p-4': this.size === 'lg', // 16px padding = 56px total (24px icon) - M3 large\n\t\t\t'p-5': this.size === 'xl', // 20px padding = 80px total (40px icon) - custom 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 - M3 spec: 24dp standard, scaled for density\n\t\tconst iconSize = this.size === 'xxs' ? '12px' : this.size === 'xs' ? '16px' : this.size === 'sm' ? '20px' : this.size === 'md' ? '24px' : this.size === 'lg' ? '24px' : '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\t${magnetic({ strength: 3, radius: 50 })}\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`\n\t\t\t\t\t\t\t<slot style=\"display:none\" @slotchange=${this._handleSlotChange}></slot>\n\t\t\t\t\t\t\t<schmancy-icon size=${iconSize} icon=${ifDefined(this.icon || this._capturedIcon)}></schmancy-icon>\n\t\t\t\t\t\t`\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\t${magnetic({ strength: 3, radius: 50 })}\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`\n\t\t\t\t\t\t<slot style=\"display:none\" @slotchange=${this._handleSlotChange}></slot>\n\t\t\t\t\t\t<schmancy-icon size=${iconSize} icon=${ifDefined(this.icon || this._capturedIcon)}></schmancy-icon>\n\t\t\t\t\t`\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"],"mappings":"sZA0BO,IAAA,EAAA,cAA6B,EAAA,CAAA,CAAA,OAAA,KAAA,OACnB,CAAC,EAAA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA6BiB,CAAA,GACjC,EAAA,WAAW,kBACd,KAAM,OACN,eAAA,CAAgB,EAAA,CAAA,OAAA,KAAA,eAAA,CAGO,EAGxB,aAAA,CACC,OAAA,CAAA,KAAA,QA+C+B,OAAA,KAAA,MAmBA,OAAA,KAAA,KAaE,KAAA,KAAA,KAQW,SAAA,KAAA,SAAA,CAe3B,EArGjB,GAAA,CACC,KAAK,UAAY,KAAK,iBAAA,MAAA,CAEtB,KAAK,UAAA,IAAY,GAIlB,KAAK,iBAAiB,QAAU,GAAA,CAC/B,GAAI,KAAK,SAGR,OAFA,EAAE,gBAAA,CAAA,KACF,EAAE,0BAAA,CAGH,IAAM,EAAO,KAAK,WAAW,KACxB,IACD,KAAK,OAAS,UACjB,EAAE,gBAAA,CACF,EAAK,eAAA,EACK,KAAK,OAAS,UACxB,EAAE,gBAAA,CACF,EAAK,OAAA,IAAA,CAMR,IAAA,MAAI,CACH,OAAO,KAAK,WAAW,MAAQ,KAGhC,qBAAqB,EAAA,CACpB,KAAK,SAAW,EAwEjB,IAAA,UAA8B,EAAA,CAC7B,IAAM,EAAS,KAAK,WACpB,KAAK,WAAa,EAEd,KAAK,aAAa,aAAA,EACrB,KAAK,gBAAgB,aAAA,CAEtB,KAAK,cAAc,YAAa,EAAA,CAGjC,IAAA,WACoB,CACnB,OAAO,KAAK,WAkBb,MAAsB,EAAA,CACrB,KAAK,cAAc,MAAM,EAAA,CAI1B,MAAA,CACC,KAAK,cAAc,MAAA,CAOpB,IAAA,gBAAc,CACb,OAAI,KAAK,MAAc,KAAK,OAGH,KAAK,UAAY,QAAU,eAAiB,KAAK,WAG9C,eAAiB,YAAc,UAG5D,IAAA,YAAc,CASb,MAAO,CAAC,CANP,IAAK,UACL,GAAI,UACJ,GAAI,UACJ,GAAI,UACJ,GAAI,UAAA,CAEW,KAAK,MAAO,iBAAA,CAG7B,cAAA,CAEC,KAAK,YAAY,QAAQ,GAAA,CACxB,EAAI,UAAU,IAAA,GAAO,KAAK,WAAA,CACrB,EAAI,aAAa,MAAA,EACrB,EAAI,aAAa,MAAO,GAAA,EAAA,CAG1B,KAAK,YAAY,QAAQ,GAAA,CACxB,EAAI,UAAU,IAAA,GAAO,KAAK,WAAA,CACrB,EAAI,aAAa,MAAA,EACrB,EAAI,aAAa,MAAO,GAAA,EAAA,CAK3B,OAAA,CACC,KAAK,cAAc,IAAI,MAAM,QAAS,CAAE,QAAA,CAAS,EAAM,SAAA,CAAU,EAAA,CAAA,CAAA,CAIlE,gBAAwB,EAAA,CACvB,EAAM,gBAAA,CACN,EAAM,iBAAA,CAGP,QAAA,CAEC,IAAM,EAAmB,KAAK,UAAY,QAAU,eAAiB,KAAK,QAGpE,EAAU,CACf,uPAAA,CACC,EAED,MAAO,KAAK,OAAS,MACrB,MAAO,KAAK,OAAS,KACrB,OAAQ,KAAK,OAAS,KACtB,OAAQ,KAAK,OAAS,KACtB,OAAQ,KAAK,OAAS,KAEtB,YAAa,KAAK,OAAS,MAC3B,YAAa,KAAK,OAAS,KAC3B,cAAe,KAAK,OAAS,KAC7B,YAAa,KAAK,OAAS,KAC3B,YAAa,KAAK,OAAS,KAE3B,oCAAqC,KAAK,OAAS,MACnD,gCAAiC,KAAK,OAAS,KAC/C,gCAAiC,KAAK,OAAS,MAAQ,KAAK,OAAS,KACrE,kCAAmC,KAAK,OAAS,KAEjD,mBAAA,CAAoB,EAEpB,UAAW,KAAK,OAAS,MACzB,QAAS,KAAK,OAAS,KACvB,UAAW,KAAK,OAAS,KACzB,QAAS,KAAK,OAAS,KACvB,UAAW,KAAK,OAAS,KACzB,iBAAA,CAAmB,KAAK,SACxB,iBAAkB,KAAK,SACvB,kBAAA,CAAoB,KAAK,UAAY,IAAqB,WAC1D,oBAAqB,KAAK,QAAU,OAEpC,2BAA4B,IAAqB,WAEjD,uCAAwC,IAAqB,WAC7D,iBAAkB,IAAqB,YAAc,KAAK,iBAAmB,UAC7E,yBAA0B,IAAqB,YAAc,KAAK,iBAAmB,UACrF,uBAAwB,IAAqB,YAAc,KAAK,iBAAmB,QACnF,yBAA0B,IAAqB,YAAc,KAAK,iBAAmB,UACrF,sBAAuB,IAAqB,YAAc,KAAK,iBAAmB,OAClF,2BAA4B,IAAqB,YAAc,KAAK,iBAAmB,YACvF,yBAA0B,IAAqB,YAAc,KAAK,iBAAmB,UAErF,qBAAsB,IAAqB,UAAY,KAAK,iBAAmB,UAC/E,uBAAwB,IAAqB,UAAY,KAAK,iBAAmB,YACjF,qBAAsB,IAAqB,UAAY,KAAK,iBAAmB,UAC/E,mBAAoB,IAAqB,UAAY,KAAK,iBAAmB,QAC7E,qBAAsB,IAAqB,UAAY,KAAK,iBAAmB,UAC/E,kBAAmB,IAAqB,UAAY,KAAK,iBAAmB,OAC5E,8BAA+B,IAAqB,UAAY,KAAK,iBAAmB,UAExF,kBAAmB,IAAqB,UAAY,KAAK,iBAAmB,UAC5E,oBAAqB,IAAqB,UAAY,KAAK,iBAAmB,YAC9E,kBAAmB,IAAqB,UAAY,KAAK,iBAAmB,UAC5E,gBAAiB,IAAqB,UAAY,KAAK,iBAAmB,QAC1E,kBAAmB,IAAqB,UAAY,KAAK,iBAAmB,UAC5E,eAAgB,IAAqB,UAAY,KAAK,iBAAmB,OACzE,kBAAmB,IAAqB,UAAY,KAAK,iBAAmB,UAE5E,uBAAwB,IAAqB,gBAAkB,KAAK,iBAAmB,UACvF,yBAA0B,IAAqB,gBAAkB,KAAK,iBAAmB,YACzF,uBAAwB,IAAqB,gBAAkB,KAAK,iBAAmB,UACvF,qBAAsB,IAAqB,gBAAkB,KAAK,iBAAmB,QACrF,uBAAwB,IAAqB,gBAAkB,KAAK,iBAAmB,UACvF,oBAAqB,IAAqB,gBAAkB,KAAK,iBAAmB,OACpF,0BAA2B,IAAqB,gBAAkB,KAAK,iBAAmB,UAE1F,2BAA4B,IAAqB,gBAAkB,KAAK,iBAAmB,UAC3F,6BAA8B,IAAqB,gBAAkB,KAAK,iBAAmB,YAC7F,2BAA4B,IAAqB,gBAAkB,KAAK,iBAAmB,UAC3F,yBAA0B,IAAqB,gBAAkB,KAAK,iBAAmB,QACzF,2BAA4B,IAAqB,gBAAkB,KAAK,iBAAmB,UAC3F,wBAAyB,IAAqB,gBAAkB,KAAK,iBAAmB,OAExF,wBAAyB,IAAqB,QAAU,IAAqB,YAAc,IAAqB,aAAe,KAAK,iBAAmB,UACvJ,0BAA2B,IAAqB,QAAU,IAAqB,YAAc,IAAqB,aAAe,KAAK,iBAAmB,YACzJ,wBAAyB,IAAqB,QAAU,IAAqB,YAAc,IAAqB,aAAe,KAAK,iBAAmB,UACvJ,sBAAuB,IAAqB,QAAU,IAAqB,YAAc,IAAqB,aAAe,KAAK,iBAAmB,QACrJ,wBAAyB,IAAqB,QAAU,IAAqB,YAAc,IAAqB,aAAe,KAAK,iBAAmB,UACvJ,qBAAsB,IAAqB,QAAU,IAAqB,YAAc,IAAqB,aAAe,KAAK,iBAAmB,OACpJ,0BAA2B,IAAqB,QAAU,IAAqB,YAAc,IAAqB,YAAc,IAAqB,iBAAmB,KAAK,iBAAmB,UAAnB,CAGxK,EAAoB,CACzB,wDAAA,CAAyD,EAEzD,+BAAA,CAAgC,EAChC,wBAAA,CAAyB,EAEzB,sBAAuB,IAAqB,UAAY,KAAK,iBAAmB,UAChF,wBAAyB,IAAqB,UAAY,KAAK,iBAAmB,YAClF,sBAAuB,IAAqB,UAAY,KAAK,iBAAmB,UAChF,oBAAqB,IAAqB,UAAY,KAAK,iBAAmB,QAC9E,sBAAuB,IAAqB,UAAY,KAAK,iBAAmB,UAChF,mBAAoB,IAAqB,UAAY,KAAK,iBAAmB,OAC7E,sBAAuB,IAAqB,UAAY,KAAK,iBAAmB,UAEhF,4BAA6B,IAAqB,YAAc,IAAqB,YAAc,IAAqB,SAAW,KAAK,iBAAmB,UAC3J,8BAA+B,IAAqB,YAAc,IAAqB,YAAc,IAAqB,SAAW,KAAK,iBAAmB,YAC7J,4BAA6B,IAAqB,YAAc,IAAqB,YAAc,IAAqB,SAAW,KAAK,iBAAmB,UAC3J,0BAA2B,IAAqB,YAAc,IAAqB,YAAc,IAAqB,SAAW,KAAK,iBAAmB,QACzJ,4BAA6B,IAAqB,YAAc,IAAqB,YAAc,IAAqB,SAAW,KAAK,iBAAmB,UAC3J,yBAA0B,IAAqB,YAAc,IAAqB,YAAc,IAAqB,SAAW,KAAK,iBAAmB,OACxJ,8BAA+B,IAAqB,YAAc,IAAqB,YAAc,IAAqB,SAAW,KAAK,iBAAmB,UAE7J,6BAA8B,IAAqB,gBAAkB,KAAK,iBAAmB,UAC7F,+BAAgC,IAAqB,gBAAkB,KAAK,iBAAmB,YAC/F,6BAA8B,IAAqB,gBAAkB,KAAK,iBAAmB,UAC7F,2BAA4B,IAAqB,gBAAkB,KAAK,iBAAmB,QAC3F,6BAA8B,IAAqB,gBAAkB,KAAK,iBAAmB,UAC7F,0BAA2B,IAAqB,gBAAkB,KAAK,iBAAmB,OAC1F,gCAAiC,IAAqB,gBAAkB,KAAK,iBAAmB,UAAnB,CAI9E,OAAI,KAAK,KACD,EAAA,IAAI;;OAEP,EAAA,EAAS,CAAE,SAAU,EAAG,OAAQ,GAAA,CAAA,CAAA;;4BAEjB,KAAK,SAAA,IAAW,GAAY,KAAK,KAAA,CAAA;kCAC3B,KAAK,UAAA,CAAA;cACnB,KAAK,SAAS,EAAA,CAAA;gBACZ,KAAK,SAAW,KAAO,IAAA;qBAClB,KAAK,SAAA;cACZ,KAAK,SAAW,KAAK,gBAAA,IAAkB,GAAA;;mBAExC,KAAK,aAAgB,EAAA,IAAI,eAAe,KAAK,SAAS,EAAA,CAAA,UAAA,CAAA;;;;;KAS1D,EAAA,IAAI;;MAEP,EAAA,EAAS,CAAE,SAAU,EAAG,OAAQ,GAAA,CAAA,CAAA;;iCAEX,KAAK,UAAA,CAAA;gBAChB,KAAK,SAAA;aACR,KAAK,SAAS,EAAA,CAAA;2BACN,KAAK,KAAA,CAAA;+BACD,KAAK,SAAW,KAAA,IAAO,GAAA,CAAA;;kBAEpC,KAAK,aAAgB,EAAA,IAAI,eAAe,KAAK,SAAS,EAAA,CAAA,UAAA,CAAA;;;;;uBAxT1D,gBAAA,CAAiB,EAAA,CAAA,CAAK,EAAA,UAAA,gBAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAWnB,CAAE,QAAA,CAAS,EAAM,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,UAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAShC,CAAE,QAAA,CAAS,EAAM,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,WAAA,CAAA,CAU/B,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,SAYF,CAAE,QAAS,EAAA,EAAA,CAAA,EAA4B,EAAA,EAAA,UACtC,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAQjB,CAAE,QAAA,CAAS,EAAM,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,WAAA,CAAA,CAQ/B,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAOD,CAAE,KAAM,QAAS,QAAA,CAAS,EAAA,CAAA,CAAA,CAAO,EAAA,UAAA,WAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAajC,CAAE,UAAW,aAAA,CAAA,CAAA,CAAe,EAAA,UAAA,YAAA,KAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,uBAKf,CACtB,KAAM,SACN,QAAA,CAAS,EACT,SAAU,MAAA,CAAA,CAAA,CACT,EAAA,UAAA,aAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,uBAGqB,CACtB,KAAM,SACN,QAAA,CAAS,EACT,SAAU,MAAA,CAAA,CAAA,CACT,EAAA,UAAA,aAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eA3KY,kBAAA,CAAA,CAAkB,EAAA,CCV1B,IAAA,EAAA,cAAiC,EAAA,CAAA,CAAA,YAAA,GAAA,EAAA,CAAA,MAAA,GAAA,EAAA,CAAA,KAAA,KAyCiB,KAAA,KAAA,QAQxB,OAAA,KAAA,MASA,OAAA,KAAA,KAQa,SAAA,KAAA,SAAA,CAe3B,EAAA,KAAA,KAAA,CAQJ,EAAA,OAAA,KAAA,OAxFE,CAAC,EAAA,GAAG;;;;;;;;;;;;;;;;;;;;;iCAuBiB,CAAA,GACjC,EAAA,WAAW,kBACd,KAAM,OACN,eAAA,CAAgB,EAAA,CA4EjB,mBAAA,CACC,MAAM,mBAAA,CAEN,KAAK,0BAAA,CAIN,0BAAA,CACC,GAAA,CAAI,KAAK,MAAA,CAAQ,KAAK,KACtB,KAAK,IAAM,KAAQ,KAAK,WACvB,GAAI,EAAK,WAAa,KAAK,UAAW,CACrC,IAAM,EAAO,EAAK,aAAa,MAAA,CAC/B,GAAI,EAEH,OAAA,KADA,KAAK,cAAgB,KAQzB,kBAA0B,EAAA,CACzB,GAAI,KAAK,MAAQ,KAAK,KAAM,OAE5B,IAAM,EADO,EAAE,OACI,cAAc,CAAE,QAAA,CAAS,EAAA,CAAA,CAC5C,IAAK,IAAM,KAAQ,EAClB,GAAI,EAAK,WAAa,KAAK,UAAW,CACrC,IAAM,EAAO,EAAK,aAAa,MAAA,CAC/B,GAAI,EAEH,OAAA,KADA,KAAK,cAAgB,IAQzB,IAAA,UAA8B,EAAA,CAC7B,IAAM,EAAS,KAAK,WACpB,KAAK,WAAa,EAEd,KAAK,aAAa,aAAA,EACrB,KAAK,gBAAgB,aAAA,CAEtB,KAAK,cAAc,YAAa,EAAA,CAGjC,IAAA,WACoB,CACnB,OAAO,KAAK,WAIb,MAAsB,EAAA,CACrB,KAAK,cAAc,MAAM,EAAA,CAI1B,MAAA,CACC,KAAK,cAAc,MAAA,CAGpB,OAAA,CACC,KAAK,cAAc,IAAI,MAAM,QAAS,CAAE,QAAA,CAAS,EAAM,SAAA,CAAU,EAAA,CAAA,CAAA,CAIlE,gBAAwB,EAAA,CACvB,EAAM,gBAAA,CACN,EAAM,iBAAA,CAGP,aAAuB,EAAA,EAIvB,QAAA,CAEC,IAAM,EAAmB,KAAK,UAAY,QAAU,eAAiB,KAAK,QAGpE,EAAU,CACf,6OAAA,CACC,EACD,iBAAkB,KAAK,SACvB,iBAAA,CAAmB,KAAK,SACxB,kBAAA,CACE,KAAK,WACL,IAAqB,YACrB,IAAqB,QACrB,IAAqB,UACrB,IAAqB,gBACvB,kBAAA,CAAoB,KAAK,UAAY,IAAqB,WAC1D,qBAAsB,KAAK,QAAU,OACrC,gDAAiD,IAAqB,WACtE,8DAA+D,IAAqB,WACpF,qCAAsC,IAAqB,SAC3D,oDAAqD,IAAqB,eAC1E,uBAAwB,IAAqB,OAE7C,QAAS,KAAK,OAAS,MACvB,MAAO,KAAK,OAAS,KACrB,QAAS,KAAK,OAAS,KACvB,MAAO,KAAK,OAAS,KACrB,MAAO,KAAK,OAAS,KACrB,MAAO,KAAK,OAAS,KAAT,CAGP,EAAoB,CACzB,wCAAA,CAAyC,EACzC,sBAAuB,IAAqB,SAC5C,2BAA4B,IAAqB,YAAc,IAAqB,YAAc,IAAqB,OACvH,+BAAgC,IAAqB,eAArB,CAI3B,EAAW,KAAK,OAAS,MAAQ,OAAS,KAAK,OAAS,KAAO,OAAS,KAAK,OAAS,KAAO,OAAS,KAAK,OAAS,MAAgB,KAAK,OAAS,KAAvB,OAAuC,OAGxK,OAAI,KAAK,KACD,EAAA,IAAI;;OAEP,EAAA,EAAS,CAAE,SAAU,EAAG,OAAQ,GAAA,CAAA,CAAA;;4BAEjB,KAAK,SAAA,IAAW,GAAY,KAAK,KAAA,CAAA;kCAC3B,KAAK,UAAA,CAAA;cACnB,KAAK,SAAS,EAAA,CAAA;gBACZ,KAAK,SAAW,KAAO,IAAA;qBAClB,KAAK,SAAA;cACZ,KAAK,SAAW,KAAK,gBAAA,IAAkB,GAAA;;mBAExC,KAAK,aAAgB,EAAA,IAAI,gCAAgC,KAAK,SAAS,EAAA,CAAA,UAAA,CAAA;OAC7E,KAAK,KACJ,EAAA,IAAI,gBACJ,EAAA,IAAI;gDACoC,KAAK,kBAAA;6BACxB,EAAA,SAAS,EAAA,EAAA,WAAkB,KAAK,MAAQ,KAAK,cAAA,CAAA;;;KAQjE,EAAA,IAAI;;MAEP,EAAA,EAAS,CAAE,SAAU,EAAG,OAAQ,GAAA,CAAA,CAAA;;iCAEX,KAAK,UAAA,CAAA;gBAChB,KAAK,SAAA;aACR,KAAK,SAAS,EAAA,CAAA;2BACN,KAAK,KAAA,CAAA;+BACD,KAAK,SAAW,KAAA,IAAO,GAAA,CAAA;;kBAEpC,KAAK,aAAgB,EAAA,IAAI,gCAAgC,KAAK,SAAS,EAAA,CAAA,UAAA,CAAA;MAC7E,KAAK,KACJ,EAAA,IAAI,gBACJ,EAAA,IAAI;+CACoC,KAAK,kBAAA;4BACxB,EAAA,SAAS,EAAA,EAAA,WAAkB,KAAK,MAAQ,KAAK,cAAA,CAAA;;;uBAxOjE,gBAAA,CAAiB,EAAA,CAAA,CAAK,EAAA,UAAA,gBAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAUnB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAQjB,CAAE,QAAA,CAAS,EAAM,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,UAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,WAAA,CAAA,CAS/B,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAQD,CAAE,QAAA,CAAS,EAAM,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,WAAA,CAAA,CAQ/B,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAOD,CAAE,KAAM,QAAS,QAAA,CAAS,EAAA,CAAA,CAAA,CAAO,EAAA,UAAA,WAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAQjC,CAAE,KAAM,QAAS,QAAA,CAAS,EAAA,CAAA,CAAA,CAAO,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAQjC,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,QAAA,CAAA,CAInB,EAAA,UAAA,gBAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAkDE,CAAE,UAAW,aAAA,CAAA,CAAA,CAAe,EAAA,UAAA,YAAA,KAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAvJxB,uBAAA,CAAA,CAAuB,EAAA,CAAA,OAAA,eAAA,QAAA,iBAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA,CAAA,OAAA,eAAA,QAAA,qBAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
package/dist/button.js CHANGED
@@ -1,14 +1,15 @@
1
- import { t as e } from "./provide-ydIskwf2.js";
2
- import { t } from "./decorate-D_utPUsC.js";
3
- import { t as n } from "./litElement.mixin-CszkJuNl.js";
4
- import "./mixins.js";
5
- import { t as r } from "./magnetic-BhXebqF3.js";
6
- import { t as i } from "./context-BerzpUhI.js";
1
+ import { s as e } from "./mixins-CL1krSOE.js";
2
+ import { t } from "./decorate-23nYs4Le.js";
3
+ import { t as n } from "./magnetic-BZGFxAWG.js";
4
+ import { t as r } from "./context-Bdu1xt0W.js";
5
+ import { provide as i } from "@lit/context";
7
6
  import { customElement as a, property as o, query as s, queryAssignedElements as c, state as l } from "lit/decorators.js";
8
7
  import { LitElement as u, css as d, html as f } from "lit";
9
- import { when as p } from "lit/directives/when.js";
10
- import { ifDefined as m } from "lit/directives/if-defined.js";
11
- var h = class extends n(d`:host{
8
+ import { ifDefined as p } from "lit/directives/if-defined.js";
9
+ import { when as m } from "lit/directives/when.js";
10
+ var h = class extends e {
11
+ static {
12
+ this.styles = [d`:host{
12
13
  display: inline-block;
13
14
  min-width: fit-content;
14
15
  overflow: hidden;
@@ -35,7 +36,8 @@ var h = class extends n(d`:host{
35
36
  :host *,
36
37
  * {
37
38
  touch-action: manipulation;
38
- }`) {
39
+ }`];
40
+ }
39
41
  static {
40
42
  this.shadowRootOptions = {
41
43
  ...u.shadowRootOptions,
@@ -176,7 +178,7 @@ var h = class extends n(d`:host{
176
178
  "text-warning-default": (e === "text" || e === "elevated" || e === "outlined") && this.effectiveColor === "warning",
177
179
  "text-info-default": (e === "text" || e === "elevated" || e === "outlined") && this.effectiveColor === "info",
178
180
  "text-surface-onVariant": (e === "text" || e === "elevated" || e === "outlined" || e === "filled tonal") && this.effectiveColor === "neutral"
179
- }, n = {
181
+ }, r = {
180
182
  "absolute inset-0 hover:opacity-[0.08] z-0 rounded-2xl": !0,
181
183
  "focus-visible:opacity-[0.10]": !0,
182
184
  "active:opacity-[0.10]": !0,
@@ -204,37 +206,37 @@ var h = class extends n(d`:host{
204
206
  };
205
207
  return this.href ? f`
206
208
  <a
207
- ${r({
209
+ ${n({
208
210
  strength: 3,
209
211
  radius: 60
210
212
  })}
211
213
  part="base"
212
- href=${m(this.disabled ? void 0 : this.href)}
213
- aria-label=${m(this.ariaLabel)}
214
+ href=${p(this.disabled ? void 0 : this.href)}
215
+ aria-label=${p(this.ariaLabel)}
214
216
  class="${this.classMap(t)}"
215
217
  tabindex=${this.disabled ? "-1" : "0"}
216
218
  aria-disabled=${this.disabled}
217
219
  @click=${this.disabled ? this._preventDefault : void 0}
218
220
  >
219
- ${p(!this.disabled, () => f`<div class="${this.classMap(n)}"></div>`)}
221
+ ${m(!this.disabled, () => f`<div class="${this.classMap(r)}"></div>`)}
220
222
  <slot name="prefix"></slot>
221
223
  <slot></slot>
222
224
  <slot name="suffix"></slot>
223
225
  </a>
224
226
  ` : f`
225
227
  <button
226
- ${r({
228
+ ${n({
227
229
  strength: 3,
228
230
  radius: 60
229
231
  })}
230
232
  part="base"
231
- aria-label=${m(this.ariaLabel)}
233
+ aria-label=${p(this.ariaLabel)}
232
234
  ?disabled=${this.disabled}
233
235
  class="${this.classMap(t)}"
234
- type=${m(this.type)}
235
- tabindex=${m(this.disabled ? "-1" : void 0)}
236
+ type=${p(this.type)}
237
+ tabindex=${p(this.disabled ? "-1" : void 0)}
236
238
  >
237
- ${p(!this.disabled, () => f`<div class="${this.classMap(n)}"></div>`)}
239
+ ${m(!this.disabled, () => f`<div class="${this.classMap(r)}"></div>`)}
238
240
  <slot name="prefix"></slot>
239
241
  <slot></slot>
240
242
  <slot name="suffix"></slot>
@@ -248,7 +250,7 @@ t([s("[part=\"base\"]", !0)], h.prototype, "nativeElement", void 0), t([o({
248
250
  })], h.prototype, "variant", void 0), t([o({
249
251
  reflect: !0,
250
252
  type: String
251
- })], h.prototype, "color", void 0), t([o()], h.prototype, "width", void 0), t([e({ context: i }), o({ type: String })], h.prototype, "size", void 0), t([o({
253
+ })], h.prototype, "color", void 0), t([o()], h.prototype, "width", void 0), t([i({ context: r }), o({ type: String })], h.prototype, "size", void 0), t([o({
252
254
  reflect: !0,
253
255
  type: String
254
256
  })], h.prototype, "type", void 0), t([o()], h.prototype, "href", void 0), t([o({
@@ -263,7 +265,12 @@ t([s("[part=\"base\"]", !0)], h.prototype, "nativeElement", void 0), t([o({
263
265
  flatten: !0,
264
266
  selector: "img"
265
267
  })], h.prototype, "suffixImgs", void 0), h = t([a("schmancy-button")], h);
266
- var g = class extends n(d`
268
+ var g = class extends e {
269
+ constructor(...e) {
270
+ super(...e), this.size = "md", this.variant = "text", this.width = "auto", this.type = "button", this.disabled = !1, this.text = !1;
271
+ }
272
+ static {
273
+ this.styles = [d`
267
274
  :host {
268
275
  display: block;
269
276
  border-radius: 9999px;
@@ -284,9 +291,7 @@ var g = class extends n(d`
284
291
  :host(:hover:not([disabled])) { box-shadow: none; }
285
292
  :host(:active:not([disabled])) { transform: none; box-shadow: none; }
286
293
  }
287
- `) {
288
- constructor(...e) {
289
- super(...e), this.size = "md", this.variant = "text", this.width = "auto", this.type = "button", this.disabled = !1, this.text = !1;
294
+ `];
290
295
  }
291
296
  static {
292
297
  this.shadowRootOptions = {
@@ -356,7 +361,7 @@ var g = class extends n(d`
356
361
  "p-3": this.size === "md",
357
362
  "p-4": this.size === "lg",
358
363
  "p-5": this.size === "xl"
359
- }, n = {
364
+ }, r = {
360
365
  "hover:opacity-[0.08] rounded-full z-0": !0,
361
366
  "hover:bg-primary-on": e === "filled",
362
367
  "hover:bg-primary-default": e === "outlined" || e === "elevated" || e === "text",
@@ -364,41 +369,41 @@ var g = class extends n(d`
364
369
  }, i = this.size === "xxs" ? "12px" : this.size === "xs" ? "16px" : this.size === "sm" ? "20px" : this.size === "md" || this.size === "lg" ? "24px" : "40px";
365
370
  return this.href ? f`
366
371
  <a
367
- ${r({
372
+ ${n({
368
373
  strength: 3,
369
374
  radius: 50
370
375
  })}
371
376
  part="base"
372
- href=${m(this.disabled ? void 0 : this.href)}
373
- aria-label=${m(this.ariaLabel)}
377
+ href=${p(this.disabled ? void 0 : this.href)}
378
+ aria-label=${p(this.ariaLabel)}
374
379
  class="${this.classMap(t)}"
375
380
  tabindex=${this.disabled ? "-1" : "0"}
376
381
  aria-disabled=${this.disabled}
377
382
  @click=${this.disabled ? this._preventDefault : void 0}
378
383
  >
379
- ${p(!this.disabled, () => f`<div class="absolute inset-0 ${this.classMap(n)}"></div>`)}
384
+ ${m(!this.disabled, () => f`<div class="absolute inset-0 ${this.classMap(r)}"></div>`)}
380
385
  ${this.text ? f`<slot></slot>` : f`
381
386
  <slot style="display:none" @slotchange=${this._handleSlotChange}></slot>
382
- <schmancy-icon size=${i} icon=${this.icon || this._capturedIcon}></schmancy-icon>
387
+ <schmancy-icon size=${i} icon=${p(this.icon || this._capturedIcon)}></schmancy-icon>
383
388
  `}
384
389
  </a>
385
390
  ` : f`
386
391
  <button
387
- ${r({
392
+ ${n({
388
393
  strength: 3,
389
394
  radius: 50
390
395
  })}
391
396
  part="base"
392
- aria-label=${m(this.ariaLabel)}
397
+ aria-label=${p(this.ariaLabel)}
393
398
  ?disabled=${this.disabled}
394
399
  class="${this.classMap(t)}"
395
- type=${m(this.type)}
396
- tabindex=${m(this.disabled ? "-1" : void 0)}
400
+ type=${p(this.type)}
401
+ tabindex=${p(this.disabled ? "-1" : void 0)}
397
402
  >
398
- ${p(!this.disabled, () => f`<div class="absolute inset-0 ${this.classMap(n)}"></div>`)}
403
+ ${m(!this.disabled, () => f`<div class="absolute inset-0 ${this.classMap(r)}"></div>`)}
399
404
  ${this.text ? f`<slot></slot>` : f`
400
405
  <slot style="display:none" @slotchange=${this._handleSlotChange}></slot>
401
- <schmancy-icon size=${i} icon=${this.icon || this._capturedIcon}></schmancy-icon>
406
+ <schmancy-icon size=${i} icon=${p(this.icon || this._capturedIcon)}></schmancy-icon>
402
407
  `}
403
408
  </button>
404
409
  `;