se-design 1.0.2 → 1.0.8-5.dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) hide show
  1. package/dist/assets/colors.css +26 -13
  2. package/dist/assets/icons/ai-off.svg +6 -0
  3. package/dist/assets/icons/ai-re-run.svg +5 -0
  4. package/dist/assets/icons/arrow-head.svg +8 -0
  5. package/dist/assets/icons/center-align.svg +3 -0
  6. package/dist/assets/icons/chat.svg +4 -0
  7. package/dist/assets/icons/checkbox-disabled-minus.svg +1 -1
  8. package/dist/assets/icons/checkbox-disabled-tick.svg +1 -1
  9. package/dist/assets/icons/checkbox-fill.svg +1 -1
  10. package/dist/assets/icons/checkbox-hover-fill.svg +2 -2
  11. package/dist/assets/icons/checkbox-hover-minus.svg +1 -1
  12. package/dist/assets/icons/checkbox-hover-tick.svg +1 -1
  13. package/dist/assets/icons/checkbox-minus.svg +1 -1
  14. package/dist/assets/icons/checkbox-tick.svg +1 -1
  15. package/dist/assets/icons/combobox-field.svg +6 -0
  16. package/dist/assets/icons/command.svg +1 -1
  17. package/dist/assets/icons/csv-file.svg +4 -4
  18. package/dist/assets/icons/doc-file.svg +6 -0
  19. package/dist/assets/icons/envelope.svg +4 -0
  20. package/dist/assets/icons/file-filled-checked.svg +8 -0
  21. package/dist/assets/icons/filter.svg +3 -0
  22. package/dist/assets/icons/google-drive.svg +8 -0
  23. package/dist/assets/icons/home.svg +3 -2
  24. package/dist/assets/icons/left-align.svg +3 -0
  25. package/dist/assets/icons/library.svg +6 -0
  26. package/dist/assets/icons/minus.svg +3 -0
  27. package/dist/assets/icons/office-building.svg +9 -0
  28. package/dist/assets/icons/photo.svg +5 -3
  29. package/dist/assets/icons/plus.svg +4 -0
  30. package/dist/assets/icons/reports.svg +4 -0
  31. package/dist/assets/icons/repository.svg +4 -0
  32. package/dist/assets/icons/right-align.svg +3 -0
  33. package/dist/assets/icons/sort-asc.svg +3 -4
  34. package/dist/assets/icons/sort-desc.svg +2 -3
  35. package/dist/assets/icons/tag.svg +2 -2
  36. package/dist/assets/icons/upload-csv.svg +37 -0
  37. package/dist/assets/icons/views.svg +7 -0
  38. package/dist/assets/icons/warning.svg +10 -0
  39. package/dist/assets/style.css +1 -1
  40. package/dist/assets/typographyMixin.scss +8 -0
  41. package/dist/components/AccessibleDiv/index.d.ts +46 -0
  42. package/dist/components/Accordion/index.d.ts +2 -0
  43. package/dist/components/AutoCompleteInput/index.d.ts +37 -7
  44. package/dist/components/Avatar/index.d.ts +1 -0
  45. package/dist/components/Badge/index.d.ts +2 -0
  46. package/dist/components/Banner/index.d.ts +17 -4
  47. package/dist/components/BottomSheet/index.d.ts +14 -0
  48. package/dist/components/BreadCrumbs/index.d.ts +5 -0
  49. package/dist/components/Button/index.d.ts +51 -7
  50. package/dist/components/Checkbox/index.d.ts +36 -0
  51. package/dist/components/CustomAccordion/index.d.ts +6 -0
  52. package/dist/components/CustomModal/index.d.ts +56 -1
  53. package/dist/components/DatePicker/index.d.ts +7 -0
  54. package/dist/components/DatePicker/useDatePickerA11y.d.ts +47 -0
  55. package/dist/components/Dropdown/index.d.ts +24 -0
  56. package/dist/components/DropdownWithInputTags/index.d.ts +14 -2
  57. package/dist/components/GuidedTour/index.d.ts +27 -0
  58. package/dist/components/Header/index.d.ts +3 -2
  59. package/dist/components/Icon/index.d.ts +45 -4
  60. package/dist/components/InfoBar/index.d.ts +10 -0
  61. package/dist/components/InfoTooltip/index.d.ts +21 -0
  62. package/dist/components/Input/index.d.ts +38 -6
  63. package/dist/components/InputWithIcon/index.d.ts +36 -2
  64. package/dist/components/KebabMenu/index.d.ts +1 -0
  65. package/dist/components/LabelChip/index.d.ts +3 -0
  66. package/dist/components/Link/index.d.ts +64 -0
  67. package/dist/components/MenuItem/index.d.ts +13 -3
  68. package/dist/components/MenuList/index.d.ts +3 -2
  69. package/dist/components/MessageBar/index.d.ts +20 -1
  70. package/dist/components/Modal/index.d.ts +3 -0
  71. package/dist/components/NavigationBar/TabButton.d.ts +20 -0
  72. package/dist/components/NavigationBar/index.d.ts +8 -1
  73. package/dist/components/OTPInput/index.d.ts +1 -0
  74. package/dist/components/OnboardingTour/index.d.ts +35 -0
  75. package/dist/components/Pagination/index.d.ts +2 -0
  76. package/dist/components/Paywall/index.d.ts +47 -0
  77. package/dist/components/PhoneInput/index.d.ts +27 -0
  78. package/dist/components/Popover/index.d.ts +19 -3
  79. package/dist/components/Radio/index.d.ts +7 -0
  80. package/dist/components/RadioGroup/index.d.ts +18 -0
  81. package/dist/components/ShimmerLoader/index.d.ts +4 -2
  82. package/dist/components/SidebarOverlay/index.d.ts +36 -0
  83. package/dist/components/SkipLinksBar/index.d.ts +11 -0
  84. package/dist/components/SnackBar/index.d.ts +5 -2
  85. package/dist/components/Spinner/index.d.ts +13 -1
  86. package/dist/components/TableLayout/index.d.ts +18 -0
  87. package/dist/components/Tabs/index.d.ts +6 -1
  88. package/dist/components/TimePicker/index.d.ts +14 -0
  89. package/dist/components/Toggle/index.d.ts +25 -1
  90. package/dist/components/Tooltip/index.d.ts +19 -2
  91. package/dist/components/index.d.ts +10 -0
  92. package/dist/index.js +152 -103
  93. package/dist/index.js.map +1 -1
  94. package/dist/index10.js +23 -48
  95. package/dist/index10.js.map +1 -1
  96. package/dist/index100.js +1 -1
  97. package/dist/index100.js.map +1 -1
  98. package/dist/index101.js +1 -1
  99. package/dist/index101.js.map +1 -1
  100. package/dist/index102.js +1 -1
  101. package/dist/index102.js.map +1 -1
  102. package/dist/index103.js +1 -1
  103. package/dist/index103.js.map +1 -1
  104. package/dist/index104.js +1 -1
  105. package/dist/index104.js.map +1 -1
  106. package/dist/index105.js +1 -1
  107. package/dist/index105.js.map +1 -1
  108. package/dist/index106.js +1 -1
  109. package/dist/index106.js.map +1 -1
  110. package/dist/index107.js +1 -1
  111. package/dist/index107.js.map +1 -1
  112. package/dist/index108.js +1 -1
  113. package/dist/index108.js.map +1 -1
  114. package/dist/index109.js +2 -2
  115. package/dist/index109.js.map +1 -1
  116. package/dist/index11.js +74 -18
  117. package/dist/index11.js.map +1 -1
  118. package/dist/index110.js +1 -1
  119. package/dist/index110.js.map +1 -1
  120. package/dist/index111.js +1 -1
  121. package/dist/index111.js.map +1 -1
  122. package/dist/index112.js +1 -1
  123. package/dist/index112.js.map +1 -1
  124. package/dist/index113.js +2 -2
  125. package/dist/index113.js.map +1 -1
  126. package/dist/index114.js +1 -1
  127. package/dist/index114.js.map +1 -1
  128. package/dist/index115.js +2 -2
  129. package/dist/index115.js.map +1 -1
  130. package/dist/index116.js +1 -1
  131. package/dist/index116.js.map +1 -1
  132. package/dist/index117.js +2 -2
  133. package/dist/index117.js.map +1 -1
  134. package/dist/index118.js +1 -1
  135. package/dist/index118.js.map +1 -1
  136. package/dist/index119.js +2 -2
  137. package/dist/index119.js.map +1 -1
  138. package/dist/index12.js +76 -11
  139. package/dist/index12.js.map +1 -1
  140. package/dist/index120.js +1 -1
  141. package/dist/index120.js.map +1 -1
  142. package/dist/index121.js +1 -1
  143. package/dist/index121.js.map +1 -1
  144. package/dist/index122.js +1 -1
  145. package/dist/index122.js.map +1 -1
  146. package/dist/index123.js +1 -1
  147. package/dist/index123.js.map +1 -1
  148. package/dist/index124.js +1 -1
  149. package/dist/index124.js.map +1 -1
  150. package/dist/index125.js +2 -2
  151. package/dist/index125.js.map +1 -1
  152. package/dist/index126.js +2 -2
  153. package/dist/index126.js.map +1 -1
  154. package/dist/index127.js +2 -2
  155. package/dist/index127.js.map +1 -1
  156. package/dist/index128.js +1 -1
  157. package/dist/index128.js.map +1 -1
  158. package/dist/index129.js +1 -1
  159. package/dist/index129.js.map +1 -1
  160. package/dist/index13.js +64 -5
  161. package/dist/index13.js.map +1 -1
  162. package/dist/index130.js +2 -2
  163. package/dist/index130.js.map +1 -1
  164. package/dist/index131.js +1 -1
  165. package/dist/index131.js.map +1 -1
  166. package/dist/index132.js +1 -1
  167. package/dist/index132.js.map +1 -1
  168. package/dist/index133.js +1 -1
  169. package/dist/index133.js.map +1 -1
  170. package/dist/index134.js +1 -1
  171. package/dist/index134.js.map +1 -1
  172. package/dist/index135.js +2 -2
  173. package/dist/index135.js.map +1 -1
  174. package/dist/index136.js +2 -2
  175. package/dist/index136.js.map +1 -1
  176. package/dist/index137.js +1 -1
  177. package/dist/index137.js.map +1 -1
  178. package/dist/index138.js +1 -1
  179. package/dist/index138.js.map +1 -1
  180. package/dist/index139.js +1 -1
  181. package/dist/index139.js.map +1 -1
  182. package/dist/index14.js +15 -138
  183. package/dist/index14.js.map +1 -1
  184. package/dist/index140.js +2 -2
  185. package/dist/index140.js.map +1 -1
  186. package/dist/index141.js +1 -1
  187. package/dist/index141.js.map +1 -1
  188. package/dist/index142.js +1 -1
  189. package/dist/index142.js.map +1 -1
  190. package/dist/index143.js +1 -1
  191. package/dist/index143.js.map +1 -1
  192. package/dist/index144.js +2 -2
  193. package/dist/index144.js.map +1 -1
  194. package/dist/index145.js +1 -1
  195. package/dist/index145.js.map +1 -1
  196. package/dist/index146.js +2 -2
  197. package/dist/index146.js.map +1 -1
  198. package/dist/index147.js +1 -1
  199. package/dist/index147.js.map +1 -1
  200. package/dist/index148.js +1 -1
  201. package/dist/index148.js.map +1 -1
  202. package/dist/index149.js +1 -1
  203. package/dist/index149.js.map +1 -1
  204. package/dist/index15.js +10 -54
  205. package/dist/index15.js.map +1 -1
  206. package/dist/index150.js +1 -1
  207. package/dist/index150.js.map +1 -1
  208. package/dist/index151.js +1 -1
  209. package/dist/index151.js.map +1 -1
  210. package/dist/index152.js +2 -2
  211. package/dist/index152.js.map +1 -1
  212. package/dist/index153.js +1 -1
  213. package/dist/index153.js.map +1 -1
  214. package/dist/index154.js +2 -2
  215. package/dist/index154.js.map +1 -1
  216. package/dist/index155.js +2 -149
  217. package/dist/index155.js.map +1 -1
  218. package/dist/index156.js +5 -0
  219. package/dist/index156.js.map +1 -0
  220. package/dist/index157.js +5 -0
  221. package/dist/index157.js.map +1 -0
  222. package/dist/index158.js +5 -0
  223. package/dist/index158.js.map +1 -0
  224. package/dist/index159.js +5 -0
  225. package/dist/index159.js.map +1 -0
  226. package/dist/index16.js +216 -54
  227. package/dist/index16.js.map +1 -1
  228. package/dist/index160.js +5 -0
  229. package/dist/index160.js.map +1 -0
  230. package/dist/index161.js +5 -0
  231. package/dist/index161.js.map +1 -0
  232. package/dist/index162.js +5 -0
  233. package/dist/index162.js.map +1 -0
  234. package/dist/index163.js +5 -0
  235. package/dist/index163.js.map +1 -0
  236. package/dist/index164.js +5 -0
  237. package/dist/index164.js.map +1 -0
  238. package/dist/index165.js +5 -0
  239. package/dist/index165.js.map +1 -0
  240. package/dist/index166.js +5 -0
  241. package/dist/index166.js.map +1 -0
  242. package/dist/index167.js +2 -12
  243. package/dist/index167.js.map +1 -1
  244. package/dist/index168.js +5 -0
  245. package/dist/index168.js.map +1 -0
  246. package/dist/index169.js +5 -0
  247. package/dist/index169.js.map +1 -0
  248. package/dist/index17.js +60 -250
  249. package/dist/index17.js.map +1 -1
  250. package/dist/index170.js +5 -0
  251. package/dist/index170.js.map +1 -0
  252. package/dist/index171.js +5 -0
  253. package/dist/index171.js.map +1 -0
  254. package/dist/index172.js +5 -0
  255. package/dist/index172.js.map +1 -0
  256. package/dist/index173.js +5 -0
  257. package/dist/index173.js.map +1 -0
  258. package/dist/index174.js +5 -0
  259. package/dist/index174.js.map +1 -0
  260. package/dist/index175.js +1 -1232
  261. package/dist/index175.js.map +1 -1
  262. package/dist/index176.js +5 -0
  263. package/dist/index176.js.map +1 -0
  264. package/dist/index177.js +5 -0
  265. package/dist/index177.js.map +1 -0
  266. package/dist/index178.js +5 -0
  267. package/dist/index178.js.map +1 -0
  268. package/dist/index179.js +2 -4
  269. package/dist/index179.js.map +1 -1
  270. package/dist/index18.js +128 -11
  271. package/dist/index18.js.map +1 -1
  272. package/dist/index180.js +5 -0
  273. package/dist/index180.js.map +1 -0
  274. package/dist/index181.js +5 -0
  275. package/dist/index181.js.map +1 -0
  276. package/dist/index182.js +5 -0
  277. package/dist/index182.js.map +1 -0
  278. package/dist/index183.js +2 -10
  279. package/dist/index183.js.map +1 -1
  280. package/dist/index184.js +1 -9
  281. package/dist/index184.js.map +1 -1
  282. package/dist/index185.js +2 -5
  283. package/dist/index185.js.map +1 -1
  284. package/dist/index186.js +2 -170
  285. package/dist/index186.js.map +1 -1
  286. package/dist/index187.js +2 -11
  287. package/dist/index187.js.map +1 -1
  288. package/dist/index188.js +1 -5
  289. package/dist/index188.js.map +1 -1
  290. package/dist/index189.js +2 -6
  291. package/dist/index189.js.map +1 -1
  292. package/dist/index19.js +360 -32
  293. package/dist/index19.js.map +1 -1
  294. package/dist/index190.js +2 -38
  295. package/dist/index190.js.map +1 -1
  296. package/dist/index191.js +2 -2
  297. package/dist/index191.js.map +1 -1
  298. package/dist/index192.js +2 -8
  299. package/dist/index192.js.map +1 -1
  300. package/dist/index193.js +2 -327
  301. package/dist/index193.js.map +1 -1
  302. package/dist/index194.js +2 -50
  303. package/dist/index194.js.map +1 -1
  304. package/dist/index195.js +2 -2
  305. package/dist/index195.js.map +1 -1
  306. package/dist/index196.js +2 -76
  307. package/dist/index196.js.map +1 -1
  308. package/dist/index197.js +2 -93
  309. package/dist/index197.js.map +1 -1
  310. package/dist/index198.js +2 -52
  311. package/dist/index198.js.map +1 -1
  312. package/dist/index199.js +2 -8
  313. package/dist/index199.js.map +1 -1
  314. package/dist/index20.js +18 -55
  315. package/dist/index20.js.map +1 -1
  316. package/dist/index200.js +2 -5
  317. package/dist/index200.js.map +1 -1
  318. package/dist/index201.js +2 -52
  319. package/dist/index201.js.map +1 -1
  320. package/dist/index202.js +2 -2
  321. package/dist/index202.js.map +1 -1
  322. package/dist/index203.js +149 -2
  323. package/dist/index203.js.map +1 -1
  324. package/dist/index204.js +12 -0
  325. package/dist/index204.js.map +1 -0
  326. package/dist/index205.js +9 -0
  327. package/dist/index205.js.map +1 -0
  328. package/dist/index206.js +8 -0
  329. package/dist/index206.js.map +1 -0
  330. package/dist/index207.js +46 -0
  331. package/dist/index207.js.map +1 -0
  332. package/dist/index208.js +24 -0
  333. package/dist/index208.js.map +1 -0
  334. package/dist/index21.js +33 -45
  335. package/dist/index21.js.map +1 -1
  336. package/dist/index215.js +31 -0
  337. package/dist/index215.js.map +1 -0
  338. package/dist/index216.js +75 -0
  339. package/dist/index216.js.map +1 -0
  340. package/dist/index22.js +64 -21
  341. package/dist/index22.js.map +1 -1
  342. package/dist/index224.js +15 -0
  343. package/dist/index224.js.map +1 -0
  344. package/dist/index23.js +84 -189
  345. package/dist/index23.js.map +1 -1
  346. package/dist/index232.js +1236 -0
  347. package/dist/index232.js.map +1 -0
  348. package/dist/index235.js +46 -0
  349. package/dist/index235.js.map +1 -0
  350. package/dist/index24.js +21 -45
  351. package/dist/index24.js.map +1 -1
  352. package/dist/index244.js +173 -0
  353. package/dist/index244.js.map +1 -0
  354. package/dist/index245.js +7 -0
  355. package/dist/index245.js.map +1 -0
  356. package/dist/index247.js +22 -0
  357. package/dist/index247.js.map +1 -0
  358. package/dist/index248.js +13 -0
  359. package/dist/index248.js.map +1 -0
  360. package/dist/index249.js +13 -0
  361. package/dist/index249.js.map +1 -0
  362. package/dist/index25.js +384 -18
  363. package/dist/index25.js.map +1 -1
  364. package/dist/index250.js +8 -0
  365. package/dist/index250.js.map +1 -0
  366. package/dist/index251.js +173 -0
  367. package/dist/index251.js.map +1 -0
  368. package/dist/index252.js +14 -0
  369. package/dist/index252.js.map +1 -0
  370. package/dist/index253.js +9 -0
  371. package/dist/index253.js.map +1 -0
  372. package/dist/index254.js +9 -0
  373. package/dist/index254.js.map +1 -0
  374. package/dist/index255.js +41 -0
  375. package/dist/index255.js.map +1 -0
  376. package/dist/index256.js +5 -0
  377. package/dist/index256.js.map +1 -0
  378. package/dist/index257.js +11 -0
  379. package/dist/index257.js.map +1 -0
  380. package/dist/index258.js +330 -0
  381. package/dist/index258.js.map +1 -0
  382. package/dist/index259.js +53 -0
  383. package/dist/index259.js.map +1 -0
  384. package/dist/index26.js +46 -51
  385. package/dist/index26.js.map +1 -1
  386. package/dist/index260.js +5 -0
  387. package/dist/index260.js.map +1 -0
  388. package/dist/index261.js +79 -0
  389. package/dist/index261.js.map +1 -0
  390. package/dist/index262.js +96 -0
  391. package/dist/index262.js.map +1 -0
  392. package/dist/index263.js +55 -0
  393. package/dist/index263.js.map +1 -0
  394. package/dist/index264.js +11 -0
  395. package/dist/index264.js.map +1 -0
  396. package/dist/index265.js +8 -0
  397. package/dist/index265.js.map +1 -0
  398. package/dist/index266.js +55 -0
  399. package/dist/index266.js.map +1 -0
  400. package/dist/index267.js +5 -0
  401. package/dist/index267.js.map +1 -0
  402. package/dist/index268.js +5 -0
  403. package/dist/index268.js.map +1 -0
  404. package/dist/index27.js +22 -74
  405. package/dist/index27.js.map +1 -1
  406. package/dist/index28.js +108 -83
  407. package/dist/index28.js.map +1 -1
  408. package/dist/index29.js +148 -49
  409. package/dist/index29.js.map +1 -1
  410. package/dist/index3.js +69 -65
  411. package/dist/index3.js.map +1 -1
  412. package/dist/index30.js +133 -95
  413. package/dist/index30.js.map +1 -1
  414. package/dist/index31.js +77 -77
  415. package/dist/index31.js.map +1 -1
  416. package/dist/index32.js +99 -32
  417. package/dist/index32.js.map +1 -1
  418. package/dist/index33.js +75 -36
  419. package/dist/index33.js.map +1 -1
  420. package/dist/index34.js +42 -46
  421. package/dist/index34.js.map +1 -1
  422. package/dist/index35.js +72 -56
  423. package/dist/index35.js.map +1 -1
  424. package/dist/index36.js +99 -169
  425. package/dist/index36.js.map +1 -1
  426. package/dist/index37.js +51 -38
  427. package/dist/index37.js.map +1 -1
  428. package/dist/index38.js +306 -82
  429. package/dist/index38.js.map +1 -1
  430. package/dist/index39.js +70 -31
  431. package/dist/index39.js.map +1 -1
  432. package/dist/index4.js +108 -42
  433. package/dist/index4.js.map +1 -1
  434. package/dist/index40.js +82 -50
  435. package/dist/index40.js.map +1 -1
  436. package/dist/index41.js +27 -67
  437. package/dist/index41.js.map +1 -1
  438. package/dist/index42.js +45 -51
  439. package/dist/index42.js.map +1 -1
  440. package/dist/index43.js +109 -94
  441. package/dist/index43.js.map +1 -1
  442. package/dist/index44.js +54 -92
  443. package/dist/index44.js.map +1 -1
  444. package/dist/index45.js +143 -35
  445. package/dist/index45.js.map +1 -1
  446. package/dist/index46.js +194 -30
  447. package/dist/index46.js.map +1 -1
  448. package/dist/index47.js +36 -30
  449. package/dist/index47.js.map +1 -1
  450. package/dist/index48.js +34 -53
  451. package/dist/index48.js.map +1 -1
  452. package/dist/index49.js +142 -359
  453. package/dist/index49.js.map +1 -1
  454. package/dist/index5.js +41 -232
  455. package/dist/index5.js.map +1 -1
  456. package/dist/index50.js +82 -61
  457. package/dist/index50.js.map +1 -1
  458. package/dist/index51.js +458 -35
  459. package/dist/index51.js.map +1 -1
  460. package/dist/index52.js +98 -38
  461. package/dist/index52.js.map +1 -1
  462. package/dist/index53.js +42 -84
  463. package/dist/index53.js.map +1 -1
  464. package/dist/index54.js +36 -140
  465. package/dist/index54.js.map +1 -1
  466. package/dist/index55.js +88 -136
  467. package/dist/index55.js.map +1 -1
  468. package/dist/index56.js +166 -0
  469. package/dist/index56.js.map +1 -0
  470. package/dist/index57.js +149 -2
  471. package/dist/index57.js.map +1 -1
  472. package/dist/index58.js +33 -2
  473. package/dist/index58.js.map +1 -1
  474. package/dist/index59.js +86 -2
  475. package/dist/index59.js.map +1 -1
  476. package/dist/index6.js +328 -50
  477. package/dist/index6.js.map +1 -1
  478. package/dist/index60.js +119 -2
  479. package/dist/index60.js.map +1 -1
  480. package/dist/index61.js +78 -2
  481. package/dist/index61.js.map +1 -1
  482. package/dist/index62.js +152 -2
  483. package/dist/index62.js.map +1 -1
  484. package/dist/index63.js +318 -2
  485. package/dist/index63.js.map +1 -1
  486. package/dist/index64.js +47 -2
  487. package/dist/index64.js.map +1 -1
  488. package/dist/index65.js +145 -2
  489. package/dist/index65.js.map +1 -1
  490. package/dist/index66.js +12 -2
  491. package/dist/index66.js.map +1 -1
  492. package/dist/index67.js +46 -2
  493. package/dist/index67.js.map +1 -1
  494. package/dist/index68.js +103 -2
  495. package/dist/index68.js.map +1 -1
  496. package/dist/index69.js +19 -2
  497. package/dist/index69.js.map +1 -1
  498. package/dist/index7.js +44 -51
  499. package/dist/index7.js.map +1 -1
  500. package/dist/index70.js +66 -2
  501. package/dist/index70.js.map +1 -1
  502. package/dist/index71.js +27 -2
  503. package/dist/index71.js.map +1 -1
  504. package/dist/index72.js +108 -2
  505. package/dist/index72.js.map +1 -1
  506. package/dist/index73.js +62 -2
  507. package/dist/index73.js.map +1 -1
  508. package/dist/index74.js +21 -2
  509. package/dist/index74.js.map +1 -1
  510. package/dist/index75.js +171 -2
  511. package/dist/index75.js.map +1 -1
  512. package/dist/index76.js +18 -2
  513. package/dist/index76.js.map +1 -1
  514. package/dist/index77.js +11 -2
  515. package/dist/index77.js.map +1 -1
  516. package/dist/index78.js +5 -2
  517. package/dist/index78.js.map +1 -1
  518. package/dist/index79.js +56 -2
  519. package/dist/index79.js.map +1 -1
  520. package/dist/index8.js +48 -18
  521. package/dist/index8.js.map +1 -1
  522. package/dist/index80.js +27 -2
  523. package/dist/index80.js.map +1 -1
  524. package/dist/index81.js +9 -2
  525. package/dist/index81.js.map +1 -1
  526. package/dist/index83.js +2 -2
  527. package/dist/index83.js.map +1 -1
  528. package/dist/index84.js +2 -2
  529. package/dist/index84.js.map +1 -1
  530. package/dist/index85.js +1 -1
  531. package/dist/index85.js.map +1 -1
  532. package/dist/index86.js +2 -2
  533. package/dist/index86.js.map +1 -1
  534. package/dist/index87.js +1 -1
  535. package/dist/index87.js.map +1 -1
  536. package/dist/index88.js +1 -1
  537. package/dist/index88.js.map +1 -1
  538. package/dist/index89.js +1 -1
  539. package/dist/index89.js.map +1 -1
  540. package/dist/index9.js +91 -59
  541. package/dist/index9.js.map +1 -1
  542. package/dist/index90.js +1 -1
  543. package/dist/index90.js.map +1 -1
  544. package/dist/index91.js +2 -2
  545. package/dist/index91.js.map +1 -1
  546. package/dist/index92.js +2 -2
  547. package/dist/index92.js.map +1 -1
  548. package/dist/index93.js +2 -2
  549. package/dist/index93.js.map +1 -1
  550. package/dist/index94.js +1 -1
  551. package/dist/index94.js.map +1 -1
  552. package/dist/index95.js +2 -2
  553. package/dist/index95.js.map +1 -1
  554. package/dist/index96.js +1 -1
  555. package/dist/index96.js.map +1 -1
  556. package/dist/index97.js +1 -1
  557. package/dist/index97.js.map +1 -1
  558. package/dist/index98.js +1 -1
  559. package/dist/index98.js.map +1 -1
  560. package/dist/index99.js +2 -2
  561. package/dist/index99.js.map +1 -1
  562. package/package.json +1 -1
  563. package/dist/index82.js +0 -5
  564. package/dist/index82.js.map +0 -1
package/dist/index28.js CHANGED
@@ -1,89 +1,114 @@
1
- import e from "react";
2
- import { Icon as v } from "./index5.js";
3
- import { Button as t } from "./index3.js";
1
+ import i, { useMemo as K, useRef as j, useEffect as m } from "react";
2
+ import { Icon as M } from "./index6.js";
3
+ import { getA11yNameAttributes as $ } from "./index81.js";
4
+ import { useFocusTrap as k } from "./index72.js";
5
+ import { useDismissOnEscape as z } from "./index215.js";
6
+ import { useFocusSentinel as T } from "./index216.js";
4
7
  /* empty css */
5
- const n = {
6
- bannerCtn: "relative rounded-[12px] flex pr-3.5 cursor-pointer",
7
- bannerContentCtn: "pt-5 pl-6 pb-5 pr-2 flex flex-col gap-2",
8
- bannerLinkCta: "text-[#1088e7] cursor-pointer text-base leading-6 hover: text-[#0078d4]",
9
- bannerImageCtn: "flex cursor-pointer",
10
- bannerCloseIconCtn: "absolute top-[12px] right-[12px] cursor-pointer hover:bg-[var(--color-gray-100)] rounded-full p-1",
11
- bannerButton: "self-start"
12
- }, L = (r) => {
8
+ function u() {
9
+ return u = Object.assign ? Object.assign.bind() : function(s) {
10
+ for (var n = 1; n < arguments.length; n++) {
11
+ var o = arguments[n];
12
+ for (var r in o) ({}).hasOwnProperty.call(o, r) && (s[r] = o[r]);
13
+ }
14
+ return s;
15
+ }, u.apply(null, arguments);
16
+ }
17
+ const W = (s) => {
13
18
  const {
14
- bannerClassName: i,
15
- bannerBgColor: m,
16
- title: C,
17
- description: d,
18
- hasImage: b,
19
- imagePosition: a = "right",
20
- hasCloseIcon: p,
21
- closeIconName: u,
22
- onClose: g,
23
- onBannerClick: o,
24
- ctaText: l,
25
- hasLinkCta: y,
26
- onCtaClick: c,
27
- onSecondaryCtaClick: x,
28
- hasButtonCta: f,
29
- buttonType: h = "secondary",
30
- hasSecondaryButtonCta: k = !1,
31
- secondaryButtonType: N = "secondary",
32
- secondaryCtaText: E,
33
- imageWidth: B = "30%",
34
- automationId: I = ""
35
- } = r, s = () => b && /* @__PURE__ */ e.createElement("div", {
36
- className: `${n.bannerImageCtn} banner-image-ctn ${a === "right" ? "mr-5 ml-0 justify-end" : "ml-5 mr-0 justify-start"} min-h-full`,
37
- style: {
38
- width: B
39
- },
40
- onClick: o
41
- }, /* @__PURE__ */ e.createElement("img", {
42
- src: r.bannerImage,
43
- className: "max-w-[initial] h-[initial] max-h-[150px] object-contain"
44
- }));
45
- return /* @__PURE__ */ e.createElement("div", {
46
- className: `${n.bannerCtn} ${i} banner-ctn`,
47
- style: {
48
- backgroundColor: m
49
- },
50
- "data-automation-id": I
51
- }, a === "left" && s(), /* @__PURE__ */ e.createElement("div", {
52
- className: `${n.bannerContentCtn} w-[100%] banner-content-ctn`,
53
- onClick: o
54
- }, /* @__PURE__ */ e.createElement("span", {
55
- className: "banner-title"
56
- }, C), /* @__PURE__ */ e.createElement("span", {
57
- className: "banner-description"
58
- }, d), /* @__PURE__ */ e.createElement("div", {
59
- className: "flex gap-3"
60
- }, y && /* @__PURE__ */ e.createElement(t, {
61
- type: "link",
62
- className: n.bannerLinkCta,
63
- onClick: c,
64
- label: l
65
- }), f && /* @__PURE__ */ e.createElement(t, {
66
- type: h,
67
- size: "sm",
68
- label: l,
69
- onClick: c,
70
- className: n?.bannerButton,
71
- "data-automation-id": "banner-main-cta"
72
- }), k && /* @__PURE__ */ e.createElement(t, {
73
- type: N,
74
- size: "sm",
75
- label: E,
76
- onClick: x,
77
- className: n?.secondaryBannerButton,
78
- "data-automation-id": "banner-secondary-cta"
79
- }))), a === "right" && s(), /* @__PURE__ */ e.createElement("span", {
80
- className: n.bannerCloseIconCtn,
81
- onClick: g
82
- }, p && /* @__PURE__ */ e.createElement(v, {
83
- name: u
84
- })));
19
+ content: n,
20
+ className: o = "",
21
+ alignment: r,
22
+ noShadow: E,
23
+ position: f = "fixed",
24
+ isOpen: e,
25
+ displayCloseSidebar: R,
26
+ onClose: l,
27
+ onSidebarUnmount: b,
28
+ onPathChange: y,
29
+ style: d,
30
+ automationId: C,
31
+ id: N,
32
+ currentPath: p = "",
33
+ closeSidebarIcon: D = "close",
34
+ closeAriaLabel: O = "Close sidebar",
35
+ animateSidebar: P = !0,
36
+ a11yRole: x,
37
+ ariaLabel: g,
38
+ ariaLabelledBy: v,
39
+ ariaDescribedBy: h,
40
+ returnFocusRef: w
41
+ } = s, S = x ?? "complementary", t = S === "dialog", F = K(() => $({
42
+ ariaLabel: g,
43
+ ariaLabelledBy: v,
44
+ ariaDescribedBy: h
45
+ }), [g, v, h]), c = 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
+ y && y(p);
55
+ }, [p]);
56
+ const {
57
+ onKeyDown: I
58
+ } = z({
59
+ onDismiss: l,
60
+ enabled: e
61
+ });
62
+ k({
63
+ enabled: !!(t && e && l),
64
+ containerRef: c,
65
+ restoreFocus: !0,
66
+ initialFocus: "first",
67
+ returnFocusRef: w
68
+ });
69
+ const {
70
+ startSentinelProps: _,
71
+ endSentinelProps: A
72
+ } = T({
73
+ isOpen: e,
74
+ isModal: t,
75
+ containerRef: c,
76
+ returnFocusRef: w
77
+ }), L = () => {
78
+ let a = "se-design-sidebar-overlay-container z-[1000]";
79
+ return a += o.length > 0 ? ` ${o}` : "", a += r === "left" ? " left-aligned" : " right-aligned", a += E ? " no-shadow" : "", a += f.length > 0 ? ` ${f}` : "", a += e ? " open-sidebar" : " closed-sidebar", P || (a += e ? "" : " hidden"), a;
80
+ }, B = () => ({
81
+ ...d,
82
+ ...e && d?.width ? {
83
+ width: d?.width
84
+ } : {
85
+ width: "0px"
86
+ }
87
+ });
88
+ return /* @__PURE__ */ i.createElement("div", u({
89
+ ref: c,
90
+ id: N,
91
+ className: L(),
92
+ style: B(),
93
+ "data-automation-id": C,
94
+ tabIndex: -1,
95
+ role: S,
96
+ "aria-modal": t ? "true" : void 0,
97
+ "aria-hidden": e ? void 0 : "true"
98
+ }, F, {
99
+ onKeyDown: I,
100
+ inert: e ? void 0 : ""
101
+ }), /* @__PURE__ */ i.createElement("div", {
102
+ className: "overlay-content"
103
+ }, !t && /* @__PURE__ */ i.createElement("div", _), R && /* @__PURE__ */ i.createElement(M, {
104
+ name: D,
105
+ onClick: l,
106
+ className: "overlay-close",
107
+ ariaLabel: O,
108
+ automationId: "sidebar_overlay_close"
109
+ }), n, !t && /* @__PURE__ */ i.createElement("div", A)));
85
110
  };
86
111
  export {
87
- L as Banner
112
+ W as SidebarOverlay
88
113
  };
89
114
  //# sourceMappingURL=index28.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index28.js","sources":["../src/components/Banner/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Map } from '../../utils/common.types';\nimport { Icon } from 'components/Icon';\nimport { Button } from 'components/Button';\nimport './style.scss';\n\nexport interface BannerProps {\n bannerClassName?: string | '';\n bannerBgColor?: string | '';\n title: string | '';\n description: string | '';\n hasImage?: boolean | false;\n imagePosition?: 'left' | 'right' | '';\n bannerImage: string | '';\n hasCloseIcon?: boolean | false;\n closeIconName: string | '';\n onClose: () => void | (() => {});\n onBannerClick?: () => void | (() => {});\n hasButtonCta?: boolean | false;\n hasSecondaryButtonCta?: boolean | false;\n buttonType?: 'primary' | 'secondary' | 'link';\n secondaryButtonType?: 'primary' | 'secondary' | 'link';\n hasLinkCta?: boolean | false;\n ctaText: string | '';\n secondaryCtaText: string | '';\n onCtaClick: () => void | (() => {});\n onSecondaryCtaClick: () => void | (() => {});\n imageWidth?: string | '30%';\n automationId?: string;\n}\n\nconst classNames: Map = {\n bannerCtn: `relative rounded-[12px] flex pr-3.5 cursor-pointer`,\n bannerContentCtn: 'pt-5 pl-6 pb-5 pr-2 flex flex-col gap-2',\n bannerLinkCta: 'text-[#1088e7] cursor-pointer text-base leading-6 hover: text-[#0078d4]',\n bannerImageCtn: 'flex cursor-pointer',\n bannerCloseIconCtn:\n 'absolute top-[12px] right-[12px] cursor-pointer hover:bg-[var(--color-gray-100)] rounded-full p-1',\n bannerButton: 'self-start'\n};\n\nexport const Banner: FC<BannerProps> = (props) => {\n const {\n bannerClassName,\n bannerBgColor,\n title,\n description,\n hasImage,\n imagePosition = 'right',\n hasCloseIcon,\n closeIconName,\n onClose,\n onBannerClick,\n ctaText,\n hasLinkCta,\n onCtaClick,\n onSecondaryCtaClick,\n hasButtonCta,\n buttonType = 'secondary',\n hasSecondaryButtonCta = false,\n secondaryButtonType = 'secondary',\n secondaryCtaText,\n imageWidth = '30%',\n automationId = ''\n } = props;\n\n const renderImage = () =>\n hasImage && (\n <div\n className={`${classNames.bannerImageCtn} banner-image-ctn ${imagePosition === 'right' ? 'mr-5 ml-0 justify-end' : 'ml-5 mr-0 justify-start'} min-h-full`}\n style={{ width: imageWidth }}\n onClick={onBannerClick}\n >\n <img src={props.bannerImage} className=\"max-w-[initial] h-[initial] max-h-[150px] object-contain\" />\n </div>\n );\n\n return (\n <div className={`${classNames.bannerCtn} ${bannerClassName} banner-ctn`} style={{ backgroundColor: bannerBgColor }} data-automation-id={automationId}>\n {imagePosition === 'left' && renderImage()}\n <div className={`${classNames.bannerContentCtn} w-[100%] banner-content-ctn`} onClick={onBannerClick}>\n <span className=\"banner-title\">{title}</span>\n <span className=\"banner-description\">{description}</span>\n <div className=\"flex gap-3\">\n {hasLinkCta && (\n <Button type=\"link\" className={classNames.bannerLinkCta} onClick={onCtaClick} label={ctaText} />\n )}\n {hasButtonCta && (\n <Button\n type={buttonType}\n size=\"sm\"\n label={ctaText}\n onClick={onCtaClick}\n className={classNames?.bannerButton}\n data-automation-id=\"banner-main-cta\"\n />\n )}\n {hasSecondaryButtonCta && (\n <Button\n type={secondaryButtonType}\n size=\"sm\"\n label={secondaryCtaText}\n onClick={onSecondaryCtaClick}\n className={classNames?.secondaryBannerButton}\n data-automation-id=\"banner-secondary-cta\"\n />\n )}\n </div>\n </div>\n {imagePosition === 'right' && renderImage()}\n <span className={classNames.bannerCloseIconCtn} onClick={onClose}>\n {hasCloseIcon && <Icon name={closeIconName} />}\n </span>\n </div>\n );\n};\n"],"names":["React__default","Icon","Button","classNames","bannerCtn","bannerContentCtn","bannerLinkCta","bannerImageCtn","bannerCloseIconCtn","bannerButton","Banner","props","bannerClassName","bannerBgColor","title","description","hasImage","imagePosition","hasCloseIcon","closeIconName","onClose","onBannerClick","ctaText","hasLinkCta","onCtaClick","onSecondaryCtaClick","hasButtonCta","buttonType","hasSecondaryButtonCta","secondaryButtonType","secondaryCtaText","imageWidth","automationId","renderImage","React","createElement","className","style","width","onClick","src","bannerImage","backgroundColor","type","label","size","secondaryBannerButton","name"],"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 const { onKeyDown: onEscapeKeyDown } = useDismissOnEscape({\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 onKeyDown={onEscapeKeyDown}\n inert={!isOpen ? ('' as unknown as boolean) : undefined}\n >\n <div className=\"overlay-content\">\n {!isModal && <div {...startSentinelProps} />}\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 {!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","onKeyDown","onEscapeKeyDown","useDismissOnEscape","onDismiss","enabled","useFocusTrap","Boolean","containerRef","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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"}
package/dist/index29.js CHANGED
@@ -1,54 +1,153 @@
1
- import s from "react";
2
- import { Icon as u } from "./index5.js";
3
- const l = {
4
- pageNavigation: "px-[6px] flex items-center justify-center disabled:opacity-50 hover:cursor-pointer",
5
- pageItem: "px-[6px] text-sm flex items-center justify-center rounded border hover:cursor-pointer"
6
- }, N = ({
7
- currentPage: t,
8
- itemsPerPage: c,
9
- totalItems: r,
10
- onPageChange: p
1
+ import r, { useState as $, useMemo as j, useRef as L, useEffect as B } from "react";
2
+ import { Icon as O } from "./index6.js";
3
+ import { Popover as z } from "./index19.js";
4
+ import { MenuList as H } from "./index18.js";
5
+ import { useStableId as U } from "./index205.js";
6
+ import "./index72.js";
7
+ import { useTabsA11y as V, getPanelId as q } from "./index73.js";
8
+ /* empty css */
9
+ function d() {
10
+ return d = Object.assign ? Object.assign.bind() : function(i) {
11
+ for (var o = 1; o < arguments.length; o++) {
12
+ var m = arguments[o];
13
+ for (var u in m) ({}).hasOwnProperty.call(m, u) && (i[u] = m[u]);
14
+ }
15
+ return i;
16
+ }, d.apply(null, arguments);
17
+ }
18
+ const re = ({
19
+ defaultActiveTab: i,
20
+ tabs: o,
21
+ onTabChange: m,
22
+ primaryTabCount: u,
23
+ headingLevel: g,
24
+ id: A,
25
+ ariaLabel: F = "Tabs",
26
+ ariaLabelledBy: M,
27
+ panelId: p
11
28
  }) => {
12
- const n = Math.ceil(r / c), m = 1, h = n, f = (t - 1) * c + 1, d = Math.min(t * c, r), x = d < r, v = t > 1, g = () => {
13
- const e = [], a = (o) => /* @__PURE__ */ s.createElement("span", {
14
- key: o,
15
- onClick: () => p(o),
16
- className: `${l.pageItem} ${t === o ? "bg-[var(--color-gray-100)] border-[var(--color-gray-300)]" : "border-[var(--color-gray-200)] hover:bg-[var(--color-gray-50)]"}`,
17
- "data-automation-id": `page-number-${o}`
18
- }, o), i = () => /* @__PURE__ */ s.createElement("span", {
19
- className: "w-5 h-5 text-sm rounded border border-[var(--color-gray-200)] flex items-end justify-center"
20
- }, "...");
21
- if (t <= 3) {
22
- for (let o = 1; o <= Math.min(3, n); o++)
23
- e.push(a(o));
24
- n > 3 && (e.push(i()), e.push(a(n)));
25
- } else t >= n - 2 ? (e.push(a(m)), e.push(i()), e.push(a(n - 2)), e.push(a(n - 1)), e.push(a(n))) : (e.push(a(m)), e.push(i()), e.push(a(t - 1)), e.push(a(t)), e.push(a(t + 1)), e.push(i()), e.push(a(h)));
26
- return e;
27
- };
28
- return /* @__PURE__ */ s.createElement("div", {
29
- className: "flex items-center gap-1 font-normal",
30
- "data-automation-id": "pagination-container"
31
- }, /* @__PURE__ */ s.createElement("span", {
32
- className: "text-sm text-[var(--color-gray-700)] mr-1",
33
- "data-automation-id": "pagination-items-info"
34
- }, "Showing ", f, "-", d, " of ", r), /* @__PURE__ */ s.createElement("span", {
35
- onClick: () => v && p(t - 1),
36
- className: `${l.pageNavigation}`,
37
- "data-automation-id": "pagination-previous-button"
38
- }, /* @__PURE__ */ s.createElement(u, {
39
- name: "next",
40
- className: "rotate-180 transition-transform stroke-[var(--color-gray-600)]"
41
- })), /* @__PURE__ */ s.createElement("div", {
42
- className: "flex items-center gap-1"
43
- }, g()), /* @__PURE__ */ s.createElement("span", {
44
- onClick: () => x && p(t + 1),
45
- className: `${l.pageNavigation}`,
46
- "data-automation-id": "pagination-next-button"
47
- }, /* @__PURE__ */ s.createElement(u, {
48
- name: "next"
49
- })));
29
+ const K = i || (o[0] ? o[0].id : ""), [b, h] = $(K), [w, y] = $(!1), T = u ?? o?.length, f = o.slice(0, T), c = o.slice(T), l = c.find((e) => e.id === b), E = o.some((e) => e.renderTabContent), k = U(A, "tabs"), R = j(() => {
30
+ const e = f.filter((s) => !s.disabled), t = c.filter((s) => !s.disabled), n = e.map((s) => s.id);
31
+ return t.length > 0 ? [...n, "overflow"] : n;
32
+ }, [f, c]), {
33
+ getTabProps: x,
34
+ getPanelProps: S,
35
+ getTabListProps: _,
36
+ handleKeyDown: I,
37
+ setFocusedTabId: C
38
+ } = V({
39
+ itemIds: R,
40
+ activeItem: b,
41
+ orientation: "horizontal",
42
+ idBase: k,
43
+ includePanelLinks: E || !!p,
44
+ externalPanelId: p
45
+ }), N = L(null), v = L(!1);
46
+ B(() => {
47
+ h(i || "");
48
+ }, [i]);
49
+ const P = (e) => {
50
+ h(e?.id), m?.(e?.id);
51
+ }, D = (e, t) => e.id === t;
52
+ if (g && o.length === 1) {
53
+ const e = o[0];
54
+ return /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement(g, {
55
+ className: "se-design-tabs se-design-tabs-heading"
56
+ }, e.label), /* @__PURE__ */ r.createElement("div", {
57
+ className: "se-design-tabs-content"
58
+ }, /* @__PURE__ */ r.createElement("div", {
59
+ className: "tab-content block"
60
+ }, e?.renderTabContent && e?.renderTabContent(e))));
61
+ }
62
+ return /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement("div", d({
63
+ className: "se-design-tabs flex items-stretch relative border rounded-md border-[var(--color-gray-400)] w-fit",
64
+ "data-automation-id": "tabs-container"
65
+ }, _({
66
+ ariaLabel: F,
67
+ ariaLabelledBy: M
68
+ })), f.map((e) => {
69
+ const t = b === e.id, n = !!e.disabled, s = x(e.id);
70
+ return /* @__PURE__ */ r.createElement("button", d({
71
+ type: "button",
72
+ key: e.id
73
+ }, s, {
74
+ disabled: n,
75
+ "aria-label": e.ariaLabel,
76
+ onFocus: () => !n && C(e.id),
77
+ onKeyDown: I,
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
+ }), c.length > 0 && /* @__PURE__ */ r.createElement(z, {
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 = x("overflow"), s = l ? q(l.id, k) : void 0;
95
+ return /* @__PURE__ */ r.createElement("div", d({}, n, {
96
+ ref: (a) => {
97
+ N.current = a, n.ref(a);
98
+ },
99
+ "aria-selected": !!l,
100
+ "aria-label": l?.label ? void 0 : `More tabs (${c.length})`,
101
+ "aria-controls": s,
102
+ "aria-haspopup": "true",
103
+ "aria-expanded": e,
104
+ onClick: () => {
105
+ v.current = !1, t(!0);
106
+ },
107
+ onFocus: () => C("overflow"),
108
+ "data-automation-id": "tabs-kebab-menu",
109
+ onKeyDown: (a) => {
110
+ 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")) : I(a);
111
+ },
112
+ 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)]" : ""} ${l?.label ? "bg-[var(--color-blue-500)]" : "hover:bg-[var(--color-gray-50)]"}`,
113
+ onMouseEnter: () => y(!0),
114
+ onMouseLeave: () => y(!1)
115
+ }), l?.label ? /* @__PURE__ */ r.createElement("span", {
116
+ className: "pointer-events-none flex items-center gap-1"
117
+ }, /* @__PURE__ */ r.createElement("span", {
118
+ className: "text-[var(--color-white)]"
119
+ }, l?.label), /* @__PURE__ */ r.createElement(O, {
120
+ name: "chevron",
121
+ rotation: e ? "180" : "0",
122
+ stroke: w ? "var(--color-gray-100)" : "var(--color-white)"
123
+ })) : /* @__PURE__ */ r.createElement("span", {
124
+ className: "pointer-events-none"
125
+ }, /* @__PURE__ */ r.createElement(O, {
126
+ name: "kebab-menu",
127
+ fill: w ? "var(--color-gray-900)" : "var(--color-gray-700)"
128
+ })));
129
+ },
130
+ renderPopoverContents: ({
131
+ closePopoverCb: e
132
+ }) => /* @__PURE__ */ r.createElement(H, {
133
+ items: c.map((t) => ({
134
+ id: t?.id,
135
+ label: t?.label,
136
+ automationId: t?.automationId || t?.id,
137
+ onClick: () => {
138
+ P(t), e();
139
+ }
140
+ }))
141
+ })
142
+ })), E && /* @__PURE__ */ r.createElement("div", {
143
+ className: "se-design-tabs-content"
144
+ }, o.map((e) => /* @__PURE__ */ r.createElement("div", d({
145
+ key: e.id
146
+ }, S(e.id), {
147
+ className: `tab-content ${D(e, b) ? "block" : "hidden"}`
148
+ }), D(e, b) && e.renderTabContent?.(e)))));
50
149
  };
51
150
  export {
52
- N as Pagination
151
+ re as Tabs
53
152
  };
54
153
  //# sourceMappingURL=index29.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index29.js","sources":["../src/components/Pagination/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Icon } from 'components/Icon';\n\ninterface PaginationProps {\n currentPage: number;\n itemsPerPage: number;\n totalItems: number;\n onPageChange: (page: number) => void;\n}\n\nconst paginationClassNames = {\n pageNavigation: \"px-[6px] flex items-center justify-center disabled:opacity-50 hover:cursor-pointer\",\n pageItem: \"px-[6px] text-sm flex items-center justify-center rounded border hover:cursor-pointer\"\n}\n\nexport const Pagination: React.FC<PaginationProps> = ({ currentPage, itemsPerPage, totalItems, onPageChange }) => {\n const totalPages = Math.ceil(totalItems / itemsPerPage);\n const firstPage = 1;\n const lastPage = totalPages;\n const startItem = (currentPage - 1) * itemsPerPage + 1;\n const endItem = Math.min(currentPage * itemsPerPage, totalItems);\n const hasNextPage = endItem < totalItems;\n const hasPrevPage = currentPage > 1;\n\n const renderPageNumbers = () => {\n const pages = [];\n\n const renderPageNumber = (pageNum: number) => {\n return (\n <span\n key={pageNum}\n onClick={() => onPageChange(pageNum)}\n className={`${paginationClassNames.pageItem} ${currentPage === pageNum ? 'bg-[var(--color-gray-100)] border-[var(--color-gray-300)]' : 'border-[var(--color-gray-200)] hover:bg-[var(--color-gray-50)]'}`}\n data-automation-id={`page-number-${pageNum}`}\n >\n {pageNum}\n </span>\n );\n };\n\n const renderEllipsis = () => {\n return (\n <span className=\"w-5 h-5 text-sm rounded border border-[var(--color-gray-200)] flex items-end justify-center\">\n ...\n </span>\n );\n };\n\n if (currentPage <= 3) {\n for (let i = 1; i <= Math.min(3, totalPages); i++) {\n pages.push(renderPageNumber(i));\n }\n\n if (totalPages > 3) {\n pages.push(renderEllipsis());\n pages.push(renderPageNumber(totalPages));\n }\n } else if (currentPage >= totalPages - 2) {\n pages.push(renderPageNumber(firstPage));\n pages.push(renderEllipsis());\n pages.push(renderPageNumber(totalPages - 2));\n pages.push(renderPageNumber(totalPages - 1));\n pages.push(renderPageNumber(totalPages));\n } else {\n pages.push(renderPageNumber(firstPage));\n pages.push(renderEllipsis());\n pages.push(renderPageNumber(currentPage - 1));\n pages.push(renderPageNumber(currentPage));\n pages.push(renderPageNumber(currentPage + 1));\n pages.push(renderEllipsis());\n pages.push(renderPageNumber(lastPage));\n }\n\n return pages;\n };\n\n return (\n <div className=\"flex items-center gap-1 font-normal\" data-automation-id=\"pagination-container\">\n <span className=\"text-sm text-[var(--color-gray-700)] mr-1\" data-automation-id=\"pagination-items-info\">\n Showing {startItem}-{endItem} of {totalItems}\n </span>\n <span\n onClick={() => hasPrevPage && onPageChange(currentPage - 1)}\n className={`${paginationClassNames.pageNavigation}`}\n data-automation-id=\"pagination-previous-button\"\n >\n <Icon name=\"next\" className=\"rotate-180 transition-transform stroke-[var(--color-gray-600)]\" />\n </span>\n {/* Render page numbers */}\n <div className=\"flex items-center gap-1\">{renderPageNumbers()}</div>\n <span\n onClick={() => hasNextPage && onPageChange(currentPage + 1)}\n className={`${paginationClassNames.pageNavigation}`}\n data-automation-id=\"pagination-next-button\"\n >\n <Icon name=\"next\" />\n </span>\n </div>\n );\n};\n"],"names":["React__default","Icon","paginationClassNames","pageNavigation","pageItem","Pagination","currentPage","itemsPerPage","totalItems","onPageChange","totalPages","Math","ceil","firstPage","lastPage","startItem","endItem","min","hasNextPage","hasPrevPage","renderPageNumbers","pages","renderPageNumber","pageNum","React","createElement","key","onClick","className","renderEllipsis","i","push","name"],"mappings":"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"}
1
+ {"version":3,"file":"index29.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 } 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, getTabListProps, 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 data-automation-id=\"tabs-container\"\n {...getTabListProps({ ariaLabel, ariaLabelledBy })}\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 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-selected={!!activeOverflowTab}\n aria-label={activeOverflowTab?.label ? undefined : `More tabs (${overflowTabs.length})`}\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 <span className=\"pointer-events-none flex items-center gap-1\">\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 </span>\n ) : (\n <span className=\"pointer-events-none\">\n <Icon name=\"kebab-menu\" fill={isIconTabHover ? 'var(--color-gray-900)' : 'var(--color-gray-700)'} />\n </span>\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","getTabListProps","handleKeyDown","setFocusedTabId","useTabsA11y","activeItem","orientation","idBase","includePanelLinks","externalPanelId","overflowDivRef","useRef","wasKeyboardOpenedRef","useEffect","handleTabClick","isTabActive","singleTab","createElement","React","Fragment","className","label","_extends","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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"}