@mhmo91/schmancy 0.10.36 → 0.10.38

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 (572) hide show
  1. package/custom-elements.json +54 -31
  2. package/dist/SchmancyElement-BNnyBOwk.js +286 -0
  3. package/dist/{SchmancyElement-C3CpdNsi.js.map → SchmancyElement-BNnyBOwk.js.map} +1 -1
  4. package/dist/SchmancyElement-C41uPa6l.cjs +2 -0
  5. package/dist/{SchmancyElement-BBzRWB1w.cjs.map → SchmancyElement-C41uPa6l.cjs.map} +1 -1
  6. package/dist/agent/schmancy.agent.js +2432 -2361
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +4 -22
  9. package/dist/area-2FrTZI_T.cjs +21 -0
  10. package/dist/area-2FrTZI_T.cjs.map +1 -0
  11. package/dist/{area-BA96mwFY.js → area-KVDzhT4s.js} +4 -4
  12. package/dist/area-KVDzhT4s.js.map +1 -0
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +2 -2
  15. package/dist/{audio-D52h1jAT.js → audio-D3gnp15Y.js} +1 -1
  16. package/dist/{audio-D52h1jAT.js.map → audio-D3gnp15Y.js.map} +1 -1
  17. package/dist/{audio-B_jT9Xr7.cjs → audio-EaD0Ggfh.cjs} +1 -1
  18. package/dist/{audio-B_jT9Xr7.cjs.map → audio-EaD0Ggfh.cjs.map} +1 -1
  19. package/dist/audio.cjs +1 -1
  20. package/dist/audio.js +2 -2
  21. package/dist/autocomplete-DMmxsvUe.cjs +115 -0
  22. package/dist/autocomplete-DMmxsvUe.cjs.map +1 -0
  23. package/dist/{autocomplete-CI4QJXAN.js → autocomplete-DWiEqlQf.js} +96 -96
  24. package/dist/autocomplete-DWiEqlQf.js.map +1 -0
  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-_N1x5U_3.js → boat-DmyG7y1V.js} +4 -4
  32. package/dist/{boat-_N1x5U_3.js.map → boat-DmyG7y1V.js.map} +1 -1
  33. package/dist/{boat-I4B1UNMc.cjs → boat-dB1_qLm0.cjs} +1 -1
  34. package/dist/{boat-I4B1UNMc.cjs.map → boat-dB1_qLm0.cjs.map} +1 -1
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/breadcrumb.cjs +3 -3
  38. package/dist/breadcrumb.cjs.map +1 -1
  39. package/dist/breadcrumb.js +4 -4
  40. package/dist/breadcrumb.js.map +1 -1
  41. package/dist/{busy-BIUonyPk.cjs → busy-Cj_PV7oC.cjs} +1 -1
  42. package/dist/{busy-BIUonyPk.cjs.map → busy-Cj_PV7oC.cjs.map} +1 -1
  43. package/dist/{busy-CCB3qKnh.js → busy-enYCTssB.js} +2 -2
  44. package/dist/{busy-CCB3qKnh.js.map → busy-enYCTssB.js.map} +1 -1
  45. package/dist/busy.cjs +1 -1
  46. package/dist/busy.js +1 -1
  47. package/dist/{button-C89bPnHt.js → button-BQSOVnHn.js} +10 -9
  48. package/dist/button-BQSOVnHn.js.map +1 -0
  49. package/dist/button-WRmXlNyw.cjs +62 -0
  50. package/dist/button-WRmXlNyw.cjs.map +1 -0
  51. package/dist/button.cjs +6 -6
  52. package/dist/button.cjs.map +1 -1
  53. package/dist/button.js +17 -16
  54. package/dist/button.js.map +1 -1
  55. package/dist/{card-CFsCgJKZ.js → card-BHTz1GwB.js} +16 -16
  56. package/dist/card-BHTz1GwB.js.map +1 -0
  57. package/dist/{card-BO93_oxQ.cjs → card-ThG_ZaQE.cjs} +3 -3
  58. package/dist/card-ThG_ZaQE.cjs.map +1 -0
  59. package/dist/card.cjs +1 -1
  60. package/dist/card.js +1 -1
  61. package/dist/{checkbox-CFUBUFtW.cjs → checkbox-C4zeib84.cjs} +2 -2
  62. package/dist/{checkbox-CFUBUFtW.cjs.map → checkbox-C4zeib84.cjs.map} +1 -1
  63. package/dist/{checkbox-Bh7q0djq.js → checkbox-Ce0DlAdW.js} +6 -6
  64. package/dist/{checkbox-Bh7q0djq.js.map → checkbox-Ce0DlAdW.js.map} +1 -1
  65. package/dist/checkbox.cjs +1 -1
  66. package/dist/checkbox.js +1 -1
  67. package/dist/{chips-BfzpsyV1.cjs → chips-B1jui8Pe.cjs} +3 -3
  68. package/dist/chips-B1jui8Pe.cjs.map +1 -0
  69. package/dist/{chips-6YaoRmeG.js → chips-DAy6v93f.js} +20 -19
  70. package/dist/chips-DAy6v93f.js.map +1 -0
  71. package/dist/chips.cjs +1 -1
  72. package/dist/chips.js +2 -2
  73. package/dist/connectivity.cjs +1 -1
  74. package/dist/connectivity.js +3 -3
  75. package/dist/content-drawer.cjs +1 -1
  76. package/dist/content-drawer.js +1 -1
  77. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
  78. package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
  79. package/dist/{date-range-N-A249O9.cjs → date-range-BUaPgbTZ.cjs} +2 -2
  80. package/dist/date-range-BUaPgbTZ.cjs.map +1 -0
  81. package/dist/{date-range-CEo_Kjqw.js → date-range-NTpoA1in.js} +4 -4
  82. package/dist/date-range-NTpoA1in.js.map +1 -0
  83. package/dist/{date-range-inline-DFopysWF.cjs → date-range-inline-D0I6k84h.cjs} +1 -1
  84. package/dist/{date-range-inline-DFopysWF.cjs.map → date-range-inline-D0I6k84h.cjs.map} +1 -1
  85. package/dist/{date-range-inline-BwialV9j.js → date-range-inline-DjRdMZ1z.js} +2 -2
  86. package/dist/{date-range-inline-BwialV9j.js.map → date-range-inline-DjRdMZ1z.js.map} +1 -1
  87. package/dist/date-range-inline.cjs +1 -1
  88. package/dist/date-range-inline.js +1 -1
  89. package/dist/date-range.cjs +1 -1
  90. package/dist/date-range.js +1 -1
  91. package/dist/delay.cjs +1 -1
  92. package/dist/delay.js +2 -2
  93. package/dist/{details-GtpfI2hA.js → details-CY49XVfp.js} +43 -35
  94. package/dist/details-CY49XVfp.js.map +1 -0
  95. package/dist/details-DQNj2oaU.cjs +164 -0
  96. package/dist/details-DQNj2oaU.cjs.map +1 -0
  97. package/dist/details.cjs +1 -1
  98. package/dist/details.js +1 -1
  99. package/dist/{directives-CvYGSW_a.cjs → directives-Bb0S1DKZ.cjs} +4 -4
  100. package/dist/directives-Bb0S1DKZ.cjs.map +1 -0
  101. package/dist/{directives-C2dXgpCY.js → directives-Bfm1lkoy.js} +30 -23
  102. package/dist/directives-Bfm1lkoy.js.map +1 -0
  103. package/dist/directives.cjs +1 -1
  104. package/dist/directives.js +2 -2
  105. package/dist/{divider-D0pGX2VB.js → divider-BeyX_C0A.js} +2 -2
  106. package/dist/{divider-D0pGX2VB.js.map → divider-BeyX_C0A.js.map} +1 -1
  107. package/dist/{divider-rNsWCvMi.cjs → divider-Ck2C1sKl.cjs} +1 -1
  108. package/dist/{divider-rNsWCvMi.cjs.map → divider-Ck2C1sKl.cjs.map} +1 -1
  109. package/dist/divider.cjs +1 -1
  110. package/dist/divider.js +1 -1
  111. package/dist/dropdown.cjs +1 -1
  112. package/dist/dropdown.js +2 -2
  113. package/dist/{expand-FcKAzJta.js → expand-BYsSEtp6.js} +53 -53
  114. package/dist/expand-BYsSEtp6.js.map +1 -0
  115. package/dist/expand-CUF163mg.cjs +141 -0
  116. package/dist/expand-CUF163mg.cjs.map +1 -0
  117. package/dist/expand.cjs +1 -1
  118. package/dist/expand.js +1 -1
  119. package/dist/fab.cjs +1 -1
  120. package/dist/fab.js +2 -2
  121. package/dist/{float-CQ1WEp3M.js → float-Cgllk_H9.js} +2 -2
  122. package/dist/{float-CQ1WEp3M.js.map → float-Cgllk_H9.js.map} +1 -1
  123. package/dist/{float-CDjgxWyy.cjs → float-OvqX0nqG.cjs} +1 -1
  124. package/dist/{float-CDjgxWyy.cjs.map → float-OvqX0nqG.cjs.map} +1 -1
  125. package/dist/float.cjs +1 -1
  126. package/dist/float.js +1 -1
  127. package/dist/form-4GKROq2P.cjs +27 -0
  128. package/dist/form-4GKROq2P.cjs.map +1 -0
  129. package/dist/{form-H24puioV.js → form-DxaV_Ose.js} +39 -39
  130. package/dist/form-DxaV_Ose.js.map +1 -0
  131. package/dist/form.cjs +3 -3
  132. package/dist/form.cjs.map +1 -1
  133. package/dist/form.js +34 -34
  134. package/dist/form.js.map +1 -1
  135. package/dist/gravity-6pL6CfIr.cjs.map +1 -1
  136. package/dist/gravity-sVK3zGBF.js.map +1 -1
  137. package/dist/handover/agent-runtime-followups.md +1 -1
  138. package/dist/handover/agent-runtime-v1.md +3 -3
  139. package/dist/{icons-DBxfN91B.js → icons-CJ2mXcBi.js} +9 -9
  140. package/dist/icons-CJ2mXcBi.js.map +1 -0
  141. package/dist/icons-sZ-LybA9.cjs +24 -0
  142. package/dist/icons-sZ-LybA9.cjs.map +1 -0
  143. package/dist/icons.cjs +1 -1
  144. package/dist/icons.js +1 -1
  145. package/dist/{iframe-BDVElN8z.js → iframe-DWvN5nGB.js} +11 -11
  146. package/dist/iframe-DWvN5nGB.js.map +1 -0
  147. package/dist/{iframe-CG-z9qev.cjs → iframe-DpCv-QH2.cjs} +7 -7
  148. package/dist/iframe-DpCv-QH2.cjs.map +1 -0
  149. package/dist/iframe.cjs +1 -1
  150. package/dist/iframe.js +1 -1
  151. package/dist/index.cjs +1 -1
  152. package/dist/index.js +37 -37
  153. package/dist/{input-Bt_o4sYo.js → input-BCCHz6tB.js} +7 -7
  154. package/dist/input-BCCHz6tB.js.map +1 -0
  155. package/dist/{input-B14Nn6xD.cjs → input-Z-3N5JMv.cjs} +2 -2
  156. package/dist/input-Z-3N5JMv.cjs.map +1 -0
  157. package/dist/{input-chip-DEqO0DXc.js → input-chip-BOrcKH-H.js} +2 -2
  158. package/dist/{input-chip-DEqO0DXc.js.map → input-chip-BOrcKH-H.js.map} +1 -1
  159. package/dist/{input-chip-ugYu9Fn9.cjs → input-chip-ChAgRCXZ.cjs} +1 -1
  160. package/dist/{input-chip-ugYu9Fn9.cjs.map → input-chip-ChAgRCXZ.cjs.map} +1 -1
  161. package/dist/input.cjs +1 -1
  162. package/dist/input.js +1 -1
  163. package/dist/json.cjs +1 -1
  164. package/dist/json.js +3 -3
  165. package/dist/kbd.cjs +1 -1
  166. package/dist/kbd.js +2 -2
  167. package/dist/{layout-BJ_43VrH.js → layout-CFiG3lNT.js} +1 -1
  168. package/dist/{layout-BJ_43VrH.js.map → layout-CFiG3lNT.js.map} +1 -1
  169. package/dist/{layout-DF9ZaQ-b.cjs → layout-DZ4dpLh9.cjs} +1 -1
  170. package/dist/{layout-DF9ZaQ-b.cjs.map → layout-DZ4dpLh9.cjs.map} +1 -1
  171. package/dist/layout.cjs +1 -1
  172. package/dist/layout.js +2 -2
  173. package/dist/lazy-BaAiIUru.js +19 -0
  174. package/dist/lazy-BaAiIUru.js.map +1 -0
  175. package/dist/lazy-C-7a4FAe.cjs +1 -0
  176. package/dist/lazy-C-7a4FAe.cjs.map +1 -0
  177. package/dist/{lightbox-ZmuoBBFT.js → lightbox-B7Y4Nij_.js} +2 -2
  178. package/dist/lightbox-B7Y4Nij_.js.map +1 -0
  179. package/dist/{lightbox-B47Zoqv-.cjs → lightbox-Dpwsn8Qr.cjs} +1 -1
  180. package/dist/lightbox-Dpwsn8Qr.cjs.map +1 -0
  181. package/dist/lightbox.cjs +1 -1
  182. package/dist/lightbox.js +1 -1
  183. package/dist/{list-CaSWrlG2.cjs → list-BhM-6dAi.cjs} +1 -1
  184. package/dist/{list-CaSWrlG2.cjs.map → list-BhM-6dAi.cjs.map} +1 -1
  185. package/dist/{list-C47xzld_.js → list-C5WVoIfJ.js} +2 -2
  186. package/dist/{list-C47xzld_.js.map → list-C5WVoIfJ.js.map} +1 -1
  187. package/dist/list.cjs +1 -1
  188. package/dist/list.js +1 -1
  189. package/dist/magnetic-DKtc4umC.cjs.map +1 -1
  190. package/dist/magnetic-DaOOv5Dz.js.map +1 -1
  191. package/dist/{menu-8RObM6Ie.js → menu-CBAAJoHu.js} +3 -3
  192. package/dist/{menu-8RObM6Ie.js.map → menu-CBAAJoHu.js.map} +1 -1
  193. package/dist/{menu-Jpsy85SX.cjs → menu-DFQjJk3H.cjs} +1 -1
  194. package/dist/{menu-Jpsy85SX.cjs.map → menu-DFQjJk3H.cjs.map} +1 -1
  195. package/dist/menu.cjs +1 -1
  196. package/dist/menu.js +1 -1
  197. package/dist/{mixins-DTzfFVyv.js → mixins-DGBI7YPO.js} +11 -11
  198. package/dist/mixins-DGBI7YPO.js.map +1 -0
  199. package/dist/{mixins-DPdzC9ZH.cjs → mixins-fIpzhVMd.cjs} +1 -1
  200. package/dist/mixins-fIpzhVMd.cjs.map +1 -0
  201. package/dist/mixins.cjs +1 -1
  202. package/dist/mixins.js +2 -2
  203. package/dist/nav-drawer.cjs +1 -1
  204. package/dist/nav-drawer.js +1 -1
  205. package/dist/navigation-bar.cjs +1 -1
  206. package/dist/navigation-bar.js +1 -1
  207. package/dist/navigation-rail.cjs +3 -3
  208. package/dist/navigation-rail.cjs.map +1 -1
  209. package/dist/navigation-rail.js +11 -10
  210. package/dist/navigation-rail.js.map +1 -1
  211. package/dist/notification-B6yDL91t.cjs +24 -0
  212. package/dist/notification-B6yDL91t.cjs.map +1 -0
  213. package/dist/{notification-Ccktcj9H.js → notification-BB9OBRCr.js} +22 -22
  214. package/dist/notification-BB9OBRCr.js.map +1 -0
  215. package/dist/notification.cjs +1 -1
  216. package/dist/notification.js +1 -1
  217. package/dist/{option-CkMxwBqU.js → option-B21ImL0k.js} +2 -2
  218. package/dist/{option-CkMxwBqU.js.map → option-B21ImL0k.js.map} +1 -1
  219. package/dist/{option-0aNiVB3Q.cjs → option-CJQM5I9q.cjs} +1 -1
  220. package/dist/{option-0aNiVB3Q.cjs.map → option-CJQM5I9q.cjs.map} +1 -1
  221. package/dist/option.cjs +1 -1
  222. package/dist/option.js +1 -1
  223. package/dist/{overlay-H3Wt_dgQ.js → overlay-CWsihJ-E.js} +75 -67
  224. package/dist/overlay-CWsihJ-E.js.map +1 -0
  225. package/dist/overlay-DkIX9Ig3.cjs +58 -0
  226. package/dist/overlay-DkIX9Ig3.cjs.map +1 -0
  227. package/dist/overlay.cjs +1 -1
  228. package/dist/{overlay.confirm-body-Dxn_wNm3.js → overlay.confirm-body-CPqqPNks.js} +10 -10
  229. package/dist/overlay.confirm-body-CPqqPNks.js.map +1 -0
  230. package/dist/{overlay.confirm-body-CR9xaqOE.cjs → overlay.confirm-body-DwTfiNlV.cjs} +3 -3
  231. package/dist/overlay.confirm-body-DwTfiNlV.cjs.map +1 -0
  232. package/dist/overlay.js +4 -4
  233. package/dist/overlay.service-DU1nqh6A.cjs +1 -0
  234. package/dist/{overlay.service-DEj3rfRr.cjs.map → overlay.service-DU1nqh6A.cjs.map} +1 -1
  235. package/dist/{overlay.service-C46kOtUi.js → overlay.service-KTgBxjFb.js} +4 -4
  236. package/dist/{overlay.service-C46kOtUi.js.map → overlay.service-KTgBxjFb.js.map} +1 -1
  237. package/dist/{progress-zs18GR6C.cjs → progress-B-Qg44XY.cjs} +1 -1
  238. package/dist/{progress-zs18GR6C.cjs.map → progress-B-Qg44XY.cjs.map} +1 -1
  239. package/dist/{progress-BK7gSq8j.js → progress-CUSS1sNz.js} +2 -2
  240. package/dist/{progress-BK7gSq8j.js.map → progress-CUSS1sNz.js.map} +1 -1
  241. package/dist/progress.cjs +1 -1
  242. package/dist/progress.js +1 -1
  243. package/dist/{radio-group-1HCpzRUB.js → radio-group-AHLvrN8O.js} +7 -7
  244. package/dist/radio-group-AHLvrN8O.js.map +1 -0
  245. package/dist/{radio-group-DbYlyPc-.cjs → radio-group-BEtvCSS1.cjs} +2 -2
  246. package/dist/radio-group-BEtvCSS1.cjs.map +1 -0
  247. package/dist/radio-group.cjs +1 -1
  248. package/dist/radio-group.js +1 -1
  249. package/dist/range.cjs +1 -1
  250. package/dist/range.js +2 -2
  251. package/dist/select-BWpV2iv-.cjs +56 -0
  252. package/dist/select-BWpV2iv-.cjs.map +1 -0
  253. package/dist/{select-CEyhNtZ2.js → select-Cawz88lG.js} +46 -46
  254. package/dist/select-Cawz88lG.js.map +1 -0
  255. package/dist/select.cjs +1 -1
  256. package/dist/select.js +1 -1
  257. package/dist/skeleton.cjs +1 -1
  258. package/dist/skeleton.js +2 -2
  259. package/dist/skills/SKILL.md +17 -11
  260. package/dist/skills/overlay.md +14 -7
  261. package/dist/skills/schmancy/SKILL.md +17 -11
  262. package/dist/skills/schmancy/overlay.md +14 -7
  263. package/dist/skills/schmancy/steps.md +68 -34
  264. package/dist/skills/steps.md +68 -34
  265. package/dist/slider.cjs +1 -1
  266. package/dist/slider.js +2 -2
  267. package/dist/{sound.service-DO4SmUUT.js → sound.service-CK-5zob-.js} +4 -3
  268. package/dist/sound.service-CK-5zob-.js.map +1 -0
  269. package/dist/{sound.service-G_8GV_6L.cjs → sound.service-D2GGaBXc.cjs} +1 -1
  270. package/dist/sound.service-D2GGaBXc.cjs.map +1 -0
  271. package/dist/{splash-screen-B1mM4_xz.js → splash-screen-BUEtjHXC.js} +13 -13
  272. package/dist/splash-screen-BUEtjHXC.js.map +1 -0
  273. package/dist/{splash-screen-cbz4bxjB.cjs → splash-screen-DqPuipox.cjs} +6 -6
  274. package/dist/splash-screen-DqPuipox.cjs.map +1 -0
  275. package/dist/splash-screen.cjs +1 -1
  276. package/dist/splash-screen.js +1 -1
  277. package/dist/{src-tncsWsTY.js → src-CIqAj3Eh.js} +45 -45
  278. package/dist/src-CIqAj3Eh.js.map +1 -0
  279. package/dist/{src-czeiuT1m.cjs → src-CYqBQTyt.cjs} +6 -6
  280. package/dist/src-CYqBQTyt.cjs.map +1 -0
  281. package/dist/{state-Cx0aoL5e.cjs → state-BxDNox-2.cjs} +1 -1
  282. package/dist/{state-Cx0aoL5e.cjs.map → state-BxDNox-2.cjs.map} +1 -1
  283. package/dist/{state-DJDp3N7J.js → state-CnZCDMT0.js} +9 -9
  284. package/dist/{state-DJDp3N7J.js.map → state-CnZCDMT0.js.map} +1 -1
  285. package/dist/state.cjs +1 -1
  286. package/dist/state.js +2 -2
  287. package/dist/steps.cjs +35 -19
  288. package/dist/steps.cjs.map +1 -1
  289. package/dist/steps.js +96 -73
  290. package/dist/steps.js.map +1 -1
  291. package/dist/{surface-CYBl8_a3.js → surface-BMdG3dKQ.js} +2 -2
  292. package/dist/{surface-CYBl8_a3.js.map → surface-BMdG3dKQ.js.map} +1 -1
  293. package/dist/{surface-C3cxTcJD.cjs → surface-CWwYD_z2.cjs} +1 -1
  294. package/dist/{surface-C3cxTcJD.cjs.map → surface-CWwYD_z2.cjs.map} +1 -1
  295. package/dist/surface.cjs +1 -1
  296. package/dist/surface.js +1 -1
  297. package/dist/switch.cjs +4 -4
  298. package/dist/switch.cjs.map +1 -1
  299. package/dist/switch.js +11 -11
  300. package/dist/switch.js.map +1 -1
  301. package/dist/table.cjs +1 -1
  302. package/dist/table.js +2 -2
  303. package/dist/{tabs-DHy93Q3N.js → tabs-CDQYDc6v.js} +2 -2
  304. package/dist/{tabs-DHy93Q3N.js.map → tabs-CDQYDc6v.js.map} +1 -1
  305. package/dist/{tabs-ORQ_Zd43.cjs → tabs-CbD9E1gd.cjs} +1 -1
  306. package/dist/{tabs-ORQ_Zd43.cjs.map → tabs-CbD9E1gd.cjs.map} +1 -1
  307. package/dist/tabs.cjs +1 -1
  308. package/dist/tabs.js +1 -1
  309. package/dist/teleport.cjs +1 -1
  310. package/dist/teleport.js +1 -1
  311. package/dist/textarea-Brgi-vD2.cjs +43 -0
  312. package/dist/textarea-Brgi-vD2.cjs.map +1 -0
  313. package/dist/{textarea-DHIMt-ly.js → textarea-MPyrMi-S.js} +4 -4
  314. package/dist/textarea-MPyrMi-S.js.map +1 -0
  315. package/dist/textarea.cjs +1 -1
  316. package/dist/textarea.js +1 -1
  317. package/dist/{theme-CJpjkqHr.cjs → theme-BMbXoqi0.cjs} +1 -1
  318. package/dist/{theme-CJpjkqHr.cjs.map → theme-BMbXoqi0.cjs.map} +1 -1
  319. package/dist/{theme-CgI9PRco.js → theme-DZu-xmVp.js} +5 -5
  320. package/dist/{theme-CgI9PRco.js.map → theme-DZu-xmVp.js.map} +1 -1
  321. package/dist/{theme-button--FuBkuVr.cjs → theme-button-B0OLb-43.cjs} +1 -1
  322. package/dist/{theme-button--FuBkuVr.cjs.map → theme-button-B0OLb-43.cjs.map} +1 -1
  323. package/dist/{theme-button-D-FXb3oO.js → theme-button-D_qGvEYs.js} +2 -2
  324. package/dist/{theme-button-D-FXb3oO.js.map → theme-button-D_qGvEYs.js.map} +1 -1
  325. package/dist/theme-button.cjs +1 -1
  326. package/dist/theme-button.js +1 -1
  327. package/dist/theme.cjs +1 -1
  328. package/dist/theme.js +3 -3
  329. package/dist/{theme.service-BfTK1Wtl.js → theme.service-7VkM-hVf.js} +15 -11
  330. package/dist/theme.service-7VkM-hVf.js.map +1 -0
  331. package/dist/theme.service-B15FdjOS.cjs +1 -0
  332. package/dist/theme.service-B15FdjOS.cjs.map +1 -0
  333. package/dist/tree.cjs +4 -4
  334. package/dist/tree.cjs.map +1 -1
  335. package/dist/tree.js +8 -8
  336. package/dist/tree.js.map +1 -1
  337. package/dist/{typography-CxA3sx9B.cjs → typography-D4Fo1UGh.cjs} +3 -3
  338. package/dist/{typography-CxA3sx9B.cjs.map → typography-D4Fo1UGh.cjs.map} +1 -1
  339. package/dist/{typography-BEGLfHwz.js → typography-SZhjb_4R.js} +9 -9
  340. package/dist/{typography-BEGLfHwz.js.map → typography-SZhjb_4R.js.map} +1 -1
  341. package/dist/typography.cjs +1 -1
  342. package/dist/typography.js +1 -1
  343. package/dist/visually-hidden.cjs +1 -1
  344. package/dist/visually-hidden.js +2 -2
  345. package/dist/{window-B_n4P9az.js → window-BDVyrBnk.js} +101 -100
  346. package/dist/window-BDVyrBnk.js.map +1 -0
  347. package/dist/window-BbBYjm7R.cjs +59 -0
  348. package/dist/window-BbBYjm7R.cjs.map +1 -0
  349. package/dist/window.cjs +1 -1
  350. package/dist/window.js +1 -1
  351. package/package.json +1 -1
  352. package/skills/schmancy/SKILL.md +17 -11
  353. package/skills/schmancy/overlay.md +14 -7
  354. package/skills/schmancy/steps.md +68 -34
  355. package/src/area/area.component.ts +1 -1
  356. package/src/area/area.service.test.ts +2 -2
  357. package/src/area/area.service.ts +1 -1
  358. package/src/area/lazy.ts +87 -83
  359. package/src/audio/sound.service.ts +3 -3
  360. package/src/breadcrumb/breadcrumb.ts +2 -2
  361. package/src/button/button.ts +11 -11
  362. package/src/button/icon-button.ts +18 -18
  363. package/src/card/card.ts +16 -16
  364. package/src/content-drawer/drawer.ts +6 -6
  365. package/src/details/details.ts +55 -55
  366. package/src/directives/ai-badge.ts +2 -1
  367. package/src/directives/animate-text.ts +2 -1
  368. package/src/directives/art/art.directive.ts +2 -1
  369. package/src/directives/battery.ts +2 -1
  370. package/src/directives/confirm-click.ts +5 -3
  371. package/src/directives/cursor-glow.ts +2 -1
  372. package/src/directives/cycle-text.ts +2 -1
  373. package/src/directives/depth-of-field.ts +2 -1
  374. package/src/directives/drag.ts +4 -2
  375. package/src/directives/fyi.ts +2 -1
  376. package/src/directives/gravity.ts +2 -1
  377. package/src/directives/hummingbird.ts +2 -1
  378. package/src/directives/intersect.ts +3 -2
  379. package/src/directives/liquid.ts +2 -1
  380. package/src/directives/living-border.ts +2 -1
  381. package/src/directives/long-press.ts +2 -1
  382. package/src/directives/magnetic.ts +2 -1
  383. package/src/directives/missed-punch.ts +2 -1
  384. package/src/directives/nebula.ts +6 -5
  385. package/src/directives/overflow-within.ts +2 -1
  386. package/src/directives/reveal.ts +193 -118
  387. package/src/directives/urgent.ts +2 -1
  388. package/src/directives/working-snake.ts +2 -1
  389. package/src/expand/expand-root.component.ts +27 -27
  390. package/src/expand/expand.component.ts +48 -48
  391. package/src/form/fields/autocomplete/autocomplete.ts +154 -154
  392. package/src/form/fields/checkbox/checkbox.ts +4 -4
  393. package/src/form/fields/chips/chips.ts +2 -2
  394. package/src/form/fields/chips/filter-chip.ts +15 -15
  395. package/src/form/fields/date-range/date-range.ts +2 -2
  396. package/src/form/fields/input/input.ts +12 -12
  397. package/src/form/fields/radio-group/radio-button.ts +2 -2
  398. package/src/form/fields/radio-group/radio-group.ts +3 -3
  399. package/src/form/fields/select/select.ts +56 -56
  400. package/src/form/fields/switch/switch.ts +10 -10
  401. package/src/form/fields/textarea/textarea.ts +2 -2
  402. package/src/form/form-summary.ts +33 -33
  403. package/src/form/form.ts +45 -45
  404. package/src/icons/icon.ts +10 -8
  405. package/src/iframe/iframe.ts +11 -11
  406. package/src/lightbox/flip-directive.ts +2 -1
  407. package/src/lightbox/lightbox.directive.ts +2 -1
  408. package/src/nav-drawer/navbar.ts +3 -3
  409. package/src/navigation-rail/navigation-rail.ts +10 -10
  410. package/src/notification/notification.ts +22 -22
  411. package/src/overlay/overlay.component.ts +106 -83
  412. package/src/overlay/overlay.confirm-body.ts +4 -4
  413. package/src/overlay/overlay.service.ts +3 -3
  414. package/src/overlay/overlay.types.ts +4 -2
  415. package/src/splash-screen/splash-screen.ts +11 -11
  416. package/src/state/index.ts +12 -12
  417. package/src/state/schmancy-context.ts +9 -9
  418. package/src/steps/index.ts +1 -1
  419. package/src/steps/schmancy-step.ts +91 -65
  420. package/src/steps/{schmancy-steps-container.ts → schmancy-steps.ts} +18 -38
  421. package/src/steps/steps.context.ts +5 -4
  422. package/src/steps/steps.test.ts +120 -0
  423. package/src/teleport/teleport.component.ts +2 -2
  424. package/src/theme/theme.service.ts +17 -17
  425. package/src/tree/tree.ts +7 -7
  426. package/src/typography/typography.ts +7 -7
  427. package/src/window/window-manager.ts +20 -20
  428. package/src/window/window.ts +100 -100
  429. package/types/mixins/SchmancyElement.d.ts +3 -2
  430. package/types/mixins/formField.mixin.d.ts +1 -1
  431. package/types/src/area/area.service.d.ts +1 -1
  432. package/types/src/area/lazy.d.ts +0 -6
  433. package/types/src/audio/sound.service.d.ts +1 -2
  434. package/types/src/breadcrumb/breadcrumb.d.ts +1 -1
  435. package/types/src/button/button.d.ts +3 -3
  436. package/types/src/button/icon-button.d.ts +6 -7
  437. package/types/src/card/card.d.ts +5 -5
  438. package/types/src/content-drawer/drawer.d.ts +1 -1
  439. package/types/src/details/details.d.ts +2 -21
  440. package/types/src/directives/ai-badge.d.ts +2 -2
  441. package/types/src/directives/animate-text.d.ts +2 -2
  442. package/types/src/directives/art/art.directive.d.ts +2 -2
  443. package/types/src/directives/battery.d.ts +2 -2
  444. package/types/src/directives/confirm-click.d.ts +2 -2
  445. package/types/src/directives/cursor-glow.d.ts +2 -2
  446. package/types/src/directives/cycle-text.d.ts +2 -2
  447. package/types/src/directives/depth-of-field.d.ts +2 -2
  448. package/types/src/directives/drag.d.ts +4 -4
  449. package/types/src/directives/fyi.d.ts +2 -2
  450. package/types/src/directives/gravity.d.ts +2 -2
  451. package/types/src/directives/hummingbird.d.ts +2 -2
  452. package/types/src/directives/intersect.d.ts +2 -2
  453. package/types/src/directives/liquid.d.ts +2 -2
  454. package/types/src/directives/living-border.d.ts +2 -2
  455. package/types/src/directives/long-press.d.ts +2 -2
  456. package/types/src/directives/magnetic.d.ts +2 -2
  457. package/types/src/directives/missed-punch.d.ts +2 -2
  458. package/types/src/directives/nebula.d.ts +2 -2
  459. package/types/src/directives/overflow-within.d.ts +2 -2
  460. package/types/src/directives/reveal.d.ts +17 -7
  461. package/types/src/directives/urgent.d.ts +2 -2
  462. package/types/src/directives/working-snake.d.ts +2 -2
  463. package/types/src/expand/expand-root.component.d.ts +8 -8
  464. package/types/src/expand/expand.component.d.ts +11 -11
  465. package/types/src/form/fields/autocomplete/autocomplete.d.ts +29 -29
  466. package/types/src/form/fields/checkbox/checkbox.d.ts +1 -1
  467. package/types/src/form/fields/chips/chips.d.ts +1 -1
  468. package/types/src/form/fields/chips/filter-chip.d.ts +1 -2
  469. package/types/src/form/fields/input/input.d.ts +3 -3
  470. package/types/src/form/fields/radio-group/radio-button.d.ts +1 -1
  471. package/types/src/form/fields/radio-group/radio-group.d.ts +1 -1
  472. package/types/src/form/fields/select/select.d.ts +8 -8
  473. package/types/src/form/fields/switch/switch.d.ts +3 -3
  474. package/types/src/form/fields/textarea/textarea.d.ts +1 -1
  475. package/types/src/form/form-summary.d.ts +7 -7
  476. package/types/src/form/form.d.ts +11 -11
  477. package/types/src/icons/icon.d.ts +2 -2
  478. package/types/src/iframe/iframe.d.ts +3 -3
  479. package/types/src/lightbox/flip-directive.d.ts +2 -2
  480. package/types/src/lightbox/lightbox.directive.d.ts +2 -2
  481. package/types/src/nav-drawer/navbar.d.ts +1 -1
  482. package/types/src/navigation-rail/navigation-rail.d.ts +2 -2
  483. package/types/src/notification/notification.d.ts +8 -8
  484. package/types/src/overlay/overlay.component.d.ts +16 -16
  485. package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
  486. package/types/src/overlay/overlay.types.d.ts +4 -2
  487. package/types/src/splash-screen/splash-screen.d.ts +2 -2
  488. package/types/src/state/index.d.ts +1 -1
  489. package/types/src/state/schmancy-context.d.ts +3 -3
  490. package/types/src/steps/index.d.ts +1 -1
  491. package/types/src/steps/schmancy-step.d.ts +8 -23
  492. package/types/src/steps/{schmancy-steps-container.d.ts → schmancy-steps.d.ts} +8 -9
  493. package/types/src/steps/steps.context.d.ts +2 -1
  494. package/types/src/steps/steps.test.d.ts +2 -0
  495. package/types/src/teleport/teleport.component.d.ts +1 -1
  496. package/types/src/theme/theme.service.d.ts +1 -4
  497. package/types/src/tree/tree.d.ts +3 -3
  498. package/types/src/typography/typography.d.ts +1 -1
  499. package/types/src/window/window-manager.d.ts +2 -2
  500. package/types/src/window/window.d.ts +20 -20
  501. package/dist/SchmancyElement-BBzRWB1w.cjs +0 -2
  502. package/dist/SchmancyElement-C3CpdNsi.js +0 -284
  503. package/dist/area-BA96mwFY.js.map +0 -1
  504. package/dist/area-DtyQDdOF.cjs +0 -21
  505. package/dist/area-DtyQDdOF.cjs.map +0 -1
  506. package/dist/autocomplete-Bts5Jwwr.cjs +0 -115
  507. package/dist/autocomplete-Bts5Jwwr.cjs.map +0 -1
  508. package/dist/autocomplete-CI4QJXAN.js.map +0 -1
  509. package/dist/button-C89bPnHt.js.map +0 -1
  510. package/dist/button-CkwQH-g3.cjs +0 -62
  511. package/dist/button-CkwQH-g3.cjs.map +0 -1
  512. package/dist/card-BO93_oxQ.cjs.map +0 -1
  513. package/dist/card-CFsCgJKZ.js.map +0 -1
  514. package/dist/chips-6YaoRmeG.js.map +0 -1
  515. package/dist/chips-BfzpsyV1.cjs.map +0 -1
  516. package/dist/date-range-CEo_Kjqw.js.map +0 -1
  517. package/dist/date-range-N-A249O9.cjs.map +0 -1
  518. package/dist/details-BLRPV8sY.cjs +0 -164
  519. package/dist/details-BLRPV8sY.cjs.map +0 -1
  520. package/dist/details-GtpfI2hA.js.map +0 -1
  521. package/dist/directives-C2dXgpCY.js.map +0 -1
  522. package/dist/directives-CvYGSW_a.cjs.map +0 -1
  523. package/dist/expand-FcKAzJta.js.map +0 -1
  524. package/dist/expand-tffQHGbZ.cjs +0 -141
  525. package/dist/expand-tffQHGbZ.cjs.map +0 -1
  526. package/dist/form-H24puioV.js.map +0 -1
  527. package/dist/form-VYhbbir3.cjs +0 -27
  528. package/dist/form-VYhbbir3.cjs.map +0 -1
  529. package/dist/icons-B_a1HStW.cjs +0 -24
  530. package/dist/icons-B_a1HStW.cjs.map +0 -1
  531. package/dist/icons-DBxfN91B.js.map +0 -1
  532. package/dist/iframe-BDVElN8z.js.map +0 -1
  533. package/dist/iframe-CG-z9qev.cjs.map +0 -1
  534. package/dist/input-B14Nn6xD.cjs.map +0 -1
  535. package/dist/input-Bt_o4sYo.js.map +0 -1
  536. package/dist/lazy-CayEFyC3.cjs +0 -1
  537. package/dist/lazy-CayEFyC3.cjs.map +0 -1
  538. package/dist/lazy-D-bO2r4m.js +0 -13
  539. package/dist/lazy-D-bO2r4m.js.map +0 -1
  540. package/dist/lightbox-B47Zoqv-.cjs.map +0 -1
  541. package/dist/lightbox-ZmuoBBFT.js.map +0 -1
  542. package/dist/mixins-DPdzC9ZH.cjs.map +0 -1
  543. package/dist/mixins-DTzfFVyv.js.map +0 -1
  544. package/dist/notification-Ccktcj9H.js.map +0 -1
  545. package/dist/notification-DSkB-sn0.cjs +0 -24
  546. package/dist/notification-DSkB-sn0.cjs.map +0 -1
  547. package/dist/overlay-BS-ta-zq.cjs +0 -58
  548. package/dist/overlay-BS-ta-zq.cjs.map +0 -1
  549. package/dist/overlay-H3Wt_dgQ.js.map +0 -1
  550. package/dist/overlay.confirm-body-CR9xaqOE.cjs.map +0 -1
  551. package/dist/overlay.confirm-body-Dxn_wNm3.js.map +0 -1
  552. package/dist/overlay.service-DEj3rfRr.cjs +0 -1
  553. package/dist/radio-group-1HCpzRUB.js.map +0 -1
  554. package/dist/radio-group-DbYlyPc-.cjs.map +0 -1
  555. package/dist/select-B-SSmUDe.cjs +0 -56
  556. package/dist/select-B-SSmUDe.cjs.map +0 -1
  557. package/dist/select-CEyhNtZ2.js.map +0 -1
  558. package/dist/sound.service-DO4SmUUT.js.map +0 -1
  559. package/dist/sound.service-G_8GV_6L.cjs.map +0 -1
  560. package/dist/splash-screen-B1mM4_xz.js.map +0 -1
  561. package/dist/splash-screen-cbz4bxjB.cjs.map +0 -1
  562. package/dist/src-czeiuT1m.cjs.map +0 -1
  563. package/dist/src-tncsWsTY.js.map +0 -1
  564. package/dist/textarea-CEUaDURR.cjs +0 -43
  565. package/dist/textarea-CEUaDURR.cjs.map +0 -1
  566. package/dist/textarea-DHIMt-ly.js.map +0 -1
  567. package/dist/theme.service-BfTK1Wtl.js.map +0 -1
  568. package/dist/theme.service-Dg7LO0Qz.cjs +0 -1
  569. package/dist/theme.service-Dg7LO0Qz.cjs.map +0 -1
  570. package/dist/window-B_n4P9az.js.map +0 -1
  571. package/dist/window-Vl1u1-EG.cjs +0 -59
  572. package/dist/window-Vl1u1-EG.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BBzRWB1w.cjs`),t=require(`./mixins-DPdzC9ZH.cjs`);require(`./input-chip-ugYu9Fn9.cjs`);const n=require(`./layout-DF9ZaQ-b.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`
1
+ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-C41uPa6l.cjs`),t=require(`./mixins-fIpzhVMd.cjs`);require(`./input-chip-ChAgRCXZ.cjs`);const n=require(`./layout-DZ4dpLh9.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;
@@ -140,14 +140,14 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BBzRWB1w.cjs`
140
140
  button {
141
141
  font-family: inherit;
142
142
  }
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`
143
+ `]}#e;get selected(){return this.#e}set selected(e){let t=this.#e;this.#e=e,this.requestUpdate(`selected`,t)}constructor(){super(),this.value=``,this.#e=!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.#e},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.#e},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.#e?this.value||`on`:null)}formResetCallback(){this.#e=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.#e,"text-secondary-onContainer":this.#e,"bg-surface-container":!this.#e,"text-surface-on":!this.#e,"hover:brightness-95":this.#e&&!this.disabled,"hover:bg-surface-containerHigh":!this.#e&&!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`
144
144
  <button
145
145
  ${r.t({strength:2,radius:40})}
146
146
  class=${this.classMap(e)}
147
147
  @click=${this.handleClick}
148
148
  @keydown=${this.handleKeyDown}
149
149
  ?disabled=${this.disabled}
150
- aria-pressed=${this._selected?`true`:`false`}
150
+ aria-pressed=${this.#e?`true`:`false`}
151
151
  role="checkbox"
152
152
  tabindex="0"
153
153
  >
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chips-B1jui8Pe.cjs","names":["#selected"],"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\t#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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"}
@@ -1,7 +1,7 @@
1
- import { t as e, u as t } from "./SchmancyElement-C3CpdNsi.js";
2
- import { o as n } from "./mixins-DTzfFVyv.js";
3
- import "./input-chip-DEqO0DXc.js";
4
- import { r } from "./layout-BJ_43VrH.js";
1
+ import { t as e, u as t } from "./SchmancyElement-BNnyBOwk.js";
2
+ import { o as n } from "./mixins-DGBI7YPO.js";
3
+ import "./input-chip-BOrcKH-H.js";
4
+ import { r } from "./layout-CFiG3lNT.js";
5
5
  import { t as i } from "./magnetic-DaOOv5Dz.js";
6
6
  import { BehaviorSubject as a, combineLatest as o } from "rxjs";
7
7
  import { debounceTime as s, distinctUntilChanged as c, takeUntil as l } from "rxjs/operators";
@@ -351,19 +351,20 @@ var C = class extends e {
351
351
  }
352
352
  `];
353
353
  }
354
+ #e;
354
355
  get selected() {
355
- return this._selected;
356
+ return this.#e;
356
357
  }
357
358
  set selected(e) {
358
- let t = this._selected;
359
- this._selected = e, this.requestUpdate("selected", t);
359
+ let t = this.#e;
360
+ this.#e = e, this.requestUpdate("selected", t);
360
361
  }
361
362
  constructor() {
362
- super(), this.value = "", this._selected = !1, this.removable = !1, this.disabled = !1, this.elevated = !1, this.handleClick = () => {
363
+ super(), this.value = "", this.#e = !1, this.removable = !1, this.disabled = !1, this.elevated = !1, this.handleClick = () => {
363
364
  this.disabled || this.dispatchEvent(new CustomEvent("change", {
364
365
  detail: {
365
366
  value: this.value,
366
- selected: !this._selected
367
+ selected: !this.#e
367
368
  },
368
369
  bubbles: !0,
369
370
  composed: !0
@@ -378,7 +379,7 @@ var C = class extends e {
378
379
  this.disabled || e.key !== "Enter" && e.key !== " " || (e.preventDefault(), this.dispatchEvent(new CustomEvent("change", {
379
380
  detail: {
380
381
  value: this.value,
381
- selected: !this._selected
382
+ selected: !this.#e
382
383
  },
383
384
  bubbles: !0,
384
385
  composed: !0
@@ -406,10 +407,10 @@ var C = class extends e {
406
407
  super.connectedCallback();
407
408
  }
408
409
  updated(e) {
409
- super.updated?.(e), (e.has("value") || e.has("selected")) && this.internals?.setFormValue(this._selected ? this.value || "on" : null);
410
+ super.updated?.(e), (e.has("value") || e.has("selected")) && this.internals?.setFormValue(this.#e ? this.value || "on" : null);
410
411
  }
411
412
  formResetCallback() {
412
- this._selected = this.hasAttribute("selected");
413
+ this.#e = this.hasAttribute("selected");
413
414
  }
414
415
  formDisabledCallback(e) {
415
416
  this.disabled = e;
@@ -429,12 +430,12 @@ var C = class extends e {
429
430
  "font-medium": !0,
430
431
  relative: !0,
431
432
  "min-h-[32px]": !0,
432
- "bg-secondary-container": this._selected,
433
- "text-secondary-onContainer": this._selected,
434
- "bg-surface-container": !this._selected,
435
- "text-surface-on": !this._selected,
436
- "hover:brightness-95": this._selected && !this.disabled,
437
- "hover:bg-surface-containerHigh": !this._selected && !this.disabled,
433
+ "bg-secondary-container": this.#e,
434
+ "text-secondary-onContainer": this.#e,
435
+ "bg-surface-container": !this.#e,
436
+ "text-surface-on": !this.#e,
437
+ "hover:brightness-95": this.#e && !this.disabled,
438
+ "hover:bg-surface-containerHigh": !this.#e && !this.disabled,
438
439
  "active:brightness-90": !this.disabled,
439
440
  "focus-visible:outline": !this.disabled,
440
441
  "focus-visible:outline-2": !this.disabled,
@@ -455,7 +456,7 @@ var C = class extends e {
455
456
  @click=${this.handleClick}
456
457
  @keydown=${this.handleKeyDown}
457
458
  ?disabled=${this.disabled}
458
- aria-pressed=${this._selected ? "true" : "false"}
459
+ aria-pressed=${this.#e ? "true" : "false"}
459
460
  role="checkbox"
460
461
  tabindex="0"
461
462
  >
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chips-DAy6v93f.js","names":["#selected"],"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\t#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":";;;;;;;;;;;;AAYO,IAAA,IAAA,cAAiC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,QAqDF,IAAA,KAAA,OAGD,IAAA,KAAA,OAGA,IAAA,KAAA,SAGE,IAAA,KAAA,WAAA,CAGiB,GAAA,KAAA,WAAA,CAGA,GAAA,KAAA,SAGtC,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,WAC3B,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,WAC7B,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,UAGwB,CAAA,GAAA,KAAA,eAIjD,GAAA,KAAA,eAmBA,MAAA;GACtB,IAAI,KAAK,UAAU;GAGnB,IAAM,IAAS,KAAK,YAAY,cAAc,QAAA;GAC9C,IAAI,GAAQ;IACX,IAAM,IAAO,EAAO,sBAAA,GACd,IAAI,EAAE,UAAU,EAAK,MACrB,IAAI,EAAE,UAAU,EAAK,KACrB,IAAK,KAAK;IAEhB,KAAK,UAAU,CAAA,GAAI,KAAK,SAAS;KAAE,GAAA;KAAG,GAAA;KAAG,IAAA;IAAA,CAAA,GAGzC,iBAAA;KACC,KAAK,UAAU,KAAK,QAAQ,QAAO,MAAK,EAAE,OAAO,CAAA;IAAA,GAC/C,GAAA;GACJ;GAGI,KAAK,SACJ,KAAK,WAAW,WACnB,OAAO,KAAK,KAAK,MAAM,QAAA,IAEvB,OAAO,SAAS,OAAO,KAAK,OAK9B,KAAK,cAAc,IAAI,YAAY,UAAU;IAC5C,QAAQ,EAAE,OAAO,KAAK,MAAA;IACtB,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA,GAAA,KAAA,iBAIa,MAAA;GACxB,IAAA,CAAI,KAAK,aAEL,EAAE,QAAQ,WAAW,EAAE,QAAQ,MAAK;IACvC,EAAE,eAAA,GACF,KAAK,SAAS,KAAA,CAAK,CAAA;IAGnB,IAAM,IAAa,IAAI,WAAW,SAAS;KAC1C,SAAA,CAAS;KACT,YAAA,CAAY;KACZ,SAAS;KACT,SAAS;IAAA,CAAA;IAEV,KAAK,YAAY,CAAA,GAEjB,iBAAiB,KAAK,SAAS,KAAA,CAAK,CAAA,GAAQ,GAAA;GAC7C;EAAA,GAAA,KAAA,oBAAA;GAIA,KAAK,SAAS,KAAA,CAAK,CAAA;EAAA,GAAA,KAAA,mBAAA;GAInB,KAAK,SAAS,KAAA,CAAK,CAAA;EAAA;CAAA;CAAA;EAAA,KAAA,SA/JJ,CAAC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA6EiB;GAAA,GAAK,EAAW;GAAmB,gBAAA,CAAgB;EAAA;CAAA;CAIxF,oBAAA;EACC,MAAM,kBAAA,GAKN,EAAc;GACb,KAAK;GACL,KAAK;GACL,KAAK;EAAA,CAAA,EACH,KAGF,EAAU,KAAK,aAAA,CAAA,EACd,UAAA;CACH;CAkEA,SAAA;EACC,IAAM,IAAA,CAAA,CAAY,KAAK;EAwCvB,OAAO,CAAI;;;YAGD,EAAS;GAxClB,UAAA,CAAY;GACZ,eAAA,CAAe;GACf,gBAAA,CAAgB;GAChB,SAAA,CAAS;GACT,OAAA,CAAO;GACP,gBAAA,CAAgB;GAChB,gBAAA,CAAgB;GAChB,kBAAA,CAAmB,KAAK;GACxB,kBAAA,CAAkB;GAClB,gBAAA,CAAgB;GAChB,eAAA,CAAe;GACf,mBAAA,CAAmB;GAGnB,QAAQ;GACR,QAAA,CAAS;GACT,QAAA,CAAQ;GAGR,2BAAA,CAA2B;GAC3B,0BAAA,CAA0B;GAG1B,aAAa,KAAK,YAAA,CAAa,KAAK;GACpC,mBAAmB,KAAK,YAAA,CAAa,KAAK;GAG1C,yBAAA,CAA0B,KAAK;GAC/B,2BAAA,CAA4B,KAAK;GACjC,iCAAA,CAAkC,KAAK;GACvC,kCAAA,CAAmC,KAAK;GAGxC,cAAc,KAAK;GACnB,sBAAsB,KAAK;EAAA,CAAA,EAAA;gBAOd,KAAK,SAAA;aACR,KAAK,YAAA;eACH,KAAK,cAAA;wBACI,KAAK,OAAO,KAAA,CAAK,CAAA,EAAA;wBACjB,KAAK,OAAO,KAAA,CAAK,CAAA,EAAA;uBAClB,KAAK,SAAS,KAAA,CAAK,CAAA,EAAA;qBACrB,KAAK,SAAS,KAAA,CAAK,CAAA,EAAA;aAC3B,KAAK,YAAA;YACN,KAAK,WAAA;eACF,KAAK,WAAW,OAAO,IAAA;;oBAElB,KAAK,SAAA;iBACR,KAAK,MAAA;;MAEhB,KAAK,OAAO,CAAI;mDAC6B,KAAK,KAAA;QAChD,GAAA;;;;;;MAMF,KAAK,QAAQ,KAAI,MAAU,CAAI;;;qBAGhB,EAAO,EAAA,WAAa,EAAO,EAAA;;;;;;;;CAQ/C;AAAA;AAAA,EAAA,CA5LC,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,UAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAQzC,EAAA,CAAA,GAAM,EAAA,WAAA,WAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CA7EP,EAAc,sBAAA,CAAA,GAAsB,CAAA;ACGtB,IAAA,IAAA,cAA4B,EAAkB,CAAG;;;;;;;;6BAe9C,GAAA,KAAA,OAAA,CAgCD,GAAA,KAAA,UAGsB,SAAA,KAAA,SAUrB,IAAI,EAAwB,EAAA,GAAA,KAAA,UAC3B,IAAI,EAA0B,CAAA,CAAA;CAAA;CA1ChD,IAAA,QACa;EACZ,OAAO,KAAK,QACR,KAAK,SAAS,SAAS,CAAA,IACvB,KAAK,QAAQ,SAAS;CAC3B;CACA,IAAA,MAAmB,GAAA;EAClB,IAAM,IAAM,KAAK;EACjB,IAAI,KAAK,OAAO;GACf,IAAM,IAAM,MAAM,QAAQ,CAAA,IACvB,IACA,IAAI,OAAO,CAAA,EAAG,MAAM,GAAA,EAAK,KAAI,MAAK,EAAE,KAAA,CAAA,EAAQ,OAAO,OAAA,IAAW,CAAA;GACjE,KAAK,SAAS,KAAK,CAAA;EACpB,OACC,KAAK,QAAQ,KAAK,MAAM,QAAQ,CAAA,IAAM,EAAE,MAAM,KAAM,OAAO,KAAK,EAAA,CAAA;EAEjE,KAAK,cAAc,SAAS,CAAA;CAC7B;CAGA,IAAA,SAAI;EACH,OAAO,CAAA,GAAK,KAAK,SAAS,SAAS,CAAA,CAAA;CACpC;CACA,IAAA,OAAW,GAAA;EACV,KAAK,SAAS,KAAK,MAAM,QAAQ,CAAA,IAAK,CAAA,GAAI,CAAA,IAAK,CAAA,CAAA;CAChD;CAmBA,WAA8B,GAAA;EAG7B,IAFA,MAAM,WAAW,CAAA,GAEb,EAAa,IAAI,OAAA,KAAY,MAAM,QAAQ,KAAK,KAAA,KAAU,KAAK,MAAM;GACxE,IAAM,IAAK,IAAI,SAAA;GACf,KAAK,MAAM,SAAQ,MAAK,EAAG,OAAO,KAAK,MAAM,CAAA,CAAA,GAC7C,KAAK,WAAW,aAAa,CAAA;EAC9B;CACD;CAEA,gBAAA;EACC,IAAI,KAAK,YAAY,MAAM,QAAQ,KAAK,KAAA,KAAU,KAAK,MAAM,WAAW,GAAG;GAC1E,IAAM,IAAM,KAAK,eAAe,gBAAgB;GAMhD,OALA,KAAK,WAAW,YAAY,EAAE,cAAA,CAAc,EAAA,GAAQ,CAAA,IAChD,KAAK,aAAa,KAAK,SAAS,KAAK,WAAW,KAAK,eAAe,cACvE,KAAK,QAAA,CAAQ,GACb,KAAK,oBAAoB,IAAA,CAEnB;EACR;EACA,OAAO,MAAM,cAAA;CACd;CAEA,oBAAA;EAIC,IAHA,MAAM,kBAAA,GAGF,KAAK,OAAO;GACf,IAAM,IAAM,KAAK;GACjB,KAAK,QAAQ,KAAK,MAAM,QAAQ,CAAA,IAAO,IAAM,CAAA,CAAA;EAC9C,OAAO;GACN,IAAM,IAAM,KAAK;GACjB,KAAK,OAAO,KAAK,MAAM,QAAQ,CAAA,IAAQ,EAAI,MAAM,KAAM,OAAO,KAAO,EAAA,CAAA;EACtE;EAEA,EAAc,CACb,KAAK,OAAO,KAAK,EAAA,CAAA,GACjB,KAAK,QAAQ,KACZ,GAAsB,GAAM,MAAS,EAAK,WAAW,EAAK,UAAU,EAAK,OAAO,GAAG,MAAM,MAAM,EAAK,EAAA,CAAA,CAAA,CAAA,CAAA,EAGpG,KACA,EAAa,CAAA,GACb,EAAU,KAAK,aAAA,CAAA,EAEf,WAAA,CAAY,GAAO,OAAA;GACnB,KAAK,iBAAiB,GAAO,CAAA;EAAA,CAAA;CAEhC;CAEA,iBAAyB,GAAe,GAAA;EAClC,KAAK,SAEV,KAAK,MAAM,SAAQ,MAAA;GAClB,IAAI,WAAW,KAAQ,cAAc,GAAM;IAC1C,IAAM,IAAa;IACf,KAAK,QACR,EAAW,WAAW,EAAO,SAAS,KAAK,EAAO,SAAS,EAAW,KAAA,IAEtE,EAAW,WAAW,MAAU,MAAM,MAAU,EAAW;GAE7D;EAAA,CAAA;CAEF;CAEA,MAAA,OAAa,GAAA;EACZ,EAAE,eAAA,GACF,EAAE,gBAAA;EAEF,IAAA,EAAQ,OAAO,GAAA,UAAW,MAAa,EAAE;EAEzC,IAAI,KAAK,OAAO;GACf,IAAM,IAAM,KAAK;GACb,IACE,KAAK,QAAQ,MAAM,SAAS,CAAA,KAChC,KAAK,QAAQ,KAAK,CAAA,GAAI,KAAK,QAAQ,OAAO,CAAA,CAAA,IAG3C,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,QAAO,MAAK,MAAM,CAAA,CAAA,GAExD,KAAK,cAAc,SAAS,CAAA;EAC7B,OAAO;GACN,IAAM,IAAM,KAAK;GACjB,IAAI,GACH,KAAK,OAAO,KAAK,CAAA;QACX;IAAA,IAAK,KAAK,UAIhB;IAHA,KAAK,OAAO,KAAK,EAAA;GAGjB;GAED,KAAK,cAAc,SAAS,CAAA;EAC7B;EAEA,KAAK,WAAW,EAAE,OAAO,KAAK,QAAQ,KAAK,QAAQ,QAAQ,KAAK,OAAO,MAAA,CAAA;CACxE;CAEA,YAAA;EACC,MAAM,UAAA,GACN,KAAK,OAAO,KAAK,EAAA,GACjB,KAAK,QAAQ,KAAK,CAAA,CAAA;CACnB;CAEA,aAAuB,GAAA;EACtB,MAAM,aAAa,CAAA,GACnB,KAAK,iBAAiB,KAAK,OAAO,OAAO,KAAK,QAAQ,KAAA;CACvD;CAEA,SAAA;EACC,IAAM,IAAU;GACf,yCAAA,CAAyC;GACzC,aAAa,KAAK;GAClB,kBAAkB,KAAK,YAAY;EAAZ,GAElB,IAAiB;GACtB,0CAAA,CAA0C;GAC1C,4DAA4D,KAAK;EAAA;EAElE,OAAO,CAAI;iBACI,KAAK,SAAS,CAAA,EAAA;;;kBAGb,KAAK,OAAO,aAAa,aAAA;cAC7B,KAAK,SAAS,CAAA,EAAA;OACrB,EAAA,EAAA;eACQ,KAAK,OAAA;;;;GAIb,KAAK,iBAAiB,KAAK,OAAO,OAAO,KAAK,QAAQ,KAAA;EAAA,EAAA;;;;;KAMxD,EACD,KAAK,QAAS,KAAK,SAAS,KAAK,yBAC3B,CAAI;;iBAEG,KAAK,GAAA;4BACM,KAAK,QAAQ,uBAAuB,yBAAA;aACnD,EAAU,KAAK,QAAQ,UAAA,KAAU,CAAA,EAAA;;;QAGtC,KAAK,SAAS,KAAK,oBAAoB,KAAK,oBAAoB,KAAK,KAAA;;aAGnE,CAAA;CAET;AAAA;AAAA,EAAA,CAtMC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAKzC,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAO,EAAA,WAAA,SAAA,IAAA,GAAA,EAAA,CA2B3B,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,WAAA,KAAA,CAAA,GAAA,EAAA,CAGxC,EAAsB;CACtB,UACC;CACD,SAAA,CAAS;AAAA,CAAA,CAAA,GACT,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CAzDD,EAAc,gBAAA,CAAA,GAAgB,CAAA;ACQ/B,IAAa,IAAb,cAAwC,EAAA;CAAA;EAAA,KAAA,SACvB,CAAC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCpB;CAEA,IAAA,WACI;EACH,OAAO,KAAA;CACR;CACA,IAAA,SAAa,GAAA;EACZ,IAAM,IAAW,KAAA;EACjB,KAAA,KAAiB,GACjB,KAAK,cAAc,YAAY,CAAA;CAChC;CAeA,cAAA;EACC,MAAA,GAAA,KAAA,QA7Be,IAAA,KAAA,KAAA,CAGK,GAAA,KAAA,YAAA,CAcA,GAAA,KAAA,WAAA,CAID,GAAA,KAAA,WAAA,CAIA,GAAA,KAAA,oBAAA;GA2Cf,KAAK,YAET,KAAK,cACJ,IAAI,YAAY,UAAU;IACzB,QAAQ;KAAE,OAAO,KAAK;KAAO,UAAA,CAAW,KAAA;IAAKA;IAC7C,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA,GAAA,KAAA,gBAKW,MAAA;GACnB,KAAK,aAET,EAAE,gBAAA,GAEF,KAAK,cACJ,IAAI,YAAY,UAAU;IACzB,QAAQ,EAAE,OAAO,KAAK,MAAA;IACtB,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA,GAAA,KAAA,iBAKY,MAAA;GACpB,KAAK,YAEL,EAAE,QAAQ,WAAW,EAAE,QAAQ,QAClC,EAAE,eAAA,GACF,KAAK,cACJ,IAAI,YAAY,UAAU;IACzB,QAAQ;KAAE,OAAO,KAAK;KAAO,UAAA,CAAW,KAAA;IAAKA;IAC7C,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA;EAxEb,IAAA;GACC,KAAK,YAAY,KAAK,gBAAA;EACvB,QAAA;GACC,KAAK,YAAA,KAAY;EAClB;CACD;CAAA;EAAA,KAAA,oBAEqC;GAAA,GACjC,EAAW;GACd,gBAAA,CAAgB;EAAA;CAAA;CAAA;EAAA,KAAA,iBAAA,CAGO;CAAA;CAExB,IAAA,OAAI;EACH,OAAO,KAAK,WAAW;CACxB;CAEA,oBAAA;EACC,MAAM,kBAAA;CACP;CAEA,QAAkB,GAAA;EACjB,MAAM,UAAU,CAAA,IACZ,EAAQ,IAAI,OAAA,KAAY,EAAQ,IAAI,UAAA,MACvC,KAAK,WAAW,aAAa,KAAA,KAAkB,KAAK,SAAS,OAAQ,IAAA;CAEvE;CAEA,oBAAA;EACC,KAAA,KAAiB,KAAK,aAAa,UAAA;CACpC;CAEA,qBAAqB,GAAA;EACpB,KAAK,WAAW;CACjB;CA4CA,SAAA;EACC,IAAM,IAAc;GACnB,eAAA,CAAe;GACf,gBAAA,CAAgB;GAChB,SAAA,CAAS;GACT,cAAA,CAAc;GACd,YAAA,CAAY;GACZ,kBAAA,CAAmB,KAAK;GACxB,kBAAA,CAAkB;GAClB,gBAAA,CAAgB;GAChB,eAAA,CAAe;GACf,WAAA,CAAW;GACX,eAAA,CAAe;GACf,UAAA,CAAY;GACZ,gBAAA,CAAgB;GAGhB,0BAA0B,KAAA;GAC1B,8BAA8B,KAAA;GAC9B,wBAAA,CAAyB,KAAA;GACzB,mBAAA,CAAoB,KAAA;GAGpB,uBAAuB,KAAA,MAAKA,CAAc,KAAK;GAC/C,kCAAA,CAAmC,KAAA,MAAKA,CAAc,KAAK;GAG3D,wBAAA,CAAyB,KAAK;GAG9B,yBAAA,CAA0B,KAAK;GAC/B,2BAAA,CAA4B,KAAK;GACjC,kCAAA,CAAmC,KAAK;GACxC,yCAAA,CAA0C,KAAK;GAG/C,aAAa,KAAK,YAAA,CAAa,KAAK;GACpC,mBAAmB,KAAK,YAAA,CAAa,KAAK;GAG1C,wDAAwD,KAAK;GAC7D,sBAAsB,KAAK;EAAA;EAG5B,OAAO,CAAI;;MAEP,EAAS;GAAE,UAAU;GAAG,QAAQ;EAAA,CAAA,EAAA;YAC1B,KAAK,SAAS,CAAA,EAAA;aACb,KAAK,YAAA;eACH,KAAK,cAAA;gBACJ,KAAK,SAAA;mBACF,KAAA,KAAiB,SAAS,QAAA;;;;;;MAMvC,KAAK,YACJ,CAAI;;;iBAGM,KAAK,aAAA;;;;;;UAOf,GAAA;;;CAGN;AAAA;AAOD,IAAA,EAAA,CA5LE,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAMxC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,IAAA,GAAA,EAAA,CAWzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,aAAA,KAAA,CAAA,GAAA,EAAA,CAIzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAIzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GA+JtC,eAAe,IAAI,sBAAA,KACvB,eAAe,OAAO,wBAAwB,CAAA,GAAA,CAG1C,eAAe,IAAI,eAAA,GAAkB;CACzC,MAAM,UAA2B,EAAA,CAAA;CACjC,eAAe,OAAO,iBAAiB,CAAA;AACxC;AChOO,IAAA,IAAA,cAAqC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,QAqDN,IAAA,KAAA,OAGD,IAAA,KAAA,OAGA,IAAA,KAAA,SAGE,IAAA,KAAA,WAAA,CAGiB,GAAA,KAAA,WAAA,CAGA,GAAA,KAAA,SAGtC,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,WAC3B,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,WAC7B,IAAI,EAAA,CAAyB,CAAA,GAAA,KAAA,UAGwB,CAAA,GAAA,KAAA,eAIjD,GAAA,KAAA,eAmBA,MAAA;GACtB,IAAI,KAAK,UAAU;GAGnB,IAAM,IAAS,KAAK,YAAY,cAAc,QAAA;GAC9C,IAAI,GAAQ;IACX,IAAM,IAAO,EAAO,sBAAA,GACd,IAAI,EAAE,UAAU,EAAK,MACrB,IAAI,EAAE,UAAU,EAAK,KACrB,IAAK,KAAK;IAEhB,KAAK,UAAU,CAAA,GAAI,KAAK,SAAS;KAAE,GAAA;KAAG,GAAA;KAAG,IAAA;IAAA,CAAA,GAGzC,iBAAA;KACC,KAAK,UAAU,KAAK,QAAQ,QAAO,MAAK,EAAE,OAAO,CAAA;IAAA,GAC/C,GAAA;GACJ;GAGI,KAAK,SACJ,KAAK,WAAW,WACnB,OAAO,KAAK,KAAK,MAAM,QAAA,IAEvB,OAAO,SAAS,OAAO,KAAK,OAK9B,KAAK,cAAc,IAAI,YAAY,UAAU;IAC5C,QAAQ,EAAE,OAAO,KAAK,MAAA;IACtB,SAAA,CAAS;IACT,UAAA,CAAU;GAAA,CAAA,CAAA;EAAA,GAAA,KAAA,iBAIa,MAAA;GACxB,IAAA,CAAI,KAAK,aAEL,EAAE,QAAQ,WAAW,EAAE,QAAQ,MAAK;IACvC,EAAE,eAAA,GACF,KAAK,SAAS,KAAA,CAAK,CAAA;IAGnB,IAAM,IAAa,IAAI,WAAW,SAAS;KAC1C,SAAA,CAAS;KACT,YAAA,CAAY;KACZ,SAAS;KACT,SAAS;IAAA,CAAA;IAEV,KAAK,YAAY,CAAA,GAEjB,iBAAiB,KAAK,SAAS,KAAA,CAAK,CAAA,GAAQ,GAAA;GAC7C;EAAA,GAAA,KAAA,oBAAA;GAIA,KAAK,SAAS,KAAA,CAAK,CAAA;EAAA,GAAA,KAAA,mBAAA;GAInB,KAAK,SAAS,KAAA,CAAK,CAAA;EAAA;CAAA;CAAA;EAAA,KAAA,SA/JJ,CAAC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA6EiB;GAAA,GAAK,EAAW;GAAmB,gBAAA,CAAgB;EAAA;CAAA;CAIxF,oBAAA;EACC,MAAM,kBAAA,GAKN,EAAc;GACb,KAAK;GACL,KAAK;GACL,KAAK;EAAA,CAAA,EACH,KAGF,EAAU,KAAK,aAAA,CAAA,EACd,UAAA;CACH;CAkEA,SAAA;EACC,IAAM,IAAA,CAAA,CAAY,KAAK;EAsCvB,OAAO,CAAI;;;YAGD,EAAS;GAtClB,UAAA,CAAY;GACZ,eAAA,CAAe;GACf,gBAAA,CAAgB;GAChB,SAAA,CAAS;GACT,OAAA,CAAO;GACP,gBAAA,CAAgB;GAChB,gBAAA,CAAgB;GAChB,kBAAA,CAAmB,KAAK;GACxB,kBAAA,CAAkB;GAClB,gBAAA,CAAgB;GAChB,eAAA,CAAe;GACf,mBAAA,CAAmB;GAGnB,QAAQ;GACR,QAAA,CAAS;GACT,QAAA,CAAQ;GAGR,2BAAA,CAA2B;GAC3B,0BAAA,CAA0B;GAK1B,yBAAA,CAA0B,KAAK;GAC/B,2BAAA,CAA4B,KAAK;GACjC,iCAAA,CAAkC,KAAK;GACvC,kCAAA,CAAmC,KAAK;GAGxC,cAAc,KAAK;GACnB,sBAAsB,KAAK;EAAA,CAAA,EAAA;gBAOd,KAAK,SAAA;aACR,KAAK,YAAA;eACH,KAAK,cAAA;wBACI,KAAK,OAAO,KAAA,CAAK,CAAA,EAAA;wBACjB,KAAK,OAAO,KAAA,CAAK,CAAA,EAAA;uBAClB,KAAK,SAAS,KAAA,CAAK,CAAA,EAAA;qBACrB,KAAK,SAAS,KAAA,CAAK,CAAA,EAAA;aAC3B,KAAK,YAAA;YACN,KAAK,WAAA;eACF,KAAK,WAAW,OAAO,IAAA;;oBAElB,KAAK,SAAA;iBACR,KAAK,MAAA;;MAEhB,KAAK,OAAO,CAAI;mDAC6B,KAAK,KAAA;QAChD,GAAA;;;;;;MAMF,KAAK,QAAQ,KAAI,MAAU,CAAI;;;qBAGhB,EAAO,EAAA,WAAa,EAAO,EAAA;;;;;;;;CAQ/C;AAAA;AAAA,EAAA,CA1LC,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,SAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,QAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS,EAAE,SAAA,CAAS,EAAA,CAAA,CAAA,GAAM,EAAA,WAAA,UAAA,KAAA,CAAA,GAAA,EAAA,CAG1B,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;AAAA,CAAA,CAAA,GAAM,EAAA,WAAA,YAAA,KAAA,CAAA,GAAA,EAAA,CAQzC,EAAA,CAAA,GAAM,EAAA,WAAA,WAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CA7EP,EAAc,0BAAA,CAAA,GAA0B,CAAA;AAAA,SAAA,KAAA,GAAA,KAAA,GAAA,KAAA"}
package/dist/chips.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./input-chip-ugYu9Fn9.cjs`),t=require(`./chips-BfzpsyV1.cjs`);Object.defineProperty(exports,`SchmancyAssistChip`,{enumerable:!0,get:function(){return t.r}}),exports.SchmancyChip=t.n,exports.SchmancyFilterChip=t.n,Object.defineProperty(exports,`SchmancyInputChip`,{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,`SchmancySuggestionChip`,{enumerable:!0,get:function(){return t.t}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./input-chip-ChAgRCXZ.cjs`),t=require(`./chips-B1jui8Pe.cjs`);Object.defineProperty(exports,`SchmancyAssistChip`,{enumerable:!0,get:function(){return t.r}}),exports.SchmancyChip=t.n,exports.SchmancyFilterChip=t.n,Object.defineProperty(exports,`SchmancyInputChip`,{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,`SchmancySuggestionChip`,{enumerable:!0,get:function(){return t.t}});
package/dist/chips.js CHANGED
@@ -1,3 +1,3 @@
1
- import { t as e } from "./input-chip-DEqO0DXc.js";
2
- import { n as t, r as n, t as r } from "./chips-6YaoRmeG.js";
1
+ import { t as e } from "./input-chip-BOrcKH-H.js";
2
+ import { n as t, r as n, t as r } from "./chips-DAy6v93f.js";
3
3
  export { n as SchmancyAssistChip, t as SchmancyChip, t as SchmancyFilterChip, e as SchmancyInputChip, r as SchmancySuggestionChip };
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BBzRWB1w.cjs`);require(`./mixins-DPdzC9ZH.cjs`);const t=require(`./audio-B_jT9Xr7.cjs`);let n=require(`rxjs`),r=require(`rxjs/operators`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`lit/directives/ref.js`);var s=class extends e.t{constructor(...e){super(...e),this.bannerRef=(0,o.createRef)(),this.surfaceRef=(0,o.createRef)(),this.iconRef=(0,o.createRef)(),this.messageRef=(0,o.createRef)()}static{this.styles=[a.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-C41uPa6l.cjs`);require(`./mixins-fIpzhVMd.cjs`);const t=require(`./audio-EaD0Ggfh.cjs`);let n=require(`rxjs`),r=require(`rxjs/operators`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`lit/directives/ref.js`);var s=class extends e.t{constructor(...e){super(...e),this.bannerRef=(0,o.createRef)(),this.surfaceRef=(0,o.createRef)(),this.iconRef=(0,o.createRef)(),this.messageRef=(0,o.createRef)()}static{this.styles=[a.css`
2
2
  :host {
3
3
  display: block;
4
4
  }
@@ -1,6 +1,6 @@
1
- import { t as e, u as t } from "./SchmancyElement-C3CpdNsi.js";
2
- import "./mixins-DTzfFVyv.js";
3
- import { t as n } from "./audio-D52h1jAT.js";
1
+ import { t as e, u as t } from "./SchmancyElement-BNnyBOwk.js";
2
+ import "./mixins-DGBI7YPO.js";
3
+ import { t as n } from "./audio-D3gnp15Y.js";
4
4
  import { fromEvent as r, merge as i, timer as a } from "rxjs";
5
5
  import { distinctUntilChanged as o, map as s, skip as c, takeUntil as l, tap as u } from "rxjs/operators";
6
6
  import { customElement as d } from "lit/decorators.js";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-czeiuT1m.cjs`);Object.defineProperty(exports,`SchmancyContentDrawer`,{enumerable:!0,get:function(){return e._}}),exports.SchmancyContentDrawerID=e.v,Object.defineProperty(exports,`SchmancyContentDrawerMain`,{enumerable:!0,get:function(){return e.g}}),exports.SchmancyContentDrawerMaxHeight=e.y,exports.SchmancyContentDrawerMinWidth=e.b,Object.defineProperty(exports,`SchmancyContentDrawerSheet`,{enumerable:!0,get:function(){return e.h}}),exports.SchmancyContentDrawerSheetMode=e.x,exports.SchmancyContentDrawerSheetState=e.S,exports.schmancyContentDrawer=e.C;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-CYqBQTyt.cjs`);Object.defineProperty(exports,`SchmancyContentDrawer`,{enumerable:!0,get:function(){return e._}}),exports.SchmancyContentDrawerID=e.v,Object.defineProperty(exports,`SchmancyContentDrawerMain`,{enumerable:!0,get:function(){return e.g}}),exports.SchmancyContentDrawerMaxHeight=e.y,exports.SchmancyContentDrawerMinWidth=e.b,Object.defineProperty(exports,`SchmancyContentDrawerSheet`,{enumerable:!0,get:function(){return e.h}}),exports.SchmancyContentDrawerSheetMode=e.x,exports.SchmancyContentDrawerSheetState=e.S,exports.schmancyContentDrawer=e.C;
@@ -1,2 +1,2 @@
1
- import { C as e, S as t, _ as n, b as r, g as i, h as a, v as o, x as s, y as c } from "./src-tncsWsTY.js";
1
+ import { C as e, S as t, _ as n, b as r, g as i, h as a, v as o, x as s, y as c } from "./src-CIqAj3Eh.js";
2
2
  export { n as SchmancyContentDrawer, o as SchmancyContentDrawerID, i as SchmancyContentDrawerMain, c as SchmancyContentDrawerMaxHeight, r as SchmancyContentDrawerMinWidth, a as SchmancyContentDrawerSheet, s as SchmancyContentDrawerSheetMode, t as SchmancyContentDrawerSheetState, e as schmancyContentDrawer };
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-glow-Ah7VXSj7.js","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(_options?: CursorGlowOptions) {\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(this.element, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":";;;;;AAwBA,IAqHa,IAAa,EArH1B,cAAkC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,YAGJ,IAAI,KAAA,KAAA,SAChB,KAAA,KAAA,QACD,6CAAA,KAAA,YACI,KAAA,KAAA,iBAAA,CAEK;CAAA;CAGzB,OAAO,GAAA,CAEP;CAEA,OAAgB,GAAA,CAAoB,IAAA;EACnC,IAAI,EAAK,SAAS,EAAS,SAC1B,MAAU,MAAM,iDAAA;EAGjB,IAAM,IAAM,KAAK,UAAU,KAAW,CAAC,CAAA;EACnC,KAAK,WAAW,MAAQ,KAAK,YACjC,KAAK,UAAU,GAEf,KAAK,UAAU,EAAK,SACpB,KAAK,SAAS,GAAS,UAAU,KACjC,KAAK,QAAQ,GAAS,SAAS,6CAC/B,KAAK,YAAY,GAAS,aAAa,KAEnC,EAAe,UAEnB,KAAK,UAAU,KAAA,GACf,KAAK,kBAAA,GACL,KAAK,cAAA;CAGN;CAEA,cAAA;EACC,KAAK,kBAAA,GACL,KAAK,UAAU,KAAA,GACf,KAAK,cAAA;CACN;CAEA,oBAAA;EAEa,AADA,iBAAiB,KAAK,OAAA,EAAS,aAC/B,aACX,KAAK,QAAQ,MAAM,WAAW,YAC9B,KAAK,iBAAA,CAAiB,IAGlB,KAAK,WACT,KAAK,SAAS,SAAS,cAAc,KAAA,GACrC,KAAK,OAAO,aAAa,eAAe,MAAA,GACxC,OAAO,OAAO,KAAK,OAAO,OAAO;GAChC,UAAU;GACV,OAAO;GACP,eAAe;GACf,QAAQ;GACR,cAAc;GACd,UAAU;GACV,SAAS;GACT,YAAY;EAAA,CAAA,GAEb,KAAK,QAAQ,QAAQ,KAAK,MAAA;CAE5B;CAEA,gBAAA;EAyBC,EAxBe,EAAsB,KAAK,SAAS,YAAA,EAAc,KAChE,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAa,KAAK,QAAQ,sBAAA,GACxB,KAAA,CAAA,GAIK,EAAsB,KAAK,SAAS,WAAA,EAAa,KAC9D,EAAU,GAAG,CAAA,GACb,GAAI,MAAA;GACH,IAAM,IAAO,KAAK,cAAc,KAAK,QAAQ,sBAAA;GAC7C,OAAO;IAAE,GAAG,EAAE,UAAU,EAAK;IAAM,GAAG,EAAE,UAAU,EAAK;GAAA;EAAA,CAAA,CAAA,GAI1C,EAAU,KAAK,SAAS,YAAA,EAAc,KACpD,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAA,KAAa,GACX,KAAA,CAAA,CAAA,EAKP,KAAK,EAAU,KAAK,SAAA,CAAA,EACpB,WAAU,MAAA;GACN,KAAO,KAAK,WACf,KAAK,OAAO,MAAM,aAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,MAAjB,KAAK,SAAA,EAAA;EAAA,CAAA;CAKxD;CAEA,eAAA;EACC,KAAK,UAAU,KAAA,GACf,KAAK,QAAQ,OAAA,GACb,KAAK,SAAA,KAAS,GACV,KAAK,kBAAkB,KAAK,YAC/B,KAAK,QAAQ,MAAM,WAAW,IAC9B,KAAK,iBAAA,CAAiB;CAExB;AAAA,CAAA;AAAA,SAAA,KAAA"}
1
+ {"version":3,"file":"cursor-glow-Ah7VXSj7.js","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(options?: CursorGlowOptions) {\n\t\tvoid options\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(this.element, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":";;;;;AAwBA,IAsHa,IAAa,EAtH1B,cAAkC,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,CAAA,GAAA,KAAA,YAGJ,IAAI,KAAA,KAAA,SAChB,KAAA,KAAA,QACD,6CAAA,KAAA,YACI,KAAA,KAAA,iBAAA,CAEK;CAAA;CAGzB,OAAO,GAAA,CAGP;CAEA,OAAgB,GAAA,CAAoB,IAAA;EACnC,IAAI,EAAK,SAAS,EAAS,SAC1B,MAAU,MAAM,iDAAA;EAGjB,IAAM,IAAM,KAAK,UAAU,KAAW,CAAC,CAAA;EACnC,KAAK,WAAW,MAAQ,KAAK,YACjC,KAAK,UAAU,GAEf,KAAK,UAAU,EAAK,SACpB,KAAK,SAAS,GAAS,UAAU,KACjC,KAAK,QAAQ,GAAS,SAAS,6CAC/B,KAAK,YAAY,GAAS,aAAa,KAEnC,EAAe,UAEnB,KAAK,UAAU,KAAA,GACf,KAAK,kBAAA,GACL,KAAK,cAAA;CAGN;CAEA,cAAA;EACC,KAAK,kBAAA,GACL,KAAK,UAAU,KAAA,GACf,KAAK,cAAA;CACN;CAEA,oBAAA;EAEa,AADA,iBAAiB,KAAK,OAAA,EAAS,aAC/B,aACX,KAAK,QAAQ,MAAM,WAAW,YAC9B,KAAK,iBAAA,CAAiB,IAGlB,KAAK,WACT,KAAK,SAAS,SAAS,cAAc,KAAA,GACrC,KAAK,OAAO,aAAa,eAAe,MAAA,GACxC,OAAO,OAAO,KAAK,OAAO,OAAO;GAChC,UAAU;GACV,OAAO;GACP,eAAe;GACf,QAAQ;GACR,cAAc;GACd,UAAU;GACV,SAAS;GACT,YAAY;EAAA,CAAA,GAEb,KAAK,QAAQ,QAAQ,KAAK,MAAA;CAE5B;CAEA,gBAAA;EAyBC,EAxBe,EAAsB,KAAK,SAAS,YAAA,EAAc,KAChE,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAa,KAAK,QAAQ,sBAAA,GACxB,KAAA,CAAA,GAIK,EAAsB,KAAK,SAAS,WAAA,EAAa,KAC9D,EAAU,GAAG,CAAA,GACb,GAAI,MAAA;GACH,IAAM,IAAO,KAAK,cAAc,KAAK,QAAQ,sBAAA;GAC7C,OAAO;IAAE,GAAG,EAAE,UAAU,EAAK;IAAM,GAAG,EAAE,UAAU,EAAK;GAAA;EAAA,CAAA,CAAA,GAI1C,EAAU,KAAK,SAAS,YAAA,EAAc,KACpD,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAA,KAAa,GACX,KAAA,CAAA,CAAA,EAKP,KAAK,EAAU,KAAK,SAAA,CAAA,EACpB,WAAU,MAAA;GACN,KAAO,KAAK,WACf,KAAK,OAAO,MAAM,aAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,MAAjB,KAAK,SAAA,EAAA;EAAA,CAAA;CAKxD;CAEA,eAAA;EACC,KAAK,UAAU,KAAA,GACf,KAAK,QAAQ,OAAA,GACb,KAAK,SAAA,KAAS,GACV,KAAK,kBAAkB,KAAK,YAC/B,KAAK,QAAQ,MAAM,WAAW,IAC9B,KAAK,iBAAA,CAAiB;CAExB;AAAA,CAAA;AAAA,SAAA,KAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-glow-Bulq-38P.cjs","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(_options?: CursorGlowOptions) {\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(this.element, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":"qMAwBA,IAAM,EAAN,cAAkC,EAAA,cAAA,CAAA,YAAA,GAAA,EAAA,CAAA,MAAA,GAAA,CAAA,EAAA,KAAA,UAGJ,IAAI,EAAA,QAAA,KAAA,OAChB,IAAA,KAAA,MACD,4CAAA,KAAA,UACI,IAAA,KAAA,eAAA,CAEK,CAAA,CAGzB,OAAO,EAAA,CAEP,CAEA,OAAgB,EAAA,CAAoB,GAAA,CACnC,GAAI,EAAK,OAAS,EAAA,SAAS,QAC1B,MAAU,MAAM,iDAAA,EAGjB,IAAM,EAAM,KAAK,UAAU,GAAW,CAAC,CAAA,EACnC,KAAK,SAAW,IAAQ,KAAK,UACjC,KAAK,QAAU,EAEf,KAAK,QAAU,EAAK,QACpB,KAAK,OAAS,GAAS,QAAU,IACjC,KAAK,MAAQ,GAAS,OAAS,4CAC/B,KAAK,UAAY,GAAS,WAAa,IAEnC,EAAA,EAAe,QAEnB,KAAK,UAAU,KAAA,EACf,KAAK,kBAAA,EACL,KAAK,cAAA,GAGN,CAEA,aAAA,CACC,KAAK,kBAAA,EACL,KAAK,UAAU,KAAA,EACf,KAAK,cAAA,CACN,CAEA,mBAAA,CACa,iBAAiB,KAAK,OAAA,EAAS,WAC/B,WACX,KAAK,QAAQ,MAAM,SAAW,WAC9B,KAAK,eAAA,CAAiB,GAGlB,KAAK,SACT,KAAK,OAAS,SAAS,cAAc,KAAA,EACrC,KAAK,OAAO,aAAa,cAAe,MAAA,EACxC,OAAO,OAAO,KAAK,OAAO,MAAO,CAChC,SAAU,WACV,MAAO,IACP,cAAe,OACf,OAAQ,IACR,aAAc,UACd,SAAU,SACV,QAAS,IACT,WAAY,oBAAA,CAAA,EAEb,KAAK,QAAQ,QAAQ,KAAK,MAAA,EAE5B,CAEA,eAAA,EAyBC,EAAA,EAAA,QAAA,EAAA,EAAA,WAxBqC,KAAK,QAAS,YAAA,EAAc,MAAA,EAAA,EAAA,UAE3D,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAa,KAAK,QAAQ,sBAAA,EACxB,KAAA,CAAA,GAoBH,EAAA,EAAA,WAhB8B,KAAK,QAAS,WAAA,EAAa,MAAA,EAAA,EAAA,WACpD,EAAG,EAAA,uBAAA,GAAuB,EAAA,EAAA,KAChC,GAAA,CACH,IAAM,EAAO,KAAK,YAAc,KAAK,QAAQ,sBAAA,EAC7C,MAAO,CAAE,EAAG,EAAE,QAAU,EAAK,KAAM,EAAG,EAAE,QAAU,EAAK,GAAA,CAAA,CAAA,CAAA,GAY3C,EAAA,EAAA,WARW,KAAK,QAAS,YAAA,EAAc,MAAA,EAAA,EAAA,UAE/C,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAA,IAAa,GACX,KAAA,CAAA,CAAA,EAKP,MAAA,EAAA,EAAA,WAAe,KAAK,SAAA,CAAA,EACpB,UAAU,GAAA,CACN,GAAO,KAAK,SACf,KAAK,OAAO,MAAM,WAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,IAAjB,KAAK,SAAA,EAAA,wDAAA,CAAA,CAKxD,CAEA,cAAA,CACC,KAAK,UAAU,KAAA,EACf,KAAK,QAAQ,OAAA,EACb,KAAK,OAAA,IAAS,GACV,KAAK,gBAAkB,KAAK,UAC/B,KAAK,QAAQ,MAAM,SAAW,GAC9B,KAAK,eAAA,CAAiB,EAExB,CAAA,EAGY,GAAA,EAAA,EAAA,WAAuB,CAAA,EAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"cursor-glow-Bulq-38P.cjs","names":[],"sources":["../src/directives/cursor-glow.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(options?: CursorGlowOptions) {\n\t\tvoid options\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(this.element, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":"qMAwBA,IAAM,EAAN,cAAkC,EAAA,cAAA,CAAA,YAAA,GAAA,EAAA,CAAA,MAAA,GAAA,CAAA,EAAA,KAAA,UAGJ,IAAI,EAAA,QAAA,KAAA,OAChB,IAAA,KAAA,MACD,4CAAA,KAAA,UACI,IAAA,KAAA,eAAA,CAEK,CAAA,CAGzB,OAAO,EAAA,CAGP,CAEA,OAAgB,EAAA,CAAoB,GAAA,CACnC,GAAI,EAAK,OAAS,EAAA,SAAS,QAC1B,MAAU,MAAM,iDAAA,EAGjB,IAAM,EAAM,KAAK,UAAU,GAAW,CAAC,CAAA,EACnC,KAAK,SAAW,IAAQ,KAAK,UACjC,KAAK,QAAU,EAEf,KAAK,QAAU,EAAK,QACpB,KAAK,OAAS,GAAS,QAAU,IACjC,KAAK,MAAQ,GAAS,OAAS,4CAC/B,KAAK,UAAY,GAAS,WAAa,IAEnC,EAAA,EAAe,QAEnB,KAAK,UAAU,KAAA,EACf,KAAK,kBAAA,EACL,KAAK,cAAA,GAGN,CAEA,aAAA,CACC,KAAK,kBAAA,EACL,KAAK,UAAU,KAAA,EACf,KAAK,cAAA,CACN,CAEA,mBAAA,CACa,iBAAiB,KAAK,OAAA,EAAS,WAC/B,WACX,KAAK,QAAQ,MAAM,SAAW,WAC9B,KAAK,eAAA,CAAiB,GAGlB,KAAK,SACT,KAAK,OAAS,SAAS,cAAc,KAAA,EACrC,KAAK,OAAO,aAAa,cAAe,MAAA,EACxC,OAAO,OAAO,KAAK,OAAO,MAAO,CAChC,SAAU,WACV,MAAO,IACP,cAAe,OACf,OAAQ,IACR,aAAc,UACd,SAAU,SACV,QAAS,IACT,WAAY,oBAAA,CAAA,EAEb,KAAK,QAAQ,QAAQ,KAAK,MAAA,EAE5B,CAEA,eAAA,EAyBC,EAAA,EAAA,QAAA,EAAA,EAAA,WAxBqC,KAAK,QAAS,YAAA,EAAc,MAAA,EAAA,EAAA,UAE3D,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAa,KAAK,QAAQ,sBAAA,EACxB,KAAA,CAAA,GAoBH,EAAA,EAAA,WAhB8B,KAAK,QAAS,WAAA,EAAa,MAAA,EAAA,EAAA,WACpD,EAAG,EAAA,uBAAA,GAAuB,EAAA,EAAA,KAChC,GAAA,CACH,IAAM,EAAO,KAAK,YAAc,KAAK,QAAQ,sBAAA,EAC7C,MAAO,CAAE,EAAG,EAAE,QAAU,EAAK,KAAM,EAAG,EAAE,QAAU,EAAK,GAAA,CAAA,CAAA,CAAA,GAY3C,EAAA,EAAA,WARW,KAAK,QAAS,YAAA,EAAc,MAAA,EAAA,EAAA,UAE/C,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAA,IAAa,GACX,KAAA,CAAA,CAAA,EAKP,MAAA,EAAA,EAAA,WAAe,KAAK,SAAA,CAAA,EACpB,UAAU,GAAA,CACN,GAAO,KAAK,SACf,KAAK,OAAO,MAAM,WAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,IAAjB,KAAK,SAAA,EAAA,wDAAA,CAAA,CAKxD,CAEA,cAAA,CACC,KAAK,UAAU,KAAA,EACf,KAAK,QAAQ,OAAA,EACb,KAAK,OAAA,IAAS,GACV,KAAK,gBAAkB,KAAK,UAC/B,KAAK,QAAQ,MAAM,SAAW,GAC9B,KAAK,eAAA,CAAiB,EAExB,CAAA,EAGY,GAAA,EAAA,EAAA,WAAuB,CAAA,EAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-BBzRWB1w.cjs`),n=require(`./mixins-DPdzC9ZH.cjs`),r=require(`./overlay.service-DEj3rfRr.cjs`);let i=require(`rxjs`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/if-defined.js`),c=require(`lit/directives/repeat.js`);var l=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=6e4,t=36e5,n=`millisecond`,r=`second`,i=`minute`,a=`hour`,o=`day`,s=`week`,c=`month`,l=`quarter`,u=`year`,d=`date`,f=`Invalid Date`,p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},g=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},_={s:g,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+g(r,2,`0`)+`:`+g(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,c),a=n-i<0,o=t.clone().add(r+(a?-1:1),c);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:c,y:u,w:s,d:o,D:d,h:a,m:i,s:r,ms:n,Q:l}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},v=`en`,y={};y[v]=h;var b=`$isDayjsObject`,x=function(e){return e instanceof T||!(!e||!e[b])},S=function e(t,n,r){var i;if(!t)return v;if(typeof t==`string`){var a=t.toLowerCase();y[a]&&(i=a),n&&(y[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;y[s]=t,i=s}return!r&&i&&(v=i),i||!r&&v},C=function(e,t){if(x(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new T(n)},w=_;w.l=S,w.i=x,w.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var T=function(){function h(e){this.$L=S(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[b]=!0}var g=h.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(w.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(p);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return w},g.isValid=function(){return this.$d.toString()!==f},g.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return C(e)<this.startOf(t)},g.isBefore=function(e,t){return this.endOf(t)<C(e)},g.$g=function(e,t,n){return w.u(e)?this[t]:this.set(n,e)},g.unix=function(){return Math.floor(this.valueOf()/1e3)},g.valueOf=function(){return this.$d.getTime()},g.startOf=function(e,t){var n=this,l=!!w.u(t)||t,f=w.p(e),p=function(e,t){var r=w.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return l?r:r.endOf(o)},m=function(e,t){return w.w(n.toDate()[e].apply(n.toDate(`s`),(l?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(f){case u:return l?p(1,0):p(31,11);case c:return l?p(1,g):p(0,g+1);case s:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(l?_-b:_+(6-b),g);case o:case d:return m(v+`Hours`,0);case a:return m(v+`Minutes`,1);case i:return m(v+`Seconds`,2);case r:return m(v+`Milliseconds`,3);default:return this.clone()}},g.endOf=function(e){return this.startOf(e,!1)},g.$set=function(e,t){var s,l=w.p(e),f=`set`+(this.$u?`UTC`:``),p=(s={},s[o]=f+`Date`,s[d]=f+`Date`,s[c]=f+`Month`,s[u]=f+`FullYear`,s[a]=f+`Hours`,s[i]=f+`Minutes`,s[r]=f+`Seconds`,s[n]=f+`Milliseconds`,s)[l],m=l===o?this.$D+(t-this.$W):t;if(l===c||l===u){var h=this.clone().set(d,1);h.$d[p](m),h.init(),this.$d=h.set(d,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},g.set=function(e,t){return this.clone().$set(e,t)},g.get=function(e){return this[w.p(e)]()},g.add=function(n,l){var d,f=this;n=Number(n);var p=w.p(l),m=function(e){var t=C(f);return w.w(t.date(t.date()+Math.round(e*n)),f)};if(p===c)return this.set(c,this.$M+n);if(p===u)return this.set(u,this.$y+n);if(p===o)return m(1);if(p===s)return m(7);var h=(d={},d[i]=e,d[a]=t,d[r]=1e3,d)[p]||1,g=this.$d.getTime()+n*h;return w.w(g,this)},g.subtract=function(e,t){return this.add(-1*e,t)},g.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=w.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[n]||e(t,r))||i[n].slice(0,a)},p=function(e){return w.s(a%12||12,e,`0`)},h=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(m,function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return w.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return w.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return w.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return w.s(a,2,`0`);case`h`:return p(1);case`hh`:return p(2);case`a`:return h(a,o,!0);case`A`:return h(a,o,!1);case`m`:return String(o);case`mm`:return w.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return w.s(t.$s,2,`0`);case`SSS`:return w.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)})},g.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},g.diff=function(n,d,f){var p,m=this,h=w.p(d),g=C(n),_=(g.utcOffset()-this.utcOffset())*e,v=this-g,y=function(){return w.m(m,g)};switch(h){case u:p=y()/12;break;case c:p=y();break;case l:p=y()/3;break;case s:p=(v-_)/6048e5;break;case o:p=(v-_)/864e5;break;case a:p=v/t;break;case i:p=v/e;break;case r:p=v/1e3;break;default:p=v}return f?p:w.a(p)},g.daysInMonth=function(){return this.endOf(c).$D},g.$locale=function(){return y[this.$L]},g.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=S(e,t,!0);return r&&(n.$L=r),n},g.clone=function(){return w.w(this.$d,this)},g.toDate=function(){return new Date(this.valueOf())},g.toJSON=function(){return this.isValid()?this.toISOString():null},g.toISOString=function(){return this.$d.toISOString()},g.toString=function(){return this.$d.toUTCString()},h}(),E=T.prototype;return C.prototype=E,[[`$ms`,n],[`$s`,r],[`$m`,i],[`$H`,a],[`$W`,o],[`$M`,c],[`$y`,u],[`$D`,d]].forEach(function(e){E[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),C.extend=function(e,t){return e.$i||=(e(t,T,C),!0),C},C.locale=S,C.isDayjs=x,C.unix=function(e){return C(1e3*e)},C.en=y[v],C.Ls=y,C.p={},C};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()}),u=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=`month`,t=`quarter`;return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var o=i.startOf;i.startOf=function(n,r){var i=this.$utils(),a=!!i.u(r)||r;if(i.p(n)===t){var s=this.quarter()-1;return a?this.month(3*s).startOf(e).startOf(`day`):this.month(3*s+2).endOf(e).endOf(`day`)}return o.bind(this)(n,r)}}};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_quarterOfYear=r()}),d=e.r(u(),1),f=e.r(l(),1);function p(e,t){return e.map(e=>({label:`Last ${e} Days`,range:{dateFrom:(0,f.default)().subtract(e-1,`days`).startOf(`day`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`day`}))}function m(e,t){return e.map(e=>({label:`Last ${e} Weeks`,range:{dateFrom:(0,f.default)().subtract(e,`weeks`).startOf(`week`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`week`}))}function h(e,t){return e.map(e=>({label:`Last ${e} Months`,range:{dateFrom:(0,f.default)().subtract(e,`months`).startOf(`month`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`month`}))}function g(e,t){return e.map(e=>({label:`Last ${e} Quarters`,range:{dateFrom:(0,f.default)().subtract(e,`quarters`).startOf(`quarter`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`quarter`}))}function _(e,t){if(!e)return null;let n=(0,f.default)(e);return n.isValid()?n.format(t):null}function v(e,t,n){let r=_(e,n),i=_(t,n);return{dateFrom:r,dateTo:i,isValid:r!==null&&i!==null}}var y=class extends t.t{constructor(...e){super(...e),this.type=`date`,this.dateFrom={label:`From`,value:``},this.dateTo={label:`To`,value:``},this.activePreset=null,this.presetCategories=[]}static{this.styles=[o.css`
1
+ const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-C41uPa6l.cjs`),n=require(`./mixins-fIpzhVMd.cjs`),r=require(`./overlay.service-DU1nqh6A.cjs`);let i=require(`rxjs`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/if-defined.js`),c=require(`lit/directives/repeat.js`);var l=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=6e4,t=36e5,n=`millisecond`,r=`second`,i=`minute`,a=`hour`,o=`day`,s=`week`,c=`month`,l=`quarter`,u=`year`,d=`date`,f=`Invalid Date`,p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},g=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},_={s:g,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+g(r,2,`0`)+`:`+g(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,c),a=n-i<0,o=t.clone().add(r+(a?-1:1),c);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:c,y:u,w:s,d:o,D:d,h:a,m:i,s:r,ms:n,Q:l}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},v=`en`,y={};y[v]=h;var b=`$isDayjsObject`,x=function(e){return e instanceof T||!(!e||!e[b])},S=function e(t,n,r){var i;if(!t)return v;if(typeof t==`string`){var a=t.toLowerCase();y[a]&&(i=a),n&&(y[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;y[s]=t,i=s}return!r&&i&&(v=i),i||!r&&v},C=function(e,t){if(x(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new T(n)},w=_;w.l=S,w.i=x,w.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var T=function(){function h(e){this.$L=S(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[b]=!0}var g=h.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(w.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(p);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return w},g.isValid=function(){return this.$d.toString()!==f},g.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return C(e)<this.startOf(t)},g.isBefore=function(e,t){return this.endOf(t)<C(e)},g.$g=function(e,t,n){return w.u(e)?this[t]:this.set(n,e)},g.unix=function(){return Math.floor(this.valueOf()/1e3)},g.valueOf=function(){return this.$d.getTime()},g.startOf=function(e,t){var n=this,l=!!w.u(t)||t,f=w.p(e),p=function(e,t){var r=w.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return l?r:r.endOf(o)},m=function(e,t){return w.w(n.toDate()[e].apply(n.toDate(`s`),(l?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(f){case u:return l?p(1,0):p(31,11);case c:return l?p(1,g):p(0,g+1);case s:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(l?_-b:_+(6-b),g);case o:case d:return m(v+`Hours`,0);case a:return m(v+`Minutes`,1);case i:return m(v+`Seconds`,2);case r:return m(v+`Milliseconds`,3);default:return this.clone()}},g.endOf=function(e){return this.startOf(e,!1)},g.$set=function(e,t){var s,l=w.p(e),f=`set`+(this.$u?`UTC`:``),p=(s={},s[o]=f+`Date`,s[d]=f+`Date`,s[c]=f+`Month`,s[u]=f+`FullYear`,s[a]=f+`Hours`,s[i]=f+`Minutes`,s[r]=f+`Seconds`,s[n]=f+`Milliseconds`,s)[l],m=l===o?this.$D+(t-this.$W):t;if(l===c||l===u){var h=this.clone().set(d,1);h.$d[p](m),h.init(),this.$d=h.set(d,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},g.set=function(e,t){return this.clone().$set(e,t)},g.get=function(e){return this[w.p(e)]()},g.add=function(n,l){var d,f=this;n=Number(n);var p=w.p(l),m=function(e){var t=C(f);return w.w(t.date(t.date()+Math.round(e*n)),f)};if(p===c)return this.set(c,this.$M+n);if(p===u)return this.set(u,this.$y+n);if(p===o)return m(1);if(p===s)return m(7);var h=(d={},d[i]=e,d[a]=t,d[r]=1e3,d)[p]||1,g=this.$d.getTime()+n*h;return w.w(g,this)},g.subtract=function(e,t){return this.add(-1*e,t)},g.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=w.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[n]||e(t,r))||i[n].slice(0,a)},p=function(e){return w.s(a%12||12,e,`0`)},h=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(m,function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return w.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return w.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return w.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return w.s(a,2,`0`);case`h`:return p(1);case`hh`:return p(2);case`a`:return h(a,o,!0);case`A`:return h(a,o,!1);case`m`:return String(o);case`mm`:return w.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return w.s(t.$s,2,`0`);case`SSS`:return w.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)})},g.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},g.diff=function(n,d,f){var p,m=this,h=w.p(d),g=C(n),_=(g.utcOffset()-this.utcOffset())*e,v=this-g,y=function(){return w.m(m,g)};switch(h){case u:p=y()/12;break;case c:p=y();break;case l:p=y()/3;break;case s:p=(v-_)/6048e5;break;case o:p=(v-_)/864e5;break;case a:p=v/t;break;case i:p=v/e;break;case r:p=v/1e3;break;default:p=v}return f?p:w.a(p)},g.daysInMonth=function(){return this.endOf(c).$D},g.$locale=function(){return y[this.$L]},g.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=S(e,t,!0);return r&&(n.$L=r),n},g.clone=function(){return w.w(this.$d,this)},g.toDate=function(){return new Date(this.valueOf())},g.toJSON=function(){return this.isValid()?this.toISOString():null},g.toISOString=function(){return this.$d.toISOString()},g.toString=function(){return this.$d.toUTCString()},h}(),E=T.prototype;return C.prototype=E,[[`$ms`,n],[`$s`,r],[`$m`,i],[`$H`,a],[`$W`,o],[`$M`,c],[`$y`,u],[`$D`,d]].forEach(function(e){E[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),C.extend=function(e,t){return e.$i||=(e(t,T,C),!0),C},C.locale=S,C.isDayjs=x,C.unix=function(e){return C(1e3*e)},C.en=y[v],C.Ls=y,C.p={},C};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()}),u=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=`month`,t=`quarter`;return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var o=i.startOf;i.startOf=function(n,r){var i=this.$utils(),a=!!i.u(r)||r;if(i.p(n)===t){var s=this.quarter()-1;return a?this.month(3*s).startOf(e).startOf(`day`):this.month(3*s+2).endOf(e).endOf(`day`)}return o.bind(this)(n,r)}}};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_quarterOfYear=r()}),d=e.r(u(),1),f=e.r(l(),1);function p(e,t){return e.map(e=>({label:`Last ${e} Days`,range:{dateFrom:(0,f.default)().subtract(e-1,`days`).startOf(`day`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`day`}))}function m(e,t){return e.map(e=>({label:`Last ${e} Weeks`,range:{dateFrom:(0,f.default)().subtract(e,`weeks`).startOf(`week`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`week`}))}function h(e,t){return e.map(e=>({label:`Last ${e} Months`,range:{dateFrom:(0,f.default)().subtract(e,`months`).startOf(`month`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`month`}))}function g(e,t){return e.map(e=>({label:`Last ${e} Quarters`,range:{dateFrom:(0,f.default)().subtract(e,`quarters`).startOf(`quarter`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`quarter`}))}function _(e,t){if(!e)return null;let n=(0,f.default)(e);return n.isValid()?n.format(t):null}function v(e,t,n){let r=_(e,n),i=_(t,n);return{dateFrom:r,dateTo:i,isValid:r!==null&&i!==null}}var y=class extends t.t{constructor(...e){super(...e),this.type=`date`,this.dateFrom={label:`From`,value:``},this.dateTo={label:`To`,value:``},this.activePreset=null,this.presetCategories=[]}static{this.styles=[o.css`
2
2
  :host {
3
3
  display: block;
4
4
  padding: 1.5rem;
@@ -78,7 +78,7 @@ const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-BBzRWB1w.cj
78
78
  @apply-dates="${e=>{let{dateFrom:t,dateTo:n,swapIfNeeded:r}=e.detail;r?this.setDateRange(n,t):this.setDateRange(t,n),b(e.currentTarget)}}"
79
79
  @announce="${e=>this.announce$.next(e.detail.message)}"
80
80
  ></schmancy-date-range-dialog>
81
- `,{anchor:e}).pipe((0,i.takeUntil)(this.close$),(0,i.finalize)(()=>{this.isOpen=!1})))),this.announce$.pipe((0,i.switchMap)(e=>(0,i.concat)((0,i.of)(e),(0,i.timer)(100).pipe((0,i.map)(()=>``)))),(0,i.tap)(e=>{this.announceMessage=e})),(0,i.fromEvent)(document,`keydown`).pipe((0,i.tap)(e=>this.handleKeyboardNavigation(e)))).pipe((0,i.takeUntil)(this.disconnecting)).subscribe()}updated(e){super.updated(e),!e.has(`dateFrom`)&&!e.has(`dateTo`)||this.dateFrom?.value===void 0&&this.dateTo?.value===void 0||this.updateSelectedDateRange()}willUpdate(e){if(super.willUpdate(e),e.has(`dateFrom`)||e.has(`dateTo`)||e.has(`name`)){if(this.name&&!this.disabled){let e=new FormData;this.dateFrom?.value&&e.append(`${this.name}From`,this.dateFrom.value),this.dateTo?.value&&e.append(`${this.name}To`,this.dateTo.value),this.internals?.setFormValue(e)}else this.internals?.setFormValue(null);this.checkValidity()}(e.has(`required`)||e.has(`disabled`))&&this.checkValidity()}checkValidity(){if(this.disabled)return this.internals?.setValidity({}),!0;let e=!this.dateFrom?.value,t=!this.dateTo?.value,n=!this.required||!e&&!t,r=n?``:`Please select a date range.`;return this.internals?.setValidity(n?{}:{valueMissing:!0},n?void 0:r),this._shouldShowError()&&(this.error=!n,this.validationMessage=r),n}toFormEntries(){if(!this.name||this.disabled)return[];let e=[];return this.dateFrom?.value&&e.push([`${this.name}From`,this.dateFrom.value]),this.dateTo?.value&&e.push([`${this.name}To`,this.dateTo.value]),e}firstUpdated(e){super.firstUpdated(e),this.dateFromDefault=this.dateFrom?.value??``,this.dateToDefault=this.dateTo?.value??``}get dirty(){return(this.dateFrom?.value??``)!==this.dateFromDefault||(this.dateTo?.value??``)!==this.dateToDefault}resetForm(){this.dateFrom={...this.dateFrom,value:this.dateFromDefault},this.dateTo={...this.dateTo,value:this.dateToDefault},super.resetForm()}initPresetRanges(){let e=this.getDateFormat(),t=`${this.type}-${e}-${JSON.stringify(this.customPresets)}`;if(this.memoizedPresets.has(t)){let e=this.memoizedPresets.get(t);this.presetCategories=e,this.presetRanges=[],e.forEach(e=>{this.presetRanges.push(...e.presets)});return}if(this.presetCategories=function(e,t=!1){let n=[];return t&&n.push({name:`Hours`,presets:[{label:`Last 24 Hours`,range:{dateFrom:(0,f.default)().subtract(24,`hours`).format(e),dateTo:(0,f.default)().format(e)},step:`hour`},{label:`Last 12 Hours`,range:{dateFrom:(0,f.default)().subtract(12,`hours`).format(e),dateTo:(0,f.default)().format(e)},step:`hour`}]}),n.push({name:`Days`,presets:[{label:`Today`,range:{dateFrom:(0,f.default)().startOf(`day`).format(e),dateTo:(0,f.default)().endOf(`day`).format(e)},step:`day`},{label:`Yesterday`,range:{dateFrom:(0,f.default)().subtract(1,`days`).startOf(`day`).format(e),dateTo:(0,f.default)().subtract(1,`days`).endOf(`day`).format(e)},step:`day`},...p([7,14,30,60,90],e)]}),n.push({name:`Weeks`,presets:[{label:`This Week`,range:{dateFrom:(0,f.default)().startOf(`week`).format(e),dateTo:(0,f.default)().endOf(`week`).format(e)},step:`week`},{label:`Last Week`,range:{dateFrom:(0,f.default)().subtract(1,`weeks`).startOf(`week`).format(e),dateTo:(0,f.default)().subtract(1,`weeks`).endOf(`week`).format(e)},step:`week`},...m([2,4],e)]}),n.push({name:`Months`,presets:[{label:`This Month`,range:{dateFrom:(0,f.default)().startOf(`month`).format(e),dateTo:(0,f.default)().endOf(`month`).format(e)},step:`month`},{label:`Last Month`,range:{dateFrom:(0,f.default)().subtract(1,`month`).startOf(`month`).format(e),dateTo:(0,f.default)().subtract(1,`month`).endOf(`month`).format(e)},step:`month`},...h([3,6],e)]}),n.push({name:`Quarters`,presets:[{label:`This Quarter`,range:{dateFrom:(0,f.default)().startOf(`quarter`).format(e),dateTo:(0,f.default)().endOf(`quarter`).format(e)},step:`quarter`},{label:`Last Quarter`,range:{dateFrom:(0,f.default)().subtract(1,`quarter`).startOf(`quarter`).format(e),dateTo:(0,f.default)().subtract(1,`quarter`).endOf(`quarter`).format(e)},step:`quarter`},...g([2,4],e)]}),n.push({name:`Years`,presets:[{label:`This Year`,range:{dateFrom:(0,f.default)().startOf(`year`).format(e),dateTo:(0,f.default)().endOf(`year`).format(e)},step:`year`},{label:`Last Year`,range:{dateFrom:(0,f.default)().subtract(1,`year`).startOf(`year`).format(e),dateTo:(0,f.default)().subtract(1,`year`).endOf(`year`).format(e)},step:`year`},{label:`Year to Date`,range:{dateFrom:(0,f.default)().startOf(`year`).format(e),dateTo:(0,f.default)().endOf(`day`).format(e)},step:`day`}]}),n}(e,this.type===`datetime-local`),this.presetRanges=[],this.presetCategories.forEach(e=>{this.presetRanges.push(...e.presets)}),this.customPresets&&this.customPresets.length>0){let e={name:`Custom`,presets:this.customPresets.map(e=>({label:e.label,range:{dateFrom:e.dateFrom,dateTo:e.dateTo},step:`day`}))};this.presetCategories.push(e),this.presetRanges.push(...e.presets)}this.memoizedPresets.set(t,[...this.presetCategories])}getDateFormat(){return this.format||(this.type===`date`?`YYYY-MM-DD`:`YYYY-MM-DDTHH:mm`)}updateSelectedDateRange(){let e=this.presetRanges.find(e=>e.range.dateFrom===this.dateFrom.value&&e.range.dateTo===this.dateTo.value);if(e)return this.selectedDateRange=e.label,void(this.activePreset=e.label);this.checkAndUpdateActivePreset(this.dateFrom.value,this.dateTo.value),this.activePreset=null,this.selectedDateRange=function(e,t,n,r){if(!e||!t)return r;let i=(0,f.default)(e),a=(0,f.default)(t);if(!i.isValid()||!a.isValid())return r;let o=n===`datetime-local`?i.format(` h:mm A`):``,s=n===`datetime-local`?a.format(` h:mm A`):``;return i.isSame(a,`day`)?`${i.format(`ddd, MMM D, YYYY`)}${o}`:i.isSame(a,`month`)&&i.isSame(a,`year`)?`${i.format(`ddd MMM D`)} - ${a.format(`ddd D, YYYY`)}${s}`:i.isSame(a,`year`)?`${i.format(`ddd MMM D`)} - ${a.format(`ddd MMM D, YYYY`)}${s}`:`${i.format(`ddd MMM D, YYYY`)}${o} - ${a.format(`ddd MMM D, YYYY`)}${s}`}(this.dateFrom.value,this.dateTo.value,this.type,this.placeholder)}setDateRange(e,t){this.dateFrom.value=e,this.dateTo.value=t,this.updateSelectedDateRange(),this.announce$.next(`Date range updated: ${this.selectedDateRange}`),this.dispatchEvent(new CustomEvent(`change`,{detail:{dateFrom:e,dateTo:t},bubbles:!0,composed:!0}))}toggleDropdown(e){e.stopPropagation(),this.disabled||this.step!==void 0||(this.isOpen?this.close$.next():this.open$.next(e))}shiftDateRange(e,t){if(t.stopPropagation(),!this.dateFrom.value||!this.dateTo.value)return;let n=(0,f.default)(this.dateFrom.value),r=(0,f.default)(this.dateTo.value);if(!n.isValid()||!r.isValid())return;let i=this.getDateFormat(),a=e>0?1:-1,o=r.diff(n,`day`)+1,s,c;if(this.step!==void 0)typeof this.step==`number`?(s=a*this.step,c=`day`):this.step===`day`?(s=a*o,c=`day`):(s=a,c=this.step);else{let e=function(e,t){return{isFullMonth:e.date()===1&&t.isSame(e.endOf(`month`),`day`),isFullQuarter:e.isSame(e.startOf(`quarter`),`day`)&&t.isSame(t.endOf(`quarter`),`day`),isFullYear:e.isSame(e.startOf(`year`),`day`)&&t.isSame(t.endOf(`year`),`day`),isFullWeek:e.day()===0&&t.day()===6&&t.diff(e,`days`)===6}}(n,r);e.isFullYear?(s=a,c=`year`):e.isFullMonth?(s=a,c=`month`):e.isFullWeek?(s=a,c=`week`):(s=a*o,c=`day`)}let l=n.add(s,c),u=r.add(s,c);this.minDate&&l.isBefore((0,f.default)(this.minDate))||this.maxDate&&u.isAfter((0,f.default)(this.maxDate))||(this.setDateRange(l.format(i),u.format(i)),this.checkAndUpdateActivePreset(l.format(i),u.format(i)))}handleKeyboardNavigation(e){let t=e.key;if(this.dateFrom.value&&this.dateTo.value&&!this.disabled)switch(t){case`PageUp`:(e.target===this||this.contains(e.target))&&(this.shiftDateRange(-1,e),e.preventDefault());break;case`PageDown`:(e.target===this||this.contains(e.target))&&(this.shiftDateRange(1,e),e.preventDefault());break;case`Home`:if(e.ctrlKey&&(e.target===this||this.contains(e.target))){let t=(0,f.default)(this.dateFrom.value),n=(0,f.default)(this.dateTo.value),r=t.startOf(`month`),i=n.diff(t,`day`);this.setDateRange(r.format(this.getDateFormat()),r.add(i,`day`).format(this.getDateFormat())),e.preventDefault()}break;case`End`:if(e.ctrlKey&&(e.target===this||this.contains(e.target))){let t=(0,f.default)(this.dateFrom.value),n=(0,f.default)(this.dateTo.value),r=n.diff(t,`day`),i=n.endOf(`month`);this.setDateRange(i.subtract(r,`day`).format(this.getDateFormat()),i.format(this.getDateFormat())),e.preventDefault()}}}checkAndUpdateActivePreset(e,t){let n=this.presetRanges.find(n=>n.range.dateFrom===e&&n.range.dateTo===t);this.activePreset=n?n.label:null}canNavigateBackward(){if(!this.dateFrom.value||!this.minDate)return!0;let e=(0,f.default)(this.dateFrom.value),t=(0,f.default)(this.minDate);return e.isAfter(t)}canNavigateForward(){if(!this.dateTo.value||!this.maxDate)return!0;let e=(0,f.default)(this.dateTo.value),t=(0,f.default)(this.maxDate);return e.isBefore(t)}render(){let e=this.error&&!!this.validationMessage,t=e?` rounded outline outline-2 outline-error-default`:``;return o.html`
81
+ `,{anchor:e}).pipe((0,i.takeUntil)(this.close$),(0,i.finalize)(()=>{this.isOpen=!1})))),this.announce$.pipe((0,i.switchMap)(e=>(0,i.concat)((0,i.of)(e),(0,i.timer)(100).pipe((0,i.map)(()=>``)))),(0,i.tap)(e=>{this.announceMessage=e})),(0,i.fromEvent)(document,`keydown`).pipe((0,i.tap)(e=>this.handleKeyboardNavigation(e)))).pipe((0,i.takeUntil)(this.disconnecting)).subscribe()}updated(e){super.updated(e),!e.has(`dateFrom`)&&!e.has(`dateTo`)||this.dateFrom?.value===void 0&&this.dateTo?.value===void 0||this.updateSelectedDateRange()}willUpdate(e){if(super.willUpdate(e),e.has(`dateFrom`)||e.has(`dateTo`)||e.has(`name`)){if(this.name&&!this.disabled){let e=new FormData;this.dateFrom?.value&&e.append(`${this.name}From`,this.dateFrom.value),this.dateTo?.value&&e.append(`${this.name}To`,this.dateTo.value),this.internals?.setFormValue(e)}else this.internals?.setFormValue(null);this.checkValidity()}(e.has(`required`)||e.has(`disabled`))&&this.checkValidity()}checkValidity(){if(this.disabled)return this.internals?.setValidity({}),!0;let e=!this.dateFrom?.value,t=!this.dateTo?.value,n=!this.required||!e&&!t,r=n?``:`Please select a date range.`;return this.internals?.setValidity(n?{}:{valueMissing:!0},n?void 0:r),this.shouldShowError()&&(this.error=!n,this.validationMessage=r),n}toFormEntries(){if(!this.name||this.disabled)return[];let e=[];return this.dateFrom?.value&&e.push([`${this.name}From`,this.dateFrom.value]),this.dateTo?.value&&e.push([`${this.name}To`,this.dateTo.value]),e}firstUpdated(e){super.firstUpdated(e),this.dateFromDefault=this.dateFrom?.value??``,this.dateToDefault=this.dateTo?.value??``}get dirty(){return(this.dateFrom?.value??``)!==this.dateFromDefault||(this.dateTo?.value??``)!==this.dateToDefault}resetForm(){this.dateFrom={...this.dateFrom,value:this.dateFromDefault},this.dateTo={...this.dateTo,value:this.dateToDefault},super.resetForm()}initPresetRanges(){let e=this.getDateFormat(),t=`${this.type}-${e}-${JSON.stringify(this.customPresets)}`;if(this.memoizedPresets.has(t)){let e=this.memoizedPresets.get(t);this.presetCategories=e,this.presetRanges=[],e.forEach(e=>{this.presetRanges.push(...e.presets)});return}if(this.presetCategories=function(e,t=!1){let n=[];return t&&n.push({name:`Hours`,presets:[{label:`Last 24 Hours`,range:{dateFrom:(0,f.default)().subtract(24,`hours`).format(e),dateTo:(0,f.default)().format(e)},step:`hour`},{label:`Last 12 Hours`,range:{dateFrom:(0,f.default)().subtract(12,`hours`).format(e),dateTo:(0,f.default)().format(e)},step:`hour`}]}),n.push({name:`Days`,presets:[{label:`Today`,range:{dateFrom:(0,f.default)().startOf(`day`).format(e),dateTo:(0,f.default)().endOf(`day`).format(e)},step:`day`},{label:`Yesterday`,range:{dateFrom:(0,f.default)().subtract(1,`days`).startOf(`day`).format(e),dateTo:(0,f.default)().subtract(1,`days`).endOf(`day`).format(e)},step:`day`},...p([7,14,30,60,90],e)]}),n.push({name:`Weeks`,presets:[{label:`This Week`,range:{dateFrom:(0,f.default)().startOf(`week`).format(e),dateTo:(0,f.default)().endOf(`week`).format(e)},step:`week`},{label:`Last Week`,range:{dateFrom:(0,f.default)().subtract(1,`weeks`).startOf(`week`).format(e),dateTo:(0,f.default)().subtract(1,`weeks`).endOf(`week`).format(e)},step:`week`},...m([2,4],e)]}),n.push({name:`Months`,presets:[{label:`This Month`,range:{dateFrom:(0,f.default)().startOf(`month`).format(e),dateTo:(0,f.default)().endOf(`month`).format(e)},step:`month`},{label:`Last Month`,range:{dateFrom:(0,f.default)().subtract(1,`month`).startOf(`month`).format(e),dateTo:(0,f.default)().subtract(1,`month`).endOf(`month`).format(e)},step:`month`},...h([3,6],e)]}),n.push({name:`Quarters`,presets:[{label:`This Quarter`,range:{dateFrom:(0,f.default)().startOf(`quarter`).format(e),dateTo:(0,f.default)().endOf(`quarter`).format(e)},step:`quarter`},{label:`Last Quarter`,range:{dateFrom:(0,f.default)().subtract(1,`quarter`).startOf(`quarter`).format(e),dateTo:(0,f.default)().subtract(1,`quarter`).endOf(`quarter`).format(e)},step:`quarter`},...g([2,4],e)]}),n.push({name:`Years`,presets:[{label:`This Year`,range:{dateFrom:(0,f.default)().startOf(`year`).format(e),dateTo:(0,f.default)().endOf(`year`).format(e)},step:`year`},{label:`Last Year`,range:{dateFrom:(0,f.default)().subtract(1,`year`).startOf(`year`).format(e),dateTo:(0,f.default)().subtract(1,`year`).endOf(`year`).format(e)},step:`year`},{label:`Year to Date`,range:{dateFrom:(0,f.default)().startOf(`year`).format(e),dateTo:(0,f.default)().endOf(`day`).format(e)},step:`day`}]}),n}(e,this.type===`datetime-local`),this.presetRanges=[],this.presetCategories.forEach(e=>{this.presetRanges.push(...e.presets)}),this.customPresets&&this.customPresets.length>0){let e={name:`Custom`,presets:this.customPresets.map(e=>({label:e.label,range:{dateFrom:e.dateFrom,dateTo:e.dateTo},step:`day`}))};this.presetCategories.push(e),this.presetRanges.push(...e.presets)}this.memoizedPresets.set(t,[...this.presetCategories])}getDateFormat(){return this.format||(this.type===`date`?`YYYY-MM-DD`:`YYYY-MM-DDTHH:mm`)}updateSelectedDateRange(){let e=this.presetRanges.find(e=>e.range.dateFrom===this.dateFrom.value&&e.range.dateTo===this.dateTo.value);if(e)return this.selectedDateRange=e.label,void(this.activePreset=e.label);this.checkAndUpdateActivePreset(this.dateFrom.value,this.dateTo.value),this.activePreset=null,this.selectedDateRange=function(e,t,n,r){if(!e||!t)return r;let i=(0,f.default)(e),a=(0,f.default)(t);if(!i.isValid()||!a.isValid())return r;let o=n===`datetime-local`?i.format(` h:mm A`):``,s=n===`datetime-local`?a.format(` h:mm A`):``;return i.isSame(a,`day`)?`${i.format(`ddd, MMM D, YYYY`)}${o}`:i.isSame(a,`month`)&&i.isSame(a,`year`)?`${i.format(`ddd MMM D`)} - ${a.format(`ddd D, YYYY`)}${s}`:i.isSame(a,`year`)?`${i.format(`ddd MMM D`)} - ${a.format(`ddd MMM D, YYYY`)}${s}`:`${i.format(`ddd MMM D, YYYY`)}${o} - ${a.format(`ddd MMM D, YYYY`)}${s}`}(this.dateFrom.value,this.dateTo.value,this.type,this.placeholder)}setDateRange(e,t){this.dateFrom.value=e,this.dateTo.value=t,this.updateSelectedDateRange(),this.announce$.next(`Date range updated: ${this.selectedDateRange}`),this.dispatchEvent(new CustomEvent(`change`,{detail:{dateFrom:e,dateTo:t},bubbles:!0,composed:!0}))}toggleDropdown(e){e.stopPropagation(),this.disabled||this.step!==void 0||(this.isOpen?this.close$.next():this.open$.next(e))}shiftDateRange(e,t){if(t.stopPropagation(),!this.dateFrom.value||!this.dateTo.value)return;let n=(0,f.default)(this.dateFrom.value),r=(0,f.default)(this.dateTo.value);if(!n.isValid()||!r.isValid())return;let i=this.getDateFormat(),a=e>0?1:-1,o=r.diff(n,`day`)+1,s,c;if(this.step!==void 0)typeof this.step==`number`?(s=a*this.step,c=`day`):this.step===`day`?(s=a*o,c=`day`):(s=a,c=this.step);else{let e=function(e,t){return{isFullMonth:e.date()===1&&t.isSame(e.endOf(`month`),`day`),isFullQuarter:e.isSame(e.startOf(`quarter`),`day`)&&t.isSame(t.endOf(`quarter`),`day`),isFullYear:e.isSame(e.startOf(`year`),`day`)&&t.isSame(t.endOf(`year`),`day`),isFullWeek:e.day()===0&&t.day()===6&&t.diff(e,`days`)===6}}(n,r);e.isFullYear?(s=a,c=`year`):e.isFullMonth?(s=a,c=`month`):e.isFullWeek?(s=a,c=`week`):(s=a*o,c=`day`)}let l=n.add(s,c),u=r.add(s,c);this.minDate&&l.isBefore((0,f.default)(this.minDate))||this.maxDate&&u.isAfter((0,f.default)(this.maxDate))||(this.setDateRange(l.format(i),u.format(i)),this.checkAndUpdateActivePreset(l.format(i),u.format(i)))}handleKeyboardNavigation(e){let t=e.key;if(this.dateFrom.value&&this.dateTo.value&&!this.disabled)switch(t){case`PageUp`:(e.target===this||this.contains(e.target))&&(this.shiftDateRange(-1,e),e.preventDefault());break;case`PageDown`:(e.target===this||this.contains(e.target))&&(this.shiftDateRange(1,e),e.preventDefault());break;case`Home`:if(e.ctrlKey&&(e.target===this||this.contains(e.target))){let t=(0,f.default)(this.dateFrom.value),n=(0,f.default)(this.dateTo.value),r=t.startOf(`month`),i=n.diff(t,`day`);this.setDateRange(r.format(this.getDateFormat()),r.add(i,`day`).format(this.getDateFormat())),e.preventDefault()}break;case`End`:if(e.ctrlKey&&(e.target===this||this.contains(e.target))){let t=(0,f.default)(this.dateFrom.value),n=(0,f.default)(this.dateTo.value),r=n.diff(t,`day`),i=n.endOf(`month`);this.setDateRange(i.subtract(r,`day`).format(this.getDateFormat()),i.format(this.getDateFormat())),e.preventDefault()}}}checkAndUpdateActivePreset(e,t){let n=this.presetRanges.find(n=>n.range.dateFrom===e&&n.range.dateTo===t);this.activePreset=n?n.label:null}canNavigateBackward(){if(!this.dateFrom.value||!this.minDate)return!0;let e=(0,f.default)(this.dateFrom.value),t=(0,f.default)(this.minDate);return e.isAfter(t)}canNavigateForward(){if(!this.dateTo.value||!this.maxDate)return!0;let e=(0,f.default)(this.dateTo.value),t=(0,f.default)(this.maxDate);return e.isBefore(t)}render(){let e=this.error&&!!this.validationMessage,t=e?` rounded outline outline-2 outline-error-default`:``;return o.html`
82
82
  <div class="relative ${this.disabled?`opacity-60 pointer-events-none`:``}">
83
83
  <!-- Screen reader announcements -->
84
84
  <div class="sr-only" role="status" aria-live="polite" aria-atomic="true">