se-design 1.0.59 → 1.0.61-dev

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 (459) hide show
  1. package/dist/assets/colors.css +2 -2
  2. package/dist/assets/icons/checkbox-disabled-minus.svg +1 -1
  3. package/dist/assets/icons/checkbox-disabled-tick.svg +1 -1
  4. package/dist/assets/icons/checkbox-fill.svg +1 -1
  5. package/dist/assets/icons/checkbox-hover-fill.svg +2 -2
  6. package/dist/assets/icons/sort-asc.svg +3 -4
  7. package/dist/assets/icons/sort-desc.svg +2 -3
  8. package/dist/assets/style.css +1 -1
  9. package/dist/components/AutoCompleteInput/index.d.ts +37 -7
  10. package/dist/components/DropdownWithInputTags/index.d.ts +7 -1
  11. package/dist/components/Header/index.d.ts +1 -0
  12. package/dist/components/OTPInput/index.d.ts +1 -0
  13. package/dist/components/PhoneInput/index.d.ts +19 -0
  14. package/dist/components/RadioGroup/index.d.ts +17 -0
  15. package/dist/components/SidebarOverlay/index.d.ts +4 -0
  16. package/dist/components/SkipLinksBar/index.d.ts +11 -0
  17. package/dist/components/index.d.ts +1 -0
  18. package/dist/index.js +124 -120
  19. package/dist/index.js.map +1 -1
  20. package/dist/index10.js +56 -46
  21. package/dist/index10.js.map +1 -1
  22. package/dist/index100.js +2 -2
  23. package/dist/index100.js.map +1 -1
  24. package/dist/index101.js +2 -2
  25. package/dist/index101.js.map +1 -1
  26. package/dist/index102.js +2 -2
  27. package/dist/index102.js.map +1 -1
  28. package/dist/index103.js +2 -2
  29. package/dist/index103.js.map +1 -1
  30. package/dist/index104.js +1 -1
  31. package/dist/index104.js.map +1 -1
  32. package/dist/index105.js +1 -1
  33. package/dist/index105.js.map +1 -1
  34. package/dist/index106.js +2 -2
  35. package/dist/index106.js.map +1 -1
  36. package/dist/index107.js +2 -2
  37. package/dist/index107.js.map +1 -1
  38. package/dist/index108.js +2 -2
  39. package/dist/index108.js.map +1 -1
  40. package/dist/index109.js +2 -2
  41. package/dist/index109.js.map +1 -1
  42. package/dist/index11.js +48 -18
  43. package/dist/index11.js.map +1 -1
  44. package/dist/index110.js +1 -1
  45. package/dist/index110.js.map +1 -1
  46. package/dist/index111.js +1 -1
  47. package/dist/index111.js.map +1 -1
  48. package/dist/index112.js +2 -2
  49. package/dist/index112.js.map +1 -1
  50. package/dist/index113.js +1 -1
  51. package/dist/index113.js.map +1 -1
  52. package/dist/index114.js +1 -1
  53. package/dist/index114.js.map +1 -1
  54. package/dist/index115.js +2 -2
  55. package/dist/index115.js.map +1 -1
  56. package/dist/index116.js +2 -2
  57. package/dist/index116.js.map +1 -1
  58. package/dist/index117.js +2 -2
  59. package/dist/index117.js.map +1 -1
  60. package/dist/index118.js +2 -2
  61. package/dist/index118.js.map +1 -1
  62. package/dist/index119.js +1 -1
  63. package/dist/index119.js.map +1 -1
  64. package/dist/index12.js +20 -11
  65. package/dist/index12.js.map +1 -1
  66. package/dist/index120.js +1 -1
  67. package/dist/index120.js.map +1 -1
  68. package/dist/index121.js +1 -1
  69. package/dist/index121.js.map +1 -1
  70. package/dist/index122.js +1 -1
  71. package/dist/index122.js.map +1 -1
  72. package/dist/index123.js +1 -1
  73. package/dist/index123.js.map +1 -1
  74. package/dist/index124.js +1 -1
  75. package/dist/index124.js.map +1 -1
  76. package/dist/index125.js +1 -1
  77. package/dist/index125.js.map +1 -1
  78. package/dist/index126.js +2 -2
  79. package/dist/index126.js.map +1 -1
  80. package/dist/index127.js +1 -1
  81. package/dist/index127.js.map +1 -1
  82. package/dist/index128.js +2 -2
  83. package/dist/index128.js.map +1 -1
  84. package/dist/index129.js +1 -1
  85. package/dist/index129.js.map +1 -1
  86. package/dist/index13.js +15 -9
  87. package/dist/index13.js.map +1 -1
  88. package/dist/index130.js +1 -1
  89. package/dist/index130.js.map +1 -1
  90. package/dist/index131.js +1 -1
  91. package/dist/index131.js.map +1 -1
  92. package/dist/index132.js +1 -1
  93. package/dist/index132.js.map +1 -1
  94. package/dist/index133.js +1 -1
  95. package/dist/index133.js.map +1 -1
  96. package/dist/index134.js +2 -2
  97. package/dist/index134.js.map +1 -1
  98. package/dist/index135.js +2 -2
  99. package/dist/index135.js.map +1 -1
  100. package/dist/index136.js +2 -2
  101. package/dist/index136.js.map +1 -1
  102. package/dist/index137.js +2 -2
  103. package/dist/index137.js.map +1 -1
  104. package/dist/index138.js +2 -2
  105. package/dist/index138.js.map +1 -1
  106. package/dist/index139.js +2 -2
  107. package/dist/index139.js.map +1 -1
  108. package/dist/index14.js +10 -202
  109. package/dist/index14.js.map +1 -1
  110. package/dist/index140.js +2 -2
  111. package/dist/index140.js.map +1 -1
  112. package/dist/index141.js +1 -1
  113. package/dist/index141.js.map +1 -1
  114. package/dist/index142.js +1 -1
  115. package/dist/index142.js.map +1 -1
  116. package/dist/index143.js +1 -1
  117. package/dist/index143.js.map +1 -1
  118. package/dist/index144.js +1 -1
  119. package/dist/index144.js.map +1 -1
  120. package/dist/index145.js +1 -1
  121. package/dist/index145.js.map +1 -1
  122. package/dist/index146.js +1 -1
  123. package/dist/index146.js.map +1 -1
  124. package/dist/index147.js +1 -1
  125. package/dist/index147.js.map +1 -1
  126. package/dist/index148.js +1 -1
  127. package/dist/index148.js.map +1 -1
  128. package/dist/index149.js +1 -1
  129. package/dist/index149.js.map +1 -1
  130. package/dist/index15.js +216 -59
  131. package/dist/index15.js.map +1 -1
  132. package/dist/index150.js +1 -1
  133. package/dist/index150.js.map +1 -1
  134. package/dist/index151.js +1 -1
  135. package/dist/index151.js.map +1 -1
  136. package/dist/index152.js +1 -1
  137. package/dist/index152.js.map +1 -1
  138. package/dist/index153.js +1 -1
  139. package/dist/index153.js.map +1 -1
  140. package/dist/index154.js +1 -1
  141. package/dist/index154.js.map +1 -1
  142. package/dist/index155.js +1 -1
  143. package/dist/index155.js.map +1 -1
  144. package/dist/index156.js +1 -1
  145. package/dist/index156.js.map +1 -1
  146. package/dist/index157.js +1 -1
  147. package/dist/index157.js.map +1 -1
  148. package/dist/index158.js +1 -1
  149. package/dist/index158.js.map +1 -1
  150. package/dist/index159.js +1 -1
  151. package/dist/index159.js.map +1 -1
  152. package/dist/index16.js +60 -84
  153. package/dist/index16.js.map +1 -1
  154. package/dist/index160.js +1 -1
  155. package/dist/index160.js.map +1 -1
  156. package/dist/index161.js +1 -1
  157. package/dist/index161.js.map +1 -1
  158. package/dist/index162.js +1 -1
  159. package/dist/index162.js.map +1 -1
  160. package/dist/index163.js +2 -2
  161. package/dist/index163.js.map +1 -1
  162. package/dist/index164.js +1 -1
  163. package/dist/index164.js.map +1 -1
  164. package/dist/index165.js +2 -2
  165. package/dist/index165.js.map +1 -1
  166. package/dist/index166.js +1 -1
  167. package/dist/index166.js.map +1 -1
  168. package/dist/index167.js +2 -2
  169. package/dist/index167.js.map +1 -1
  170. package/dist/index168.js +1 -1
  171. package/dist/index168.js.map +1 -1
  172. package/dist/index169.js +2 -2
  173. package/dist/index169.js.map +1 -1
  174. package/dist/index17.js +80 -274
  175. package/dist/index17.js.map +1 -1
  176. package/dist/index170.js +1 -1
  177. package/dist/index170.js.map +1 -1
  178. package/dist/index171.js +1 -1
  179. package/dist/index171.js.map +1 -1
  180. package/dist/index172.js +1 -1
  181. package/dist/index172.js.map +1 -1
  182. package/dist/index173.js +1 -1
  183. package/dist/index173.js.map +1 -1
  184. package/dist/index174.js +1 -1
  185. package/dist/index174.js.map +1 -1
  186. package/dist/index175.js +1 -1
  187. package/dist/index175.js.map +1 -1
  188. package/dist/index176.js +1 -1
  189. package/dist/index176.js.map +1 -1
  190. package/dist/index177.js +2 -2
  191. package/dist/index177.js.map +1 -1
  192. package/dist/index178.js +1 -1
  193. package/dist/index178.js.map +1 -1
  194. package/dist/index179.js +2 -2
  195. package/dist/index179.js.map +1 -1
  196. package/dist/index18.js +281 -11
  197. package/dist/index18.js.map +1 -1
  198. package/dist/index180.js +2 -149
  199. package/dist/index180.js.map +1 -1
  200. package/dist/index181.js +2 -6
  201. package/dist/index181.js.map +1 -1
  202. package/dist/index182.js +149 -5
  203. package/dist/index182.js.map +1 -1
  204. package/dist/index183.js +12 -0
  205. package/dist/index183.js.map +1 -0
  206. package/dist/index184.js +9 -0
  207. package/dist/index184.js.map +1 -0
  208. package/dist/index185.js +4 -23
  209. package/dist/index185.js.map +1 -1
  210. package/dist/index188.js +27 -0
  211. package/dist/index188.js.map +1 -0
  212. package/dist/index189.js +60 -21
  213. package/dist/index189.js.map +1 -1
  214. package/dist/index19.js +12 -31
  215. package/dist/index19.js.map +1 -1
  216. package/dist/index191.js +87 -0
  217. package/dist/index191.js.map +1 -0
  218. package/dist/index193.js +26 -0
  219. package/dist/index193.js.map +1 -0
  220. package/dist/index20.js +32 -56
  221. package/dist/index20.js.map +1 -1
  222. package/dist/{index197.js → index201.js} +1 -1
  223. package/dist/{index197.js.map → index201.js.map} +1 -1
  224. package/dist/{index205.js → index209.js} +1 -1
  225. package/dist/{index205.js.map → index209.js.map} +1 -1
  226. package/dist/index21.js +53 -75
  227. package/dist/index21.js.map +1 -1
  228. package/dist/{index207.js → index211.js} +1 -1
  229. package/dist/{index207.js.map → index211.js.map} +1 -1
  230. package/dist/{index208.js → index212.js} +2 -2
  231. package/dist/{index208.js.map → index212.js.map} +1 -1
  232. package/dist/index22.js +77 -21
  233. package/dist/index22.js.map +1 -1
  234. package/dist/index222.js +3 -9
  235. package/dist/index222.js.map +1 -1
  236. package/dist/index224.js +56 -167
  237. package/dist/index224.js.map +1 -1
  238. package/dist/index225.js +54 -11
  239. package/dist/index225.js.map +1 -1
  240. package/dist/index227.js +18 -5
  241. package/dist/index227.js.map +1 -1
  242. package/dist/index228.js +9 -5
  243. package/dist/index228.js.map +1 -1
  244. package/dist/index229.js +8 -36
  245. package/dist/index229.js.map +1 -1
  246. package/dist/index23.js +19 -190
  247. package/dist/index23.js.map +1 -1
  248. package/dist/index230.js +5 -2
  249. package/dist/index230.js.map +1 -1
  250. package/dist/index231.js +170 -8
  251. package/dist/index231.js.map +1 -1
  252. package/dist/index232.js +11 -327
  253. package/dist/index232.js.map +1 -1
  254. package/dist/index233.js +5 -49
  255. package/dist/index233.js.map +1 -1
  256. package/dist/index234.js +6 -2
  257. package/dist/index234.js.map +1 -1
  258. package/dist/index235.js +35 -73
  259. package/dist/index235.js.map +1 -1
  260. package/dist/index236.js +2 -93
  261. package/dist/index236.js.map +1 -1
  262. package/dist/index237.js +5 -49
  263. package/dist/index237.js.map +1 -1
  264. package/dist/index238.js +326 -7
  265. package/dist/index238.js.map +1 -1
  266. package/dist/index239.js +49 -4
  267. package/dist/index239.js.map +1 -1
  268. package/dist/index24.js +217 -44
  269. package/dist/index24.js.map +1 -1
  270. package/dist/index240.js +2 -52
  271. package/dist/index240.js.map +1 -1
  272. package/dist/index241.js +76 -2
  273. package/dist/index241.js.map +1 -1
  274. package/dist/index242.js +93 -2
  275. package/dist/index242.js.map +1 -1
  276. package/dist/index243.js +55 -0
  277. package/dist/index243.js.map +1 -0
  278. package/dist/index244.js +11 -0
  279. package/dist/index244.js.map +1 -0
  280. package/dist/index245.js +8 -0
  281. package/dist/index245.js.map +1 -0
  282. package/dist/index246.js +55 -0
  283. package/dist/index246.js.map +1 -0
  284. package/dist/index247.js +5 -0
  285. package/dist/index247.js.map +1 -0
  286. package/dist/index248.js +5 -0
  287. package/dist/index248.js.map +1 -0
  288. package/dist/index25.js +48 -18
  289. package/dist/index25.js.map +1 -1
  290. package/dist/index26.js +16 -80
  291. package/dist/index26.js.map +1 -1
  292. package/dist/index27.js +82 -79
  293. package/dist/index27.js.map +1 -1
  294. package/dist/index28.js +80 -130
  295. package/dist/index28.js.map +1 -1
  296. package/dist/index29.js +131 -55
  297. package/dist/index29.js.map +1 -1
  298. package/dist/index3.js +2 -2
  299. package/dist/index30.js +53 -97
  300. package/dist/index30.js.map +1 -1
  301. package/dist/index31.js +99 -61
  302. package/dist/index31.js.map +1 -1
  303. package/dist/index32.js +59 -32
  304. package/dist/index32.js.map +1 -1
  305. package/dist/index33.js +40 -71
  306. package/dist/index33.js.map +1 -1
  307. package/dist/index34.js +68 -41
  308. package/dist/index34.js.map +1 -1
  309. package/dist/index35.js +45 -57
  310. package/dist/index35.js.map +1 -1
  311. package/dist/index36.js +54 -230
  312. package/dist/index36.js.map +1 -1
  313. package/dist/index37.js +281 -70
  314. package/dist/index37.js.map +1 -1
  315. package/dist/index38.js +68 -80
  316. package/dist/index38.js.map +1 -1
  317. package/dist/index39.js +82 -32
  318. package/dist/index39.js.map +1 -1
  319. package/dist/index40.js +26 -44
  320. package/dist/index40.js.map +1 -1
  321. package/dist/index41.js +45 -67
  322. package/dist/index41.js.map +1 -1
  323. package/dist/index42.js +65 -49
  324. package/dist/index42.js.map +1 -1
  325. package/dist/index43.js +49 -89
  326. package/dist/index43.js.map +1 -1
  327. package/dist/index44.js +141 -93
  328. package/dist/index44.js.map +1 -1
  329. package/dist/index45.js +189 -35
  330. package/dist/index45.js.map +1 -1
  331. package/dist/index46.js +34 -29
  332. package/dist/index46.js.map +1 -1
  333. package/dist/index47.js +31 -147
  334. package/dist/index47.js.map +1 -1
  335. package/dist/index48.js +138 -45
  336. package/dist/index48.js.map +1 -1
  337. package/dist/index49.js +52 -373
  338. package/dist/index49.js.map +1 -1
  339. package/dist/index5.js +116 -115
  340. package/dist/index5.js.map +1 -1
  341. package/dist/index50.js +375 -63
  342. package/dist/index50.js.map +1 -1
  343. package/dist/index51.js +65 -38
  344. package/dist/index51.js.map +1 -1
  345. package/dist/index52.js +35 -35
  346. package/dist/index52.js.map +1 -1
  347. package/dist/index53.js +35 -82
  348. package/dist/index53.js.map +1 -1
  349. package/dist/index54.js +81 -159
  350. package/dist/index54.js.map +1 -1
  351. package/dist/index55.js +157 -135
  352. package/dist/index55.js.map +1 -1
  353. package/dist/index56.js +149 -29
  354. package/dist/index56.js.map +1 -1
  355. package/dist/index57.js +29 -86
  356. package/dist/index57.js.map +1 -1
  357. package/dist/index58.js +80 -113
  358. package/dist/index58.js.map +1 -1
  359. package/dist/index59.js +114 -56
  360. package/dist/index59.js.map +1 -1
  361. package/dist/index6.js +32 -51
  362. package/dist/index6.js.map +1 -1
  363. package/dist/index60.js +56 -147
  364. package/dist/index60.js.map +1 -1
  365. package/dist/index61.js +146 -312
  366. package/dist/index61.js.map +1 -1
  367. package/dist/index62.js +317 -44
  368. package/dist/index62.js.map +1 -1
  369. package/dist/index63.js +43 -139
  370. package/dist/index63.js.map +1 -1
  371. package/dist/index64.js +140 -12
  372. package/dist/index64.js.map +1 -1
  373. package/dist/index65.js +10 -42
  374. package/dist/index65.js.map +1 -1
  375. package/dist/index66.js +44 -5
  376. package/dist/index66.js.map +1 -1
  377. package/dist/index67.js +18 -8
  378. package/dist/index67.js.map +1 -1
  379. package/dist/index68.js +8 -0
  380. package/dist/index68.js.map +1 -0
  381. package/dist/index69.js +9 -2
  382. package/dist/index69.js.map +1 -1
  383. package/dist/index7.js +47 -81
  384. package/dist/index7.js.map +1 -1
  385. package/dist/index71.js +1 -1
  386. package/dist/index71.js.map +1 -1
  387. package/dist/index72.js +1 -1
  388. package/dist/index72.js.map +1 -1
  389. package/dist/index73.js +2 -2
  390. package/dist/index73.js.map +1 -1
  391. package/dist/index74.js +1 -1
  392. package/dist/index74.js.map +1 -1
  393. package/dist/index75.js +1 -1
  394. package/dist/index75.js.map +1 -1
  395. package/dist/index76.js +1 -1
  396. package/dist/index76.js.map +1 -1
  397. package/dist/index77.js +1 -1
  398. package/dist/index77.js.map +1 -1
  399. package/dist/index78.js +1 -1
  400. package/dist/index78.js.map +1 -1
  401. package/dist/index79.js +1 -1
  402. package/dist/index79.js.map +1 -1
  403. package/dist/index8.js +86 -26
  404. package/dist/index8.js.map +1 -1
  405. package/dist/index80.js +1 -1
  406. package/dist/index80.js.map +1 -1
  407. package/dist/index81.js +1 -1
  408. package/dist/index81.js.map +1 -1
  409. package/dist/index82.js +1 -1
  410. package/dist/index82.js.map +1 -1
  411. package/dist/index83.js +1 -1
  412. package/dist/index83.js.map +1 -1
  413. package/dist/index84.js +1 -1
  414. package/dist/index84.js.map +1 -1
  415. package/dist/index85.js +1 -1
  416. package/dist/index85.js.map +1 -1
  417. package/dist/index86.js +1 -1
  418. package/dist/index86.js.map +1 -1
  419. package/dist/index87.js +1 -1
  420. package/dist/index87.js.map +1 -1
  421. package/dist/index88.js +1 -1
  422. package/dist/index88.js.map +1 -1
  423. package/dist/index89.js +1 -1
  424. package/dist/index89.js.map +1 -1
  425. package/dist/index9.js +23 -59
  426. package/dist/index9.js.map +1 -1
  427. package/dist/index90.js +1 -1
  428. package/dist/index90.js.map +1 -1
  429. package/dist/index91.js +1 -1
  430. package/dist/index91.js.map +1 -1
  431. package/dist/index92.js +1 -1
  432. package/dist/index92.js.map +1 -1
  433. package/dist/index93.js +1 -1
  434. package/dist/index93.js.map +1 -1
  435. package/dist/index94.js +1 -1
  436. package/dist/index94.js.map +1 -1
  437. package/dist/index95.js +2 -2
  438. package/dist/index95.js.map +1 -1
  439. package/dist/index96.js +2 -2
  440. package/dist/index96.js.map +1 -1
  441. package/dist/index97.js +2 -2
  442. package/dist/index97.js.map +1 -1
  443. package/dist/index98.js +2 -2
  444. package/dist/index98.js.map +1 -1
  445. package/dist/index99.js +1 -1
  446. package/dist/index99.js.map +1 -1
  447. package/package.json +3 -2
  448. package/dist/index186.js +0 -65
  449. package/dist/index186.js.map +0 -1
  450. package/dist/index218.js +0 -7
  451. package/dist/index218.js.map +0 -1
  452. package/dist/index220.js +0 -62
  453. package/dist/index220.js.map +0 -1
  454. package/dist/index221.js +0 -13
  455. package/dist/index221.js.map +0 -1
  456. package/dist/index223.js +0 -8
  457. package/dist/index223.js.map +0 -1
  458. package/dist/index70.js +0 -5
  459. package/dist/index70.js.map +0 -1
package/dist/index19.js CHANGED
@@ -1,36 +1,17 @@
1
1
  import e from "react";
2
- import { Popover as l } from "./index17.js";
3
- import { Icon as s } from "./index5.js";
4
- const t = {
5
- base: "se-design-hamburger-menu rounded-[6px] transition-all duration-300 p-[3px] flex items-center",
6
- active: "bg-[var(--color-blue-450)]",
7
- hover: "hover:bg-[var(--color-blue-450)]"
8
- }, u = ({
9
- className: a = "",
10
- automationId: n = "",
11
- popoverContentAutomationId: m = "",
12
- menuContent: o,
13
- popoverClassName: c = ""
14
- }) => /* @__PURE__ */ e.createElement(l, {
2
+ const o = ({
3
+ leftContainer: t,
4
+ centerContainer: l,
5
+ rightContainer: r,
15
6
  className: a,
16
- position: "bottom-left",
17
- automationId: n,
18
- popoverContentAutomationId: m,
19
- renderPopoverSrcElement: ({
20
- displayPopover: r
21
- }) => /* @__PURE__ */ e.createElement("div", {
22
- className: `${t.base} ${r ? t.active : ""} ${t.hover}`
23
- }, /* @__PURE__ */ e.createElement(s, {
24
- name: "hamburger",
25
- stroke: "var(--color-white)"
26
- })),
27
- renderPopoverContents: (r) => /* @__PURE__ */ e.createElement("div", {
28
- className: `min-w-[212px] ${c}`
29
- }, o && /* @__PURE__ */ e.createElement("div", {
30
- className: "menu-content"
31
- }, o(r)))
32
- });
7
+ id: n,
8
+ ...u
9
+ }) => /* @__PURE__ */ e.createElement("header", {
10
+ id: n,
11
+ tabIndex: -1,
12
+ className: `se-design-header ${a} sticky top-0 h-[48px] w-full z-[1010] bg-[var(--color-blue-600)] flex justify-between items-center focus:outline-none [&_*:focus-visible]:!outline-[var(--color-blue-300)] ${u?.type === "fixed" ? "fixed left-0 right-0 top-0" : ""}`
13
+ }, t && /* @__PURE__ */ e.createElement(e.Fragment, null, t), l && /* @__PURE__ */ e.createElement(e.Fragment, null, l), r && /* @__PURE__ */ e.createElement(e.Fragment, null, r));
33
14
  export {
34
- u as HamburgerMenu
15
+ o as Header
35
16
  };
36
17
  //# sourceMappingURL=index19.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index19.js","sources":["../src/components/HamburgerMenu/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nimport { Popover } from 'src/components/Popover';\nimport { Icon } from 'src/components/Icon';\nexport interface HamburgerMenuProps {\n className?: string;\n automationId?: string;\n popoverContentAutomationId?: string;\n menuContent?: (data: any) => React.ReactNode;\n popoverClassName?: string;\n}\n\nconst menuClasses = {\n base: 'se-design-hamburger-menu rounded-[6px] transition-all duration-300 p-[3px] flex items-center',\n active: 'bg-[var(--color-blue-450)]',\n hover: 'hover:bg-[var(--color-blue-450)]'\n};\n\nexport const HamburgerMenu: FC<HamburgerMenuProps> = ({\n className = '',\n automationId = '',\n popoverContentAutomationId = '',\n menuContent,\n popoverClassName = ''\n}) => {\n\n return (\n <Popover\n className={className}\n position='bottom-left'\n automationId={automationId}\n popoverContentAutomationId={popoverContentAutomationId}\n renderPopoverSrcElement={({ displayPopover }) => (\n <div className={`${menuClasses.base} ${displayPopover ? menuClasses.active : ''} ${menuClasses.hover}`}>\n <Icon name='hamburger' stroke={'var(--color-white)'} />\n </div>\n )}\n renderPopoverContents={(data) => (\n <div className={`min-w-[212px] ${popoverClassName}`}>\n {menuContent && <div className='menu-content'>{menuContent(data)}</div>}\n </div>\n )}\n />\n );\n};\n"],"names":["React__default","Popover","Icon","menuClasses","base","active","hover","HamburgerMenu","className","automationId","popoverContentAutomationId","menuContent","popoverClassName","React","createElement","position","renderPopoverSrcElement","displayPopover","name","stroke","renderPopoverContents","data"],"mappings":"AAYA,OAAAA,OAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,QAAAC,SAAA;AAAA,MAAMC,IAAc;AAAA,EAClBC,MAAM;AAAA,EACNC,QAAQ;AAAA,EACRC,OAAO;AACT,GAEaC,IAAwCA,CAAC;AAAA,EACpDC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe;AAAA,EACfC,4BAAAA,IAA6B;AAAA,EAC7BC,aAAAA;AAAAA,EACAC,kBAAAA,IAAmB;AACrB,MAGIC,gBAAAA,EAAAC,cAACb,GAAO;AAAA,EACNO,WAAAA;AAAAA,EACAO,UAAS;AAAA,EACTN,cAAAA;AAAAA,EACAC,4BAAAA;AAAAA,EACAM,yBAAyBA,CAAC;AAAA,IAAEC,gBAAAA;AAAAA,EAAAA,MAC1BJ,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAW,GAAGL,EAAYC,IAAI,IAAIa,IAAiBd,EAAYE,SAAS,EAAE,IAAIF,EAAYG,KAAK;AAAA,EAAA,GAClGO,gBAAAA,EAAAC,cAACZ,GAAI;AAAA,IAACgB,MAAK;AAAA,IAAYC,QAAQ;AAAA,EAAA,CAAuB,CACnD;AAAA,EAEPC,uBAAwBC,CAAAA,MACtBR,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAW,iBAAiBI,CAAgB;AAAA,EAAA,GAC9CD,KAAeE,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAU;AAAA,EAAA,GAAgBG,EAAYU,CAAI,CAAO,CACnE;AAAA,CAER;"}
1
+ {"version":3,"file":"index19.js","sources":["../src/components/Header/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nexport interface HeaderProps {\n leftContainer?: React.ReactNode;\n centerContainer?: React.ReactNode;\n rightContainer?: React.ReactNode;\n type?: string;\n className?: string;\n id?: string;\n}\n\nexport const Header: FC<HeaderProps> = ({\n leftContainer,\n centerContainer,\n rightContainer,\n className,\n id,\n ...props\n}) => {\n return (\n <header\n id={id}\n tabIndex={-1}\n className={`se-design-header ${className} sticky top-0 h-[48px] w-full z-[1010] bg-[var(--color-blue-600)] flex justify-between items-center focus:outline-none [&_*:focus-visible]:!outline-[var(--color-blue-300)] ${\n props?.type === 'fixed' ? 'fixed left-0 right-0 top-0' : ''\n }`}\n >\n {leftContainer && <>{leftContainer}</>}\n {centerContainer && <>{centerContainer}</>}\n {rightContainer && <>{rightContainer}</>}\n </header>\n );\n};\n"],"names":["Header","leftContainer","centerContainer","rightContainer","className","id","props","React","createElement","tabIndex","type","Fragment"],"mappings":";AAWO,MAAMA,IAA0BA,CAAC;AAAA,EACtCC,eAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACA,GAAGC;AACL,MAEIC,gBAAAA,EAAAC,cAAA,UAAA;AAAA,EACEH,IAAAA;AAAAA,EACAI,UAAU;AAAA,EACVL,WAAW,oBAAoBA,CAAS,+KACtCE,GAAOI,SAAS,UAAU,+BAA+B,EAAE;AAAA,GAG5DT,KAAiBM,gBAAAA,EAAAC,cAAAD,EAAAI,UAAA,MAAGV,CAAgB,GACpCC,KAAmBK,gBAAAA,EAAAC,cAAAD,EAAAI,UAAA,MAAGT,CAAkB,GACxCC,KAAkBI,gBAAAA,EAAAC,cAAAD,EAAAI,UAAA,MAAGR,CAAiB,CACjC;"}
@@ -0,0 +1,87 @@
1
+ import { useRef as u, useCallback as f, useEffect as P } from "react";
2
+ import { useComboboxNavigation as y } from "./index225.js";
3
+ import { useDismissOnFocusOut as R } from "./index188.js";
4
+ function M({
5
+ items: l,
6
+ isOpen: t,
7
+ onOpenChange: s,
8
+ onSelect: g,
9
+ listboxId: n,
10
+ loop: h = !0,
11
+ disabled: x = !1,
12
+ optionSelector: b = '[role="option"]',
13
+ hasItems: c
14
+ }) {
15
+ const d = u(null), r = u(!1), i = u(!1), m = c !== void 0 ? c : l.length > 0, a = f(() => {
16
+ s(!1);
17
+ }, [s]);
18
+ P(() => {
19
+ t || (r.current = !1);
20
+ }, [t]);
21
+ const e = y({
22
+ items: l,
23
+ isOpen: t,
24
+ onSelect: g,
25
+ onClose: a,
26
+ onOpen: () => s(!0),
27
+ loop: h,
28
+ disabled: x,
29
+ listboxRef: d,
30
+ optionSelector: b
31
+ }), p = R({
32
+ onFocusOut: a,
33
+ onEscape: a,
34
+ disabled: !t
35
+ }), v = {
36
+ ...p,
37
+ onBlurCapture: (o) => {
38
+ if (!r.current) {
39
+ if (i.current) {
40
+ i.current = !1;
41
+ return;
42
+ }
43
+ p.onBlurCapture(o);
44
+ }
45
+ }
46
+ }, I = {
47
+ role: "combobox",
48
+ "aria-expanded": t && m,
49
+ "aria-haspopup": "listbox",
50
+ "aria-controls": t ? n : void 0,
51
+ "aria-autocomplete": "list",
52
+ "aria-activedescendant": e.highlightedIndex >= 0 ? e.getOptionId(n, e.highlightedIndex) : void 0,
53
+ onKeyDown: (o) => {
54
+ o.key === "Tab" && (i.current = !0), e.handleKeyDown(o);
55
+ }
56
+ }, w = {
57
+ id: n,
58
+ role: "listbox",
59
+ ref: d,
60
+ onMouseDownCapture: (o) => {
61
+ r.current = !0;
62
+ },
63
+ onMouseUpCapture: (o) => {
64
+ r.current = !1;
65
+ },
66
+ onMouseLeave: (o) => {
67
+ r.current = !1;
68
+ }
69
+ }, C = f((o, D = !1) => ({
70
+ id: e.getOptionId(n, o),
71
+ role: "option",
72
+ "aria-selected": D
73
+ }), [e.getOptionId, n]);
74
+ return {
75
+ containerProps: v,
76
+ inputProps: I,
77
+ listboxProps: w,
78
+ getOptionProps: C,
79
+ highlightedIndex: e.highlightedIndex,
80
+ setHighlightedIndex: e.setHighlightedIndex,
81
+ getOptionId: e.getOptionId
82
+ };
83
+ }
84
+ export {
85
+ M as useCombobox
86
+ };
87
+ //# sourceMappingURL=index191.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index191.js","sources":["../src/utils/a11y/useCombobox.ts"],"sourcesContent":["import { useRef, useCallback, useEffect } from 'react';\nimport type { RefObject } from 'react';\nimport { useComboboxNavigation } from './useComboboxNavigation';\nimport { useDismissOnFocusOut } from './useDismissOnFocusOut';\nimport type { UseDismissOnFocusOutReturn } from './useDismissOnFocusOut';\n\nexport interface UseComboboxOptions<T = any> {\n /**\n * Array of items to navigate through\n */\n items: T[];\n \n /**\n * Whether the dropdown is currently open\n */\n isOpen: boolean;\n \n /**\n * Callback to change the open state\n */\n onOpenChange: (open: boolean) => void;\n \n /**\n * Callback when an item is selected (Enter key)\n */\n onSelect: (item: T, index: number) => void;\n \n /**\n * Stable ID for the listbox element\n */\n listboxId: string;\n \n /**\n * Whether to wrap around at the ends of the list.\n * Default: true\n */\n loop?: boolean;\n \n /**\n * Whether keyboard navigation is disabled\n * (e.g., for custom rendered content)\n */\n disabled?: boolean;\n \n /**\n * CSS selector for option elements (default: '[role=\"option\"]')\n */\n optionSelector?: string;\n \n /**\n * Whether the listbox has any items to show\n * Used for aria-expanded logic\n * Default: items.length > 0\n */\n hasItems?: boolean;\n}\n\nexport interface UseComboboxReturn {\n /**\n * Props to spread on the container element (handles dismiss on focus out)\n */\n containerProps: UseDismissOnFocusOutReturn<HTMLElement>;\n \n /**\n * Props to spread on the combobox input element\n */\n inputProps: {\n role: 'combobox';\n 'aria-expanded': boolean;\n 'aria-haspopup': 'listbox';\n 'aria-controls': string | undefined;\n 'aria-autocomplete': 'list';\n 'aria-activedescendant': string | undefined;\n onKeyDown: (e: React.KeyboardEvent) => void;\n };\n \n /**\n * Props to spread on the listbox element\n */\n listboxProps: {\n id: string;\n role: 'listbox';\n ref: RefObject<HTMLDivElement | null>;\n onMouseDownCapture: (e: React.MouseEvent) => void;\n onMouseUpCapture: (e: React.MouseEvent) => void;\n onMouseLeave: (e: React.MouseEvent) => void;\n };\n \n /**\n * Generate props for an option element at the given index\n * @param selected - Whether this option is the currently selected/chosen value (not keyboard highlight)\n */\n getOptionProps: (index: number, selected?: boolean) => {\n id: string;\n role: 'option';\n 'aria-selected': boolean;\n };\n \n /**\n * Currently highlighted index (-1 if none)\n */\n highlightedIndex: number;\n \n /**\n * Set the highlighted index manually\n */\n setHighlightedIndex: (index: number | ((prev: number) => number)) => void;\n \n /**\n * Generate stable ID for an option\n */\n getOptionId: (listboxId: string, index: number) => string;\n}\n\n/**\n * Comprehensive hook for implementing WAI-ARIA combobox pattern.\n * \n * Combines:\n * - Keyboard navigation (Arrow Up/Down, Enter, Escape, Tab)\n * - Focus management and dismissal\n * - ARIA attributes for accessibility\n * - Auto-scroll highlighted item into view\n * \n * This hook provides a complete, batteries-included solution for building\n * accessible combobox components (autocomplete, select, search with suggestions, etc.)\n * \n * @example Basic usage\n * ```tsx\n * const MyCombobox = () => {\n * const [isOpen, setIsOpen] = useState(false);\n * const [items, setItems] = useState(['Apple', 'Banana', 'Cherry']);\n * \n * const {\n * containerProps,\n * inputProps,\n * listboxProps,\n * getOptionProps,\n * highlightedIndex\n * } = useCombobox({\n * items,\n * isOpen,\n * onOpenChange: setIsOpen,\n * onSelect: (item) => console.log('Selected:', item),\n * listboxId: 'my-listbox'\n * });\n * \n * return (\n * <div {...containerProps}>\n * <input {...inputProps} />\n * {isOpen && (\n * <div {...listboxProps}>\n * {items.map((item, i) => (\n * <div key={i} {...getOptionProps(i)}>\n * {item}\n * </div>\n * ))}\n * </div>\n * )}\n * </div>\n * );\n * };\n * ```\n * \n * @example With custom ARIA labels and handlers\n * ```tsx\n * const MySearchBox = () => {\n * const [query, setQuery] = useState('');\n * const [suggestions, setSuggestions] = useState([]);\n * const [isOpen, setIsOpen] = useState(false);\n * \n * const { containerProps, inputProps, listboxProps, getOptionProps } = useCombobox({\n * items: suggestions,\n * isOpen,\n * onOpenChange: setIsOpen,\n * onSelect: (suggestion) => {\n * setQuery(suggestion);\n * setIsOpen(false);\n * },\n * listboxId: 'search-suggestions'\n * });\n * \n * return (\n * <div {...containerProps}>\n * <input\n * {...inputProps}\n * value={query}\n * onChange={(e) => setQuery(e.target.value)}\n * aria-label=\"Search\"\n * />\n * {isOpen && suggestions.length > 0 && (\n * <div {...listboxProps} aria-label=\"Search suggestions\">\n * {suggestions.map((suggestion, i) => (\n * <div\n * key={i}\n * {...getOptionProps(i)}\n * onClick={() => {\n * setQuery(suggestion);\n * setIsOpen(false);\n * }}\n * >\n * {suggestion}\n * </div>\n * ))}\n * </div>\n * )}\n * </div>\n * );\n * };\n * ```\n */\nexport function useCombobox<T = any>({\n items,\n isOpen,\n onOpenChange,\n onSelect,\n listboxId,\n loop = true,\n disabled = false,\n optionSelector = '[role=\"option\"]',\n hasItems\n}: UseComboboxOptions<T>): UseComboboxReturn {\n const listboxRef = useRef<HTMLDivElement | null>(null);\n const pointerDownInListboxRef = useRef(false);\n const tabKeyPressedRef = useRef(false);\n \n // Determine if we should show as expanded\n const shouldShowExpanded = hasItems !== undefined ? hasItems : items.length > 0;\n \n // Close dropdown callback\n const closeDropdown = useCallback(() => {\n onOpenChange(false);\n }, [onOpenChange]);\n\n // Ensure pointer state doesn't get stuck when listbox unmounts\n useEffect(() => {\n if (!isOpen) {\n pointerDownInListboxRef.current = false;\n }\n }, [isOpen]);\n \n // Keyboard navigation with aria-activedescendant\n const navigation = useComboboxNavigation<T>({\n items,\n isOpen,\n onSelect,\n onClose: closeDropdown,\n onOpen: () => onOpenChange(true),\n loop,\n disabled,\n listboxRef,\n optionSelector\n });\n \n // Focus out / Escape dismissal\n const dismissHandlers = useDismissOnFocusOut({\n onFocusOut: closeDropdown,\n onEscape: closeDropdown,\n disabled: !isOpen\n });\n\n const containerProps: UseDismissOnFocusOutReturn<HTMLElement> = {\n ...dismissHandlers,\n onBlurCapture: (e) => {\n // Clicking inside a listbox option can blur the input (relatedTarget is null),\n // which would dismiss before the click handler runs. Prevent that.\n if (pointerDownInListboxRef.current) return;\n \n // Tab key pressed - let Tab handler close dropdown, skip blur detection\n if (tabKeyPressedRef.current) {\n tabKeyPressedRef.current = false;\n return;\n }\n \n dismissHandlers.onBlurCapture(e);\n }\n };\n \n // Build input props\n const inputProps = {\n role: 'combobox' as const,\n 'aria-expanded': isOpen && shouldShowExpanded,\n 'aria-haspopup': 'listbox' as const,\n 'aria-controls': isOpen ? listboxId : undefined,\n 'aria-autocomplete': 'list' as const,\n 'aria-activedescendant': \n navigation.highlightedIndex >= 0 \n ? navigation.getOptionId(listboxId, navigation.highlightedIndex) \n : undefined,\n onKeyDown: (e: React.KeyboardEvent) => {\n // Set flag when Tab is pressed (before blur fires)\n if (e.key === 'Tab') {\n tabKeyPressedRef.current = true;\n }\n navigation.handleKeyDown(e);\n }\n };\n \n // Build listbox props\n const listboxProps = {\n id: listboxId,\n role: 'listbox' as const,\n ref: listboxRef,\n onMouseDownCapture: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = true;\n },\n onMouseUpCapture: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = false;\n },\n onMouseLeave: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = false;\n }\n };\n \n // Option props generator\n const getOptionProps = useCallback(\n (index: number, selected: boolean = false) => ({\n id: navigation.getOptionId(listboxId, index),\n role: 'option' as const,\n 'aria-selected': selected\n }),\n [navigation.getOptionId, listboxId]\n );\n \n return {\n containerProps,\n inputProps,\n listboxProps,\n getOptionProps,\n highlightedIndex: navigation.highlightedIndex,\n setHighlightedIndex: navigation.setHighlightedIndex,\n getOptionId: navigation.getOptionId\n };\n}\n"],"names":["useRef","useCallback","useEffect","useComboboxNavigation","useDismissOnFocusOut","useCombobox","items","isOpen","onOpenChange","onSelect","listboxId","loop","disabled","optionSelector","hasItems","listboxRef","pointerDownInListboxRef","tabKeyPressedRef","shouldShowExpanded","undefined","length","closeDropdown","current","navigation","onClose","onOpen","dismissHandlers","onFocusOut","onEscape","containerProps","onBlurCapture","e","inputProps","role","highlightedIndex","getOptionId","onKeyDown","key","handleKeyDown","listboxProps","id","ref","onMouseDownCapture","_e","onMouseUpCapture","onMouseLeave","getOptionProps","index","selected","setHighlightedIndex"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { useEffect as d } from "react";
2
+ function p({
3
+ containerRef: r,
4
+ onDismiss: e,
5
+ enabled: n = !0,
6
+ preventDefault: u = !0,
7
+ stopPropagation: c = !0
8
+ }) {
9
+ d(() => {
10
+ if (!n || !e) return;
11
+ const o = r.current;
12
+ if (!o) return;
13
+ const a = (t) => {
14
+ t.key === "Escape" && o.contains(document.activeElement) && (u && t.preventDefault(), c && t.stopPropagation(), e());
15
+ };
16
+ return document.addEventListener("keydown", a, {
17
+ capture: !0
18
+ }), () => document.removeEventListener("keydown", a, {
19
+ capture: !0
20
+ });
21
+ }, [n, e, r, u, c]);
22
+ }
23
+ export {
24
+ p as useDismissOnEscape
25
+ };
26
+ //# sourceMappingURL=index193.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index193.js","sources":["../src/utils/a11y/useDismissOnEscape.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { RefObject } from 'react';\n\nexport interface UseDismissOnEscapeOptions<T extends HTMLElement = HTMLElement> {\n /**\n * Container element ref to check if focus is within.\n * Escape will only trigger if focus is within this container.\n */\n containerRef: RefObject<T | null>;\n /**\n * Callback when Escape key is pressed and focus is within container.\n */\n onDismiss?: () => void;\n /**\n * Whether the Escape handler is active.\n * Default: true\n */\n enabled?: boolean;\n /**\n * Whether to call preventDefault() when handling Escape.\n * Default: true\n */\n preventDefault?: boolean;\n /**\n * Whether to call stopPropagation() when handling Escape.\n * Default: true\n */\n stopPropagation?: boolean;\n}\n\n/**\n * Hook to handle Escape key dismissal when focus is within a container.\n * \n * This is a UX pattern: if user is interacting with an overlay/sidebar\n * (indicated by focus being within it), Escape should close it.\n * \n * @example\n * ```tsx\n * const MySidebar = ({ isOpen, onClose }) => {\n * const containerRef = useRef<HTMLDivElement>(null);\n * \n * useDismissOnEscape({\n * containerRef,\n * onDismiss: onClose,\n * enabled: isOpen\n * });\n * \n * return <div ref={containerRef}>...</div>;\n * };\n * ```\n */\nexport function useDismissOnEscape<T extends HTMLElement = HTMLElement>({\n containerRef,\n onDismiss,\n enabled = true,\n preventDefault = true,\n stopPropagation = true\n}: UseDismissOnEscapeOptions<T>): void {\n useEffect(() => {\n if (!enabled || !onDismiss) return;\n \n const container = containerRef.current;\n if (!container) return;\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && container.contains(document.activeElement)) {\n preventDefault && e.preventDefault();\n stopPropagation && e.stopPropagation();\n onDismiss();\n }\n };\n\n document.addEventListener('keydown', handleEscape, { capture: true });\n return () => document.removeEventListener('keydown', handleEscape, { capture: true });\n }, [enabled, onDismiss, containerRef, preventDefault, stopPropagation]);\n}\n"],"names":["useEffect","useDismissOnEscape","containerRef","onDismiss","enabled","preventDefault","stopPropagation","container","current","handleEscape","e","key","contains","document","activeElement","addEventListener","capture","removeEventListener"],"mappings":"AAmDO,SAAA,aAAAA,SAAA;AAAA,SAASC,EAAwD;AAAA,EACtEC,cAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,SAAAA,IAAU;AAAA,EACVC,gBAAAA,IAAiB;AAAA,EACjBC,iBAAAA,IAAkB;AACU,GAAS;AACrCN,EAAAA,EAAU,MAAM;AACd,QAAI,CAACI,KAAW,CAACD,EAAW;AAE5B,UAAMI,IAAYL,EAAaM;AAC/B,QAAI,CAACD,EAAW;AAEhB,UAAME,IAAeA,CAACC,MAAqB;AACzC,MAAIA,EAAEC,QAAQ,YAAYJ,EAAUK,SAASC,SAASC,aAAa,MACjET,KAAkBK,EAAEL,eAAAA,GACpBC,KAAmBI,EAAEJ,gBAAAA,GACrBH,EAAAA;AAAAA,IAEJ;AAEAU,oBAASE,iBAAiB,WAAWN,GAAc;AAAA,MAAEO,SAAS;AAAA,IAAA,CAAM,GAC7D,MAAMH,SAASI,oBAAoB,WAAWR,GAAc;AAAA,MAAEO,SAAS;AAAA,IAAA,CAAM;AAAA,EACtF,GAAG,CAACZ,GAASD,GAAWD,GAAcG,GAAgBC,CAAe,CAAC;AACxE;"}
package/dist/index20.js CHANGED
@@ -1,60 +1,36 @@
1
- import t, { useRef as v } from "react";
2
- import { TableContentLoader as E } from "./index25.js";
3
- function n() {
4
- return n = Object.assign ? Object.assign.bind() : function(a) {
5
- for (var l = 1; l < arguments.length; l++) {
6
- var e = arguments[l];
7
- for (var r in e) ({}).hasOwnProperty.call(e, r) && (a[r] = e[r]);
8
- }
9
- return a;
10
- }, n.apply(null, arguments);
11
- }
12
- const O = ({
1
+ import e from "react";
2
+ import { Popover as l } from "./index18.js";
3
+ import { Icon as s } from "./index5.js";
4
+ const t = {
5
+ base: "se-design-hamburger-menu rounded-[6px] transition-all duration-300 p-[3px] flex items-center",
6
+ active: "bg-[var(--color-blue-450)]",
7
+ hover: "hover:bg-[var(--color-blue-450)]"
8
+ }, u = ({
13
9
  className: a = "",
14
- automationId: l = "",
15
- loading: e,
16
- headerColSpan: r = [],
17
- headerData: o,
18
- tableData: s,
19
- renderTableContentLoader: h,
20
- getTableHeaders: c,
21
- getTableBody: u,
22
- getTableFooter: b,
23
- onSortUiUpdate: i,
24
- onRowClick: m,
25
- tableId: d,
26
- ariaDescribedBy: f,
27
- ...g
28
- }) => {
29
- const p = v(null);
30
- return /* @__PURE__ */ t.createElement("div", n({
31
- className: "se-design-table-layout-wrapper" + (a.length > 0 ? ` ${a}` : "") + (e ? " table-data-loading" : "")
32
- }, g), /* @__PURE__ */ t.createElement("table", {
33
- className: "se-design-table w-full bg-[var(--color-white)] border-collapse table-fixed",
34
- ref: p,
35
- "data-automation-id": l,
36
- id: d,
37
- "aria-describedby": f
38
- }, /* @__PURE__ */ t.createElement("thead", null, /* @__PURE__ */ t.createElement("tr", null, c({
39
- headerData: o,
40
- sortData: {},
41
- onSortUiUpdate: i,
42
- loading: e
43
- }))), /* @__PURE__ */ t.createElement("tbody", null, e ? /* @__PURE__ */ t.createElement(E, {
44
- noOfColumns: o?.length,
45
- colSpan: r
46
- }) : u({
47
- tableData: s,
48
- onRowClick: m,
49
- loading: e
50
- }))), /* @__PURE__ */ t.createElement("div", {
51
- className: "se-design-table-footer w-full bg-[var(--color-white)]"
52
- }, b({
53
- tableData: s,
54
- loading: e
55
- })));
56
- };
10
+ automationId: n = "",
11
+ popoverContentAutomationId: m = "",
12
+ menuContent: o,
13
+ popoverClassName: c = ""
14
+ }) => /* @__PURE__ */ e.createElement(l, {
15
+ className: a,
16
+ position: "bottom-left",
17
+ automationId: n,
18
+ popoverContentAutomationId: m,
19
+ renderPopoverSrcElement: ({
20
+ displayPopover: r
21
+ }) => /* @__PURE__ */ e.createElement("div", {
22
+ className: `${t.base} ${r ? t.active : ""} ${t.hover}`
23
+ }, /* @__PURE__ */ e.createElement(s, {
24
+ name: "hamburger",
25
+ stroke: "var(--color-white)"
26
+ })),
27
+ renderPopoverContents: (r) => /* @__PURE__ */ e.createElement("div", {
28
+ className: `min-w-[212px] ${c}`
29
+ }, o && /* @__PURE__ */ e.createElement("div", {
30
+ className: "menu-content"
31
+ }, o(r)))
32
+ });
57
33
  export {
58
- O as TableLayout
34
+ u as HamburgerMenu
59
35
  };
60
36
  //# sourceMappingURL=index20.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index20.js","sources":["../src/components/TableLayout/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useRef } from 'react';\nimport { TableContentLoader } from 'components/TableContentLoader';\n\nexport interface TableLayoutProps {\n className?: string;\n automationId?: string;\n loading: boolean;\n headerData: any[];\n tableData: any[];\n headerColSpan?: number[];\n renderTableContentLoader?: (noOfColumns: number) => ReactNode;\n getTableHeaders: (props: { headerData: any[]; sortData: any; onSortUiUpdate: any; loading: boolean }) => ReactNode;\n getTableBody: (props: { tableData: any[]; onRowClick: any; loading: boolean }) => ReactNode;\n getTableFooter: (props: { tableData: any[]; loading: boolean }) => ReactNode;\n onSortUiUpdate: (newSortData: any) => void;\n onRowClick: (rowData: any) => void;\n tableId: string;\n /**\n * ID of element that describes the table (e.g., sort instructions for screen readers)\n */\n ariaDescribedBy?: string;\n}\n\nexport const TableLayout: FC<TableLayoutProps> = ({\n className = '',\n automationId = '',\n loading,\n headerColSpan = [],\n headerData,\n tableData,\n renderTableContentLoader,\n getTableHeaders,\n getTableBody,\n getTableFooter,\n onSortUiUpdate,\n onRowClick,\n tableId,\n ariaDescribedBy,\n ...props\n}) => {\n const tableRef = useRef<HTMLTableElement>(null);\n\n return (\n <div className={'se-design-table-layout-wrapper' + (className.length > 0 ? ` ${className}` : '') + (loading? ' table-data-loading' : '')} {...props}>\n <table\n className={'se-design-table w-full bg-[var(--color-white)] border-collapse table-fixed'}\n ref={tableRef}\n data-automation-id={automationId}\n id={tableId}\n aria-describedby={ariaDescribedBy}\n >\n <thead>\n <tr>{getTableHeaders({ headerData, sortData: {}, onSortUiUpdate, loading })}</tr>\n </thead>\n <tbody>\n {loading ? (\n <TableContentLoader noOfColumns={headerData?.length} colSpan={headerColSpan} />\n ) : (\n getTableBody({ tableData, onRowClick, loading })\n )}\n </tbody>\n </table>\n <div className=\"se-design-table-footer w-full bg-[var(--color-white)]\">\n {getTableFooter({ tableData, loading })}\n </div>\n </div>\n );\n};\n"],"names":["TableLayout","className","automationId","loading","headerColSpan","headerData","tableData","renderTableContentLoader","getTableHeaders","getTableBody","getTableFooter","onSortUiUpdate","onRowClick","tableId","ariaDescribedBy","props","tableRef","useRef","React","createElement","_extends","length","ref","id","sortData","TableContentLoader","noOfColumns","colSpan"],"mappings":";;;;;;;;;;;AAuBO,MAAMA,IAAoCA,CAAC;AAAA,EAChDC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe;AAAA,EACfC,SAAAA;AAAAA,EACAC,eAAAA,IAAgB,CAAA;AAAA,EAChBC,YAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,0BAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAWC,EAAyB,IAAI;AAE9C,SACEC,gBAAAA,EAAAC,cAAA,OAAAC,EAAA;AAAA,IAAKnB,WAAW,oCAAoCA,EAAUoB,SAAS,IAAI,IAAIpB,CAAS,KAAK,OAAOE,IAAS,wBAAwB;AAAA,EAAA,GAASY,CAAK,GACjJG,gBAAAA,EAAAC,cAAA,SAAA;AAAA,IACElB,WAAW;AAAA,IACXqB,KAAKN;AAAAA,IACL,sBAAoBd;AAAAA,IACpBqB,IAAIV;AAAAA,IACJ,oBAAkBC;AAAAA,EAAAA,qBAElBK,cAAA,SAAA,MACED,gBAAAA,EAAAC,cAAA,MAAA,MAAKX,EAAgB;AAAA,IAAEH,YAAAA;AAAAA,IAAYmB,UAAU,CAAA;AAAA,IAAIb,gBAAAA;AAAAA,IAAgBR,SAAAA;AAAAA,EAAAA,CAAS,CAAM,CAC3E,GACPe,gBAAAA,EAAAC,cAAA,SAAA,MACGhB,IACCe,gBAAAA,EAAAC,cAACM,GAAkB;AAAA,IAACC,aAAarB,GAAYgB;AAAAA,IAAQM,SAASvB;AAAAA,EAAAA,CAAgB,IAE9EK,EAAa;AAAA,IAAEH,WAAAA;AAAAA,IAAWM,YAAAA;AAAAA,IAAYT,SAAAA;AAAAA,EAAAA,CAAS,CAE5C,CACF,GACPe,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKlB,WAAU;AAAA,EAAA,GACZS,EAAe;AAAA,IAAEJ,WAAAA;AAAAA,IAAWH,SAAAA;AAAAA,EAAAA,CAAS,CACnC,CACF;AAET;"}
1
+ {"version":3,"file":"index20.js","sources":["../src/components/HamburgerMenu/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nimport { Popover } from 'src/components/Popover';\nimport { Icon } from 'src/components/Icon';\nexport interface HamburgerMenuProps {\n className?: string;\n automationId?: string;\n popoverContentAutomationId?: string;\n menuContent?: (data: any) => React.ReactNode;\n popoverClassName?: string;\n}\n\nconst menuClasses = {\n base: 'se-design-hamburger-menu rounded-[6px] transition-all duration-300 p-[3px] flex items-center',\n active: 'bg-[var(--color-blue-450)]',\n hover: 'hover:bg-[var(--color-blue-450)]'\n};\n\nexport const HamburgerMenu: FC<HamburgerMenuProps> = ({\n className = '',\n automationId = '',\n popoverContentAutomationId = '',\n menuContent,\n popoverClassName = ''\n}) => {\n\n return (\n <Popover\n className={className}\n position='bottom-left'\n automationId={automationId}\n popoverContentAutomationId={popoverContentAutomationId}\n renderPopoverSrcElement={({ displayPopover }) => (\n <div className={`${menuClasses.base} ${displayPopover ? menuClasses.active : ''} ${menuClasses.hover}`}>\n <Icon name='hamburger' stroke={'var(--color-white)'} />\n </div>\n )}\n renderPopoverContents={(data) => (\n <div className={`min-w-[212px] ${popoverClassName}`}>\n {menuContent && <div className='menu-content'>{menuContent(data)}</div>}\n </div>\n )}\n />\n );\n};\n"],"names":["React__default","Popover","Icon","menuClasses","base","active","hover","HamburgerMenu","className","automationId","popoverContentAutomationId","menuContent","popoverClassName","React","createElement","position","renderPopoverSrcElement","displayPopover","name","stroke","renderPopoverContents","data"],"mappings":"AAYA,OAAAA,OAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,QAAAC,SAAA;AAAA,MAAMC,IAAc;AAAA,EAClBC,MAAM;AAAA,EACNC,QAAQ;AAAA,EACRC,OAAO;AACT,GAEaC,IAAwCA,CAAC;AAAA,EACpDC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe;AAAA,EACfC,4BAAAA,IAA6B;AAAA,EAC7BC,aAAAA;AAAAA,EACAC,kBAAAA,IAAmB;AACrB,MAGIC,gBAAAA,EAAAC,cAACb,GAAO;AAAA,EACNO,WAAAA;AAAAA,EACAO,UAAS;AAAA,EACTN,cAAAA;AAAAA,EACAC,4BAAAA;AAAAA,EACAM,yBAAyBA,CAAC;AAAA,IAAEC,gBAAAA;AAAAA,EAAAA,MAC1BJ,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAW,GAAGL,EAAYC,IAAI,IAAIa,IAAiBd,EAAYE,SAAS,EAAE,IAAIF,EAAYG,KAAK;AAAA,EAAA,GAClGO,gBAAAA,EAAAC,cAACZ,GAAI;AAAA,IAACgB,MAAK;AAAA,IAAYC,QAAQ;AAAA,EAAA,CAAuB,CACnD;AAAA,EAEPC,uBAAwBC,CAAAA,MACtBR,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAW,iBAAiBI,CAAgB;AAAA,EAAA,GAC9CD,KAAeE,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAU;AAAA,EAAA,GAAgBG,EAAYU,CAAI,CAAO,CACnE;AAAA,CAER;"}
@@ -12,4 +12,4 @@ function n(o, u) {
12
12
  export {
13
13
  n as debounce
14
14
  };
15
- //# sourceMappingURL=index197.js.map
15
+ //# sourceMappingURL=index201.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index197.js","sources":["../src/utils/debounce.ts"],"sourcesContent":["export function debounce<T extends (...args: any[]) => void>(func: T, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null;\n const debounced = (...args: Parameters<T>) => {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => {\n func(...args);\n }, wait);\n };\n debounced.cancel = () => {\n if (timeout) clearTimeout(timeout);\n timeout = null;\n };\n return debounced as T & { cancel: () => void };\n }"],"names":["debounce","func","wait","timeout","debounced","args","setTimeout","cancel"],"mappings":"AAAO,SAASA,EAA6CC,GAASC,GAAc;AAChF,MAAIC;AACJ,QAAMC,IAAYA,IAAIC,MAAwB;AAC5C,IAAIF,kBAAsBA,CAAO,GACjCA,IAAUG,WAAW,MAAM;AACzBL,MAAAA,EAAK,GAAGI,CAAI;AAAA,IACd,GAAGH,CAAI;AAAA,EACT;AACAE,SAAAA,EAAUG,SAAS,MAAM;AACvB,IAAIJ,kBAAsBA,CAAO,GACjCA,IAAU;AAAA,EACZ,GACOC;AACT;"}
1
+ {"version":3,"file":"index201.js","sources":["../src/utils/debounce.ts"],"sourcesContent":["export function debounce<T extends (...args: any[]) => void>(func: T, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null;\n const debounced = (...args: Parameters<T>) => {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => {\n func(...args);\n }, wait);\n };\n debounced.cancel = () => {\n if (timeout) clearTimeout(timeout);\n timeout = null;\n };\n return debounced as T & { cancel: () => void };\n }"],"names":["debounce","func","wait","timeout","debounced","args","setTimeout","cancel"],"mappings":"AAAO,SAASA,EAA6CC,GAASC,GAAc;AAChF,MAAIC;AACJ,QAAMC,IAAYA,IAAIC,MAAwB;AAC5C,IAAIF,kBAAsBA,CAAO,GACjCA,IAAUG,WAAW,MAAM;AACzBL,MAAAA,EAAK,GAAGI,CAAI;AAAA,IACd,GAAGH,CAAI;AAAA,EACT;AACAE,SAAAA,EAAUG,SAAS,MAAM;AACvB,IAAIJ,kBAAsBA,CAAO,GACjCA,IAAU;AAAA,EACZ,GACOC;AACT;"}
@@ -1233,4 +1233,4 @@ const e = [
1233
1233
  export {
1234
1234
  e as default
1235
1235
  };
1236
- //# sourceMappingURL=index205.js.map
1236
+ //# sourceMappingURL=index209.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index205.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index209.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index21.js CHANGED
@@ -1,82 +1,60 @@
1
- import i, { useState as D, useEffect as O } from "react";
2
- import { useStableId as S } from "./index181.js";
3
- import { getA11yNameAttributes as _ } from "./index67.js";
4
- import { mergeIds as $ } from "./index182.js";
5
- /* empty css */
6
- function b() {
7
- return b = Object.assign ? Object.assign.bind() : function(s) {
8
- for (var a = 1; a < arguments.length; a++) {
9
- var n = arguments[a];
10
- for (var e in n) ({}).hasOwnProperty.call(n, e) && (s[e] = n[e]);
1
+ import t, { useRef as v } from "react";
2
+ import { TableContentLoader as E } from "./index26.js";
3
+ function n() {
4
+ return n = Object.assign ? Object.assign.bind() : function(a) {
5
+ for (var l = 1; l < arguments.length; l++) {
6
+ var e = arguments[l];
7
+ for (var r in e) ({}).hasOwnProperty.call(e, r) && (a[r] = e[r]);
11
8
  }
12
- return s;
13
- }, b.apply(null, arguments);
9
+ return a;
10
+ }, n.apply(null, arguments);
14
11
  }
15
- const F = ({
16
- className: s = "",
17
- automationId: a = "",
18
- defaultChecked: n = !1,
19
- disabled: e = !1,
20
- onChange: d,
21
- checkMarkType: r = "",
22
- label: h = "",
23
- disabledLabel: f = "",
24
- containerAutomationId: g = "",
25
- ariaLabel: p,
26
- ariaLabelledBy: E,
27
- ariaDescribedBy: v
12
+ const O = ({
13
+ className: a = "",
14
+ automationId: l = "",
15
+ loading: e,
16
+ headerColSpan: r = [],
17
+ headerData: o,
18
+ tableData: s,
19
+ renderTableContentLoader: h,
20
+ getTableHeaders: c,
21
+ getTableBody: u,
22
+ getTableFooter: b,
23
+ onSortUiUpdate: i,
24
+ onRowClick: m,
25
+ tableId: d,
26
+ ariaDescribedBy: f,
27
+ ...g
28
28
  }) => {
29
- const [t, u] = D(n);
30
- O(() => {
31
- u(n);
32
- }, [n]);
33
- const y = (c) => {
34
- e || (u((o) => !o), d?.(!t, c));
35
- }, N = (c) => {
36
- if (!e && (c.key === "Enter" || c.key === " ")) {
37
- c.preventDefault(), c.stopPropagation();
38
- const o = !t;
39
- u(o);
40
- const m = c.currentTarget.closest("label")?.querySelector("input");
41
- m && d?.(o, {
42
- target: m,
43
- currentTarget: m
44
- });
45
- }
46
- }, C = () => e ? t && r === "tick" ? "disabled-tick" : t && r === "minus-checkbox" ? "disabled-minus-checkbox" : t && !r ? "disabled-tick" : "disabled-default" : r === "minus-checkbox" && t ? "minus-checkbox" : t ? "checked" : "unchecked", I = () => e ? "checkbox-label-disabled" : "checkbox-label", x = () => e && f ? f : h, l = S(void 0, "checkbox-input"), k = h ? `${l}-label` : void 0, w = _({
47
- ariaLabelledBy: $(k, E),
48
- ariaLabel: p,
49
- ariaDescribedBy: v
50
- }), A = () => r === "minus-checkbox" && t ? "mixed" : t ? "true" : "false";
51
- return /* @__PURE__ */ i.createElement("div", {
52
- className: "se-design-checkbox-ctn"
53
- }, /* @__PURE__ */ i.createElement("label", b({
54
- role: "checkbox",
55
- htmlFor: l,
56
- className: `se-design-checkbox ${s} ${C()}`,
57
- "data-automation-id": g || "checkbox-container",
58
- tabIndex: e ? -1 : 0,
59
- "aria-checked": A(),
60
- "aria-disabled": e ? "true" : "false"
61
- }, w, {
62
- onKeyDown: N
63
- }), /* @__PURE__ */ i.createElement("input", {
64
- id: l,
65
- type: "checkbox",
66
- checked: t,
67
- onChange: y,
68
- disabled: e,
69
- "aria-hidden": "true"
70
- }), /* @__PURE__ */ i.createElement("span", {
71
- className: "checkbox-item",
72
- "data-automation-id": a
73
- }), x()?.length > 0 && /* @__PURE__ */ i.createElement("span", {
74
- id: k,
75
- className: I(),
76
- "data-automation-id": "checkbox-label"
77
- }, x())));
29
+ const p = v(null);
30
+ return /* @__PURE__ */ t.createElement("div", n({
31
+ className: "se-design-table-layout-wrapper" + (a.length > 0 ? ` ${a}` : "") + (e ? " table-data-loading" : "")
32
+ }, g), /* @__PURE__ */ t.createElement("table", {
33
+ className: "se-design-table w-full bg-[var(--color-white)] border-collapse table-fixed",
34
+ ref: p,
35
+ "data-automation-id": l,
36
+ id: d,
37
+ "aria-describedby": f
38
+ }, /* @__PURE__ */ t.createElement("thead", null, /* @__PURE__ */ t.createElement("tr", null, c({
39
+ headerData: o,
40
+ sortData: {},
41
+ onSortUiUpdate: i,
42
+ loading: e
43
+ }))), /* @__PURE__ */ t.createElement("tbody", null, e ? /* @__PURE__ */ t.createElement(E, {
44
+ noOfColumns: o?.length,
45
+ colSpan: r
46
+ }) : u({
47
+ tableData: s,
48
+ onRowClick: m,
49
+ loading: e
50
+ }))), /* @__PURE__ */ t.createElement("div", {
51
+ className: "se-design-table-footer w-full bg-[var(--color-white)]"
52
+ }, b({
53
+ tableData: s,
54
+ loading: e
55
+ })));
78
56
  };
79
57
  export {
80
- F as Checkbox
58
+ O as TableLayout
81
59
  };
82
60
  //# sourceMappingURL=index21.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index21.js","sources":["../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { FC, useState, useEffect } from 'react';\nimport { useStableId } from '../../utils/useStableId';\nimport { getA11yNameAttributes } from '../../utils/a11y';\nimport { mergeIds } from '../../utils/mergeIds';\nimport './style.scss';\n\nexport interface CheckboxProps {\n className?: string;\n automationId?: string;\n defaultChecked?: boolean;\n onChange?: (checked: boolean, e: React.ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n checkMarkType?: 'tick' | 'minus-checkbox' | '';\n label?: string;\n disabledLabel?: string;\n containerAutomationId?: string;\n /**\n * Explicit accessible name for the checkbox.\n * Used as fallback when ariaLabelledBy is not provided and no internal label exists.\n */\n ariaLabel?: string;\n /**\n * ID(s) of element(s) that label this checkbox (for screen reader association).\n * Typically used when checkbox is part of a larger labelled context.\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) that describe this checkbox (provides additional context).\n * Often used for help text or instructions.\n */\n ariaDescribedBy?: string;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({\n className = '',\n automationId = '',\n defaultChecked = false,\n disabled = false,\n onChange,\n checkMarkType = '',\n label = '',\n disabledLabel = '',\n containerAutomationId = '',\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy\n}) => {\n const [isChecked, setIsChecked] = useState(defaultChecked);\n\n useEffect(() => {\n setIsChecked(defaultChecked);\n }, [defaultChecked]);\n\n const handleClick = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n setIsChecked((prev) => (checkMarkType === 'minus-checkbox' ? !prev : !prev));\n onChange?.(!isChecked, e);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLLabelElement | HTMLSpanElement>) => {\n if (disabled) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n const newChecked = !isChecked;\n setIsChecked(newChecked);\n \n // Create a proper synthetic event for the onChange callback\n const inputElement = e.currentTarget.closest('label')?.querySelector('input');\n if (inputElement) {\n const syntheticEvent = {\n target: inputElement,\n currentTarget: inputElement,\n } as React.ChangeEvent<HTMLInputElement>;\n onChange?.(newChecked, syntheticEvent);\n }\n }\n };\n\n const getCheckBoxClassName = () => {\n // Handle disabled states with proper checked status\n if (disabled) {\n if (isChecked && checkMarkType === 'tick') return 'disabled-tick';\n if (isChecked && checkMarkType === 'minus-checkbox') return 'disabled-minus-checkbox';\n if (isChecked && !checkMarkType) return 'disabled-tick'; // Default to tick for checked disabled\n return 'disabled-default'; // Unchecked disabled\n }\n\n // Handle enabled states\n if (checkMarkType === 'minus-checkbox' && isChecked) return 'minus-checkbox';\n return isChecked ? 'checked' : 'unchecked';\n };\n\n const getLabelClassName = () => {\n return disabled ? 'checkbox-label-disabled' : 'checkbox-label';\n };\n\n const getLabelText = () => {\n if (disabled && disabledLabel) {\n return disabledLabel;\n }\n return label;\n };\n \n // Generate stable IDs (persists across renders)\n const inputId = useStableId(undefined, 'checkbox-input');\n const labelId = label ? `${inputId}-label` : undefined;\n\n const a11yNameAttributes = getA11yNameAttributes({\n ariaLabelledBy: mergeIds(labelId, ariaLabelledBy),\n ariaLabel,\n ariaDescribedBy\n });\n\n // Determine aria-checked value: \"mixed\" for indeterminate, \"true\" for checked, \"false\" for unchecked\n const getAriaChecked = () => {\n if (checkMarkType === 'minus-checkbox' && isChecked) {\n return 'mixed'; // Indeterminate/half-checked state\n }\n return isChecked ? 'true' : 'false';\n };\n\n return (\n <div className=\"se-design-checkbox-ctn\">\n <label\n role=\"checkbox\"\n htmlFor={inputId}\n className={`se-design-checkbox ${className} ${getCheckBoxClassName()}`}\n data-automation-id={containerAutomationId || 'checkbox-container'}\n tabIndex={disabled ? -1 : 0}\n aria-checked={getAriaChecked()}\n aria-disabled={disabled ? 'true' : 'false'}\n {...a11yNameAttributes}\n onKeyDown={handleKeyDown}\n >\n <input\n id={inputId}\n type=\"checkbox\"\n checked={isChecked}\n onChange={handleClick}\n disabled={disabled}\n aria-hidden=\"true\"\n />\n <span className=\"checkbox-item\" data-automation-id={automationId}></span>\n {getLabelText()?.length > 0 && (\n <span id={labelId} className={getLabelClassName()} data-automation-id=\"checkbox-label\">\n {getLabelText()}\n </span>\n )}\n </label>\n </div>\n );\n};\n"],"names":["Checkbox","className","automationId","defaultChecked","disabled","onChange","checkMarkType","label","disabledLabel","containerAutomationId","ariaLabel","ariaLabelledBy","ariaDescribedBy","isChecked","setIsChecked","useState","useEffect","handleClick","e","prev","handleKeyDown","key","preventDefault","stopPropagation","newChecked","inputElement","currentTarget","closest","querySelector","target","getCheckBoxClassName","getLabelClassName","getLabelText","inputId","useStableId","undefined","labelId","a11yNameAttributes","getA11yNameAttributes","mergeIds","getAriaChecked","React","createElement","_extends","role","htmlFor","tabIndex","onKeyDown","id","type","checked","length"],"mappings":"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"}
1
+ {"version":3,"file":"index21.js","sources":["../src/components/TableLayout/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useRef } from 'react';\nimport { TableContentLoader } from 'components/TableContentLoader';\n\nexport interface TableLayoutProps {\n className?: string;\n automationId?: string;\n loading: boolean;\n headerData: any[];\n tableData: any[];\n headerColSpan?: number[];\n renderTableContentLoader?: (noOfColumns: number) => ReactNode;\n getTableHeaders: (props: { headerData: any[]; sortData: any; onSortUiUpdate: any; loading: boolean }) => ReactNode;\n getTableBody: (props: { tableData: any[]; onRowClick: any; loading: boolean }) => ReactNode;\n getTableFooter: (props: { tableData: any[]; loading: boolean }) => ReactNode;\n onSortUiUpdate: (newSortData: any) => void;\n onRowClick: (rowData: any) => void;\n tableId: string;\n /**\n * ID of element that describes the table (e.g., sort instructions for screen readers)\n */\n ariaDescribedBy?: string;\n}\n\nexport const TableLayout: FC<TableLayoutProps> = ({\n className = '',\n automationId = '',\n loading,\n headerColSpan = [],\n headerData,\n tableData,\n renderTableContentLoader,\n getTableHeaders,\n getTableBody,\n getTableFooter,\n onSortUiUpdate,\n onRowClick,\n tableId,\n ariaDescribedBy,\n ...props\n}) => {\n const tableRef = useRef<HTMLTableElement>(null);\n\n return (\n <div className={'se-design-table-layout-wrapper' + (className.length > 0 ? ` ${className}` : '') + (loading? ' table-data-loading' : '')} {...props}>\n <table\n className={'se-design-table w-full bg-[var(--color-white)] border-collapse table-fixed'}\n ref={tableRef}\n data-automation-id={automationId}\n id={tableId}\n aria-describedby={ariaDescribedBy}\n >\n <thead>\n <tr>{getTableHeaders({ headerData, sortData: {}, onSortUiUpdate, loading })}</tr>\n </thead>\n <tbody>\n {loading ? (\n <TableContentLoader noOfColumns={headerData?.length} colSpan={headerColSpan} />\n ) : (\n getTableBody({ tableData, onRowClick, loading })\n )}\n </tbody>\n </table>\n <div className=\"se-design-table-footer w-full bg-[var(--color-white)]\">\n {getTableFooter({ tableData, loading })}\n </div>\n </div>\n );\n};\n"],"names":["TableLayout","className","automationId","loading","headerColSpan","headerData","tableData","renderTableContentLoader","getTableHeaders","getTableBody","getTableFooter","onSortUiUpdate","onRowClick","tableId","ariaDescribedBy","props","tableRef","useRef","React","createElement","_extends","length","ref","id","sortData","TableContentLoader","noOfColumns","colSpan"],"mappings":";;;;;;;;;;;AAuBO,MAAMA,IAAoCA,CAAC;AAAA,EAChDC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe;AAAA,EACfC,SAAAA;AAAAA,EACAC,eAAAA,IAAgB,CAAA;AAAA,EAChBC,YAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,0BAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAWC,EAAyB,IAAI;AAE9C,SACEC,gBAAAA,EAAAC,cAAA,OAAAC,EAAA;AAAA,IAAKnB,WAAW,oCAAoCA,EAAUoB,SAAS,IAAI,IAAIpB,CAAS,KAAK,OAAOE,IAAS,wBAAwB;AAAA,EAAA,GAASY,CAAK,GACjJG,gBAAAA,EAAAC,cAAA,SAAA;AAAA,IACElB,WAAW;AAAA,IACXqB,KAAKN;AAAAA,IACL,sBAAoBd;AAAAA,IACpBqB,IAAIV;AAAAA,IACJ,oBAAkBC;AAAAA,EAAAA,qBAElBK,cAAA,SAAA,MACED,gBAAAA,EAAAC,cAAA,MAAA,MAAKX,EAAgB;AAAA,IAAEH,YAAAA;AAAAA,IAAYmB,UAAU,CAAA;AAAA,IAAIb,gBAAAA;AAAAA,IAAgBR,SAAAA;AAAAA,EAAAA,CAAS,CAAM,CAC3E,GACPe,gBAAAA,EAAAC,cAAA,SAAA,MACGhB,IACCe,gBAAAA,EAAAC,cAACM,GAAkB;AAAA,IAACC,aAAarB,GAAYgB;AAAAA,IAAQM,SAASvB;AAAAA,EAAAA,CAAgB,IAE9EK,EAAa;AAAA,IAAEH,WAAAA;AAAAA,IAAWM,YAAAA;AAAAA,IAAYT,SAAAA;AAAAA,EAAAA,CAAS,CAE5C,CACF,GACPe,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKlB,WAAU;AAAA,EAAA,GACZS,EAAe;AAAA,IAAEJ,WAAAA;AAAAA,IAAWH,SAAAA;AAAAA,EAAAA,CAAS,CACnC,CACF;AAET;"}
@@ -32,4 +32,4 @@ b.displayName = "TabButton";
32
32
  export {
33
33
  b as TabButton
34
34
  };
35
- //# sourceMappingURL=index207.js.map
35
+ //# sourceMappingURL=index211.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index207.js","sources":["../src/components/NavigationBar/TabButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { Button } from '../Button';\n\nexport interface TabButtonProps {\n id: string;\n label: string;\n isSelected: boolean;\n isDisabled?: boolean;\n panelId: string;\n tabIndex: number;\n className?: string;\n automationId?: string;\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n onFocus: () => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\n\n/**\n * Internal TabButton component for NavigationBar.\n * Uses Button (unstyled) internally for consistent activation handling.\n * Supports forwardRef for focus management (roving tabindex).\n */\nexport const TabButton = forwardRef<HTMLButtonElement, TabButtonProps>(\n (\n {\n id,\n label,\n isSelected,\n isDisabled = false,\n panelId,\n tabIndex,\n className = '',\n automationId,\n onClick,\n onFocus,\n onKeyDown\n },\n ref\n ) => {\n return (\n <Button\n ref={ref}\n type=\"unstyled\"\n label={label}\n disabled={isDisabled}\n onClick={onClick}\n className={className}\n automationId={automationId}\n role=\"tab\"\n id={id}\n aria-selected={isSelected}\n aria-controls={panelId}\n tabIndex={tabIndex}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTabButton.displayName = 'TabButton';\n"],"names":["React__default","forwardRef","Button","TabButton","id","label","isSelected","isDisabled","panelId","tabIndex","className","automationId","onClick","onFocus","onKeyDown","ref","React","createElement","type","disabled","role","displayName"],"mappings":"AAsBO,OAAAA,KAAA,cAAAC,SAAA;AAAA,SAAA,UAAAC,SAAA;AAAA,MAAMC,sBACX,CACE;AAAA,EACEC,IAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,YAAAA,IAAa;AAAA,EACbC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,WAAAA,IAAY;AAAA,EACZC,cAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,WAAAA;AACF,GACAC,MAGEC,gBAAAA,EAAAC,cAACf,GAAM;AAAA,EACLa,KAAAA;AAAAA,EACAG,MAAK;AAAA,EACLb,OAAAA;AAAAA,EACAc,UAAUZ;AAAAA,EACVK,SAAAA;AAAAA,EACAF,WAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAS,MAAK;AAAA,EACLhB,IAAAA;AAAAA,EACA,iBAAeE;AAAAA,EACf,iBAAeE;AAAAA,EACfC,UAAAA;AAAAA,EACAI,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,CACD,CAGP;AAEAX,EAAUkB,cAAc;"}
1
+ {"version":3,"file":"index211.js","sources":["../src/components/NavigationBar/TabButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { Button } from '../Button';\n\nexport interface TabButtonProps {\n id: string;\n label: string;\n isSelected: boolean;\n isDisabled?: boolean;\n panelId: string;\n tabIndex: number;\n className?: string;\n automationId?: string;\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n onFocus: () => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\n\n/**\n * Internal TabButton component for NavigationBar.\n * Uses Button (unstyled) internally for consistent activation handling.\n * Supports forwardRef for focus management (roving tabindex).\n */\nexport const TabButton = forwardRef<HTMLButtonElement, TabButtonProps>(\n (\n {\n id,\n label,\n isSelected,\n isDisabled = false,\n panelId,\n tabIndex,\n className = '',\n automationId,\n onClick,\n onFocus,\n onKeyDown\n },\n ref\n ) => {\n return (\n <Button\n ref={ref}\n type=\"unstyled\"\n label={label}\n disabled={isDisabled}\n onClick={onClick}\n className={className}\n automationId={automationId}\n role=\"tab\"\n id={id}\n aria-selected={isSelected}\n aria-controls={panelId}\n tabIndex={tabIndex}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTabButton.displayName = 'TabButton';\n"],"names":["React__default","forwardRef","Button","TabButton","id","label","isSelected","isDisabled","panelId","tabIndex","className","automationId","onClick","onFocus","onKeyDown","ref","React","createElement","type","disabled","role","displayName"],"mappings":"AAsBO,OAAAA,KAAA,cAAAC,SAAA;AAAA,SAAA,UAAAC,SAAA;AAAA,MAAMC,sBACX,CACE;AAAA,EACEC,IAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,YAAAA,IAAa;AAAA,EACbC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,WAAAA,IAAY;AAAA,EACZC,cAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,WAAAA;AACF,GACAC,MAGEC,gBAAAA,EAAAC,cAACf,GAAM;AAAA,EACLa,KAAAA;AAAAA,EACAG,MAAK;AAAA,EACLb,OAAAA;AAAAA,EACAc,UAAUZ;AAAAA,EACVK,SAAAA;AAAAA,EACAF,WAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAS,MAAK;AAAA,EACLhB,IAAAA;AAAAA,EACA,iBAAeE;AAAAA,EACf,iBAAeE;AAAAA,EACfC,UAAAA;AAAAA,EACAI,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,CACD,CAGP;AAEAX,EAAUkB,cAAc;"}
@@ -1,5 +1,5 @@
1
1
  import { useCallback as d } from "react";
2
- import { useRovingFocus as g } from "./index186.js";
2
+ import { useRovingFocus as g } from "./index189.js";
3
3
  const u = (e, t) => `tab${t ? `-${t}` : ""}-${e}`, c = (e, t) => `panel${t ? `-${t}` : ""}-${e}`;
4
4
  function P({
5
5
  itemIds: e,
@@ -41,4 +41,4 @@ function P({
41
41
  export {
42
42
  P as useTabsA11y
43
43
  };
44
- //# sourceMappingURL=index208.js.map
44
+ //# sourceMappingURL=index212.js.map