@mhmo91/schmancy 0.10.35 → 0.10.37

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 (430) hide show
  1. package/custom-elements.json +1165 -1109
  2. package/dist/SchmancyElement-BHfQg3Tj.cjs +2 -0
  3. package/dist/SchmancyElement-BHfQg3Tj.cjs.map +1 -0
  4. package/dist/SchmancyElement-CDT2q1lA.js +284 -0
  5. package/dist/SchmancyElement-CDT2q1lA.js.map +1 -0
  6. package/dist/agent/schmancy.agent.js +3488 -3290
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +335 -275
  9. package/dist/{area-DviXdbDx.js → area-KtULlxuA.js} +2 -2
  10. package/dist/{area-DviXdbDx.js.map → area-KtULlxuA.js.map} +1 -1
  11. package/dist/{area-CTSTgjlx.cjs → area-fdKhYB6T.cjs} +1 -1
  12. package/dist/{area-CTSTgjlx.cjs.map → area-fdKhYB6T.cjs.map} +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{audio-Q9oB_cQR.cjs → audio-CUMAv9D_.cjs} +1 -1
  16. package/dist/{audio-Q9oB_cQR.cjs.map → audio-CUMAv9D_.cjs.map} +1 -1
  17. package/dist/{audio-DFYoaw0M.js → audio-zIJVTo_V.js} +1 -1
  18. package/dist/{audio-DFYoaw0M.js.map → audio-zIJVTo_V.js.map} +1 -1
  19. package/dist/audio.cjs +1 -1
  20. package/dist/audio.js +2 -2
  21. package/dist/{autocomplete-DmLXJr7C.cjs → autocomplete-DEZk6wBD.cjs} +1 -1
  22. package/dist/{autocomplete-DmLXJr7C.cjs.map → autocomplete-DEZk6wBD.cjs.map} +1 -1
  23. package/dist/{autocomplete-BDvuma6D.js → autocomplete-DIScyo8Q.js} +3 -3
  24. package/dist/{autocomplete-BDvuma6D.js.map → autocomplete-DIScyo8Q.js.map} +1 -1
  25. package/dist/autocomplete.cjs +1 -1
  26. package/dist/autocomplete.js +1 -1
  27. package/dist/avatar.cjs +1 -1
  28. package/dist/avatar.js +3 -3
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/{boat-lr7MPZ7H.js → boat-BHPqSqJd.js} +67 -83
  32. package/dist/boat-BHPqSqJd.js.map +1 -0
  33. package/dist/boat-OBZ77exO.cjs +34 -0
  34. package/dist/boat-OBZ77exO.cjs.map +1 -0
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/breadcrumb.cjs +1 -1
  38. package/dist/breadcrumb.js +2 -2
  39. package/dist/{busy-CgzZbGfx.cjs → busy-BJNsKSCM.cjs} +1 -1
  40. package/dist/{busy-CgzZbGfx.cjs.map → busy-BJNsKSCM.cjs.map} +1 -1
  41. package/dist/{busy-DgQ4ux5N.js → busy-Dut78y4L.js} +2 -2
  42. package/dist/{busy-DgQ4ux5N.js.map → busy-Dut78y4L.js.map} +1 -1
  43. package/dist/busy.cjs +1 -1
  44. package/dist/busy.js +1 -1
  45. package/dist/{button-DFvR1iXX.cjs → button-DzlHLjWO.cjs} +1 -1
  46. package/dist/{button-DFvR1iXX.cjs.map → button-DzlHLjWO.cjs.map} +1 -1
  47. package/dist/{button-qbN1muQ0.js → button-kcpPQavY.js} +2 -2
  48. package/dist/{button-qbN1muQ0.js.map → button-kcpPQavY.js.map} +1 -1
  49. package/dist/button.cjs +4 -4
  50. package/dist/button.cjs.map +1 -1
  51. package/dist/button.js +16 -22
  52. package/dist/button.js.map +1 -1
  53. package/dist/{card-D_GlwZ5q.cjs → card-BLxPLqdQ.cjs} +1 -1
  54. package/dist/{card-D_GlwZ5q.cjs.map → card-BLxPLqdQ.cjs.map} +1 -1
  55. package/dist/{card-DAbr-7Vy.js → card-DxSKxCid.js} +2 -2
  56. package/dist/{card-DAbr-7Vy.js.map → card-DxSKxCid.js.map} +1 -1
  57. package/dist/card.cjs +1 -1
  58. package/dist/card.js +1 -1
  59. package/dist/{checkbox-BNORaxMF.js → checkbox-B1wiM3Dv.js} +2 -2
  60. package/dist/{checkbox-BNORaxMF.js.map → checkbox-B1wiM3Dv.js.map} +1 -1
  61. package/dist/{checkbox-BUY_uc_r.cjs → checkbox-BCLkhp5G.cjs} +1 -1
  62. package/dist/{checkbox-BUY_uc_r.cjs.map → checkbox-BCLkhp5G.cjs.map} +1 -1
  63. package/dist/checkbox.cjs +1 -1
  64. package/dist/checkbox.js +1 -1
  65. package/dist/{chips-CXZ4dJCK.cjs → chips-C9dS1WKn.cjs} +44 -33
  66. package/dist/chips-C9dS1WKn.cjs.map +1 -0
  67. package/dist/{chips-Dg6Lk6BT.js → chips-vWmwqQed.js} +145 -122
  68. package/dist/chips-vWmwqQed.js.map +1 -0
  69. package/dist/chips.cjs +1 -1
  70. package/dist/chips.js +2 -2
  71. package/dist/connectivity.cjs +1 -1
  72. package/dist/connectivity.js +3 -3
  73. package/dist/content-drawer.cjs +1 -1
  74. package/dist/content-drawer.js +1 -1
  75. package/dist/{date-range-C-_be3_E.cjs → date-range-BV6HuvLw.cjs} +25 -19
  76. package/dist/date-range-BV6HuvLw.cjs.map +1 -0
  77. package/dist/{date-range-BU6WX7d5.js → date-range-D3ge1b4c.js} +129 -137
  78. package/dist/date-range-D3ge1b4c.js.map +1 -0
  79. package/dist/{date-range-inline-DJtUmHKF.cjs → date-range-inline-DpYgdLRv.cjs} +1 -1
  80. package/dist/{date-range-inline-DJtUmHKF.cjs.map → date-range-inline-DpYgdLRv.cjs.map} +1 -1
  81. package/dist/{date-range-inline-7o7xtVIu.js → date-range-inline-DuWQaWps.js} +2 -2
  82. package/dist/{date-range-inline-7o7xtVIu.js.map → date-range-inline-DuWQaWps.js.map} +1 -1
  83. package/dist/date-range-inline.cjs +1 -1
  84. package/dist/date-range-inline.js +1 -1
  85. package/dist/date-range.cjs +1 -1
  86. package/dist/date-range.js +1 -1
  87. package/dist/delay.cjs +1 -1
  88. package/dist/delay.js +2 -2
  89. package/dist/{details-EfbDPVEo.js → details-C-GZaq3j.js} +2 -2
  90. package/dist/{details-EfbDPVEo.js.map → details-C-GZaq3j.js.map} +1 -1
  91. package/dist/{details-Bs0MyyvF.cjs → details-Dp5rLIWk.cjs} +1 -1
  92. package/dist/{details-Bs0MyyvF.cjs.map → details-Dp5rLIWk.cjs.map} +1 -1
  93. package/dist/details.cjs +1 -1
  94. package/dist/details.js +1 -1
  95. package/dist/{directives-fLwDj6b0.cjs → directives-D_l1E5H6.cjs} +3 -3
  96. package/dist/directives-D_l1E5H6.cjs.map +1 -0
  97. package/dist/{directives-zi1Mm2er.js → directives-DyS51FUh.js} +37 -21
  98. package/dist/directives-DyS51FUh.js.map +1 -0
  99. package/dist/directives.cjs +1 -1
  100. package/dist/directives.js +2 -2
  101. package/dist/{divider-CdIsWZrM.cjs → divider-CBnAmHMZ.cjs} +1 -1
  102. package/dist/{divider-CdIsWZrM.cjs.map → divider-CBnAmHMZ.cjs.map} +1 -1
  103. package/dist/{divider-CEPfrIwe.js → divider-nQffE0AD.js} +2 -2
  104. package/dist/{divider-CEPfrIwe.js.map → divider-nQffE0AD.js.map} +1 -1
  105. package/dist/divider.cjs +1 -1
  106. package/dist/divider.js +1 -1
  107. package/dist/dropdown.cjs +1 -1
  108. package/dist/dropdown.js +2 -2
  109. package/dist/{expand-g1vqqUp1.js → expand-DvTb-UPR.js} +3 -3
  110. package/dist/{expand-g1vqqUp1.js.map → expand-DvTb-UPR.js.map} +1 -1
  111. package/dist/{expand--at1k3qo.cjs → expand-mlP_3XWz.cjs} +1 -1
  112. package/dist/{expand--at1k3qo.cjs.map → expand-mlP_3XWz.cjs.map} +1 -1
  113. package/dist/expand.cjs +1 -1
  114. package/dist/expand.js +1 -1
  115. package/dist/fab.cjs +77 -0
  116. package/dist/fab.cjs.map +1 -0
  117. package/dist/fab.js +151 -0
  118. package/dist/fab.js.map +1 -0
  119. package/dist/{float-DxVzgI9o.js → float-C-Ko0Le3.js} +2 -2
  120. package/dist/{float-DxVzgI9o.js.map → float-C-Ko0Le3.js.map} +1 -1
  121. package/dist/{float-P9HukAm-.cjs → float-C17xgMT1.cjs} +1 -1
  122. package/dist/{float-P9HukAm-.cjs.map → float-C17xgMT1.cjs.map} +1 -1
  123. package/dist/float.cjs +1 -1
  124. package/dist/float.js +1 -1
  125. package/dist/{form-ByYhXe1p.cjs → form-CwPHcQYB.cjs} +1 -1
  126. package/dist/{form-ByYhXe1p.cjs.map → form-CwPHcQYB.cjs.map} +1 -1
  127. package/dist/{form-CqLaozHp.js → form-DA0hUu2h.js} +3 -3
  128. package/dist/{form-CqLaozHp.js.map → form-DA0hUu2h.js.map} +1 -1
  129. package/dist/form.cjs +6 -6
  130. package/dist/form.cjs.map +1 -1
  131. package/dist/form.js +25 -23
  132. package/dist/form.js.map +1 -1
  133. package/dist/handover/agent-runtime-followups.md +1 -1
  134. package/dist/handover/agent-runtime-v1.md +3 -3
  135. package/dist/{icons-CkphcMp6.js → icons-C6UfxmHZ.js} +2 -2
  136. package/dist/{icons-CkphcMp6.js.map → icons-C6UfxmHZ.js.map} +1 -1
  137. package/dist/{icons-DYtiRU5V.cjs → icons-CW3-oMSb.cjs} +1 -1
  138. package/dist/{icons-DYtiRU5V.cjs.map → icons-CW3-oMSb.cjs.map} +1 -1
  139. package/dist/icons.cjs +1 -1
  140. package/dist/icons.js +1 -1
  141. package/dist/{iframe-CjqJksl8.js → iframe-BTjZfYyh.js} +2 -2
  142. package/dist/{iframe-CjqJksl8.js.map → iframe-BTjZfYyh.js.map} +1 -1
  143. package/dist/{iframe-C3trkP8q.cjs → iframe-wuYT2xFz.cjs} +1 -1
  144. package/dist/{iframe-C3trkP8q.cjs.map → iframe-wuYT2xFz.cjs.map} +1 -1
  145. package/dist/iframe.cjs +1 -1
  146. package/dist/iframe.js +1 -1
  147. package/dist/index.cjs +1 -1
  148. package/dist/index.js +57 -56
  149. package/dist/{input-CG51zDVh.js → input-B_4g2ulO.js} +2 -2
  150. package/dist/{input-CG51zDVh.js.map → input-B_4g2ulO.js.map} +1 -1
  151. package/dist/{input-DuavpwNL.cjs → input-BrDiIT60.cjs} +1 -1
  152. package/dist/{input-DuavpwNL.cjs.map → input-BrDiIT60.cjs.map} +1 -1
  153. package/dist/{input-chip-57tgNXKT.cjs → input-chip-B-XWh4aE.cjs} +1 -1
  154. package/dist/input-chip-B-XWh4aE.cjs.map +1 -0
  155. package/dist/{input-chip-C6Lq1927.js → input-chip-BlWhOruv.js} +2 -2
  156. package/dist/input-chip-BlWhOruv.js.map +1 -0
  157. package/dist/input.cjs +1 -1
  158. package/dist/input.js +1 -1
  159. package/dist/json.cjs +1 -1
  160. package/dist/json.js +3 -3
  161. package/dist/kbd.cjs +1 -1
  162. package/dist/kbd.js +2 -2
  163. package/dist/{layout-6ipbiWTl.cjs → layout-BhyIcEVu.cjs} +1 -1
  164. package/dist/{layout-6ipbiWTl.cjs.map → layout-BhyIcEVu.cjs.map} +1 -1
  165. package/dist/{layout-D4IOwx7p.js → layout-Dxit9enO.js} +1 -1
  166. package/dist/{layout-D4IOwx7p.js.map → layout-Dxit9enO.js.map} +1 -1
  167. package/dist/layout.cjs +1 -1
  168. package/dist/layout.js +2 -2
  169. package/dist/{lightbox-H8pVWGMX.cjs → lightbox-CVBogswK.cjs} +1 -1
  170. package/dist/{lightbox-H8pVWGMX.cjs.map → lightbox-CVBogswK.cjs.map} +1 -1
  171. package/dist/{lightbox-CsyO2XSr.js → lightbox-D85XAAuC.js} +2 -2
  172. package/dist/{lightbox-CsyO2XSr.js.map → lightbox-D85XAAuC.js.map} +1 -1
  173. package/dist/lightbox.cjs +1 -1
  174. package/dist/lightbox.js +1 -1
  175. package/dist/{list-BAwH0pQW.js → list-DOF_yVn5.js} +2 -2
  176. package/dist/{list-BAwH0pQW.js.map → list-DOF_yVn5.js.map} +1 -1
  177. package/dist/{list-Bs9m8kw7.cjs → list-nVjLskgx.cjs} +1 -1
  178. package/dist/{list-Bs9m8kw7.cjs.map → list-nVjLskgx.cjs.map} +1 -1
  179. package/dist/list.cjs +1 -1
  180. package/dist/list.js +1 -1
  181. package/dist/{menu-BMcGzj1h.cjs → menu-DqmNjLgY.cjs} +1 -1
  182. package/dist/{menu-BMcGzj1h.cjs.map → menu-DqmNjLgY.cjs.map} +1 -1
  183. package/dist/{menu-tQVARVaC.js → menu-QrAK5Uu9.js} +3 -3
  184. package/dist/{menu-tQVARVaC.js.map → menu-QrAK5Uu9.js.map} +1 -1
  185. package/dist/menu.cjs +1 -1
  186. package/dist/menu.js +1 -1
  187. package/dist/{mixins-Bp0wIHg2.js → mixins-De1zjyhy.js} +1 -1
  188. package/dist/{mixins-Bp0wIHg2.js.map → mixins-De1zjyhy.js.map} +1 -1
  189. package/dist/{mixins-CGXSzZc7.cjs → mixins-DxHpyMHA.cjs} +1 -1
  190. package/dist/{mixins-CGXSzZc7.cjs.map → mixins-DxHpyMHA.cjs.map} +1 -1
  191. package/dist/mixins.cjs +1 -1
  192. package/dist/mixins.js +2 -2
  193. package/dist/nav-drawer.cjs +1 -1
  194. package/dist/nav-drawer.js +1 -1
  195. package/dist/navigation-bar.cjs +1 -1
  196. package/dist/navigation-bar.js +1 -1
  197. package/dist/navigation-rail.cjs +1 -1
  198. package/dist/navigation-rail.js +2 -2
  199. package/dist/{notification-D1tX2nx5.js → notification-BtAK7NK8.js} +4 -4
  200. package/dist/{notification-D1tX2nx5.js.map → notification-BtAK7NK8.js.map} +1 -1
  201. package/dist/{notification-Bz00zdpV.cjs → notification-DYzbUb5C.cjs} +1 -1
  202. package/dist/{notification-Bz00zdpV.cjs.map → notification-DYzbUb5C.cjs.map} +1 -1
  203. package/dist/notification.cjs +1 -1
  204. package/dist/notification.js +1 -1
  205. package/dist/{option-BpGV8Apj.js → option-DHwA0miA.js} +2 -2
  206. package/dist/{option-BpGV8Apj.js.map → option-DHwA0miA.js.map} +1 -1
  207. package/dist/{option-BnybLEDO.cjs → option-DnSPa8ro.cjs} +1 -1
  208. package/dist/{option-BnybLEDO.cjs.map → option-DnSPa8ro.cjs.map} +1 -1
  209. package/dist/option.cjs +1 -1
  210. package/dist/option.js +1 -1
  211. package/dist/{overlay-UQR2Dy3u.cjs → overlay-BVkqZmoS.cjs} +5 -5
  212. package/dist/overlay-BVkqZmoS.cjs.map +1 -0
  213. package/dist/{overlay-BpNhd74N.js → overlay-Del1sBEB.js} +108 -108
  214. package/dist/overlay-Del1sBEB.js.map +1 -0
  215. package/dist/overlay.cjs +1 -1
  216. package/dist/{overlay.confirm-body-CVDtVk5X.cjs → overlay.confirm-body-BV9umTAl.cjs} +1 -1
  217. package/dist/{overlay.confirm-body-CVDtVk5X.cjs.map → overlay.confirm-body-BV9umTAl.cjs.map} +1 -1
  218. package/dist/{overlay.confirm-body-BHcXu5Wk.js → overlay.confirm-body-DSONXUzl.js} +6 -6
  219. package/dist/{overlay.confirm-body-BHcXu5Wk.js.map → overlay.confirm-body-DSONXUzl.js.map} +1 -1
  220. package/dist/overlay.js +3 -3
  221. package/dist/{overlay.service-DTE6NwIM.js → overlay.service-BTp5Oq7f.js} +2 -2
  222. package/dist/{overlay.service-DTE6NwIM.js.map → overlay.service-BTp5Oq7f.js.map} +1 -1
  223. package/dist/{overlay.service-C8RsQzgM.cjs → overlay.service-XLlrsSdA.cjs} +1 -1
  224. package/dist/{overlay.service-C8RsQzgM.cjs.map → overlay.service-XLlrsSdA.cjs.map} +1 -1
  225. package/dist/{progress-gbIALDRs.cjs → progress-DUbTL9g9.cjs} +1 -1
  226. package/dist/{progress-gbIALDRs.cjs.map → progress-DUbTL9g9.cjs.map} +1 -1
  227. package/dist/{progress-CAKsxp29.js → progress-DYA83CFU.js} +2 -2
  228. package/dist/{progress-CAKsxp29.js.map → progress-DYA83CFU.js.map} +1 -1
  229. package/dist/progress.cjs +1 -1
  230. package/dist/progress.js +1 -1
  231. package/dist/{radio-group-CfJ5DtI4.cjs → radio-group-B-ORNtvR.cjs} +1 -1
  232. package/dist/{radio-group-CfJ5DtI4.cjs.map → radio-group-B-ORNtvR.cjs.map} +1 -1
  233. package/dist/{radio-group-otyvZvUk.js → radio-group-DxX0iJBo.js} +2 -2
  234. package/dist/{radio-group-otyvZvUk.js.map → radio-group-DxX0iJBo.js.map} +1 -1
  235. package/dist/radio-group.cjs +1 -1
  236. package/dist/radio-group.js +1 -1
  237. package/dist/range.cjs +1 -1
  238. package/dist/range.js +2 -2
  239. package/dist/{select-81jniVTs.cjs → select-B9uj_u-s.cjs} +1 -1
  240. package/dist/{select-81jniVTs.cjs.map → select-B9uj_u-s.cjs.map} +1 -1
  241. package/dist/{select-9vXx1fhr.js → select-C7gkA-ab.js} +3 -3
  242. package/dist/{select-9vXx1fhr.js.map → select-C7gkA-ab.js.map} +1 -1
  243. package/dist/select.cjs +1 -1
  244. package/dist/select.js +1 -1
  245. package/dist/skeleton.cjs +1 -1
  246. package/dist/skeleton.js +2 -2
  247. package/dist/skills/INDEX.md +1 -1
  248. package/dist/skills/SKILL.md +20 -18
  249. package/dist/skills/boat.md +21 -15
  250. package/dist/skills/fab.md +75 -0
  251. package/dist/skills/schmancy/INDEX.md +1 -1
  252. package/dist/skills/schmancy/SKILL.md +20 -18
  253. package/dist/skills/schmancy/boat.md +21 -15
  254. package/dist/skills/schmancy/fab.md +75 -0
  255. package/dist/skills/schmancy/steps.md +68 -34
  256. package/dist/skills/schmancy/theme.md +1 -1
  257. package/dist/skills/steps.md +68 -34
  258. package/dist/skills/theme.md +1 -1
  259. package/dist/slider.cjs +1 -1
  260. package/dist/slider.js +2 -2
  261. package/dist/{sound.service-CmIw63aM.cjs → sound.service-C7FDY_yD.cjs} +1 -1
  262. package/dist/{sound.service-CmIw63aM.cjs.map → sound.service-C7FDY_yD.cjs.map} +1 -1
  263. package/dist/{sound.service-D3ZSq1Kj.js → sound.service-O0232os6.js} +1 -1
  264. package/dist/{sound.service-D3ZSq1Kj.js.map → sound.service-O0232os6.js.map} +1 -1
  265. package/dist/{splash-screen-C5KAWXvA.cjs → splash-screen-DIS4odDr.cjs} +1 -1
  266. package/dist/{splash-screen-C5KAWXvA.cjs.map → splash-screen-DIS4odDr.cjs.map} +1 -1
  267. package/dist/{splash-screen-BOjrmGLk.js → splash-screen-jfE47xl0.js} +2 -2
  268. package/dist/{splash-screen-BOjrmGLk.js.map → splash-screen-jfE47xl0.js.map} +1 -1
  269. package/dist/splash-screen.cjs +1 -1
  270. package/dist/splash-screen.js +1 -1
  271. package/dist/{src-C5g3p1J5.js → src-BP3h-9d9.js} +36 -35
  272. package/dist/{src-C5g3p1J5.js.map → src-BP3h-9d9.js.map} +1 -1
  273. package/dist/{src-qzUpLbje.cjs → src-Um_pzb-U.cjs} +1 -1
  274. package/dist/{src-qzUpLbje.cjs.map → src-Um_pzb-U.cjs.map} +1 -1
  275. package/dist/{state-Cex3rmx2.cjs → state-Bj0M9a6T.cjs} +1 -1
  276. package/dist/{state-Cex3rmx2.cjs.map → state-Bj0M9a6T.cjs.map} +1 -1
  277. package/dist/{state-CWBRTSvE.js → state-DscWQpoM.js} +1 -1
  278. package/dist/{state-CWBRTSvE.js.map → state-DscWQpoM.js.map} +1 -1
  279. package/dist/state.cjs +1 -1
  280. package/dist/state.js +2 -2
  281. package/dist/steps.cjs +35 -19
  282. package/dist/steps.cjs.map +1 -1
  283. package/dist/steps.js +96 -73
  284. package/dist/steps.js.map +1 -1
  285. package/dist/{surface-9S5scTsD.js → surface-B4Wn4SOO.js} +2 -2
  286. package/dist/{surface-9S5scTsD.js.map → surface-B4Wn4SOO.js.map} +1 -1
  287. package/dist/{surface-PfiejLuw.cjs → surface-DRq6cVW6.cjs} +1 -1
  288. package/dist/{surface-PfiejLuw.cjs.map → surface-DRq6cVW6.cjs.map} +1 -1
  289. package/dist/surface.cjs +1 -1
  290. package/dist/surface.js +1 -1
  291. package/dist/switch.cjs +1 -1
  292. package/dist/switch.js +2 -2
  293. package/dist/table.cjs +1 -1
  294. package/dist/table.js +2 -2
  295. package/dist/{tabs-uYvb1P06.cjs → tabs-Ca_fbHPW.cjs} +1 -1
  296. package/dist/{tabs-uYvb1P06.cjs.map → tabs-Ca_fbHPW.cjs.map} +1 -1
  297. package/dist/{tabs-BBOjAmgG.js → tabs-CnQPo-XS.js} +2 -2
  298. package/dist/{tabs-BBOjAmgG.js.map → tabs-CnQPo-XS.js.map} +1 -1
  299. package/dist/tabs.cjs +1 -1
  300. package/dist/tabs.js +1 -1
  301. package/dist/teleport.cjs +1 -1
  302. package/dist/teleport.js +1 -1
  303. package/dist/{textarea-QzSj8Dkl.js → textarea-BvqENhTW.js} +2 -2
  304. package/dist/{textarea-QzSj8Dkl.js.map → textarea-BvqENhTW.js.map} +1 -1
  305. package/dist/{textarea-YPHX4g7Y.cjs → textarea-qr7oL8oU.cjs} +1 -1
  306. package/dist/{textarea-YPHX4g7Y.cjs.map → textarea-qr7oL8oU.cjs.map} +1 -1
  307. package/dist/textarea.cjs +1 -1
  308. package/dist/textarea.js +1 -1
  309. package/dist/theme-BSwJ2YZo.cjs +181 -0
  310. package/dist/{theme-iKUaS9JB.cjs.map → theme-BSwJ2YZo.cjs.map} +1 -1
  311. package/dist/{theme-C2Mp-VGt.js → theme-BV0EzHQ1.js} +6 -5
  312. package/dist/{theme-C2Mp-VGt.js.map → theme-BV0EzHQ1.js.map} +1 -1
  313. package/dist/{theme-button-CJmhxfMe.cjs → theme-button-C6fpUzPM.cjs} +1 -1
  314. package/dist/{theme-button-CJmhxfMe.cjs.map → theme-button-C6fpUzPM.cjs.map} +1 -1
  315. package/dist/{theme-button-DGWAXhzd.js → theme-button-O_xNCgI7.js} +2 -2
  316. package/dist/{theme-button-DGWAXhzd.js.map → theme-button-O_xNCgI7.js.map} +1 -1
  317. package/dist/theme-button.cjs +1 -1
  318. package/dist/theme-button.js +1 -1
  319. package/dist/theme.cjs +1 -1
  320. package/dist/theme.js +3 -3
  321. package/dist/{theme.service-hc4N-1Oz.js → theme.service-DwLhhOmP.js} +1 -1
  322. package/dist/{theme.service-hc4N-1Oz.js.map → theme.service-DwLhhOmP.js.map} +1 -1
  323. package/dist/{theme.service-p61RsJBF.cjs → theme.service-kn9MC025.cjs} +1 -1
  324. package/dist/{theme.service-p61RsJBF.cjs.map → theme.service-kn9MC025.cjs.map} +1 -1
  325. package/dist/tree.cjs +1 -1
  326. package/dist/tree.js +2 -2
  327. package/dist/{typography-DwV0sqht.js → typography-Dtdooaic.js} +2 -2
  328. package/dist/{typography-DwV0sqht.js.map → typography-Dtdooaic.js.map} +1 -1
  329. package/dist/{typography-Bdt8RlX2.cjs → typography-opFYuUYS.cjs} +1 -1
  330. package/dist/{typography-Bdt8RlX2.cjs.map → typography-opFYuUYS.cjs.map} +1 -1
  331. package/dist/typography.cjs +1 -1
  332. package/dist/typography.js +1 -1
  333. package/dist/visually-hidden.cjs +1 -1
  334. package/dist/visually-hidden.js +2 -2
  335. package/dist/{window-D2WfvNng.cjs → window-BSAemI9J.cjs} +1 -1
  336. package/dist/{window-D2WfvNng.cjs.map → window-BSAemI9J.cjs.map} +1 -1
  337. package/dist/{window-n4jN60B_.js → window-ConcHirJ.js} +3 -3
  338. package/dist/{window-n4jN60B_.js.map → window-ConcHirJ.js.map} +1 -1
  339. package/dist/window.cjs +1 -1
  340. package/dist/window.js +1 -1
  341. package/package.json +1 -1
  342. package/skills/schmancy/INDEX.md +1 -1
  343. package/skills/schmancy/SKILL.md +20 -18
  344. package/skills/schmancy/boat.md +21 -15
  345. package/skills/schmancy/fab.md +75 -0
  346. package/skills/schmancy/steps.md +68 -34
  347. package/skills/schmancy/theme.md +1 -1
  348. package/src/CLAUDE.md +22 -16
  349. package/src/boat/boat.test.ts +130 -0
  350. package/src/boat/boat.ts +144 -121
  351. package/src/button/icon-button.ts +18 -30
  352. package/src/chips/assist-chip.ts +2 -263
  353. package/src/chips/chips.ts +2 -259
  354. package/src/chips/filter-chip.ts +2 -255
  355. package/src/chips/index.ts +2 -5
  356. package/src/chips/input-chip.ts +2 -413
  357. package/src/chips/suggestion-chip.ts +2 -266
  358. package/src/directives/fill.ts +28 -5
  359. package/src/directives/reveal.ts +192 -118
  360. package/src/fab/fab.test.ts +101 -0
  361. package/src/fab/fab.ts +226 -0
  362. package/src/fab/index.ts +1 -0
  363. package/src/form/fields/chips/assist-chip.ts +263 -0
  364. package/src/form/fields/chips/chips.ts +234 -0
  365. package/src/form/fields/chips/filter-chip.ts +255 -0
  366. package/src/form/fields/chips/index.ts +5 -0
  367. package/src/form/fields/chips/input-chip.ts +413 -0
  368. package/src/form/fields/chips/suggestion-chip.ts +266 -0
  369. package/src/form/fields/date-range/date-range.test.ts +44 -0
  370. package/src/form/fields/date-range/date-range.ts +103 -97
  371. package/src/form/fields/index.ts +1 -0
  372. package/src/index.ts +2 -1
  373. package/src/overlay/overlay.animations.ts +2 -3
  374. package/src/overlay/overlay.component.ts +8 -4
  375. package/src/overlay/overlay.types.ts +14 -2
  376. package/src/steps/index.ts +1 -1
  377. package/src/steps/schmancy-step.ts +91 -65
  378. package/src/steps/{schmancy-steps-container.ts → schmancy-steps.ts} +18 -38
  379. package/src/steps/steps.context.ts +5 -4
  380. package/src/steps/steps.test.ts +120 -0
  381. package/src/theme/theme.component.ts +1 -0
  382. package/src/theme/theme.style.css +3 -0
  383. package/types/src/boat/boat.d.ts +27 -9
  384. package/types/src/boat/boat.test.d.ts +2 -0
  385. package/types/src/button/icon-button.d.ts +3 -2
  386. package/types/src/chips/assist-chip.d.ts +1 -47
  387. package/types/src/chips/chips.d.ts +1 -43
  388. package/types/src/chips/filter-chip.d.ts +1 -67
  389. package/types/src/chips/index.d.ts +1 -5
  390. package/types/src/chips/input-chip.d.ts +1 -82
  391. package/types/src/chips/suggestion-chip.d.ts +1 -52
  392. package/types/src/directives/reveal.d.ts +15 -5
  393. package/types/src/fab/fab.d.ts +80 -0
  394. package/types/src/fab/fab.test.d.ts +2 -0
  395. package/types/src/fab/index.d.ts +1 -0
  396. package/types/src/form/fields/chips/assist-chip.d.ts +47 -0
  397. package/types/src/form/fields/chips/chips.d.ts +35 -0
  398. package/types/src/form/fields/chips/filter-chip.d.ts +67 -0
  399. package/types/src/form/fields/chips/index.d.ts +5 -0
  400. package/types/src/form/fields/chips/input-chip.d.ts +82 -0
  401. package/types/src/form/fields/chips/suggestion-chip.d.ts +52 -0
  402. package/types/src/form/fields/date-range/date-range.d.ts +5 -10
  403. package/types/src/form/fields/index.d.ts +1 -0
  404. package/types/src/index.d.ts +2 -1
  405. package/types/src/overlay/overlay.component.d.ts +1 -0
  406. package/types/src/overlay/overlay.types.d.ts +12 -2
  407. package/types/src/steps/index.d.ts +1 -1
  408. package/types/src/steps/schmancy-step.d.ts +8 -23
  409. package/types/src/steps/{schmancy-steps-container.d.ts → schmancy-steps.d.ts} +8 -9
  410. package/types/src/steps/steps.context.d.ts +2 -1
  411. package/types/src/steps/steps.test.d.ts +2 -0
  412. package/types/src/theme/theme.component.d.ts +1 -0
  413. package/dist/SchmancyElement-CA0Wqt8m.js +0 -284
  414. package/dist/SchmancyElement-CA0Wqt8m.js.map +0 -1
  415. package/dist/SchmancyElement-CYIif26I.cjs +0 -2
  416. package/dist/SchmancyElement-CYIif26I.cjs.map +0 -1
  417. package/dist/boat-Vqjgo10B.cjs +0 -33
  418. package/dist/boat-Vqjgo10B.cjs.map +0 -1
  419. package/dist/boat-lr7MPZ7H.js.map +0 -1
  420. package/dist/chips-CXZ4dJCK.cjs.map +0 -1
  421. package/dist/chips-Dg6Lk6BT.js.map +0 -1
  422. package/dist/date-range-BU6WX7d5.js.map +0 -1
  423. package/dist/date-range-C-_be3_E.cjs.map +0 -1
  424. package/dist/directives-fLwDj6b0.cjs.map +0 -1
  425. package/dist/directives-zi1Mm2er.js.map +0 -1
  426. package/dist/input-chip-57tgNXKT.cjs.map +0 -1
  427. package/dist/input-chip-C6Lq1927.js.map +0 -1
  428. package/dist/overlay-BpNhd74N.js.map +0 -1
  429. package/dist/overlay-UQR2Dy3u.cjs.map +0 -1
  430. package/dist/theme-iKUaS9JB.cjs +0 -181
@@ -1,4 +1,4 @@
1
- require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`);require(`./mixins-CGXSzZc7.cjs`),require(`./input-chip-57tgNXKT.cjs`);const t=require(`./layout-6ipbiWTl.cjs`),n=require(`./magnetic-DKtc4umC.cjs`);let r=require(`rxjs`),i=require(`rxjs/operators`),a=require(`lit/directives/class-map.js`),o=require(`lit/decorators.js`),s=require(`lit`);var c=class extends e.t{constructor(...e){super(...e),this.value=``,this.icon=``,this.href=``,this.target=``,this.disabled=!1,this.elevated=!0,this.hover$=new r.BehaviorSubject(!1),this.pressed$=new r.BehaviorSubject(!1),this.focused$=new r.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=e=>{if(this.disabled)return;let t=this.shadowRoot?.querySelector(`button`);if(t){let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top,a=this.nextRippleId++;this.ripples=[...this.ripples,{x:r,y:i,id:a}],setTimeout(()=>{this.ripples=this.ripples.filter(e=>e.id!==a)},600)}this.href&&(this.target===`_blank`?window.open(this.href,`_blank`):window.location.href=this.href),this.dispatchEvent(new CustomEvent(`action`,{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=e=>{if(!this.disabled&&(e.key===`Enter`||e.key===` `)){e.preventDefault(),this.pressed$.next(!0);let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(t),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}static{this.styles=[s.css`
1
+ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BHfQg3Tj.cjs`),t=require(`./mixins-DxHpyMHA.cjs`);require(`./input-chip-B-XWh4aE.cjs`);const n=require(`./layout-BhyIcEVu.cjs`),r=require(`./magnetic-DKtc4umC.cjs`);let i=require(`rxjs`),a=require(`rxjs/operators`),o=require(`lit/directives/class-map.js`),s=require(`lit/decorators.js`),c=require(`lit`),l=require(`lit/directives/if-defined.js`),u=require(`lit/directives/when.js`);var d=class extends e.t{constructor(...e){super(...e),this.value=``,this.icon=``,this.href=``,this.target=``,this.disabled=!1,this.elevated=!0,this.hover$=new i.BehaviorSubject(!1),this.pressed$=new i.BehaviorSubject(!1),this.focused$=new i.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=e=>{if(this.disabled)return;let t=this.shadowRoot?.querySelector(`button`);if(t){let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top,a=this.nextRippleId++;this.ripples=[...this.ripples,{x:r,y:i,id:a}],setTimeout(()=>{this.ripples=this.ripples.filter(e=>e.id!==a)},600)}this.href&&(this.target===`_blank`?window.open(this.href,`_blank`):window.location.href=this.href),this.dispatchEvent(new CustomEvent(`action`,{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=e=>{if(!this.disabled&&(e.key===`Enter`||e.key===` `)){e.preventDefault(),this.pressed$.next(!0);let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(t),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}static{this.styles=[c.css`
2
2
  :host {
3
3
  display: inline-block;
4
4
  outline: none;
@@ -48,10 +48,10 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
48
48
  :host(:not([disabled])) button:active .state-layer {
49
49
  opacity: 0.1;
50
50
  }
51
- `]}static{this.shadowRootOptions={...s.LitElement.shadowRootOptions,delegatesFocus:!0}}connectedCallback(){super.connectedCallback(),(0,r.combineLatest)([this.hover$,this.pressed$,this.focused$]).pipe((0,i.takeUntil)(this.disconnecting)).subscribe()}render(){let e=!!this.icon;return s.html`
51
+ `]}static{this.shadowRootOptions={...c.LitElement.shadowRootOptions,delegatesFocus:!0}}connectedCallback(){super.connectedCallback(),(0,i.combineLatest)([this.hover$,this.pressed$,this.focused$]).pipe((0,a.takeUntil)(this.disconnecting)).subscribe()}render(){let e=!!this.icon;return c.html`
52
52
  <button
53
53
  type="button"
54
- class=${(0,a.classMap)({relative:!0,"inline-flex":!0,"items-center":!0,"gap-2":!0,"h-8":!0,"min-h-[32px]":!0,"rounded-full":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"overflow-hidden":!0,"pl-2":e,"pl-4":!e,"pr-4":!0,"bg-surface-containerLow":!0,"text-surface-onVariant":!0,"shadow-sm":this.elevated&&!this.disabled,"hover:shadow-md":this.elevated&&!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-primary":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"opacity-38":this.disabled,"cursor-not-allowed":this.disabled})}
54
+ class=${(0,o.classMap)({relative:!0,"inline-flex":!0,"items-center":!0,"gap-2":!0,"h-8":!0,"min-h-[32px]":!0,"rounded-full":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"overflow-hidden":!0,"pl-2":e,"pl-4":!e,"pr-4":!0,"bg-surface-containerLow":!0,"text-surface-onVariant":!0,"shadow-sm":this.elevated&&!this.disabled,"hover:shadow-md":this.elevated&&!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-primary":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"opacity-38":this.disabled,"cursor-not-allowed":this.disabled})}
55
55
  ?disabled=${this.disabled}
56
56
  @click=${this.handleClick}
57
57
  @keydown=${this.handleKeyDown}
@@ -66,7 +66,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
66
66
  aria-disabled=${this.disabled}
67
67
  aria-label=${this.value}
68
68
  >
69
- ${this.icon?s.html`
69
+ ${this.icon?c.html`
70
70
  <schmancy-icon class="text-[18px] shrink-0">${this.icon}</schmancy-icon>
71
71
  `:``}
72
72
  <span class="text-sm font-medium leading-5">
@@ -74,7 +74,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
74
74
  </span>
75
75
 
76
76
  <!-- Ripple effects -->
77
- ${this.ripples.map(e=>s.html`
77
+ ${this.ripples.map(e=>c.html`
78
78
  <span
79
79
  class="ripple"
80
80
  style="left: ${e.x}px; top: ${e.y}px;"
@@ -84,26 +84,37 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
84
84
  <!-- State layer for M3 hover/focus/pressed states -->
85
85
  <div class="state-layer"></div>
86
86
  </button>
87
- `}};e.u([(0,o.property)({reflect:!0})],c.prototype,`value`,void 0),e.u([(0,o.property)({reflect:!0})],c.prototype,`icon`,void 0),e.u([(0,o.property)({reflect:!0})],c.prototype,`href`,void 0),e.u([(0,o.property)({reflect:!0})],c.prototype,`target`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],c.prototype,`disabled`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],c.prototype,`elevated`,void 0),e.u([(0,o.state)()],c.prototype,`ripples`,void 0),c=e.u([(0,o.customElement)(`schmancy-assist-chip`)],c);var l=class extends e.t{constructor(...e){super(...e),this.value$=new r.BehaviorSubject(``),this.values$=new r.BehaviorSubject([]),this._value=``,this._values=[],this._multi=!1,this._valueSet=!1,this._valuesSet=!1,this.wrap=!1,this.required=!1,this.justify=`start`}static{this.styles=[s.css`
88
- :host{
89
- display:block;
90
- height:fit-content;
91
- width:fit-content;
87
+ `}};e.u([(0,s.property)({reflect:!0})],d.prototype,`value`,void 0),e.u([(0,s.property)({reflect:!0})],d.prototype,`icon`,void 0),e.u([(0,s.property)({reflect:!0})],d.prototype,`href`,void 0),e.u([(0,s.property)({reflect:!0})],d.prototype,`target`,void 0),e.u([(0,s.property)({type:Boolean,reflect:!0})],d.prototype,`disabled`,void 0),e.u([(0,s.property)({type:Boolean,reflect:!0})],d.prototype,`elevated`,void 0),e.u([(0,s.state)()],d.prototype,`ripples`,void 0),d=e.u([(0,s.customElement)(`schmancy-assist-chip`)],d);var f=class extends t.o(c.css`
88
+ :host {
89
+ display: block;
90
+ height: fit-content;
91
+ width: fit-content;
92
92
  }
93
-
94
- `]}get multi(){return this._multi}set multi(e){this._multi=e}get mode(){return this._valuesSet?`multi`:this._valueSet?`single`:this.hasAttribute(`values`)?`multi`:this.hasAttribute(`value`)?`single`:!0===this._multi?`multi`:`none`}get values(){return this._values}set values(e){this._values=e||[],this._valuesSet=!0,this.values$.next(this._values)}get value(){return this._value}set value(e){this._value=e||``,this._valueSet=!0,this.value$.next(this._value)}connectedCallback(){super.connectedCallback(),this.value$.next(this._value),this.values$.next(this._values),(0,r.combineLatest)([this.value$.pipe((0,i.distinctUntilChanged)()),this.values$.pipe((0,i.distinctUntilChanged)((e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n])))]).pipe((0,i.debounceTime)(0),(0,i.takeUntil)(this.disconnecting)).subscribe(([e,t])=>{this.updateChipStates(this.mode,e,t)})}updateChipStates(e,t,n){this.chips&&e!==`none`&&this.chips.forEach(r=>{if(`value`in r&&`selected`in r){let i=r;e===`multi`?i.selected=n.length>0&&n.includes(i.value):e===`single`&&(i.selected=t!==``&&t===i.value)}})}async change(e){if(e.preventDefault(),e.stopPropagation(),this.mode===`none`)return;let{value:t,selected:n}=e.detail;if(this.mode===`multi`)n?this._values.includes(t)||(this._values=[...this._values,t],this.values$.next(this._values)):(this._values=this._values.filter(e=>e!==t),this.values$.next(this._values));else if(this.mode===`single`){if(n)this._value=t;else{if(this.required)return;this._value=``}this.value$.next(this._value)}this.requestUpdate(),this.dispatchEvent(new CustomEvent(`change`,{detail:this.mode===`multi`?this._values:this._value,bubbles:!0}))}firstUpdated(e){super.firstUpdated(e),this.updateChipStates(this.mode,this._value,this._values)}render(){let e={"flex flex-nowrap justify-center gap-2":!0,"flex-wrap":this.wrap,"justify-center":this.justify===`center`};return s.html`
95
- <schmancy-scroll
96
- hide
97
- .direction=${this.wrap?`vertical`:`horizontal`}
98
- class="${this.classMap(e)}"
99
- ${t.r()}
100
- @change=${this.change}
101
- >
102
- <slot
103
- @slotchange=${()=>{this.updateChipStates(this.mode,this._value,this._values)}}
104
- ></slot>
105
- </schmancy-scroll>
106
- `}};e.u([(0,o.property)({type:Boolean,reflect:!0})],l.prototype,`multi`,null),e.u([(0,o.property)({type:Array,reflect:!0})],l.prototype,`values`,null),e.u([(0,o.property)({type:String,reflect:!0})],l.prototype,`value`,null),e.u([(0,o.queryAssignedElements)({selector:`schmancy-chip, schmancy-filter-chip, schmancy-assist-chip, schmancy-input-chip, schmancy-suggestion-chip`,flatten:!0})],l.prototype,`chips`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],l.prototype,`wrap`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],l.prototype,`required`,void 0),e.u([(0,o.property)({type:String,reflect:!0})],l.prototype,`justify`,void 0),l=e.u([(0,o.customElement)(`schmancy-chips`)],l);var u=class extends e.t{static{this.styles=[s.css`
93
+ `){constructor(...e){super(...e),this.multi=!1,this.wrap=!1,this.justify=`start`,this.value$=new i.BehaviorSubject(``),this.values$=new i.BehaviorSubject([])}get value(){return this.multi?this.values$?.value??[]:this.value$?.value??``}set value(e){let t=this.value;if(this.multi){let t=Array.isArray(e)?e:e?String(e).split(`,`).map(e=>e.trim()).filter(Boolean):[];this.values$?.next(t)}else this.value$?.next(Array.isArray(e)?e[0]??``:String(e??``));this.requestUpdate(`value`,t)}get values(){return[...this.values$?.value??[]]}set values(e){this.values$?.next(Array.isArray(e)?[...e]:[])}willUpdate(e){if(super.willUpdate(e),e.has(`value`)&&Array.isArray(this.value)&&this.name){let e=new FormData;this.value.forEach(t=>e.append(this.name,t)),this.internals?.setFormValue(e)}}checkValidity(){if(this.required&&Array.isArray(this.value)&&this.value.length===0){let e=this.errorMessages?.valueMissing??`This field is required`;return this.internals?.setValidity({valueMissing:!0},e),(this.submitted||this.dirty||this.touched||this.validateOn===`always`)&&(this.error=!0,this.validationMessage=e),!1}return super.checkValidity()}connectedCallback(){if(super.connectedCallback(),this.multi){let e=this.value;this.values$.next(Array.isArray(e)?e:[])}else{let e=this.value;this.value$.next(Array.isArray(e)?e[0]??``:String(e??``))}(0,i.combineLatest)([this.value$.pipe((0,a.distinctUntilChanged)()),this.values$.pipe((0,a.distinctUntilChanged)((e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n])))]).pipe((0,a.debounceTime)(0),(0,a.takeUntil)(this.disconnecting)).subscribe(([e,t])=>{this.updateChipStates(e,t)})}updateChipStates(e,t){this.chips&&this.chips.forEach(n=>{if(`value`in n&&`selected`in n){let r=n;this.multi?r.selected=t.length>0&&t.includes(r.value):r.selected=e!==``&&e===r.value}})}async change(e){e.preventDefault(),e.stopPropagation();let{value:t,selected:n}=e.detail;if(this.multi){let e=this.value;n?this.values$.value.includes(t)||this.values$.next([...this.values$.value,t]):this.values$.next(this.values$.value.filter(e=>e!==t)),this.requestUpdate(`value`,e)}else{let e=this.value;if(n)this.value$.next(t);else{if(this.required)return;this.value$.next(``)}this.requestUpdate(`value`,e)}this.emitChange({value:this.multi?this.values$.value:this.value$.value})}resetForm(){super.resetForm(),this.value$.next(``),this.values$.next([])}firstUpdated(e){super.firstUpdated(e),this.updateChipStates(this.value$.value,this.values$.value)}render(){let e={"flex flex-nowrap justify-center gap-2":!0,"flex-wrap":this.wrap,"justify-center":this.justify===`center`},t={"rounded-lg transition-all duration-200":!0,"outline outline-2 outline-offset-4 outline-error-default":this.error};return c.html`
94
+ <div class="${this.classMap(t)}">
95
+ <schmancy-scroll
96
+ hide
97
+ .direction=${this.wrap?`vertical`:`horizontal`}
98
+ class="${this.classMap(e)}"
99
+ ${n.r()}
100
+ @change=${this.change}
101
+ >
102
+ <slot
103
+ @slotchange=${()=>{this.updateChipStates(this.value$.value,this.values$.value)}}
104
+ ></slot>
105
+ </schmancy-scroll>
106
+ </div>
107
+
108
+ ${(0,u.when)(this.hint||this.error&&this.validationMessage,()=>c.html`
109
+ <div
110
+ id="hint-${this.id}"
111
+ class="mt-1 text-sm ${this.error?`text-error-default`:`text-surface-onVariant`}"
112
+ role=${(0,l.ifDefined)(this.error?`alert`:void 0)}
113
+ aria-live="polite"
114
+ >
115
+ ${this.error&&this.validationMessage?this.validationMessage:this.hint}
116
+ </div>
117
+ `,()=>c.nothing)}`}};e.u([(0,s.property)({type:Boolean,reflect:!0})],f.prototype,`multi`,void 0),e.u([(0,s.property)({reflect:!1})],f.prototype,`value`,null),e.u([(0,s.property)({type:Boolean,reflect:!0})],f.prototype,`wrap`,void 0),e.u([(0,s.property)({type:String,reflect:!0})],f.prototype,`justify`,void 0),e.u([(0,s.queryAssignedElements)({selector:`schmancy-chip, schmancy-filter-chip, schmancy-assist-chip, schmancy-input-chip, schmancy-suggestion-chip`,flatten:!0})],f.prototype,`chips`,void 0),f=e.u([(0,s.customElement)(`schmancy-chips`)],f);var p=class extends e.t{static{this.styles=[c.css`
107
118
  :host {
108
119
  display: inline-flex;
109
120
  outline: none;
@@ -129,9 +140,9 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
129
140
  button {
130
141
  font-family: inherit;
131
142
  }
132
- `]}get selected(){return this._selected}set selected(e){let t=this._selected;this._selected=e,this.requestUpdate(`selected`,t)}constructor(){super(),this.value=``,this._selected=!1,this.removable=!1,this.disabled=!1,this.elevated=!1,this.handleClick=()=>{this.disabled||this.dispatchEvent(new CustomEvent(`change`,{detail:{value:this.value,selected:!this._selected},bubbles:!0,composed:!0}))},this.handleRemove=e=>{this.disabled||(e.stopPropagation(),this.dispatchEvent(new CustomEvent(`remove`,{detail:{value:this.value},bubbles:!0,composed:!0})))},this.handleKeyDown=e=>{this.disabled||e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),this.dispatchEvent(new CustomEvent(`change`,{detail:{value:this.value,selected:!this._selected},bubbles:!0,composed:!0})))};try{this.internals=this.attachInternals()}catch{this.internals=void 0}}static{this.shadowRootOptions={...s.LitElement.shadowRootOptions,delegatesFocus:!0}}static{this.formAssociated=!0}get form(){return this.internals?.form}connectedCallback(){super.connectedCallback()}updated(e){super.updated?.(e),(e.has(`value`)||e.has(`selected`))&&this.internals?.setFormValue(this._selected?this.value||`on`:null)}formResetCallback(){this._selected=this.hasAttribute(`selected`)}formDisabledCallback(e){this.disabled=e}render(){let e={"inline-flex":!0,"items-center":!0,"gap-2":!0,"rounded-lg":!0,"h-8 px-4":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"text-sm":!0,"font-medium":!0,relative:!0,"min-h-[32px]":!0,"bg-secondary-container":this._selected,"text-secondary-onContainer":this._selected,"bg-surface-container":!this._selected,"text-surface-on":!this._selected,"hover:brightness-95":this._selected&&!this.disabled,"hover:bg-surface-containerHigh":!this._selected&&!this.disabled,"active:brightness-90":!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"focus-visible:outline-primary-default":!this.disabled,"shadow-md":this.elevated&&!this.disabled,"hover:shadow-lg":this.elevated&&!this.disabled,"opacity-[var(--schmancy-sys-state-disabled-opacity)]":this.disabled,"cursor-not-allowed":this.disabled};return s.html`
143
+ `]}get selected(){return this._selected}set selected(e){let t=this._selected;this._selected=e,this.requestUpdate(`selected`,t)}constructor(){super(),this.value=``,this._selected=!1,this.removable=!1,this.disabled=!1,this.elevated=!1,this.handleClick=()=>{this.disabled||this.dispatchEvent(new CustomEvent(`change`,{detail:{value:this.value,selected:!this._selected},bubbles:!0,composed:!0}))},this.handleRemove=e=>{this.disabled||(e.stopPropagation(),this.dispatchEvent(new CustomEvent(`remove`,{detail:{value:this.value},bubbles:!0,composed:!0})))},this.handleKeyDown=e=>{this.disabled||e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),this.dispatchEvent(new CustomEvent(`change`,{detail:{value:this.value,selected:!this._selected},bubbles:!0,composed:!0})))};try{this.internals=this.attachInternals()}catch{this.internals=void 0}}static{this.shadowRootOptions={...c.LitElement.shadowRootOptions,delegatesFocus:!0}}static{this.formAssociated=!0}get form(){return this.internals?.form}connectedCallback(){super.connectedCallback()}updated(e){super.updated?.(e),(e.has(`value`)||e.has(`selected`))&&this.internals?.setFormValue(this._selected?this.value||`on`:null)}formResetCallback(){this._selected=this.hasAttribute(`selected`)}formDisabledCallback(e){this.disabled=e}render(){let e={"inline-flex":!0,"items-center":!0,"gap-2":!0,"rounded-lg":!0,"h-8 px-4":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"text-sm":!0,"font-medium":!0,relative:!0,"min-h-[32px]":!0,"bg-secondary-container":this._selected,"text-secondary-onContainer":this._selected,"bg-surface-container":!this._selected,"text-surface-on":!this._selected,"hover:brightness-95":this._selected&&!this.disabled,"hover:bg-surface-containerHigh":!this._selected&&!this.disabled,"active:brightness-90":!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"focus-visible:outline-primary-default":!this.disabled,"shadow-md":this.elevated&&!this.disabled,"hover:shadow-lg":this.elevated&&!this.disabled,"opacity-[var(--schmancy-sys-state-disabled-opacity)]":this.disabled,"cursor-not-allowed":this.disabled};return c.html`
133
144
  <button
134
- ${n.t({strength:2,radius:40})}
145
+ ${r.t({strength:2,radius:40})}
135
146
  class=${this.classMap(e)}
136
147
  @click=${this.handleClick}
137
148
  @keydown=${this.handleKeyDown}
@@ -142,7 +153,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
142
153
  >
143
154
  <slot></slot>
144
155
 
145
- ${this.removable?s.html`
156
+ ${this.removable?c.html`
146
157
  <button
147
158
  class="ml-1 -mr-1 p-0.5 rounded-full hover:bg-surface-containerHighest transition-colors duration-200"
148
159
  @click=${this.handleRemove}
@@ -153,7 +164,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
153
164
  </button>
154
165
  `:``}
155
166
  </button>
156
- `}};if(e.u([(0,o.property)({type:String,reflect:!0})],u.prototype,`value`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],u.prototype,`selected`,null),e.u([(0,o.property)({type:Boolean,reflect:!0})],u.prototype,`removable`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],u.prototype,`disabled`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],u.prototype,`elevated`,void 0),customElements.get(`schmancy-filter-chip`)||customElements.define(`schmancy-filter-chip`,u),!customElements.get(`schmancy-chip`)){class e extends u{}customElements.define(`schmancy-chip`,e)}var d=class extends e.t{constructor(...e){super(...e),this.value=``,this.icon=``,this.href=``,this.target=``,this.disabled=!1,this.elevated=!1,this.hover$=new r.BehaviorSubject(!1),this.pressed$=new r.BehaviorSubject(!1),this.focused$=new r.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=e=>{if(this.disabled)return;let t=this.shadowRoot?.querySelector(`button`);if(t){let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top,a=this.nextRippleId++;this.ripples=[...this.ripples,{x:r,y:i,id:a}],setTimeout(()=>{this.ripples=this.ripples.filter(e=>e.id!==a)},600)}this.href&&(this.target===`_blank`?window.open(this.href,`_blank`):window.location.href=this.href),this.dispatchEvent(new CustomEvent(`action`,{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=e=>{if(!this.disabled&&(e.key===`Enter`||e.key===` `)){e.preventDefault(),this.pressed$.next(!0);let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(t),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}static{this.styles=[s.css`
167
+ `}};if(e.u([(0,s.property)({type:String,reflect:!0})],p.prototype,`value`,void 0),e.u([(0,s.property)({type:Boolean,reflect:!0})],p.prototype,`selected`,null),e.u([(0,s.property)({type:Boolean,reflect:!0})],p.prototype,`removable`,void 0),e.u([(0,s.property)({type:Boolean,reflect:!0})],p.prototype,`disabled`,void 0),e.u([(0,s.property)({type:Boolean,reflect:!0})],p.prototype,`elevated`,void 0),customElements.get(`schmancy-filter-chip`)||customElements.define(`schmancy-filter-chip`,p),!customElements.get(`schmancy-chip`)){class e extends p{}customElements.define(`schmancy-chip`,e)}var m=class extends e.t{constructor(...e){super(...e),this.value=``,this.icon=``,this.href=``,this.target=``,this.disabled=!1,this.elevated=!1,this.hover$=new i.BehaviorSubject(!1),this.pressed$=new i.BehaviorSubject(!1),this.focused$=new i.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=e=>{if(this.disabled)return;let t=this.shadowRoot?.querySelector(`button`);if(t){let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top,a=this.nextRippleId++;this.ripples=[...this.ripples,{x:r,y:i,id:a}],setTimeout(()=>{this.ripples=this.ripples.filter(e=>e.id!==a)},600)}this.href&&(this.target===`_blank`?window.open(this.href,`_blank`):window.location.href=this.href),this.dispatchEvent(new CustomEvent(`action`,{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=e=>{if(!this.disabled&&(e.key===`Enter`||e.key===` `)){e.preventDefault(),this.pressed$.next(!0);let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(t),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}static{this.styles=[c.css`
157
168
  :host {
158
169
  display: inline-block;
159
170
  outline: none;
@@ -203,10 +214,10 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
203
214
  :host(:not([disabled])) button:active .state-layer {
204
215
  opacity: 0.1;
205
216
  }
206
- `]}static{this.shadowRootOptions={...s.LitElement.shadowRootOptions,delegatesFocus:!0}}connectedCallback(){super.connectedCallback(),(0,r.combineLatest)([this.hover$,this.pressed$,this.focused$]).pipe((0,i.takeUntil)(this.disconnecting)).subscribe()}render(){let e=!!this.icon;return s.html`
217
+ `]}static{this.shadowRootOptions={...c.LitElement.shadowRootOptions,delegatesFocus:!0}}connectedCallback(){super.connectedCallback(),(0,i.combineLatest)([this.hover$,this.pressed$,this.focused$]).pipe((0,a.takeUntil)(this.disconnecting)).subscribe()}render(){let e=!!this.icon;return c.html`
207
218
  <button
208
219
  type="button"
209
- class=${(0,a.classMap)({relative:!0,"inline-flex":!0,"items-center":!0,"gap-2":!0,"h-8":!0,"min-h-[32px]":!0,"rounded-full":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"overflow-hidden":!0,"pl-2":e,"pl-4":!e,"pr-4":!0,"bg-surface-containerLow":!0,"text-surface-onVariant":!0,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-primary":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"opacity-38":this.disabled,"cursor-not-allowed":this.disabled})}
220
+ class=${(0,o.classMap)({relative:!0,"inline-flex":!0,"items-center":!0,"gap-2":!0,"h-8":!0,"min-h-[32px]":!0,"rounded-full":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"overflow-hidden":!0,"pl-2":e,"pl-4":!e,"pr-4":!0,"bg-surface-containerLow":!0,"text-surface-onVariant":!0,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-primary":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"opacity-38":this.disabled,"cursor-not-allowed":this.disabled})}
210
221
  ?disabled=${this.disabled}
211
222
  @click=${this.handleClick}
212
223
  @keydown=${this.handleKeyDown}
@@ -221,7 +232,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
221
232
  aria-disabled=${this.disabled}
222
233
  aria-label=${this.value}
223
234
  >
224
- ${this.icon?s.html`
235
+ ${this.icon?c.html`
225
236
  <schmancy-icon class="text-[18px] shrink-0">${this.icon}</schmancy-icon>
226
237
  `:``}
227
238
  <span class="text-sm font-medium leading-5">
@@ -229,7 +240,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
229
240
  </span>
230
241
 
231
242
  <!-- Ripple effects -->
232
- ${this.ripples.map(e=>s.html`
243
+ ${this.ripples.map(e=>c.html`
233
244
  <span
234
245
  class="ripple"
235
246
  style="left: ${e.x}px; top: ${e.y}px;"
@@ -239,4 +250,4 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CYIif26I.cjs`
239
250
  <!-- State layer for M3 hover/focus/pressed states -->
240
251
  <div class="state-layer"></div>
241
252
  </button>
242
- `}};e.u([(0,o.property)({reflect:!0})],d.prototype,`value`,void 0),e.u([(0,o.property)({reflect:!0})],d.prototype,`icon`,void 0),e.u([(0,o.property)({reflect:!0})],d.prototype,`href`,void 0),e.u([(0,o.property)({reflect:!0})],d.prototype,`target`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],d.prototype,`disabled`,void 0),e.u([(0,o.property)({type:Boolean,reflect:!0})],d.prototype,`elevated`,void 0),e.u([(0,o.state)()],d.prototype,`ripples`,void 0),d=e.u([(0,o.customElement)(`schmancy-suggestion-chip`)],d),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
253
+ `}};e.u([(0,s.property)({reflect:!0})],m.prototype,`value`,void 0),e.u([(0,s.property)({reflect:!0})],m.prototype,`icon`,void 0),e.u([(0,s.property)({reflect:!0})],m.prototype,`href`,void 0),e.u([(0,s.property)({reflect:!0})],m.prototype,`target`,void 0),e.u([(0,s.property)({type:Boolean,reflect:!0})],m.prototype,`disabled`,void 0),e.u([(0,s.property)({type:Boolean,reflect:!0})],m.prototype,`elevated`,void 0),e.u([(0,s.state)()],m.prototype,`ripples`,void 0),m=e.u([(0,s.customElement)(`schmancy-suggestion-chip`)],m),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return m}});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chips-C9dS1WKn.cjs","names":[],"sources":["../src/form/fields/chips/assist-chip.ts","../src/form/fields/chips/chips.ts","../src/form/fields/chips/filter-chip.ts","../src/form/fields/chips/suggestion-chip.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { BehaviorSubject, combineLatest } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\n/**\n * Assist chip component - prompts user actions like opening calendar events or sharing content\n * Pure Schmancy implementation with Tailwind CSS and RxJS state management\n */\n@customElement('schmancy-assist-chip')\nexport class SchmancyAssistChip extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\twidth: fit-content;\n\t\tmin-width: fit-content;\n\t}\n\n\t:host([disabled]) {\n\t\tpointer-events: none;\n\t}\n\n\t.ripple {\n\t\tposition: absolute;\n\t\tborder-radius: 50%;\n\t\ttransform: scale(0);\n\t\tanimation: ripple 600ms linear;\n\t\tbackground-color: rgba(0, 0, 0, 0.08);\n\t\tpointer-events: none;\n\t}\n\n\t@keyframes ripple {\n\t\tto {\n\t\t\ttransform: scale(4);\n\t\t\topacity: 0;\n\t\t}\n\t}\n\n\t/* State layer for M3 hover/focus/pressed states */\n\t.state-layer {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder-radius: inherit;\n\t\tpointer-events: none;\n\t\tbackground-color: currentColor;\n\t\topacity: 0;\n\t\ttransition: opacity 200ms ease;\n\t}\n\n\t:host(:not([disabled])) button:hover .state-layer {\n\t\topacity: 0.08;\n\t}\n\n\t:host(:not([disabled])) button:focus-visible .state-layer {\n\t\topacity: 0.1;\n\t}\n\n\t:host(:not([disabled])) button:active .state-layer {\n\t\topacity: 0.1;\n\t}\n`];\n\t/** Value identifier for the chip */\n\t@property({ reflect: true }) value = ''\n\n\t/** Optional icon name (Material Symbols) */\n\t@property({ reflect: true }) icon = ''\n\n\t/** Optional href for navigation */\n\t@property({ reflect: true }) href = ''\n\n\t/** Target for navigation (e.g., '_blank') */\n\t@property({ reflect: true }) target = ''\n\n\t/** Disable the chip */\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\n\t/** Elevated style variant - true by default per M3 spec for assist chips */\n\t@property({ type: Boolean, reflect: true }) elevated = true\n\n\t// RxJS state streams\n\tprivate hover$ = new BehaviorSubject<boolean>(false)\n\tprivate pressed$ = new BehaviorSubject<boolean>(false)\n\tprivate focused$ = new BehaviorSubject<boolean>(false)\n\n\t// UI state - only ripples needed for rendering\n\t@state() private ripples: Array<{ x: number; y: number; id: number }> = []\n\n\tprotected static shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true }\n\n\tprivate nextRippleId = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Stream management for future extensions\n\t\t// Currently, states are handled directly in event handlers\n\t\t// This pipeline can be extended for more complex state interactions\n\t\tcombineLatest([\n\t\t\tthis.hover$,\n\t\t\tthis.pressed$,\n\t\t\tthis.focused$\n\t\t]).pipe(\n\t\t\t// States are managed through event handlers directly\n\t\t\t// This pipeline is kept for potential future state combinations\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprivate handleClick = (e: MouseEvent) => {\n\t\tif (this.disabled) return\n\n\t\t// Add ripple effect\n\t\tconst button = this.shadowRoot?.querySelector('button')\n\t\tif (button) {\n\t\t\tconst rect = button.getBoundingClientRect()\n\t\t\tconst x = e.clientX - rect.left\n\t\t\tconst y = e.clientY - rect.top\n\t\t\tconst id = this.nextRippleId++\n\n\t\t\tthis.ripples = [...this.ripples, { x, y, id }]\n\n\t\t\t// Remove ripple after animation\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.ripples = this.ripples.filter(r => r.id !== id)\n\t\t\t}, 600)\n\t\t}\n\n\t\t// Navigate if href is provided\n\t\tif (this.href) {\n\t\t\tif (this.target === '_blank') {\n\t\t\t\twindow.open(this.href, '_blank')\n\t\t\t} else {\n\t\t\t\twindow.location.href = this.href\n\t\t\t}\n\t\t}\n\n\t\t// Dispatch action event\n\t\tthis.dispatchEvent(new CustomEvent('action', {\n\t\t\tdetail: { value: this.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (this.disabled) return\n\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\tthis.pressed$.next(true)\n\n\t\t\t// Simulate click\n\t\t\tconst clickEvent = new MouseEvent('click', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true,\n\t\t\t\tclientX: 0,\n\t\t\t\tclientY: 0\n\t\t\t})\n\t\t\tthis.handleClick(clickEvent)\n\n\t\t\tsetTimeout(() => this.pressed$.next(false), 100)\n\t\t}\n\t}\n\n\tprivate handleFocus = () => {\n\t\tthis.focused$.next(true)\n\t}\n\n\tprivate handleBlur = () => {\n\t\tthis.focused$.next(false)\n\t}\n\n\trender() {\n\t\tconst hasIcon = !!this.icon;\n\n\t\tconst classes = {\n\t\t\t'relative': true,\n\t\t\t'inline-flex': true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'h-8': true, // M3: 32px height\n\t\t\t'min-h-[32px]': true,\n\t\t\t'rounded-full': true,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'select-none': true,\n\t\t\t'overflow-hidden': true,\n\n\t\t\t// M3 Padding: 8px with icon, 16px without (leading), 16px trailing\n\t\t\t'pl-2': hasIcon, // 8px with icon\n\t\t\t'pl-4': !hasIcon, // 16px without icon\n\t\t\t'pr-4': true, // 16px trailing\n\n\t\t\t// M3 Colors - assist chips are elevated by default\n\t\t\t'bg-surface-containerLow': true,\n\t\t\t'text-surface-onVariant': true,\n\n\t\t\t// M3: Assist chips elevated by default (shadow-1)\n\t\t\t'shadow-sm': this.elevated && !this.disabled, // shadow-1 for elevation\n\t\t\t'hover:shadow-md': this.elevated && !this.disabled, // elevated on hover\n\n\t\t\t// Focus state\n\t\t\t'focus-visible:outline': !this.disabled,\n\t\t\t'focus-visible:outline-2': !this.disabled,\n\t\t\t'focus-visible:outline-primary': !this.disabled,\n\t\t\t'focus-visible:outline-offset-2': !this.disabled,\n\n\t\t\t// Disabled\n\t\t\t'opacity-38': this.disabled, // M3 disabled opacity\n\t\t\t'cursor-not-allowed': this.disabled\n\t\t}\n\n\t\treturn html`\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=${classMap(classes)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t@click=${this.handleClick}\n\t\t\t\t@keydown=${this.handleKeyDown}\n\t\t\t\t@mouseenter=${() => this.hover$.next(true)}\n\t\t\t\t@mouseleave=${() => this.hover$.next(false)}\n\t\t\t\t@mousedown=${() => this.pressed$.next(true)}\n\t\t\t\t@mouseup=${() => this.pressed$.next(false)}\n\t\t\t\t@focus=${this.handleFocus}\n\t\t\t\t@blur=${this.handleBlur}\n\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\taria-label=${this.value}\n\t\t\t>\n\t\t\t\t${this.icon ? html`\n\t\t\t\t\t<schmancy-icon class=\"text-[18px] shrink-0\">${this.icon}</schmancy-icon>\n\t\t\t\t` : ''}\n\t\t\t\t<span class=\"text-sm font-medium leading-5\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</span>\n\n\t\t\t\t<!-- Ripple effects -->\n\t\t\t\t${this.ripples.map(ripple => html`\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"ripple\"\n\t\t\t\t\t\tstyle=\"left: ${ripple.x}px; top: ${ripple.y}px;\"\n\t\t\t\t\t></span>\n\t\t\t\t`)}\n\n\t\t\t\t<!-- State layer for M3 hover/focus/pressed states -->\n\t\t\t\t<div class=\"state-layer\"></div>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-assist-chip': SchmancyAssistChip\n\t}\n}\n\nexport type AssistChipActionEvent = { value: string }","import { SchmancyFormField } from '@mixins/formField.mixin'\nimport { css, html, nothing, PropertyValues } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { BehaviorSubject, combineLatest } from 'rxjs'\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators'\nimport { fullWidth } from '../../../directives/layout'\nimport type { FilterChipChangeEvent as SchmancyChipChangeEvent } from './filter-chip'\nimport { SchmancyFilterChip as SchmancyChip } from './filter-chip'\n\nexport type SchmancyChipsChangeEvent = CustomEvent<{ value: string | string[] }>\n\n@customElement('schmancy-chips')\nexport default class SchmancyChips extends SchmancyFormField(css`\n:host {\n\tdisplay: block;\n\theight: fit-content;\n\twidth: fit-content;\n}\n`) {\n\t// FACE wiring (formAssociated, internals, attachInternals) comes from\n\t// SchmancyFormField. Same for: name, required, disabled, validationMessage,\n\t// validateOn, touched/dirty/pristine/submitted, markTouched/markSubmitted,\n\t// formResetCallback, formDisabledCallback, FIELD_CONNECT_EVENT dispatch,\n\t// emitChange(), checkValidity(), reportValidity(), setCustomValidity().\n\n\t/** Whether multiple chips can be selected simultaneously. */\n\t@property({ type: Boolean, reflect: true })\n\tmulti: boolean = false\n\n\t// Override `value` with the chips-specific type and a custom getter/setter\n\t// pair backed by reactive subjects.\n\t@property({ reflect: false })\n\toverride get value(): string | string[] {\n\t\treturn this.multi\n\t\t\t? (this.values$?.value ?? [])\n\t\t\t: (this.value$?.value ?? '')\n\t}\n\toverride set value(v: string | string[]) {\n\t\tconst old = this.value\n\t\tif (this.multi) {\n\t\t\tconst arr = Array.isArray(v)\n\t\t\t\t? v\n\t\t\t\t: v ? String(v).split(',').map(s => s.trim()).filter(Boolean) : []\n\t\t\tthis.values$?.next(arr)\n\t\t} else {\n\t\t\tthis.value$?.next(Array.isArray(v) ? (v[0] ?? '') : String(v ?? ''))\n\t\t}\n\t\tthis.requestUpdate('value', old)\n\t}\n\n\t/** Typed convenience alias for multi-mode consumers. */\n\tget values(): string[] {\n\t\treturn [...(this.values$?.value ?? [])]\n\t}\n\tset values(v: string[]) {\n\t\tthis.values$?.next(Array.isArray(v) ? [...v] : [])\n\t}\n\n\t@property({ type: Boolean, reflect: true })\n\twrap: boolean = false\n\n\t@property({ type: String, reflect: true })\n\tjustify: 'start' | 'center' | 'end' = 'start'\n\n\t@queryAssignedElements({\n\t\tselector:\n\t\t\t'schmancy-chip, schmancy-filter-chip, schmancy-assist-chip, schmancy-input-chip, schmancy-suggestion-chip',\n\t\tflatten: true,\n\t})\n\tchips!: (SchmancyChip | HTMLElement)[]\n\n\t// Two internal streams — one for single mode, one for multi mode.\n\tprivate value$ = new BehaviorSubject<string>('')\n\tprivate values$ = new BehaviorSubject<string[]>([])\n\n\tprotected override willUpdate(changedProps: PropertyValues): void {\n\t\tsuper.willUpdate(changedProps)\n\t\t// super handles the string path; fix the array path for multi mode.\n\t\tif (changedProps.has('value') && Array.isArray(this.value) && this.name) {\n\t\t\tconst fd = new FormData()\n\t\t\tthis.value.forEach(v => fd.append(this.name, v))\n\t\t\tthis.internals?.setFormValue(fd)\n\t\t}\n\t}\n\n\toverride checkValidity(): boolean {\n\t\tif (this.required && Array.isArray(this.value) && this.value.length === 0) {\n\t\t\tconst msg = this.errorMessages?.valueMissing ?? 'This field is required'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, msg)\n\t\t\tif (this.submitted || this.dirty || this.touched || this.validateOn === 'always') {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = msg\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t\treturn super.checkValidity()\n\t}\n\n\toverride connectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Sync BehaviorSubjects with whatever value was set before connection.\n\t\tif (this.multi) {\n\t\t\tconst cur = this.value\n\t\t\tthis.values$.next(Array.isArray(cur) ? cur : [])\n\t\t} else {\n\t\t\tconst cur = this.value\n\t\t\tthis.value$.next(Array.isArray(cur) ? (cur[0] ?? '') : String(cur ?? ''))\n\t\t}\n\n\t\tcombineLatest([\n\t\t\tthis.value$.pipe(distinctUntilChanged()),\n\t\t\tthis.values$.pipe(\n\t\t\t\tdistinctUntilChanged((prev, curr) => prev.length === curr.length && prev.every((v, i) => v === curr[i])),\n\t\t\t),\n\t\t])\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(([value, values]) => {\n\t\t\t\tthis.updateChipStates(value, values)\n\t\t\t})\n\t}\n\n\tprivate updateChipStates(value: string, values: string[]) {\n\t\tif (!this.chips) return\n\n\t\tthis.chips.forEach(chip => {\n\t\t\tif ('value' in chip && 'selected' in chip) {\n\t\t\t\tconst filterChip = chip as SchmancyChip\n\t\t\t\tif (this.multi) {\n\t\t\t\t\tfilterChip.selected = values.length > 0 && values.includes(filterChip.value)\n\t\t\t\t} else {\n\t\t\t\t\tfilterChip.selected = value !== '' && value === filterChip.value\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tasync change(e: CustomEvent<SchmancyChipChangeEvent>) {\n\t\te.preventDefault()\n\t\te.stopPropagation()\n\n\t\tconst { value: chipValue, selected } = e.detail\n\n\t\tif (this.multi) {\n\t\t\tconst old = this.value\n\t\t\tif (selected) {\n\t\t\t\tif (!this.values$.value.includes(chipValue)) {\n\t\t\t\t\tthis.values$.next([...this.values$.value, chipValue])\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.values$.next(this.values$.value.filter(v => v !== chipValue))\n\t\t\t}\n\t\t\tthis.requestUpdate('value', old)\n\t\t} else {\n\t\t\tconst old = this.value\n\t\t\tif (selected) {\n\t\t\t\tthis.value$.next(chipValue)\n\t\t\t} else if (!this.required) {\n\t\t\t\tthis.value$.next('')\n\t\t\t} else {\n\t\t\t\t// Required single-mode: ignore deselection attempt.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.requestUpdate('value', old)\n\t\t}\n\n\t\tthis.emitChange({ value: this.multi ? this.values$.value : this.value$.value })\n\t}\n\n\toverride resetForm(): void {\n\t\tsuper.resetForm()\n\t\tthis.value$.next('')\n\t\tthis.values$.next([])\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValues): void {\n\t\tsuper.firstUpdated(_changedProperties)\n\t\tthis.updateChipStates(this.value$.value, this.values$.value)\n\t}\n\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'flex flex-nowrap justify-center gap-2': true,\n\t\t\t'flex-wrap': this.wrap,\n\t\t\t'justify-center': this.justify === 'center',\n\t\t}\n\t\tconst wrapperClasses = {\n\t\t\t'rounded-lg transition-all duration-200': true,\n\t\t\t'outline outline-2 outline-offset-4 outline-error-default': this.error,\n\t\t}\n\t\treturn html`\n\t\t\t<div class=\"${this.classMap(wrapperClasses)}\">\n\t\t\t\t<schmancy-scroll\n\t\t\t\t\thide\n\t\t\t\t\t.direction=${this.wrap ? 'vertical' : 'horizontal'}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\t${fullWidth()}\n\t\t\t\t\t@change=${this.change}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.updateChipStates(this.value$.value, this.values$.value)\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</schmancy-scroll>\n\t\t\t</div>\n\n\t\t\t${when(\n\t\t\t\tthis.hint || (this.error && this.validationMessage),\n\t\t\t\t() => html`\n\t\t\t\t\t<div\n\t\t\t\t\t\tid=\"hint-${this.id}\"\n\t\t\t\t\t\tclass=\"mt-1 text-sm ${this.error ? 'text-error-default' : 'text-surface-onVariant'}\"\n\t\t\t\t\t\trole=${ifDefined(this.error ? 'alert' : undefined)}\n\t\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.error && this.validationMessage ? this.validationMessage : this.hint}\n\t\t\t\t\t</div>\n\t\t\t\t`,\n\t\t\t\t() => nothing,\n\t\t\t)}`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-chips': SchmancyChips\n\t}\n}\n","import { SchmancyElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { magnetic } from '../../../directives/magnetic'\n\n/**\n * Filter chip component for content filtering.\n *\n * Filter chips are the ONLY chip type that maintains persistent selected state.\n * They are used for filtering content by toggling on/off different filter criteria.\n *\n * @fires change - Dispatched when selection state changes with {value, selected}\n * @fires remove - Dispatched when remove button is clicked (if removable)\n *\n * @example\n * ```html\n * <schmancy-filter-chip value=\"category-1\" selected>\n * Category 1\n * </schmancy-filter-chip>\n * ```\n */\nexport class SchmancyFilterChip extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-flex;\n\t\toutline: none;\n\t\tborder-radius: 0.5rem;\n\t\ttransition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n\n\t:host(:active:not([disabled])) {\n\t\ttransform: scale(0.95);\n\t\ttransition-duration: 100ms;\n\t}\n\n\t:host([disabled]) {\n\t\tpointer-events: none;\n\t\topacity: var(--schmancy-sys-state-disabled-opacity);\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host { transition: none; }\n\t\t:host(:active:not([disabled])) { transform: none; }\n\t}\n\n\tbutton {\n\t\tfont-family: inherit;\n\t}\n`];\n\t/** Unique identifier for this filter chip */\n\t@property({ type: String, reflect: true })\n\tvalue: string = ''\n\n\t/** Whether the filter chip is selected (active filter) */\n\tprivate _selected: boolean = false\n\n\t@property({ type: Boolean, reflect: true })\n\tget selected(): boolean {\n\t\treturn this._selected\n\t}\n\tset selected(value: boolean) {\n\t\tconst oldValue = this._selected\n\t\tthis._selected = value\n\t\tthis.requestUpdate('selected', oldValue)\n\t}\n\n\t/** Whether to show a remove button */\n\t@property({ type: Boolean, reflect: true })\n\tremovable: boolean = false\n\n\t/** Whether the chip is disabled */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled: boolean = false\n\n\t/** Whether to use elevated style with shadow */\n\t@property({ type: Boolean, reflect: true })\n\televated: boolean = false\n\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}\n\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tstatic formAssociated = true\n\tinternals: ElementInternals | undefined\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t}\n\n\tprotected updated(changed: Map<string, unknown>) {\n\t\tsuper.updated?.(changed)\n\t\tif (changed.has('value') || changed.has('selected')) {\n\t\t\tthis.internals?.setFormValue(this._selected ? (this.value || 'on') : null)\n\t\t}\n\t}\n\n\tformResetCallback(): void {\n\t\tthis._selected = this.hasAttribute('selected')\n\t}\n\n\tformDisabledCallback(disabled: boolean): void {\n\t\tthis.disabled = disabled\n\t}\n\n\tprivate handleClick = () => {\n\t\tif (this.disabled) return\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('change', {\n\t\t\t\tdetail: { value: this.value, selected: !this._selected },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleRemove = (e: Event) => {\n\t\tif (this.disabled) return\n\n\t\te.stopPropagation()\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('remove', {\n\t\t\t\tdetail: { value: this.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (this.disabled) return\n\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail: { value: this.value, selected: !this._selected },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\n\tprotected render(): unknown {\n\t\tconst chipClasses = {\n\t\t\t'inline-flex': true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'rounded-lg': true,\n\t\t\t'h-8 px-4': true,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'select-none': true,\n\t\t\t'text-sm': true,\n\t\t\t'font-medium': true,\n\t\t\t'relative': true,\n\t\t\t'min-h-[32px]': true,\n\n\t\t\t// Background and text colors based on selection state\n\t\t\t'bg-secondary-container': this._selected,\n\t\t\t'text-secondary-onContainer': this._selected,\n\t\t\t'bg-surface-container': !this._selected,\n\t\t\t'text-surface-on': !this._selected,\n\n\t\t\t// Hover states\n\t\t\t'hover:brightness-95': this._selected && !this.disabled,\n\t\t\t'hover:bg-surface-containerHigh': !this._selected && !this.disabled,\n\n\t\t\t// Pressed state\n\t\t\t'active:brightness-90': !this.disabled,\n\n\t\t\t// Focus-visible state\n\t\t\t'focus-visible:outline': !this.disabled,\n\t\t\t'focus-visible:outline-2': !this.disabled,\n\t\t\t'focus-visible:outline-offset-2': !this.disabled,\n\t\t\t'focus-visible:outline-primary-default': !this.disabled,\n\n\t\t\t// Elevated style\n\t\t\t'shadow-md': this.elevated && !this.disabled,\n\t\t\t'hover:shadow-lg': this.elevated && !this.disabled,\n\n\t\t\t// Disabled state\n\t\t\t'opacity-[var(--schmancy-sys-state-disabled-opacity)]': this.disabled,\n\t\t\t'cursor-not-allowed': this.disabled,\n\t\t}\n\n\t\treturn html`\n\t\t\t<button\n\t\t\t\t${magnetic({ strength: 2, radius: 40 })}\n\t\t\t\tclass=${this.classMap(chipClasses)}\n\t\t\t\t@click=${this.handleClick}\n\t\t\t\t@keydown=${this.handleKeyDown}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\taria-pressed=${this._selected ? 'true' : 'false'}\n\t\t\t\trole=\"checkbox\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\n\t\t\t\t${this.removable\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclass=\"ml-1 -mr-1 p-0.5 rounded-full hover:bg-surface-containerHighest transition-colors duration-200\"\n\t\t\t\t\t\t\t\t@click=${this.handleRemove}\n\t\t\t\t\t\t\t\taria-label=\"Remove filter\"\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"material-symbols-outlined text-sm\">close</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t</button>\n\t\t`\n\t}\n}\n\nif (!customElements.get('schmancy-filter-chip')) {\n\tcustomElements.define('schmancy-filter-chip', SchmancyFilterChip)\n}\n\nif (!customElements.get('schmancy-chip')) {\n\tclass SchmancyChipCompat extends SchmancyFilterChip {}\n\tcustomElements.define('schmancy-chip', SchmancyChipCompat)\n}\n\nexport { SchmancyFilterChip as SchmancyChip }\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-chip': SchmancyFilterChip\n\t\t'schmancy-filter-chip': SchmancyFilterChip\n\t}\n}\n\nexport type FilterChipChangeEvent = { value: string; selected: boolean }\nexport type FilterChipRemoveEvent = { value: string }\nexport type SchmancyChipChangeEvent = FilterChipChangeEvent\n","import { SchmancyElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { BehaviorSubject, combineLatest } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\n/**\n * Suggestion chip component - provides contextual recommendations to users\n *\n * IMPORTANT: Suggestion chips do NOT have a selected state. They are designed to\n * provide suggestions and recommendations that trigger actions when clicked.\n * Unlike filter chips, they cannot be toggled on/off.\n *\n * Pure Schmancy implementation with Tailwind CSS and RxJS state management\n */\n@customElement('schmancy-suggestion-chip')\nexport class SchmancySuggestionChip extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\toutline: none;\n\t\twidth: fit-content;\n\t\tmin-width: fit-content;\n\t}\n\n\t:host([disabled]) {\n\t\tpointer-events: none;\n\t}\n\n\t.ripple {\n\t\tposition: absolute;\n\t\tborder-radius: 50%;\n\t\ttransform: scale(0);\n\t\tanimation: ripple 600ms linear;\n\t\tbackground-color: rgba(0, 0, 0, 0.08);\n\t\tpointer-events: none;\n\t}\n\n\t@keyframes ripple {\n\t\tto {\n\t\t\ttransform: scale(4);\n\t\t\topacity: 0;\n\t\t}\n\t}\n\n\t/* State layer for M3 hover/focus/pressed states */\n\t.state-layer {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder-radius: inherit;\n\t\tpointer-events: none;\n\t\tbackground-color: currentColor;\n\t\topacity: 0;\n\t\ttransition: opacity 200ms ease;\n\t}\n\n\t:host(:not([disabled])) button:hover .state-layer {\n\t\topacity: 0.08;\n\t}\n\n\t:host(:not([disabled])) button:focus-visible .state-layer {\n\t\topacity: 0.1;\n\t}\n\n\t:host(:not([disabled])) button:active .state-layer {\n\t\topacity: 0.1;\n\t}\n`];\n\t/** Value identifier for the chip */\n\t@property({ reflect: true }) value = ''\n\n\t/** Optional icon name (Material Symbols) */\n\t@property({ reflect: true }) icon = ''\n\n\t/** Optional href for navigation */\n\t@property({ reflect: true }) href = ''\n\n\t/** Target for navigation (e.g., '_blank') */\n\t@property({ reflect: true }) target = ''\n\n\t/** Disable the chip */\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\n\t/** Elevated style variant - flat by default per M3 spec */\n\t@property({ type: Boolean, reflect: true }) elevated = false\n\n\t// RxJS state streams\n\tprivate hover$ = new BehaviorSubject<boolean>(false)\n\tprivate pressed$ = new BehaviorSubject<boolean>(false)\n\tprivate focused$ = new BehaviorSubject<boolean>(false)\n\n\t// UI state - only ripples needed for rendering\n\t@state() private ripples: Array<{ x: number; y: number; id: number }> = []\n\n\tprotected static shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true }\n\n\tprivate nextRippleId = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Stream management for future extensions\n\t\t// Currently, states are handled directly in event handlers\n\t\t// This pipeline can be extended for more complex state interactions\n\t\tcombineLatest([\n\t\t\tthis.hover$,\n\t\t\tthis.pressed$,\n\t\t\tthis.focused$\n\t\t]).pipe(\n\t\t\t// States are managed through event handlers directly\n\t\t\t// This pipeline is kept for potential future state combinations\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprivate handleClick = (e: MouseEvent) => {\n\t\tif (this.disabled) return\n\n\t\t// Add ripple effect\n\t\tconst button = this.shadowRoot?.querySelector('button')\n\t\tif (button) {\n\t\t\tconst rect = button.getBoundingClientRect()\n\t\t\tconst x = e.clientX - rect.left\n\t\t\tconst y = e.clientY - rect.top\n\t\t\tconst id = this.nextRippleId++\n\n\t\t\tthis.ripples = [...this.ripples, { x, y, id }]\n\n\t\t\t// Remove ripple after animation\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.ripples = this.ripples.filter(r => r.id !== id)\n\t\t\t}, 600)\n\t\t}\n\n\t\t// Navigate if href is provided\n\t\tif (this.href) {\n\t\t\tif (this.target === '_blank') {\n\t\t\t\twindow.open(this.href, '_blank')\n\t\t\t} else {\n\t\t\t\twindow.location.href = this.href\n\t\t\t}\n\t\t}\n\n\t\t// Dispatch action event\n\t\tthis.dispatchEvent(new CustomEvent('action', {\n\t\t\tdetail: { value: this.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (this.disabled) return\n\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\tthis.pressed$.next(true)\n\n\t\t\t// Simulate click\n\t\t\tconst clickEvent = new MouseEvent('click', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true,\n\t\t\t\tclientX: 0,\n\t\t\t\tclientY: 0\n\t\t\t})\n\t\t\tthis.handleClick(clickEvent)\n\n\t\t\tsetTimeout(() => this.pressed$.next(false), 100)\n\t\t}\n\t}\n\n\tprivate handleFocus = () => {\n\t\tthis.focused$.next(true)\n\t}\n\n\tprivate handleBlur = () => {\n\t\tthis.focused$.next(false)\n\t}\n\n\tprotected render(): unknown {\n\t\tconst hasIcon = !!this.icon;\n\n\t\tconst classes = {\n\t\t\t'relative': true,\n\t\t\t'inline-flex': true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t'h-8': true, // M3: 32px height\n\t\t\t'min-h-[32px]': true,\n\t\t\t'rounded-full': true,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'transition-all': true,\n\t\t\t'duration-200': true,\n\t\t\t'select-none': true,\n\t\t\t'overflow-hidden': true,\n\n\t\t\t// M3 Padding: 8px with icon, 16px without (leading), 16px trailing\n\t\t\t'pl-2': hasIcon, // 8px with icon\n\t\t\t'pl-4': !hasIcon, // 16px without icon\n\t\t\t'pr-4': true, // 16px trailing\n\n\t\t\t// M3 Colors for suggestion chips\n\t\t\t'bg-surface-containerLow': true,\n\t\t\t'text-surface-onVariant': true,\n\n\t\t\t// Suggestion chips are flat by default (no elevation per M3)\n\n\t\t\t// Focus state\n\t\t\t'focus-visible:outline': !this.disabled,\n\t\t\t'focus-visible:outline-2': !this.disabled,\n\t\t\t'focus-visible:outline-primary': !this.disabled,\n\t\t\t'focus-visible:outline-offset-2': !this.disabled,\n\n\t\t\t// Disabled\n\t\t\t'opacity-38': this.disabled, // M3 disabled opacity\n\t\t\t'cursor-not-allowed': this.disabled\n\t\t}\n\n\t\treturn html`\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=${classMap(classes)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t@click=${this.handleClick}\n\t\t\t\t@keydown=${this.handleKeyDown}\n\t\t\t\t@mouseenter=${() => this.hover$.next(true)}\n\t\t\t\t@mouseleave=${() => this.hover$.next(false)}\n\t\t\t\t@mousedown=${() => this.pressed$.next(true)}\n\t\t\t\t@mouseup=${() => this.pressed$.next(false)}\n\t\t\t\t@focus=${this.handleFocus}\n\t\t\t\t@blur=${this.handleBlur}\n\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\taria-label=${this.value}\n\t\t\t>\n\t\t\t\t${this.icon ? html`\n\t\t\t\t\t<schmancy-icon class=\"text-[18px] shrink-0\">${this.icon}</schmancy-icon>\n\t\t\t\t` : ''}\n\t\t\t\t<span class=\"text-sm font-medium leading-5\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</span>\n\n\t\t\t\t<!-- Ripple effects -->\n\t\t\t\t${this.ripples.map(ripple => html`\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"ripple\"\n\t\t\t\t\t\tstyle=\"left: ${ripple.x}px; top: ${ripple.y}px;\"\n\t\t\t\t\t></span>\n\t\t\t\t`)}\n\n\t\t\t\t<!-- State layer for M3 hover/focus/pressed states -->\n\t\t\t\t<div class=\"state-layer\"></div>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-suggestion-chip': SchmancySuggestionChip\n\t}\n}\n\nexport type SuggestionChipActionEvent = { value: string }"],"mappings":"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"}