se-design 1.0.74 → 1.0.76-dev1

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 (487) hide show
  1. package/dist/assets/icons/combobox-field.svg +6 -0
  2. package/dist/assets/style.css +1 -1
  3. package/dist/components/AccessibleDiv/index.d.ts +24 -0
  4. package/dist/components/Checkbox/index.d.ts +12 -0
  5. package/dist/components/CustomAccordion/index.d.ts +1 -0
  6. package/dist/components/CustomModal/index.d.ts +15 -12
  7. package/dist/components/DatePicker/useDatePickerA11y.d.ts +50 -0
  8. package/dist/components/Dropdown/index.d.ts +13 -0
  9. package/dist/components/Icon/index.d.ts +8 -2
  10. package/dist/components/InputWithIcon/index.d.ts +9 -1
  11. package/dist/components/LabelChip/index.d.ts +1 -0
  12. package/dist/components/Modal/index.d.ts +1 -0
  13. package/dist/components/PhoneInput/index.d.ts +13 -5
  14. package/dist/components/Popover/index.d.ts +2 -0
  15. package/dist/components/SidebarOverlay/index.d.ts +8 -0
  16. package/dist/components/index.d.ts +1 -0
  17. package/dist/index.js +144 -133
  18. package/dist/index.js.map +1 -1
  19. package/dist/index10.js +23 -59
  20. package/dist/index10.js.map +1 -1
  21. package/dist/index100.js +1 -1
  22. package/dist/index100.js.map +1 -1
  23. package/dist/index101.js +2 -2
  24. package/dist/index101.js.map +1 -1
  25. package/dist/index102.js +2 -2
  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 +2 -2
  34. package/dist/index106.js.map +1 -1
  35. package/dist/index107.js +2 -2
  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 +2 -2
  40. package/dist/index109.js.map +1 -1
  41. package/dist/index11.js +70 -63
  42. package/dist/index11.js.map +1 -1
  43. package/dist/index110.js +2 -2
  44. package/dist/index110.js.map +1 -1
  45. package/dist/index111.js +1 -1
  46. package/dist/index111.js.map +1 -1
  47. package/dist/index112.js +2 -2
  48. package/dist/index112.js.map +1 -1
  49. package/dist/index113.js +2 -2
  50. package/dist/index113.js.map +1 -1
  51. package/dist/index114.js +1 -1
  52. package/dist/index114.js.map +1 -1
  53. package/dist/index115.js +2 -2
  54. package/dist/index115.js.map +1 -1
  55. package/dist/index116.js +1 -1
  56. package/dist/index116.js.map +1 -1
  57. package/dist/index117.js +2 -2
  58. package/dist/index117.js.map +1 -1
  59. package/dist/index118.js +1 -1
  60. package/dist/index118.js.map +1 -1
  61. package/dist/index119.js +1 -1
  62. package/dist/index119.js.map +1 -1
  63. package/dist/index12.js +71 -34
  64. package/dist/index12.js.map +1 -1
  65. package/dist/index120.js +2 -2
  66. package/dist/index120.js.map +1 -1
  67. package/dist/index121.js +2 -2
  68. package/dist/index121.js.map +1 -1
  69. package/dist/index122.js +2 -2
  70. package/dist/index122.js.map +1 -1
  71. package/dist/index123.js +2 -2
  72. package/dist/index123.js.map +1 -1
  73. package/dist/index124.js +1 -1
  74. package/dist/index124.js.map +1 -1
  75. package/dist/index125.js +2 -2
  76. package/dist/index125.js.map +1 -1
  77. package/dist/index126.js +1 -1
  78. package/dist/index126.js.map +1 -1
  79. package/dist/index127.js +1 -1
  80. package/dist/index127.js.map +1 -1
  81. package/dist/index128.js +1 -1
  82. package/dist/index128.js.map +1 -1
  83. package/dist/index129.js +1 -1
  84. package/dist/index129.js.map +1 -1
  85. package/dist/index13.js +50 -14
  86. package/dist/index13.js.map +1 -1
  87. package/dist/index130.js +2 -2
  88. package/dist/index130.js.map +1 -1
  89. package/dist/index131.js +2 -2
  90. package/dist/index131.js.map +1 -1
  91. package/dist/index132.js +1 -1
  92. package/dist/index132.js.map +1 -1
  93. package/dist/index133.js +2 -2
  94. package/dist/index133.js.map +1 -1
  95. package/dist/index134.js +1 -1
  96. package/dist/index134.js.map +1 -1
  97. package/dist/index135.js +1 -1
  98. package/dist/index135.js.map +1 -1
  99. package/dist/index136.js +1 -1
  100. package/dist/index136.js.map +1 -1
  101. package/dist/index137.js +1 -1
  102. package/dist/index137.js.map +1 -1
  103. package/dist/index138.js +1 -1
  104. package/dist/index138.js.map +1 -1
  105. package/dist/index139.js +1 -1
  106. package/dist/index139.js.map +1 -1
  107. package/dist/index14.js +15 -9
  108. package/dist/index14.js.map +1 -1
  109. package/dist/index140.js +1 -1
  110. package/dist/index140.js.map +1 -1
  111. package/dist/index141.js +2 -2
  112. package/dist/index141.js.map +1 -1
  113. package/dist/index142.js +2 -2
  114. package/dist/index142.js.map +1 -1
  115. package/dist/index143.js +2 -2
  116. package/dist/index143.js.map +1 -1
  117. package/dist/index144.js +1 -1
  118. package/dist/index144.js.map +1 -1
  119. package/dist/index145.js +2 -2
  120. package/dist/index145.js.map +1 -1
  121. package/dist/index146.js +2 -2
  122. package/dist/index146.js.map +1 -1
  123. package/dist/index147.js +1 -1
  124. package/dist/index147.js.map +1 -1
  125. package/dist/index148.js +1 -1
  126. package/dist/index148.js.map +1 -1
  127. package/dist/index149.js +1 -1
  128. package/dist/index149.js.map +1 -1
  129. package/dist/index15.js +10 -218
  130. package/dist/index15.js.map +1 -1
  131. package/dist/index150.js +2 -2
  132. package/dist/index150.js.map +1 -1
  133. package/dist/index151.js +2 -2
  134. package/dist/index151.js.map +1 -1
  135. package/dist/index152.js +1 -1
  136. package/dist/index152.js.map +1 -1
  137. package/dist/index153.js +2 -2
  138. package/dist/index153.js.map +1 -1
  139. package/dist/index154.js +2 -2
  140. package/dist/index154.js.map +1 -1
  141. package/dist/index155.js +1 -1
  142. package/dist/index155.js.map +1 -1
  143. package/dist/index156.js +1 -1
  144. package/dist/index156.js.map +1 -1
  145. package/dist/index157.js +1 -1
  146. package/dist/index157.js.map +1 -1
  147. package/dist/index158.js +1 -1
  148. package/dist/index158.js.map +1 -1
  149. package/dist/index159.js +1 -1
  150. package/dist/index159.js.map +1 -1
  151. package/dist/index16.js +220 -60
  152. package/dist/index16.js.map +1 -1
  153. package/dist/index160.js +1 -1
  154. package/dist/index160.js.map +1 -1
  155. package/dist/index161.js +1 -1
  156. package/dist/index161.js.map +1 -1
  157. package/dist/index162.js +1 -1
  158. package/dist/index162.js.map +1 -1
  159. package/dist/index163.js +1 -1
  160. package/dist/index163.js.map +1 -1
  161. package/dist/index164.js +1 -1
  162. package/dist/index164.js.map +1 -1
  163. package/dist/index165.js +1 -1
  164. package/dist/index165.js.map +1 -1
  165. package/dist/index166.js +1 -1
  166. package/dist/index166.js.map +1 -1
  167. package/dist/index167.js +1 -1
  168. package/dist/index167.js.map +1 -1
  169. package/dist/index168.js +1 -1
  170. package/dist/index168.js.map +1 -1
  171. package/dist/index169.js +1 -1
  172. package/dist/index169.js.map +1 -1
  173. package/dist/index17.js +60 -99
  174. package/dist/index17.js.map +1 -1
  175. package/dist/index170.js +1 -1
  176. package/dist/index170.js.map +1 -1
  177. package/dist/index171.js +1 -1
  178. package/dist/index171.js.map +1 -1
  179. package/dist/index172.js +2 -2
  180. package/dist/index172.js.map +1 -1
  181. package/dist/index173.js +1 -1
  182. package/dist/index173.js.map +1 -1
  183. package/dist/index174.js +1 -1
  184. package/dist/index174.js.map +1 -1
  185. package/dist/index175.js +1 -1
  186. package/dist/index175.js.map +1 -1
  187. package/dist/index176.js +2 -2
  188. package/dist/index176.js.map +1 -1
  189. package/dist/index177.js +1 -1
  190. package/dist/index177.js.map +1 -1
  191. package/dist/index178.js +1 -1
  192. package/dist/index178.js.map +1 -1
  193. package/dist/index179.js +1 -1
  194. package/dist/index179.js.map +1 -1
  195. package/dist/index18.js +95 -282
  196. package/dist/index18.js.map +1 -1
  197. package/dist/index180.js +2 -2
  198. package/dist/index180.js.map +1 -1
  199. package/dist/index181.js +1 -1
  200. package/dist/index181.js.map +1 -1
  201. package/dist/index182.js +1 -1
  202. package/dist/index182.js.map +1 -1
  203. package/dist/index183.js +1 -1
  204. package/dist/index183.js.map +1 -1
  205. package/dist/index184.js +2 -2
  206. package/dist/index184.js.map +1 -1
  207. package/dist/index185.js +1 -1
  208. package/dist/index185.js.map +1 -1
  209. package/dist/index186.js +2 -2
  210. package/dist/index186.js.map +1 -1
  211. package/dist/index187.js +1 -1
  212. package/dist/index187.js.map +1 -1
  213. package/dist/index188.js +2 -2
  214. package/dist/index188.js.map +1 -1
  215. package/dist/index189.js +2 -149
  216. package/dist/index189.js.map +1 -1
  217. package/dist/index19.js +317 -16
  218. package/dist/index19.js.map +1 -1
  219. package/dist/index190.js +2 -9
  220. package/dist/index190.js.map +1 -1
  221. package/dist/index191.js +2 -6
  222. package/dist/index191.js.map +1 -1
  223. package/dist/index192.js +2 -5
  224. package/dist/index192.js.map +1 -1
  225. package/dist/index193.js +2 -40
  226. package/dist/index193.js.map +1 -1
  227. package/dist/index194.js +2 -59
  228. package/dist/index194.js.map +1 -1
  229. package/dist/index195.js +2 -23
  230. package/dist/index195.js.map +1 -1
  231. package/dist/index196.js +5 -0
  232. package/dist/index196.js.map +1 -0
  233. package/dist/index197.js +152 -0
  234. package/dist/index197.js.map +1 -0
  235. package/dist/index198.js +8 -23
  236. package/dist/index198.js.map +1 -1
  237. package/dist/index199.js +9 -0
  238. package/dist/index199.js.map +1 -0
  239. package/dist/index20.js +15 -31
  240. package/dist/index20.js.map +1 -1
  241. package/dist/index200.js +4 -83
  242. package/dist/index200.js.map +1 -1
  243. package/dist/index201.js +43 -0
  244. package/dist/index201.js.map +1 -0
  245. package/dist/index206.js +26 -0
  246. package/dist/index206.js.map +1 -0
  247. package/dist/index207.js +71 -0
  248. package/dist/index207.js.map +1 -0
  249. package/dist/index21.js +33 -61
  250. package/dist/index21.js.map +1 -1
  251. package/dist/{index209.js → index215.js} +1 -1
  252. package/dist/{index209.js.map → index215.js.map} +1 -1
  253. package/dist/index22.js +57 -76
  254. package/dist/index22.js.map +1 -1
  255. package/dist/{index217.js → index223.js} +1 -1
  256. package/dist/{index217.js.map → index223.js.map} +1 -1
  257. package/dist/{index220.js → index226.js} +2 -2
  258. package/dist/{index220.js.map → index226.js.map} +1 -1
  259. package/dist/index23.js +83 -21
  260. package/dist/index23.js.map +1 -1
  261. package/dist/index235.js +172 -9
  262. package/dist/index235.js.map +1 -1
  263. package/dist/index236.js +3 -4
  264. package/dist/index236.js.map +1 -1
  265. package/dist/index238.js +19 -11
  266. package/dist/index238.js.map +1 -1
  267. package/dist/index239.js +9 -5
  268. package/dist/index239.js.map +1 -1
  269. package/dist/index24.js +20 -222
  270. package/dist/index24.js.map +1 -1
  271. package/dist/index240.js +9 -5
  272. package/dist/index240.js.map +1 -1
  273. package/dist/index241.js +4 -37
  274. package/dist/index241.js.map +1 -1
  275. package/dist/index242.js +170 -2
  276. package/dist/index242.js.map +1 -1
  277. package/dist/index243.js +11 -8
  278. package/dist/index243.js.map +1 -1
  279. package/dist/index244.js +5 -326
  280. package/dist/index244.js.map +1 -1
  281. package/dist/index245.js +5 -49
  282. package/dist/index245.js.map +1 -1
  283. package/dist/index246.js +38 -2
  284. package/dist/index246.js.map +1 -1
  285. package/dist/index247.js +2 -76
  286. package/dist/index247.js.map +1 -1
  287. package/dist/index248.js +7 -92
  288. package/dist/index248.js.map +1 -1
  289. package/dist/index249.js +322 -47
  290. package/dist/index249.js.map +1 -1
  291. package/dist/index25.js +289 -43
  292. package/dist/index25.js.map +1 -1
  293. package/dist/index250.js +49 -7
  294. package/dist/index250.js.map +1 -1
  295. package/dist/index251.js +2 -5
  296. package/dist/index251.js.map +1 -1
  297. package/dist/index252.js +72 -48
  298. package/dist/index252.js.map +1 -1
  299. package/dist/index253.js +93 -2
  300. package/dist/index253.js.map +1 -1
  301. package/dist/index254.js +52 -2
  302. package/dist/index254.js.map +1 -1
  303. package/dist/index255.js +11 -0
  304. package/dist/index255.js.map +1 -0
  305. package/dist/index256.js +8 -0
  306. package/dist/index256.js.map +1 -0
  307. package/dist/index257.js +55 -0
  308. package/dist/index257.js.map +1 -0
  309. package/dist/index258.js +5 -0
  310. package/dist/index258.js.map +1 -0
  311. package/dist/index259.js +5 -0
  312. package/dist/index259.js.map +1 -0
  313. package/dist/index26.js +48 -23
  314. package/dist/index26.js.map +1 -1
  315. package/dist/index27.js +21 -81
  316. package/dist/index27.js.map +1 -1
  317. package/dist/index28.js +101 -138
  318. package/dist/index28.js.map +1 -1
  319. package/dist/index29.js +139 -128
  320. package/dist/index29.js.map +1 -1
  321. package/dist/index3.js +57 -98
  322. package/dist/index3.js.map +1 -1
  323. package/dist/index30.js +133 -69
  324. package/dist/index30.js.map +1 -1
  325. package/dist/index31.js +67 -95
  326. package/dist/index31.js.map +1 -1
  327. package/dist/index32.js +96 -71
  328. package/dist/index32.js.map +1 -1
  329. package/dist/index33.js +70 -38
  330. package/dist/index33.js.map +1 -1
  331. package/dist/index34.js +40 -71
  332. package/dist/index34.js.map +1 -1
  333. package/dist/index35.js +67 -82
  334. package/dist/index35.js.map +1 -1
  335. package/dist/index36.js +99 -54
  336. package/dist/index36.js.map +1 -1
  337. package/dist/index37.js +53 -280
  338. package/dist/index37.js.map +1 -1
  339. package/dist/index38.js +281 -70
  340. package/dist/index38.js.map +1 -1
  341. package/dist/index39.js +69 -80
  342. package/dist/index39.js.map +1 -1
  343. package/dist/index4.js +102 -42
  344. package/dist/index4.js.map +1 -1
  345. package/dist/index40.js +82 -32
  346. package/dist/index40.js.map +1 -1
  347. package/dist/index41.js +26 -43
  348. package/dist/index41.js.map +1 -1
  349. package/dist/index42.js +45 -66
  350. package/dist/index42.js.map +1 -1
  351. package/dist/index43.js +65 -49
  352. package/dist/index43.js.map +1 -1
  353. package/dist/index44.js +53 -139
  354. package/dist/index44.js.map +1 -1
  355. package/dist/index45.js +132 -179
  356. package/dist/index45.js.map +1 -1
  357. package/dist/index46.js +194 -35
  358. package/dist/index46.js.map +1 -1
  359. package/dist/index47.js +34 -29
  360. package/dist/index47.js.map +1 -1
  361. package/dist/index48.js +31 -145
  362. package/dist/index48.js.map +1 -1
  363. package/dist/index49.js +131 -70
  364. package/dist/index49.js.map +1 -1
  365. package/dist/index5.js +40 -313
  366. package/dist/index5.js.map +1 -1
  367. package/dist/index50.js +80 -371
  368. package/dist/index50.js.map +1 -1
  369. package/dist/index51.js +451 -91
  370. package/dist/index51.js.map +1 -1
  371. package/dist/index52.js +98 -38
  372. package/dist/index52.js.map +1 -1
  373. package/dist/index53.js +35 -35
  374. package/dist/index53.js.map +1 -1
  375. package/dist/index54.js +33 -87
  376. package/dist/index54.js.map +1 -1
  377. package/dist/index55.js +89 -159
  378. package/dist/index55.js.map +1 -1
  379. package/dist/index56.js +157 -143
  380. package/dist/index56.js.map +1 -1
  381. package/dist/index57.js +149 -33
  382. package/dist/index57.js.map +1 -1
  383. package/dist/index58.js +33 -86
  384. package/dist/index58.js.map +1 -1
  385. package/dist/index59.js +80 -113
  386. package/dist/index59.js.map +1 -1
  387. package/dist/index6.js +323 -42
  388. package/dist/index6.js.map +1 -1
  389. package/dist/index60.js +114 -62
  390. package/dist/index60.js.map +1 -1
  391. package/dist/index61.js +62 -147
  392. package/dist/index61.js.map +1 -1
  393. package/dist/index62.js +146 -312
  394. package/dist/index62.js.map +1 -1
  395. package/dist/index63.js +317 -44
  396. package/dist/index63.js.map +1 -1
  397. package/dist/index64.js +44 -142
  398. package/dist/index64.js.map +1 -1
  399. package/dist/index65.js +145 -12
  400. package/dist/index65.js.map +1 -1
  401. package/dist/index66.js +10 -44
  402. package/dist/index66.js.map +1 -1
  403. package/dist/index67.js +42 -15
  404. package/dist/index67.js.map +1 -1
  405. package/dist/index68.js +76 -48
  406. package/dist/index68.js.map +1 -1
  407. package/dist/index69.js +18 -58
  408. package/dist/index69.js.map +1 -1
  409. package/dist/index7.js +44 -51
  410. package/dist/index7.js.map +1 -1
  411. package/dist/index70.js +66 -5
  412. package/dist/index70.js.map +1 -1
  413. package/dist/index71.js +25 -7
  414. package/dist/index71.js.map +1 -1
  415. package/dist/index72.js +105 -0
  416. package/dist/index72.js.map +1 -0
  417. package/dist/index73.js +62 -2
  418. package/dist/index73.js.map +1 -1
  419. package/dist/index74.js +21 -2
  420. package/dist/index74.js.map +1 -1
  421. package/dist/index75.js +5 -2
  422. package/dist/index75.js.map +1 -1
  423. package/dist/index76.js +54 -2
  424. package/dist/index76.js.map +1 -1
  425. package/dist/index77.js +24 -2
  426. package/dist/index77.js.map +1 -1
  427. package/dist/index78.js +9 -2
  428. package/dist/index78.js.map +1 -1
  429. package/dist/index8.js +48 -85
  430. package/dist/index8.js.map +1 -1
  431. package/dist/index80.js +2 -2
  432. package/dist/index80.js.map +1 -1
  433. package/dist/index81.js +2 -2
  434. package/dist/index81.js.map +1 -1
  435. package/dist/index82.js +1 -1
  436. package/dist/index82.js.map +1 -1
  437. package/dist/index83.js +2 -2
  438. package/dist/index83.js.map +1 -1
  439. package/dist/index84.js +1 -1
  440. package/dist/index84.js.map +1 -1
  441. package/dist/index85.js +1 -1
  442. package/dist/index85.js.map +1 -1
  443. package/dist/index86.js +1 -1
  444. package/dist/index86.js.map +1 -1
  445. package/dist/index87.js +1 -1
  446. package/dist/index87.js.map +1 -1
  447. package/dist/index88.js +1 -1
  448. package/dist/index88.js.map +1 -1
  449. package/dist/index89.js +1 -1
  450. package/dist/index89.js.map +1 -1
  451. package/dist/index9.js +91 -27
  452. package/dist/index9.js.map +1 -1
  453. package/dist/index90.js +1 -1
  454. package/dist/index90.js.map +1 -1
  455. package/dist/index91.js +1 -1
  456. package/dist/index91.js.map +1 -1
  457. package/dist/index92.js +1 -1
  458. package/dist/index92.js.map +1 -1
  459. package/dist/index93.js +1 -1
  460. package/dist/index93.js.map +1 -1
  461. package/dist/index94.js +1 -1
  462. package/dist/index94.js.map +1 -1
  463. package/dist/index95.js +1 -1
  464. package/dist/index95.js.map +1 -1
  465. package/dist/index96.js +1 -1
  466. package/dist/index96.js.map +1 -1
  467. package/dist/index97.js +1 -1
  468. package/dist/index97.js.map +1 -1
  469. package/dist/index98.js +1 -1
  470. package/dist/index98.js.map +1 -1
  471. package/dist/index99.js +1 -1
  472. package/dist/index99.js.map +1 -1
  473. package/package.json +1 -1
  474. package/dist/index229.js +0 -7
  475. package/dist/index229.js.map +0 -1
  476. package/dist/index231.js +0 -25
  477. package/dist/index231.js.map +0 -1
  478. package/dist/index232.js +0 -57
  479. package/dist/index232.js.map +0 -1
  480. package/dist/index233.js +0 -22
  481. package/dist/index233.js.map +0 -1
  482. package/dist/index234.js +0 -13
  483. package/dist/index234.js.map +0 -1
  484. package/dist/index237.js +0 -173
  485. package/dist/index237.js.map +0 -1
  486. package/dist/index79.js +0 -5
  487. package/dist/index79.js.map +0 -1
package/dist/index19.js CHANGED
@@ -1,20 +1,321 @@
1
- import e from "react";
2
- const u = ({
3
- leftContainer: t,
4
- centerContainer: l,
5
- rightContainer: r,
6
- className: a,
7
- id: c,
8
- ...o
9
- }) => /* @__PURE__ */ e.createElement("header", {
10
- id: c,
11
- tabIndex: -1,
12
- style: {
13
- "--focus-color": "var(--color-blue-300)"
1
+ import A, { forwardRef as le, useState as F, useRef as J, useEffect as H, useImperativeHandle as fe } from "react";
2
+ import ue from "react-dom";
3
+ import { getA11yNameAttributes as pe } from "./index78.js";
4
+ import { useDismissOnFocusOut as de } from "./index77.js";
5
+ import { getFirstFocusableElement as O, getLastFocusableElement as me, getFocusableElements as ve, FOCUSABLE_WITH_ROLES_SELECTOR as we } from "./index71.js";
6
+ import "./index72.js";
7
+ function B() {
8
+ return B = Object.assign ? Object.assign.bind() : function(y) {
9
+ for (var E = 1; E < arguments.length; E++) {
10
+ var d = arguments[E];
11
+ for (var b in d) ({}).hasOwnProperty.call(d, b) && (y[b] = d[b]);
12
+ }
13
+ return y;
14
+ }, B.apply(null, arguments);
15
+ }
16
+ const Pe = /* @__PURE__ */ le(({
17
+ className: y = "",
18
+ automationId: E = "",
19
+ position: d = "bottom-center",
20
+ popoverContentAutomationId: b = "",
21
+ contentWidth: I = "max",
22
+ renderPopoverContents: N,
23
+ renderPopoverSrcElement: Q,
24
+ onPopoverToggle: T,
25
+ isPopoverOpen: C,
26
+ disabled: k = !1,
27
+ isWithPortal: f = !1,
28
+ ariaLabel: Y,
29
+ ariaLabelledBy: Z,
30
+ sourceRole: K = "button",
31
+ popoverContentStyleProperty: _ = {
32
+ zIndex: 1e3,
33
+ borderColor: "var(--color-gray-200)",
34
+ color: "var(--color-gray-900)",
35
+ backgroundColor: "var(--color-white)"
14
36
  },
15
- className: `se-design-header ${a} sticky top-0 h-[48px] w-full z-[1010] bg-[var(--color-blue-600)] flex justify-between items-center focus:outline-none ${o?.type === "fixed" ? "fixed left-0 right-0 top-0" : ""}`
16
- }, t && /* @__PURE__ */ e.createElement(e.Fragment, null, t), l && /* @__PURE__ */ e.createElement(e.Fragment, null, l), r && /* @__PURE__ */ e.createElement(e.Fragment, null, r));
37
+ disableClickToggle: w = !1,
38
+ noBorder: W = !1,
39
+ disableAutoClose: m = !1,
40
+ focusFirstOnOpen: ee = !1,
41
+ ...te
42
+ }, oe) => {
43
+ const [i, u] = F(!1), [h, z] = F(d), [ne, U] = F(!1), l = J(null), a = J(null), re = pe({
44
+ ariaLabel: Y,
45
+ ariaLabelledBy: Z,
46
+ ariaDescribedBy: void 0
47
+ // Popover doesn't support describedBy yet
48
+ }), {
49
+ onBlurCapture: se
50
+ } = de({
51
+ disabled: !i || m || f,
52
+ onFocusOut: () => u(!1),
53
+ closeOnEscape: !1
54
+ }), [$, P] = F({
55
+ top: 0,
56
+ left: 0
57
+ }), D = (e = "bottom-center") => {
58
+ if (!l.current) return {
59
+ top: 0,
60
+ left: 0
61
+ };
62
+ let o = e;
63
+ const t = l.current.getBoundingClientRect(), s = window.innerWidth, c = window.innerHeight;
64
+ let n = 0, r = 0;
65
+ switch (o) {
66
+ case "bottom-left":
67
+ n = t.bottom, r = t.left;
68
+ break;
69
+ case "bottom-right":
70
+ n = t.bottom, r = t.right - t.width * 0.5;
71
+ break;
72
+ case "bottom-center":
73
+ n = t.bottom, r = t.left + t.width / 2;
74
+ break;
75
+ case "top-left":
76
+ n = t.top - t.height * 1.9, r = t.left;
77
+ break;
78
+ case "top-right":
79
+ n = t.top - t.height * 1.9, r = t.right - t.width * 0.5;
80
+ break;
81
+ case "top-center":
82
+ n = t.top - t.height * 1.9, r = t.left + t.width / 2;
83
+ break;
84
+ default:
85
+ n = t.bottom, r = t.left;
86
+ break;
87
+ }
88
+ const p = a.current?.getBoundingClientRect(), g = p?.width || 0, v = p?.height || 0;
89
+ if ((o === "bottom-center" || o === "top-center") && (r = r - g / 2), r + g > s && (r = Math.max(0, s - g)), r < 0 && (r = 0), n + v > c) {
90
+ const R = t.top, ae = c - t.bottom;
91
+ R >= v || R > ae ? (n = t.top - v, n < 0 && (n = 0)) : n = Math.max(0, c - v);
92
+ }
93
+ return n < 0 && (n = t.bottom, n + v > c && (n = Math.max(0, c - v))), {
94
+ top: n,
95
+ left: r
96
+ };
97
+ };
98
+ H(() => {
99
+ if (T && T(i), i && !f)
100
+ return m || document.body.addEventListener("click", M, !0), ie(), () => {
101
+ m || document.body.removeEventListener("click", M, !0);
102
+ };
103
+ if (i && f) {
104
+ m ? window.addEventListener("scroll", X) : (document.body.addEventListener("click", L, !0), window.addEventListener("scroll", L)), window.addEventListener("resize", V);
105
+ const e = setTimeout(() => {
106
+ const t = D(h);
107
+ x(), t && P(t);
108
+ }, 0), o = setTimeout(() => {
109
+ const t = D(h);
110
+ t && P(t);
111
+ }, 10);
112
+ return () => {
113
+ m ? window.removeEventListener("scroll", X) : (document.body.removeEventListener("click", L, !0), window.removeEventListener("scroll", L)), window.removeEventListener("resize", V), clearTimeout(e), clearTimeout(o);
114
+ };
115
+ }
116
+ }, [i, f, m]);
117
+ const x = () => {
118
+ if (!l.current) {
119
+ U(!1);
120
+ return;
121
+ }
122
+ const e = l.current.getBoundingClientRect(), o = window.innerHeight, t = window.innerWidth, s = e.top < o && e.bottom > 0 && e.left < t && e.right > 0;
123
+ U(s);
124
+ };
125
+ H(() => {
126
+ u(C ?? !1);
127
+ }, [C]), H(() => {
128
+ i && setTimeout(() => {
129
+ const e = O({
130
+ container: a.current,
131
+ includeRoles: !0
132
+ });
133
+ e && (ee || document.activeElement === l.current) && e.focus();
134
+ }, f ? 60 : 0);
135
+ }, [i]);
136
+ const ie = () => {
137
+ if (!a.current) return;
138
+ const e = a.current.getBoundingClientRect(), o = window.innerHeight;
139
+ e?.bottom > o ? z(d.includes("left") ? "top-left" : d.includes("right") ? "top-right" : "top-center") : e?.top < 0 && z(d.includes("left") ? "bottom-left" : d.includes("right") ? "bottom-right" : "bottom-center");
140
+ }, M = (e) => {
141
+ const o = l.current;
142
+ if (!o) return;
143
+ const t = e.target, s = o.contains(t), c = a.current?.contains(t), r = t.closest?.(".se-design-popover-wrapper"), p = r && r !== o, g = a.current?.contains(r);
144
+ m || (!s && !c || p && !g) && u(!1);
145
+ }, L = (e) => {
146
+ const o = l.current, t = a.current;
147
+ if (!o) return;
148
+ if (x(), e.type === "scroll" && i) {
149
+ const R = D(h);
150
+ R && P(R);
151
+ }
152
+ const s = e.target, c = o.contains(s), n = t?.contains(s), p = s.closest?.(".se-design-popover-wrapper"), g = p && p !== o, v = a.current?.contains(p);
153
+ m || (!c && !n || g && !v) && u(!1);
154
+ }, V = () => {
155
+ if (i && f && l.current) {
156
+ x();
157
+ const e = D(h);
158
+ e && P(e);
159
+ }
160
+ }, X = () => {
161
+ if (i && f && l.current) {
162
+ x();
163
+ const e = D(h);
164
+ e && P(e);
165
+ }
166
+ }, S = (e = !1) => {
167
+ const o = i;
168
+ u((t) => !t), !o && e && setTimeout(() => {
169
+ if (e === "last") {
170
+ const t = me({
171
+ container: a.current,
172
+ includeRoles: !0
173
+ });
174
+ t && t.focus();
175
+ } else {
176
+ const t = O({
177
+ container: a.current,
178
+ includeRoles: !0
179
+ });
180
+ t && t.focus();
181
+ }
182
+ }, 50);
183
+ }, j = (e, o) => {
184
+ if (!o) return;
185
+ const t = document.activeElement;
186
+ if (t?.tagName === "INPUT" || t?.tagName === "TEXTAREA" || t?.tagName === "SELECT")
187
+ return;
188
+ const s = Array.from(o.querySelectorAll(we)).filter((r) => {
189
+ const p = window.getComputedStyle(r);
190
+ return !r.hasAttribute("disabled") && r.getAttribute("aria-disabled") !== "true" && p.display !== "none" && p.visibility !== "hidden" && (r.tabIndex >= 0 || r.hasAttribute("role"));
191
+ });
192
+ if (s.length === 0) return;
193
+ const c = s.findIndex((r) => r === document.activeElement);
194
+ let n = -1;
195
+ e.key === "ArrowDown" ? (e.preventDefault(), e.stopPropagation(), n = c < s.length - 1 ? c + 1 : 0) : e.key === "ArrowUp" ? (e.preventDefault(), e.stopPropagation(), n = c > 0 ? c - 1 : s.length - 1) : e.key === "Home" ? (e.preventDefault(), e.stopPropagation(), n = 0) : e.key === "End" && (e.preventDefault(), e.stopPropagation(), n = s.length - 1), n >= 0 && s[n] ? s[n].focus() : c === -1 && s.length > 0 && s[0].focus();
196
+ }, q = (e) => {
197
+ if (e.key === "Escape")
198
+ e.preventDefault(), e.stopPropagation(), u(!1), l.current?.focus();
199
+ else if (e.key === "Tab") {
200
+ if (u(!1), e.shiftKey)
201
+ e.preventDefault(), l.current?.focus();
202
+ else if (f) {
203
+ e.preventDefault();
204
+ const o = l.current, t = ve({
205
+ container: document.body,
206
+ filterHidden: !0
207
+ }), s = o ? t.indexOf(o) : -1, c = t[s + 1];
208
+ c ? c.focus() : o?.focus();
209
+ }
210
+ } else e.key === "ArrowDown" || e.key === "ArrowUp" || e.key === "Home" || e.key === "End" ? j(e, a.current) : (e.key === "Enter" || e.key === " ") && e.stopPropagation();
211
+ };
212
+ fe(oe, () => ({
213
+ togglePopover: S
214
+ }), []);
215
+ const ce = {
216
+ "bottom-left": {
217
+ left: "0",
218
+ top: "100%"
219
+ },
220
+ "bottom-right": {
221
+ right: "0",
222
+ top: "100%"
223
+ },
224
+ "bottom-center": {
225
+ left: "50%",
226
+ transform: "translateX(-50%)",
227
+ top: "100%"
228
+ },
229
+ "top-left": {
230
+ left: "0",
231
+ bottom: "100%"
232
+ },
233
+ "top-right": {
234
+ right: "0",
235
+ bottom: "100%"
236
+ },
237
+ "top-center": {
238
+ left: "50%",
239
+ transform: "translateX(-50%)",
240
+ bottom: "100%"
241
+ }
242
+ }, G = W ? "" : "shadow-md border rounded-md";
243
+ return /* @__PURE__ */ A.createElement("div", B({
244
+ className: "se-design-popover-wrapper cursor-pointer relative focus-outline rounded-md" + (y.length > 0 ? ` ${y}` : "") + (i ? " open" : "") + (k ? " opacity-50 cursor-not-allowed pointer-events-none" : ""),
245
+ ref: l,
246
+ onClick: (e) => {
247
+ k || w || (e.stopPropagation(), S());
248
+ },
249
+ onKeyDown: (e) => {
250
+ if (!(k || w))
251
+ if (e.key === "Enter" || e.key === " ") {
252
+ e.preventDefault(), e.stopPropagation();
253
+ const o = i;
254
+ S(), o || setTimeout(() => {
255
+ const t = O({
256
+ container: a.current,
257
+ includeRoles: !0
258
+ });
259
+ t && t.focus();
260
+ }, f ? 60 : 0);
261
+ } else if (e.key === "Escape" && i)
262
+ e.preventDefault(), e.stopPropagation(), u(!1);
263
+ else if ((e.key === "ArrowDown" || e.key === "ArrowUp") && i) {
264
+ const o = a.current;
265
+ o && j(e, o);
266
+ } else e.key === "ArrowDown" && !i && (e.preventDefault(), e.stopPropagation(), u(!0), setTimeout(() => {
267
+ const o = O({
268
+ container: a.current,
269
+ includeRoles: !0
270
+ });
271
+ o && o.focus();
272
+ }, 0));
273
+ },
274
+ onBlurCapture: se,
275
+ onBlur: (e) => {
276
+ if (!i || m || !f) return;
277
+ const o = e.relatedTarget, t = !!(o && l.current?.contains(o)), s = !!(o && a.current?.contains(o));
278
+ !t && !s && u(!1);
279
+ },
280
+ role: w ? "none" : K,
281
+ "aria-expanded": w ? void 0 : i ? "true" : "false",
282
+ "aria-haspopup": w ? void 0 : K === "combobox" ? "listbox" : "true",
283
+ tabIndex: k || w ? -1 : 0,
284
+ "aria-disabled": w ? void 0 : k ? "true" : "false"
285
+ }, re, {
286
+ "data-automation-id": E
287
+ }, te), Q({
288
+ displayPopover: i,
289
+ togglePopover: S
290
+ }), i && !f && /* @__PURE__ */ A.createElement("div", {
291
+ className: `popover-content absolute ${G} z-[1000] ${I == "full" ? "w-full" : "w-max"}`,
292
+ style: {
293
+ ..._,
294
+ ...ce[h]
295
+ },
296
+ onClick: (e) => e.stopPropagation(),
297
+ onKeyDown: q,
298
+ ref: a,
299
+ "data-automation-id": b
300
+ }, N({
301
+ closePopoverCb: () => u(!1)
302
+ })), f && i && ne && /* @__PURE__ */ ue.createPortal(/* @__PURE__ */ A.createElement("div", {
303
+ className: `popover-content-with-portal ${G} ${I == "full" ? "w-full" : "w-max"}`,
304
+ style: {
305
+ position: "fixed",
306
+ top: $.top,
307
+ left: $.left,
308
+ ..._
309
+ },
310
+ onClick: (e) => e.stopPropagation(),
311
+ onKeyDown: q,
312
+ ref: a,
313
+ "data-automation-id": b
314
+ }, N({
315
+ closePopoverCb: () => u(!1)
316
+ })), document.body));
317
+ });
17
318
  export {
18
- u as Header
319
+ Pe as Popover
19
320
  };
20
321
  //# sourceMappingURL=index19.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index19.js","sources":["../src/components/Header/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nexport interface HeaderProps {\n leftContainer?: React.ReactNode;\n centerContainer?: React.ReactNode;\n rightContainer?: React.ReactNode;\n type?: string;\n className?: string;\n id?: string;\n}\n\nexport const Header: FC<HeaderProps> = ({\n leftContainer,\n centerContainer,\n rightContainer,\n className,\n id,\n ...props\n}) => {\n return (\n <header\n id={id}\n tabIndex={-1}\n style={{ '--focus-color': 'var(--color-blue-300)' } as React.CSSProperties}\n className={`se-design-header ${className} sticky top-0 h-[48px] w-full z-[1010] bg-[var(--color-blue-600)] flex justify-between items-center focus:outline-none ${\n props?.type === 'fixed' ? 'fixed left-0 right-0 top-0' : ''\n }`}\n >\n {leftContainer && <>{leftContainer}</>}\n {centerContainer && <>{centerContainer}</>}\n {rightContainer && <>{rightContainer}</>}\n </header>\n );\n};\n"],"names":["Header","leftContainer","centerContainer","rightContainer","className","id","props","React","createElement","tabIndex","style","type","Fragment"],"mappings":";AAWO,MAAMA,IAA0BA,CAAC;AAAA,EACtCC,eAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACA,GAAGC;AACL,MAEIC,gBAAAA,EAAAC,cAAA,UAAA;AAAA,EACEH,IAAAA;AAAAA,EACAI,UAAU;AAAA,EACVC,OAAO;AAAA,IAAE,iBAAiB;AAAA,EAAA;AAAA,EAC1BN,WAAW,oBAAoBA,CAAS,0HACtCE,GAAOK,SAAS,UAAU,+BAA+B,EAAE;AAAA,GAG5DV,KAAiBM,gBAAAA,EAAAC,cAAAD,EAAAK,UAAA,MAAGX,CAAgB,GACpCC,KAAmBK,gBAAAA,EAAAC,cAAAD,EAAAK,UAAA,MAAGV,CAAkB,GACxCC,KAAkBI,gBAAAA,EAAAC,cAAAD,EAAAK,UAAA,MAAGT,CAAiB,CACjC;"}
1
+ {"version":3,"file":"index19.js","sources":["../src/components/Popover/index.tsx"],"sourcesContent":["import React, { useState, useRef, ReactNode, useEffect, forwardRef, ForwardedRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n getA11yNameAttributes,\n useDismissOnFocusOut,\n FOCUSABLE_WITH_ROLES_SELECTOR,\n getFocusableElements,\n getFirstFocusableElement,\n getLastFocusableElement\n} from '../../utils/a11y';\n\nexport interface PopoverHandle {\n togglePopover: (focusFirst?: boolean | 'last') => void;\n}\n\nexport interface PopoverProps {\n className?: string;\n automationId?: string;\n popoverContentAutomationId?: string;\n renderPopoverContents: (props: { closePopoverCb: () => void }) => ReactNode;\n renderPopoverSrcElement: (props: { displayPopover: boolean; togglePopover: (focusFirst?: boolean | 'last') => void }) => ReactNode;\n position?: 'bottom-center' | 'bottom-left' | 'bottom-right' | 'top-center' | 'top-left' | 'top-right';\n onPopoverToggle?: (displayPopover: boolean) => void;\n contentWidth?: 'full' | 'max';\n isPopoverOpen?: boolean;\n disabled?: boolean;\n isWithPortal?: boolean;\n noBorder?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n sourceRole?: 'button' | 'combobox';\n popoverContentStyleProperty?: React.CSSProperties;\n disableClickToggle?: boolean;\n disableAutoClose?: boolean;\n /** Focus the first focusable element when the popover opens via isPopoverOpen (external state). */\n focusFirstOnOpen?: boolean;\n}\n\nexport const Popover = forwardRef<PopoverHandle, PopoverProps>(\n (\n {\n className = '',\n automationId = '',\n position = 'bottom-center',\n popoverContentAutomationId = '',\n contentWidth = 'max',\n renderPopoverContents,\n renderPopoverSrcElement,\n onPopoverToggle,\n isPopoverOpen,\n disabled = false,\n isWithPortal = false,\n ariaLabel,\n ariaLabelledBy,\n sourceRole = 'button',\n popoverContentStyleProperty = {\n zIndex: 1000,\n borderColor: 'var(--color-gray-200)',\n color: 'var(--color-gray-900)',\n backgroundColor: 'var(--color-white)'\n },\n disableClickToggle = false,\n noBorder = false,\n disableAutoClose = false,\n focusFirstOnOpen = false,\n ...props\n },\n ref: ForwardedRef<PopoverHandle>\n ) => {\n const [displayPopover, setDisplayPopover] = useState(false);\n const [popoverPosition, setPopoverPosition] = useState(position);\n const [isSrcElementVisible, setIsSrcElementVisible] = useState(false);\n const srcElementRef = useRef<HTMLDivElement>(null);\n const popoverContentRef = useRef<HTMLDivElement>(null);\n\n // Compute accessible name/description props with correct precedence\n const accessibleNameProps = getA11yNameAttributes({\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy: undefined // Popover doesn't support describedBy yet\n });\n\n // Use shared focus-out dismissal for non-portal popovers.\n // Portal content lives outside the wrapper, so portal uses a dedicated onBlur fallback below.\n const { onBlurCapture: onDismissBlurCapture } = useDismissOnFocusOut<HTMLDivElement>({\n disabled: !displayPopover || disableAutoClose || isWithPortal,\n onFocusOut: () => setDisplayPopover(false),\n closeOnEscape: false\n });\n\n const [portalPosition, setPortalPosition] = useState({ top: 0, left: 0 });\n\n const calculatePositionOfPopover = (position: string = 'bottom-center') => {\n if (!srcElementRef.current) return { top: 0, left: 0 };\n\n let localPosition = position;\n\n const srcRect = srcElementRef.current.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Calculate position for portal\n let top = 0;\n let left = 0;\n\n switch (localPosition) {\n case 'bottom-left':\n top = srcRect.bottom;\n left = srcRect.left;\n break;\n case 'bottom-right':\n top = srcRect.bottom;\n left = srcRect.right - srcRect.width * 0.5;\n break;\n case 'bottom-center':\n top = srcRect.bottom;\n // Center the popover relative to the source element\n left = srcRect.left + srcRect.width / 2;\n break;\n case 'top-left':\n top = srcRect.top - srcRect.height * 1.9;\n left = srcRect.left;\n break;\n case 'top-right':\n top = srcRect.top - srcRect.height * 1.9;\n left = srcRect.right - srcRect.width * 0.5;\n break;\n case 'top-center':\n top = srcRect.top - srcRect.height * 1.9;\n // Center the popover relative to the source element\n left = srcRect.left + srcRect.width / 2;\n break;\n default:\n top = srcRect.bottom;\n left = srcRect.left;\n break;\n }\n\n // Get popover dimensions if available\n const popoverRect = popoverContentRef.current?.getBoundingClientRect();\n const popoverWidth = popoverRect?.width || 0;\n const popoverHeight = popoverRect?.height || 0;\n\n // Adjust center positions to account for popover width\n if (localPosition === 'bottom-center' || localPosition === 'top-center') {\n // Center the popover by subtracting half its width from the source center\n left = left - popoverWidth / 2;\n }\n\n // Adjust position to keep popover within viewport bounds\n // Horizontal adjustments\n if (left + popoverWidth > viewportWidth) {\n // Popover extends beyond right edge, shift it left\n left = Math.max(0, viewportWidth - popoverWidth);\n }\n if (left < 0) {\n // Popover extends beyond left edge, shift it right\n left = 0;\n }\n\n // Vertical adjustments\n if (top + popoverHeight > viewportHeight) {\n // Popover extends beyond bottom edge\n // Try to position it above the source element\n const spaceAbove = srcRect.top;\n const spaceBelow = viewportHeight - srcRect.bottom;\n\n if (spaceAbove >= popoverHeight || spaceAbove > spaceBelow) {\n // Position above if there's enough space or more space above\n top = srcRect.top - popoverHeight;\n // Ensure it doesn't go above viewport\n if (top < 0) {\n top = 0;\n }\n } else {\n // Keep at bottom but adjust to fit within viewport\n top = Math.max(0, viewportHeight - popoverHeight);\n }\n }\n if (top < 0) {\n // Popover extends beyond top edge, position it below the source element\n top = srcRect.bottom;\n // Ensure it doesn't go below viewport\n if (top + popoverHeight > viewportHeight) {\n top = Math.max(0, viewportHeight - popoverHeight);\n }\n }\n\n return { top, left };\n };\n\n useEffect(() => {\n if (onPopoverToggle) {\n onPopoverToggle(displayPopover);\n }\n\n if (displayPopover && !isWithPortal) {\n // Add click listener for auto-close behavior only if not disabled\n if (!disableAutoClose) {\n document.body.addEventListener('click', clickListener, true);\n }\n checkPopoverPosition();\n return () => {\n if (!disableAutoClose) {\n document.body.removeEventListener('click', clickListener, true);\n }\n };\n } else if (displayPopover && isWithPortal) {\n // Add click/scroll listeners for auto-close behavior only if not disabled\n if (!disableAutoClose) {\n document.body.addEventListener('click', clickAndScrollListenerWithPortal, true);\n window.addEventListener('scroll', clickAndScrollListenerWithPortal);\n } else {\n // When disableAutoClose is true, still listen to scroll for repositioning\n window.addEventListener('scroll', scrollListenerForRepositioning);\n }\n // Always add resize listener for repositioning\n window.addEventListener('resize', resizeListenerWithPortal);\n\n // Initial position calculation\n const timeout1 = setTimeout(() => {\n const position = calculatePositionOfPopover(popoverPosition);\n checkSourceVisibility();\n\n if (position) {\n setPortalPosition(position);\n }\n }, 0);\n\n // Recalculate after popover is rendered to get accurate dimensions\n const timeout2 = setTimeout(() => {\n const position = calculatePositionOfPopover(popoverPosition);\n if (position) {\n setPortalPosition(position);\n }\n }, 10);\n\n return () => {\n if (!disableAutoClose) {\n document.body.removeEventListener('click', clickAndScrollListenerWithPortal, true);\n window.removeEventListener('scroll', clickAndScrollListenerWithPortal);\n } else {\n window.removeEventListener('scroll', scrollListenerForRepositioning);\n }\n window.removeEventListener('resize', resizeListenerWithPortal);\n clearTimeout(timeout1);\n clearTimeout(timeout2);\n };\n }\n }, [displayPopover, isWithPortal, disableAutoClose]);\n\n const checkSourceVisibility = () => {\n if (!srcElementRef.current) {\n setIsSrcElementVisible(false);\n return;\n }\n\n const rec = srcElementRef.current.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n\n const isVisible = rec.top < viewportHeight && rec.bottom > 0 && rec.left < viewportWidth && rec.right > 0;\n\n setIsSrcElementVisible(isVisible);\n };\n\n useEffect(() => {\n setDisplayPopover(isPopoverOpen ?? false);\n }, [isPopoverOpen]);\n\n useEffect(() => {\n // Focus first focusable element when popover opens.\n // For portal, delay longer so isSrcElementVisible can be set and portal can mount first.\n if (displayPopover) {\n setTimeout(() => {\n const firstFocusable = getFirstFocusableElement({ container: popoverContentRef.current, includeRoles: true });\n if (firstFocusable && (focusFirstOnOpen || document.activeElement === srcElementRef.current)) {\n firstFocusable.focus();\n }\n }, isWithPortal ? 60 : 0);\n }\n }, [displayPopover]);\n\n //Function to check popover position\n const checkPopoverPosition = () => {\n if (!popoverContentRef.current) return;\n\n const popoverRect = popoverContentRef.current.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n\n if (popoverRect?.bottom > viewportHeight) {\n setPopoverPosition(\n position.includes('left') ? 'top-left' : position.includes('right') ? 'top-right' : 'top-center'\n );\n } else if (popoverRect?.top < 0) {\n // If popover extends beyond top of viewport, switch to bottom position\n setPopoverPosition(\n position.includes('left') ? 'bottom-left' : position.includes('right') ? 'bottom-right' : 'bottom-center'\n );\n }\n };\n\n const clickListener = (event: MouseEvent) => {\n const currentDropRef = srcElementRef.current;\n if (!currentDropRef) return;\n\n const target = event.target as Node;\n const isSourcePopover = currentDropRef.contains(target);\n const isPopoverContent = popoverContentRef.current?.contains(target);\n\n // Check if click is on another popover's source element\n const clickedElement = target as HTMLElement;\n const closestPopoverWrapper = clickedElement.closest?.('.se-design-popover-wrapper');\n const isAnotherPopoverSource = closestPopoverWrapper && closestPopoverWrapper !== currentDropRef;\n\n // check if the clicked popover is a nesteded child of the current popover content\n const isNestedPopover = popoverContentRef.current?.contains(closestPopoverWrapper as Node);\n\n // if clicked source is parent or the popover-content, do not toggle dropdown.\n // Also close if clicking on another popover's source element\n if (disableAutoClose) return;\n if ((!isSourcePopover && !isPopoverContent) || (isAnotherPopoverSource && !isNestedPopover)) {\n setDisplayPopover(false);\n }\n };\n\n const clickAndScrollListenerWithPortal = (event: Event) => {\n const currentDropRef = srcElementRef.current;\n const currentPopoverRef = popoverContentRef.current;\n if (!currentDropRef) return;\n checkSourceVisibility();\n\n // Recalculate position on scroll\n if (event.type === 'scroll' && displayPopover) {\n const position = calculatePositionOfPopover(popoverPosition);\n if (position) {\n setPortalPosition(position);\n }\n }\n\n const target = event.target as Node;\n const isSourcePopover = currentDropRef.contains(target);\n const isPopoverContent = currentPopoverRef?.contains(target);\n\n // Check if click is on another popover's source element\n const clickedElement = target as HTMLElement;\n const closestPopoverWrapper = clickedElement.closest?.('.se-design-popover-wrapper');\n const isAnotherPopoverSource = closestPopoverWrapper && closestPopoverWrapper !== currentDropRef;\n\n // check if the clicked popover is a nesteded child of the current popover content\n const isNestedPopover = popoverContentRef.current?.contains(closestPopoverWrapper as Node);\n\n if (disableAutoClose) return;\n // if clicked source is parent or the popover-content, do not toggle dropdown.\n // Also close if clicking on another popover's source element\n if ((!isSourcePopover && !isPopoverContent) || (isAnotherPopoverSource && !isNestedPopover)) {\n setDisplayPopover(false);\n }\n };\n\n const resizeListenerWithPortal = () => {\n if (displayPopover && isWithPortal && srcElementRef.current) {\n checkSourceVisibility();\n const position = calculatePositionOfPopover(popoverPosition);\n if (position) {\n setPortalPosition(position);\n }\n }\n };\n\n const scrollListenerForRepositioning = () => {\n if (displayPopover && isWithPortal && srcElementRef.current) {\n checkSourceVisibility();\n const position = calculatePositionOfPopover(popoverPosition);\n if (position) {\n setPortalPosition(position);\n }\n }\n };\n\n const togglePopover = (focusFirst: boolean | 'last' = false) => {\n const wasOpen = displayPopover;\n setDisplayPopover((prev) => !prev);\n if (!wasOpen && focusFirst) {\n setTimeout(() => {\n if (focusFirst === 'last') {\n const lastFocusable = getLastFocusableElement({ container: popoverContentRef.current, includeRoles: true });\n if (lastFocusable) lastFocusable.focus();\n } else {\n const firstFocusable = getFirstFocusableElement({ container: popoverContentRef.current, includeRoles: true });\n if (firstFocusable) firstFocusable.focus();\n }\n }, 50);\n }\n };\n\n const handleArrowKeyNavigation = (e: React.KeyboardEvent, container: HTMLDivElement | null) => {\n if (!container) return;\n\n // Native form controls own their arrow key behavior — don't intercept.\n // (e.g. a SearchBox inside a Popover should keep focus while typing/navigating)\n const activeEl = document.activeElement;\n if (activeEl?.tagName === 'INPUT' || activeEl?.tagName === 'TEXTAREA' || activeEl?.tagName === 'SELECT') {\n return;\n }\n\n const focusableElements = Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_WITH_ROLES_SELECTOR)).filter((el) => {\n // Filter out disabled and hidden elements.\n // Note: check aria-disabled VALUE not just presence — React always writes aria-disabled=\"false\"\n // on elements like MenuItem even when not disabled, so hasAttribute would wrongly exclude them.\n const style = window.getComputedStyle(el);\n return (\n !el.hasAttribute('disabled') &&\n el.getAttribute('aria-disabled') !== 'true' &&\n style.display !== 'none' &&\n style.visibility !== 'hidden' &&\n (el.tabIndex >= 0 || el.hasAttribute('role'))\n );\n });\n\n if (focusableElements.length === 0) return;\n\n const currentIndex = focusableElements.findIndex((el) => el === document.activeElement);\n let nextIndex = -1;\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopPropagation();\n nextIndex = currentIndex < focusableElements.length - 1 ? currentIndex + 1 : 0;\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopPropagation();\n nextIndex = currentIndex > 0 ? currentIndex - 1 : focusableElements.length - 1;\n } else if (e.key === 'Home') {\n e.preventDefault();\n e.stopPropagation();\n nextIndex = 0;\n } else if (e.key === 'End') {\n e.preventDefault();\n e.stopPropagation();\n nextIndex = focusableElements.length - 1;\n }\n\n if (nextIndex >= 0 && focusableElements[nextIndex]) {\n focusableElements[nextIndex].focus();\n } else if (currentIndex === -1 && focusableElements.length > 0) {\n // If no element is currently focused, focus the first one\n focusableElements[0].focus();\n }\n };\n\n const handlePopoverContentKeyDown = (e: React.KeyboardEvent) => {\n // Allow Escape key to close popover when focus is on content\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setDisplayPopover(false);\n srcElementRef.current?.focus();\n } else if (e.key === 'Tab') {\n // Close popover when Tab exits the menu\n setDisplayPopover(false);\n if (e.shiftKey) {\n // Shift+Tab: prevent default (would go to wrapper) and focus trigger instead\n e.preventDefault();\n srcElementRef.current?.focus();\n } else if (isWithPortal) {\n // Portal forward Tab: portal content is at document.body so natural Tab order\n // skips back to the top of the page. Manually advance to the next focusable\n // element after the trigger in the main document instead.\n e.preventDefault();\n const srcEl = srcElementRef.current;\n const focusables = getFocusableElements({ container: document.body, filterHidden: true });\n const idx = srcEl ? focusables.indexOf(srcEl) : -1;\n const next = focusables[idx + 1];\n if (next) next.focus();\n else srcEl?.focus();\n }\n // Non-portal forward Tab: do NOT preventDefault — browser moves focus to next element naturally\n } else if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'Home' || e.key === 'End') {\n // Handle arrow key navigation for focusable elements inside popover\n handleArrowKeyNavigation(e, popoverContentRef.current);\n } else if (e.key === 'Enter' || e.key === ' ') {\n // Prevent Enter/Space from bubbling to wrapper (mirrors click stopPropagation)\n e.stopPropagation();\n }\n };\n\n useImperativeHandle(ref, () => ({ togglePopover }), []);\n\n const popoverContentStyle = {\n 'bottom-left': { left: '0', top: '100%' },\n 'bottom-right': { right: '0', top: '100%' },\n 'bottom-center': { left: '50%', transform: 'translateX(-50%)', top: '100%' },\n 'top-left': { left: '0', bottom: '100%' },\n 'top-right': { right: '0', bottom: '100%' },\n 'top-center': { left: '50%', transform: 'translateX(-50%)', bottom: '100%' }\n };\n const popoverContentClasses = noBorder ? '' : 'shadow-md border rounded-md';\n\n return (\n <div\n className={\n 'se-design-popover-wrapper cursor-pointer relative focus-outline rounded-md' +\n (className.length > 0 ? ` ${className}` : '') +\n (displayPopover ? ' open' : '') +\n (disabled ? ' opacity-50 cursor-not-allowed pointer-events-none' : '')\n }\n ref={srcElementRef}\n onClick={(e) => {\n if (disabled || disableClickToggle) return;\n e.stopPropagation();\n togglePopover();\n }}\n onKeyDown={(e) => {\n if (disabled || disableClickToggle) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n const wasOpen = displayPopover;\n togglePopover();\n // Focus first focusable element when opening.\n // Portal content isn't mounted until isSrcElementVisible resolves (via setTimeout 0),\n // so use a longer delay for portal to ensure popoverContentRef.current is set.\n if (!wasOpen) {\n setTimeout(() => {\n const firstFocusable = getFirstFocusableElement({ container: popoverContentRef.current, includeRoles: true });\n if (firstFocusable) firstFocusable.focus();\n }, isWithPortal ? 60 : 0);\n }\n } else if (e.key === 'Escape' && displayPopover) {\n e.preventDefault();\n e.stopPropagation();\n setDisplayPopover(false);\n } else if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && displayPopover) {\n // Handle arrow keys when popover is open\n const currentRef = popoverContentRef.current;\n if (currentRef) {\n handleArrowKeyNavigation(e, currentRef);\n }\n } else if (e.key === 'ArrowDown' && !displayPopover) {\n // Open popover and focus first item when ArrowDown is pressed\n e.preventDefault();\n e.stopPropagation();\n setDisplayPopover(true);\n setTimeout(() => {\n const firstFocusable = getFirstFocusableElement({ container: popoverContentRef.current, includeRoles: true });\n if (firstFocusable) firstFocusable.focus();\n }, 0);\n }\n }}\n onBlurCapture={onDismissBlurCapture}\n onBlur={(e) => {\n // Portal content is rendered outside wrapper, so keep explicit check for that case.\n if (!displayPopover || disableAutoClose || !isWithPortal) return;\n\n const nextFocused = e.relatedTarget as Node | null;\n const isFocusInSource = !!(nextFocused && srcElementRef.current?.contains(nextFocused));\n const isFocusInPopover = !!(nextFocused && popoverContentRef.current?.contains(nextFocused));\n\n // Close only when focus leaves both source and portal content.\n if (!isFocusInSource && !isFocusInPopover) {\n setDisplayPopover(false);\n }\n }}\n role={disableClickToggle ? 'none' : sourceRole}\n aria-expanded={disableClickToggle ? undefined : displayPopover ? 'true' : 'false'}\n aria-haspopup={disableClickToggle ? undefined : sourceRole === 'combobox' ? 'listbox' : 'true'}\n tabIndex={disabled || disableClickToggle ? -1 : 0}\n aria-disabled={disableClickToggle ? undefined : disabled ? 'true' : 'false'}\n {...accessibleNameProps}\n data-automation-id={automationId}\n {...props}\n >\n {renderPopoverSrcElement({ displayPopover, togglePopover })}\n\n {displayPopover && !isWithPortal && (\n <div\n className={`popover-content absolute ${popoverContentClasses} z-[1000] ${\n contentWidth == 'full' ? 'w-full' : 'w-max'\n }`}\n style={{\n ...popoverContentStyleProperty,\n ...popoverContentStyle[popoverPosition]\n }}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={handlePopoverContentKeyDown}\n ref={popoverContentRef}\n data-automation-id={popoverContentAutomationId}\n >\n {renderPopoverContents({ closePopoverCb: () => setDisplayPopover(false) })}\n </div>\n )}\n {isWithPortal &&\n displayPopover &&\n isSrcElementVisible &&\n ReactDOM.createPortal(\n <div\n className={`popover-content-with-portal ${popoverContentClasses} ${\n contentWidth == 'full' ? 'w-full' : 'w-max'\n }`}\n style={{\n position: 'fixed',\n top: portalPosition.top,\n left: portalPosition.left,\n ...popoverContentStyleProperty\n }}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={handlePopoverContentKeyDown}\n ref={popoverContentRef}\n data-automation-id={popoverContentAutomationId}\n >\n {renderPopoverContents({ closePopoverCb: () => setDisplayPopover(false) })}\n </div>,\n document.body\n )}\n </div>\n );\n }\n);\n"],"names":["Popover","className","automationId","position","popoverContentAutomationId","contentWidth","renderPopoverContents","renderPopoverSrcElement","onPopoverToggle","isPopoverOpen","disabled","isWithPortal","ariaLabel","ariaLabelledBy","sourceRole","popoverContentStyleProperty","zIndex","borderColor","color","backgroundColor","disableClickToggle","noBorder","disableAutoClose","focusFirstOnOpen","props","ref","displayPopover","setDisplayPopover","useState","popoverPosition","setPopoverPosition","isSrcElementVisible","setIsSrcElementVisible","srcElementRef","useRef","popoverContentRef","accessibleNameProps","getA11yNameAttributes","ariaDescribedBy","undefined","onBlurCapture","onDismissBlurCapture","useDismissOnFocusOut","onFocusOut","closeOnEscape","portalPosition","setPortalPosition","top","left","calculatePositionOfPopover","current","localPosition","srcRect","getBoundingClientRect","viewportWidth","window","innerWidth","viewportHeight","innerHeight","bottom","right","width","height","popoverRect","popoverWidth","popoverHeight","Math","max","spaceAbove","spaceBelow","useEffect","document","body","addEventListener","clickListener","checkPopoverPosition","removeEventListener","scrollListenerForRepositioning","clickAndScrollListenerWithPortal","resizeListenerWithPortal","timeout1","setTimeout","checkSourceVisibility","timeout2","clearTimeout","rec","isVisible","firstFocusable","getFirstFocusableElement","container","includeRoles","activeElement","focus","includes","event","currentDropRef","target","isSourcePopover","contains","isPopoverContent","closestPopoverWrapper","closest","isAnotherPopoverSource","isNestedPopover","currentPopoverRef","type","togglePopover","focusFirst","wasOpen","prev","lastFocusable","getLastFocusableElement","handleArrowKeyNavigation","e","activeEl","tagName","focusableElements","Array","from","querySelectorAll","FOCUSABLE_WITH_ROLES_SELECTOR","filter","el","style","getComputedStyle","hasAttribute","getAttribute","display","visibility","tabIndex","length","currentIndex","findIndex","nextIndex","key","preventDefault","stopPropagation","handlePopoverContentKeyDown","shiftKey","srcEl","focusables","getFocusableElements","filterHidden","idx","indexOf","next","useImperativeHandle","popoverContentStyle","transform","popoverContentClasses","React","createElement","_extends","onClick","onKeyDown","currentRef","onBlur","nextFocused","relatedTarget","isFocusInSource","isFocusInPopover","role","closePopoverCb","ReactDOM","createPortal"],"mappings":"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"}
package/dist/index190.js CHANGED
@@ -1,12 +1,5 @@
1
- function n(i) {
2
- if (!i) return !1;
3
- const t = window.getComputedStyle(i);
4
- if (t.display === "none" || t.visibility === "hidden")
5
- return !1;
6
- const e = i.getBoundingClientRect();
7
- return e.width > 0 && e.height > 0;
8
- }
1
+ const e = "data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M15.4447%206.36364L8.30181%2013.6364L5.05505%2010.3306'%20stroke='currentColor'%20stroke-width='1.2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e";
9
2
  export {
10
- n as isElementVisible
3
+ e as default
11
4
  };
12
5
  //# sourceMappingURL=index190.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index190.js","sources":["../src/utils/a11y/elementVisibility.ts"],"sourcesContent":["/**\n * Checks if an element is visible in the DOM.\n * \n * An element is considered visible if:\n * - It exists in the DOM\n * - It's not hidden via CSS (display: none, visibility: hidden)\n * - It has actual dimensions (width > 0 and height > 0)\n * \n * @param element - The element to check, or null\n * @returns true if the element is visible, false otherwise\n * \n * @example\n * const element = document.getElementById('my-element');\n * if (isElementVisible(element)) {\n * // Element is visible\n * }\n */\nexport function isElementVisible(element: HTMLElement | null): boolean {\n if (!element) return false;\n\n // Check computed style for display/visibility\n const style = window.getComputedStyle(element);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n\n // Check if element has dimensions\n const rect = element.getBoundingClientRect();\n return rect.width > 0 && rect.height > 0;\n}\n"],"names":["isElementVisible","element","style","window","getComputedStyle","display","visibility","rect","getBoundingClientRect","width","height"],"mappings":"AAiBO,SAASA,EAAiBC,GAAsC;AACrE,MAAI,CAACA,EAAS,QAAO;AAGrB,QAAMC,IAAQC,OAAOC,iBAAiBH,CAAO;AAC7C,MAAIC,EAAMG,YAAY,UAAUH,EAAMI,eAAe;AACnD,WAAO;AAIT,QAAMC,IAAON,EAAQO,sBAAAA;AACrB,SAAOD,EAAKE,QAAQ,KAAKF,EAAKG,SAAS;AACzC;"}
1
+ {"version":3,"file":"index190.js","sources":["../src/assets/icons/tick.svg?url"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M15.4447%206.36364L8.30181%2013.6364L5.05505%2010.3306'%20stroke='currentColor'%20stroke-width='1.2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\""],"names":["__vite_glob_0_110"],"mappings":"AAAA,MAAAA,IAAe;"}
package/dist/index191.js CHANGED
@@ -1,9 +1,5 @@
1
- import { useRef as n } from "react";
2
- function u(e, t = "se-id") {
3
- const r = n("");
4
- return r.current || (r.current = `${t}-${crypto.randomUUID()}`), e || r.current;
5
- }
1
+ const e = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%3e%3cpath%20d='M1.25439%208.51893H14.7454M4.88658%208.51893V10.0756M11.1132%208.51893V10.0756M4.88658%204.88674V2.81121C4.88658%202.23807%205.35121%201.77344%205.92435%201.77344H10.0754C10.6486%201.77344%2011.1132%202.23807%2011.1132%202.81121V4.88674M13.7076%204.88674H2.29216C1.71902%204.88674%201.25439%205.35137%201.25439%205.92451V13.1889C1.25439%2013.762%201.71902%2014.2266%202.29216%2014.2266H13.7076C14.2808%2014.2266%2014.7454%2013.762%2014.7454%2013.1889V5.92451C14.7454%205.35137%2014.2808%204.88674%2013.7076%204.88674Z'%20stroke='black'%20stroke-linecap='round'%20stroke-linejoin='round'%20/%3e%3c/svg%3e";
6
2
  export {
7
- u as useStableId
3
+ e as default
8
4
  };
9
5
  //# sourceMappingURL=index191.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index191.js","sources":["../src/utils/useStableId.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * Generates a stable unique ID for component instances (React 16 compatible).\n * Returns the provided id if given, otherwise generates a stable per-mount id.\n * \n * @param id - Optional explicit id\n * @param prefix - Prefix for auto-generated ids (default: 'se-id')\n * @returns Stable id string\n */\nexport function useStableId(id?: string, prefix: string = 'se-id'): string {\n const autoIdRef = useRef<string>('');\n \n if (!autoIdRef.current) {\n autoIdRef.current = `${prefix}-${crypto.randomUUID()}`;\n }\n \n return id || autoIdRef.current;\n}\n\n\n\n\n\n\n\n"],"names":["useRef","useStableId","id","prefix","autoIdRef","current","crypto","randomUUID"],"mappings":"AAUO,SAAA,UAAAA,SAAA;AAAA,SAASC,EAAYC,GAAaC,IAAiB,SAAiB;AACzE,QAAMC,IAAYJ,EAAe,EAAE;AAEnC,SAAKI,EAAUC,YACbD,EAAUC,UAAU,GAAGF,CAAM,IAAIG,OAAOC,YAAY,KAG/CL,KAAME,EAAUC;AACzB;"}
1
+ {"version":3,"file":"index191.js","sources":["../src/assets/icons/title-field.svg?url"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%3e%3cpath%20d='M1.25439%208.51893H14.7454M4.88658%208.51893V10.0756M11.1132%208.51893V10.0756M4.88658%204.88674V2.81121C4.88658%202.23807%205.35121%201.77344%205.92435%201.77344H10.0754C10.6486%201.77344%2011.1132%202.23807%2011.1132%202.81121V4.88674M13.7076%204.88674H2.29216C1.71902%204.88674%201.25439%205.35137%201.25439%205.92451V13.1889C1.25439%2013.762%201.71902%2014.2266%202.29216%2014.2266H13.7076C14.2808%2014.2266%2014.7454%2013.762%2014.7454%2013.1889V5.92451C14.7454%205.35137%2014.2808%204.88674%2013.7076%204.88674Z'%20stroke='black'%20stroke-linecap='round'%20stroke-linejoin='round'%20/%3e%3c/svg%3e\""],"names":["__vite_glob_0_111"],"mappings":"AAAA,MAAAA,IAAe;"}
package/dist/index192.js CHANGED
@@ -1,8 +1,5 @@
1
- function o(...n) {
2
- const t = [...new Set(n.filter((e) => !!e).flatMap((e) => e.trim().split(/\s+/)).filter(Boolean))];
3
- return t.length > 0 ? t.join(" ") : void 0;
4
- }
1
+ const e = "data:image/svg+xml,%3csvg%20width='35'%20height='43'%20viewBox='0%200%2035%2043'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_8801_133423)'%3e%3crect%20x='0.5625'%20y='0.25'%20width='33.5'%20height='41.5'%20rx='1.75'%20fill='%23F4FAFF'%20stroke='%231088E7'%20stroke-width='0.5'/%3e%3cg%20clip-path='url(%23clip1_8801_133423)'%3e%3cpath%20d='M7.81283%2010.5007C8.57025%2010.5007%209.18426%209.88666%209.18426%209.12924C9.18426%208.37182%208.57025%207.75781%207.81283%207.75781C7.05542%207.75781%206.44141%208.37182%206.44141%209.12924C6.44141%209.88666%207.05542%2010.5007%207.81283%2010.5007Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7.81401%2011.4141C6.57792%2011.4141%205.51811%2012.1688%205.07031%2013.2426H10.5577C10.1099%2012.1688%209.0501%2011.4141%207.81401%2011.4141Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cg%20clip-path='url(%23clip2_8801_133423)'%3e%3cpath%20d='M7.81283%2020.5007C8.57025%2020.5007%209.18426%2019.8867%209.18426%2019.1292C9.18426%2018.3718%208.57025%2017.7578%207.81283%2017.7578C7.05542%2017.7578%206.44141%2018.3718%206.44141%2019.1292C6.44141%2019.8867%207.05542%2020.5007%207.81283%2020.5007Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7.81401%2021.4141C6.57792%2021.4141%205.51811%2022.1688%205.07031%2023.2426H10.5577C10.1099%2022.1688%209.0501%2021.4141%207.81401%2021.4141Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cg%20clip-path='url(%23clip3_8801_133423)'%3e%3cpath%20d='M7.81283%2030.5007C8.57025%2030.5007%209.18426%2029.8867%209.18426%2029.1292C9.18426%2028.3718%208.57025%2027.7578%207.81283%2027.7578C7.05542%2027.7578%206.44141%2028.3718%206.44141%2029.1292C6.44141%2029.8867%207.05542%2030.5007%207.81283%2030.5007Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7.81401%2031.4141C6.57792%2031.4141%205.51811%2032.1688%205.07031%2033.2426H10.5577C10.1099%2032.1688%209.0501%2031.4141%207.81401%2031.4141Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cpath%20d='M12.3125%2012H30.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%2022H30.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%2032H30.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%209H19.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%2019H19.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%2029H19.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_8801_133423'%3e%3crect%20width='34.6287'%20height='42.5'%20fill='white'/%3e%3c/clipPath%3e%3cclipPath%20id='clip1_8801_133423'%3e%3crect%20width='7'%20height='7'%20fill='white'%20transform='translate(4.3125%207)'/%3e%3c/clipPath%3e%3cclipPath%20id='clip2_8801_133423'%3e%3crect%20width='7'%20height='7'%20fill='white'%20transform='translate(4.3125%2017)'/%3e%3c/clipPath%3e%3cclipPath%20id='clip3_8801_133423'%3e%3crect%20width='7'%20height='7'%20fill='white'%20transform='translate(4.3125%2027)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
5
2
  export {
6
- o as mergeIds
3
+ e as default
7
4
  };
8
5
  //# sourceMappingURL=index192.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index192.js","sources":["../src/utils/mergeIds.ts"],"sourcesContent":["/**\n * Merges multiple ID strings into a single space-separated string.\n * Filters out falsy values and deduplicates IDs while preserving order.\n * \n * Useful for ARIA attributes (aria-describedby, aria-labelledby) and class names.\n * \n * @param ids - Array of id strings (or undefined/null)\n * @returns Merged space-separated id string, or undefined if no valid ids\n * \n * @example\n * mergeIds('error-1', undefined, 'helper-1', 'error-1')\n * // Returns: 'error-1 helper-1'\n */\nexport function mergeIds(...ids: (string | undefined | null)[]): string | undefined {\n const uniqueIds = [\n ...new Set(\n ids\n .filter((id): id is string => Boolean(id))\n .flatMap(id => id.trim().split(/\\s+/))\n .filter(Boolean)\n )\n ];\n \n return uniqueIds.length > 0 ? uniqueIds.join(' ') : undefined;\n}\n"],"names":["mergeIds","ids","uniqueIds","Set","filter","id","Boolean","flatMap","trim","split","length","join","undefined"],"mappings":"AAaO,SAASA,KAAYC,GAAwD;AAClF,QAAMC,IAAY,CAChB,GAAG,IAAIC,IACLF,EACGG,OAAO,CAACC,MAAqBC,EAAQD,CAAG,EACxCE,QAAQF,CAAAA,MAAMA,EAAGG,OAAOC,MAAM,KAAK,CAAC,EACpCL,OAAOE,OAAO,CACnB,CAAC;AAGH,SAAOJ,EAAUQ,SAAS,IAAIR,EAAUS,KAAK,GAAG,IAAIC;AACtD;"}
1
+ {"version":3,"file":"index192.js","sources":["../src/assets/icons/upload-csv.svg?url"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20width='35'%20height='43'%20viewBox='0%200%2035%2043'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_8801_133423)'%3e%3crect%20x='0.5625'%20y='0.25'%20width='33.5'%20height='41.5'%20rx='1.75'%20fill='%23F4FAFF'%20stroke='%231088E7'%20stroke-width='0.5'/%3e%3cg%20clip-path='url(%23clip1_8801_133423)'%3e%3cpath%20d='M7.81283%2010.5007C8.57025%2010.5007%209.18426%209.88666%209.18426%209.12924C9.18426%208.37182%208.57025%207.75781%207.81283%207.75781C7.05542%207.75781%206.44141%208.37182%206.44141%209.12924C6.44141%209.88666%207.05542%2010.5007%207.81283%2010.5007Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7.81401%2011.4141C6.57792%2011.4141%205.51811%2012.1688%205.07031%2013.2426H10.5577C10.1099%2012.1688%209.0501%2011.4141%207.81401%2011.4141Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cg%20clip-path='url(%23clip2_8801_133423)'%3e%3cpath%20d='M7.81283%2020.5007C8.57025%2020.5007%209.18426%2019.8867%209.18426%2019.1292C9.18426%2018.3718%208.57025%2017.7578%207.81283%2017.7578C7.05542%2017.7578%206.44141%2018.3718%206.44141%2019.1292C6.44141%2019.8867%207.05542%2020.5007%207.81283%2020.5007Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7.81401%2021.4141C6.57792%2021.4141%205.51811%2022.1688%205.07031%2023.2426H10.5577C10.1099%2022.1688%209.0501%2021.4141%207.81401%2021.4141Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cg%20clip-path='url(%23clip3_8801_133423)'%3e%3cpath%20d='M7.81283%2030.5007C8.57025%2030.5007%209.18426%2029.8867%209.18426%2029.1292C9.18426%2028.3718%208.57025%2027.7578%207.81283%2027.7578C7.05542%2027.7578%206.44141%2028.3718%206.44141%2029.1292C6.44141%2029.8867%207.05542%2030.5007%207.81283%2030.5007Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7.81401%2031.4141C6.57792%2031.4141%205.51811%2032.1688%205.07031%2033.2426H10.5577C10.1099%2032.1688%209.0501%2031.4141%207.81401%2031.4141Z'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cpath%20d='M12.3125%2012H30.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%2022H30.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%2032H30.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%209H19.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%2019H19.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3cpath%20d='M12.3125%2029H19.3125'%20stroke='%231088E7'%20stroke-width='0.5'%20stroke-linecap='round'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_8801_133423'%3e%3crect%20width='34.6287'%20height='42.5'%20fill='white'/%3e%3c/clipPath%3e%3cclipPath%20id='clip1_8801_133423'%3e%3crect%20width='7'%20height='7'%20fill='white'%20transform='translate(4.3125%207)'/%3e%3c/clipPath%3e%3cclipPath%20id='clip2_8801_133423'%3e%3crect%20width='7'%20height='7'%20fill='white'%20transform='translate(4.3125%2017)'/%3e%3c/clipPath%3e%3cclipPath%20id='clip3_8801_133423'%3e%3crect%20width='7'%20height='7'%20fill='white'%20transform='translate(4.3125%2027)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\""],"names":["__vite_glob_0_112"],"mappings":"AAAA,MAAAA,IAAe;"}
package/dist/index193.js CHANGED
@@ -1,43 +1,5 @@
1
- import { useRef as n } from "react";
2
- import { useFocusTrap as d } from "./index194.js";
3
- import { useDismissOnEscape as u } from "./index195.js";
4
- import { getA11yNameAttributes as c } from "./index71.js";
5
- import { useStableId as f } from "./index191.js";
6
- function I({
7
- isOpen: o,
8
- onDismiss: a,
9
- title: t,
10
- ariaLabel: s,
11
- titleIdPrefix: i = "modal-title",
12
- initialFocus: m = "first"
13
- }) {
14
- const e = n(null), r = f(void 0, i);
15
- d({
16
- enabled: o,
17
- containerRef: e,
18
- restoreFocus: !0,
19
- initialFocus: m
20
- }), u({
21
- containerRef: e,
22
- onDismiss: a,
23
- enabled: o
24
- });
25
- const l = {
26
- role: "dialog",
27
- "aria-modal": !0,
28
- tabIndex: -1,
29
- ...c({
30
- ariaLabelledBy: t ? r : void 0,
31
- ariaLabel: t ? void 0 : s
32
- })
33
- };
34
- return {
35
- containerRef: e,
36
- titleId: r,
37
- dialogProps: l
38
- };
39
- }
1
+ const e = "data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_16652_76962)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.91%2049.82C38.6674%2049.82%2049.82%2038.6674%2049.82%2024.91C49.82%2011.1526%2038.6674%200%2024.91%200C11.1526%200%200%2011.1526%200%2024.91C0%2038.6674%2011.1526%2049.82%2024.91%2049.82ZM24.91%2011.1205C26.384%2011.1205%2027.5789%2012.3155%2027.5789%2013.7895V25.3548C27.5789%2026.8288%2026.384%2028.0238%2024.91%2028.0238C23.436%2028.0238%2022.2411%2026.8288%2022.2411%2025.3548V13.7895C22.2411%2012.3155%2023.436%2011.1205%2024.91%2011.1205ZM28.4686%2035.1409C28.4686%2037.1063%2026.8753%2038.6995%2024.91%2038.6995C22.9447%2038.6995%2021.3514%2037.1063%2021.3514%2035.1409C21.3514%2033.1756%2022.9447%2031.5823%2024.91%2031.5823C26.8753%2031.5823%2028.4686%2033.1756%2028.4686%2035.1409Z'%20fill='%23FC2F60'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_16652_76962'%3e%3crect%20width='49.82'%20height='49.82'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
40
2
  export {
41
- I as useModalA11y
3
+ e as default
42
4
  };
43
5
  //# sourceMappingURL=index193.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index193.js","sources":["../src/utils/a11y/useModalA11y.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useFocusTrap } from './useFocusTrap';\nimport { useDismissOnEscape } from './useDismissOnEscape';\nimport { getA11yNameAttributes } from './accessibleName';\nimport { useStableId } from 'src/utils/useStableId';\n\nexport interface UseModalA11yOptions {\n /**\n * Whether the modal is open. Controls focus trap and Escape handler activation.\n */\n isOpen: boolean;\n /**\n * Called when Escape is pressed while focus is within the modal.\n * If undefined, Escape dismissal is disabled.\n */\n onDismiss?: () => void;\n /**\n * Visible title text. When provided, the dialog is labelled via aria-labelledby\n * pointing to the title element (preferred over aria-label when a visible heading exists).\n * Render `<h2 id={titleId}>` inside the modal to complete the association.\n */\n title?: string;\n /**\n * aria-label for modals without a visible title heading.\n * Only used when `title` is not provided.\n */\n ariaLabel?: string;\n /**\n * Prefix for the auto-generated title element id. Default: 'modal-title'.\n */\n titleIdPrefix?: string;\n /**\n * Initial focus target when the modal opens. Forwarded to useFocusTrap.\n * - 'first': Focus first focusable element (default)\n * - 'container': Focus the dialog container itself\n * - 'none': Skip — browser handles it (e.g. autofocus attribute on inner element)\n * - CSS selector string: Focus matching element\n * - HTMLElement: Focus specific element\n */\n initialFocus?: 'first' | 'container' | 'none' | string | HTMLElement;\n}\n\nexport interface UseModalA11yReturn {\n /**\n * Ref to attach to the dialog container element.\n */\n containerRef: React.RefObject<HTMLDivElement | null>;\n /**\n * Stable ID to set on the visible title element: `<h2 id={titleId}>`.\n * Only relevant when `title` is provided.\n */\n titleId: string;\n /**\n * Spread onto the dialog container element.\n * Includes: role=\"dialog\", aria-modal, tabIndex, aria-labelledby or aria-label.\n */\n dialogProps: {\n role: 'dialog';\n 'aria-modal': true;\n tabIndex: number;\n [key: string]: unknown;\n };\n}\n\n/**\n * Bundles all WCAG dialog semantics into a single hook.\n *\n * Handles:\n * - Stable ID for title element (aria-labelledby association)\n * - Focus trap: moves focus into modal on open, wraps Tab, restores focus on close\n * - Escape dismissal: calls onDismiss when Escape is pressed within the modal\n * - dialogProps: role=\"dialog\", aria-modal, tabIndex, aria-labelledby / aria-label\n *\n * @example\n * ```tsx\n * const MyModal = ({ isOpen, onClose, title }) => {\n * const { containerRef, titleId, dialogProps } = useModalA11y({\n * isOpen,\n * onDismiss: onClose,\n * title,\n * });\n *\n * return (\n * <div ref={containerRef} {...dialogProps} className=\"modal-content\">\n * <h2 id={titleId}>{title}</h2>\n * ...\n * </div>\n * );\n * };\n * ```\n *\n * @example Modal without a visible title\n * ```tsx\n * const { containerRef, titleId, dialogProps } = useModalA11y({\n * isOpen,\n * onDismiss: onClose,\n * ariaLabel: 'Upload document',\n * });\n * ```\n *\n * @example Custom initial focus (specific button) or skip (autofocus)\n * ```tsx\n * useModalA11y({ isOpen, onDismiss, title, initialFocus: '.my-cta-btn' });\n * useModalA11y({ isOpen, onDismiss, title, initialFocus: 'none' }); // autofocus on inner element\n * ```\n */\nexport function useModalA11y({\n isOpen,\n onDismiss,\n title,\n ariaLabel,\n titleIdPrefix = 'modal-title',\n initialFocus = 'first',\n}: UseModalA11yOptions): UseModalA11yReturn {\n const containerRef = useRef<HTMLDivElement>(null);\n const titleId = useStableId(undefined, titleIdPrefix);\n\n useFocusTrap({\n enabled: isOpen,\n containerRef,\n restoreFocus: true,\n initialFocus,\n });\n\n useDismissOnEscape({\n containerRef,\n onDismiss,\n enabled: isOpen,\n });\n\n const nameAttrs = getA11yNameAttributes({\n ariaLabelledBy: title ? titleId : undefined,\n ariaLabel: !title ? ariaLabel : undefined,\n });\n\n const dialogProps = {\n role: 'dialog' as const,\n 'aria-modal': true as const,\n tabIndex: -1,\n ...nameAttrs,\n };\n\n return { containerRef, titleId, dialogProps };\n}\n"],"names":["useRef","useFocusTrap","useDismissOnEscape","getA11yNameAttributes","useStableId","useModalA11y","isOpen","onDismiss","title","ariaLabel","titleIdPrefix","initialFocus","containerRef","titleId","undefined","enabled","restoreFocus","dialogProps","role","tabIndex","ariaLabelledBy","nameAttrs"],"mappings":"AA0GO,SAAA,UAAAA,SAAA;AAAA,SAAA,gBAAAC,SAAA;AAAA,SAAA,sBAAAC,SAAA;AAAA,SAAA,yBAAAC,SAAA;AAAA,SAAA,eAAAC,SAAA;AAAA,SAASC,EAAa;AAAA,EAC3BC,QAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,eAAAA,IAAgB;AAAA,EAChBC,cAAAA,IAAe;AACI,GAAuB;AAC1C,QAAMC,IAAeZ,EAAuB,IAAI,GAC1Ca,IAAUT,EAAYU,QAAWJ,CAAa;AAEpDT,EAAAA,EAAa;AAAA,IACXc,SAAST;AAAAA,IACTM,cAAAA;AAAAA,IACAI,cAAc;AAAA,IACdL,cAAAA;AAAAA,EAAAA,CACD,GAEDT,EAAmB;AAAA,IACjBU,cAAAA;AAAAA,IACAL,WAAAA;AAAAA,IACAQ,SAAST;AAAAA,EAAAA,CACV;AAOD,QAAMW,IAAc;AAAA,IAClBC,MAAM;AAAA,IACN,cAAc;AAAA,IACdC,UAAU;AAAA,IACV,GATgBhB,EAAsB;AAAA,MACtCiB,gBAAgBZ,IAAQK,IAAUC;AAAAA,MAClCL,WAAYD,IAAoBM,SAAZL;AAAAA,IAAYK,CACjC;AAAA,EAMIO;AAGL,SAAO;AAAA,IAAET,cAAAA;AAAAA,IAAcC,SAAAA;AAAAA,IAASI,aAAAA;AAAAA,EAAAA;AAClC;"}
1
+ {"version":3,"file":"index193.js","sources":["../src/assets/icons/warning.svg?url"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_16652_76962)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.91%2049.82C38.6674%2049.82%2049.82%2038.6674%2049.82%2024.91C49.82%2011.1526%2038.6674%200%2024.91%200C11.1526%200%200%2011.1526%200%2024.91C0%2038.6674%2011.1526%2049.82%2024.91%2049.82ZM24.91%2011.1205C26.384%2011.1205%2027.5789%2012.3155%2027.5789%2013.7895V25.3548C27.5789%2026.8288%2026.384%2028.0238%2024.91%2028.0238C23.436%2028.0238%2022.2411%2026.8288%2022.2411%2025.3548V13.7895C22.2411%2012.3155%2023.436%2011.1205%2024.91%2011.1205ZM28.4686%2035.1409C28.4686%2037.1063%2026.8753%2038.6995%2024.91%2038.6995C22.9447%2038.6995%2021.3514%2037.1063%2021.3514%2035.1409C21.3514%2033.1756%2022.9447%2031.5823%2024.91%2031.5823C26.8753%2031.5823%2028.4686%2033.1756%2028.4686%2035.1409Z'%20fill='%23FC2F60'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_16652_76962'%3e%3crect%20width='49.82'%20height='49.82'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\""],"names":["__vite_glob_0_113"],"mappings":"AAAA,MAAAA,IAAe;"}