@rpcbase/ui 0.194.0 → 0.195.0

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 (445) hide show
  1. package/dist/components/DayPickerField/index.d.ts.map +1 -1
  2. package/dist/index100.js +6 -5
  3. package/dist/index100.js.map +1 -1
  4. package/dist/index101.js +24 -4
  5. package/dist/index101.js.map +1 -1
  6. package/dist/index102.js +6 -8
  7. package/dist/index102.js.map +1 -1
  8. package/dist/index103.js +4 -5
  9. package/dist/index103.js.map +1 -1
  10. package/dist/index104.js +6 -4
  11. package/dist/index104.js.map +1 -1
  12. package/dist/index105.js +5 -4
  13. package/dist/index105.js.map +1 -1
  14. package/dist/index106.js +4 -6
  15. package/dist/index106.js.map +1 -1
  16. package/dist/index107.js +5 -145
  17. package/dist/index107.js.map +1 -1
  18. package/dist/index108.js +4 -39
  19. package/dist/index108.js.map +1 -1
  20. package/dist/index109.js +8 -4
  21. package/dist/index109.js.map +1 -1
  22. package/dist/index110.js +5 -7
  23. package/dist/index110.js.map +1 -1
  24. package/dist/index111.js +4 -13
  25. package/dist/index111.js.map +1 -1
  26. package/dist/index112.js +4 -13
  27. package/dist/index112.js.map +1 -1
  28. package/dist/index113.js +6 -7
  29. package/dist/index113.js.map +1 -1
  30. package/dist/index114.js +145 -31
  31. package/dist/index114.js.map +1 -1
  32. package/dist/index115.js +39 -10
  33. package/dist/index115.js.map +1 -1
  34. package/dist/index116.js +4 -10
  35. package/dist/index116.js.map +1 -1
  36. package/dist/index117.js +7 -8
  37. package/dist/index117.js.map +1 -1
  38. package/dist/index118.js +13 -13
  39. package/dist/index118.js.map +1 -1
  40. package/dist/index119.js +13 -101
  41. package/dist/index119.js.map +1 -1
  42. package/dist/index12.js +273 -300
  43. package/dist/index12.js.map +1 -1
  44. package/dist/index120.js +8 -20
  45. package/dist/index120.js.map +1 -1
  46. package/dist/index121.js +31 -53
  47. package/dist/index121.js.map +1 -1
  48. package/dist/index122.js +10 -72
  49. package/dist/index122.js.map +1 -1
  50. package/dist/index123.js +10 -9
  51. package/dist/index123.js.map +1 -1
  52. package/dist/index124.js +8 -20
  53. package/dist/index124.js.map +1 -1
  54. package/dist/index125.js +13 -16
  55. package/dist/index125.js.map +1 -1
  56. package/dist/index126.js +101 -23
  57. package/dist/index126.js.map +1 -1
  58. package/dist/index127.js +20 -7
  59. package/dist/index127.js.map +1 -1
  60. package/dist/index128.js +53 -5
  61. package/dist/index128.js.map +1 -1
  62. package/dist/index129.js +72 -23
  63. package/dist/index129.js.map +1 -1
  64. package/dist/index130.js +10 -35
  65. package/dist/index130.js.map +1 -1
  66. package/dist/index131.js +21 -16
  67. package/dist/index131.js.map +1 -1
  68. package/dist/index132.js +16 -6
  69. package/dist/index132.js.map +1 -1
  70. package/dist/index133.js +23 -4
  71. package/dist/index133.js.map +1 -1
  72. package/dist/index134.js +6 -4
  73. package/dist/index134.js.map +1 -1
  74. package/dist/index135.js +5 -4
  75. package/dist/index135.js.map +1 -1
  76. package/dist/index136.js +23 -4
  77. package/dist/index136.js.map +1 -1
  78. package/dist/index137.js +35 -4
  79. package/dist/index137.js.map +1 -1
  80. package/dist/index138.js +16 -7
  81. package/dist/index138.js.map +1 -1
  82. package/dist/index139.js +7 -24
  83. package/dist/index139.js.map +1 -1
  84. package/dist/index140.js +4 -7
  85. package/dist/index140.js.map +1 -1
  86. package/dist/index141.js +4 -6
  87. package/dist/index141.js.map +1 -1
  88. package/dist/index142.js +4 -5
  89. package/dist/index142.js.map +1 -1
  90. package/dist/index143.js +4 -3
  91. package/dist/index143.js.map +1 -1
  92. package/dist/index144.js +1 -1
  93. package/dist/index144.js.map +1 -1
  94. package/dist/index145.js +6 -4
  95. package/dist/index145.js.map +1 -1
  96. package/dist/index146.js +24 -4
  97. package/dist/index146.js.map +1 -1
  98. package/dist/index147.js +7 -4
  99. package/dist/index147.js.map +1 -1
  100. package/dist/index148.js +6 -3
  101. package/dist/index148.js.map +1 -1
  102. package/dist/index149.js +5 -3
  103. package/dist/index149.js.map +1 -1
  104. package/dist/index150.js +3 -3
  105. package/dist/index150.js.map +1 -1
  106. package/dist/index151.js +3 -46
  107. package/dist/index151.js.map +1 -1
  108. package/dist/index152.js +4 -605
  109. package/dist/index152.js.map +1 -1
  110. package/dist/index153.js +3 -46
  111. package/dist/index153.js.map +1 -1
  112. package/dist/index154.js +4 -205
  113. package/dist/index154.js.map +1 -1
  114. package/dist/index155.js +4 -22
  115. package/dist/index155.js.map +1 -1
  116. package/dist/index156.js +3 -24
  117. package/dist/index156.js.map +1 -1
  118. package/dist/index157.js +3 -399
  119. package/dist/index157.js.map +1 -1
  120. package/dist/index179.js +67 -58
  121. package/dist/index179.js.map +1 -1
  122. package/dist/index180.js +180 -8
  123. package/dist/index180.js.map +1 -1
  124. package/dist/index181.js +42 -62
  125. package/dist/index181.js.map +1 -1
  126. package/dist/index182.js +23 -18
  127. package/dist/index182.js.map +1 -1
  128. package/dist/index183.js +29 -17
  129. package/dist/index183.js.map +1 -1
  130. package/dist/index184.js +5 -6
  131. package/dist/index184.js.map +1 -1
  132. package/dist/index185.js +15 -4
  133. package/dist/index185.js.map +1 -1
  134. package/dist/index186.js +5 -6
  135. package/dist/index186.js.map +1 -1
  136. package/dist/index187.js +5 -4
  137. package/dist/index187.js.map +1 -1
  138. package/dist/index188.js +58 -7
  139. package/dist/index188.js.map +1 -1
  140. package/dist/index189.js +66 -17
  141. package/dist/index189.js.map +1 -1
  142. package/dist/index190.js +6 -5
  143. package/dist/index190.js.map +1 -1
  144. package/dist/index191.js +4 -5
  145. package/dist/index191.js.map +1 -1
  146. package/dist/index192.js +7 -13
  147. package/dist/index192.js.map +1 -1
  148. package/dist/index193.js +16 -9
  149. package/dist/index193.js.map +1 -1
  150. package/dist/index194.js +5 -14
  151. package/dist/index194.js.map +1 -1
  152. package/dist/index195.js +5 -14
  153. package/dist/index195.js.map +1 -1
  154. package/dist/index196.js +13 -5
  155. package/dist/index196.js.map +1 -1
  156. package/dist/index197.js +9 -5
  157. package/dist/index197.js.map +1 -1
  158. package/dist/index198.js +14 -7
  159. package/dist/index198.js.map +1 -1
  160. package/dist/index199.js +14 -6
  161. package/dist/index199.js.map +1 -1
  162. package/dist/index200.js +5 -9
  163. package/dist/index200.js.map +1 -1
  164. package/dist/index201.js +6 -5
  165. package/dist/index201.js.map +1 -1
  166. package/dist/index202.js +7 -5
  167. package/dist/index202.js.map +1 -1
  168. package/dist/index203.js +6 -9
  169. package/dist/index203.js.map +1 -1
  170. package/dist/index204.js +9 -5
  171. package/dist/index204.js.map +1 -1
  172. package/dist/index205.js +5 -5
  173. package/dist/index205.js.map +1 -1
  174. package/dist/index206.js +5 -4
  175. package/dist/index206.js.map +1 -1
  176. package/dist/index207.js +9 -11
  177. package/dist/index207.js.map +1 -1
  178. package/dist/index208.js +5 -10
  179. package/dist/index208.js.map +1 -1
  180. package/dist/index209.js +5 -10
  181. package/dist/index209.js.map +1 -1
  182. package/dist/index210.js +4 -11
  183. package/dist/index210.js.map +1 -1
  184. package/dist/index211.js +11 -11
  185. package/dist/index211.js.map +1 -1
  186. package/dist/index212.js +10 -10
  187. package/dist/index212.js.map +1 -1
  188. package/dist/index213.js +10 -7
  189. package/dist/index213.js.map +1 -1
  190. package/dist/index214.js +11 -6
  191. package/dist/index214.js.map +1 -1
  192. package/dist/index215.js +11 -5
  193. package/dist/index215.js.map +1 -1
  194. package/dist/index216.js +10 -6
  195. package/dist/index216.js.map +1 -1
  196. package/dist/index217.js +7 -7
  197. package/dist/index217.js.map +1 -1
  198. package/dist/index218.js +6 -6
  199. package/dist/index218.js.map +1 -1
  200. package/dist/index219.js +5 -55
  201. package/dist/index219.js.map +1 -1
  202. package/dist/index220.js +6 -16
  203. package/dist/index220.js.map +1 -1
  204. package/dist/index221.js +7 -7
  205. package/dist/index221.js.map +1 -1
  206. package/dist/index222.js +6 -10
  207. package/dist/index222.js.map +1 -1
  208. package/dist/index223.js +55 -10
  209. package/dist/index223.js.map +1 -1
  210. package/dist/index224.js +8 -21
  211. package/dist/index224.js.map +1 -1
  212. package/dist/index225.js +19 -10
  213. package/dist/index225.js.map +1 -1
  214. package/dist/index226.js +16 -9
  215. package/dist/index226.js.map +1 -1
  216. package/dist/index227.js +7 -9
  217. package/dist/index227.js.map +1 -1
  218. package/dist/index228.js +10 -4
  219. package/dist/index228.js.map +1 -1
  220. package/dist/index229.js +10 -5
  221. package/dist/index229.js.map +1 -1
  222. package/dist/index230.js +21 -16
  223. package/dist/index230.js.map +1 -1
  224. package/dist/index231.js +10 -9
  225. package/dist/index231.js.map +1 -1
  226. package/dist/index232.js +9 -18
  227. package/dist/index232.js.map +1 -1
  228. package/dist/index233.js +9 -15
  229. package/dist/index233.js.map +1 -1
  230. package/dist/index234.js +4 -12
  231. package/dist/index234.js.map +1 -1
  232. package/dist/index235.js +5 -29
  233. package/dist/index235.js.map +1 -1
  234. package/dist/index236.js +15 -11
  235. package/dist/index236.js.map +1 -1
  236. package/dist/index237.js +9 -25
  237. package/dist/index237.js.map +1 -1
  238. package/dist/index238.js +18 -5
  239. package/dist/index238.js.map +1 -1
  240. package/dist/index239.js +13 -65
  241. package/dist/index239.js.map +1 -1
  242. package/dist/index240.js +12 -180
  243. package/dist/index240.js.map +1 -1
  244. package/dist/index241.js +28 -45
  245. package/dist/index241.js.map +1 -1
  246. package/dist/index242.js +12 -24
  247. package/dist/index242.js.map +1 -1
  248. package/dist/index243.js +26 -29
  249. package/dist/index243.js.map +1 -1
  250. package/dist/index244.js +6 -5
  251. package/dist/index244.js.map +1 -1
  252. package/dist/index270.js +5 -5
  253. package/dist/index270.js.map +1 -1
  254. package/dist/index271.js +3 -19
  255. package/dist/index271.js.map +1 -1
  256. package/dist/index272.js +23 -12
  257. package/dist/index272.js.map +1 -1
  258. package/dist/index273.js +113 -5
  259. package/dist/index273.js.map +1 -1
  260. package/dist/index274.js +16 -3
  261. package/dist/index274.js.map +1 -1
  262. package/dist/index275.js +522 -21
  263. package/dist/index275.js.map +1 -1
  264. package/dist/index276.js +127 -112
  265. package/dist/index276.js.map +1 -1
  266. package/dist/index277.js +133 -15
  267. package/dist/index277.js.map +1 -1
  268. package/dist/index278.js +4 -524
  269. package/dist/index278.js.map +1 -1
  270. package/dist/index279.js +18 -127
  271. package/dist/index279.js.map +1 -1
  272. package/dist/index280.js +12 -133
  273. package/dist/index280.js.map +1 -1
  274. package/dist/index282.js +69 -6
  275. package/dist/index282.js.map +1 -1
  276. package/dist/index283.js +9 -6
  277. package/dist/index283.js.map +1 -1
  278. package/dist/index284.js +14 -4
  279. package/dist/index284.js.map +1 -1
  280. package/dist/index285.js +65 -15
  281. package/dist/index285.js.map +1 -1
  282. package/dist/index286.js +64 -8
  283. package/dist/index286.js.map +1 -1
  284. package/dist/index287.js +5 -5
  285. package/dist/index287.js.map +1 -1
  286. package/dist/index288.js +5 -4
  287. package/dist/index288.js.map +1 -1
  288. package/dist/index289.js +4 -546
  289. package/dist/index289.js.map +1 -1
  290. package/dist/index290.js +16 -47
  291. package/dist/index290.js.map +1 -1
  292. package/dist/index291.js +8 -17
  293. package/dist/index291.js.map +1 -1
  294. package/dist/index292.js +5 -6
  295. package/dist/index292.js.map +1 -1
  296. package/dist/index293.js +4 -8
  297. package/dist/index293.js.map +1 -1
  298. package/dist/index294.js +545 -7
  299. package/dist/index294.js.map +1 -1
  300. package/dist/index295.js +47 -9
  301. package/dist/index295.js.map +1 -1
  302. package/dist/index296.js +17 -12
  303. package/dist/index296.js.map +1 -1
  304. package/dist/index297.js +6 -9
  305. package/dist/index297.js.map +1 -1
  306. package/dist/index298.js +8 -13
  307. package/dist/index298.js.map +1 -1
  308. package/dist/index299.js +7 -64
  309. package/dist/index299.js.map +1 -1
  310. package/dist/index300.js +9 -69
  311. package/dist/index300.js.map +1 -1
  312. package/dist/index301.js +13 -9
  313. package/dist/index301.js.map +1 -1
  314. package/dist/index302.js +10 -14
  315. package/dist/index302.js.map +1 -1
  316. package/dist/index303.js +14 -66
  317. package/dist/index303.js.map +1 -1
  318. package/dist/index304.js +3 -4
  319. package/dist/index304.js.map +1 -1
  320. package/dist/index305.js +23 -56
  321. package/dist/index305.js.map +1 -1
  322. package/dist/index306.js +5 -68
  323. package/dist/index306.js.map +1 -1
  324. package/dist/index307.js +55 -30
  325. package/dist/index307.js.map +1 -1
  326. package/dist/index308.js +68 -9
  327. package/dist/index308.js.map +1 -1
  328. package/dist/index309.js +26 -148
  329. package/dist/index309.js.map +1 -1
  330. package/dist/index31.js +5 -5
  331. package/dist/index310.js +9 -108
  332. package/dist/index310.js.map +1 -1
  333. package/dist/index311.js +153 -4
  334. package/dist/index311.js.map +1 -1
  335. package/dist/index312.js +108 -23
  336. package/dist/index312.js.map +1 -1
  337. package/dist/index313.js +22 -15
  338. package/dist/index313.js.map +1 -1
  339. package/dist/index314.js +12 -28
  340. package/dist/index314.js.map +1 -1
  341. package/dist/index315.js +27 -12
  342. package/dist/index315.js.map +1 -1
  343. package/dist/index316.js +5 -7
  344. package/dist/index316.js.map +1 -1
  345. package/dist/index317.js +15 -22
  346. package/dist/index317.js.map +1 -1
  347. package/dist/index318.js +28 -12
  348. package/dist/index318.js.map +1 -1
  349. package/dist/index319.js +12 -27
  350. package/dist/index319.js.map +1 -1
  351. package/dist/index32.js +24 -24
  352. package/dist/index320.js +7 -5
  353. package/dist/index320.js.map +1 -1
  354. package/dist/index33.js +3 -3
  355. package/dist/index41.js +20 -20
  356. package/dist/index45.js +1 -1
  357. package/dist/index46.js +1 -1
  358. package/dist/index51.js +7 -7
  359. package/dist/index52.js +7 -2
  360. package/dist/index52.js.map +1 -1
  361. package/dist/index53.js +34 -2
  362. package/dist/index53.js.map +1 -1
  363. package/dist/index54.js +25 -5
  364. package/dist/index54.js.map +1 -1
  365. package/dist/index55.js +7 -33
  366. package/dist/index55.js.map +1 -1
  367. package/dist/index56.js +11 -26
  368. package/dist/index56.js.map +1 -1
  369. package/dist/index57.js +3 -7
  370. package/dist/index57.js.map +1 -1
  371. package/dist/index58.js +47 -11
  372. package/dist/index58.js.map +1 -1
  373. package/dist/index59.js +50 -3
  374. package/dist/index59.js.map +1 -1
  375. package/dist/index60.js +7 -47
  376. package/dist/index60.js.map +1 -1
  377. package/dist/index61.js +12 -48
  378. package/dist/index61.js.map +1 -1
  379. package/dist/index62.js +133 -7
  380. package/dist/index62.js.map +1 -1
  381. package/dist/index63.js +10 -14
  382. package/dist/index63.js.map +1 -1
  383. package/dist/index64.js +210 -127
  384. package/dist/index64.js.map +1 -1
  385. package/dist/index65.js +12 -10
  386. package/dist/index65.js.map +1 -1
  387. package/dist/index66.js +44 -214
  388. package/dist/index66.js.map +1 -1
  389. package/dist/index67.js +49 -12
  390. package/dist/index67.js.map +1 -1
  391. package/dist/index68.js +4 -47
  392. package/dist/index68.js.map +1 -1
  393. package/dist/index69.js +5 -49
  394. package/dist/index69.js.map +1 -1
  395. package/dist/index70.js +28 -4
  396. package/dist/index70.js.map +1 -1
  397. package/dist/index71.js +50 -6
  398. package/dist/index71.js.map +1 -1
  399. package/dist/index72.js +9 -28
  400. package/dist/index72.js.map +1 -1
  401. package/dist/index73.js +2 -50
  402. package/dist/index73.js.map +1 -1
  403. package/dist/index74.js +2 -9
  404. package/dist/index74.js.map +1 -1
  405. package/dist/index80.js +606 -52
  406. package/dist/index80.js.map +1 -1
  407. package/dist/index81.js +46 -4
  408. package/dist/index81.js.map +1 -1
  409. package/dist/index82.js +46 -4
  410. package/dist/index82.js.map +1 -1
  411. package/dist/index83.js +205 -15
  412. package/dist/index83.js.map +1 -1
  413. package/dist/index84.js +22 -6
  414. package/dist/index84.js.map +1 -1
  415. package/dist/index85.js +24 -7
  416. package/dist/index85.js.map +1 -1
  417. package/dist/index86.js +399 -16
  418. package/dist/index86.js.map +1 -1
  419. package/dist/index87.js +52 -5
  420. package/dist/index87.js.map +1 -1
  421. package/dist/index88.js +4 -4
  422. package/dist/index88.js.map +1 -1
  423. package/dist/index89.js +4 -5
  424. package/dist/index89.js.map +1 -1
  425. package/dist/index90.js +15 -5
  426. package/dist/index90.js.map +1 -1
  427. package/dist/index91.js +4 -3
  428. package/dist/index91.js.map +1 -1
  429. package/dist/index92.js +6 -3
  430. package/dist/index92.js.map +1 -1
  431. package/dist/index93.js +15 -5
  432. package/dist/index93.js.map +1 -1
  433. package/dist/index94.js +4 -24
  434. package/dist/index94.js.map +1 -1
  435. package/dist/index95.js +4 -6
  436. package/dist/index95.js.map +1 -1
  437. package/dist/index96.js +5 -4
  438. package/dist/index96.js.map +1 -1
  439. package/dist/index97.js +5 -6
  440. package/dist/index97.js.map +1 -1
  441. package/dist/index98.js +3 -4
  442. package/dist/index98.js.map +1 -1
  443. package/dist/index99.js +4 -4
  444. package/dist/index99.js.map +1 -1
  445. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index12.js","sources":["../src/components/DayPickerField/index.tsx"],"sourcesContent":["import { ChevronLeft, ChevronRight, CalendarDays } from \"lucide-react\"\nimport * as React from \"react\"\nimport { DismissableLayerBranch } from \"@radix-ui/react-dismissable-layer\"\nimport { createPortal } from \"react-dom\"\nimport { DayPicker as ReactDayPicker, dateMatchModifiers } from \"react-day-picker\"\nimport { IMaskInput } from \"react-imask\"\nimport IMask, { InputMask } from \"imask\"\n\nimport { useIsTouchDevice } from \"@/helpers/useIsTouchDevice\"\nimport { cn } from \"@/lib/utils\"\n\n\n// WARNING: used to preserve input mask even with tree shaking\n// DO NOT REMOVE THIS CODE OR THIS COMMENT\nconst imaskAny = IMask as any\nif (typeof imaskAny.InputMask !== \"function\") {\n imaskAny.InputMask = InputMask\n}\n\n\nexport type DayPickerProps = React.ComponentProps<typeof ReactDayPicker>\n\nexport function DayPicker({\n className,\n classNames,\n components,\n showOutsideDays = true,\n ...props\n}: DayPickerProps) {\n return (\n <ReactDayPicker\n weekStartsOn={1}\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n month: \"space-y-4\",\n months: \"flex flex-col sm:flex-row space-y-4 sm:space-y-0 relative gap-2\",\n month_caption: \"flex justify-center pt-1 relative items-center\",\n month_grid: \"w-full border-collapse space-y-1\",\n caption_label: \"text-sm font-medium\",\n nav: \"flex items-center justify-between absolute inset-x-0 z-10\",\n button_previous:\n \"inline-flex h-7 w-7 items-center justify-center rounded-md border border-input bg-transparent p-0 opacity-50 shadow-sm transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 z-10\",\n button_next:\n \"inline-flex h-7 w-7 items-center justify-center rounded-md border border-input bg-transparent p-0 opacity-50 shadow-sm transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 z-10\",\n weeks: \"w-full border-collapse\",\n weekdays: \"flex\",\n weekday: \"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]\",\n week: \"flex w-full mt-2\",\n day: \"h-9 w-9 p-0 font-normal aria-selected:opacity-100 rounded-md first:aria-selected:rounded-l-md last:aria-selected:rounded-r-md\",\n day_button:\n \"inline-flex h-9 w-9 items-center justify-center rounded-md p-0 text-center text-sm font-normal transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n range_start:\n \"day-range-start !bg-accent rounded-l-md [&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground\",\n range_end:\n \"day-range-end !bg-accent rounded-r-md [&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground\",\n range_middle: \"aria-selected:bg-accent aria-selected:text-accent-foreground !rounded-none\",\n day_selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n day_today: \"bg-accent text-accent-foreground\",\n day_outside: \"day-outside text-muted-foreground aria-selected:text-muted-foreground\",\n day_disabled: \"text-muted-foreground opacity-50\",\n day_hidden: \"invisible\",\n selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n today: \"bg-gray-50 text-accent-foreground !rounded-md\",\n outside:\n \"day-outside text-muted-foreground opacity-50 !aria-selected:bg-accent/50 !aria-selected:text-muted-foreground !aria-selected:opacity-30\",\n disabled: \"text-muted-foreground opacity-50\",\n hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n Chevron: (chevronProps) =>\n chevronProps.orientation === \"left\" ? (\n <ChevronLeft {...chevronProps} className=\"h-4 w-4\" />\n ) : (\n <ChevronRight {...chevronProps} className=\"h-4 w-4\" />\n ),\n ...components,\n }}\n {...props}\n />\n )\n}\n\nDayPicker.displayName = \"DayPicker\"\n\nfunction pad2(value: number) {\n return String(value).padStart(2, \"0\")\n}\n\nfunction startOfDay(date: Date) {\n const next = new Date(date)\n next.setHours(0, 0, 0, 0)\n return next\n}\n\nfunction startOfMonth(date: Date) {\n return startOfDay(new Date(date.getFullYear(), date.getMonth(), 1))\n}\n\nfunction monthIndex(date: Date) {\n return date.getFullYear() * 12 + date.getMonth()\n}\n\nfunction monthFromIndex(index: number) {\n const year = Math.floor(index / 12)\n const month = index - year * 12\n return startOfDay(new Date(year, month, 1))\n}\n\nfunction formatDayInput(date: Date) {\n return `${pad2(date.getDate())}/${pad2(date.getMonth() + 1)}/${date.getFullYear()}`\n}\n\nfunction buildDate({ day, month, year }: { day: number; month: number; year: number }): Date | null {\n if (!Number.isFinite(day) || !Number.isFinite(month) || !Number.isFinite(year)) return null\n\n const date = new Date(year, month - 1, day)\n if (\n date.getFullYear() !== year ||\n date.getMonth() !== month - 1 ||\n date.getDate() !== day\n ) {\n return null\n }\n\n return startOfDay(date)\n}\n\nfunction parseDayInput(value: string, now: Date): Date | null {\n const trimmed = value.trim()\n if (!trimmed) return null\n\n const full = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/.exec(trimmed)\n if (full) {\n return buildDate({ day: Number(full[1]), month: Number(full[2]), year: Number(full[3]) })\n }\n\n const shortYear = /^(\\d{2})\\/(\\d{2})\\/(\\d{2})$/.exec(trimmed)\n if (shortYear) {\n const year = Number(shortYear[3])\n if (!Number.isFinite(year)) return null\n return buildDate({ day: Number(shortYear[1]), month: Number(shortYear[2]), year: 2000 + year })\n }\n\n const noYear = /^(\\d{2})\\/(\\d{2})$/.exec(trimmed)\n if (noYear) {\n return buildDate({ day: Number(noYear[1]), month: Number(noYear[2]), year: now.getFullYear() })\n }\n\n return null\n}\n\nexport type DayPickerInputProps = Omit<\n React.ComponentProps<\"input\">,\n \"value\" | \"defaultValue\" | \"onChange\" | \"type\"\n> & {\n value: Date | null\n onChange: (value: Date | null) => void\n onValueUpdate?: (value: Date | null) => void\n inputClassName?: string\n open?: boolean\n onOpenChange?: (open: boolean) => void\n dayPickerComponent?: React.ComponentType<DayPickerProps>\n dayPickerProps?: Omit<DayPickerProps, \"mode\" | \"selected\" | \"onSelect\" | \"month\" | \"onMonthChange\">\n}\n\nexport const DayPickerInput = React.forwardRef<HTMLInputElement, DayPickerInputProps>(\n function DayPickerInput(\n {\n value,\n onChange,\n onValueUpdate,\n className,\n inputClassName,\n placeholder = \"DD/MM/YYYY\",\n disabled,\n readOnly,\n open: openProp,\n onOpenChange,\n dayPickerComponent,\n dayPickerProps,\n onFocus,\n onBlur,\n onKeyDown,\n onPointerDown,\n onMouseDown,\n ...rest\n },\n forwardedRef,\n ) {\n const rootRef = React.useRef<HTMLDivElement | null>(null)\n const popoverRef = React.useRef<HTMLDivElement | null>(null)\n const inputRef = React.useRef<HTMLInputElement | null>(null)\n const isFocusedRef = React.useRef(false)\n const openRef = React.useRef(false)\n const pointerDownOnInputRef = React.useRef(false)\n const inputWasFocusedOnPointerDownRef = React.useRef(false)\n const pointerDownInPopoverRef = React.useRef(false)\n const ignoreNextMaskCompleteValueRef = React.useRef<string | null>(null)\n\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false)\n const open = openProp ?? uncontrolledOpen\n const setOpen = onOpenChange ?? setUncontrolledOpen\n openRef.current = open\n const [draft, setDraft] = React.useState(() => (value ? formatDayInput(value) : \"\"))\n const draftSelection = React.useMemo(() => parseDayInput(draft, new Date()), [draft])\n const [month, setMonth] = React.useState(() => startOfMonth(value ?? new Date()))\n const monthRef = React.useRef(month)\n monthRef.current = month\n const [popoverPosition, setPopoverPosition] = React.useState(() => ({\n left: 0,\n top: 0,\n }))\n const numberOfMonths = Math.max(1, dayPickerProps?.numberOfMonths ?? 1)\n const wasOpenRef = React.useRef(open)\n\n const updateValue = React.useCallback(\n (next: Date | null) => {\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n },\n [onValueUpdate],\n )\n\n const commitValue = React.useCallback(\n (next: Date | null) => {\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n onChange(next)\n },\n [onChange, onValueUpdate],\n )\n\n React.useEffect(() => {\n if (isFocusedRef.current) return\n setDraft(value ? formatDayInput(value) : \"\")\n }, [value])\n\n React.useEffect(() => {\n const wasOpen = wasOpenRef.current\n wasOpenRef.current = open\n\n if (!open) return\n\n const nextSelection = value ?? new Date()\n const nextSelectionMonthIndex = monthIndex(nextSelection)\n\n if (!wasOpen) {\n setMonth(monthFromIndex(nextSelectionMonthIndex))\n return\n }\n\n const visibleStartMonthIndex = monthIndex(monthRef.current)\n const visibleEndMonthIndex = visibleStartMonthIndex + numberOfMonths - 1\n\n if (nextSelectionMonthIndex < visibleStartMonthIndex) {\n setMonth(monthFromIndex(nextSelectionMonthIndex))\n return\n }\n\n if (nextSelectionMonthIndex > visibleEndMonthIndex) {\n setMonth(monthFromIndex(nextSelectionMonthIndex - (numberOfMonths - 1)))\n }\n }, [numberOfMonths, open, value])\n\n React.useEffect(() => {\n if (!open) return\n if (!draftSelection) return\n\n const selectionMonthIndex = monthIndex(draftSelection)\n const visibleStartMonthIndex = monthIndex(monthRef.current)\n const visibleEndMonthIndex = visibleStartMonthIndex + numberOfMonths - 1\n\n if (selectionMonthIndex < visibleStartMonthIndex) {\n setMonth(monthFromIndex(selectionMonthIndex))\n return\n }\n\n if (selectionMonthIndex > visibleEndMonthIndex) {\n setMonth(monthFromIndex(selectionMonthIndex - (numberOfMonths - 1)))\n }\n }, [draftSelection, numberOfMonths, open])\n\n React.useEffect(() => {\n if (!open) return\n\n const ownerDocument = rootRef.current?.ownerDocument ?? document\n const ownerWindow = ownerDocument.defaultView ?? window\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target\n if (!(target instanceof Node)) return\n if (rootRef.current?.contains(target)) return\n if (popoverRef.current?.contains(target)) return\n setOpen(false)\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") return\n if (!openRef.current) return\n const target = event.target\n if (!(target instanceof Node)) return\n if (!rootRef.current?.contains(target) && !popoverRef.current?.contains(target)) return\n event.preventDefault()\n event.stopPropagation()\n setOpen(false)\n }\n\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.addEventListener(\"keydown\", handleKeyDown, true)\n return () => {\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.removeEventListener(\"keydown\", handleKeyDown, true)\n }\n }, [open])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (typeof window === \"undefined\") {\n return\n }\n if (!(\"IntersectionObserver\" in window)) {\n return\n }\n\n const root = rootRef.current\n if (!root) {\n return\n }\n\n let isActive = true\n const observer = new IntersectionObserver(entries => {\n if (!isActive) {\n return\n }\n const entry = entries[0]\n if (entry && !entry.isIntersecting) {\n setOpen(false)\n }\n })\n observer.observe(root)\n return () => {\n isActive = false\n observer.disconnect()\n }\n }, [open])\n\n const setRefs = React.useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node)\n } else if (forwardedRef) {\n forwardedRef.current = node\n }\n },\n [forwardedRef],\n )\n\n const closePopover = () => setOpen(false)\n\n const DayPickerComponent = dayPickerComponent ?? DayPicker\n\n const updatePopoverPosition = React.useCallback(() => {\n if (typeof window === \"undefined\") return\n const root = rootRef.current\n const popover = popoverRef.current\n if (!root || !popover) return\n\n const rect = root.getBoundingClientRect()\n const popoverWidth = popover.offsetWidth\n const popoverHeight = popover.offsetHeight\n const viewportWidth = window.innerWidth ?? 0\n const viewportHeight = window.innerHeight ?? 0\n const padding = 8\n\n let left = rect.left\n if (left + popoverWidth > viewportWidth - padding) {\n left = Math.max(padding, viewportWidth - popoverWidth - padding)\n }\n if (left < padding) {\n left = padding\n }\n\n let top = rect.bottom + padding\n const overflowBottom = top + popoverHeight > viewportHeight - padding\n const aboveTop = rect.top - popoverHeight - padding\n if (overflowBottom && aboveTop >= padding) {\n top = aboveTop\n }\n\n if (top < padding) {\n top = padding\n }\n if (top + popoverHeight > viewportHeight - padding) {\n top = Math.max(padding, viewportHeight - popoverHeight - padding)\n }\n\n setPopoverPosition({ left, top })\n }, [])\n\n // React Compiler rejects hook aliasing (useIsomorphicLayoutEffect pattern), so we\n // call useLayoutEffect directly and keep the SSR guard inside the effect.\n React.useLayoutEffect(() => {\n if (!open || disabled) return\n if (typeof window === \"undefined\") return\n\n updatePopoverPosition()\n const rafId = window.requestAnimationFrame(updatePopoverPosition)\n\n window.addEventListener(\"scroll\", updatePopoverPosition, true)\n window.addEventListener(\"resize\", updatePopoverPosition)\n return () => {\n window.cancelAnimationFrame(rafId)\n window.removeEventListener(\"scroll\", updatePopoverPosition, true)\n window.removeEventListener(\"resize\", updatePopoverPosition)\n }\n }, [disabled, open, updatePopoverPosition])\n\n return (\n <div ref={rootRef} data-slot=\"day-picker-input\" className={cn(\"relative group\", className)}>\n <IMaskInput\n {...rest}\n data-slot=\"day-picker-input-input\"\n disabled={disabled}\n readOnly={readOnly}\n autoComplete=\"off\"\n inputRef={setRefs}\n mask={[\n { mask: \"00/00\", lazy: true },\n { mask: \"00/00/00\", lazy: true },\n { mask: \"00/00/0000\", lazy: true },\n ]}\n dispatch={(appended, dynamicMasked) => {\n const digits = (dynamicMasked.value + appended).replace(/\\D/g, \"\")\n if (digits.length <= 4) return dynamicMasked.compiledMasks[0]\n if (digits.length <= 6) return dynamicMasked.compiledMasks[1]\n return dynamicMasked.compiledMasks[2]\n }}\n placeholder={placeholder}\n value={draft}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background py-2 pr-3 pl-[37px] text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"transition-colors group-hover:bg-accent group-hover:text-accent-foreground\",\n inputClassName\n )}\n onAccept={(nextValue) => {\n const next = typeof nextValue === \"string\" ? nextValue : String(nextValue ?? \"\")\n const previousDigitsLength = draft.replace(/\\D/g, \"\").length\n setDraft(next)\n if (next.replace(/\\D/g, \"\").length === 0) {\n if (open) {\n setMonth(startOfMonth(new Date()))\n }\n if (previousDigitsLength !== 0) {\n updateValue(null)\n }\n }\n }}\n onComplete={(completedValue) => {\n const next = typeof completedValue === \"string\"\n ? completedValue\n : String(completedValue ?? \"\")\n if (ignoreNextMaskCompleteValueRef.current === next) {\n ignoreNextMaskCompleteValueRef.current = null\n return\n }\n const parsed = parseDayInput(next, new Date())\n if (!parsed) return\n if (value && parsed.getTime() === startOfDay(value).getTime()) {\n return\n }\n updateValue(parsed)\n }}\n onPointerDown={(event) => {\n pointerDownOnInputRef.current = true\n inputWasFocusedOnPointerDownRef.current =\n typeof document !== \"undefined\" && document.activeElement === event.currentTarget\n onPointerDown?.(event)\n }}\n onMouseDown={(event) => {\n pointerDownOnInputRef.current = true\n inputWasFocusedOnPointerDownRef.current =\n typeof document !== \"undefined\" && document.activeElement === event.currentTarget\n onMouseDown?.(event)\n }}\n onFocus={(event) => {\n const shouldSelectAll =\n !pointerDownOnInputRef.current || !inputWasFocusedOnPointerDownRef.current\n pointerDownOnInputRef.current = false\n inputWasFocusedOnPointerDownRef.current = false\n isFocusedRef.current = true\n onFocus?.(event)\n if (shouldSelectAll) {\n const element = event.currentTarget\n requestAnimationFrame(() => element.select())\n }\n if (!disabled) {\n setOpen(true)\n }\n }}\n onKeyDown={(event) => {\n const wasDefaultPrevented = event.defaultPrevented\n onKeyDown?.(event)\n if (!wasDefaultPrevented && event.defaultPrevented) {\n return\n }\n\n if (event.key === \"Enter\") {\n if (!draftSelection) {\n return\n }\n event.preventDefault()\n if (open) {\n const isoDay = `${draftSelection.getFullYear()}-${pad2(draftSelection.getMonth() + 1)}-${pad2(draftSelection.getDate())}`\n const dayButton = popoverRef.current?.querySelector(\n `[data-day='${isoDay}']:not([data-outside]) button`,\n )\n if (dayButton instanceof HTMLButtonElement) {\n if (dayButton.disabled) {\n return\n }\n dayButton.focus()\n }\n }\n setDraft(formatDayInput(draftSelection))\n commitValue(draftSelection)\n setOpen(false)\n return\n }\n\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n const base = draftSelection ?? value\n if (!base) {\n return\n }\n\n const next = startOfDay(new Date(base))\n next.setDate(next.getDate() + (event.key === \"ArrowUp\" ? 1 : -1))\n\n if (dayPickerProps?.disabled && dateMatchModifiers(next, dayPickerProps.disabled)) {\n return\n }\n\n event.preventDefault()\n const formatted = formatDayInput(next)\n ignoreNextMaskCompleteValueRef.current = formatted\n setDraft(formatted)\n updateValue(next)\n }\n\n if (!open) {\n const shouldReopen =\n (event.key.length === 1 ||\n event.key === \"Backspace\" ||\n event.key === \"Delete\" ||\n event.key === \"ArrowUp\" ||\n event.key === \"ArrowDown\") &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n\n if (shouldReopen) {\n setOpen(true)\n }\n }\n\n if (event.key === \"Tab\" && !event.defaultPrevented) {\n setOpen(false)\n }\n }}\n onBlur={(event) => {\n isFocusedRef.current = false\n onBlur?.(event)\n const blurFromPopoverPointerDown = pointerDownInPopoverRef.current\n pointerDownInPopoverRef.current = false\n if (blurFromPopoverPointerDown) {\n return\n }\n\n const relatedTarget = event.relatedTarget\n if (relatedTarget instanceof Node) {\n const root = rootRef.current\n if (!root) {\n return\n }\n\n if (root.contains(relatedTarget) || popoverRef.current?.contains(relatedTarget)) {\n return\n }\n }\n\n if (open && typeof window !== \"undefined\") {\n requestAnimationFrame(() => {\n const root = rootRef.current\n if (!root) {\n return\n }\n const activeElement = document.activeElement\n if (\n activeElement &&\n (root.contains(activeElement) || popoverRef.current?.contains(activeElement))\n ) {\n return\n }\n setOpen(false)\n })\n }\n const trimmed = draft.trim()\n if (trimmed === \"\") {\n if (value) {\n setDraft(\"\")\n commitValue(null)\n }\n return\n }\n const parsed = parseDayInput(trimmed, new Date())\n if (parsed) {\n setDraft(formatDayInput(parsed))\n if (!value || parsed.getTime() !== startOfDay(value).getTime()) {\n commitValue(parsed)\n }\n return\n }\n setDraft(value ? formatDayInput(value) : \"\")\n }}\n />\n\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n aria-label=\"Open calendar\"\n data-slot=\"day-picker-input-trigger\"\n className=\"absolute left-[13px] top-1/2 -translate-y-1/2 text-muted-foreground transition-colors group-hover:text-accent-foreground\"\n onPointerDown={(event) => {\n event.preventDefault()\n if (disabled) {\n return\n }\n inputRef.current?.focus({ preventScroll: true })\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n if (disabled) {\n return\n }\n inputRef.current?.focus({ preventScroll: true })\n }}\n onClick={() => {\n if (disabled) {\n return\n }\n inputRef.current?.focus({ preventScroll: true })\n setOpen(true)\n }}\n >\n <CalendarDays aria-hidden className=\"size-4\" />\n </button>\n\n {open && !disabled && (() => {\n const selectedDay = draft.trim() === \"\"\n ? undefined\n : draftSelection ?? value ?? undefined\n\n const popover = (\n <DismissableLayerBranch>\n <div\n ref={popoverRef}\n data-slot=\"day-picker-input-popover\"\n className=\"pointer-events-auto fixed z-[60] w-max rounded-md border bg-popover text-popover-foreground shadow-md\"\n style={{ left: popoverPosition.left, top: popoverPosition.top }}\n onPointerDownCapture={() => {\n pointerDownInPopoverRef.current = true\n }}\n onMouseDownCapture={() => {\n pointerDownInPopoverRef.current = true\n }}\n >\n <DayPickerComponent\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={selectedDay}\n onSelect={(date) => {\n if (!date) {\n if (value) {\n commitValue(null)\n }\n setDraft(\"\")\n closePopover()\n return\n }\n\n const normalized = startOfDay(date)\n if (!value || normalized.getTime() !== startOfDay(value).getTime()) {\n commitValue(normalized)\n }\n setDraft(formatDayInput(normalized))\n closePopover()\n }}\n {...dayPickerProps}\n />\n </div>\n </DismissableLayerBranch>\n )\n\n if (typeof document === \"undefined\") return popover\n return createPortal(popover, document.body)\n })()}\n </div>\n )\n }\n)\n\nDayPickerInput.displayName = \"DayPickerInput\"\n\nexport type DayPickerFieldProps = {\n id?: string\n value: Date | null\n onChange: (value: Date | null) => void\n onValueUpdate?: (value: Date | null) => void\n className?: string\n inputClassName?: string\n placeholder?: string\n disabled?: boolean\n readOnly?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n dayPickerComponent?: React.ComponentType<DayPickerProps>\n dayPickerProps?: Omit<DayPickerProps, \"mode\" | \"selected\" | \"onSelect\" | \"month\" | \"onMonthChange\">\n triggerTestId?: string\n isHydrated?: boolean\n}\n\nfunction DayPickerButtonField({\n id,\n value,\n onChange,\n onValueUpdate,\n className,\n inputClassName,\n placeholder = \"DD/MM/YYYY\",\n disabled,\n open: openProp,\n onOpenChange,\n dayPickerComponent,\n dayPickerProps,\n triggerTestId,\n isHydrated,\n}: DayPickerFieldProps) {\n const rootRef = React.useRef<HTMLDivElement | null>(null)\n const popoverRef = React.useRef<HTMLDivElement | null>(null)\n const openRef = React.useRef(false)\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false)\n const open = openProp ?? uncontrolledOpen\n const setOpen = onOpenChange ?? setUncontrolledOpen\n openRef.current = open\n const [month, setMonth] = React.useState(() => startOfMonth(value ?? new Date()))\n const [popoverPosition, setPopoverPosition] = React.useState(() => ({\n left: 0,\n top: 0,\n }))\n\n React.useEffect(() => {\n if (!open) return\n setMonth(startOfMonth(value ?? new Date()))\n }, [open, value])\n\n React.useEffect(() => {\n if (!open) return\n\n const ownerDocument = rootRef.current?.ownerDocument ?? document\n const ownerWindow = ownerDocument.defaultView ?? window\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target\n if (!(target instanceof Node)) return\n if (rootRef.current?.contains(target)) return\n if (popoverRef.current?.contains(target)) return\n setOpen(false)\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") return\n if (!openRef.current) return\n const target = event.target\n if (!(target instanceof Node)) return\n if (!rootRef.current?.contains(target) && !popoverRef.current?.contains(target)) return\n event.preventDefault()\n event.stopPropagation()\n setOpen(false)\n }\n\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.addEventListener(\"keydown\", handleKeyDown, true)\n return () => {\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.removeEventListener(\"keydown\", handleKeyDown, true)\n }\n }, [open])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (typeof window === \"undefined\") {\n return\n }\n if (!(\"IntersectionObserver\" in window)) {\n return\n }\n\n const root = rootRef.current\n if (!root) {\n return\n }\n\n let isActive = true\n const observer = new IntersectionObserver(entries => {\n if (!isActive) {\n return\n }\n const entry = entries[0]\n if (entry && !entry.isIntersecting) {\n setOpen(false)\n }\n })\n observer.observe(root)\n return () => {\n isActive = false\n observer.disconnect()\n }\n }, [open])\n\n const DayPickerComponent = dayPickerComponent ?? DayPicker\n\n const updatePopoverPosition = React.useCallback(() => {\n if (typeof window === \"undefined\") return\n const root = rootRef.current\n const popover = popoverRef.current\n if (!root || !popover) return\n\n const rect = root.getBoundingClientRect()\n const popoverWidth = popover.offsetWidth\n const popoverHeight = popover.offsetHeight\n const viewportWidth = window.innerWidth ?? 0\n const viewportHeight = window.innerHeight ?? 0\n const padding = 8\n\n let left = rect.left\n if (left + popoverWidth > viewportWidth - padding) {\n left = Math.max(padding, viewportWidth - popoverWidth - padding)\n }\n if (left < padding) {\n left = padding\n }\n\n let top = rect.bottom + padding\n const overflowBottom = top + popoverHeight > viewportHeight - padding\n const aboveTop = rect.top - popoverHeight - padding\n if (overflowBottom && aboveTop >= padding) {\n top = aboveTop\n }\n\n if (top < padding) {\n top = padding\n }\n if (top + popoverHeight > viewportHeight - padding) {\n top = Math.max(padding, viewportHeight - popoverHeight - padding)\n }\n\n setPopoverPosition({ left, top })\n }, [])\n\n // React Compiler rejects hook aliasing (useIsomorphicLayoutEffect pattern), so we\n // call useLayoutEffect directly and keep the SSR guard inside the effect.\n React.useLayoutEffect(() => {\n if (!open || disabled) return\n if (typeof window === \"undefined\") return\n\n updatePopoverPosition()\n const rafId = window.requestAnimationFrame(updatePopoverPosition)\n\n window.addEventListener(\"scroll\", updatePopoverPosition, true)\n window.addEventListener(\"resize\", updatePopoverPosition)\n return () => {\n window.cancelAnimationFrame(rafId)\n window.removeEventListener(\"scroll\", updatePopoverPosition, true)\n window.removeEventListener(\"resize\", updatePopoverPosition)\n }\n }, [disabled, open, updatePopoverPosition])\n\n const commitValue = React.useCallback(\n (next: Date | null) => {\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n onChange(next)\n },\n [onChange, onValueUpdate],\n )\n\n return (\n <div ref={rootRef} data-slot=\"day-picker-input\" className={cn(\"relative group\", className)}>\n <button\n id={id}\n type=\"button\"\n disabled={disabled}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n data-slot=\"day-picker-input-input\"\n className={cn(\n \"flex h-10 w-full items-center rounded-md border border-input bg-background px-3 py-2 text-left text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"transition-colors group-hover:bg-accent group-hover:text-accent-foreground\",\n !value && \"text-muted-foreground\",\n open && \"ring-2 ring-primary ring-offset-2\",\n inputClassName,\n )}\n onClick={() => {\n if (disabled) return\n setOpen(!open)\n }}\n >\n <CalendarDays\n aria-hidden\n className=\"mr-2 size-4 text-muted-foreground transition-colors group-hover:text-accent-foreground\"\n />\n {value ? formatDayInput(value) : placeholder}\n </button>\n\n {open && !disabled && (() => {\n const popover = (\n <DismissableLayerBranch>\n <div\n ref={popoverRef}\n data-slot=\"day-picker-input-popover\"\n className=\"pointer-events-auto fixed z-[60] w-max rounded-md border bg-popover text-popover-foreground shadow-md\"\n style={{ left: popoverPosition.left, top: popoverPosition.top }}\n >\n <DayPickerComponent\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={value ?? undefined}\n onSelect={(date) => {\n if (!date) {\n commitValue(null)\n setOpen(false)\n return\n }\n\n const normalized = startOfDay(date)\n if (!value || normalized.getTime() !== startOfDay(value).getTime()) {\n commitValue(normalized)\n }\n setOpen(false)\n }}\n {...dayPickerProps}\n />\n </div>\n </DismissableLayerBranch>\n )\n\n if (typeof document === \"undefined\") return popover\n return createPortal(popover, document.body)\n })()}\n </div>\n )\n}\n\nexport function DayPickerField(props: DayPickerFieldProps) {\n const isTouchDevice = useIsTouchDevice()\n\n if (isTouchDevice) {\n return <DayPickerButtonField {...props} />\n }\n\n const {\n id,\n value,\n onChange,\n onValueUpdate,\n className,\n inputClassName,\n placeholder = \"DD/MM/YYYY\",\n disabled,\n readOnly,\n dayPickerComponent,\n dayPickerProps,\n triggerTestId,\n isHydrated,\n open,\n onOpenChange,\n } = props\n\n return (\n <DayPickerInput\n id={id}\n value={value}\n onChange={onChange}\n onValueUpdate={onValueUpdate}\n className={className}\n inputClassName={inputClassName}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n open={open}\n onOpenChange={onOpenChange}\n dayPickerComponent={dayPickerComponent}\n dayPickerProps={dayPickerProps}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n />\n )\n}\n"],"names":["imaskAny","IMask","InputMask","DayPicker","t0","$","_c","className","classNames","components","props","t1","showOutsideDays","undefined","t2","cn","t3","month","months","month_caption","month_grid","caption_label","nav","button_previous","button_next","weeks","weekdays","weekday","week","day","day_button","range_start","range_end","range_middle","day_selected","day_today","day_outside","day_disabled","day_hidden","selected","today","outside","disabled","hidden","t4","Chevron","_temp","t5","jsx","ReactDayPicker","chevronProps","orientation","ChevronLeft","ChevronRight","displayName","pad2","value","String","padStart","startOfDay","date","next","Date","setHours","startOfMonth","getFullYear","getMonth","monthIndex","monthFromIndex","index","year","Math","floor","formatDayInput","getDate","buildDate","Number","isFinite","parseDayInput","now","trimmed","trim","full","exec","shortYear","noYear","DayPickerInput","React","forwardRef","onChange","onValueUpdate","inputClassName","placeholder","readOnly","open","openProp","onOpenChange","dayPickerComponent","dayPickerProps","onFocus","onBlur","onKeyDown","onPointerDown","onMouseDown","rest","forwardedRef","rootRef","useRef","popoverRef","inputRef","isFocusedRef","openRef","pointerDownOnInputRef","inputWasFocusedOnPointerDownRef","pointerDownInPopoverRef","ignoreNextMaskCompleteValueRef","uncontrolledOpen","setUncontrolledOpen","useState","setOpen","current","draft","setDraft","draftSelection","useMemo","setMonth","monthRef","popoverPosition","setPopoverPosition","left","top","numberOfMonths","max","wasOpenRef","updateValue","useCallback","commitValue","useEffect","wasOpen","nextSelectionMonthIndex","visibleStartMonthIndex","visibleEndMonthIndex","selectionMonthIndex","ownerDocument","document","ownerWindow","defaultView","window","handlePointerDown","event","target","Node","contains","handleKeyDown","key","preventDefault","stopPropagation","addEventListener","removeEventListener","root","isActive","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","setRefs","node","closePopover","DayPickerComponent","updatePopoverPosition","popover","rect","getBoundingClientRect","popoverWidth","offsetWidth","popoverHeight","offsetHeight","viewportWidth","innerWidth","viewportHeight","innerHeight","padding","bottom","overflowBottom","aboveTop","useLayoutEffect","rafId","requestAnimationFrame","cancelAnimationFrame","jsxs","IMaskInput","mask","lazy","appended","dynamicMasked","digits","replace","length","compiledMasks","nextValue","previousDigitsLength","completedValue","parsed","getTime","activeElement","currentTarget","shouldSelectAll","element","select","wasDefaultPrevented","defaultPrevented","isoDay","dayButton","querySelector","HTMLButtonElement","focus","base","setDate","dateMatchModifiers","formatted","ctrlKey","metaKey","altKey","blurFromPopoverPointerDown","relatedTarget","preventScroll","CalendarDays","selectedDay","DismissableLayerBranch","normalized","createPortal","body","DayPickerButtonField","id","triggerTestId","isHydrated","DayPickerField","useIsTouchDevice"],"mappings":"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"}
1
+ {"version":3,"file":"index12.js","sources":["../src/components/DayPickerField/index.tsx"],"sourcesContent":["import { ChevronLeft, ChevronRight, CalendarDays } from \"lucide-react\"\nimport * as React from \"react\"\nimport { DismissableLayerBranch } from \"@radix-ui/react-dismissable-layer\"\nimport { createPortal } from \"react-dom\"\nimport { DayPicker as ReactDayPicker, dateMatchModifiers } from \"react-day-picker\"\nimport { IMaskInput } from \"react-imask\"\nimport IMask, { InputMask } from \"imask\"\n\nimport { useIsTouchDevice } from \"@/helpers/useIsTouchDevice\"\nimport { cn } from \"@/lib/utils\"\n\n\n// WARNING: used to preserve input mask even with tree shaking\n// DO NOT REMOVE THIS CODE OR THIS COMMENT\nconst imaskAny = IMask as any\nif (typeof imaskAny.InputMask !== \"function\") {\n imaskAny.InputMask = InputMask\n}\n\n\nexport type DayPickerProps = React.ComponentProps<typeof ReactDayPicker>\n\nexport function DayPicker({\n className,\n classNames,\n components,\n showOutsideDays = true,\n ...props\n}: DayPickerProps) {\n return (\n <ReactDayPicker\n weekStartsOn={1}\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n month: \"space-y-4\",\n months: \"flex flex-col sm:flex-row space-y-4 sm:space-y-0 relative gap-2\",\n month_caption: \"flex justify-center pt-1 relative items-center\",\n month_grid: \"w-full border-collapse space-y-1\",\n caption_label: \"text-sm font-medium\",\n nav: \"flex items-center justify-between absolute inset-x-0 z-10\",\n button_previous:\n \"inline-flex h-7 w-7 items-center justify-center rounded-md border border-input bg-transparent p-0 opacity-50 shadow-sm transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 z-10\",\n button_next:\n \"inline-flex h-7 w-7 items-center justify-center rounded-md border border-input bg-transparent p-0 opacity-50 shadow-sm transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 z-10\",\n weeks: \"w-full border-collapse\",\n weekdays: \"flex\",\n weekday: \"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]\",\n week: \"flex w-full mt-2\",\n day: \"h-9 w-9 p-0 font-normal aria-selected:opacity-100 rounded-md first:aria-selected:rounded-l-md last:aria-selected:rounded-r-md\",\n day_button:\n \"inline-flex h-9 w-9 items-center justify-center rounded-md p-0 text-center text-sm font-normal transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n range_start:\n \"day-range-start !bg-accent rounded-l-md [&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground\",\n range_end:\n \"day-range-end !bg-accent rounded-r-md [&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground\",\n range_middle: \"aria-selected:bg-accent aria-selected:text-accent-foreground !rounded-none\",\n day_selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n day_today: \"bg-accent text-accent-foreground\",\n day_outside: \"day-outside text-muted-foreground aria-selected:text-muted-foreground\",\n day_disabled: \"text-muted-foreground opacity-50\",\n day_hidden: \"invisible\",\n selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n today: \"bg-gray-50 text-accent-foreground !rounded-md\",\n outside:\n \"day-outside text-muted-foreground opacity-50 !aria-selected:bg-accent/50 !aria-selected:text-muted-foreground !aria-selected:opacity-30\",\n disabled: \"text-muted-foreground opacity-50\",\n hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n Chevron: (chevronProps) =>\n chevronProps.orientation === \"left\" ? (\n <ChevronLeft {...chevronProps} className=\"h-4 w-4\" />\n ) : (\n <ChevronRight {...chevronProps} className=\"h-4 w-4\" />\n ),\n ...components,\n }}\n {...props}\n />\n )\n}\n\nDayPicker.displayName = \"DayPicker\"\n\nfunction pad2(value: number) {\n return String(value).padStart(2, \"0\")\n}\n\nfunction startOfDay(date: Date) {\n const next = new Date(date)\n next.setHours(0, 0, 0, 0)\n return next\n}\n\nfunction startOfMonth(date: Date) {\n return startOfDay(new Date(date.getFullYear(), date.getMonth(), 1))\n}\n\nfunction formatDayInput(date: Date) {\n return `${pad2(date.getDate())}/${pad2(date.getMonth() + 1)}/${date.getFullYear()}`\n}\n\nfunction buildDate({ day, month, year }: { day: number; month: number; year: number }): Date | null {\n if (!Number.isFinite(day) || !Number.isFinite(month) || !Number.isFinite(year)) return null\n\n const date = new Date(year, month - 1, day)\n if (\n date.getFullYear() !== year ||\n date.getMonth() !== month - 1 ||\n date.getDate() !== day\n ) {\n return null\n }\n\n return startOfDay(date)\n}\n\nfunction parseDayInput(value: string, now: Date): Date | null {\n const trimmed = value.trim()\n if (!trimmed) return null\n\n const full = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/.exec(trimmed)\n if (full) {\n return buildDate({ day: Number(full[1]), month: Number(full[2]), year: Number(full[3]) })\n }\n\n const shortYear = /^(\\d{2})\\/(\\d{2})\\/(\\d{2})$/.exec(trimmed)\n if (shortYear) {\n const year = Number(shortYear[3])\n if (!Number.isFinite(year)) return null\n return buildDate({ day: Number(shortYear[1]), month: Number(shortYear[2]), year: 2000 + year })\n }\n\n const noYear = /^(\\d{2})\\/(\\d{2})$/.exec(trimmed)\n if (noYear) {\n return buildDate({ day: Number(noYear[1]), month: Number(noYear[2]), year: now.getFullYear() })\n }\n\n return null\n}\n\nexport type DayPickerInputProps = Omit<\n React.ComponentProps<\"input\">,\n \"value\" | \"defaultValue\" | \"onChange\" | \"type\"\n> & {\n value: Date | null\n onChange: (value: Date | null) => void\n onValueUpdate?: (value: Date | null) => void\n inputClassName?: string\n open?: boolean\n onOpenChange?: (open: boolean) => void\n dayPickerComponent?: React.ComponentType<DayPickerProps>\n dayPickerProps?: Omit<DayPickerProps, \"mode\" | \"selected\" | \"onSelect\" | \"month\" | \"onMonthChange\">\n}\n\nexport const DayPickerInput = React.forwardRef<HTMLInputElement, DayPickerInputProps>(\n function DayPickerInput(\n {\n value,\n onChange,\n onValueUpdate,\n className,\n inputClassName,\n placeholder = \"DD/MM/YYYY\",\n disabled,\n readOnly,\n open: openProp,\n onOpenChange,\n dayPickerComponent,\n dayPickerProps,\n onFocus,\n onBlur,\n onKeyDown,\n onPointerDown,\n onMouseDown,\n ...rest\n },\n forwardedRef,\n ) {\n const rootRef = React.useRef<HTMLDivElement | null>(null)\n const popoverRef = React.useRef<HTMLDivElement | null>(null)\n const inputRef = React.useRef<HTMLInputElement | null>(null)\n const isFocusedRef = React.useRef(false)\n const openRef = React.useRef(false)\n const pointerDownOnInputRef = React.useRef(false)\n const inputWasFocusedOnPointerDownRef = React.useRef(false)\n const pointerDownInPopoverRef = React.useRef(false)\n const ignoreNextMaskCompleteValueRef = React.useRef<string | null>(null)\n\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false)\n const open = openProp ?? uncontrolledOpen\n const setOpen = onOpenChange ?? setUncontrolledOpen\n openRef.current = open\n const [draft, setDraft] = React.useState(() => (value ? formatDayInput(value) : \"\"))\n const draftSelection = React.useMemo(() => parseDayInput(draft, new Date()), [draft])\n const [month, setMonth] = React.useState(() => startOfMonth(value ?? new Date()))\n const [popoverPosition, setPopoverPosition] = React.useState(() => ({\n left: 0,\n top: 0,\n }))\n\n const updateValue = React.useCallback(\n (next: Date | null) => {\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n },\n [onValueUpdate],\n )\n\n const commitValue = React.useCallback(\n (next: Date | null) => {\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n onChange(next)\n },\n [onChange, onValueUpdate],\n )\n\n React.useEffect(() => {\n if (isFocusedRef.current) return\n setDraft(value ? formatDayInput(value) : \"\")\n }, [value])\n\n React.useEffect(() => {\n if (!open) return\n setMonth(startOfMonth(value ?? new Date()))\n }, [open, value])\n\n React.useEffect(() => {\n if (!open) return\n if (!draftSelection) return\n setMonth(startOfMonth(draftSelection))\n }, [draftSelection, open])\n\n React.useEffect(() => {\n if (!open) return\n\n const ownerDocument = rootRef.current?.ownerDocument ?? document\n const ownerWindow = ownerDocument.defaultView ?? window\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target\n if (!(target instanceof Node)) return\n if (rootRef.current?.contains(target)) return\n if (popoverRef.current?.contains(target)) return\n setOpen(false)\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") return\n if (!openRef.current) return\n const target = event.target\n if (!(target instanceof Node)) return\n if (!rootRef.current?.contains(target) && !popoverRef.current?.contains(target)) return\n event.preventDefault()\n event.stopPropagation()\n setOpen(false)\n }\n\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.addEventListener(\"keydown\", handleKeyDown, true)\n return () => {\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.removeEventListener(\"keydown\", handleKeyDown, true)\n }\n }, [open])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (typeof window === \"undefined\") {\n return\n }\n if (!(\"IntersectionObserver\" in window)) {\n return\n }\n\n const root = rootRef.current\n if (!root) {\n return\n }\n\n let isActive = true\n const observer = new IntersectionObserver(entries => {\n if (!isActive) {\n return\n }\n const entry = entries[0]\n if (entry && !entry.isIntersecting) {\n setOpen(false)\n }\n })\n observer.observe(root)\n return () => {\n isActive = false\n observer.disconnect()\n }\n }, [open])\n\n const setRefs = React.useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node)\n } else if (forwardedRef) {\n forwardedRef.current = node\n }\n },\n [forwardedRef],\n )\n\n const closePopover = () => setOpen(false)\n\n const DayPickerComponent = dayPickerComponent ?? DayPicker\n\n const updatePopoverPosition = React.useCallback(() => {\n if (typeof window === \"undefined\") return\n const root = rootRef.current\n const popover = popoverRef.current\n if (!root || !popover) return\n\n const rect = root.getBoundingClientRect()\n const popoverWidth = popover.offsetWidth\n const popoverHeight = popover.offsetHeight\n const viewportWidth = window.innerWidth ?? 0\n const viewportHeight = window.innerHeight ?? 0\n const padding = 8\n\n let left = rect.left\n if (left + popoverWidth > viewportWidth - padding) {\n left = Math.max(padding, viewportWidth - popoverWidth - padding)\n }\n if (left < padding) {\n left = padding\n }\n\n let top = rect.bottom + padding\n const overflowBottom = top + popoverHeight > viewportHeight - padding\n const aboveTop = rect.top - popoverHeight - padding\n if (overflowBottom && aboveTop >= padding) {\n top = aboveTop\n }\n\n if (top < padding) {\n top = padding\n }\n if (top + popoverHeight > viewportHeight - padding) {\n top = Math.max(padding, viewportHeight - popoverHeight - padding)\n }\n\n setPopoverPosition({ left, top })\n }, [])\n\n // React Compiler rejects hook aliasing (useIsomorphicLayoutEffect pattern), so we\n // call useLayoutEffect directly and keep the SSR guard inside the effect.\n React.useLayoutEffect(() => {\n if (!open || disabled) return\n if (typeof window === \"undefined\") return\n\n updatePopoverPosition()\n const rafId = window.requestAnimationFrame(updatePopoverPosition)\n\n window.addEventListener(\"scroll\", updatePopoverPosition, true)\n window.addEventListener(\"resize\", updatePopoverPosition)\n return () => {\n window.cancelAnimationFrame(rafId)\n window.removeEventListener(\"scroll\", updatePopoverPosition, true)\n window.removeEventListener(\"resize\", updatePopoverPosition)\n }\n }, [disabled, open, updatePopoverPosition])\n\n return (\n <div ref={rootRef} data-slot=\"day-picker-input\" className={cn(\"relative group\", className)}>\n <IMaskInput\n {...rest}\n data-slot=\"day-picker-input-input\"\n disabled={disabled}\n readOnly={readOnly}\n autoComplete=\"off\"\n inputRef={setRefs}\n mask={[\n { mask: \"00/00\", lazy: true },\n { mask: \"00/00/00\", lazy: true },\n { mask: \"00/00/0000\", lazy: true },\n ]}\n dispatch={(appended, dynamicMasked) => {\n const digits = (dynamicMasked.value + appended).replace(/\\D/g, \"\")\n if (digits.length <= 4) return dynamicMasked.compiledMasks[0]\n if (digits.length <= 6) return dynamicMasked.compiledMasks[1]\n return dynamicMasked.compiledMasks[2]\n }}\n placeholder={placeholder}\n value={draft}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background py-2 pr-3 pl-[37px] text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"transition-colors group-hover:bg-accent group-hover:text-accent-foreground\",\n inputClassName\n )}\n onAccept={(nextValue) => {\n const next = typeof nextValue === \"string\" ? nextValue : String(nextValue ?? \"\")\n const previousDigitsLength = draft.replace(/\\D/g, \"\").length\n setDraft(next)\n if (next.replace(/\\D/g, \"\").length === 0) {\n if (open) {\n setMonth(startOfMonth(new Date()))\n }\n if (previousDigitsLength !== 0) {\n updateValue(null)\n }\n }\n }}\n onComplete={(completedValue) => {\n const next = typeof completedValue === \"string\"\n ? completedValue\n : String(completedValue ?? \"\")\n if (ignoreNextMaskCompleteValueRef.current === next) {\n ignoreNextMaskCompleteValueRef.current = null\n return\n }\n const parsed = parseDayInput(next, new Date())\n if (!parsed) return\n if (value && parsed.getTime() === startOfDay(value).getTime()) {\n return\n }\n updateValue(parsed)\n }}\n onPointerDown={(event) => {\n pointerDownOnInputRef.current = true\n inputWasFocusedOnPointerDownRef.current =\n typeof document !== \"undefined\" && document.activeElement === event.currentTarget\n onPointerDown?.(event)\n }}\n onMouseDown={(event) => {\n pointerDownOnInputRef.current = true\n inputWasFocusedOnPointerDownRef.current =\n typeof document !== \"undefined\" && document.activeElement === event.currentTarget\n onMouseDown?.(event)\n }}\n onFocus={(event) => {\n const shouldSelectAll =\n !pointerDownOnInputRef.current || !inputWasFocusedOnPointerDownRef.current\n pointerDownOnInputRef.current = false\n inputWasFocusedOnPointerDownRef.current = false\n isFocusedRef.current = true\n onFocus?.(event)\n if (shouldSelectAll) {\n const element = event.currentTarget\n requestAnimationFrame(() => element.select())\n }\n if (!disabled) {\n setOpen(true)\n }\n }}\n onKeyDown={(event) => {\n const wasDefaultPrevented = event.defaultPrevented\n onKeyDown?.(event)\n if (!wasDefaultPrevented && event.defaultPrevented) {\n return\n }\n\n if (event.key === \"Enter\") {\n if (!draftSelection) {\n return\n }\n event.preventDefault()\n if (open) {\n const isoDay = `${draftSelection.getFullYear()}-${pad2(draftSelection.getMonth() + 1)}-${pad2(draftSelection.getDate())}`\n const dayButton = popoverRef.current?.querySelector(\n `[data-day='${isoDay}']:not([data-outside]) button`,\n )\n if (dayButton instanceof HTMLButtonElement) {\n if (dayButton.disabled) {\n return\n }\n dayButton.focus()\n }\n }\n setDraft(formatDayInput(draftSelection))\n commitValue(draftSelection)\n setOpen(false)\n return\n }\n\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n const base = draftSelection ?? value\n if (!base) {\n return\n }\n\n const next = startOfDay(new Date(base))\n next.setDate(next.getDate() + (event.key === \"ArrowUp\" ? 1 : -1))\n\n if (dayPickerProps?.disabled && dateMatchModifiers(next, dayPickerProps.disabled)) {\n return\n }\n\n event.preventDefault()\n const formatted = formatDayInput(next)\n ignoreNextMaskCompleteValueRef.current = formatted\n setDraft(formatted)\n updateValue(next)\n }\n\n if (!open) {\n const shouldReopen =\n (event.key.length === 1 ||\n event.key === \"Backspace\" ||\n event.key === \"Delete\" ||\n event.key === \"ArrowUp\" ||\n event.key === \"ArrowDown\") &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n\n if (shouldReopen) {\n setOpen(true)\n }\n }\n\n if (event.key === \"Tab\" && !event.defaultPrevented) {\n setOpen(false)\n }\n }}\n onBlur={(event) => {\n isFocusedRef.current = false\n onBlur?.(event)\n const blurFromPopoverPointerDown = pointerDownInPopoverRef.current\n pointerDownInPopoverRef.current = false\n if (blurFromPopoverPointerDown) {\n return\n }\n\n const relatedTarget = event.relatedTarget\n if (relatedTarget instanceof Node) {\n const root = rootRef.current\n if (!root) {\n return\n }\n\n if (root.contains(relatedTarget) || popoverRef.current?.contains(relatedTarget)) {\n return\n }\n }\n\n if (open && typeof window !== \"undefined\") {\n requestAnimationFrame(() => {\n const root = rootRef.current\n if (!root) {\n return\n }\n const activeElement = document.activeElement\n if (\n activeElement &&\n (root.contains(activeElement) || popoverRef.current?.contains(activeElement))\n ) {\n return\n }\n setOpen(false)\n })\n }\n const trimmed = draft.trim()\n if (trimmed === \"\") {\n if (value) {\n setDraft(\"\")\n commitValue(null)\n }\n return\n }\n const parsed = parseDayInput(trimmed, new Date())\n if (parsed) {\n setDraft(formatDayInput(parsed))\n if (!value || parsed.getTime() !== startOfDay(value).getTime()) {\n commitValue(parsed)\n }\n return\n }\n setDraft(value ? formatDayInput(value) : \"\")\n }}\n />\n\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n aria-label=\"Open calendar\"\n data-slot=\"day-picker-input-trigger\"\n className=\"absolute left-[13px] top-1/2 -translate-y-1/2 text-muted-foreground transition-colors group-hover:text-accent-foreground\"\n onPointerDown={(event) => {\n event.preventDefault()\n if (disabled) {\n return\n }\n inputRef.current?.focus({ preventScroll: true })\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n if (disabled) {\n return\n }\n inputRef.current?.focus({ preventScroll: true })\n }}\n onClick={() => {\n if (disabled) {\n return\n }\n inputRef.current?.focus({ preventScroll: true })\n setOpen(true)\n }}\n >\n <CalendarDays aria-hidden className=\"size-4\" />\n </button>\n\n {open && !disabled && (() => {\n const selectedDay = draft.trim() === \"\"\n ? undefined\n : draftSelection ?? value ?? undefined\n\n const popover = (\n <DismissableLayerBranch>\n <div\n ref={popoverRef}\n data-slot=\"day-picker-input-popover\"\n className=\"pointer-events-auto fixed z-[60] w-max rounded-md border bg-popover text-popover-foreground shadow-md\"\n style={{ left: popoverPosition.left, top: popoverPosition.top }}\n onPointerDownCapture={() => {\n pointerDownInPopoverRef.current = true\n }}\n onMouseDownCapture={() => {\n pointerDownInPopoverRef.current = true\n }}\n >\n <DayPickerComponent\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={selectedDay}\n onSelect={(date) => {\n if (!date) {\n if (value) {\n commitValue(null)\n }\n setDraft(\"\")\n closePopover()\n return\n }\n\n const normalized = startOfDay(date)\n if (!value || normalized.getTime() !== startOfDay(value).getTime()) {\n commitValue(normalized)\n }\n setDraft(formatDayInput(normalized))\n closePopover()\n }}\n {...dayPickerProps}\n />\n </div>\n </DismissableLayerBranch>\n )\n\n if (typeof document === \"undefined\") return popover\n return createPortal(popover, document.body)\n })()}\n </div>\n )\n }\n)\n\nDayPickerInput.displayName = \"DayPickerInput\"\n\nexport type DayPickerFieldProps = {\n id?: string\n value: Date | null\n onChange: (value: Date | null) => void\n onValueUpdate?: (value: Date | null) => void\n className?: string\n inputClassName?: string\n placeholder?: string\n disabled?: boolean\n readOnly?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n dayPickerComponent?: React.ComponentType<DayPickerProps>\n dayPickerProps?: Omit<DayPickerProps, \"mode\" | \"selected\" | \"onSelect\" | \"month\" | \"onMonthChange\">\n triggerTestId?: string\n isHydrated?: boolean\n}\n\nfunction DayPickerButtonField({\n id,\n value,\n onChange,\n onValueUpdate,\n className,\n inputClassName,\n placeholder = \"DD/MM/YYYY\",\n disabled,\n open: openProp,\n onOpenChange,\n dayPickerComponent,\n dayPickerProps,\n triggerTestId,\n isHydrated,\n}: DayPickerFieldProps) {\n const rootRef = React.useRef<HTMLDivElement | null>(null)\n const popoverRef = React.useRef<HTMLDivElement | null>(null)\n const openRef = React.useRef(false)\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false)\n const open = openProp ?? uncontrolledOpen\n const setOpen = onOpenChange ?? setUncontrolledOpen\n openRef.current = open\n const [month, setMonth] = React.useState(() => startOfMonth(value ?? new Date()))\n const [popoverPosition, setPopoverPosition] = React.useState(() => ({\n left: 0,\n top: 0,\n }))\n\n React.useEffect(() => {\n if (!open) return\n setMonth(startOfMonth(value ?? new Date()))\n }, [open, value])\n\n React.useEffect(() => {\n if (!open) return\n\n const ownerDocument = rootRef.current?.ownerDocument ?? document\n const ownerWindow = ownerDocument.defaultView ?? window\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target\n if (!(target instanceof Node)) return\n if (rootRef.current?.contains(target)) return\n if (popoverRef.current?.contains(target)) return\n setOpen(false)\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") return\n if (!openRef.current) return\n const target = event.target\n if (!(target instanceof Node)) return\n if (!rootRef.current?.contains(target) && !popoverRef.current?.contains(target)) return\n event.preventDefault()\n event.stopPropagation()\n setOpen(false)\n }\n\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.addEventListener(\"keydown\", handleKeyDown, true)\n return () => {\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.removeEventListener(\"keydown\", handleKeyDown, true)\n }\n }, [open])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (typeof window === \"undefined\") {\n return\n }\n if (!(\"IntersectionObserver\" in window)) {\n return\n }\n\n const root = rootRef.current\n if (!root) {\n return\n }\n\n let isActive = true\n const observer = new IntersectionObserver(entries => {\n if (!isActive) {\n return\n }\n const entry = entries[0]\n if (entry && !entry.isIntersecting) {\n setOpen(false)\n }\n })\n observer.observe(root)\n return () => {\n isActive = false\n observer.disconnect()\n }\n }, [open])\n\n const DayPickerComponent = dayPickerComponent ?? DayPicker\n\n const updatePopoverPosition = React.useCallback(() => {\n if (typeof window === \"undefined\") return\n const root = rootRef.current\n const popover = popoverRef.current\n if (!root || !popover) return\n\n const rect = root.getBoundingClientRect()\n const popoverWidth = popover.offsetWidth\n const popoverHeight = popover.offsetHeight\n const viewportWidth = window.innerWidth ?? 0\n const viewportHeight = window.innerHeight ?? 0\n const padding = 8\n\n let left = rect.left\n if (left + popoverWidth > viewportWidth - padding) {\n left = Math.max(padding, viewportWidth - popoverWidth - padding)\n }\n if (left < padding) {\n left = padding\n }\n\n let top = rect.bottom + padding\n const overflowBottom = top + popoverHeight > viewportHeight - padding\n const aboveTop = rect.top - popoverHeight - padding\n if (overflowBottom && aboveTop >= padding) {\n top = aboveTop\n }\n\n if (top < padding) {\n top = padding\n }\n if (top + popoverHeight > viewportHeight - padding) {\n top = Math.max(padding, viewportHeight - popoverHeight - padding)\n }\n\n setPopoverPosition({ left, top })\n }, [])\n\n // React Compiler rejects hook aliasing (useIsomorphicLayoutEffect pattern), so we\n // call useLayoutEffect directly and keep the SSR guard inside the effect.\n React.useLayoutEffect(() => {\n if (!open || disabled) return\n if (typeof window === \"undefined\") return\n\n updatePopoverPosition()\n const rafId = window.requestAnimationFrame(updatePopoverPosition)\n\n window.addEventListener(\"scroll\", updatePopoverPosition, true)\n window.addEventListener(\"resize\", updatePopoverPosition)\n return () => {\n window.cancelAnimationFrame(rafId)\n window.removeEventListener(\"scroll\", updatePopoverPosition, true)\n window.removeEventListener(\"resize\", updatePopoverPosition)\n }\n }, [disabled, open, updatePopoverPosition])\n\n const commitValue = React.useCallback(\n (next: Date | null) => {\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n onChange(next)\n },\n [onChange, onValueUpdate],\n )\n\n return (\n <div ref={rootRef} data-slot=\"day-picker-input\" className={cn(\"relative group\", className)}>\n <button\n id={id}\n type=\"button\"\n disabled={disabled}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n data-slot=\"day-picker-input-input\"\n className={cn(\n \"flex h-10 w-full items-center rounded-md border border-input bg-background px-3 py-2 text-left text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"transition-colors group-hover:bg-accent group-hover:text-accent-foreground\",\n !value && \"text-muted-foreground\",\n open && \"ring-2 ring-primary ring-offset-2\",\n inputClassName,\n )}\n onClick={() => {\n if (disabled) return\n setOpen(!open)\n }}\n >\n <CalendarDays\n aria-hidden\n className=\"mr-2 size-4 text-muted-foreground transition-colors group-hover:text-accent-foreground\"\n />\n {value ? formatDayInput(value) : placeholder}\n </button>\n\n {open && !disabled && (() => {\n const popover = (\n <DismissableLayerBranch>\n <div\n ref={popoverRef}\n data-slot=\"day-picker-input-popover\"\n className=\"pointer-events-auto fixed z-[60] w-max rounded-md border bg-popover text-popover-foreground shadow-md\"\n style={{ left: popoverPosition.left, top: popoverPosition.top }}\n >\n <DayPickerComponent\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={value ?? undefined}\n onSelect={(date) => {\n if (!date) {\n commitValue(null)\n setOpen(false)\n return\n }\n\n const normalized = startOfDay(date)\n if (!value || normalized.getTime() !== startOfDay(value).getTime()) {\n commitValue(normalized)\n }\n setOpen(false)\n }}\n {...dayPickerProps}\n />\n </div>\n </DismissableLayerBranch>\n )\n\n if (typeof document === \"undefined\") return popover\n return createPortal(popover, document.body)\n })()}\n </div>\n )\n}\n\nexport function DayPickerField(props: DayPickerFieldProps) {\n const isTouchDevice = useIsTouchDevice()\n\n if (isTouchDevice) {\n return <DayPickerButtonField {...props} />\n }\n\n const {\n id,\n value,\n onChange,\n onValueUpdate,\n className,\n inputClassName,\n placeholder = \"DD/MM/YYYY\",\n disabled,\n readOnly,\n dayPickerComponent,\n dayPickerProps,\n triggerTestId,\n isHydrated,\n open,\n onOpenChange,\n } = props\n\n return (\n <DayPickerInput\n id={id}\n value={value}\n onChange={onChange}\n onValueUpdate={onValueUpdate}\n className={className}\n inputClassName={inputClassName}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n open={open}\n onOpenChange={onOpenChange}\n dayPickerComponent={dayPickerComponent}\n dayPickerProps={dayPickerProps}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n />\n )\n}\n"],"names":["imaskAny","IMask","InputMask","DayPicker","t0","$","_c","className","classNames","components","props","t1","showOutsideDays","undefined","t2","cn","t3","month","months","month_caption","month_grid","caption_label","nav","button_previous","button_next","weeks","weekdays","weekday","week","day","day_button","range_start","range_end","range_middle","day_selected","day_today","day_outside","day_disabled","day_hidden","selected","today","outside","disabled","hidden","t4","Chevron","_temp","t5","jsx","ReactDayPicker","chevronProps","orientation","ChevronLeft","ChevronRight","displayName","pad2","value","String","padStart","startOfDay","date","next","Date","setHours","startOfMonth","getFullYear","getMonth","formatDayInput","getDate","buildDate","year","Number","isFinite","parseDayInput","now","trimmed","trim","full","exec","shortYear","noYear","DayPickerInput","React","forwardRef","onChange","onValueUpdate","inputClassName","placeholder","readOnly","open","openProp","onOpenChange","dayPickerComponent","dayPickerProps","onFocus","onBlur","onKeyDown","onPointerDown","onMouseDown","rest","forwardedRef","rootRef","useRef","popoverRef","inputRef","isFocusedRef","openRef","pointerDownOnInputRef","inputWasFocusedOnPointerDownRef","pointerDownInPopoverRef","ignoreNextMaskCompleteValueRef","uncontrolledOpen","setUncontrolledOpen","useState","setOpen","current","draft","setDraft","draftSelection","useMemo","setMonth","popoverPosition","setPopoverPosition","left","top","updateValue","useCallback","commitValue","useEffect","ownerDocument","document","ownerWindow","defaultView","window","handlePointerDown","event","target","Node","contains","handleKeyDown","key","preventDefault","stopPropagation","addEventListener","removeEventListener","root","isActive","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","setRefs","node","closePopover","DayPickerComponent","updatePopoverPosition","popover","rect","getBoundingClientRect","popoverWidth","offsetWidth","popoverHeight","offsetHeight","viewportWidth","innerWidth","viewportHeight","innerHeight","padding","Math","max","bottom","overflowBottom","aboveTop","useLayoutEffect","rafId","requestAnimationFrame","cancelAnimationFrame","jsxs","IMaskInput","mask","lazy","appended","dynamicMasked","digits","replace","length","compiledMasks","nextValue","previousDigitsLength","completedValue","parsed","getTime","activeElement","currentTarget","shouldSelectAll","element","select","wasDefaultPrevented","defaultPrevented","isoDay","dayButton","querySelector","HTMLButtonElement","focus","base","setDate","dateMatchModifiers","formatted","ctrlKey","metaKey","altKey","blurFromPopoverPointerDown","relatedTarget","preventScroll","CalendarDays","selectedDay","DismissableLayerBranch","normalized","createPortal","body","DayPickerButtonField","id","triggerTestId","isHydrated","DayPickerField","useIsTouchDevice"],"mappings":"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"}
package/dist/index120.js CHANGED
@@ -1,23 +1,11 @@
1
- var o;
2
- (function(e) {
3
- e.Root = "root", e.Chevron = "chevron", e.Day = "day", e.DayButton = "day_button", e.CaptionLabel = "caption_label", e.Dropdowns = "dropdowns", e.Dropdown = "dropdown", e.DropdownRoot = "dropdown_root", e.Footer = "footer", e.MonthGrid = "month_grid", e.MonthCaption = "month_caption", e.MonthsDropdown = "months_dropdown", e.Month = "month", e.Months = "months", e.Nav = "nav", e.NextMonthButton = "button_next", e.PreviousMonthButton = "button_previous", e.Week = "week", e.Weeks = "weeks", e.Weekday = "weekday", e.Weekdays = "weekdays", e.WeekNumber = "week_number", e.WeekNumberHeader = "week_number_header", e.YearsDropdown = "years_dropdown";
4
- })(o || (o = {}));
5
- var t;
6
- (function(e) {
7
- e.disabled = "disabled", e.hidden = "hidden", e.outside = "outside", e.focused = "focused", e.today = "today";
8
- })(t || (t = {}));
9
- var r;
10
- (function(e) {
11
- e.range_end = "range_end", e.range_middle = "range_middle", e.range_start = "range_start", e.selected = "selected";
12
- })(r || (r = {}));
13
- var n;
14
- (function(e) {
15
- e.weeks_before_enter = "weeks_before_enter", e.weeks_before_exit = "weeks_before_exit", e.weeks_after_enter = "weeks_after_enter", e.weeks_after_exit = "weeks_after_exit", e.caption_after_enter = "caption_after_enter", e.caption_after_exit = "caption_after_exit", e.caption_before_enter = "caption_before_enter", e.caption_before_exit = "caption_before_exit";
16
- })(n || (n = {}));
1
+ import * as a from "./index138.js";
2
+ function f(n) {
3
+ return n?.formatMonthCaption && !n.formatCaption && (n.formatCaption = n.formatMonthCaption), n?.formatYearCaption && !n.formatYearDropdown && (n.formatYearDropdown = n.formatYearCaption), {
4
+ ...a,
5
+ ...n
6
+ };
7
+ }
17
8
  export {
18
- n as Animation,
19
- t as DayFlag,
20
- r as SelectionState,
21
- o as UI
9
+ f as getFormatters
22
10
  };
23
11
  //# sourceMappingURL=index120.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index120.js","sources":["../../../node_modules/react-day-picker/dist/esm/UI.js"],"sourcesContent":["/**\n * Enum representing the UI elements composing DayPicker. These elements are\n * mapped to {@link CustomComponents}, {@link ClassNames}, and {@link Styles}.\n *\n * Some elements are extended by flags and modifiers.\n */\nexport var UI;\n(function (UI) {\n /** The root component displaying the months and the navigation bar. */\n UI[\"Root\"] = \"root\";\n /** The Chevron SVG element used by navigation buttons and dropdowns. */\n UI[\"Chevron\"] = \"chevron\";\n /**\n * The grid cell with the day's date. Extended by {@link DayFlag} and\n * {@link SelectionState}.\n */\n UI[\"Day\"] = \"day\";\n /** The button containing the formatted day's date, inside the grid cell. */\n UI[\"DayButton\"] = \"day_button\";\n /** The caption label of the month (when not showing the dropdown navigation). */\n UI[\"CaptionLabel\"] = \"caption_label\";\n /** The container of the dropdown navigation (when enabled). */\n UI[\"Dropdowns\"] = \"dropdowns\";\n /** The dropdown element to select for years and months. */\n UI[\"Dropdown\"] = \"dropdown\";\n /** The container element of the dropdown. */\n UI[\"DropdownRoot\"] = \"dropdown_root\";\n /** The root element of the footer. */\n UI[\"Footer\"] = \"footer\";\n /** The month grid. */\n UI[\"MonthGrid\"] = \"month_grid\";\n /** Contains the dropdown navigation or the caption label. */\n UI[\"MonthCaption\"] = \"month_caption\";\n /** The dropdown with the months. */\n UI[\"MonthsDropdown\"] = \"months_dropdown\";\n /** Wrapper of the month grid. */\n UI[\"Month\"] = \"month\";\n /** The container of the displayed months. */\n UI[\"Months\"] = \"months\";\n /** The navigation bar with the previous and next buttons. */\n UI[\"Nav\"] = \"nav\";\n /**\n * The next month button in the navigation. *\n *\n * @since 9.1.0\n */\n UI[\"NextMonthButton\"] = \"button_next\";\n /**\n * The previous month button in the navigation.\n *\n * @since 9.1.0\n */\n UI[\"PreviousMonthButton\"] = \"button_previous\";\n /** The row containing the week. */\n UI[\"Week\"] = \"week\";\n /** The group of row weeks in a month (`tbody`). */\n UI[\"Weeks\"] = \"weeks\";\n /** The column header with the weekday. */\n UI[\"Weekday\"] = \"weekday\";\n /** The row grouping the weekdays in the column headers. */\n UI[\"Weekdays\"] = \"weekdays\";\n /** The cell containing the week number. */\n UI[\"WeekNumber\"] = \"week_number\";\n /** The cell header of the week numbers column. */\n UI[\"WeekNumberHeader\"] = \"week_number_header\";\n /** The dropdown with the years. */\n UI[\"YearsDropdown\"] = \"years_dropdown\";\n})(UI || (UI = {}));\n/** Enum representing flags for the {@link UI.Day} element. */\nexport var DayFlag;\n(function (DayFlag) {\n /** The day is disabled. */\n DayFlag[\"disabled\"] = \"disabled\";\n /** The day is hidden. */\n DayFlag[\"hidden\"] = \"hidden\";\n /** The day is outside the current month. */\n DayFlag[\"outside\"] = \"outside\";\n /** The day is focused. */\n DayFlag[\"focused\"] = \"focused\";\n /** The day is today. */\n DayFlag[\"today\"] = \"today\";\n})(DayFlag || (DayFlag = {}));\n/**\n * Enum representing selection states that can be applied to the {@link UI.Day}\n * element in selection mode.\n */\nexport var SelectionState;\n(function (SelectionState) {\n /** The day is at the end of a selected range. */\n SelectionState[\"range_end\"] = \"range_end\";\n /** The day is at the middle of a selected range. */\n SelectionState[\"range_middle\"] = \"range_middle\";\n /** The day is at the start of a selected range. */\n SelectionState[\"range_start\"] = \"range_start\";\n /** The day is selected. */\n SelectionState[\"selected\"] = \"selected\";\n})(SelectionState || (SelectionState = {}));\n/**\n * Enum representing different animation states for transitioning between\n * months.\n */\nexport var Animation;\n(function (Animation) {\n /** The entering weeks when they appear before the exiting month. */\n Animation[\"weeks_before_enter\"] = \"weeks_before_enter\";\n /** The exiting weeks when they disappear before the entering month. */\n Animation[\"weeks_before_exit\"] = \"weeks_before_exit\";\n /** The entering weeks when they appear after the exiting month. */\n Animation[\"weeks_after_enter\"] = \"weeks_after_enter\";\n /** The exiting weeks when they disappear after the entering month. */\n Animation[\"weeks_after_exit\"] = \"weeks_after_exit\";\n /** The entering caption when it appears after the exiting month. */\n Animation[\"caption_after_enter\"] = \"caption_after_enter\";\n /** The exiting caption when it disappears after the entering month. */\n Animation[\"caption_after_exit\"] = \"caption_after_exit\";\n /** The entering caption when it appears before the exiting month. */\n Animation[\"caption_before_enter\"] = \"caption_before_enter\";\n /** The exiting caption when it disappears before the entering month. */\n Animation[\"caption_before_exit\"] = \"caption_before_exit\";\n})(Animation || (Animation = {}));\n"],"names":["UI","DayFlag","SelectionState","Animation"],"mappings":"AAMU,IAACA;AAAA,CACV,SAAUA,GAAI;AAEX,EAAAA,EAAG,OAAU,QAEbA,EAAG,UAAa,WAKhBA,EAAG,MAAS,OAEZA,EAAG,YAAe,cAElBA,EAAG,eAAkB,iBAErBA,EAAG,YAAe,aAElBA,EAAG,WAAc,YAEjBA,EAAG,eAAkB,iBAErBA,EAAG,SAAY,UAEfA,EAAG,YAAe,cAElBA,EAAG,eAAkB,iBAErBA,EAAG,iBAAoB,mBAEvBA,EAAG,QAAW,SAEdA,EAAG,SAAY,UAEfA,EAAG,MAAS,OAMZA,EAAG,kBAAqB,eAMxBA,EAAG,sBAAyB,mBAE5BA,EAAG,OAAU,QAEbA,EAAG,QAAW,SAEdA,EAAG,UAAa,WAEhBA,EAAG,WAAc,YAEjBA,EAAG,aAAgB,eAEnBA,EAAG,mBAAsB,sBAEzBA,EAAG,gBAAmB;AAC1B,GAAGA,MAAOA,IAAK,CAAA,EAAG;AAER,IAACC;AAAA,CACV,SAAUA,GAAS;AAEhB,EAAAA,EAAQ,WAAc,YAEtBA,EAAQ,SAAY,UAEpBA,EAAQ,UAAa,WAErBA,EAAQ,UAAa,WAErBA,EAAQ,QAAW;AACvB,GAAGA,MAAYA,IAAU,CAAA,EAAG;AAKlB,IAACC;AAAA,CACV,SAAUA,GAAgB;AAEvB,EAAAA,EAAe,YAAe,aAE9BA,EAAe,eAAkB,gBAEjCA,EAAe,cAAiB,eAEhCA,EAAe,WAAc;AACjC,GAAGA,MAAmBA,IAAiB,CAAA,EAAG;AAKhC,IAACC;AAAA,CACV,SAAUA,GAAW;AAElB,EAAAA,EAAU,qBAAwB,sBAElCA,EAAU,oBAAuB,qBAEjCA,EAAU,oBAAuB,qBAEjCA,EAAU,mBAAsB,oBAEhCA,EAAU,sBAAyB,uBAEnCA,EAAU,qBAAwB,sBAElCA,EAAU,uBAA0B,wBAEpCA,EAAU,sBAAyB;AACvC,GAAGA,MAAcA,IAAY,CAAA,EAAG;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index120.js","sources":["../../../node_modules/react-day-picker/dist/esm/helpers/getFormatters.js"],"sourcesContent":["import * as defaultFormatters from \"../formatters/index.js\";\n/**\n * Merges custom formatters from the props with the default formatters.\n *\n * @param customFormatters The custom formatters provided in the DayPicker\n * props.\n * @returns The merged formatters object.\n */\nexport function getFormatters(customFormatters) {\n if (customFormatters?.formatMonthCaption && !customFormatters.formatCaption) {\n customFormatters.formatCaption = customFormatters.formatMonthCaption;\n }\n if (customFormatters?.formatYearCaption &&\n !customFormatters.formatYearDropdown) {\n customFormatters.formatYearDropdown = customFormatters.formatYearCaption;\n }\n return {\n ...defaultFormatters,\n ...customFormatters,\n };\n}\n"],"names":["getFormatters","customFormatters","defaultFormatters"],"mappings":";AAQO,SAASA,EAAcC,GAAkB;AAC5C,SAAIA,GAAkB,sBAAsB,CAACA,EAAiB,kBAC1DA,EAAiB,gBAAgBA,EAAiB,qBAElDA,GAAkB,qBAClB,CAACA,EAAiB,uBAClBA,EAAiB,qBAAqBA,EAAiB,oBAEpD;AAAA,IACH,GAAGC;AAAAA,IACH,GAAGD;AAAA,EACX;AACA;","x_google_ignoreList":[0]}
package/dist/index121.js CHANGED
@@ -1,57 +1,35 @@
1
- import { useRef as k, useLayoutEffect as z } from "react";
2
- import { Animation as o } from "./index120.js";
3
- const l = (e) => e instanceof HTMLElement ? e : null, q = (e) => [
4
- ...e.querySelectorAll("[data-animated-month]") ?? []
5
- ], I = (e) => l(e.querySelector("[data-animated-month]")), w = (e) => l(e.querySelector("[data-animated-caption]")), h = (e) => l(e.querySelector("[data-animated-weeks]")), B = (e) => l(e.querySelector("[data-animated-nav]")), P = (e) => l(e.querySelector("[data-animated-weekdays]"));
6
- function D(e, M, { classNames: s, months: a, focused: b, dateLib: S }) {
7
- const y = k(null), A = k(a), p = k(!1);
8
- z(() => {
9
- const f = A.current;
10
- if (A.current = a, !M || !e.current || // safety check because the ref can be set to anything by consumers
11
- !(e.current instanceof HTMLElement) || // validation required for the animation to work as expected
12
- a.length === 0 || f.length === 0 || a.length !== f.length)
13
- return;
14
- const g = S.isSameMonth(a[0].date, f[0].date), u = S.isAfter(a[0].date, f[0].date), v = u ? s[o.caption_after_enter] : s[o.caption_before_enter], m = u ? s[o.weeks_after_enter] : s[o.weeks_before_enter], H = y.current, L = e.current.cloneNode(!0);
15
- if (L instanceof HTMLElement ? (q(L).forEach((t) => {
16
- if (!(t instanceof HTMLElement))
17
- return;
18
- const c = I(t);
19
- c && t.contains(c) && t.removeChild(c);
20
- const n = w(t);
21
- n && n.classList.remove(v);
22
- const r = h(t);
23
- r && r.classList.remove(m);
24
- }), y.current = L) : y.current = null, p.current || g || // skip animation if a day is focused because it can cause issues to the animation and is better for a11y
25
- b)
26
- return;
27
- const _ = H instanceof HTMLElement ? q(H) : [], x = q(e.current);
28
- if (x?.every((i) => i instanceof HTMLElement) && _ && _.every((i) => i instanceof HTMLElement)) {
29
- p.current = !0, e.current.style.isolation = "isolate";
30
- const i = B(e.current);
31
- i && (i.style.zIndex = "1"), x.forEach((t, c) => {
32
- const n = _[c];
33
- if (!n)
34
- return;
35
- t.style.position = "relative", t.style.overflow = "hidden";
36
- const r = w(t);
37
- r && r.classList.add(v);
38
- const d = h(t);
39
- d && d.classList.add(m);
40
- const W = () => {
41
- p.current = !1, e.current && (e.current.style.isolation = ""), i && (i.style.zIndex = ""), r && r.classList.remove(v), d && d.classList.remove(m), t.style.position = "", t.style.overflow = "", t.contains(n) && t.removeChild(n);
42
- };
43
- n.style.pointerEvents = "none", n.style.position = "absolute", n.style.overflow = "hidden", n.setAttribute("aria-hidden", "true");
44
- const C = P(n);
45
- C && (C.style.opacity = "0");
46
- const E = w(n);
47
- E && (E.classList.add(u ? s[o.caption_before_exit] : s[o.caption_after_exit]), E.addEventListener("animationend", W));
48
- const T = h(n);
49
- T && T.classList.add(u ? s[o.weeks_before_exit] : s[o.weeks_after_exit]), t.insertBefore(n, t.firstChild);
50
- });
51
- }
52
- });
1
+ import * as o from "./index146.js";
2
+ import { labelWeekday as b } from "./index154.js";
3
+ import { labelWeekNumberHeader as i } from "./index156.js";
4
+ import { labelNav as n } from "./index151.js";
5
+ import { labelGridcell as t } from "./index149.js";
6
+ import { labelGrid as d } from "./index148.js";
7
+ import { labelYearDropdown as p } from "./index157.js";
8
+ import { labelWeekNumber as m } from "./index155.js";
9
+ import { labelPrevious as f } from "./index153.js";
10
+ import { labelNext as N } from "./index152.js";
11
+ import { labelMonthDropdown as k } from "./index150.js";
12
+ import { labelDayButton as D } from "./index147.js";
13
+ const r = (l, a, e) => a || (e ? typeof e == "function" ? e : (...W) => e : l);
14
+ function Y(l, a) {
15
+ const e = a.locale?.labels ?? {};
16
+ return {
17
+ ...o,
18
+ ...l ?? {},
19
+ labelDayButton: r(D, l?.labelDayButton, e.labelDayButton),
20
+ labelMonthDropdown: r(k, l?.labelMonthDropdown, e.labelMonthDropdown),
21
+ labelNext: r(N, l?.labelNext, e.labelNext),
22
+ labelPrevious: r(f, l?.labelPrevious, e.labelPrevious),
23
+ labelWeekNumber: r(m, l?.labelWeekNumber, e.labelWeekNumber),
24
+ labelYearDropdown: r(p, l?.labelYearDropdown, e.labelYearDropdown),
25
+ labelGrid: r(d, l?.labelGrid, e.labelGrid),
26
+ labelGridcell: r(t, l?.labelGridcell, e.labelGridcell),
27
+ labelNav: r(n, l?.labelNav, e.labelNav),
28
+ labelWeekNumberHeader: r(i, l?.labelWeekNumberHeader, e.labelWeekNumberHeader),
29
+ labelWeekday: r(b, l?.labelWeekday, e.labelWeekday)
30
+ };
53
31
  }
54
32
  export {
55
- D as useAnimation
33
+ Y as getLabels
56
34
  };
57
35
  //# sourceMappingURL=index121.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index121.js","sources":["../../../node_modules/react-day-picker/dist/esm/useAnimation.js"],"sourcesContent":["import { useLayoutEffect, useRef } from \"react\";\nimport { Animation } from \"./UI.js\";\nconst asHtmlElement = (element) => {\n if (element instanceof HTMLElement)\n return element;\n return null;\n};\nconst queryMonthEls = (element) => [\n ...(element.querySelectorAll(\"[data-animated-month]\") ?? []),\n];\nconst queryMonthEl = (element) => asHtmlElement(element.querySelector(\"[data-animated-month]\"));\nconst queryCaptionEl = (element) => asHtmlElement(element.querySelector(\"[data-animated-caption]\"));\nconst queryWeeksEl = (element) => asHtmlElement(element.querySelector(\"[data-animated-weeks]\"));\nconst queryNavEl = (element) => asHtmlElement(element.querySelector(\"[data-animated-nav]\"));\nconst queryWeekdaysEl = (element) => asHtmlElement(element.querySelector(\"[data-animated-weekdays]\"));\n/**\n * Handles animations for transitioning between months in the DayPicker\n * component.\n *\n * @private\n * @param rootElRef - A reference to the root element of the DayPicker\n * component.\n * @param enabled - Whether animations are enabled.\n * @param options - Configuration options for the animation, including class\n * names, months, focused day, and the date utility library.\n */\nexport function useAnimation(rootElRef, enabled, { classNames, months, focused, dateLib, }) {\n const previousRootElSnapshotRef = useRef(null);\n const previousMonthsRef = useRef(months);\n const animatingRef = useRef(false);\n useLayoutEffect(() => {\n // get previous months before updating the previous months ref\n const previousMonths = previousMonthsRef.current;\n // update previous months ref for next effect trigger\n previousMonthsRef.current = months;\n if (!enabled ||\n !rootElRef.current ||\n // safety check because the ref can be set to anything by consumers\n !(rootElRef.current instanceof HTMLElement) ||\n // validation required for the animation to work as expected\n months.length === 0 ||\n previousMonths.length === 0 ||\n months.length !== previousMonths.length) {\n return;\n }\n const isSameMonth = dateLib.isSameMonth(months[0].date, previousMonths[0].date);\n const isAfterPreviousMonth = dateLib.isAfter(months[0].date, previousMonths[0].date);\n const captionAnimationClass = isAfterPreviousMonth\n ? classNames[Animation.caption_after_enter]\n : classNames[Animation.caption_before_enter];\n const weeksAnimationClass = isAfterPreviousMonth\n ? classNames[Animation.weeks_after_enter]\n : classNames[Animation.weeks_before_enter];\n // get previous root element snapshot before updating the snapshot ref\n const previousRootElSnapshot = previousRootElSnapshotRef.current;\n // update snapshot for next effect trigger\n const rootElSnapshot = rootElRef.current.cloneNode(true);\n if (rootElSnapshot instanceof HTMLElement) {\n // if this effect is triggered while animating, we need to clean up the new root snapshot\n // to put it in the same state as when not animating, to correctly animate the next month change\n const currentMonthElsSnapshot = queryMonthEls(rootElSnapshot);\n currentMonthElsSnapshot.forEach((currentMonthElSnapshot) => {\n if (!(currentMonthElSnapshot instanceof HTMLElement))\n return;\n // remove the old month snapshots from the new root snapshot\n const previousMonthElSnapshot = queryMonthEl(currentMonthElSnapshot);\n if (previousMonthElSnapshot &&\n currentMonthElSnapshot.contains(previousMonthElSnapshot)) {\n currentMonthElSnapshot.removeChild(previousMonthElSnapshot);\n }\n // remove animation classes from the new month snapshots\n const captionEl = queryCaptionEl(currentMonthElSnapshot);\n if (captionEl) {\n captionEl.classList.remove(captionAnimationClass);\n }\n const weeksEl = queryWeeksEl(currentMonthElSnapshot);\n if (weeksEl) {\n weeksEl.classList.remove(weeksAnimationClass);\n }\n });\n previousRootElSnapshotRef.current = rootElSnapshot;\n }\n else {\n previousRootElSnapshotRef.current = null;\n }\n if (animatingRef.current ||\n isSameMonth ||\n // skip animation if a day is focused because it can cause issues to the animation and is better for a11y\n focused) {\n return;\n }\n const previousMonthEls = previousRootElSnapshot instanceof HTMLElement\n ? queryMonthEls(previousRootElSnapshot)\n : [];\n const currentMonthEls = queryMonthEls(rootElRef.current);\n if (currentMonthEls?.every((el) => el instanceof HTMLElement) &&\n previousMonthEls &&\n previousMonthEls.every((el) => el instanceof HTMLElement)) {\n animatingRef.current = true;\n const cleanUpFunctions = [];\n // set isolation to isolate to isolate the stacking context during animation\n rootElRef.current.style.isolation = \"isolate\";\n // set z-index to 1 to ensure the nav is clickable over the other elements being animated\n const navEl = queryNavEl(rootElRef.current);\n if (navEl) {\n navEl.style.zIndex = \"1\";\n }\n currentMonthEls.forEach((currentMonthEl, index) => {\n const previousMonthEl = previousMonthEls[index];\n if (!previousMonthEl) {\n return;\n }\n // animate new displayed month\n currentMonthEl.style.position = \"relative\";\n currentMonthEl.style.overflow = \"hidden\";\n const captionEl = queryCaptionEl(currentMonthEl);\n if (captionEl) {\n captionEl.classList.add(captionAnimationClass);\n }\n const weeksEl = queryWeeksEl(currentMonthEl);\n if (weeksEl) {\n weeksEl.classList.add(weeksAnimationClass);\n }\n // animate new displayed month end\n const cleanUp = () => {\n animatingRef.current = false;\n if (rootElRef.current) {\n rootElRef.current.style.isolation = \"\";\n }\n if (navEl) {\n navEl.style.zIndex = \"\";\n }\n if (captionEl) {\n captionEl.classList.remove(captionAnimationClass);\n }\n if (weeksEl) {\n weeksEl.classList.remove(weeksAnimationClass);\n }\n currentMonthEl.style.position = \"\";\n currentMonthEl.style.overflow = \"\";\n if (currentMonthEl.contains(previousMonthEl)) {\n currentMonthEl.removeChild(previousMonthEl);\n }\n };\n cleanUpFunctions.push(cleanUp);\n // animate old displayed month\n previousMonthEl.style.pointerEvents = \"none\";\n previousMonthEl.style.position = \"absolute\";\n previousMonthEl.style.overflow = \"hidden\";\n previousMonthEl.setAttribute(\"aria-hidden\", \"true\");\n // hide the weekdays container of the old month and only the new one\n const previousWeekdaysEl = queryWeekdaysEl(previousMonthEl);\n if (previousWeekdaysEl) {\n previousWeekdaysEl.style.opacity = \"0\";\n }\n const previousCaptionEl = queryCaptionEl(previousMonthEl);\n if (previousCaptionEl) {\n previousCaptionEl.classList.add(isAfterPreviousMonth\n ? classNames[Animation.caption_before_exit]\n : classNames[Animation.caption_after_exit]);\n previousCaptionEl.addEventListener(\"animationend\", cleanUp);\n }\n const previousWeeksEl = queryWeeksEl(previousMonthEl);\n if (previousWeeksEl) {\n previousWeeksEl.classList.add(isAfterPreviousMonth\n ? classNames[Animation.weeks_before_exit]\n : classNames[Animation.weeks_after_exit]);\n }\n currentMonthEl.insertBefore(previousMonthEl, currentMonthEl.firstChild);\n });\n }\n });\n}\n"],"names":["asHtmlElement","element","queryMonthEls","queryMonthEl","queryCaptionEl","queryWeeksEl","queryNavEl","queryWeekdaysEl","useAnimation","rootElRef","enabled","classNames","months","focused","dateLib","previousRootElSnapshotRef","useRef","previousMonthsRef","animatingRef","useLayoutEffect","previousMonths","isSameMonth","isAfterPreviousMonth","captionAnimationClass","Animation","weeksAnimationClass","previousRootElSnapshot","rootElSnapshot","currentMonthElSnapshot","previousMonthElSnapshot","captionEl","weeksEl","previousMonthEls","currentMonthEls","el","navEl","currentMonthEl","index","previousMonthEl","cleanUp","previousWeekdaysEl","previousCaptionEl","previousWeeksEl"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index121.js","sources":["../../../node_modules/react-day-picker/dist/esm/helpers/getLabels.js"],"sourcesContent":["import * as defaultLabels from \"../labels/index.js\";\nconst resolveLabel = (defaultLabel, customLabel, localeLabel) => {\n if (customLabel)\n return customLabel;\n if (localeLabel) {\n return (typeof localeLabel === \"function\"\n ? localeLabel\n : (..._args) => localeLabel);\n }\n return defaultLabel;\n};\n/**\n * Merges custom labels from the props with the default labels.\n *\n * When available, uses the locale-provided translation for `labelNext`.\n *\n * @param customLabels The custom labels provided in the DayPicker props.\n * @param options Options from the date library, used to resolve locale\n * translations.\n * @returns The merged labels object with locale-aware defaults.\n */\nexport function getLabels(customLabels, options) {\n const localeLabels = options.locale?.labels ?? {};\n return {\n ...defaultLabels,\n ...(customLabels ?? {}),\n labelDayButton: resolveLabel(defaultLabels.labelDayButton, customLabels?.labelDayButton, localeLabels.labelDayButton),\n labelMonthDropdown: resolveLabel(defaultLabels.labelMonthDropdown, customLabels?.labelMonthDropdown, localeLabels.labelMonthDropdown),\n labelNext: resolveLabel(defaultLabels.labelNext, customLabels?.labelNext, localeLabels.labelNext),\n labelPrevious: resolveLabel(defaultLabels.labelPrevious, customLabels?.labelPrevious, localeLabels.labelPrevious),\n labelWeekNumber: resolveLabel(defaultLabels.labelWeekNumber, customLabels?.labelWeekNumber, localeLabels.labelWeekNumber),\n labelYearDropdown: resolveLabel(defaultLabels.labelYearDropdown, customLabels?.labelYearDropdown, localeLabels.labelYearDropdown),\n labelGrid: resolveLabel(defaultLabels.labelGrid, customLabels?.labelGrid, localeLabels.labelGrid),\n labelGridcell: resolveLabel(defaultLabels.labelGridcell, customLabels?.labelGridcell, localeLabels.labelGridcell),\n labelNav: resolveLabel(defaultLabels.labelNav, customLabels?.labelNav, localeLabels.labelNav),\n labelWeekNumberHeader: resolveLabel(defaultLabels.labelWeekNumberHeader, customLabels?.labelWeekNumberHeader, localeLabels.labelWeekNumberHeader),\n labelWeekday: resolveLabel(defaultLabels.labelWeekday, customLabels?.labelWeekday, localeLabels.labelWeekday),\n };\n}\n"],"names":["resolveLabel","defaultLabel","customLabel","localeLabel","_args","getLabels","customLabels","options","localeLabels","defaultLabels","defaultLabels.labelDayButton","defaultLabels.labelMonthDropdown","defaultLabels.labelNext","defaultLabels.labelPrevious","defaultLabels.labelWeekNumber","defaultLabels.labelYearDropdown","defaultLabels.labelGrid","defaultLabels.labelGridcell","defaultLabels.labelNav","defaultLabels.labelWeekNumberHeader","defaultLabels.labelWeekday"],"mappings":";;;;;;;;;;;;AACA,MAAMA,IAAe,CAACC,GAAcC,GAAaC,MACzCD,MAEAC,IACQ,OAAOA,KAAgB,aACzBA,IACA,IAAIC,MAAUD,IAEjBF;AAYJ,SAASI,EAAUC,GAAcC,GAAS;AAC7C,QAAMC,IAAeD,EAAQ,QAAQ,UAAU,CAAA;AAC/C,SAAO;AAAA,IACH,GAAGE;AAAAA,IACH,GAAIH,KAAgB,CAAA;AAAA,IACpB,gBAAgBN,EAAaU,GAA8BJ,GAAc,gBAAgBE,EAAa,cAAc;AAAA,IACpH,oBAAoBR,EAAaW,GAAkCL,GAAc,oBAAoBE,EAAa,kBAAkB;AAAA,IACpI,WAAWR,EAAaY,GAAyBN,GAAc,WAAWE,EAAa,SAAS;AAAA,IAChG,eAAeR,EAAaa,GAA6BP,GAAc,eAAeE,EAAa,aAAa;AAAA,IAChH,iBAAiBR,EAAac,GAA+BR,GAAc,iBAAiBE,EAAa,eAAe;AAAA,IACxH,mBAAmBR,EAAae,GAAiCT,GAAc,mBAAmBE,EAAa,iBAAiB;AAAA,IAChI,WAAWR,EAAagB,GAAyBV,GAAc,WAAWE,EAAa,SAAS;AAAA,IAChG,eAAeR,EAAaiB,GAA6BX,GAAc,eAAeE,EAAa,aAAa;AAAA,IAChH,UAAUR,EAAakB,GAAwBZ,GAAc,UAAUE,EAAa,QAAQ;AAAA,IAC5F,uBAAuBR,EAAamB,GAAqCb,GAAc,uBAAuBE,EAAa,qBAAqB;AAAA,IAChJ,cAAcR,EAAaoB,GAA4Bd,GAAc,cAAcE,EAAa,YAAY;AAAA,EACpH;AACA;","x_google_ignoreList":[0]}
package/dist/index122.js CHANGED
@@ -1,76 +1,14 @@
1
- import { useEffect as D, useMemo as S } from "react";
2
- import { getDates as N } from "./index220.js";
3
- import { getDays as w } from "./index221.js";
4
- import { getDisplayMonths as E } from "./index222.js";
5
- import { getInitialMonth as c } from "./index223.js";
6
- import { getMonths as b } from "./index224.js";
7
- import { getNavMonths as q } from "./index225.js";
8
- import { getNextMonth as F } from "./index226.js";
9
- import { getPreviousMonth as P } from "./index227.js";
10
- import { getWeeks as V } from "./index228.js";
11
- import { useControlledValue as Z } from "./index229.js";
12
- function _(e, n) {
13
- const [s, a] = q(e, n), { startOfMonth: i, endOfMonth: g } = n, h = c(e, s, a, n), [m, f] = Z(
14
- h,
15
- // initialMonth is always computed from props.month if provided
16
- e.month ? h : void 0
17
- );
18
- D(() => {
19
- const t = c(e, s, a, n);
20
- f(t);
21
- }, [e.timeZone]);
22
- const { months: l, weeks: M, days: u, previousMonth: k, nextMonth: v } = S(() => {
23
- const t = E(m, a, { numberOfMonths: e.numberOfMonths }, n), o = N(t, e.endMonth ? g(e.endMonth) : void 0, {
24
- ISOWeek: e.ISOWeek,
25
- fixedWeeks: e.fixedWeeks,
26
- broadcastCalendar: e.broadcastCalendar
27
- }, n), r = b(t, o, {
28
- broadcastCalendar: e.broadcastCalendar,
29
- fixedWeeks: e.fixedWeeks,
30
- ISOWeek: e.ISOWeek,
31
- reverseMonths: e.reverseMonths
32
- }, n), C = V(r), y = w(r), I = P(m, s, e, n), T = F(m, a, e, n);
33
- return {
34
- months: r,
35
- weeks: C,
36
- days: y,
37
- previousMonth: I,
38
- nextMonth: T
39
- };
40
- }, [
41
- n,
42
- m.getTime(),
43
- a?.getTime(),
44
- s?.getTime(),
45
- e.disableNavigation,
46
- e.broadcastCalendar,
47
- e.endMonth?.getTime(),
48
- e.fixedWeeks,
49
- e.ISOWeek,
50
- e.numberOfMonths,
51
- e.pagedNavigation,
52
- e.reverseMonths
53
- ]), { disableNavigation: W, onMonthChange: O } = e, x = (t) => M.some((o) => o.days.some((r) => r.isEqualTo(t))), d = (t) => {
54
- if (W)
55
- return;
56
- let o = i(t);
57
- s && o < i(s) && (o = i(s)), a && o > i(a) && (o = i(a)), f(o), O?.(o);
58
- };
59
- return {
60
- months: l,
61
- weeks: M,
62
- days: u,
63
- navStart: s,
64
- navEnd: a,
65
- previousMonth: k,
66
- nextMonth: v,
67
- goToMonth: d,
68
- goToDay: (t) => {
69
- x(t) || d(t.date);
70
- }
71
- };
1
+ function d(o, n, s, a, e) {
2
+ const { startOfMonth: r, startOfYear: c, endOfYear: f, eachMonthOfInterval: l, getMonth: p } = e;
3
+ return l({
4
+ start: c(o),
5
+ end: f(o)
6
+ }).map((t) => {
7
+ const O = a.formatMonthDropdown(t, e), h = p(t), u = n && t < r(n) || s && t > r(s) || !1;
8
+ return { value: h, label: O, disabled: u };
9
+ });
72
10
  }
73
11
  export {
74
- _ as useCalendar
12
+ d as getMonthOptions
75
13
  };
76
14
  //# sourceMappingURL=index122.js.map