@rpcbase/ui 0.210.0 → 0.212.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 (641) hide show
  1. package/dist/index.js +73 -25
  2. package/dist/index.js.map +1 -0
  3. package/dist/index10.js +666 -18
  4. package/dist/index10.js.map +1 -1
  5. package/dist/index100.js +46 -9
  6. package/dist/index100.js.map +1 -1
  7. package/dist/index101.js +7 -14
  8. package/dist/index101.js.map +1 -1
  9. package/dist/index102.js +50 -10
  10. package/dist/index102.js.map +1 -1
  11. package/dist/index103.js +233 -15
  12. package/dist/index103.js.map +1 -1
  13. package/dist/index104.js +25 -21
  14. package/dist/index104.js.map +1 -1
  15. package/dist/index105.js +27 -27
  16. package/dist/index105.js.map +1 -1
  17. package/dist/index106.js +404 -9
  18. package/dist/index106.js.map +1 -1
  19. package/dist/index107.js +609 -9
  20. package/dist/index107.js.map +1 -1
  21. package/dist/index108.js +55 -10
  22. package/dist/index108.js.map +1 -1
  23. package/dist/index109.js +6 -8
  24. package/dist/index109.js.map +1 -1
  25. package/dist/index11.js +459 -1673
  26. package/dist/index11.js.map +1 -1
  27. package/dist/index110.js +7 -8
  28. package/dist/index110.js.map +1 -1
  29. package/dist/index111.js +17 -7
  30. package/dist/index111.js.map +1 -1
  31. package/dist/index112.js +8 -11
  32. package/dist/index112.js.map +1 -1
  33. package/dist/index113.js +10 -10
  34. package/dist/index113.js.map +1 -1
  35. package/dist/index114.js +19 -37
  36. package/dist/index114.js.map +1 -1
  37. package/dist/index115.js +6 -9
  38. package/dist/index115.js.map +1 -1
  39. package/dist/index116.js +7 -8
  40. package/dist/index116.js.map +1 -1
  41. package/dist/index117.js +8 -10
  42. package/dist/index117.js.map +1 -1
  43. package/dist/index118.js +8 -12
  44. package/dist/index118.js.map +1 -1
  45. package/dist/index119.js +6 -7
  46. package/dist/index119.js.map +1 -1
  47. package/dist/index12.js +79 -10
  48. package/dist/index12.js.map +1 -1
  49. package/dist/index120.js +6 -8
  50. package/dist/index120.js.map +1 -1
  51. package/dist/index121.js +8 -7
  52. package/dist/index121.js.map +1 -1
  53. package/dist/index122.js +27 -8
  54. package/dist/index122.js.map +1 -1
  55. package/dist/index123.js +9 -9
  56. package/dist/index123.js.map +1 -1
  57. package/dist/index124.js +6 -7
  58. package/dist/index124.js.map +1 -1
  59. package/dist/index125.js +8 -7
  60. package/dist/index125.js.map +1 -1
  61. package/dist/index126.js +8 -10
  62. package/dist/index126.js.map +1 -1
  63. package/dist/index127.js +8 -60
  64. package/dist/index127.js.map +1 -1
  65. package/dist/index128.js +8 -9
  66. package/dist/index128.js.map +1 -1
  67. package/dist/index129.js +8 -23
  68. package/dist/index129.js.map +1 -1
  69. package/dist/index13.js +23 -21
  70. package/dist/index13.js.map +1 -1
  71. package/dist/index130.js +11 -22
  72. package/dist/index130.js.map +1 -1
  73. package/dist/index131.js +8 -37
  74. package/dist/index131.js.map +1 -1
  75. package/dist/index132.js +7 -8
  76. package/dist/index132.js.map +1 -1
  77. package/dist/index133.js +7 -11
  78. package/dist/index133.js.map +1 -1
  79. package/dist/index134.js +9 -17
  80. package/dist/index134.js.map +1 -1
  81. package/dist/index135.js +148 -13
  82. package/dist/index135.js.map +1 -1
  83. package/dist/index136.js +42 -9
  84. package/dist/index136.js.map +1 -1
  85. package/dist/index137.js +7 -8
  86. package/dist/index137.js.map +1 -1
  87. package/dist/index138.js +10 -8
  88. package/dist/index138.js.map +1 -1
  89. package/dist/index139.js +16 -8
  90. package/dist/index139.js.map +1 -1
  91. package/dist/index14.js +20 -194
  92. package/dist/index14.js.map +1 -1
  93. package/dist/index140.js +16 -8
  94. package/dist/index140.js.map +1 -1
  95. package/dist/index141.js +10 -7
  96. package/dist/index141.js.map +1 -1
  97. package/dist/index142.js +34 -9
  98. package/dist/index142.js.map +1 -1
  99. package/dist/index143.js +14 -24
  100. package/dist/index143.js.map +1 -1
  101. package/dist/index144.js +13 -11
  102. package/dist/index144.js.map +1 -1
  103. package/dist/index145.js +11 -10
  104. package/dist/index145.js.map +1 -1
  105. package/dist/index146.js +16 -9
  106. package/dist/index146.js.map +1 -1
  107. package/dist/index147.js +104 -9
  108. package/dist/index147.js.map +1 -1
  109. package/dist/index148.js +23 -8
  110. package/dist/index148.js.map +1 -1
  111. package/dist/index149.js +56 -7
  112. package/dist/index149.js.map +1 -1
  113. package/dist/index15.js +30 -33
  114. package/dist/index15.js.map +1 -1
  115. package/dist/index150.js +75 -8
  116. package/dist/index150.js.map +1 -1
  117. package/dist/index151.js +12 -7
  118. package/dist/index151.js.map +1 -1
  119. package/dist/index152.js +23 -8
  120. package/dist/index152.js.map +1 -1
  121. package/dist/index153.js +19 -7
  122. package/dist/index153.js.map +1 -1
  123. package/dist/index154.js +26 -7
  124. package/dist/index154.js.map +1 -1
  125. package/dist/index155.js +9 -7
  126. package/dist/index155.js.map +1 -1
  127. package/dist/index156.js +9 -32
  128. package/dist/index156.js.map +1 -1
  129. package/dist/index157.js +26 -35
  130. package/dist/index157.js.map +1 -1
  131. package/dist/index158.js +38 -19
  132. package/dist/index158.js.map +1 -1
  133. package/dist/index159.js +19 -15
  134. package/dist/index159.js.map +1 -1
  135. package/dist/index16.js +268 -57
  136. package/dist/index16.js.map +1 -1
  137. package/dist/index160.js +9 -12
  138. package/dist/index160.js.map +1 -1
  139. package/dist/index161.js +7 -19
  140. package/dist/index161.js.map +1 -1
  141. package/dist/index162.js +7 -89
  142. package/dist/index162.js.map +1 -1
  143. package/dist/index163.js +7 -50
  144. package/dist/index163.js.map +1 -1
  145. package/dist/index164.js +7 -20
  146. package/dist/index164.js.map +1 -1
  147. package/dist/index165.js +6 -11
  148. package/dist/index165.js.map +1 -1
  149. package/dist/index166.js +9 -13
  150. package/dist/index166.js.map +1 -1
  151. package/dist/index167.js +27 -9
  152. package/dist/index167.js.map +1 -1
  153. package/dist/index168.js +10 -25
  154. package/dist/index168.js.map +1 -1
  155. package/dist/index169.js +9 -10
  156. package/dist/index169.js.map +1 -1
  157. package/dist/index17.js +179 -9
  158. package/dist/index17.js.map +1 -1
  159. package/dist/index170.js +8 -9
  160. package/dist/index170.js.map +1 -1
  161. package/dist/index171.js +6 -9
  162. package/dist/index171.js.map +1 -1
  163. package/dist/index172.js +6 -7
  164. package/dist/index172.js.map +1 -1
  165. package/dist/index173.js +7 -9
  166. package/dist/index173.js.map +1 -1
  167. package/dist/index174.js +6 -70
  168. package/dist/index174.js.map +1 -1
  169. package/dist/index175.js +7 -20
  170. package/dist/index175.js.map +1 -1
  171. package/dist/index176.js +6 -15
  172. package/dist/index176.js.map +1 -1
  173. package/dist/index177.js +6 -12
  174. package/dist/index177.js.map +1 -1
  175. package/dist/index178.js +6 -23
  176. package/dist/index178.js.map +1 -1
  177. package/dist/index179.js +16 -20
  178. package/dist/index179.js.map +1 -1
  179. package/dist/index18.js +469 -27
  180. package/dist/index18.js.map +1 -1
  181. package/dist/index180.js +158 -59
  182. package/dist/index180.js.map +1 -1
  183. package/dist/index181.js +33 -13
  184. package/dist/index181.js.map +1 -1
  185. package/dist/index182.js +12 -9
  186. package/dist/index182.js.map +1 -1
  187. package/dist/index183.js +51 -29
  188. package/dist/index183.js.map +1 -1
  189. package/dist/index184.js +14 -29
  190. package/dist/index184.js.map +1 -1
  191. package/dist/index185.js +47 -16
  192. package/dist/index185.js.map +1 -1
  193. package/dist/index186.js +98 -16
  194. package/dist/index186.js.map +1 -1
  195. package/dist/index187.js +90 -10
  196. package/dist/index187.js.map +1 -1
  197. package/dist/index188.js +109 -27
  198. package/dist/index188.js.map +1 -1
  199. package/dist/index189.js +55 -388
  200. package/dist/index189.js.map +1 -1
  201. package/dist/index19.js +266 -65
  202. package/dist/index19.js.map +1 -1
  203. package/dist/index190.js +15 -499
  204. package/dist/index190.js.map +1 -1
  205. package/dist/index191.js +39 -132
  206. package/dist/index191.js.map +1 -1
  207. package/dist/index192.js +11 -55
  208. package/dist/index192.js.map +1 -1
  209. package/dist/index193.js +6 -80
  210. package/dist/index193.js.map +1 -1
  211. package/dist/index194.js +12 -902
  212. package/dist/index194.js.map +1 -1
  213. package/dist/index195.js +119 -22
  214. package/dist/index195.js.map +1 -1
  215. package/dist/index196.js +21 -452
  216. package/dist/index196.js.map +1 -1
  217. package/dist/index197.js +18 -7
  218. package/dist/index197.js.map +1 -1
  219. package/dist/index198.js +38 -59
  220. package/dist/index198.js.map +1 -1
  221. package/dist/index199.js +23 -64
  222. package/dist/index199.js.map +1 -1
  223. package/dist/index2.js +8 -10
  224. package/dist/index2.js.map +1 -0
  225. package/dist/index20.js +5 -43
  226. package/dist/index20.js.map +1 -1
  227. package/dist/index200.js +11 -63
  228. package/dist/index200.js.map +1 -1
  229. package/dist/index201.js +22 -11
  230. package/dist/index201.js.map +1 -1
  231. package/dist/index202.js +31 -19
  232. package/dist/index202.js.map +1 -1
  233. package/dist/index203.js +20 -148
  234. package/dist/index203.js.map +1 -1
  235. package/dist/index204.js +28 -7
  236. package/dist/index204.js.map +1 -1
  237. package/dist/index205.js +32 -14
  238. package/dist/index205.js.map +1 -1
  239. package/dist/index206.js +7 -107
  240. package/dist/index206.js.map +1 -1
  241. package/dist/index207.js +65 -355
  242. package/dist/index207.js.map +1 -1
  243. package/dist/index208.js +184 -99
  244. package/dist/index208.js.map +1 -1
  245. package/dist/index209.js +49 -329
  246. package/dist/index209.js.map +1 -1
  247. package/dist/index21.js +28 -11
  248. package/dist/index21.js.map +1 -1
  249. package/dist/index210.js +60 -212
  250. package/dist/index210.js.map +1 -1
  251. package/dist/index211.js +12 -22
  252. package/dist/index211.js.map +1 -1
  253. package/dist/index212.js +69 -30
  254. package/dist/index212.js.map +1 -1
  255. package/dist/index213.js +21 -189
  256. package/dist/index213.js.map +1 -1
  257. package/dist/index214.js +20 -21
  258. package/dist/index214.js.map +1 -1
  259. package/dist/index215.js +9 -65
  260. package/dist/index215.js.map +1 -1
  261. package/dist/index216.js +8 -46
  262. package/dist/index216.js.map +1 -1
  263. package/dist/index217.js +9 -12
  264. package/dist/index217.js.map +1 -1
  265. package/dist/index218.js +8 -28
  266. package/dist/index218.js.map +1 -1
  267. package/dist/index219.js +9 -47
  268. package/dist/index219.js.map +1 -1
  269. package/dist/index22.js +48 -16
  270. package/dist/index22.js.map +1 -1
  271. package/dist/index220.js +19 -20
  272. package/dist/index220.js.map +1 -1
  273. package/dist/index221.js +8 -6
  274. package/dist/index221.js.map +1 -1
  275. package/dist/index222.js +7 -7
  276. package/dist/index222.js.map +1 -1
  277. package/dist/index223.js +15 -23
  278. package/dist/index223.js.map +1 -1
  279. package/dist/index224.js +12 -27
  280. package/dist/index224.js.map +1 -1
  281. package/dist/index225.js +16 -70
  282. package/dist/index225.js.map +1 -1
  283. package/dist/index226.js +16 -17
  284. package/dist/index226.js.map +1 -1
  285. package/dist/index227.js +8 -7
  286. package/dist/index227.js.map +1 -1
  287. package/dist/index228.js +8 -53
  288. package/dist/index228.js.map +1 -1
  289. package/dist/index229.js +9 -8
  290. package/dist/index229.js.map +1 -1
  291. package/dist/index23.js +37 -109
  292. package/dist/index23.js.map +1 -1
  293. package/dist/index230.js +7 -28
  294. package/dist/index230.js.map +1 -1
  295. package/dist/index231.js +57 -16
  296. package/dist/index231.js.map +1 -1
  297. package/dist/index232.js +11 -12
  298. package/dist/index232.js.map +1 -1
  299. package/dist/index233.js +8 -3
  300. package/dist/index233.js.map +1 -0
  301. package/dist/index234.js +7 -28
  302. package/dist/index234.js.map +1 -1
  303. package/dist/index235.js +11 -71
  304. package/dist/index235.js.map +1 -1
  305. package/dist/index236.js +8 -3
  306. package/dist/index236.js.map +1 -0
  307. package/dist/index237.js +7 -14
  308. package/dist/index237.js.map +1 -1
  309. package/dist/index238.js +6 -53
  310. package/dist/index238.js.map +1 -1
  311. package/dist/index239.js +13 -117
  312. package/dist/index239.js.map +1 -1
  313. package/dist/index24.js +227 -11
  314. package/dist/index24.js.map +1 -1
  315. package/dist/index240.js +13 -9
  316. package/dist/index240.js.map +1 -1
  317. package/dist/index241.js +13 -16
  318. package/dist/index241.js.map +1 -1
  319. package/dist/index242.js +13 -689
  320. package/dist/index242.js.map +1 -1
  321. package/dist/index243.js +14 -256
  322. package/dist/index243.js.map +1 -1
  323. package/dist/index244.js +13 -704
  324. package/dist/index244.js.map +1 -1
  325. package/dist/index245.js +9 -7433
  326. package/dist/index245.js.map +1 -1
  327. package/dist/index246.js +8 -9
  328. package/dist/index246.js.map +1 -1
  329. package/dist/index247.js +7 -15
  330. package/dist/index247.js.map +1 -1
  331. package/dist/index248.js +8 -8
  332. package/dist/index248.js.map +1 -1
  333. package/dist/index249.js +9 -462
  334. package/dist/index249.js.map +1 -1
  335. package/dist/index25.js +32 -23
  336. package/dist/index25.js.map +1 -1
  337. package/dist/index250.js +9 -41
  338. package/dist/index250.js.map +1 -1
  339. package/dist/index251.js +19 -22
  340. package/dist/index251.js.map +1 -1
  341. package/dist/index252.js +10 -30
  342. package/dist/index252.js.map +1 -1
  343. package/dist/index253.js +13 -7
  344. package/dist/index253.js.map +1 -1
  345. package/dist/index254.js +14 -62
  346. package/dist/index254.js.map +1 -1
  347. package/dist/index255.js +24 -10
  348. package/dist/index255.js.map +1 -1
  349. package/dist/index256.js +13 -15
  350. package/dist/index256.js.map +1 -1
  351. package/dist/index257.js +13 -6
  352. package/dist/index257.js.map +1 -1
  353. package/dist/index258.js +12 -19
  354. package/dist/index258.js.map +1 -1
  355. package/dist/index259.js +7 -28
  356. package/dist/index259.js.map +1 -1
  357. package/dist/index26.js +16 -60
  358. package/dist/index26.js.map +1 -1
  359. package/dist/index260.js +9 -47
  360. package/dist/index260.js.map +1 -1
  361. package/dist/index261.js +19 -16
  362. package/dist/index261.js.map +1 -1
  363. package/dist/index262.js +12 -28
  364. package/dist/index262.js.map +1 -1
  365. package/dist/index263.js +21 -20
  366. package/dist/index263.js.map +1 -1
  367. package/dist/index264.js +18 -38
  368. package/dist/index264.js.map +1 -1
  369. package/dist/index265.js +15 -8
  370. package/dist/index265.js.map +1 -1
  371. package/dist/index266.js +32 -12
  372. package/dist/index266.js.map +1 -1
  373. package/dist/index267.js +15 -11
  374. package/dist/index267.js.map +1 -1
  375. package/dist/index268.js +28 -12
  376. package/dist/index268.js.map +1 -1
  377. package/dist/index269.js +8 -13
  378. package/dist/index269.js.map +1 -1
  379. package/dist/index27.js +2924 -58
  380. package/dist/index27.js.map +1 -1
  381. package/dist/index270.js +23 -10
  382. package/dist/index270.js.map +1 -1
  383. package/dist/index271.js +8 -77
  384. package/dist/index271.js.map +1 -1
  385. package/dist/index272.js +5 -174
  386. package/dist/index272.js.map +1 -1
  387. package/dist/index273.js +27 -118
  388. package/dist/index273.js.map +1 -1
  389. package/dist/index274.js +115 -17
  390. package/dist/index274.js.map +1 -1
  391. package/dist/index275.js +17 -82
  392. package/dist/index275.js.map +1 -1
  393. package/dist/index276.js +528 -45
  394. package/dist/index276.js.map +1 -1
  395. package/dist/index277.js +129 -17
  396. package/dist/index277.js.map +1 -1
  397. package/dist/index278.js +137 -20
  398. package/dist/index278.js.map +1 -1
  399. package/dist/index279.js +8 -103
  400. package/dist/index279.js.map +1 -1
  401. package/dist/index28.js +6 -1
  402. package/dist/index28.js.map +1 -0
  403. package/dist/index280.js +21 -60
  404. package/dist/index280.js.map +1 -1
  405. package/dist/index281.js +16 -112
  406. package/dist/index281.js.map +1 -1
  407. package/dist/index282.js +65 -72
  408. package/dist/index282.js.map +1 -1
  409. package/dist/index283.js +72 -117
  410. package/dist/index283.js.map +1 -1
  411. package/dist/index284.js +12 -59
  412. package/dist/index284.js.map +1 -1
  413. package/dist/index285.js +17 -47
  414. package/dist/index285.js.map +1 -1
  415. package/dist/index286.js +69 -146
  416. package/dist/index286.js.map +1 -1
  417. package/dist/index287.js +8 -143
  418. package/dist/index287.js.map +1 -1
  419. package/dist/index288.js +8 -258
  420. package/dist/index288.js.map +1 -1
  421. package/dist/index289.js +7 -244
  422. package/dist/index289.js.map +1 -1
  423. package/dist/index29.js +40 -5
  424. package/dist/index29.js.map +1 -0
  425. package/dist/index290.js +19 -302
  426. package/dist/index290.js.map +1 -1
  427. package/dist/index291.js +11 -8
  428. package/dist/index291.js.map +1 -1
  429. package/dist/index292.js +8 -9
  430. package/dist/index292.js.map +1 -1
  431. package/dist/index293.js +7 -10
  432. package/dist/index293.js.map +1 -1
  433. package/dist/index294.js +548 -9
  434. package/dist/index294.js.map +1 -1
  435. package/dist/index295.js +50 -10
  436. package/dist/index295.js.map +1 -1
  437. package/dist/index296.js +20 -24
  438. package/dist/index296.js.map +1 -1
  439. package/dist/index297.js +8 -13
  440. package/dist/index297.js.map +1 -1
  441. package/dist/index298.js +11 -130
  442. package/dist/index298.js.map +1 -1
  443. package/dist/index299.js +9 -167
  444. package/dist/index299.js.map +1 -1
  445. package/dist/index3.js +181 -6
  446. package/dist/index3.js.map +1 -1
  447. package/dist/index30.js +6 -8
  448. package/dist/index30.js.map +1 -1
  449. package/dist/index300.js +11 -72
  450. package/dist/index300.js.map +1 -1
  451. package/dist/index301.js +14 -112
  452. package/dist/index301.js.map +1 -1
  453. package/dist/index302.js +12 -495
  454. package/dist/index302.js.map +1 -1
  455. package/dist/index303.js +15 -65
  456. package/dist/index303.js.map +1 -1
  457. package/dist/index304.js +7 -7
  458. package/dist/index304.js.map +1 -1
  459. package/dist/index305.js +25 -30
  460. package/dist/index305.js.map +1 -1
  461. package/dist/index306.js +6 -67
  462. package/dist/index306.js.map +1 -1
  463. package/dist/index307.js +58 -155
  464. package/dist/index307.js.map +1 -1
  465. package/dist/index308.js +71 -65
  466. package/dist/index308.js.map +1 -1
  467. package/dist/index309.js +32 -563
  468. package/dist/index309.js.map +1 -1
  469. package/dist/index31.js +128 -9
  470. package/dist/index31.js.map +1 -1
  471. package/dist/index310.js +11 -213
  472. package/dist/index310.js.map +1 -1
  473. package/dist/index311.js +156 -335
  474. package/dist/index311.js.map +1 -1
  475. package/dist/index312.js +110 -271
  476. package/dist/index312.js.map +1 -1
  477. package/dist/index313.js +26 -0
  478. package/dist/index313.js.map +1 -0
  479. package/dist/index314.js +16 -0
  480. package/dist/index314.js.map +1 -0
  481. package/dist/index315.js +31 -0
  482. package/dist/index315.js.map +1 -0
  483. package/dist/index316.js +8 -0
  484. package/dist/index316.js.map +1 -0
  485. package/dist/index317.js +19 -0
  486. package/dist/index317.js.map +1 -0
  487. package/dist/index318.js +32 -0
  488. package/dist/index318.js.map +1 -0
  489. package/dist/index319.js +16 -0
  490. package/dist/index319.js.map +1 -0
  491. package/dist/index32.js +234 -8
  492. package/dist/index32.js.map +1 -1
  493. package/dist/index320.js +10 -0
  494. package/dist/index320.js.map +1 -0
  495. package/dist/index33.js +26 -10
  496. package/dist/index33.js.map +1 -1
  497. package/dist/index34.js +54 -14
  498. package/dist/index34.js.map +1 -1
  499. package/dist/index35.js +24 -8
  500. package/dist/index35.js.map +1 -1
  501. package/dist/index36.js +133 -11
  502. package/dist/index36.js.map +1 -1
  503. package/dist/index37.js +225 -12
  504. package/dist/index37.js.map +1 -1
  505. package/dist/index38.js +94 -16
  506. package/dist/index38.js.map +1 -1
  507. package/dist/index39.js +121 -9
  508. package/dist/index39.js.map +1 -1
  509. package/dist/index4.js +28 -25
  510. package/dist/index4.js.map +1 -1
  511. package/dist/index40.js +8 -9
  512. package/dist/index40.js.map +1 -1
  513. package/dist/index41.js +847 -10
  514. package/dist/index41.js.map +1 -1
  515. package/dist/index42.js +60 -13
  516. package/dist/index42.js.map +1 -1
  517. package/dist/index43.js +10 -11
  518. package/dist/index43.js.map +1 -1
  519. package/dist/index44.js +5 -9
  520. package/dist/index44.js.map +1 -1
  521. package/dist/index45.js +14 -8
  522. package/dist/index45.js.map +1 -1
  523. package/dist/index46.js +21 -14
  524. package/dist/index46.js.map +1 -1
  525. package/dist/index47.js +10 -14
  526. package/dist/index47.js.map +1 -1
  527. package/dist/index48.js +5 -11
  528. package/dist/index48.js.map +1 -1
  529. package/dist/index49.js +26 -7
  530. package/dist/index49.js.map +1 -1
  531. package/dist/index5.js +41 -34
  532. package/dist/index5.js.map +1 -1
  533. package/dist/index50.js +236 -9
  534. package/dist/index50.js.map +1 -1
  535. package/dist/index51.js +9 -9
  536. package/dist/index51.js.map +1 -1
  537. package/dist/index52.js +36 -9
  538. package/dist/index52.js.map +1 -1
  539. package/dist/index53.js +29 -12
  540. package/dist/index53.js.map +1 -1
  541. package/dist/index54.js +10 -16
  542. package/dist/index54.js.map +1 -1
  543. package/dist/index55.js +14 -9
  544. package/dist/index55.js.map +1 -1
  545. package/dist/index56.js +5 -10
  546. package/dist/index56.js.map +1 -1
  547. package/dist/index57.js +5 -10
  548. package/dist/index57.js.map +1 -1
  549. package/dist/index58.js +5 -17
  550. package/dist/index58.js.map +1 -1
  551. package/dist/index59.js +5 -11
  552. package/dist/index59.js.map +1 -1
  553. package/dist/index6.js +469 -42
  554. package/dist/index6.js.map +1 -1
  555. package/dist/index60.js +208 -12
  556. package/dist/index60.js.map +1 -1
  557. package/dist/index61.js +8 -70
  558. package/dist/index61.js.map +1 -1
  559. package/dist/index62.js +10 -10
  560. package/dist/index62.js.map +1 -1
  561. package/dist/index63.js +8 -33
  562. package/dist/index63.js.map +1 -1
  563. package/dist/index64.js +7 -13
  564. package/dist/index64.js.map +1 -1
  565. package/dist/index65.js +50 -18
  566. package/dist/index65.js.map +1 -1
  567. package/dist/index66.js +53 -203
  568. package/dist/index66.js.map +1 -1
  569. package/dist/index67.js +10 -23
  570. package/dist/index67.js.map +1 -1
  571. package/dist/index68.js +17 -19
  572. package/dist/index68.js.map +1 -1
  573. package/dist/index69.js +136 -125
  574. package/dist/index69.js.map +1 -1
  575. package/dist/index7.js +138 -224
  576. package/dist/index7.js.map +1 -1
  577. package/dist/index70.js +13 -21
  578. package/dist/index70.js.map +1 -1
  579. package/dist/index71.js +219 -11
  580. package/dist/index71.js.map +1 -1
  581. package/dist/index72.js +16 -13
  582. package/dist/index72.js.map +1 -1
  583. package/dist/index73.js +49 -16
  584. package/dist/index73.js.map +1 -1
  585. package/dist/index74.js +52 -12
  586. package/dist/index74.js.map +1 -1
  587. package/dist/index75.js +7 -13
  588. package/dist/index75.js.map +1 -1
  589. package/dist/index76.js +8 -7
  590. package/dist/index76.js.map +1 -1
  591. package/dist/index77.js +30 -44
  592. package/dist/index77.js.map +1 -1
  593. package/dist/index78.js +52 -383
  594. package/dist/index78.js.map +1 -1
  595. package/dist/index79.js +11 -41
  596. package/dist/index79.js.map +1 -1
  597. package/dist/index8.js +875 -37
  598. package/dist/index8.js.map +1 -1
  599. package/dist/index80.js +46 -21
  600. package/dist/index80.js.map +1 -1
  601. package/dist/index81.js +8 -60
  602. package/dist/index81.js.map +1 -1
  603. package/dist/index82.js +72 -11
  604. package/dist/index82.js.map +1 -1
  605. package/dist/index83.js +5 -9
  606. package/dist/index83.js.map +1 -1
  607. package/dist/index84.js +367 -9
  608. package/dist/index84.js.map +1 -1
  609. package/dist/index85.js +265 -9
  610. package/dist/index85.js.map +1 -1
  611. package/dist/index86.js +64 -9
  612. package/dist/index86.js.map +1 -1
  613. package/dist/index87.js +50 -10
  614. package/dist/index87.js.map +1 -1
  615. package/dist/index88.js +173 -10
  616. package/dist/index88.js.map +1 -1
  617. package/dist/index89.js +113 -14
  618. package/dist/index89.js.map +1 -1
  619. package/dist/index9.js +8 -33
  620. package/dist/index9.js.map +1 -1
  621. package/dist/index90.js +27 -10
  622. package/dist/index90.js.map +1 -1
  623. package/dist/index91.js +11 -10
  624. package/dist/index91.js.map +1 -1
  625. package/dist/index92.js +7 -8
  626. package/dist/index92.js.map +1 -1
  627. package/dist/index93.js +8 -10
  628. package/dist/index93.js.map +1 -1
  629. package/dist/index94.js +7 -50
  630. package/dist/index94.js.map +1 -1
  631. package/dist/index95.js +469 -108
  632. package/dist/index95.js.map +1 -1
  633. package/dist/index96.js +188 -13
  634. package/dist/index96.js.map +1 -1
  635. package/dist/index97.js +110 -9
  636. package/dist/index97.js.map +1 -1
  637. package/dist/index98.js +265 -9
  638. package/dist/index98.js.map +1 -1
  639. package/dist/index99.js +12 -8
  640. package/dist/index99.js.map +1 -1
  641. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index244.js","names":["Check","ChevronDown","ChevronUp","React","DismissableLayerBranch","createPortal","IMaskInput","IMask","InputMask","Select","SelectContent","SelectItem","SelectTrigger","SelectValue","useIsTouchDevice","cn","imaskAny","HourPickerOption","value","label","disabled","description","ReactNode","pad2","String","padStart","parseTimeInput","raw","trimmed","trim","match","exec","hours","Number","minutes","isFinite","getAcceptedInputSignature","parsed","digits","replace","length","minutePart","slice","hourPart","ParsedTimeInputResult","selectableValue","parseTimeInputWithSelectableOption","options","parsedOption","find","option","isOptionSelectable","timeStringToMinutes","findClosestSelectableOption","targetMinutes","bestOption","bestDiff","POSITIVE_INFINITY","bestMinutes","NEGATIVE_INFINITY","optionMinutes","diff","Math","abs","HourPickerScrollButtonDirection","HourPickerScrollButtonProps","direction","viewportRef","RefObject","HTMLElement","speed","className","HourPickerScrollButton","setDisabled","useState","animationRef","useRef","undefined","lastTimeRef","isScrollingRef","checkScrollability","useCallback","viewport","current","scrollTop","scrollHeight","clientHeight","tolerance","canScrollUp","canScrollDown","hasScrollableContent","shouldDisable","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","canContinue","setTimeout","startScrolling","HourPickerInputProps","id","onChange","onValueUpdate","placeholder","inputClassName","readOnly","open","onOpenChange","triggerTestId","contentTestId","isHydrated","HourPickerInput","openProp","reactId","useId","triggerId","triggerInputRef","HTMLInputElement","setTriggerDraftValueRef","setTriggerDraftValueHandler","handler","highlightedValueRef","keyboardNavigationActiveRef","highlightedValue","setHighlightedValue","containerRef","HTMLDivElement","desktopPopoverRef","desktopContentRef","desktopPopoverPosition","setDesktopPopoverPosition","left","width","uncontrolledOpen","setUncontrolledOpen","setOpen","openRef","input","document","activeElement","focus","preventScroll","updateHighlightedValue","next","markKeyboardNavigation","currentOption","firstEnabled","updateValue","matchingOption","commitValue","ownerDocument","ownerWindow","defaultView","window","handlePointerDown","event","PointerEvent","target","Node","container","contains","popover","handleKeyDown","KeyboardEvent","key","preventDefault","stopPropagation","handleWheel","WheelEvent","deltaY","maxScrollTop","atTop","atBottom","isWheelOverViewport","nextScrollTop","trigger","isActive","observer","IntersectionObserver","entries","entry","isIntersecting","updateDesktopPopoverPosition","rect","getBoundingClientRect","popoverHeight","offsetHeight","viewportWidth","innerWidth","viewportHeight","innerHeight","padding","bottom","overflowBottom","aboveTop","useLayoutEffect","rafId","run","selected","querySelector","targetTop","offsetTop","targetBottom","viewportBottom","all","Array","from","querySelectorAll","lastDisabledBefore","el","isDisabled","hasAttribute","offset","raf","node","map","isChecked","movementX","movementY","body","displayName","HourPickerFieldProps","HourPickerSelectField","t0","$","_c","t1","t2","t3","t4","t5","next_0","t6","t7","t8","t9","t10","t11","t12","_temp","t13","t14","t15","option_0","HourPickerField","props","isTouchDevice","HourPickerMaskedSelectTriggerProps","onCommit","MutableRefObject","inputRef","onDraftValueHandlerChange","HourPickerMaskedSelectTrigger","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","hasTwoDigitHour","some","startsWith","t17","accepted","_mask","nextText","nextDigits","nextSignature","t18","completed","_mask_0","event_0","nextText_0","resolved","closestOption","t19","t20","t21","event_1","currentTarget","t22","event_2","defaultPrevented","shouldReopen","ctrlKey","metaKey","altKey","resolved_0","highlightedOption","option_1","fallbackValue","_temp2","targetMinutes_0","closestOption_0","t23","event_3","shouldSelectAll","element","select","t24","resolved_1","t25","t26","t27","t28","t29","t30","_temp3","_temp4","t31","event_5","event_4","option_2"],"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, _mask, event) => {\n if (!event) {\n return\n }\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"],"mappings":"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"}
1
+ {"version":3,"file":"index244.js","sources":["../../../node_modules/date-fns/setMonth.js"],"sourcesContent":["import { constructFrom } from \"./constructFrom.js\";\nimport { getDaysInMonth } from \"./getDaysInMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMonth} function options.\n */\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month 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 month - The month index to set (0-11)\n * @param options - The options\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport function setMonth(date, month, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const midMonth = constructFrom(options?.in || date, 0);\n midMonth.setFullYear(year, month, 15);\n midMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(midMonth);\n\n // Set the earlier date, allows to wrap Jan 31 to Feb 28\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMonth;\n"],"names":["setMonth","date","month","options","_date","toDate","year","day","midMonth","constructFrom","daysInMonth","getDaysInMonth"],"mappings":";;;AA8BO,SAASA,EAASC,GAAMC,GAAOC,GAAS;AAC7C,QAAMC,IAAQC,EAAOJ,GAAME,GAAS,EAAE,GAChCG,IAAOF,EAAM,YAAW,GACxBG,IAAMH,EAAM,QAAO,GAEnBI,IAAWC,EAA6BR,GAAM,CAAC;AACrD,EAAAO,EAAS,YAAYF,GAAMJ,GAAO,EAAE,GACpCM,EAAS,SAAS,GAAG,GAAG,GAAG,CAAC;AAC5B,QAAME,IAAcC,EAAeH,CAAQ;AAG3C,SAAAJ,EAAM,SAASF,GAAO,KAAK,IAAIK,GAAKG,CAAW,CAAC,GACzCN;AACT;","x_google_ignoreList":[0]}