@mhmo91/schmancy 0.10.42 → 0.10.44

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 (759) hide show
  1. package/custom-elements.json +264 -79
  2. package/dist/SchmancyElement-CeKrBW2j.cjs +2 -0
  3. package/dist/SchmancyElement-CeKrBW2j.cjs.map +1 -0
  4. package/dist/SchmancyElement-Ob9yGkiG.js +286 -0
  5. package/dist/SchmancyElement-Ob9yGkiG.js.map +1 -0
  6. package/dist/agent/schmancy.agent.js +4032 -3886
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +215 -58
  9. package/dist/animation-CCOIW4wJ.cjs.map +1 -1
  10. package/dist/animation-DCznELuT.js.map +1 -1
  11. package/dist/area-CbajcnmJ.cjs +21 -0
  12. package/dist/area-CbajcnmJ.cjs.map +1 -0
  13. package/dist/{area-DtCNCb8w.js → area-MxLAyWgV.js} +22 -22
  14. package/dist/area-MxLAyWgV.js.map +1 -0
  15. package/dist/area.cjs +1 -1
  16. package/dist/area.js +1 -1
  17. package/dist/{audio-DdN76ikW.js → audio-B_0PGwYC.js} +1 -1
  18. package/dist/audio-B_0PGwYC.js.map +1 -0
  19. package/dist/{audio-B924fI5N.cjs → audio-CpwrIaw-.cjs} +1 -1
  20. package/dist/audio-CpwrIaw-.cjs.map +1 -0
  21. package/dist/audio.cjs +1 -1
  22. package/dist/audio.js +2 -2
  23. package/dist/autocomplete-CILzaDB7.cjs +115 -0
  24. package/dist/autocomplete-CILzaDB7.cjs.map +1 -0
  25. package/dist/{autocomplete-UNOknYUz.js → autocomplete-DV9RxCun.js} +113 -113
  26. package/dist/autocomplete-DV9RxCun.js.map +1 -0
  27. package/dist/autocomplete.cjs +1 -1
  28. package/dist/autocomplete.js +1 -1
  29. package/dist/avatar.cjs +1 -1
  30. package/dist/avatar.cjs.map +1 -1
  31. package/dist/avatar.js +4 -4
  32. package/dist/avatar.js.map +1 -1
  33. package/dist/badge.cjs +1 -1
  34. package/dist/badge.js +1 -1
  35. package/dist/{boat-BZah1Sf9.js → boat-DoZGgQ0P.js} +5 -5
  36. package/dist/{boat-BZah1Sf9.js.map → boat-DoZGgQ0P.js.map} +1 -1
  37. package/dist/{boat-D3bEjxf8.cjs → boat-sg0cWO8a.cjs} +2 -2
  38. package/dist/{boat-D3bEjxf8.cjs.map → boat-sg0cWO8a.cjs.map} +1 -1
  39. package/dist/boat.cjs +1 -1
  40. package/dist/boat.js +1 -1
  41. package/dist/breadcrumb.cjs +32 -31
  42. package/dist/breadcrumb.cjs.map +1 -1
  43. package/dist/breadcrumb.js +33 -32
  44. package/dist/breadcrumb.js.map +1 -1
  45. package/dist/busy-Brs-TDh9.cjs +133 -0
  46. package/dist/busy-Brs-TDh9.cjs.map +1 -0
  47. package/dist/busy-g4LoQmhB.js +172 -0
  48. package/dist/busy-g4LoQmhB.js.map +1 -0
  49. package/dist/busy.cjs +1 -1
  50. package/dist/busy.js +1 -1
  51. package/dist/{button-CTvS5YX4.cjs → button-Cml67Y_d.cjs} +41 -32
  52. package/dist/button-Cml67Y_d.cjs.map +1 -0
  53. package/dist/{button-DgoDfcJx.js → button-DWANpZfD.js} +43 -34
  54. package/dist/button-DWANpZfD.js.map +1 -0
  55. package/dist/button.cjs +40 -33
  56. package/dist/button.cjs.map +1 -1
  57. package/dist/button.js +42 -35
  58. package/dist/button.js.map +1 -1
  59. package/dist/calendar-2dJrw9pR.cjs +58 -0
  60. package/dist/calendar-2dJrw9pR.cjs.map +1 -0
  61. package/dist/calendar-kCe5LaBa.js +434 -0
  62. package/dist/calendar-kCe5LaBa.js.map +1 -0
  63. package/dist/calendar.cjs +1 -0
  64. package/dist/calendar.js +2 -0
  65. package/dist/{card-C6ijJZpF.js → card-CS_hYJbz.js} +136 -136
  66. package/dist/card-CS_hYJbz.js.map +1 -0
  67. package/dist/card-d0KhTnx5.cjs +177 -0
  68. package/dist/card-d0KhTnx5.cjs.map +1 -0
  69. package/dist/card.cjs +1 -1
  70. package/dist/card.js +1 -1
  71. package/dist/{checkbox-7vEPZuGC.js → checkbox-Bjp7kWuE.js} +2 -2
  72. package/dist/{checkbox-7vEPZuGC.js.map → checkbox-Bjp7kWuE.js.map} +1 -1
  73. package/dist/{checkbox-DXKdxkXE.cjs → checkbox-DZ2Wrz7Y.cjs} +1 -1
  74. package/dist/{checkbox-DXKdxkXE.cjs.map → checkbox-DZ2Wrz7Y.cjs.map} +1 -1
  75. package/dist/checkbox.cjs +1 -1
  76. package/dist/checkbox.js +1 -1
  77. package/dist/{chips-9eG-96_D.cjs → chips-BHBVkxsa.cjs} +142 -153
  78. package/dist/chips-BHBVkxsa.cjs.map +1 -0
  79. package/dist/{chips-DF7akwz7.js → chips-DACeW7YL.js} +127 -138
  80. package/dist/chips-DACeW7YL.js.map +1 -0
  81. package/dist/chips.cjs +1 -1
  82. package/dist/chips.js +2 -2
  83. package/dist/connectivity.cjs +53 -35
  84. package/dist/connectivity.cjs.map +1 -1
  85. package/dist/connectivity.js +55 -37
  86. package/dist/connectivity.js.map +1 -1
  87. package/dist/content-drawer.cjs +1 -1
  88. package/dist/content-drawer.js +1 -1
  89. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
  90. package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
  91. package/dist/date-range-B2VN7cl_.cjs +138 -0
  92. package/dist/date-range-B2VN7cl_.cjs.map +1 -0
  93. package/dist/date-range-CDF_5ju_.js +439 -0
  94. package/dist/date-range-CDF_5ju_.js.map +1 -0
  95. package/dist/{date-range-inline-DV2c_gWM.cjs → date-range-inline-CGM0SPK9.cjs} +2 -4
  96. package/dist/date-range-inline-CGM0SPK9.cjs.map +1 -0
  97. package/dist/{date-range-inline-BnOD-ddB.js → date-range-inline-D6Ozerzw.js} +3 -5
  98. package/dist/date-range-inline-D6Ozerzw.js.map +1 -0
  99. package/dist/date-range-inline.cjs +1 -1
  100. package/dist/date-range-inline.js +1 -1
  101. package/dist/date-range.cjs +1 -1
  102. package/dist/date-range.js +2 -2
  103. package/dist/dayjs.min-CvRZTfam.cjs +1 -0
  104. package/dist/dayjs.min-CvRZTfam.cjs.map +1 -0
  105. package/dist/dayjs.min-DnELezPs.js +296 -0
  106. package/dist/dayjs.min-DnELezPs.js.map +1 -0
  107. package/dist/delay.cjs +1 -1
  108. package/dist/delay.js +3 -3
  109. package/dist/{details-ByF66CyY.js → details-Ct1_GwKr.js} +104 -93
  110. package/dist/details-Ct1_GwKr.js.map +1 -0
  111. package/dist/{details-B2-jECBh.cjs → details-D4fVOaj4.cjs} +109 -98
  112. package/dist/details-D4fVOaj4.cjs.map +1 -0
  113. package/dist/details.cjs +1 -1
  114. package/dist/details.js +1 -1
  115. package/dist/{directives-DCb_LA9R.cjs → directives-B2VxfwRL.cjs} +1 -1
  116. package/dist/directives-B2VxfwRL.cjs.map +1 -0
  117. package/dist/{directives-BL7mzVsA.js → directives-Dj8jlv-Q.js} +3 -3
  118. package/dist/directives-Dj8jlv-Q.js.map +1 -0
  119. package/dist/directives.cjs +1 -1
  120. package/dist/directives.js +2 -2
  121. package/dist/discovery.service-CIa3Eeuk.cjs.map +1 -1
  122. package/dist/discovery.service-DZFxtRwW.js.map +1 -1
  123. package/dist/divider-B3v33OnX.cjs +57 -0
  124. package/dist/divider-B3v33OnX.cjs.map +1 -0
  125. package/dist/divider-BJHW3q11.js +89 -0
  126. package/dist/divider-BJHW3q11.js.map +1 -0
  127. package/dist/divider.cjs +1 -1
  128. package/dist/divider.js +1 -1
  129. package/dist/dropdown.cjs +40 -40
  130. package/dist/dropdown.cjs.map +1 -1
  131. package/dist/dropdown.js +41 -41
  132. package/dist/dropdown.js.map +1 -1
  133. package/dist/{expand-cZ8rfCWP.js → expand-BT8mOu8Q.js} +103 -97
  134. package/dist/expand-BT8mOu8Q.js.map +1 -0
  135. package/dist/expand-D0YdR9nR.cjs +147 -0
  136. package/dist/expand-D0YdR9nR.cjs.map +1 -0
  137. package/dist/expand.cjs +1 -1
  138. package/dist/expand.js +1 -1
  139. package/dist/fab.cjs +1 -1
  140. package/dist/fab.cjs.map +1 -1
  141. package/dist/fab.js +2 -2
  142. package/dist/fab.js.map +1 -1
  143. package/dist/{float-DkGyWSWy.cjs → float-BPQlDyai.cjs} +1 -1
  144. package/dist/{float-DkGyWSWy.cjs.map → float-BPQlDyai.cjs.map} +1 -1
  145. package/dist/{float-zn3DgXBT.js → float-BQcxj3i_.js} +2 -2
  146. package/dist/{float-zn3DgXBT.js.map → float-BQcxj3i_.js.map} +1 -1
  147. package/dist/float.cjs +1 -1
  148. package/dist/float.js +1 -1
  149. package/dist/{form-DowzVsgI.cjs → form-CoWFnClb.cjs} +8 -13
  150. package/dist/form-CoWFnClb.cjs.map +1 -0
  151. package/dist/{form-tG7LwDm4.js → form-hC2LvCHX.js} +10 -15
  152. package/dist/form-hC2LvCHX.js.map +1 -0
  153. package/dist/form.cjs +12 -13
  154. package/dist/form.cjs.map +1 -1
  155. package/dist/form.js +23 -24
  156. package/dist/form.js.map +1 -1
  157. package/dist/gravity-6pL6CfIr.cjs.map +1 -1
  158. package/dist/gravity-sVK3zGBF.js.map +1 -1
  159. package/dist/handover/agent-runtime-followups.md +1 -1
  160. package/dist/handover/agent-runtime-v1.md +3 -3
  161. package/dist/{hashContent-iRZJJWtE.cjs.map → hashContent--s09Ed_g.cjs.map} +1 -1
  162. package/dist/{hashContent-BqU6v1Xr.js.map → hashContent-CAvrQ56N.js.map} +1 -1
  163. package/dist/icons-BeGKDZ-k.cjs +22 -0
  164. package/dist/icons-BeGKDZ-k.cjs.map +1 -0
  165. package/dist/{icons-Dup5skuk.js → icons-DEJnIxml.js} +20 -22
  166. package/dist/icons-DEJnIxml.js.map +1 -0
  167. package/dist/icons.cjs +1 -1
  168. package/dist/icons.js +1 -1
  169. package/dist/{iframe-CDJjnNmo.cjs → iframe-BkSukM9C.cjs} +9 -9
  170. package/dist/iframe-BkSukM9C.cjs.map +1 -0
  171. package/dist/{iframe-Xc3EPMZT.js → iframe-V3S-bwEY.js} +10 -10
  172. package/dist/iframe-V3S-bwEY.js.map +1 -0
  173. package/dist/iframe.cjs +1 -1
  174. package/dist/iframe.js +1 -1
  175. package/dist/index.cjs +1 -1
  176. package/dist/index.js +61 -60
  177. package/dist/{input-cTyDxW9L.js → input-CPFCSQld.js} +3 -10
  178. package/dist/input-CPFCSQld.js.map +1 -0
  179. package/dist/{input-DnmC6J1T.cjs → input-DSfwfhhj.cjs} +2 -9
  180. package/dist/input-DSfwfhhj.cjs.map +1 -0
  181. package/dist/input-chip-BUuFJUky.cjs +129 -0
  182. package/dist/input-chip-BUuFJUky.cjs.map +1 -0
  183. package/dist/{input-chip-CYI17YOq.js → input-chip-C3a1fwKB.js} +87 -104
  184. package/dist/input-chip-C3a1fwKB.js.map +1 -0
  185. package/dist/input.cjs +1 -1
  186. package/dist/input.js +1 -1
  187. package/dist/json.cjs +5 -1
  188. package/dist/json.cjs.map +1 -1
  189. package/dist/json.js +8 -4
  190. package/dist/json.js.map +1 -1
  191. package/dist/kbd.cjs +28 -28
  192. package/dist/kbd.cjs.map +1 -1
  193. package/dist/kbd.js +29 -29
  194. package/dist/kbd.js.map +1 -1
  195. package/dist/{layout-CNlZSJFU.cjs → layout-CdyHy_oX.cjs} +1 -1
  196. package/dist/layout-CdyHy_oX.cjs.map +1 -0
  197. package/dist/{layout-DDxw0EwL.js → layout-k6fOkpif.js} +1 -1
  198. package/dist/layout-k6fOkpif.js.map +1 -0
  199. package/dist/layout.cjs +26 -26
  200. package/dist/layout.cjs.map +1 -1
  201. package/dist/layout.js +27 -27
  202. package/dist/layout.js.map +1 -1
  203. package/dist/lazy-BaAiIUru.js.map +1 -1
  204. package/dist/lazy-C-7a4FAe.cjs.map +1 -1
  205. package/dist/{lightbox-CH-y3rYB.js → lightbox-DIG0VLOK.js} +8 -14
  206. package/dist/lightbox-DIG0VLOK.js.map +1 -0
  207. package/dist/{lightbox-CvtqoInF.cjs → lightbox-E5rgd-hu.cjs} +7 -13
  208. package/dist/lightbox-E5rgd-hu.cjs.map +1 -0
  209. package/dist/lightbox.cjs +1 -1
  210. package/dist/lightbox.js +1 -1
  211. package/dist/list-BRz0rDSH.cjs +47 -0
  212. package/dist/list-BRz0rDSH.cjs.map +1 -0
  213. package/dist/{list-DrsawQ5R.js → list-NrOYDPBo.js} +42 -35
  214. package/dist/list-NrOYDPBo.js.map +1 -0
  215. package/dist/list.cjs +1 -1
  216. package/dist/list.js +1 -1
  217. package/dist/magnetic-DKtc4umC.cjs.map +1 -1
  218. package/dist/magnetic-DaOOv5Dz.js.map +1 -1
  219. package/dist/{menu-CsY5lMqY.js → menu-B1Ei9SVj.js} +12 -12
  220. package/dist/menu-B1Ei9SVj.js.map +1 -0
  221. package/dist/{menu-BFRcTe3o.cjs → menu-Duvl66Nl.cjs} +10 -10
  222. package/dist/menu-Duvl66Nl.cjs.map +1 -0
  223. package/dist/menu.cjs +1 -1
  224. package/dist/menu.js +1 -1
  225. package/dist/{mixins-BoMURWag.cjs → mixins-Cjn20BQH.cjs} +42 -100
  226. package/dist/mixins-Cjn20BQH.cjs.map +1 -0
  227. package/dist/{mixins-bCEXbwJV.js → mixins-q4KAL8Xr.js} +42 -100
  228. package/dist/mixins-q4KAL8Xr.js.map +1 -0
  229. package/dist/mixins.cjs +1 -1
  230. package/dist/mixins.js +2 -2
  231. package/dist/nav-drawer.cjs +1 -1
  232. package/dist/nav-drawer.js +1 -1
  233. package/dist/navigation-bar.cjs +1 -1
  234. package/dist/navigation-bar.js +1 -1
  235. package/dist/navigation-rail.cjs +2 -4
  236. package/dist/navigation-rail.cjs.map +1 -1
  237. package/dist/navigation-rail.js +3 -5
  238. package/dist/navigation-rail.js.map +1 -1
  239. package/dist/{notification-DFKRMmSq.js → notification-COhUhUCr.js} +5 -7
  240. package/dist/notification-COhUhUCr.js.map +1 -0
  241. package/dist/{notification-FBf3Mb2e.cjs → notification-DsdA_MJe.cjs} +2 -4
  242. package/dist/notification-DsdA_MJe.cjs.map +1 -0
  243. package/dist/notification.cjs +1 -1
  244. package/dist/notification.js +1 -1
  245. package/dist/{option-Ct0lGdH3.js → option-BIzgTbXz.js} +20 -20
  246. package/dist/option-BIzgTbXz.js.map +1 -0
  247. package/dist/option-C5hhqR2z.cjs +43 -0
  248. package/dist/option-C5hhqR2z.cjs.map +1 -0
  249. package/dist/option.cjs +1 -1
  250. package/dist/option.js +1 -1
  251. package/dist/{overlay-sRXiMkjn.cjs → overlay-BzgF8P7i.cjs} +48 -41
  252. package/dist/overlay-BzgF8P7i.cjs.map +1 -0
  253. package/dist/{overlay-Bh8Q_R01.js → overlay-LoRRemny.js} +52 -45
  254. package/dist/overlay-LoRRemny.js.map +1 -0
  255. package/dist/overlay-stack-Bdr9lOqi.cjs.map +1 -1
  256. package/dist/overlay-stack-D2rgxQLh.js.map +1 -1
  257. package/dist/overlay.cjs +1 -1
  258. package/dist/{overlay.confirm-body-CQihsR20.js → overlay.confirm-body-D0b1MoCw.js} +30 -45
  259. package/dist/overlay.confirm-body-D0b1MoCw.js.map +1 -0
  260. package/dist/{overlay.confirm-body-Jc1EuMGs.cjs → overlay.confirm-body-DCneq73Z.cjs} +22 -37
  261. package/dist/overlay.confirm-body-DCneq73Z.cjs.map +1 -0
  262. package/dist/overlay.js +3 -3
  263. package/dist/{overlay.service-BXPgS7ay.js → overlay.service-BuUeti6X.js} +2 -2
  264. package/dist/overlay.service-BuUeti6X.js.map +1 -0
  265. package/dist/{overlay.service-9Dp3g7ot.cjs → overlay.service-MMTiW2T3.cjs} +1 -1
  266. package/dist/overlay.service-MMTiW2T3.cjs.map +1 -0
  267. package/dist/{progress-CYLshdo2.js → progress-D7n3SKAO.js} +50 -50
  268. package/dist/progress-D7n3SKAO.js.map +1 -0
  269. package/dist/progress-DsCnFsH5.cjs +51 -0
  270. package/dist/progress-DsCnFsH5.cjs.map +1 -0
  271. package/dist/progress.cjs +1 -1
  272. package/dist/progress.js +1 -1
  273. package/dist/{radio-group-6kCgOgBL.cjs → radio-group-CaAjg9UV.cjs} +1 -1
  274. package/dist/radio-group-CaAjg9UV.cjs.map +1 -0
  275. package/dist/{radio-group-bZtZHOj_.js → radio-group-Drpl6Pl8.js} +2 -2
  276. package/dist/radio-group-Drpl6Pl8.js.map +1 -0
  277. package/dist/radio-group.cjs +1 -1
  278. package/dist/radio-group.js +1 -1
  279. package/dist/range.cjs +4 -2
  280. package/dist/range.cjs.map +1 -1
  281. package/dist/range.js +5 -3
  282. package/dist/range.js.map +1 -1
  283. package/dist/reduced-motion-D-L12p7G.js.map +1 -1
  284. package/dist/reduced-motion-Ds-HjMzn.cjs.map +1 -1
  285. package/dist/{rxjs-utils-Csnks202.cjs.map → rxjs-utils-4P2v57ke.cjs.map} +1 -1
  286. package/dist/{rxjs-utils-d-ivVN84.js.map → rxjs-utils-JMFdgQSl.js.map} +1 -1
  287. package/dist/rxjs-utils.cjs +1 -1
  288. package/dist/rxjs-utils.js +1 -1
  289. package/dist/search-DPKoC-dT.cjs.map +1 -1
  290. package/dist/search-MvIBA93K.js.map +1 -1
  291. package/dist/{select-CU3X-PIa.js → select-CTXkrrVZ.js} +13 -13
  292. package/dist/select-CTXkrrVZ.js.map +1 -0
  293. package/dist/select-DcLcpPCh.cjs +56 -0
  294. package/dist/select-DcLcpPCh.cjs.map +1 -0
  295. package/dist/select.cjs +1 -1
  296. package/dist/select.js +1 -1
  297. package/dist/skeleton.cjs +37 -33
  298. package/dist/skeleton.cjs.map +1 -1
  299. package/dist/skeleton.js +38 -34
  300. package/dist/skeleton.js.map +1 -1
  301. package/dist/skills/schmancy/surface.md +38 -22
  302. package/dist/skills/surface.md +38 -22
  303. package/dist/slider.cjs +31 -31
  304. package/dist/slider.cjs.map +1 -1
  305. package/dist/slider.js +32 -32
  306. package/dist/slider.js.map +1 -1
  307. package/dist/{sound.service-B4ZmXpH9.js → sound.service-AJwuk3yr.js} +1 -1
  308. package/dist/sound.service-AJwuk3yr.js.map +1 -0
  309. package/dist/{sound.service-DjlMvicQ.cjs → sound.service-CVsxhQkX.cjs} +1 -1
  310. package/dist/sound.service-CVsxhQkX.cjs.map +1 -0
  311. package/dist/{splash-screen-emCLYoVl.js → splash-screen-DANfqvlo.js} +23 -26
  312. package/dist/splash-screen-DANfqvlo.js.map +1 -0
  313. package/dist/splash-screen-K74cgU6S.cjs +38 -0
  314. package/dist/splash-screen-K74cgU6S.cjs.map +1 -0
  315. package/dist/splash-screen.cjs +1 -1
  316. package/dist/splash-screen.js +1 -1
  317. package/dist/{src-DGDTkOvC.js → src-Bo-vvN6m.js} +173 -175
  318. package/dist/src-Bo-vvN6m.js.map +1 -0
  319. package/dist/src-MdpH1zth.cjs +237 -0
  320. package/dist/src-MdpH1zth.cjs.map +1 -0
  321. package/dist/{state-CumAEPQH.cjs → state-BWQiqN6I.cjs} +1 -1
  322. package/dist/state-BWQiqN6I.cjs.map +1 -0
  323. package/dist/{state-DMd_FUeA.js → state-DBA_gzJO.js} +1 -1
  324. package/dist/state-DBA_gzJO.js.map +1 -0
  325. package/dist/state.cjs +1 -1
  326. package/dist/state.js +2 -2
  327. package/dist/steps.cjs +20 -12
  328. package/dist/steps.cjs.map +1 -1
  329. package/dist/steps.js +21 -13
  330. package/dist/steps.js.map +1 -1
  331. package/dist/surface-COBvWWFb.cjs +7 -0
  332. package/dist/surface-COBvWWFb.cjs.map +1 -0
  333. package/dist/{surface-DNiYigsX.js → surface-DXk1X1tL.js} +9 -9
  334. package/dist/{surface-DNiYigsX.js.map → surface-DXk1X1tL.js.map} +1 -1
  335. package/dist/surface.cjs +1 -1
  336. package/dist/surface.js +1 -1
  337. package/dist/switch.cjs +13 -4
  338. package/dist/switch.cjs.map +1 -1
  339. package/dist/switch.js +14 -5
  340. package/dist/switch.js.map +1 -1
  341. package/dist/table.cjs +4 -10
  342. package/dist/table.cjs.map +1 -1
  343. package/dist/table.js +5 -11
  344. package/dist/table.js.map +1 -1
  345. package/dist/{tabs-4T_4kCf-.js → tabs-BYhFWnsx.js} +7 -7
  346. package/dist/tabs-BYhFWnsx.js.map +1 -0
  347. package/dist/{tabs-Byxxt-AH.cjs → tabs-CJwB0fr0.cjs} +6 -6
  348. package/dist/tabs-CJwB0fr0.cjs.map +1 -0
  349. package/dist/tabs.cjs +1 -1
  350. package/dist/tabs.js +1 -1
  351. package/dist/teleport.cjs +1 -1
  352. package/dist/teleport.js +1 -1
  353. package/dist/{textarea-kkYNk1ET.js → textarea-BjDx1w2g.js} +37 -41
  354. package/dist/textarea-BjDx1w2g.js.map +1 -0
  355. package/dist/{textarea-BwYwH9fu.cjs → textarea-CGgznhd6.cjs} +36 -40
  356. package/dist/textarea-CGgznhd6.cjs.map +1 -0
  357. package/dist/textarea.cjs +1 -1
  358. package/dist/textarea.js +1 -1
  359. package/dist/{theme-BG0EnzYP.cjs → theme-BVul7lHS.cjs} +6 -6
  360. package/dist/{theme-BG0EnzYP.cjs.map → theme-BVul7lHS.cjs.map} +1 -1
  361. package/dist/{theme-DwQBl6sr.js → theme-Dvm5J8nh.js} +11 -11
  362. package/dist/{theme-DwQBl6sr.js.map → theme-Dvm5J8nh.js.map} +1 -1
  363. package/dist/{theme-button-BD8anzsZ.js → theme-button-Bko5ohFP.js} +2 -2
  364. package/dist/{theme-button-BD8anzsZ.js.map → theme-button-Bko5ohFP.js.map} +1 -1
  365. package/dist/{theme-button-DlrNoCMA.cjs → theme-button-YLY7zR1c.cjs} +1 -1
  366. package/dist/{theme-button-DlrNoCMA.cjs.map → theme-button-YLY7zR1c.cjs.map} +1 -1
  367. package/dist/theme-button.cjs +1 -1
  368. package/dist/theme-button.js +1 -1
  369. package/dist/theme.cjs +1 -1
  370. package/dist/{theme.interface-CSt7JUBD.cjs.map → theme.interface-B-qxDsZQ.cjs.map} +1 -1
  371. package/dist/{theme.interface-odQEpZZH.js.map → theme.interface-B7caS5cg.js.map} +1 -1
  372. package/dist/theme.js +4 -4
  373. package/dist/{theme.service-Dv_55nfE.js → theme.service-D94nm7Bf.js} +1 -1
  374. package/dist/theme.service-D94nm7Bf.js.map +1 -0
  375. package/dist/{theme.service-pjkTM209.cjs → theme.service-h2fXQq7x.cjs} +1 -1
  376. package/dist/theme.service-h2fXQq7x.cjs.map +1 -0
  377. package/dist/tooltip.cjs.map +1 -1
  378. package/dist/tooltip.js.map +1 -1
  379. package/dist/tree.cjs +14 -14
  380. package/dist/tree.cjs.map +1 -1
  381. package/dist/tree.js +15 -15
  382. package/dist/tree.js.map +1 -1
  383. package/dist/types.cjs +1 -1
  384. package/dist/types.cjs.map +1 -1
  385. package/dist/types.js +19 -2
  386. package/dist/types.js.map +1 -1
  387. package/dist/typewriter.cjs.map +1 -1
  388. package/dist/typewriter.js.map +1 -1
  389. package/dist/typography-ByF2k5yW.js +358 -0
  390. package/dist/typography-ByF2k5yW.js.map +1 -0
  391. package/dist/typography-Cfav17it.cjs +282 -0
  392. package/dist/typography-Cfav17it.cjs.map +1 -0
  393. package/dist/typography.cjs +1 -1
  394. package/dist/typography.js +1 -1
  395. package/dist/utils-DIXndz6Q.cjs.map +1 -0
  396. package/dist/utils-dSPH7Oh9.js.map +1 -0
  397. package/dist/utils.cjs +1 -1
  398. package/dist/utils.js +1 -1
  399. package/dist/visually-hidden.cjs +13 -13
  400. package/dist/visually-hidden.cjs.map +1 -1
  401. package/dist/visually-hidden.js +14 -14
  402. package/dist/visually-hidden.js.map +1 -1
  403. package/dist/window-Br1OmpL-.cjs +67 -0
  404. package/dist/window-Br1OmpL-.cjs.map +1 -0
  405. package/dist/{window-C76zstbV.js → window-CCmN4but.js} +24 -15
  406. package/dist/window-CCmN4but.js.map +1 -0
  407. package/dist/window.cjs +1 -1
  408. package/dist/window.js +1 -1
  409. package/package.json +1 -1
  410. package/skills/schmancy/surface.md +38 -22
  411. package/src/area/area.component.ts +249 -163
  412. package/src/area/area.service.test.ts +994 -1006
  413. package/src/area/area.service.ts +76 -72
  414. package/src/area/index.ts +7 -7
  415. package/src/area/lazy.ts +39 -42
  416. package/src/area/route.component.ts +54 -52
  417. package/src/area/router.types.ts +7 -7
  418. package/src/audio/emotional-sounds.ts +880 -801
  419. package/src/audio/sound.service.ts +26 -5
  420. package/src/avatar/avatar.ts +4 -4
  421. package/src/badge/badge.ts +15 -12
  422. package/src/badge/index.ts +1 -1
  423. package/src/boat/boat.ts +1 -1
  424. package/src/breadcrumb/breadcrumb.ts +37 -32
  425. package/src/busy/busy.ts +15 -12
  426. package/src/busy/index.ts +2 -2
  427. package/src/busy/spinner.ts +132 -119
  428. package/src/button/button.test.ts +5 -1
  429. package/src/button/button.ts +113 -72
  430. package/src/button/icon-button.ts +64 -46
  431. package/src/button/index.ts +2 -2
  432. package/src/calendar/calendar.test.ts +504 -0
  433. package/src/calendar/calendar.ts +587 -0
  434. package/src/calendar/index.ts +2 -0
  435. package/src/card/actions.ts +11 -9
  436. package/src/card/card.ts +79 -77
  437. package/src/card/content.ts +8 -6
  438. package/src/card/index.ts +4 -4
  439. package/src/card/media.ts +50 -50
  440. package/src/chips/assist-chip.ts +1 -1
  441. package/src/chips/chips.ts +1 -1
  442. package/src/chips/filter-chip.ts +1 -1
  443. package/src/chips/index.ts +1 -1
  444. package/src/chips/input-chip.ts +1 -1
  445. package/src/chips/suggestion-chip.ts +1 -1
  446. package/src/connectivity/connectivity-status.ts +90 -62
  447. package/src/content-drawer/drawer.service.ts +47 -36
  448. package/src/content-drawer/drawer.ts +31 -18
  449. package/src/content-drawer/index.ts +5 -5
  450. package/src/content-drawer/main.ts +9 -7
  451. package/src/content-drawer/sheet.ts +8 -6
  452. package/src/date-range-inline/date-range-inline.ts +523 -522
  453. package/src/date-range-inline/index.ts +2 -2
  454. package/src/delay/index.ts +1 -1
  455. package/src/details/details.ts +119 -105
  456. package/src/details/index.ts +1 -1
  457. package/src/directives/ai-badge.ts +1 -5
  458. package/src/directives/animate-text.ts +43 -31
  459. package/src/directives/art/effects/howl.ts +1 -4
  460. package/src/directives/art/effects/samwa.ts +11 -5
  461. package/src/directives/art/effects/snow.ts +1 -2
  462. package/src/directives/battery.ts +21 -12
  463. package/src/directives/confirm-click.ts +9 -17
  464. package/src/directives/cursor-glow.ts +1 -1
  465. package/src/directives/cycle-text.ts +7 -21
  466. package/src/directives/drag.ts +50 -45
  467. package/src/directives/fyi.ts +1 -6
  468. package/src/directives/gravity.ts +10 -8
  469. package/src/directives/hummingbird.ts +256 -107
  470. package/src/directives/index.ts +29 -29
  471. package/src/directives/intersect.ts +11 -11
  472. package/src/directives/layout.ts +25 -36
  473. package/src/directives/liquid.ts +4 -10
  474. package/src/directives/living-border.ts +7 -5
  475. package/src/directives/long-press.ts +2 -1
  476. package/src/directives/magnetic.ts +7 -6
  477. package/src/directives/nebula.ts +34 -28
  478. package/src/directives/overflow-within.ts +18 -20
  479. package/src/directives/reduced-motion.ts +9 -9
  480. package/src/directives/reveal.ts +193 -195
  481. package/src/directives/ripple.ts +9 -7
  482. package/src/directives/urgent.ts +3 -1
  483. package/src/directives/working-snake.ts +1 -1
  484. package/src/discovery/discovery.service.ts +198 -210
  485. package/src/discovery/index.ts +1 -1
  486. package/src/divider/divider.ts +49 -47
  487. package/src/divider/index.ts +1 -1
  488. package/src/dropdown/dropdown-content.ts +42 -40
  489. package/src/dropdown/index.ts +2 -2
  490. package/src/expand/expand-root.component.ts +70 -61
  491. package/src/expand/expand.component.ts +48 -43
  492. package/src/fab/fab.test.ts +1 -2
  493. package/src/fab/fab.ts +2 -4
  494. package/src/form/fields/autocomplete/autocomplete.scss +6 -2
  495. package/src/form/fields/autocomplete/autocomplete.ts +712 -724
  496. package/src/form/fields/autocomplete/index.ts +1 -1
  497. package/src/form/fields/checkbox/checkbox.ts +1 -4
  498. package/src/form/fields/chips/assist-chip.ts +69 -72
  499. package/src/form/fields/chips/chips.ts +14 -15
  500. package/src/form/fields/chips/filter-chip.ts +36 -32
  501. package/src/form/fields/chips/index.ts +5 -5
  502. package/src/form/fields/chips/input-chip.ts +130 -142
  503. package/src/form/fields/chips/suggestion-chip.ts +69 -72
  504. package/src/form/fields/date-range/date-range-dialog.ts +154 -194
  505. package/src/form/fields/date-range/date-range-helpers.ts +63 -64
  506. package/src/form/fields/date-range/date-range.test.ts +575 -121
  507. package/src/form/fields/date-range/date-range.ts +343 -395
  508. package/src/form/fields/date-range/index.ts +2 -2
  509. package/src/form/fields/input/index.ts +8 -8
  510. package/src/form/fields/input/input.scss +30 -26
  511. package/src/form/fields/input/input.test.ts +4 -1
  512. package/src/form/fields/input/input.ts +4 -20
  513. package/src/form/fields/radio-group/index.ts +2 -2
  514. package/src/form/fields/radio-group/radio-button.ts +8 -8
  515. package/src/form/fields/radio-group/radio-group.ts +4 -1
  516. package/src/form/fields/range/range.ts +3 -1
  517. package/src/form/fields/select/index.ts +2 -2
  518. package/src/form/fields/select/select.ts +51 -45
  519. package/src/form/fields/switch/switch.ts +13 -7
  520. package/src/form/fields/textarea/index.ts +1 -1
  521. package/src/form/fields/textarea/textarea.ts +44 -49
  522. package/src/form/form-summary.ts +15 -14
  523. package/src/form/form.test.ts +0 -1
  524. package/src/form/form.ts +11 -23
  525. package/src/icons/icon.ts +25 -25
  526. package/src/icons/index.ts +1 -1
  527. package/src/iframe/iframe.ts +11 -9
  528. package/src/index.ts +1 -0
  529. package/src/json/json.ts +9 -2
  530. package/src/kbd/kbd.ts +30 -28
  531. package/src/layout/scroll/index.ts +1 -1
  532. package/src/layout/scroll/scroll.ts +54 -54
  533. package/src/lightbox/lightbox-service.ts +27 -18
  534. package/src/lightbox/lightbox.directive.ts +2 -1
  535. package/src/lightbox/lightbox.ts +21 -38
  536. package/src/list/index.ts +3 -3
  537. package/src/list/list-item.ts +32 -26
  538. package/src/list/list.ts +13 -8
  539. package/src/menu/index.ts +2 -2
  540. package/src/menu/menu-item.ts +7 -5
  541. package/src/menu/menu.ts +8 -6
  542. package/src/nav-drawer/appbar.ts +9 -7
  543. package/src/nav-drawer/content.ts +10 -8
  544. package/src/nav-drawer/drawer.ts +29 -25
  545. package/src/nav-drawer/index.ts +6 -6
  546. package/src/navigation-bar/index.ts +2 -2
  547. package/src/navigation-bar/navigation-bar-item.ts +127 -118
  548. package/src/navigation-bar/navigation-bar.ts +103 -91
  549. package/src/navigation-rail/index.ts +2 -2
  550. package/src/navigation-rail/navigation-rail.ts +21 -22
  551. package/src/notification/index.ts +6 -6
  552. package/src/notification/notification-service.ts +1 -2
  553. package/src/notification/notification.scss +5 -1
  554. package/src/notification/notification.ts +1 -3
  555. package/src/notification/notify.ts +204 -207
  556. package/src/option/index.ts +1 -1
  557. package/src/option/option.ts +26 -25
  558. package/src/overlay/overlay.animations.ts +4 -14
  559. package/src/overlay/overlay.component.ts +110 -131
  560. package/src/overlay/overlay.confirm-body.ts +26 -48
  561. package/src/overlay/overlay.gestures.ts +8 -10
  562. package/src/overlay/overlay.layout.ts +1 -4
  563. package/src/overlay/overlay.positioning.ts +4 -15
  564. package/src/overlay/overlay.service.ts +9 -24
  565. package/src/overlay/overlay.stack.test.ts +4 -1
  566. package/src/overlay/overlay.stack.ts +4 -4
  567. package/src/overlay/overlay.types.ts +11 -20
  568. package/src/progress/index.ts +1 -1
  569. package/src/progress/progress.ts +135 -133
  570. package/src/rxjs-utils/index.ts +6 -6
  571. package/src/rxjs-utils/waitForElement.ts +20 -20
  572. package/src/rxjs-utils/waitForElementAll.ts +21 -21
  573. package/src/rxjs-utils/waitForElements.ts +27 -27
  574. package/src/rxjs-utils/waitForElementsAll.ts +27 -29
  575. package/src/rxjs-utils/waitUntil.ts +7 -12
  576. package/src/skeleton/skeleton.ts +39 -33
  577. package/src/slider/index.ts +2 -2
  578. package/src/slider/slide.ts +14 -12
  579. package/src/slider/slider.ts +24 -22
  580. package/src/splash-screen/index.ts +1 -1
  581. package/src/splash-screen/splash-screen.ts +26 -27
  582. package/src/state/active-host.ts +4 -5
  583. package/src/state/index.ts +34 -53
  584. package/src/state/persist.ts +14 -11
  585. package/src/state/schmancy-context.ts +88 -88
  586. package/src/state/state.test-d.ts +3 -13
  587. package/src/state/state.test.ts +1 -4
  588. package/src/steps/index.ts +3 -3
  589. package/src/steps/schmancy-step.ts +41 -31
  590. package/src/steps/schmancy-steps.ts +7 -5
  591. package/src/surface/index.ts +1 -1
  592. package/src/surface/surface.styles.ts +53 -104
  593. package/src/surface/surface.ts +10 -8
  594. package/src/table/index.ts +2 -2
  595. package/src/table/row.ts +1 -4
  596. package/src/table/table.ts +2 -5
  597. package/src/tabs/index.ts +2 -2
  598. package/src/tabs/tabs-group.ts +8 -6
  599. package/src/teleport/index.ts +2 -2
  600. package/src/test-utils/a11y.ts +1 -3
  601. package/src/theme/index.ts +17 -17
  602. package/src/theme/theme-audio-player.ts +18 -16
  603. package/src/theme/theme-controller-boat.ts +1 -1
  604. package/src/theme/theme-controller.ts +36 -32
  605. package/src/theme/theme.component.ts +5 -9
  606. package/src/theme/theme.events.ts +1 -1
  607. package/src/theme/theme.format.ts +7 -7
  608. package/src/theme/theme.service.ts +453 -468
  609. package/src/theme/theme.style.css +78 -23
  610. package/src/theme-button/index.ts +1 -1
  611. package/src/tooltip/tooltip.directive.ts +1 -1
  612. package/src/tree/index.ts +1 -1
  613. package/src/tree/tree.ts +24 -16
  614. package/src/types/surface.ts +38 -44
  615. package/src/typewriter/typewriter.directive.ts +30 -39
  616. package/src/typography/typography.ts +289 -269
  617. package/src/utils/animation.ts +2 -8
  618. package/src/utils/index.ts +6 -6
  619. package/src/utils/number.ts +480 -517
  620. package/src/utils/overlay-stack.ts +1 -3
  621. package/src/utils/search.ts +5 -9
  622. package/src/visually-hidden/visually-hidden.ts +15 -13
  623. package/src/window/window-manager.ts +6 -1
  624. package/src/window/window-position.ts +7 -5
  625. package/src/window/window.ts +143 -108
  626. package/types/src/calendar/calendar.d.ts +108 -0
  627. package/types/src/calendar/calendar.test.d.ts +1 -0
  628. package/types/src/calendar/index.d.ts +2 -0
  629. package/types/src/directives/cursor-glow.d.ts +1 -1
  630. package/types/src/directives/hummingbird.d.ts +3 -3
  631. package/types/src/form/fields/date-range/date-range-dialog.d.ts +24 -28
  632. package/types/src/form/fields/date-range/date-range.d.ts +39 -66
  633. package/types/src/form/fields/date-range/date-range.test.d.ts +1 -0
  634. package/types/src/form/fields/date-range/index.d.ts +1 -1
  635. package/types/src/index.d.ts +1 -0
  636. package/types/src/surface/surface.styles.d.ts +13 -6
  637. package/types/src/types/surface.d.ts +17 -22
  638. package/types/src/utils/number.d.ts +1 -1
  639. package/dist/SchmancyElement-OG71FtNv.js +0 -286
  640. package/dist/SchmancyElement-OG71FtNv.js.map +0 -1
  641. package/dist/SchmancyElement-PS1u0j1B.cjs +0 -2
  642. package/dist/SchmancyElement-PS1u0j1B.cjs.map +0 -1
  643. package/dist/area-CaEI33G0.cjs +0 -21
  644. package/dist/area-CaEI33G0.cjs.map +0 -1
  645. package/dist/area-DtCNCb8w.js.map +0 -1
  646. package/dist/audio-B924fI5N.cjs.map +0 -1
  647. package/dist/audio-DdN76ikW.js.map +0 -1
  648. package/dist/autocomplete-Dq3BkitV.cjs +0 -115
  649. package/dist/autocomplete-Dq3BkitV.cjs.map +0 -1
  650. package/dist/autocomplete-UNOknYUz.js.map +0 -1
  651. package/dist/busy--WqiXKnl.cjs +0 -134
  652. package/dist/busy--WqiXKnl.cjs.map +0 -1
  653. package/dist/busy-DzXyO0z6.js +0 -173
  654. package/dist/busy-DzXyO0z6.js.map +0 -1
  655. package/dist/button-CTvS5YX4.cjs.map +0 -1
  656. package/dist/button-DgoDfcJx.js.map +0 -1
  657. package/dist/card-C6ijJZpF.js.map +0 -1
  658. package/dist/card-Ci3_9Dd4.cjs +0 -177
  659. package/dist/card-Ci3_9Dd4.cjs.map +0 -1
  660. package/dist/chips-9eG-96_D.cjs.map +0 -1
  661. package/dist/chips-DF7akwz7.js.map +0 -1
  662. package/dist/date-range-C13_R3OA.js +0 -966
  663. package/dist/date-range-C13_R3OA.js.map +0 -1
  664. package/dist/date-range-Q2xj5Syc.cjs +0 -142
  665. package/dist/date-range-Q2xj5Syc.cjs.map +0 -1
  666. package/dist/date-range-inline-BnOD-ddB.js.map +0 -1
  667. package/dist/date-range-inline-DV2c_gWM.cjs.map +0 -1
  668. package/dist/details-B2-jECBh.cjs.map +0 -1
  669. package/dist/details-ByF66CyY.js.map +0 -1
  670. package/dist/directives-BL7mzVsA.js.map +0 -1
  671. package/dist/directives-DCb_LA9R.cjs.map +0 -1
  672. package/dist/divider-Bv2QiOZL.cjs +0 -57
  673. package/dist/divider-Bv2QiOZL.cjs.map +0 -1
  674. package/dist/divider-gYuz0zDU.js +0 -89
  675. package/dist/divider-gYuz0zDU.js.map +0 -1
  676. package/dist/expand-B9IUGVtc.cjs +0 -141
  677. package/dist/expand-B9IUGVtc.cjs.map +0 -1
  678. package/dist/expand-cZ8rfCWP.js.map +0 -1
  679. package/dist/form-DowzVsgI.cjs.map +0 -1
  680. package/dist/form-tG7LwDm4.js.map +0 -1
  681. package/dist/icons-BZeCloP9.cjs +0 -24
  682. package/dist/icons-BZeCloP9.cjs.map +0 -1
  683. package/dist/icons-Dup5skuk.js.map +0 -1
  684. package/dist/iframe-CDJjnNmo.cjs.map +0 -1
  685. package/dist/iframe-Xc3EPMZT.js.map +0 -1
  686. package/dist/input-DnmC6J1T.cjs.map +0 -1
  687. package/dist/input-cTyDxW9L.js.map +0 -1
  688. package/dist/input-chip-CV91URyU.cjs +0 -146
  689. package/dist/input-chip-CV91URyU.cjs.map +0 -1
  690. package/dist/input-chip-CYI17YOq.js.map +0 -1
  691. package/dist/layout-CNlZSJFU.cjs.map +0 -1
  692. package/dist/layout-DDxw0EwL.js.map +0 -1
  693. package/dist/lightbox-CH-y3rYB.js.map +0 -1
  694. package/dist/lightbox-CvtqoInF.cjs.map +0 -1
  695. package/dist/list-Dl8KfxrF.cjs +0 -40
  696. package/dist/list-Dl8KfxrF.cjs.map +0 -1
  697. package/dist/list-DrsawQ5R.js.map +0 -1
  698. package/dist/menu-BFRcTe3o.cjs.map +0 -1
  699. package/dist/menu-CsY5lMqY.js.map +0 -1
  700. package/dist/mixins-BoMURWag.cjs.map +0 -1
  701. package/dist/mixins-bCEXbwJV.js.map +0 -1
  702. package/dist/notification-DFKRMmSq.js.map +0 -1
  703. package/dist/notification-FBf3Mb2e.cjs.map +0 -1
  704. package/dist/option-Ct0lGdH3.js.map +0 -1
  705. package/dist/option-Il1KpU8M.cjs +0 -43
  706. package/dist/option-Il1KpU8M.cjs.map +0 -1
  707. package/dist/overlay-Bh8Q_R01.js.map +0 -1
  708. package/dist/overlay-sRXiMkjn.cjs.map +0 -1
  709. package/dist/overlay.confirm-body-CQihsR20.js.map +0 -1
  710. package/dist/overlay.confirm-body-Jc1EuMGs.cjs.map +0 -1
  711. package/dist/overlay.service-9Dp3g7ot.cjs.map +0 -1
  712. package/dist/overlay.service-BXPgS7ay.js.map +0 -1
  713. package/dist/progress-CWC5XYZ_.cjs +0 -51
  714. package/dist/progress-CWC5XYZ_.cjs.map +0 -1
  715. package/dist/progress-CYLshdo2.js.map +0 -1
  716. package/dist/radio-group-6kCgOgBL.cjs.map +0 -1
  717. package/dist/radio-group-bZtZHOj_.js.map +0 -1
  718. package/dist/select-CU3X-PIa.js.map +0 -1
  719. package/dist/select-MXsF8KsU.cjs +0 -56
  720. package/dist/select-MXsF8KsU.cjs.map +0 -1
  721. package/dist/sound.service-B4ZmXpH9.js.map +0 -1
  722. package/dist/sound.service-DjlMvicQ.cjs.map +0 -1
  723. package/dist/splash-screen-CN9dZcqC.cjs +0 -41
  724. package/dist/splash-screen-CN9dZcqC.cjs.map +0 -1
  725. package/dist/splash-screen-emCLYoVl.js.map +0 -1
  726. package/dist/src-DGDTkOvC.js.map +0 -1
  727. package/dist/src-DK3111z_.cjs +0 -240
  728. package/dist/src-DK3111z_.cjs.map +0 -1
  729. package/dist/state-CumAEPQH.cjs.map +0 -1
  730. package/dist/state-DMd_FUeA.js.map +0 -1
  731. package/dist/surface-DGI-FBoi.cjs +0 -7
  732. package/dist/surface-DGI-FBoi.cjs.map +0 -1
  733. package/dist/tabs-4T_4kCf-.js.map +0 -1
  734. package/dist/tabs-Byxxt-AH.cjs.map +0 -1
  735. package/dist/textarea-BwYwH9fu.cjs.map +0 -1
  736. package/dist/textarea-kkYNk1ET.js.map +0 -1
  737. package/dist/theme.service-Dv_55nfE.js.map +0 -1
  738. package/dist/theme.service-pjkTM209.cjs.map +0 -1
  739. package/dist/typography-BVkU11_q.js +0 -358
  740. package/dist/typography-BVkU11_q.js.map +0 -1
  741. package/dist/typography-aaQaIcNc.cjs +0 -282
  742. package/dist/typography-aaQaIcNc.cjs.map +0 -1
  743. package/dist/utils-DTa3QHxk.cjs.map +0 -1
  744. package/dist/utils-H8wNknWC.js.map +0 -1
  745. package/dist/window-C76zstbV.js.map +0 -1
  746. package/dist/window-CmB9XZzT.cjs +0 -58
  747. package/dist/window-CmB9XZzT.cjs.map +0 -1
  748. package/src/form/fields/date-range/date-range-presets.ts +0 -220
  749. package/src/form/fields/date-range/date-utils.ts +0 -58
  750. package/types/src/form/fields/date-range/date-range-presets.d.ts +0 -18
  751. package/types/src/form/fields/date-range/date-utils.d.ts +0 -15
  752. /package/dist/{hashContent-iRZJJWtE.cjs → hashContent--s09Ed_g.cjs} +0 -0
  753. /package/dist/{hashContent-BqU6v1Xr.js → hashContent-CAvrQ56N.js} +0 -0
  754. /package/dist/{rxjs-utils-Csnks202.cjs → rxjs-utils-4P2v57ke.cjs} +0 -0
  755. /package/dist/{rxjs-utils-d-ivVN84.js → rxjs-utils-JMFdgQSl.js} +0 -0
  756. /package/dist/{theme.interface-CSt7JUBD.cjs → theme.interface-B-qxDsZQ.cjs} +0 -0
  757. /package/dist/{theme.interface-odQEpZZH.js → theme.interface-B7caS5cg.js} +0 -0
  758. /package/dist/{utils-DTa3QHxk.cjs → utils-DIXndz6Q.cjs} +0 -0
  759. /package/dist/{utils-H8wNknWC.js → utils-dSPH7Oh9.js} +0 -0
@@ -0,0 +1,439 @@
1
+ import { r as e, t } from "./chunk-BM5alsTp.js";
2
+ import { t as n, u as r } from "./SchmancyElement-Ob9yGkiG.js";
3
+ import { o as i } from "./mixins-q4KAL8Xr.js";
4
+ import { o as a } from "./overlay.service-BuUeti6X.js";
5
+ import { t as o } from "./dayjs.min-DnELezPs.js";
6
+ import { Subject as s, concat as c, exhaustMap as l, finalize as u, fromEvent as d, map as f, merge as p, of as m, switchMap as h, takeUntil as g, tap as _, timer as v } from "rxjs";
7
+ import { customElement as y, property as b, state as x } from "lit/decorators.js";
8
+ import { css as S, html as C, nothing as w } from "lit";
9
+ import { ifDefined as T } from "lit/directives/if-defined.js";
10
+ import { repeat as E } from "lit/directives/repeat.js";
11
+ import { when as D } from "lit/directives/when.js";
12
+ var O = e(t((e, t) => {
13
+ var n = e, r = function() {
14
+ var e = "month", t = "quarter";
15
+ return function(n, r) {
16
+ var i = r.prototype;
17
+ i.quarter = function(e) {
18
+ return this.$utils().u(e) ? Math.ceil((this.month() + 1) / 3) : this.month(this.month() % 3 + 3 * (e - 1));
19
+ };
20
+ var a = i.add;
21
+ i.add = function(n, r) {
22
+ return n = Number(n), this.$utils().p(r) === t ? this.add(3 * n, e) : a.bind(this)(n, r);
23
+ };
24
+ var o = i.startOf;
25
+ i.startOf = function(n, r) {
26
+ var i = this.$utils(), a = !!i.u(r) || r;
27
+ if (i.p(n) === t) {
28
+ var s = this.quarter() - 1;
29
+ return a ? this.month(3 * s).startOf(e).startOf("day") : this.month(3 * s + 2).endOf(e).endOf("day");
30
+ }
31
+ return o.bind(this)(n, r);
32
+ };
33
+ };
34
+ };
35
+ 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();
36
+ })(), 1), k = e(o(), 1), A = class extends n {
37
+ constructor(...e) {
38
+ super(...e), this.type = "date", this.start = null, this.end = null, this.preset = null, this.presets = [];
39
+ }
40
+ static {
41
+ this.styles = [S`
42
+ :host {
43
+ display: block;
44
+ }
45
+ `];
46
+ }
47
+ handleCalendarInput(e) {
48
+ e.stopPropagation(), this.dispatchEvent(new CustomEvent("calendar-input", {
49
+ detail: {
50
+ start: e.detail.start,
51
+ end: e.detail.end
52
+ },
53
+ bubbles: !0,
54
+ composed: !0
55
+ }));
56
+ }
57
+ handleCalendarChange(e) {
58
+ e.stopPropagation();
59
+ let t = this.type === "datetime-local";
60
+ this.dispatchEvent(new CustomEvent("calendar-change", {
61
+ detail: {
62
+ start: t && e.detail.start && !e.detail.start.includes("T") ? `${e.detail.start}T00:00` : e.detail.start,
63
+ end: t && e.detail.end && !e.detail.end.includes("T") ? `${e.detail.end}T23:59` : e.detail.end
64
+ },
65
+ bubbles: !0,
66
+ composed: !0
67
+ }));
68
+ }
69
+ handlePresetClick(e) {
70
+ this.dispatchEvent(new CustomEvent("preset-select", {
71
+ detail: e,
72
+ bubbles: !0,
73
+ composed: !0
74
+ }));
75
+ }
76
+ handleFromChange(e) {
77
+ let t = e.target.value;
78
+ if (!t) return;
79
+ let n = t, r = this.end && (0, k.default)(this.end).isBefore((0, k.default)(n)) ? n : this.end ?? null;
80
+ this.dispatchEvent(new CustomEvent("calendar-change", {
81
+ detail: {
82
+ start: n,
83
+ end: r
84
+ },
85
+ bubbles: !0,
86
+ composed: !0
87
+ }));
88
+ }
89
+ handleToChange(e) {
90
+ let t = e.target.value;
91
+ t && this.dispatchEvent(new CustomEvent("calendar-change", {
92
+ detail: {
93
+ start: this.start ?? null,
94
+ end: t
95
+ },
96
+ bubbles: !0,
97
+ composed: !0
98
+ }));
99
+ }
100
+ render() {
101
+ return C`
102
+ <div class="flex flex-col w-full" style="min-width:280px; max-width:360px">
103
+ <!-- Sticky chip quick-rail -->
104
+ <div
105
+ part="presets"
106
+ class="sticky top-0 z-20 bg-surface-default flex flex-wrap gap-2 p-3 border-b border-outline-variant/40"
107
+ >
108
+ ${D(this.presets.length > 0, () => C`
109
+ ${E(this.presets, (e) => e.id, (e) => C`
110
+ <schmancy-filter-chip
111
+ part="preset ${this.preset === e.id ? "preset-selected" : ""}"
112
+ .value=${e.id}
113
+ .selected=${this.preset === e.id}
114
+ title="${e.start} — ${e.end}"
115
+ @click=${() => this.handlePresetClick(e)}
116
+ >
117
+ ${e.label}
118
+ </schmancy-filter-chip>
119
+ `)}
120
+ `, () => w)}
121
+ </div>
122
+
123
+ <!-- Calendar (continuous-scroll range picker) -->
124
+ <div part="calendar" class="overflow-y-auto" style="max-height:320px">
125
+ <schmancy-calendar
126
+ mode="range"
127
+ .type=${this.type}
128
+ .start=${this.start}
129
+ .end=${this.end}
130
+ min=${T(this.min)}
131
+ max=${T(this.max)}
132
+ @input=${(e) => this.handleCalendarInput(e)}
133
+ @change=${(e) => this.handleCalendarChange(e)}
134
+ ></schmancy-calendar>
135
+ </div>
136
+
137
+ <!-- Secondary typed-entry path -->
138
+ <div class="flex gap-2 p-3 border-t border-outline-variant/40 flex-wrap">
139
+ <div class="flex-1 min-w-30">
140
+ <schmancy-input
141
+ .type=${this.type}
142
+ .label=${"From"}
143
+ .value=${this.start ?? ""}
144
+ min=${T(this.min)}
145
+ max=${T(this.max)}
146
+ @change=${this.handleFromChange}
147
+ ></schmancy-input>
148
+ </div>
149
+ <div class="flex-1 min-w-30">
150
+ <schmancy-input
151
+ .type=${this.type}
152
+ .label=${"To"}
153
+ .value=${this.end ?? ""}
154
+ min=${T(this.start ?? this.min)}
155
+ max=${T(this.max)}
156
+ @change=${this.handleToChange}
157
+ ></schmancy-input>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ `;
162
+ }
163
+ };
164
+ function j(e = "date") {
165
+ let t = e === "datetime-local" ? "YYYY-MM-DDTHH:mm" : "YYYY-MM-DD";
166
+ return [
167
+ {
168
+ id: "today",
169
+ label: "Today",
170
+ start: (0, k.default)().startOf("day").format(t),
171
+ end: (0, k.default)().endOf("day").format(t)
172
+ },
173
+ {
174
+ id: "yesterday",
175
+ label: "Yesterday",
176
+ start: (0, k.default)().subtract(1, "day").startOf("day").format(t),
177
+ end: (0, k.default)().subtract(1, "day").endOf("day").format(t)
178
+ },
179
+ {
180
+ id: "last7",
181
+ label: "Last 7 days",
182
+ start: (0, k.default)().subtract(6, "day").startOf("day").format(t),
183
+ end: (0, k.default)().endOf("day").format(t)
184
+ },
185
+ {
186
+ id: "last30",
187
+ label: "Last 30 days",
188
+ start: (0, k.default)().subtract(29, "day").startOf("day").format(t),
189
+ end: (0, k.default)().endOf("day").format(t)
190
+ },
191
+ {
192
+ id: "thisWeek",
193
+ label: "This week",
194
+ start: (0, k.default)().startOf("week").format(t),
195
+ end: (0, k.default)().endOf("week").format(t)
196
+ },
197
+ {
198
+ id: "thisMonth",
199
+ label: "This month",
200
+ start: (0, k.default)().startOf("month").format(t),
201
+ end: (0, k.default)().endOf("month").format(t)
202
+ },
203
+ {
204
+ id: "lastMonth",
205
+ label: "Last month",
206
+ start: (0, k.default)().subtract(1, "month").startOf("month").format(t),
207
+ end: (0, k.default)().subtract(1, "month").endOf("month").format(t)
208
+ },
209
+ {
210
+ id: "thisYear",
211
+ label: "This year",
212
+ start: (0, k.default)().startOf("year").format(t),
213
+ end: (0, k.default)().endOf("year").format(t)
214
+ }
215
+ ];
216
+ }
217
+ r([b()], A.prototype, "type", void 0), r([b()], A.prototype, "start", void 0), r([b()], A.prototype, "end", void 0), r([b()], A.prototype, "min", void 0), r([b()], A.prototype, "max", void 0), r([b()], A.prototype, "preset", void 0), r([b({ type: Array })], A.prototype, "presets", void 0), A = r([y("schmancy-date-range-dialog")], A), k.default.extend(O.default);
218
+ var M = class extends i() {
219
+ constructor(...e) {
220
+ super(...e), this.type = "date", this.start = null, this.end = null, this.defaultPresetsRef = j(), this.presets = this.defaultPresetsRef, this.usingDefaultPresets = !0, this.preset = null, this.placeholder = "Select date range", this.clearable = !0, this.collapse = !1, this.open$ = new s(), this.close$ = new s(), this.announce$ = new s(), this.isOpen = !1, this.announceMessage = "", this.startDefault = null, this.endDefault = null, this.presetDefault = null;
221
+ }
222
+ disconnectedCallback() {
223
+ super.disconnectedCallback(), this.isOpen = !1;
224
+ }
225
+ connectedCallback() {
226
+ super.connectedCallback(), p(this.open$.pipe(_(() => {
227
+ this.isOpen = !0;
228
+ }), l((e) => a(() => C`
229
+ <schmancy-date-range-dialog
230
+ .type=${this.type}
231
+ .start=${this.start}
232
+ .end=${this.end}
233
+ .min=${this.min}
234
+ .max=${this.max}
235
+ .preset=${this.preset}
236
+ .presets=${this.presets}
237
+ @calendar-input=${(e) => {
238
+ e.stopPropagation(), this.dispatchEvent(new CustomEvent("input", {
239
+ detail: {
240
+ start: e.detail.start,
241
+ end: e.detail.end
242
+ },
243
+ bubbles: !0,
244
+ composed: !0
245
+ }));
246
+ }}
247
+ @calendar-change=${(e) => {
248
+ e.stopPropagation(), this.commitRange(e.detail.start, e.detail.end, null), e.detail.start && e.detail.end && e.target?.dispatchEvent(new CustomEvent("close", {
249
+ bubbles: !0,
250
+ composed: !0
251
+ }));
252
+ }}
253
+ @preset-select=${(e) => {
254
+ e.stopPropagation(), this.commitRange(e.detail.start, e.detail.end, e.detail.id), e.target?.dispatchEvent(new CustomEvent("close", {
255
+ bubbles: !0,
256
+ composed: !0
257
+ }));
258
+ }}
259
+ ></schmancy-date-range-dialog>
260
+ `, { anchor: e }).pipe(g(this.close$), u(() => {
261
+ this.isOpen = !1;
262
+ })))), this.announce$.pipe(h((e) => c(m(e), v(1500).pipe(f(() => "")))), _((e) => {
263
+ this.announceMessage = e;
264
+ })), d(document, "keydown").pipe(_((e) => this.handleKeyDown(e)))).pipe(g(this.disconnecting)).subscribe();
265
+ }
266
+ willUpdate(e) {
267
+ if (super.willUpdate(e), e.has("presets") && this.presets !== this.defaultPresetsRef && (this.usingDefaultPresets = !1), e.has("type") && this.usingDefaultPresets && (this.defaultPresetsRef = j(this.type), this.presets = this.defaultPresetsRef), e.has("start") || e.has("end") || e.has("name") || e.has("disabled")) {
268
+ if (this.name && !this.disabled) {
269
+ let e = new FormData();
270
+ this.start && e.append(`${this.name}.start`, this.start), this.end && e.append(`${this.name}.end`, this.end), this.internals?.setFormValue(e.has(`${this.name}.start`) || e.has(`${this.name}.end`) ? e : null);
271
+ } else this.internals?.setFormValue(null);
272
+ this.checkValidity();
273
+ }
274
+ e.has("required") && this.checkValidity();
275
+ }
276
+ checkValidity() {
277
+ if (this.disabled) return this.internals?.setValidity({}), !0;
278
+ if (this.required && (!this.start || !this.end)) {
279
+ let e = "Please select a complete date range.";
280
+ return this.internals?.setValidity({ valueMissing: !0 }, e), this.shouldShowError() && (this.error = !0, this.validationMessage = e), !1;
281
+ }
282
+ if (this.start && this.end && this.end < this.start) {
283
+ let e = "End date must be on or after start date.";
284
+ return this.internals?.setValidity({ customError: !0 }, e), this.shouldShowError() && (this.error = !0, this.validationMessage = e), !1;
285
+ }
286
+ return this.internals?.setValidity({}), this.shouldShowError() && (this.error = !1, this.validationMessage = ""), !0;
287
+ }
288
+ toFormEntries() {
289
+ if (!this.name || this.disabled) return [];
290
+ let e = [];
291
+ return this.start && e.push([`${this.name}.start`, this.start]), this.end && e.push([`${this.name}.end`, this.end]), e;
292
+ }
293
+ get dirty() {
294
+ return this.start !== this.startDefault || this.end !== this.endDefault;
295
+ }
296
+ firstUpdated(e) {
297
+ super.firstUpdated(e), this.startDefault = this.start, this.endDefault = this.end, this.presetDefault = this.preset;
298
+ }
299
+ resetForm() {
300
+ this.start = this.startDefault, this.end = this.endDefault, this.preset = this.presetDefault, this.error = !1, this.validationMessage = "", this.touched = !1, this.submitted = !1, this.internals?.setValidity({});
301
+ }
302
+ commitRange(e, t, n) {
303
+ this.start = e, this.end = t, this.preset = n, this.announce$.next(`Date range: ${this.displayLabel()}`), this.emitChange({
304
+ start: e,
305
+ end: t,
306
+ preset: n
307
+ });
308
+ }
309
+ displayLabel() {
310
+ if (this.preset) {
311
+ let e = this.presets.find((e) => e.id === this.preset);
312
+ if (e) return e.label;
313
+ }
314
+ return function(e, t, n, r) {
315
+ if (!e || !t) return r;
316
+ let i = (0, k.default)(e), a = (0, k.default)(t);
317
+ if (!i.isValid() || !a.isValid()) return r;
318
+ let o = n === "datetime-local" ? i.format(" h:mm A") : "", s = n === "datetime-local" ? a.format(" h:mm A") : "";
319
+ 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}`;
320
+ }(this.start ?? "", this.end ?? "", this.type, this.placeholder);
321
+ }
322
+ toggleDropdown(e) {
323
+ e.stopPropagation(), this.disabled || this.step !== void 0 || (this.isOpen ? this.close$.next() : this.open$.next(e));
324
+ }
325
+ shiftDateRange(e, t) {
326
+ if (t.stopPropagation(), !this.start || !this.end) return;
327
+ let n = (0, k.default)(this.start), r = (0, k.default)(this.end);
328
+ if (!n.isValid() || !r.isValid()) return;
329
+ let i = this.type === "date" ? "YYYY-MM-DD" : "YYYY-MM-DDTHH:mm", a = e > 0 ? 1 : -1, o = r.diff(n, "day") + 1, s, c;
330
+ 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);
331
+ else {
332
+ let e = function(e, t) {
333
+ return {
334
+ isFullMonth: e.date() === 1 && t.isSame(e.endOf("month"), "day"),
335
+ isFullQuarter: e.isSame(e.startOf("quarter"), "day") && t.isSame(t.endOf("quarter"), "day"),
336
+ isFullYear: e.isSame(e.startOf("year"), "day") && t.isSame(t.endOf("year"), "day"),
337
+ isFullWeek: e.day() === 0 && t.day() === 6 && t.diff(e, "days") === 6
338
+ };
339
+ }(n, r);
340
+ e.isFullYear ? (s = a, c = "year") : e.isFullMonth ? (s = a, c = "month") : e.isFullWeek ? (s = a, c = "week") : (s = a * o, c = "day");
341
+ }
342
+ let l = n.add(s, c), u = r.add(s, c);
343
+ this.min && l.isBefore((0, k.default)(this.min)) || this.max && u.isAfter((0, k.default)(this.max)) || this.commitRange(l.format(i), u.format(i), null);
344
+ }
345
+ handleKeyDown(e) {
346
+ if (!this.start || !this.end || this.disabled) return;
347
+ let t = e.target;
348
+ if (t === this || this.contains(t)) switch (e.key) {
349
+ case "PageUp":
350
+ this.shiftDateRange(-1, e), e.preventDefault();
351
+ break;
352
+ case "PageDown":
353
+ this.shiftDateRange(1, e), e.preventDefault();
354
+ break;
355
+ case "Home":
356
+ if (e.ctrlKey) {
357
+ let t = this.type === "date" ? "YYYY-MM-DD" : "YYYY-MM-DDTHH:mm", n = (0, k.default)(this.start), r = (0, k.default)(this.end), i = n.startOf("month");
358
+ this.commitRange(i.format(t), i.add(r.diff(n, "day"), "day").format(t), null), e.preventDefault();
359
+ }
360
+ break;
361
+ case "End": if (e.ctrlKey) {
362
+ let t = this.type === "date" ? "YYYY-MM-DD" : "YYYY-MM-DDTHH:mm", n = (0, k.default)(this.start), r = (0, k.default)(this.end), i = r.endOf("month");
363
+ this.commitRange(i.subtract(r.diff(n, "day"), "day").format(t), i.format(t), null), e.preventDefault();
364
+ }
365
+ }
366
+ }
367
+ canNavigateBackward() {
368
+ return !this.start || !this.min || (0, k.default)(this.start).isAfter((0, k.default)(this.min));
369
+ }
370
+ canNavigateForward() {
371
+ return !this.end || !this.max || (0, k.default)(this.end).isBefore((0, k.default)(this.max));
372
+ }
373
+ render() {
374
+ let e = this.error && !!this.validationMessage, t = e ? " rounded outline outline-2 outline-error-default" : "", n = this.displayLabel();
375
+ return C`
376
+ <div class="relative ${this.disabled ? "opacity-60 pointer-events-none" : ""}">
377
+ <!-- Screen reader announcements -->
378
+ <div class="sr-only" role="status" aria-live="polite" aria-atomic="true">${this.announceMessage}</div>
379
+
380
+ <!-- Collapsed: icon-only on narrow viewports when collapse=true -->
381
+ <schmancy-icon-button
382
+ class="${this.collapse ? "lg:hidden" : "hidden"}${t}"
383
+ variant="outlined"
384
+ type="button"
385
+ aria-invalid=${e ? "true" : "false"}
386
+ aria-label="Select date range. Current: ${n}"
387
+ @click=${(e) => this.toggleDropdown(e)}
388
+ ?disabled=${this.disabled}
389
+ >
390
+ date_range
391
+ </schmancy-icon-button>
392
+
393
+ <!-- Full trigger row: [← | range label | →] -->
394
+ <section
395
+ @click=${(e) => e.stopPropagation()}
396
+ aria-invalid=${e ? "true" : "false"}
397
+ class="${this.collapse ? "hidden lg:flex" : "flex"}${t}"
398
+ >
399
+ <schmancy-icon-button
400
+ type="button"
401
+ aria-label="Previous ${this.preset ?? "date range"}"
402
+ @click=${(e) => this.shiftDateRange(-1, e)}
403
+ ?disabled=${this.disabled || !this.start || !this.end || !this.canNavigateBackward()}
404
+ >
405
+ arrow_left
406
+ </schmancy-icon-button>
407
+
408
+ <schmancy-button
409
+ class="w-max"
410
+ variant="outlined"
411
+ type="button"
412
+ aria-haspopup="dialog"
413
+ aria-expanded=${this.isOpen}
414
+ aria-label="Select date range. Current: ${n}"
415
+ aria-readonly="${this.step !== void 0}"
416
+ @click=${(e) => this.toggleDropdown(e)}
417
+ ?disabled=${this.disabled}
418
+ style="${this.step === void 0 ? "" : "cursor:default;"}"
419
+ >
420
+ ${n}
421
+ </schmancy-button>
422
+
423
+ <schmancy-icon-button
424
+ type="button"
425
+ aria-label="Next ${this.preset ?? "date range"}"
426
+ @click=${(e) => this.shiftDateRange(1, e)}
427
+ ?disabled=${this.disabled || !this.start || !this.end || !this.canNavigateForward()}
428
+ >
429
+ arrow_right
430
+ </schmancy-icon-button>
431
+ </section>
432
+
433
+ ${e ? C`<div role="alert" class="text-error-default text-sm mt-1">${this.validationMessage}</div>` : w}
434
+ </div>
435
+ `;
436
+ }
437
+ };
438
+ r([b()], M.prototype, "type", void 0), r([b()], M.prototype, "start", void 0), r([b()], M.prototype, "end", void 0), r([b({ type: Array })], M.prototype, "presets", void 0), r([b({ reflect: !0 })], M.prototype, "preset", void 0), r([b()], M.prototype, "min", void 0), r([b()], M.prototype, "max", void 0), r([b()], M.prototype, "placeholder", void 0), r([b({ type: Boolean })], M.prototype, "clearable", void 0), r([b()], M.prototype, "step", void 0), r([b({ type: Boolean })], M.prototype, "collapse", void 0), r([x()], M.prototype, "isOpen", void 0), r([x()], M.prototype, "announceMessage", void 0), M = r([y("schmancy-date-range")], M);
439
+ export { A as n, M as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-CDF_5ju_.js","names":[],"sources":["../node_modules/dayjs/plugin/quarterOfYear.js","../src/form/fields/date-range/date-range-helpers.ts","../src/form/fields/date-range/date-range-dialog.ts","../src/form/fields/date-range/date-range.ts"],"sourcesContent":["!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'\n\n/**\n * Format a date range into a human-readable string\n */\nexport function formatDateRange(\n\tfromValue: string,\n\ttoValue: string,\n\ttype: 'date' | 'datetime-local',\n\tplaceholder: string,\n): string {\n\tif (!fromValue || !toValue) {\n\t\treturn placeholder\n\t}\n\n\tconst fromDate = dayjs(fromValue)\n\tconst toDate = dayjs(toValue)\n\n\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\treturn placeholder\n\t}\n\n\t// Format times if needed (for datetime-local)\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\n\n\t// Check if same day\n\tif (fromDate.isSame(toDate, 'day')) {\n\t\treturn `${fromDate.format('ddd, MMM D, YYYY')}${fromTime}`\n\t}\n\n\t// Check if same month and year\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd D, YYYY')}${toTime}`\n\t}\n\n\t// Check if same year\n\tif (fromDate.isSame(toDate, 'year')) {\n\t\treturn `${fromDate.format('ddd MMM D')} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\n\t}\n\n\t// Different years\n\treturn `${fromDate.format('ddd MMM D, YYYY')}${fromTime} - ${toDate.format('ddd MMM D, YYYY')}${toTime}`\n}\n\n/**\n * Detect the type of date range (full month, full quarter, etc.)\n */\nexport interface DateRangeType {\n\tisFullMonth: boolean\n\tisFullQuarter: boolean\n\tisFullYear: boolean\n\tisFullWeek: boolean\n}\n\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\n\treturn {\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\n\t}\n}\n","import { SchmancyElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport { css, html, nothing } 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 { when } from 'lit/directives/when.js'\nimport type { SchmancyCalendarChangeEvent, SchmancyCalendarInputEvent } from '../../../calendar/calendar'\n\nexport interface DateRangeDialogPreset {\n\tid: string\n\tlabel: string\n\tstart: string\n\tend: string\n}\n\n/**\n * Picker panel for `<schmancy-date-range>`.\n *\n * Layout: sticky chip quick-rail → continuous-scroll calendar → secondary typed path.\n * Emits composed events that `<schmancy-date-range>` bridges into its own\n * `input`/`change` events.\n *\n * @element schmancy-date-range-dialog\n * @fires calendar-input - Provisional sweep from the calendar { start, end }\n * @fires calendar-change - Committed endpoint from the calendar { start, end }\n * @fires preset-select - A chip was clicked { id, label, start, end }\n */\n@customElement('schmancy-date-range-dialog')\nexport class SchmancyDateRangeDialog extends SchmancyElement {\n\tstatic styles = [\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t`,\n\t]\n\n\t@property() type: 'date' | 'datetime-local' = 'date'\n\t@property() start: string | null = null\n\t@property() end: string | null = null\n\t@property() min?: string\n\t@property() max?: string\n\t@property() preset: string | null = null\n\t@property({ type: Array }) presets: DateRangeDialogPreset[] = []\n\n\tprivate handleCalendarInput(e: SchmancyCalendarInputEvent) {\n\t\te.stopPropagation()\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('calendar-input', {\n\t\t\t\tdetail: { start: e.detail.start, end: e.detail.end },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleCalendarChange(e: SchmancyCalendarChangeEvent) {\n\t\te.stopPropagation()\n\t\t// When type=\"datetime-local\", the calendar emits YYYY-MM-DD date strings.\n\t\t// A calendar-only pick commits start-of-day (T00:00) for the start and\n\t\t// end-of-day (T23:59) for the end, per ADR-0041 D3.\n\t\tconst isDatetime = this.type === 'datetime-local'\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('calendar-change', {\n\t\t\t\tdetail: {\n\t\t\t\t\tstart:\n\t\t\t\t\t\tisDatetime && e.detail.start && !e.detail.start.includes('T')\n\t\t\t\t\t\t\t? `${e.detail.start}T00:00`\n\t\t\t\t\t\t\t: e.detail.start,\n\t\t\t\t\tend:\n\t\t\t\t\t\tisDatetime && e.detail.end && !e.detail.end.includes('T')\n\t\t\t\t\t\t\t? `${e.detail.end}T23:59`\n\t\t\t\t\t\t\t: e.detail.end,\n\t\t\t\t},\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handlePresetClick(p: DateRangeDialogPreset) {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('preset-select', {\n\t\t\t\tdetail: p,\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleFromChange(e: Event) {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tif (!value) return\n\t\t// Swap if end is earlier than the new start\n\t\tconst newStart = value\n\t\tconst newEnd =\n\t\t\tthis.end && dayjs(this.end).isBefore(dayjs(newStart)) ? newStart : (this.end ?? null)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('calendar-change', {\n\t\t\t\tdetail: { start: newStart, end: newEnd },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handleToChange(e: Event) {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tif (!value) return\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('calendar-change', {\n\t\t\t\tdetail: { start: this.start ?? null, end: value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"flex flex-col w-full\" style=\"min-width:280px; max-width:360px\">\n\t\t\t\t<!-- Sticky chip quick-rail -->\n\t\t\t\t<div\n\t\t\t\t\tpart=\"presets\"\n\t\t\t\t\tclass=\"sticky top-0 z-20 bg-surface-default flex flex-wrap gap-2 p-3 border-b border-outline-variant/40\"\n\t\t\t\t>\n\t\t\t\t\t${when(\n\t\t\t\t\t\tthis.presets.length > 0,\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t${repeat(\n\t\t\t\t\t\t\t\tthis.presets,\n\t\t\t\t\t\t\t\tp => p.id,\n\t\t\t\t\t\t\t\tp => html`\n\t\t\t\t\t\t\t\t\t<schmancy-filter-chip\n\t\t\t\t\t\t\t\t\t\tpart=\"preset ${this.preset === p.id ? 'preset-selected' : ''}\"\n\t\t\t\t\t\t\t\t\t\t.value=${p.id}\n\t\t\t\t\t\t\t\t\t\t.selected=${this.preset === p.id}\n\t\t\t\t\t\t\t\t\t\ttitle=\"${p.start} — ${p.end}\"\n\t\t\t\t\t\t\t\t\t\t@click=${() => this.handlePresetClick(p)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t${p.label}\n\t\t\t\t\t\t\t\t\t</schmancy-filter-chip>\n\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t() => nothing,\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Calendar (continuous-scroll range picker) -->\n\t\t\t\t<div part=\"calendar\" class=\"overflow-y-auto\" style=\"max-height:320px\">\n\t\t\t\t\t<schmancy-calendar\n\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t.start=${this.start}\n\t\t\t\t\t\t.end=${this.end}\n\t\t\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\t\t\t@input=${(e: SchmancyCalendarInputEvent) => this.handleCalendarInput(e)}\n\t\t\t\t\t\t@change=${(e: SchmancyCalendarChangeEvent) => this.handleCalendarChange(e)}\n\t\t\t\t\t></schmancy-calendar>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Secondary typed-entry path -->\n\t\t\t\t<div class=\"flex gap-2 p-3 border-t border-outline-variant/40 flex-wrap\">\n\t\t\t\t\t<div class=\"flex-1 min-w-30\">\n\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t.label=${'From'}\n\t\t\t\t\t\t\t.value=${this.start ?? ''}\n\t\t\t\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\t\t\t\t@change=${this.handleFromChange}\n\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex-1 min-w-30\">\n\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t.label=${'To'}\n\t\t\t\t\t\t\t.value=${this.end ?? ''}\n\t\t\t\t\t\t\tmin=${ifDefined(this.start ?? this.min)}\n\t\t\t\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\t\t\t\t@change=${this.handleToChange}\n\t\t\t\t\t\t></schmancy-input>\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 {\n\tconcat,\n\texhaustMap,\n\tfinalize,\n\tfromEvent,\n\tmap,\n\tmerge,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttakeUntil,\n\ttap,\n\ttimer,\n} from 'rxjs'\nimport { SchmancyFormField } from '@mixins/index'\nimport { show } from '../../../overlay/overlay.service'\nimport { detectDateRangeType, formatDateRange } from './date-range-helpers'\nimport './date-range-dialog'\nimport type { DateRangeDialogPreset } from './date-range-dialog'\n\ndayjs.extend(quarterOfYear)\n\n// ---------------------------------------------------------------------------\n// Default built-in presets\n// ---------------------------------------------------------------------------\n\nfunction buildDefaultPresets(type: 'date' | 'datetime-local' = 'date'): DateRangeDialogPreset[] {\n\tconst fmt = type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'\n\treturn [\n\t\t{\n\t\t\tid: 'today',\n\t\t\tlabel: 'Today',\n\t\t\tstart: dayjs().startOf('day').format(fmt),\n\t\t\tend: dayjs().endOf('day').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'yesterday',\n\t\t\tlabel: 'Yesterday',\n\t\t\tstart: dayjs().subtract(1, 'day').startOf('day').format(fmt),\n\t\t\tend: dayjs().subtract(1, 'day').endOf('day').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'last7',\n\t\t\tlabel: 'Last 7 days',\n\t\t\tstart: dayjs().subtract(6, 'day').startOf('day').format(fmt),\n\t\t\tend: dayjs().endOf('day').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'last30',\n\t\t\tlabel: 'Last 30 days',\n\t\t\tstart: dayjs().subtract(29, 'day').startOf('day').format(fmt),\n\t\t\tend: dayjs().endOf('day').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'thisWeek',\n\t\t\tlabel: 'This week',\n\t\t\tstart: dayjs().startOf('week').format(fmt),\n\t\t\tend: dayjs().endOf('week').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'thisMonth',\n\t\t\tlabel: 'This month',\n\t\t\tstart: dayjs().startOf('month').format(fmt),\n\t\t\tend: dayjs().endOf('month').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'lastMonth',\n\t\t\tlabel: 'Last month',\n\t\t\tstart: dayjs().subtract(1, 'month').startOf('month').format(fmt),\n\t\t\tend: dayjs().subtract(1, 'month').endOf('month').format(fmt),\n\t\t},\n\t\t{\n\t\t\tid: 'thisYear',\n\t\t\tlabel: 'This year',\n\t\t\tstart: dayjs().startOf('year').format(fmt),\n\t\t\tend: dayjs().endOf('year').format(fmt),\n\t\t},\n\t]\n}\n\n// ---------------------------------------------------------------------------\n// Event types\n// ---------------------------------------------------------------------------\n\nexport type SchmancyDateRangeInputEvent = CustomEvent<{\n\tstart: string | null\n\tend: string | null\n}>\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tstart: string | null\n\tend: string | null\n\tpreset: string | null\n}>\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n/**\n * A date range selector composing `<schmancy-calendar mode=\"range\">` with a\n * sticky preset chip quick-rail and a secondary typed-entry path.\n *\n * Public API: flat ISO `start`/`end`, `preset` read-back, `presets` array.\n * FormData: `${name}.start` / `${name}.end` (empty endpoint omitted).\n *\n * @element schmancy-date-range\n * @fires input - Provisional sweep preview { start, end }\n * @fires change - Committed range change { start, end, preset }\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: 'date' | 'datetime-local' = 'date'\n\t@property() start: string | null = null\n\t@property() end: string | null = null\n\n\t/** Reference to the last array produced by buildDefaultPresets; used to detect consumer ownership. */\n\tprivate defaultPresetsRef: DateRangeDialogPreset[] = buildDefaultPresets()\n\n\t@property({ type: Array }) presets: DateRangeDialogPreset[] = this.defaultPresetsRef\n\n\t/** True while the component holds the built-in default preset list (not user-supplied). */\n\tprivate usingDefaultPresets = true\n\n\t/** Selected preset id; null = custom range. Reflects to attribute. */\n\t@property({ reflect: true }) preset: string | null = null\n\n\t@property() min?: string\n\t@property() max?: string\n\t@property() placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\t@property() step?: 'day' | 'week' | 'month' | 'year' | number\n\t/** Collapses to an icon-only button on narrow viewports. */\n\t@property({ type: Boolean }) collapse = false\n\n\t// Session subjects — ONE_PIPELINE_ONE_SUBSCRIBE in connectedCallback.\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@state() private isOpen = false\n\t@state() private announceMessage = ''\n\n\t// Default-capture for formResetCallback\n\tprivate startDefault: string | null = null\n\tprivate endDefault: string | null = null\n\tprivate presetDefault: string | null = null\n\n\toverride disconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t\tthis.isOpen = false\n\t}\n\n\toverride connectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// One pipeline (rxjs ONE_PIPELINE_ONE_SUBSCRIBE).\n\t\tmerge(\n\t\t\t// Overlay session (rxjs SESSIONS_USE_HIGHER_ORDER_OBSERVABLES).\n\t\t\tthis.open$.pipe(\n\t\t\t\ttap(() => {\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\t// Reactive factory — closed-over props read fresh on each mount.\n\t\t\t\t\t\t() => html`\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.start=${this.start}\n\t\t\t\t\t\t\t\t.end=${this.end}\n\t\t\t\t\t\t\t\t.min=${this.min}\n\t\t\t\t\t\t\t\t.max=${this.max}\n\t\t\t\t\t\t\t\t.preset=${this.preset}\n\t\t\t\t\t\t\t\t.presets=${this.presets}\n\t\t\t\t\t\t\t\t@calendar-input=${(ev: CustomEvent<{ start: string | null; end: string | null }>) => {\n\t\t\t\t\t\t\t\t\tev.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\tnew CustomEvent('input', {\n\t\t\t\t\t\t\t\t\t\t\tdetail: { start: ev.detail.start, end: ev.detail.end },\n\t\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\t\tcomposed: true,\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}}\n\t\t\t\t\t\t\t\t@calendar-change=${(ev: CustomEvent<{ start: string | null; end: string | null }>) => {\n\t\t\t\t\t\t\t\t\tev.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.commitRange(ev.detail.start, ev.detail.end, null)\n\t\t\t\t\t\t\t\t\t// Two endpoints set → close overlay\n\t\t\t\t\t\t\t\t\tif (ev.detail.start && ev.detail.end) {\n\t\t\t\t\t\t\t\t\t\tev.target?.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }))\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t@preset-select=${(ev: CustomEvent<DateRangeDialogPreset>) => {\n\t\t\t\t\t\t\t\t\tev.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.commitRange(ev.detail.start, ev.detail.end, ev.detail.id)\n\t\t\t\t\t\t\t\t\tev.target?.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }))\n\t\t\t\t\t\t\t\t}}\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\n\t\t\t// Screen-reader announcements.\n\t\t\tthis.announce$.pipe(\n\t\t\t\tswitchMap(message => concat(of(message), timer(1500).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\n\t\t\t// Document keyboard navigation.\n\t\t\tfromEvent<KeyboardEvent>(document, 'keydown').pipe(tap(ev => this.handleKeyDown(ev))),\n\t\t)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe()\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Mixin overrides — FormData, validity, dirty, reset\n\t// -------------------------------------------------------------------------\n\n\toverride willUpdate(changed: PropertyValues): void {\n\t\tsuper.willUpdate(changed)\n\t\t// Consumer ownership detection must run before the type-change rebuild so that\n\t\t// when both `type` and `presets` arrive in the same willUpdate cycle (e.g. simultaneous\n\t\t// attribute/property initialisation), the consumer's presets are not overwritten.\n\t\t//\n\t\t// A `presets` change signals consumer ownership when the incoming value is not the\n\t\t// array reference produced by the internal default-builder (defaultPresetsRef).\n\t\t// Since buildDefaultPresets always allocates a new array, defaultPresetsRef is the\n\t\t// only reference that could match; any other reference came from the consumer.\n\t\tif (changed.has('presets') && this.presets !== this.defaultPresetsRef) {\n\t\t\tthis.usingDefaultPresets = false\n\t\t}\n\t\t// Rebuild built-in presets when type changes, but only while the consumer has never\n\t\t// supplied their own presets array.\n\t\tif (changed.has('type') && this.usingDefaultPresets) {\n\t\t\tthis.defaultPresetsRef = buildDefaultPresets(this.type)\n\t\t\tthis.presets = this.defaultPresetsRef\n\t\t}\n\t\tif (changed.has('start') || changed.has('end') || changed.has('name') || changed.has('disabled')) {\n\t\t\tif (this.name && !this.disabled) {\n\t\t\t\tconst fd = new FormData()\n\t\t\t\tif (this.start) fd.append(`${this.name}.start`, this.start)\n\t\t\t\tif (this.end) fd.append(`${this.name}.end`, this.end)\n\t\t\t\tthis.internals?.setFormValue(fd.has(`${this.name}.start`) || fd.has(`${this.name}.end`) ? fd : null)\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')) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\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\tif (this.required && (!this.start || !this.end)) {\n\t\t\tconst msg = 'Please select a complete date range.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, msg)\n\t\t\tif (this.shouldShowError()) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = msg\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t\tif (this.start && this.end && this.end < this.start) {\n\t\t\tconst msg = 'End date must be on or after start date.'\n\t\t\tthis.internals?.setValidity({ customError: true }, msg)\n\t\t\tif (this.shouldShowError()) {\n\t\t\t\tthis.error = true\n\t\t\t\tthis.validationMessage = msg\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t\tthis.internals?.setValidity({})\n\t\tif (this.shouldShowError()) {\n\t\t\tthis.error = false\n\t\t\tthis.validationMessage = ''\n\t\t}\n\t\treturn true\n\t}\n\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.start) entries.push([`${this.name}.start`, this.start])\n\t\tif (this.end) entries.push([`${this.name}.end`, this.end])\n\t\treturn entries\n\t}\n\n\toverride get dirty(): boolean {\n\t\treturn this.start !== this.startDefault || this.end !== this.endDefault\n\t}\n\n\toverride firstUpdated(changed: PropertyValues): void {\n\t\tsuper.firstUpdated(changed)\n\t\tthis.startDefault = this.start\n\t\tthis.endDefault = this.end\n\t\tthis.presetDefault = this.preset\n\t}\n\n\toverride resetForm(): void {\n\t\tthis.start = this.startDefault\n\t\tthis.end = this.endDefault\n\t\tthis.preset = this.presetDefault\n\t\tthis.error = false\n\t\tthis.validationMessage = ''\n\t\tthis.touched = false\n\t\tthis.submitted = false\n\t\tthis.internals?.setValidity({})\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Internal helpers\n\t// -------------------------------------------------------------------------\n\n\tprivate commitRange(start: string | null, end: string | null, presetId: string | null): void {\n\t\tthis.start = start\n\t\tthis.end = end\n\t\tthis.preset = presetId\n\t\tthis.announce$.next(`Date range: ${this.displayLabel()}`)\n\t\tthis.emitChange({ start, end, preset: presetId })\n\t}\n\n\tprivate displayLabel(): string {\n\t\tif (this.preset) {\n\t\t\tconst p = this.presets.find(x => x.id === this.preset)\n\t\t\tif (p) return p.label\n\t\t}\n\t\treturn formatDateRange(this.start ?? '', this.end ?? '', this.type, this.placeholder)\n\t}\n\n\tprivate toggleDropdown(e: MouseEvent) {\n\t\te.stopPropagation()\n\t\tif (this.disabled || this.step !== undefined) return\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\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\t\tif (!this.start || !this.end) return\n\n\t\tconst fromDate = dayjs(this.start)\n\t\tconst toDate = dayjs(this.end)\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst dateFormat = this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t\tconst dir = direction > 0 ? 1 : -1\n\t\tconst daysDiff = toDate.diff(fromDate, 'day') + 1\n\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\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 newFrom = fromDate.add(amount, unit)\n\t\tconst newTo = toDate.add(amount, unit)\n\n\t\tif (this.min && newFrom.isBefore(dayjs(this.min))) return\n\t\tif (this.max && newTo.isAfter(dayjs(this.max))) return\n\n\t\tthis.commitRange(newFrom.format(dateFormat), newTo.format(dateFormat), null)\n\t}\n\n\tprivate handleKeyDown(ev: KeyboardEvent) {\n\t\tif (!this.start || !this.end || this.disabled) return\n\t\tconst target = ev.target as Node | null\n\t\tif (target !== this && !this.contains(target)) return\n\n\t\tswitch (ev.key) {\n\t\t\tcase 'PageUp':\n\t\t\t\tthis.shiftDateRange(-1, ev)\n\t\t\t\tev.preventDefault()\n\t\t\t\tbreak\n\t\t\tcase 'PageDown':\n\t\t\t\tthis.shiftDateRange(1, ev)\n\t\t\t\tev.preventDefault()\n\t\t\t\tbreak\n\t\t\tcase 'Home':\n\t\t\t\tif (ev.ctrlKey) {\n\t\t\t\t\tconst fmt = this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t\t\t\t\tconst from = dayjs(this.start)\n\t\t\t\t\tconst to = dayjs(this.end)\n\t\t\t\t\tconst monthStart = from.startOf('month')\n\t\t\t\t\tthis.commitRange(\n\t\t\t\t\t\tmonthStart.format(fmt),\n\t\t\t\t\t\tmonthStart.add(to.diff(from, 'day'), 'day').format(fmt),\n\t\t\t\t\t\tnull,\n\t\t\t\t\t)\n\t\t\t\t\tev.preventDefault()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\tif (ev.ctrlKey) {\n\t\t\t\t\tconst fmt = this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t\t\t\t\tconst from = dayjs(this.start)\n\t\t\t\t\tconst to = dayjs(this.end)\n\t\t\t\t\tconst monthEnd = to.endOf('month')\n\t\t\t\t\tthis.commitRange(\n\t\t\t\t\t\tmonthEnd.subtract(to.diff(from, 'day'), 'day').format(fmt),\n\t\t\t\t\t\tmonthEnd.format(fmt),\n\t\t\t\t\t\tnull,\n\t\t\t\t\t)\n\t\t\t\t\tev.preventDefault()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate canNavigateBackward(): boolean {\n\t\tif (!this.start || !this.min) return true\n\t\treturn dayjs(this.start).isAfter(dayjs(this.min))\n\t}\n\n\tprivate canNavigateForward(): boolean {\n\t\tif (!this.end || !this.max) return true\n\t\treturn dayjs(this.end).isBefore(dayjs(this.max))\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Render\n\t// -------------------------------------------------------------------------\n\n\trender() {\n\t\tconst showError = this.error && !!this.validationMessage\n\t\tconst errorRing = showError ? ' rounded outline outline-2 outline-error-default' : ''\n\t\tconst label = this.displayLabel()\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\">${this.announceMessage}</div>\n\n\t\t\t\t<!-- Collapsed: icon-only on narrow viewports 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: ${label}\"\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\t\tdate_range\n\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t<!-- Full trigger row: [← | range label | →] -->\n\t\t\t\t<section\n\t\t\t\t\t@click=${(ev: Event) => ev.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>\n\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Previous ${this.preset ?? 'date range'}\"\n\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t?disabled=${this.disabled || !this.start || !this.end || !this.canNavigateBackward()}\n\t\t\t\t\t>\n\t\t\t\t\t\tarrow_left\n\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\taria-label=\"Select date range. Current: ${label}\"\n\t\t\t\t\t\taria-readonly=\"${this.step !== undefined}\"\n\t\t\t\t\t\t@click=${(e: MouseEvent) => this.toggleDropdown(e)}\n\t\t\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t\t\tstyle=\"${this.step !== undefined ? 'cursor:default;' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${label}\n\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Next ${this.preset ?? 'date range'}\"\n\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t?disabled=${this.disabled || !this.start || !this.end || !this.canNavigateForward()}\n\t\t\t\t\t>\n\t\t\t\t\t\tarrow_right\n\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}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range': SchmancyDateRange\n\t}\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-PS1u0j1B.cjs`),t=require(`./mixins-BoMURWag.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends t.o(){constructor(...e){super(...e),this.type=`date`,this.dateFrom={label:`From`,value:``},this.dateTo={label:`To`,value:``},this.compact=!1,this.autoCorrect=!0,this.minGap=0,this.defaultGap=1,this.allowSameDate=!1,this.validationState={dateFromError:``,dateToError:``,rangeError:``}}connectedCallback(){super.connectedCallback(),this.dateFrom.value||this.dateTo.value?this.validateAndCorrect():this.setSmartDefaults()}setSmartDefaults(){let e=new Date,t=new Date(e);t.setDate(t.getDate()+this.defaultGap);let n=this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`;this.dateFrom={...this.dateFrom,value:this.formatDate(e,n)},this.dateTo={...this.dateTo,value:this.formatDate(t,n)}}formatDate(e,t){let n=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,`0`),i=String(e.getDate()).padStart(2,`0`);return t===`YYYY-MM-DD`?`${n}-${r}-${i}`:`${n}-${r}-${i}T${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`}parseDate(e){if(!e)return null;let t=new Date(e);return isNaN(t.getTime())?null:t}getDaysBetween(e,t){return Math.floor((t.getTime()-e.getTime())/864e5)}handleDateFromChange(e){let t=e.target.value;if(this.dateFrom={...this.dateFrom,value:t},this.validationState={...this.validationState,dateFromError:``,rangeError:``},!t)return this.required?(this.validationState={...this.validationState,dateFromError:`Start date is required`},void(this.error=!0)):void this.emitChange();this.validateAndCorrect(`from`)}handleDateToChange(e){let t=e.target.value;if(this.dateTo={...this.dateTo,value:t},this.validationState={...this.validationState,dateToError:``,rangeError:``},!t)return this.required?(this.validationState={...this.validationState,dateToError:`End date is required`},void(this.error=!0)):void this.emitChange();this.validateAndCorrect(`to`)}validateAndCorrect(e){let t=this.parseDate(this.dateFrom.value),n=this.parseDate(this.dateTo.value),r=!1,i={dateFromError:``,dateToError:``,rangeError:``};if(this.dateFrom.value&&!t&&(i.dateFromError=`Invalid date format`,r=!0),this.dateTo.value&&!n&&(i.dateToError=`Invalid date format`,r=!0),t&&n){let a=this.getDaysBetween(t,n);if(t>n){if(this.autoCorrect){if(e===`from`){let e=new Date(t);e.setDate(e.getDate()+this.defaultGap),this.dateTo={...this.dateTo,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else if(e===`to`){let e=new Date(n);e.setDate(e.getDate()-this.defaultGap),this.dateFrom={...this.dateFrom,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else{let e=this.dateFrom.value;this.dateFrom={...this.dateFrom,value:this.dateTo.value},this.dateTo={...this.dateTo,value:e}}this.validateAndCorrect();return}i.rangeError=`End date must be after start date`,r=!0}if(!this.allowSameDate&&a===0){if(this.autoCorrect&&e){if(e===`from`){let e=new Date(t);e.setDate(e.getDate()+this.defaultGap),this.dateTo={...this.dateTo,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else{let e=new Date(n);e.setDate(e.getDate()-this.defaultGap),this.dateFrom={...this.dateFrom,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}this.validateAndCorrect();return}i.rangeError=`Start and end dates cannot be the same`,r=!0}if(this.minGap>0&&a<this.minGap){if(this.autoCorrect&&e){if(e===`from`){let e=new Date(t);e.setDate(e.getDate()+this.minGap),this.dateTo={...this.dateTo,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else{let e=new Date(n);e.setDate(e.getDate()-this.minGap),this.dateFrom={...this.dateFrom,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}this.validateAndCorrect();return}i.rangeError=`Minimum ${this.minGap} day${this.minGap>1?`s`:``} required between dates`,r=!0}if(this.maxGap!==void 0&&a>this.maxGap){if(this.autoCorrect&&e){if(e===`from`){let e=new Date(t);e.setDate(e.getDate()+this.maxGap),this.dateTo={...this.dateTo,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else{let e=new Date(n);e.setDate(e.getDate()-this.maxGap),this.dateFrom={...this.dateFrom,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}this.validateAndCorrect();return}i.rangeError=`Maximum ${this.maxGap} day${this.maxGap>1?`s`:``} allowed between dates`,r=!0}if(this.minDate){let e=this.parseDate(this.minDate);e&&t<e&&(i.dateFromError=`Date is before minimum allowed date`,r=!0)}if(this.maxDate){let e=this.parseDate(this.maxDate);e&&n>e&&(i.dateToError=`Date is after maximum allowed date`,r=!0)}}this.validationState=i,this.error=r,this.emitChange()}getComputedMinDateTo(){if(!this.dateFrom.value)return this.minDate;let e=this.parseDate(this.dateFrom.value);if(!e)return this.minDate;let t=new Date(e);if(this.allowSameDate||t.setDate(t.getDate()+1),this.minGap>0&&t.setDate(e.getDate()+this.minGap),this.minDate){let e=this.parseDate(this.minDate);if(e&&e>t)return this.minDate}return this.formatDate(t,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}getComputedMaxDateFrom(){if(!this.dateTo.value)return this.maxDate;let e=this.parseDate(this.dateTo.value);if(!e)return this.maxDate;let t=new Date(e);if(this.allowSameDate||t.setDate(t.getDate()-1),this.minGap>0&&t.setDate(e.getDate()-this.minGap),this.maxDate){let e=this.parseDate(this.maxDate);if(e&&e<t)return this.maxDate}return this.formatDate(t,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}emitChange(){let e=!(this.error||!this.dateFrom.value||!this.dateTo.value||this.validationState.dateFromError||this.validationState.dateToError||this.validationState.rangeError);this.dispatchEvent(new CustomEvent(`change`,{detail:{dateFrom:this.dateFrom.value,dateTo:this.dateTo.value,isValid:e},bubbles:!0,composed:!0}))}render(){let e=this.validationState.dateFromError||this.validationState.rangeError,t=this.validationState.dateToError||this.validationState.rangeError;return r.html`
1
+ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-CeKrBW2j.cjs`),t=require(`./mixins-Cjn20BQH.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends t.o(){constructor(...e){super(...e),this.type=`date`,this.dateFrom={label:`From`,value:``},this.dateTo={label:`To`,value:``},this.compact=!1,this.autoCorrect=!0,this.minGap=0,this.defaultGap=1,this.allowSameDate=!1,this.validationState={dateFromError:``,dateToError:``,rangeError:``}}connectedCallback(){super.connectedCallback(),this.dateFrom.value||this.dateTo.value?this.validateAndCorrect():this.setSmartDefaults()}setSmartDefaults(){let e=new Date,t=new Date(e);t.setDate(t.getDate()+this.defaultGap);let n=this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`;this.dateFrom={...this.dateFrom,value:this.formatDate(e,n)},this.dateTo={...this.dateTo,value:this.formatDate(t,n)}}formatDate(e,t){let n=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,`0`),i=String(e.getDate()).padStart(2,`0`);return t===`YYYY-MM-DD`?`${n}-${r}-${i}`:`${n}-${r}-${i}T${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`}parseDate(e){if(!e)return null;let t=new Date(e);return isNaN(t.getTime())?null:t}getDaysBetween(e,t){return Math.floor((t.getTime()-e.getTime())/864e5)}handleDateFromChange(e){let t=e.target.value;if(this.dateFrom={...this.dateFrom,value:t},this.validationState={...this.validationState,dateFromError:``,rangeError:``},!t)return this.required?(this.validationState={...this.validationState,dateFromError:`Start date is required`},void(this.error=!0)):void this.emitChange();this.validateAndCorrect(`from`)}handleDateToChange(e){let t=e.target.value;if(this.dateTo={...this.dateTo,value:t},this.validationState={...this.validationState,dateToError:``,rangeError:``},!t)return this.required?(this.validationState={...this.validationState,dateToError:`End date is required`},void(this.error=!0)):void this.emitChange();this.validateAndCorrect(`to`)}validateAndCorrect(e){let t=this.parseDate(this.dateFrom.value),n=this.parseDate(this.dateTo.value),r=!1,i={dateFromError:``,dateToError:``,rangeError:``};if(this.dateFrom.value&&!t&&(i.dateFromError=`Invalid date format`,r=!0),this.dateTo.value&&!n&&(i.dateToError=`Invalid date format`,r=!0),t&&n){let a=this.getDaysBetween(t,n);if(t>n){if(this.autoCorrect){if(e===`from`){let e=new Date(t);e.setDate(e.getDate()+this.defaultGap),this.dateTo={...this.dateTo,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else if(e===`to`){let e=new Date(n);e.setDate(e.getDate()-this.defaultGap),this.dateFrom={...this.dateFrom,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else{let e=this.dateFrom.value;this.dateFrom={...this.dateFrom,value:this.dateTo.value},this.dateTo={...this.dateTo,value:e}}this.validateAndCorrect();return}i.rangeError=`End date must be after start date`,r=!0}if(!this.allowSameDate&&a===0){if(this.autoCorrect&&e){if(e===`from`){let e=new Date(t);e.setDate(e.getDate()+this.defaultGap),this.dateTo={...this.dateTo,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else{let e=new Date(n);e.setDate(e.getDate()-this.defaultGap),this.dateFrom={...this.dateFrom,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}this.validateAndCorrect();return}i.rangeError=`Start and end dates cannot be the same`,r=!0}if(this.minGap>0&&a<this.minGap){if(this.autoCorrect&&e){if(e===`from`){let e=new Date(t);e.setDate(e.getDate()+this.minGap),this.dateTo={...this.dateTo,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else{let e=new Date(n);e.setDate(e.getDate()-this.minGap),this.dateFrom={...this.dateFrom,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}this.validateAndCorrect();return}i.rangeError=`Minimum ${this.minGap} day${this.minGap>1?`s`:``} required between dates`,r=!0}if(this.maxGap!==void 0&&a>this.maxGap){if(this.autoCorrect&&e){if(e===`from`){let e=new Date(t);e.setDate(e.getDate()+this.maxGap),this.dateTo={...this.dateTo,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}else{let e=new Date(n);e.setDate(e.getDate()-this.maxGap),this.dateFrom={...this.dateFrom,value:this.formatDate(e,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}}this.validateAndCorrect();return}i.rangeError=`Maximum ${this.maxGap} day${this.maxGap>1?`s`:``} allowed between dates`,r=!0}if(this.minDate){let e=this.parseDate(this.minDate);e&&t<e&&(i.dateFromError=`Date is before minimum allowed date`,r=!0)}if(this.maxDate){let e=this.parseDate(this.maxDate);e&&n>e&&(i.dateToError=`Date is after maximum allowed date`,r=!0)}}this.validationState=i,this.error=r,this.emitChange()}getComputedMinDateTo(){if(!this.dateFrom.value)return this.minDate;let e=this.parseDate(this.dateFrom.value);if(!e)return this.minDate;let t=new Date(e);if(this.allowSameDate||t.setDate(t.getDate()+1),this.minGap>0&&t.setDate(e.getDate()+this.minGap),this.minDate){let e=this.parseDate(this.minDate);if(e&&e>t)return this.minDate}return this.formatDate(t,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}getComputedMaxDateFrom(){if(!this.dateTo.value)return this.maxDate;let e=this.parseDate(this.dateTo.value);if(!e)return this.maxDate;let t=new Date(e);if(this.allowSameDate||t.setDate(t.getDate()-1),this.minGap>0&&t.setDate(e.getDate()-this.minGap),this.maxDate){let e=this.parseDate(this.maxDate);if(e&&e<t)return this.maxDate}return this.formatDate(t,this.type===`datetime-local`?`YYYY-MM-DDTHH:mm`:`YYYY-MM-DD`)}emitChange(){let e=!(this.error||!this.dateFrom.value||!this.dateTo.value||this.validationState.dateFromError||this.validationState.dateToError||this.validationState.rangeError);this.dispatchEvent(new CustomEvent(`change`,{detail:{dateFrom:this.dateFrom.value,dateTo:this.dateTo.value,isValid:e},bubbles:!0,composed:!0}))}render(){let e=this.validationState.dateFromError||this.validationState.rangeError,t=this.validationState.dateToError||this.validationState.rangeError;return r.html`
2
2
  <div class="w-full">
3
3
  <div class="flex items-start gap-2 w-full">
4
4
  <div class="flex-1">
@@ -18,9 +18,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./SchmancyElement-PS1u0j1B.cjs`
18
18
  </div>
19
19
 
20
20
  <div class="flex items-center justify-center ${this.compact?`pt-8`:`pt-10`} px-1">
21
- <schmancy-icon class="text-surface-onVariant opacity-50">
22
- arrow_forward
23
- </schmancy-icon>
21
+ <schmancy-icon class="text-surface-onVariant opacity-50"> arrow_forward </schmancy-icon>
24
22
  </div>
25
23
 
26
24
  <div class="flex-1">
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-inline-CGM0SPK9.cjs","names":[],"sources":["../src/date-range-inline/date-range-inline.ts"],"sourcesContent":["import { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyFormField } from '@mixins/index'\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range-inline': SchmancyDateRangeInline\n\t}\n}\n\nexport type SchmancyDateRangeInlineChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n\tisValid: boolean\n}>\n\n/**\n * Smart inline date range picker that handles all the heavy lifting.\n * Auto-corrects invalid ranges, provides smart defaults, and validates dates.\n */\n@customElement('schmancy-date-range-inline')\nexport default class SchmancyDateRangeInline extends SchmancyFormField() {\n\t/**\n\t * Input type - 'date' or 'datetime-local'\n\t */\n\t@property({ type: String })\n\ttype: 'date' | 'datetime-local' = 'date'\n\n\t/**\n\t * From date configuration\n\t */\n\t@property({ type: Object })\n\tdateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\n\t/**\n\t * To date configuration\n\t */\n\t@property({ type: Object })\n\tdateTo: { label: string; value: string } = { label: 'To', value: '' }\n\n\t/**\n\t * Minimum allowed date\n\t */\n\t@property({ type: String })\n\tminDate?: string\n\n\t/**\n\t * Maximum allowed date\n\t */\n\t@property({ type: String })\n\tmaxDate?: string\n\n\t/**\n\t * Compact mode for smaller UI\n\t */\n\t@property({ type: Boolean })\n\tcompact = false\n\n\t/**\n\t * Auto-correct invalid date ranges\n\t */\n\t@property({ type: Boolean })\n\tautoCorrect = true\n\n\t/**\n\t * Minimum gap between dates (in days)\n\t */\n\t@property({ type: Number })\n\tminGap = 0\n\n\t/**\n\t * Maximum gap between dates (in days)\n\t */\n\t@property({ type: Number })\n\tmaxGap?: number\n\n\t/**\n\t * Default gap when auto-setting dates (in days)\n\t */\n\t@property({ type: Number })\n\tdefaultGap = 1\n\n\t/**\n\t * Whether to allow same date selection\n\t */\n\t@property({ type: Boolean })\n\tallowSameDate = false\n\n\t/**\n\t * Internal validation state\n\t */\n\t@state()\n\tprivate validationState = {\n\t\tdateFromError: '',\n\t\tdateToError: '',\n\t\trangeError: '',\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Initialize with smart defaults if no values provided\n\t\tif (!this.dateFrom.value && !this.dateTo.value) {\n\t\t\tthis.setSmartDefaults()\n\t\t} else {\n\t\t\t// Validate initial values\n\t\t\tthis.validateAndCorrect()\n\t\t}\n\t}\n\n\t/**\n\t * Set smart default dates based on context\n\t */\n\tprivate setSmartDefaults() {\n\t\tconst today = new Date()\n\t\tconst tomorrow = new Date(today)\n\t\ttomorrow.setDate(tomorrow.getDate() + this.defaultGap)\n\n\t\tconst format = this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'\n\n\t\tthis.dateFrom = {\n\t\t\t...this.dateFrom,\n\t\t\tvalue: this.formatDate(today, format),\n\t\t}\n\n\t\tthis.dateTo = {\n\t\t\t...this.dateTo,\n\t\t\tvalue: this.formatDate(tomorrow, format),\n\t\t}\n\t}\n\n\t/**\n\t * Format date to required string format\n\t */\n\tprivate formatDate(date: Date, format: string): string {\n\t\tconst year = date.getFullYear()\n\t\tconst month = String(date.getMonth() + 1).padStart(2, '0')\n\t\tconst day = String(date.getDate()).padStart(2, '0')\n\n\t\tif (format === 'YYYY-MM-DD') {\n\t\t\treturn `${year}-${month}-${day}`\n\t\t} else {\n\t\t\tconst hours = String(date.getHours()).padStart(2, '0')\n\t\t\tconst minutes = String(date.getMinutes()).padStart(2, '0')\n\t\t\treturn `${year}-${month}-${day}T${hours}:${minutes}`\n\t\t}\n\t}\n\n\t/**\n\t * Parse date string to Date object\n\t */\n\tprivate parseDate(dateStr: string): Date | null {\n\t\tif (!dateStr) return null\n\t\tconst date = new Date(dateStr)\n\t\treturn isNaN(date.getTime()) ? null : date\n\t}\n\n\t/**\n\t * Calculate days between two dates\n\t */\n\tprivate getDaysBetween(date1: Date, date2: Date): number {\n\t\tconst msPerDay = 24 * 60 * 60 * 1000\n\t\treturn Math.floor((date2.getTime() - date1.getTime()) / msPerDay)\n\t}\n\n\t/**\n\t * Handle from date change with validation and auto-correction\n\t */\n\tprivate handleDateFromChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tconst newValue = input.value\n\n\t\t// Update the value\n\t\tthis.dateFrom = { ...this.dateFrom, value: newValue }\n\n\t\t// Clear previous errors\n\t\tthis.validationState = { ...this.validationState, dateFromError: '', rangeError: '' }\n\n\t\tif (!newValue) {\n\t\t\t// Allow empty for optional fields\n\t\t\tif (!this.required) {\n\t\t\t\tthis.emitChange()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.validationState = { ...this.validationState, dateFromError: 'Start date is required' }\n\t\t\tthis.error = true\n\t\t\treturn\n\t\t}\n\n\t\t// Validate and potentially auto-correct\n\t\tthis.validateAndCorrect('from')\n\t}\n\n\t/**\n\t * Handle to date change with validation and auto-correction\n\t */\n\tprivate handleDateToChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tconst newValue = input.value\n\n\t\t// Update the value\n\t\tthis.dateTo = { ...this.dateTo, value: newValue }\n\n\t\t// Clear previous errors\n\t\tthis.validationState = { ...this.validationState, dateToError: '', rangeError: '' }\n\n\t\tif (!newValue) {\n\t\t\t// Allow empty for optional fields\n\t\t\tif (!this.required) {\n\t\t\t\tthis.emitChange()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.validationState = { ...this.validationState, dateToError: 'End date is required' }\n\t\t\tthis.error = true\n\t\t\treturn\n\t\t}\n\n\t\t// Validate and potentially auto-correct\n\t\tthis.validateAndCorrect('to')\n\t}\n\n\t/**\n\t * Validate dates and auto-correct if enabled\n\t */\n\tprivate validateAndCorrect(changedField?: 'from' | 'to') {\n\t\tconst fromDate = this.parseDate(this.dateFrom.value)\n\t\tconst toDate = this.parseDate(this.dateTo.value)\n\n\t\t// Reset validation state\n\t\tlet hasError = false\n\t\tconst newValidationState = { dateFromError: '', dateToError: '', rangeError: '' }\n\n\t\t// Validate individual dates\n\t\tif (this.dateFrom.value && !fromDate) {\n\t\t\tnewValidationState.dateFromError = 'Invalid date format'\n\t\t\thasError = true\n\t\t}\n\n\t\tif (this.dateTo.value && !toDate) {\n\t\t\tnewValidationState.dateToError = 'Invalid date format'\n\t\t\thasError = true\n\t\t}\n\n\t\t// If both dates are valid, check range constraints\n\t\tif (fromDate && toDate) {\n\t\t\tconst daysBetween = this.getDaysBetween(fromDate, toDate)\n\n\t\t\t// Check if from date is after to date\n\t\t\tif (fromDate > toDate) {\n\t\t\t\tif (this.autoCorrect) {\n\t\t\t\t\t// Auto-correct based on which field changed\n\t\t\t\t\tif (changedField === 'from') {\n\t\t\t\t\t\t// User changed from date, adjust to date\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.defaultGap)\n\t\t\t\t\t\tthis.dateTo = {\n\t\t\t\t\t\t\t...this.dateTo,\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (changedField === 'to') {\n\t\t\t\t\t\t// User changed to date, adjust from date\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.defaultGap)\n\t\t\t\t\t\tthis.dateFrom = {\n\t\t\t\t\t\t\t...this.dateFrom,\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No specific field changed, swap them\n\t\t\t\t\t\tconst tempValue = this.dateFrom.value\n\t\t\t\t\t\tthis.dateFrom = { ...this.dateFrom, value: this.dateTo.value }\n\t\t\t\t\t\tthis.dateTo = { ...this.dateTo, value: tempValue }\n\t\t\t\t\t}\n\t\t\t\t\t// Re-validate after correction\n\t\t\t\t\tthis.validateAndCorrect()\n\t\t\t\t\treturn\n\t\t\t\t} else {\n\t\t\t\t\tnewValidationState.rangeError = 'End date must be after start date'\n\t\t\t\t\thasError = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check same date constraint\n\t\t\tif (!this.allowSameDate && daysBetween === 0) {\n\t\t\t\tif (this.autoCorrect && changedField) {\n\t\t\t\t\t// Auto-correct by adjusting the other date\n\t\t\t\t\tif (changedField === 'from') {\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.defaultGap)\n\t\t\t\t\t\tthis.dateTo = {\n\t\t\t\t\t\t\t...this.dateTo,\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.defaultGap)\n\t\t\t\t\t\tthis.dateFrom = {\n\t\t\t\t\t\t\t...this.dateFrom,\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'),\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Re-validate after correction\n\t\t\t\t\tthis.validateAndCorrect()\n\t\t\t\t\treturn\n\t\t\t\t} else {\n\t\t\t\t\tnewValidationState.rangeError = 'Start and end dates cannot be the same'\n\t\t\t\t\thasError = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check minimum gap\n\t\t\tif (this.minGap > 0 && daysBetween < this.minGap) {\n\t\t\t\tif (this.autoCorrect && changedField) {\n\t\t\t\t\t// Auto-correct to maintain minimum gap\n\t\t\t\t\tif (changedField === 'from') {\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.minGap)\n\t\t\t\t\t\tthis.dateTo = {\n\t\t\t\t\t\t\t...this.dateTo,\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.minGap)\n\t\t\t\t\t\tthis.dateFrom = {\n\t\t\t\t\t\t\t...this.dateFrom,\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'),\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Re-validate after correction\n\t\t\t\t\tthis.validateAndCorrect()\n\t\t\t\t\treturn\n\t\t\t\t} else {\n\t\t\t\t\tnewValidationState.rangeError = `Minimum ${this.minGap} day${this.minGap > 1 ? 's' : ''} required between dates`\n\t\t\t\t\thasError = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check maximum gap\n\t\t\tif (this.maxGap !== undefined && daysBetween > this.maxGap) {\n\t\t\t\tif (this.autoCorrect && changedField) {\n\t\t\t\t\t// Auto-correct to maintain maximum gap\n\t\t\t\t\tif (changedField === 'from') {\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.maxGap)\n\t\t\t\t\t\tthis.dateTo = {\n\t\t\t\t\t\t\t...this.dateTo,\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.maxGap)\n\t\t\t\t\t\tthis.dateFrom = {\n\t\t\t\t\t\t\t...this.dateFrom,\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'),\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Re-validate after correction\n\t\t\t\t\tthis.validateAndCorrect()\n\t\t\t\t\treturn\n\t\t\t\t} else {\n\t\t\t\t\tnewValidationState.rangeError = `Maximum ${this.maxGap} day${this.maxGap > 1 ? 's' : ''} allowed between dates`\n\t\t\t\t\thasError = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check against min/max date constraints\n\t\t\tif (this.minDate) {\n\t\t\t\tconst minDateObj = this.parseDate(this.minDate)\n\t\t\t\tif (minDateObj && fromDate < minDateObj) {\n\t\t\t\t\tnewValidationState.dateFromError = 'Date is before minimum allowed date'\n\t\t\t\t\thasError = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.maxDate) {\n\t\t\t\tconst maxDateObj = this.parseDate(this.maxDate)\n\t\t\t\tif (maxDateObj && toDate > maxDateObj) {\n\t\t\t\t\tnewValidationState.dateToError = 'Date is after maximum allowed date'\n\t\t\t\t\thasError = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update validation state\n\t\tthis.validationState = newValidationState\n\t\tthis.error = hasError\n\n\t\t// Emit change event with validation status\n\t\tthis.emitChange()\n\t}\n\n\t/**\n\t * Get computed min date for the \"to\" field based on \"from\" value\n\t */\n\tprivate getComputedMinDateTo(): string | undefined {\n\t\tif (!this.dateFrom.value) return this.minDate\n\n\t\tconst fromDate = this.parseDate(this.dateFrom.value)\n\t\tif (!fromDate) return this.minDate\n\n\t\t// Calculate minimum date based on constraints\n\t\tconst minToDate = new Date(fromDate)\n\n\t\tif (!this.allowSameDate) {\n\t\t\tminToDate.setDate(minToDate.getDate() + 1)\n\t\t}\n\n\t\tif (this.minGap > 0) {\n\t\t\tminToDate.setDate(fromDate.getDate() + this.minGap)\n\t\t}\n\n\t\t// Compare with global minDate if set\n\t\tif (this.minDate) {\n\t\t\tconst globalMin = this.parseDate(this.minDate)\n\t\t\tif (globalMin && globalMin > minToDate) {\n\t\t\t\treturn this.minDate\n\t\t\t}\n\t\t}\n\n\t\treturn this.formatDate(minToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\n\t}\n\n\t/**\n\t * Get computed max date for the \"from\" field based on \"to\" value\n\t */\n\tprivate getComputedMaxDateFrom(): string | undefined {\n\t\tif (!this.dateTo.value) return this.maxDate\n\n\t\tconst toDate = this.parseDate(this.dateTo.value)\n\t\tif (!toDate) return this.maxDate\n\n\t\t// Calculate maximum date based on constraints\n\t\tconst maxFromDate = new Date(toDate)\n\n\t\tif (!this.allowSameDate) {\n\t\t\tmaxFromDate.setDate(maxFromDate.getDate() - 1)\n\t\t}\n\n\t\tif (this.minGap > 0) {\n\t\t\tmaxFromDate.setDate(toDate.getDate() - this.minGap)\n\t\t}\n\n\t\t// Compare with global maxDate if set\n\t\tif (this.maxDate) {\n\t\t\tconst globalMax = this.parseDate(this.maxDate)\n\t\t\tif (globalMax && globalMax < maxFromDate) {\n\t\t\t\treturn this.maxDate\n\t\t\t}\n\t\t}\n\n\t\treturn this.formatDate(maxFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\n\t}\n\n\temitChange() {\n\t\tconst isValid =\n\t\t\t!this.error &&\n\t\t\t!!this.dateFrom.value &&\n\t\t\t!!this.dateTo.value &&\n\t\t\t!this.validationState.dateFromError &&\n\t\t\t!this.validationState.dateToError &&\n\t\t\t!this.validationState.rangeError\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancyDateRangeInlineChangeEvent['detail']>('change', {\n\t\t\t\tdetail: {\n\t\t\t\t\tdateFrom: this.dateFrom.value,\n\t\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\t\tisValid,\n\t\t\t\t},\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprotected render() {\n\t\t// Determine which error to show on each input\n\t\tconst fromError = this.validationState.dateFromError || this.validationState.rangeError\n\t\tconst toError = this.validationState.dateToError || this.validationState.rangeError\n\n\t\treturn html`\n\t\t\t<div class=\"w-full\">\n\t\t\t\t<div class=\"flex items-start gap-2 w-full\">\n\t\t\t\t\t<div class=\"flex-1\">\n\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t.label=${this.dateFrom.label}\n\t\t\t\t\t\t\t.value=${this.dateFrom.value}\n\t\t\t\t\t\t\t.min=${this.minDate}\n\t\t\t\t\t\t\t.max=${this.getComputedMaxDateFrom()}\n\t\t\t\t\t\t\t@change=${this.handleDateFromChange}\n\t\t\t\t\t\t\t.error=${!!fromError}\n\t\t\t\t\t\t\t.hint=${fromError || ''}\n\t\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t\t.disabled=${this.disabled}\n\t\t\t\t\t\t\tsize=${this.compact ? 'sm' : 'md'}\n\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"flex items-center justify-center ${this.compact ? 'pt-8' : 'pt-10'} px-1\">\n\t\t\t\t\t\t<schmancy-icon class=\"text-surface-onVariant opacity-50\"> arrow_forward </schmancy-icon>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"flex-1\">\n\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t.label=${this.dateTo.label}\n\t\t\t\t\t\t\t.value=${this.dateTo.value}\n\t\t\t\t\t\t\t.min=${this.getComputedMinDateTo()}\n\t\t\t\t\t\t\t.max=${this.maxDate}\n\t\t\t\t\t\t\t@change=${this.handleDateToChange}\n\t\t\t\t\t\t\t.error=${!!toError}\n\t\t\t\t\t\t\t.hint=${toError || ''}\n\t\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t\t.disabled=${this.disabled}\n\t\t\t\t\t\t\tsize=${this.compact ? 'sm' : 'md'}\n\t\t\t\t\t\t></schmancy-input>\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"],"mappings":"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"}