se-design 1.0.97 → 1.0.98-dev.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 (501) hide show
  1. package/dist/assets/icons/envelope.svg +2 -2
  2. package/dist/assets/icons/envelopes-outline.svg +3 -0
  3. package/dist/assets/icons/home-outline.svg +3 -0
  4. package/dist/assets/icons/library-outline.svg +3 -0
  5. package/dist/assets/icons/magicpen.svg +11 -0
  6. package/dist/assets/icons/move-folder.svg +1 -1
  7. package/dist/assets/icons/plus.svg +2 -2
  8. package/dist/assets/icons/reports-outline.svg +3 -0
  9. package/dist/assets/icons/repository-outline.svg +3 -0
  10. package/dist/assets/icons/sign-doc.svg +10 -0
  11. package/dist/assets/icons/template.svg +3 -0
  12. package/dist/assets/icons/upload.svg +5 -0
  13. package/dist/assets/icons/views-outline.svg +3 -0
  14. package/dist/assets/style.css +1 -1
  15. package/dist/components/GetStartedWidget/index.d.ts +28 -5
  16. package/dist/components/Tabs/index.d.ts +2 -1
  17. package/dist/components/UpgradeBanner/index.d.ts +31 -0
  18. package/dist/components/index.d.ts +1 -0
  19. package/dist/index.js +94 -92
  20. package/dist/index.js.map +1 -1
  21. package/dist/index100.js +1 -1
  22. package/dist/index100.js.map +1 -1
  23. package/dist/index101.js +1 -1
  24. package/dist/index101.js.map +1 -1
  25. package/dist/index102.js +1 -1
  26. package/dist/index102.js.map +1 -1
  27. package/dist/index103.js +1 -1
  28. package/dist/index103.js.map +1 -1
  29. package/dist/index104.js +1 -1
  30. package/dist/index104.js.map +1 -1
  31. package/dist/index105.js +1 -1
  32. package/dist/index105.js.map +1 -1
  33. package/dist/index106.js +1 -1
  34. package/dist/index106.js.map +1 -1
  35. package/dist/index107.js +1 -1
  36. package/dist/index107.js.map +1 -1
  37. package/dist/index108.js +1 -1
  38. package/dist/index108.js.map +1 -1
  39. package/dist/index109.js +1 -1
  40. package/dist/index109.js.map +1 -1
  41. package/dist/index11.js +1 -1
  42. package/dist/index110.js +1 -1
  43. package/dist/index110.js.map +1 -1
  44. package/dist/index111.js +1 -1
  45. package/dist/index111.js.map +1 -1
  46. package/dist/index112.js +1 -1
  47. package/dist/index112.js.map +1 -1
  48. package/dist/index113.js +1 -1
  49. package/dist/index113.js.map +1 -1
  50. package/dist/index114.js +1 -1
  51. package/dist/index114.js.map +1 -1
  52. package/dist/index115.js +1 -1
  53. package/dist/index115.js.map +1 -1
  54. package/dist/index116.js +1 -1
  55. package/dist/index116.js.map +1 -1
  56. package/dist/index117.js +1 -1
  57. package/dist/index117.js.map +1 -1
  58. package/dist/index118.js +1 -1
  59. package/dist/index118.js.map +1 -1
  60. package/dist/index119.js +2 -2
  61. package/dist/index119.js.map +1 -1
  62. package/dist/index12.js +3 -3
  63. package/dist/index120.js +1 -1
  64. package/dist/index120.js.map +1 -1
  65. package/dist/index121.js +2 -2
  66. package/dist/index121.js.map +1 -1
  67. package/dist/index122.js +1 -1
  68. package/dist/index122.js.map +1 -1
  69. package/dist/index123.js +1 -1
  70. package/dist/index123.js.map +1 -1
  71. package/dist/index124.js +2 -2
  72. package/dist/index124.js.map +1 -1
  73. package/dist/index125.js +1 -1
  74. package/dist/index125.js.map +1 -1
  75. package/dist/index126.js +2 -2
  76. package/dist/index126.js.map +1 -1
  77. package/dist/index127.js +1 -1
  78. package/dist/index127.js.map +1 -1
  79. package/dist/index128.js +1 -1
  80. package/dist/index128.js.map +1 -1
  81. package/dist/index129.js +1 -1
  82. package/dist/index129.js.map +1 -1
  83. package/dist/index13.js +3 -3
  84. package/dist/index130.js +1 -1
  85. package/dist/index130.js.map +1 -1
  86. package/dist/index131.js +2 -2
  87. package/dist/index131.js.map +1 -1
  88. package/dist/index132.js +2 -2
  89. package/dist/index132.js.map +1 -1
  90. package/dist/index133.js +2 -2
  91. package/dist/index133.js.map +1 -1
  92. package/dist/index134.js +2 -2
  93. package/dist/index134.js.map +1 -1
  94. package/dist/index135.js +2 -2
  95. package/dist/index135.js.map +1 -1
  96. package/dist/index136.js +2 -2
  97. package/dist/index136.js.map +1 -1
  98. package/dist/index137.js +1 -1
  99. package/dist/index137.js.map +1 -1
  100. package/dist/index138.js +2 -2
  101. package/dist/index138.js.map +1 -1
  102. package/dist/index139.js +1 -1
  103. package/dist/index139.js.map +1 -1
  104. package/dist/index140.js +1 -1
  105. package/dist/index140.js.map +1 -1
  106. package/dist/index141.js +2 -2
  107. package/dist/index141.js.map +1 -1
  108. package/dist/index142.js +2 -2
  109. package/dist/index142.js.map +1 -1
  110. package/dist/index143.js +2 -2
  111. package/dist/index143.js.map +1 -1
  112. package/dist/index144.js +2 -2
  113. package/dist/index144.js.map +1 -1
  114. package/dist/index145.js +1 -1
  115. package/dist/index145.js.map +1 -1
  116. package/dist/index146.js +1 -1
  117. package/dist/index146.js.map +1 -1
  118. package/dist/index147.js +1 -1
  119. package/dist/index147.js.map +1 -1
  120. package/dist/index148.js +1 -1
  121. package/dist/index148.js.map +1 -1
  122. package/dist/index149.js +1 -1
  123. package/dist/index149.js.map +1 -1
  124. package/dist/index150.js +1 -1
  125. package/dist/index150.js.map +1 -1
  126. package/dist/index151.js +1 -1
  127. package/dist/index151.js.map +1 -1
  128. package/dist/index152.js +2 -2
  129. package/dist/index152.js.map +1 -1
  130. package/dist/index153.js +1 -1
  131. package/dist/index153.js.map +1 -1
  132. package/dist/index154.js +1 -1
  133. package/dist/index154.js.map +1 -1
  134. package/dist/index155.js +2 -2
  135. package/dist/index155.js.map +1 -1
  136. package/dist/index156.js +1 -1
  137. package/dist/index156.js.map +1 -1
  138. package/dist/index157.js +1 -1
  139. package/dist/index157.js.map +1 -1
  140. package/dist/index158.js +1 -1
  141. package/dist/index158.js.map +1 -1
  142. package/dist/index159.js +1 -1
  143. package/dist/index159.js.map +1 -1
  144. package/dist/index16.js +3 -3
  145. package/dist/index160.js +1 -1
  146. package/dist/index160.js.map +1 -1
  147. package/dist/index161.js +2 -2
  148. package/dist/index161.js.map +1 -1
  149. package/dist/index162.js +2 -2
  150. package/dist/index162.js.map +1 -1
  151. package/dist/index163.js +1 -1
  152. package/dist/index163.js.map +1 -1
  153. package/dist/index164.js +2 -2
  154. package/dist/index164.js.map +1 -1
  155. package/dist/index165.js +2 -2
  156. package/dist/index165.js.map +1 -1
  157. package/dist/index166.js +2 -2
  158. package/dist/index166.js.map +1 -1
  159. package/dist/index167.js +2 -2
  160. package/dist/index167.js.map +1 -1
  161. package/dist/index168.js +1 -1
  162. package/dist/index168.js.map +1 -1
  163. package/dist/index169.js +2 -2
  164. package/dist/index169.js.map +1 -1
  165. package/dist/index170.js +2 -2
  166. package/dist/index170.js.map +1 -1
  167. package/dist/index171.js +1 -1
  168. package/dist/index171.js.map +1 -1
  169. package/dist/index172.js +1 -1
  170. package/dist/index172.js.map +1 -1
  171. package/dist/index173.js +1 -1
  172. package/dist/index173.js.map +1 -1
  173. package/dist/index174.js +1 -1
  174. package/dist/index174.js.map +1 -1
  175. package/dist/index175.js +1 -1
  176. package/dist/index175.js.map +1 -1
  177. package/dist/index176.js +1 -1
  178. package/dist/index176.js.map +1 -1
  179. package/dist/index177.js +1 -1
  180. package/dist/index177.js.map +1 -1
  181. package/dist/index178.js +1 -1
  182. package/dist/index178.js.map +1 -1
  183. package/dist/index179.js +2 -2
  184. package/dist/index179.js.map +1 -1
  185. package/dist/index18.js +3 -3
  186. package/dist/index180.js +1 -1
  187. package/dist/index180.js.map +1 -1
  188. package/dist/index181.js +1 -1
  189. package/dist/index181.js.map +1 -1
  190. package/dist/index182.js +1 -1
  191. package/dist/index182.js.map +1 -1
  192. package/dist/index183.js +1 -1
  193. package/dist/index183.js.map +1 -1
  194. package/dist/index184.js +1 -1
  195. package/dist/index184.js.map +1 -1
  196. package/dist/index185.js +1 -1
  197. package/dist/index185.js.map +1 -1
  198. package/dist/index186.js +1 -1
  199. package/dist/index186.js.map +1 -1
  200. package/dist/index187.js +1 -1
  201. package/dist/index187.js.map +1 -1
  202. package/dist/index188.js +1 -1
  203. package/dist/index188.js.map +1 -1
  204. package/dist/index189.js +1 -1
  205. package/dist/index189.js.map +1 -1
  206. package/dist/index19.js +5 -5
  207. package/dist/index190.js +1 -1
  208. package/dist/index190.js.map +1 -1
  209. package/dist/index191.js +1 -1
  210. package/dist/index191.js.map +1 -1
  211. package/dist/index192.js +2 -2
  212. package/dist/index192.js.map +1 -1
  213. package/dist/index193.js +1 -1
  214. package/dist/index193.js.map +1 -1
  215. package/dist/index194.js +1 -1
  216. package/dist/index194.js.map +1 -1
  217. package/dist/index195.js +1 -1
  218. package/dist/index195.js.map +1 -1
  219. package/dist/index196.js +2 -2
  220. package/dist/index196.js.map +1 -1
  221. package/dist/index197.js +1 -1
  222. package/dist/index197.js.map +1 -1
  223. package/dist/index198.js +1 -1
  224. package/dist/index198.js.map +1 -1
  225. package/dist/index199.js +1 -1
  226. package/dist/index199.js.map +1 -1
  227. package/dist/index200.js +2 -2
  228. package/dist/index200.js.map +1 -1
  229. package/dist/index201.js +1 -1
  230. package/dist/index201.js.map +1 -1
  231. package/dist/index202.js +1 -1
  232. package/dist/index202.js.map +1 -1
  233. package/dist/index203.js +1 -1
  234. package/dist/index203.js.map +1 -1
  235. package/dist/index204.js +2 -2
  236. package/dist/index204.js.map +1 -1
  237. package/dist/index205.js +1 -1
  238. package/dist/index205.js.map +1 -1
  239. package/dist/index206.js +1 -1
  240. package/dist/index206.js.map +1 -1
  241. package/dist/index207.js +2 -2
  242. package/dist/index207.js.map +1 -1
  243. package/dist/index208.js +1 -1
  244. package/dist/index208.js.map +1 -1
  245. package/dist/index209.js +2 -2
  246. package/dist/index209.js.map +1 -1
  247. package/dist/index210.js +2 -2
  248. package/dist/index210.js.map +1 -1
  249. package/dist/index211.js +2 -2
  250. package/dist/index211.js.map +1 -1
  251. package/dist/index212.js +2 -149
  252. package/dist/index212.js.map +1 -1
  253. package/dist/index213.js +2 -9
  254. package/dist/index213.js.map +1 -1
  255. package/dist/index214.js +2 -6
  256. package/dist/index214.js.map +1 -1
  257. package/dist/index215.js +2 -43
  258. package/dist/index215.js.map +1 -1
  259. package/dist/index216.js +2 -21
  260. package/dist/index216.js.map +1 -1
  261. package/dist/index217.js +5 -0
  262. package/dist/index217.js.map +1 -0
  263. package/dist/index218.js +5 -0
  264. package/dist/index218.js.map +1 -0
  265. package/dist/index219.js +5 -0
  266. package/dist/index219.js.map +1 -0
  267. package/dist/index220.js +5 -0
  268. package/dist/index220.js.map +1 -0
  269. package/dist/index221.js +5 -0
  270. package/dist/index221.js.map +1 -0
  271. package/dist/index222.js +5 -0
  272. package/dist/index222.js.map +1 -0
  273. package/dist/index223.js +148 -27
  274. package/dist/index223.js.map +1 -1
  275. package/dist/index224.js +8 -71
  276. package/dist/index224.js.map +1 -1
  277. package/dist/index225.js +9 -0
  278. package/dist/index225.js.map +1 -0
  279. package/dist/index226.js +46 -0
  280. package/dist/index226.js.map +1 -0
  281. package/dist/index227.js +24 -0
  282. package/dist/index227.js.map +1 -0
  283. package/dist/index23.js +1 -1
  284. package/dist/index234.js +31 -0
  285. package/dist/index234.js.map +1 -0
  286. package/dist/index235.js +75 -0
  287. package/dist/index235.js.map +1 -0
  288. package/dist/index24.js +3 -3
  289. package/dist/{index231.js → index242.js} +1 -1
  290. package/dist/{index231.js.map → index242.js.map} +1 -1
  291. package/dist/index244.js +11 -42
  292. package/dist/index244.js.map +1 -1
  293. package/dist/index253.js +1232 -169
  294. package/dist/index253.js.map +1 -1
  295. package/dist/index256.js +42 -18
  296. package/dist/index256.js.map +1 -1
  297. package/dist/index26.js +6 -6
  298. package/dist/index265.js +170 -2
  299. package/dist/index265.js.map +1 -1
  300. package/dist/index266.js +3 -7
  301. package/dist/index266.js.map +1 -1
  302. package/dist/index268.js +18 -49
  303. package/dist/index268.js.map +1 -1
  304. package/dist/index269.js +10 -2
  305. package/dist/index269.js.map +1 -1
  306. package/dist/index270.js +8 -74
  307. package/dist/index270.js.map +1 -1
  308. package/dist/index271.js +4 -92
  309. package/dist/index271.js.map +1 -1
  310. package/dist/index272.js +166 -48
  311. package/dist/index272.js.map +1 -1
  312. package/dist/index273.js +11 -8
  313. package/dist/index273.js.map +1 -1
  314. package/dist/index274.js +5 -4
  315. package/dist/index274.js.map +1 -1
  316. package/dist/index275.js +5 -51
  317. package/dist/index275.js.map +1 -1
  318. package/dist/index276.js +38 -2
  319. package/dist/index276.js.map +1 -1
  320. package/dist/index277.js +2 -2
  321. package/dist/index278.js +11 -0
  322. package/dist/index278.js.map +1 -0
  323. package/dist/{index267.js → index279.js} +6 -6
  324. package/dist/{index267.js.map → index279.js.map} +1 -1
  325. package/dist/index28.js +1 -1
  326. package/dist/index280.js +53 -0
  327. package/dist/index280.js.map +1 -0
  328. package/dist/index281.js +5 -0
  329. package/dist/index281.js.map +1 -0
  330. package/dist/index282.js +79 -0
  331. package/dist/index282.js.map +1 -0
  332. package/dist/index283.js +96 -0
  333. package/dist/index283.js.map +1 -0
  334. package/dist/index284.js +55 -0
  335. package/dist/index284.js.map +1 -0
  336. package/dist/index285.js +11 -0
  337. package/dist/index285.js.map +1 -0
  338. package/dist/index286.js +8 -0
  339. package/dist/index286.js.map +1 -0
  340. package/dist/index287.js +55 -0
  341. package/dist/index287.js.map +1 -0
  342. package/dist/index288.js +5 -0
  343. package/dist/index288.js.map +1 -0
  344. package/dist/index289.js +5 -0
  345. package/dist/index289.js.map +1 -0
  346. package/dist/index29.js +4 -4
  347. package/dist/index3.js +3 -3
  348. package/dist/index30.js +48 -46
  349. package/dist/index30.js.map +1 -1
  350. package/dist/index31.js +4 -4
  351. package/dist/index32.js +1 -1
  352. package/dist/index33.js +11 -10
  353. package/dist/index34.js +1 -1
  354. package/dist/index36.js +4 -4
  355. package/dist/index37.js +5 -5
  356. package/dist/index38.js +3 -3
  357. package/dist/index39.js +5 -5
  358. package/dist/index4.js +4 -4
  359. package/dist/index40.js +4 -4
  360. package/dist/index41.js +1 -1
  361. package/dist/index43.js +125 -42
  362. package/dist/index43.js.map +1 -1
  363. package/dist/index44.js +139 -101
  364. package/dist/index44.js.map +1 -1
  365. package/dist/index45.js +105 -50
  366. package/dist/index45.js.map +1 -1
  367. package/dist/index46.js +53 -142
  368. package/dist/index46.js.map +1 -1
  369. package/dist/index47.js +140 -194
  370. package/dist/index47.js.map +1 -1
  371. package/dist/index48.js +187 -26
  372. package/dist/index48.js.map +1 -1
  373. package/dist/index49.js +30 -26
  374. package/dist/index49.js.map +1 -1
  375. package/dist/index50.js +39 -0
  376. package/dist/index50.js.map +1 -0
  377. package/dist/index52.js +195 -35
  378. package/dist/index52.js.map +1 -1
  379. package/dist/index53.js +34 -32
  380. package/dist/index53.js.map +1 -1
  381. package/dist/index54.js +34 -151
  382. package/dist/index54.js.map +1 -1
  383. package/dist/index55.js +140 -72
  384. package/dist/index55.js.map +1 -1
  385. package/dist/index56.js +78 -453
  386. package/dist/index56.js.map +1 -1
  387. package/dist/index57.js +459 -96
  388. package/dist/index57.js.map +1 -1
  389. package/dist/index58.js +98 -43
  390. package/dist/index58.js.map +1 -1
  391. package/dist/index59.js +40 -35
  392. package/dist/index59.js.map +1 -1
  393. package/dist/index6.js +238 -218
  394. package/dist/index6.js.map +1 -1
  395. package/dist/index60.js +33 -87
  396. package/dist/index60.js.map +1 -1
  397. package/dist/index61.js +89 -159
  398. package/dist/index61.js.map +1 -1
  399. package/dist/index62.js +157 -143
  400. package/dist/index62.js.map +1 -1
  401. package/dist/index63.js +149 -33
  402. package/dist/index63.js.map +1 -1
  403. package/dist/index64.js +33 -86
  404. package/dist/index64.js.map +1 -1
  405. package/dist/index65.js +80 -113
  406. package/dist/index65.js.map +1 -1
  407. package/dist/index66.js +114 -73
  408. package/dist/index66.js.map +1 -1
  409. package/dist/index67.js +73 -158
  410. package/dist/index67.js.map +1 -1
  411. package/dist/index68.js +157 -312
  412. package/dist/index68.js.map +1 -1
  413. package/dist/index69.js +317 -46
  414. package/dist/index69.js.map +1 -1
  415. package/dist/index7.js +10 -9
  416. package/dist/index70.js +45 -142
  417. package/dist/index70.js.map +1 -1
  418. package/dist/index71.js +145 -12
  419. package/dist/index71.js.map +1 -1
  420. package/dist/index72.js +10 -53
  421. package/dist/index72.js.map +1 -1
  422. package/dist/index73.js +52 -110
  423. package/dist/index73.js.map +1 -1
  424. package/dist/index74.js +111 -17
  425. package/dist/index74.js.map +1 -1
  426. package/dist/index75.js +17 -64
  427. package/dist/index75.js.map +1 -1
  428. package/dist/index76.js +64 -25
  429. package/dist/index76.js.map +1 -1
  430. package/dist/index77.js +24 -105
  431. package/dist/index77.js.map +1 -1
  432. package/dist/index78.js +104 -58
  433. package/dist/index78.js.map +1 -1
  434. package/dist/index79.js +60 -19
  435. package/dist/index79.js.map +1 -1
  436. package/dist/index80.js +18 -168
  437. package/dist/index80.js.map +1 -1
  438. package/dist/index81.js +171 -18
  439. package/dist/index81.js.map +1 -1
  440. package/dist/index82.js +17 -10
  441. package/dist/index82.js.map +1 -1
  442. package/dist/index83.js +11 -5
  443. package/dist/index83.js.map +1 -1
  444. package/dist/index84.js +5 -62
  445. package/dist/index84.js.map +1 -1
  446. package/dist/index85.js +58 -23
  447. package/dist/index85.js.map +1 -1
  448. package/dist/index86.js +25 -9
  449. package/dist/index86.js.map +1 -1
  450. package/dist/index87.js +14 -0
  451. package/dist/index87.js.map +1 -0
  452. package/dist/index89.js +2 -2
  453. package/dist/index89.js.map +1 -1
  454. package/dist/index9.js +4 -4
  455. package/dist/index90.js +2 -2
  456. package/dist/index90.js.map +1 -1
  457. package/dist/index91.js +2 -2
  458. package/dist/index91.js.map +1 -1
  459. package/dist/index92.js +2 -2
  460. package/dist/index92.js.map +1 -1
  461. package/dist/index93.js +1 -1
  462. package/dist/index93.js.map +1 -1
  463. package/dist/index94.js +1 -1
  464. package/dist/index94.js.map +1 -1
  465. package/dist/index95.js +1 -1
  466. package/dist/index95.js.map +1 -1
  467. package/dist/index96.js +1 -1
  468. package/dist/index96.js.map +1 -1
  469. package/dist/index97.js +1 -1
  470. package/dist/index97.js.map +1 -1
  471. package/dist/index98.js +1 -1
  472. package/dist/index98.js.map +1 -1
  473. package/dist/index99.js +1 -1
  474. package/dist/index99.js.map +1 -1
  475. package/package.json +1 -1
  476. package/dist/index233.js +0 -15
  477. package/dist/index233.js.map +0 -1
  478. package/dist/index241.js +0 -1236
  479. package/dist/index241.js.map +0 -1
  480. package/dist/index254.js +0 -7
  481. package/dist/index254.js.map +0 -1
  482. package/dist/index257.js +0 -13
  483. package/dist/index257.js.map +0 -1
  484. package/dist/index258.js +0 -13
  485. package/dist/index258.js.map +0 -1
  486. package/dist/index259.js +0 -8
  487. package/dist/index259.js.map +0 -1
  488. package/dist/index260.js +0 -173
  489. package/dist/index260.js.map +0 -1
  490. package/dist/index261.js +0 -14
  491. package/dist/index261.js.map +0 -1
  492. package/dist/index262.js +0 -9
  493. package/dist/index262.js.map +0 -1
  494. package/dist/index263.js +0 -9
  495. package/dist/index263.js.map +0 -1
  496. package/dist/index264.js +0 -41
  497. package/dist/index264.js.map +0 -1
  498. package/dist/index51.js +0 -201
  499. package/dist/index51.js.map +0 -1
  500. package/dist/index88.js +0 -5
  501. package/dist/index88.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index253.js","sources":["../src/components/DatePicker/useDatePickerA11y.ts"],"sourcesContent":["import React, { useState, useCallback, useEffect, useMemo } from 'react';\n\nimport { useRovingFocus, RovingItemProps, RovingContainerProps, AccessibleNameInput } from '../../utils/a11y/useRovingFocus';\nimport type { DateRange } from './index';\n\nexport const getCellAriaLabel = (\n date: Date,\n isStart: boolean,\n isEnd: boolean,\n isSameStartEnd: boolean,\n singleDateSelection: boolean,\n inRange: boolean = false\n): string => {\n const base = date.toLocaleDateString('en-US', {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n if (singleDateSelection) return base;\n if (isSameStartEnd) return `${base}, start and end of range`;\n if (isStart) return `${base}, start of range`;\n if (isEnd) return `${base}, end of range`;\n if (inRange) return `${base}, in range`;\n return base;\n};\n\nexport const formatDateId = (d: Date) => {\n const y = d.getFullYear();\n const m = String(d.getMonth() + 1).padStart(2, '0');\n const dd = String(d.getDate()).padStart(2, '0');\n return `date-${y}-${m}-${dd}`;\n};\n\nconst getDaysInMonth = (year: number, month: number) => new Date(year, month + 1, 0).getDate();\n\nconst getPanelItemIds = (panelDate: Date): string[] => {\n const year = panelDate.getFullYear();\n const month = panelDate.getMonth();\n return Array.from({ length: getDaysInMonth(year, month) }, (_, i) =>\n formatDateId(new Date(year, month, i + 1))\n );\n};\n\nconst getPanelDefaultFocusId = (panelDate: Date, itemIds: string[], selectedRange: DateRange): string => {\n const year = panelDate.getFullYear();\n const month = panelDate.getMonth();\n const isInPanel = (d: Date) => d.getFullYear() === year && d.getMonth() === month;\n\n // Prefer startDate if it falls in this panel\n if (selectedRange.startDate && isInPanel(selectedRange.startDate)) {\n const d = new Date(selectedRange.startDate);\n d.setHours(0, 0, 0, 0);\n const id = formatDateId(d);\n if (itemIds.includes(id)) return id;\n }\n // Fall back to endDate if it falls in this panel (e.g. right panel when start is in left panel)\n if (selectedRange.endDate && isInPanel(selectedRange.endDate)) {\n const d = new Date(selectedRange.endDate);\n d.setHours(0, 0, 0, 0);\n const id = formatDateId(d);\n if (itemIds.includes(id)) return id;\n }\n const today = new Date();\n if (isInPanel(today)) {\n const id = formatDateId(today);\n if (itemIds.includes(id)) return id;\n }\n return itemIds[0] || '';\n};\n\ninterface UseDatePickerA11yOptions {\n leftMonth: Date;\n rightMonth: Date;\n showSingleMonth: boolean;\n selectedRange: DateRange;\n onMonthChange: (date: Date, isLeft: boolean) => void;\n}\n\ninterface CellKeyDownOptions {\n isLeftCalendar: boolean;\n isDateDisabled: (date: Date) => boolean;\n handleDateClick: (date: Date) => void;\n}\n\ninterface GridCellItemInput {\n cellId: string;\n cellDate: Date;\n disabled: boolean;\n ariaLabel: string;\n ariaCurrent: 'date' | undefined;\n ariaDisabled: true | undefined;\n}\n\nexport interface GridCellElementProps {\n id: string;\n ref: (el: HTMLElement | null) => void;\n tabIndex: number;\n onFocus: () => void;\n 'aria-label': string;\n 'aria-current': 'date' | undefined;\n 'aria-disabled': true | undefined;\n onKeyDown: (e: React.KeyboardEvent) => void;\n onClick: () => void;\n}\n\ninterface UseDatePickerA11yReturn {\n getGridCellProps: (options: CellKeyDownOptions) => (item: GridCellItemInput) => GridCellElementProps;\n getLeftRovingItemProps: (id: string) => RovingItemProps;\n getRightRovingItemProps: (id: string) => RovingItemProps;\n getLeftContainerProps: (nameInput?: AccessibleNameInput) => RovingContainerProps;\n getRightContainerProps: (nameInput?: AccessibleNameInput) => RovingContainerProps;\n focusLeftItem: (id: string) => void;\n focusRightItem: (id: string) => void;\n}\n\nexport function useDatePickerA11y({\n leftMonth,\n rightMonth,\n showSingleMonth,\n selectedRange,\n onMonthChange\n}: UseDatePickerA11yOptions): UseDatePickerA11yReturn {\n const [keyboardFocusDate, setKeyboardFocusDate] = useState<Date | null>(null);\n\n const leftItemIds = useMemo(() => getPanelItemIds(leftMonth), [leftMonth]);\n const rightItemIds = useMemo(() => getPanelItemIds(rightMonth), [rightMonth]);\n\n const leftDefaultFocusId = useMemo(\n () => getPanelDefaultFocusId(leftMonth, leftItemIds, selectedRange),\n [leftMonth, leftItemIds, selectedRange]\n );\n const rightDefaultFocusId = useMemo(\n () => getPanelDefaultFocusId(rightMonth, rightItemIds, selectedRange),\n [rightMonth, rightItemIds, selectedRange]\n );\n\n const { getRovingItemProps: getLeftRovingItemProps, focusItem: focusLeftItem, getContainerProps: getLeftContainerProps } = useRovingFocus({\n itemIds: leftItemIds,\n defaultFocusedId: leftDefaultFocusId,\n orientation: 'grid',\n cols: 7,\n loop: false,\n role: 'grid'\n });\n\n const { getRovingItemProps: getRightRovingItemProps, focusItem: focusRightItem, getContainerProps: getRightContainerProps } = useRovingFocus({\n itemIds: rightItemIds,\n defaultFocusedId: rightDefaultFocusId,\n orientation: 'grid',\n cols: 7,\n loop: false,\n role: 'grid'\n });\n\n // After keyboard navigation shifts a panel to a new month, focus the target cell via roving focus refs\n useEffect(() => {\n if (!keyboardFocusDate) return;\n const id = formatDateId(keyboardFocusDate);\n if (leftItemIds.includes(id)) {\n focusLeftItem(id);\n setKeyboardFocusDate(null);\n } else if (rightItemIds.includes(id)) {\n focusRightItem(id);\n setKeyboardFocusDate(null);\n }\n }, [keyboardFocusDate, leftItemIds, rightItemIds, focusLeftItem, focusRightItem]);\n\n // Navigate the keyboard focus to a date that may be in a different month.\n // Each panel advances completely independently — never touches the other panel.\n const handleKeyboardNavigate = useCallback(\n (targetDate: Date, sourcePanel: 'left' | 'right') => {\n const isLeft = showSingleMonth || sourcePanel === 'left';\n onMonthChange(new Date(targetDate.getFullYear(), targetDate.getMonth(), 1), isLeft);\n setKeyboardFocusDate(new Date(targetDate));\n },\n [showSingleMonth, onMonthChange]\n );\n\n const getGridCellProps = useCallback(\n ({ isLeftCalendar, isDateDisabled, handleDateClick }: CellKeyDownOptions) => {\n const panel: 'left' | 'right' = isLeftCalendar ? 'left' : 'right';\n const focusPanelItem = isLeftCalendar ? focusLeftItem : focusRightItem;\n const getRovingItemProps = isLeftCalendar ? getLeftRovingItemProps : getRightRovingItemProps;\n\n const handleKeyDown = (e: React.KeyboardEvent, cellDate: Date) => {\n const cellYear = cellDate.getFullYear();\n const cellMonth = cellDate.getMonth();\n const cellDay = cellDate.getDate();\n\n const navigateTo = (targetDate: Date) => {\n if (targetDate.getFullYear() !== cellYear || targetDate.getMonth() !== cellMonth) {\n handleKeyboardNavigate(targetDate, panel);\n return;\n }\n focusPanelItem(formatDateId(targetDate));\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault(); e.stopPropagation();\n navigateTo(new Date(cellYear, cellMonth, cellDay - 1));\n break;\n case 'ArrowRight':\n e.preventDefault(); e.stopPropagation();\n navigateTo(new Date(cellYear, cellMonth, cellDay + 1));\n break;\n case 'ArrowUp':\n e.preventDefault(); e.stopPropagation();\n navigateTo(new Date(cellYear, cellMonth, cellDay - 7));\n break;\n case 'ArrowDown':\n e.preventDefault(); e.stopPropagation();\n navigateTo(new Date(cellYear, cellMonth, cellDay + 7));\n break;\n case 'Home': {\n // First day of the current week row (Sunday), clamped to month start\n e.preventDefault(); e.stopPropagation();\n const dayOfWeek = cellDate.getDay();\n const homeDate = new Date(cellYear, cellMonth, cellDay - dayOfWeek);\n const clamped = homeDate.getMonth() !== cellMonth ? new Date(cellYear, cellMonth, 1) : homeDate;\n focusPanelItem(formatDateId(clamped));\n break;\n }\n case 'End': {\n // Last day of the current week row (Saturday), clamped to month end\n e.preventDefault(); e.stopPropagation();\n const dayOfWeek = cellDate.getDay();\n const endDate = new Date(cellYear, cellMonth, cellDay + (6 - dayOfWeek));\n const daysInThisMonth = getDaysInMonth(cellYear, cellMonth);\n const clamped =\n endDate.getMonth() !== cellMonth ? new Date(cellYear, cellMonth, daysInThisMonth) : endDate;\n focusPanelItem(formatDateId(clamped));\n break;\n }\n case 'PageUp': {\n // Shift+PageUp = previous year, PageUp = previous month\n e.preventDefault(); e.stopPropagation();\n const tYear = e.shiftKey ? cellYear - 1 : cellYear;\n const tMonth = e.shiftKey ? cellMonth : cellMonth - 1;\n const tDay = Math.min(cellDay, getDaysInMonth(tYear, tMonth));\n handleKeyboardNavigate(new Date(tYear, tMonth, tDay), panel);\n break;\n }\n case 'PageDown': {\n // Shift+PageDown = next year, PageDown = next month\n e.preventDefault(); e.stopPropagation();\n const tYear = e.shiftKey ? cellYear + 1 : cellYear;\n const tMonth = e.shiftKey ? cellMonth : cellMonth + 1;\n const tDay = Math.min(cellDay, getDaysInMonth(tYear, tMonth));\n handleKeyboardNavigate(new Date(tYear, tMonth, tDay), panel);\n break;\n }\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!isDateDisabled(cellDate)) {\n handleDateClick(cellDate);\n }\n break;\n }\n };\n\n return ({ cellId, cellDate, disabled, ariaLabel, ariaCurrent, ariaDisabled }: GridCellItemInput): GridCellElementProps => {\n const rovingProps = getRovingItemProps(cellId);\n return {\n id: cellId,\n ref: rovingProps.ref,\n tabIndex: rovingProps.tabIndex,\n onFocus: rovingProps.onFocus,\n 'aria-label': ariaLabel,\n 'aria-current': ariaCurrent,\n 'aria-disabled': ariaDisabled,\n onKeyDown: (e: React.KeyboardEvent) => handleKeyDown(e, cellDate),\n onClick: () => { if (!disabled) handleDateClick(cellDate); }\n };\n };\n },\n [handleKeyboardNavigate, focusLeftItem, focusRightItem, getLeftRovingItemProps, getRightRovingItemProps]\n );\n\n return {\n getGridCellProps,\n getLeftRovingItemProps,\n getRightRovingItemProps,\n getLeftContainerProps,\n getRightContainerProps,\n focusLeftItem,\n focusRightItem\n };\n}\n"],"names":["useState","useMemo","useEffect","useCallback","useRovingFocus","getCellAriaLabel","date","isStart","isEnd","isSameStartEnd","singleDateSelection","inRange","base","toLocaleDateString","weekday","month","day","year","formatDateId","d","y","getFullYear","m","String","getMonth","padStart","dd","getDate","getDaysInMonth","Date","getPanelItemIds","panelDate","Array","from","length","_","i","getPanelDefaultFocusId","itemIds","selectedRange","isInPanel","startDate","setHours","id","includes","endDate","today","useDatePickerA11y","leftMonth","rightMonth","showSingleMonth","onMonthChange","keyboardFocusDate","setKeyboardFocusDate","leftItemIds","rightItemIds","leftDefaultFocusId","rightDefaultFocusId","getRovingItemProps","getLeftRovingItemProps","focusItem","focusLeftItem","getContainerProps","getLeftContainerProps","defaultFocusedId","orientation","cols","loop","role","getRightRovingItemProps","focusRightItem","getRightContainerProps","handleKeyboardNavigate","targetDate","sourcePanel","isLeft","getGridCellProps","isLeftCalendar","isDateDisabled","handleDateClick","panel","focusPanelItem","handleKeyDown","e","cellDate","cellYear","cellMonth","cellDay","navigateTo","key","preventDefault","stopPropagation","dayOfWeek","getDay","homeDate","clamped","daysInThisMonth","tYear","shiftKey","tMonth","tDay","Math","min","cellId","disabled","ariaLabel","ariaCurrent","ariaDisabled","rovingProps","ref","tabIndex","onFocus","onKeyDown","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"index253.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index256.js CHANGED
@@ -1,22 +1,46 @@
1
- import { useEffect as s } from "react";
2
- const u = {
3
- block: "nearest"
4
- };
5
- function m({
6
- containerRef: t,
7
- activeIndex: o,
8
- itemSelector: r = '[role="option"]',
9
- enabled: c = !0,
10
- scrollOptions: e = u
11
- }) {
12
- s(() => {
13
- if (!c || o < 0 || !t?.current)
14
- return;
15
- const n = t.current.querySelectorAll(r)[o];
16
- n && n.scrollIntoView(e);
17
- }, [o, t, r, c, e]);
1
+ import d, { forwardRef as b } from "react";
2
+ import { Button as p } from "./index4.js";
3
+ function n() {
4
+ return n = Object.assign ? Object.assign.bind() : function(a) {
5
+ for (var t = 1; t < arguments.length; t++) {
6
+ var e = arguments[t];
7
+ for (var r in e) ({}).hasOwnProperty.call(e, r) && (a[r] = e[r]);
8
+ }
9
+ return a;
10
+ }, n.apply(null, arguments);
18
11
  }
12
+ const g = /* @__PURE__ */ b(({
13
+ id: a,
14
+ label: t,
15
+ isSelected: e,
16
+ isDisabled: r = !1,
17
+ panelId: o,
18
+ tabIndex: s,
19
+ className: l = "",
20
+ automationId: u,
21
+ onClick: i,
22
+ onFocus: c,
23
+ onKeyDown: f
24
+ }, m) => /* @__PURE__ */ d.createElement(p, n({
25
+ ref: m,
26
+ type: "unstyled",
27
+ label: t,
28
+ disabled: r,
29
+ onClick: i,
30
+ className: l,
31
+ automationId: u,
32
+ role: "tab",
33
+ id: a,
34
+ "aria-selected": e
35
+ }, o ? {
36
+ "aria-controls": o
37
+ } : {}, {
38
+ tabIndex: s,
39
+ onFocus: c,
40
+ onKeyDown: f
41
+ })));
42
+ g.displayName = "TabButton";
19
43
  export {
20
- m as useScrollActiveIntoView
44
+ g as TabButton
21
45
  };
22
46
  //# sourceMappingURL=index256.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index256.js","sources":["../src/utils/a11y/useScrollActiveIntoView.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { RefObject } from 'react';\n\nconst DEFAULT_SCROLL_OPTIONS: ScrollIntoViewOptions = { block: 'nearest' };\n\nexport interface UseScrollActiveIntoViewOptions {\n /**\n * Ref to the container element\n */\n containerRef?: RefObject<HTMLElement | null>;\n \n /**\n * Index of the currently active/highlighted item (-1 if none)\n */\n activeIndex: number;\n \n /**\n * CSS selector for item elements\n * Default: '[role=\"option\"]'\n */\n itemSelector?: string;\n \n /**\n * Whether scrolling is enabled\n * Default: true\n */\n enabled?: boolean;\n \n /**\n * ScrollIntoView options\n * Default: { block: 'nearest' }\n */\n scrollOptions?: ScrollIntoViewOptions;\n}\n\n/**\n * Hook to automatically scroll the active item into view.\n * \n * Useful for aria-activedescendant patterns where DOM focus stays\n * on the container (e.g., input field) but we need to visually show\n * which descendant option is logically active.\n * \n * Common use cases:\n * - Combobox dropdown options\n * - Menu items with virtual focus\n * - Grid cells with keyboard navigation\n * - Tree view items\n * - Listbox options\n * \n * @example\n * ```tsx\n * const [highlightedIndex, setHighlightedIndex] = useState(-1);\n * const listboxRef = useRef<HTMLDivElement>(null);\n * \n * useScrollActiveIntoView({\n * containerRef: listboxRef,\n * activeIndex: highlightedIndex,\n * itemSelector: '[role=\"option\"]'\n * });\n * \n * // Now when highlightedIndex changes, the item scrolls into view\n * ```\n * \n * @example Custom scroll behavior\n * ```tsx\n * useScrollActiveIntoView({\n * containerRef: menuRef,\n * activeIndex: activeMenuIndex,\n * itemSelector: '[role=\"menuitem\"]',\n * scrollOptions: { block: 'center', behavior: 'smooth' }\n * });\n * ```\n */\nexport function useScrollActiveIntoView({\n containerRef,\n activeIndex,\n itemSelector = '[role=\"option\"]',\n enabled = true,\n scrollOptions = DEFAULT_SCROLL_OPTIONS\n}: UseScrollActiveIntoViewOptions): void {\n useEffect(() => {\n // Early returns for disabled states\n if (!enabled || activeIndex < 0 || !containerRef?.current) {\n return;\n }\n \n const container = containerRef.current;\n const items = container.querySelectorAll(itemSelector);\n const activeItem = items[activeIndex] as HTMLElement;\n \n if (activeItem) {\n activeItem.scrollIntoView(scrollOptions);\n }\n }, [activeIndex, containerRef, itemSelector, enabled, scrollOptions]);\n}\n"],"names":["useEffect","DEFAULT_SCROLL_OPTIONS","block","useScrollActiveIntoView","containerRef","activeIndex","itemSelector","enabled","scrollOptions","current","activeItem","querySelectorAll","scrollIntoView"],"mappings":"AAGA,SAAA,aAAAA,SAAA;AAAA,MAAMC,IAAgD;AAAA,EAAEC,OAAO;AAAU;AAsElE,SAASC,EAAwB;AAAA,EACtCC,cAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,cAAAA,IAAe;AAAA,EACfC,SAAAA,IAAU;AAAA,EACVC,eAAAA,IAAgBP;AACc,GAAS;AACvCD,EAAAA,EAAU,MAAM;AAEd,QAAI,CAACO,KAAWF,IAAc,KAAK,CAACD,GAAcK;AAChD;AAKF,UAAMC,IAFYN,EAAaK,QACPE,iBAAiBL,CAAY,EAC5BD,CAAW;AAEpC,IAAIK,KACFA,EAAWE,eAAeJ,CAAa;AAAA,EAE3C,GAAG,CAACH,GAAaD,GAAcE,GAAcC,GAASC,CAAa,CAAC;AACtE;"}
1
+ {"version":3,"file":"index256.js","sources":["../src/components/NavigationBar/TabButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { Button } from '../Button';\n\nexport interface TabButtonProps {\n id: string;\n label: string;\n isSelected: boolean;\n isDisabled?: boolean;\n panelId?: string;\n tabIndex: number;\n className?: string;\n automationId?: string;\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n onFocus: () => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\n\n/**\n * Internal TabButton component for NavigationBar.\n * Uses Button (unstyled) internally for consistent activation handling.\n * Supports forwardRef for focus management (roving tabindex).\n */\nexport const TabButton = forwardRef<HTMLButtonElement, TabButtonProps>(\n (\n {\n id,\n label,\n isSelected,\n isDisabled = false,\n panelId,\n tabIndex,\n className = '',\n automationId,\n onClick,\n onFocus,\n onKeyDown\n },\n ref\n ) => {\n return (\n <Button\n ref={ref}\n type=\"unstyled\"\n label={label}\n disabled={isDisabled}\n onClick={onClick}\n className={className}\n automationId={automationId}\n role=\"tab\"\n id={id}\n aria-selected={isSelected}\n {...(panelId ? { 'aria-controls': panelId } : {})}\n tabIndex={tabIndex}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTabButton.displayName = 'TabButton';\n"],"names":["TabButton","id","label","isSelected","isDisabled","panelId","tabIndex","className","automationId","onClick","onFocus","onKeyDown","ref","React","createElement","Button","_extends","type","disabled","role","displayName"],"mappings":";;;;;;;;;;;AAsBO,MAAMA,sBACX,CACE;AAAA,EACEC,IAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,YAAAA,IAAa;AAAA,EACbC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,WAAAA,IAAY;AAAA,EACZC,cAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,WAAAA;AACF,GACAC,MAGEC,gBAAAA,EAAAC,cAACC,GAAMC,EAAA;AAAA,EACLJ,KAAAA;AAAAA,EACAK,MAAK;AAAA,EACLf,OAAAA;AAAAA,EACAgB,UAAUd;AAAAA,EACVK,SAAAA;AAAAA,EACAF,WAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAW,MAAK;AAAA,EACLlB,IAAAA;AAAAA,EACA,iBAAeE;AAAAA,GACVE,IAAU;AAAA,EAAE,iBAAiBA;AAAAA,IAAY,IAAE;AAAA,EAChDC,UAAAA;AAAAA,EACAI,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,CAAqB,CACtB,CAGP;AAEAX,EAAUoB,cAAc;"}
package/dist/index26.js CHANGED
@@ -3,12 +3,12 @@ import { Popover as qe } from "./index19.js";
3
3
  import { Icon as we } from "./index6.js";
4
4
  import { Checkbox as He } from "./index24.js";
5
5
  import { Button as Se } from "./index4.js";
6
- import { InputWithIcon as Me } from "./index57.js";
7
- import { useStableId as X } from "./index214.js";
8
- import { useCombobox as xe } from "./index73.js";
9
- import { getFocusableElements as Ue } from "./index76.js";
10
- import "./index77.js";
11
- import { announce as je } from "./index80.js";
6
+ import { InputWithIcon as Me } from "./index58.js";
7
+ import { useStableId as X } from "./index225.js";
8
+ import { useCombobox as xe } from "./index74.js";
9
+ import { getFocusableElements as Ue } from "./index77.js";
10
+ import "./index78.js";
11
+ import { announce as je } from "./index81.js";
12
12
  function y() {
13
13
  return y = Object.assign ? Object.assign.bind() : function(t) {
14
14
  for (var h = 1; h < arguments.length; h++) {
package/dist/index265.js CHANGED
@@ -1,5 +1,173 @@
1
- var p = { exports: {} };
1
+ import { useState as W, useMemo as F, useEffect as N, useCallback as S } from "react";
2
+ import { useRovingFocus as C } from "./index76.js";
3
+ const z = (e, n, s, g, m, D = !1) => {
4
+ const i = e.toLocaleDateString("en-US", {
5
+ weekday: "long",
6
+ month: "long",
7
+ day: "numeric",
8
+ year: "numeric"
9
+ });
10
+ return m ? i : g ? `${i}, start and end of range` : n ? `${i}, start of range` : s ? `${i}, end of range` : D ? `${i}, in range` : i;
11
+ }, y = (e) => {
12
+ const n = e.getFullYear(), s = String(e.getMonth() + 1).padStart(2, "0"), g = String(e.getDate()).padStart(2, "0");
13
+ return `date-${n}-${s}-${g}`;
14
+ }, k = (e, n) => new Date(e, n + 1, 0).getDate(), L = (e) => {
15
+ const n = e.getFullYear(), s = e.getMonth();
16
+ return Array.from({
17
+ length: k(n, s)
18
+ }, (g, m) => y(new Date(n, s, m + 1)));
19
+ }, x = (e, n, s) => {
20
+ const g = e.getFullYear(), m = e.getMonth(), D = (a) => a.getFullYear() === g && a.getMonth() === m;
21
+ if (s.startDate && D(s.startDate)) {
22
+ const a = new Date(s.startDate);
23
+ a.setHours(0, 0, 0, 0);
24
+ const l = y(a);
25
+ if (n.includes(l)) return l;
26
+ }
27
+ if (s.endDate && D(s.endDate)) {
28
+ const a = new Date(s.endDate);
29
+ a.setHours(0, 0, 0, 0);
30
+ const l = y(a);
31
+ if (n.includes(l)) return l;
32
+ }
33
+ const i = /* @__PURE__ */ new Date();
34
+ if (D(i)) {
35
+ const a = y(i);
36
+ if (n.includes(a)) return a;
37
+ }
38
+ return n[0] || "";
39
+ };
40
+ function B({
41
+ leftMonth: e,
42
+ rightMonth: n,
43
+ showSingleMonth: s,
44
+ selectedRange: g,
45
+ onMonthChange: m
46
+ }) {
47
+ const [D, i] = W(null), a = F(() => L(e), [e]), l = F(() => L(n), [n]), E = F(() => x(e, a, g), [e, a, g]), H = F(() => x(n, l, g), [n, l, g]), {
48
+ getRovingItemProps: Y,
49
+ focusItem: I,
50
+ getContainerProps: U
51
+ } = C({
52
+ itemIds: a,
53
+ defaultFocusedId: E,
54
+ orientation: "grid",
55
+ cols: 7,
56
+ loop: !1,
57
+ role: "grid"
58
+ }), {
59
+ getRovingItemProps: M,
60
+ focusItem: h,
61
+ getContainerProps: G
62
+ } = C({
63
+ itemIds: l,
64
+ defaultFocusedId: H,
65
+ orientation: "grid",
66
+ cols: 7,
67
+ loop: !1,
68
+ role: "grid"
69
+ });
70
+ N(() => {
71
+ if (!D) return;
72
+ const f = y(D);
73
+ a.includes(f) ? (I(f), i(null)) : l.includes(f) && (h(f), i(null));
74
+ }, [D, a, l, I, h]);
75
+ const b = S((f, K) => {
76
+ const v = s || K === "left";
77
+ m(new Date(f.getFullYear(), f.getMonth(), 1), v), i(new Date(f));
78
+ }, [s, m]);
79
+ return {
80
+ getGridCellProps: S(({
81
+ isLeftCalendar: f,
82
+ isDateDisabled: K,
83
+ handleDateClick: v
84
+ }) => {
85
+ const A = f ? "left" : "right", $ = f ? I : h, O = f ? Y : M, R = (t, p) => {
86
+ const c = p.getFullYear(), o = p.getMonth(), d = p.getDate(), w = (r) => {
87
+ if (r.getFullYear() !== c || r.getMonth() !== o) {
88
+ b(r, A);
89
+ return;
90
+ }
91
+ $(y(r));
92
+ };
93
+ switch (t.key) {
94
+ case "ArrowLeft":
95
+ t.preventDefault(), t.stopPropagation(), w(new Date(c, o, d - 1));
96
+ break;
97
+ case "ArrowRight":
98
+ t.preventDefault(), t.stopPropagation(), w(new Date(c, o, d + 1));
99
+ break;
100
+ case "ArrowUp":
101
+ t.preventDefault(), t.stopPropagation(), w(new Date(c, o, d - 7));
102
+ break;
103
+ case "ArrowDown":
104
+ t.preventDefault(), t.stopPropagation(), w(new Date(c, o, d + 7));
105
+ break;
106
+ case "Home": {
107
+ t.preventDefault(), t.stopPropagation();
108
+ const r = p.getDay(), u = new Date(c, o, d - r), P = u.getMonth() !== o ? new Date(c, o, 1) : u;
109
+ $(y(P));
110
+ break;
111
+ }
112
+ case "End": {
113
+ t.preventDefault(), t.stopPropagation();
114
+ const r = p.getDay(), u = new Date(c, o, d + (6 - r)), P = k(c, o), T = u.getMonth() !== o ? new Date(c, o, P) : u;
115
+ $(y(T));
116
+ break;
117
+ }
118
+ case "PageUp": {
119
+ t.preventDefault(), t.stopPropagation();
120
+ const r = t.shiftKey ? c - 1 : c, u = t.shiftKey ? o : o - 1, P = Math.min(d, k(r, u));
121
+ b(new Date(r, u, P), A);
122
+ break;
123
+ }
124
+ case "PageDown": {
125
+ t.preventDefault(), t.stopPropagation();
126
+ const r = t.shiftKey ? c + 1 : c, u = t.shiftKey ? o : o + 1, P = Math.min(d, k(r, u));
127
+ b(new Date(r, u, P), A);
128
+ break;
129
+ }
130
+ case "Enter":
131
+ case " ":
132
+ t.preventDefault(), K(p) || v(p);
133
+ break;
134
+ }
135
+ };
136
+ return ({
137
+ cellId: t,
138
+ cellDate: p,
139
+ disabled: c,
140
+ ariaLabel: o,
141
+ ariaCurrent: d,
142
+ ariaDisabled: w
143
+ }) => {
144
+ const r = O(t);
145
+ return {
146
+ id: t,
147
+ ref: r.ref,
148
+ tabIndex: r.tabIndex,
149
+ onFocus: r.onFocus,
150
+ "aria-label": o,
151
+ "aria-current": d,
152
+ "aria-disabled": w,
153
+ onKeyDown: (u) => R(u, p),
154
+ onClick: () => {
155
+ c || v(p);
156
+ }
157
+ };
158
+ };
159
+ }, [b, I, h, Y, M]),
160
+ getLeftRovingItemProps: Y,
161
+ getRightRovingItemProps: M,
162
+ getLeftContainerProps: U,
163
+ getRightContainerProps: G,
164
+ focusLeftItem: I,
165
+ focusRightItem: h
166
+ };
167
+ }
2
168
  export {
3
- p as __module
169
+ y as formatDateId,
170
+ z as getCellAriaLabel,
171
+ B as useDatePickerA11y
4
172
  };
5
173
  //# sourceMappingURL=index265.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index265.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index265.js","sources":["../src/components/DatePicker/useDatePickerA11y.ts"],"sourcesContent":["import React, { useState, useCallback, useEffect, useMemo } from 'react';\n\nimport { useRovingFocus, RovingItemProps, RovingContainerProps, AccessibleNameInput } from '../../utils/a11y/useRovingFocus';\nimport type { DateRange } from './index';\n\nexport const getCellAriaLabel = (\n date: Date,\n isStart: boolean,\n isEnd: boolean,\n isSameStartEnd: boolean,\n singleDateSelection: boolean,\n inRange: boolean = false\n): string => {\n const base = date.toLocaleDateString('en-US', {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n if (singleDateSelection) return base;\n if (isSameStartEnd) return `${base}, start and end of range`;\n if (isStart) return `${base}, start of range`;\n if (isEnd) return `${base}, end of range`;\n if (inRange) return `${base}, in range`;\n return base;\n};\n\nexport const formatDateId = (d: Date) => {\n const y = d.getFullYear();\n const m = String(d.getMonth() + 1).padStart(2, '0');\n const dd = String(d.getDate()).padStart(2, '0');\n return `date-${y}-${m}-${dd}`;\n};\n\nconst getDaysInMonth = (year: number, month: number) => new Date(year, month + 1, 0).getDate();\n\nconst getPanelItemIds = (panelDate: Date): string[] => {\n const year = panelDate.getFullYear();\n const month = panelDate.getMonth();\n return Array.from({ length: getDaysInMonth(year, month) }, (_, i) =>\n formatDateId(new Date(year, month, i + 1))\n );\n};\n\nconst getPanelDefaultFocusId = (panelDate: Date, itemIds: string[], selectedRange: DateRange): string => {\n const year = panelDate.getFullYear();\n const month = panelDate.getMonth();\n const isInPanel = (d: Date) => d.getFullYear() === year && d.getMonth() === month;\n\n // Prefer startDate if it falls in this panel\n if (selectedRange.startDate && isInPanel(selectedRange.startDate)) {\n const d = new Date(selectedRange.startDate);\n d.setHours(0, 0, 0, 0);\n const id = formatDateId(d);\n if (itemIds.includes(id)) return id;\n }\n // Fall back to endDate if it falls in this panel (e.g. right panel when start is in left panel)\n if (selectedRange.endDate && isInPanel(selectedRange.endDate)) {\n const d = new Date(selectedRange.endDate);\n d.setHours(0, 0, 0, 0);\n const id = formatDateId(d);\n if (itemIds.includes(id)) return id;\n }\n const today = new Date();\n if (isInPanel(today)) {\n const id = formatDateId(today);\n if (itemIds.includes(id)) return id;\n }\n return itemIds[0] || '';\n};\n\ninterface UseDatePickerA11yOptions {\n leftMonth: Date;\n rightMonth: Date;\n showSingleMonth: boolean;\n selectedRange: DateRange;\n onMonthChange: (date: Date, isLeft: boolean) => void;\n}\n\ninterface CellKeyDownOptions {\n isLeftCalendar: boolean;\n isDateDisabled: (date: Date) => boolean;\n handleDateClick: (date: Date) => void;\n}\n\ninterface GridCellItemInput {\n cellId: string;\n cellDate: Date;\n disabled: boolean;\n ariaLabel: string;\n ariaCurrent: 'date' | undefined;\n ariaDisabled: true | undefined;\n}\n\nexport interface GridCellElementProps {\n id: string;\n ref: (el: HTMLElement | null) => void;\n tabIndex: number;\n onFocus: () => void;\n 'aria-label': string;\n 'aria-current': 'date' | undefined;\n 'aria-disabled': true | undefined;\n onKeyDown: (e: React.KeyboardEvent) => void;\n onClick: () => void;\n}\n\ninterface UseDatePickerA11yReturn {\n getGridCellProps: (options: CellKeyDownOptions) => (item: GridCellItemInput) => GridCellElementProps;\n getLeftRovingItemProps: (id: string) => RovingItemProps;\n getRightRovingItemProps: (id: string) => RovingItemProps;\n getLeftContainerProps: (nameInput?: AccessibleNameInput) => RovingContainerProps;\n getRightContainerProps: (nameInput?: AccessibleNameInput) => RovingContainerProps;\n focusLeftItem: (id: string) => void;\n focusRightItem: (id: string) => void;\n}\n\nexport function useDatePickerA11y({\n leftMonth,\n rightMonth,\n showSingleMonth,\n selectedRange,\n onMonthChange\n}: UseDatePickerA11yOptions): UseDatePickerA11yReturn {\n const [keyboardFocusDate, setKeyboardFocusDate] = useState<Date | null>(null);\n\n const leftItemIds = useMemo(() => getPanelItemIds(leftMonth), [leftMonth]);\n const rightItemIds = useMemo(() => getPanelItemIds(rightMonth), [rightMonth]);\n\n const leftDefaultFocusId = useMemo(\n () => getPanelDefaultFocusId(leftMonth, leftItemIds, selectedRange),\n [leftMonth, leftItemIds, selectedRange]\n );\n const rightDefaultFocusId = useMemo(\n () => getPanelDefaultFocusId(rightMonth, rightItemIds, selectedRange),\n [rightMonth, rightItemIds, selectedRange]\n );\n\n const { getRovingItemProps: getLeftRovingItemProps, focusItem: focusLeftItem, getContainerProps: getLeftContainerProps } = useRovingFocus({\n itemIds: leftItemIds,\n defaultFocusedId: leftDefaultFocusId,\n orientation: 'grid',\n cols: 7,\n loop: false,\n role: 'grid'\n });\n\n const { getRovingItemProps: getRightRovingItemProps, focusItem: focusRightItem, getContainerProps: getRightContainerProps } = useRovingFocus({\n itemIds: rightItemIds,\n defaultFocusedId: rightDefaultFocusId,\n orientation: 'grid',\n cols: 7,\n loop: false,\n role: 'grid'\n });\n\n // After keyboard navigation shifts a panel to a new month, focus the target cell via roving focus refs\n useEffect(() => {\n if (!keyboardFocusDate) return;\n const id = formatDateId(keyboardFocusDate);\n if (leftItemIds.includes(id)) {\n focusLeftItem(id);\n setKeyboardFocusDate(null);\n } else if (rightItemIds.includes(id)) {\n focusRightItem(id);\n setKeyboardFocusDate(null);\n }\n }, [keyboardFocusDate, leftItemIds, rightItemIds, focusLeftItem, focusRightItem]);\n\n // Navigate the keyboard focus to a date that may be in a different month.\n // Each panel advances completely independently — never touches the other panel.\n const handleKeyboardNavigate = useCallback(\n (targetDate: Date, sourcePanel: 'left' | 'right') => {\n const isLeft = showSingleMonth || sourcePanel === 'left';\n onMonthChange(new Date(targetDate.getFullYear(), targetDate.getMonth(), 1), isLeft);\n setKeyboardFocusDate(new Date(targetDate));\n },\n [showSingleMonth, onMonthChange]\n );\n\n const getGridCellProps = useCallback(\n ({ isLeftCalendar, isDateDisabled, handleDateClick }: CellKeyDownOptions) => {\n const panel: 'left' | 'right' = isLeftCalendar ? 'left' : 'right';\n const focusPanelItem = isLeftCalendar ? focusLeftItem : focusRightItem;\n const getRovingItemProps = isLeftCalendar ? getLeftRovingItemProps : getRightRovingItemProps;\n\n const handleKeyDown = (e: React.KeyboardEvent, cellDate: Date) => {\n const cellYear = cellDate.getFullYear();\n const cellMonth = cellDate.getMonth();\n const cellDay = cellDate.getDate();\n\n const navigateTo = (targetDate: Date) => {\n if (targetDate.getFullYear() !== cellYear || targetDate.getMonth() !== cellMonth) {\n handleKeyboardNavigate(targetDate, panel);\n return;\n }\n focusPanelItem(formatDateId(targetDate));\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault(); e.stopPropagation();\n navigateTo(new Date(cellYear, cellMonth, cellDay - 1));\n break;\n case 'ArrowRight':\n e.preventDefault(); e.stopPropagation();\n navigateTo(new Date(cellYear, cellMonth, cellDay + 1));\n break;\n case 'ArrowUp':\n e.preventDefault(); e.stopPropagation();\n navigateTo(new Date(cellYear, cellMonth, cellDay - 7));\n break;\n case 'ArrowDown':\n e.preventDefault(); e.stopPropagation();\n navigateTo(new Date(cellYear, cellMonth, cellDay + 7));\n break;\n case 'Home': {\n // First day of the current week row (Sunday), clamped to month start\n e.preventDefault(); e.stopPropagation();\n const dayOfWeek = cellDate.getDay();\n const homeDate = new Date(cellYear, cellMonth, cellDay - dayOfWeek);\n const clamped = homeDate.getMonth() !== cellMonth ? new Date(cellYear, cellMonth, 1) : homeDate;\n focusPanelItem(formatDateId(clamped));\n break;\n }\n case 'End': {\n // Last day of the current week row (Saturday), clamped to month end\n e.preventDefault(); e.stopPropagation();\n const dayOfWeek = cellDate.getDay();\n const endDate = new Date(cellYear, cellMonth, cellDay + (6 - dayOfWeek));\n const daysInThisMonth = getDaysInMonth(cellYear, cellMonth);\n const clamped =\n endDate.getMonth() !== cellMonth ? new Date(cellYear, cellMonth, daysInThisMonth) : endDate;\n focusPanelItem(formatDateId(clamped));\n break;\n }\n case 'PageUp': {\n // Shift+PageUp = previous year, PageUp = previous month\n e.preventDefault(); e.stopPropagation();\n const tYear = e.shiftKey ? cellYear - 1 : cellYear;\n const tMonth = e.shiftKey ? cellMonth : cellMonth - 1;\n const tDay = Math.min(cellDay, getDaysInMonth(tYear, tMonth));\n handleKeyboardNavigate(new Date(tYear, tMonth, tDay), panel);\n break;\n }\n case 'PageDown': {\n // Shift+PageDown = next year, PageDown = next month\n e.preventDefault(); e.stopPropagation();\n const tYear = e.shiftKey ? cellYear + 1 : cellYear;\n const tMonth = e.shiftKey ? cellMonth : cellMonth + 1;\n const tDay = Math.min(cellDay, getDaysInMonth(tYear, tMonth));\n handleKeyboardNavigate(new Date(tYear, tMonth, tDay), panel);\n break;\n }\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!isDateDisabled(cellDate)) {\n handleDateClick(cellDate);\n }\n break;\n }\n };\n\n return ({ cellId, cellDate, disabled, ariaLabel, ariaCurrent, ariaDisabled }: GridCellItemInput): GridCellElementProps => {\n const rovingProps = getRovingItemProps(cellId);\n return {\n id: cellId,\n ref: rovingProps.ref,\n tabIndex: rovingProps.tabIndex,\n onFocus: rovingProps.onFocus,\n 'aria-label': ariaLabel,\n 'aria-current': ariaCurrent,\n 'aria-disabled': ariaDisabled,\n onKeyDown: (e: React.KeyboardEvent) => handleKeyDown(e, cellDate),\n onClick: () => { if (!disabled) handleDateClick(cellDate); }\n };\n };\n },\n [handleKeyboardNavigate, focusLeftItem, focusRightItem, getLeftRovingItemProps, getRightRovingItemProps]\n );\n\n return {\n getGridCellProps,\n getLeftRovingItemProps,\n getRightRovingItemProps,\n getLeftContainerProps,\n getRightContainerProps,\n focusLeftItem,\n focusRightItem\n };\n}\n"],"names":["useState","useMemo","useEffect","useCallback","useRovingFocus","getCellAriaLabel","date","isStart","isEnd","isSameStartEnd","singleDateSelection","inRange","base","toLocaleDateString","weekday","month","day","year","formatDateId","d","y","getFullYear","m","String","getMonth","padStart","dd","getDate","getDaysInMonth","Date","getPanelItemIds","panelDate","Array","from","length","_","i","getPanelDefaultFocusId","itemIds","selectedRange","isInPanel","startDate","setHours","id","includes","endDate","today","useDatePickerA11y","leftMonth","rightMonth","showSingleMonth","onMonthChange","keyboardFocusDate","setKeyboardFocusDate","leftItemIds","rightItemIds","leftDefaultFocusId","rightDefaultFocusId","getRovingItemProps","getLeftRovingItemProps","focusItem","focusLeftItem","getContainerProps","getLeftContainerProps","defaultFocusedId","orientation","cols","loop","role","getRightRovingItemProps","focusRightItem","getRightContainerProps","handleKeyboardNavigate","targetDate","sourcePanel","isLeft","getGridCellProps","isLeftCalendar","isDateDisabled","handleDateClick","panel","focusPanelItem","handleKeyDown","e","cellDate","cellYear","cellMonth","cellDay","navigateTo","key","preventDefault","stopPropagation","dayOfWeek","getDay","homeDate","clamped","daysInThisMonth","tYear","shiftKey","tMonth","tDay","Math","min","cellId","disabled","ariaLabel","ariaCurrent","ariaDisabled","rovingProps","ref","tabIndex","onFocus","onKeyDown","onClick"],"mappings":"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"}
package/dist/index266.js CHANGED
@@ -1,11 +1,7 @@
1
- import { __module as e } from "./index269.js";
2
- import { __require as o } from "./index270.js";
3
- import { __require as t } from "./index271.js";
4
- var r;
5
- function p() {
6
- return r ? e.exports : (r = 1, process.env.NODE_ENV === "production" ? e.exports = o() : e.exports = t(), e.exports);
1
+ function n(e) {
2
+ return new Promise((t) => setTimeout(t, e));
7
3
  }
8
4
  export {
9
- p as __require
5
+ n as delay
10
6
  };
11
7
  //# sourceMappingURL=index266.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index266.js","sources":["../node_modules/prop-types/node_modules/react-is/index.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n"],"names":["reactIsModule","require$$0","require$$1"],"mappings":";;;;;iCAEI,QAAQ,IAAI,aAAa,eAC3BA,EAAA,UAAiBC,EAAA,IAEjBD,EAAA,UAAiBE,EAAA;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index266.js","sources":["../src/utils/delay.ts"],"sourcesContent":["/**\n * Delays execution by the specified number of milliseconds\n * @param ms - The number of milliseconds to delay\n * @returns A Promise that resolves after the specified delay\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n} "],"names":["delay","ms","Promise","resolve","setTimeout"],"mappings":"AAKO,SAASA,EAAMC,GAA2B;AAC7C,SAAO,IAAIC,QAAQC,CAAAA,MAAWC,WAAWD,GAASF,CAAE,CAAC;AACzD;"}
package/dist/index268.js CHANGED
@@ -1,53 +1,22 @@
1
- import { __require as u } from "./index273.js";
2
- var o, p;
3
- function g() {
4
- if (p) return o;
5
- p = 1;
6
- var c = u();
7
- function n() {
8
- }
9
- function i() {
10
- }
11
- return i.resetWarningCache = n, o = function() {
12
- function e(h, y, m, f, l, s) {
13
- if (s !== c) {
14
- var a = new Error(
15
- "Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types"
16
- );
17
- throw a.name = "Invariant Violation", a;
18
- }
19
- }
20
- e.isRequired = e;
21
- function r() {
22
- return e;
23
- }
24
- var t = {
25
- array: e,
26
- bigint: e,
27
- bool: e,
28
- func: e,
29
- number: e,
30
- object: e,
31
- string: e,
32
- symbol: e,
33
- any: e,
34
- arrayOf: r,
35
- element: e,
36
- elementType: e,
37
- instanceOf: r,
38
- node: e,
39
- objectOf: r,
40
- oneOf: r,
41
- oneOfType: r,
42
- shape: r,
43
- exact: r,
44
- checkPropTypes: i,
45
- resetWarningCache: n
46
- };
47
- return t.PropTypes = t, t;
48
- }, o;
1
+ import { useEffect as s } from "react";
2
+ const u = {
3
+ block: "nearest"
4
+ };
5
+ function m({
6
+ containerRef: t,
7
+ activeIndex: o,
8
+ itemSelector: r = '[role="option"]',
9
+ enabled: c = !0,
10
+ scrollOptions: e = u
11
+ }) {
12
+ s(() => {
13
+ if (!c || o < 0 || !t?.current)
14
+ return;
15
+ const n = t.current.querySelectorAll(r)[o];
16
+ n && n.scrollIntoView(e);
17
+ }, [o, t, r, c, e]);
49
18
  }
50
19
  export {
51
- g as __require
20
+ m as useScrollActiveIntoView
52
21
  };
53
22
  //# sourceMappingURL=index268.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index268.js","sources":["../node_modules/prop-types/factoryWithThrowingShims.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n"],"names":["ReactPropTypesSecret","require$$0","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","props","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes"],"mappings":";;;;;AASA,MAAIA,IAAuBC,EAAA;AAE3B,WAASC,IAAgB;AAAA,EAAA;AACzB,WAASC,IAAyB;AAAA,EAAA;AAClC,SAAAA,EAAuB,oBAAoBD,GAE3CE,IAAiB,WAAW;AAC1B,aAASC,EAAKC,GAAOC,GAAUC,GAAeC,GAAUC,GAAcC,GAAQ;AAC5E,UAAIA,MAAWX,GAIf;AAAA,YAAIY,IAAM,IAAI;AAAA,UACZ;AAAA,QAGN;AACI,cAAAA,EAAI,OAAO,uBACLA;AAAA;AAAA,IACV;AACE,IAAAP,EAAK,aAAaA;AAClB,aAASQ,IAAU;AACjB,aAAOR;AAAA,IACX;AAGE,QAAIS,IAAiB;AAAA,MACnB,OAAOT;AAAA,MACP,QAAQA;AAAA,MACR,MAAMA;AAAA,MACN,MAAMA;AAAA,MACN,QAAQA;AAAA,MACR,QAAQA;AAAA,MACR,QAAQA;AAAA,MACR,QAAQA;AAAA,MAER,KAAKA;AAAA,MACL,SAASQ;AAAA,MACT,SAASR;AAAA,MACT,aAAaA;AAAA,MACb,YAAYQ;AAAA,MACZ,MAAMR;AAAA,MACN,UAAUQ;AAAA,MACV,OAAOA;AAAA,MACP,WAAWA;AAAA,MACX,OAAOA;AAAA,MACP,OAAOA;AAAA,MAEP,gBAAgBV;AAAA,MAChB,mBAAmBD;AAAA,IACvB;AAEE,WAAAY,EAAe,YAAYA,GAEpBA;AAAA,EACT;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index268.js","sources":["../src/utils/a11y/useScrollActiveIntoView.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { RefObject } from 'react';\n\nconst DEFAULT_SCROLL_OPTIONS: ScrollIntoViewOptions = { block: 'nearest' };\n\nexport interface UseScrollActiveIntoViewOptions {\n /**\n * Ref to the container element\n */\n containerRef?: RefObject<HTMLElement | null>;\n \n /**\n * Index of the currently active/highlighted item (-1 if none)\n */\n activeIndex: number;\n \n /**\n * CSS selector for item elements\n * Default: '[role=\"option\"]'\n */\n itemSelector?: string;\n \n /**\n * Whether scrolling is enabled\n * Default: true\n */\n enabled?: boolean;\n \n /**\n * ScrollIntoView options\n * Default: { block: 'nearest' }\n */\n scrollOptions?: ScrollIntoViewOptions;\n}\n\n/**\n * Hook to automatically scroll the active item into view.\n * \n * Useful for aria-activedescendant patterns where DOM focus stays\n * on the container (e.g., input field) but we need to visually show\n * which descendant option is logically active.\n * \n * Common use cases:\n * - Combobox dropdown options\n * - Menu items with virtual focus\n * - Grid cells with keyboard navigation\n * - Tree view items\n * - Listbox options\n * \n * @example\n * ```tsx\n * const [highlightedIndex, setHighlightedIndex] = useState(-1);\n * const listboxRef = useRef<HTMLDivElement>(null);\n * \n * useScrollActiveIntoView({\n * containerRef: listboxRef,\n * activeIndex: highlightedIndex,\n * itemSelector: '[role=\"option\"]'\n * });\n * \n * // Now when highlightedIndex changes, the item scrolls into view\n * ```\n * \n * @example Custom scroll behavior\n * ```tsx\n * useScrollActiveIntoView({\n * containerRef: menuRef,\n * activeIndex: activeMenuIndex,\n * itemSelector: '[role=\"menuitem\"]',\n * scrollOptions: { block: 'center', behavior: 'smooth' }\n * });\n * ```\n */\nexport function useScrollActiveIntoView({\n containerRef,\n activeIndex,\n itemSelector = '[role=\"option\"]',\n enabled = true,\n scrollOptions = DEFAULT_SCROLL_OPTIONS\n}: UseScrollActiveIntoViewOptions): void {\n useEffect(() => {\n // Early returns for disabled states\n if (!enabled || activeIndex < 0 || !containerRef?.current) {\n return;\n }\n \n const container = containerRef.current;\n const items = container.querySelectorAll(itemSelector);\n const activeItem = items[activeIndex] as HTMLElement;\n \n if (activeItem) {\n activeItem.scrollIntoView(scrollOptions);\n }\n }, [activeIndex, containerRef, itemSelector, enabled, scrollOptions]);\n}\n"],"names":["useEffect","DEFAULT_SCROLL_OPTIONS","block","useScrollActiveIntoView","containerRef","activeIndex","itemSelector","enabled","scrollOptions","current","activeItem","querySelectorAll","scrollIntoView"],"mappings":"AAGA,SAAA,aAAAA,SAAA;AAAA,MAAMC,IAAgD;AAAA,EAAEC,OAAO;AAAU;AAsElE,SAASC,EAAwB;AAAA,EACtCC,cAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,cAAAA,IAAe;AAAA,EACfC,SAAAA,IAAU;AAAA,EACVC,eAAAA,IAAgBP;AACc,GAAS;AACvCD,EAAAA,EAAU,MAAM;AAEd,QAAI,CAACO,KAAWF,IAAc,KAAK,CAACD,GAAcK;AAChD;AAKF,UAAMC,IAFYN,EAAaK,QACPE,iBAAiBL,CAAY,EAC5BD,CAAW;AAEpC,IAAIK,KACFA,EAAWE,eAAeJ,CAAa;AAAA,EAE3C,GAAG,CAACH,GAAaD,GAAcE,GAAcC,GAASC,CAAa,CAAC;AACtE;"}
package/dist/index269.js CHANGED
@@ -1,5 +1,13 @@
1
- var e = { exports: {} };
1
+ function r(t, i) {
2
+ if (t == null) return {};
3
+ var o = {};
4
+ for (var e in t) if ({}.hasOwnProperty.call(t, e)) {
5
+ if (i.indexOf(e) !== -1) continue;
6
+ o[e] = t[e];
7
+ }
8
+ return o;
9
+ }
2
10
  export {
3
- e as __module
11
+ r as default
4
12
  };
5
13
  //# sourceMappingURL=index269.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index269.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index269.js","sources":["../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };"],"names":["_objectWithoutPropertiesLoose","r","e","t","n"],"mappings":"AAAA,SAASA,EAA8BC,GAAGC,GAAG;AAC3C,MAAYD,KAAR,KAAW,QAAO,CAAA;AACtB,MAAIE,IAAI,CAAA;AACR,WAASC,KAAKH,EAAG,KAAI,CAAA,EAAG,eAAe,KAAKA,GAAGG,CAAC,GAAG;AACjD,QAAWF,EAAE,QAAQE,CAAC,MAAlB,GAAqB;AACzB,IAAAD,EAAEC,CAAC,IAAIH,EAAEG,CAAC;AAAA,EACZ;AACA,SAAOD;AACT;","x_google_ignoreList":[0]}
package/dist/index270.js CHANGED
@@ -1,79 +1,13 @@
1
- import { __exports as r } from "./index276.js";
2
- /** @license React v16.13.1
3
- * react-is.production.min.js
4
- *
5
- * Copyright (c) Facebook, Inc. and its affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */
10
- var _;
11
- function g() {
12
- if (_) return r;
13
- _ = 1;
14
- var t = typeof Symbol == "function" && Symbol.for, a = t ? Symbol.for("react.element") : 60103, b = t ? Symbol.for("react.portal") : 60106, n = t ? Symbol.for("react.fragment") : 60107, c = t ? Symbol.for("react.strict_mode") : 60108, f = t ? Symbol.for("react.profiler") : 60114, i = t ? Symbol.for("react.provider") : 60109, s = t ? Symbol.for("react.context") : 60110, d = t ? Symbol.for("react.async_mode") : 60111, u = t ? Symbol.for("react.concurrent_mode") : 60111, y = t ? Symbol.for("react.forward_ref") : 60112, l = t ? Symbol.for("react.suspense") : 60113, x = t ? Symbol.for("react.suspense_list") : 60120, m = t ? Symbol.for("react.memo") : 60115, p = t ? Symbol.for("react.lazy") : 60116, C = t ? Symbol.for("react.block") : 60121, M = t ? Symbol.for("react.fundamental") : 60117, v = t ? Symbol.for("react.responder") : 60118, w = t ? Symbol.for("react.scope") : 60119;
15
- function o(e) {
16
- if (typeof e == "object" && e !== null) {
17
- var S = e.$$typeof;
18
- switch (S) {
19
- case a:
20
- switch (e = e.type, e) {
21
- case d:
22
- case u:
23
- case n:
24
- case f:
25
- case c:
26
- case l:
27
- return e;
28
- default:
29
- switch (e = e && e.$$typeof, e) {
30
- case s:
31
- case y:
32
- case p:
33
- case m:
34
- case i:
35
- return e;
36
- default:
37
- return S;
38
- }
39
- }
40
- case b:
41
- return S;
42
- }
1
+ function e() {
2
+ return e = Object.assign ? Object.assign.bind() : function(t) {
3
+ for (var n = 1; n < arguments.length; n++) {
4
+ var a = arguments[n];
5
+ for (var r in a) ({}).hasOwnProperty.call(a, r) && (t[r] = a[r]);
43
6
  }
44
- }
45
- function $(e) {
46
- return o(e) === u;
47
- }
48
- return r.AsyncMode = d, r.ConcurrentMode = u, r.ContextConsumer = s, r.ContextProvider = i, r.Element = a, r.ForwardRef = y, r.Fragment = n, r.Lazy = p, r.Memo = m, r.Portal = b, r.Profiler = f, r.StrictMode = c, r.Suspense = l, r.isAsyncMode = function(e) {
49
- return $(e) || o(e) === d;
50
- }, r.isConcurrentMode = $, r.isContextConsumer = function(e) {
51
- return o(e) === s;
52
- }, r.isContextProvider = function(e) {
53
- return o(e) === i;
54
- }, r.isElement = function(e) {
55
- return typeof e == "object" && e !== null && e.$$typeof === a;
56
- }, r.isForwardRef = function(e) {
57
- return o(e) === y;
58
- }, r.isFragment = function(e) {
59
- return o(e) === n;
60
- }, r.isLazy = function(e) {
61
- return o(e) === p;
62
- }, r.isMemo = function(e) {
63
- return o(e) === m;
64
- }, r.isPortal = function(e) {
65
- return o(e) === b;
66
- }, r.isProfiler = function(e) {
67
- return o(e) === f;
68
- }, r.isStrictMode = function(e) {
69
- return o(e) === c;
70
- }, r.isSuspense = function(e) {
71
- return o(e) === l;
72
- }, r.isValidElementType = function(e) {
73
- return typeof e == "string" || typeof e == "function" || e === n || e === u || e === f || e === c || e === l || e === x || typeof e == "object" && e !== null && (e.$$typeof === p || e.$$typeof === m || e.$$typeof === i || e.$$typeof === s || e.$$typeof === y || e.$$typeof === M || e.$$typeof === v || e.$$typeof === w || e.$$typeof === C);
74
- }, r.typeOf = o, r;
7
+ return t;
8
+ }, e.apply(null, arguments);
75
9
  }
76
10
  export {
77
- g as __require
11
+ e as default
78
12
  };
79
13
  //# sourceMappingURL=index270.js.map