@mhmo91/schmancy 0.10.34 → 0.10.36

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 (414) hide show
  1. package/custom-elements.json +1144 -1101
  2. package/dist/SchmancyElement-BBzRWB1w.cjs +2 -0
  3. package/dist/SchmancyElement-BBzRWB1w.cjs.map +1 -0
  4. package/dist/SchmancyElement-C3CpdNsi.js +284 -0
  5. package/dist/SchmancyElement-C3CpdNsi.js.map +1 -0
  6. package/dist/agent/schmancy.agent.js +3414 -3263
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +335 -276
  9. package/dist/{area-DviXdbDx.js → area-BA96mwFY.js} +2 -2
  10. package/dist/{area-DviXdbDx.js.map → area-BA96mwFY.js.map} +1 -1
  11. package/dist/{area-CTSTgjlx.cjs → area-DtyQDdOF.cjs} +1 -1
  12. package/dist/{area-CTSTgjlx.cjs.map → area-DtyQDdOF.cjs.map} +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{audio-Q9oB_cQR.cjs → audio-B_jT9Xr7.cjs} +1 -1
  16. package/dist/{audio-Q9oB_cQR.cjs.map → audio-B_jT9Xr7.cjs.map} +1 -1
  17. package/dist/{audio-DFYoaw0M.js → audio-D52h1jAT.js} +1 -1
  18. package/dist/{audio-DFYoaw0M.js.map → audio-D52h1jAT.js.map} +1 -1
  19. package/dist/audio.cjs +1 -1
  20. package/dist/audio.js +2 -2
  21. package/dist/{autocomplete-DmLXJr7C.cjs → autocomplete-Bts5Jwwr.cjs} +1 -1
  22. package/dist/{autocomplete-DmLXJr7C.cjs.map → autocomplete-Bts5Jwwr.cjs.map} +1 -1
  23. package/dist/{autocomplete-BDvuma6D.js → autocomplete-CI4QJXAN.js} +3 -3
  24. package/dist/{autocomplete-BDvuma6D.js.map → autocomplete-CI4QJXAN.js.map} +1 -1
  25. package/dist/autocomplete.cjs +1 -1
  26. package/dist/autocomplete.js +1 -1
  27. package/dist/avatar.cjs +1 -1
  28. package/dist/avatar.js +3 -3
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/boat-I4B1UNMc.cjs +34 -0
  32. package/dist/boat-I4B1UNMc.cjs.map +1 -0
  33. package/dist/boat-_N1x5U_3.js +191 -0
  34. package/dist/boat-_N1x5U_3.js.map +1 -0
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/breadcrumb.cjs +1 -1
  38. package/dist/breadcrumb.js +2 -2
  39. package/dist/{busy-CgzZbGfx.cjs → busy-BIUonyPk.cjs} +1 -1
  40. package/dist/{busy-CgzZbGfx.cjs.map → busy-BIUonyPk.cjs.map} +1 -1
  41. package/dist/{busy-DgQ4ux5N.js → busy-CCB3qKnh.js} +2 -2
  42. package/dist/{busy-DgQ4ux5N.js.map → busy-CCB3qKnh.js.map} +1 -1
  43. package/dist/busy.cjs +1 -1
  44. package/dist/busy.js +1 -1
  45. package/dist/{button-qbN1muQ0.js → button-C89bPnHt.js} +2 -2
  46. package/dist/{button-qbN1muQ0.js.map → button-C89bPnHt.js.map} +1 -1
  47. package/dist/{button-DFvR1iXX.cjs → button-CkwQH-g3.cjs} +1 -1
  48. package/dist/{button-DFvR1iXX.cjs.map → button-CkwQH-g3.cjs.map} +1 -1
  49. package/dist/button.cjs +4 -4
  50. package/dist/button.cjs.map +1 -1
  51. package/dist/button.js +16 -22
  52. package/dist/button.js.map +1 -1
  53. package/dist/{card-D_GlwZ5q.cjs → card-BO93_oxQ.cjs} +1 -1
  54. package/dist/{card-D_GlwZ5q.cjs.map → card-BO93_oxQ.cjs.map} +1 -1
  55. package/dist/{card-DAbr-7Vy.js → card-CFsCgJKZ.js} +2 -2
  56. package/dist/{card-DAbr-7Vy.js.map → card-CFsCgJKZ.js.map} +1 -1
  57. package/dist/card.cjs +1 -1
  58. package/dist/card.js +1 -1
  59. package/dist/{checkbox-BNORaxMF.js → checkbox-Bh7q0djq.js} +2 -2
  60. package/dist/{checkbox-BNORaxMF.js.map → checkbox-Bh7q0djq.js.map} +1 -1
  61. package/dist/{checkbox-BUY_uc_r.cjs → checkbox-CFUBUFtW.cjs} +1 -1
  62. package/dist/{checkbox-BUY_uc_r.cjs.map → checkbox-CFUBUFtW.cjs.map} +1 -1
  63. package/dist/checkbox.cjs +1 -1
  64. package/dist/checkbox.js +1 -1
  65. package/dist/{chips-Dg6Lk6BT.js → chips-6YaoRmeG.js} +145 -122
  66. package/dist/chips-6YaoRmeG.js.map +1 -0
  67. package/dist/{chips-CXZ4dJCK.cjs → chips-BfzpsyV1.cjs} +44 -33
  68. package/dist/chips-BfzpsyV1.cjs.map +1 -0
  69. package/dist/chips.cjs +1 -1
  70. package/dist/chips.js +2 -2
  71. package/dist/connectivity.cjs +1 -1
  72. package/dist/connectivity.js +3 -3
  73. package/dist/content-drawer.cjs +1 -1
  74. package/dist/content-drawer.js +1 -1
  75. package/dist/{date-range-BU6WX7d5.js → date-range-CEo_Kjqw.js} +129 -137
  76. package/dist/date-range-CEo_Kjqw.js.map +1 -0
  77. package/dist/{date-range-C-_be3_E.cjs → date-range-N-A249O9.cjs} +25 -19
  78. package/dist/date-range-N-A249O9.cjs.map +1 -0
  79. package/dist/{date-range-inline-7o7xtVIu.js → date-range-inline-BwialV9j.js} +2 -2
  80. package/dist/{date-range-inline-7o7xtVIu.js.map → date-range-inline-BwialV9j.js.map} +1 -1
  81. package/dist/{date-range-inline-DJtUmHKF.cjs → date-range-inline-DFopysWF.cjs} +1 -1
  82. package/dist/{date-range-inline-DJtUmHKF.cjs.map → date-range-inline-DFopysWF.cjs.map} +1 -1
  83. package/dist/date-range-inline.cjs +1 -1
  84. package/dist/date-range-inline.js +1 -1
  85. package/dist/date-range.cjs +1 -1
  86. package/dist/date-range.js +1 -1
  87. package/dist/delay.cjs +1 -1
  88. package/dist/delay.js +2 -2
  89. package/dist/{details-Bs0MyyvF.cjs → details-BLRPV8sY.cjs} +1 -1
  90. package/dist/{details-Bs0MyyvF.cjs.map → details-BLRPV8sY.cjs.map} +1 -1
  91. package/dist/{details-EfbDPVEo.js → details-GtpfI2hA.js} +2 -2
  92. package/dist/{details-EfbDPVEo.js.map → details-GtpfI2hA.js.map} +1 -1
  93. package/dist/details.cjs +1 -1
  94. package/dist/details.js +1 -1
  95. package/dist/{directives-zi1Mm2er.js → directives-C2dXgpCY.js} +13 -6
  96. package/dist/directives-C2dXgpCY.js.map +1 -0
  97. package/dist/{directives-fLwDj6b0.cjs → directives-CvYGSW_a.cjs} +2 -2
  98. package/dist/directives-CvYGSW_a.cjs.map +1 -0
  99. package/dist/directives.cjs +1 -1
  100. package/dist/directives.js +2 -2
  101. package/dist/{divider-CEPfrIwe.js → divider-D0pGX2VB.js} +2 -2
  102. package/dist/{divider-CEPfrIwe.js.map → divider-D0pGX2VB.js.map} +1 -1
  103. package/dist/{divider-CdIsWZrM.cjs → divider-rNsWCvMi.cjs} +1 -1
  104. package/dist/{divider-CdIsWZrM.cjs.map → divider-rNsWCvMi.cjs.map} +1 -1
  105. package/dist/divider.cjs +1 -1
  106. package/dist/divider.js +1 -1
  107. package/dist/dropdown.cjs +1 -1
  108. package/dist/dropdown.js +2 -2
  109. package/dist/{expand-g1vqqUp1.js → expand-FcKAzJta.js} +3 -3
  110. package/dist/{expand-g1vqqUp1.js.map → expand-FcKAzJta.js.map} +1 -1
  111. package/dist/{expand--at1k3qo.cjs → expand-tffQHGbZ.cjs} +1 -1
  112. package/dist/{expand--at1k3qo.cjs.map → expand-tffQHGbZ.cjs.map} +1 -1
  113. package/dist/expand.cjs +1 -1
  114. package/dist/expand.js +1 -1
  115. package/dist/fab.cjs +77 -0
  116. package/dist/fab.cjs.map +1 -0
  117. package/dist/fab.js +151 -0
  118. package/dist/fab.js.map +1 -0
  119. package/dist/{float-P9HukAm-.cjs → float-CDjgxWyy.cjs} +1 -1
  120. package/dist/{float-P9HukAm-.cjs.map → float-CDjgxWyy.cjs.map} +1 -1
  121. package/dist/{float-DxVzgI9o.js → float-CQ1WEp3M.js} +2 -2
  122. package/dist/{float-DxVzgI9o.js.map → float-CQ1WEp3M.js.map} +1 -1
  123. package/dist/float.cjs +1 -1
  124. package/dist/float.js +1 -1
  125. package/dist/{form-CqLaozHp.js → form-H24puioV.js} +3 -3
  126. package/dist/{form-CqLaozHp.js.map → form-H24puioV.js.map} +1 -1
  127. package/dist/{form-ByYhXe1p.cjs → form-VYhbbir3.cjs} +1 -1
  128. package/dist/{form-ByYhXe1p.cjs.map → form-VYhbbir3.cjs.map} +1 -1
  129. package/dist/form.cjs +6 -6
  130. package/dist/form.cjs.map +1 -1
  131. package/dist/form.js +25 -23
  132. package/dist/form.js.map +1 -1
  133. package/dist/handover/agent-runtime-followups.md +1 -1
  134. package/dist/handover/agent-runtime-v1.md +3 -3
  135. package/dist/{icons-DYtiRU5V.cjs → icons-B_a1HStW.cjs} +1 -1
  136. package/dist/{icons-DYtiRU5V.cjs.map → icons-B_a1HStW.cjs.map} +1 -1
  137. package/dist/{icons-CkphcMp6.js → icons-DBxfN91B.js} +2 -2
  138. package/dist/{icons-CkphcMp6.js.map → icons-DBxfN91B.js.map} +1 -1
  139. package/dist/icons.cjs +1 -1
  140. package/dist/icons.js +1 -1
  141. package/dist/{iframe-CjqJksl8.js → iframe-BDVElN8z.js} +2 -2
  142. package/dist/{iframe-CjqJksl8.js.map → iframe-BDVElN8z.js.map} +1 -1
  143. package/dist/{iframe-C3trkP8q.cjs → iframe-CG-z9qev.cjs} +1 -1
  144. package/dist/{iframe-C3trkP8q.cjs.map → iframe-CG-z9qev.cjs.map} +1 -1
  145. package/dist/iframe.cjs +1 -1
  146. package/dist/iframe.js +1 -1
  147. package/dist/index.cjs +1 -1
  148. package/dist/index.js +57 -56
  149. package/dist/{input-DuavpwNL.cjs → input-B14Nn6xD.cjs} +1 -1
  150. package/dist/{input-DuavpwNL.cjs.map → input-B14Nn6xD.cjs.map} +1 -1
  151. package/dist/{input-CG51zDVh.js → input-Bt_o4sYo.js} +2 -2
  152. package/dist/{input-CG51zDVh.js.map → input-Bt_o4sYo.js.map} +1 -1
  153. package/dist/{input-chip-C6Lq1927.js → input-chip-DEqO0DXc.js} +2 -2
  154. package/dist/input-chip-DEqO0DXc.js.map +1 -0
  155. package/dist/{input-chip-57tgNXKT.cjs → input-chip-ugYu9Fn9.cjs} +1 -1
  156. package/dist/input-chip-ugYu9Fn9.cjs.map +1 -0
  157. package/dist/input.cjs +1 -1
  158. package/dist/input.js +1 -1
  159. package/dist/json.cjs +1 -1
  160. package/dist/json.js +3 -3
  161. package/dist/kbd.cjs +1 -1
  162. package/dist/kbd.js +2 -2
  163. package/dist/{layout-D4IOwx7p.js → layout-BJ_43VrH.js} +1 -1
  164. package/dist/{layout-D4IOwx7p.js.map → layout-BJ_43VrH.js.map} +1 -1
  165. package/dist/{layout-6ipbiWTl.cjs → layout-DF9ZaQ-b.cjs} +1 -1
  166. package/dist/{layout-6ipbiWTl.cjs.map → layout-DF9ZaQ-b.cjs.map} +1 -1
  167. package/dist/layout.cjs +1 -1
  168. package/dist/layout.js +2 -2
  169. package/dist/{lightbox-H8pVWGMX.cjs → lightbox-B47Zoqv-.cjs} +1 -1
  170. package/dist/{lightbox-H8pVWGMX.cjs.map → lightbox-B47Zoqv-.cjs.map} +1 -1
  171. package/dist/{lightbox-CsyO2XSr.js → lightbox-ZmuoBBFT.js} +2 -2
  172. package/dist/{lightbox-CsyO2XSr.js.map → lightbox-ZmuoBBFT.js.map} +1 -1
  173. package/dist/lightbox.cjs +1 -1
  174. package/dist/lightbox.js +1 -1
  175. package/dist/{list-BAwH0pQW.js → list-C47xzld_.js} +2 -2
  176. package/dist/{list-BAwH0pQW.js.map → list-C47xzld_.js.map} +1 -1
  177. package/dist/{list-Bs9m8kw7.cjs → list-CaSWrlG2.cjs} +1 -1
  178. package/dist/{list-Bs9m8kw7.cjs.map → list-CaSWrlG2.cjs.map} +1 -1
  179. package/dist/list.cjs +1 -1
  180. package/dist/list.js +1 -1
  181. package/dist/{menu-tQVARVaC.js → menu-8RObM6Ie.js} +3 -3
  182. package/dist/{menu-tQVARVaC.js.map → menu-8RObM6Ie.js.map} +1 -1
  183. package/dist/{menu-BMcGzj1h.cjs → menu-Jpsy85SX.cjs} +1 -1
  184. package/dist/{menu-BMcGzj1h.cjs.map → menu-Jpsy85SX.cjs.map} +1 -1
  185. package/dist/menu.cjs +1 -1
  186. package/dist/menu.js +1 -1
  187. package/dist/{mixins-CGXSzZc7.cjs → mixins-DPdzC9ZH.cjs} +1 -1
  188. package/dist/{mixins-CGXSzZc7.cjs.map → mixins-DPdzC9ZH.cjs.map} +1 -1
  189. package/dist/{mixins-Bp0wIHg2.js → mixins-DTzfFVyv.js} +1 -1
  190. package/dist/{mixins-Bp0wIHg2.js.map → mixins-DTzfFVyv.js.map} +1 -1
  191. package/dist/mixins.cjs +1 -1
  192. package/dist/mixins.js +2 -2
  193. package/dist/nav-drawer.cjs +1 -1
  194. package/dist/nav-drawer.js +1 -1
  195. package/dist/navigation-bar.cjs +1 -1
  196. package/dist/navigation-bar.js +1 -1
  197. package/dist/navigation-rail.cjs +1 -1
  198. package/dist/navigation-rail.js +2 -2
  199. package/dist/{notification-D1tX2nx5.js → notification-Ccktcj9H.js} +4 -4
  200. package/dist/{notification-D1tX2nx5.js.map → notification-Ccktcj9H.js.map} +1 -1
  201. package/dist/{notification-Bz00zdpV.cjs → notification-DSkB-sn0.cjs} +1 -1
  202. package/dist/{notification-Bz00zdpV.cjs.map → notification-DSkB-sn0.cjs.map} +1 -1
  203. package/dist/notification.cjs +1 -1
  204. package/dist/notification.js +1 -1
  205. package/dist/{option-BnybLEDO.cjs → option-0aNiVB3Q.cjs} +1 -1
  206. package/dist/{option-BnybLEDO.cjs.map → option-0aNiVB3Q.cjs.map} +1 -1
  207. package/dist/{option-BpGV8Apj.js → option-CkMxwBqU.js} +2 -2
  208. package/dist/{option-BpGV8Apj.js.map → option-CkMxwBqU.js.map} +1 -1
  209. package/dist/option.cjs +1 -1
  210. package/dist/option.js +1 -1
  211. package/dist/{overlay-UQR2Dy3u.cjs → overlay-BS-ta-zq.cjs} +5 -5
  212. package/dist/overlay-BS-ta-zq.cjs.map +1 -0
  213. package/dist/{overlay-BpNhd74N.js → overlay-H3Wt_dgQ.js} +108 -108
  214. package/dist/overlay-H3Wt_dgQ.js.map +1 -0
  215. package/dist/overlay.cjs +1 -1
  216. package/dist/{overlay.confirm-body-CVDtVk5X.cjs → overlay.confirm-body-CR9xaqOE.cjs} +1 -1
  217. package/dist/{overlay.confirm-body-CVDtVk5X.cjs.map → overlay.confirm-body-CR9xaqOE.cjs.map} +1 -1
  218. package/dist/{overlay.confirm-body-BHcXu5Wk.js → overlay.confirm-body-Dxn_wNm3.js} +6 -6
  219. package/dist/{overlay.confirm-body-BHcXu5Wk.js.map → overlay.confirm-body-Dxn_wNm3.js.map} +1 -1
  220. package/dist/overlay.js +3 -3
  221. package/dist/{overlay.service-DTE6NwIM.js → overlay.service-C46kOtUi.js} +2 -2
  222. package/dist/{overlay.service-DTE6NwIM.js.map → overlay.service-C46kOtUi.js.map} +1 -1
  223. package/dist/{overlay.service-C8RsQzgM.cjs → overlay.service-DEj3rfRr.cjs} +1 -1
  224. package/dist/{overlay.service-C8RsQzgM.cjs.map → overlay.service-DEj3rfRr.cjs.map} +1 -1
  225. package/dist/{progress-CAKsxp29.js → progress-BK7gSq8j.js} +2 -2
  226. package/dist/{progress-CAKsxp29.js.map → progress-BK7gSq8j.js.map} +1 -1
  227. package/dist/{progress-gbIALDRs.cjs → progress-zs18GR6C.cjs} +1 -1
  228. package/dist/{progress-gbIALDRs.cjs.map → progress-zs18GR6C.cjs.map} +1 -1
  229. package/dist/progress.cjs +1 -1
  230. package/dist/progress.js +1 -1
  231. package/dist/{radio-group-otyvZvUk.js → radio-group-1HCpzRUB.js} +2 -2
  232. package/dist/{radio-group-otyvZvUk.js.map → radio-group-1HCpzRUB.js.map} +1 -1
  233. package/dist/{radio-group-CfJ5DtI4.cjs → radio-group-DbYlyPc-.cjs} +1 -1
  234. package/dist/{radio-group-CfJ5DtI4.cjs.map → radio-group-DbYlyPc-.cjs.map} +1 -1
  235. package/dist/radio-group.cjs +1 -1
  236. package/dist/radio-group.js +1 -1
  237. package/dist/range.cjs +1 -1
  238. package/dist/range.js +2 -2
  239. package/dist/{select-81jniVTs.cjs → select-B-SSmUDe.cjs} +1 -1
  240. package/dist/{select-81jniVTs.cjs.map → select-B-SSmUDe.cjs.map} +1 -1
  241. package/dist/{select-9vXx1fhr.js → select-CEyhNtZ2.js} +3 -3
  242. package/dist/{select-9vXx1fhr.js.map → select-CEyhNtZ2.js.map} +1 -1
  243. package/dist/select.cjs +1 -1
  244. package/dist/select.js +1 -1
  245. package/dist/skeleton.cjs +1 -1
  246. package/dist/skeleton.js +2 -2
  247. package/dist/skills/INDEX.md +1 -1
  248. package/dist/skills/SKILL.md +6 -7
  249. package/dist/skills/boat.md +21 -15
  250. package/dist/skills/fab.md +75 -0
  251. package/dist/skills/schmancy/INDEX.md +1 -1
  252. package/dist/skills/schmancy/SKILL.md +6 -7
  253. package/dist/skills/schmancy/boat.md +21 -15
  254. package/dist/skills/schmancy/fab.md +75 -0
  255. package/dist/skills/schmancy/theme.md +1 -1
  256. package/dist/skills/theme.md +1 -1
  257. package/dist/slider.cjs +1 -1
  258. package/dist/slider.js +2 -2
  259. package/dist/{sound.service-D3ZSq1Kj.js → sound.service-DO4SmUUT.js} +1 -1
  260. package/dist/{sound.service-D3ZSq1Kj.js.map → sound.service-DO4SmUUT.js.map} +1 -1
  261. package/dist/{sound.service-CmIw63aM.cjs → sound.service-G_8GV_6L.cjs} +1 -1
  262. package/dist/{sound.service-CmIw63aM.cjs.map → sound.service-G_8GV_6L.cjs.map} +1 -1
  263. package/dist/{splash-screen-BOjrmGLk.js → splash-screen-B1mM4_xz.js} +2 -2
  264. package/dist/{splash-screen-BOjrmGLk.js.map → splash-screen-B1mM4_xz.js.map} +1 -1
  265. package/dist/{splash-screen-C5KAWXvA.cjs → splash-screen-cbz4bxjB.cjs} +1 -1
  266. package/dist/{splash-screen-C5KAWXvA.cjs.map → splash-screen-cbz4bxjB.cjs.map} +1 -1
  267. package/dist/splash-screen.cjs +1 -1
  268. package/dist/splash-screen.js +1 -1
  269. package/dist/{src-Bm1vop0l.cjs → src-czeiuT1m.cjs} +1 -1
  270. package/dist/{src-Bm1vop0l.cjs.map → src-czeiuT1m.cjs.map} +1 -1
  271. package/dist/{src-DoOhMBtI.js → src-tncsWsTY.js} +36 -35
  272. package/dist/{src-DoOhMBtI.js.map → src-tncsWsTY.js.map} +1 -1
  273. package/dist/{state-Cex3rmx2.cjs → state-Cx0aoL5e.cjs} +1 -1
  274. package/dist/{state-Cex3rmx2.cjs.map → state-Cx0aoL5e.cjs.map} +1 -1
  275. package/dist/{state-CWBRTSvE.js → state-DJDp3N7J.js} +1 -1
  276. package/dist/{state-CWBRTSvE.js.map → state-DJDp3N7J.js.map} +1 -1
  277. package/dist/state.cjs +1 -1
  278. package/dist/state.js +2 -2
  279. package/dist/steps.cjs +1 -1
  280. package/dist/steps.js +2 -2
  281. package/dist/{surface-PfiejLuw.cjs → surface-C3cxTcJD.cjs} +1 -1
  282. package/dist/{surface-PfiejLuw.cjs.map → surface-C3cxTcJD.cjs.map} +1 -1
  283. package/dist/{surface-9S5scTsD.js → surface-CYBl8_a3.js} +2 -2
  284. package/dist/{surface-9S5scTsD.js.map → surface-CYBl8_a3.js.map} +1 -1
  285. package/dist/surface.cjs +1 -1
  286. package/dist/surface.js +1 -1
  287. package/dist/switch.cjs +1 -1
  288. package/dist/switch.js +2 -2
  289. package/dist/table.cjs +1 -1
  290. package/dist/table.js +2 -2
  291. package/dist/{tabs-BBOjAmgG.js → tabs-DHy93Q3N.js} +2 -2
  292. package/dist/{tabs-BBOjAmgG.js.map → tabs-DHy93Q3N.js.map} +1 -1
  293. package/dist/{tabs-uYvb1P06.cjs → tabs-ORQ_Zd43.cjs} +1 -1
  294. package/dist/{tabs-uYvb1P06.cjs.map → tabs-ORQ_Zd43.cjs.map} +1 -1
  295. package/dist/tabs.cjs +1 -1
  296. package/dist/tabs.js +1 -1
  297. package/dist/teleport.cjs +1 -1
  298. package/dist/teleport.js +1 -1
  299. package/dist/{textarea-YPHX4g7Y.cjs → textarea-CEUaDURR.cjs} +1 -1
  300. package/dist/{textarea-YPHX4g7Y.cjs.map → textarea-CEUaDURR.cjs.map} +1 -1
  301. package/dist/{textarea-QzSj8Dkl.js → textarea-DHIMt-ly.js} +2 -2
  302. package/dist/{textarea-QzSj8Dkl.js.map → textarea-DHIMt-ly.js.map} +1 -1
  303. package/dist/textarea.cjs +1 -1
  304. package/dist/textarea.js +1 -1
  305. package/dist/theme-CJpjkqHr.cjs +181 -0
  306. package/dist/{theme-iKUaS9JB.cjs.map → theme-CJpjkqHr.cjs.map} +1 -1
  307. package/dist/{theme-C2Mp-VGt.js → theme-CgI9PRco.js} +6 -5
  308. package/dist/{theme-C2Mp-VGt.js.map → theme-CgI9PRco.js.map} +1 -1
  309. package/dist/{theme-button-CJmhxfMe.cjs → theme-button--FuBkuVr.cjs} +1 -1
  310. package/dist/{theme-button-CJmhxfMe.cjs.map → theme-button--FuBkuVr.cjs.map} +1 -1
  311. package/dist/{theme-button-DGWAXhzd.js → theme-button-D-FXb3oO.js} +2 -2
  312. package/dist/{theme-button-DGWAXhzd.js.map → theme-button-D-FXb3oO.js.map} +1 -1
  313. package/dist/theme-button.cjs +1 -1
  314. package/dist/theme-button.js +1 -1
  315. package/dist/theme.cjs +1 -1
  316. package/dist/theme.js +3 -3
  317. package/dist/{theme.service-hc4N-1Oz.js → theme.service-BfTK1Wtl.js} +1 -1
  318. package/dist/{theme.service-hc4N-1Oz.js.map → theme.service-BfTK1Wtl.js.map} +1 -1
  319. package/dist/{theme.service-p61RsJBF.cjs → theme.service-Dg7LO0Qz.cjs} +1 -1
  320. package/dist/{theme.service-p61RsJBF.cjs.map → theme.service-Dg7LO0Qz.cjs.map} +1 -1
  321. package/dist/tree.cjs +1 -1
  322. package/dist/tree.js +2 -2
  323. package/dist/{typography-DwV0sqht.js → typography-BEGLfHwz.js} +2 -2
  324. package/dist/{typography-DwV0sqht.js.map → typography-BEGLfHwz.js.map} +1 -1
  325. package/dist/{typography-Bdt8RlX2.cjs → typography-CxA3sx9B.cjs} +1 -1
  326. package/dist/{typography-Bdt8RlX2.cjs.map → typography-CxA3sx9B.cjs.map} +1 -1
  327. package/dist/typography.cjs +1 -1
  328. package/dist/typography.js +1 -1
  329. package/dist/visually-hidden.cjs +1 -1
  330. package/dist/visually-hidden.js +2 -2
  331. package/dist/{window-n4jN60B_.js → window-B_n4P9az.js} +3 -3
  332. package/dist/{window-n4jN60B_.js.map → window-B_n4P9az.js.map} +1 -1
  333. package/dist/{window-D2WfvNng.cjs → window-Vl1u1-EG.cjs} +1 -1
  334. package/dist/{window-D2WfvNng.cjs.map → window-Vl1u1-EG.cjs.map} +1 -1
  335. package/dist/window.cjs +1 -1
  336. package/dist/window.js +1 -1
  337. package/package.json +1 -1
  338. package/skills/schmancy/INDEX.md +1 -1
  339. package/skills/schmancy/SKILL.md +6 -7
  340. package/skills/schmancy/boat.md +21 -15
  341. package/skills/schmancy/fab.md +75 -0
  342. package/skills/schmancy/theme.md +1 -1
  343. package/src/CLAUDE.md +22 -16
  344. package/src/boat/boat.test.ts +130 -0
  345. package/src/boat/boat.ts +192 -186
  346. package/src/button/icon-button.ts +18 -30
  347. package/src/chips/assist-chip.ts +2 -263
  348. package/src/chips/chips.ts +2 -259
  349. package/src/chips/filter-chip.ts +2 -255
  350. package/src/chips/index.ts +2 -5
  351. package/src/chips/input-chip.ts +2 -413
  352. package/src/chips/suggestion-chip.ts +2 -266
  353. package/src/directives/fill.ts +28 -5
  354. package/src/fab/fab.test.ts +101 -0
  355. package/src/fab/fab.ts +226 -0
  356. package/src/fab/index.ts +1 -0
  357. package/src/form/fields/chips/assist-chip.ts +263 -0
  358. package/src/form/fields/chips/chips.ts +234 -0
  359. package/src/form/fields/chips/filter-chip.ts +255 -0
  360. package/src/form/fields/chips/index.ts +5 -0
  361. package/src/form/fields/chips/input-chip.ts +413 -0
  362. package/src/form/fields/chips/suggestion-chip.ts +266 -0
  363. package/src/form/fields/date-range/date-range.test.ts +44 -0
  364. package/src/form/fields/date-range/date-range.ts +103 -97
  365. package/src/form/fields/index.ts +1 -0
  366. package/src/index.ts +2 -1
  367. package/src/overlay/overlay.animations.ts +2 -3
  368. package/src/overlay/overlay.component.ts +8 -4
  369. package/src/overlay/overlay.types.ts +14 -2
  370. package/src/theme/theme.component.ts +1 -0
  371. package/src/theme/theme.style.css +3 -0
  372. package/types/src/boat/boat.d.ts +40 -25
  373. package/types/src/boat/boat.test.d.ts +2 -0
  374. package/types/src/button/icon-button.d.ts +3 -2
  375. package/types/src/chips/assist-chip.d.ts +1 -47
  376. package/types/src/chips/chips.d.ts +1 -43
  377. package/types/src/chips/filter-chip.d.ts +1 -67
  378. package/types/src/chips/index.d.ts +1 -5
  379. package/types/src/chips/input-chip.d.ts +1 -82
  380. package/types/src/chips/suggestion-chip.d.ts +1 -52
  381. package/types/src/fab/fab.d.ts +80 -0
  382. package/types/src/fab/fab.test.d.ts +2 -0
  383. package/types/src/fab/index.d.ts +1 -0
  384. package/types/src/form/fields/chips/assist-chip.d.ts +47 -0
  385. package/types/src/form/fields/chips/chips.d.ts +35 -0
  386. package/types/src/form/fields/chips/filter-chip.d.ts +67 -0
  387. package/types/src/form/fields/chips/index.d.ts +5 -0
  388. package/types/src/form/fields/chips/input-chip.d.ts +82 -0
  389. package/types/src/form/fields/chips/suggestion-chip.d.ts +52 -0
  390. package/types/src/form/fields/date-range/date-range.d.ts +5 -10
  391. package/types/src/form/fields/index.d.ts +1 -0
  392. package/types/src/index.d.ts +2 -1
  393. package/types/src/overlay/overlay.component.d.ts +1 -0
  394. package/types/src/overlay/overlay.types.d.ts +12 -2
  395. package/types/src/theme/theme.component.d.ts +1 -0
  396. package/dist/SchmancyElement-CA0Wqt8m.js +0 -284
  397. package/dist/SchmancyElement-CA0Wqt8m.js.map +0 -1
  398. package/dist/SchmancyElement-CYIif26I.cjs +0 -2
  399. package/dist/SchmancyElement-CYIif26I.cjs.map +0 -1
  400. package/dist/boat-BgpWcLnV.cjs +0 -38
  401. package/dist/boat-BgpWcLnV.cjs.map +0 -1
  402. package/dist/boat-Y5UMiJCV.js +0 -216
  403. package/dist/boat-Y5UMiJCV.js.map +0 -1
  404. package/dist/chips-CXZ4dJCK.cjs.map +0 -1
  405. package/dist/chips-Dg6Lk6BT.js.map +0 -1
  406. package/dist/date-range-BU6WX7d5.js.map +0 -1
  407. package/dist/date-range-C-_be3_E.cjs.map +0 -1
  408. package/dist/directives-fLwDj6b0.cjs.map +0 -1
  409. package/dist/directives-zi1Mm2er.js.map +0 -1
  410. package/dist/input-chip-57tgNXKT.cjs.map +0 -1
  411. package/dist/input-chip-C6Lq1927.js.map +0 -1
  412. package/dist/overlay-BpNhd74N.js.map +0 -1
  413. package/dist/overlay-UQR2Dy3u.cjs.map +0 -1
  414. package/dist/theme-iKUaS9JB.cjs +0 -181
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-CEo_Kjqw.js","names":[],"sources":["../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/quarterOfYear.js","../src/form/fields/date-range/date-range-helpers.ts","../src/form/fields/date-range/date-range-presets.ts","../src/form/fields/date-range/date-utils.ts","../src/form/fields/date-range/date-range-dialog.ts","../src/form/fields/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|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,M={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(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(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,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('ddd, MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('ddd MMM D, YYYY')}${fromTime} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import { SchmancyElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { DateRangePreset, PresetCategory } from './date-range-presets'\n\ninterface PresetGroup {\n\tname: string\n\tpresets: DateRangePreset[]\n}\n\n/**\n * Dialog content component for date range selection\n *\n * Redesigned with chip-based horizontal flow layout:\n * - Quick Select: Today, Yesterday, This Week, This Month\n * - Days: Last 7/14/30/60/90 Days\n * - Periods: Last Week, Last Month, Last Quarter, Last Year\n * - Year to Date: This Week, This Month, This Quarter, This Year, YTD\n * - Custom Range: Manual date inputs at the bottom\n *\n * @element schmancy-date-range-dialog\n */\n@customElement('schmancy-date-range-dialog')\nexport class SchmancyDateRangeDialog extends SchmancyElement {\n\tstatic styles = [css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\tpadding: 1.5rem;\n\t\t}\n\t`]\n\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\t@property({ type: String }) activePreset: string | null = null\n\t@property({ type: Array }) presetCategories: PresetCategory[] = []\n\n\t/**\n\t * Reorganizes presets into the new grouped layout\n\t */\n\tprivate getPresetGroups(): PresetGroup[] {\n\t\tconst allPresets = this.presetCategories.flatMap(c => c.presets)\n\n\t\t// Quick Select: Today, Yesterday, This Week, This Month\n\t\tconst quickSelectLabels = ['Today', 'Yesterday', 'This Week', 'This Month']\n\t\tconst quickSelect = quickSelectLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Days: Last 7/14/30/60/90 Days\n\t\tconst daysLabels = ['Last 7 Days', 'Last 14 Days', 'Last 30 Days', 'Last 60 Days', 'Last 90 Days']\n\t\tconst days = daysLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Periods: Last Week, Last Month, Last Quarter, Last Year\n\t\tconst periodsLabels = ['Last Week', 'Last Month', 'Last Quarter', 'Last Year']\n\t\tconst periods = periodsLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Year to Date: This Week, This Month, This Quarter, This Year, YTD\n\t\tconst ytdLabels = ['This Week', 'This Month', 'This Quarter', 'This Year', 'Year to Date']\n\t\tconst yearToDate = ytdLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\tconst groups: PresetGroup[] = []\n\n\t\tif (quickSelect.length > 0) {\n\t\t\tgroups.push({ name: 'Quick Select', presets: quickSelect })\n\t\t}\n\t\tif (days.length > 0) {\n\t\t\tgroups.push({ name: 'Days', presets: days })\n\t\t}\n\t\tif (periods.length > 0) {\n\t\t\tgroups.push({ name: 'Periods', presets: periods })\n\t\t}\n\t\tif (yearToDate.length > 0) {\n\t\t\tgroups.push({ name: 'Year to Date', presets: yearToDate })\n\t\t}\n\n\t\treturn groups\n\t}\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom = { ...this.dateFrom, value: input.value }\n\n\t\t// If the new start date is after the current end date, adjust the end date\n\t\tif (this.dateTo.value && dayjs(this.dateFrom.value).isAfter(dayjs(this.dateTo.value))) {\n\t\t\tthis.dateTo = { ...this.dateTo, value: this.dateFrom.value }\n\t\t}\n\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo = { ...this.dateTo, value: input.value }\n\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\t// Parent <schmancy-date-range> listens for `preset-select`, applies\n\t\t// the range, and dispatches 'close' on us — `show()` tears down.\n\t\tthis.dispatchEvent(new CustomEvent('preset-select', {\n\t\t\tdetail: { preset },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.dispatchEvent(new CustomEvent('announce', {\n\t\t\t\tdetail: { message: 'Invalid date format. Please check your input.' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true\n\t\t\t}))\n\t\t\treturn\n\t\t}\n\n\t\t// Parent <schmancy-date-range> listens for `apply-dates`, applies the\n\t\t// range, and dispatches 'close' on us — `show()` tears down.\n\t\tthis.dispatchEvent(new CustomEvent('apply-dates', {\n\t\t\tdetail: {\n\t\t\t\tdateFrom: this.dateFrom.value,\n\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\tswapIfNeeded: fromDate.isAfter(toDate)\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\trender() {\n\t\tconst presetGroups = this.getPresetGroups()\n\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Preset Groups Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0 space-y-4\">\n\t\t\t\t\t${repeat(\n\t\t\t\t\t\tpresetGroups,\n\t\t\t\t\t\tgroup => group.name,\n\t\t\t\t\t\tgroup => html`\n\t\t\t\t\t\t\t<div class=\"space-y-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${group.name}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div class=\"flex flex-wrap gap-2\">\n\t\t\t\t\t\t\t\t\t${repeat(\n\t\t\t\t\t\t\t\t\t\tgroup.presets,\n\t\t\t\t\t\t\t\t\t\tpreset => preset.label,\n\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-filter-chip\n\t\t\t\t\t\t\t\t\t\t\t\t.value=${preset.label}\n\t\t\t\t\t\t\t\t\t\t\t\t.selected=${this.activePreset === preset.label}\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => this.handlePresetSelection(preset, e)}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t${preset.label}\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-filter-chip>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Divider -->\n\t\t\t\t<schmancy-divider class=\"my-4\"></schmancy-divider>\n\n\t\t\t\t<!-- Custom Range Section -->\n\t\t\t\t<div class=\"space-y-2\">\n\t\t\t\t\t<div class=\"flex items-end gap-3 flex-wrap\">\n\t\t\t\t\t\t<div class=\"flex-1 min-w-[140px]\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.label=\"${this.dateFrom.label || 'From'}\"\n\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange}\"\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"flex-1 min-w-[140px]\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.label=\"${this.dateTo.label || 'To'}\"\n\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange}\"\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range-dialog': SchmancyDateRangeDialog\n\t}\n}\n","import dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, nothing, PropertyValues } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { concat, exhaustMap, finalize, fromEvent, map, merge, of, Subject, switchMap, takeUntil, tap, timer } from 'rxjs'\nimport { SchmancyFormField } from '@mixins/index'\nimport { show } from '../../../overlay/overlay.service'\nimport { detectDateRangeType, formatDateRange } from './date-range-helpers'\nimport { DateRangePreset, generatePresetCategories, PresetCategory } from './date-range-presets'\nimport { validateInitialDateRange } from './date-utils'\nimport './date-range-dialog'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\n// Bridge the inner-content events used inside the overlay template down to a\n// `close` event on the same element. `show()` translates a bubbling 'close'\n// event into observable completion + an emission of `event.detail`.\nconst dispatchClose = (target: EventTarget | null): void => {\n\ttarget?.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }))\n}\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends SchmancyFormField() {\n\t// `name`, `disabled`, `required`, `error`, `validationMessage`, `id`,\n\t// `validateOn`, `touched`, `submitted`, `markTouched`, `markSubmitted`,\n\t// FACE wiring, FIELD_CONNECT_EVENT dispatch — all from the mixin.\n\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\t@property() step?: 'day' | 'week' | 'month' | 'year' | number\n\t/** When true, collapses to just an icon button on mobile screens */\n\t@property({ type: Boolean }) collapse = false\n\n\t// Session inputs — driven by handlers, consumed by the single pipeline\n\t// in connectedCallback (rxjs ONE_PIPELINE_ONE_SUBSCRIBE / SESSIONS).\n\tprivate readonly open$ = new Subject<MouseEvent | undefined>()\n\tprivate readonly close$ = new Subject<void>()\n\tprivate readonly announce$ = new Subject<string>()\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t\t// Reset open state when element is moved/removed to prevent stale state\n\t\tthis.isOpen = false\n\t}\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// One pipeline, one subscribe (rxjs ONE_PIPELINE_ONE_SUBSCRIBE): the\n\t\t// dropdown open/close session, screen-reader announcements, and\n\t\t// document keyboard navigation merge into a single chain torn down by\n\t\t// takeUntil(this.disconnecting).\n\t\tmerge(\n\t\t\t// Dropdown is a session (rxjs SESSIONS_USE_HIGHER_ORDER_OBSERVABLES):\n\t\t\t// open$ opens the overlay; show() completes when an inner handler\n\t\t\t// dispatches `close`, close$ dismisses it externally; finalize\n\t\t\t// resets isOpen on either teardown path.\n\t\t\tthis.open$.pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis.dispatchEvent(new CustomEvent('beforeopen', { bubbles: true, composed: true }))\n\t\t\t\t\tthis.isOpen = true\n\t\t\t\t}),\n\t\t\t\texhaustMap(anchor =>\n\t\t\t\t\tshow(\n\t\t\t\t\t\thtml`\n\t\t\t\t\t\t\t<schmancy-date-range-dialog\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.dateFrom=\"${this.dateFrom}\"\n\t\t\t\t\t\t\t\t.dateTo=\"${this.dateTo}\"\n\t\t\t\t\t\t\t\t.minDate=\"${this.minDate}\"\n\t\t\t\t\t\t\t\t.maxDate=\"${this.maxDate}\"\n\t\t\t\t\t\t\t\t.activePreset=\"${this.activePreset}\"\n\t\t\t\t\t\t\t\t.presetCategories=\"${this.presetCategories}\"\n\t\t\t\t\t\t\t\t@preset-select=\"${(ev: CustomEvent) => {\n\t\t\t\t\t\t\t\t\tthis.activePreset = ev.detail.preset.label\n\t\t\t\t\t\t\t\t\tthis.setDateRange(ev.detail.preset.range.dateFrom, ev.detail.preset.range.dateTo)\n\t\t\t\t\t\t\t\t\tdispatchClose(ev.currentTarget)\n\t\t\t\t\t\t\t\t}}\"\n\t\t\t\t\t\t\t\t@date-change=\"${() => this.updateSelectedDateRange()}\"\n\t\t\t\t\t\t\t\t@apply-dates=\"${(ev: CustomEvent) => {\n\t\t\t\t\t\t\t\t\tconst { dateFrom, dateTo, swapIfNeeded } = ev.detail\n\t\t\t\t\t\t\t\t\tif (swapIfNeeded) {\n\t\t\t\t\t\t\t\t\t\tthis.setDateRange(dateTo, dateFrom)\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdispatchClose(ev.currentTarget)\n\t\t\t\t\t\t\t\t}}\"\n\t\t\t\t\t\t\t\t@announce=\"${(ev: CustomEvent) => this.announce$.next(ev.detail.message)}\"\n\t\t\t\t\t\t\t></schmancy-date-range-dialog>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t{ anchor },\n\t\t\t\t\t).pipe(\n\t\t\t\t\t\ttakeUntil(this.close$),\n\t\t\t\t\t\tfinalize(() => {\n\t\t\t\t\t\t\tthis.isOpen = false\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\t// Announcements (rxjs LIFT_EVERY_ASYNC_SOURCE): one Subject, one\n\t\t\t// switchMap-cleared timer — not a fresh timer().subscribe() per call.\n\t\t\tthis.announce$.pipe(\n\t\t\t\tswitchMap(message => concat(of(message), timer(100).pipe(map(() => '')))),\n\t\t\t\ttap(message => {\n\t\t\t\t\tthis.announceMessage = message\n\t\t\t\t}),\n\t\t\t),\n\t\t\t// Document keyboard navigation.\n\t\t\tfromEvent<KeyboardEvent>(document, 'keydown').pipe(tap(event => this.handleKeyboardNavigation(event))),\n\t\t)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\toverride willUpdate(changed: PropertyValues): void {\n\t\tsuper.willUpdate(changed)\n\t\tif (changed.has('dateFrom') || changed.has('dateTo') || changed.has('name')) {\n\t\t\t// Multi-entry FACE submission: setFormValue accepts a FormData\n\t\t\t// object whose entries are appended to the owning form's FormData.\n\t\t\t// native `new FormData(form)` then sees both `${name}From` and\n\t\t\t// `${name}To` without any consumer-side parsing.\n\t\t\tif (this.name && !this.disabled) {\n\t\t\t\tconst fd = new FormData()\n\t\t\t\tif (this.dateFrom?.value) fd.append(`${this.name}From`, this.dateFrom.value)\n\t\t\t\tif (this.dateTo?.value) fd.append(`${this.name}To`, this.dateTo.value)\n\t\t\t\tthis.internals?.setFormValue(fd)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setFormValue(null)\n\t\t\t}\n\t\t\tthis.checkValidity()\n\t\t}\n\t\tif (changed.has('required') || changed.has('disabled')) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\n\t/**\n\t * Date-range validity is `both dates non-empty` when required.\n\t * (Order/range constraints are out of scope here — they belong to a\n\t * domain-specific schema layer.)\n\t */\n\toverride checkValidity(): boolean {\n\t\tif (this.disabled) {\n\t\t\tthis.internals?.setValidity({})\n\t\t\treturn true\n\t\t}\n\t\tconst fromEmpty = !this.dateFrom?.value\n\t\tconst toEmpty = !this.dateTo?.value\n\t\tconst isValid = !this.required || (!fromEmpty && !toEmpty)\n\t\tconst message = isValid ? '' : 'Please select a date range.'\n\n\t\tthis.internals?.setValidity(\n\t\t\tisValid ? {} : { valueMissing: true },\n\t\t\tisValid ? undefined : message,\n\t\t)\n\n\t\tif (this._shouldShowError()) {\n\t\t\tthis.error = !isValid\n\t\t\tthis.validationMessage = message\n\t\t}\n\t\treturn isValid\n\t}\n\n\t/**\n\t * Override — emit `${name}From` and `${name}To` flat-suffix entries (the\n\t * plan's chosen multi-entry encoding; native to JS consumers without\n\t * server-side bracket parsing).\n\t */\n\toverride toFormEntries(): Array<[string, FormDataEntryValue]> {\n\t\tif (!this.name || this.disabled) return []\n\t\tconst entries: Array<[string, FormDataEntryValue]> = []\n\t\tif (this.dateFrom?.value) entries.push([`${this.name}From`, this.dateFrom.value])\n\t\tif (this.dateTo?.value) entries.push([`${this.name}To`, this.dateTo.value])\n\t\treturn entries\n\t}\n\n\t/** `dirty` tracks the underlying date strings, not the wide-union value. */\n\tprivate dateFromDefault: string = ''\n\tprivate dateToDefault: string = ''\n\toverride firstUpdated(changed: PropertyValues): void {\n\t\tsuper.firstUpdated(changed)\n\t\tthis.dateFromDefault = this.dateFrom?.value ?? ''\n\t\tthis.dateToDefault = this.dateTo?.value ?? ''\n\t}\n\toverride get dirty(): boolean {\n\t\treturn (\n\t\t\t(this.dateFrom?.value ?? '') !== this.dateFromDefault ||\n\t\t\t(this.dateTo?.value ?? '') !== this.dateToDefault\n\t\t)\n\t}\n\n\toverride resetForm(): void {\n\t\tthis.dateFrom = { ...this.dateFrom, value: this.dateFromDefault }\n\t\tthis.dateTo = { ...this.dateTo, value: this.dateToDefault }\n\t\tsuper.resetForm()\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announce$.next(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate toggleDropdown(e: MouseEvent) {\n\t\te.stopPropagation()\n\t\tif (this.disabled || this.step !== undefined) return\n\t\t// Drive the session pipeline (connectedCallback) — no imperative\n\t\t// open/close, no manual subscription field.\n\t\tif (this.isOpen) {\n\t\t\tthis.close$.next()\n\t\t} else {\n\t\t\tthis.open$.next(e)\n\t\t}\n\t}\n\n\t/**\n\t * Shifts the date range based on the step property\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\t\tconst daysDiff = toDate.diff(fromDate, 'day') + 1\n\n\t\t// Determine shift amount and unit\n\t\tlet amount: number\n\t\tlet unit: dayjs.ManipulateType\n\n\t\tif (this.step !== undefined) {\n\t\t\tif (typeof this.step === 'number') {\n\t\t\t\tamount = dir * this.step\n\t\t\t\tunit = 'day'\n\t\t\t} else if (this.step === 'day') {\n\t\t\t\tamount = dir * daysDiff\n\t\t\t\tunit = 'day'\n\t\t\t} else {\n\t\t\t\tamount = dir\n\t\t\t\tunit = this.step\n\t\t\t}\n\t\t} else {\n\t\t\t// Auto-detect based on date range\n\t\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\t\t\tif (rangeType.isFullYear) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'year'\n\t\t\t} else if (rangeType.isFullMonth) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'month'\n\t\t\t} else if (rangeType.isFullWeek) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'week'\n\t\t\t} else {\n\t\t\t\tamount = dir * daysDiff\n\t\t\t\tunit = 'day'\n\t\t\t}\n\t\t}\n\n\t\tconst newFromDate = fromDate.add(amount, unit)\n\t\tconst newToDate = toDate.add(amount, unit)\n\n\t\t// Validate against min/max dates\n\t\tif (this.minDate && newFromDate.isBefore(dayjs(this.minDate))) return\n\t\tif (this.maxDate && newToDate.isAfter(dayjs(this.maxDate))) return\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\t/**\n\t * Check if we can navigate backward\n\t */\n\tprivate canNavigateBackward(): boolean {\n\t\tif (!this.dateFrom.value || !this.minDate) return true\n\t\t\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst minDate = dayjs(this.minDate)\n\t\t\n\t\t// If current start date is already at or before min date, can't go back\n\t\treturn fromDate.isAfter(minDate)\n\t}\n\n\t/**\n\t * Check if we can navigate forward\n\t */\n\tprivate canNavigateForward(): boolean {\n\t\tif (!this.dateTo.value || !this.maxDate) return true\n\t\t\n\t\tconst toDate = dayjs(this.dateTo.value)\n\t\tconst maxDate = dayjs(this.maxDate)\n\t\t\n\t\t// If current end date is already at or after max date, can't go forward\n\t\treturn toDate.isBefore(maxDate)\n\t}\n\n\n\trender() {\n\t\t// Step 6 — validity is two surfaces: when checkValidity() has flipped\n\t\t// `error` (gated by `_shouldShowError`), the control must visibly carry\n\t\t// the invalid treatment AND render the message. Platform validity is\n\t\t// set in checkValidity(); this paints the user-facing half.\n\t\tconst showError = this.error && !!this.validationMessage\n\t\tconst errorRing = showError ? ' rounded outline outline-2 outline-error-default' : ''\n\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Collapsed: icon-only on mobile when collapse=true -->\n\t\t\t\t<schmancy-icon-button\n\t\t\t\t\tclass=\"${this.collapse ? 'lg:hidden' : 'hidden'}${errorRing}\"\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-invalid=${showError ? 'true' : 'false'}\n\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t>\n\t\t\t\tdate_range\n\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t<!-- Full UI: always visible when collapse=false, or lg+ when collapse=true -->\n\t\t\t\t<section\n\t\t\t\t\t@click=${(event: Event) => event.stopPropagation()}\n\t\t\t\t\taria-invalid=${showError ? 'true' : 'false'}\n\t\t\t\t\tclass=\"${this.collapse ? 'hidden lg:flex' : 'flex'}${errorRing}\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value || !this.canNavigateBackward()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\taria-readonly=\"${this.step !== undefined}\"\n\t\t\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t\t\tstyle=\"${this.step !== undefined ? 'cursor: default;' : ''}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value || !this.canNavigateForward()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\n\t\t\t\t${showError\n\t\t\t\t\t? html`<div role=\"alert\" class=\"text-error-default text-sm mt-1\">${this.validationMessage}</div>`\n\t\t\t\t\t: nothing}\n\t\t\t</div>\n\t\t`\n\t}\n}"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-CYIif26I.cjs`),n=require(`./mixins-CGXSzZc7.cjs`),r=require(`./overlay.service-C8RsQzgM.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-BBzRWB1w.cjs`),n=require(`./mixins-DPdzC9ZH.cjs`),r=require(`./overlay.service-DEj3rfRr.cjs`);let i=require(`rxjs`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/if-defined.js`),c=require(`lit/directives/repeat.js`);var l=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=6e4,t=36e5,n=`millisecond`,r=`second`,i=`minute`,a=`hour`,o=`day`,s=`week`,c=`month`,l=`quarter`,u=`year`,d=`date`,f=`Invalid Date`,p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},g=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},_={s:g,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+g(r,2,`0`)+`:`+g(i,2,`0`)},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,c),a=n-i<0,o=t.clone().add(r+(a?-1:1),c);return+(-(r+(n-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:c,y:u,w:s,d:o,D:d,h:a,m:i,s:r,ms:n,Q:l}[e]||String(e||``).toLowerCase().replace(/s$/,``)},u:function(e){return e===void 0}},v=`en`,y={};y[v]=h;var b=`$isDayjsObject`,x=function(e){return e instanceof T||!(!e||!e[b])},S=function e(t,n,r){var i;if(!t)return v;if(typeof t==`string`){var a=t.toLowerCase();y[a]&&(i=a),n&&(y[a]=n,i=a);var o=t.split(`-`);if(!i&&o.length>1)return e(o[0])}else{var s=t.name;y[s]=t,i=s}return!r&&i&&(v=i),i||!r&&v},C=function(e,t){if(x(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new T(n)},w=_;w.l=S,w.i=x,w.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var T=function(){function h(e){this.$L=S(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[b]=!0}var g=h.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(w.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(p);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return w},g.isValid=function(){return this.$d.toString()!==f},g.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return C(e)<this.startOf(t)},g.isBefore=function(e,t){return this.endOf(t)<C(e)},g.$g=function(e,t,n){return w.u(e)?this[t]:this.set(n,e)},g.unix=function(){return Math.floor(this.valueOf()/1e3)},g.valueOf=function(){return this.$d.getTime()},g.startOf=function(e,t){var n=this,l=!!w.u(t)||t,f=w.p(e),p=function(e,t){var r=w.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return l?r:r.endOf(o)},m=function(e,t){return w.w(n.toDate()[e].apply(n.toDate(`s`),(l?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},h=this.$W,g=this.$M,_=this.$D,v=`set`+(this.$u?`UTC`:``);switch(f){case u:return l?p(1,0):p(31,11);case c:return l?p(1,g):p(0,g+1);case s:var y=this.$locale().weekStart||0,b=(h<y?h+7:h)-y;return p(l?_-b:_+(6-b),g);case o:case d:return m(v+`Hours`,0);case a:return m(v+`Minutes`,1);case i:return m(v+`Seconds`,2);case r:return m(v+`Milliseconds`,3);default:return this.clone()}},g.endOf=function(e){return this.startOf(e,!1)},g.$set=function(e,t){var s,l=w.p(e),f=`set`+(this.$u?`UTC`:``),p=(s={},s[o]=f+`Date`,s[d]=f+`Date`,s[c]=f+`Month`,s[u]=f+`FullYear`,s[a]=f+`Hours`,s[i]=f+`Minutes`,s[r]=f+`Seconds`,s[n]=f+`Milliseconds`,s)[l],m=l===o?this.$D+(t-this.$W):t;if(l===c||l===u){var h=this.clone().set(d,1);h.$d[p](m),h.init(),this.$d=h.set(d,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](m);return this.init(),this},g.set=function(e,t){return this.clone().$set(e,t)},g.get=function(e){return this[w.p(e)]()},g.add=function(n,l){var d,f=this;n=Number(n);var p=w.p(l),m=function(e){var t=C(f);return w.w(t.date(t.date()+Math.round(e*n)),f)};if(p===c)return this.set(c,this.$M+n);if(p===u)return this.set(u,this.$y+n);if(p===o)return m(1);if(p===s)return m(7);var h=(d={},d[i]=e,d[a]=t,d[r]=1e3,d)[p]||1,g=this.$d.getTime()+n*h;return w.w(g,this)},g.subtract=function(e,t){return this.add(-1*e,t)},g.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var r=e||`YYYY-MM-DDTHH:mm:ssZ`,i=w.z(this),a=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,i,a){return e&&(e[n]||e(t,r))||i[n].slice(0,a)},p=function(e){return w.s(a%12||12,e,`0`)},h=u||function(e,t,n){var r=e<12?`AM`:`PM`;return n?r.toLowerCase():r};return r.replace(m,function(e,r){return r||function(e){switch(e){case`YY`:return String(t.$y).slice(-2);case`YYYY`:return w.s(t.$y,4,`0`);case`M`:return s+1;case`MM`:return w.s(s+1,2,`0`);case`MMM`:return d(n.monthsShort,s,l,3);case`MMMM`:return d(l,s);case`D`:return t.$D;case`DD`:return w.s(t.$D,2,`0`);case`d`:return String(t.$W);case`dd`:return d(n.weekdaysMin,t.$W,c,2);case`ddd`:return d(n.weekdaysShort,t.$W,c,3);case`dddd`:return c[t.$W];case`H`:return String(a);case`HH`:return w.s(a,2,`0`);case`h`:return p(1);case`hh`:return p(2);case`a`:return h(a,o,!0);case`A`:return h(a,o,!1);case`m`:return String(o);case`mm`:return w.s(o,2,`0`);case`s`:return String(t.$s);case`ss`:return w.s(t.$s,2,`0`);case`SSS`:return w.s(t.$ms,3,`0`);case`Z`:return i}return null}(e)||i.replace(`:`,``)})},g.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},g.diff=function(n,d,f){var p,m=this,h=w.p(d),g=C(n),_=(g.utcOffset()-this.utcOffset())*e,v=this-g,y=function(){return w.m(m,g)};switch(h){case u:p=y()/12;break;case c:p=y();break;case l:p=y()/3;break;case s:p=(v-_)/6048e5;break;case o:p=(v-_)/864e5;break;case a:p=v/t;break;case i:p=v/e;break;case r:p=v/1e3;break;default:p=v}return f?p:w.a(p)},g.daysInMonth=function(){return this.endOf(c).$D},g.$locale=function(){return y[this.$L]},g.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=S(e,t,!0);return r&&(n.$L=r),n},g.clone=function(){return w.w(this.$d,this)},g.toDate=function(){return new Date(this.valueOf())},g.toJSON=function(){return this.isValid()?this.toISOString():null},g.toISOString=function(){return this.$d.toISOString()},g.toString=function(){return this.$d.toUTCString()},h}(),E=T.prototype;return C.prototype=E,[[`$ms`,n],[`$s`,r],[`$m`,i],[`$H`,a],[`$W`,o],[`$M`,c],[`$y`,u],[`$D`,d]].forEach(function(e){E[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),C.extend=function(e,t){return e.$i||=(e(t,T,C),!0),C},C.locale=S,C.isDayjs=x,C.unix=function(e){return C(1e3*e)},C.en=y[v],C.Ls=y,C.p={},C};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()}),u=e.t((e,t)=>{var n=e,r=function(){"use strict";var e=`month`,t=`quarter`;return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var o=i.startOf;i.startOf=function(n,r){var i=this.$utils(),a=!!i.u(r)||r;if(i.p(n)===t){var s=this.quarter()-1;return a?this.month(3*s).startOf(e).startOf(`day`):this.month(3*s+2).endOf(e).endOf(`day`)}return o.bind(this)(n,r)}}};typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_quarterOfYear=r()}),d=e.r(u(),1),f=e.r(l(),1);function p(e,t){return e.map(e=>({label:`Last ${e} Days`,range:{dateFrom:(0,f.default)().subtract(e-1,`days`).startOf(`day`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`day`}))}function m(e,t){return e.map(e=>({label:`Last ${e} Weeks`,range:{dateFrom:(0,f.default)().subtract(e,`weeks`).startOf(`week`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`week`}))}function h(e,t){return e.map(e=>({label:`Last ${e} Months`,range:{dateFrom:(0,f.default)().subtract(e,`months`).startOf(`month`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`month`}))}function g(e,t){return e.map(e=>({label:`Last ${e} Quarters`,range:{dateFrom:(0,f.default)().subtract(e,`quarters`).startOf(`quarter`).format(t),dateTo:(0,f.default)().endOf(`day`).format(t)},step:`quarter`}))}function _(e,t){if(!e)return null;let n=(0,f.default)(e);return n.isValid()?n.format(t):null}function v(e,t,n){let r=_(e,n),i=_(t,n);return{dateFrom:r,dateTo:i,isValid:r!==null&&i!==null}}var y=class extends t.t{constructor(...e){super(...e),this.type=`date`,this.dateFrom={label:`From`,value:``},this.dateTo={label:`To`,value:``},this.activePreset=null,this.presetCategories=[]}static{this.styles=[o.css`
2
2
  :host {
3
3
  display: block;
4
4
  padding: 1.5rem;
@@ -64,21 +64,21 @@ const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-CYIif26I.cj
64
64
  </div>
65
65
  </div>
66
66
  </div>
67
- `}};t.u([(0,a.property)({type:String})],y.prototype,`type`,void 0),t.u([(0,a.property)({type:Object})],y.prototype,`dateFrom`,void 0),t.u([(0,a.property)({type:Object})],y.prototype,`dateTo`,void 0),t.u([(0,a.property)({type:String})],y.prototype,`minDate`,void 0),t.u([(0,a.property)({type:String})],y.prototype,`maxDate`,void 0),t.u([(0,a.property)({type:String})],y.prototype,`activePreset`,void 0),t.u([(0,a.property)({type:Array})],y.prototype,`presetCategories`,void 0),y=t.u([(0,a.customElement)(`schmancy-date-range-dialog`)],y),f.default.extend(d.default);var b=e=>{e?.dispatchEvent(new CustomEvent(`close`,{bubbles:!0,composed:!0}))},x=class extends n.o(){constructor(...e){super(...e),this.type=`date`,this.dateFrom={label:`From`,value:``},this.dateTo={label:`To`,value:``},this.customPresets=[],this.placeholder=`Select date range`,this.clearable=!0,this.collapse=!1,this.isOpen=!1,this.selectedDateRange=``,this.activePreset=null,this.announceMessage=``,this.presetRanges=[],this.presetCategories=[],this.memoizedPresets=new Map,this._dateFromDefault=``,this._dateToDefault=``,this._overlaySubscription=null}disconnectedCallback(){super.disconnectedCallback(),this.isOpen=!1}connectedCallback(){super.connectedCallback(),this.initPresetRanges();let e=this.getDateFormat(),t=v(this.dateFrom.value,this.dateTo.value,e);if(t.isValid)this.dateFrom.value=t.dateFrom,this.dateTo.value=t.dateTo,this.updateSelectedDateRange();else{let t=(0,f.default)().format(e);this.dateFrom.value=t,this.dateTo.value=t,this.updateSelectedDateRange()}this.setupEventHandlers()}setupEventHandlers(){(0,i.fromEvent)(document,`keydown`).pipe((0,i.takeUntil)(this.disconnecting)).subscribe(e=>{this.handleKeyboardNavigation(e)})}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.announceToScreenReader(`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.closeDropdown():this.openDropdown(e))}openDropdown(e){if(this.disabled||this.step!==void 0)return;this.dispatchEvent(new CustomEvent(`beforeopen`,{bubbles:!0,composed:!0})),this.isOpen=!0;let t=o.html`
68
- <schmancy-date-range-dialog
69
- .type="${this.type}"
70
- .dateFrom="${this.dateFrom}"
71
- .dateTo="${this.dateTo}"
72
- .minDate="${this.minDate}"
73
- .maxDate="${this.maxDate}"
74
- .activePreset="${this.activePreset}"
75
- .presetCategories="${this.presetCategories}"
76
- @preset-select="${e=>{this.activePreset=e.detail.preset.label,this.setDateRange(e.detail.preset.range.dateFrom,e.detail.preset.range.dateTo),b(e.currentTarget)}}"
77
- @date-change="${()=>this.updateSelectedDateRange()}"
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
- @announce="${e=>this.announceToScreenReader(e.detail.message)}"
80
- ></schmancy-date-range-dialog>
81
- `;this._overlaySubscription?.unsubscribe(),this._overlaySubscription=r.o(t,{anchor:e}).pipe((0,i.takeUntil)(this.disconnecting)).subscribe({complete:()=>{this.isOpen=!1,this._overlaySubscription=null}})}closeDropdown(){this._overlaySubscription?.unsubscribe(),this._overlaySubscription=null,this.isOpen=!1}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)}announceToScreenReader(e){this.announceMessage=e,(0,i.timer)(100).pipe((0,i.takeUntil)(this.disconnecting)).subscribe(()=>{this.announceMessage=``})}render(){return o.html`
67
+ `}};t.u([(0,a.property)({type:String})],y.prototype,`type`,void 0),t.u([(0,a.property)({type:Object})],y.prototype,`dateFrom`,void 0),t.u([(0,a.property)({type:Object})],y.prototype,`dateTo`,void 0),t.u([(0,a.property)({type:String})],y.prototype,`minDate`,void 0),t.u([(0,a.property)({type:String})],y.prototype,`maxDate`,void 0),t.u([(0,a.property)({type:String})],y.prototype,`activePreset`,void 0),t.u([(0,a.property)({type:Array})],y.prototype,`presetCategories`,void 0),y=t.u([(0,a.customElement)(`schmancy-date-range-dialog`)],y),f.default.extend(d.default);var b=e=>{e?.dispatchEvent(new CustomEvent(`close`,{bubbles:!0,composed:!0}))},x=class extends n.o(){constructor(...e){super(...e),this.type=`date`,this.dateFrom={label:`From`,value:``},this.dateTo={label:`To`,value:``},this.customPresets=[],this.placeholder=`Select date range`,this.clearable=!0,this.collapse=!1,this.open$=new i.Subject,this.close$=new i.Subject,this.announce$=new i.Subject,this.isOpen=!1,this.selectedDateRange=``,this.activePreset=null,this.announceMessage=``,this.presetRanges=[],this.presetCategories=[],this.memoizedPresets=new Map,this.dateFromDefault=``,this.dateToDefault=``}disconnectedCallback(){super.disconnectedCallback(),this.isOpen=!1}connectedCallback(){super.connectedCallback(),this.initPresetRanges();let e=this.getDateFormat(),t=v(this.dateFrom.value,this.dateTo.value,e);if(t.isValid)this.dateFrom.value=t.dateFrom,this.dateTo.value=t.dateTo,this.updateSelectedDateRange();else{let t=(0,f.default)().format(e);this.dateFrom.value=t,this.dateTo.value=t,this.updateSelectedDateRange()}(0,i.merge)(this.open$.pipe((0,i.tap)(()=>{this.dispatchEvent(new CustomEvent(`beforeopen`,{bubbles:!0,composed:!0})),this.isOpen=!0}),(0,i.exhaustMap)(e=>r.o(o.html`
68
+ <schmancy-date-range-dialog
69
+ .type="${this.type}"
70
+ .dateFrom="${this.dateFrom}"
71
+ .dateTo="${this.dateTo}"
72
+ .minDate="${this.minDate}"
73
+ .maxDate="${this.maxDate}"
74
+ .activePreset="${this.activePreset}"
75
+ .presetCategories="${this.presetCategories}"
76
+ @preset-select="${e=>{this.activePreset=e.detail.preset.label,this.setDateRange(e.detail.preset.range.dateFrom,e.detail.preset.range.dateTo),b(e.currentTarget)}}"
77
+ @date-change="${()=>this.updateSelectedDateRange()}"
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
+ @announce="${e=>this.announce$.next(e.detail.message)}"
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`
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">
@@ -87,18 +87,22 @@ const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-CYIif26I.cj
87
87
 
88
88
  <!-- Collapsed: icon-only on mobile when collapse=true -->
89
89
  <schmancy-icon-button
90
- class="${this.collapse?`lg:hidden`:`hidden`}"
90
+ class="${this.collapse?`lg:hidden`:`hidden`}${t}"
91
91
  variant="outlined"
92
92
  type="button"
93
+ aria-invalid=${e?`true`:`false`}
93
94
  aria-label="Select date range. Current: ${this.selectedDateRange||`No date selected`}"
94
95
  @click=${e=>this.toggleDropdown(e)}
95
96
  ?disabled=${this.disabled}
96
97
  >
97
- date_range
98
+ date_range
98
99
  </schmancy-icon-button>
99
100
 
100
101
  <!-- Full UI: always visible when collapse=false, or lg+ when collapse=true -->
101
- <section @click=${e=>e.stopPropagation()} class="${this.collapse?`hidden lg:flex`:`flex`}">
102
+ <section
103
+ @click=${e=>e.stopPropagation()}
104
+ aria-invalid=${e?`true`:`false`}
105
+ class="${this.collapse?`hidden lg:flex`:`flex`}${t}">
102
106
  <schmancy-icon-button
103
107
  type="button"
104
108
  aria-label="Previous ${this.activePreset?this.activePreset.toLowerCase():`date range`}"
@@ -132,5 +136,7 @@ const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./SchmancyElement-CYIif26I.cj
132
136
  arrow_right
133
137
  </schmancy-icon-button>
134
138
  </section>
139
+
140
+ ${e?o.html`<div role="alert" class="text-error-default text-sm mt-1">${this.validationMessage}</div>`:o.nothing}
135
141
  </div>
136
142
  `}};t.u([(0,a.property)({type:String})],x.prototype,`type`,void 0),t.u([(0,a.property)({type:Object})],x.prototype,`dateFrom`,void 0),t.u([(0,a.property)({type:Object})],x.prototype,`dateTo`,void 0),t.u([(0,a.property)({type:String})],x.prototype,`minDate`,void 0),t.u([(0,a.property)({type:String})],x.prototype,`maxDate`,void 0),t.u([(0,a.property)({type:Array})],x.prototype,`customPresets`,void 0),t.u([(0,a.property)({type:String})],x.prototype,`format`,void 0),t.u([(0,a.property)({type:String})],x.prototype,`placeholder`,void 0),t.u([(0,a.property)({type:Boolean})],x.prototype,`clearable`,void 0),t.u([(0,a.property)()],x.prototype,`step`,void 0),t.u([(0,a.property)({type:Boolean})],x.prototype,`collapse`,void 0),t.u([(0,a.state)()],x.prototype,`isOpen`,void 0),t.u([(0,a.state)()],x.prototype,`selectedDateRange`,void 0),t.u([(0,a.state)()],x.prototype,`activePreset`,void 0),t.u([(0,a.state)()],x.prototype,`announceMessage`,void 0),x=t.u([(0,a.customElement)(`schmancy-date-range`)],x),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return x}});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-N-A249O9.cjs","names":[],"sources":["../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/quarterOfYear.js","../src/form/fields/date-range/date-range-helpers.ts","../src/form/fields/date-range/date-range-presets.ts","../src/form/fields/date-range/date-utils.ts","../src/form/fields/date-range/date-range-dialog.ts","../src/form/fields/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|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,M={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(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(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,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('ddd, MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('ddd MMM D, YYYY')}${fromTime} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import { SchmancyElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { DateRangePreset, PresetCategory } from './date-range-presets'\n\ninterface PresetGroup {\n\tname: string\n\tpresets: DateRangePreset[]\n}\n\n/**\n * Dialog content component for date range selection\n *\n * Redesigned with chip-based horizontal flow layout:\n * - Quick Select: Today, Yesterday, This Week, This Month\n * - Days: Last 7/14/30/60/90 Days\n * - Periods: Last Week, Last Month, Last Quarter, Last Year\n * - Year to Date: This Week, This Month, This Quarter, This Year, YTD\n * - Custom Range: Manual date inputs at the bottom\n *\n * @element schmancy-date-range-dialog\n */\n@customElement('schmancy-date-range-dialog')\nexport class SchmancyDateRangeDialog extends SchmancyElement {\n\tstatic styles = [css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\tpadding: 1.5rem;\n\t\t}\n\t`]\n\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\t@property({ type: String }) activePreset: string | null = null\n\t@property({ type: Array }) presetCategories: PresetCategory[] = []\n\n\t/**\n\t * Reorganizes presets into the new grouped layout\n\t */\n\tprivate getPresetGroups(): PresetGroup[] {\n\t\tconst allPresets = this.presetCategories.flatMap(c => c.presets)\n\n\t\t// Quick Select: Today, Yesterday, This Week, This Month\n\t\tconst quickSelectLabels = ['Today', 'Yesterday', 'This Week', 'This Month']\n\t\tconst quickSelect = quickSelectLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Days: Last 7/14/30/60/90 Days\n\t\tconst daysLabels = ['Last 7 Days', 'Last 14 Days', 'Last 30 Days', 'Last 60 Days', 'Last 90 Days']\n\t\tconst days = daysLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Periods: Last Week, Last Month, Last Quarter, Last Year\n\t\tconst periodsLabels = ['Last Week', 'Last Month', 'Last Quarter', 'Last Year']\n\t\tconst periods = periodsLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\t// Year to Date: This Week, This Month, This Quarter, This Year, YTD\n\t\tconst ytdLabels = ['This Week', 'This Month', 'This Quarter', 'This Year', 'Year to Date']\n\t\tconst yearToDate = ytdLabels\n\t\t\t.map(label => allPresets.find(p => p.label === label))\n\t\t\t.filter((p): p is DateRangePreset => p !== undefined)\n\n\t\tconst groups: PresetGroup[] = []\n\n\t\tif (quickSelect.length > 0) {\n\t\t\tgroups.push({ name: 'Quick Select', presets: quickSelect })\n\t\t}\n\t\tif (days.length > 0) {\n\t\t\tgroups.push({ name: 'Days', presets: days })\n\t\t}\n\t\tif (periods.length > 0) {\n\t\t\tgroups.push({ name: 'Periods', presets: periods })\n\t\t}\n\t\tif (yearToDate.length > 0) {\n\t\t\tgroups.push({ name: 'Year to Date', presets: yearToDate })\n\t\t}\n\n\t\treturn groups\n\t}\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom = { ...this.dateFrom, value: input.value }\n\n\t\t// If the new start date is after the current end date, adjust the end date\n\t\tif (this.dateTo.value && dayjs(this.dateFrom.value).isAfter(dayjs(this.dateTo.value))) {\n\t\t\tthis.dateTo = { ...this.dateTo, value: this.dateFrom.value }\n\t\t}\n\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo = { ...this.dateTo, value: input.value }\n\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\t// Parent <schmancy-date-range> listens for `preset-select`, applies\n\t\t// the range, and dispatches 'close' on us — `show()` tears down.\n\t\tthis.dispatchEvent(new CustomEvent('preset-select', {\n\t\t\tdetail: { preset },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.dispatchEvent(new CustomEvent('announce', {\n\t\t\t\tdetail: { message: 'Invalid date format. Please check your input.' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true\n\t\t\t}))\n\t\t\treturn\n\t\t}\n\n\t\t// Parent <schmancy-date-range> listens for `apply-dates`, applies the\n\t\t// range, and dispatches 'close' on us — `show()` tears down.\n\t\tthis.dispatchEvent(new CustomEvent('apply-dates', {\n\t\t\tdetail: {\n\t\t\t\tdateFrom: this.dateFrom.value,\n\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\tswapIfNeeded: fromDate.isAfter(toDate)\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\trender() {\n\t\tconst presetGroups = this.getPresetGroups()\n\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Preset Groups Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0 space-y-4\">\n\t\t\t\t\t${repeat(\n\t\t\t\t\t\tpresetGroups,\n\t\t\t\t\t\tgroup => group.name,\n\t\t\t\t\t\tgroup => html`\n\t\t\t\t\t\t\t<div class=\"space-y-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${group.name}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div class=\"flex flex-wrap gap-2\">\n\t\t\t\t\t\t\t\t\t${repeat(\n\t\t\t\t\t\t\t\t\t\tgroup.presets,\n\t\t\t\t\t\t\t\t\t\tpreset => preset.label,\n\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-filter-chip\n\t\t\t\t\t\t\t\t\t\t\t\t.value=${preset.label}\n\t\t\t\t\t\t\t\t\t\t\t\t.selected=${this.activePreset === preset.label}\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => this.handlePresetSelection(preset, e)}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t${preset.label}\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-filter-chip>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Divider -->\n\t\t\t\t<schmancy-divider class=\"my-4\"></schmancy-divider>\n\n\t\t\t\t<!-- Custom Range Section -->\n\t\t\t\t<div class=\"space-y-2\">\n\t\t\t\t\t<div class=\"flex items-end gap-3 flex-wrap\">\n\t\t\t\t\t\t<div class=\"flex-1 min-w-[140px]\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.label=\"${this.dateFrom.label || 'From'}\"\n\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange}\"\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"flex-1 min-w-[140px]\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.label=\"${this.dateTo.label || 'To'}\"\n\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange}\"\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range-dialog': SchmancyDateRangeDialog\n\t}\n}\n","import dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, nothing, PropertyValues } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { concat, exhaustMap, finalize, fromEvent, map, merge, of, Subject, switchMap, takeUntil, tap, timer } from 'rxjs'\nimport { SchmancyFormField } from '@mixins/index'\nimport { show } from '../../../overlay/overlay.service'\nimport { detectDateRangeType, formatDateRange } from './date-range-helpers'\nimport { DateRangePreset, generatePresetCategories, PresetCategory } from './date-range-presets'\nimport { validateInitialDateRange } from './date-utils'\nimport './date-range-dialog'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\n// Bridge the inner-content events used inside the overlay template down to a\n// `close` event on the same element. `show()` translates a bubbling 'close'\n// event into observable completion + an emission of `event.detail`.\nconst dispatchClose = (target: EventTarget | null): void => {\n\ttarget?.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }))\n}\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends SchmancyFormField() {\n\t// `name`, `disabled`, `required`, `error`, `validationMessage`, `id`,\n\t// `validateOn`, `touched`, `submitted`, `markTouched`, `markSubmitted`,\n\t// FACE wiring, FIELD_CONNECT_EVENT dispatch — all from the mixin.\n\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\t@property() step?: 'day' | 'week' | 'month' | 'year' | number\n\t/** When true, collapses to just an icon button on mobile screens */\n\t@property({ type: Boolean }) collapse = false\n\n\t// Session inputs — driven by handlers, consumed by the single pipeline\n\t// in connectedCallback (rxjs ONE_PIPELINE_ONE_SUBSCRIBE / SESSIONS).\n\tprivate readonly open$ = new Subject<MouseEvent | undefined>()\n\tprivate readonly close$ = new Subject<void>()\n\tprivate readonly announce$ = new Subject<string>()\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t\t// Reset open state when element is moved/removed to prevent stale state\n\t\tthis.isOpen = false\n\t}\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// One pipeline, one subscribe (rxjs ONE_PIPELINE_ONE_SUBSCRIBE): the\n\t\t// dropdown open/close session, screen-reader announcements, and\n\t\t// document keyboard navigation merge into a single chain torn down by\n\t\t// takeUntil(this.disconnecting).\n\t\tmerge(\n\t\t\t// Dropdown is a session (rxjs SESSIONS_USE_HIGHER_ORDER_OBSERVABLES):\n\t\t\t// open$ opens the overlay; show() completes when an inner handler\n\t\t\t// dispatches `close`, close$ dismisses it externally; finalize\n\t\t\t// resets isOpen on either teardown path.\n\t\t\tthis.open$.pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis.dispatchEvent(new CustomEvent('beforeopen', { bubbles: true, composed: true }))\n\t\t\t\t\tthis.isOpen = true\n\t\t\t\t}),\n\t\t\t\texhaustMap(anchor =>\n\t\t\t\t\tshow(\n\t\t\t\t\t\thtml`\n\t\t\t\t\t\t\t<schmancy-date-range-dialog\n\t\t\t\t\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t\t\t\t\t.dateFrom=\"${this.dateFrom}\"\n\t\t\t\t\t\t\t\t.dateTo=\"${this.dateTo}\"\n\t\t\t\t\t\t\t\t.minDate=\"${this.minDate}\"\n\t\t\t\t\t\t\t\t.maxDate=\"${this.maxDate}\"\n\t\t\t\t\t\t\t\t.activePreset=\"${this.activePreset}\"\n\t\t\t\t\t\t\t\t.presetCategories=\"${this.presetCategories}\"\n\t\t\t\t\t\t\t\t@preset-select=\"${(ev: CustomEvent) => {\n\t\t\t\t\t\t\t\t\tthis.activePreset = ev.detail.preset.label\n\t\t\t\t\t\t\t\t\tthis.setDateRange(ev.detail.preset.range.dateFrom, ev.detail.preset.range.dateTo)\n\t\t\t\t\t\t\t\t\tdispatchClose(ev.currentTarget)\n\t\t\t\t\t\t\t\t}}\"\n\t\t\t\t\t\t\t\t@date-change=\"${() => this.updateSelectedDateRange()}\"\n\t\t\t\t\t\t\t\t@apply-dates=\"${(ev: CustomEvent) => {\n\t\t\t\t\t\t\t\t\tconst { dateFrom, dateTo, swapIfNeeded } = ev.detail\n\t\t\t\t\t\t\t\t\tif (swapIfNeeded) {\n\t\t\t\t\t\t\t\t\t\tthis.setDateRange(dateTo, dateFrom)\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdispatchClose(ev.currentTarget)\n\t\t\t\t\t\t\t\t}}\"\n\t\t\t\t\t\t\t\t@announce=\"${(ev: CustomEvent) => this.announce$.next(ev.detail.message)}\"\n\t\t\t\t\t\t\t></schmancy-date-range-dialog>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t{ anchor },\n\t\t\t\t\t).pipe(\n\t\t\t\t\t\ttakeUntil(this.close$),\n\t\t\t\t\t\tfinalize(() => {\n\t\t\t\t\t\t\tthis.isOpen = false\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\t// Announcements (rxjs LIFT_EVERY_ASYNC_SOURCE): one Subject, one\n\t\t\t// switchMap-cleared timer — not a fresh timer().subscribe() per call.\n\t\t\tthis.announce$.pipe(\n\t\t\t\tswitchMap(message => concat(of(message), timer(100).pipe(map(() => '')))),\n\t\t\t\ttap(message => {\n\t\t\t\t\tthis.announceMessage = message\n\t\t\t\t}),\n\t\t\t),\n\t\t\t// Document keyboard navigation.\n\t\t\tfromEvent<KeyboardEvent>(document, 'keydown').pipe(tap(event => this.handleKeyboardNavigation(event))),\n\t\t)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\toverride willUpdate(changed: PropertyValues): void {\n\t\tsuper.willUpdate(changed)\n\t\tif (changed.has('dateFrom') || changed.has('dateTo') || changed.has('name')) {\n\t\t\t// Multi-entry FACE submission: setFormValue accepts a FormData\n\t\t\t// object whose entries are appended to the owning form's FormData.\n\t\t\t// native `new FormData(form)` then sees both `${name}From` and\n\t\t\t// `${name}To` without any consumer-side parsing.\n\t\t\tif (this.name && !this.disabled) {\n\t\t\t\tconst fd = new FormData()\n\t\t\t\tif (this.dateFrom?.value) fd.append(`${this.name}From`, this.dateFrom.value)\n\t\t\t\tif (this.dateTo?.value) fd.append(`${this.name}To`, this.dateTo.value)\n\t\t\t\tthis.internals?.setFormValue(fd)\n\t\t\t} else {\n\t\t\t\tthis.internals?.setFormValue(null)\n\t\t\t}\n\t\t\tthis.checkValidity()\n\t\t}\n\t\tif (changed.has('required') || changed.has('disabled')) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\n\t/**\n\t * Date-range validity is `both dates non-empty` when required.\n\t * (Order/range constraints are out of scope here — they belong to a\n\t * domain-specific schema layer.)\n\t */\n\toverride checkValidity(): boolean {\n\t\tif (this.disabled) {\n\t\t\tthis.internals?.setValidity({})\n\t\t\treturn true\n\t\t}\n\t\tconst fromEmpty = !this.dateFrom?.value\n\t\tconst toEmpty = !this.dateTo?.value\n\t\tconst isValid = !this.required || (!fromEmpty && !toEmpty)\n\t\tconst message = isValid ? '' : 'Please select a date range.'\n\n\t\tthis.internals?.setValidity(\n\t\t\tisValid ? {} : { valueMissing: true },\n\t\t\tisValid ? undefined : message,\n\t\t)\n\n\t\tif (this._shouldShowError()) {\n\t\t\tthis.error = !isValid\n\t\t\tthis.validationMessage = message\n\t\t}\n\t\treturn isValid\n\t}\n\n\t/**\n\t * Override — emit `${name}From` and `${name}To` flat-suffix entries (the\n\t * plan's chosen multi-entry encoding; native to JS consumers without\n\t * server-side bracket parsing).\n\t */\n\toverride toFormEntries(): Array<[string, FormDataEntryValue]> {\n\t\tif (!this.name || this.disabled) return []\n\t\tconst entries: Array<[string, FormDataEntryValue]> = []\n\t\tif (this.dateFrom?.value) entries.push([`${this.name}From`, this.dateFrom.value])\n\t\tif (this.dateTo?.value) entries.push([`${this.name}To`, this.dateTo.value])\n\t\treturn entries\n\t}\n\n\t/** `dirty` tracks the underlying date strings, not the wide-union value. */\n\tprivate dateFromDefault: string = ''\n\tprivate dateToDefault: string = ''\n\toverride firstUpdated(changed: PropertyValues): void {\n\t\tsuper.firstUpdated(changed)\n\t\tthis.dateFromDefault = this.dateFrom?.value ?? ''\n\t\tthis.dateToDefault = this.dateTo?.value ?? ''\n\t}\n\toverride get dirty(): boolean {\n\t\treturn (\n\t\t\t(this.dateFrom?.value ?? '') !== this.dateFromDefault ||\n\t\t\t(this.dateTo?.value ?? '') !== this.dateToDefault\n\t\t)\n\t}\n\n\toverride resetForm(): void {\n\t\tthis.dateFrom = { ...this.dateFrom, value: this.dateFromDefault }\n\t\tthis.dateTo = { ...this.dateTo, value: this.dateToDefault }\n\t\tsuper.resetForm()\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announce$.next(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate toggleDropdown(e: MouseEvent) {\n\t\te.stopPropagation()\n\t\tif (this.disabled || this.step !== undefined) return\n\t\t// Drive the session pipeline (connectedCallback) — no imperative\n\t\t// open/close, no manual subscription field.\n\t\tif (this.isOpen) {\n\t\t\tthis.close$.next()\n\t\t} else {\n\t\t\tthis.open$.next(e)\n\t\t}\n\t}\n\n\t/**\n\t * Shifts the date range based on the step property\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\t\tconst daysDiff = toDate.diff(fromDate, 'day') + 1\n\n\t\t// Determine shift amount and unit\n\t\tlet amount: number\n\t\tlet unit: dayjs.ManipulateType\n\n\t\tif (this.step !== undefined) {\n\t\t\tif (typeof this.step === 'number') {\n\t\t\t\tamount = dir * this.step\n\t\t\t\tunit = 'day'\n\t\t\t} else if (this.step === 'day') {\n\t\t\t\tamount = dir * daysDiff\n\t\t\t\tunit = 'day'\n\t\t\t} else {\n\t\t\t\tamount = dir\n\t\t\t\tunit = this.step\n\t\t\t}\n\t\t} else {\n\t\t\t// Auto-detect based on date range\n\t\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\t\t\tif (rangeType.isFullYear) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'year'\n\t\t\t} else if (rangeType.isFullMonth) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'month'\n\t\t\t} else if (rangeType.isFullWeek) {\n\t\t\t\tamount = dir\n\t\t\t\tunit = 'week'\n\t\t\t} else {\n\t\t\t\tamount = dir * daysDiff\n\t\t\t\tunit = 'day'\n\t\t\t}\n\t\t}\n\n\t\tconst newFromDate = fromDate.add(amount, unit)\n\t\tconst newToDate = toDate.add(amount, unit)\n\n\t\t// Validate against min/max dates\n\t\tif (this.minDate && newFromDate.isBefore(dayjs(this.minDate))) return\n\t\tif (this.maxDate && newToDate.isAfter(dayjs(this.maxDate))) return\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\t/**\n\t * Check if we can navigate backward\n\t */\n\tprivate canNavigateBackward(): boolean {\n\t\tif (!this.dateFrom.value || !this.minDate) return true\n\t\t\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst minDate = dayjs(this.minDate)\n\t\t\n\t\t// If current start date is already at or before min date, can't go back\n\t\treturn fromDate.isAfter(minDate)\n\t}\n\n\t/**\n\t * Check if we can navigate forward\n\t */\n\tprivate canNavigateForward(): boolean {\n\t\tif (!this.dateTo.value || !this.maxDate) return true\n\t\t\n\t\tconst toDate = dayjs(this.dateTo.value)\n\t\tconst maxDate = dayjs(this.maxDate)\n\t\t\n\t\t// If current end date is already at or after max date, can't go forward\n\t\treturn toDate.isBefore(maxDate)\n\t}\n\n\n\trender() {\n\t\t// Step 6 — validity is two surfaces: when checkValidity() has flipped\n\t\t// `error` (gated by `_shouldShowError`), the control must visibly carry\n\t\t// the invalid treatment AND render the message. Platform validity is\n\t\t// set in checkValidity(); this paints the user-facing half.\n\t\tconst showError = this.error && !!this.validationMessage\n\t\tconst errorRing = showError ? ' rounded outline outline-2 outline-error-default' : ''\n\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Collapsed: icon-only on mobile when collapse=true -->\n\t\t\t\t<schmancy-icon-button\n\t\t\t\t\tclass=\"${this.collapse ? 'lg:hidden' : 'hidden'}${errorRing}\"\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-invalid=${showError ? 'true' : 'false'}\n\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t>\n\t\t\t\tdate_range\n\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t<!-- Full UI: always visible when collapse=false, or lg+ when collapse=true -->\n\t\t\t\t<section\n\t\t\t\t\t@click=${(event: Event) => event.stopPropagation()}\n\t\t\t\t\taria-invalid=${showError ? 'true' : 'false'}\n\t\t\t\t\tclass=\"${this.collapse ? 'hidden lg:flex' : 'flex'}${errorRing}\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value || !this.canNavigateBackward()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\taria-readonly=\"${this.step !== undefined}\"\n\t\t\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t\t\tstyle=\"${this.step !== undefined ? 'cursor: default;' : ''}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value || !this.canNavigateForward()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\n\t\t\t\t${showError\n\t\t\t\t\t? html`<div role=\"alert\" class=\"text-error-default text-sm mt-1\">${this.validationMessage}</div>`\n\t\t\t\t\t: nothing}\n\t\t\t</div>\n\t\t`\n\t}\n}"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { u as e } from "./SchmancyElement-CA0Wqt8m.js";
2
- import { o as t } from "./mixins-Bp0wIHg2.js";
1
+ import { u as e } from "./SchmancyElement-C3CpdNsi.js";
2
+ import { o as t } from "./mixins-DTzfFVyv.js";
3
3
  import { customElement as n, property as r, state as i } from "lit/decorators.js";
4
4
  import { html as a } from "lit";
5
5
  var o = class extends t() {