@rpcbase/ui 0.196.0 → 0.198.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 (554) hide show
  1. package/dist/components/HourPickerField/index.d.ts.map +1 -1
  2. package/dist/index100.js +5 -6
  3. package/dist/index100.js.map +1 -1
  4. package/dist/index101.js +4 -24
  5. package/dist/index101.js.map +1 -1
  6. package/dist/index102.js +8 -6
  7. package/dist/index102.js.map +1 -1
  8. package/dist/index103.js +5 -4
  9. package/dist/index103.js.map +1 -1
  10. package/dist/index104.js +4 -6
  11. package/dist/index104.js.map +1 -1
  12. package/dist/index105.js +4 -5
  13. package/dist/index105.js.map +1 -1
  14. package/dist/index106.js +6 -4
  15. package/dist/index106.js.map +1 -1
  16. package/dist/index107.js +145 -5
  17. package/dist/index107.js.map +1 -1
  18. package/dist/index108.js +39 -4
  19. package/dist/index108.js.map +1 -1
  20. package/dist/index109.js +4 -8
  21. package/dist/index109.js.map +1 -1
  22. package/dist/index110.js +7 -5
  23. package/dist/index110.js.map +1 -1
  24. package/dist/index111.js +13 -4
  25. package/dist/index111.js.map +1 -1
  26. package/dist/index112.js +13 -4
  27. package/dist/index112.js.map +1 -1
  28. package/dist/index113.js +7 -6
  29. package/dist/index113.js.map +1 -1
  30. package/dist/index114.js +31 -145
  31. package/dist/index114.js.map +1 -1
  32. package/dist/index115.js +10 -39
  33. package/dist/index115.js.map +1 -1
  34. package/dist/index116.js +10 -4
  35. package/dist/index116.js.map +1 -1
  36. package/dist/index117.js +8 -7
  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 +101 -13
  41. package/dist/index119.js.map +1 -1
  42. package/dist/index120.js +20 -8
  43. package/dist/index120.js.map +1 -1
  44. package/dist/index121.js +53 -31
  45. package/dist/index121.js.map +1 -1
  46. package/dist/index122.js +72 -10
  47. package/dist/index122.js.map +1 -1
  48. package/dist/index123.js +9 -10
  49. package/dist/index123.js.map +1 -1
  50. package/dist/index124.js +20 -8
  51. package/dist/index124.js.map +1 -1
  52. package/dist/index125.js +16 -13
  53. package/dist/index125.js.map +1 -1
  54. package/dist/index126.js +23 -101
  55. package/dist/index126.js.map +1 -1
  56. package/dist/index127.js +7 -20
  57. package/dist/index127.js.map +1 -1
  58. package/dist/index128.js +5 -53
  59. package/dist/index128.js.map +1 -1
  60. package/dist/index129.js +23 -72
  61. package/dist/index129.js.map +1 -1
  62. package/dist/index130.js +35 -10
  63. package/dist/index130.js.map +1 -1
  64. package/dist/index131.js +16 -21
  65. package/dist/index131.js.map +1 -1
  66. package/dist/index132.js +6 -16
  67. package/dist/index132.js.map +1 -1
  68. package/dist/index133.js +4 -23
  69. package/dist/index133.js.map +1 -1
  70. package/dist/index134.js +4 -6
  71. package/dist/index134.js.map +1 -1
  72. package/dist/index135.js +4 -5
  73. package/dist/index135.js.map +1 -1
  74. package/dist/index136.js +4 -23
  75. package/dist/index136.js.map +1 -1
  76. package/dist/index137.js +4 -35
  77. package/dist/index137.js.map +1 -1
  78. package/dist/index138.js +7 -16
  79. package/dist/index138.js.map +1 -1
  80. package/dist/index139.js +24 -7
  81. package/dist/index139.js.map +1 -1
  82. package/dist/index140.js +7 -4
  83. package/dist/index140.js.map +1 -1
  84. package/dist/index141.js +6 -4
  85. package/dist/index141.js.map +1 -1
  86. package/dist/index142.js +5 -4
  87. package/dist/index142.js.map +1 -1
  88. package/dist/index143.js +3 -4
  89. package/dist/index143.js.map +1 -1
  90. package/dist/index144.js +1 -1
  91. package/dist/index144.js.map +1 -1
  92. package/dist/index145.js +4 -6
  93. package/dist/index145.js.map +1 -1
  94. package/dist/index146.js +4 -24
  95. package/dist/index146.js.map +1 -1
  96. package/dist/index147.js +4 -7
  97. package/dist/index147.js.map +1 -1
  98. package/dist/index148.js +3 -6
  99. package/dist/index148.js.map +1 -1
  100. package/dist/index149.js +3 -5
  101. package/dist/index149.js.map +1 -1
  102. package/dist/index150.js +3 -3
  103. package/dist/index150.js.map +1 -1
  104. package/dist/index151.js +46 -3
  105. package/dist/index151.js.map +1 -1
  106. package/dist/index152.js +605 -4
  107. package/dist/index152.js.map +1 -1
  108. package/dist/index153.js +5 -3
  109. package/dist/index153.js.map +1 -1
  110. package/dist/index154.js +68 -4
  111. package/dist/index154.js.map +1 -1
  112. package/dist/index155.js +2 -4
  113. package/dist/index155.js.map +1 -1
  114. package/dist/index156.js +363 -3
  115. package/dist/index156.js.map +1 -1
  116. package/dist/index157.js +261 -3
  117. package/dist/index157.js.map +1 -1
  118. package/dist/index158.js +60 -5
  119. package/dist/index158.js.map +1 -1
  120. package/dist/index159.js +40 -62
  121. package/dist/index159.js.map +1 -1
  122. package/dist/index160.js +170 -2
  123. package/dist/index160.js.map +1 -1
  124. package/dist/index161.js +102 -356
  125. package/dist/index161.js.map +1 -1
  126. package/dist/index162.js +24 -261
  127. package/dist/index162.js.map +1 -1
  128. package/dist/index163.js +8 -61
  129. package/dist/index163.js.map +1 -1
  130. package/dist/index164.js +4 -46
  131. package/dist/index164.js.map +1 -1
  132. package/dist/index165.js +5 -169
  133. package/dist/index165.js.map +1 -1
  134. package/dist/index166.js +4 -109
  135. package/dist/index166.js.map +1 -1
  136. package/dist/index167.js +466 -24
  137. package/dist/index167.js.map +1 -1
  138. package/dist/index168.js +186 -8
  139. package/dist/index168.js.map +1 -1
  140. package/dist/index169.js +107 -4
  141. package/dist/index169.js.map +1 -1
  142. package/dist/index170.js +262 -5
  143. package/dist/index170.js.map +1 -1
  144. package/dist/index171.js +9 -4
  145. package/dist/index171.js.map +1 -1
  146. package/dist/index172.js +38 -462
  147. package/dist/index172.js.map +1 -1
  148. package/dist/index173.js +4 -185
  149. package/dist/index173.js.map +1 -1
  150. package/dist/index174.js +42 -103
  151. package/dist/index174.js.map +1 -1
  152. package/dist/index175.js +196 -253
  153. package/dist/index175.js.map +1 -1
  154. package/dist/index176.js +22 -10
  155. package/dist/index176.js.map +1 -1
  156. package/dist/index177.js +24 -42
  157. package/dist/index177.js.map +1 -1
  158. package/dist/index178.js +399 -4
  159. package/dist/index178.js.map +1 -1
  160. package/dist/index179.js +58 -24
  161. package/dist/index179.js.map +1 -1
  162. package/dist/index180.js +9 -29
  163. package/dist/index180.js.map +1 -1
  164. package/dist/index181.js +67 -5
  165. package/dist/index181.js.map +1 -1
  166. package/dist/index182.js +18 -66
  167. package/dist/index182.js.map +1 -1
  168. package/dist/index183.js +15 -179
  169. package/dist/index183.js.map +1 -1
  170. package/dist/index184.js +4 -45
  171. package/dist/index184.js.map +1 -1
  172. package/dist/index185.js +4 -57
  173. package/dist/index185.js.map +1 -1
  174. package/dist/index186.js +6 -8
  175. package/dist/index186.js.map +1 -1
  176. package/dist/index187.js +4 -66
  177. package/dist/index187.js.map +1 -1
  178. package/dist/index188.js +7 -19
  179. package/dist/index188.js.map +1 -1
  180. package/dist/index189.js +17 -16
  181. package/dist/index189.js.map +1 -1
  182. package/dist/index19.js +432 -418
  183. package/dist/index19.js.map +1 -1
  184. package/dist/index190.js +5 -5
  185. package/dist/index190.js.map +1 -1
  186. package/dist/index191.js +5 -5
  187. package/dist/index191.js.map +1 -1
  188. package/dist/index192.js +13 -6
  189. package/dist/index192.js.map +1 -1
  190. package/dist/index193.js +10 -4
  191. package/dist/index193.js.map +1 -1
  192. package/dist/index194.js +14 -7
  193. package/dist/index194.js.map +1 -1
  194. package/dist/index195.js +14 -17
  195. package/dist/index195.js.map +1 -1
  196. package/dist/index196.js +5 -5
  197. package/dist/index196.js.map +1 -1
  198. package/dist/index197.js +6 -5
  199. package/dist/index197.js.map +1 -1
  200. package/dist/index198.js +7 -13
  201. package/dist/index198.js.map +1 -1
  202. package/dist/index199.js +5 -9
  203. package/dist/index199.js.map +1 -1
  204. package/dist/index200.js +9 -14
  205. package/dist/index200.js.map +1 -1
  206. package/dist/index201.js +5 -14
  207. package/dist/index201.js.map +1 -1
  208. package/dist/index202.js +5 -5
  209. package/dist/index202.js.map +1 -1
  210. package/dist/index203.js +9 -6
  211. package/dist/index203.js.map +1 -1
  212. package/dist/index204.js +5 -7
  213. package/dist/index204.js.map +1 -1
  214. package/dist/index205.js +5 -6
  215. package/dist/index205.js.map +1 -1
  216. package/dist/index206.js +4 -9
  217. package/dist/index206.js.map +1 -1
  218. package/dist/index207.js +11 -5
  219. package/dist/index207.js.map +1 -1
  220. package/dist/index208.js +10 -5
  221. package/dist/index208.js.map +1 -1
  222. package/dist/index209.js +10 -9
  223. package/dist/index209.js.map +1 -1
  224. package/dist/index210.js +11 -5
  225. package/dist/index210.js.map +1 -1
  226. package/dist/index211.js +11 -5
  227. package/dist/index211.js.map +1 -1
  228. package/dist/index212.js +10 -4
  229. package/dist/index212.js.map +1 -1
  230. package/dist/index213.js +7 -11
  231. package/dist/index213.js.map +1 -1
  232. package/dist/index214.js +6 -10
  233. package/dist/index214.js.map +1 -1
  234. package/dist/index215.js +5 -10
  235. package/dist/index215.js.map +1 -1
  236. package/dist/index216.js +6 -11
  237. package/dist/index216.js.map +1 -1
  238. package/dist/index217.js +7 -11
  239. package/dist/index217.js.map +1 -1
  240. package/dist/index218.js +6 -10
  241. package/dist/index218.js.map +1 -1
  242. package/dist/index219.js +55 -7
  243. package/dist/index219.js.map +1 -1
  244. package/dist/index220.js +16 -6
  245. package/dist/index220.js.map +1 -1
  246. package/dist/index221.js +7 -5
  247. package/dist/index221.js.map +1 -1
  248. package/dist/index222.js +10 -6
  249. package/dist/index222.js.map +1 -1
  250. package/dist/index223.js +10 -7
  251. package/dist/index223.js.map +1 -1
  252. package/dist/index224.js +21 -6
  253. package/dist/index224.js.map +1 -1
  254. package/dist/index225.js +10 -55
  255. package/dist/index225.js.map +1 -1
  256. package/dist/index226.js +9 -16
  257. package/dist/index226.js.map +1 -1
  258. package/dist/index227.js +9 -7
  259. package/dist/index227.js.map +1 -1
  260. package/dist/index228.js +4 -10
  261. package/dist/index228.js.map +1 -1
  262. package/dist/index229.js +5 -10
  263. package/dist/index229.js.map +1 -1
  264. package/dist/index230.js +16 -21
  265. package/dist/index230.js.map +1 -1
  266. package/dist/index231.js +9 -10
  267. package/dist/index231.js.map +1 -1
  268. package/dist/index232.js +18 -9
  269. package/dist/index232.js.map +1 -1
  270. package/dist/index233.js +15 -9
  271. package/dist/index233.js.map +1 -1
  272. package/dist/index234.js +12 -4
  273. package/dist/index234.js.map +1 -1
  274. package/dist/index235.js +29 -5
  275. package/dist/index235.js.map +1 -1
  276. package/dist/index236.js +11 -15
  277. package/dist/index236.js.map +1 -1
  278. package/dist/index237.js +25 -9
  279. package/dist/index237.js.map +1 -1
  280. package/dist/index238.js +5 -18
  281. package/dist/index238.js.map +1 -1
  282. package/dist/index239.js +65 -13
  283. package/dist/index239.js.map +1 -1
  284. package/dist/index24.js +1 -1
  285. package/dist/index240.js +180 -12
  286. package/dist/index240.js.map +1 -1
  287. package/dist/index241.js +45 -28
  288. package/dist/index241.js.map +1 -1
  289. package/dist/index242.js +13 -12
  290. package/dist/index242.js.map +1 -1
  291. package/dist/index243.js +152 -23
  292. package/dist/index243.js.map +1 -1
  293. package/dist/index244.js +30 -5
  294. package/dist/index244.js.map +1 -1
  295. package/dist/index245.js +9 -13
  296. package/dist/index245.js.map +1 -1
  297. package/dist/index246.js +41 -147
  298. package/dist/index246.js.map +1 -1
  299. package/dist/index247.js +10 -29
  300. package/dist/index247.js.map +1 -1
  301. package/dist/index248.js +44 -9
  302. package/dist/index248.js.map +1 -1
  303. package/dist/index249.js +88 -41
  304. package/dist/index249.js.map +1 -1
  305. package/dist/index250.js +85 -10
  306. package/dist/index250.js.map +1 -1
  307. package/dist/index251.js +102 -41
  308. package/dist/index251.js.map +1 -1
  309. package/dist/index252.js +45 -88
  310. package/dist/index252.js.map +1 -1
  311. package/dist/index253.js +10 -85
  312. package/dist/index253.js.map +1 -1
  313. package/dist/index254.js +28 -96
  314. package/dist/index254.js.map +1 -1
  315. package/dist/index255.js +8 -52
  316. package/dist/index255.js.map +1 -1
  317. package/dist/index256.js +115 -10
  318. package/dist/index256.js.map +1 -1
  319. package/dist/index257.js +16 -36
  320. package/dist/index257.js.map +1 -1
  321. package/dist/index258.js +15 -8
  322. package/dist/index258.js.map +1 -1
  323. package/dist/index260.js +36 -9
  324. package/dist/index260.js.map +1 -1
  325. package/dist/index261.js +19 -115
  326. package/dist/index261.js.map +1 -1
  327. package/dist/index262.js +9 -17
  328. package/dist/index262.js.map +1 -1
  329. package/dist/index263.js +8 -15
  330. package/dist/index263.js.map +1 -1
  331. package/dist/index264.js +14 -31
  332. package/dist/index264.js.map +1 -1
  333. package/dist/index265.js +27 -19
  334. package/dist/index265.js.map +1 -1
  335. package/dist/index266.js +15 -7
  336. package/dist/index266.js.map +1 -1
  337. package/dist/index267.js +24 -19
  338. package/dist/index267.js.map +1 -1
  339. package/dist/index268.js +29 -29
  340. package/dist/index268.js.map +1 -1
  341. package/dist/index269.js +5 -17
  342. package/dist/index269.js.map +1 -1
  343. package/dist/index270.js +5 -5
  344. package/dist/index270.js.map +1 -1
  345. package/dist/index271.js +19 -3
  346. package/dist/index271.js.map +1 -1
  347. package/dist/index272.js +12 -23
  348. package/dist/index272.js.map +1 -1
  349. package/dist/index273.js +19 -111
  350. package/dist/index273.js.map +1 -1
  351. package/dist/index274.js +5 -16
  352. package/dist/index274.js.map +1 -1
  353. package/dist/index275.js +3 -525
  354. package/dist/index275.js.map +1 -1
  355. package/dist/index276.js +23 -127
  356. package/dist/index276.js.map +1 -1
  357. package/dist/index277.js +108 -129
  358. package/dist/index277.js.map +1 -1
  359. package/dist/index278.js +15 -4
  360. package/dist/index278.js.map +1 -1
  361. package/dist/index279.js +523 -17
  362. package/dist/index279.js.map +1 -1
  363. package/dist/index280.js +127 -12
  364. package/dist/index280.js.map +1 -1
  365. package/dist/index281.js +133 -20
  366. package/dist/index281.js.map +1 -1
  367. package/dist/index282.js +5 -64
  368. package/dist/index282.js.map +1 -1
  369. package/dist/index283.js +6 -69
  370. package/dist/index283.js.map +1 -1
  371. package/dist/index284.js +4 -9
  372. package/dist/index284.js.map +1 -1
  373. package/dist/index285.js +16 -14
  374. package/dist/index285.js.map +1 -1
  375. package/dist/index286.js +8 -65
  376. package/dist/index286.js.map +1 -1
  377. package/dist/index287.js +5 -5
  378. package/dist/index287.js.map +1 -1
  379. package/dist/index288.js +4 -5
  380. package/dist/index288.js.map +1 -1
  381. package/dist/index289.js +546 -4
  382. package/dist/index289.js.map +1 -1
  383. package/dist/index290.js +47 -16
  384. package/dist/index290.js.map +1 -1
  385. package/dist/index291.js +17 -8
  386. package/dist/index291.js.map +1 -1
  387. package/dist/index292.js +6 -5
  388. package/dist/index292.js.map +1 -1
  389. package/dist/index293.js +8 -4
  390. package/dist/index293.js.map +1 -1
  391. package/dist/index294.js +7 -545
  392. package/dist/index294.js.map +1 -1
  393. package/dist/index295.js +9 -47
  394. package/dist/index295.js.map +1 -1
  395. package/dist/index296.js +12 -17
  396. package/dist/index296.js.map +1 -1
  397. package/dist/index297.js +9 -6
  398. package/dist/index297.js.map +1 -1
  399. package/dist/index298.js +13 -8
  400. package/dist/index298.js.map +1 -1
  401. package/dist/index299.js +64 -7
  402. package/dist/index299.js.map +1 -1
  403. package/dist/index300.js +69 -9
  404. package/dist/index300.js.map +1 -1
  405. package/dist/index301.js +9 -13
  406. package/dist/index301.js.map +1 -1
  407. package/dist/index302.js +14 -10
  408. package/dist/index302.js.map +1 -1
  409. package/dist/index303.js +66 -14
  410. package/dist/index303.js.map +1 -1
  411. package/dist/index304.js +4 -3
  412. package/dist/index304.js.map +1 -1
  413. package/dist/index305.js +56 -23
  414. package/dist/index305.js.map +1 -1
  415. package/dist/index306.js +68 -5
  416. package/dist/index306.js.map +1 -1
  417. package/dist/index307.js +30 -55
  418. package/dist/index307.js.map +1 -1
  419. package/dist/index308.js +9 -68
  420. package/dist/index308.js.map +1 -1
  421. package/dist/index309.js +148 -26
  422. package/dist/index309.js.map +1 -1
  423. package/dist/index31.js +5 -5
  424. package/dist/index310.js +108 -9
  425. package/dist/index310.js.map +1 -1
  426. package/dist/index311.js +4 -153
  427. package/dist/index311.js.map +1 -1
  428. package/dist/index312.js +23 -108
  429. package/dist/index312.js.map +1 -1
  430. package/dist/index313.js +15 -12
  431. package/dist/index313.js.map +1 -1
  432. package/dist/index314.js +26 -25
  433. package/dist/index314.js.map +1 -1
  434. package/dist/index315.js +13 -5
  435. package/dist/index315.js.map +1 -1
  436. package/dist/index316.js +6 -22
  437. package/dist/index316.js.map +1 -1
  438. package/dist/index317.js +22 -15
  439. package/dist/index317.js.map +1 -1
  440. package/dist/index318.js +12 -28
  441. package/dist/index318.js.map +1 -1
  442. package/dist/index319.js +27 -12
  443. package/dist/index319.js.map +1 -1
  444. package/dist/index32.js +24 -24
  445. package/dist/index320.js +5 -7
  446. package/dist/index320.js.map +1 -1
  447. package/dist/index33.js +3 -3
  448. package/dist/index36.js +1 -1
  449. package/dist/index37.js +2 -2
  450. package/dist/index40.js +2 -2
  451. package/dist/index41.js +20 -20
  452. package/dist/index45.js +1 -1
  453. package/dist/index46.js +1 -1
  454. package/dist/index49.js +1 -1
  455. package/dist/index50.js +1 -1
  456. package/dist/index51.js +6 -3
  457. package/dist/index51.js.map +1 -1
  458. package/dist/index52.js +33 -6
  459. package/dist/index52.js.map +1 -1
  460. package/dist/index53.js +25 -46
  461. package/dist/index53.js.map +1 -1
  462. package/dist/index54.js +7 -26
  463. package/dist/index54.js.map +1 -1
  464. package/dist/index55.js +10 -49
  465. package/dist/index55.js.map +1 -1
  466. package/dist/index56.js +2 -8
  467. package/dist/index56.js.map +1 -1
  468. package/dist/index57.js +2 -15
  469. package/dist/index57.js.map +1 -1
  470. package/dist/index58.js +198 -127
  471. package/dist/index58.js.map +1 -1
  472. package/dist/index59.js +3 -10
  473. package/dist/index59.js.map +1 -1
  474. package/dist/index60.js +45 -214
  475. package/dist/index60.js.map +1 -1
  476. package/dist/index61.js +51 -13
  477. package/dist/index61.js.map +1 -1
  478. package/dist/index62.js +7 -33
  479. package/dist/index62.js.map +1 -1
  480. package/dist/index63.js +13 -45
  481. package/dist/index63.js.map +1 -1
  482. package/dist/index64.js +133 -7
  483. package/dist/index64.js.map +1 -1
  484. package/dist/index65.js +9 -48
  485. package/dist/index65.js.map +1 -1
  486. package/dist/index66.js +216 -3
  487. package/dist/index66.js.map +1 -1
  488. package/dist/index67.js +13 -6
  489. package/dist/index67.js.map +1 -1
  490. package/dist/index68.js +46 -27
  491. package/dist/index68.js.map +1 -1
  492. package/dist/index69.js +50 -50
  493. package/dist/index69.js.map +1 -1
  494. package/dist/index70.js +4 -9
  495. package/dist/index70.js.map +1 -1
  496. package/dist/index71.js +6 -205
  497. package/dist/index71.js.map +1 -1
  498. package/dist/index72.js +28 -2
  499. package/dist/index72.js.map +1 -1
  500. package/dist/index73.js +50 -2
  501. package/dist/index73.js.map +1 -1
  502. package/dist/index74.js +9 -2
  503. package/dist/index74.js.map +1 -1
  504. package/dist/index75.js +6 -2
  505. package/dist/index75.js.map +1 -1
  506. package/dist/index76.js +7 -11
  507. package/dist/index76.js.map +1 -1
  508. package/dist/index77.js +5 -5
  509. package/dist/index77.js.map +1 -1
  510. package/dist/index78.js +2 -8
  511. package/dist/index78.js.map +1 -1
  512. package/dist/index79.js +2 -6
  513. package/dist/index79.js.map +1 -1
  514. package/dist/index80.js +52 -47
  515. package/dist/index80.js.map +1 -1
  516. package/dist/index81.js +4 -205
  517. package/dist/index81.js.map +1 -1
  518. package/dist/index82.js +5 -22
  519. package/dist/index82.js.map +1 -1
  520. package/dist/index83.js +15 -24
  521. package/dist/index83.js.map +1 -1
  522. package/dist/index84.js +5 -399
  523. package/dist/index84.js.map +1 -1
  524. package/dist/index85.js +7 -46
  525. package/dist/index85.js.map +1 -1
  526. package/dist/index86.js +15 -604
  527. package/dist/index86.js.map +1 -1
  528. package/dist/index87.js +5 -52
  529. package/dist/index87.js.map +1 -1
  530. package/dist/index88.js +4 -4
  531. package/dist/index88.js.map +1 -1
  532. package/dist/index89.js +5 -4
  533. package/dist/index89.js.map +1 -1
  534. package/dist/index90.js +5 -15
  535. package/dist/index90.js.map +1 -1
  536. package/dist/index91.js +3 -4
  537. package/dist/index91.js.map +1 -1
  538. package/dist/index92.js +3 -6
  539. package/dist/index92.js.map +1 -1
  540. package/dist/index93.js +5 -15
  541. package/dist/index93.js.map +1 -1
  542. package/dist/index94.js +24 -4
  543. package/dist/index94.js.map +1 -1
  544. package/dist/index95.js +6 -4
  545. package/dist/index95.js.map +1 -1
  546. package/dist/index96.js +4 -5
  547. package/dist/index96.js.map +1 -1
  548. package/dist/index97.js +6 -5
  549. package/dist/index97.js.map +1 -1
  550. package/dist/index98.js +4 -3
  551. package/dist/index98.js.map +1 -1
  552. package/dist/index99.js +4 -4
  553. package/dist/index99.js.map +1 -1
  554. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index19.js","sources":["../src/components/HourPickerField/index.tsx"],"sourcesContent":["import { Check, ChevronDown, ChevronUp } from \"lucide-react\"\nimport * as React from \"react\"\nimport { DismissableLayerBranch } from \"@radix-ui/react-dismissable-layer\"\nimport { createPortal } from \"react-dom\"\nimport { IMaskInput } from \"react-imask\"\nimport IMask, { InputMask } from \"imask\"\n\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/Select\"\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 HourPickerOption = {\n value: string\n label: string\n disabled?: boolean\n description?: React.ReactNode\n}\n\nfunction pad2(value: number) {\n return String(value).padStart(2, \"0\")\n}\n\nfunction parseTimeInput(raw: string) {\n const trimmed = raw.trim()\n if (!trimmed) return null\n\n const match = /^(\\d{1,2}):(\\d{2})$/.exec(trimmed)\n if (!match) {\n return null\n }\n\n const hours = Number(match[1])\n const minutes = Number(match[2])\n if (!Number.isFinite(hours) || !Number.isFinite(minutes)) {\n return null\n }\n\n if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {\n return null\n }\n\n return `${pad2(hours)}:${pad2(minutes)}`\n}\n\ntype ParsedTimeInputResult = {\n parsed: string\n selectableValue: string | null\n}\n\nfunction parseTimeInputWithSelectableOption(raw: string, options: HourPickerOption[]): ParsedTimeInputResult | null {\n const parsed = parseTimeInput(raw)\n if (!parsed) return null\n\n const parsedOption = options.find((option) => option.value === parsed)\n if (isOptionSelectable(parsedOption)) {\n return { parsed, selectableValue: parsed }\n }\n\n return { parsed, selectableValue: null }\n}\n\nfunction timeStringToMinutes(value: string) {\n const match = /^(\\d{2}):(\\d{2})$/.exec(value)\n if (!match) {\n return null\n }\n\n const hours = Number(match[1])\n const minutes = Number(match[2])\n\n if (!Number.isFinite(hours) || !Number.isFinite(minutes)) {\n return null\n }\n\n return hours * 60 + minutes\n}\n\nfunction isOptionSelectable(option: HourPickerOption | undefined) {\n if (!option) return false\n return !option.disabled\n}\n\nfunction findClosestSelectableOption(targetMinutes: number, options: HourPickerOption[]) {\n let bestOption: HourPickerOption | null = null\n let bestDiff = Number.POSITIVE_INFINITY\n let bestMinutes = Number.NEGATIVE_INFINITY\n\n for (const option of options) {\n if (!isOptionSelectable(option)) continue\n const optionMinutes = timeStringToMinutes(option.value)\n if (optionMinutes == null) continue\n\n const diff = Math.abs(optionMinutes - targetMinutes)\n if (diff < bestDiff || (diff === bestDiff && optionMinutes > bestMinutes)) {\n bestOption = option\n bestDiff = diff\n bestMinutes = optionMinutes\n }\n }\n\n return bestOption\n}\n\ntype HourPickerScrollButtonDirection = \"up\" | \"down\"\n\ntype HourPickerScrollButtonProps = {\n direction: HourPickerScrollButtonDirection\n viewportRef: React.RefObject<HTMLElement | null>\n speed?: number\n className?: string\n}\n\nfunction HourPickerScrollButton({\n direction,\n viewportRef,\n speed = 400,\n className,\n}: HourPickerScrollButtonProps) {\n const [disabled, setDisabled] = React.useState(true)\n const animationRef = React.useRef<number | undefined>(undefined)\n const lastTimeRef = React.useRef<number | undefined>(undefined)\n const isScrollingRef = React.useRef(false)\n\n const checkScrollability = React.useCallback(() => {\n const viewport = viewportRef.current\n if (!viewport) {\n setDisabled(true)\n return\n }\n\n const { scrollTop, scrollHeight, clientHeight } = viewport\n const tolerance = 2\n\n const canScrollUp = scrollTop > tolerance\n const canScrollDown = scrollTop < (scrollHeight - clientHeight - tolerance)\n const hasScrollableContent = scrollHeight > clientHeight + tolerance\n\n if (!hasScrollableContent) {\n setDisabled(true)\n return\n }\n\n const shouldDisable = direction === \"up\" ? !canScrollUp : !canScrollDown\n setDisabled(shouldDisable)\n }, [direction, viewportRef])\n\n React.useEffect(() => {\n const viewport = viewportRef.current\n if (!viewport) return\n\n checkScrollability()\n\n const handleScroll = () => checkScrollability()\n const handleResize = () => checkScrollability()\n\n viewport.addEventListener(\"scroll\", handleScroll, { passive: true })\n\n const resizeObserver = new ResizeObserver(handleResize)\n resizeObserver.observe(viewport)\n\n const mutationObserver = new MutationObserver(handleResize)\n mutationObserver.observe(viewport, { childList: true, subtree: true })\n\n return () => {\n viewport.removeEventListener(\"scroll\", handleScroll)\n resizeObserver.disconnect()\n mutationObserver.disconnect()\n }\n }, [viewportRef, checkScrollability])\n\n const stopScrolling = React.useCallback(() => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = undefined\n }\n isScrollingRef.current = false\n lastTimeRef.current = undefined\n }, [])\n\n const smoothScroll = React.useCallback(\n (currentTime: number) => {\n const viewport = viewportRef.current\n if (!viewport || disabled || !isScrollingRef.current) {\n stopScrolling()\n return\n }\n\n if (!lastTimeRef.current) {\n lastTimeRef.current = currentTime\n }\n\n const deltaTime = currentTime - lastTimeRef.current\n const distance = (speed * deltaTime) / 1000\n\n if (distance < 0.1) {\n animationRef.current = requestAnimationFrame(smoothScroll)\n return\n }\n\n const oldScrollTop = viewport.scrollTop\n const maxScroll = viewport.scrollHeight - viewport.clientHeight\n\n let newScrollTop: number\n if (direction === \"up\") {\n newScrollTop = Math.max(0, oldScrollTop - distance)\n } else {\n newScrollTop = Math.min(maxScroll, oldScrollTop + distance)\n }\n\n viewport.scrollTo({ top: newScrollTop })\n\n lastTimeRef.current = currentTime\n\n const tolerance = 1\n const canContinue =\n direction === \"up\"\n ? newScrollTop > tolerance\n : newScrollTop < (maxScroll - tolerance)\n\n if (canContinue && Math.abs(newScrollTop - oldScrollTop) > 0.01) {\n animationRef.current = requestAnimationFrame(smoothScroll)\n } else {\n stopScrolling()\n setTimeout(checkScrollability, 16)\n }\n },\n [checkScrollability, direction, disabled, speed, stopScrolling, viewportRef],\n )\n\n const startScrolling = React.useCallback(() => {\n if (disabled || !viewportRef.current || isScrollingRef.current) return\n\n isScrollingRef.current = true\n lastTimeRef.current = undefined\n animationRef.current = requestAnimationFrame(smoothScroll)\n }, [disabled, smoothScroll, viewportRef])\n\n React.useEffect(() => stopScrolling, [stopScrolling])\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center py-1 select-none\",\n disabled ? \"cursor-default opacity-40\" : \"cursor-pointer opacity-100 hover:bg-accent/20\",\n className\n )}\n onPointerEnter={() => {\n if (!disabled) startScrolling()\n }}\n onPointerMove={() => {\n if (!disabled && !isScrollingRef.current) startScrolling()\n }}\n onPointerLeave={() => {\n stopScrolling()\n }}\n >\n {direction === \"up\"\n ? <ChevronUp aria-hidden className=\"h-4 w-4 opacity-50\" />\n : <ChevronDown aria-hidden className=\"h-4 w-4 opacity-50\" />}\n </div>\n )\n}\n\nexport type HourPickerInputProps = {\n id?: string\n value: string | null\n onChange: (value: string | null) => void\n onValueUpdate?: (value: string | null) => void\n options: HourPickerOption[]\n placeholder?: string\n className?: string\n inputClassName?: string\n disabled?: boolean\n readOnly?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n triggerTestId?: string\n contentTestId?: string\n isHydrated?: boolean\n}\n\nexport function HourPickerInput({\n id,\n value,\n onChange,\n onValueUpdate,\n options,\n placeholder = \"Select time\",\n className,\n inputClassName,\n disabled,\n readOnly,\n open: openProp,\n onOpenChange,\n triggerTestId,\n contentTestId,\n isHydrated,\n}: HourPickerInputProps) {\n const reactId = React.useId()\n const triggerId = id ?? `hours-picker-${reactId}`\n const triggerInputRef = React.useRef<HTMLInputElement | null>(null)\n const setTriggerDraftValueRef = React.useRef<((value: string) => void) | null>(null)\n const setTriggerDraftValueHandler = React.useCallback((handler: ((value: string) => void) | null) => {\n setTriggerDraftValueRef.current = handler\n }, [])\n const highlightedValueRef = React.useRef<string | null>(null)\n const keyboardNavigationActiveRef = React.useRef(false)\n const [highlightedValue, setHighlightedValue] = React.useState<string | null>(null)\n const containerRef = React.useRef<HTMLDivElement | null>(null)\n const desktopPopoverRef = React.useRef<HTMLDivElement | null>(null)\n const desktopContentRef = React.useRef<HTMLDivElement | null>(null)\n const [desktopPopoverPosition, setDesktopPopoverPosition] = React.useState(() => ({\n left: 0,\n top: 0,\n width: 0,\n }))\n\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false)\n const open = openProp ?? uncontrolledOpen\n const setOpen = onOpenChange ?? setUncontrolledOpen\n const openRef = React.useRef(false)\n openRef.current = open\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (disabled || readOnly) {\n return\n }\n\n const input = triggerInputRef.current\n if (!(input instanceof HTMLInputElement)) {\n return\n }\n if (typeof document !== \"undefined\" && document.activeElement === input) {\n return\n }\n\n input.focus({ preventScroll: true })\n }, [disabled, open, readOnly])\n\n const updateHighlightedValue = React.useCallback((next: string | null) => {\n highlightedValueRef.current = next\n setHighlightedValue(next)\n }, [])\n\n const markKeyboardNavigation = React.useCallback(() => {\n keyboardNavigationActiveRef.current = true\n }, [])\n\n React.useEffect(() => {\n if (!open) return\n\n const currentOption = options.find((option) => option.value === value)\n if (currentOption && isOptionSelectable(currentOption)) {\n updateHighlightedValue(currentOption.value)\n return\n }\n\n const firstEnabled = options.find((option) => isOptionSelectable(option))\n updateHighlightedValue(firstEnabled?.value ?? null)\n }, [open, options, updateHighlightedValue, value])\n\n const updateValue = React.useCallback(\n (next: string | null) => {\n if (next === null) {\n if (onValueUpdate) {\n onValueUpdate(null)\n }\n return\n }\n\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n },\n [onValueUpdate, options],\n )\n\n const commitValue = React.useCallback(\n (next: string | null) => {\n if (next === null) {\n if (onValueUpdate) {\n onValueUpdate(null)\n }\n onChange(null)\n return\n }\n\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n\n onChange(next)\n },\n [onChange, onValueUpdate, options],\n )\n\n React.useEffect(() => {\n if (!open) return\n\n const ownerDocument = containerRef.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)) {\n return\n }\n\n const container = containerRef.current\n if (!container) {\n return\n }\n\n if (container.contains(target)) {\n return\n }\n\n const popover = desktopPopoverRef.current\n if (popover?.contains(target)) {\n return\n }\n\n setOpen(false)\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") {\n return\n }\n if (!openRef.current) {\n return\n }\n\n const target = event.target\n if (!(target instanceof Node)) {\n return\n }\n\n const container = containerRef.current\n const popover = desktopPopoverRef.current\n if (!container?.contains(target) && !popover?.contains(target)) {\n return\n }\n\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, setOpen])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n\n const popover = desktopPopoverRef.current\n if (!popover) {\n return\n }\n\n const handleWheel = (event: WheelEvent) => {\n const viewport = desktopContentRef.current\n if (!viewport) {\n return\n }\n\n const deltaY = event.deltaY\n if (deltaY === 0) {\n return\n }\n\n const maxScrollTop = Math.max(0, viewport.scrollHeight - viewport.clientHeight)\n const atTop = viewport.scrollTop <= 0\n const atBottom = viewport.scrollTop >= maxScrollTop\n\n const target = event.target\n const isWheelOverViewport = target instanceof Node && viewport.contains(target)\n\n if (isWheelOverViewport) {\n if ((deltaY < 0 && atTop) || (deltaY > 0 && atBottom)) {\n event.preventDefault()\n }\n return\n }\n\n event.preventDefault()\n const nextScrollTop = Math.min(maxScrollTop, Math.max(0, viewport.scrollTop + deltaY))\n viewport.scrollTop = nextScrollTop\n }\n\n popover.addEventListener(\"wheel\", handleWheel, { passive: false })\n return () => {\n popover.removeEventListener(\"wheel\", handleWheel)\n }\n }, [open])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (openProp !== undefined && !onOpenChange) {\n return\n }\n if (typeof window === \"undefined\") {\n return\n }\n if (!(\"IntersectionObserver\" in window)) {\n return\n }\n\n const trigger = triggerInputRef.current\n if (!(trigger instanceof HTMLElement)) {\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(trigger)\n return () => {\n isActive = false\n observer.disconnect()\n }\n }, [onOpenChange, open, openProp, setOpen])\n\n const updateDesktopPopoverPosition = React.useCallback(() => {\n if (typeof window === \"undefined\") return\n\n const trigger = triggerInputRef.current\n const popover = desktopPopoverRef.current\n if (!(trigger instanceof HTMLElement) || !popover) return\n\n const rect = trigger.getBoundingClientRect()\n const popoverHeight = popover.offsetHeight\n const viewportWidth = window.innerWidth ?? 0\n const viewportHeight = window.innerHeight ?? 0\n const padding = 8\n\n const width = rect.width\n\n let left = rect.left\n if (left + width > viewportWidth - padding) {\n left = Math.max(padding, viewportWidth - width - 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 setDesktopPopoverPosition({ left, top, width })\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 updateDesktopPopoverPosition()\n const rafId = window.requestAnimationFrame(updateDesktopPopoverPosition)\n\n window.addEventListener(\"scroll\", updateDesktopPopoverPosition, true)\n window.addEventListener(\"resize\", updateDesktopPopoverPosition)\n return () => {\n window.cancelAnimationFrame(rafId)\n window.removeEventListener(\"scroll\", updateDesktopPopoverPosition, true)\n window.removeEventListener(\"resize\", updateDesktopPopoverPosition)\n }\n }, [disabled, open, updateDesktopPopoverPosition])\n\n React.useEffect(() => {\n if (!open) return\n\n const viewport = desktopContentRef.current\n if (!viewport) return\n\n const run = () => {\n const selected = viewport.querySelector(\"[role=\\\"option\\\"][data-state=\\\"checked\\\"]\")\n if (selected instanceof HTMLElement) {\n const padding = 8\n const targetTop = selected.offsetTop - padding\n const targetBottom = selected.offsetTop + selected.offsetHeight + padding\n\n if (targetTop < viewport.scrollTop) {\n viewport.scrollTop = Math.max(0, targetTop)\n return\n }\n\n const viewportBottom = viewport.scrollTop + viewport.clientHeight\n if (targetBottom > viewportBottom) {\n viewport.scrollTop = Math.max(0, targetBottom - viewport.clientHeight)\n }\n return\n }\n\n const all = Array.from(viewport.querySelectorAll(\"[role=\\\"option\\\"]\")) as HTMLElement[]\n if (!all.length) return\n\n let firstEnabled: HTMLElement | undefined\n let lastDisabledBefore: HTMLElement | undefined\n\n for (const el of all) {\n const isDisabled = el.hasAttribute(\"data-disabled\")\n if (!isDisabled) {\n firstEnabled = el\n break\n }\n lastDisabledBefore = el\n }\n\n if (!firstEnabled) return\n\n const target = lastDisabledBefore ? lastDisabledBefore : firstEnabled\n\n const offset = Math.max(0, target.offsetTop - 8)\n viewport.scrollTop = offset\n }\n\n const raf = requestAnimationFrame(run)\n return () => cancelAnimationFrame(raf)\n }, [open, options])\n\n React.useEffect(() => {\n if (!open) return\n if (!highlightedValue) return\n if (!keyboardNavigationActiveRef.current) return\n\n const viewport = desktopContentRef.current\n if (!viewport) return\n\n const target = viewport.querySelector(`[role=\"option\"][data-value=\"${highlightedValue}\"]`)\n if (!(target instanceof HTMLElement)) return\n\n const padding = 8\n const targetTop = target.offsetTop - padding\n const targetBottom = target.offsetTop + target.offsetHeight + padding\n\n if (targetTop < viewport.scrollTop) {\n viewport.scrollTop = Math.max(0, targetTop)\n return\n }\n\n const viewportBottom = viewport.scrollTop + viewport.clientHeight\n if (targetBottom > viewportBottom) {\n viewport.scrollTop = Math.max(0, targetBottom - viewport.clientHeight)\n }\n }, [highlightedValue, open])\n\n return (\n <div\n data-slot=\"hours-picker-input\"\n className={cn(\"w-[150px]\", className)}\n ref={containerRef}\n >\n <div className=\"relative\">\n <HourPickerMaskedSelectTrigger\n id={triggerId}\n placeholder={placeholder}\n value={value}\n onValueUpdate={updateValue}\n onCommit={commitValue}\n options={options}\n disabled={disabled}\n readOnly={readOnly}\n open={open}\n setOpen={setOpen}\n inputClassName={inputClassName}\n triggerTestId={triggerTestId}\n isHydrated={isHydrated}\n highlightedValueRef={highlightedValueRef}\n setHighlightedValue={updateHighlightedValue}\n markKeyboardNavigation={markKeyboardNavigation}\n inputRef={(node) => {\n triggerInputRef.current = node\n }}\n onDraftValueHandlerChange={setTriggerDraftValueHandler}\n />\n\n {open ? (() => {\n const popover = (\n <DismissableLayerBranch>\n <div\n ref={desktopPopoverRef}\n data-testid={contentTestId}\n data-state=\"open\"\n className={cn(\n \"pointer-events-auto fixed z-[60] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n )}\n style={{\n left: desktopPopoverPosition.left,\n top: desktopPopoverPosition.top,\n width: desktopPopoverPosition.width,\n }}\n >\n <HourPickerScrollButton\n direction=\"up\"\n viewportRef={desktopContentRef}\n />\n\n <div\n ref={desktopContentRef}\n role=\"listbox\"\n className=\"max-h-64 overflow-y-auto p-1 [overscroll-behavior:contain] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden\"\n >\n {options.map((option) => {\n const isChecked = option.value === value\n\n return (\n <div\n key={option.value}\n role=\"option\"\n aria-selected={isChecked}\n data-value={option.value}\n data-state={isChecked ? \"checked\" : \"unchecked\"}\n data-disabled={option.disabled ? \"\" : undefined}\n className={cn(\n \"relative flex w-full select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none cursor-pointer\",\n option.disabled && \"pointer-events-none opacity-50\",\n highlightedValue === option.value && \"bg-accent text-accent-foreground\",\n )}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n onClick={() => {\n if (option.disabled) return\n\n setTriggerDraftValueRef.current?.(option.value)\n updateHighlightedValue(option.value)\n triggerInputRef.current?.focus({ preventScroll: true })\n commitValue(option.value)\n setOpen(false)\n }}\n onPointerEnter={() => {\n if (keyboardNavigationActiveRef.current) return\n keyboardNavigationActiveRef.current = false\n updateHighlightedValue(option.value)\n }}\n onPointerMove={(event) => {\n if (keyboardNavigationActiveRef.current && event.movementX === 0 && event.movementY === 0) {\n return\n }\n keyboardNavigationActiveRef.current = false\n updateHighlightedValue(option.value)\n }}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {isChecked ? <Check aria-hidden className=\"h-4 w-4\" /> : null}\n </span>\n\n <div className=\"flex flex-col\">\n <span>{option.label}</span>\n {option.description != null ? (\n <span data-slot=\"description\" className=\"text-xs text-muted-foreground\">\n {option.description}\n </span>\n ) : null}\n </div>\n </div>\n )\n })}\n </div>\n\n <HourPickerScrollButton\n direction=\"down\"\n viewportRef={desktopContentRef}\n />\n </div>\n </DismissableLayerBranch>\n )\n\n if (typeof document === \"undefined\") return popover\n return createPortal(popover, document.body)\n })() : null}\n </div>\n </div>\n )\n}\n\nHourPickerInput.displayName = \"HourPickerInput\"\n\nexport type HourPickerFieldProps = HourPickerInputProps\n\nfunction HourPickerSelectField({\n id,\n value,\n onChange,\n onValueUpdate,\n options,\n placeholder = \"Select time\",\n className,\n inputClassName,\n disabled,\n open,\n onOpenChange,\n triggerTestId,\n contentTestId,\n isHydrated,\n}: HourPickerFieldProps) {\n const commitValue = React.useCallback(\n (next: string) => {\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n onChange(next)\n },\n [onChange, onValueUpdate, options],\n )\n\n return (\n <div data-slot=\"hours-picker-field\" className={cn(\"w-[150px]\", className)}>\n <Select\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n value={value ?? \"\"}\n onValueChange={(next) => commitValue(next)}\n >\n <SelectTrigger\n id={id}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n className={cn(\n \"transition-colors hover:bg-accent hover:text-accent-foreground\",\n !value && \"text-muted-foreground\",\n open && \"ring-2 ring-primary ring-offset-2\",\n \"[&_[data-slot='description']]:hidden\",\n inputClassName,\n )}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent\n data-testid={contentTestId}\n autoScroll={\"firstEnabledWithContext\"}\n className=\"max-h-64 overflow-y-auto\"\n >\n {options.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n <span>{option.label}</span>\n {option.description != null ? (\n <span data-slot=\"description\" className=\"block text-xs text-muted-foreground\">\n {option.description}\n </span>\n ) : null}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )\n}\n\nexport function HourPickerField(props: HourPickerFieldProps) {\n const isTouchDevice = useIsTouchDevice()\n\n if (isTouchDevice) {\n return <HourPickerSelectField {...props} />\n }\n\n return <HourPickerInput {...props} />\n}\n\nHourPickerField.displayName = \"HourPickerField\"\n\ntype HourPickerMaskedSelectTriggerProps = {\n id: string\n placeholder: string\n value: string | null\n onValueUpdate: (value: string | null) => void\n onCommit: (value: string | null) => void\n options: HourPickerOption[]\n disabled?: boolean\n readOnly?: boolean\n open: boolean\n setOpen: (open: boolean) => void\n inputClassName?: string\n triggerTestId?: string\n isHydrated?: boolean\n highlightedValueRef: React.MutableRefObject<string | null>\n setHighlightedValue: (value: string | null) => void\n markKeyboardNavigation: () => void\n inputRef: (node: HTMLInputElement | null) => void\n onDraftValueHandlerChange: (handler: ((value: string) => void) | null) => void\n}\n\nfunction HourPickerMaskedSelectTrigger({\n id,\n placeholder,\n value,\n onValueUpdate,\n onCommit,\n options,\n disabled,\n readOnly,\n open,\n setOpen,\n inputClassName,\n triggerTestId,\n isHydrated,\n highlightedValueRef,\n setHighlightedValue,\n markKeyboardNavigation,\n inputRef,\n onDraftValueHandlerChange,\n}: HourPickerMaskedSelectTriggerProps) {\n const isEditingRef = React.useRef(false)\n const pointerDownOnInputRef = React.useRef(false)\n const inputWasFocusedOnPointerDownRef = React.useRef(false)\n const ignoreNextMaskCommitValueRef = React.useRef<string | null>(null)\n const lastAcceptedDigitsRef = React.useRef<string | null>(null)\n const clearCommitPendingRef = React.useRef(false)\n\n const [draft, setDraft] = React.useState(() => (value ? value : \"\"))\n\n React.useEffect(() => {\n onDraftValueHandlerChange((nextValue) => {\n setDraft(nextValue)\n })\n return () => {\n onDraftValueHandlerChange(null)\n }\n }, [onDraftValueHandlerChange])\n\n const moveSelection = React.useCallback(\n (direction: -1 | 1) => {\n const base = highlightedValueRef.current ?? value ?? \"\"\n\n let baseIndex = options.findIndex((option) => option.value === base)\n if (baseIndex === -1) {\n baseIndex = direction === 1 ? -1 : options.length\n }\n\n for (let nextIndex = baseIndex + direction; nextIndex >= 0 && nextIndex < options.length; nextIndex += direction) {\n const nextOption = options[nextIndex]\n if (!isOptionSelectable(nextOption)) continue\n\n setHighlightedValue(nextOption.value)\n ignoreNextMaskCommitValueRef.current = nextOption.value\n setDraft(nextOption.value)\n onValueUpdate(nextOption.value)\n return\n }\n },\n [highlightedValueRef, onValueUpdate, options, setHighlightedValue, value],\n )\n\n React.useEffect(() => {\n if (isEditingRef.current) return\n setDraft(value ? value : \"\")\n }, [value])\n\n React.useEffect(() => {\n lastAcceptedDigitsRef.current = draft.replace(/\\D/g, \"\")\n }, [draft])\n\n React.useEffect(() => {\n if (value === null) {\n clearCommitPendingRef.current = false\n }\n }, [value])\n\n const triggerClassName = cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 pr-10 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 !draft && \"text-muted-foreground\",\n open && \"ring-2 ring-primary ring-offset-2\",\n \"[&_[data-slot='description']]:hidden\",\n inputClassName,\n )\n\n return (\n <div className=\"relative group\">\n <IMaskInput\n id={id}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n type=\"text\"\n disabled={disabled}\n readOnly={readOnly}\n inputRef={inputRef}\n autoComplete={\"off\"}\n mask={[\n { mask: \"00:00\", lazy: true },\n { mask: \"0:00\", lazy: true },\n ]}\n dispatch={(appended, dynamicMasked) => {\n const digits = (dynamicMasked.value + appended).replace(/\\D/g, \"\")\n if (digits.length <= 2) return dynamicMasked.compiledMasks[0]\n if (digits.length >= 4) return dynamicMasked.compiledMasks[0]\n\n const hourPrefix = pad2(Number(digits.slice(0, 2)))\n const hasTwoDigitHour = options.some((option) => option.value.startsWith(`${hourPrefix}:`))\n if (hasTwoDigitHour) return dynamicMasked.compiledMasks[0]\n\n return dynamicMasked.compiledMasks[1]\n }}\n placeholder={placeholder}\n value={draft}\n className={triggerClassName}\n onAccept={(accepted) => {\n const nextText = typeof accepted === \"string\" ? accepted : String(accepted ?? \"\")\n const nextDigits = nextText.replace(/\\D/g, \"\")\n if (lastAcceptedDigitsRef.current === nextDigits) {\n return\n }\n lastAcceptedDigitsRef.current = nextDigits\n setDraft(nextText)\n\n if (nextDigits.length !== 0) {\n clearCommitPendingRef.current = false\n return\n }\n\n if (value && !clearCommitPendingRef.current) {\n clearCommitPendingRef.current = true\n onCommit(null)\n }\n }}\n onComplete={(completed) => {\n const nextText = typeof completed === \"string\" ? completed : String(completed ?? \"\")\n if (ignoreNextMaskCommitValueRef.current === nextText) {\n ignoreNextMaskCommitValueRef.current = null\n return\n }\n\n const resolved = parseTimeInputWithSelectableOption(nextText, options)\n if (!resolved) {\n return\n }\n\n if (resolved.selectableValue) {\n setHighlightedValue(resolved.selectableValue)\n setDraft(resolved.selectableValue)\n\n if (value === resolved.selectableValue) {\n return\n }\n\n onCommit(resolved.selectableValue)\n return\n }\n\n const targetMinutes = timeStringToMinutes(resolved.parsed)\n if (targetMinutes == null) {\n return\n }\n\n const closestOption = findClosestSelectableOption(targetMinutes, options)\n if (!closestOption) {\n return\n }\n\n setHighlightedValue(closestOption.value)\n }}\n onPointerDown={() => {\n pointerDownOnInputRef.current = true\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onMouseDown={(event) => {\n pointerDownOnInputRef.current = true\n inputWasFocusedOnPointerDownRef.current = typeof document !== \"undefined\" && document.activeElement === event.currentTarget\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onClick={() => {\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onKeyDown={(event) => {\n if (disabled) {\n return\n }\n\n if (event.key === \"Tab\" && open && !event.defaultPrevented) {\n setOpen(false)\n return\n }\n\n if (event.key === \"Escape\") {\n if (!open) {\n return\n }\n event.preventDefault()\n setOpen(false)\n return\n }\n\n if (!open && !event.defaultPrevented) {\n const shouldReopen =\n (event.key.length === 1 || event.key === \"Backspace\" || event.key === \"Delete\") &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n\n if (shouldReopen) {\n setOpen(true)\n }\n }\n\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n markKeyboardNavigation()\n event.preventDefault()\n\n if (!open) {\n setOpen(true)\n return\n }\n\n moveSelection(event.key === \"ArrowDown\" ? 1 : -1)\n return\n }\n\n if (event.key === \"Enter\") {\n markKeyboardNavigation()\n const resolved = parseTimeInputWithSelectableOption(draft, options)\n if (!resolved) {\n if (!open) {\n return\n }\n\n if (draft.trim() !== \"\") {\n return\n }\n\n const highlightedOption = options.find((option) => option.value === highlightedValueRef.current)\n const fallbackValue =\n (isOptionSelectable(highlightedOption) ? highlightedOption?.value : undefined) ??\n options.find((option) => isOptionSelectable(option))?.value\n\n if (!fallbackValue) {\n return\n }\n\n event.preventDefault()\n setHighlightedValue(fallbackValue)\n setDraft(fallbackValue)\n onCommit(fallbackValue)\n setOpen(false)\n return\n }\n\n if (resolved.selectableValue) {\n event.preventDefault()\n setHighlightedValue(resolved.selectableValue)\n setDraft(resolved.selectableValue)\n onCommit(resolved.selectableValue)\n setOpen(false)\n return\n }\n\n const targetMinutes = timeStringToMinutes(resolved.parsed)\n if (targetMinutes == null) {\n return\n }\n\n const closestOption = findClosestSelectableOption(targetMinutes, options)\n if (!closestOption) {\n return\n }\n\n event.preventDefault()\n setHighlightedValue(closestOption.value)\n setDraft(closestOption.value)\n onCommit(closestOption.value)\n setOpen(false)\n return\n }\n }}\n onFocus={(event) => {\n const shouldSelectAll = !pointerDownOnInputRef.current || !inputWasFocusedOnPointerDownRef.current\n pointerDownOnInputRef.current = false\n inputWasFocusedOnPointerDownRef.current = false\n isEditingRef.current = true\n if (shouldSelectAll) {\n const element = event.currentTarget\n requestAnimationFrame(() => element.select())\n }\n\n if (disabled) {\n return\n }\n\n if (open) {\n return\n }\n\n setOpen(true)\n }}\n onBlur={() => {\n isEditingRef.current = false\n\n const trimmed = draft.trim()\n if (!trimmed) {\n setDraft(value ? value : \"\")\n return\n }\n\n const resolved = parseTimeInputWithSelectableOption(trimmed, options)\n if (!resolved) {\n setDraft(value ? value : \"\")\n return\n }\n\n if (!resolved.selectableValue) {\n setDraft(value ? value : \"\")\n return\n }\n\n setDraft(resolved.selectableValue)\n if (value !== resolved.selectableValue) {\n onCommit(resolved.selectableValue)\n }\n }}\n />\n\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n data-slot=\"hours-picker-input-toggle\"\n className={cn(\n \"absolute right-1 top-1/2 inline-flex size-8 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n )}\n aria-label={open ? \"Close time picker\" : \"Open time picker\"}\n onPointerDown={(event) => {\n event.preventDefault()\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n onClick={() => {\n if (disabled) return\n setOpen(!open)\n }}\n >\n <ChevronDown aria-hidden className=\"size-4\" />\n </button>\n </div>\n )\n}\n"],"names":["imaskAny","IMask","InputMask","pad2","value","String","padStart","parseTimeInput","raw","trimmed","trim","match","exec","hours","Number","minutes","isFinite","parseTimeInputWithSelectableOption","options","parsed","parsedOption","find","option","isOptionSelectable","selectableValue","timeStringToMinutes","disabled","findClosestSelectableOption","targetMinutes","bestOption","bestDiff","POSITIVE_INFINITY","bestMinutes","NEGATIVE_INFINITY","optionMinutes","diff","Math","abs","HourPickerScrollButton","direction","viewportRef","speed","className","setDisabled","React","useState","animationRef","useRef","undefined","lastTimeRef","isScrollingRef","checkScrollability","useCallback","viewport","current","scrollTop","scrollHeight","clientHeight","tolerance","canScrollUp","canScrollDown","useEffect","handleScroll","handleResize","addEventListener","passive","resizeObserver","ResizeObserver","observe","mutationObserver","MutationObserver","childList","subtree","removeEventListener","disconnect","stopScrolling","cancelAnimationFrame","smoothScroll","currentTime","deltaTime","distance","requestAnimationFrame","oldScrollTop","maxScroll","newScrollTop","max","min","scrollTo","top","setTimeout","startScrolling","jsx","cn","ChevronUp","ChevronDown","HourPickerInput","id","onChange","onValueUpdate","placeholder","inputClassName","readOnly","open","openProp","onOpenChange","triggerTestId","contentTestId","isHydrated","reactId","useId","triggerId","triggerInputRef","setTriggerDraftValueRef","setTriggerDraftValueHandler","handler","highlightedValueRef","keyboardNavigationActiveRef","highlightedValue","setHighlightedValue","containerRef","desktopPopoverRef","desktopContentRef","desktopPopoverPosition","setDesktopPopoverPosition","left","width","uncontrolledOpen","setUncontrolledOpen","setOpen","openRef","input","HTMLInputElement","document","activeElement","focus","preventScroll","updateHighlightedValue","next","markKeyboardNavigation","currentOption","firstEnabled","updateValue","matchingOption","commitValue","ownerDocument","ownerWindow","defaultView","window","handlePointerDown","event","target","Node","container","contains","handleKeyDown","key","popover","preventDefault","stopPropagation","handleWheel","deltaY","maxScrollTop","atTop","atBottom","nextScrollTop","trigger","HTMLElement","isActive","observer","IntersectionObserver","entries","entry","isIntersecting","updateDesktopPopoverPosition","rect","getBoundingClientRect","popoverHeight","offsetHeight","viewportWidth","innerWidth","viewportHeight","innerHeight","padding","bottom","overflowBottom","aboveTop","useLayoutEffect","rafId","raf","run","selected","querySelector","targetTop","offsetTop","targetBottom","viewportBottom","all","Array","from","querySelectorAll","length","lastDisabledBefore","el","hasAttribute","offset","jsxs","HourPickerMaskedSelectTrigger","node","DismissableLayerBranch","map","isChecked","movementX","movementY","Check","label","description","createPortal","body","displayName","HourPickerSelectField","t0","$","_c","t1","t2","t3","t4","t5","next_0","t6","t7","t8","t9","t10","SelectValue","t11","SelectTrigger","t12","_temp","t13","SelectContent","t14","Select","t15","option_0","SelectItem","HourPickerField","props","useIsTouchDevice","onCommit","inputRef","onDraftValueHandlerChange","isEditingRef","pointerDownOnInputRef","inputWasFocusedOnPointerDownRef","ignoreNextMaskCommitValueRef","lastAcceptedDigitsRef","clearCommitPendingRef","draft","setDraft","nextValue","base","baseIndex","findIndex","nextIndex","nextOption","moveSelection","replace","triggerClassName","Symbol","for","mask","lazy","t16","appended","dynamicMasked","digits","compiledMasks","hourPrefix","slice","some","startsWith","t17","accepted","nextText","nextDigits","t18","completed","nextText_0","resolved","closestOption","t19","t20","t21","currentTarget","t22","event_0","defaultPrevented","ctrlKey","metaKey","altKey","resolved_0","highlightedOption","option_1","fallbackValue","_temp2","targetMinutes_0","closestOption_0","t23","event_1","shouldSelectAll","element","select","t24","resolved_1","t25","IMaskInput","t26","t27","t28","t29","t30","_temp3","_temp4","t31","event_3","event_2","option_2"],"mappings":"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"}
1
+ {"version":3,"file":"index19.js","sources":["../src/components/HourPickerField/index.tsx"],"sourcesContent":["import { Check, ChevronDown, ChevronUp } from \"lucide-react\"\nimport * as React from \"react\"\nimport { DismissableLayerBranch } from \"@radix-ui/react-dismissable-layer\"\nimport { createPortal } from \"react-dom\"\nimport { IMaskInput } from \"react-imask\"\nimport IMask, { InputMask } from \"imask\"\n\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/Select\"\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 HourPickerOption = {\n value: string\n label: string\n disabled?: boolean\n description?: React.ReactNode\n}\n\nfunction pad2(value: number) {\n return String(value).padStart(2, \"0\")\n}\n\nfunction parseTimeInput(raw: string) {\n const trimmed = raw.trim()\n if (!trimmed) return null\n\n const match = /^(\\d{1,2}):(\\d{2})$/.exec(trimmed)\n if (!match) {\n return null\n }\n\n const hours = Number(match[1])\n const minutes = Number(match[2])\n if (!Number.isFinite(hours) || !Number.isFinite(minutes)) {\n return null\n }\n\n if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {\n return null\n }\n\n return `${pad2(hours)}:${pad2(minutes)}`\n}\n\nfunction getAcceptedInputSignature(raw: string) {\n const parsed = parseTimeInput(raw)\n if (parsed) {\n return `parsed:${parsed}`\n }\n\n const digits = raw.replace(/\\D/g, \"\")\n if (!digits) {\n return \"empty\"\n }\n\n if (digits.length <= 2) {\n return `hour:${Number(digits)}`\n }\n\n const minutePart = digits.slice(-2)\n const hourPart = digits.slice(0, -2)\n return `hour-minute:${Number(hourPart)}:${minutePart}`\n}\n\ntype ParsedTimeInputResult = {\n parsed: string\n selectableValue: string | null\n}\n\nfunction parseTimeInputWithSelectableOption(raw: string, options: HourPickerOption[]): ParsedTimeInputResult | null {\n const parsed = parseTimeInput(raw)\n if (!parsed) return null\n\n const parsedOption = options.find((option) => option.value === parsed)\n if (isOptionSelectable(parsedOption)) {\n return { parsed, selectableValue: parsed }\n }\n\n return { parsed, selectableValue: null }\n}\n\nfunction timeStringToMinutes(value: string) {\n const match = /^(\\d{2}):(\\d{2})$/.exec(value)\n if (!match) {\n return null\n }\n\n const hours = Number(match[1])\n const minutes = Number(match[2])\n\n if (!Number.isFinite(hours) || !Number.isFinite(minutes)) {\n return null\n }\n\n return hours * 60 + minutes\n}\n\nfunction isOptionSelectable(option: HourPickerOption | undefined) {\n if (!option) return false\n return !option.disabled\n}\n\nfunction findClosestSelectableOption(targetMinutes: number, options: HourPickerOption[]) {\n let bestOption: HourPickerOption | null = null\n let bestDiff = Number.POSITIVE_INFINITY\n let bestMinutes = Number.NEGATIVE_INFINITY\n\n for (const option of options) {\n if (!isOptionSelectable(option)) continue\n const optionMinutes = timeStringToMinutes(option.value)\n if (optionMinutes == null) continue\n\n const diff = Math.abs(optionMinutes - targetMinutes)\n if (diff < bestDiff || (diff === bestDiff && optionMinutes > bestMinutes)) {\n bestOption = option\n bestDiff = diff\n bestMinutes = optionMinutes\n }\n }\n\n return bestOption\n}\n\ntype HourPickerScrollButtonDirection = \"up\" | \"down\"\n\ntype HourPickerScrollButtonProps = {\n direction: HourPickerScrollButtonDirection\n viewportRef: React.RefObject<HTMLElement | null>\n speed?: number\n className?: string\n}\n\nfunction HourPickerScrollButton({\n direction,\n viewportRef,\n speed = 400,\n className,\n}: HourPickerScrollButtonProps) {\n const [disabled, setDisabled] = React.useState(true)\n const animationRef = React.useRef<number | undefined>(undefined)\n const lastTimeRef = React.useRef<number | undefined>(undefined)\n const isScrollingRef = React.useRef(false)\n\n const checkScrollability = React.useCallback(() => {\n const viewport = viewportRef.current\n if (!viewport) {\n setDisabled(true)\n return\n }\n\n const { scrollTop, scrollHeight, clientHeight } = viewport\n const tolerance = 2\n\n const canScrollUp = scrollTop > tolerance\n const canScrollDown = scrollTop < (scrollHeight - clientHeight - tolerance)\n const hasScrollableContent = scrollHeight > clientHeight + tolerance\n\n if (!hasScrollableContent) {\n setDisabled(true)\n return\n }\n\n const shouldDisable = direction === \"up\" ? !canScrollUp : !canScrollDown\n setDisabled(shouldDisable)\n }, [direction, viewportRef])\n\n React.useEffect(() => {\n const viewport = viewportRef.current\n if (!viewport) return\n\n checkScrollability()\n\n const handleScroll = () => checkScrollability()\n const handleResize = () => checkScrollability()\n\n viewport.addEventListener(\"scroll\", handleScroll, { passive: true })\n\n const resizeObserver = new ResizeObserver(handleResize)\n resizeObserver.observe(viewport)\n\n const mutationObserver = new MutationObserver(handleResize)\n mutationObserver.observe(viewport, { childList: true, subtree: true })\n\n return () => {\n viewport.removeEventListener(\"scroll\", handleScroll)\n resizeObserver.disconnect()\n mutationObserver.disconnect()\n }\n }, [viewportRef, checkScrollability])\n\n const stopScrolling = React.useCallback(() => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = undefined\n }\n isScrollingRef.current = false\n lastTimeRef.current = undefined\n }, [])\n\n const smoothScroll = React.useCallback(\n (currentTime: number) => {\n const viewport = viewportRef.current\n if (!viewport || disabled || !isScrollingRef.current) {\n stopScrolling()\n return\n }\n\n if (!lastTimeRef.current) {\n lastTimeRef.current = currentTime\n }\n\n const deltaTime = currentTime - lastTimeRef.current\n const distance = (speed * deltaTime) / 1000\n\n if (distance < 0.1) {\n animationRef.current = requestAnimationFrame(smoothScroll)\n return\n }\n\n const oldScrollTop = viewport.scrollTop\n const maxScroll = viewport.scrollHeight - viewport.clientHeight\n\n let newScrollTop: number\n if (direction === \"up\") {\n newScrollTop = Math.max(0, oldScrollTop - distance)\n } else {\n newScrollTop = Math.min(maxScroll, oldScrollTop + distance)\n }\n\n viewport.scrollTo({ top: newScrollTop })\n\n lastTimeRef.current = currentTime\n\n const tolerance = 1\n const canContinue =\n direction === \"up\"\n ? newScrollTop > tolerance\n : newScrollTop < (maxScroll - tolerance)\n\n if (canContinue && Math.abs(newScrollTop - oldScrollTop) > 0.01) {\n animationRef.current = requestAnimationFrame(smoothScroll)\n } else {\n stopScrolling()\n setTimeout(checkScrollability, 16)\n }\n },\n [checkScrollability, direction, disabled, speed, stopScrolling, viewportRef],\n )\n\n const startScrolling = React.useCallback(() => {\n if (disabled || !viewportRef.current || isScrollingRef.current) return\n\n isScrollingRef.current = true\n lastTimeRef.current = undefined\n animationRef.current = requestAnimationFrame(smoothScroll)\n }, [disabled, smoothScroll, viewportRef])\n\n React.useEffect(() => stopScrolling, [stopScrolling])\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center py-1 select-none\",\n disabled ? \"cursor-default opacity-40\" : \"cursor-pointer opacity-100 hover:bg-accent/20\",\n className\n )}\n onPointerEnter={() => {\n if (!disabled) startScrolling()\n }}\n onPointerMove={() => {\n if (!disabled && !isScrollingRef.current) startScrolling()\n }}\n onPointerLeave={() => {\n stopScrolling()\n }}\n >\n {direction === \"up\"\n ? <ChevronUp aria-hidden className=\"h-4 w-4 opacity-50\" />\n : <ChevronDown aria-hidden className=\"h-4 w-4 opacity-50\" />}\n </div>\n )\n}\n\nexport type HourPickerInputProps = {\n id?: string\n value: string | null\n onChange: (value: string | null) => void\n onValueUpdate?: (value: string | null) => void\n options: HourPickerOption[]\n placeholder?: string\n className?: string\n inputClassName?: string\n disabled?: boolean\n readOnly?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n triggerTestId?: string\n contentTestId?: string\n isHydrated?: boolean\n}\n\nexport function HourPickerInput({\n id,\n value,\n onChange,\n onValueUpdate,\n options,\n placeholder = \"Select time\",\n className,\n inputClassName,\n disabled,\n readOnly,\n open: openProp,\n onOpenChange,\n triggerTestId,\n contentTestId,\n isHydrated,\n}: HourPickerInputProps) {\n const reactId = React.useId()\n const triggerId = id ?? `hours-picker-${reactId}`\n const triggerInputRef = React.useRef<HTMLInputElement | null>(null)\n const setTriggerDraftValueRef = React.useRef<((value: string) => void) | null>(null)\n const setTriggerDraftValueHandler = React.useCallback((handler: ((value: string) => void) | null) => {\n setTriggerDraftValueRef.current = handler\n }, [])\n const highlightedValueRef = React.useRef<string | null>(null)\n const keyboardNavigationActiveRef = React.useRef(false)\n const [highlightedValue, setHighlightedValue] = React.useState<string | null>(null)\n const containerRef = React.useRef<HTMLDivElement | null>(null)\n const desktopPopoverRef = React.useRef<HTMLDivElement | null>(null)\n const desktopContentRef = React.useRef<HTMLDivElement | null>(null)\n const [desktopPopoverPosition, setDesktopPopoverPosition] = React.useState(() => ({\n left: 0,\n top: 0,\n width: 0,\n }))\n\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false)\n const open = openProp ?? uncontrolledOpen\n const setOpen = onOpenChange ?? setUncontrolledOpen\n const openRef = React.useRef(false)\n openRef.current = open\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (disabled || readOnly) {\n return\n }\n\n const input = triggerInputRef.current\n if (!(input instanceof HTMLInputElement)) {\n return\n }\n if (typeof document !== \"undefined\" && document.activeElement === input) {\n return\n }\n\n input.focus({ preventScroll: true })\n }, [disabled, open, readOnly])\n\n const updateHighlightedValue = React.useCallback((next: string | null) => {\n highlightedValueRef.current = next\n setHighlightedValue(next)\n }, [])\n\n const markKeyboardNavigation = React.useCallback(() => {\n keyboardNavigationActiveRef.current = true\n }, [])\n\n React.useEffect(() => {\n if (!open) return\n\n const currentOption = options.find((option) => option.value === value)\n if (currentOption && isOptionSelectable(currentOption)) {\n updateHighlightedValue(currentOption.value)\n return\n }\n\n const firstEnabled = options.find((option) => isOptionSelectable(option))\n updateHighlightedValue(firstEnabled?.value ?? null)\n }, [open, options, updateHighlightedValue, value])\n\n const updateValue = React.useCallback(\n (next: string | null) => {\n if (next === null) {\n if (onValueUpdate) {\n onValueUpdate(null)\n }\n return\n }\n\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n },\n [onValueUpdate, options],\n )\n\n const commitValue = React.useCallback(\n (next: string | null) => {\n if (next === null) {\n if (onValueUpdate) {\n onValueUpdate(null)\n }\n onChange(null)\n return\n }\n\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n\n onChange(next)\n },\n [onChange, onValueUpdate, options],\n )\n\n React.useEffect(() => {\n if (!open) return\n\n const ownerDocument = containerRef.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)) {\n return\n }\n\n const container = containerRef.current\n if (!container) {\n return\n }\n\n if (container.contains(target)) {\n return\n }\n\n const popover = desktopPopoverRef.current\n if (popover?.contains(target)) {\n return\n }\n\n setOpen(false)\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") {\n return\n }\n if (!openRef.current) {\n return\n }\n\n const target = event.target\n if (!(target instanceof Node)) {\n return\n }\n\n const container = containerRef.current\n const popover = desktopPopoverRef.current\n if (!container?.contains(target) && !popover?.contains(target)) {\n return\n }\n\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, setOpen])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n\n const popover = desktopPopoverRef.current\n if (!popover) {\n return\n }\n\n const handleWheel = (event: WheelEvent) => {\n const viewport = desktopContentRef.current\n if (!viewport) {\n return\n }\n\n const deltaY = event.deltaY\n if (deltaY === 0) {\n return\n }\n\n const maxScrollTop = Math.max(0, viewport.scrollHeight - viewport.clientHeight)\n const atTop = viewport.scrollTop <= 0\n const atBottom = viewport.scrollTop >= maxScrollTop\n\n const target = event.target\n const isWheelOverViewport = target instanceof Node && viewport.contains(target)\n\n if (isWheelOverViewport) {\n if ((deltaY < 0 && atTop) || (deltaY > 0 && atBottom)) {\n event.preventDefault()\n }\n return\n }\n\n event.preventDefault()\n const nextScrollTop = Math.min(maxScrollTop, Math.max(0, viewport.scrollTop + deltaY))\n viewport.scrollTop = nextScrollTop\n }\n\n popover.addEventListener(\"wheel\", handleWheel, { passive: false })\n return () => {\n popover.removeEventListener(\"wheel\", handleWheel)\n }\n }, [open])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (openProp !== undefined && !onOpenChange) {\n return\n }\n if (typeof window === \"undefined\") {\n return\n }\n if (!(\"IntersectionObserver\" in window)) {\n return\n }\n\n const trigger = triggerInputRef.current\n if (!(trigger instanceof HTMLElement)) {\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(trigger)\n return () => {\n isActive = false\n observer.disconnect()\n }\n }, [onOpenChange, open, openProp, setOpen])\n\n const updateDesktopPopoverPosition = React.useCallback(() => {\n if (typeof window === \"undefined\") return\n\n const trigger = triggerInputRef.current\n const popover = desktopPopoverRef.current\n if (!(trigger instanceof HTMLElement) || !popover) return\n\n const rect = trigger.getBoundingClientRect()\n const popoverHeight = popover.offsetHeight\n const viewportWidth = window.innerWidth ?? 0\n const viewportHeight = window.innerHeight ?? 0\n const padding = 8\n\n const width = rect.width\n\n let left = rect.left\n if (left + width > viewportWidth - padding) {\n left = Math.max(padding, viewportWidth - width - 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 setDesktopPopoverPosition({ left, top, width })\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 updateDesktopPopoverPosition()\n const rafId = window.requestAnimationFrame(updateDesktopPopoverPosition)\n\n window.addEventListener(\"scroll\", updateDesktopPopoverPosition, true)\n window.addEventListener(\"resize\", updateDesktopPopoverPosition)\n return () => {\n window.cancelAnimationFrame(rafId)\n window.removeEventListener(\"scroll\", updateDesktopPopoverPosition, true)\n window.removeEventListener(\"resize\", updateDesktopPopoverPosition)\n }\n }, [disabled, open, updateDesktopPopoverPosition])\n\n React.useEffect(() => {\n if (!open) return\n\n const viewport = desktopContentRef.current\n if (!viewport) return\n\n const run = () => {\n const selected = viewport.querySelector(\"[role=\\\"option\\\"][data-state=\\\"checked\\\"]\")\n if (selected instanceof HTMLElement) {\n const padding = 8\n const targetTop = selected.offsetTop - padding\n const targetBottom = selected.offsetTop + selected.offsetHeight + padding\n\n if (targetTop < viewport.scrollTop) {\n viewport.scrollTop = Math.max(0, targetTop)\n return\n }\n\n const viewportBottom = viewport.scrollTop + viewport.clientHeight\n if (targetBottom > viewportBottom) {\n viewport.scrollTop = Math.max(0, targetBottom - viewport.clientHeight)\n }\n return\n }\n\n const all = Array.from(viewport.querySelectorAll(\"[role=\\\"option\\\"]\")) as HTMLElement[]\n if (!all.length) return\n\n let firstEnabled: HTMLElement | undefined\n let lastDisabledBefore: HTMLElement | undefined\n\n for (const el of all) {\n const isDisabled = el.hasAttribute(\"data-disabled\")\n if (!isDisabled) {\n firstEnabled = el\n break\n }\n lastDisabledBefore = el\n }\n\n if (!firstEnabled) return\n\n const target = lastDisabledBefore ? lastDisabledBefore : firstEnabled\n\n const offset = Math.max(0, target.offsetTop - 8)\n viewport.scrollTop = offset\n }\n\n const raf = requestAnimationFrame(run)\n return () => cancelAnimationFrame(raf)\n }, [open, options])\n\n React.useEffect(() => {\n if (!open) return\n if (!highlightedValue) return\n if (!keyboardNavigationActiveRef.current) return\n\n const viewport = desktopContentRef.current\n if (!viewport) return\n\n const target = viewport.querySelector(`[role=\"option\"][data-value=\"${highlightedValue}\"]`)\n if (!(target instanceof HTMLElement)) return\n\n const padding = 8\n const targetTop = target.offsetTop - padding\n const targetBottom = target.offsetTop + target.offsetHeight + padding\n\n if (targetTop < viewport.scrollTop) {\n viewport.scrollTop = Math.max(0, targetTop)\n return\n }\n\n const viewportBottom = viewport.scrollTop + viewport.clientHeight\n if (targetBottom > viewportBottom) {\n viewport.scrollTop = Math.max(0, targetBottom - viewport.clientHeight)\n }\n }, [highlightedValue, open])\n\n return (\n <div\n data-slot=\"hours-picker-input\"\n className={cn(\"w-[150px]\", className)}\n ref={containerRef}\n >\n <div className=\"relative\">\n <HourPickerMaskedSelectTrigger\n id={triggerId}\n placeholder={placeholder}\n value={value}\n onValueUpdate={updateValue}\n onCommit={commitValue}\n options={options}\n disabled={disabled}\n readOnly={readOnly}\n open={open}\n setOpen={setOpen}\n inputClassName={inputClassName}\n triggerTestId={triggerTestId}\n isHydrated={isHydrated}\n highlightedValueRef={highlightedValueRef}\n setHighlightedValue={updateHighlightedValue}\n markKeyboardNavigation={markKeyboardNavigation}\n inputRef={(node) => {\n triggerInputRef.current = node\n }}\n onDraftValueHandlerChange={setTriggerDraftValueHandler}\n />\n\n {open ? (() => {\n const popover = (\n <DismissableLayerBranch>\n <div\n ref={desktopPopoverRef}\n data-testid={contentTestId}\n data-state=\"open\"\n className={cn(\n \"pointer-events-auto fixed z-[60] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n )}\n style={{\n left: desktopPopoverPosition.left,\n top: desktopPopoverPosition.top,\n width: desktopPopoverPosition.width,\n }}\n >\n <HourPickerScrollButton\n direction=\"up\"\n viewportRef={desktopContentRef}\n />\n\n <div\n ref={desktopContentRef}\n role=\"listbox\"\n className=\"max-h-64 overflow-y-auto p-1 [overscroll-behavior:contain] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden\"\n >\n {options.map((option) => {\n const isChecked = option.value === value\n\n return (\n <div\n key={option.value}\n role=\"option\"\n aria-selected={isChecked}\n data-value={option.value}\n data-state={isChecked ? \"checked\" : \"unchecked\"}\n data-disabled={option.disabled ? \"\" : undefined}\n className={cn(\n \"relative flex w-full select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none cursor-pointer\",\n option.disabled && \"pointer-events-none opacity-50\",\n highlightedValue === option.value && \"bg-accent text-accent-foreground\",\n )}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n onClick={() => {\n if (option.disabled) return\n\n setTriggerDraftValueRef.current?.(option.value)\n updateHighlightedValue(option.value)\n triggerInputRef.current?.focus({ preventScroll: true })\n commitValue(option.value)\n setOpen(false)\n }}\n onPointerEnter={() => {\n if (keyboardNavigationActiveRef.current) return\n keyboardNavigationActiveRef.current = false\n updateHighlightedValue(option.value)\n }}\n onPointerMove={(event) => {\n if (keyboardNavigationActiveRef.current && event.movementX === 0 && event.movementY === 0) {\n return\n }\n keyboardNavigationActiveRef.current = false\n updateHighlightedValue(option.value)\n }}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {isChecked ? <Check aria-hidden className=\"h-4 w-4\" /> : null}\n </span>\n\n <div className=\"flex flex-col\">\n <span>{option.label}</span>\n {option.description != null ? (\n <span data-slot=\"description\" className=\"text-xs text-muted-foreground\">\n {option.description}\n </span>\n ) : null}\n </div>\n </div>\n )\n })}\n </div>\n\n <HourPickerScrollButton\n direction=\"down\"\n viewportRef={desktopContentRef}\n />\n </div>\n </DismissableLayerBranch>\n )\n\n if (typeof document === \"undefined\") return popover\n return createPortal(popover, document.body)\n })() : null}\n </div>\n </div>\n )\n}\n\nHourPickerInput.displayName = \"HourPickerInput\"\n\nexport type HourPickerFieldProps = HourPickerInputProps\n\nfunction HourPickerSelectField({\n id,\n value,\n onChange,\n onValueUpdate,\n options,\n placeholder = \"Select time\",\n className,\n inputClassName,\n disabled,\n open,\n onOpenChange,\n triggerTestId,\n contentTestId,\n isHydrated,\n}: HourPickerFieldProps) {\n const commitValue = React.useCallback(\n (next: string) => {\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n onChange(next)\n },\n [onChange, onValueUpdate, options],\n )\n\n return (\n <div data-slot=\"hours-picker-field\" className={cn(\"w-[150px]\", className)}>\n <Select\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n value={value ?? \"\"}\n onValueChange={(next) => commitValue(next)}\n >\n <SelectTrigger\n id={id}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n className={cn(\n \"transition-colors hover:bg-accent hover:text-accent-foreground\",\n !value && \"text-muted-foreground\",\n open && \"ring-2 ring-primary ring-offset-2\",\n \"[&_[data-slot='description']]:hidden\",\n inputClassName,\n )}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent\n data-testid={contentTestId}\n autoScroll={\"firstEnabledWithContext\"}\n className=\"max-h-64 overflow-y-auto\"\n >\n {options.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n <span>{option.label}</span>\n {option.description != null ? (\n <span data-slot=\"description\" className=\"block text-xs text-muted-foreground\">\n {option.description}\n </span>\n ) : null}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )\n}\n\nexport function HourPickerField(props: HourPickerFieldProps) {\n const isTouchDevice = useIsTouchDevice()\n\n if (isTouchDevice) {\n return <HourPickerSelectField {...props} />\n }\n\n return <HourPickerInput {...props} />\n}\n\nHourPickerField.displayName = \"HourPickerField\"\n\ntype HourPickerMaskedSelectTriggerProps = {\n id: string\n placeholder: string\n value: string | null\n onValueUpdate: (value: string | null) => void\n onCommit: (value: string | null) => void\n options: HourPickerOption[]\n disabled?: boolean\n readOnly?: boolean\n open: boolean\n setOpen: (open: boolean) => void\n inputClassName?: string\n triggerTestId?: string\n isHydrated?: boolean\n highlightedValueRef: React.MutableRefObject<string | null>\n setHighlightedValue: (value: string | null) => void\n markKeyboardNavigation: () => void\n inputRef: (node: HTMLInputElement | null) => void\n onDraftValueHandlerChange: (handler: ((value: string) => void) | null) => void\n}\n\nfunction HourPickerMaskedSelectTrigger({\n id,\n placeholder,\n value,\n onValueUpdate,\n onCommit,\n options,\n disabled,\n readOnly,\n open,\n setOpen,\n inputClassName,\n triggerTestId,\n isHydrated,\n highlightedValueRef,\n setHighlightedValue,\n markKeyboardNavigation,\n inputRef,\n onDraftValueHandlerChange,\n}: HourPickerMaskedSelectTriggerProps) {\n const isEditingRef = React.useRef(false)\n const pointerDownOnInputRef = React.useRef(false)\n const inputWasFocusedOnPointerDownRef = React.useRef(false)\n const ignoreNextMaskCommitValueRef = React.useRef<string | null>(null)\n const lastAcceptedSignatureRef = React.useRef<string | null>(null)\n const clearCommitPendingRef = React.useRef(false)\n\n const [draft, setDraft] = React.useState(() => (value ? value : \"\"))\n\n React.useEffect(() => {\n onDraftValueHandlerChange((nextValue) => {\n setDraft(nextValue)\n })\n return () => {\n onDraftValueHandlerChange(null)\n }\n }, [onDraftValueHandlerChange])\n\n const moveSelection = React.useCallback(\n (direction: -1 | 1) => {\n const base = highlightedValueRef.current ?? value ?? \"\"\n\n let baseIndex = options.findIndex((option) => option.value === base)\n if (baseIndex === -1) {\n baseIndex = direction === 1 ? -1 : options.length\n }\n\n for (let nextIndex = baseIndex + direction; nextIndex >= 0 && nextIndex < options.length; nextIndex += direction) {\n const nextOption = options[nextIndex]\n if (!isOptionSelectable(nextOption)) continue\n\n setHighlightedValue(nextOption.value)\n ignoreNextMaskCommitValueRef.current = nextOption.value\n setDraft(nextOption.value)\n onValueUpdate(nextOption.value)\n return\n }\n },\n [highlightedValueRef, onValueUpdate, options, setHighlightedValue, value],\n )\n\n React.useEffect(() => {\n if (isEditingRef.current) return\n setDraft(value ? value : \"\")\n }, [value])\n\n React.useEffect(() => {\n lastAcceptedSignatureRef.current = getAcceptedInputSignature(draft)\n }, [draft])\n\n React.useEffect(() => {\n if (value === null) {\n clearCommitPendingRef.current = false\n }\n }, [value])\n\n const triggerClassName = cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 pr-10 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 !draft && \"text-muted-foreground\",\n open && \"ring-2 ring-primary ring-offset-2\",\n \"[&_[data-slot='description']]:hidden\",\n inputClassName,\n )\n\n return (\n <div className=\"relative group\">\n <IMaskInput\n id={id}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n type=\"text\"\n disabled={disabled}\n readOnly={readOnly}\n inputRef={inputRef}\n autoComplete={\"off\"}\n mask={[\n { mask: \"00:00\", lazy: true },\n { mask: \"0:00\", lazy: true },\n ]}\n dispatch={(appended, dynamicMasked) => {\n const digits = (dynamicMasked.value + appended).replace(/\\D/g, \"\")\n if (digits.length <= 2) return dynamicMasked.compiledMasks[0]\n if (digits.length >= 4) return dynamicMasked.compiledMasks[0]\n\n const hourPrefix = pad2(Number(digits.slice(0, 2)))\n const hasTwoDigitHour = options.some((option) => option.value.startsWith(`${hourPrefix}:`))\n if (hasTwoDigitHour) return dynamicMasked.compiledMasks[0]\n\n return dynamicMasked.compiledMasks[1]\n }}\n placeholder={placeholder}\n value={draft}\n className={triggerClassName}\n onAccept={(accepted, _mask, event) => {\n if (!event) {\n return\n }\n const nextText = typeof accepted === \"string\" ? accepted : String(accepted ?? \"\")\n const nextDigits = nextText.replace(/\\D/g, \"\")\n const nextSignature = getAcceptedInputSignature(nextText)\n if (lastAcceptedSignatureRef.current === nextSignature) {\n return\n }\n lastAcceptedSignatureRef.current = nextSignature\n setDraft(nextText)\n\n if (nextDigits.length !== 0) {\n clearCommitPendingRef.current = false\n return\n }\n\n if (value && !clearCommitPendingRef.current) {\n clearCommitPendingRef.current = true\n onCommit(null)\n }\n }}\n onComplete={(completed) => {\n const nextText = typeof completed === \"string\" ? completed : String(completed ?? \"\")\n if (ignoreNextMaskCommitValueRef.current === nextText) {\n ignoreNextMaskCommitValueRef.current = null\n return\n }\n\n const resolved = parseTimeInputWithSelectableOption(nextText, options)\n if (!resolved) {\n return\n }\n\n if (resolved.selectableValue) {\n setHighlightedValue(resolved.selectableValue)\n setDraft(resolved.selectableValue)\n\n if (value === resolved.selectableValue) {\n return\n }\n\n onCommit(resolved.selectableValue)\n return\n }\n\n const targetMinutes = timeStringToMinutes(resolved.parsed)\n if (targetMinutes == null) {\n return\n }\n\n const closestOption = findClosestSelectableOption(targetMinutes, options)\n if (!closestOption) {\n return\n }\n\n setHighlightedValue(closestOption.value)\n }}\n onPointerDown={() => {\n pointerDownOnInputRef.current = true\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onMouseDown={(event) => {\n pointerDownOnInputRef.current = true\n inputWasFocusedOnPointerDownRef.current = typeof document !== \"undefined\" && document.activeElement === event.currentTarget\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onClick={() => {\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onKeyDown={(event) => {\n if (disabled) {\n return\n }\n\n if (event.key === \"Tab\" && open && !event.defaultPrevented) {\n setOpen(false)\n return\n }\n\n if (event.key === \"Escape\") {\n if (!open) {\n return\n }\n event.preventDefault()\n setOpen(false)\n return\n }\n\n if (!open && !event.defaultPrevented) {\n const shouldReopen =\n (event.key.length === 1 || event.key === \"Backspace\" || event.key === \"Delete\") &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n\n if (shouldReopen) {\n setOpen(true)\n }\n }\n\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n markKeyboardNavigation()\n event.preventDefault()\n\n if (!open) {\n setOpen(true)\n return\n }\n\n moveSelection(event.key === \"ArrowDown\" ? 1 : -1)\n return\n }\n\n if (event.key === \"Enter\") {\n markKeyboardNavigation()\n const resolved = parseTimeInputWithSelectableOption(draft, options)\n if (!resolved) {\n if (!open) {\n return\n }\n\n if (draft.trim() !== \"\") {\n return\n }\n\n const highlightedOption = options.find((option) => option.value === highlightedValueRef.current)\n const fallbackValue =\n (isOptionSelectable(highlightedOption) ? highlightedOption?.value : undefined) ??\n options.find((option) => isOptionSelectable(option))?.value\n\n if (!fallbackValue) {\n return\n }\n\n event.preventDefault()\n setHighlightedValue(fallbackValue)\n setDraft(fallbackValue)\n onCommit(fallbackValue)\n setOpen(false)\n return\n }\n\n if (resolved.selectableValue) {\n event.preventDefault()\n setHighlightedValue(resolved.selectableValue)\n setDraft(resolved.selectableValue)\n onCommit(resolved.selectableValue)\n setOpen(false)\n return\n }\n\n const targetMinutes = timeStringToMinutes(resolved.parsed)\n if (targetMinutes == null) {\n return\n }\n\n const closestOption = findClosestSelectableOption(targetMinutes, options)\n if (!closestOption) {\n return\n }\n\n event.preventDefault()\n setHighlightedValue(closestOption.value)\n setDraft(closestOption.value)\n onCommit(closestOption.value)\n setOpen(false)\n return\n }\n }}\n onFocus={(event) => {\n const shouldSelectAll = !pointerDownOnInputRef.current || !inputWasFocusedOnPointerDownRef.current\n pointerDownOnInputRef.current = false\n inputWasFocusedOnPointerDownRef.current = false\n isEditingRef.current = true\n if (shouldSelectAll) {\n const element = event.currentTarget\n requestAnimationFrame(() => element.select())\n }\n\n if (disabled) {\n return\n }\n\n if (open) {\n return\n }\n\n setOpen(true)\n }}\n onBlur={() => {\n isEditingRef.current = false\n\n const trimmed = draft.trim()\n if (!trimmed) {\n setDraft(value ? value : \"\")\n return\n }\n\n const resolved = parseTimeInputWithSelectableOption(trimmed, options)\n if (!resolved) {\n setDraft(value ? value : \"\")\n return\n }\n\n if (!resolved.selectableValue) {\n setDraft(value ? value : \"\")\n return\n }\n\n setDraft(resolved.selectableValue)\n if (value !== resolved.selectableValue) {\n onCommit(resolved.selectableValue)\n }\n }}\n />\n\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n data-slot=\"hours-picker-input-toggle\"\n className={cn(\n \"absolute right-1 top-1/2 inline-flex size-8 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n )}\n aria-label={open ? \"Close time picker\" : \"Open time picker\"}\n onPointerDown={(event) => {\n event.preventDefault()\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n onClick={() => {\n if (disabled) return\n setOpen(!open)\n }}\n >\n <ChevronDown aria-hidden className=\"size-4\" />\n </button>\n </div>\n )\n}\n"],"names":["imaskAny","IMask","InputMask","pad2","value","String","padStart","parseTimeInput","raw","trimmed","trim","match","exec","hours","Number","minutes","isFinite","getAcceptedInputSignature","parsed","digits","replace","length","minutePart","slice","hourPart","parseTimeInputWithSelectableOption","options","parsedOption","find","option","isOptionSelectable","selectableValue","timeStringToMinutes","disabled","findClosestSelectableOption","targetMinutes","bestOption","bestDiff","POSITIVE_INFINITY","bestMinutes","NEGATIVE_INFINITY","optionMinutes","diff","Math","abs","HourPickerScrollButton","direction","viewportRef","speed","className","setDisabled","React","useState","animationRef","useRef","undefined","lastTimeRef","isScrollingRef","checkScrollability","useCallback","viewport","current","scrollTop","scrollHeight","clientHeight","tolerance","canScrollUp","canScrollDown","useEffect","handleScroll","handleResize","addEventListener","passive","resizeObserver","ResizeObserver","observe","mutationObserver","MutationObserver","childList","subtree","removeEventListener","disconnect","stopScrolling","cancelAnimationFrame","smoothScroll","currentTime","deltaTime","distance","requestAnimationFrame","oldScrollTop","maxScroll","newScrollTop","max","min","scrollTo","top","setTimeout","startScrolling","jsx","cn","ChevronUp","ChevronDown","HourPickerInput","id","onChange","onValueUpdate","placeholder","inputClassName","readOnly","open","openProp","onOpenChange","triggerTestId","contentTestId","isHydrated","reactId","useId","triggerId","triggerInputRef","setTriggerDraftValueRef","setTriggerDraftValueHandler","handler","highlightedValueRef","keyboardNavigationActiveRef","highlightedValue","setHighlightedValue","containerRef","desktopPopoverRef","desktopContentRef","desktopPopoverPosition","setDesktopPopoverPosition","left","width","uncontrolledOpen","setUncontrolledOpen","setOpen","openRef","input","HTMLInputElement","document","activeElement","focus","preventScroll","updateHighlightedValue","next","markKeyboardNavigation","currentOption","firstEnabled","updateValue","matchingOption","commitValue","ownerDocument","ownerWindow","defaultView","window","handlePointerDown","event","target","Node","container","contains","handleKeyDown","key","popover","preventDefault","stopPropagation","handleWheel","deltaY","maxScrollTop","atTop","atBottom","nextScrollTop","trigger","HTMLElement","isActive","observer","IntersectionObserver","entries","entry","isIntersecting","updateDesktopPopoverPosition","rect","getBoundingClientRect","popoverHeight","offsetHeight","viewportWidth","innerWidth","viewportHeight","innerHeight","padding","bottom","overflowBottom","aboveTop","useLayoutEffect","rafId","raf","run","selected","querySelector","targetTop","offsetTop","targetBottom","viewportBottom","all","Array","from","querySelectorAll","lastDisabledBefore","el","hasAttribute","offset","jsxs","HourPickerMaskedSelectTrigger","node","DismissableLayerBranch","map","isChecked","movementX","movementY","Check","label","description","createPortal","body","displayName","HourPickerSelectField","t0","$","_c","t1","t2","t3","t4","t5","next_0","t6","t7","t8","t9","t10","SelectValue","t11","SelectTrigger","t12","_temp","t13","SelectContent","t14","Select","t15","option_0","SelectItem","HourPickerField","props","useIsTouchDevice","onCommit","inputRef","onDraftValueHandlerChange","isEditingRef","pointerDownOnInputRef","inputWasFocusedOnPointerDownRef","ignoreNextMaskCommitValueRef","lastAcceptedSignatureRef","clearCommitPendingRef","draft","setDraft","nextValue","base","baseIndex","findIndex","nextIndex","nextOption","moveSelection","triggerClassName","Symbol","for","mask","lazy","t16","appended","dynamicMasked","compiledMasks","hourPrefix","some","startsWith","t17","accepted","_mask","nextText","nextDigits","nextSignature","t18","completed","nextText_0","resolved","closestOption","t19","t20","t21","event_0","currentTarget","t22","event_1","defaultPrevented","ctrlKey","metaKey","altKey","resolved_0","highlightedOption","option_1","fallbackValue","_temp2","targetMinutes_0","closestOption_0","t23","event_2","shouldSelectAll","element","select","t24","resolved_1","t25","IMaskInput","t26","t27","t28","t29","t30","_temp3","_temp4","t31","event_4","event_3","option_2"],"mappings":"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"}
package/dist/index190.js CHANGED
@@ -1,9 +1,9 @@
1
- class a {
2
- constructor(t, s) {
3
- this.date = t, this.weeks = s;
4
- }
1
+ import { addDays as r } from "./index188.js";
2
+ function o(a, d, e) {
3
+ return r(a, d * 7, e);
5
4
  }
6
5
  export {
7
- a as CalendarMonth
6
+ o as addWeeks,
7
+ o as default
8
8
  };
9
9
  //# sourceMappingURL=index190.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index190.js","sources":["../../../node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js"],"sourcesContent":["/**\n * Represents a month in a calendar year.\n *\n * A `CalendarMonth` contains the weeks within the month and the date of the\n * month.\n */\nexport class CalendarMonth {\n constructor(month, weeks) {\n this.date = month;\n this.weeks = weeks;\n }\n}\n"],"names":["CalendarMonth","month","weeks"],"mappings":"AAMO,MAAMA,EAAc;AAAA,EACvB,YAAYC,GAAOC,GAAO;AACtB,SAAK,OAAOD,GACZ,KAAK,QAAQC;AAAA,EACjB;AACJ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index190.js","sources":["../../../node_modules/date-fns/addWeeks.js"],"sourcesContent":["import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link addWeeks} function options.\n */\n\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of weeks to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be added.\n * @param options - An object with options\n *\n * @returns The new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport function addWeeks(date, amount, options) {\n return addDays(date, amount * 7, options);\n}\n\n// Fallback for modularized imports:\nexport default addWeeks;\n"],"names":["addWeeks","date","amount","options","addDays"],"mappings":";AA4BO,SAASA,EAASC,GAAMC,GAAQC,GAAS;AAC9C,SAAOC,EAAQH,GAAMC,IAAS,GAAGC,CAAO;AAC1C;","x_google_ignoreList":[0]}
package/dist/index191.js CHANGED
@@ -1,9 +1,9 @@
1
- class t {
2
- constructor(e, s) {
3
- this.days = s, this.weekNumber = e;
4
- }
1
+ import { addMonths as d } from "./index189.js";
2
+ function e(r, t, a) {
3
+ return d(r, t * 12, a);
5
4
  }
6
5
  export {
7
- t as CalendarWeek
6
+ e as addYears,
7
+ e as default
8
8
  };
9
9
  //# sourceMappingURL=index191.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index191.js","sources":["../../../node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js"],"sourcesContent":["/**\n * Represents a week in a calendar month.\n *\n * A `CalendarWeek` contains the days within the week and the week number.\n */\nexport class CalendarWeek {\n constructor(weekNumber, days) {\n this.days = days;\n this.weekNumber = weekNumber;\n }\n}\n"],"names":["CalendarWeek","weekNumber","days"],"mappings":"AAKO,MAAMA,EAAa;AAAA,EACtB,YAAYC,GAAYC,GAAM;AAC1B,SAAK,OAAOA,GACZ,KAAK,aAAaD;AAAA,EACtB;AACJ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index191.js","sources":["../../../node_modules/date-fns/addYears.js"],"sourcesContent":["import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addYears} function options.\n */\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n * @param options - The options\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount, options) {\n return addMonths(date, amount * 12, options);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n"],"names":["addYears","date","amount","options","addMonths"],"mappings":";AA4BO,SAASA,EAASC,GAAMC,GAAQC,GAAS;AAC9C,SAAOC,EAAUH,GAAMC,IAAS,IAAIC,CAAO;AAC7C;","x_google_ignoreList":[0]}
package/dist/index192.js CHANGED
@@ -1,10 +1,17 @@
1
- import { getBroadcastWeeksInMonth as n } from "./index278.js";
2
- import { startOfBroadcastWeek as s } from "./index193.js";
3
- function d(e, t) {
4
- const o = s(e, t), r = n(e, t);
5
- return t.addDays(o, r * 7 - 1);
1
+ import { getTimezoneOffsetInMilliseconds as r } from "./index285.js";
2
+ import { normalizeDates as c } from "./index286.js";
3
+ import { millisecondsInDay as D } from "./index284.js";
4
+ import { startOfDay as a } from "./index214.js";
5
+ function O(o, n, i) {
6
+ const [s, m] = c(
7
+ i?.in,
8
+ o,
9
+ n
10
+ ), t = a(s), e = a(m), f = +t - r(t), l = +e - r(e);
11
+ return Math.round((f - l) / D);
6
12
  }
7
13
  export {
8
- d as endOfBroadcastWeek
14
+ O as default,
15
+ O as differenceInCalendarDays
9
16
  };
10
17
  //# sourceMappingURL=index192.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index192.js","sources":["../../../node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js"],"sourcesContent":["import { getBroadcastWeeksInMonth } from \"./getBroadcastWeeksInMonth.js\";\nimport { startOfBroadcastWeek } from \"./startOfBroadcastWeek.js\";\n/**\n * Returns the end date of the week in the broadcast calendar.\n *\n * The broadcast week ends on the last day of the last broadcast week for the\n * given date.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the end of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The end date of the broadcast week.\n */\nexport function endOfBroadcastWeek(date, dateLib) {\n const startDate = startOfBroadcastWeek(date, dateLib);\n const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);\n const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);\n return endDate;\n}\n"],"names":["endOfBroadcastWeek","date","dateLib","startDate","startOfBroadcastWeek","numberOfWeeks","getBroadcastWeeksInMonth"],"mappings":";;AAaO,SAASA,EAAmBC,GAAMC,GAAS;AAC9C,QAAMC,IAAYC,EAAqBH,GAAMC,CAAO,GAC9CG,IAAgBC,EAAyBL,GAAMC,CAAO;AAE5D,SADgBA,EAAQ,QAAQC,GAAWE,IAAgB,IAAI,CAAC;AAEpE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index192.js","sources":["../../../node_modules/date-fns/differenceInCalendarDays.js"],"sourcesContent":["import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n"],"names":["differenceInCalendarDays","laterDate","earlierDate","options","laterDate_","earlierDate_","normalizeDates","laterStartOfDay","startOfDay","earlierStartOfDay","laterTimestamp","getTimezoneOffsetInMilliseconds","earlierTimestamp","millisecondsInDay"],"mappings":";;;;AAwCO,SAASA,EAAyBC,GAAWC,GAAaC,GAAS;AACxE,QAAM,CAACC,GAAYC,CAAY,IAAIC;AAAA,IACjCH,GAAS;AAAA,IACTF;AAAA,IACAC;AAAA,EACJ,GAEQK,IAAkBC,EAAWJ,CAAU,GACvCK,IAAoBD,EAAWH,CAAY,GAE3CK,IACJ,CAACH,IAAkBI,EAAgCJ,CAAe,GAC9DK,IACJ,CAACH,IAAoBE,EAAgCF,CAAiB;AAKxE,SAAO,KAAK,OAAOC,IAAiBE,KAAoBC,CAAiB;AAC3E;","x_google_ignoreList":[0]}
package/dist/index193.js CHANGED
@@ -1,8 +1,14 @@
1
- function n(s, e) {
2
- const t = e.startOfMonth(s), r = t.getDay();
3
- return r === 1 ? t : r === 0 ? e.addDays(t, -6) : e.addDays(t, -1 * (r - 1));
1
+ import { normalizeDates as l } from "./index286.js";
2
+ function s(n, r, a) {
3
+ const [e, t] = l(
4
+ a?.in,
5
+ n,
6
+ r
7
+ ), o = e.getFullYear() - t.getFullYear(), f = e.getMonth() - t.getMonth();
8
+ return o * 12 + f;
4
9
  }
5
10
  export {
6
- n as startOfBroadcastWeek
11
+ s as default,
12
+ s as differenceInCalendarMonths
7
13
  };
8
14
  //# sourceMappingURL=index193.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index193.js","sources":["../../../node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js"],"sourcesContent":["/**\n * Returns the start date of the week in the broadcast calendar.\n *\n * The broadcast week starts on Monday. If the first day of the month is not a\n * Monday, this function calculates the previous Monday as the start of the\n * broadcast week.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the start of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The start date of the broadcast week.\n */\nexport function startOfBroadcastWeek(date, dateLib) {\n const firstOfMonth = dateLib.startOfMonth(date);\n const dayOfWeek = firstOfMonth.getDay();\n if (dayOfWeek === 1) {\n return firstOfMonth;\n }\n else if (dayOfWeek === 0) {\n return dateLib.addDays(firstOfMonth, -1 * 6);\n }\n else {\n return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));\n }\n}\n"],"names":["startOfBroadcastWeek","date","dateLib","firstOfMonth","dayOfWeek"],"mappings":"AAYO,SAASA,EAAqBC,GAAMC,GAAS;AAChD,QAAMC,IAAeD,EAAQ,aAAaD,CAAI,GACxCG,IAAYD,EAAa,OAAM;AACrC,SAAIC,MAAc,IACPD,IAEFC,MAAc,IACZF,EAAQ,QAAQC,GAAc,EAAM,IAGpCD,EAAQ,QAAQC,GAAc,MAAMC,IAAY,EAAE;AAEjE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index193.js","sources":["../../../node_modules/date-fns/differenceInCalendarMonths.js"],"sourcesContent":["import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link differenceInCalendarMonths} function options.\n */\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport function differenceInCalendarMonths(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear();\n const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth();\n\n return yearsDiff * 12 + monthsDiff;\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarMonths;\n"],"names":["differenceInCalendarMonths","laterDate","earlierDate","options","laterDate_","earlierDate_","normalizeDates","yearsDiff","monthsDiff"],"mappings":";AA4BO,SAASA,EAA2BC,GAAWC,GAAaC,GAAS;AAC1E,QAAM,CAACC,GAAYC,CAAY,IAAIC;AAAA,IACjCH,GAAS;AAAA,IACTF;AAAA,IACAC;AAAA,EACJ,GAEQK,IAAYH,EAAW,YAAW,IAAKC,EAAa,YAAW,GAC/DG,IAAaJ,EAAW,SAAQ,IAAKC,EAAa,SAAQ;AAEhE,SAAOE,IAAY,KAAKC;AAC1B;","x_google_ignoreList":[0]}
package/dist/index194.js CHANGED
@@ -1,11 +1,18 @@
1
- import { constructFrom as a } from "./index287.js";
2
- import { toDate as i } from "./index288.js";
3
- function s(e, r, o) {
4
- const t = i(e, o?.in);
5
- return isNaN(r) ? a(e, NaN) : (r && t.setDate(t.getDate() + r), t);
1
+ import { normalizeInterval as l } from "./index287.js";
2
+ import { constructFrom as m } from "./index282.js";
3
+ function u(s, a) {
4
+ const { start: e, end: r } = l(a?.in, s);
5
+ let n = +e > +r;
6
+ const c = n ? +e : +r, t = n ? r : e;
7
+ t.setHours(0, 0, 0, 0), t.setDate(1);
8
+ let i = 1;
9
+ const o = [];
10
+ for (; +t <= c; )
11
+ o.push(m(e, t)), t.setMonth(t.getMonth() + i);
12
+ return n ? o.reverse() : o;
6
13
  }
7
14
  export {
8
- s as addDays,
9
- s as default
15
+ u as default,
16
+ u as eachMonthOfInterval
10
17
  };
11
18
  //# sourceMappingURL=index194.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index194.js","sources":["../../../node_modules/date-fns/addDays.js"],"sourcesContent":["import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n"],"names":["addDays","date","amount","options","_date","toDate","constructFrom"],"mappings":";;AA6BO,SAASA,EAAQC,GAAMC,GAAQC,GAAS;AAC7C,QAAMC,IAAQC,EAAOJ,GAAME,GAAS,EAAE;AACtC,SAAI,MAAMD,CAAM,IAAUI,EAA6BL,GAAM,GAAG,KAG3DC,KAELE,EAAM,QAAQA,EAAM,QAAO,IAAKF,CAAM,GAC/BE;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index194.js","sources":["../../../node_modules/date-fns/eachMonthOfInterval.js"],"sourcesContent":["import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachMonthOfInterval} function options.\n */\n\n/**\n * The {@link eachMonthOfInterval} function result type. It resolves the proper data type.\n */\n\n/**\n * @name eachMonthOfInterval\n * @category Interval Helpers\n * @summary Return the array of months within the specified time interval.\n *\n * @description\n * Return the array of months within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of months from the month of the interval start to the month of the interval end\n *\n * @example\n * // Each month between 6 February 2014 and 10 August 2014:\n * const result = eachMonthOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Sat Feb 01 2014 00:00:00,\n * // Sat Mar 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Thu May 01 2014 00:00:00,\n * // Sun Jun 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // Fri Aug 01 2014 00:00:00\n * // ]\n */\nexport function eachMonthOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +start : +end;\n const date = reversed ? end : start;\n date.setHours(0, 0, 0, 0);\n date.setDate(1);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date.setMonth(date.getMonth() + step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachMonthOfInterval;\n"],"names":["eachMonthOfInterval","interval","options","start","end","normalizeInterval","reversed","endTime","date","step","dates","constructFrom"],"mappings":";;AA2CO,SAASA,EAAoBC,GAAUC,GAAS;AACrD,QAAM,EAAE,OAAAC,GAAO,KAAAC,EAAG,IAAKC,EAAkBH,GAAS,IAAID,CAAQ;AAE9D,MAAIK,IAAW,CAACH,IAAQ,CAACC;AACzB,QAAMG,IAAUD,IAAW,CAACH,IAAQ,CAACC,GAC/BI,IAAOF,IAAWF,IAAMD;AAC9B,EAAAK,EAAK,SAAS,GAAG,GAAG,GAAG,CAAC,GACxBA,EAAK,QAAQ,CAAC;AAEd,MAAIC,IAAwB;AAO5B,QAAMC,IAAQ,CAAA;AAEd,SAAO,CAACF,KAAQD;AACd,IAAAG,EAAM,KAAKC,EAAcR,GAAOK,CAAI,CAAC,GACrCA,EAAK,SAASA,EAAK,SAAQ,IAAKC,CAAI;AAGtC,SAAOH,IAAWI,EAAM,QAAO,IAAKA;AACtC;","x_google_ignoreList":[0]}
package/dist/index195.js CHANGED
@@ -1,21 +1,18 @@
1
- import { constructFrom as s } from "./index287.js";
2
- import { toDate as f } from "./index288.js";
3
- function u(n, o, i) {
4
- const t = f(n, i?.in);
5
- if (isNaN(o)) return s(n, NaN);
6
- if (!o)
7
- return t;
8
- const r = t.getDate(), e = s(n, t.getTime());
9
- e.setMonth(t.getMonth() + o + 1, 0);
10
- const a = e.getDate();
11
- return r >= a ? e : (t.setFullYear(
12
- e.getFullYear(),
13
- e.getMonth(),
14
- r
15
- ), t);
1
+ import { normalizeInterval as u } from "./index287.js";
2
+ import { constructFrom as i } from "./index282.js";
3
+ function f(o, a) {
4
+ const { start: t, end: r } = u(a?.in, o);
5
+ let s = +t > +r;
6
+ const l = s ? +t : +r, e = s ? r : t;
7
+ e.setHours(0, 0, 0, 0), e.setMonth(0, 1);
8
+ let c = 1;
9
+ const n = [];
10
+ for (; +e <= l; )
11
+ n.push(i(t, e)), e.setFullYear(e.getFullYear() + c);
12
+ return s ? n.reverse() : n;
16
13
  }
17
14
  export {
18
- u as addMonths,
19
- u as default
15
+ f as default,
16
+ f as eachYearOfInterval
20
17
  };
21
18
  //# sourceMappingURL=index195.js.map