@wirekyt/dom 0.0.1 → 0.0.2

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 (476) hide show
  1. package/dist/anatomy-DMuSMbOP.d.cts +18 -0
  2. package/dist/anatomy-DMuSMbOP.d.ts +18 -0
  3. package/dist/anatomy.cjs +3 -0
  4. package/dist/anatomy.d.cts +2 -0
  5. package/dist/anatomy.d.ts +2 -0
  6. package/dist/anatomy.js +2 -0
  7. package/dist/angle-3hqP0Mp5.cjs +13 -0
  8. package/dist/angle-oNt8uGHQ.js +8 -0
  9. package/dist/aria-hidden-CEXexb2I.js +127 -0
  10. package/dist/aria-hidden-Y7iJHPMr.cjs +132 -0
  11. package/dist/aria-hidden.cjs +3 -0
  12. package/dist/aria-hidden.d.cts +10 -0
  13. package/dist/aria-hidden.d.ts +10 -0
  14. package/dist/aria-hidden.js +2 -0
  15. package/dist/array-BGtygd0o.cjs +198 -0
  16. package/dist/array-C4KbHsha.js +73 -0
  17. package/dist/auto-resize-5F5iiKZb.cjs +106 -0
  18. package/dist/auto-resize-KkNfCcBt.js +95 -0
  19. package/dist/auto-resize.cjs +4 -0
  20. package/dist/auto-resize.d.cts +7 -0
  21. package/dist/auto-resize.d.ts +7 -0
  22. package/dist/auto-resize.js +2 -0
  23. package/dist/caret-CHqaP4XG.cjs +30 -0
  24. package/dist/caret-aiDJ6mAS.js +19 -0
  25. package/dist/closest-Clo6ODcK.js +117 -0
  26. package/dist/closest-IiRz1GIJ.cjs +176 -0
  27. package/dist/collection-CJU0oDtX.js +1295 -0
  28. package/dist/collection-CwzUJwBJ.cjs +1342 -0
  29. package/dist/collection.cjs +15 -0
  30. package/dist/collection.d.cts +34 -0
  31. package/dist/collection.d.ts +34 -0
  32. package/dist/collection.js +3 -0
  33. package/dist/color-CsugZjq6.d.cts +60 -0
  34. package/dist/color-CsugZjq6.d.ts +60 -0
  35. package/dist/color-utils-DzeOVYlL.cjs +662 -0
  36. package/dist/color-utils-lDDg9FEh.js +639 -0
  37. package/dist/color-utils.cjs +6 -0
  38. package/dist/color-utils.d.cts +18 -0
  39. package/dist/color-utils.d.ts +18 -0
  40. package/dist/color-utils.js +2 -0
  41. package/dist/computed-style-B1MKlCoo.js +9 -0
  42. package/dist/computed-style-DLArEFNw.cjs +14 -0
  43. package/dist/controller-B8E8ZJCI.cjs +133 -0
  44. package/dist/controller-Dv7lWHDr.js +92 -0
  45. package/dist/core-BF6G2RiC.d.cts +1 -0
  46. package/dist/core-BNMw-JId.cjs +372 -0
  47. package/dist/core-BdeZuSX6.d.ts +1 -0
  48. package/dist/core-CJ0MZr3D.js +289 -0
  49. package/dist/core.cjs +19 -0
  50. package/dist/core.d.cts +3 -0
  51. package/dist/core.d.ts +3 -0
  52. package/dist/core.js +3 -0
  53. package/dist/create-anatomy-B2q3wiaw.js +22 -0
  54. package/dist/create-anatomy-BwDn25ph.cjs +27 -0
  55. package/dist/create-props-CgtcN_Qu.js +4 -0
  56. package/dist/create-props-CjLx2oS8.cjs +9 -0
  57. package/dist/data-url-C-Uk31Q9.cjs +42 -0
  58. package/dist/data-url-DHUHj7UF.js +37 -0
  59. package/dist/data-url-Gx_SWG-k.d.cts +10 -0
  60. package/dist/data-url-Gx_SWG-k.d.ts +10 -0
  61. package/dist/date-utils-D-JJHedx.cjs +868 -0
  62. package/dist/date-utils-D5zXW-Cs.js +569 -0
  63. package/dist/date-utils.cjs +52 -0
  64. package/dist/date-utils.d.cts +7 -0
  65. package/dist/date-utils.d.ts +7 -0
  66. package/dist/date-utils.js +2 -0
  67. package/dist/dismissable-C0bixtzl.cjs +348 -0
  68. package/dist/dismissable-KM1jPtNQ.js +337 -0
  69. package/dist/dismissable-layer-BTX5EvXw.d.ts +40 -0
  70. package/dist/dismissable-layer-Ch5niVaq.d.cts +40 -0
  71. package/dist/dismissable.cjs +4 -0
  72. package/dist/dismissable.d.cts +3 -0
  73. package/dist/dismissable.d.ts +3 -0
  74. package/dist/dismissable.js +2 -0
  75. package/dist/dom-query-CQzY93XU.cjs +488 -0
  76. package/dist/dom-query-e7fh0TEH.js +243 -0
  77. package/dist/dom-query.cjs +180 -0
  78. package/dist/dom-query.d.cts +142 -0
  79. package/dist/dom-query.d.ts +142 -0
  80. package/dist/dom-query.js +43 -0
  81. package/dist/equal-C927y7MN.cjs +30 -0
  82. package/dist/equal-DtrP8DPh.js +25 -0
  83. package/dist/event-DDz-mMhM.cjs +242 -0
  84. package/dist/event-bTItRgiw.js +117 -0
  85. package/dist/file-utils-6EXCdfHx.js +116 -0
  86. package/dist/file-utils-B7OJigQq.cjs +151 -0
  87. package/dist/file-utils.cjs +92 -0
  88. package/dist/file-utils.d.cts +40 -0
  89. package/dist/file-utils.d.ts +40 -0
  90. package/dist/file-utils.js +82 -0
  91. package/dist/focus-trap-89E5I9nm.js +487 -0
  92. package/dist/focus-trap-D7jKsfHW.cjs +498 -0
  93. package/dist/focus-trap.cjs +4 -0
  94. package/dist/focus-trap.d.cts +89 -0
  95. package/dist/focus-trap.d.ts +89 -0
  96. package/dist/focus-trap.js +2 -0
  97. package/dist/focus-visible-DWdQf__4.js +176 -0
  98. package/dist/focus-visible-G4cmlWqq.cjs +217 -0
  99. package/dist/focus-visible.cjs +9 -0
  100. package/dist/focus-visible.d.cts +32 -0
  101. package/dist/focus-visible.d.ts +32 -0
  102. package/dist/focus-visible.js +2 -0
  103. package/dist/form-B1DW_w_3.js +89 -0
  104. package/dist/form-CoupKpuP.cjs +130 -0
  105. package/dist/from-window-5ZhzSURC.js +68 -0
  106. package/dist/from-window-B9DKtaoR.cjs +115 -0
  107. package/dist/functions-isw5Ovcx.d.cts +16 -0
  108. package/dist/functions-isw5Ovcx.d.ts +16 -0
  109. package/dist/highlight-word.cjs +95 -0
  110. package/dist/highlight-word.d.cts +24 -0
  111. package/dist/highlight-word.d.ts +24 -0
  112. package/dist/highlight-word.js +94 -0
  113. package/dist/hotkeys.cjs +1183 -0
  114. package/dist/hotkeys.d.cts +199 -0
  115. package/dist/hotkeys.d.ts +199 -0
  116. package/dist/hotkeys.js +1173 -0
  117. package/dist/i18n-utils-BD4VtonY.cjs +345 -0
  118. package/dist/i18n-utils-C4FQZ39m.js +280 -0
  119. package/dist/i18n-utils.cjs +216 -0
  120. package/dist/i18n-utils.d.cts +71 -0
  121. package/dist/i18n-utils.d.ts +71 -0
  122. package/dist/i18n-utils.js +204 -0
  123. package/dist/index-3tNJficI.d.cts +117 -0
  124. package/dist/index-3tNJficI.d.ts +117 -0
  125. package/dist/index-BEfvdGE2.d.cts +116 -0
  126. package/dist/index-BEfvdGE2.d.ts +116 -0
  127. package/dist/index-BF6G2RiC.d.cts +1 -0
  128. package/dist/index-BKgxIVbE.d.cts +285 -0
  129. package/dist/index-BMtpmaRD.d.cts +16 -0
  130. package/dist/index-BMtpmaRD.d.ts +16 -0
  131. package/dist/index-BWiYePx8.d.cts +216 -0
  132. package/dist/index-BXfunVyD.d.cts +1342 -0
  133. package/dist/index-BXfunVyD.d.ts +1342 -0
  134. package/dist/index-BdeZuSX6.d.ts +1 -0
  135. package/dist/index-C2865AJq.d.cts +25 -0
  136. package/dist/index-C2865AJq.d.ts +25 -0
  137. package/dist/index-CFoN0L3C.d.ts +285 -0
  138. package/dist/index-vPrqYDHu.d.ts +216 -0
  139. package/dist/index.cjs +19 -0
  140. package/dist/index.d.cts +3 -0
  141. package/dist/index.d.ts +3 -0
  142. package/dist/index.js +3 -0
  143. package/dist/initial-focus-BQxRRFPa.cjs +37 -0
  144. package/dist/initial-focus-BrN5tT2X.js +26 -0
  145. package/dist/interact-outside-BjqIunFx.js +211 -0
  146. package/dist/interact-outside-Dphjr2Zh.cjs +216 -0
  147. package/dist/interact-outside.cjs +3 -0
  148. package/dist/interact-outside.d.cts +2 -0
  149. package/dist/interact-outside.d.ts +2 -0
  150. package/dist/interact-outside.js +2 -0
  151. package/dist/json-tree-utils.cjs +1518 -0
  152. package/dist/json-tree-utils.d.cts +117 -0
  153. package/dist/json-tree-utils.d.ts +117 -0
  154. package/dist/json-tree-utils.js +1469 -0
  155. package/dist/list-collection-D_eNKrot.d.cts +60 -0
  156. package/dist/list-collection-RqYEWHb4.d.ts +60 -0
  157. package/dist/live-region-BD0OgmrH.cjs +68 -0
  158. package/dist/live-region-F8YMmbrY.js +63 -0
  159. package/dist/live-region.cjs +3 -0
  160. package/dist/live-region.d.cts +2 -0
  161. package/dist/live-region.d.ts +2 -0
  162. package/dist/live-region.js +2 -0
  163. package/dist/machines/accordion/index.cjs +328 -0
  164. package/dist/machines/accordion/index.d.cts +83 -0
  165. package/dist/machines/accordion/index.d.ts +83 -0
  166. package/dist/machines/accordion/index.js +321 -0
  167. package/dist/machines/angle-slider/index.cjs +420 -0
  168. package/dist/machines/angle-slider/index.d.cts +84 -0
  169. package/dist/machines/angle-slider/index.d.ts +84 -0
  170. package/dist/machines/angle-slider/index.js +415 -0
  171. package/dist/machines/async-list/index.cjs +310 -0
  172. package/dist/machines/async-list/index.d.cts +90 -0
  173. package/dist/machines/async-list/index.d.ts +90 -0
  174. package/dist/machines/async-list/index.js +308 -0
  175. package/dist/machines/avatar/index.cjs +165 -0
  176. package/dist/machines/avatar/index.d.cts +63 -0
  177. package/dist/machines/avatar/index.d.ts +63 -0
  178. package/dist/machines/avatar/index.js +160 -0
  179. package/dist/machines/carousel/index.cjs +929 -0
  180. package/dist/machines/carousel/index.d.cts +146 -0
  181. package/dist/machines/carousel/index.d.ts +146 -0
  182. package/dist/machines/carousel/index.js +920 -0
  183. package/dist/machines/cascade-select/index.cjs +1426 -0
  184. package/dist/machines/cascade-select/index.d.cts +167 -0
  185. package/dist/machines/cascade-select/index.d.ts +167 -0
  186. package/dist/machines/cascade-select/index.js +1419 -0
  187. package/dist/machines/checkbox/index.cjs +316 -0
  188. package/dist/machines/checkbox/index.d.cts +81 -0
  189. package/dist/machines/checkbox/index.d.ts +81 -0
  190. package/dist/machines/checkbox/index.js +311 -0
  191. package/dist/machines/clipboard/index.cjs +228 -0
  192. package/dist/machines/clipboard/index.d.cts +72 -0
  193. package/dist/machines/clipboard/index.d.ts +72 -0
  194. package/dist/machines/clipboard/index.js +221 -0
  195. package/dist/machines/collapsible/index.cjs +363 -0
  196. package/dist/machines/collapsible/index.d.cts +82 -0
  197. package/dist/machines/collapsible/index.d.ts +82 -0
  198. package/dist/machines/collapsible/index.js +358 -0
  199. package/dist/machines/color-picker/index.cjs +1534 -0
  200. package/dist/machines/color-picker/index.d.cts +207 -0
  201. package/dist/machines/color-picker/index.d.ts +207 -0
  202. package/dist/machines/color-picker/index.js +1518 -0
  203. package/dist/machines/combobox/index.cjs +1554 -0
  204. package/dist/machines/combobox/index.d.cts +219 -0
  205. package/dist/machines/combobox/index.d.ts +219 -0
  206. package/dist/machines/combobox/index.js +1542 -0
  207. package/dist/machines/date-input/index.cjs +1974 -0
  208. package/dist/machines/date-input/index.d.cts +230 -0
  209. package/dist/machines/date-input/index.d.ts +230 -0
  210. package/dist/machines/date-input/index.js +1958 -0
  211. package/dist/machines/date-picker/index.cjs +2424 -0
  212. package/dist/machines/date-picker/index.d.cts +378 -0
  213. package/dist/machines/date-picker/index.d.ts +378 -0
  214. package/dist/machines/date-picker/index.js +2408 -0
  215. package/dist/machines/dialog/index.cjs +378 -0
  216. package/dist/machines/dialog/index.d.cts +94 -0
  217. package/dist/machines/dialog/index.d.ts +94 -0
  218. package/dist/machines/dialog/index.js +373 -0
  219. package/dist/machines/drawer/index.cjs +2066 -0
  220. package/dist/machines/drawer/index.d.cts +334 -0
  221. package/dist/machines/drawer/index.d.ts +334 -0
  222. package/dist/machines/drawer/index.js +2059 -0
  223. package/dist/machines/editable/index.cjs +550 -0
  224. package/dist/machines/editable/index.d.cts +114 -0
  225. package/dist/machines/editable/index.d.ts +114 -0
  226. package/dist/machines/editable/index.js +545 -0
  227. package/dist/machines/file-upload/index.cjs +648 -0
  228. package/dist/machines/file-upload/index.d.cts +150 -0
  229. package/dist/machines/file-upload/index.d.ts +150 -0
  230. package/dist/machines/file-upload/index.js +641 -0
  231. package/dist/machines/floating-panel/index.cjs +1020 -0
  232. package/dist/machines/floating-panel/index.d.cts +149 -0
  233. package/dist/machines/floating-panel/index.d.ts +149 -0
  234. package/dist/machines/floating-panel/index.js +1012 -0
  235. package/dist/machines/hover-card/index.cjs +441 -0
  236. package/dist/machines/hover-card/index.d.cts +82 -0
  237. package/dist/machines/hover-card/index.d.ts +82 -0
  238. package/dist/machines/hover-card/index.js +436 -0
  239. package/dist/machines/image-cropper/index.cjs +2082 -0
  240. package/dist/machines/image-cropper/index.d.cts +182 -0
  241. package/dist/machines/image-cropper/index.d.ts +182 -0
  242. package/dist/machines/image-cropper/index.js +2076 -0
  243. package/dist/machines/listbox/index.cjs +873 -0
  244. package/dist/machines/listbox/index.d.cts +175 -0
  245. package/dist/machines/listbox/index.d.ts +175 -0
  246. package/dist/machines/listbox/index.js +860 -0
  247. package/dist/machines/marquee/index.cjs +387 -0
  248. package/dist/machines/marquee/index.d.cts +102 -0
  249. package/dist/machines/marquee/index.d.ts +102 -0
  250. package/dist/machines/marquee/index.js +382 -0
  251. package/dist/machines/menu/index.cjs +1562 -0
  252. package/dist/machines/menu/index.d.cts +188 -0
  253. package/dist/machines/menu/index.d.ts +188 -0
  254. package/dist/machines/menu/index.js +1549 -0
  255. package/dist/machines/navigation-menu/index.cjs +860 -0
  256. package/dist/machines/navigation-menu/index.d.cts +131 -0
  257. package/dist/machines/navigation-menu/index.d.ts +131 -0
  258. package/dist/machines/navigation-menu/index.js +855 -0
  259. package/dist/machines/number-input/index.cjs +1014 -0
  260. package/dist/machines/number-input/index.d.cts +136 -0
  261. package/dist/machines/number-input/index.d.ts +136 -0
  262. package/dist/machines/number-input/index.js +1009 -0
  263. package/dist/machines/pagination/index.cjs +413 -0
  264. package/dist/machines/pagination/index.d.cts +139 -0
  265. package/dist/machines/pagination/index.d.ts +139 -0
  266. package/dist/machines/pagination/index.js +404 -0
  267. package/dist/machines/password-input/index.cjs +224 -0
  268. package/dist/machines/password-input/index.d.cts +71 -0
  269. package/dist/machines/password-input/index.d.ts +71 -0
  270. package/dist/machines/password-input/index.js +219 -0
  271. package/dist/machines/pin-input/index.cjs +595 -0
  272. package/dist/machines/pin-input/index.d.cts +107 -0
  273. package/dist/machines/pin-input/index.d.ts +107 -0
  274. package/dist/machines/pin-input/index.js +590 -0
  275. package/dist/machines/popover/index.cjs +516 -0
  276. package/dist/machines/popover/index.d.cts +107 -0
  277. package/dist/machines/popover/index.d.ts +107 -0
  278. package/dist/machines/popover/index.js +511 -0
  279. package/dist/machines/presence/index.cjs +193 -0
  280. package/dist/machines/presence/index.d.cts +44 -0
  281. package/dist/machines/presence/index.d.ts +44 -0
  282. package/dist/machines/presence/index.js +190 -0
  283. package/dist/machines/progress/index.cjs +282 -0
  284. package/dist/machines/progress/index.d.cts +96 -0
  285. package/dist/machines/progress/index.d.ts +96 -0
  286. package/dist/machines/progress/index.js +277 -0
  287. package/dist/machines/qr-code/index.cjs +167 -0
  288. package/dist/machines/qr-code/index.d.cts +71 -0
  289. package/dist/machines/qr-code/index.d.ts +71 -0
  290. package/dist/machines/qr-code/index.js +162 -0
  291. package/dist/machines/radio-group/index.cjs +465 -0
  292. package/dist/machines/radio-group/index.d.cts +218 -0
  293. package/dist/machines/radio-group/index.d.ts +218 -0
  294. package/dist/machines/radio-group/index.js +458 -0
  295. package/dist/machines/rating-group/index.cjs +405 -0
  296. package/dist/machines/rating-group/index.d.cts +101 -0
  297. package/dist/machines/rating-group/index.d.ts +101 -0
  298. package/dist/machines/rating-group/index.js +398 -0
  299. package/dist/machines/scroll-area/index.cjs +865 -0
  300. package/dist/machines/scroll-area/index.d.cts +126 -0
  301. package/dist/machines/scroll-area/index.d.ts +126 -0
  302. package/dist/machines/scroll-area/index.js +860 -0
  303. package/dist/machines/select/index.cjs +1226 -0
  304. package/dist/machines/select/index.d.cts +190 -0
  305. package/dist/machines/select/index.d.ts +190 -0
  306. package/dist/machines/select/index.js +1214 -0
  307. package/dist/machines/signature-pad/index.cjs +337 -0
  308. package/dist/machines/signature-pad/index.d.cts +108 -0
  309. package/dist/machines/signature-pad/index.d.ts +108 -0
  310. package/dist/machines/signature-pad/index.js +330 -0
  311. package/dist/machines/slider/index.cjs +1103 -0
  312. package/dist/machines/slider/index.d.cts +154 -0
  313. package/dist/machines/slider/index.d.ts +154 -0
  314. package/dist/machines/slider/index.js +1094 -0
  315. package/dist/machines/splitter/index.cjs +1686 -0
  316. package/dist/machines/splitter/index.d.cts +282 -0
  317. package/dist/machines/splitter/index.d.ts +282 -0
  318. package/dist/machines/splitter/index.js +1675 -0
  319. package/dist/machines/steps/index.cjs +330 -0
  320. package/dist/machines/steps/index.d.cts +109 -0
  321. package/dist/machines/steps/index.d.ts +109 -0
  322. package/dist/machines/steps/index.js +325 -0
  323. package/dist/machines/switch/index.cjs +307 -0
  324. package/dist/machines/switch/index.d.cts +80 -0
  325. package/dist/machines/switch/index.d.ts +80 -0
  326. package/dist/machines/switch/index.js +302 -0
  327. package/dist/machines/tabs/index.cjs +542 -0
  328. package/dist/machines/tabs/index.d.cts +113 -0
  329. package/dist/machines/tabs/index.d.ts +113 -0
  330. package/dist/machines/tabs/index.js +533 -0
  331. package/dist/machines/tags-input/index.cjs +1151 -0
  332. package/dist/machines/tags-input/index.d.cts +182 -0
  333. package/dist/machines/tags-input/index.d.ts +182 -0
  334. package/dist/machines/tags-input/index.js +1144 -0
  335. package/dist/machines/timer/index.cjs +329 -0
  336. package/dist/machines/timer/index.d.cts +102 -0
  337. package/dist/machines/timer/index.d.ts +102 -0
  338. package/dist/machines/timer/index.js +323 -0
  339. package/dist/machines/toast/index.cjs +1185 -0
  340. package/dist/machines/toast/index.d.cts +204 -0
  341. package/dist/machines/toast/index.d.ts +204 -0
  342. package/dist/machines/toast/index.js +1180 -0
  343. package/dist/machines/toc/index.cjs +358 -0
  344. package/dist/machines/toc/index.d.cts +98 -0
  345. package/dist/machines/toc/index.d.ts +98 -0
  346. package/dist/machines/toc/index.js +351 -0
  347. package/dist/machines/toggle/index.cjs +99 -0
  348. package/dist/machines/toggle/index.d.cts +46 -0
  349. package/dist/machines/toggle/index.d.ts +46 -0
  350. package/dist/machines/toggle/index.js +94 -0
  351. package/dist/machines/toggle-group/index.cjs +329 -0
  352. package/dist/machines/toggle-group/index.d.cts +81 -0
  353. package/dist/machines/toggle-group/index.d.ts +81 -0
  354. package/dist/machines/toggle-group/index.js +322 -0
  355. package/dist/machines/tooltip/index.cjs +638 -0
  356. package/dist/machines/tooltip/index.d.cts +84 -0
  357. package/dist/machines/tooltip/index.d.ts +84 -0
  358. package/dist/machines/tooltip/index.js +633 -0
  359. package/dist/machines/tour/index.cjs +1123 -0
  360. package/dist/machines/tour/index.d.cts +207 -0
  361. package/dist/machines/tour/index.d.ts +207 -0
  362. package/dist/machines/tour/index.js +1115 -0
  363. package/dist/machines/tree-view/index.cjs +1288 -0
  364. package/dist/machines/tree-view/index.d.cts +221 -0
  365. package/dist/machines/tree-view/index.d.ts +221 -0
  366. package/dist/machines/tree-view/index.js +1279 -0
  367. package/dist/mutation-observer-_LbwtN3W.cjs +61 -0
  368. package/dist/mutation-observer-qObPUo3D.js +50 -0
  369. package/dist/navigate-CJOaL3vx.js +31 -0
  370. package/dist/navigate-uJG-006f.cjs +42 -0
  371. package/dist/overflow-BBihfMxX.cjs +67 -0
  372. package/dist/overflow-C-zO1CWA.js +44 -0
  373. package/dist/platform-BDB0wXUk.js +26 -0
  374. package/dist/platform-BZS-dkZN.cjs +109 -0
  375. package/dist/point-C9A4dk1i.js +27 -0
  376. package/dist/point-DxnCrJBy.cjs +32 -0
  377. package/dist/pointer-lock-BvfSjt_s.cjs +31 -0
  378. package/dist/pointer-lock-WezxTqu-.js +26 -0
  379. package/dist/pointer-move-CGzan38r.cjs +42 -0
  380. package/dist/pointer-move-Tijb8Ptk.js +37 -0
  381. package/dist/polygon-BvdwYRBw.js +76 -0
  382. package/dist/polygon-CTR1kEoU.cjs +93 -0
  383. package/dist/popper-DkAAS9VE.cjs +487 -0
  384. package/dist/popper-DzBZzAe4.js +464 -0
  385. package/dist/popper.cjs +6 -0
  386. package/dist/popper.d.cts +2 -0
  387. package/dist/popper.d.ts +2 -0
  388. package/dist/popper.js +2 -0
  389. package/dist/press-B7XLrLGR.js +65 -0
  390. package/dist/press-BdD5suLQ.cjs +70 -0
  391. package/dist/proxy-tab-focus-DWMXvAfO.js +54 -0
  392. package/dist/proxy-tab-focus-NthYgHdY.cjs +59 -0
  393. package/dist/raf-BSDcY4UD.cjs +85 -0
  394. package/dist/raf-DgINgykK.d.cts +15 -0
  395. package/dist/raf-DgINgykK.d.ts +15 -0
  396. package/dist/raf-Dhvm7f1e.js +62 -0
  397. package/dist/rect-utils-DiT4k3jS.cjs +548 -0
  398. package/dist/rect-utils-d_3gZVsc.js +459 -0
  399. package/dist/rect-utils.cjs +165 -0
  400. package/dist/rect-utils.d.cts +197 -0
  401. package/dist/rect-utils.d.ts +197 -0
  402. package/dist/rect-utils.js +116 -0
  403. package/dist/remove-scroll-DTVA5f4w.cjs +86 -0
  404. package/dist/remove-scroll-WEheFCiq.js +81 -0
  405. package/dist/remove-scroll.cjs +3 -0
  406. package/dist/remove-scroll.d.cts +4 -0
  407. package/dist/remove-scroll.d.ts +4 -0
  408. package/dist/remove-scroll.js +2 -0
  409. package/dist/rolldown-runtime-D6vf50IK.cjs +28 -0
  410. package/dist/scale-C5BBHVgH.js +17 -0
  411. package/dist/scale-C7iiUGhS.cjs +22 -0
  412. package/dist/scope-CysKlKe9.cjs +28 -0
  413. package/dist/scope-D1873Mzi.js +23 -0
  414. package/dist/scroll-CVJ40w2e.js +46 -0
  415. package/dist/scroll-Dyd1QLrc.cjs +63 -0
  416. package/dist/scroll-snap-Cuaqdevf.cjs +224 -0
  417. package/dist/scroll-snap-DqMiFASa.js +201 -0
  418. package/dist/scroll-snap.cjs +6 -0
  419. package/dist/scroll-snap.d.cts +14 -0
  420. package/dist/scroll-snap.d.ts +14 -0
  421. package/dist/scroll-snap.js +2 -0
  422. package/dist/selection-ClKhnWit.d.cts +49 -0
  423. package/dist/selection-DzLiSVkg.d.ts +49 -0
  424. package/dist/selection-map-962WvX2k.js +45 -0
  425. package/dist/selection-map-BwlZr1LH.cjs +68 -0
  426. package/dist/set-CFNGOW5W.js +50 -0
  427. package/dist/set-DrtWCLFb.cjs +73 -0
  428. package/dist/store-BLpJlMxz.js +257 -0
  429. package/dist/store-Btfrm2bs.cjs +47 -0
  430. package/dist/store-C5HvdLyc.js +42 -0
  431. package/dist/store-Wg8KVwNv.cjs +298 -0
  432. package/dist/store.cjs +9 -0
  433. package/dist/store.d.cts +26 -0
  434. package/dist/store.d.ts +26 -0
  435. package/dist/store.js +2 -0
  436. package/dist/stringify-state.cjs +48 -0
  437. package/dist/stringify-state.d.cts +8 -0
  438. package/dist/stringify-state.d.ts +8 -0
  439. package/dist/stringify-state.js +44 -0
  440. package/dist/tabbable-Bz1-1GAY.cjs +206 -0
  441. package/dist/tabbable-CDA1YMjZ.js +147 -0
  442. package/dist/text-selection-B3OQpQGy.cjs +75 -0
  443. package/dist/text-selection-DXvWvm6k.js +64 -0
  444. package/dist/timers-BRyPrXIX.js +82 -0
  445. package/dist/timers-Beu4SfAj.cjs +99 -0
  446. package/dist/tree-collection-3QX3EIhq.d.ts +77 -0
  447. package/dist/tree-collection-C6oDQGUJ.d.cts +77 -0
  448. package/dist/typeahead-DremEgML.d.cts +45 -0
  449. package/dist/typeahead-DremEgML.d.ts +45 -0
  450. package/dist/types-BFuHIo7S.js +10 -0
  451. package/dist/types-CczqoQLL.d.cts +57 -0
  452. package/dist/types-CczqoQLL.d.ts +57 -0
  453. package/dist/types-CjocssbC.d.cts +13 -0
  454. package/dist/types-CjocssbC.d.ts +13 -0
  455. package/dist/types-D7oF7eWh.d.cts +54 -0
  456. package/dist/types-D7oF7eWh.d.ts +54 -0
  457. package/dist/types-HCvp3Bhv.cjs +21 -0
  458. package/dist/types.cjs +14 -0
  459. package/dist/types.d.cts +6 -0
  460. package/dist/types.d.ts +6 -0
  461. package/dist/types.js +12 -0
  462. package/dist/utils-BH-oBBz2.cjs +614 -0
  463. package/dist/utils-Cht5XaHf.js +267 -0
  464. package/dist/utils.cjs +95 -0
  465. package/dist/utils.d.cts +144 -0
  466. package/dist/utils.d.ts +144 -0
  467. package/dist/utils.js +7 -0
  468. package/dist/visually-hidden-BgSCFLz_.cjs +29 -0
  469. package/dist/visually-hidden-yDJ517KZ.js +18 -0
  470. package/dist/wait-for-3n85JcCU.d.cts +15 -0
  471. package/dist/wait-for-3n85JcCU.d.ts +15 -0
  472. package/dist/wait-for-CI5Ye-Lo.js +69 -0
  473. package/dist/wait-for-Db73VpZQ.cjs +86 -0
  474. package/dist/warning-CrzBpWT1.js +19 -0
  475. package/dist/warning-HAmFXLHm.cjs +42 -0
  476. package/package.json +349 -6
@@ -0,0 +1,2424 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_create_anatomy = require("../../create-anatomy-BwDn25ph.cjs");
3
+ const require_dom_query = require("../../dom-query-CQzY93XU.cjs");
4
+ const require_event = require("../../event-DDz-mMhM.cjs");
5
+ const require_form = require("../../form-CoupKpuP.cjs");
6
+ const require_raf = require("../../raf-BSDcY4UD.cjs");
7
+ const require_text_selection = require("../../text-selection-B3OQpQGy.cjs");
8
+ const require_array = require("../../array-BGtygd0o.cjs");
9
+ const require_utils = require("../../utils-BH-oBBz2.cjs");
10
+ const require_core = require("../../core-BNMw-JId.cjs");
11
+ const require_date_utils = require("../../date-utils-D-JJHedx.cjs");
12
+ const require_dismissable = require("../../dismissable-C0bixtzl.cjs");
13
+ const require_live_region = require("../../live-region-BD0OgmrH.cjs");
14
+ const require_popper = require("../../popper-DkAAS9VE.cjs");
15
+ const require_create_props = require("../../create-props-CjLx2oS8.cjs");
16
+ let _internationalized_date = require("@internationalized/date");
17
+ //#region src/machines/date-picker/anatomy.ts
18
+ const anatomy = require_create_anatomy.createAnatomy("date-picker").parts("clearTrigger", "content", "control", "input", "label", "monthSelect", "nextTrigger", "positioner", "presetTrigger", "prevTrigger", "rangeText", "root", "table", "tableBody", "tableCell", "tableCellTrigger", "tableHead", "tableHeader", "tableRow", "trigger", "view", "viewControl", "viewTrigger", "yearSelect");
19
+ const parts = anatomy.build();
20
+ //#endregion
21
+ //#region src/machines/date-picker/dom.ts
22
+ const getLabelId = (ctx, index) => ctx.ids?.label?.(index) ?? `date-picker:${ctx.id}:label:${index}`;
23
+ const getRootId = (ctx) => ctx.ids?.root ?? `date-picker:${ctx.id}`;
24
+ const getTableId = (ctx, id) => ctx.ids?.table?.(id) ?? `date-picker:${ctx.id}:table:${id}`;
25
+ const getContentId = (ctx) => ctx.ids?.content ?? `date-picker:${ctx.id}:content`;
26
+ const getCellTriggerId = (ctx, id) => ctx.ids?.cellTrigger?.(id) ?? `date-picker:${ctx.id}:cell-trigger:${id}`;
27
+ const getPrevTriggerId = (ctx, view) => ctx.ids?.prevTrigger?.(view) ?? `date-picker:${ctx.id}:prev:${view}`;
28
+ const getNextTriggerId = (ctx, view) => ctx.ids?.nextTrigger?.(view) ?? `date-picker:${ctx.id}:next:${view}`;
29
+ const getViewTriggerId = (ctx, view) => ctx.ids?.viewTrigger?.(view) ?? `date-picker:${ctx.id}:view:${view}`;
30
+ const getClearTriggerId = (ctx) => ctx.ids?.clearTrigger ?? `date-picker:${ctx.id}:clear`;
31
+ const getControlId = (ctx) => ctx.ids?.control ?? `date-picker:${ctx.id}:control`;
32
+ const getInputId = (ctx, index) => ctx.ids?.input?.(index) ?? `date-picker:${ctx.id}:input:${index}`;
33
+ const getTriggerId = (ctx) => ctx.ids?.trigger ?? `date-picker:${ctx.id}:trigger`;
34
+ const getPositionerId = (ctx) => ctx.ids?.positioner ?? `date-picker:${ctx.id}:positioner`;
35
+ const getMonthSelectId = (ctx) => ctx.ids?.monthSelect ?? `date-picker:${ctx.id}:month-select`;
36
+ const getYearSelectId = (ctx) => ctx.ids?.yearSelect ?? `date-picker:${ctx.id}:year-select`;
37
+ const getFocusedCell = (ctx, view) => require_dom_query.query(getContentEl(ctx), `[data-part=table-cell-trigger][data-view=${view}][data-focus]:not([data-outside-range])`);
38
+ const getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));
39
+ const getContentEl = (ctx) => ctx.getById(getContentId(ctx));
40
+ const getInputEls = (ctx) => require_dom_query.queryAll(getControlEl(ctx), `[data-part=input]`);
41
+ const getYearSelectEl = (ctx) => ctx.getById(getYearSelectId(ctx));
42
+ const getMonthSelectEl = (ctx) => ctx.getById(getMonthSelectId(ctx));
43
+ const getClearTriggerEl = (ctx) => ctx.getById(getClearTriggerId(ctx));
44
+ const getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));
45
+ const getControlEl = (ctx) => ctx.getById(getControlId(ctx));
46
+ //#endregion
47
+ //#region src/machines/date-picker/utils.ts
48
+ function adjustStartAndEndDate(value) {
49
+ const [startDate, endDate] = value;
50
+ let result;
51
+ if (!startDate || !endDate) result = value;
52
+ else result = startDate.compare(endDate) <= 0 ? value : [endDate, startDate];
53
+ return result;
54
+ }
55
+ function isDateWithinRange(date, value) {
56
+ const [startDate, endDate] = value;
57
+ if (!startDate || !endDate) return false;
58
+ return startDate.compare(date) <= 0 && endDate.compare(date) >= 0;
59
+ }
60
+ function sortDates(values) {
61
+ return values.slice().filter((date) => date != null).sort((a, b) => a.compare(b));
62
+ }
63
+ function getRoleDescription(view) {
64
+ return require_utils.match(view, {
65
+ year: "calendar decade",
66
+ month: "calendar year",
67
+ day: "calendar month"
68
+ });
69
+ }
70
+ const PLACEHOLDERS = {
71
+ day: "dd",
72
+ month: "mm",
73
+ year: "yyyy"
74
+ };
75
+ function getInputPlaceholder(locale) {
76
+ return new _internationalized_date.DateFormatter(locale).formatToParts(/* @__PURE__ */ new Date()).map((item) => PLACEHOLDERS[item.type] ?? item.value).join("");
77
+ }
78
+ const isValidDate = (value) => {
79
+ return !Number.isNaN(value.day) && !Number.isNaN(value.month) && !Number.isNaN(value.year);
80
+ };
81
+ const defaultTranslations = {
82
+ dayCell(state) {
83
+ if (state.unavailable) return `Not available. ${state.valueText}`;
84
+ if (state.firstInRange) return `Starting range from ${state.valueText}`;
85
+ if (state.lastInRange) return `Range ending at ${state.valueText}`;
86
+ if (state.selected) return `Selected date. ${state.valueText}`;
87
+ return `Choose ${state.valueText}`;
88
+ },
89
+ trigger(open) {
90
+ return open ? "Close calendar" : "Open calendar";
91
+ },
92
+ viewTrigger(view) {
93
+ return require_utils.match(view, {
94
+ year: "Switch to month view",
95
+ month: "Switch to day view",
96
+ day: "Switch to year view"
97
+ });
98
+ },
99
+ presetTrigger(value) {
100
+ const [start = "", end = ""] = value;
101
+ return `select ${start} to ${end}`;
102
+ },
103
+ prevTrigger(view) {
104
+ return require_utils.match(view, {
105
+ year: "Switch to previous decade",
106
+ month: "Switch to previous year",
107
+ day: "Switch to previous month"
108
+ });
109
+ },
110
+ nextTrigger(view) {
111
+ return require_utils.match(view, {
112
+ year: "Switch to next decade",
113
+ month: "Switch to next year",
114
+ day: "Switch to next month"
115
+ });
116
+ },
117
+ placeholder() {
118
+ return {
119
+ day: "dd",
120
+ month: "mm",
121
+ year: "yyyy"
122
+ };
123
+ },
124
+ content: "calendar",
125
+ monthSelect: "Select month",
126
+ yearSelect: "Select year",
127
+ clearTrigger: "Clear selected dates",
128
+ weekColumnHeader: "Wk",
129
+ weekNumberCell(weekNumber) {
130
+ return `Week ${weekNumber}`;
131
+ }
132
+ };
133
+ function viewToNumber(view, fallback) {
134
+ if (!view) return fallback || 0;
135
+ return view === "day" ? 0 : view === "month" ? 1 : 2;
136
+ }
137
+ function viewNumberToView(viewNumber) {
138
+ return viewNumber === 0 ? "day" : viewNumber === 1 ? "month" : "year";
139
+ }
140
+ function clampView(view, minView, maxView) {
141
+ return viewNumberToView(require_utils.clampValue(viewToNumber(view, 0), viewToNumber(minView, 0), viewToNumber(maxView, 2)));
142
+ }
143
+ function isAboveMinView(view, minView) {
144
+ return viewToNumber(view, 0) > viewToNumber(minView, 0);
145
+ }
146
+ function isBelowMinView(view, minView) {
147
+ return viewToNumber(view, 0) < viewToNumber(minView, 0);
148
+ }
149
+ function getNextView(view, minView, maxView) {
150
+ return clampView(viewNumberToView(viewToNumber(view, 0) + 1), minView, maxView);
151
+ }
152
+ function getPreviousView(view, minView, maxView) {
153
+ return clampView(viewNumberToView(viewToNumber(view, 0) - 1), minView, maxView);
154
+ }
155
+ const views = [
156
+ "day",
157
+ "month",
158
+ "year"
159
+ ];
160
+ function eachView(cb) {
161
+ views.forEach((view) => cb(view));
162
+ }
163
+ const getVisibleRangeText = require_core.memo((opts) => [
164
+ opts.view,
165
+ opts.startValue.toString(),
166
+ opts.endValue.toString(),
167
+ opts.locale,
168
+ opts.timeZone,
169
+ opts.selectionMode
170
+ ], ([view], opts) => {
171
+ const { startValue, endValue, locale, timeZone, selectionMode } = opts;
172
+ if (view === "year") {
173
+ const years = require_date_utils.getDecadeRange(startValue.year, { strict: true });
174
+ const start = years.at(0).toString();
175
+ const end = years.at(-1).toString();
176
+ return {
177
+ start,
178
+ end,
179
+ formatted: `${start} - ${end}`
180
+ };
181
+ }
182
+ if (view === "month") {
183
+ const formatter = new _internationalized_date.DateFormatter(locale, {
184
+ year: "numeric",
185
+ timeZone,
186
+ calendar: startValue.calendar.identifier
187
+ });
188
+ const start = formatter.format(startValue.toDate(timeZone));
189
+ const end = formatter.format(endValue.toDate(timeZone));
190
+ return {
191
+ start,
192
+ end,
193
+ formatted: selectionMode === "range" ? `${start} - ${end}` : start
194
+ };
195
+ }
196
+ const formatter = new _internationalized_date.DateFormatter(locale, {
197
+ month: "long",
198
+ year: "numeric",
199
+ timeZone,
200
+ calendar: startValue.calendar.identifier
201
+ });
202
+ const start = formatter.format(startValue.toDate(timeZone));
203
+ const end = formatter.format(endValue.toDate(timeZone));
204
+ return {
205
+ start,
206
+ end,
207
+ formatted: selectionMode === "range" ? `${start} - ${end}` : start
208
+ };
209
+ });
210
+ //#endregion
211
+ //#region src/machines/date-picker/connect.ts
212
+ function connect(service, normalize) {
213
+ const { state, context, prop, send, computed, scope } = service;
214
+ const startValue = context.get("startValue");
215
+ const endValue = computed("endValue");
216
+ const selectedValue = context.get("value");
217
+ const focusedValue = context.get("focusedValue");
218
+ const hoveredValue = context.get("hoveredValue");
219
+ const hoveredRangeValue = hoveredValue ? adjustStartAndEndDate([selectedValue[0], hoveredValue]) : [];
220
+ const disabled = Boolean(prop("disabled"));
221
+ const readOnly = Boolean(prop("readOnly"));
222
+ const invalid = Boolean(prop("invalid"));
223
+ const interactive = computed("isInteractive");
224
+ const empty = selectedValue.length === 0;
225
+ const min = prop("min");
226
+ const max = prop("max");
227
+ const locale = prop("locale");
228
+ const timeZone = prop("timeZone");
229
+ const startOfWeek = prop("startOfWeek");
230
+ const focused = state.matches("focused");
231
+ const open = state.matches("open");
232
+ const isRangePicker = prop("selectionMode") === "range";
233
+ const isMultiPicker = prop("selectionMode") === "multiple";
234
+ const isDateUnavailableFn = prop("isDateUnavailable");
235
+ const maxSelectedDates = prop("maxSelectedDates");
236
+ const isMaxSelected = isMultiPicker && maxSelectedDates != null && selectedValue.length >= maxSelectedDates;
237
+ const currentPlacement = context.get("currentPlacement");
238
+ const currentPlacementSide = currentPlacement ? require_popper.getPlacementSide(currentPlacement) : void 0;
239
+ const popperStyles = require_popper.getPlacementStyles({
240
+ ...prop("positioning"),
241
+ placement: currentPlacement
242
+ });
243
+ const separator = require_date_utils.getLocaleSeparator(locale);
244
+ const translations = {
245
+ ...defaultTranslations,
246
+ ...prop("translations")
247
+ };
248
+ function getMonthWeeks(from = startValue) {
249
+ const numOfWeeks = prop("fixedWeeks") ? 6 : void 0;
250
+ return require_date_utils.getMonthDays(from, locale, numOfWeeks, startOfWeek);
251
+ }
252
+ function getMonths(props = {}) {
253
+ const { format } = props;
254
+ return require_date_utils.getMonthNames(locale, format, focusedValue).map((label, index) => {
255
+ const value = index + 1;
256
+ return {
257
+ label,
258
+ value,
259
+ disabled: require_date_utils.isDateOutsideRange(focusedValue.set({ month: value }), min, max)
260
+ };
261
+ });
262
+ }
263
+ function getYears() {
264
+ return require_date_utils.getYearsRange(require_date_utils.getDefaultYearRange(focusedValue, min, max)).map((year) => ({
265
+ label: year.toString(),
266
+ value: year,
267
+ disabled: !require_utils.isValueWithinRange(year, min?.year, max?.year)
268
+ }));
269
+ }
270
+ function isUnavailable(date) {
271
+ return require_date_utils.isDateUnavailable(date, isDateUnavailableFn, locale, min, max);
272
+ }
273
+ function focusMonth(month) {
274
+ const date = startValue ?? require_date_utils.getTodayDate(timeZone, focusedValue.calendar);
275
+ send({
276
+ type: "FOCUS.SET",
277
+ value: date.set({ month })
278
+ });
279
+ }
280
+ function focusYear(year) {
281
+ const date = startValue ?? require_date_utils.getTodayDate(timeZone, focusedValue.calendar);
282
+ send({
283
+ type: "FOCUS.SET",
284
+ value: date.set({ year })
285
+ });
286
+ }
287
+ function getYearTableCellState(props) {
288
+ const { value, disabled } = props;
289
+ const dateValue = focusedValue.set({ year: value });
290
+ const isOutsideVisibleRange = !require_date_utils.getDecadeRange(startValue.year, { strict: true }).includes(value);
291
+ const isWithinMinMax = require_utils.isValueWithinRange(value, min?.year, max?.year);
292
+ const isInSelectedRange = isRangePicker && isDateWithinRange(dateValue, selectedValue);
293
+ const isFirstInSelectedRange = isRangePicker && selectedValue[0] && (0, _internationalized_date.isEqualYear)(dateValue, selectedValue[0]);
294
+ const isLastInSelectedRange = isRangePicker && selectedValue[1] && (0, _internationalized_date.isEqualYear)(dateValue, selectedValue[1]);
295
+ const hasHoveredRange = isRangePicker && hoveredRangeValue.length > 0;
296
+ const isInHoveredRange = hasHoveredRange && isDateWithinRange(dateValue, hoveredRangeValue);
297
+ const isFirstInHoveredRange = hasHoveredRange && hoveredRangeValue[0] && (0, _internationalized_date.isEqualYear)(dateValue, hoveredRangeValue[0]);
298
+ const isLastInHoveredRange = hasHoveredRange && hoveredRangeValue[1] && (0, _internationalized_date.isEqualYear)(dateValue, hoveredRangeValue[1]);
299
+ const cellState = {
300
+ focused: focusedValue.year === props.value,
301
+ selectable: !isOutsideVisibleRange && isWithinMinMax,
302
+ outsideRange: isOutsideVisibleRange,
303
+ selected: !!selectedValue.find((date) => date && date.year === value),
304
+ valueText: value.toString(),
305
+ inRange: isInSelectedRange || isInHoveredRange,
306
+ firstInRange: !!isFirstInSelectedRange,
307
+ lastInRange: !!isLastInSelectedRange,
308
+ inHoveredRange: !!isInHoveredRange,
309
+ firstInHoveredRange: !!isFirstInHoveredRange,
310
+ lastInHoveredRange: !!isLastInHoveredRange,
311
+ value: dateValue,
312
+ get disabled() {
313
+ return disabled || !cellState.selectable;
314
+ }
315
+ };
316
+ return cellState;
317
+ }
318
+ function getMonthTableCellState(props) {
319
+ const { value, disabled } = props;
320
+ const dateValue = focusedValue.set({ month: value });
321
+ const formatter = require_date_utils.getMonthFormatter(locale, timeZone, focusedValue);
322
+ const isInSelectedRange = isRangePicker && isDateWithinRange(dateValue, selectedValue);
323
+ const isFirstInSelectedRange = isRangePicker && selectedValue[0] && (0, _internationalized_date.isEqualMonth)(dateValue, selectedValue[0]);
324
+ const isLastInSelectedRange = isRangePicker && selectedValue[1] && (0, _internationalized_date.isEqualMonth)(dateValue, selectedValue[1]);
325
+ const hasHoveredRange = isRangePicker && hoveredRangeValue.length > 0;
326
+ const isInHoveredRange = hasHoveredRange && isDateWithinRange(dateValue, hoveredRangeValue);
327
+ const isFirstInHoveredRange = hasHoveredRange && hoveredRangeValue[0] && (0, _internationalized_date.isEqualMonth)(dateValue, hoveredRangeValue[0]);
328
+ const isLastInHoveredRange = hasHoveredRange && hoveredRangeValue[1] && (0, _internationalized_date.isEqualMonth)(dateValue, hoveredRangeValue[1]);
329
+ const cellState = {
330
+ focused: focusedValue.month === props.value,
331
+ selectable: !require_date_utils.isDateOutsideRange(dateValue, min, max),
332
+ selected: !!selectedValue.find((date) => date && date.month === value && date.year === focusedValue.year),
333
+ valueText: formatter.format(dateValue.toDate(timeZone)),
334
+ inRange: isInSelectedRange || isInHoveredRange,
335
+ firstInRange: !!isFirstInSelectedRange,
336
+ lastInRange: !!isLastInSelectedRange,
337
+ inHoveredRange: !!isInHoveredRange,
338
+ firstInHoveredRange: !!isFirstInHoveredRange,
339
+ lastInHoveredRange: !!isLastInHoveredRange,
340
+ outsideRange: false,
341
+ value: dateValue,
342
+ get disabled() {
343
+ return disabled || !cellState.selectable;
344
+ }
345
+ };
346
+ return cellState;
347
+ }
348
+ function getDayTableCellState(props) {
349
+ const { value, disabled, visibleRange = computed("visibleRange") } = props;
350
+ const formatter = require_date_utils.getDayFormatter(locale, timeZone, focusedValue);
351
+ const unitDuration = require_date_utils.getUnitDuration(computed("visibleDuration"));
352
+ const outsideDaySelectable = prop("outsideDaySelectable");
353
+ const end = visibleRange.start.add(unitDuration).subtract({ days: 1 });
354
+ const isOutsideRange = require_date_utils.isDateOutsideRange(value, visibleRange.start, end);
355
+ const isInSelectedRange = isRangePicker && isDateWithinRange(value, selectedValue);
356
+ const isFirstInSelectedRange = isRangePicker && selectedValue[0] && (0, _internationalized_date.isSameDay)(value, selectedValue[0]);
357
+ const isLastInSelectedRange = isRangePicker && selectedValue[1] && (0, _internationalized_date.isSameDay)(value, selectedValue[1]);
358
+ const hasHoveredRange = isRangePicker && hoveredRangeValue.length > 0;
359
+ const isInHoveredRange = hasHoveredRange && isDateWithinRange(value, hoveredRangeValue);
360
+ const isFirstInHoveredRange = hasHoveredRange && hoveredRangeValue[0] && (0, _internationalized_date.isSameDay)(value, hoveredRangeValue[0]);
361
+ const isLastInHoveredRange = hasHoveredRange && hoveredRangeValue[1] && (0, _internationalized_date.isSameDay)(value, hoveredRangeValue[1]);
362
+ const isSelected = selectedValue.some((date) => date != null && (0, _internationalized_date.isSameDay)(value, date));
363
+ const cellState = {
364
+ invalid: require_date_utils.isDateOutsideRange(value, min, max),
365
+ disabled: disabled || !outsideDaySelectable && isOutsideRange || require_date_utils.isDateOutsideRange(value, min, max) || isMaxSelected && !isSelected,
366
+ selected: isSelected,
367
+ unavailable: require_date_utils.isDateUnavailable(value, isDateUnavailableFn, locale, min, max) && !disabled,
368
+ outsideRange: isOutsideRange,
369
+ today: (0, _internationalized_date.isToday)(value, timeZone),
370
+ weekend: (0, _internationalized_date.isWeekend)(value, locale),
371
+ value,
372
+ valueText: formatter.format(value.toDate(timeZone)),
373
+ get focused() {
374
+ return focusedValue != null && (0, _internationalized_date.isSameDay)(value, focusedValue) && (!cellState.outsideRange || outsideDaySelectable);
375
+ },
376
+ get selectable() {
377
+ return !cellState.disabled && !cellState.unavailable;
378
+ },
379
+ inRange: isInSelectedRange || isInHoveredRange,
380
+ firstInRange: isFirstInSelectedRange,
381
+ lastInRange: isLastInSelectedRange,
382
+ inHoveredRange: isInHoveredRange,
383
+ firstInHoveredRange: isFirstInHoveredRange,
384
+ lastInHoveredRange: isLastInHoveredRange
385
+ };
386
+ return cellState;
387
+ }
388
+ function getTableId$1(props) {
389
+ const { view = "day", id } = props;
390
+ return [view, id].filter(Boolean).join(" ");
391
+ }
392
+ return {
393
+ focused,
394
+ open,
395
+ disabled,
396
+ invalid,
397
+ readOnly,
398
+ inline: !!prop("inline"),
399
+ numOfMonths: prop("numOfMonths"),
400
+ showWeekNumbers: !!prop("showWeekNumbers"),
401
+ selectionMode: prop("selectionMode"),
402
+ maxSelectedDates,
403
+ isMaxSelected,
404
+ view: context.get("view"),
405
+ getRangePresetValue(preset) {
406
+ return require_date_utils.getDateRangePreset(preset, locale, timeZone);
407
+ },
408
+ getWeekNumber(week) {
409
+ const firstDay = week[0];
410
+ return firstDay ? require_date_utils.getWeekOfYear(firstDay, locale) : 0;
411
+ },
412
+ getDaysInWeek(week, from = startValue) {
413
+ return require_date_utils.getDaysInWeek(week, from, locale, startOfWeek);
414
+ },
415
+ getOffset(duration) {
416
+ const from = startValue.add(duration);
417
+ const end = endValue.add(duration);
418
+ const formatter = require_date_utils.getMonthFormatter(locale, timeZone, focusedValue);
419
+ return {
420
+ visibleRange: {
421
+ start: from,
422
+ end
423
+ },
424
+ weeks: getMonthWeeks(from),
425
+ visibleRangeText: {
426
+ start: formatter.format(from.toDate(timeZone)),
427
+ end: formatter.format(end.toDate(timeZone))
428
+ }
429
+ };
430
+ },
431
+ getMonthWeeks,
432
+ isUnavailable,
433
+ weeks: getMonthWeeks(),
434
+ weekDays: require_date_utils.getWeekDays(startValue, startOfWeek, timeZone, locale),
435
+ visibleRangeText: computed("visibleRangeText"),
436
+ value: selectedValue,
437
+ valueAsDate: selectedValue.filter((date) => date != null).map((date) => date.toDate(timeZone)),
438
+ valueAsString: computed("valueAsString"),
439
+ focusedValue,
440
+ focusedValueAsDate: focusedValue?.toDate(timeZone),
441
+ focusedValueAsString: prop("format")(focusedValue, {
442
+ locale,
443
+ timeZone
444
+ }),
445
+ visibleRange: computed("visibleRange"),
446
+ selectToday() {
447
+ const value = require_date_utils.constrainValue(require_date_utils.getTodayDate(timeZone, focusedValue.calendar), min, max);
448
+ send({
449
+ type: "VALUE.SET",
450
+ value: [value]
451
+ });
452
+ },
453
+ setValue(values) {
454
+ const computedValue = values.map((date) => require_date_utils.constrainValue(date, min, max));
455
+ send({
456
+ type: "VALUE.SET",
457
+ value: computedValue
458
+ });
459
+ },
460
+ setTime(time, index = 0) {
461
+ const values = Array.from(selectedValue);
462
+ let dateValue = values[index];
463
+ if (!dateValue) return;
464
+ if (!("hour" in dateValue)) dateValue = (0, _internationalized_date.toCalendarDateTime)(dateValue);
465
+ dateValue = dateValue.set({
466
+ hour: time.hour ?? ("hour" in dateValue ? dateValue.hour : 0),
467
+ minute: time.minute ?? ("minute" in dateValue ? dateValue.minute : 0),
468
+ second: time.second ?? ("second" in dateValue ? dateValue.second : 0),
469
+ millisecond: time.millisecond ?? ("millisecond" in dateValue ? dateValue.millisecond : 0)
470
+ });
471
+ values[index] = require_date_utils.constrainValue(dateValue, min, max);
472
+ send({
473
+ type: "VALUE.SET",
474
+ value: values
475
+ });
476
+ },
477
+ clearValue(options = {}) {
478
+ const { focus = true } = options;
479
+ send({
480
+ type: "VALUE.CLEAR",
481
+ focus
482
+ });
483
+ },
484
+ setFocusedValue(value) {
485
+ send({
486
+ type: "FOCUS.SET",
487
+ value
488
+ });
489
+ },
490
+ setOpen(nextOpen) {
491
+ if (prop("inline")) return;
492
+ if (state.matches("open") === nextOpen) return;
493
+ send({ type: nextOpen ? "OPEN" : "CLOSE" });
494
+ },
495
+ focusMonth,
496
+ focusYear,
497
+ getYears,
498
+ getMonths,
499
+ getYearsGrid(props = {}) {
500
+ const { columns = 1 } = props;
501
+ return require_array.chunk(require_date_utils.getDecadeRange(startValue.year, { strict: true }).map((year) => ({
502
+ label: year.toString(),
503
+ value: year,
504
+ disabled: !require_utils.isValueWithinRange(year, min?.year, max?.year)
505
+ })), columns);
506
+ },
507
+ getDecade() {
508
+ const years = require_date_utils.getDecadeRange(startValue.year, { strict: true });
509
+ return {
510
+ start: years.at(0),
511
+ end: years.at(-1)
512
+ };
513
+ },
514
+ getMonthsGrid(props = {}) {
515
+ const { columns = 1, format } = props;
516
+ return require_array.chunk(getMonths({ format }), columns);
517
+ },
518
+ format(value, opts = {
519
+ month: "long",
520
+ year: "numeric"
521
+ }) {
522
+ return new _internationalized_date.DateFormatter(locale, {
523
+ ...opts,
524
+ calendar: value.calendar.identifier
525
+ }).format(value.toDate(timeZone));
526
+ },
527
+ setView(view) {
528
+ send({
529
+ type: "VIEW.SET",
530
+ view
531
+ });
532
+ },
533
+ goToNext() {
534
+ send({
535
+ type: "GOTO.NEXT",
536
+ view: context.get("view")
537
+ });
538
+ },
539
+ goToPrev() {
540
+ send({
541
+ type: "GOTO.PREV",
542
+ view: context.get("view")
543
+ });
544
+ },
545
+ getRootProps() {
546
+ return normalize.element({
547
+ ...parts.root.attrs,
548
+ dir: prop("dir"),
549
+ id: getRootId(scope),
550
+ "data-state": open ? "open" : "closed",
551
+ "data-disabled": require_dom_query.dataAttr(disabled),
552
+ "data-readonly": require_dom_query.dataAttr(readOnly),
553
+ "data-empty": require_dom_query.dataAttr(empty)
554
+ });
555
+ },
556
+ getLabelProps(props = {}) {
557
+ const { index = 0 } = props;
558
+ return normalize.label({
559
+ ...parts.label.attrs,
560
+ id: getLabelId(scope, index),
561
+ dir: prop("dir"),
562
+ htmlFor: getInputId(scope, index),
563
+ "data-state": open ? "open" : "closed",
564
+ "data-index": index,
565
+ "data-disabled": require_dom_query.dataAttr(disabled),
566
+ "data-readonly": require_dom_query.dataAttr(readOnly)
567
+ });
568
+ },
569
+ getControlProps() {
570
+ return normalize.element({
571
+ ...parts.control.attrs,
572
+ dir: prop("dir"),
573
+ id: getControlId(scope),
574
+ "data-disabled": require_dom_query.dataAttr(disabled),
575
+ "data-placeholder-shown": require_dom_query.dataAttr(empty)
576
+ });
577
+ },
578
+ getRangeTextProps() {
579
+ return normalize.element({
580
+ ...parts.rangeText.attrs,
581
+ dir: prop("dir")
582
+ });
583
+ },
584
+ getContentProps() {
585
+ return normalize.element({
586
+ ...parts.content.attrs,
587
+ hidden: !open,
588
+ dir: prop("dir"),
589
+ "data-state": open ? "open" : "closed",
590
+ "data-placement": currentPlacement,
591
+ "data-side": currentPlacementSide,
592
+ "data-inline": require_dom_query.dataAttr(prop("inline")),
593
+ id: getContentId(scope),
594
+ tabIndex: -1,
595
+ role: "application",
596
+ "aria-roledescription": "datepicker",
597
+ "aria-label": translations.content
598
+ });
599
+ },
600
+ getTableProps(props = {}) {
601
+ const { view = "day", columns = view === "day" ? 7 : 4 } = props;
602
+ const uid = getTableId$1(props);
603
+ return normalize.element({
604
+ ...parts.table.attrs,
605
+ role: "grid",
606
+ "data-columns": columns,
607
+ "aria-roledescription": getRoleDescription(view),
608
+ id: getTableId(scope, uid),
609
+ "aria-readonly": require_dom_query.ariaAttr(readOnly),
610
+ "aria-disabled": require_dom_query.ariaAttr(disabled),
611
+ "aria-multiselectable": require_dom_query.ariaAttr(prop("selectionMode") !== "single"),
612
+ "data-view": view,
613
+ dir: prop("dir"),
614
+ tabIndex: -1,
615
+ onKeyDown(event) {
616
+ if (event.defaultPrevented) return;
617
+ if (disabled) return;
618
+ const exec = {
619
+ Enter() {
620
+ if (!interactive) return;
621
+ if (view === "day" && isUnavailable(focusedValue)) return;
622
+ if (view === "month") {
623
+ if (!getMonthTableCellState({ value: focusedValue.month }).selectable) return;
624
+ }
625
+ if (view === "year") {
626
+ if (!getYearTableCellState({ value: focusedValue.year }).selectable) return;
627
+ }
628
+ send({
629
+ type: "TABLE.ENTER",
630
+ view,
631
+ columns,
632
+ focus: true
633
+ });
634
+ },
635
+ ArrowLeft() {
636
+ send({
637
+ type: "TABLE.ARROW_LEFT",
638
+ view,
639
+ columns,
640
+ focus: true
641
+ });
642
+ },
643
+ ArrowRight() {
644
+ send({
645
+ type: "TABLE.ARROW_RIGHT",
646
+ view,
647
+ columns,
648
+ focus: true
649
+ });
650
+ },
651
+ ArrowUp() {
652
+ send({
653
+ type: "TABLE.ARROW_UP",
654
+ view,
655
+ columns,
656
+ focus: true
657
+ });
658
+ },
659
+ ArrowDown() {
660
+ send({
661
+ type: "TABLE.ARROW_DOWN",
662
+ view,
663
+ columns,
664
+ focus: true
665
+ });
666
+ },
667
+ PageUp(event) {
668
+ send({
669
+ type: "TABLE.PAGE_UP",
670
+ larger: event.shiftKey,
671
+ view,
672
+ columns,
673
+ focus: true
674
+ });
675
+ },
676
+ PageDown(event) {
677
+ send({
678
+ type: "TABLE.PAGE_DOWN",
679
+ larger: event.shiftKey,
680
+ view,
681
+ columns,
682
+ focus: true
683
+ });
684
+ },
685
+ Home() {
686
+ send({
687
+ type: "TABLE.HOME",
688
+ view,
689
+ columns,
690
+ focus: true
691
+ });
692
+ },
693
+ End() {
694
+ send({
695
+ type: "TABLE.END",
696
+ view,
697
+ columns,
698
+ focus: true
699
+ });
700
+ }
701
+ }[require_event.getEventKey(event, { dir: prop("dir") })];
702
+ if (exec) {
703
+ exec(event);
704
+ event.preventDefault();
705
+ event.stopPropagation();
706
+ }
707
+ },
708
+ onPointerLeave() {
709
+ send({ type: "TABLE.POINTER_LEAVE" });
710
+ },
711
+ onPointerDown() {
712
+ send({
713
+ type: "TABLE.POINTER_DOWN",
714
+ view
715
+ });
716
+ },
717
+ onPointerUp() {
718
+ send({
719
+ type: "TABLE.POINTER_UP",
720
+ view
721
+ });
722
+ }
723
+ });
724
+ },
725
+ getTableHeadProps(props = {}) {
726
+ const { view = "day" } = props;
727
+ return normalize.element({
728
+ ...parts.tableHead.attrs,
729
+ "aria-hidden": true,
730
+ dir: prop("dir"),
731
+ "data-view": view,
732
+ "data-disabled": require_dom_query.dataAttr(disabled)
733
+ });
734
+ },
735
+ getTableHeaderProps(props = {}) {
736
+ const { view = "day" } = props;
737
+ return normalize.element({
738
+ ...parts.tableHeader.attrs,
739
+ dir: prop("dir"),
740
+ "data-view": view,
741
+ "data-disabled": require_dom_query.dataAttr(disabled)
742
+ });
743
+ },
744
+ getTableBodyProps(props = {}) {
745
+ const { view = "day" } = props;
746
+ return normalize.element({
747
+ ...parts.tableBody.attrs,
748
+ "data-view": view,
749
+ "data-disabled": require_dom_query.dataAttr(disabled)
750
+ });
751
+ },
752
+ getTableRowProps(props = {}) {
753
+ const { view = "day" } = props;
754
+ return normalize.element({
755
+ ...parts.tableRow.attrs,
756
+ "aria-disabled": require_dom_query.ariaAttr(disabled),
757
+ "data-disabled": require_dom_query.dataAttr(disabled),
758
+ "data-view": view
759
+ });
760
+ },
761
+ getWeekNumberHeaderCellProps(props = {}) {
762
+ const { view = "day" } = props;
763
+ return normalize.element({
764
+ ...parts.tableCell.attrs,
765
+ scope: "col",
766
+ "aria-label": translations.weekColumnHeader,
767
+ "data-view": view,
768
+ "data-type": "week-number",
769
+ "data-disabled": require_dom_query.dataAttr(disabled)
770
+ });
771
+ },
772
+ getWeekNumberCellProps(props) {
773
+ const { weekIndex, week } = props;
774
+ const weekNumber = week[0] ? require_date_utils.getWeekOfYear(week[0], locale) : 0;
775
+ return normalize.element({
776
+ ...parts.tableCell.attrs,
777
+ role: "rowheader",
778
+ "aria-label": translations.weekNumberCell?.(weekNumber),
779
+ "data-view": "day",
780
+ "data-week-index": weekIndex,
781
+ "data-type": "week-number",
782
+ "data-disabled": require_dom_query.dataAttr(disabled)
783
+ });
784
+ },
785
+ getDayTableCellState,
786
+ getDayTableCellProps(props) {
787
+ const { value } = props;
788
+ const cellState = getDayTableCellState(props);
789
+ return normalize.element({
790
+ ...parts.tableCell.attrs,
791
+ role: "gridcell",
792
+ "aria-disabled": require_dom_query.ariaAttr(!cellState.selectable),
793
+ "aria-selected": cellState.selected || cellState.inRange,
794
+ "aria-invalid": require_dom_query.ariaAttr(cellState.invalid),
795
+ "aria-current": cellState.today ? "date" : void 0,
796
+ "data-value": value.toString()
797
+ });
798
+ },
799
+ getDayTableCellTriggerProps(props) {
800
+ const { value } = props;
801
+ const cellState = getDayTableCellState(props);
802
+ return normalize.element({
803
+ ...parts.tableCellTrigger.attrs,
804
+ id: getCellTriggerId(scope, value.toString()),
805
+ role: "button",
806
+ dir: prop("dir"),
807
+ tabIndex: disabled ? -1 : cellState.focused ? 0 : -1,
808
+ "aria-label": translations.dayCell(cellState),
809
+ "aria-disabled": require_dom_query.ariaAttr(!cellState.selectable),
810
+ "aria-invalid": require_dom_query.ariaAttr(cellState.invalid),
811
+ "data-disabled": require_dom_query.dataAttr(!cellState.selectable),
812
+ "data-selectable": require_dom_query.dataAttr(cellState.selectable),
813
+ "data-selected": require_dom_query.dataAttr(cellState.selected),
814
+ "data-value": value.toString(),
815
+ "data-view": "day",
816
+ "data-today": require_dom_query.dataAttr(cellState.today),
817
+ "data-focus": require_dom_query.dataAttr(cellState.focused),
818
+ "data-unavailable": require_dom_query.dataAttr(cellState.unavailable),
819
+ "data-range-start": require_dom_query.dataAttr(cellState.firstInRange),
820
+ "data-range-end": require_dom_query.dataAttr(cellState.lastInRange),
821
+ "data-in-range": require_dom_query.dataAttr(cellState.inRange),
822
+ "data-outside-range": require_dom_query.dataAttr(cellState.outsideRange),
823
+ "data-weekend": require_dom_query.dataAttr(cellState.weekend),
824
+ "data-in-hover-range": require_dom_query.dataAttr(cellState.inHoveredRange),
825
+ "data-hover-range-start": require_dom_query.dataAttr(cellState.firstInHoveredRange),
826
+ "data-hover-range-end": require_dom_query.dataAttr(cellState.lastInHoveredRange),
827
+ onClick(event) {
828
+ if (event.defaultPrevented) return;
829
+ if (!interactive) return;
830
+ if (!cellState.selectable) return;
831
+ send({
832
+ type: "CELL.CLICK",
833
+ cell: "day",
834
+ value
835
+ });
836
+ },
837
+ onPointerMove: isRangePicker ? (event) => {
838
+ if (event.pointerType === "touch") return;
839
+ if (!cellState.selectable) return;
840
+ const focus = !scope.isActiveElement(event.currentTarget);
841
+ if (hoveredValue && (0, _internationalized_date.isEqualDay)(value, hoveredValue)) return;
842
+ send({
843
+ type: "CELL.POINTER_MOVE",
844
+ cell: "day",
845
+ value,
846
+ focus,
847
+ outsideRange: cellState.outsideRange
848
+ });
849
+ } : void 0
850
+ });
851
+ },
852
+ getMonthTableCellState,
853
+ getMonthTableCellProps(props) {
854
+ const { value, columns } = props;
855
+ const cellState = getMonthTableCellState(props);
856
+ return normalize.element({
857
+ ...parts.tableCell.attrs,
858
+ dir: prop("dir"),
859
+ colSpan: columns,
860
+ role: "gridcell",
861
+ "aria-selected": require_dom_query.ariaAttr(cellState.selected || cellState.inRange),
862
+ "data-selected": require_dom_query.dataAttr(cellState.selected),
863
+ "aria-disabled": require_dom_query.ariaAttr(!cellState.selectable),
864
+ "data-value": value
865
+ });
866
+ },
867
+ getMonthTableCellTriggerProps(props) {
868
+ const { value } = props;
869
+ const cellState = getMonthTableCellState(props);
870
+ return normalize.element({
871
+ ...parts.tableCellTrigger.attrs,
872
+ id: getCellTriggerId(scope, value.toString()),
873
+ role: "button",
874
+ dir: prop("dir"),
875
+ tabIndex: disabled ? -1 : cellState.focused ? 0 : -1,
876
+ "aria-label": cellState.valueText,
877
+ "aria-disabled": require_dom_query.ariaAttr(!cellState.selectable),
878
+ "data-disabled": require_dom_query.dataAttr(!cellState.selectable),
879
+ "data-selectable": require_dom_query.dataAttr(cellState.selectable),
880
+ "data-selected": require_dom_query.dataAttr(cellState.selected),
881
+ "data-value": value,
882
+ "data-view": "month",
883
+ "data-focus": require_dom_query.dataAttr(cellState.focused),
884
+ "data-outside-range": require_dom_query.dataAttr(cellState.outsideRange),
885
+ "data-range-start": require_dom_query.dataAttr(cellState.firstInRange),
886
+ "data-range-end": require_dom_query.dataAttr(cellState.lastInRange),
887
+ "data-in-range": require_dom_query.dataAttr(cellState.inRange),
888
+ "data-in-hover-range": require_dom_query.dataAttr(cellState.inHoveredRange),
889
+ "data-hover-range-start": require_dom_query.dataAttr(cellState.firstInHoveredRange),
890
+ "data-hover-range-end": require_dom_query.dataAttr(cellState.lastInHoveredRange),
891
+ onClick(event) {
892
+ if (event.defaultPrevented) return;
893
+ if (!interactive) return;
894
+ if (!cellState.selectable) return;
895
+ send({
896
+ type: "CELL.CLICK",
897
+ cell: "month",
898
+ value
899
+ });
900
+ },
901
+ onPointerMove: isRangePicker ? (event) => {
902
+ if (event.pointerType === "touch") return;
903
+ if (!cellState.selectable) return;
904
+ const focus = !scope.isActiveElement(event.currentTarget);
905
+ if (hoveredValue && cellState.value && (0, _internationalized_date.isEqualMonth)(cellState.value, hoveredValue)) return;
906
+ send({
907
+ type: "CELL.POINTER_MOVE",
908
+ cell: "month",
909
+ value: cellState.value,
910
+ focus
911
+ });
912
+ } : void 0
913
+ });
914
+ },
915
+ getYearTableCellState,
916
+ getYearTableCellProps(props) {
917
+ const { value, columns } = props;
918
+ const cellState = getYearTableCellState(props);
919
+ return normalize.element({
920
+ ...parts.tableCell.attrs,
921
+ dir: prop("dir"),
922
+ colSpan: columns,
923
+ role: "gridcell",
924
+ "aria-selected": require_dom_query.ariaAttr(cellState.selected || cellState.inRange),
925
+ "data-selected": require_dom_query.dataAttr(cellState.selected),
926
+ "aria-disabled": require_dom_query.ariaAttr(!cellState.selectable),
927
+ "data-value": value
928
+ });
929
+ },
930
+ getYearTableCellTriggerProps(props) {
931
+ const { value } = props;
932
+ const cellState = getYearTableCellState(props);
933
+ return normalize.element({
934
+ ...parts.tableCellTrigger.attrs,
935
+ id: getCellTriggerId(scope, value.toString()),
936
+ role: "button",
937
+ dir: prop("dir"),
938
+ tabIndex: disabled ? -1 : cellState.focused ? 0 : -1,
939
+ "aria-label": cellState.valueText,
940
+ "aria-disabled": require_dom_query.ariaAttr(!cellState.selectable),
941
+ "data-disabled": require_dom_query.dataAttr(!cellState.selectable),
942
+ "data-selectable": require_dom_query.dataAttr(cellState.selectable),
943
+ "data-selected": require_dom_query.dataAttr(cellState.selected),
944
+ "data-value": value,
945
+ "data-view": "year",
946
+ "data-focus": require_dom_query.dataAttr(cellState.focused),
947
+ "data-outside-range": require_dom_query.dataAttr(cellState.outsideRange),
948
+ "data-range-start": require_dom_query.dataAttr(cellState.firstInRange),
949
+ "data-range-end": require_dom_query.dataAttr(cellState.lastInRange),
950
+ "data-in-range": require_dom_query.dataAttr(cellState.inRange),
951
+ "data-in-hover-range": require_dom_query.dataAttr(cellState.inHoveredRange),
952
+ "data-hover-range-start": require_dom_query.dataAttr(cellState.firstInHoveredRange),
953
+ "data-hover-range-end": require_dom_query.dataAttr(cellState.lastInHoveredRange),
954
+ onClick(event) {
955
+ if (event.defaultPrevented) return;
956
+ if (!interactive) return;
957
+ if (!cellState.selectable) return;
958
+ send({
959
+ type: "CELL.CLICK",
960
+ cell: "year",
961
+ value
962
+ });
963
+ },
964
+ onPointerMove: isRangePicker ? (event) => {
965
+ if (event.pointerType === "touch") return;
966
+ if (!cellState.selectable) return;
967
+ const focus = !scope.isActiveElement(event.currentTarget);
968
+ if (hoveredValue && cellState.value && (0, _internationalized_date.isEqualYear)(cellState.value, hoveredValue)) return;
969
+ send({
970
+ type: "CELL.POINTER_MOVE",
971
+ cell: "year",
972
+ value: cellState.value,
973
+ focus
974
+ });
975
+ } : void 0
976
+ });
977
+ },
978
+ getNextTriggerProps(props = {}) {
979
+ const { view = "day" } = props;
980
+ const isDisabled = disabled || !computed("isNextVisibleRangeValid");
981
+ return normalize.button({
982
+ ...parts.nextTrigger.attrs,
983
+ dir: prop("dir"),
984
+ id: getNextTriggerId(scope, view),
985
+ type: "button",
986
+ "aria-label": translations.nextTrigger(view),
987
+ disabled: isDisabled,
988
+ "data-disabled": require_dom_query.dataAttr(isDisabled),
989
+ onClick(event) {
990
+ if (event.defaultPrevented) return;
991
+ send({
992
+ type: "GOTO.NEXT",
993
+ view
994
+ });
995
+ }
996
+ });
997
+ },
998
+ getPrevTriggerProps(props = {}) {
999
+ const { view = "day" } = props;
1000
+ const isDisabled = disabled || !computed("isPrevVisibleRangeValid");
1001
+ return normalize.button({
1002
+ ...parts.prevTrigger.attrs,
1003
+ dir: prop("dir"),
1004
+ id: getPrevTriggerId(scope, view),
1005
+ type: "button",
1006
+ "aria-label": translations.prevTrigger(view),
1007
+ disabled: isDisabled,
1008
+ "data-disabled": require_dom_query.dataAttr(isDisabled),
1009
+ onClick(event) {
1010
+ if (event.defaultPrevented) return;
1011
+ send({
1012
+ type: "GOTO.PREV",
1013
+ view
1014
+ });
1015
+ }
1016
+ });
1017
+ },
1018
+ getClearTriggerProps() {
1019
+ return normalize.button({
1020
+ ...parts.clearTrigger.attrs,
1021
+ id: getClearTriggerId(scope),
1022
+ dir: prop("dir"),
1023
+ type: "button",
1024
+ "aria-label": translations.clearTrigger,
1025
+ hidden: !selectedValue.length,
1026
+ onClick(event) {
1027
+ if (event.defaultPrevented) return;
1028
+ if (!interactive) return;
1029
+ send({ type: "VALUE.CLEAR" });
1030
+ }
1031
+ });
1032
+ },
1033
+ getTriggerProps() {
1034
+ return normalize.button({
1035
+ ...parts.trigger.attrs,
1036
+ id: getTriggerId(scope),
1037
+ dir: prop("dir"),
1038
+ type: "button",
1039
+ "data-placement": currentPlacement,
1040
+ "data-side": currentPlacementSide,
1041
+ "aria-label": translations.trigger(open),
1042
+ "aria-controls": getContentId(scope),
1043
+ "aria-expanded": open,
1044
+ "data-state": open ? "open" : "closed",
1045
+ "data-placeholder-shown": require_dom_query.dataAttr(empty),
1046
+ "aria-haspopup": "grid",
1047
+ disabled,
1048
+ onClick(event) {
1049
+ if (event.defaultPrevented) return;
1050
+ if (!interactive) return;
1051
+ send({ type: "TRIGGER.CLICK" });
1052
+ }
1053
+ });
1054
+ },
1055
+ getViewProps(props = {}) {
1056
+ const { view = "day" } = props;
1057
+ return normalize.element({
1058
+ ...parts.view.attrs,
1059
+ "data-view": view,
1060
+ hidden: context.get("view") !== view
1061
+ });
1062
+ },
1063
+ getViewTriggerProps(props = {}) {
1064
+ const { view = "day" } = props;
1065
+ return normalize.button({
1066
+ ...parts.viewTrigger.attrs,
1067
+ "data-view": view,
1068
+ dir: prop("dir"),
1069
+ id: getViewTriggerId(scope, view),
1070
+ type: "button",
1071
+ disabled,
1072
+ "aria-label": translations.viewTrigger(view),
1073
+ onClick(event) {
1074
+ if (event.defaultPrevented) return;
1075
+ if (!interactive) return;
1076
+ send({
1077
+ type: "VIEW.TOGGLE",
1078
+ src: "viewTrigger"
1079
+ });
1080
+ }
1081
+ });
1082
+ },
1083
+ getViewControlProps(props = {}) {
1084
+ const { view = "day" } = props;
1085
+ return normalize.element({
1086
+ ...parts.viewControl.attrs,
1087
+ "data-view": view,
1088
+ dir: prop("dir")
1089
+ });
1090
+ },
1091
+ getInputProps(props = {}) {
1092
+ const { index = 0, fixOnBlur = true } = props;
1093
+ return normalize.input({
1094
+ ...parts.input.attrs,
1095
+ id: getInputId(scope, index),
1096
+ autoComplete: "off",
1097
+ autoCorrect: "off",
1098
+ spellCheck: "false",
1099
+ dir: prop("dir"),
1100
+ name: prop("name"),
1101
+ "data-index": index,
1102
+ "data-state": open ? "open" : "closed",
1103
+ "data-placeholder-shown": require_dom_query.dataAttr(empty),
1104
+ readOnly,
1105
+ disabled,
1106
+ required: prop("required"),
1107
+ "aria-invalid": require_dom_query.ariaAttr(invalid),
1108
+ "data-invalid": require_dom_query.dataAttr(invalid),
1109
+ placeholder: prop("placeholder") || getInputPlaceholder(locale),
1110
+ defaultValue: computed("valueAsString")[index],
1111
+ onBeforeInput(event) {
1112
+ const { data } = require_event.getNativeEvent(event);
1113
+ if (!require_date_utils.isValidCharacter(data, separator, locale)) event.preventDefault();
1114
+ },
1115
+ onClick(event) {
1116
+ if (event.defaultPrevented) return;
1117
+ if (!prop("openOnClick")) return;
1118
+ if (!interactive) return;
1119
+ send({
1120
+ type: "OPEN",
1121
+ src: "input.click"
1122
+ });
1123
+ },
1124
+ onFocus() {
1125
+ send({
1126
+ type: "INPUT.FOCUS",
1127
+ index
1128
+ });
1129
+ },
1130
+ onBlur(event) {
1131
+ const value = event.currentTarget.value.trim();
1132
+ send({
1133
+ type: "INPUT.BLUR",
1134
+ value,
1135
+ index,
1136
+ fixOnBlur
1137
+ });
1138
+ },
1139
+ onKeyDown(event) {
1140
+ if (event.defaultPrevented) return;
1141
+ if (!interactive) return;
1142
+ const exec = { Enter(event) {
1143
+ if (require_event.isComposingEvent(event)) return;
1144
+ if (isUnavailable(focusedValue)) return;
1145
+ if (event.currentTarget.value.trim() === "") return;
1146
+ send({
1147
+ type: "INPUT.ENTER",
1148
+ value: event.currentTarget.value,
1149
+ index
1150
+ });
1151
+ } }[event.key];
1152
+ if (exec) {
1153
+ exec(event);
1154
+ event.preventDefault();
1155
+ }
1156
+ },
1157
+ onInput(event) {
1158
+ const value = event.currentTarget.value;
1159
+ send({
1160
+ type: "INPUT.CHANGE",
1161
+ value: require_date_utils.ensureValidCharacters(value, separator, locale),
1162
+ index
1163
+ });
1164
+ }
1165
+ });
1166
+ },
1167
+ getMonthSelectProps() {
1168
+ return normalize.select({
1169
+ ...parts.monthSelect.attrs,
1170
+ id: getMonthSelectId(scope),
1171
+ "aria-label": translations.monthSelect,
1172
+ disabled,
1173
+ dir: prop("dir"),
1174
+ defaultValue: startValue.month,
1175
+ onChange(event) {
1176
+ focusMonth(Number(event.currentTarget.value));
1177
+ }
1178
+ });
1179
+ },
1180
+ getYearSelectProps() {
1181
+ return normalize.select({
1182
+ ...parts.yearSelect.attrs,
1183
+ id: getYearSelectId(scope),
1184
+ disabled,
1185
+ "aria-label": translations.yearSelect,
1186
+ dir: prop("dir"),
1187
+ defaultValue: startValue.year,
1188
+ onChange(event) {
1189
+ focusYear(Number(event.currentTarget.value));
1190
+ }
1191
+ });
1192
+ },
1193
+ getPositionerProps() {
1194
+ return normalize.element({
1195
+ id: getPositionerId(scope),
1196
+ ...parts.positioner.attrs,
1197
+ dir: prop("dir"),
1198
+ style: popperStyles.floating
1199
+ });
1200
+ },
1201
+ getPresetTriggerProps(props) {
1202
+ const value = Array.isArray(props.value) ? props.value : require_date_utils.getDateRangePreset(props.value, locale, timeZone);
1203
+ const valueAsString = value.filter((item) => item != null).map((item) => item.toDate(timeZone).toDateString());
1204
+ return normalize.button({
1205
+ ...parts.presetTrigger.attrs,
1206
+ "aria-label": translations.presetTrigger(valueAsString),
1207
+ type: "button",
1208
+ onClick(event) {
1209
+ if (event.defaultPrevented) return;
1210
+ if (!interactive) return;
1211
+ send({
1212
+ type: "PRESET.CLICK",
1213
+ value
1214
+ });
1215
+ }
1216
+ });
1217
+ }
1218
+ };
1219
+ }
1220
+ //#endregion
1221
+ //#region src/machines/date-picker/machine.ts
1222
+ const { and } = require_core.createGuards();
1223
+ function isDateArrayEqual(a, b) {
1224
+ if (a?.length !== b?.length) return false;
1225
+ const len = Math.max(a.length, b.length);
1226
+ for (let i = 0; i < len; i++) if (!require_date_utils.isDateEqual(a[i], b[i])) return false;
1227
+ return true;
1228
+ }
1229
+ function getValueAsString(value, prop) {
1230
+ return value.map((date) => {
1231
+ if (date == null) return "";
1232
+ return prop("format")(date, {
1233
+ locale: prop("locale"),
1234
+ timeZone: prop("timeZone")
1235
+ });
1236
+ });
1237
+ }
1238
+ const machine = require_core.createMachine({
1239
+ props({ props }) {
1240
+ const locale = props.locale || "en-US";
1241
+ const timeZone = props.timeZone || "UTC";
1242
+ const selectionMode = props.selectionMode || "single";
1243
+ const numOfMonths = props.numOfMonths || 1;
1244
+ let calendar;
1245
+ if (props.createCalendar) {
1246
+ const calendarId = new Intl.DateTimeFormat(locale).resolvedOptions().calendar;
1247
+ if (calendarId !== "gregory" && calendarId !== "iso8601") calendar = props.createCalendar(calendarId);
1248
+ }
1249
+ const toTargetCalendar = (date) => {
1250
+ if (!calendar) return date;
1251
+ if (date.calendar.identifier === calendar.identifier) return date;
1252
+ return (0, _internationalized_date.toCalendar)(date, calendar);
1253
+ };
1254
+ const defaultValue = props.defaultValue ? sortDates(props.defaultValue).map((date) => require_date_utils.constrainValue(toTargetCalendar(date), props.min, props.max)) : void 0;
1255
+ const value = props.value ? sortDates(props.value).map((date) => require_date_utils.constrainValue(toTargetCalendar(date), props.min, props.max)) : void 0;
1256
+ let focusedValue = props.focusedValue || props.defaultFocusedValue || value?.[0] || defaultValue?.[0] || require_date_utils.getTodayDate(timeZone, calendar);
1257
+ focusedValue = require_date_utils.constrainValue(toTargetCalendar(focusedValue), props.min, props.max);
1258
+ const minView = props.minView || "day";
1259
+ const maxView = props.maxView || "year";
1260
+ const defaultView = clampView(props.defaultView || props.view || minView, minView, maxView);
1261
+ return {
1262
+ locale,
1263
+ numOfMonths,
1264
+ timeZone,
1265
+ selectionMode,
1266
+ minView,
1267
+ maxView,
1268
+ outsideDaySelectable: false,
1269
+ closeOnSelect: true,
1270
+ format(date, { locale, timeZone }) {
1271
+ return new _internationalized_date.DateFormatter(locale, {
1272
+ timeZone,
1273
+ day: "2-digit",
1274
+ month: "2-digit",
1275
+ year: "numeric",
1276
+ calendar: calendar?.identifier
1277
+ }).format(date.toDate(timeZone));
1278
+ },
1279
+ parse(value, { locale, timeZone }) {
1280
+ return require_date_utils.parseDateString(value, locale, timeZone);
1281
+ },
1282
+ ...props,
1283
+ focusedValue: typeof props.focusedValue === "undefined" ? void 0 : focusedValue,
1284
+ defaultFocusedValue: focusedValue,
1285
+ value,
1286
+ defaultValue: defaultValue ?? [],
1287
+ defaultView,
1288
+ positioning: {
1289
+ placement: "bottom",
1290
+ ...props.positioning
1291
+ }
1292
+ };
1293
+ },
1294
+ initialState({ prop }) {
1295
+ return prop("inline") || (prop("open") ?? prop("defaultOpen")) ? "open" : "idle";
1296
+ },
1297
+ refs() {
1298
+ return { announcer: void 0 };
1299
+ },
1300
+ context({ prop, bindable, getContext }) {
1301
+ return {
1302
+ focusedValue: bindable(() => ({
1303
+ defaultValue: prop("defaultFocusedValue"),
1304
+ value: prop("focusedValue"),
1305
+ isEqual: require_date_utils.isDateEqual,
1306
+ hash: (v) => v.toString(),
1307
+ sync: true,
1308
+ onChange(focusedValue) {
1309
+ const context = getContext();
1310
+ const view = context.get("view");
1311
+ const value = context.get("value");
1312
+ const valueAsString = getValueAsString(value, prop);
1313
+ prop("onFocusChange")?.({
1314
+ value,
1315
+ valueAsString,
1316
+ view,
1317
+ focusedValue
1318
+ });
1319
+ }
1320
+ })),
1321
+ value: bindable(() => ({
1322
+ defaultValue: prop("defaultValue"),
1323
+ value: prop("value"),
1324
+ isEqual: isDateArrayEqual,
1325
+ hash: (v) => v.map((date) => date?.toString() ?? "").join(","),
1326
+ onChange(value) {
1327
+ const context = getContext();
1328
+ const valueAsString = getValueAsString(value, prop);
1329
+ prop("onValueChange")?.({
1330
+ value,
1331
+ valueAsString,
1332
+ view: context.get("view")
1333
+ });
1334
+ }
1335
+ })),
1336
+ inputValue: bindable(() => ({ defaultValue: "" })),
1337
+ activeIndex: bindable(() => ({
1338
+ defaultValue: 0,
1339
+ sync: true
1340
+ })),
1341
+ hoveredValue: bindable(() => ({
1342
+ defaultValue: null,
1343
+ isEqual: require_date_utils.isDateEqual
1344
+ })),
1345
+ view: bindable(() => ({
1346
+ defaultValue: prop("defaultView"),
1347
+ value: prop("view"),
1348
+ onChange(value) {
1349
+ prop("onViewChange")?.({ view: value });
1350
+ }
1351
+ })),
1352
+ startValue: bindable(() => {
1353
+ return {
1354
+ defaultValue: require_date_utils.alignDate(prop("focusedValue") || prop("defaultFocusedValue"), "start", { months: prop("numOfMonths") }, prop("locale")),
1355
+ isEqual: require_date_utils.isDateEqual,
1356
+ hash: (v) => v.toString()
1357
+ };
1358
+ }),
1359
+ currentPlacement: bindable(() => ({ defaultValue: void 0 })),
1360
+ restoreFocus: bindable(() => ({ defaultValue: false }))
1361
+ };
1362
+ },
1363
+ computed: {
1364
+ isInteractive: ({ prop }) => !prop("disabled") && !prop("readOnly"),
1365
+ visibleDuration: ({ prop }) => ({ months: prop("numOfMonths") }),
1366
+ endValue: ({ context, computed }) => require_date_utils.getEndDate(context.get("startValue"), computed("visibleDuration")),
1367
+ visibleRange: ({ context, computed }) => ({
1368
+ start: context.get("startValue"),
1369
+ end: computed("endValue")
1370
+ }),
1371
+ visibleRangeText: ({ context, prop, computed }) => getVisibleRangeText({
1372
+ view: context.get("view"),
1373
+ startValue: context.get("startValue"),
1374
+ endValue: computed("endValue"),
1375
+ locale: prop("locale"),
1376
+ timeZone: prop("timeZone"),
1377
+ selectionMode: prop("selectionMode")
1378
+ }),
1379
+ isPrevVisibleRangeValid: ({ context, prop }) => !require_date_utils.isPreviousRangeInvalid(context.get("startValue"), prop("min"), prop("max")),
1380
+ isNextVisibleRangeValid: ({ prop, computed }) => !require_date_utils.isNextRangeInvalid(computed("endValue"), prop("min"), prop("max")),
1381
+ valueAsString: ({ context, prop }) => getValueAsString(context.get("value"), prop)
1382
+ },
1383
+ effects: ["setupLiveRegion"],
1384
+ watch({ track, prop, context, action, computed }) {
1385
+ track([() => prop("locale")], () => {
1386
+ action(["setStartValue", "syncInputElement"]);
1387
+ });
1388
+ track([() => context.hash("focusedValue")], () => {
1389
+ action([
1390
+ "setStartValue",
1391
+ "focusActiveCellIfNeeded",
1392
+ "setHoveredValueIfKeyboard"
1393
+ ]);
1394
+ });
1395
+ track([() => context.hash("startValue")], () => {
1396
+ action([
1397
+ "syncMonthSelectElement",
1398
+ "syncYearSelectElement",
1399
+ "invokeOnVisibleRangeChange"
1400
+ ]);
1401
+ });
1402
+ track([() => context.get("inputValue")], () => {
1403
+ action(["syncInputValue"]);
1404
+ });
1405
+ track([() => context.hash("value")], () => {
1406
+ action(["syncInputElement"]);
1407
+ });
1408
+ track([() => computed("valueAsString").toString()], () => {
1409
+ action(["announceValueText"]);
1410
+ });
1411
+ track([() => context.get("view")], () => {
1412
+ action(["focusActiveCell"]);
1413
+ });
1414
+ track([() => prop("open")], () => {
1415
+ action(["toggleVisibility"]);
1416
+ });
1417
+ },
1418
+ on: {
1419
+ "VALUE.SET": { actions: ["setDateValue", "setFocusedDate"] },
1420
+ "VIEW.SET": { actions: ["setView"] },
1421
+ "FOCUS.SET": { actions: ["setFocusedDate"] },
1422
+ "VALUE.CLEAR": { actions: [
1423
+ "clearDateValue",
1424
+ "clearFocusedDate",
1425
+ "setActiveIndexToStart",
1426
+ "clearHoveredDate",
1427
+ "focusFirstInputElement"
1428
+ ] },
1429
+ "INPUT.CHANGE": [{
1430
+ guard: "isInputValueEmpty",
1431
+ actions: [
1432
+ "setInputValue",
1433
+ "clearDateValue",
1434
+ "clearFocusedDate"
1435
+ ]
1436
+ }, { actions: ["setInputValue", "focusParsedDate"] }],
1437
+ "INPUT.ENTER": { actions: ["focusParsedDate", "selectFocusedDate"] },
1438
+ "INPUT.FOCUS": { actions: ["setActiveIndex"] },
1439
+ "INPUT.BLUR": [{
1440
+ guard: "shouldFixOnBlur",
1441
+ actions: ["setActiveIndexToStart", "selectParsedDate"]
1442
+ }, { actions: ["setActiveIndexToStart"] }],
1443
+ "PRESET.CLICK": [{
1444
+ guard: "isOpenControlled",
1445
+ actions: [
1446
+ "setDateValue",
1447
+ "setFocusedDate",
1448
+ "invokeOnClose"
1449
+ ]
1450
+ }, {
1451
+ target: "focused",
1452
+ actions: [
1453
+ "setDateValue",
1454
+ "setFocusedDate",
1455
+ "focusInputElement"
1456
+ ]
1457
+ }],
1458
+ "GOTO.NEXT": [
1459
+ {
1460
+ guard: "isYearView",
1461
+ actions: ["focusNextDecade", "announceVisibleRange"]
1462
+ },
1463
+ {
1464
+ guard: "isMonthView",
1465
+ actions: ["focusNextYear", "announceVisibleRange"]
1466
+ },
1467
+ { actions: ["focusNextPage"] }
1468
+ ],
1469
+ "GOTO.PREV": [
1470
+ {
1471
+ guard: "isYearView",
1472
+ actions: ["focusPreviousDecade", "announceVisibleRange"]
1473
+ },
1474
+ {
1475
+ guard: "isMonthView",
1476
+ actions: ["focusPreviousYear", "announceVisibleRange"]
1477
+ },
1478
+ { actions: ["focusPreviousPage"] }
1479
+ ]
1480
+ },
1481
+ states: {
1482
+ idle: {
1483
+ tags: ["closed"],
1484
+ on: {
1485
+ "CONTROLLED.OPEN": {
1486
+ target: "open",
1487
+ actions: [
1488
+ "resetView",
1489
+ "focusFirstSelectedDate",
1490
+ "focusActiveCell"
1491
+ ]
1492
+ },
1493
+ "TRIGGER.CLICK": [{
1494
+ guard: "isOpenControlled",
1495
+ actions: ["invokeOnOpen"]
1496
+ }, {
1497
+ target: "open",
1498
+ actions: [
1499
+ "resetView",
1500
+ "focusFirstSelectedDate",
1501
+ "focusActiveCell",
1502
+ "invokeOnOpen"
1503
+ ]
1504
+ }],
1505
+ OPEN: [{
1506
+ guard: "isOpenControlled",
1507
+ actions: ["invokeOnOpen"]
1508
+ }, {
1509
+ target: "open",
1510
+ actions: [
1511
+ "resetView",
1512
+ "focusFirstSelectedDate",
1513
+ "focusActiveCell",
1514
+ "invokeOnOpen"
1515
+ ]
1516
+ }]
1517
+ }
1518
+ },
1519
+ focused: {
1520
+ tags: ["closed"],
1521
+ on: {
1522
+ "CONTROLLED.OPEN": {
1523
+ target: "open",
1524
+ actions: [
1525
+ "resetView",
1526
+ "focusFirstSelectedDate",
1527
+ "focusActiveCell"
1528
+ ]
1529
+ },
1530
+ "TRIGGER.CLICK": [{
1531
+ guard: "isOpenControlled",
1532
+ actions: ["invokeOnOpen"]
1533
+ }, {
1534
+ target: "open",
1535
+ actions: [
1536
+ "resetView",
1537
+ "focusFirstSelectedDate",
1538
+ "focusActiveCell",
1539
+ "invokeOnOpen"
1540
+ ]
1541
+ }],
1542
+ OPEN: [{
1543
+ guard: "isOpenControlled",
1544
+ actions: ["invokeOnOpen"]
1545
+ }, {
1546
+ target: "open",
1547
+ actions: [
1548
+ "resetView",
1549
+ "focusFirstSelectedDate",
1550
+ "focusActiveCell",
1551
+ "invokeOnOpen"
1552
+ ]
1553
+ }]
1554
+ }
1555
+ },
1556
+ open: {
1557
+ tags: ["open"],
1558
+ effects: ["trackDismissableElement", "trackPositioning"],
1559
+ exit: ["clearHoveredDate"],
1560
+ on: {
1561
+ "CONTROLLED.CLOSE": [
1562
+ {
1563
+ guard: and("shouldRestoreFocus", "isInteractOutsideEvent"),
1564
+ target: "focused",
1565
+ actions: ["focusTriggerElement"]
1566
+ },
1567
+ {
1568
+ guard: "shouldRestoreFocus",
1569
+ target: "focused",
1570
+ actions: ["focusInputElement"]
1571
+ },
1572
+ { target: "idle" }
1573
+ ],
1574
+ "CELL.CLICK": [
1575
+ {
1576
+ guard: "isAboveMinView",
1577
+ actions: ["setFocusedValueForView", "setPreviousView"]
1578
+ },
1579
+ {
1580
+ guard: and("isRangePicker", "hasSelectedRange"),
1581
+ actions: [
1582
+ "setActiveIndexToStart",
1583
+ "resetSelection",
1584
+ "setActiveIndexToEnd"
1585
+ ]
1586
+ },
1587
+ {
1588
+ guard: and("isRangePicker", "isSelectingEndDate", "closeOnSelect", "isOpenControlled"),
1589
+ actions: [
1590
+ "setFocusedDate",
1591
+ "setSelectedDate",
1592
+ "setActiveIndexToStart",
1593
+ "clearHoveredDate",
1594
+ "invokeOnClose",
1595
+ "setRestoreFocus"
1596
+ ]
1597
+ },
1598
+ {
1599
+ guard: and("isRangePicker", "isSelectingEndDate", "closeOnSelect"),
1600
+ target: "focused",
1601
+ actions: [
1602
+ "setFocusedDate",
1603
+ "setSelectedDate",
1604
+ "setActiveIndexToStart",
1605
+ "clearHoveredDate",
1606
+ "invokeOnClose",
1607
+ "focusInputElement"
1608
+ ]
1609
+ },
1610
+ {
1611
+ guard: and("isRangePicker", "isSelectingEndDate"),
1612
+ actions: [
1613
+ "setFocusedDate",
1614
+ "setSelectedDate",
1615
+ "setActiveIndexToStart",
1616
+ "clearHoveredDate"
1617
+ ]
1618
+ },
1619
+ {
1620
+ guard: "isRangePicker",
1621
+ actions: [
1622
+ "setFocusedDate",
1623
+ "setSelectedDate",
1624
+ "setActiveIndexToEnd"
1625
+ ]
1626
+ },
1627
+ {
1628
+ guard: and("isMultiPicker", "canSelectDate"),
1629
+ actions: ["setFocusedDate", "toggleSelectedDate"]
1630
+ },
1631
+ {
1632
+ guard: "isMultiPicker",
1633
+ actions: ["setFocusedDate"]
1634
+ },
1635
+ {
1636
+ guard: and("closeOnSelect", "isOpenControlled"),
1637
+ actions: [
1638
+ "setFocusedDate",
1639
+ "setSelectedDate",
1640
+ "invokeOnClose"
1641
+ ]
1642
+ },
1643
+ {
1644
+ guard: "closeOnSelect",
1645
+ target: "focused",
1646
+ actions: [
1647
+ "setFocusedDate",
1648
+ "setSelectedDate",
1649
+ "invokeOnClose",
1650
+ "focusInputElement"
1651
+ ]
1652
+ },
1653
+ { actions: ["setFocusedDate", "setSelectedDate"] }
1654
+ ],
1655
+ "CELL.POINTER_MOVE": [{
1656
+ guard: and("isRangePicker", "isSelectingEndDate", "isDayPointerMoveOutsideVisibleMonth"),
1657
+ actions: ["setHoveredDate"]
1658
+ }, {
1659
+ guard: and("isRangePicker", "isSelectingEndDate"),
1660
+ actions: ["setHoveredDate", "setFocusedDate"]
1661
+ }],
1662
+ "TABLE.POINTER_LEAVE": {
1663
+ guard: "isRangePicker",
1664
+ actions: ["clearHoveredDate"]
1665
+ },
1666
+ "TABLE.POINTER_DOWN": { actions: ["disableTextSelection"] },
1667
+ "TABLE.POINTER_UP": { actions: ["enableTextSelection"] },
1668
+ "TABLE.ESCAPE": [{
1669
+ guard: "isOpenControlled",
1670
+ actions: ["focusFirstSelectedDate", "invokeOnClose"]
1671
+ }, {
1672
+ target: "focused",
1673
+ actions: [
1674
+ "focusFirstSelectedDate",
1675
+ "invokeOnClose",
1676
+ "focusTriggerElement"
1677
+ ]
1678
+ }],
1679
+ "TABLE.ENTER": [
1680
+ {
1681
+ guard: "isAboveMinView",
1682
+ actions: ["setPreviousView"]
1683
+ },
1684
+ {
1685
+ guard: and("isRangePicker", "hasSelectedRange"),
1686
+ actions: [
1687
+ "setActiveIndexToStart",
1688
+ "clearDateValue",
1689
+ "setSelectedDate",
1690
+ "setActiveIndexToEnd"
1691
+ ]
1692
+ },
1693
+ {
1694
+ guard: and("isRangePicker", "isSelectingEndDate", "closeOnSelect", "isOpenControlled"),
1695
+ actions: [
1696
+ "setSelectedDate",
1697
+ "setActiveIndexToStart",
1698
+ "clearHoveredDate",
1699
+ "invokeOnClose"
1700
+ ]
1701
+ },
1702
+ {
1703
+ guard: and("isRangePicker", "isSelectingEndDate", "closeOnSelect"),
1704
+ target: "focused",
1705
+ actions: [
1706
+ "setSelectedDate",
1707
+ "setActiveIndexToStart",
1708
+ "clearHoveredDate",
1709
+ "invokeOnClose",
1710
+ "focusInputElement"
1711
+ ]
1712
+ },
1713
+ {
1714
+ guard: and("isRangePicker", "isSelectingEndDate"),
1715
+ actions: [
1716
+ "setSelectedDate",
1717
+ "setActiveIndexToStart",
1718
+ "clearHoveredDate"
1719
+ ]
1720
+ },
1721
+ {
1722
+ guard: "isRangePicker",
1723
+ actions: [
1724
+ "setSelectedDate",
1725
+ "setActiveIndexToEnd",
1726
+ "focusNextDay"
1727
+ ]
1728
+ },
1729
+ {
1730
+ guard: and("isMultiPicker", "canSelectDate"),
1731
+ actions: ["toggleSelectedDate"]
1732
+ },
1733
+ { guard: "isMultiPicker" },
1734
+ {
1735
+ guard: and("closeOnSelect", "isOpenControlled"),
1736
+ actions: ["selectFocusedDate", "invokeOnClose"]
1737
+ },
1738
+ {
1739
+ guard: "closeOnSelect",
1740
+ target: "focused",
1741
+ actions: [
1742
+ "selectFocusedDate",
1743
+ "invokeOnClose",
1744
+ "focusInputElement"
1745
+ ]
1746
+ },
1747
+ { actions: ["selectFocusedDate"] }
1748
+ ],
1749
+ "TABLE.ARROW_RIGHT": [
1750
+ {
1751
+ guard: "isMonthView",
1752
+ actions: ["focusNextMonth"]
1753
+ },
1754
+ {
1755
+ guard: "isYearView",
1756
+ actions: ["focusNextYear"]
1757
+ },
1758
+ { actions: ["focusNextDay", "setHoveredDate"] }
1759
+ ],
1760
+ "TABLE.ARROW_LEFT": [
1761
+ {
1762
+ guard: "isMonthView",
1763
+ actions: ["focusPreviousMonth"]
1764
+ },
1765
+ {
1766
+ guard: "isYearView",
1767
+ actions: ["focusPreviousYear"]
1768
+ },
1769
+ { actions: ["focusPreviousDay"] }
1770
+ ],
1771
+ "TABLE.ARROW_UP": [
1772
+ {
1773
+ guard: "isMonthView",
1774
+ actions: ["focusPreviousMonthColumn"]
1775
+ },
1776
+ {
1777
+ guard: "isYearView",
1778
+ actions: ["focusPreviousYearColumn"]
1779
+ },
1780
+ { actions: ["focusPreviousWeek"] }
1781
+ ],
1782
+ "TABLE.ARROW_DOWN": [
1783
+ {
1784
+ guard: "isMonthView",
1785
+ actions: ["focusNextMonthColumn"]
1786
+ },
1787
+ {
1788
+ guard: "isYearView",
1789
+ actions: ["focusNextYearColumn"]
1790
+ },
1791
+ { actions: ["focusNextWeek"] }
1792
+ ],
1793
+ "TABLE.PAGE_UP": { actions: ["focusPreviousSection"] },
1794
+ "TABLE.PAGE_DOWN": { actions: ["focusNextSection"] },
1795
+ "TABLE.HOME": [
1796
+ {
1797
+ guard: "isMonthView",
1798
+ actions: ["focusFirstMonth"]
1799
+ },
1800
+ {
1801
+ guard: "isYearView",
1802
+ actions: ["focusFirstYear"]
1803
+ },
1804
+ { actions: ["focusSectionStart"] }
1805
+ ],
1806
+ "TABLE.END": [
1807
+ {
1808
+ guard: "isMonthView",
1809
+ actions: ["focusLastMonth"]
1810
+ },
1811
+ {
1812
+ guard: "isYearView",
1813
+ actions: ["focusLastYear"]
1814
+ },
1815
+ { actions: ["focusSectionEnd"] }
1816
+ ],
1817
+ "TRIGGER.CLICK": [{
1818
+ guard: "isOpenControlled",
1819
+ actions: ["invokeOnClose"]
1820
+ }, {
1821
+ target: "focused",
1822
+ actions: ["invokeOnClose"]
1823
+ }],
1824
+ "VIEW.TOGGLE": { actions: ["setNextView"] },
1825
+ INTERACT_OUTSIDE: [
1826
+ {
1827
+ guard: "isOpenControlled",
1828
+ actions: ["setActiveIndexToStart", "invokeOnClose"]
1829
+ },
1830
+ {
1831
+ guard: "shouldRestoreFocus",
1832
+ target: "focused",
1833
+ actions: [
1834
+ "setActiveIndexToStart",
1835
+ "invokeOnClose",
1836
+ "focusTriggerElement"
1837
+ ]
1838
+ },
1839
+ {
1840
+ target: "idle",
1841
+ actions: ["setActiveIndexToStart", "invokeOnClose"]
1842
+ }
1843
+ ],
1844
+ CLOSE: [{
1845
+ guard: "isOpenControlled",
1846
+ actions: ["setActiveIndexToStart", "invokeOnClose"]
1847
+ }, {
1848
+ target: "idle",
1849
+ actions: ["setActiveIndexToStart", "invokeOnClose"]
1850
+ }]
1851
+ }
1852
+ }
1853
+ },
1854
+ implementations: {
1855
+ guards: {
1856
+ isAboveMinView: ({ context, prop }) => isAboveMinView(context.get("view"), prop("minView")),
1857
+ isDayView: ({ context, event }) => (event.view || context.get("view")) === "day",
1858
+ isMonthView: ({ context, event }) => (event.view || context.get("view")) === "month",
1859
+ isYearView: ({ context, event }) => (event.view || context.get("view")) === "year",
1860
+ isRangePicker: ({ prop }) => prop("selectionMode") === "range",
1861
+ hasSelectedRange: ({ context }) => context.get("value").length === 2,
1862
+ isMultiPicker: ({ prop }) => prop("selectionMode") === "multiple",
1863
+ canSelectDate: (params) => {
1864
+ const { context, prop, event } = params;
1865
+ const maxSelectedDates = prop("maxSelectedDates");
1866
+ if (maxSelectedDates == null) return true;
1867
+ const existingValues = context.get("value");
1868
+ const currentValue = normalizeValue(params, event.value ?? context.get("focusedValue"));
1869
+ if (existingValues.some((date) => require_date_utils.isDateEqual(date, currentValue))) return true;
1870
+ return existingValues.length < maxSelectedDates;
1871
+ },
1872
+ shouldRestoreFocus: ({ context }) => !!context.get("restoreFocus"),
1873
+ isSelectingEndDate: ({ context }) => context.get("activeIndex") === 1,
1874
+ closeOnSelect: ({ prop }) => !!prop("closeOnSelect"),
1875
+ isOpenControlled: ({ prop }) => prop("open") != void 0 || !!prop("inline"),
1876
+ isInteractOutsideEvent: ({ event }) => event.previousEvent?.type === "INTERACT_OUTSIDE",
1877
+ isInputValueEmpty: ({ event }) => event.value.trim() === "",
1878
+ shouldFixOnBlur: ({ event }) => !!event.fixOnBlur,
1879
+ isDayPointerMoveOutsideVisibleMonth: ({ event }) => event.cell === "day" && event.outsideRange === true
1880
+ },
1881
+ effects: {
1882
+ trackPositioning({ context, prop, scope }) {
1883
+ if (prop("inline")) return;
1884
+ if (!context.get("currentPlacement")) context.set("currentPlacement", prop("positioning").placement);
1885
+ const anchorEl = getControlEl(scope);
1886
+ const getPositionerEl$1 = () => getPositionerEl(scope);
1887
+ return require_popper.getPlacement(anchorEl, getPositionerEl$1, {
1888
+ ...prop("positioning"),
1889
+ defer: true,
1890
+ onComplete(data) {
1891
+ context.set("currentPlacement", data.placement);
1892
+ }
1893
+ });
1894
+ },
1895
+ setupLiveRegion({ scope, refs }) {
1896
+ const doc = scope.getDoc();
1897
+ refs.set("announcer", require_live_region.createLiveRegion({
1898
+ level: "assertive",
1899
+ document: doc
1900
+ }));
1901
+ return () => refs.get("announcer")?.destroy?.();
1902
+ },
1903
+ trackDismissableElement({ scope, send, context, prop }) {
1904
+ if (prop("inline")) return;
1905
+ const getContentEl$1 = () => getContentEl(scope);
1906
+ return require_dismissable.trackDismissableElement(getContentEl$1, {
1907
+ type: "popover",
1908
+ defer: true,
1909
+ layerStyleTargets: [() => getPositionerEl(scope)],
1910
+ exclude: [
1911
+ ...getInputEls(scope),
1912
+ getTriggerEl(scope),
1913
+ getClearTriggerEl(scope)
1914
+ ],
1915
+ onInteractOutside(event) {
1916
+ context.set("restoreFocus", !event.detail.focusable);
1917
+ },
1918
+ onDismiss() {
1919
+ send({ type: "INTERACT_OUTSIDE" });
1920
+ },
1921
+ onEscapeKeyDown(event) {
1922
+ event.preventDefault();
1923
+ send({
1924
+ type: "TABLE.ESCAPE",
1925
+ src: "dismissable"
1926
+ });
1927
+ }
1928
+ });
1929
+ }
1930
+ },
1931
+ actions: {
1932
+ setNextView({ context, prop }) {
1933
+ const nextView = getNextView(context.get("view"), prop("minView"), prop("maxView"));
1934
+ context.set("view", nextView);
1935
+ },
1936
+ setPreviousView({ context, prop }) {
1937
+ const prevView = getPreviousView(context.get("view"), prop("minView"), prop("maxView"));
1938
+ context.set("view", prevView);
1939
+ },
1940
+ setView({ context, event }) {
1941
+ context.set("view", event.view);
1942
+ },
1943
+ setRestoreFocus({ context }) {
1944
+ context.set("restoreFocus", true);
1945
+ },
1946
+ announceValueText({ context, prop, refs }) {
1947
+ const value = context.get("value");
1948
+ const locale = prop("locale");
1949
+ const timeZone = prop("timeZone");
1950
+ let announceText;
1951
+ if (prop("selectionMode") === "range") {
1952
+ const [startDate, endDate] = value;
1953
+ if (startDate && endDate) announceText = require_date_utils.formatSelectedDate(startDate, endDate, locale, timeZone);
1954
+ else if (startDate) announceText = require_date_utils.formatSelectedDate(startDate, null, locale, timeZone);
1955
+ else if (endDate) announceText = require_date_utils.formatSelectedDate(endDate, null, locale, timeZone);
1956
+ else announceText = "";
1957
+ } else announceText = value.map((date) => require_date_utils.formatSelectedDate(date, null, locale, timeZone)).filter(Boolean).join(",");
1958
+ refs.get("announcer")?.announce(announceText, 3e3);
1959
+ },
1960
+ announceVisibleRange({ computed, refs }) {
1961
+ const { formatted } = computed("visibleRangeText");
1962
+ refs.get("announcer")?.announce(formatted);
1963
+ },
1964
+ disableTextSelection({ scope }) {
1965
+ require_text_selection.disableTextSelection({
1966
+ target: getContentEl(scope),
1967
+ doc: scope.getDoc()
1968
+ });
1969
+ },
1970
+ enableTextSelection({ scope }) {
1971
+ require_text_selection.restoreTextSelection({
1972
+ doc: scope.getDoc(),
1973
+ target: getContentEl(scope)
1974
+ });
1975
+ },
1976
+ focusFirstSelectedDate(params) {
1977
+ const { context } = params;
1978
+ if (!context.get("value").length) return;
1979
+ setFocusedValue(params, context.get("value")[0]);
1980
+ },
1981
+ syncInputElement({ scope, computed }) {
1982
+ require_raf.raf(() => {
1983
+ getInputEls(scope).forEach((inputEl, index) => {
1984
+ require_form.setElementValue(inputEl, computed("valueAsString")[index] || "");
1985
+ });
1986
+ });
1987
+ },
1988
+ setFocusedDate(params) {
1989
+ const { event } = params;
1990
+ setFocusedValue(params, Array.isArray(event.value) ? event.value[0] : event.value);
1991
+ },
1992
+ setFocusedValueForView(params) {
1993
+ const { context, event } = params;
1994
+ setFocusedValue(params, context.get("focusedValue").set({ [context.get("view")]: event.value }));
1995
+ },
1996
+ focusNextMonth(params) {
1997
+ const { context } = params;
1998
+ setFocusedValue(params, context.get("focusedValue").add({ months: 1 }));
1999
+ },
2000
+ focusPreviousMonth(params) {
2001
+ const { context } = params;
2002
+ setFocusedValue(params, context.get("focusedValue").subtract({ months: 1 }));
2003
+ },
2004
+ setDateValue({ context, event, prop }) {
2005
+ if (!Array.isArray(event.value)) return;
2006
+ const value = event.value.map((date) => require_date_utils.constrainValue(date, prop("min"), prop("max")));
2007
+ context.set("value", value);
2008
+ },
2009
+ clearDateValue({ context }) {
2010
+ context.set("value", []);
2011
+ },
2012
+ setSelectedDate(params) {
2013
+ const { context, event } = params;
2014
+ const values = Array.from(context.get("value"));
2015
+ const activeIndex = context.get("activeIndex");
2016
+ const existingValue = values[activeIndex];
2017
+ const newValue = normalizeValue(params, event.value ?? context.get("focusedValue"));
2018
+ values[activeIndex] = preserveTime(existingValue, newValue);
2019
+ context.set("value", adjustStartAndEndDate(values));
2020
+ },
2021
+ resetSelection(params) {
2022
+ const { context, event } = params;
2023
+ const existingValue = context.get("value")[0];
2024
+ const newValue = normalizeValue(params, event.value ?? context.get("focusedValue"));
2025
+ context.set("value", [preserveTime(existingValue, newValue)]);
2026
+ },
2027
+ toggleSelectedDate(params) {
2028
+ const { context, event } = params;
2029
+ const currentValue = normalizeValue(params, event.value ?? context.get("focusedValue"));
2030
+ const existingValues = context.get("value");
2031
+ const index = existingValues.findIndex((date) => require_date_utils.isDateEqual(date, currentValue));
2032
+ if (index === -1) {
2033
+ const values = [...existingValues, currentValue];
2034
+ context.set("value", sortDates(values));
2035
+ } else {
2036
+ const values = Array.from(existingValues);
2037
+ values.splice(index, 1);
2038
+ context.set("value", sortDates(values));
2039
+ }
2040
+ },
2041
+ setHoveredDate({ context, event }) {
2042
+ context.set("hoveredValue", event.value);
2043
+ },
2044
+ clearHoveredDate({ context }) {
2045
+ context.set("hoveredValue", null);
2046
+ },
2047
+ selectFocusedDate({ context, computed }) {
2048
+ const values = Array.from(context.get("value"));
2049
+ const activeIndex = context.get("activeIndex");
2050
+ const existingValue = values[activeIndex];
2051
+ const newValue = context.get("focusedValue").copy();
2052
+ values[activeIndex] = preserveTime(existingValue, newValue);
2053
+ context.set("value", adjustStartAndEndDate(values));
2054
+ const valueAsString = computed("valueAsString");
2055
+ context.set("inputValue", valueAsString[activeIndex]);
2056
+ },
2057
+ focusPreviousDay(params) {
2058
+ const { context } = params;
2059
+ setFocusedValue(params, context.get("focusedValue").subtract({ days: 1 }));
2060
+ },
2061
+ focusNextDay(params) {
2062
+ const { context } = params;
2063
+ setFocusedValue(params, context.get("focusedValue").add({ days: 1 }));
2064
+ },
2065
+ focusPreviousWeek(params) {
2066
+ const { context } = params;
2067
+ setFocusedValue(params, context.get("focusedValue").subtract({ weeks: 1 }));
2068
+ },
2069
+ focusNextWeek(params) {
2070
+ const { context } = params;
2071
+ setFocusedValue(params, context.get("focusedValue").add({ weeks: 1 }));
2072
+ },
2073
+ focusNextPage(params) {
2074
+ const { context, computed, prop } = params;
2075
+ setAdjustedValue(params, require_date_utils.getNextPage(context.get("focusedValue"), context.get("startValue"), computed("visibleDuration"), prop("locale"), prop("min"), prop("max")));
2076
+ },
2077
+ focusPreviousPage(params) {
2078
+ const { context, computed, prop } = params;
2079
+ setAdjustedValue(params, require_date_utils.getPreviousPage(context.get("focusedValue"), context.get("startValue"), computed("visibleDuration"), prop("locale"), prop("min"), prop("max")));
2080
+ },
2081
+ focusSectionStart(params) {
2082
+ const { context } = params;
2083
+ setFocusedValue(params, context.get("startValue").copy());
2084
+ },
2085
+ focusSectionEnd(params) {
2086
+ const { computed } = params;
2087
+ setFocusedValue(params, computed("endValue").copy());
2088
+ },
2089
+ focusNextSection(params) {
2090
+ const { context, event, computed, prop } = params;
2091
+ const nextSection = require_date_utils.getNextSection(context.get("focusedValue"), context.get("startValue"), event.larger, computed("visibleDuration"), prop("locale"), prop("min"), prop("max"));
2092
+ if (!nextSection) return;
2093
+ setAdjustedValue(params, nextSection);
2094
+ },
2095
+ focusPreviousSection(params) {
2096
+ const { context, event, computed, prop } = params;
2097
+ const previousSection = require_date_utils.getPreviousSection(context.get("focusedValue"), context.get("startValue"), event.larger, computed("visibleDuration"), prop("locale"), prop("min"), prop("max"));
2098
+ if (!previousSection) return;
2099
+ setAdjustedValue(params, previousSection);
2100
+ },
2101
+ focusNextYear(params) {
2102
+ const { context } = params;
2103
+ setFocusedValue(params, context.get("focusedValue").add({ years: 1 }));
2104
+ },
2105
+ focusPreviousYear(params) {
2106
+ const { context } = params;
2107
+ setFocusedValue(params, context.get("focusedValue").subtract({ years: 1 }));
2108
+ },
2109
+ focusNextDecade(params) {
2110
+ const { context } = params;
2111
+ setFocusedValue(params, context.get("focusedValue").add({ years: 10 }));
2112
+ },
2113
+ focusPreviousDecade(params) {
2114
+ const { context } = params;
2115
+ setFocusedValue(params, context.get("focusedValue").subtract({ years: 10 }));
2116
+ },
2117
+ clearFocusedDate(params) {
2118
+ const { context, prop } = params;
2119
+ const calendar = context.get("focusedValue").calendar;
2120
+ setFocusedValue(params, require_date_utils.getTodayDate(prop("timeZone"), calendar));
2121
+ },
2122
+ focusPreviousMonthColumn(params) {
2123
+ const { context, event } = params;
2124
+ setFocusedValue(params, context.get("focusedValue").subtract({ months: event.columns }));
2125
+ },
2126
+ focusNextMonthColumn(params) {
2127
+ const { context, event } = params;
2128
+ setFocusedValue(params, context.get("focusedValue").add({ months: event.columns }));
2129
+ },
2130
+ focusPreviousYearColumn(params) {
2131
+ const { context, event } = params;
2132
+ setFocusedValue(params, context.get("focusedValue").subtract({ years: event.columns }));
2133
+ },
2134
+ focusNextYearColumn(params) {
2135
+ const { context, event } = params;
2136
+ setFocusedValue(params, context.get("focusedValue").add({ years: event.columns }));
2137
+ },
2138
+ focusFirstMonth(params) {
2139
+ const { context } = params;
2140
+ const focused = context.get("focusedValue");
2141
+ const minMonth = focused.calendar.getMinimumMonthInYear?.(focused) ?? 1;
2142
+ setFocusedValue(params, focused.set({ month: minMonth }));
2143
+ },
2144
+ focusLastMonth(params) {
2145
+ const { context } = params;
2146
+ const focused = context.get("focusedValue");
2147
+ const maxMonth = focused.calendar.getMonthsInYear(focused);
2148
+ setFocusedValue(params, focused.set({ month: maxMonth }));
2149
+ },
2150
+ focusFirstYear(params) {
2151
+ const { context } = params;
2152
+ const range = require_date_utils.getDecadeRange(context.get("focusedValue").year);
2153
+ setFocusedValue(params, context.get("focusedValue").set({ year: range[0] }));
2154
+ },
2155
+ focusLastYear(params) {
2156
+ const { context } = params;
2157
+ const range = require_date_utils.getDecadeRange(context.get("focusedValue").year);
2158
+ setFocusedValue(params, context.get("focusedValue").set({ year: range[range.length - 1] }));
2159
+ },
2160
+ setActiveIndex({ context, event }) {
2161
+ context.set("activeIndex", event.index);
2162
+ },
2163
+ setActiveIndexToEnd({ context }) {
2164
+ context.set("activeIndex", 1);
2165
+ },
2166
+ setActiveIndexToStart({ context }) {
2167
+ context.set("activeIndex", 0);
2168
+ },
2169
+ focusActiveCell({ scope, context, event }) {
2170
+ if (event.src === "input.click") return;
2171
+ require_raf.raf(() => {
2172
+ const view = context.get("view");
2173
+ getFocusedCell(scope, view)?.focus({ preventScroll: true });
2174
+ });
2175
+ },
2176
+ focusActiveCellIfNeeded({ scope, context, event }) {
2177
+ if (!event.focus) return;
2178
+ require_raf.raf(() => {
2179
+ const view = context.get("view");
2180
+ getFocusedCell(scope, view)?.focus({ preventScroll: true });
2181
+ });
2182
+ },
2183
+ setHoveredValueIfKeyboard({ context, event, prop }) {
2184
+ if (!event.type.startsWith("TABLE.ARROW") || prop("selectionMode") !== "range" || context.get("activeIndex") === 0) return;
2185
+ context.set("hoveredValue", context.get("focusedValue").copy());
2186
+ },
2187
+ focusTriggerElement({ scope }) {
2188
+ require_raf.raf(() => {
2189
+ getTriggerEl(scope)?.focus({ preventScroll: true });
2190
+ });
2191
+ },
2192
+ focusFirstInputElement({ scope, event }) {
2193
+ if (event.focus === false) return;
2194
+ require_raf.raf(() => {
2195
+ const [inputEl] = getInputEls(scope);
2196
+ (inputEl ?? getTriggerEl(scope))?.focus({ preventScroll: true });
2197
+ });
2198
+ },
2199
+ focusInputElement({ scope }) {
2200
+ require_raf.raf(() => {
2201
+ const inputEls = getInputEls(scope);
2202
+ if (inputEls.length === 0) {
2203
+ getTriggerEl(scope)?.focus({ preventScroll: true });
2204
+ return;
2205
+ }
2206
+ const lastIndexWithValue = inputEls.findLastIndex((inputEl) => inputEl.value !== "");
2207
+ const inputEl = inputEls[Math.max(lastIndexWithValue, 0)];
2208
+ inputEl?.focus({ preventScroll: true });
2209
+ inputEl?.setSelectionRange(inputEl.value.length, inputEl.value.length);
2210
+ });
2211
+ },
2212
+ syncMonthSelectElement({ scope, context }) {
2213
+ require_form.setElementValue(getMonthSelectEl(scope), context.get("startValue").month.toString());
2214
+ },
2215
+ syncYearSelectElement({ scope, context }) {
2216
+ require_form.setElementValue(getYearSelectEl(scope), context.get("startValue").year.toString());
2217
+ },
2218
+ setInputValue({ context, event }) {
2219
+ if (context.get("activeIndex") !== event.index) return;
2220
+ context.set("inputValue", event.value);
2221
+ },
2222
+ syncInputValue({ scope, context, event }) {
2223
+ queueMicrotask(() => {
2224
+ require_form.setElementValue(getInputEls(scope)[event.index ?? context.get("activeIndex")], context.get("inputValue"));
2225
+ });
2226
+ },
2227
+ focusParsedDate(params) {
2228
+ const { event, prop } = params;
2229
+ if (event.index == null) return;
2230
+ const date = prop("parse")(event.value, {
2231
+ locale: prop("locale"),
2232
+ timeZone: prop("timeZone")
2233
+ });
2234
+ if (!date || !isValidDate(date)) return;
2235
+ setFocusedValue(params, date);
2236
+ },
2237
+ selectParsedDate({ context, event, prop }) {
2238
+ if (event.index == null) return;
2239
+ let date = prop("parse")(event.value, {
2240
+ locale: prop("locale"),
2241
+ timeZone: prop("timeZone")
2242
+ });
2243
+ if (!date || !isValidDate(date)) {
2244
+ if (event.value) date = context.get("focusedValue").copy();
2245
+ }
2246
+ if (!date) return;
2247
+ date = require_date_utils.constrainValue(date, prop("min"), prop("max"));
2248
+ const values = Array.from(context.get("value"));
2249
+ values[event.index] = preserveTime(values[event.index], date);
2250
+ const adjustedValues = adjustStartAndEndDate(values);
2251
+ context.set("value", adjustedValues);
2252
+ const valueAsString = getValueAsString(adjustedValues, prop);
2253
+ context.set("inputValue", valueAsString[event.index]);
2254
+ },
2255
+ resetView({ context }) {
2256
+ context.set("view", context.initial("view"));
2257
+ },
2258
+ setStartValue({ context, computed, prop }) {
2259
+ const focusedValue = context.get("focusedValue");
2260
+ if (!require_date_utils.isDateOutsideRange(focusedValue, context.get("startValue"), computed("endValue"))) return;
2261
+ const startValue = require_date_utils.alignDate(focusedValue, "start", { months: prop("numOfMonths") }, prop("locale"));
2262
+ context.set("startValue", startValue);
2263
+ },
2264
+ invokeOnOpen({ prop, context }) {
2265
+ if (prop("inline")) return;
2266
+ prop("onOpenChange")?.({
2267
+ open: true,
2268
+ value: context.get("value")
2269
+ });
2270
+ },
2271
+ invokeOnClose({ prop, context }) {
2272
+ if (prop("inline")) return;
2273
+ prop("onOpenChange")?.({
2274
+ open: false,
2275
+ value: context.get("value")
2276
+ });
2277
+ },
2278
+ invokeOnVisibleRangeChange({ prop, context, computed }) {
2279
+ prop("onVisibleRangeChange")?.({
2280
+ view: context.get("view"),
2281
+ visibleRange: computed("visibleRange")
2282
+ });
2283
+ },
2284
+ toggleVisibility({ event, send, prop }) {
2285
+ send({
2286
+ type: prop("open") ? "CONTROLLED.OPEN" : "CONTROLLED.CLOSE",
2287
+ previousEvent: event
2288
+ });
2289
+ }
2290
+ }
2291
+ }
2292
+ });
2293
+ const normalizeValue = (ctx, value) => {
2294
+ const { context, prop } = ctx;
2295
+ const view = context.get("view");
2296
+ let dateValue = typeof value === "number" ? context.get("focusedValue").set({ [view]: value }) : value;
2297
+ eachView((view) => {
2298
+ if (isBelowMinView(view, prop("minView"))) dateValue = dateValue.set({ [view]: view === "day" ? 1 : 0 });
2299
+ });
2300
+ return dateValue;
2301
+ };
2302
+ const preserveTime = (existingDate, newDate) => {
2303
+ if (!existingDate || !("hour" in existingDate)) return newDate;
2304
+ const isZoned = "timeZone" in existingDate;
2305
+ let dateWithTime = newDate;
2306
+ if (!("hour" in newDate)) if (isZoned) dateWithTime = (0, _internationalized_date.toZoned)((0, _internationalized_date.toCalendarDateTime)(newDate), existingDate.timeZone);
2307
+ else dateWithTime = (0, _internationalized_date.toCalendarDateTime)(newDate);
2308
+ return dateWithTime.set({
2309
+ hour: existingDate.hour,
2310
+ minute: existingDate.minute,
2311
+ second: existingDate.second,
2312
+ millisecond: existingDate.millisecond
2313
+ });
2314
+ };
2315
+ function setFocusedValue(ctx, mixedValue) {
2316
+ const { context, prop, computed } = ctx;
2317
+ if (!mixedValue) return;
2318
+ const value = normalizeValue(ctx, mixedValue);
2319
+ if (require_date_utils.isDateEqual(context.get("focusedValue"), value)) return;
2320
+ const adjustedValue = require_date_utils.getAdjustedDateFn(computed("visibleDuration"), prop("locale"), prop("min"), prop("max"))({
2321
+ focusedDate: value,
2322
+ startDate: context.get("startValue")
2323
+ });
2324
+ context.set("startValue", adjustedValue.startDate);
2325
+ context.set("focusedValue", adjustedValue.focusedDate);
2326
+ }
2327
+ function setAdjustedValue(ctx, value) {
2328
+ const { context } = ctx;
2329
+ context.set("startValue", value.startDate);
2330
+ if (require_date_utils.isDateEqual(context.get("focusedValue"), value.focusedDate)) return;
2331
+ context.set("focusedValue", value.focusedDate);
2332
+ }
2333
+ //#endregion
2334
+ //#region src/machines/date-picker/parse.ts
2335
+ function parse(value) {
2336
+ if (Array.isArray(value)) return value.map((v) => parse(v));
2337
+ if (value instanceof Date) return new _internationalized_date.CalendarDate(value.getFullYear(), value.getMonth() + 1, value.getDate());
2338
+ return (0, _internationalized_date.parseDate)(value);
2339
+ }
2340
+ //#endregion
2341
+ //#region src/machines/date-picker/props.ts
2342
+ const props = require_create_props.createProps()([
2343
+ "closeOnSelect",
2344
+ "createCalendar",
2345
+ "dir",
2346
+ "disabled",
2347
+ "fixedWeeks",
2348
+ "focusedValue",
2349
+ "format",
2350
+ "parse",
2351
+ "placeholder",
2352
+ "getRootNode",
2353
+ "id",
2354
+ "ids",
2355
+ "inline",
2356
+ "invalid",
2357
+ "isDateUnavailable",
2358
+ "locale",
2359
+ "max",
2360
+ "maxSelectedDates",
2361
+ "min",
2362
+ "name",
2363
+ "numOfMonths",
2364
+ "onFocusChange",
2365
+ "onOpenChange",
2366
+ "onValueChange",
2367
+ "onViewChange",
2368
+ "onVisibleRangeChange",
2369
+ "open",
2370
+ "openOnClick",
2371
+ "defaultOpen",
2372
+ "positioning",
2373
+ "readOnly",
2374
+ "required",
2375
+ "selectionMode",
2376
+ "showWeekNumbers",
2377
+ "startOfWeek",
2378
+ "timeZone",
2379
+ "translations",
2380
+ "value",
2381
+ "defaultView",
2382
+ "defaultValue",
2383
+ "view",
2384
+ "defaultFocusedValue",
2385
+ "outsideDaySelectable",
2386
+ "minView",
2387
+ "maxView"
2388
+ ]);
2389
+ const splitProps = require_utils.createSplitProps(props);
2390
+ const inputProps = require_create_props.createProps()(["index", "fixOnBlur"]);
2391
+ const splitInputProps = require_utils.createSplitProps(inputProps);
2392
+ const presetTriggerProps = require_create_props.createProps()(["value"]);
2393
+ const splitPresetTriggerProps = require_utils.createSplitProps(presetTriggerProps);
2394
+ const tableProps = require_create_props.createProps()([
2395
+ "columns",
2396
+ "id",
2397
+ "view"
2398
+ ]);
2399
+ const splitTableProps = require_utils.createSplitProps(tableProps);
2400
+ const tableCellProps = require_create_props.createProps()([
2401
+ "disabled",
2402
+ "value",
2403
+ "columns"
2404
+ ]);
2405
+ const splitTableCellProps = require_utils.createSplitProps(tableCellProps);
2406
+ const viewProps = require_create_props.createProps()(["view"]);
2407
+ const splitViewProps = require_utils.createSplitProps(viewProps);
2408
+ //#endregion
2409
+ exports.anatomy = anatomy;
2410
+ exports.connect = connect;
2411
+ exports.inputProps = inputProps;
2412
+ exports.machine = machine;
2413
+ exports.parse = parse;
2414
+ exports.presetTriggerProps = presetTriggerProps;
2415
+ exports.props = props;
2416
+ exports.splitInputProps = splitInputProps;
2417
+ exports.splitPresetTriggerProps = splitPresetTriggerProps;
2418
+ exports.splitProps = splitProps;
2419
+ exports.splitTableCellProps = splitTableCellProps;
2420
+ exports.splitTableProps = splitTableProps;
2421
+ exports.splitViewProps = splitViewProps;
2422
+ exports.tableCellProps = tableCellProps;
2423
+ exports.tableProps = tableProps;
2424
+ exports.viewProps = viewProps;