@rpcbase/ui 0.181.0 → 0.183.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 (618) hide show
  1. package/dist/helpers/index.d.ts +1 -0
  2. package/dist/helpers/index.d.ts.map +1 -1
  3. package/dist/helpers/useScrollPagination.d.ts +23 -0
  4. package/dist/helpers/useScrollPagination.d.ts.map +1 -0
  5. package/dist/helpers/useScrollPagination.test.d.ts +2 -0
  6. package/dist/helpers/useScrollPagination.test.d.ts.map +1 -0
  7. package/dist/index.js +62 -60
  8. package/dist/index.js.map +1 -1
  9. package/dist/index10.js +23 -69
  10. package/dist/index10.js.map +1 -1
  11. package/dist/index100.js +5 -4
  12. package/dist/index100.js.map +1 -1
  13. package/dist/index101.js +3 -3
  14. package/dist/index101.js.map +1 -1
  15. package/dist/index102.js +4 -6
  16. package/dist/index102.js.map +1 -1
  17. package/dist/index103.js +6 -145
  18. package/dist/index103.js.map +1 -1
  19. package/dist/index104.js +144 -38
  20. package/dist/index104.js.map +1 -1
  21. package/dist/index105.js +39 -4
  22. package/dist/index105.js.map +1 -1
  23. package/dist/index106.js +4 -7
  24. package/dist/index106.js.map +1 -1
  25. package/dist/index107.js +6 -12
  26. package/dist/index107.js.map +1 -1
  27. package/dist/index108.js +13 -13
  28. package/dist/index108.js.map +1 -1
  29. package/dist/index109.js +13 -7
  30. package/dist/index109.js.map +1 -1
  31. package/dist/index11.js +62 -544
  32. package/dist/index11.js.map +1 -1
  33. package/dist/index110.js +6 -30
  34. package/dist/index110.js.map +1 -1
  35. package/dist/index111.js +31 -10
  36. package/dist/index111.js.map +1 -1
  37. package/dist/index112.js +10 -10
  38. package/dist/index112.js.map +1 -1
  39. package/dist/index113.js +10 -8
  40. package/dist/index113.js.map +1 -1
  41. package/dist/index114.js +8 -13
  42. package/dist/index114.js.map +1 -1
  43. package/dist/index115.js +13 -101
  44. package/dist/index115.js.map +1 -1
  45. package/dist/index116.js +102 -20
  46. package/dist/index116.js.map +1 -1
  47. package/dist/index117.js +20 -54
  48. package/dist/index117.js.map +1 -1
  49. package/dist/index118.js +51 -70
  50. package/dist/index118.js.map +1 -1
  51. package/dist/index119.js +72 -9
  52. package/dist/index119.js.map +1 -1
  53. package/dist/index12.js +535 -110
  54. package/dist/index12.js.map +1 -1
  55. package/dist/index120.js +9 -20
  56. package/dist/index120.js.map +1 -1
  57. package/dist/index121.js +20 -16
  58. package/dist/index121.js.map +1 -1
  59. package/dist/index122.js +16 -23
  60. package/dist/index122.js.map +1 -1
  61. package/dist/index123.js +23 -6
  62. package/dist/index123.js.map +1 -1
  63. package/dist/index124.js +6 -5
  64. package/dist/index124.js.map +1 -1
  65. package/dist/index125.js +5 -23
  66. package/dist/index125.js.map +1 -1
  67. package/dist/index126.js +24 -35
  68. package/dist/index126.js.map +1 -1
  69. package/dist/index127.js +35 -16
  70. package/dist/index127.js.map +1 -1
  71. package/dist/index128.js +16 -7
  72. package/dist/index128.js.map +1 -1
  73. package/dist/index129.js +6 -4
  74. package/dist/index129.js.map +1 -1
  75. package/dist/index13.js +122 -71
  76. package/dist/index13.js.map +1 -1
  77. package/dist/index130.js +4 -4
  78. package/dist/index130.js.map +1 -1
  79. package/dist/index131.js +4 -4
  80. package/dist/index131.js.map +1 -1
  81. package/dist/index132.js +4 -4
  82. package/dist/index132.js.map +1 -1
  83. package/dist/index133.js +4 -3
  84. package/dist/index133.js.map +1 -1
  85. package/dist/index134.js +3 -6
  86. package/dist/index134.js.map +1 -1
  87. package/dist/index135.js +7 -24
  88. package/dist/index135.js.map +1 -1
  89. package/dist/index136.js +24 -8
  90. package/dist/index136.js.map +1 -1
  91. package/dist/index137.js +7 -6
  92. package/dist/index137.js.map +1 -1
  93. package/dist/index138.js +6 -5
  94. package/dist/index138.js.map +1 -1
  95. package/dist/index139.js +5 -3
  96. package/dist/index139.js.map +1 -1
  97. package/dist/index14.js +61 -717
  98. package/dist/index14.js.map +1 -1
  99. package/dist/index140.js +3 -3
  100. package/dist/index140.js.map +1 -1
  101. package/dist/index141.js +3 -4
  102. package/dist/index141.js.map +1 -1
  103. package/dist/index142.js +4 -3
  104. package/dist/index142.js.map +1 -1
  105. package/dist/index143.js +3 -4
  106. package/dist/index143.js.map +1 -1
  107. package/dist/index144.js +4 -3
  108. package/dist/index144.js.map +1 -1
  109. package/dist/index145.js +3 -3
  110. package/dist/index145.js.map +1 -1
  111. package/dist/index146.js +3 -3
  112. package/dist/index146.js.map +1 -1
  113. package/dist/index147.js +3 -46
  114. package/dist/index147.js.map +1 -1
  115. package/dist/index148.js +2 -2
  116. package/dist/index15.js +727 -18
  117. package/dist/index15.js.map +1 -1
  118. package/dist/index150.js +2 -2
  119. package/dist/index152.js +3 -3
  120. package/dist/index153.js +40 -599
  121. package/dist/index153.js.map +1 -1
  122. package/dist/index154.js +605 -5
  123. package/dist/index154.js.map +1 -1
  124. package/dist/index155.js +5 -68
  125. package/dist/index155.js.map +1 -1
  126. package/dist/index156.js +69 -2
  127. package/dist/index156.js.map +1 -1
  128. package/dist/index157.js +2 -364
  129. package/dist/index157.js.map +1 -1
  130. package/dist/index158.js +303 -201
  131. package/dist/index158.js.map +1 -1
  132. package/dist/index159.js +247 -46
  133. package/dist/index159.js.map +1 -1
  134. package/dist/index16.js +19 -14
  135. package/dist/index16.js.map +1 -1
  136. package/dist/index160.js +56 -42
  137. package/dist/index160.js.map +1 -1
  138. package/dist/index161.js +46 -169
  139. package/dist/index161.js.map +1 -1
  140. package/dist/index162.js +156 -96
  141. package/dist/index162.js.map +1 -1
  142. package/dist/index163.js +109 -24
  143. package/dist/index163.js.map +1 -1
  144. package/dist/index164.js +25 -8
  145. package/dist/index164.js.map +1 -1
  146. package/dist/index165.js +8 -5
  147. package/dist/index165.js.map +1 -1
  148. package/dist/index166.js +4 -5
  149. package/dist/index166.js.map +1 -1
  150. package/dist/index167.js +5 -4
  151. package/dist/index167.js.map +1 -1
  152. package/dist/index168.js +4 -466
  153. package/dist/index168.js.map +1 -1
  154. package/dist/index169.js +420 -139
  155. package/dist/index169.js.map +1 -1
  156. package/dist/index17.js +13 -382
  157. package/dist/index17.js.map +1 -1
  158. package/dist/index170.js +149 -71
  159. package/dist/index170.js.map +1 -1
  160. package/dist/index171.js +74 -229
  161. package/dist/index171.js.map +1 -1
  162. package/dist/index172.js +262 -9
  163. package/dist/index172.js.map +1 -1
  164. package/dist/index173.js +9 -42
  165. package/dist/index173.js.map +1 -1
  166. package/dist/index174.js +42 -4
  167. package/dist/index174.js.map +1 -1
  168. package/dist/index175.js +4 -16
  169. package/dist/index175.js.map +1 -1
  170. package/dist/index176.js +57 -4
  171. package/dist/index176.js.map +1 -1
  172. package/dist/index177.js +8 -5
  173. package/dist/index177.js.map +1 -1
  174. package/dist/index178.js +55 -47
  175. package/dist/index178.js.map +1 -1
  176. package/dist/index179.js +17 -64
  177. package/dist/index179.js.map +1 -1
  178. package/dist/index18.js +363 -695
  179. package/dist/index18.js.map +1 -1
  180. package/dist/index180.js +16 -6
  181. package/dist/index180.js.map +1 -1
  182. package/dist/index181.js +5 -4
  183. package/dist/index181.js.map +1 -1
  184. package/dist/index182.js +5 -7
  185. package/dist/index182.js.map +1 -1
  186. package/dist/index183.js +6 -17
  187. package/dist/index183.js.map +1 -1
  188. package/dist/index184.js +4 -5
  189. package/dist/index184.js.map +1 -1
  190. package/dist/index185.js +7 -5
  191. package/dist/index185.js.map +1 -1
  192. package/dist/index186.js +17 -13
  193. package/dist/index186.js.map +1 -1
  194. package/dist/index187.js +5 -10
  195. package/dist/index187.js.map +1 -1
  196. package/dist/index188.js +5 -14
  197. package/dist/index188.js.map +1 -1
  198. package/dist/index189.js +13 -14
  199. package/dist/index189.js.map +1 -1
  200. package/dist/index19.js +685 -624
  201. package/dist/index19.js.map +1 -1
  202. package/dist/index190.js +10 -5
  203. package/dist/index190.js.map +1 -1
  204. package/dist/index191.js +14 -6
  205. package/dist/index191.js.map +1 -1
  206. package/dist/index192.js +14 -7
  207. package/dist/index192.js.map +1 -1
  208. package/dist/index193.js +5 -6
  209. package/dist/index193.js.map +1 -1
  210. package/dist/index194.js +6 -9
  211. package/dist/index194.js.map +1 -1
  212. package/dist/index195.js +7 -5
  213. package/dist/index195.js.map +1 -1
  214. package/dist/index196.js +6 -5
  215. package/dist/index196.js.map +1 -1
  216. package/dist/index197.js +9 -9
  217. package/dist/index197.js.map +1 -1
  218. package/dist/index198.js +5 -5
  219. package/dist/index198.js.map +1 -1
  220. package/dist/index199.js +5 -5
  221. package/dist/index199.js.map +1 -1
  222. package/dist/index2.js +2 -2
  223. package/dist/index20.js +640 -191
  224. package/dist/index20.js.map +1 -1
  225. package/dist/index200.js +9 -4
  226. package/dist/index200.js.map +1 -1
  227. package/dist/index201.js +5 -11
  228. package/dist/index201.js.map +1 -1
  229. package/dist/index202.js +5 -10
  230. package/dist/index202.js.map +1 -1
  231. package/dist/index203.js +4 -10
  232. package/dist/index203.js.map +1 -1
  233. package/dist/index204.js +11 -11
  234. package/dist/index204.js.map +1 -1
  235. package/dist/index205.js +10 -11
  236. package/dist/index205.js.map +1 -1
  237. package/dist/index206.js +10 -10
  238. package/dist/index206.js.map +1 -1
  239. package/dist/index207.js +11 -7
  240. package/dist/index207.js.map +1 -1
  241. package/dist/index208.js +11 -6
  242. package/dist/index208.js.map +1 -1
  243. package/dist/index209.js +10 -5
  244. package/dist/index209.js.map +1 -1
  245. package/dist/index21.js +209 -5
  246. package/dist/index21.js.map +1 -1
  247. package/dist/index210.js +7 -6
  248. package/dist/index210.js.map +1 -1
  249. package/dist/index211.js +6 -7
  250. package/dist/index211.js.map +1 -1
  251. package/dist/index212.js +5 -6
  252. package/dist/index212.js.map +1 -1
  253. package/dist/index213.js +6 -55
  254. package/dist/index213.js.map +1 -1
  255. package/dist/index214.js +7 -8
  256. package/dist/index214.js.map +1 -1
  257. package/dist/index215.js +6 -19
  258. package/dist/index215.js.map +1 -1
  259. package/dist/index216.js +54 -15
  260. package/dist/index216.js.map +1 -1
  261. package/dist/index217.js +16 -7
  262. package/dist/index217.js.map +1 -1
  263. package/dist/index218.js +7 -10
  264. package/dist/index218.js.map +1 -1
  265. package/dist/index219.js +9 -9
  266. package/dist/index219.js.map +1 -1
  267. package/dist/index22.js +5 -35
  268. package/dist/index22.js.map +1 -1
  269. package/dist/index220.js +10 -21
  270. package/dist/index220.js.map +1 -1
  271. package/dist/index221.js +21 -10
  272. package/dist/index221.js.map +1 -1
  273. package/dist/index222.js +10 -9
  274. package/dist/index222.js.map +1 -1
  275. package/dist/index223.js +6 -6
  276. package/dist/index223.js.map +1 -1
  277. package/dist/index224.js +9 -4
  278. package/dist/index224.js.map +1 -1
  279. package/dist/index225.js +4 -5
  280. package/dist/index225.js.map +1 -1
  281. package/dist/index226.js +5 -16
  282. package/dist/index226.js.map +1 -1
  283. package/dist/index227.js +16 -9
  284. package/dist/index227.js.map +1 -1
  285. package/dist/index228.js +9 -18
  286. package/dist/index228.js.map +1 -1
  287. package/dist/index229.js +15 -12
  288. package/dist/index229.js.map +1 -1
  289. package/dist/index23.js +24 -258
  290. package/dist/index23.js.map +1 -1
  291. package/dist/index230.js +12 -9
  292. package/dist/index230.js.map +1 -1
  293. package/dist/index231.js +12 -29
  294. package/dist/index231.js.map +1 -1
  295. package/dist/index232.js +28 -11
  296. package/dist/index232.js.map +1 -1
  297. package/dist/index233.js +10 -23
  298. package/dist/index233.js.map +1 -1
  299. package/dist/index234.js +25 -5
  300. package/dist/index234.js.map +1 -1
  301. package/dist/index235.js +5 -24
  302. package/dist/index235.js.map +1 -1
  303. package/dist/index236.js +24 -28
  304. package/dist/index236.js.map +1 -1
  305. package/dist/index237.js +29 -5
  306. package/dist/index237.js.map +1 -1
  307. package/dist/index238.js +5 -68
  308. package/dist/index238.js.map +1 -1
  309. package/dist/index239.js +64 -177
  310. package/dist/index239.js.map +1 -1
  311. package/dist/index24.js +254 -166
  312. package/dist/index24.js.map +1 -1
  313. package/dist/index240.js +176 -42
  314. package/dist/index240.js.map +1 -1
  315. package/dist/index241.js +45 -12
  316. package/dist/index241.js.map +1 -1
  317. package/dist/index242.js +13 -154
  318. package/dist/index242.js.map +1 -1
  319. package/dist/index243.js +151 -27
  320. package/dist/index243.js.map +1 -1
  321. package/dist/index244.js +30 -9
  322. package/dist/index244.js.map +1 -1
  323. package/dist/index245.js +9 -47
  324. package/dist/index245.js.map +1 -1
  325. package/dist/index246.js +46 -10
  326. package/dist/index246.js.map +1 -1
  327. package/dist/index247.js +11 -44
  328. package/dist/index247.js.map +1 -1
  329. package/dist/index248.js +40 -91
  330. package/dist/index248.js.map +1 -1
  331. package/dist/index249.js +85 -76
  332. package/dist/index249.js.map +1 -1
  333. package/dist/index25.js +180 -14
  334. package/dist/index25.js.map +1 -1
  335. package/dist/index250.js +69 -88
  336. package/dist/index250.js.map +1 -1
  337. package/dist/index251.js +92 -39
  338. package/dist/index251.js.map +1 -1
  339. package/dist/index252.js +51 -10
  340. package/dist/index252.js.map +1 -1
  341. package/dist/index253.js +10 -36
  342. package/dist/index253.js.map +1 -1
  343. package/dist/index254.js +37 -8
  344. package/dist/index254.js.map +1 -1
  345. package/dist/index255.js +8 -116
  346. package/dist/index255.js.map +1 -1
  347. package/dist/index256.js +115 -16
  348. package/dist/index256.js.map +1 -1
  349. package/dist/index257.js +17 -15
  350. package/dist/index257.js.map +1 -1
  351. package/dist/index258.js +15 -3
  352. package/dist/index258.js.map +1 -1
  353. package/dist/index259.js +3 -36
  354. package/dist/index259.js.map +1 -1
  355. package/dist/index26.js +15 -2763
  356. package/dist/index26.js.map +1 -1
  357. package/dist/index260.js +35 -19
  358. package/dist/index260.js.map +1 -1
  359. package/dist/index261.js +20 -9
  360. package/dist/index261.js.map +1 -1
  361. package/dist/index262.js +8 -7
  362. package/dist/index262.js.map +1 -1
  363. package/dist/index263.js +8 -19
  364. package/dist/index263.js.map +1 -1
  365. package/dist/index264.js +14 -23
  366. package/dist/index264.js.map +1 -1
  367. package/dist/index265.js +26 -14
  368. package/dist/index265.js.map +1 -1
  369. package/dist/index266.js +16 -4
  370. package/dist/index266.js.map +1 -1
  371. package/dist/index267.js +5 -19
  372. package/dist/index267.js.map +1 -1
  373. package/dist/index268.js +19 -13
  374. package/dist/index268.js.map +1 -1
  375. package/dist/index269.js +13 -5
  376. package/dist/index269.js.map +1 -1
  377. package/dist/index27.js +2761 -35
  378. package/dist/index27.js.map +1 -1
  379. package/dist/index270.js +5 -3
  380. package/dist/index270.js.map +1 -1
  381. package/dist/index271.js +3 -24
  382. package/dist/index271.js.map +1 -1
  383. package/dist/index272.js +22 -111
  384. package/dist/index272.js.map +1 -1
  385. package/dist/index273.js +111 -14
  386. package/dist/index273.js.map +1 -1
  387. package/dist/index274.js +14 -523
  388. package/dist/index274.js.map +1 -1
  389. package/dist/index275.js +511 -114
  390. package/dist/index275.js.map +1 -1
  391. package/dist/index276.js +111 -117
  392. package/dist/index276.js.map +1 -1
  393. package/dist/index277.js +133 -20
  394. package/dist/index277.js.map +1 -1
  395. package/dist/index278.js +20 -5
  396. package/dist/index278.js.map +1 -1
  397. package/dist/index279.js +5 -5
  398. package/dist/index279.js.map +1 -1
  399. package/dist/index28.js +37 -3
  400. package/dist/index28.js.map +1 -1
  401. package/dist/index280.js +6 -4
  402. package/dist/index280.js.map +1 -1
  403. package/dist/index281.js +4 -16
  404. package/dist/index281.js.map +1 -1
  405. package/dist/index282.js +14 -7
  406. package/dist/index282.js.map +1 -1
  407. package/dist/index283.js +8 -5
  408. package/dist/index283.js.map +1 -1
  409. package/dist/index284.js +5 -4
  410. package/dist/index284.js.map +1 -1
  411. package/dist/index285.js +4 -545
  412. package/dist/index285.js.map +1 -1
  413. package/dist/index286.js +544 -45
  414. package/dist/index286.js.map +1 -1
  415. package/dist/index287.js +47 -18
  416. package/dist/index287.js.map +1 -1
  417. package/dist/index288.js +17 -6
  418. package/dist/index288.js.map +1 -1
  419. package/dist/index289.js +6 -8
  420. package/dist/index289.js.map +1 -1
  421. package/dist/index29.js +3 -125
  422. package/dist/index29.js.map +1 -1
  423. package/dist/index290.js +8 -7
  424. package/dist/index290.js.map +1 -1
  425. package/dist/index291.js +7 -8
  426. package/dist/index291.js.map +1 -1
  427. package/dist/index292.js +8 -12
  428. package/dist/index292.js.map +1 -1
  429. package/dist/index293.js +12 -9
  430. package/dist/index293.js.map +1 -1
  431. package/dist/index294.js +9 -13
  432. package/dist/index294.js.map +1 -1
  433. package/dist/index295.js +14 -69
  434. package/dist/index295.js.map +1 -1
  435. package/dist/index296.js +68 -8
  436. package/dist/index296.js.map +1 -1
  437. package/dist/index297.js +9 -14
  438. package/dist/index297.js.map +1 -1
  439. package/dist/index298.js +14 -66
  440. package/dist/index298.js.map +1 -1
  441. package/dist/index299.js +65 -64
  442. package/dist/index299.js.map +1 -1
  443. package/dist/index30.js +120 -227
  444. package/dist/index30.js.map +1 -1
  445. package/dist/index300.js +64 -4
  446. package/dist/index300.js.map +1 -1
  447. package/dist/index301.js +5 -56
  448. package/dist/index301.js.map +1 -1
  449. package/dist/index302.js +54 -66
  450. package/dist/index302.js.map +1 -1
  451. package/dist/index303.js +67 -30
  452. package/dist/index303.js.map +1 -1
  453. package/dist/index304.js +31 -9
  454. package/dist/index304.js.map +1 -1
  455. package/dist/index305.js +9 -153
  456. package/dist/index305.js.map +1 -1
  457. package/dist/index306.js +142 -97
  458. package/dist/index306.js.map +1 -1
  459. package/dist/index307.js +108 -4
  460. package/dist/index307.js.map +1 -1
  461. package/dist/index308.js +3 -22
  462. package/dist/index308.js.map +1 -1
  463. package/dist/index309.js +22 -15
  464. package/dist/index309.js.map +1 -1
  465. package/dist/index31.js +229 -21
  466. package/dist/index31.js.map +1 -1
  467. package/dist/index310.js +14 -27
  468. package/dist/index310.js.map +1 -1
  469. package/dist/index311.js +27 -11
  470. package/dist/index311.js.map +1 -1
  471. package/dist/index312.js +11 -5
  472. package/dist/index312.js.map +1 -1
  473. package/dist/index313.js +6 -12
  474. package/dist/index313.js.map +1 -1
  475. package/dist/index314.js +20 -25
  476. package/dist/index314.js.map +1 -1
  477. package/dist/index315.js +12 -4
  478. package/dist/index315.js.map +1 -1
  479. package/dist/index316.js +25 -20
  480. package/dist/index316.js.map +1 -1
  481. package/dist/index317.js +8 -0
  482. package/dist/index317.js.map +1 -0
  483. package/dist/index32.js +23 -50
  484. package/dist/index32.js.map +1 -1
  485. package/dist/index33.js +50 -2640
  486. package/dist/index33.js.map +1 -1
  487. package/dist/index34.js +2598 -351
  488. package/dist/index34.js.map +1 -1
  489. package/dist/index35.js +375 -214
  490. package/dist/index35.js.map +1 -1
  491. package/dist/index36.js +230 -19
  492. package/dist/index36.js.map +1 -1
  493. package/dist/index37.js +18 -138
  494. package/dist/index37.js.map +1 -1
  495. package/dist/index38.js +125 -170
  496. package/dist/index38.js.map +1 -1
  497. package/dist/index39.js +174 -64
  498. package/dist/index39.js.map +1 -1
  499. package/dist/index40.js +72 -94
  500. package/dist/index40.js.map +1 -1
  501. package/dist/index41.js +98 -5
  502. package/dist/index41.js.map +1 -1
  503. package/dist/index42.js +5 -843
  504. package/dist/index42.js.map +1 -1
  505. package/dist/index43.js +832 -54
  506. package/dist/index43.js.map +1 -1
  507. package/dist/index44.js +66 -8
  508. package/dist/index44.js.map +1 -1
  509. package/dist/index45.js +8 -2
  510. package/dist/index45.js.map +1 -1
  511. package/dist/index46.js +2 -24
  512. package/dist/index46.js.map +1 -1
  513. package/dist/index47.js +22 -232
  514. package/dist/index47.js.map +1 -1
  515. package/dist/index48.js +233 -6
  516. package/dist/index48.js.map +1 -1
  517. package/dist/index49.js +203 -32
  518. package/dist/index49.js.map +1 -1
  519. package/dist/index5.js +1 -1
  520. package/dist/index50.js +3 -26
  521. package/dist/index50.js.map +1 -1
  522. package/dist/index51.js +6 -7
  523. package/dist/index51.js.map +1 -1
  524. package/dist/index52.js +47 -11
  525. package/dist/index52.js.map +1 -1
  526. package/dist/index53.js +26 -204
  527. package/dist/index53.js.map +1 -1
  528. package/dist/index54.js +50 -3
  529. package/dist/index54.js.map +1 -1
  530. package/dist/index55.js +7 -47
  531. package/dist/index55.js.map +1 -1
  532. package/dist/index56.js +12 -48
  533. package/dist/index56.js.map +1 -1
  534. package/dist/index57.js +133 -7
  535. package/dist/index57.js.map +1 -1
  536. package/dist/index58.js +10 -14
  537. package/dist/index58.js.map +1 -1
  538. package/dist/index59.js +210 -127
  539. package/dist/index59.js.map +1 -1
  540. package/dist/index6.js +138 -25
  541. package/dist/index6.js.map +1 -1
  542. package/dist/index60.js +12 -10
  543. package/dist/index60.js.map +1 -1
  544. package/dist/index61.js +32 -215
  545. package/dist/index61.js.map +1 -1
  546. package/dist/index62.js +47 -13
  547. package/dist/index62.js.map +1 -1
  548. package/dist/index63.js +7 -46
  549. package/dist/index63.js.map +1 -1
  550. package/dist/index67.js +2 -2
  551. package/dist/index69.js +3 -3
  552. package/dist/index7.js +26 -29
  553. package/dist/index7.js.map +1 -1
  554. package/dist/index70.js +11 -53
  555. package/dist/index70.js.map +1 -1
  556. package/dist/index71.js +54 -2
  557. package/dist/index71.js.map +1 -1
  558. package/dist/index72.js +6 -2
  559. package/dist/index72.js.map +1 -1
  560. package/dist/index73.js +7 -5
  561. package/dist/index73.js.map +1 -1
  562. package/dist/index74.js +4 -6
  563. package/dist/index74.js.map +1 -1
  564. package/dist/index75.js +2 -6
  565. package/dist/index75.js.map +1 -1
  566. package/dist/index76.js +2 -52
  567. package/dist/index76.js.map +1 -1
  568. package/dist/index77.js +52 -5
  569. package/dist/index77.js.map +1 -1
  570. package/dist/index78.js +4 -4
  571. package/dist/index78.js.map +1 -1
  572. package/dist/index79.js +4 -15
  573. package/dist/index79.js.map +1 -1
  574. package/dist/index8.js +28 -222
  575. package/dist/index8.js.map +1 -1
  576. package/dist/index80.js +15 -5
  577. package/dist/index80.js.map +1 -1
  578. package/dist/index81.js +5 -7
  579. package/dist/index81.js.map +1 -1
  580. package/dist/index82.js +6 -15
  581. package/dist/index82.js.map +1 -1
  582. package/dist/index83.js +16 -4
  583. package/dist/index83.js.map +1 -1
  584. package/dist/index84.js +1 -1
  585. package/dist/index84.js.map +1 -1
  586. package/dist/index85.js +4 -5
  587. package/dist/index85.js.map +1 -1
  588. package/dist/index86.js +4 -4
  589. package/dist/index86.js.map +1 -1
  590. package/dist/index87.js +5 -4
  591. package/dist/index87.js.map +1 -1
  592. package/dist/index88.js +2 -2
  593. package/dist/index88.js.map +1 -1
  594. package/dist/index89.js +3 -5
  595. package/dist/index89.js.map +1 -1
  596. package/dist/index9.js +226 -23
  597. package/dist/index9.js.map +1 -1
  598. package/dist/index90.js +6 -24
  599. package/dist/index90.js.map +1 -1
  600. package/dist/index91.js +24 -6
  601. package/dist/index91.js.map +1 -1
  602. package/dist/index92.js +6 -4
  603. package/dist/index92.js.map +1 -1
  604. package/dist/index93.js +3 -5
  605. package/dist/index93.js.map +1 -1
  606. package/dist/index94.js +6 -5
  607. package/dist/index94.js.map +1 -1
  608. package/dist/index95.js +5 -4
  609. package/dist/index95.js.map +1 -1
  610. package/dist/index96.js +3 -4
  611. package/dist/index96.js.map +1 -1
  612. package/dist/index97.js +5 -4
  613. package/dist/index97.js.map +1 -1
  614. package/dist/index98.js +4 -8
  615. package/dist/index98.js.map +1 -1
  616. package/dist/index99.js +8 -5
  617. package/dist/index99.js.map +1 -1
  618. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index14.js","sources":["../src/components/FilesUploadField/index.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport type { DragEndEvent } from \"@dnd-kit/core\"\nimport { DndContext, DragOverlay, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors } from \"@dnd-kit/core\"\nimport {\n SortableContext,\n arrayMove,\n rectSortingStrategy,\n sortableKeyboardCoordinates,\n useSortable,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport { Loader2, Maximize2, Plus, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nexport type FilesUploadFieldFile = {\n id: string\n url: string\n alt?: string\n uploadKey?: string\n}\n\nconst TENANT_ID_QUERY_PARAM = \"rb-tenant-id\"\n\ntype FileUploadsInitResponse = {\n ok: boolean\n error?: string\n uploadId?: string\n uploadKey?: string\n chunkSize?: number\n chunksTotal?: number\n}\n\ntype FileUploadsStatusResponse = {\n ok: boolean\n error?: string\n status?: \"uploading\" | \"assembling\" | \"done\" | \"error\"\n chunkSize?: number\n chunksTotal?: number\n received?: number[]\n fileId?: string\n}\n\ntype FileUploadsCompleteResponse = {\n ok: boolean\n error?: string\n fileId?: string\n}\n\nconst sha256Hex = async (data: ArrayBuffer): Promise<string | null> => {\n if (typeof crypto === \"undefined\" || typeof crypto.subtle === \"undefined\") return null\n try {\n const digest = await crypto.subtle.digest(\"SHA-256\", data)\n const bytes = Array.from(new Uint8Array(digest))\n return bytes.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\")\n } catch {\n return null\n }\n}\n\nconst readTenantIdFromLocation = (): string | null => {\n if (typeof window === \"undefined\") return null\n const raw = new URLSearchParams(window.location.search || \"\").get(TENANT_ID_QUERY_PARAM)\n const normalized = raw?.trim() ?? \"\"\n return normalized ? normalized : null\n}\n\nconst withTenant = (path: string, tenantId: string | null): string => {\n if (!tenantId) return path\n const sep = path.includes(\"?\") ? \"&\" : \"?\"\n return `${path}${sep}${TENANT_ID_QUERY_PARAM}=${encodeURIComponent(tenantId)}`\n}\n\nconst postJson = async <T,>(\n url: string,\n body: unknown,\n options?: { headers?: Record<string, string>; signal?: AbortSignal },\n): Promise<{ ok: boolean; status: number; data: T }> => {\n const response = await fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...(options?.headers ?? {}) },\n credentials: \"include\",\n body: JSON.stringify(body),\n signal: options?.signal,\n })\n\n const payload = await response.json().catch(() => ({}))\n return { ok: response.ok, status: response.status, data: payload as T }\n}\n\nconst getJson = async <T,>(\n url: string,\n options?: { headers?: Record<string, string>; signal?: AbortSignal },\n): Promise<{ ok: boolean; status: number; data: T }> => {\n const response = await fetch(url, {\n credentials: \"include\",\n headers: options?.headers,\n signal: options?.signal,\n })\n const payload = await response.json().catch(() => ({}))\n return { ok: response.ok, status: response.status, data: payload as T }\n}\n\nconst putOctetStream = async ({\n url,\n body,\n sha256,\n uploadKey,\n signal,\n}: {\n url: string\n body: ArrayBuffer\n sha256?: string\n uploadKey?: string\n signal?: AbortSignal\n}): Promise<{ ok: boolean; status: number }> => {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/octet-stream\",\n }\n if (sha256) headers[\"X-Chunk-SHA256\"] = sha256\n if (uploadKey) headers[\"X-Upload-Key\"] = uploadKey\n\n const response = await fetch(url, {\n method: \"PUT\",\n credentials: \"include\",\n headers,\n body,\n signal,\n })\n\n return { ok: response.ok, status: response.status }\n}\n\nconst defaultUpload: UploadHandler = async (file, onProgress, options) => {\n const tenantId = readTenantIdFromLocation()\n\n const initRes = await postJson<FileUploadsInitResponse>(\n withTenant(\"/api/rb/file-uploads\", tenantId),\n {\n filename: file.name,\n mimeType: file.type || \"application/octet-stream\",\n ...(typeof options?.isPublic === \"boolean\" ? { isPublic: options.isPublic } : {}),\n totalSize: file.size,\n },\n { signal: options?.signal },\n )\n\n if (!initRes.ok || !(initRes.data as any)?.ok) {\n throw new Error((initRes.data as any)?.error ?? `Init failed (${initRes.status})`)\n }\n\n const uploadId = String((initRes.data as any)?.uploadId ?? \"\")\n const uploadKey = typeof (initRes.data as any)?.uploadKey === \"string\" ? String((initRes.data as any).uploadKey) : null\n const chunkSize = Number((initRes.data as any)?.chunkSize ?? 0)\n const chunksTotal = Number((initRes.data as any)?.chunksTotal ?? 0)\n\n if (!uploadId || !chunkSize || !chunksTotal) {\n throw new Error(\"Upload init missing required fields\")\n }\n\n const doUploadChunk = async (index: number) => {\n const start = index * chunkSize\n const end = Math.min(file.size, start + chunkSize)\n const slice = file.slice(start, end)\n const body = await slice.arrayBuffer()\n const sha = await sha256Hex(body)\n\n const res = await putOctetStream({\n url: withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/chunks/${index}`, tenantId),\n body,\n sha256: sha ?? undefined,\n uploadKey: uploadKey ?? undefined,\n signal: options?.signal,\n })\n\n if (res.status === 204) return\n throw new Error(`Chunk ${index} failed (${res.status})`)\n }\n\n const uploadChunks = async (indices: number[], alreadyUploaded = 0) => {\n let uploaded = alreadyUploaded\n\n for (const idx of indices) {\n await doUploadChunk(idx)\n uploaded += 1\n const pct = Math.min(99, Math.floor((uploaded / chunksTotal) * 99))\n onProgress(pct)\n }\n }\n\n const allIndices = Array.from({ length: chunksTotal }, (_, i) => i)\n await uploadChunks(allIndices, 0)\n\n const complete = async (): Promise<string> => {\n const completeRes = await postJson<FileUploadsCompleteResponse>(\n withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/complete`, tenantId),\n {},\n { headers: uploadKey ? { \"X-Upload-Key\": uploadKey } : undefined, signal: options?.signal },\n )\n\n if (completeRes.ok && (completeRes.data as any)?.ok) {\n const fileId = String((completeRes.data as any)?.fileId ?? \"\")\n if (!fileId) throw new Error(\"Upload completed without fileId\")\n return fileId\n }\n\n const code = String((completeRes.data as any)?.error ?? \"\")\n if (completeRes.status !== 409 || code !== \"missing_chunks\") {\n throw new Error(code || `Complete failed (${completeRes.status})`)\n }\n\n const statusRes = await getJson<FileUploadsStatusResponse>(\n withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/status`, tenantId),\n { headers: uploadKey ? { \"X-Upload-Key\": uploadKey } : undefined, signal: options?.signal },\n )\n\n if (!statusRes.ok || !(statusRes.data as any)?.ok) {\n throw new Error((statusRes.data as any)?.error ?? `Status failed (${statusRes.status})`)\n }\n\n const received = Array.isArray((statusRes.data as any)?.received) ? (statusRes.data as any).received : []\n const present = new Set<number>(received)\n const missing: number[] = []\n for (let i = 0; i < chunksTotal; i += 1) {\n if (!present.has(i)) missing.push(i)\n }\n\n if (!missing.length) {\n throw new Error(\"missing_chunks\")\n }\n\n await uploadChunks(missing, present.size)\n return complete()\n }\n\n const fileId = await complete()\n\n onProgress(100)\n return {\n id: fileId,\n url: withTenant(`/api/rb/files/${encodeURIComponent(fileId)}`, tenantId),\n alt: file.name,\n ...(uploadKey ? { uploadKey } : {}),\n }\n}\n\nfunction SortableTile({\n item,\n isHovered,\n enableImagePreview,\n renderItem,\n onHoverEnter,\n onHoverLeave,\n onRemove,\n onRetry,\n startFullscreen,\n isUploading,\n isError,\n tileClasses,\n disabled,\n isDraggingExternal,\n removeButtonAriaLabel,\n}: {\n item: FileWithState\n isHovered: boolean\n enableImagePreview: boolean\n renderItem?: (props: FilesUploadFieldRenderItemProps) => ReactNode\n onHoverEnter: () => void\n onHoverLeave: () => void\n onRemove: (id: string) => void\n onRetry: (id: string) => void\n startFullscreen: (id: string) => void\n isUploading: boolean\n isError: boolean\n tileClasses: string\n disabled: boolean\n isDraggingExternal: boolean\n removeButtonAriaLabel: string\n}) {\n const { setNodeRef, attributes, listeners, transform, transition, isDragging } = useSortable({\n id: item.id,\n disabled,\n })\n\n const tileRef = useRef<HTMLDivElement | null>(null)\n const previewRef = useRef<HTMLDivElement | null>(null)\n const [previewPosition, setPreviewPosition] = useState<{ left: number; top: number } | null>(null)\n\n const updatePreviewPosition = () => {\n const el = tileRef.current\n if (!el) return\n const rect = el.getBoundingClientRect()\n setPreviewPosition({ left: rect.left + rect.width / 2, top: rect.top - 10 })\n }\n\n useEffect(() => {\n if (!enableImagePreview || !isHovered) {\n setPreviewPosition(null)\n return\n }\n\n updatePreviewPosition()\n\n let raf = 0\n const schedule = () => {\n if (raf) cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = 0\n updatePreviewPosition()\n })\n }\n\n window.addEventListener(\"resize\", schedule)\n window.addEventListener(\"scroll\", schedule, true)\n return () => {\n if (raf) cancelAnimationFrame(raf)\n window.removeEventListener(\"resize\", schedule)\n window.removeEventListener(\"scroll\", schedule, true)\n }\n }, [enableImagePreview, isHovered])\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n const tileContent = renderItem\n ? renderItem({\n file: { id: item.id, url: item.url, alt: item.alt, uploadKey: item.uploadKey },\n previewUrl: item.previewUrl,\n status: item.status,\n progress: item.progress,\n fileName: item.fileName,\n })\n : enableImagePreview\n ? (\n <img\n src={item.previewUrl}\n alt={item.alt ?? \"Uploaded file\"}\n className={cn(\n \"size-full rounded-md object-cover\",\n isUploading && \"opacity-75\",\n isError && \"grayscale\"\n )}\n />\n )\n : (\n <div className=\"flex size-full items-center justify-center rounded-md bg-slate-100 px-2 text-center text-[10px] font-medium text-slate-700 dark:bg-slate-800 dark:text-slate-200\">\n <span className=\"w-full truncate\">{item.fileName ?? item.alt ?? \"Fichier\"}</span>\n </div>\n )\n\n return (\n <div\n ref={(node) => {\n tileRef.current = node\n setNodeRef(node)\n }}\n style={style}\n className={cn(\n tileClasses,\n isDragging && \"z-20 ring-2 ring-primary shadow-xl\",\n isDraggingExternal && \"opacity-0\",\n !disabled && \"cursor-grab active:cursor-grabbing\",\n isDragging && \"cursor-grabbing\",\n disabled && \"cursor-default\"\n )}\n onMouseEnter={() => {\n updatePreviewPosition()\n onHoverEnter()\n }}\n onMouseLeave={(event) => {\n const next = event.relatedTarget\n if (next instanceof Node && previewRef.current?.contains(next)) return\n onHoverLeave()\n }}\n {...attributes}\n {...listeners}\n >\n {tileContent}\n\n <button\n type=\"button\"\n onClick={() => {\n if (disabled) return\n onRemove(item.id)\n }}\n disabled={disabled}\n className=\"absolute right-1 top-1 inline-flex size-6 items-center justify-center rounded-full bg-white text-slate-700 shadow-sm transition hover:scale-105 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:bg-slate-900 dark:text-slate-200\"\n aria-label={removeButtonAriaLabel}\n >\n <X className=\"h-4 w-4\" />\n </button>\n\n {enableImagePreview &&\n isHovered &&\n previewPosition &&\n (() => {\n const preview = (\n <div\n ref={previewRef}\n className=\"fixed z-[60] w-52 -translate-x-1/2 -translate-y-full rounded-xl border border-slate-200 bg-white/95 p-3 shadow-2xl backdrop-blur dark:border-slate-700 dark:bg-slate-900/95\"\n style={{ left: previewPosition.left, top: previewPosition.top }}\n onMouseEnter={() => {\n updatePreviewPosition()\n onHoverEnter()\n }}\n onMouseLeave={(event) => {\n const next = event.relatedTarget\n if (next instanceof Node && tileRef.current?.contains(next)) return\n onHoverLeave()\n }}\n >\n <div className=\"relative overflow-hidden rounded-lg\">\n <img src={item.url} alt={item.alt ?? \"Preview\"} className=\"h-40 w-full object-cover\" />\n <button\n type=\"button\"\n onClick={() => startFullscreen(item.id)}\n className=\"absolute right-2 top-2 inline-flex items-center justify-center rounded-full bg-black/70 p-2 text-white transition hover:bg-black\"\n aria-label=\"Plein écran\"\n >\n <Maximize2 className=\"h-3.5 w-3.5\" />\n </button>\n </div>\n </div>\n )\n\n if (typeof document === \"undefined\") return preview\n return createPortal(preview, document.body)\n })()}\n\n {isUploading && (\n <div className=\"absolute inset-0 z-20 flex flex-col items-center justify-center gap-2 rounded-lg bg-black/40 text-white\">\n <Loader2 className=\"h-5 w-5 animate-spin\" />\n <div className=\"h-1.5 w-5/6 rounded-full bg-white/20\">\n <div className=\"h-full rounded-full bg-primary\" style={{ width: `${item.progress}%` }} />\n </div>\n <div className=\"text-xs font-semibold\">{item.progress}%</div>\n </div>\n )}\n\n {isError && (\n <div className=\"absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 rounded-lg bg-red-600/70 text-white\">\n <div className=\"text-xs font-semibold\">Échec</div>\n <button\n type=\"button\"\n onClick={() => onRetry(item.id)}\n disabled={disabled}\n className=\"rounded-full bg-white/90 px-3 py-1 text-xs font-semibold text-red-700 shadow-sm transition hover:bg-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n >\n Réessayer\n </button>\n </div>\n )}\n </div>\n )\n}\n\ntype UploadResult = FilesUploadFieldFile | Promise<FilesUploadFieldFile>\n\ntype UploadHandler = (\n file: File,\n onProgress: (progress: number) => void,\n options?: { signal?: AbortSignal; isPublic?: boolean },\n) => UploadResult\n\nexport type FilesUploadFieldRenderItemProps = {\n file: FilesUploadFieldFile\n previewUrl: string\n status: \"uploaded\" | \"uploading\" | \"error\"\n progress: number\n fileName?: string\n}\n\nexport type FilesUploadFieldProps = {\n initialFiles?: FilesUploadFieldFile[]\n onChange?: (files: FilesUploadFieldFile[]) => void\n upload?: UploadHandler\n uploadIsPublic?: boolean\n disabled?: boolean\n onUploadingChange?: (isUploading: boolean) => void\n accept?: string | string[]\n renderHeader?: () => ReactNode\n renderItem?: (props: FilesUploadFieldRenderItemProps) => ReactNode\n addButtonAriaLabel?: string\n removeButtonAriaLabel?: string\n}\n\ntype FileWithState = FilesUploadFieldFile & {\n previewUrl: string\n status: \"uploaded\" | \"uploading\" | \"error\"\n progress: number\n fileName?: string\n}\n\nfunction toPreview(file: File) {\n return URL.createObjectURL(file)\n}\n\nexport function FilesUploadField({\n initialFiles = [],\n onChange,\n upload = defaultUpload,\n uploadIsPublic = false,\n disabled = false,\n onUploadingChange,\n accept,\n renderHeader,\n renderItem,\n addButtonAriaLabel = \"Ajouter un fichier\",\n removeButtonAriaLabel = \"Supprimer le fichier\",\n}: FilesUploadFieldProps) {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const [images, setImages] = useState<FileWithState[]>(() =>\n initialFiles.map((file) => ({ ...file, previewUrl: file.url, status: \"uploaded\", progress: 100 }))\n )\n const [dragActive, setDragActive] = useState(false)\n const [fullscreenIndex, setFullscreenIndex] = useState<number | null>(null)\n const [hoveredId, setHoveredId] = useState<string | null>(null)\n const [activeId, setActiveId] = useState<string | null>(null)\n const hoverTimeoutRef = useRef<number | null>(null)\n const skipNotifyRef = useRef(true)\n const imagesRef = useRef<FileWithState[]>([])\n const lastInitialImagesRef = useRef<FilesUploadFieldFile[]>(initialFiles)\n const onChangeRef = useRef(onChange)\n const onUploadingChangeRef = useRef(onUploadingChange)\n const replacedIdRef = useRef<Map<string, string>>(new Map())\n const fileRef = useRef<Map<string, File>>(new Map())\n const abortRef = useRef<Map<string, AbortController>>(new Map())\n const objectUrlRef = useRef<Map<string, string>>(new Map())\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 6 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates })\n )\n\n useEffect(() => {\n return () => {\n for (const controller of abortRef.current.values()) {\n try {\n controller.abort()\n } catch {\n //\n }\n }\n abortRef.current.clear()\n fileRef.current.clear()\n replacedIdRef.current.clear()\n\n for (const url of objectUrlRef.current.values()) {\n if (typeof URL !== \"undefined\") {\n try {\n URL.revokeObjectURL(url)\n } catch {\n //\n }\n }\n }\n objectUrlRef.current.clear()\n }\n }, [])\n\n useEffect(() => {\n if (typeof document === \"undefined\") return\n if (activeId) {\n document.body.style.cursor = \"grabbing\"\n return () => {\n document.body.style.cursor = \"\"\n }\n }\n document.body.style.cursor = \"\"\n }, [activeId])\n\n useEffect(() => {\n imagesRef.current = images\n }, [images])\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\n\n useEffect(() => {\n onUploadingChangeRef.current = onUploadingChange\n }, [onUploadingChange])\n\n useEffect(() => {\n const previous = lastInitialImagesRef.current\n const samePropValue =\n previous.length === initialFiles.length &&\n previous.every((img, index) => {\n const next = initialFiles[index]\n return next && img.id === next.id && img.url === next.url && img.alt === next.alt\n })\n\n if (samePropValue) return\n lastInitialImagesRef.current = initialFiles\n\n const prepared: FileWithState[] = initialFiles.map((img) => ({\n ...img,\n previewUrl: img.url,\n status: \"uploaded\",\n progress: 100,\n }))\n\n const preparedRawIds = new Set(prepared.map((img) => img.id))\n for (const [tempId, finalId] of replacedIdRef.current.entries()) {\n if (preparedRawIds.has(finalId)) {\n replacedIdRef.current.delete(tempId)\n }\n }\n\n const currentIds = new Set(imagesRef.current.map((img) => img.id))\n const hasStaleInitialImages = prepared.some((img) => {\n const mapped = replacedIdRef.current.get(img.id)\n return mapped ? currentIds.has(mapped) : false\n })\n if (hasStaleInitialImages) return\n\n const preparedIds = new Set(prepared.map((img) => img.id))\n for (const img of imagesRef.current) {\n if (preparedIds.has(img.id)) continue\n\n const controller = abortRef.current.get(img.id)\n if (controller) {\n abortRef.current.delete(img.id)\n try {\n controller.abort()\n } catch {\n //\n }\n }\n\n fileRef.current.delete(img.id)\n\n const tempUrl = objectUrlRef.current.get(img.id)\n if (tempUrl) {\n objectUrlRef.current.delete(img.id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n }\n\n setImages((current) => {\n const sameLength = current.length === prepared.length\n const sameContent =\n sameLength &&\n current.every((item, index) => {\n const next = prepared[index]\n return next && item.id === next.id && item.url === next.url && item.alt === next.alt && item.uploadKey === next.uploadKey\n })\n\n if (sameContent) return current\n\n skipNotifyRef.current = true\n return prepared\n })\n }, [initialFiles])\n\n useEffect(() => {\n if (skipNotifyRef.current) {\n skipNotifyRef.current = false\n return\n }\n\n onChangeRef.current?.(images.map(({ id, url, alt, uploadKey }) => ({ id, url, alt, uploadKey })))\n }, [images])\n\n useEffect(() => {\n onUploadingChangeRef.current?.(images.some((img) => img.status === \"uploading\"))\n }, [images])\n\n useEffect(() => {\n if (fullscreenIndex === null) {\n return\n }\n\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setFullscreenIndex(null)\n return\n }\n\n if (event.key === \"ArrowRight\") {\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current + 1) % images.length\n })\n return\n }\n\n if (event.key === \"ArrowLeft\") {\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current - 1 + images.length) % images.length\n })\n }\n }\n\n window.addEventListener(\"keydown\", handleKey)\n return () => window.removeEventListener(\"keydown\", handleKey)\n }, [fullscreenIndex, images.length])\n\n const handleFiles = async (files: FileList | File[]) => {\n if (disabled) return\n const list = Array.from(files)\n\n const uploads = list.map((file) => {\n const previewUrl = toPreview(file)\n const tempId = crypto.randomUUID()\n\n objectUrlRef.current.set(tempId, previewUrl)\n fileRef.current.set(tempId, file)\n\n const next: FileWithState = {\n id: tempId,\n url: previewUrl,\n previewUrl,\n alt: file.name,\n status: \"uploading\",\n progress: 0,\n fileName: file.name,\n }\n\n setImages((current) => [...current, next])\n\n const updateProgress = (value: number) => {\n const nextValue = Math.max(0, Math.min(99, value))\n setImages((current) =>\n current.map((item) =>\n item.id === tempId ? { ...item, progress: nextValue, status: \"uploading\" } : item\n )\n )\n }\n\n const finalize = async () => {\n const controller = new AbortController()\n abortRef.current.set(tempId, controller)\n\n try {\n const result = await upload(file, updateProgress, { signal: controller.signal, isPublic: uploadIsPublic })\n replacedIdRef.current.set(tempId, result.id)\n\n const tempUrl = objectUrlRef.current.get(tempId)\n if (tempUrl) {\n objectUrlRef.current.delete(tempId)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n abortRef.current.delete(tempId)\n fileRef.current.delete(tempId)\n\n setImages((current) =>\n current.map((item) =>\n item.id === tempId\n ? {\n ...item,\n ...result,\n previewUrl: result.url,\n url: result.url,\n status: \"uploaded\",\n progress: 100,\n }\n : item\n )\n )\n } catch (error) {\n abortRef.current.delete(tempId)\n if (controller.signal.aborted) {\n fileRef.current.delete(tempId)\n const tempUrl = objectUrlRef.current.get(tempId)\n if (tempUrl) {\n objectUrlRef.current.delete(tempId)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n return\n }\n console.error(\"Upload failed\", error)\n setImages((current) =>\n current.map((item) =>\n item.id === tempId\n ? { ...item, status: \"error\", progress: Math.max(0, Math.min(99, item.progress)) }\n : item\n )\n )\n }\n }\n\n return finalize()\n })\n\n await Promise.allSettled(uploads)\n }\n\n const onFileInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!event.target.files) return\n void handleFiles(event.target.files)\n event.target.value = \"\"\n }\n\n const openFileDialog = () => {\n if (disabled) return\n fileInputRef.current?.click()\n }\n\n const removeImage = (id: string) => {\n const controller = abortRef.current.get(id)\n if (controller) {\n abortRef.current.delete(id)\n try {\n controller.abort()\n } catch {\n //\n }\n }\n\n fileRef.current.delete(id)\n\n const tempUrl = objectUrlRef.current.get(id)\n if (tempUrl) {\n objectUrlRef.current.delete(id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n setImages((current) => current.filter((item) => item.id !== id))\n }\n\n const retryUpload = (id: string) => {\n if (disabled) return\n const file = fileRef.current.get(id)\n if (!file) return\n\n const existingController = abortRef.current.get(id)\n if (existingController) {\n try {\n existingController.abort()\n } catch {\n //\n }\n abortRef.current.delete(id)\n }\n\n setImages((current) =>\n current.map((item) => (item.id === id ? { ...item, status: \"uploading\", progress: 0 } : item))\n )\n\n const updateProgress = (value: number) => {\n const nextValue = Math.max(0, Math.min(99, value))\n setImages((current) =>\n current.map((item) => (item.id === id ? { ...item, progress: nextValue, status: \"uploading\" } : item))\n )\n }\n\n const controller = new AbortController()\n abortRef.current.set(id, controller)\n\n void (async () => {\n try {\n const result = await upload(file, updateProgress, { signal: controller.signal, isPublic: uploadIsPublic })\n replacedIdRef.current.set(id, result.id)\n\n const tempUrl = objectUrlRef.current.get(id)\n if (tempUrl) {\n objectUrlRef.current.delete(id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n abortRef.current.delete(id)\n fileRef.current.delete(id)\n\n setImages((current) =>\n current.map((item) =>\n item.id === id\n ? { ...item, ...result, previewUrl: result.url, url: result.url, status: \"uploaded\", progress: 100 }\n : item\n )\n )\n } catch (error) {\n abortRef.current.delete(id)\n if (controller.signal.aborted) return\n console.error(\"Retry failed\", error)\n setImages((current) => current.map((item) => (item.id === id ? { ...item, status: \"error\" } : item)))\n }\n })()\n }\n\n const startFullscreen = (id: string) => {\n const index = images.findIndex((item) => item.id === id)\n if (index !== -1) {\n setFullscreenIndex(index)\n }\n }\n\n const handleDragStart = (event: DragEndEvent) => {\n setActiveId(String(event.active.id))\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n if (!over) {\n setActiveId(null)\n return\n }\n\n const activeId = String(active.id)\n const overId = String(over.id)\n\n if (activeId !== overId) {\n setImages((current) => {\n const oldIndex = current.findIndex((item) => item.id === activeId)\n const newIndex = current.findIndex((item) => item.id === overId)\n if (oldIndex === -1 || newIndex === -1) return current\n return arrayMove(current, oldIndex, newIndex)\n })\n }\n\n setActiveId(null)\n }\n\n const handleDragCancel = () => {\n setActiveId(null)\n }\n\n const clearHoverTimeout = () => {\n if (hoverTimeoutRef.current !== null) {\n window.clearTimeout(hoverTimeoutRef.current)\n hoverTimeoutRef.current = null\n }\n }\n\n const fullscreenImage = useMemo(() => {\n if (fullscreenIndex === null) return null\n return images[fullscreenIndex] ?? null\n }, [fullscreenIndex, images])\n\n const containerClasses = cn(\n \"rounded-xl border border-dashed border-slate-300 bg-white/70 p-4 shadow-sm transition-colors dark:border-slate-700 dark:bg-slate-900/60\",\n dragActive && \"border-primary ring-2 ring-primary/50\",\n disabled && \"opacity-70\"\n )\n\n const tileBaseClasses = \"group relative size-20 overflow-visible rounded-lg border border-slate-200 bg-slate-50 shadow-inner transition hover:shadow md:size-24 dark:border-slate-700 dark:bg-slate-800\"\n\n const acceptAttr = useMemo(() => {\n if (!accept) return undefined\n if (Array.isArray(accept)) return accept.join(\",\")\n return accept\n }, [accept])\n\n const enableImagePreview = useMemo(() => {\n if (renderItem) return false\n if (!acceptAttr) return false\n const tokens = acceptAttr.split(\",\").map((value) => value.trim()).filter(Boolean)\n if (!tokens.length) return false\n return tokens.every((token) => token === \"image/*\" || token.startsWith(\"image/\"))\n }, [acceptAttr, renderItem])\n\n const toRenderItemProps = (item: FileWithState): FilesUploadFieldRenderItemProps => ({\n file: { id: item.id, url: item.url, alt: item.alt, uploadKey: item.uploadKey },\n previewUrl: item.previewUrl,\n status: item.status,\n progress: item.progress,\n fileName: item.fileName,\n })\n\n const dragOverlayContent = activeId\n ? (() => {\n const activeItem = images.find((item) => item.id === activeId)\n if (!activeItem) return null\n\n if (renderItem) {\n const rendered = renderItem(toRenderItemProps(activeItem))\n if (rendered === null || rendered === undefined || rendered === false) return null\n return (\n <div className=\"pointer-events-none\">\n <div className=\"h-24 w-24 overflow-hidden rounded-lg shadow-2xl\">{rendered}</div>\n </div>\n )\n }\n\n if (!enableImagePreview) return null\n return (\n <div className=\"pointer-events-none\">\n <img\n src={activeItem.previewUrl}\n alt={activeItem.alt ?? \"Dragged image\"}\n className=\"h-24 w-24 rounded-lg object-cover shadow-2xl\"\n />\n </div>\n )\n })()\n : null\n\n const hideActiveTile = dragOverlayContent !== null && dragOverlayContent !== undefined\n\n return (\n <div\n onDragOver={(event) => {\n event.preventDefault()\n if (!disabled) {\n setDragActive(true)\n }\n }}\n onDragLeave={() => setDragActive(false)}\n onDrop={(event) => {\n event.preventDefault()\n setDragActive(false)\n if (event.dataTransfer.files?.length) {\n void handleFiles(event.dataTransfer.files)\n }\n }}\n className={containerClasses}\n >\n {renderHeader ? <div className=\"mb-3\">{renderHeader()}</div> : null}\n\n <DndContext\n sensors={disabled ? undefined : sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={handleDragCancel}\n >\n <SortableContext items={images.map((item) => item.id)} strategy={rectSortingStrategy}>\n <div className=\"flex flex-wrap gap-3\">\n {images.map((item) => {\n const isUploading = item.status === \"uploading\"\n const isError = item.status === \"error\"\n\n return (\n <SortableTile\n key={item.id}\n item={item}\n isHovered={hoveredId === item.id}\n enableImagePreview={enableImagePreview}\n renderItem={renderItem}\n onHoverEnter={() => {\n clearHoverTimeout()\n setHoveredId(item.id)\n }}\n onHoverLeave={() => {\n clearHoverTimeout()\n hoverTimeoutRef.current = window.setTimeout(() => {\n setHoveredId((current) => (current === item.id ? null : current))\n hoverTimeoutRef.current = null\n }, 120)\n }}\n onRemove={removeImage}\n onRetry={retryUpload}\n startFullscreen={startFullscreen}\n isUploading={isUploading}\n isError={isError}\n tileClasses={tileBaseClasses}\n disabled={disabled}\n isDraggingExternal={hideActiveTile && activeId === item.id}\n removeButtonAriaLabel={removeButtonAriaLabel}\n />\n )\n })}\n\n <button\n type=\"button\"\n onClick={openFileDialog}\n disabled={disabled}\n className={cn(\n tileBaseClasses,\n \"flex items-center justify-center border-dashed bg-white text-slate-500 hover:border-slate-300 dark:bg-slate-900\"\n )}\n aria-label={addButtonAriaLabel}\n >\n <div className=\"flex flex-col items-center gap-1\">\n <div className=\"flex size-9 items-center justify-center rounded-full border border-slate-300 bg-slate-100 text-slate-600 shadow-inner dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200\">\n <Plus className=\"h-5 w-5\" />\n </div>\n <span className=\"text-xs font-medium\">Ajouter</span>\n </div>\n </button>\n </div>\n </SortableContext>\n {(() => {\n const overlay = <DragOverlay>{dragOverlayContent}</DragOverlay>\n\n if (typeof document === \"undefined\") return overlay\n return createPortal(overlay, document.body)\n })()}\n </DndContext>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept={acceptAttr}\n multiple\n className=\"hidden\"\n onChange={onFileInputChange}\n aria-hidden\n />\n\n {enableImagePreview && fullscreenImage && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/90\">\n <button\n type=\"button\"\n className=\"absolute left-6 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white shadow-lg transition hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() =>\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current - 1 + images.length) % images.length\n })\n }\n aria-label=\"Précédent\"\n >\n <svg viewBox=\"0 0 24 24\" className=\"h-6 w-6\" stroke=\"currentColor\" strokeWidth={2} fill=\"none\">\n <path d=\"M15 18l-6-6 6-6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <div className=\"relative max-h-[80vh] max-w-4xl\">\n <img\n src={fullscreenImage.url}\n alt={fullscreenImage.alt ?? \"Fullscreen\"}\n className=\"max-h-[80vh] max-w-full rounded-lg object-contain shadow-2xl\"\n />\n <button\n type=\"button\"\n className=\"absolute right-3 top-3 inline-flex size-9 items-center justify-center rounded-full bg-black/70 text-white transition hover:bg-black focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() => setFullscreenIndex(null)}\n aria-label=\"Fermer\"\n >\n <X className=\"h-5 w-5\" />\n </button>\n </div>\n <button\n type=\"button\"\n className=\"absolute right-6 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white shadow-lg transition hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() =>\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current + 1) % images.length\n })\n }\n aria-label=\"Suivant\"\n >\n <svg viewBox=\"0 0 24 24\" className=\"h-6 w-6\" stroke=\"currentColor\" strokeWidth={2} fill=\"none\">\n <path d=\"M9 6l6 6-6 6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["TENANT_ID_QUERY_PARAM","sha256Hex","data","digest","b","readTenantIdFromLocation","normalized","withTenant","path","tenantId","sep","postJson","url","body","options","response","payload","getJson","putOctetStream","sha256","uploadKey","signal","headers","defaultUpload","file","onProgress","initRes","uploadId","chunkSize","chunksTotal","doUploadChunk","index","start","end","sha","res","uploadChunks","indices","alreadyUploaded","uploaded","idx","pct","allIndices","_","i","complete","completeRes","fileId","code","statusRes","received","present","missing","SortableTile","item","isHovered","enableImagePreview","renderItem","onHoverEnter","onHoverLeave","onRemove","onRetry","startFullscreen","isUploading","isError","tileClasses","disabled","isDraggingExternal","removeButtonAriaLabel","setNodeRef","attributes","listeners","transform","transition","isDragging","useSortable","tileRef","useRef","previewRef","previewPosition","setPreviewPosition","useState","updatePreviewPosition","el","rect","useEffect","raf","schedule","style","CSS","tileContent","jsx","cn","jsxs","node","event","next","X","preview","Maximize2","createPortal","Loader2","toPreview","FilesUploadField","initialFiles","onChange","upload","uploadIsPublic","onUploadingChange","accept","renderHeader","addButtonAriaLabel","fileInputRef","images","setImages","dragActive","setDragActive","fullscreenIndex","setFullscreenIndex","hoveredId","setHoveredId","activeId","setActiveId","hoverTimeoutRef","skipNotifyRef","imagesRef","lastInitialImagesRef","onChangeRef","onUploadingChangeRef","replacedIdRef","fileRef","abortRef","objectUrlRef","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","controller","previous","img","prepared","preparedRawIds","tempId","finalId","currentIds","mapped","preparedIds","tempUrl","current","id","alt","handleKey","handleFiles","files","uploads","previewUrl","updateProgress","value","nextValue","result","error","onFileInputChange","openFileDialog","removeImage","retryUpload","existingController","handleDragStart","handleDragEnd","active","over","overId","oldIndex","newIndex","arrayMove","handleDragCancel","clearHoverTimeout","fullscreenImage","useMemo","containerClasses","tileBaseClasses","acceptAttr","tokens","token","toRenderItemProps","dragOverlayContent","activeItem","rendered","hideActiveTile","DndContext","closestCenter","SortableContext","rectSortingStrategy","Plus","overlay","DragOverlay"],"mappings":"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"}
1
+ {"version":3,"file":"index14.js","sources":["../src/components/Image/index.tsx"],"sourcesContent":["import { useRef, useEffect, useState } from \"react\"\nimport { decode } from \"blurhash\"\n\n// Set to true to enable mouseover debugging (this will show the blurhash image unless hovered)\nconst DEBUG = false\n\nexport const Image = ({\n src,\n hash,\n alt = \"\",\n className,\n}: {\n src: string\n hash: [number, number, string]\n alt?: string\n className?: string\n}) => {\n const [imageLoaded, setImageLoaded] = useState(false)\n const [blurhashUrl, setBlurhashUrl] = useState<string | null>(null)\n\n const imgRef = useRef<HTMLImageElement>(null)\n\n useEffect(() => {\n if (!hash) return\n\n const [width, height, buffer] = hash\n const pixels = decode(buffer, width, height)\n\n const canvas = document.createElement(\"canvas\")\n const ctx = canvas.getContext(\"2d\")\n\n if (ctx) {\n canvas.width = width\n canvas.height = height\n\n const imageData = new ImageData(\n new Uint8ClampedArray(pixels),\n width,\n height\n )\n ctx.putImageData(imageData, 0, 0)\n\n setBlurhashUrl(canvas.toDataURL())\n }\n }, [hash])\n\n // Handle Cached Images\n useEffect(() => {\n if (imgRef.current && imgRef.current.complete) {\n setImageLoaded(true)\n }\n }, [src])\n\n const onMouseEnter = () => {\n if (DEBUG) {\n setImageLoaded(true)\n }\n }\n\n const onMouseLeave = () => {\n if (DEBUG) {\n setImageLoaded(false)\n }\n }\n\n return (\n <div\n style={{ position: \"relative\", overflow: \"hidden\" }}\n className={className}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {blurhashUrl && !imageLoaded && (\n <img\n src={blurhashUrl}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n }}\n />\n )}\n <img\n ref={imgRef}\n src={src}\n alt={alt}\n style={{\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n display: imageLoaded ? \"block\" : \"none\",\n position: \"absolute\",\n top: 0,\n left: 0,\n }}\n onLoad={() => {\n setImageLoaded(true)\n }}\n onError={(e) => console.error(\"Image failed to load:\", src, e)}\n />\n </div>\n )\n}\n"],"names":["Image","src","hash","alt","className","imageLoaded","setImageLoaded","useState","blurhashUrl","setBlurhashUrl","imgRef","useRef","useEffect","width","height","buffer","pixels","decode","canvas","ctx","imageData","onMouseEnter","onMouseLeave","jsxs","jsx"],"mappings":";;;AAMO,MAAMA,IAAQ,CAAC;AAAA,EACpB,KAAAC;AAAA,EACA,MAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,WAAAC;AACF,MAKM;AACJ,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAAS,EAAK,GAC9C,CAACC,GAAaC,CAAc,IAAIF,EAAwB,IAAI,GAE5DG,IAASC,EAAyB,IAAI;AAE5C,EAAAC,EAAU,MAAM;AACd,QAAI,CAACV,EAAM;AAEX,UAAM,CAACW,GAAOC,GAAQC,CAAM,IAAIb,GAC1Bc,IAASC,EAAOF,GAAQF,GAAOC,CAAM,GAErCI,IAAS,SAAS,cAAc,QAAQ,GACxCC,IAAMD,EAAO,WAAW,IAAI;AAElC,QAAIC,GAAK;AACP,MAAAD,EAAO,QAAQL,GACfK,EAAO,SAASJ;AAEhB,YAAMM,IAAY,IAAI;AAAA,QACpB,IAAI,kBAAkBJ,CAAM;AAAA,QAC5BH;AAAA,QACAC;AAAA,MAAA;AAEF,MAAAK,EAAI,aAAaC,GAAW,GAAG,CAAC,GAEhCX,EAAeS,EAAO,WAAW;AAAA,IACnC;AAAA,EACF,GAAG,CAAChB,CAAI,CAAC,GAGTU,EAAU,MAAM;AACd,IAAIF,EAAO,WAAWA,EAAO,QAAQ,YACnCJ,EAAe,EAAI;AAAA,EAEvB,GAAG,CAACL,CAAG,CAAC;AAER,QAAMoB,IAAe,MAAM;AAAA,EAI3B,GAEMC,IAAe,MAAM;AAAA,EAI3B;AAEA,SACEC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO,EAAE,UAAU,YAAY,UAAU,SAAA;AAAA,MACzC,WAAAnB;AAAA,MACA,cAAAiB;AAAA,MACA,cAAAC;AAAA,MAEC,UAAA;AAAA,QAAAd,KAAe,CAACH,KACfmB,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKhB;AAAA,YACL,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,MAAM;AAAA,cACN,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,WAAW;AAAA,YAAA;AAAA,UACb;AAAA,QAAA;AAAA,QAGJgB,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKd;AAAA,YACL,KAAAT;AAAA,YACA,KAAAE;AAAA,YACA,OAAO;AAAA,cACL,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,WAAW;AAAA,cACX,SAASE,IAAc,UAAU;AAAA,cACjC,UAAU;AAAA,cACV,KAAK;AAAA,cACL,MAAM;AAAA,YAAA;AAAA,YAER,QAAQ,MAAM;AACZ,cAAAC,EAAe,EAAI;AAAA,YACrB;AAAA,YACA,SAAS,CAAC,MAAM,QAAQ,MAAM,yBAAyBL,GAAK,CAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MAC/D;AAAA,IAAA;AAAA,EAAA;AAGN;"}
package/dist/index140.js CHANGED
@@ -1,7 +1,7 @@
1
- function e() {
2
- return "";
1
+ function n(o) {
2
+ return "Choose the Month";
3
3
  }
4
4
  export {
5
- e as labelNav
5
+ n as labelMonthDropdown
6
6
  };
7
7
  //# sourceMappingURL=index140.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index140.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelNav.js"],"sourcesContent":["/**\n * Generates the ARIA label for the navigation toolbar.\n *\n * @defaultValue `\"\"`\n * @returns The ARIA label for the navigation toolbar.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelNav() {\n return \"\";\n}\n"],"names":["labelNav"],"mappings":"AAQO,SAASA,IAAW;AACvB,SAAO;AACX;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index140.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js"],"sourcesContent":["/**\n * Generates the ARIA label for the months dropdown.\n *\n * @defaultValue `\"Choose the Month\"`\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the months dropdown.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelMonthDropdown(_options) {\n return \"Choose the Month\";\n}\n"],"names":["labelMonthDropdown","_options"],"mappings":"AASO,SAASA,EAAmBC,GAAU;AACzC,SAAO;AACX;","x_google_ignoreList":[0]}
package/dist/index141.js CHANGED
@@ -1,8 +1,7 @@
1
- const t = "Go to the Next Month";
2
- function n(o, e) {
3
- return t;
1
+ function e() {
2
+ return "";
4
3
  }
5
4
  export {
6
- n as labelNext
5
+ e as labelNav
7
6
  };
8
7
  //# sourceMappingURL=index141.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index141.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelNext.js"],"sourcesContent":["const defaultLabel = \"Go to the Next Month\";\n/**\n * Generates the ARIA label for the \"next month\" button.\n *\n * @defaultValue `\"Go to the Next Month\"`\n * @param month - The date representing the next month, or `undefined` if there\n * is no next month.\n * @returns The ARIA label for the \"next month\" button.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelNext(_month, _options) {\n return defaultLabel;\n}\n"],"names":["defaultLabel","labelNext","_month","_options"],"mappings":"AAAA,MAAMA,IAAe;AAWd,SAASC,EAAUC,GAAQC,GAAU;AACxC,SAAOH;AACX;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index141.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelNav.js"],"sourcesContent":["/**\n * Generates the ARIA label for the navigation toolbar.\n *\n * @defaultValue `\"\"`\n * @returns The ARIA label for the navigation toolbar.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelNav() {\n return \"\";\n}\n"],"names":["labelNav"],"mappings":"AAQO,SAASA,IAAW;AACvB,SAAO;AACX;","x_google_ignoreList":[0]}
package/dist/index142.js CHANGED
@@ -1,7 +1,8 @@
1
- function t(o) {
2
- return "Go to the Previous Month";
1
+ const t = "Go to the Next Month";
2
+ function n(o, e) {
3
+ return t;
3
4
  }
4
5
  export {
5
- t as labelPrevious
6
+ n as labelNext
6
7
  };
7
8
  //# sourceMappingURL=index142.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index142.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelPrevious.js"],"sourcesContent":["/**\n * Generates the ARIA label for the \"previous month\" button.\n *\n * @defaultValue `\"Go to the Previous Month\"`\n * @param month - The date representing the previous month, or `undefined` if\n * there is no previous month.\n * @returns The ARIA label for the \"previous month\" button.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelPrevious(_month) {\n return \"Go to the Previous Month\";\n}\n"],"names":["labelPrevious","_month"],"mappings":"AAUO,SAASA,EAAcC,GAAQ;AAClC,SAAO;AACX;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index142.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelNext.js"],"sourcesContent":["const defaultLabel = \"Go to the Next Month\";\n/**\n * Generates the ARIA label for the \"next month\" button.\n *\n * @defaultValue `\"Go to the Next Month\"`\n * @param month - The date representing the next month, or `undefined` if there\n * is no next month.\n * @returns The ARIA label for the \"next month\" button.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelNext(_month, _options) {\n return defaultLabel;\n}\n"],"names":["defaultLabel","labelNext","_month","_options"],"mappings":"AAAA,MAAMA,IAAe;AAWd,SAASC,EAAUC,GAAQC,GAAU;AACxC,SAAOH;AACX;","x_google_ignoreList":[0]}
package/dist/index143.js CHANGED
@@ -1,8 +1,7 @@
1
- import { DateLib as c } from "./index103.js";
2
- function a(e, r, t) {
3
- return (t ?? new c(r)).format(e, "cccc");
1
+ function t(o) {
2
+ return "Go to the Previous Month";
4
3
  }
5
4
  export {
6
- a as labelWeekday
5
+ t as labelPrevious
7
6
  };
8
7
  //# sourceMappingURL=index143.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index143.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekday.js"],"sourcesContent":["import { DateLib } from \"../classes/DateLib.js\";\n/**\n * Generates the ARIA label for a weekday column header.\n *\n * @defaultValue `\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"`\n * @param date - The date representing the weekday.\n * @param options - Optional configuration for the date formatting library.\n * @param dateLib - An optional instance of the date formatting library.\n * @returns The ARIA label for the weekday column header.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekday(date, options, dateLib) {\n return (dateLib ?? new DateLib(options)).format(date, \"cccc\");\n}\n"],"names":["labelWeekday","date","options","dateLib","DateLib"],"mappings":";AAYO,SAASA,EAAaC,GAAMC,GAASC,GAAS;AACjD,UAAQA,KAAW,IAAIC,EAAQF,CAAO,GAAG,OAAOD,GAAM,MAAM;AAChE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index143.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelPrevious.js"],"sourcesContent":["/**\n * Generates the ARIA label for the \"previous month\" button.\n *\n * @defaultValue `\"Go to the Previous Month\"`\n * @param month - The date representing the previous month, or `undefined` if\n * there is no previous month.\n * @returns The ARIA label for the \"previous month\" button.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelPrevious(_month) {\n return \"Go to the Previous Month\";\n}\n"],"names":["labelPrevious","_month"],"mappings":"AAUO,SAASA,EAAcC,GAAQ;AAClC,SAAO;AACX;","x_google_ignoreList":[0]}
package/dist/index144.js CHANGED
@@ -1,7 +1,8 @@
1
- function o(e, n) {
2
- return `Week ${e}`;
1
+ import { DateLib as c } from "./index104.js";
2
+ function a(e, r, t) {
3
+ return (t ?? new c(r)).format(e, "cccc");
3
4
  }
4
5
  export {
5
- o as labelWeekNumber
6
+ a as labelWeekday
6
7
  };
7
8
  //# sourceMappingURL=index144.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index144.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js"],"sourcesContent":["/**\n * Generates the ARIA label for the week number cell (the first cell in a row).\n *\n * @defaultValue `Week ${weekNumber}`\n * @param weekNumber - The number of the week.\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the week number cell.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekNumber(weekNumber, _options) {\n return `Week ${weekNumber}`;\n}\n"],"names":["labelWeekNumber","weekNumber","_options"],"mappings":"AAUO,SAASA,EAAgBC,GAAYC,GAAU;AAClD,SAAO,QAAQD,CAAU;AAC7B;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index144.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekday.js"],"sourcesContent":["import { DateLib } from \"../classes/DateLib.js\";\n/**\n * Generates the ARIA label for a weekday column header.\n *\n * @defaultValue `\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"`\n * @param date - The date representing the weekday.\n * @param options - Optional configuration for the date formatting library.\n * @param dateLib - An optional instance of the date formatting library.\n * @returns The ARIA label for the weekday column header.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekday(date, options, dateLib) {\n return (dateLib ?? new DateLib(options)).format(date, \"cccc\");\n}\n"],"names":["labelWeekday","date","options","dateLib","DateLib"],"mappings":";AAYO,SAASA,EAAaC,GAAMC,GAASC,GAAS;AACjD,UAAQA,KAAW,IAAIC,EAAQF,CAAO,GAAG,OAAOD,GAAM,MAAM;AAChE;","x_google_ignoreList":[0]}
package/dist/index145.js CHANGED
@@ -1,7 +1,7 @@
1
- function r(e) {
2
- return "Week Number";
1
+ function o(e, n) {
2
+ return `Week ${e}`;
3
3
  }
4
4
  export {
5
- r as labelWeekNumberHeader
5
+ o as labelWeekNumber
6
6
  };
7
7
  //# sourceMappingURL=index145.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index145.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js"],"sourcesContent":["/**\n * Generates the ARIA label for the week number header element.\n *\n * @defaultValue `\"Week Number\"`\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the week number header.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekNumberHeader(_options) {\n return \"Week Number\";\n}\n"],"names":["labelWeekNumberHeader","_options"],"mappings":"AASO,SAASA,EAAsBC,GAAU;AAC5C,SAAO;AACX;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index145.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js"],"sourcesContent":["/**\n * Generates the ARIA label for the week number cell (the first cell in a row).\n *\n * @defaultValue `Week ${weekNumber}`\n * @param weekNumber - The number of the week.\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the week number cell.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekNumber(weekNumber, _options) {\n return `Week ${weekNumber}`;\n}\n"],"names":["labelWeekNumber","weekNumber","_options"],"mappings":"AAUO,SAASA,EAAgBC,GAAYC,GAAU;AAClD,SAAO,QAAQD,CAAU;AAC7B;","x_google_ignoreList":[0]}
package/dist/index146.js CHANGED
@@ -1,7 +1,7 @@
1
- function e(o) {
2
- return "Choose the Year";
1
+ function r(e) {
2
+ return "Week Number";
3
3
  }
4
4
  export {
5
- e as labelYearDropdown
5
+ r as labelWeekNumberHeader
6
6
  };
7
7
  //# sourceMappingURL=index146.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index146.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js"],"sourcesContent":["/**\n * Generates the ARIA label for the years dropdown.\n *\n * @defaultValue `\"Choose the Year\"`\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the years dropdown.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelYearDropdown(_options) {\n return \"Choose the Year\";\n}\n"],"names":["labelYearDropdown","_options"],"mappings":"AASO,SAASA,EAAkBC,GAAU;AACxC,SAAO;AACX;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index146.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js"],"sourcesContent":["/**\n * Generates the ARIA label for the week number header element.\n *\n * @defaultValue `\"Week Number\"`\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the week number header.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekNumberHeader(_options) {\n return \"Week Number\";\n}\n"],"names":["labelWeekNumberHeader","_options"],"mappings":"AASO,SAASA,EAAsBC,GAAU;AAC5C,SAAO;AACX;","x_google_ignoreList":[0]}
package/dist/index147.js CHANGED
@@ -1,50 +1,7 @@
1
- import * as l from "react";
2
- import { composeRefs as m } from "./index50.js";
3
- import { j as u } from "./index28.js";
4
- // @__NO_SIDE_EFFECTS__
5
- function x(e) {
6
- const r = /* @__PURE__ */ y(e), t = l.forwardRef((o, n) => {
7
- const { children: i, ...c } = o, s = l.Children.toArray(i), a = s.find(g);
8
- if (a) {
9
- const f = a.props.children, d = s.map((p) => p === a ? l.Children.count(f) > 1 ? l.Children.only(null) : l.isValidElement(f) ? f.props.children : null : p);
10
- return /* @__PURE__ */ u.jsx(r, { ...c, ref: n, children: l.isValidElement(f) ? l.cloneElement(f, void 0, d) : null });
11
- }
12
- return /* @__PURE__ */ u.jsx(r, { ...c, ref: n, children: i });
13
- });
14
- return t.displayName = `${e}.Slot`, t;
15
- }
16
- // @__NO_SIDE_EFFECTS__
17
- function y(e) {
18
- const r = l.forwardRef((t, o) => {
19
- const { children: n, ...i } = t;
20
- if (l.isValidElement(n)) {
21
- const c = R(n), s = C(i, n.props);
22
- return n.type !== l.Fragment && (s.ref = o ? m(o, c) : c), l.cloneElement(n, s);
23
- }
24
- return l.Children.count(n) > 1 ? l.Children.only(null) : null;
25
- });
26
- return r.displayName = `${e}.SlotClone`, r;
27
- }
28
- var E = /* @__PURE__ */ Symbol("radix.slottable");
29
- function g(e) {
30
- return l.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === E;
31
- }
32
- function C(e, r) {
33
- const t = { ...r };
34
- for (const o in r) {
35
- const n = e[o], i = r[o];
36
- /^on[A-Z]/.test(o) ? n && i ? t[o] = (...s) => {
37
- const a = i(...s);
38
- return n(...s), a;
39
- } : n && (t[o] = n) : o === "style" ? t[o] = { ...n, ...i } : o === "className" && (t[o] = [n, i].filter(Boolean).join(" "));
40
- }
41
- return { ...e, ...t };
42
- }
43
- function R(e) {
44
- let r = Object.getOwnPropertyDescriptor(e.props, "ref")?.get, t = r && "isReactWarning" in r && r.isReactWarning;
45
- return t ? e.ref : (r = Object.getOwnPropertyDescriptor(e, "ref")?.get, t = r && "isReactWarning" in r && r.isReactWarning, t ? e.props.ref : e.props.ref || e.ref);
1
+ function e(o) {
2
+ return "Choose the Year";
46
3
  }
47
4
  export {
48
- x as createSlot
5
+ e as labelYearDropdown
49
6
  };
50
7
  //# sourceMappingURL=index147.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index147.js","sources":["../../../node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs"],"sourcesContent":["// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["createSlot","ownerName","SlotClone","createSlotClone","Slot2","React","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","childrenRef","getElementRef","props2","mergeProps","composeRefs","SLOTTABLE_IDENTIFIER","childProps","overrideProps","propName","slotPropValue","childPropValue","args","result","element","getter","mayWarn"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index147.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js"],"sourcesContent":["/**\n * Generates the ARIA label for the years dropdown.\n *\n * @defaultValue `\"Choose the Year\"`\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the years dropdown.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelYearDropdown(_options) {\n return \"Choose the Year\";\n}\n"],"names":["labelYearDropdown","_options"],"mappings":"AASO,SAASA,EAAkBC,GAAU;AACxC,SAAO;AACX;","x_google_ignoreList":[0]}
package/dist/index148.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as l from "react";
2
- import { composeRefs as m } from "./index50.js";
3
- import { j as u } from "./index28.js";
2
+ import { composeRefs as m } from "./index53.js";
3
+ import { j as u } from "./index29.js";
4
4
  // @__NO_SIDE_EFFECTS__
5
5
  function x(e) {
6
6
  const r = /* @__PURE__ */ y(e), t = l.forwardRef((o, n) => {