@mhmo91/schmancy 0.10.37 → 0.10.39

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 (558) hide show
  1. package/custom-elements.json +39 -0
  2. package/dist/{SchmancyElement-CDT2q1lA.js → SchmancyElement-BNnyBOwk.js} +9 -7
  3. package/dist/{SchmancyElement-CDT2q1lA.js.map → SchmancyElement-BNnyBOwk.js.map} +1 -1
  4. package/dist/{SchmancyElement-BHfQg3Tj.cjs → SchmancyElement-C41uPa6l.cjs} +2 -2
  5. package/dist/{SchmancyElement-BHfQg3Tj.cjs.map → SchmancyElement-C41uPa6l.cjs.map} +1 -1
  6. package/dist/agent/schmancy.agent.js +2334 -2297
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/area-2FrTZI_T.cjs +21 -0
  9. package/dist/area-2FrTZI_T.cjs.map +1 -0
  10. package/dist/{area-KtULlxuA.js → area-KVDzhT4s.js} +4 -4
  11. package/dist/area-KVDzhT4s.js.map +1 -0
  12. package/dist/area.cjs +1 -1
  13. package/dist/area.js +2 -2
  14. package/dist/{audio-zIJVTo_V.js → audio-D3gnp15Y.js} +1 -1
  15. package/dist/{audio-zIJVTo_V.js.map → audio-D3gnp15Y.js.map} +1 -1
  16. package/dist/{audio-CUMAv9D_.cjs → audio-EaD0Ggfh.cjs} +1 -1
  17. package/dist/{audio-CUMAv9D_.cjs.map → audio-EaD0Ggfh.cjs.map} +1 -1
  18. package/dist/audio.cjs +1 -1
  19. package/dist/audio.js +2 -2
  20. package/dist/autocomplete-DMmxsvUe.cjs +115 -0
  21. package/dist/autocomplete-DMmxsvUe.cjs.map +1 -0
  22. package/dist/{autocomplete-DIScyo8Q.js → autocomplete-DWiEqlQf.js} +96 -96
  23. package/dist/autocomplete-DWiEqlQf.js.map +1 -0
  24. package/dist/autocomplete.cjs +1 -1
  25. package/dist/autocomplete.js +1 -1
  26. package/dist/avatar.cjs +1 -1
  27. package/dist/avatar.js +3 -3
  28. package/dist/badge.cjs +1 -1
  29. package/dist/badge.js +1 -1
  30. package/dist/{boat-OBZ77exO.cjs → boat-DsFJNfPH.cjs} +1 -1
  31. package/dist/{boat-OBZ77exO.cjs.map → boat-DsFJNfPH.cjs.map} +1 -1
  32. package/dist/{boat-BHPqSqJd.js → boat-fqodYt2n.js} +4 -4
  33. package/dist/{boat-BHPqSqJd.js.map → boat-fqodYt2n.js.map} +1 -1
  34. package/dist/boat.cjs +1 -1
  35. package/dist/boat.js +1 -1
  36. package/dist/breadcrumb.cjs +3 -3
  37. package/dist/breadcrumb.cjs.map +1 -1
  38. package/dist/breadcrumb.js +4 -4
  39. package/dist/breadcrumb.js.map +1 -1
  40. package/dist/{busy-BJNsKSCM.cjs → busy-Cj_PV7oC.cjs} +1 -1
  41. package/dist/{busy-BJNsKSCM.cjs.map → busy-Cj_PV7oC.cjs.map} +1 -1
  42. package/dist/{busy-Dut78y4L.js → busy-enYCTssB.js} +2 -2
  43. package/dist/{busy-Dut78y4L.js.map → busy-enYCTssB.js.map} +1 -1
  44. package/dist/busy.cjs +1 -1
  45. package/dist/busy.js +1 -1
  46. package/dist/button-B9RfBt-n.cjs +63 -0
  47. package/dist/button-B9RfBt-n.cjs.map +1 -0
  48. package/dist/{button-kcpPQavY.js → button-D6LJC-HC.js} +11 -9
  49. package/dist/button-D6LJC-HC.js.map +1 -0
  50. package/dist/button.cjs +7 -6
  51. package/dist/button.cjs.map +1 -1
  52. package/dist/button.js +18 -16
  53. package/dist/button.js.map +1 -1
  54. package/dist/{card-DxSKxCid.js → card-BHTz1GwB.js} +16 -16
  55. package/dist/card-BHTz1GwB.js.map +1 -0
  56. package/dist/{card-BLxPLqdQ.cjs → card-ThG_ZaQE.cjs} +3 -3
  57. package/dist/card-ThG_ZaQE.cjs.map +1 -0
  58. package/dist/card.cjs +1 -1
  59. package/dist/card.js +1 -1
  60. package/dist/{checkbox-BCLkhp5G.cjs → checkbox-C4zeib84.cjs} +2 -2
  61. package/dist/{checkbox-BCLkhp5G.cjs.map → checkbox-C4zeib84.cjs.map} +1 -1
  62. package/dist/{checkbox-B1wiM3Dv.js → checkbox-Ce0DlAdW.js} +6 -6
  63. package/dist/{checkbox-B1wiM3Dv.js.map → checkbox-Ce0DlAdW.js.map} +1 -1
  64. package/dist/checkbox.cjs +1 -1
  65. package/dist/checkbox.js +1 -1
  66. package/dist/{chips-vWmwqQed.js → chips-BoZSpSh_.js} +21 -19
  67. package/dist/chips-BoZSpSh_.js.map +1 -0
  68. package/dist/{chips-C9dS1WKn.cjs → chips-wfJ7YtWv.cjs} +4 -3
  69. package/dist/chips-wfJ7YtWv.cjs.map +1 -0
  70. package/dist/chips.cjs +1 -1
  71. package/dist/chips.js +2 -2
  72. package/dist/connectivity.cjs +1 -1
  73. package/dist/connectivity.js +3 -3
  74. package/dist/content-drawer.cjs +1 -1
  75. package/dist/content-drawer.js +1 -1
  76. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
  77. package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
  78. package/dist/{date-range-BV6HuvLw.cjs → date-range-BHSzlwSL.cjs} +2 -2
  79. package/dist/date-range-BHSzlwSL.cjs.map +1 -0
  80. package/dist/{date-range-D3ge1b4c.js → date-range-DJrdpzev.js} +4 -4
  81. package/dist/date-range-DJrdpzev.js.map +1 -0
  82. package/dist/{date-range-inline-DpYgdLRv.cjs → date-range-inline-D0I6k84h.cjs} +1 -1
  83. package/dist/{date-range-inline-DpYgdLRv.cjs.map → date-range-inline-D0I6k84h.cjs.map} +1 -1
  84. package/dist/{date-range-inline-DuWQaWps.js → date-range-inline-DjRdMZ1z.js} +2 -2
  85. package/dist/{date-range-inline-DuWQaWps.js.map → date-range-inline-DjRdMZ1z.js.map} +1 -1
  86. package/dist/date-range-inline.cjs +1 -1
  87. package/dist/date-range-inline.js +1 -1
  88. package/dist/date-range.cjs +1 -1
  89. package/dist/date-range.js +1 -1
  90. package/dist/delay.cjs +1 -1
  91. package/dist/delay.js +2 -2
  92. package/dist/{details-C-GZaq3j.js → details-CY49XVfp.js} +43 -35
  93. package/dist/details-CY49XVfp.js.map +1 -0
  94. package/dist/details-DQNj2oaU.cjs +164 -0
  95. package/dist/details-DQNj2oaU.cjs.map +1 -0
  96. package/dist/details.cjs +1 -1
  97. package/dist/details.js +1 -1
  98. package/dist/{directives-D_l1E5H6.cjs → directives-Bb0S1DKZ.cjs} +3 -3
  99. package/dist/directives-Bb0S1DKZ.cjs.map +1 -0
  100. package/dist/{directives-DyS51FUh.js → directives-Bfm1lkoy.js} +6 -8
  101. package/dist/directives-Bfm1lkoy.js.map +1 -0
  102. package/dist/directives.cjs +1 -1
  103. package/dist/directives.js +2 -2
  104. package/dist/{divider-nQffE0AD.js → divider-BeyX_C0A.js} +2 -2
  105. package/dist/{divider-nQffE0AD.js.map → divider-BeyX_C0A.js.map} +1 -1
  106. package/dist/{divider-CBnAmHMZ.cjs → divider-Ck2C1sKl.cjs} +1 -1
  107. package/dist/{divider-CBnAmHMZ.cjs.map → divider-Ck2C1sKl.cjs.map} +1 -1
  108. package/dist/divider.cjs +1 -1
  109. package/dist/divider.js +1 -1
  110. package/dist/dropdown.cjs +1 -1
  111. package/dist/dropdown.js +2 -2
  112. package/dist/{expand-DvTb-UPR.js → expand-BYsSEtp6.js} +53 -53
  113. package/dist/expand-BYsSEtp6.js.map +1 -0
  114. package/dist/expand-CUF163mg.cjs +141 -0
  115. package/dist/expand-CUF163mg.cjs.map +1 -0
  116. package/dist/expand.cjs +1 -1
  117. package/dist/expand.js +1 -1
  118. package/dist/fab.cjs +2 -1
  119. package/dist/fab.cjs.map +1 -1
  120. package/dist/fab.js +3 -2
  121. package/dist/fab.js.map +1 -1
  122. package/dist/{float-C-Ko0Le3.js → float-Cgllk_H9.js} +2 -2
  123. package/dist/{float-C-Ko0Le3.js.map → float-Cgllk_H9.js.map} +1 -1
  124. package/dist/{float-C17xgMT1.cjs → float-OvqX0nqG.cjs} +1 -1
  125. package/dist/{float-C17xgMT1.cjs.map → float-OvqX0nqG.cjs.map} +1 -1
  126. package/dist/float.cjs +1 -1
  127. package/dist/float.js +1 -1
  128. package/dist/form-4GKROq2P.cjs +27 -0
  129. package/dist/form-4GKROq2P.cjs.map +1 -0
  130. package/dist/{form-DA0hUu2h.js → form-DxaV_Ose.js} +39 -39
  131. package/dist/form-DxaV_Ose.js.map +1 -0
  132. package/dist/form.cjs +3 -3
  133. package/dist/form.cjs.map +1 -1
  134. package/dist/form.js +34 -34
  135. package/dist/form.js.map +1 -1
  136. package/dist/gravity-6pL6CfIr.cjs.map +1 -1
  137. package/dist/gravity-sVK3zGBF.js.map +1 -1
  138. package/dist/handover/agent-runtime-followups.md +1 -1
  139. package/dist/handover/agent-runtime-v1.md +3 -3
  140. package/dist/{icons-C6UfxmHZ.js → icons-CJ2mXcBi.js} +9 -9
  141. package/dist/icons-CJ2mXcBi.js.map +1 -0
  142. package/dist/icons-sZ-LybA9.cjs +24 -0
  143. package/dist/icons-sZ-LybA9.cjs.map +1 -0
  144. package/dist/icons.cjs +1 -1
  145. package/dist/icons.js +1 -1
  146. package/dist/{iframe-BTjZfYyh.js → iframe-DWvN5nGB.js} +11 -11
  147. package/dist/iframe-DWvN5nGB.js.map +1 -0
  148. package/dist/{iframe-wuYT2xFz.cjs → iframe-DpCv-QH2.cjs} +7 -7
  149. package/dist/iframe-DpCv-QH2.cjs.map +1 -0
  150. package/dist/iframe.cjs +1 -1
  151. package/dist/iframe.js +1 -1
  152. package/dist/index.cjs +1 -1
  153. package/dist/index.js +35 -35
  154. package/dist/{input-B_4g2ulO.js → input-BCCHz6tB.js} +7 -7
  155. package/dist/input-BCCHz6tB.js.map +1 -0
  156. package/dist/{input-BrDiIT60.cjs → input-Z-3N5JMv.cjs} +2 -2
  157. package/dist/input-Z-3N5JMv.cjs.map +1 -0
  158. package/dist/{input-chip-BlWhOruv.js → input-chip-BOrcKH-H.js} +2 -2
  159. package/dist/{input-chip-BlWhOruv.js.map → input-chip-BOrcKH-H.js.map} +1 -1
  160. package/dist/{input-chip-B-XWh4aE.cjs → input-chip-ChAgRCXZ.cjs} +1 -1
  161. package/dist/{input-chip-B-XWh4aE.cjs.map → input-chip-ChAgRCXZ.cjs.map} +1 -1
  162. package/dist/input.cjs +1 -1
  163. package/dist/input.js +1 -1
  164. package/dist/json.cjs +1 -1
  165. package/dist/json.js +3 -3
  166. package/dist/kbd.cjs +1 -1
  167. package/dist/kbd.js +2 -2
  168. package/dist/{layout-Dxit9enO.js → layout-CFiG3lNT.js} +1 -1
  169. package/dist/{layout-Dxit9enO.js.map → layout-CFiG3lNT.js.map} +1 -1
  170. package/dist/{layout-BhyIcEVu.cjs → layout-DZ4dpLh9.cjs} +1 -1
  171. package/dist/{layout-BhyIcEVu.cjs.map → layout-DZ4dpLh9.cjs.map} +1 -1
  172. package/dist/layout.cjs +1 -1
  173. package/dist/layout.js +2 -2
  174. package/dist/lazy-BaAiIUru.js +19 -0
  175. package/dist/lazy-BaAiIUru.js.map +1 -0
  176. package/dist/lazy-C-7a4FAe.cjs +1 -0
  177. package/dist/lazy-C-7a4FAe.cjs.map +1 -0
  178. package/dist/{lightbox-D85XAAuC.js → lightbox-B7Y4Nij_.js} +2 -2
  179. package/dist/lightbox-B7Y4Nij_.js.map +1 -0
  180. package/dist/{lightbox-CVBogswK.cjs → lightbox-Dpwsn8Qr.cjs} +1 -1
  181. package/dist/lightbox-Dpwsn8Qr.cjs.map +1 -0
  182. package/dist/lightbox.cjs +1 -1
  183. package/dist/lightbox.js +1 -1
  184. package/dist/{list-nVjLskgx.cjs → list-BhM-6dAi.cjs} +1 -1
  185. package/dist/{list-nVjLskgx.cjs.map → list-BhM-6dAi.cjs.map} +1 -1
  186. package/dist/{list-DOF_yVn5.js → list-C5WVoIfJ.js} +2 -2
  187. package/dist/{list-DOF_yVn5.js.map → list-C5WVoIfJ.js.map} +1 -1
  188. package/dist/list.cjs +1 -1
  189. package/dist/list.js +1 -1
  190. package/dist/magnetic-DKtc4umC.cjs.map +1 -1
  191. package/dist/magnetic-DaOOv5Dz.js.map +1 -1
  192. package/dist/{menu-QrAK5Uu9.js → menu-Dvi_tQgH.js} +3 -3
  193. package/dist/{menu-QrAK5Uu9.js.map → menu-Dvi_tQgH.js.map} +1 -1
  194. package/dist/{menu-DqmNjLgY.cjs → menu-GZARYp6I.cjs} +1 -1
  195. package/dist/{menu-DqmNjLgY.cjs.map → menu-GZARYp6I.cjs.map} +1 -1
  196. package/dist/menu.cjs +1 -1
  197. package/dist/menu.js +1 -1
  198. package/dist/{mixins-De1zjyhy.js → mixins-DGBI7YPO.js} +11 -11
  199. package/dist/mixins-DGBI7YPO.js.map +1 -0
  200. package/dist/{mixins-DxHpyMHA.cjs → mixins-fIpzhVMd.cjs} +1 -1
  201. package/dist/mixins-fIpzhVMd.cjs.map +1 -0
  202. package/dist/mixins.cjs +1 -1
  203. package/dist/mixins.js +2 -2
  204. package/dist/nav-drawer.cjs +1 -1
  205. package/dist/nav-drawer.js +1 -1
  206. package/dist/navigation-bar.cjs +1 -1
  207. package/dist/navigation-bar.js +1 -1
  208. package/dist/navigation-rail.cjs +3 -3
  209. package/dist/navigation-rail.cjs.map +1 -1
  210. package/dist/navigation-rail.js +11 -10
  211. package/dist/navigation-rail.js.map +1 -1
  212. package/dist/notification-B6yDL91t.cjs +24 -0
  213. package/dist/notification-B6yDL91t.cjs.map +1 -0
  214. package/dist/{notification-BtAK7NK8.js → notification-BB9OBRCr.js} +22 -22
  215. package/dist/notification-BB9OBRCr.js.map +1 -0
  216. package/dist/notification.cjs +1 -1
  217. package/dist/notification.js +1 -1
  218. package/dist/{option-DHwA0miA.js → option-B21ImL0k.js} +2 -2
  219. package/dist/{option-DHwA0miA.js.map → option-B21ImL0k.js.map} +1 -1
  220. package/dist/{option-DnSPa8ro.cjs → option-CJQM5I9q.cjs} +1 -1
  221. package/dist/{option-DnSPa8ro.cjs.map → option-CJQM5I9q.cjs.map} +1 -1
  222. package/dist/option.cjs +1 -1
  223. package/dist/option.js +1 -1
  224. package/dist/{overlay-Del1sBEB.js → overlay-DwJWVyk2.js} +75 -67
  225. package/dist/overlay-DwJWVyk2.js.map +1 -0
  226. package/dist/overlay-N0trD-4u.cjs +58 -0
  227. package/dist/overlay-N0trD-4u.cjs.map +1 -0
  228. package/dist/overlay.cjs +1 -1
  229. package/dist/{overlay.confirm-body-BV9umTAl.cjs → overlay.confirm-body-CtXIi421.cjs} +3 -3
  230. package/dist/overlay.confirm-body-CtXIi421.cjs.map +1 -0
  231. package/dist/{overlay.confirm-body-DSONXUzl.js → overlay.confirm-body-DwzKhXxM.js} +10 -10
  232. package/dist/overlay.confirm-body-DwzKhXxM.js.map +1 -0
  233. package/dist/overlay.js +4 -4
  234. package/dist/{overlay.service-BTp5Oq7f.js → overlay.service-BDLi0p5M.js} +4 -4
  235. package/dist/{overlay.service-BTp5Oq7f.js.map → overlay.service-BDLi0p5M.js.map} +1 -1
  236. package/dist/overlay.service-Dbu5uP9E.cjs +1 -0
  237. package/dist/{overlay.service-XLlrsSdA.cjs.map → overlay.service-Dbu5uP9E.cjs.map} +1 -1
  238. package/dist/{progress-DUbTL9g9.cjs → progress-B-Qg44XY.cjs} +1 -1
  239. package/dist/{progress-DUbTL9g9.cjs.map → progress-B-Qg44XY.cjs.map} +1 -1
  240. package/dist/{progress-DYA83CFU.js → progress-CUSS1sNz.js} +2 -2
  241. package/dist/{progress-DYA83CFU.js.map → progress-CUSS1sNz.js.map} +1 -1
  242. package/dist/progress.cjs +1 -1
  243. package/dist/progress.js +1 -1
  244. package/dist/{radio-group-DxX0iJBo.js → radio-group-AHLvrN8O.js} +7 -7
  245. package/dist/radio-group-AHLvrN8O.js.map +1 -0
  246. package/dist/{radio-group-B-ORNtvR.cjs → radio-group-BEtvCSS1.cjs} +2 -2
  247. package/dist/radio-group-BEtvCSS1.cjs.map +1 -0
  248. package/dist/radio-group.cjs +1 -1
  249. package/dist/radio-group.js +1 -1
  250. package/dist/range.cjs +1 -1
  251. package/dist/range.js +2 -2
  252. package/dist/select-BWpV2iv-.cjs +56 -0
  253. package/dist/select-BWpV2iv-.cjs.map +1 -0
  254. package/dist/{select-C7gkA-ab.js → select-Cawz88lG.js} +46 -46
  255. package/dist/select-Cawz88lG.js.map +1 -0
  256. package/dist/select.cjs +1 -1
  257. package/dist/select.js +1 -1
  258. package/dist/skeleton.cjs +1 -1
  259. package/dist/skeleton.js +2 -2
  260. package/dist/skills/SKILL.md +9 -0
  261. package/dist/skills/overlay.md +14 -7
  262. package/dist/skills/schmancy/SKILL.md +9 -0
  263. package/dist/skills/schmancy/overlay.md +14 -7
  264. package/dist/slider.cjs +1 -1
  265. package/dist/slider.js +2 -2
  266. package/dist/{sound.service-O0232os6.js → sound.service-CK-5zob-.js} +4 -3
  267. package/dist/sound.service-CK-5zob-.js.map +1 -0
  268. package/dist/{sound.service-C7FDY_yD.cjs → sound.service-D2GGaBXc.cjs} +1 -1
  269. package/dist/sound.service-D2GGaBXc.cjs.map +1 -0
  270. package/dist/{splash-screen-jfE47xl0.js → splash-screen-BUEtjHXC.js} +13 -13
  271. package/dist/splash-screen-BUEtjHXC.js.map +1 -0
  272. package/dist/{splash-screen-DIS4odDr.cjs → splash-screen-DqPuipox.cjs} +6 -6
  273. package/dist/splash-screen-DqPuipox.cjs.map +1 -0
  274. package/dist/splash-screen.cjs +1 -1
  275. package/dist/splash-screen.js +1 -1
  276. package/dist/{src-BP3h-9d9.js → src-8VJ7eluk.js} +46 -45
  277. package/dist/src-8VJ7eluk.js.map +1 -0
  278. package/dist/{src-Um_pzb-U.cjs → src-GJA8uSAS.cjs} +7 -6
  279. package/dist/src-GJA8uSAS.cjs.map +1 -0
  280. package/dist/{state-Bj0M9a6T.cjs → state-BxDNox-2.cjs} +1 -1
  281. package/dist/{state-Bj0M9a6T.cjs.map → state-BxDNox-2.cjs.map} +1 -1
  282. package/dist/{state-DscWQpoM.js → state-CnZCDMT0.js} +9 -9
  283. package/dist/{state-DscWQpoM.js.map → state-CnZCDMT0.js.map} +1 -1
  284. package/dist/state.cjs +1 -1
  285. package/dist/state.js +2 -2
  286. package/dist/steps.cjs +1 -1
  287. package/dist/steps.js +2 -2
  288. package/dist/{surface-B4Wn4SOO.js → surface-BMdG3dKQ.js} +2 -2
  289. package/dist/{surface-B4Wn4SOO.js.map → surface-BMdG3dKQ.js.map} +1 -1
  290. package/dist/{surface-DRq6cVW6.cjs → surface-CWwYD_z2.cjs} +1 -1
  291. package/dist/{surface-DRq6cVW6.cjs.map → surface-CWwYD_z2.cjs.map} +1 -1
  292. package/dist/surface.cjs +1 -1
  293. package/dist/surface.js +1 -1
  294. package/dist/switch.cjs +4 -4
  295. package/dist/switch.cjs.map +1 -1
  296. package/dist/switch.js +11 -11
  297. package/dist/switch.js.map +1 -1
  298. package/dist/table.cjs +1 -1
  299. package/dist/table.js +2 -2
  300. package/dist/{tabs-CnQPo-XS.js → tabs-CDQYDc6v.js} +2 -2
  301. package/dist/{tabs-CnQPo-XS.js.map → tabs-CDQYDc6v.js.map} +1 -1
  302. package/dist/{tabs-Ca_fbHPW.cjs → tabs-CbD9E1gd.cjs} +1 -1
  303. package/dist/{tabs-Ca_fbHPW.cjs.map → tabs-CbD9E1gd.cjs.map} +1 -1
  304. package/dist/tabs.cjs +1 -1
  305. package/dist/tabs.js +1 -1
  306. package/dist/teleport.cjs +1 -1
  307. package/dist/teleport.js +1 -1
  308. package/dist/textarea-Brgi-vD2.cjs +43 -0
  309. package/dist/textarea-Brgi-vD2.cjs.map +1 -0
  310. package/dist/{textarea-BvqENhTW.js → textarea-MPyrMi-S.js} +4 -4
  311. package/dist/textarea-MPyrMi-S.js.map +1 -0
  312. package/dist/textarea.cjs +1 -1
  313. package/dist/textarea.js +1 -1
  314. package/dist/{theme-BSwJ2YZo.cjs → theme-BMbXoqi0.cjs} +1 -1
  315. package/dist/{theme-BSwJ2YZo.cjs.map → theme-BMbXoqi0.cjs.map} +1 -1
  316. package/dist/{theme-BV0EzHQ1.js → theme-DZu-xmVp.js} +5 -5
  317. package/dist/{theme-BV0EzHQ1.js.map → theme-DZu-xmVp.js.map} +1 -1
  318. package/dist/{theme-button-C6fpUzPM.cjs → theme-button-B0OLb-43.cjs} +1 -1
  319. package/dist/{theme-button-C6fpUzPM.cjs.map → theme-button-B0OLb-43.cjs.map} +1 -1
  320. package/dist/{theme-button-O_xNCgI7.js → theme-button-D_qGvEYs.js} +2 -2
  321. package/dist/{theme-button-O_xNCgI7.js.map → theme-button-D_qGvEYs.js.map} +1 -1
  322. package/dist/theme-button.cjs +1 -1
  323. package/dist/theme-button.js +1 -1
  324. package/dist/theme.cjs +1 -1
  325. package/dist/theme.js +3 -3
  326. package/dist/{theme.service-DwLhhOmP.js → theme.service-7VkM-hVf.js} +15 -11
  327. package/dist/theme.service-7VkM-hVf.js.map +1 -0
  328. package/dist/theme.service-B15FdjOS.cjs +1 -0
  329. package/dist/theme.service-B15FdjOS.cjs.map +1 -0
  330. package/dist/tree.cjs +4 -4
  331. package/dist/tree.cjs.map +1 -1
  332. package/dist/tree.js +8 -8
  333. package/dist/tree.js.map +1 -1
  334. package/dist/{typography-opFYuUYS.cjs → typography-D4Fo1UGh.cjs} +3 -3
  335. package/dist/{typography-opFYuUYS.cjs.map → typography-D4Fo1UGh.cjs.map} +1 -1
  336. package/dist/{typography-Dtdooaic.js → typography-SZhjb_4R.js} +9 -9
  337. package/dist/{typography-Dtdooaic.js.map → typography-SZhjb_4R.js.map} +1 -1
  338. package/dist/typography.cjs +1 -1
  339. package/dist/typography.js +1 -1
  340. package/dist/visually-hidden.cjs +1 -1
  341. package/dist/visually-hidden.js +2 -2
  342. package/dist/{window-ConcHirJ.js → window-BDVyrBnk.js} +101 -100
  343. package/dist/window-BDVyrBnk.js.map +1 -0
  344. package/dist/window-BbBYjm7R.cjs +59 -0
  345. package/dist/window-BbBYjm7R.cjs.map +1 -0
  346. package/dist/window.cjs +1 -1
  347. package/dist/window.js +1 -1
  348. package/package.json +1 -1
  349. package/skills/schmancy/SKILL.md +9 -0
  350. package/skills/schmancy/overlay.md +14 -7
  351. package/src/area/area.component.ts +1 -1
  352. package/src/area/area.service.test.ts +2 -2
  353. package/src/area/area.service.ts +1 -1
  354. package/src/area/lazy.ts +87 -83
  355. package/src/audio/sound.service.ts +3 -3
  356. package/src/badge/badge.ts +1 -0
  357. package/src/breadcrumb/breadcrumb.ts +2 -2
  358. package/src/button/button.ts +12 -11
  359. package/src/button/icon-button.ts +19 -18
  360. package/src/card/card.ts +16 -16
  361. package/src/content-drawer/drawer.ts +6 -6
  362. package/src/details/details.ts +55 -55
  363. package/src/directives/ai-badge.ts +2 -1
  364. package/src/directives/animate-text.ts +2 -1
  365. package/src/directives/art/art.directive.ts +2 -1
  366. package/src/directives/battery.ts +2 -1
  367. package/src/directives/confirm-click.ts +5 -3
  368. package/src/directives/cursor-glow.ts +2 -1
  369. package/src/directives/cycle-text.ts +2 -1
  370. package/src/directives/depth-of-field.ts +2 -1
  371. package/src/directives/drag.ts +4 -2
  372. package/src/directives/fyi.ts +2 -1
  373. package/src/directives/gravity.ts +2 -1
  374. package/src/directives/hummingbird.ts +2 -1
  375. package/src/directives/intersect.ts +3 -2
  376. package/src/directives/liquid.ts +2 -1
  377. package/src/directives/living-border.ts +2 -1
  378. package/src/directives/long-press.ts +2 -1
  379. package/src/directives/magnetic.ts +2 -1
  380. package/src/directives/missed-punch.ts +2 -1
  381. package/src/directives/nebula.ts +6 -5
  382. package/src/directives/overflow-within.ts +2 -1
  383. package/src/directives/reveal.ts +2 -1
  384. package/src/directives/urgent.ts +2 -1
  385. package/src/directives/working-snake.ts +2 -1
  386. package/src/expand/expand-root.component.ts +27 -27
  387. package/src/expand/expand.component.ts +48 -48
  388. package/src/fab/fab.ts +1 -0
  389. package/src/form/fields/autocomplete/autocomplete.ts +154 -154
  390. package/src/form/fields/checkbox/checkbox.ts +4 -4
  391. package/src/form/fields/chips/chips.ts +2 -2
  392. package/src/form/fields/chips/filter-chip.ts +16 -15
  393. package/src/form/fields/date-range/date-range.ts +2 -2
  394. package/src/form/fields/input/input.ts +12 -12
  395. package/src/form/fields/radio-group/radio-button.ts +2 -2
  396. package/src/form/fields/radio-group/radio-group.ts +3 -3
  397. package/src/form/fields/select/select.ts +56 -56
  398. package/src/form/fields/switch/switch.ts +10 -10
  399. package/src/form/fields/textarea/textarea.ts +2 -2
  400. package/src/form/form-summary.ts +33 -33
  401. package/src/form/form.ts +45 -45
  402. package/src/icons/icon.ts +10 -8
  403. package/src/iframe/iframe.ts +11 -11
  404. package/src/lightbox/flip-directive.ts +2 -1
  405. package/src/lightbox/lightbox.directive.ts +2 -1
  406. package/src/nav-drawer/navbar.ts +3 -3
  407. package/src/navigation-rail/navigation-rail.ts +10 -10
  408. package/src/notification/notification.ts +22 -22
  409. package/src/overlay/overlay.component.ts +106 -83
  410. package/src/overlay/overlay.confirm-body.ts +4 -4
  411. package/src/overlay/overlay.service.ts +3 -3
  412. package/src/overlay/overlay.types.ts +4 -2
  413. package/src/splash-screen/splash-screen.ts +11 -11
  414. package/src/state/index.ts +12 -12
  415. package/src/state/schmancy-context.ts +9 -9
  416. package/src/teleport/teleport.component.ts +2 -2
  417. package/src/theme/theme.service.ts +17 -17
  418. package/src/tree/tree.ts +7 -7
  419. package/src/typography/typography.ts +7 -7
  420. package/src/window/window-manager.ts +20 -20
  421. package/src/window/window.ts +100 -100
  422. package/types/mixins/SchmancyElement.d.ts +3 -2
  423. package/types/mixins/formField.mixin.d.ts +1 -1
  424. package/types/src/area/area.service.d.ts +1 -1
  425. package/types/src/area/lazy.d.ts +0 -6
  426. package/types/src/audio/sound.service.d.ts +1 -2
  427. package/types/src/breadcrumb/breadcrumb.d.ts +1 -1
  428. package/types/src/button/button.d.ts +3 -3
  429. package/types/src/button/icon-button.d.ts +6 -7
  430. package/types/src/card/card.d.ts +5 -5
  431. package/types/src/content-drawer/drawer.d.ts +1 -1
  432. package/types/src/details/details.d.ts +2 -21
  433. package/types/src/directives/ai-badge.d.ts +2 -2
  434. package/types/src/directives/animate-text.d.ts +2 -2
  435. package/types/src/directives/art/art.directive.d.ts +2 -2
  436. package/types/src/directives/battery.d.ts +2 -2
  437. package/types/src/directives/confirm-click.d.ts +2 -2
  438. package/types/src/directives/cursor-glow.d.ts +2 -2
  439. package/types/src/directives/cycle-text.d.ts +2 -2
  440. package/types/src/directives/depth-of-field.d.ts +2 -2
  441. package/types/src/directives/drag.d.ts +4 -4
  442. package/types/src/directives/fyi.d.ts +2 -2
  443. package/types/src/directives/gravity.d.ts +2 -2
  444. package/types/src/directives/hummingbird.d.ts +2 -2
  445. package/types/src/directives/intersect.d.ts +2 -2
  446. package/types/src/directives/liquid.d.ts +2 -2
  447. package/types/src/directives/living-border.d.ts +2 -2
  448. package/types/src/directives/long-press.d.ts +2 -2
  449. package/types/src/directives/magnetic.d.ts +2 -2
  450. package/types/src/directives/missed-punch.d.ts +2 -2
  451. package/types/src/directives/nebula.d.ts +2 -2
  452. package/types/src/directives/overflow-within.d.ts +2 -2
  453. package/types/src/directives/reveal.d.ts +2 -2
  454. package/types/src/directives/urgent.d.ts +2 -2
  455. package/types/src/directives/working-snake.d.ts +2 -2
  456. package/types/src/expand/expand-root.component.d.ts +8 -8
  457. package/types/src/expand/expand.component.d.ts +11 -11
  458. package/types/src/form/fields/autocomplete/autocomplete.d.ts +29 -29
  459. package/types/src/form/fields/checkbox/checkbox.d.ts +1 -1
  460. package/types/src/form/fields/chips/chips.d.ts +1 -1
  461. package/types/src/form/fields/chips/filter-chip.d.ts +1 -2
  462. package/types/src/form/fields/input/input.d.ts +3 -3
  463. package/types/src/form/fields/radio-group/radio-button.d.ts +1 -1
  464. package/types/src/form/fields/radio-group/radio-group.d.ts +1 -1
  465. package/types/src/form/fields/select/select.d.ts +8 -8
  466. package/types/src/form/fields/switch/switch.d.ts +3 -3
  467. package/types/src/form/fields/textarea/textarea.d.ts +1 -1
  468. package/types/src/form/form-summary.d.ts +7 -7
  469. package/types/src/form/form.d.ts +11 -11
  470. package/types/src/icons/icon.d.ts +2 -2
  471. package/types/src/iframe/iframe.d.ts +3 -3
  472. package/types/src/lightbox/flip-directive.d.ts +2 -2
  473. package/types/src/lightbox/lightbox.directive.d.ts +2 -2
  474. package/types/src/nav-drawer/navbar.d.ts +1 -1
  475. package/types/src/navigation-rail/navigation-rail.d.ts +2 -2
  476. package/types/src/notification/notification.d.ts +8 -8
  477. package/types/src/overlay/overlay.component.d.ts +16 -16
  478. package/types/src/overlay/overlay.confirm-body.d.ts +1 -1
  479. package/types/src/overlay/overlay.types.d.ts +4 -2
  480. package/types/src/splash-screen/splash-screen.d.ts +2 -2
  481. package/types/src/state/index.d.ts +1 -1
  482. package/types/src/state/schmancy-context.d.ts +3 -3
  483. package/types/src/teleport/teleport.component.d.ts +1 -1
  484. package/types/src/theme/theme.service.d.ts +1 -4
  485. package/types/src/tree/tree.d.ts +3 -3
  486. package/types/src/typography/typography.d.ts +1 -1
  487. package/types/src/window/window-manager.d.ts +2 -2
  488. package/types/src/window/window.d.ts +20 -20
  489. package/dist/area-KtULlxuA.js.map +0 -1
  490. package/dist/area-fdKhYB6T.cjs +0 -21
  491. package/dist/area-fdKhYB6T.cjs.map +0 -1
  492. package/dist/autocomplete-DEZk6wBD.cjs +0 -115
  493. package/dist/autocomplete-DEZk6wBD.cjs.map +0 -1
  494. package/dist/autocomplete-DIScyo8Q.js.map +0 -1
  495. package/dist/button-DzlHLjWO.cjs +0 -62
  496. package/dist/button-DzlHLjWO.cjs.map +0 -1
  497. package/dist/button-kcpPQavY.js.map +0 -1
  498. package/dist/card-BLxPLqdQ.cjs.map +0 -1
  499. package/dist/card-DxSKxCid.js.map +0 -1
  500. package/dist/chips-C9dS1WKn.cjs.map +0 -1
  501. package/dist/chips-vWmwqQed.js.map +0 -1
  502. package/dist/date-range-BV6HuvLw.cjs.map +0 -1
  503. package/dist/date-range-D3ge1b4c.js.map +0 -1
  504. package/dist/details-C-GZaq3j.js.map +0 -1
  505. package/dist/details-Dp5rLIWk.cjs +0 -164
  506. package/dist/details-Dp5rLIWk.cjs.map +0 -1
  507. package/dist/directives-D_l1E5H6.cjs.map +0 -1
  508. package/dist/directives-DyS51FUh.js.map +0 -1
  509. package/dist/expand-DvTb-UPR.js.map +0 -1
  510. package/dist/expand-mlP_3XWz.cjs +0 -141
  511. package/dist/expand-mlP_3XWz.cjs.map +0 -1
  512. package/dist/form-CwPHcQYB.cjs +0 -27
  513. package/dist/form-CwPHcQYB.cjs.map +0 -1
  514. package/dist/form-DA0hUu2h.js.map +0 -1
  515. package/dist/icons-C6UfxmHZ.js.map +0 -1
  516. package/dist/icons-CW3-oMSb.cjs +0 -24
  517. package/dist/icons-CW3-oMSb.cjs.map +0 -1
  518. package/dist/iframe-BTjZfYyh.js.map +0 -1
  519. package/dist/iframe-wuYT2xFz.cjs.map +0 -1
  520. package/dist/input-B_4g2ulO.js.map +0 -1
  521. package/dist/input-BrDiIT60.cjs.map +0 -1
  522. package/dist/lazy-CayEFyC3.cjs +0 -1
  523. package/dist/lazy-CayEFyC3.cjs.map +0 -1
  524. package/dist/lazy-D-bO2r4m.js +0 -13
  525. package/dist/lazy-D-bO2r4m.js.map +0 -1
  526. package/dist/lightbox-CVBogswK.cjs.map +0 -1
  527. package/dist/lightbox-D85XAAuC.js.map +0 -1
  528. package/dist/mixins-De1zjyhy.js.map +0 -1
  529. package/dist/mixins-DxHpyMHA.cjs.map +0 -1
  530. package/dist/notification-BtAK7NK8.js.map +0 -1
  531. package/dist/notification-DYzbUb5C.cjs +0 -24
  532. package/dist/notification-DYzbUb5C.cjs.map +0 -1
  533. package/dist/overlay-BVkqZmoS.cjs +0 -58
  534. package/dist/overlay-BVkqZmoS.cjs.map +0 -1
  535. package/dist/overlay-Del1sBEB.js.map +0 -1
  536. package/dist/overlay.confirm-body-BV9umTAl.cjs.map +0 -1
  537. package/dist/overlay.confirm-body-DSONXUzl.js.map +0 -1
  538. package/dist/overlay.service-XLlrsSdA.cjs +0 -1
  539. package/dist/radio-group-B-ORNtvR.cjs.map +0 -1
  540. package/dist/radio-group-DxX0iJBo.js.map +0 -1
  541. package/dist/select-B9uj_u-s.cjs +0 -56
  542. package/dist/select-B9uj_u-s.cjs.map +0 -1
  543. package/dist/select-C7gkA-ab.js.map +0 -1
  544. package/dist/sound.service-C7FDY_yD.cjs.map +0 -1
  545. package/dist/sound.service-O0232os6.js.map +0 -1
  546. package/dist/splash-screen-DIS4odDr.cjs.map +0 -1
  547. package/dist/splash-screen-jfE47xl0.js.map +0 -1
  548. package/dist/src-BP3h-9d9.js.map +0 -1
  549. package/dist/src-Um_pzb-U.cjs.map +0 -1
  550. package/dist/textarea-BvqENhTW.js.map +0 -1
  551. package/dist/textarea-qr7oL8oU.cjs +0 -43
  552. package/dist/textarea-qr7oL8oU.cjs.map +0 -1
  553. package/dist/theme.service-DwLhhOmP.js.map +0 -1
  554. package/dist/theme.service-kn9MC025.cjs +0 -1
  555. package/dist/theme.service-kn9MC025.cjs.map +0 -1
  556. package/dist/window-BSAemI9J.cjs +0 -59
  557. package/dist/window-BSAemI9J.cjs.map +0 -1
  558. package/dist/window-ConcHirJ.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { t as e, u as t } from "./SchmancyElement-CDT2q1lA.js";
2
- import { o as n } from "./mixins-De1zjyhy.js";
3
- import "./input-chip-BlWhOruv.js";
4
- import { r } from "./layout-Dxit9enO.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";
@@ -326,6 +326,7 @@ var C = class extends e {
326
326
  this.styles = [g`
327
327
  :host {
328
328
  display: inline-flex;
329
+ flex-shrink: 0;
329
330
  outline: none;
330
331
  border-radius: 0.5rem;
331
332
  transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);
@@ -351,19 +352,20 @@ var C = class extends e {
351
352
  }
352
353
  `];
353
354
  }
355
+ #e;
354
356
  get selected() {
355
- return this._selected;
357
+ return this.#e;
356
358
  }
357
359
  set selected(e) {
358
- let t = this._selected;
359
- this._selected = e, this.requestUpdate("selected", t);
360
+ let t = this.#e;
361
+ this.#e = e, this.requestUpdate("selected", t);
360
362
  }
361
363
  constructor() {
362
- super(), this.value = "", this._selected = !1, this.removable = !1, this.disabled = !1, this.elevated = !1, this.handleClick = () => {
364
+ super(), this.value = "", this.#e = !1, this.removable = !1, this.disabled = !1, this.elevated = !1, this.handleClick = () => {
363
365
  this.disabled || this.dispatchEvent(new CustomEvent("change", {
364
366
  detail: {
365
367
  value: this.value,
366
- selected: !this._selected
368
+ selected: !this.#e
367
369
  },
368
370
  bubbles: !0,
369
371
  composed: !0
@@ -378,7 +380,7 @@ var C = class extends e {
378
380
  this.disabled || e.key !== "Enter" && e.key !== " " || (e.preventDefault(), this.dispatchEvent(new CustomEvent("change", {
379
381
  detail: {
380
382
  value: this.value,
381
- selected: !this._selected
383
+ selected: !this.#e
382
384
  },
383
385
  bubbles: !0,
384
386
  composed: !0
@@ -406,10 +408,10 @@ var C = class extends e {
406
408
  super.connectedCallback();
407
409
  }
408
410
  updated(e) {
409
- super.updated?.(e), (e.has("value") || e.has("selected")) && this.internals?.setFormValue(this._selected ? this.value || "on" : null);
411
+ super.updated?.(e), (e.has("value") || e.has("selected")) && this.internals?.setFormValue(this.#e ? this.value || "on" : null);
410
412
  }
411
413
  formResetCallback() {
412
- this._selected = this.hasAttribute("selected");
414
+ this.#e = this.hasAttribute("selected");
413
415
  }
414
416
  formDisabledCallback(e) {
415
417
  this.disabled = e;
@@ -429,12 +431,12 @@ var C = class extends e {
429
431
  "font-medium": !0,
430
432
  relative: !0,
431
433
  "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,
434
+ "bg-secondary-container": this.#e,
435
+ "text-secondary-onContainer": this.#e,
436
+ "bg-surface-container": !this.#e,
437
+ "text-surface-on": !this.#e,
438
+ "hover:brightness-95": this.#e && !this.disabled,
439
+ "hover:bg-surface-containerHigh": !this.#e && !this.disabled,
438
440
  "active:brightness-90": !this.disabled,
439
441
  "focus-visible:outline": !this.disabled,
440
442
  "focus-visible:outline-2": !this.disabled,
@@ -455,7 +457,7 @@ var C = class extends e {
455
457
  @click=${this.handleClick}
456
458
  @keydown=${this.handleKeyDown}
457
459
  ?disabled=${this.disabled}
458
- aria-pressed=${this._selected ? "true" : "false"}
460
+ aria-pressed=${this.#e ? "true" : "false"}
459
461
  role="checkbox"
460
462
  tabindex="0"
461
463
  >
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chips-BoZSpSh_.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\tflex-shrink: 0;\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,4 +1,4 @@
1
- require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BHfQg3Tj.cjs`),t=require(`./mixins-DxHpyMHA.cjs`);require(`./input-chip-B-XWh4aE.cjs`);const n=require(`./layout-BhyIcEVu.cjs`),r=require(`./magnetic-DKtc4umC.cjs`);let i=require(`rxjs`),a=require(`rxjs/operators`),o=require(`lit/directives/class-map.js`),s=require(`lit/decorators.js`),c=require(`lit`),l=require(`lit/directives/if-defined.js`),u=require(`lit/directives/when.js`);var d=class extends e.t{constructor(...e){super(...e),this.value=``,this.icon=``,this.href=``,this.target=``,this.disabled=!1,this.elevated=!0,this.hover$=new i.BehaviorSubject(!1),this.pressed$=new i.BehaviorSubject(!1),this.focused$=new i.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=e=>{if(this.disabled)return;let t=this.shadowRoot?.querySelector(`button`);if(t){let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top,a=this.nextRippleId++;this.ripples=[...this.ripples,{x:r,y:i,id:a}],setTimeout(()=>{this.ripples=this.ripples.filter(e=>e.id!==a)},600)}this.href&&(this.target===`_blank`?window.open(this.href,`_blank`):window.location.href=this.href),this.dispatchEvent(new CustomEvent(`action`,{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=e=>{if(!this.disabled&&(e.key===`Enter`||e.key===` `)){e.preventDefault(),this.pressed$.next(!0);let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(t),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}static{this.styles=[c.css`
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;
@@ -117,6 +117,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BHfQg3Tj.cjs`
117
117
  `,()=>c.nothing)}`}};e.u([(0,s.property)({type:Boolean,reflect:!0})],f.prototype,`multi`,void 0),e.u([(0,s.property)({reflect:!1})],f.prototype,`value`,null),e.u([(0,s.property)({type:Boolean,reflect:!0})],f.prototype,`wrap`,void 0),e.u([(0,s.property)({type:String,reflect:!0})],f.prototype,`justify`,void 0),e.u([(0,s.queryAssignedElements)({selector:`schmancy-chip, schmancy-filter-chip, schmancy-assist-chip, schmancy-input-chip, schmancy-suggestion-chip`,flatten:!0})],f.prototype,`chips`,void 0),f=e.u([(0,s.customElement)(`schmancy-chips`)],f);var p=class extends e.t{static{this.styles=[c.css`
118
118
  :host {
119
119
  display: inline-flex;
120
+ flex-shrink: 0;
120
121
  outline: none;
121
122
  border-radius: 0.5rem;
122
123
  transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);
@@ -140,14 +141,14 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-BHfQg3Tj.cjs`
140
141
  button {
141
142
  font-family: inherit;
142
143
  }
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`
144
+ `]}#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
145
  <button
145
146
  ${r.t({strength:2,radius:40})}
146
147
  class=${this.classMap(e)}
147
148
  @click=${this.handleClick}
148
149
  @keydown=${this.handleKeyDown}
149
150
  ?disabled=${this.disabled}
150
- aria-pressed=${this._selected?`true`:`false`}
151
+ aria-pressed=${this.#e?`true`:`false`}
151
152
  role="checkbox"
152
153
  tabindex="0"
153
154
  >
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chips-wfJ7YtWv.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\tflex-shrink: 0;\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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"}
package/dist/chips.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./input-chip-B-XWh4aE.cjs`),t=require(`./chips-C9dS1WKn.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-wfJ7YtWv.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-BlWhOruv.js";
2
- import { n as t, r as n, t as r } from "./chips-vWmwqQed.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-BoZSpSh_.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-BHfQg3Tj.cjs`);require(`./mixins-DxHpyMHA.cjs`);const t=require(`./audio-CUMAv9D_.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-CDT2q1lA.js";
2
- import "./mixins-De1zjyhy.js";
3
- import { t as n } from "./audio-zIJVTo_V.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-Um_pzb-U.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-GJA8uSAS.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-BP3h-9d9.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-8VJ7eluk.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-BHfQg3Tj.cjs`),n=require(`./mixins-DxHpyMHA.cjs`),r=require(`./overlay.service-XLlrsSdA.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-Dbu5uP9E.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-BHfQg3Tj.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">