se-design 1.0.75 → 1.0.76-dev2

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 (484) hide show
  1. package/dist/assets/style.css +1 -1
  2. package/dist/components/AccessibleDiv/index.d.ts +24 -0
  3. package/dist/components/Checkbox/index.d.ts +12 -0
  4. package/dist/components/CustomAccordion/index.d.ts +1 -0
  5. package/dist/components/CustomModal/index.d.ts +15 -12
  6. package/dist/components/DatePicker/useDatePickerA11y.d.ts +50 -0
  7. package/dist/components/Dropdown/index.d.ts +15 -0
  8. package/dist/components/DropdownWithInputTags/index.d.ts +1 -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 +1 -1
  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 +2 -2
  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 +2 -2
  36. package/dist/index107.js.map +1 -1
  37. package/dist/index108.js +2 -2
  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 +1 -1
  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 +2 -2
  52. package/dist/index114.js.map +1 -1
  53. package/dist/index115.js +1 -1
  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 +1 -1
  58. package/dist/index117.js.map +1 -1
  59. package/dist/index118.js +2 -2
  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 +68 -33
  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 +2 -2
  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 +48 -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 +1 -1
  94. package/dist/index133.js.map +1 -1
  95. package/dist/index134.js +2 -2
  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 +1 -1
  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 +2 -2
  118. package/dist/index144.js.map +1 -1
  119. package/dist/index145.js +1 -1
  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 +2 -2
  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 +1 -1
  180. package/dist/index172.js.map +1 -1
  181. package/dist/index173.js +2 -2
  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 +1 -1
  188. package/dist/index176.js.map +1 -1
  189. package/dist/index177.js +2 -2
  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 +1 -1
  210. package/dist/index186.js.map +1 -1
  211. package/dist/index187.js +2 -2
  212. package/dist/index187.js.map +1 -1
  213. package/dist/index188.js +1 -1
  214. package/dist/index188.js.map +1 -1
  215. package/dist/index189.js +2 -2
  216. package/dist/index189.js.map +1 -1
  217. package/dist/index19.js +323 -16
  218. package/dist/index19.js.map +1 -1
  219. package/dist/index190.js +2 -149
  220. package/dist/index190.js.map +1 -1
  221. package/dist/index191.js +2 -9
  222. package/dist/index191.js.map +1 -1
  223. package/dist/index192.js +2 -6
  224. package/dist/index192.js.map +1 -1
  225. package/dist/index193.js +2 -5
  226. package/dist/index193.js.map +1 -1
  227. package/dist/index194.js +2 -40
  228. package/dist/index194.js.map +1 -1
  229. package/dist/index195.js +2 -59
  230. package/dist/index195.js.map +1 -1
  231. package/dist/index196.js +2 -23
  232. package/dist/index196.js.map +1 -1
  233. package/dist/index197.js +152 -0
  234. package/dist/index197.js.map +1 -0
  235. package/dist/index198.js +12 -0
  236. package/dist/index198.js.map +1 -0
  237. package/dist/index199.js +5 -23
  238. package/dist/index199.js.map +1 -1
  239. package/dist/index20.js +15 -31
  240. package/dist/index20.js.map +1 -1
  241. package/dist/index200.js +8 -0
  242. package/dist/index200.js.map +1 -0
  243. package/dist/index201.js +36 -80
  244. package/dist/index201.js.map +1 -1
  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/{index210.js → index215.js} +1 -1
  252. package/dist/{index210.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/{index218.js → index223.js} +1 -1
  256. package/dist/{index218.js.map → index223.js.map} +1 -1
  257. package/dist/{index221.js → index226.js} +2 -2
  258. package/dist/{index221.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 +171 -8
  262. package/dist/index235.js.map +1 -1
  263. package/dist/index236.js +3 -9
  264. package/dist/index236.js.map +1 -1
  265. package/dist/index238.js +18 -169
  266. package/dist/index238.js.map +1 -1
  267. package/dist/index239.js +10 -11
  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 +8 -4
  272. package/dist/index240.js.map +1 -1
  273. package/dist/index241.js +4 -5
  274. package/dist/index241.js.map +1 -1
  275. package/dist/index242.js +168 -36
  276. package/dist/index242.js.map +1 -1
  277. package/dist/index243.js +11 -2
  278. package/dist/index243.js.map +1 -1
  279. package/dist/index244.js +5 -7
  280. package/dist/index244.js.map +1 -1
  281. package/dist/index245.js +5 -326
  282. package/dist/index245.js.map +1 -1
  283. package/dist/index246.js +36 -48
  284. package/dist/index246.js.map +1 -1
  285. package/dist/index247.js +2 -2
  286. package/dist/index248.js +7 -75
  287. package/dist/index248.js.map +1 -1
  288. package/dist/index249.js +308 -74
  289. package/dist/index249.js.map +1 -1
  290. package/dist/index25.js +299 -43
  291. package/dist/index25.js.map +1 -1
  292. package/dist/index250.js +45 -47
  293. package/dist/index250.js.map +1 -1
  294. package/dist/index251.js +2 -8
  295. package/dist/index251.js.map +1 -1
  296. package/dist/index252.js +75 -4
  297. package/dist/index252.js.map +1 -1
  298. package/dist/index253.js +89 -48
  299. package/dist/index253.js.map +1 -1
  300. package/dist/index254.js +52 -2
  301. package/dist/index254.js.map +1 -1
  302. package/dist/index255.js +8 -2
  303. package/dist/index255.js.map +1 -1
  304. package/dist/index256.js +8 -0
  305. package/dist/index256.js.map +1 -0
  306. package/dist/index257.js +55 -0
  307. package/dist/index257.js.map +1 -0
  308. package/dist/index258.js +5 -0
  309. package/dist/index258.js.map +1 -0
  310. package/dist/index259.js +5 -0
  311. package/dist/index259.js.map +1 -0
  312. package/dist/index26.js +48 -23
  313. package/dist/index26.js.map +1 -1
  314. package/dist/index27.js +21 -81
  315. package/dist/index27.js.map +1 -1
  316. package/dist/index28.js +101 -138
  317. package/dist/index28.js.map +1 -1
  318. package/dist/index29.js +139 -128
  319. package/dist/index29.js.map +1 -1
  320. package/dist/index3.js +57 -98
  321. package/dist/index3.js.map +1 -1
  322. package/dist/index30.js +133 -69
  323. package/dist/index30.js.map +1 -1
  324. package/dist/index31.js +67 -96
  325. package/dist/index31.js.map +1 -1
  326. package/dist/index32.js +96 -71
  327. package/dist/index32.js.map +1 -1
  328. package/dist/index33.js +70 -38
  329. package/dist/index33.js.map +1 -1
  330. package/dist/index34.js +40 -71
  331. package/dist/index34.js.map +1 -1
  332. package/dist/index35.js +67 -82
  333. package/dist/index35.js.map +1 -1
  334. package/dist/index36.js +99 -54
  335. package/dist/index36.js.map +1 -1
  336. package/dist/index37.js +53 -280
  337. package/dist/index37.js.map +1 -1
  338. package/dist/index38.js +283 -70
  339. package/dist/index38.js.map +1 -1
  340. package/dist/index39.js +69 -80
  341. package/dist/index39.js.map +1 -1
  342. package/dist/index4.js +102 -42
  343. package/dist/index4.js.map +1 -1
  344. package/dist/index40.js +82 -32
  345. package/dist/index40.js.map +1 -1
  346. package/dist/index41.js +26 -44
  347. package/dist/index41.js.map +1 -1
  348. package/dist/index42.js +45 -67
  349. package/dist/index42.js.map +1 -1
  350. package/dist/index43.js +65 -49
  351. package/dist/index43.js.map +1 -1
  352. package/dist/index44.js +53 -139
  353. package/dist/index44.js.map +1 -1
  354. package/dist/index45.js +132 -179
  355. package/dist/index45.js.map +1 -1
  356. package/dist/index46.js +194 -35
  357. package/dist/index46.js.map +1 -1
  358. package/dist/index47.js +34 -29
  359. package/dist/index47.js.map +1 -1
  360. package/dist/index48.js +31 -145
  361. package/dist/index48.js.map +1 -1
  362. package/dist/index49.js +131 -70
  363. package/dist/index49.js.map +1 -1
  364. package/dist/index5.js +40 -315
  365. package/dist/index5.js.map +1 -1
  366. package/dist/index50.js +80 -371
  367. package/dist/index50.js.map +1 -1
  368. package/dist/index51.js +451 -91
  369. package/dist/index51.js.map +1 -1
  370. package/dist/index52.js +98 -38
  371. package/dist/index52.js.map +1 -1
  372. package/dist/index53.js +35 -35
  373. package/dist/index53.js.map +1 -1
  374. package/dist/index54.js +35 -90
  375. package/dist/index54.js.map +1 -1
  376. package/dist/index55.js +89 -159
  377. package/dist/index55.js.map +1 -1
  378. package/dist/index56.js +157 -143
  379. package/dist/index56.js.map +1 -1
  380. package/dist/index57.js +149 -33
  381. package/dist/index57.js.map +1 -1
  382. package/dist/index58.js +33 -86
  383. package/dist/index58.js.map +1 -1
  384. package/dist/index59.js +80 -113
  385. package/dist/index59.js.map +1 -1
  386. package/dist/index6.js +323 -43
  387. package/dist/index6.js.map +1 -1
  388. package/dist/index60.js +114 -62
  389. package/dist/index60.js.map +1 -1
  390. package/dist/index61.js +62 -147
  391. package/dist/index61.js.map +1 -1
  392. package/dist/index62.js +146 -312
  393. package/dist/index62.js.map +1 -1
  394. package/dist/index63.js +317 -44
  395. package/dist/index63.js.map +1 -1
  396. package/dist/index64.js +44 -143
  397. package/dist/index64.js.map +1 -1
  398. package/dist/index65.js +145 -12
  399. package/dist/index65.js.map +1 -1
  400. package/dist/index66.js +10 -44
  401. package/dist/index66.js.map +1 -1
  402. package/dist/index67.js +42 -15
  403. package/dist/index67.js.map +1 -1
  404. package/dist/index68.js +76 -48
  405. package/dist/index68.js.map +1 -1
  406. package/dist/index69.js +18 -58
  407. package/dist/index69.js.map +1 -1
  408. package/dist/index7.js +44 -51
  409. package/dist/index7.js.map +1 -1
  410. package/dist/index70.js +66 -5
  411. package/dist/index70.js.map +1 -1
  412. package/dist/index71.js +25 -7
  413. package/dist/index71.js.map +1 -1
  414. package/dist/index72.js +105 -0
  415. package/dist/index72.js.map +1 -0
  416. package/dist/index73.js +62 -2
  417. package/dist/index73.js.map +1 -1
  418. package/dist/index74.js +21 -2
  419. package/dist/index74.js.map +1 -1
  420. package/dist/index75.js +5 -2
  421. package/dist/index75.js.map +1 -1
  422. package/dist/index76.js +54 -2
  423. package/dist/index76.js.map +1 -1
  424. package/dist/index77.js +24 -2
  425. package/dist/index77.js.map +1 -1
  426. package/dist/index78.js +9 -2
  427. package/dist/index78.js.map +1 -1
  428. package/dist/index8.js +48 -85
  429. package/dist/index8.js.map +1 -1
  430. package/dist/index80.js +2 -2
  431. package/dist/index80.js.map +1 -1
  432. package/dist/index81.js +2 -2
  433. package/dist/index81.js.map +1 -1
  434. package/dist/index82.js +1 -1
  435. package/dist/index82.js.map +1 -1
  436. package/dist/index83.js +2 -2
  437. package/dist/index83.js.map +1 -1
  438. package/dist/index84.js +1 -1
  439. package/dist/index84.js.map +1 -1
  440. package/dist/index85.js +1 -1
  441. package/dist/index85.js.map +1 -1
  442. package/dist/index86.js +1 -1
  443. package/dist/index86.js.map +1 -1
  444. package/dist/index87.js +1 -1
  445. package/dist/index87.js.map +1 -1
  446. package/dist/index88.js +1 -1
  447. package/dist/index88.js.map +1 -1
  448. package/dist/index89.js +1 -1
  449. package/dist/index89.js.map +1 -1
  450. package/dist/index9.js +91 -27
  451. package/dist/index9.js.map +1 -1
  452. package/dist/index90.js +1 -1
  453. package/dist/index90.js.map +1 -1
  454. package/dist/index91.js +1 -1
  455. package/dist/index91.js.map +1 -1
  456. package/dist/index92.js +1 -1
  457. package/dist/index92.js.map +1 -1
  458. package/dist/index93.js +1 -1
  459. package/dist/index93.js.map +1 -1
  460. package/dist/index94.js +1 -1
  461. package/dist/index94.js.map +1 -1
  462. package/dist/index95.js +1 -1
  463. package/dist/index95.js.map +1 -1
  464. package/dist/index96.js +1 -1
  465. package/dist/index96.js.map +1 -1
  466. package/dist/index97.js +1 -1
  467. package/dist/index97.js.map +1 -1
  468. package/dist/index98.js +1 -1
  469. package/dist/index98.js.map +1 -1
  470. package/dist/index99.js +1 -1
  471. package/dist/index99.js.map +1 -1
  472. package/package.json +1 -1
  473. package/dist/index230.js +0 -7
  474. package/dist/index230.js.map +0 -1
  475. package/dist/index232.js +0 -25
  476. package/dist/index232.js.map +0 -1
  477. package/dist/index233.js +0 -57
  478. package/dist/index233.js.map +0 -1
  479. package/dist/index234.js +0 -22
  480. package/dist/index234.js.map +0 -1
  481. package/dist/index237.js +0 -8
  482. package/dist/index237.js.map +0 -1
  483. package/dist/index79.js +0 -5
  484. package/dist/index79.js.map +0 -1
package/dist/index27.js CHANGED
@@ -1,87 +1,27 @@
1
- import d, { useMemo as S, useRef as D, useEffect as c } from "react";
2
- import { Icon as j } from "./index5.js";
3
- import { getA11yNameAttributes as B } from "./index71.js";
4
- import { useDismissOnEscape as M } from "./index196.js";
1
+ import e from "react";
2
+ import { ShimmerLoader as c } from "./index55.js";
5
3
  /* empty css */
6
- function m() {
7
- return m = Object.assign ? Object.assign.bind() : function(r) {
8
- for (var o = 1; o < arguments.length; o++) {
9
- var a = arguments[o];
10
- for (var n in a) ({}).hasOwnProperty.call(a, n) && (r[n] = a[n]);
11
- }
12
- return r;
13
- }, m.apply(null, arguments);
14
- }
15
- const F = (r) => {
4
+ const f = (r) => {
16
5
  const {
17
- content: o,
18
- className: a = "",
19
- alignment: n,
20
- noShadow: C,
21
- position: i = "fixed",
22
- isOpen: t,
23
- displayCloseSidebar: N,
24
- onClose: u,
25
- onSidebarUnmount: b,
26
- onPathChange: f,
27
- style: s,
28
- automationId: x,
29
- id: O,
30
- currentPath: y = "",
31
- closeSidebarIcon: R = "close",
32
- closeAriaLabel: E = "Close sidebar",
33
- animateSidebar: I = !0,
34
- a11yRole: l,
35
- ariaLabel: g,
36
- ariaLabelledBy: p,
37
- ariaDescribedBy: h
38
- } = r, v = S(() => l || (i === "fixed" ? "dialog" : "complementary"), [l, i]), _ = v === "dialog", A = S(() => B({
39
- ariaLabel: g,
40
- ariaLabelledBy: p,
41
- ariaDescribedBy: h
42
- }), [g, p, h]), w = D(null);
43
- c(() => () => {
44
- b && b();
45
- }, []), c(() => (document.body.style.overflow = t ? "hidden" : "scroll", () => {
46
- document.body.style.overflow = "auto";
47
- }), [t]), c(() => {
48
- f && f(y);
49
- }, [y]), M({
50
- containerRef: w,
51
- onDismiss: u,
52
- enabled: t
53
- });
54
- const L = () => {
55
- let e = "se-design-sidebar-overlay-container z-[1000]";
56
- return e += a.length > 0 ? ` ${a}` : "", e += n === "left" ? " left-aligned" : " right-aligned", e += C ? " no-shadow" : "", e += i.length > 0 ? ` ${i}` : "", e += t ? " open-sidebar" : " closed-sidebar", I || (e += t ? "" : " hidden"), e;
57
- }, P = () => ({
58
- ...s,
59
- ...t && s?.width ? {
60
- width: s?.width
61
- } : {
62
- width: "0px"
63
- }
64
- });
65
- return /* @__PURE__ */ d.createElement("div", m({
66
- ref: w,
67
- id: O,
68
- className: L(),
69
- style: P(),
70
- "data-automation-id": x,
71
- tabIndex: -1,
72
- role: v,
73
- "aria-modal": _ ? "true" : void 0
74
- }, A), /* @__PURE__ */ d.createElement("div", {
75
- className: "overlay-content"
76
- }, N && /* @__PURE__ */ d.createElement(j, {
77
- name: R,
78
- onClick: u,
79
- className: "overlay-close",
80
- ariaLabel: E,
81
- automationId: "sidebar_overlay_close"
82
- }), o));
6
+ noOfRows: o = 2,
7
+ noOfColumns: a = 4,
8
+ colSpan: n = [2, 0, 0]
9
+ } = r;
10
+ return [...Array(o)].map((l, m) => /* @__PURE__ */ e.createElement("tr", {
11
+ key: `tr-${m}`,
12
+ className: "se-design-table-content-loader"
13
+ }, [...Array(a)].map((p, t) => /* @__PURE__ */ e.createElement("td", {
14
+ colSpan: n[t],
15
+ key: `td-${t}`
16
+ }, /* @__PURE__ */ e.createElement(c, {
17
+ structure: [{
18
+ type: "text",
19
+ width: "80%",
20
+ height: 20
21
+ }]
22
+ })))));
83
23
  };
84
24
  export {
85
- F as SidebarOverlay
25
+ f as TableContentLoader
86
26
  };
87
27
  //# sourceMappingURL=index27.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index27.js","sources":["../src/components/SidebarOverlay/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useRef, useMemo } from 'react';\nimport { Icon } from 'components/Icon';\nimport { getA11yNameAttributes, /* useFocusTrap, */ useDismissOnEscape } from '../../utils/a11y';\n\nimport './style.scss';\n\ntype SidebarOverlayA11yRole = 'dialog' | 'complementary';\n\nexport interface SidebarOverlayProps {\n content: React.ReactNode;\n className?: string;\n alignment?: 'left' | 'right';\n style?: React.CSSProperties;\n noShadow?: boolean;\n automationId?: string;\n id?: string;\n position?: 'absolute' | 'fixed' | 'relative' | 'static' | '';\n isOpen?: boolean;\n displayCloseSidebar?: boolean;\n closeSidebarIcon?: string;\n /**\n * Accessible label for the close button. Defaults to 'Close sidebar'.\n */\n closeAriaLabel?: string;\n onClose?: () => void;\n onSidebarUnmount?: () => void;\n onPathChange?: (route: string) => void;\n currentPath?: string;\n animateSidebar?: boolean;\n /**\n * Accessibility role that determines the full behavior bundle.\n * - 'dialog': modal drawer (focus trap, scroll lock, aria-modal, Escape closes)\n * - 'complementary': persistent side panel (no trap, no forced focus, no scroll lock)\n * If not provided, derives from position: fixed|absolute → 'dialog', static|relative|'' → 'complementary'\n */\n a11yRole?: SidebarOverlayA11yRole;\n /**\n * Accessible name when no visible label exists.\n * Prefer ariaLabelledBy when a visible title exists inside the sidebar.\n */\n ariaLabel?: string;\n /**\n * ID(s) of visible element(s) that label this sidebar.\n * Preferred over ariaLabel when a visible title exists (keeps SR and visual text in sync).\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) that describe this sidebar (additional context).\n */\n ariaDescribedBy?: string;\n}\n\nexport const SidebarOverlay: FC<SidebarOverlayProps> = (props) => {\n const {\n content,\n className = '',\n alignment,\n noShadow,\n position = 'fixed',\n isOpen,\n displayCloseSidebar,\n onClose,\n onSidebarUnmount,\n onPathChange,\n style,\n automationId,\n id,\n currentPath = '',\n closeSidebarIcon = 'close',\n closeAriaLabel = 'Close sidebar',\n animateSidebar = true,\n a11yRole,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy\n } = props;\n\n // Compute effective a11yRole: override or derive from position\n const effectiveA11yRole = useMemo<SidebarOverlayA11yRole>(() => {\n if (a11yRole) return a11yRole;\n // - fixed: modal drawer (dialog bundle)\n // - absolute/static/relative/'' : persistent side panel (complementary bundle)\n return position === 'fixed' ? 'dialog' : 'complementary';\n }, [a11yRole, position]);\n \n const isModal = effectiveA11yRole === 'dialog';\n\n // Get accessible name attributes\n const accessibleNameProps = useMemo(\n () => getA11yNameAttributes({ ariaLabel, ariaLabelledBy, ariaDescribedBy }),\n [ariaLabel, ariaLabelledBy, ariaDescribedBy]\n );\n\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n return () => {\n onSidebarUnmount && onSidebarUnmount();\n };\n }, []);\n\n // This is to prevent the body from scrolling when the sidebar is open\n useEffect(() => {\n document.body.style.overflow = isOpen ? 'hidden' : 'scroll';\n\n return () => {\n document.body.style.overflow = 'auto'; // Cleanup on unmount\n };\n }, [isOpen]);\n\n useEffect(() => {\n onPathChange && onPathChange(currentPath);\n }, [currentPath]);\n\n\n useDismissOnEscape({\n containerRef: sidebarRef,\n onDismiss: onClose,\n enabled: isOpen\n });\n\n // Focus trap: only in modal mode\n // useFocusTrap({\n // enabled: Boolean(isModal && isOpen),\n // containerRef: sidebarRef,\n // restoreFocus: true,\n // initialFocus: 'first'\n // });\n\n const getSidebarClassName = () => {\n let defaultClass = `se-design-sidebar-overlay-container z-[1000]`;\n\n defaultClass += className.length > 0 ? ` ${className}` : '';\n defaultClass += alignment === 'left' ? ' left-aligned' : ' right-aligned';\n defaultClass += noShadow ? ' no-shadow' : '';\n defaultClass += position.length > 0 ? ` ${position}` : '';\n defaultClass += isOpen ? ' open-sidebar' : ' closed-sidebar';\n if(!animateSidebar) {\n defaultClass += isOpen ? '' : ' hidden';\n }\n return defaultClass;\n };\n\n const getSidebarStyle = () => {\n return {\n ...style,\n ...(isOpen && style?.width ? { width: style?.width } : { width: '0px' })\n };\n };\n\n return (\n <div\n ref={sidebarRef}\n id={id}\n className={getSidebarClassName()}\n style={getSidebarStyle()}\n data-automation-id={automationId}\n tabIndex={-1}\n role={effectiveA11yRole}\n aria-modal={isModal ? 'true' : undefined}\n {...accessibleNameProps}\n >\n <div className=\"overlay-content\">\n {displayCloseSidebar && (\n <Icon\n name={closeSidebarIcon}\n onClick={onClose}\n className=\"overlay-close\"\n ariaLabel={closeAriaLabel}\n automationId=\"sidebar_overlay_close\"\n />\n )}\n {content}\n </div>\n </div>\n );\n};\n"],"names":["SidebarOverlay","props","content","className","alignment","noShadow","position","isOpen","displayCloseSidebar","onClose","onSidebarUnmount","onPathChange","style","automationId","id","currentPath","closeSidebarIcon","closeAriaLabel","animateSidebar","a11yRole","ariaLabel","ariaLabelledBy","ariaDescribedBy","effectiveA11yRole","useMemo","isModal","accessibleNameProps","getA11yNameAttributes","sidebarRef","useRef","useEffect","document","body","overflow","useDismissOnEscape","containerRef","onDismiss","enabled","getSidebarClassName","defaultClass","length","getSidebarStyle","width","React","createElement","_extends","ref","tabIndex","role","undefined","Icon","name","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"index27.js","sources":["../src/components/TableContentLoader/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { ShimmerLoader } from 'components/ShimmerLoader';\nimport './style.scss';\n\nexport interface TableContentLoaderProps {\n noOfRows?: number;\n noOfColumns?: number;\n colSpan?: number[];\n}\n\nexport const TableContentLoader: FC<TableContentLoaderProps> = (props) => {\n const { noOfRows = 2, noOfColumns = 4, colSpan = [2, 0, 0] } = props;\n\n return [...Array(noOfRows)].map((_, index) => (\n <tr key={`tr-${index}`} className=\"se-design-table-content-loader\">\n {[...Array(noOfColumns)].map((_, idx) => (\n <td colSpan={colSpan[idx]} key={`td-${idx}`}>\n <ShimmerLoader\n structure={[{ type: 'text', width: '80%', height: 20 }]}\n />\n </td>\n ))}\n </tr>\n ));\n};\n"],"names":["React__default","ShimmerLoader","TableContentLoader","props","noOfRows","noOfColumns","colSpan","Array","map","_","index","React","createElement","key","className","idx","structure","type","width","height"],"mappings":"AAUO,OAAAA,OAAA;AAAA,SAAA,iBAAAC,SAAA;AAAA,OAAA;AAAA,MAAMC,IAAmDC,CAAAA,MAAU;AACxE,QAAM;AAAA,IAAEC,UAAAA,IAAW;AAAA,IAAGC,aAAAA,IAAc;AAAA,IAAGC,SAAAA,IAAU,CAAC,GAAG,GAAG,CAAC;AAAA,EAAA,IAAMH;AAE/D,SAAO,CAAC,GAAGI,MAAMH,CAAQ,CAAC,EAAEI,IAAI,CAACC,GAAGC,MAClCC,gBAAAA,EAAAC,cAAA,MAAA;AAAA,IAAIC,KAAK,MAAMH,CAAK;AAAA,IAAII,WAAU;AAAA,EAAA,GAC/B,CAAC,GAAGP,MAAMF,CAAW,CAAC,EAAEG,IAAI,CAACC,GAAGM,MAC/BJ,gBAAAA,EAAAC,cAAA,MAAA;AAAA,IAAIN,SAASA,EAAQS,CAAG;AAAA,IAAGF,KAAK,MAAME,CAAG;AAAA,EAAA,GACvCJ,gBAAAA,EAAAC,cAACX,GAAa;AAAA,IACZe,WAAW,CAAC;AAAA,MAAEC,MAAM;AAAA,MAAQC,OAAO;AAAA,MAAOC,QAAQ;AAAA,IAAA,CAAI;AAAA,EAAA,CACvD,CACC,CACL,CACC,CACL;AACH;"}
package/dist/index28.js CHANGED
@@ -1,147 +1,110 @@
1
- import r, { useState as A, useMemo as _, useRef as F, useEffect as j } from "react";
2
- import { Icon as O } from "./index5.js";
3
- import { Popover as B } from "./index18.js";
4
- import { MenuList as z } from "./index17.js";
5
- import { useStableId as H } from "./index192.js";
6
- import { getA11yNameAttributes as U } from "./index71.js";
7
- import { useTabsA11y as V, getPanelId as q } from "./index69.js";
1
+ import i, { useMemo as D, useRef as j, useEffect as m } from "react";
2
+ import { Icon as M } from "./index6.js";
3
+ import { getA11yNameAttributes as $ } from "./index78.js";
4
+ import { useFocusTrap as k } from "./index72.js";
5
+ import { useDismissOnEscape as z } from "./index206.js";
6
+ import { useFocusSentinel as T } from "./index207.js";
8
7
  /* empty css */
9
- function i() {
10
- return i = Object.assign ? Object.assign.bind() : function(s) {
8
+ function u() {
9
+ return u = Object.assign ? Object.assign.bind() : function(s) {
11
10
  for (var o = 1; o < arguments.length; o++) {
12
- var c = arguments[o];
13
- for (var d in c) ({}).hasOwnProperty.call(c, d) && (s[d] = c[d]);
11
+ var n = arguments[o];
12
+ for (var r in n) ({}).hasOwnProperty.call(n, r) && (s[r] = n[r]);
14
13
  }
15
14
  return s;
16
- }, i.apply(null, arguments);
15
+ }, u.apply(null, arguments);
17
16
  }
18
- const re = ({
19
- defaultActiveTab: s,
20
- tabs: o,
21
- onTabChange: c,
22
- primaryTabCount: d,
23
- headingLevel: g,
24
- id: $,
25
- ariaLabel: L = "Tabs",
26
- ariaLabelledBy: K,
27
- panelId: p
28
- }) => {
29
- const M = s || (o[0] ? o[0].id : ""), [m, w] = A(M), [y, h] = A(!1), T = d ?? o?.length, f = o.slice(0, T), u = o.slice(T), b = u.find((e) => e.id === m), E = o.some((e) => e.renderTabContent), k = H($, "tabs"), R = _(() => {
30
- const e = f.filter((l) => !l.disabled), t = u.filter((l) => !l.disabled), n = e.map((l) => l.id);
31
- return t.length > 0 ? [...n, "overflow"] : n;
32
- }, [f, u]), {
33
- getTabProps: I,
34
- getPanelProps: S,
35
- handleKeyDown: x,
36
- setFocusedTabId: C
37
- } = V({
38
- itemIds: R,
39
- activeItem: m,
40
- orientation: "horizontal",
41
- idBase: k,
42
- includePanelLinks: E || !!p,
43
- externalPanelId: p
44
- }), N = F(null), v = F(!1);
45
- j(() => {
46
- w(s || "");
47
- }, [s]);
48
- const P = (e) => {
49
- w(e?.id), c?.(e?.id);
50
- }, D = (e, t) => e.id === t;
51
- if (g && o.length === 1) {
52
- const e = o[0];
53
- return /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement(g, {
54
- className: "se-design-tabs se-design-tabs-heading"
55
- }, e.label), /* @__PURE__ */ r.createElement("div", {
56
- className: "se-design-tabs-content"
57
- }, /* @__PURE__ */ r.createElement("div", {
58
- className: "tab-content block"
59
- }, e?.renderTabContent && e?.renderTabContent(e))));
60
- }
61
- return /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement("div", i({
62
- className: "se-design-tabs flex items-stretch relative border rounded-md border-[var(--color-gray-400)] w-fit",
63
- role: "tablist",
64
- "data-automation-id": "tabs-container"
65
- }, U({
66
- ariaLabel: L,
67
- ariaLabelledBy: K
68
- })), f.map((e) => {
69
- const t = m === e.id, n = !!e.disabled, l = I(e.id);
70
- return /* @__PURE__ */ r.createElement("button", i({
71
- type: "button",
72
- key: e.id
73
- }, l, {
74
- disabled: n,
75
- "aria-label": e.ariaLabel,
76
- onFocus: () => !n && C(e.id),
77
- onKeyDown: x,
78
- onClick: () => P(e),
79
- className: `se-design-tab-item flex items-center text-base px-3 py-0.5 min-w-0 border-l first:border-l-0 first:rounded-l-[0.3rem] last:rounded-r-[0.3rem] border-[var(--color-gray-400)] ${n ? "" : "focus-outline"} ${n ? "text-[var(--color-gray-400)] cursor-not-allowed" : t ? "se-design-tab-item-active text-[var(--color-white)] bg-[var(--color-blue-500)] font-medium hover:cursor-pointer" : "text-[var(--color-gray-700)] font-normal hover:bg-[var(--color-gray-50)] hover:text-[var(--color-gray-900)] cursor-pointer transition-all duration-200 ease-in-out"}`,
80
- "data-automation-id": `tab-item-${e.automationId || e.id || ""}`
81
- }), e.label);
82
- }), u.length > 0 && /* @__PURE__ */ r.createElement(B, {
83
- className: "se-design-overflow-tabs",
84
- position: "bottom-left",
85
- noBorder: !0,
86
- disableClickToggle: !0,
87
- onPopoverToggle: (e) => {
88
- e || (v.current && N.current?.focus(), v.current = !1);
89
- },
90
- renderPopoverSrcElement: ({
91
- displayPopover: e,
92
- togglePopover: t
93
- }) => {
94
- const n = I("overflow"), l = b ? q(b.id, k) : void 0;
95
- return /* @__PURE__ */ r.createElement("div", i({}, n, {
96
- ref: (a) => {
97
- N.current = a, n.ref(a);
98
- },
99
- "aria-controls": l,
100
- "aria-haspopup": "true",
101
- "aria-expanded": e,
102
- onClick: () => {
103
- v.current = !1, t(!0);
104
- },
105
- onFocus: () => C("overflow"),
106
- "data-automation-id": "tabs-kebab-menu",
107
- onKeyDown: (a) => {
108
- a.key === "Enter" || a.key === " " || a.key === "ArrowDown" ? (a.preventDefault(), v.current = !0, t(!0)) : a.key === "ArrowUp" ? (a.preventDefault(), v.current = !0, t("last")) : x(a);
109
- },
110
- className: `overflow-tabs-src-element focus-outline border-l px-3 py-0.5 rounded-r-md font-medium hover:cursor-pointer transition-all duration-200 ease-in-out ${e ? "bg-[var(--color-blue-100)]" : ""} ${b?.label ? "bg-[var(--color-blue-500)]" : "hover:bg-[var(--color-gray-50)]"}`,
111
- onMouseEnter: () => h(!0),
112
- onMouseLeave: () => h(!1)
113
- }), b?.label ? /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement("span", {
114
- className: "text-[var(--color-white)]"
115
- }, b?.label), /* @__PURE__ */ r.createElement(O, {
116
- name: "chevron",
117
- rotation: e ? "180" : "0",
118
- stroke: y ? "var(--color-gray-100)" : "var(--color-white)"
119
- })) : /* @__PURE__ */ r.createElement(O, {
120
- name: "kebab-menu",
121
- fill: y ? "var(--color-gray-900)" : "var(--color-gray-700)"
122
- }));
123
- },
124
- renderPopoverContents: ({
125
- closePopoverCb: e
126
- }) => /* @__PURE__ */ r.createElement(z, {
127
- items: u.map((t) => ({
128
- id: t?.id,
129
- label: t?.label,
130
- automationId: t?.automationId || t?.id,
131
- onClick: () => {
132
- P(t), e();
133
- }
134
- }))
135
- })
136
- })), E && /* @__PURE__ */ r.createElement("div", {
137
- className: "se-design-tabs-content"
138
- }, o.map((e) => /* @__PURE__ */ r.createElement("div", i({
139
- key: e.id
140
- }, S(e.id), {
141
- className: `tab-content ${D(e, m) ? "block" : "hidden"}`
142
- }), D(e, m) && e.renderTabContent?.(e)))));
17
+ const V = (s) => {
18
+ const {
19
+ content: o,
20
+ className: n = "",
21
+ alignment: r,
22
+ noShadow: R,
23
+ position: f = "fixed",
24
+ isOpen: e,
25
+ displayCloseSidebar: C,
26
+ onClose: d,
27
+ onSidebarUnmount: b,
28
+ onPathChange: p,
29
+ style: c,
30
+ automationId: E,
31
+ id: N,
32
+ currentPath: y = "",
33
+ closeSidebarIcon: O = "close",
34
+ closeAriaLabel: P = "Close sidebar",
35
+ animateSidebar: x = !0,
36
+ a11yRole: F,
37
+ ariaLabel: g,
38
+ ariaLabelledBy: v,
39
+ ariaDescribedBy: h,
40
+ returnFocusRef: S
41
+ } = s, w = F ?? "complementary", t = w === "dialog", I = D(() => $({
42
+ ariaLabel: g,
43
+ ariaLabelledBy: v,
44
+ ariaDescribedBy: h
45
+ }), [g, v, h]), l = j(null);
46
+ m(() => () => {
47
+ b && b();
48
+ }, []), m(() => {
49
+ if (t)
50
+ return document.body.style.overflow = e ? "hidden" : "", () => {
51
+ document.body.style.overflow = "";
52
+ };
53
+ }, [e, t]), m(() => {
54
+ p && p(y);
55
+ }, [y]), z({
56
+ containerRef: l,
57
+ onDismiss: d,
58
+ enabled: e
59
+ }), k({
60
+ enabled: !!(t && e && d),
61
+ containerRef: l,
62
+ restoreFocus: !0,
63
+ initialFocus: "first",
64
+ returnFocusRef: S
65
+ });
66
+ const {
67
+ startSentinelProps: _,
68
+ endSentinelProps: A
69
+ } = T({
70
+ isOpen: e,
71
+ isModal: t,
72
+ containerRef: l,
73
+ returnFocusRef: S
74
+ }), L = () => {
75
+ let a = "se-design-sidebar-overlay-container z-[1000]";
76
+ return a += n.length > 0 ? ` ${n}` : "", a += r === "left" ? " left-aligned" : " right-aligned", a += R ? " no-shadow" : "", a += f.length > 0 ? ` ${f}` : "", a += e ? " open-sidebar" : " closed-sidebar", x || (a += e ? "" : " hidden"), a;
77
+ }, B = () => ({
78
+ ...c,
79
+ ...e && c?.width ? {
80
+ width: c?.width
81
+ } : {
82
+ width: "0px"
83
+ }
84
+ });
85
+ return /* @__PURE__ */ i.createElement("div", u({
86
+ ref: l,
87
+ id: N,
88
+ className: L(),
89
+ style: B(),
90
+ "data-automation-id": E,
91
+ tabIndex: -1,
92
+ role: w,
93
+ "aria-modal": t ? "true" : void 0,
94
+ "aria-hidden": e ? void 0 : "true"
95
+ }, I, {
96
+ inert: !e || void 0
97
+ }), /* @__PURE__ */ i.createElement("div", {
98
+ className: "overlay-content"
99
+ }, C && /* @__PURE__ */ i.createElement(M, {
100
+ name: O,
101
+ onClick: d,
102
+ className: "overlay-close",
103
+ ariaLabel: P,
104
+ automationId: "sidebar_overlay_close"
105
+ }), !t && /* @__PURE__ */ i.createElement("div", _), o, !t && /* @__PURE__ */ i.createElement("div", A)));
143
106
  };
144
107
  export {
145
- re as Tabs
108
+ V as SidebarOverlay
146
109
  };
147
110
  //# sourceMappingURL=index28.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index28.js","sources":["../src/components/Tabs/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useState, useEffect, useMemo, useRef } from 'react';\nimport { Icon } from '../Icon';\nimport { Popover } from '../Popover';\nimport { MenuList } from '../MenuList';\nimport { useStableId } from '../../utils/useStableId';\nimport { useTabsA11y, getPanelId, getA11yNameAttributes } from '../../utils/a11y';\n\nimport './style.scss';\n\ninterface TabProps {\n label: string;\n id: string;\n disabled?: boolean;\n renderTabContent?: (tab: TabProps) => ReactNode;\n automationId?: string;\n ariaLabel?: string;\n}\ninterface TabsProps {\n defaultActiveTab?: string;\n tabs: TabProps[];\n onTabChange?: (tabId: string) => void;\n primaryTabCount?: number; // prop for controlling primary tabs\n headingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span'; // heading tag to render single tab as a heading element when only one tab is present\n automationId?: string;\n id?: string; // custom ID for baseId (passed to useStableId)\n ariaLabel?: string; // Accessible name when no visible label exists\n ariaLabelledBy?: string; // ID of element that labels this tablist (preferred over ariaLabel)\n panelId?: string; // When consumer manages a single external panel, pass its id here\n}\n\nexport const Tabs: FC<TabsProps> = ({\n defaultActiveTab,\n tabs,\n onTabChange,\n primaryTabCount,\n headingLevel: HeadingTag,\n id,\n ariaLabel = 'Tabs',\n ariaLabelledBy,\n panelId\n}) => {\n const defaultTabId = defaultActiveTab || (tabs[0] ? tabs[0].id : '');\n const [activeTab, setActiveTab] = useState(defaultTabId);\n const [isIconTabHover, setIsIconTabHover] = useState(false);\n\n const visibleTabCount = primaryTabCount ?? tabs?.length;\n const visibleTabs = tabs.slice(0, visibleTabCount);\n const overflowTabs = tabs.slice(visibleTabCount);\n const activeOverflowTab = overflowTabs.find((tab) => tab.id === activeTab);\n\n // Only render internal panels if at least one tab provides content via renderTabContent\n const hasPanelContent = tabs.some(t => t.renderTabContent);\n\n // A11y setup\n const baseId = useStableId(id, 'tabs');\n const itemIds = useMemo(() => {\n const enabledVisibleTabs = visibleTabs.filter(t => !t.disabled);\n const enabledOverflowTabs = overflowTabs.filter(t => !t.disabled);\n const visibleIds = enabledVisibleTabs.map(t => t.id);\n return enabledOverflowTabs.length > 0 ? [...visibleIds, 'overflow'] : visibleIds;\n }, [visibleTabs, overflowTabs]);\n\n const { getTabProps, getPanelProps, handleKeyDown, setFocusedTabId } = useTabsA11y({\n itemIds,\n activeItem: activeTab,\n orientation: 'horizontal',\n idBase: baseId,\n includePanelLinks: hasPanelContent || !!panelId,\n externalPanelId: panelId\n });\n\n // Ref for the overflow button div — needed to return focus after menu closes\n const overflowDivRef = useRef<HTMLDivElement>(null);\n // Track whether the overflow popover was opened via keyboard — only return focus\n // programmatically in that case (mouse-opened popovers should not trigger :focus-visible on close)\n const wasKeyboardOpenedRef = useRef(false);\n\n useEffect(() => {\n setActiveTab(defaultActiveTab || '');\n }, [defaultActiveTab]);\n\n const handleTabClick = (tab: TabProps) => {\n setActiveTab(tab?.id);\n onTabChange?.(tab?.id);\n };\n\n const isTabActive = (tab: TabProps, activeTab: string) => {\n return tab.id === activeTab;\n };\n\n if (HeadingTag && tabs.length === 1) {\n const singleTab = tabs[0];\n return (\n <>\n <HeadingTag className=\"se-design-tabs se-design-tabs-heading\">\n {singleTab.label}\n </HeadingTag>\n <div className=\"se-design-tabs-content\">\n <div className=\"tab-content block\">\n {singleTab?.renderTabContent && singleTab?.renderTabContent(singleTab)}\n </div>\n </div>\n </>\n );\n }\n\n return (\n <>\n <div\n className=\"se-design-tabs flex items-stretch relative border rounded-md border-[var(--color-gray-400)] w-fit\"\n role=\"tablist\"\n data-automation-id=\"tabs-container\"\n {...getA11yNameAttributes({\n ariaLabel,\n ariaLabelledBy\n })}\n >\n {visibleTabs.map((tab) => {\n const isActive = activeTab === tab.id;\n const isDisabled = !!tab.disabled;\n const tabProps = getTabProps(tab.id);\n return (\n <button\n type=\"button\"\n key={tab.id}\n {...tabProps}\n disabled={isDisabled}\n aria-label={tab.ariaLabel}\n onFocus={() => !isDisabled && setFocusedTabId(tab.id)}\n onKeyDown={handleKeyDown}\n onClick={() => handleTabClick(tab)}\n className={`se-design-tab-item flex items-center text-base px-3 py-0.5 min-w-0 border-l first:border-l-0 first:rounded-l-[0.3rem] last:rounded-r-[0.3rem] border-[var(--color-gray-400)] ${!isDisabled ? 'focus-outline' : ''} ${\n isDisabled\n ? 'text-[var(--color-gray-400)] cursor-not-allowed'\n : isActive\n ? 'se-design-tab-item-active text-[var(--color-white)] bg-[var(--color-blue-500)] font-medium hover:cursor-pointer'\n : 'text-[var(--color-gray-700)] font-normal hover:bg-[var(--color-gray-50)] hover:text-[var(--color-gray-900)] cursor-pointer transition-all duration-200 ease-in-out'\n }`}\n data-automation-id={`tab-item-${tab.automationId || tab.id || ''}`}\n >\n {tab.label}\n </button>\n );\n })}\n\n {overflowTabs.length > 0 && (\n <Popover\n className=\"se-design-overflow-tabs\"\n position=\"bottom-left\"\n noBorder\n disableClickToggle={true}\n onPopoverToggle={(isOpen) => {\n if (!isOpen) {\n // Only return focus programmatically when the popover was opened via keyboard.\n // Mouse-opened popovers must not call .focus() — programmatic focus after a\n // pointer interaction triggers :focus-visible intermittently across browsers.\n if (wasKeyboardOpenedRef.current) overflowDivRef.current?.focus();\n wasKeyboardOpenedRef.current = false;\n }\n }}\n renderPopoverSrcElement={({ displayPopover, togglePopover }) => {\n const overflowTabProps = getTabProps('overflow');\n const overflowAriaControls = activeOverflowTab\n ? getPanelId(activeOverflowTab.id, baseId)\n : undefined;\n\n return (\n <div\n {...overflowTabProps}\n ref={(el) => { overflowDivRef.current = el; overflowTabProps.ref(el); }}\n aria-controls={overflowAriaControls}\n aria-haspopup=\"true\"\n aria-expanded={displayPopover}\n onClick={() => { wasKeyboardOpenedRef.current = false; togglePopover(true); }}\n onFocus={() => setFocusedTabId('overflow')}\n data-automation-id=\"tabs-kebab-menu\"\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {\n e.preventDefault();\n wasKeyboardOpenedRef.current = true;\n togglePopover(true);\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n wasKeyboardOpenedRef.current = true;\n togglePopover('last');\n } else {\n handleKeyDown(e);\n }\n }}\n className={`overflow-tabs-src-element focus-outline border-l px-3 py-0.5 rounded-r-md font-medium hover:cursor-pointer transition-all duration-200 ease-in-out ${\n displayPopover ? 'bg-[var(--color-blue-100)]' : ''\n } ${activeOverflowTab?.label ? 'bg-[var(--color-blue-500)]' : 'hover:bg-[var(--color-gray-50)]'}`}\n onMouseEnter={() => setIsIconTabHover(true)}\n onMouseLeave={() => setIsIconTabHover(false)}\n >\n {activeOverflowTab?.label ? (\n <>\n <span className=\"text-[var(--color-white)]\">{activeOverflowTab?.label}</span>\n <Icon\n name=\"chevron\"\n rotation={displayPopover ? '180' : '0'}\n stroke={isIconTabHover ? 'var(--color-gray-100)' : 'var(--color-white)'}\n />\n </>\n ) : (\n <Icon name=\"kebab-menu\" fill={isIconTabHover ? 'var(--color-gray-900)' : 'var(--color-gray-700)'} />\n )}\n </div>\n );\n }}\n renderPopoverContents={({ closePopoverCb }) => (\n <MenuList\n items={overflowTabs.map((tab) => ({\n id: tab?.id,\n label: tab?.label,\n automationId: tab?.automationId || tab?.id,\n onClick: () => {\n handleTabClick(tab);\n closePopoverCb();\n }\n }))}\n />\n )}\n />\n )}\n </div>\n\n {hasPanelContent && (\n <div className=\"se-design-tabs-content\">\n {tabs.map((tab) => (\n <div\n key={tab.id}\n {...getPanelProps(tab.id)}\n className={`tab-content ${isTabActive(tab, activeTab) ? 'block' : 'hidden'}`}\n >\n {isTabActive(tab, activeTab) && tab.renderTabContent?.(tab)}\n </div>\n ))}\n </div>\n )}\n </>\n );\n};\n"],"names":["Tabs","defaultActiveTab","tabs","onTabChange","primaryTabCount","headingLevel","HeadingTag","id","ariaLabel","ariaLabelledBy","panelId","defaultTabId","activeTab","setActiveTab","useState","isIconTabHover","setIsIconTabHover","visibleTabCount","length","visibleTabs","slice","overflowTabs","activeOverflowTab","find","tab","hasPanelContent","some","t","renderTabContent","baseId","useStableId","itemIds","useMemo","enabledVisibleTabs","filter","disabled","enabledOverflowTabs","visibleIds","map","getTabProps","getPanelProps","handleKeyDown","setFocusedTabId","useTabsA11y","activeItem","orientation","idBase","includePanelLinks","externalPanelId","overflowDivRef","useRef","wasKeyboardOpenedRef","useEffect","handleTabClick","isTabActive","singleTab","createElement","React","Fragment","className","label","_extends","role","getA11yNameAttributes","isActive","isDisabled","tabProps","type","key","onFocus","onKeyDown","onClick","automationId","Popover","position","noBorder","disableClickToggle","onPopoverToggle","isOpen","current","focus","renderPopoverSrcElement","displayPopover","togglePopover","overflowTabProps","overflowAriaControls","getPanelId","undefined","ref","el","e","preventDefault","onMouseEnter","onMouseLeave","Icon","name","rotation","stroke","fill","renderPopoverContents","closePopoverCb","MenuList","items"],"mappings":"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"}
1
+ {"version":3,"file":"index28.js","sources":["../src/components/SidebarOverlay/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useRef } from 'react';\nimport { Icon } from 'components/Icon';\nimport { getA11yNameAttributes, useFocusTrap, useDismissOnEscape } from '../../utils/a11y';\nimport { useFocusSentinel } from '../../utils/a11y/useFocusSentinel';\n\nimport './style.scss';\n\ntype SidebarOverlayA11yRole = 'dialog' | 'complementary';\n\nexport interface SidebarOverlayProps {\n content: React.ReactNode;\n className?: string;\n alignment?: 'left' | 'right';\n style?: React.CSSProperties;\n noShadow?: boolean;\n automationId?: string;\n id?: string;\n position?: 'absolute' | 'fixed' | 'relative' | 'static' | '';\n isOpen?: boolean;\n displayCloseSidebar?: boolean;\n closeSidebarIcon?: string;\n /**\n * Accessible label for the close button. Defaults to 'Close sidebar'.\n */\n closeAriaLabel?: string;\n onClose?: () => void;\n onSidebarUnmount?: () => void;\n onPathChange?: (route: string) => void;\n currentPath?: string;\n animateSidebar?: boolean;\n /**\n * Accessibility role that determines the full behavior bundle.\n * - 'dialog': modal drawer (focus trap, scroll lock, aria-modal, Escape closes)\n * - 'complementary': persistent side panel (no trap, no forced focus, no scroll lock)\n * If not provided, derives from position: fixed|absolute → 'dialog', static|relative|'' → 'complementary'\n */\n a11yRole?: SidebarOverlayA11yRole;\n /**\n * Accessible name when no visible label exists.\n * Prefer ariaLabelledBy when a visible title exists inside the sidebar.\n */\n ariaLabel?: string;\n /**\n * ID(s) of visible element(s) that label this sidebar.\n * Preferred over ariaLabel when a visible title exists (keeps SR and visual text in sync).\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) that describe this sidebar (additional context).\n */\n ariaDescribedBy?: string;\n /**\n * Explicit element to restore focus to when the sidebar closes.\n * Overrides automatic trigger capture from document.activeElement.\n * Use when the opener element is known (e.g. a ref on the toggle button).\n * In complementary mode: seeds the trigger ref directly.\n * In dialog mode: passed through to useFocusTrap.\n */\n returnFocusRef?: React.RefObject<HTMLElement | null>;\n}\n\nexport const SidebarOverlay: FC<SidebarOverlayProps> = (props) => {\n const {\n content,\n className = '',\n alignment,\n noShadow,\n position = 'fixed',\n isOpen,\n displayCloseSidebar,\n onClose,\n onSidebarUnmount,\n onPathChange,\n style,\n automationId,\n id,\n currentPath = '',\n closeSidebarIcon = 'close',\n closeAriaLabel = 'Close sidebar',\n animateSidebar = true,\n a11yRole,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n returnFocusRef,\n } = props;\n\n // Default to complementary — consumers opt into dialog (focus trap + scroll lock)\n // by passing a11yRole=\"dialog\" explicitly.\n const effectiveA11yRole: SidebarOverlayA11yRole = a11yRole ?? 'complementary';\n\n const isModal = effectiveA11yRole === 'dialog';\n\n // Get accessible name attributes\n const accessibleNameProps = useMemo(\n () => getA11yNameAttributes({ ariaLabel, ariaLabelledBy, ariaDescribedBy }),\n [ariaLabel, ariaLabelledBy, ariaDescribedBy]\n );\n\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n return () => {\n onSidebarUnmount && onSidebarUnmount();\n };\n }, []);\n\n // Scroll lock — modal only.\n useEffect(() => {\n if (!isModal) return;\n document.body.style.overflow = isOpen ? 'hidden' : '';\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen, isModal]);\n\n useEffect(() => {\n onPathChange && onPathChange(currentPath);\n }, [currentPath]);\n\n useDismissOnEscape({\n containerRef: sidebarRef,\n onDismiss: onClose,\n enabled: isOpen\n });\n\n // Focus trap: modal mode only, guarded by onClose as a WCAG safety net —\n // trapping focus without a dismiss path is a keyboard trap (WCAG 2.1.2).\n useFocusTrap({\n enabled: Boolean(isModal && isOpen && !!onClose),\n containerRef: sidebarRef,\n restoreFocus: true,\n initialFocus: 'first',\n returnFocusRef,\n });\n\n // Complementary (non-modal) focus management: move focus in on open,\n // restore to trigger on close, wrap Tab/Shift+Tab at panel boundaries.\n const { startSentinelProps, endSentinelProps } = useFocusSentinel({\n isOpen,\n isModal,\n containerRef: sidebarRef,\n returnFocusRef,\n });\n\n const getSidebarClassName = () => {\n let defaultClass = `se-design-sidebar-overlay-container z-[1000]`;\n\n defaultClass += className.length > 0 ? ` ${className}` : '';\n defaultClass += alignment === 'left' ? ' left-aligned' : ' right-aligned';\n defaultClass += noShadow ? ' no-shadow' : '';\n defaultClass += position.length > 0 ? ` ${position}` : '';\n defaultClass += isOpen ? ' open-sidebar' : ' closed-sidebar';\n if(!animateSidebar) {\n defaultClass += isOpen ? '' : ' hidden';\n }\n return defaultClass;\n };\n\n const getSidebarStyle = () => {\n return {\n ...style,\n ...(isOpen && style?.width ? { width: style?.width } : { width: '0px' })\n };\n };\n\n return (\n <div\n ref={sidebarRef}\n id={id}\n className={getSidebarClassName()}\n style={getSidebarStyle()}\n data-automation-id={automationId}\n tabIndex={-1}\n role={effectiveA11yRole}\n aria-modal={isModal ? 'true' : undefined}\n aria-hidden={!isOpen ? 'true' : undefined}\n {...accessibleNameProps}\n inert={!isOpen || undefined}\n >\n <div className=\"overlay-content\">\n {displayCloseSidebar && (\n <Icon\n name={closeSidebarIcon}\n onClick={onClose}\n className=\"overlay-close\"\n ariaLabel={closeAriaLabel}\n automationId=\"sidebar_overlay_close\"\n />\n )}\n {!isModal && <div {...startSentinelProps} />}\n {content}\n {!isModal && <div {...endSentinelProps} />}\n </div>\n </div>\n );\n};\n"],"names":["SidebarOverlay","props","content","className","alignment","noShadow","position","isOpen","displayCloseSidebar","onClose","onSidebarUnmount","onPathChange","style","automationId","id","currentPath","closeSidebarIcon","closeAriaLabel","animateSidebar","a11yRole","ariaLabel","ariaLabelledBy","ariaDescribedBy","returnFocusRef","effectiveA11yRole","isModal","accessibleNameProps","useMemo","getA11yNameAttributes","sidebarRef","useRef","useEffect","document","body","overflow","useDismissOnEscape","containerRef","onDismiss","enabled","useFocusTrap","Boolean","restoreFocus","initialFocus","startSentinelProps","endSentinelProps","useFocusSentinel","getSidebarClassName","defaultClass","length","getSidebarStyle","width","React","createElement","_extends","ref","tabIndex","role","undefined","inert","Icon","name","onClick"],"mappings":"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"}