se-design 1.0.72 → 1.0.73-dev2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/dist/assets/style.css +1 -1
  2. package/dist/assets/typographyMixin.scss +8 -0
  3. package/dist/components/BreadCrumbs/index.d.ts +3 -1
  4. package/dist/components/CustomAccordion/index.d.ts +3 -0
  5. package/dist/components/Icon/index.d.ts +7 -7
  6. package/dist/components/NavigationBar/TabButton.d.ts +1 -1
  7. package/dist/components/Pagination/index.d.ts +1 -0
  8. package/dist/components/Popover/index.d.ts +2 -2
  9. package/dist/components/TableLayout/index.d.ts +4 -0
  10. package/dist/components/Tabs/index.d.ts +6 -1
  11. package/dist/index.js +132 -128
  12. package/dist/index.js.map +1 -1
  13. package/dist/index100.js +1 -1
  14. package/dist/index100.js.map +1 -1
  15. package/dist/index101.js +2 -2
  16. package/dist/index101.js.map +1 -1
  17. package/dist/index102.js +1 -1
  18. package/dist/index102.js.map +1 -1
  19. package/dist/index103.js +1 -1
  20. package/dist/index103.js.map +1 -1
  21. package/dist/index104.js +2 -2
  22. package/dist/index104.js.map +1 -1
  23. package/dist/index105.js +1 -1
  24. package/dist/index105.js.map +1 -1
  25. package/dist/index106.js +2 -2
  26. package/dist/index106.js.map +1 -1
  27. package/dist/index107.js +1 -1
  28. package/dist/index107.js.map +1 -1
  29. package/dist/index108.js +1 -1
  30. package/dist/index108.js.map +1 -1
  31. package/dist/index109.js +1 -1
  32. package/dist/index109.js.map +1 -1
  33. package/dist/index110.js +2 -2
  34. package/dist/index110.js.map +1 -1
  35. package/dist/index111.js +1 -1
  36. package/dist/index111.js.map +1 -1
  37. package/dist/index112.js +2 -2
  38. package/dist/index112.js.map +1 -1
  39. package/dist/index113.js +2 -2
  40. package/dist/index113.js.map +1 -1
  41. package/dist/index114.js +1 -1
  42. package/dist/index114.js.map +1 -1
  43. package/dist/index115.js +2 -2
  44. package/dist/index115.js.map +1 -1
  45. package/dist/index116.js +2 -2
  46. package/dist/index116.js.map +1 -1
  47. package/dist/index117.js +1 -1
  48. package/dist/index117.js.map +1 -1
  49. package/dist/index118.js +1 -1
  50. package/dist/index118.js.map +1 -1
  51. package/dist/index119.js +1 -1
  52. package/dist/index119.js.map +1 -1
  53. package/dist/index120.js +2 -2
  54. package/dist/index120.js.map +1 -1
  55. package/dist/index121.js +2 -2
  56. package/dist/index121.js.map +1 -1
  57. package/dist/index122.js +2 -2
  58. package/dist/index122.js.map +1 -1
  59. package/dist/index123.js +1 -1
  60. package/dist/index123.js.map +1 -1
  61. package/dist/index124.js +1 -1
  62. package/dist/index124.js.map +1 -1
  63. package/dist/index125.js +1 -1
  64. package/dist/index125.js.map +1 -1
  65. package/dist/index126.js +1 -1
  66. package/dist/index126.js.map +1 -1
  67. package/dist/index127.js +1 -1
  68. package/dist/index127.js.map +1 -1
  69. package/dist/index128.js +1 -1
  70. package/dist/index128.js.map +1 -1
  71. package/dist/index129.js +1 -1
  72. package/dist/index129.js.map +1 -1
  73. package/dist/index130.js +1 -1
  74. package/dist/index130.js.map +1 -1
  75. package/dist/index131.js +2 -2
  76. package/dist/index131.js.map +1 -1
  77. package/dist/index132.js +2 -2
  78. package/dist/index132.js.map +1 -1
  79. package/dist/index133.js +1 -1
  80. package/dist/index133.js.map +1 -1
  81. package/dist/index134.js +1 -1
  82. package/dist/index134.js.map +1 -1
  83. package/dist/index135.js +1 -1
  84. package/dist/index135.js.map +1 -1
  85. package/dist/index136.js +1 -1
  86. package/dist/index136.js.map +1 -1
  87. package/dist/index137.js +1 -1
  88. package/dist/index137.js.map +1 -1
  89. package/dist/index138.js +1 -1
  90. package/dist/index138.js.map +1 -1
  91. package/dist/index139.js +1 -1
  92. package/dist/index139.js.map +1 -1
  93. package/dist/index140.js +2 -2
  94. package/dist/index140.js.map +1 -1
  95. package/dist/index141.js +1 -1
  96. package/dist/index141.js.map +1 -1
  97. package/dist/index142.js +2 -2
  98. package/dist/index142.js.map +1 -1
  99. package/dist/index143.js +2 -2
  100. package/dist/index143.js.map +1 -1
  101. package/dist/index144.js +2 -2
  102. package/dist/index144.js.map +1 -1
  103. package/dist/index145.js +2 -2
  104. package/dist/index145.js.map +1 -1
  105. package/dist/index146.js +1 -1
  106. package/dist/index146.js.map +1 -1
  107. package/dist/index147.js +1 -1
  108. package/dist/index147.js.map +1 -1
  109. package/dist/index148.js +1 -1
  110. package/dist/index148.js.map +1 -1
  111. package/dist/index149.js +1 -1
  112. package/dist/index149.js.map +1 -1
  113. package/dist/index15.js +2 -2
  114. package/dist/index150.js +1 -1
  115. package/dist/index150.js.map +1 -1
  116. package/dist/index151.js +1 -1
  117. package/dist/index151.js.map +1 -1
  118. package/dist/index152.js +1 -1
  119. package/dist/index152.js.map +1 -1
  120. package/dist/index153.js +1 -1
  121. package/dist/index153.js.map +1 -1
  122. package/dist/index154.js +1 -1
  123. package/dist/index154.js.map +1 -1
  124. package/dist/index155.js +1 -1
  125. package/dist/index155.js.map +1 -1
  126. package/dist/index156.js +1 -1
  127. package/dist/index156.js.map +1 -1
  128. package/dist/index157.js +1 -1
  129. package/dist/index157.js.map +1 -1
  130. package/dist/index158.js +1 -1
  131. package/dist/index158.js.map +1 -1
  132. package/dist/index159.js +1 -1
  133. package/dist/index159.js.map +1 -1
  134. package/dist/index160.js +1 -1
  135. package/dist/index160.js.map +1 -1
  136. package/dist/index161.js +1 -1
  137. package/dist/index161.js.map +1 -1
  138. package/dist/index162.js +1 -1
  139. package/dist/index162.js.map +1 -1
  140. package/dist/index163.js +1 -1
  141. package/dist/index163.js.map +1 -1
  142. package/dist/index164.js +1 -1
  143. package/dist/index164.js.map +1 -1
  144. package/dist/index165.js +1 -1
  145. package/dist/index165.js.map +1 -1
  146. package/dist/index166.js +1 -1
  147. package/dist/index166.js.map +1 -1
  148. package/dist/index167.js +1 -1
  149. package/dist/index167.js.map +1 -1
  150. package/dist/index168.js +1 -1
  151. package/dist/index168.js.map +1 -1
  152. package/dist/index169.js +1 -1
  153. package/dist/index169.js.map +1 -1
  154. package/dist/index170.js +2 -2
  155. package/dist/index170.js.map +1 -1
  156. package/dist/index171.js +2 -2
  157. package/dist/index171.js.map +1 -1
  158. package/dist/index172.js +1 -1
  159. package/dist/index172.js.map +1 -1
  160. package/dist/index173.js +1 -1
  161. package/dist/index173.js.map +1 -1
  162. package/dist/index174.js +2 -2
  163. package/dist/index174.js.map +1 -1
  164. package/dist/index175.js +2 -2
  165. package/dist/index175.js.map +1 -1
  166. package/dist/index176.js +1 -1
  167. package/dist/index176.js.map +1 -1
  168. package/dist/index177.js +1 -1
  169. package/dist/index177.js.map +1 -1
  170. package/dist/index178.js +1 -1
  171. package/dist/index178.js.map +1 -1
  172. package/dist/index179.js +1 -1
  173. package/dist/index179.js.map +1 -1
  174. package/dist/index18.js +160 -156
  175. package/dist/index18.js.map +1 -1
  176. package/dist/index180.js +1 -1
  177. package/dist/index180.js.map +1 -1
  178. package/dist/index181.js +1 -1
  179. package/dist/index181.js.map +1 -1
  180. package/dist/index182.js +1 -1
  181. package/dist/index182.js.map +1 -1
  182. package/dist/index183.js +1 -1
  183. package/dist/index183.js.map +1 -1
  184. package/dist/index184.js +2 -2
  185. package/dist/index184.js.map +1 -1
  186. package/dist/index185.js +2 -2
  187. package/dist/index185.js.map +1 -1
  188. package/dist/index186.js +2 -2
  189. package/dist/index186.js.map +1 -1
  190. package/dist/index187.js +2 -149
  191. package/dist/index187.js.map +1 -1
  192. package/dist/index188.js +149 -9
  193. package/dist/index188.js.map +1 -1
  194. package/dist/index189.js +8 -5
  195. package/dist/index189.js.map +1 -1
  196. package/dist/index190.js +5 -4
  197. package/dist/index190.js.map +1 -1
  198. package/dist/index191.js +8 -0
  199. package/dist/index191.js.map +1 -0
  200. package/dist/{index193.js → index194.js} +1 -1
  201. package/dist/{index193.js.map → index194.js.map} +1 -1
  202. package/dist/{index195.js → index196.js} +3 -3
  203. package/dist/{index195.js.map → index196.js.map} +1 -1
  204. package/dist/{index197.js → index198.js} +1 -1
  205. package/dist/{index197.js.map → index198.js.map} +1 -1
  206. package/dist/{index205.js → index206.js} +1 -1
  207. package/dist/{index205.js.map → index206.js.map} +1 -1
  208. package/dist/index21.js +34 -30
  209. package/dist/index21.js.map +1 -1
  210. package/dist/{index213.js → index214.js} +1 -1
  211. package/dist/{index213.js.map → index214.js.map} +1 -1
  212. package/dist/index217.js +42 -42
  213. package/dist/index217.js.map +1 -1
  214. package/dist/index22.js +3 -3
  215. package/dist/index228.js +1 -1
  216. package/dist/index229.js +20 -52
  217. package/dist/index229.js.map +1 -1
  218. package/dist/index230.js +52 -20
  219. package/dist/index230.js.map +1 -1
  220. package/dist/index24.js +2 -2
  221. package/dist/index27.js +2 -2
  222. package/dist/index28.js +119 -60
  223. package/dist/index28.js.map +1 -1
  224. package/dist/index29.js +1 -1
  225. package/dist/index3.js +1 -1
  226. package/dist/index30.js +56 -41
  227. package/dist/index30.js.map +1 -1
  228. package/dist/index31.js +11 -10
  229. package/dist/index32.js +59 -44
  230. package/dist/index32.js.map +1 -1
  231. package/dist/index34.js +1 -1
  232. package/dist/index35.js +56 -49
  233. package/dist/index35.js.map +1 -1
  234. package/dist/index37.js +2 -2
  235. package/dist/index38.js +3 -3
  236. package/dist/index39.js +1 -1
  237. package/dist/index40.js +1 -1
  238. package/dist/index40.js.map +1 -1
  239. package/dist/index41.js +8 -7
  240. package/dist/index42.js +7 -6
  241. package/dist/index43.js +18 -18
  242. package/dist/index43.js.map +1 -1
  243. package/dist/index44.js +3 -3
  244. package/dist/index45.js +4 -4
  245. package/dist/index48.js +53 -56
  246. package/dist/index48.js.map +1 -1
  247. package/dist/index49.js +35 -25
  248. package/dist/index49.js.map +1 -1
  249. package/dist/index5.js +294 -307
  250. package/dist/index5.js.map +1 -1
  251. package/dist/index50.js +48 -48
  252. package/dist/index50.js.map +1 -1
  253. package/dist/index51.js +2 -2
  254. package/dist/index54.js +20 -19
  255. package/dist/index54.js.map +1 -1
  256. package/dist/index56.js +1 -1
  257. package/dist/index57.js +13 -9
  258. package/dist/index57.js.map +1 -1
  259. package/dist/index6.js +8 -7
  260. package/dist/index62.js +1 -1
  261. package/dist/index63.js +1 -1
  262. package/dist/index64.js +3 -2
  263. package/dist/index66.js +1 -1
  264. package/dist/index69.js +59 -5
  265. package/dist/index69.js.map +1 -1
  266. package/dist/index70.js +5 -9
  267. package/dist/index70.js.map +1 -1
  268. package/dist/index71.js +12 -0
  269. package/dist/index71.js.map +1 -0
  270. package/dist/index73.js +2 -2
  271. package/dist/index73.js.map +1 -1
  272. package/dist/index74.js +2 -2
  273. package/dist/index74.js.map +1 -1
  274. package/dist/index75.js +2 -2
  275. package/dist/index75.js.map +1 -1
  276. package/dist/index76.js +1 -1
  277. package/dist/index76.js.map +1 -1
  278. package/dist/index77.js +1 -1
  279. package/dist/index77.js.map +1 -1
  280. package/dist/index78.js +1 -1
  281. package/dist/index78.js.map +1 -1
  282. package/dist/index79.js +1 -1
  283. package/dist/index79.js.map +1 -1
  284. package/dist/index8.js +3 -3
  285. package/dist/index80.js +1 -1
  286. package/dist/index80.js.map +1 -1
  287. package/dist/index81.js +1 -1
  288. package/dist/index81.js.map +1 -1
  289. package/dist/index82.js +1 -1
  290. package/dist/index82.js.map +1 -1
  291. package/dist/index83.js +1 -1
  292. package/dist/index83.js.map +1 -1
  293. package/dist/index84.js +1 -1
  294. package/dist/index84.js.map +1 -1
  295. package/dist/index85.js +1 -1
  296. package/dist/index85.js.map +1 -1
  297. package/dist/index86.js +1 -1
  298. package/dist/index86.js.map +1 -1
  299. package/dist/index87.js +1 -1
  300. package/dist/index87.js.map +1 -1
  301. package/dist/index88.js +1 -1
  302. package/dist/index88.js.map +1 -1
  303. package/dist/index89.js +1 -1
  304. package/dist/index89.js.map +1 -1
  305. package/dist/index90.js +1 -1
  306. package/dist/index90.js.map +1 -1
  307. package/dist/index91.js +1 -1
  308. package/dist/index91.js.map +1 -1
  309. package/dist/index92.js +1 -1
  310. package/dist/index92.js.map +1 -1
  311. package/dist/index93.js +1 -1
  312. package/dist/index93.js.map +1 -1
  313. package/dist/index94.js +1 -1
  314. package/dist/index94.js.map +1 -1
  315. package/dist/index95.js +1 -1
  316. package/dist/index95.js.map +1 -1
  317. package/dist/index96.js +1 -1
  318. package/dist/index96.js.map +1 -1
  319. package/dist/index97.js +1 -1
  320. package/dist/index97.js.map +1 -1
  321. package/dist/index98.js +1 -1
  322. package/dist/index98.js.map +1 -1
  323. package/dist/index99.js +2 -2
  324. package/dist/index99.js.map +1 -1
  325. package/package.json +1 -1
  326. package/dist/components/NavigationBar/useTabsA11y.d.ts +0 -36
  327. package/dist/index216.js +0 -35
  328. package/dist/index216.js.map +0 -1
  329. package/dist/index72.js +0 -5
  330. package/dist/index72.js.map +0 -1
package/dist/index30.js CHANGED
@@ -1,58 +1,73 @@
1
- import o from "react";
2
- import { Icon as h } from "./index5.js";
1
+ import n from "react";
2
+ import { Icon as f } from "./index5.js";
3
3
  const c = {
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
- }, E = ({
7
- currentPage: t,
4
+ pageNavigation: "px-[6px] py-[6px] flex items-center justify-center",
5
+ pageItem: "px-[7px] py-[1px] min-w-[24px] text-sm flex items-center justify-center rounded border hover:cursor-pointer appearance-none focus-outline"
6
+ }, k = ({
7
+ currentPage: a,
8
8
  itemsPerPage: l,
9
- totalItems: r,
9
+ totalItems: i,
10
10
  onPageChange: p,
11
- mobileView: m = !1
11
+ mobileView: m = !1,
12
+ ariaLabel: x = "Pagination Controls"
12
13
  }) => {
13
- const n = Math.ceil(r / l), d = 1, f = n, x = (t - 1) * l + 1, u = Math.min(t * l, r), v = u < r, g = t > 1, b = () => {
14
- const e = [], a = (s) => /* @__PURE__ */ o.createElement("span", {
15
- key: s,
16
- onClick: () => p(s),
17
- className: `${c.pageItem} ${t === s ? "bg-[var(--color-gray-100)] border-[var(--color-gray-300)]" : "border-[var(--color-gray-200)] hover:bg-[var(--color-gray-50)]"}`,
18
- "data-automation-id": `page-number-${s}`
19
- }, s), i = (s) => /* @__PURE__ */ o.createElement("span", {
14
+ const o = Math.ceil(i / l), d = 1, b = o, g = (a - 1) * l + 1, u = Math.min(a * l, i), v = u < i, y = a > 1, E = () => {
15
+ const e = [], t = (s) => {
16
+ const h = a === s;
17
+ return /* @__PURE__ */ n.createElement("li", {
18
+ key: s
19
+ }, /* @__PURE__ */ n.createElement("button", {
20
+ type: "button",
21
+ onClick: () => p(s),
22
+ className: `${c.pageItem} ${h ? "bg-[var(--color-gray-100)] border-[var(--color-gray-300)]" : "border-[var(--color-gray-200)] hover:bg-[var(--color-gray-50)]"}`,
23
+ "aria-label": `Page ${s}`,
24
+ "aria-current": h ? "page" : void 0,
25
+ "data-automation-id": `page-number-${s}`
26
+ }, s));
27
+ }, r = (s) => /* @__PURE__ */ n.createElement("li", {
20
28
  key: s,
29
+ "aria-hidden": "true"
30
+ }, /* @__PURE__ */ n.createElement("span", {
21
31
  className: "w-5 h-5 text-sm rounded border border-[var(--color-gray-200)] flex items-end justify-center"
22
- }, "...");
32
+ }, "..."));
23
33
  if (m)
24
- return e.push(a(t)), e;
25
- if (t <= 3) {
26
- for (let s = 1; s <= Math.min(3, n); s++)
27
- e.push(a(s));
28
- n > 3 && (e.push(i("ellipsis-end")), e.push(a(n)));
29
- } else t >= n - 2 ? (e.push(a(d)), e.push(i("ellipsis-start")), e.push(a(n - 2)), e.push(a(n - 1)), e.push(a(n))) : (e.push(a(d)), e.push(i("ellipsis-start")), e.push(a(t - 1)), e.push(a(t)), e.push(a(t + 1)), e.push(i("ellipsis-end")), e.push(a(f)));
34
+ return e.push(t(a)), e;
35
+ if (a <= 3) {
36
+ for (let s = 1; s <= Math.min(3, o); s++)
37
+ e.push(t(s));
38
+ o > 3 && (e.push(r("ellipsis-end")), e.push(t(o)));
39
+ } else a >= o - 2 ? (e.push(t(d)), e.push(r("ellipsis-start")), e.push(t(o - 2)), e.push(t(o - 1)), e.push(t(o))) : (e.push(t(d)), e.push(r("ellipsis-start")), e.push(t(a - 1)), e.push(t(a)), e.push(t(a + 1)), e.push(r("ellipsis-end")), e.push(t(b)));
30
40
  return e;
31
41
  };
32
- return /* @__PURE__ */ o.createElement("div", {
33
- className: "flex items-center gap-1 font-normal",
34
- "data-automation-id": "pagination-container"
35
- }, /* @__PURE__ */ o.createElement("span", {
42
+ return /* @__PURE__ */ n.createElement("nav", {
43
+ "aria-label": x,
44
+ "data-automation-id": "pagination-container",
45
+ className: "flex items-center gap-1 font-normal"
46
+ }, /* @__PURE__ */ n.createElement("span", {
36
47
  className: "text-sm text-[var(--color-gray-700)] mr-1",
37
48
  "data-automation-id": "pagination-items-info"
38
- }, `${m ? "" : "Showing "}${x}-${u} of ${r}`), /* @__PURE__ */ o.createElement("span", {
39
- onClick: () => g && p(t - 1),
40
- className: `${c.pageNavigation}`,
41
- "data-automation-id": "pagination-previous-button"
42
- }, /* @__PURE__ */ o.createElement(h, {
49
+ }, `${m ? "" : "Showing "}${g}-${u} of ${i}`), /* @__PURE__ */ n.createElement(f, {
43
50
  name: "next",
44
- className: "rotate-180 transition-transform stroke-[var(--color-gray-600)]"
45
- })), /* @__PURE__ */ o.createElement("div", {
51
+ size: 12,
52
+ ariaLabel: "Previous page",
53
+ rotation: "180",
54
+ disabled: !y,
55
+ onClick: () => p(a - 1),
56
+ className: `stroke-[var(--color-gray-600)] ${c.pageNavigation}`,
57
+ automationId: "pagination-previous-button"
58
+ }), /* @__PURE__ */ n.createElement("ul", {
46
59
  className: "flex items-center gap-1"
47
- }, b()), /* @__PURE__ */ o.createElement("span", {
48
- onClick: () => v && p(t + 1),
49
- className: `${c.pageNavigation}`,
50
- "data-automation-id": "pagination-next-button"
51
- }, /* @__PURE__ */ o.createElement(h, {
52
- name: "next"
53
- })));
60
+ }, E()), /* @__PURE__ */ n.createElement(f, {
61
+ name: "next",
62
+ size: 12,
63
+ ariaLabel: "Next page",
64
+ disabled: !v,
65
+ onClick: () => p(a + 1),
66
+ className: c.pageNavigation,
67
+ automationId: "pagination-next-button"
68
+ }));
54
69
  };
55
70
  export {
56
- E as Pagination
71
+ k as Pagination
57
72
  };
58
73
  //# sourceMappingURL=index30.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index30.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 mobileView?: boolean;\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, mobileView = false }) => {\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 = (key: string) => {\n return (\n <span key={key} 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 if(mobileView) {\n pages.push(renderPageNumber(currentPage));\n\n return pages;\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(\"ellipsis-end\"));\n pages.push(renderPageNumber(totalPages));\n }\n } else if (currentPage >= totalPages - 2) {\n pages.push(renderPageNumber(firstPage));\n pages.push(renderEllipsis(\"ellipsis-start\"));\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(\"ellipsis-start\"));\n pages.push(renderPageNumber(currentPage - 1));\n pages.push(renderPageNumber(currentPage));\n pages.push(renderPageNumber(currentPage + 1));\n pages.push(renderEllipsis(\"ellipsis-end\"));\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 {`${mobileView ? \"\" : \"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","mobileView","totalPages","Math","ceil","firstPage","lastPage","startItem","endItem","min","hasNextPage","hasPrevPage","renderPageNumbers","pages","renderPageNumber","pageNum","React","createElement","key","onClick","className","renderEllipsis","push","i","name"],"mappings":"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"}
1
+ {"version":3,"file":"index30.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 mobileView?: boolean;\n ariaLabel?: string;\n}\n\nconst paginationClassNames = {\n pageNavigation: \"px-[6px] py-[6px] flex items-center justify-center\",\n pageItem: \"px-[7px] py-[1px] min-w-[24px] text-sm flex items-center justify-center rounded border hover:cursor-pointer appearance-none focus-outline\"\n}\n\nexport const Pagination: React.FC<PaginationProps> = ({ currentPage, itemsPerPage, totalItems, onPageChange, mobileView = false, ariaLabel = 'Pagination Controls' }) => {\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: React.ReactNode[] = [];\n\n const renderPageNumber = (pageNum: number) => {\n const isActive = currentPage === pageNum;\n return (\n <li key={pageNum}>\n <button\n type=\"button\"\n onClick={() => onPageChange(pageNum)}\n className={`${paginationClassNames.pageItem} ${isActive ? 'bg-[var(--color-gray-100)] border-[var(--color-gray-300)]' : 'border-[var(--color-gray-200)] hover:bg-[var(--color-gray-50)]'}`}\n aria-label={`Page ${pageNum}`}\n aria-current={isActive ? 'page' : undefined}\n data-automation-id={`page-number-${pageNum}`}\n >\n {pageNum}\n </button>\n </li>\n );\n };\n\n const renderEllipsis = (key: string) => {\n return (\n <li key={key} aria-hidden=\"true\">\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 </li>\n );\n };\n\n if (mobileView) {\n pages.push(renderPageNumber(currentPage));\n return pages;\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(\"ellipsis-end\"));\n pages.push(renderPageNumber(totalPages));\n }\n } else if (currentPage >= totalPages - 2) {\n pages.push(renderPageNumber(firstPage));\n pages.push(renderEllipsis(\"ellipsis-start\"));\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(\"ellipsis-start\"));\n pages.push(renderPageNumber(currentPage - 1));\n pages.push(renderPageNumber(currentPage));\n pages.push(renderPageNumber(currentPage + 1));\n pages.push(renderEllipsis(\"ellipsis-end\"));\n pages.push(renderPageNumber(lastPage));\n }\n\n return pages;\n };\n\n return (\n <nav aria-label={ariaLabel} data-automation-id=\"pagination-container\" className=\"flex items-center gap-1 font-normal\">\n <span\n className=\"text-sm text-[var(--color-gray-700)] mr-1\"\n data-automation-id=\"pagination-items-info\"\n >\n {`${mobileView ? \"\" : \"Showing \"}${startItem}-${endItem} of ${totalItems}`}\n </span>\n <Icon\n name=\"next\"\n size={12}\n ariaLabel=\"Previous page\"\n rotation=\"180\"\n disabled={!hasPrevPage}\n onClick={() => onPageChange(currentPage - 1)}\n className={`stroke-[var(--color-gray-600)] ${paginationClassNames.pageNavigation}`}\n automationId=\"pagination-previous-button\"\n />\n <ul className=\"flex items-center gap-1\">\n {renderPageNumbers()}\n </ul>\n <Icon\n name=\"next\"\n size={12}\n ariaLabel=\"Next page\"\n disabled={!hasNextPage}\n onClick={() => onPageChange(currentPage + 1)}\n className={paginationClassNames.pageNavigation}\n automationId=\"pagination-next-button\"\n />\n </nav>\n );\n};\n"],"names":["React__default","Icon","paginationClassNames","pageNavigation","pageItem","Pagination","currentPage","itemsPerPage","totalItems","onPageChange","mobileView","ariaLabel","totalPages","Math","ceil","firstPage","lastPage","startItem","endItem","min","hasNextPage","hasPrevPage","renderPageNumbers","pages","renderPageNumber","pageNum","isActive","React","createElement","key","type","onClick","className","undefined","renderEllipsis","push","i","name","size","rotation","disabled","automationId"],"mappings":"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"}
package/dist/index31.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import e from "react";
2
2
  import { Button as N } from "./index3.js";
3
3
  import { Badge as I } from "./index9.js";
4
- import { Icon as g } from "./index5.js";
4
+ import { Icon as d } from "./index5.js";
5
5
  /* empty css */
6
6
  const t = {
7
7
  widgetCtn: "flex flex-col gap-[2px] align-center border border-[var(--color-gray-200)] rounded-[12px] w-[385px]",
@@ -21,16 +21,16 @@ const t = {
21
21
  requestFeatureImageCtn: "w-[48px] h-[48px] border border-[var(--color-gray-200)] rounded-[50%] flex items-center flex-shrink-0 bg-[var(--color-red-50)]",
22
22
  requestFeatureDescriptionCtn: "flex flex-col"
23
23
  }, B = ({
24
- widgetClassName: d = "",
24
+ widgetClassName: g = "",
25
25
  widgetType: a = "general",
26
26
  widgetTitle: r = "",
27
27
  widgetDescription: l = "",
28
28
  widgetImage: p,
29
- hasImage: x = !1,
29
+ hasImage: f = !1,
30
30
  hasButtonCta: n = !1,
31
31
  hasLinkCta: i = !1,
32
32
  ctaText: o = "",
33
- hasBadge: f = !1,
33
+ hasBadge: x = !1,
34
34
  badgeText: w = "",
35
35
  buttonBgColor: u = "secondary",
36
36
  onCtaClick: b,
@@ -38,7 +38,7 @@ const t = {
38
38
  webinarDateInfo: c,
39
39
  webinarSpeaker: s
40
40
  }) => {
41
- const E = f && /* @__PURE__ */ e.createElement(I, {
41
+ const E = x && /* @__PURE__ */ e.createElement(I, {
42
42
  label: w,
43
43
  className: t.widgetBadge,
44
44
  bgColor: "var(--color-yellow-50)",
@@ -52,14 +52,14 @@ const t = {
52
52
  label: o,
53
53
  className: `${t.widgetButtonCta} mt-[4px]`,
54
54
  onClick: b
55
- })), C = x && /* @__PURE__ */ e.createElement("div", {
55
+ })), C = f && /* @__PURE__ */ e.createElement("div", {
56
56
  className: `${t.widgetImageCtn} widget-image-ctn`
57
57
  }, /* @__PURE__ */ e.createElement("img", {
58
58
  src: p,
59
59
  alt: "widget-image"
60
60
  }));
61
61
  return /* @__PURE__ */ e.createElement("div", {
62
- className: `${t.widgetCtn} ${d} widget-ctn`,
62
+ className: `${t.widgetCtn} ${g} widget-ctn`,
63
63
  onClick: v
64
64
  }, a !== "general" && C, /* @__PURE__ */ e.createElement("div", {
65
65
  className: t.descriptionCtn
@@ -71,14 +71,14 @@ const t = {
71
71
  className: t.webinarInfoCtn
72
72
  }, s && /* @__PURE__ */ e.createElement("div", {
73
73
  className: `${t.webinarDescriptionInfo} align-baseline`
74
- }, /* @__PURE__ */ e.createElement(g, {
74
+ }, /* @__PURE__ */ e.createElement(d, {
75
75
  name: "people",
76
76
  className: "relative top-[2px]"
77
77
  }), /* @__PURE__ */ e.createElement("span", {
78
78
  className: t.webinarSpeaker
79
79
  }, s)), c && /* @__PURE__ */ e.createElement("div", {
80
80
  className: `${t.webinarTimeInfo} align-baseline mb-[4px]`
81
- }, /* @__PURE__ */ e.createElement(g, {
81
+ }, /* @__PURE__ */ e.createElement(d, {
82
82
  name: "clock",
83
83
  className: "relative top-[2px]"
84
84
  }), /* @__PURE__ */ e.createElement("span", {
@@ -96,6 +96,7 @@ const t = {
96
96
  }, l), m)) : m));
97
97
  };
98
98
  export {
99
- B as Widget
99
+ B as Widget,
100
+ B as default
100
101
  };
101
102
  //# sourceMappingURL=index31.js.map
package/dist/index32.js CHANGED
@@ -1,64 +1,79 @@
1
- import a, { useRef as h } from "react";
2
- function w(e) {
1
+ import t, { useRef as $ } from "react";
2
+ import { useStableId as y } from "./index190.js";
3
+ function L(e) {
3
4
  const {
4
- label: c,
5
- value: o,
5
+ label: u,
6
+ value: n,
6
7
  checked: r,
7
- disabled: t,
8
- name: d,
9
- onChange: l,
10
- width: s,
11
- radioLabelClassName: m = "",
12
- radioContainerClassName: u = "",
13
- automationId: x = "",
14
- bgColor: f = "var(--color-white)",
15
- withBorder: b = !0,
16
- content: i
17
- } = e, n = h(null);
18
- return /* @__PURE__ */ a.createElement("div", {
19
- className: `se-design-radio-container flex flex-col justify-center items-start gap-2 ${t ? "cursor-not-allowed" : "cursor-pointer"} ${b ? `border ${r ? "border-[var(--color-blue-500)]" : "border-[var(--color-gray-400)]"} p-4` : ""} rounded-[6px] transition-colors duration-300 ${t ? "opacity-50" : ""} ${u}`,
20
- onClick: () => n.current?.click(),
8
+ disabled: a,
9
+ name: c,
10
+ onChange: i,
11
+ width: m,
12
+ radioLabelClassName: f = "",
13
+ radioContainerClassName: h = "",
14
+ automationId: p = "",
15
+ bgColor: b = "var(--color-white)",
16
+ withBorder: x = !0,
17
+ content: d
18
+ } = e, o = $(null), s = y(void 0, `${c}-${n}`);
19
+ t.useLayoutEffect(() => {
20
+ o.current && (o.current.checked = r);
21
+ }, [r]);
22
+ const C = () => {
23
+ a || (o.current?.focus(), o.current?.click());
24
+ }, g = (l) => {
25
+ l.preventDefault(), l.stopPropagation(), a || (o.current?.focus(), i?.({
26
+ ...e,
27
+ checked: !0
28
+ }));
29
+ }, k = (l) => {
30
+ l.stopPropagation();
31
+ }, v = () => {
32
+ i?.({
33
+ ...e,
34
+ checked: !0
35
+ });
36
+ }, w = r ? "border-[var(--color-blue-500)]" : "border-[var(--color-gray-400)]";
37
+ return /* @__PURE__ */ t.createElement("div", {
38
+ className: `se-design-radio-container flex flex-col justify-center items-start gap-2 ${a ? "cursor-not-allowed" : "cursor-pointer"} ${x ? `border ${w} p-4` : ""} rounded-[6px] transition-colors duration-300 ${a ? "opacity-50" : ""} ${h}`,
39
+ onClick: C,
21
40
  style: {
22
- width: s || "auto",
23
- backgroundColor: f
41
+ width: m || "auto",
42
+ backgroundColor: b
24
43
  },
25
- "data-automation-id": x
26
- }, /* @__PURE__ */ a.createElement("div", {
44
+ "data-automation-id": p
45
+ }, /* @__PURE__ */ t.createElement("div", {
27
46
  className: "flex items-center gap-[0.625rem]",
28
47
  "data-automation-id": "radio-field-content"
29
- }, /* @__PURE__ */ a.createElement("input", {
30
- ref: n,
48
+ }, /* @__PURE__ */ t.createElement("input", {
49
+ ref: o,
31
50
  type: "radio",
32
- id: o,
33
- name: d,
34
- value: o,
35
- checked: r,
36
- disabled: t,
51
+ id: s,
52
+ name: c,
53
+ value: n,
54
+ disabled: a,
37
55
  className: "radio-field-input cursor-pointer accent-[var(--color-blue-500)] disabled:cursor-not-allowed disabled:opacity-50 text-[var(--color-blue-500)] w-[14px] h-[14px] p-[3px]",
38
- onChange: () => {
39
- l && l({
40
- ...e,
41
- checked: !0
42
- });
43
- }
44
- }), /* @__PURE__ */ a.createElement("label", {
45
- htmlFor: o,
46
- className: `${e.helperLabel ? "flex flex-col gap-[6px]" : ""} ${t ? "cursor-not-allowed" : "cursor-pointer"}`,
47
- "data-automation-id": "radio-field-label"
48
- }, /* @__PURE__ */ a.createElement("span", {
49
- className: `text-sm text-[var(--color-gray-800)] ${m} `,
56
+ onClick: k,
57
+ onChange: v
58
+ }), /* @__PURE__ */ t.createElement("label", {
59
+ htmlFor: s,
60
+ className: `${e.helperLabel ? "flex flex-col gap-[6px] " : ""}${a ? "cursor-not-allowed" : "cursor-pointer"}`,
61
+ "data-automation-id": "radio-field-label",
62
+ onClick: g
63
+ }, /* @__PURE__ */ t.createElement("span", {
64
+ className: `text-sm text-[var(--color-gray-800)] ${f} `,
50
65
  style: {
51
66
  fontSize: "16px",
52
67
  fontWeight: "400"
53
68
  }
54
- }, c))), r && i && /* @__PURE__ */ a.createElement("div", {
69
+ }, u))), r && d && /* @__PURE__ */ t.createElement("div", {
55
70
  className: "radio-child-content pl-[1.5rem] w-full"
56
- }, i()), e.helperLabel && /* @__PURE__ */ a.createElement("span", {
71
+ }, d()), e.helperLabel && /* @__PURE__ */ t.createElement("span", {
57
72
  className: `text-sm font-normal text-[var(--color-gray-600)] ${e.maxWidth ? `max-w-[${e.maxWidth}]` : "max-w-full"} break-words whitespace-normal`,
58
73
  "data-automation-id": "radio-field-helper-text"
59
74
  }, e.helperLabel));
60
75
  }
61
76
  export {
62
- w as Radio
77
+ L as Radio
63
78
  };
64
79
  //# sourceMappingURL=index32.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index32.js","sources":["../src/components/Radio/index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nexport interface RadioProps {\n label: string;\n value: string;\n checked: boolean;\n disabled: boolean;\n name: string;\n onChange?: (props: RadioProps) => void;\n helperLabel?: string;\n maxWidth?: string;\n width?: string;\n radioLabelClassName?: string;\n radioContainerClassName?: string;\n automationId?: string;\n withBorder?: boolean;\n bgColor?: string;\n content?: () => React.ReactNode;\n}\n\nexport function Radio(props: RadioProps) {\n const {\n label,\n value,\n checked,\n disabled,\n name,\n onChange,\n width,\n radioLabelClassName = '',\n radioContainerClassName = '',\n automationId = '',\n bgColor = 'var(--color-white)',\n withBorder = true,\n content\n } = props;\n const radioRef = useRef<HTMLInputElement>(null);\n\n return (\n <div\n className={`se-design-radio-container flex flex-col justify-center items-start gap-2 ${\n disabled ? 'cursor-not-allowed' : 'cursor-pointer'\n } ${\n withBorder ? `border ${checked ? 'border-[var(--color-blue-500)]' : 'border-[var(--color-gray-400)]'} p-4` : ''\n } rounded-[6px] transition-colors duration-300 ${disabled ? 'opacity-50' : ''} ${radioContainerClassName}`}\n onClick={() => radioRef.current?.click()}\n style={{ width: width || 'auto', backgroundColor: bgColor }}\n data-automation-id={automationId}\n >\n <div className=\"flex items-center gap-[0.625rem]\" data-automation-id=\"radio-field-content\">\n <input\n ref={radioRef}\n type=\"radio\"\n id={value}\n name={name}\n value={value}\n checked={checked}\n disabled={disabled}\n className=\"radio-field-input cursor-pointer accent-[var(--color-blue-500)] disabled:cursor-not-allowed disabled:opacity-50 text-[var(--color-blue-500)] w-[14px] h-[14px] p-[3px]\"\n onChange={() => {\n onChange && onChange({ ...props, checked: true });\n }}\n />\n <label\n htmlFor={value}\n className={`${props.helperLabel ? 'flex flex-col gap-[6px]' : ''} ${\n disabled ? 'cursor-not-allowed' : 'cursor-pointer'\n }`}\n data-automation-id=\"radio-field-label\"\n >\n <span\n className={`text-sm text-[var(--color-gray-800)] ${radioLabelClassName} `}\n style={{ fontSize: '16px', fontWeight: '400' }}\n >\n {label}\n </span>\n </label>\n </div>\n {checked && content && <div className=\"radio-child-content pl-[1.5rem] w-full\">{content()}</div>}\n {props.helperLabel && (\n <span\n className={`text-sm font-normal text-[var(--color-gray-600)] ${\n props.maxWidth ? `max-w-[${props.maxWidth}]` : 'max-w-full'\n } break-words whitespace-normal`}\n data-automation-id=\"radio-field-helper-text\"\n >\n {props.helperLabel}\n </span>\n )}\n </div>\n );\n}\n"],"names":["Radio","props","label","value","checked","disabled","name","onChange","width","radioLabelClassName","radioContainerClassName","automationId","bgColor","withBorder","content","radioRef","useRef","React","createElement","className","onClick","current","click","style","backgroundColor","ref","type","id","htmlFor","helperLabel","fontSize","fontWeight","maxWidth"],"mappings":";AAoBO,SAASA,EAAMC,GAAmB;AACvC,QAAM;AAAA,IACJC,OAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,MAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,qBAAAA,IAAsB;AAAA,IACtBC,yBAAAA,IAA0B;AAAA,IAC1BC,cAAAA,IAAe;AAAA,IACfC,SAAAA,IAAU;AAAA,IACVC,YAAAA,IAAa;AAAA,IACbC,SAAAA;AAAAA,EAAAA,IACEb,GACEc,IAAWC,EAAyB,IAAI;AAE9C,SACEC,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IACEC,WAAW,4EACTd,IAAW,uBAAuB,gBAAgB,IAElDQ,IAAa,UAAUT,IAAU,mCAAmC,gCAAgC,SAAS,EAAE,iDAChEC,IAAW,eAAe,EAAE,IAAIK,CAAuB;AAAA,IACxGU,SAASA,MAAML,EAASM,SAASC,MAAAA;AAAAA,IACjCC,OAAO;AAAA,MAAEf,OAAOA,KAAS;AAAA,MAAQgB,iBAAiBZ;AAAAA,IAAAA;AAAAA,IAClD,sBAAoBD;AAAAA,EAAAA,GAEpBM,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKC,WAAU;AAAA,IAAmC,sBAAmB;AAAA,EAAA,GACnEF,gBAAAA,EAAAC,cAAA,SAAA;AAAA,IACEO,KAAKV;AAAAA,IACLW,MAAK;AAAA,IACLC,IAAIxB;AAAAA,IACJG,MAAAA;AAAAA,IACAH,OAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAc,WAAU;AAAA,IACVZ,UAAUA,MAAM;AACdA,MAAAA,KAAYA,EAAS;AAAA,QAAE,GAAGN;AAAAA,QAAOG,SAAS;AAAA,MAAA,CAAM;AAAA,IAClD;AAAA,EAAA,CACD,GACDa,gBAAAA,EAAAC,cAAA,SAAA;AAAA,IACEU,SAASzB;AAAAA,IACTgB,WAAW,GAAGlB,EAAM4B,cAAc,4BAA4B,EAAE,IAC9DxB,IAAW,uBAAuB,gBAAgB;AAAA,IAEpD,sBAAmB;AAAA,EAAA,GAEnBY,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IACEC,WAAW,wCAAwCV,CAAmB;AAAA,IACtEc,OAAO;AAAA,MAAEO,UAAU;AAAA,MAAQC,YAAY;AAAA,IAAA;AAAA,EAAM,GAE5C7B,CACG,CACD,CACJ,GACJE,KAAWU,KAAWG,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKC,WAAU;AAAA,EAAA,GAA0CL,GAAe,GAC9Fb,EAAM4B,eACLZ,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IACEC,WAAW,oDACTlB,EAAM+B,WAAW,UAAU/B,EAAM+B,QAAQ,MAAM,YAAY;AAAA,IAE7D,sBAAmB;AAAA,EAAA,GAElB/B,EAAM4B,WACH,CAEL;AAET;"}
1
+ {"version":3,"file":"index32.js","sources":["../src/components/Radio/index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { useStableId } from '../../utils/useStableId';\n\nexport interface RadioProps {\n label: string;\n value: string;\n checked: boolean;\n disabled: boolean;\n name: string;\n onChange?: (props: RadioProps) => void;\n helperLabel?: string;\n maxWidth?: string;\n width?: string;\n radioLabelClassName?: string;\n radioContainerClassName?: string;\n automationId?: string;\n withBorder?: boolean;\n bgColor?: string;\n content?: () => React.ReactNode;\n}\n\nexport function Radio(props: RadioProps) {\n const {\n label,\n value,\n checked,\n disabled,\n name,\n onChange,\n width,\n radioLabelClassName = '',\n radioContainerClassName = '',\n automationId = '',\n bgColor = 'var(--color-white)',\n withBorder = true,\n content\n } = props;\n const radioRef = useRef<HTMLInputElement>(null);\n const inputId = useStableId(undefined, `${name}-${value}`);\n\n // Sync DOM checked state with prop — bypasses React's controlled-input restore mechanism\n // which resets DOM.checked=false after the first click on an unselected radio.\n React.useLayoutEffect(() => {\n if (radioRef.current) {\n radioRef.current.checked = checked;\n }\n }, [checked]);\n\n const handleContainerClick = () => {\n if (!disabled) {\n radioRef.current?.focus();\n radioRef.current?.click();\n }\n };\n\n const handleLabelClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n // Prevent native htmlFor redirect (avoids double-firing onChange) while keeping htmlFor for SR association\n e.preventDefault();\n e.stopPropagation();\n if (!disabled) {\n radioRef.current?.focus();\n onChange?.({ ...props, checked: true });\n }\n };\n\n const handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e.stopPropagation();\n };\n\n const handleInputChange = () => {\n onChange?.({ ...props, checked: true });\n };\n\n const borderColor = checked ? 'border-[var(--color-blue-500)]' : 'border-[var(--color-gray-400)]';\n\n return (\n <div\n className={`se-design-radio-container flex flex-col justify-center items-start gap-2 ${\n disabled ? 'cursor-not-allowed' : 'cursor-pointer'\n } ${\n withBorder ? `border ${borderColor} p-4` : ''\n } rounded-[6px] transition-colors duration-300 ${disabled ? 'opacity-50' : ''} ${radioContainerClassName}`}\n onClick={handleContainerClick}\n style={{ width: width || 'auto', backgroundColor: bgColor }}\n data-automation-id={automationId}\n >\n <div className=\"flex items-center gap-[0.625rem]\" data-automation-id=\"radio-field-content\">\n <input\n ref={radioRef}\n type=\"radio\"\n id={inputId}\n name={name}\n value={value}\n disabled={disabled}\n className=\"radio-field-input cursor-pointer accent-[var(--color-blue-500)] disabled:cursor-not-allowed disabled:opacity-50 text-[var(--color-blue-500)] w-[14px] h-[14px] p-[3px]\"\n onClick={handleInputClick}\n onChange={handleInputChange}\n />\n <label\n htmlFor={inputId}\n className={`${props.helperLabel ? 'flex flex-col gap-[6px] ' : ''}${\n disabled ? 'cursor-not-allowed' : 'cursor-pointer'\n }`}\n data-automation-id=\"radio-field-label\"\n onClick={handleLabelClick}\n >\n <span\n className={`text-sm text-[var(--color-gray-800)] ${radioLabelClassName} `}\n style={{ fontSize: '16px', fontWeight: '400' }}\n >\n {label}\n </span>\n </label>\n </div>\n {checked && content && <div className=\"radio-child-content pl-[1.5rem] w-full\">{content()}</div>}\n {props.helperLabel && (\n <span\n className={`text-sm font-normal text-[var(--color-gray-600)] ${\n props.maxWidth ? `max-w-[${props.maxWidth}]` : 'max-w-full'\n } break-words whitespace-normal`}\n data-automation-id=\"radio-field-helper-text\"\n >\n {props.helperLabel}\n </span>\n )}\n </div>\n );\n}\n"],"names":["Radio","props","label","value","checked","disabled","name","onChange","width","radioLabelClassName","radioContainerClassName","automationId","bgColor","withBorder","content","radioRef","useRef","inputId","useStableId","undefined","React","useLayoutEffect","current","handleContainerClick","focus","click","handleLabelClick","e","preventDefault","stopPropagation","handleInputClick","handleInputChange","borderColor","createElement","className","onClick","style","backgroundColor","ref","type","id","htmlFor","helperLabel","fontSize","fontWeight","maxWidth"],"mappings":"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"}
package/dist/index34.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import e, { useState as h, useEffect as E } from "react";
2
2
  import { Icon as N } from "./index5.js";
3
- import { useStableId as $ } from "./index189.js";
3
+ import { useStableId as $ } from "./index190.js";
4
4
  import { getRegionAttributes as I } from "./index65.js";
5
5
  import { useAccessiblePress as _ } from "./index66.js";
6
6
  function r() {
package/dist/index35.js CHANGED
@@ -1,85 +1,92 @@
1
- import e, { useState as I, useEffect as h } from "react";
2
- import { Icon as d } from "./index5.js";
3
- import { useStableId as y } from "./index189.js";
4
- import { getA11yNameAttributes as _ } from "./index70.js";
5
- import { getRegionAttributes as O } from "./index65.js";
6
- import { useAccessiblePress as C } from "./index66.js";
1
+ import e, { useState as R, useEffect as S } from "react";
2
+ import { Icon as p } from "./index5.js";
3
+ import { useStableId as j } from "./index190.js";
4
+ import { getA11yNameAttributes as k } from "./index71.js";
5
+ import { getRegionAttributes as w } from "./index65.js";
6
+ import { useAccessiblePress as F } from "./index66.js";
7
7
  function a() {
8
8
  return a = Object.assign ? Object.assign.bind() : function(r) {
9
- for (var s = 1; s < arguments.length; s++) {
10
- var n = arguments[s];
11
- for (var o in n) ({}).hasOwnProperty.call(n, o) && (r[o] = n[o]);
9
+ for (var n = 1; n < arguments.length; n++) {
10
+ var o = arguments[n];
11
+ for (var s in o) ({}).hasOwnProperty.call(o, s) && (r[s] = o[s]);
12
12
  }
13
13
  return r;
14
14
  }, a.apply(null, arguments);
15
15
  }
16
- const P = ({
16
+ const D = ({
17
17
  renderAccordionContents: r,
18
- renderAccordionSrcElement: s,
19
- defaultOpen: n,
20
- className: o = "",
18
+ renderAccordionSrcElement: n,
19
+ renderControls: o,
20
+ defaultOpen: s,
21
+ expanded: m,
22
+ onChange: v,
23
+ className: E = "",
21
24
  arrowPosition: c = "left",
22
- contentClassName: g = "",
25
+ contentClassName: b = "",
23
26
  disabled: i = !1,
24
- automationId: p = "",
25
- id: v,
26
- ariaLabel: b
27
+ automationId: N = "",
28
+ id: x,
29
+ ariaLabel: $
27
30
  }) => {
28
- const [t, m] = I(!1);
29
- h(() => {
30
- m(n || !1);
31
- }, [n]);
32
- const l = y(v, "custom-accordion"), f = `${l}-content`, {
33
- pressProps: E,
34
- role: x,
35
- tabIndex: N
36
- } = C({
37
- onClick: () => m(!t),
31
+ const [h, f] = R(!1);
32
+ S(() => {
33
+ f(s || !1);
34
+ }, [s]);
35
+ const u = m !== void 0, t = u ? m : h, A = () => {
36
+ u ? v?.(!t) : f(!t);
37
+ }, l = j(x, "custom-accordion"), d = `${l}-content`, {
38
+ pressProps: I,
39
+ role: O,
40
+ tabIndex: y
41
+ } = F({
42
+ onClick: A,
38
43
  isNative: !1,
39
44
  disabled: i
40
- }), $ = O({
45
+ }), _ = w({
41
46
  titleId: l,
42
47
  isFocusable: !1
43
- }), A = "group-focus-visible:[outline:var(--focus-width)_solid_var(--focus-color)] group-focus-visible:[outline-offset:var(--focus-offset)] group-focus-visible:p-[2px]", u = () => i ? "" : c === "left" ? t ? "rotate-90" : "" : t ? "rotate-180" : "";
48
+ }), C = "group-focus-visible:[outline:var(--focus-width)_solid_var(--focus-color)] group-focus-visible:[outline-offset:var(--focus-offset)] group-focus-visible:p-[2px]", g = () => i ? "" : c === "left" ? t ? "rotate-90" : "" : t ? "rotate-180" : "";
44
49
  return /* @__PURE__ */ e.createElement("div", {
45
- className: `se-design-accordion ${o}`,
46
- "data-automation-id": p
50
+ className: `se-design-accordion ${E}`,
51
+ "data-automation-id": N
47
52
  }, /* @__PURE__ */ e.createElement("div", {
48
53
  className: "flex flex-col"
49
- }, /* @__PURE__ */ e.createElement("div", a({}, E, _({
50
- ariaLabel: b
54
+ }, /* @__PURE__ */ e.createElement("div", {
55
+ className: "se-design-accordion-src flex items-center"
56
+ }, /* @__PURE__ */ e.createElement("div", a({}, I, k({
57
+ ariaLabel: $
51
58
  }), {
52
- role: x,
53
- tabIndex: N,
59
+ role: O,
60
+ tabIndex: y,
54
61
  "aria-expanded": t,
55
- "aria-controls": f,
56
- className: "se-design-accordion-src flex items-center cursor-pointer group focus-visible:outline-none"
62
+ "aria-controls": d,
63
+ className: "flex items-center flex-1 cursor-pointer group focus-visible:outline-none"
57
64
  }), /* @__PURE__ */ e.createElement("div", {
58
- className: `flex items-center flex-1 rounded ${A}`
65
+ className: `flex items-center rounded ${C}`
59
66
  }, c === "left" && /* @__PURE__ */ e.createElement("div", {
60
- className: `se-design-accordion-icon transform transition-transform duration-300 ${u()} ${i ? "opacity-30 pointer-events-none" : ""}`
61
- }, /* @__PURE__ */ e.createElement(d, {
67
+ className: `se-design-accordion-icon transform transition-transform duration-300 ${g()} ${i ? "opacity-30 pointer-events-none" : ""}`
68
+ }, /* @__PURE__ */ e.createElement(p, {
62
69
  name: "rightSide"
63
70
  })), /* @__PURE__ */ e.createElement("div", {
64
- className: "se-design-accordion-elements flex-1"
71
+ className: "se-design-accordion-elements"
65
72
  }, /* @__PURE__ */ e.createElement("div", {
66
73
  id: l,
67
74
  className: "se-design-accordion-src-element title"
68
- }, s({
75
+ }, n({
69
76
  isOpen: t
70
77
  }))), c === "right" && /* @__PURE__ */ e.createElement("div", {
71
- className: `se-design-accordion-icon transform transition-transform duration-300 ${u()} ${i ? "opacity-30 pointer-events-none" : ""}`
72
- }, /* @__PURE__ */ e.createElement(d, {
78
+ className: `se-design-accordion-icon transform transition-transform duration-300 ${g()} ${i ? "opacity-30 pointer-events-none" : ""}`
79
+ }, /* @__PURE__ */ e.createElement(p, {
73
80
  name: "chevron"
74
- })))), t && /* @__PURE__ */ e.createElement("div", a({
75
- id: f
76
- }, $, {
77
- className: `se-design-accordion-content transition-all duration-300 mt-1 ${g}`
81
+ })))), o?.()), t && /* @__PURE__ */ e.createElement("div", a({
82
+ id: d
83
+ }, _, {
84
+ className: `se-design-accordion-content transition-all duration-300 mt-1 ${b}`
78
85
  }), r({
79
86
  isOpen: t
80
87
  }))));
81
88
  };
82
89
  export {
83
- P as CustomAccordion
90
+ D as CustomAccordion
84
91
  };
85
92
  //# sourceMappingURL=index35.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index35.js","sources":["../src/components/CustomAccordion/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useState } from 'react';\nimport { Icon } from '../Icon';\nimport { useStableId } from '../../utils/useStableId';\nimport { useAccessiblePress, getA11yNameAttributes } from '../../utils/a11y';\nimport { getRegionAttributes } from '../../utils/a11y/regionAttributes';\n\nexport interface CustomAccordionProps {\n renderAccordionContents: (props: { isOpen: boolean }) => React.ReactNode;\n renderAccordionSrcElement: (props: { isOpen: boolean }) => React.ReactNode;\n defaultOpen?: boolean;\n className?: string;\n arrowPosition?: 'left' | 'right';\n contentClassName?: string;\n disabled?: boolean;\n automationId?: string;\n id?: string;\n ariaLabel?: string;\n}\n\nexport const CustomAccordion: FC<CustomAccordionProps> = ({\n renderAccordionContents,\n renderAccordionSrcElement,\n defaultOpen,\n className = '',\n arrowPosition = 'left',\n contentClassName = '',\n disabled = false,\n automationId = '',\n id,\n ariaLabel\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n useEffect(() => {\n setIsOpen(defaultOpen || false);\n }, [defaultOpen]);\n\n // Generate stable IDs for ARIA relationships\n const triggerId = useStableId(id, 'custom-accordion');\n const contentId = `${triggerId}-content`;\n\n // Use accessible press hook for keyboard + mouse handling\n const { pressProps, role, tabIndex } = useAccessiblePress({\n onClick: () => setIsOpen(!isOpen),\n isNative: false,\n disabled\n });\n\n // Get region attributes for content panel\n const regionAttributes = getRegionAttributes({\n titleId: triggerId,\n isFocusable: false\n });\n\n const focusVisibleClasses = 'group-focus-visible:[outline:var(--focus-width)_solid_var(--focus-color)] group-focus-visible:[outline-offset:var(--focus-offset)] group-focus-visible:p-[2px]';\n\n const getArrowRotation = () => {\n if (disabled) {\n return '';\n }\n if (arrowPosition === 'left') {\n return isOpen ? 'rotate-90' : '';\n }\n return isOpen ? 'rotate-180' : '';\n };\n\n return (\n <div className={`se-design-accordion ${className}`} data-automation-id={automationId}>\n <div className=\"flex flex-col\">\n <div\n {...pressProps}\n {...getA11yNameAttributes({ ariaLabel })}\n role={role}\n tabIndex={tabIndex}\n aria-expanded={isOpen}\n aria-controls={contentId}\n className=\"se-design-accordion-src flex items-center cursor-pointer group focus-visible:outline-none\"\n >\n <div className={`flex items-center flex-1 rounded ${focusVisibleClasses}`}>\n {arrowPosition === 'left' && (\n <div\n className={`se-design-accordion-icon transform transition-transform duration-300 ${getArrowRotation()} ${\n disabled ? 'opacity-30 pointer-events-none' : ''\n }`}\n >\n <Icon name=\"rightSide\" />\n </div>\n )}\n <div className=\"se-design-accordion-elements flex-1\">\n <div id={triggerId} className=\"se-design-accordion-src-element title\">{renderAccordionSrcElement({ isOpen })}</div>\n </div>\n {arrowPosition === 'right' && (\n <div\n className={`se-design-accordion-icon transform transition-transform duration-300 ${getArrowRotation()} ${\n disabled ? 'opacity-30 pointer-events-none' : ''\n }`}\n >\n <Icon name=\"chevron\" />\n </div>\n )}\n </div>\n </div>\n {isOpen && (\n <div id={contentId} {...regionAttributes} className={`se-design-accordion-content transition-all duration-300 mt-1 ${contentClassName}`}>\n {renderAccordionContents({ isOpen })}\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["CustomAccordion","renderAccordionContents","renderAccordionSrcElement","defaultOpen","className","arrowPosition","contentClassName","disabled","automationId","id","ariaLabel","isOpen","setIsOpen","useState","useEffect","triggerId","useStableId","contentId","pressProps","role","tabIndex","useAccessiblePress","onClick","isNative","regionAttributes","getRegionAttributes","titleId","isFocusable","focusVisibleClasses","getArrowRotation","React","createElement","_extends","getA11yNameAttributes","Icon","name"],"mappings":";;;;;;;;;;;;;;;AAmBO,MAAMA,IAA4CA,CAAC;AAAA,EACxDC,yBAAAA;AAAAA,EACAC,2BAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,WAAAA,IAAY;AAAA,EACZC,eAAAA,IAAgB;AAAA,EAChBC,kBAAAA,IAAmB;AAAA,EACnBC,UAAAA,IAAW;AAAA,EACXC,cAAAA,IAAe;AAAA,EACfC,IAAAA;AAAAA,EACAC,WAAAA;AACF,MAAM;AACJ,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK;AAC1CC,EAAAA,EAAU,MAAM;AACdF,IAAAA,EAAUT,KAAe,EAAK;AAAA,EAChC,GAAG,CAACA,CAAW,CAAC;AAGhB,QAAMY,IAAYC,EAAYP,GAAI,kBAAkB,GAC9CQ,IAAY,GAAGF,CAAS,YAGxB;AAAA,IAAEG,YAAAA;AAAAA,IAAYC,MAAAA;AAAAA,IAAMC,UAAAA;AAAAA,EAAAA,IAAaC,EAAmB;AAAA,IACxDC,SAASA,MAAMV,EAAU,CAACD,CAAM;AAAA,IAChCY,UAAU;AAAA,IACVhB,UAAAA;AAAAA,EAAAA,CACD,GAGKiB,IAAmBC,EAAoB;AAAA,IAC3CC,SAASX;AAAAA,IACTY,aAAa;AAAA,EAAA,CACd,GAEKC,IAAsB,kKAEtBC,IAAmBA,MACnBtB,IACK,KAELF,MAAkB,SACbM,IAAS,cAAc,KAEzBA,IAAS,eAAe;AAGjC,SACEmB,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAK3B,WAAW,uBAAuBA,CAAS;AAAA,IAAI,sBAAoBI;AAAAA,EAAAA,GACtEsB,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAK3B,WAAU;AAAA,EAAA,qBACb2B,cAAA,OAAAC,EAAA,CAAA,GACMd,GACAe,EAAsB;AAAA,IAAEvB,WAAAA;AAAAA,EAAAA,CAAW,GAAC;AAAA,IACxCS,MAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACA,iBAAeT;AAAAA,IACf,iBAAeM;AAAAA,IACfb,WAAU;AAAA,EAAA,CAA2F,GAErG0B,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAK3B,WAAW,oCAAoCwB,CAAmB;AAAA,EAAA,GACpEvB,MAAkB,UACjByB,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IACE3B,WAAW,wEAAwEyB,EAAAA,CAAkB,IACnGtB,IAAW,mCAAmC,EAAE;AAAA,EAAA,GAGlDuB,gBAAAA,EAAAC,cAACG,GAAI;AAAA,IAACC,MAAK;AAAA,EAAA,CAAa,CACrB,GAEPL,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAK3B,WAAU;AAAA,EAAA,GACb0B,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKtB,IAAIM;AAAAA,IAAWX,WAAU;AAAA,EAAA,GAAyCF,EAA0B;AAAA,IAAES,QAAAA;AAAAA,EAAAA,CAAQ,CAAO,CAC/G,GACJN,MAAkB,WACjByB,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IACE3B,WAAW,wEAAwEyB,EAAAA,CAAkB,IACnGtB,IAAW,mCAAmC,EAAE;AAAA,EAAA,GAGlDuB,gBAAAA,EAAAC,cAACG,GAAI;AAAA,IAACC,MAAK;AAAA,EAAA,CAAW,CACnB,CAEJ,CACF,GACJxB,KACCmB,gBAAAA,EAAAC,cAAA,OAAAC,EAAA;AAAA,IAAKvB,IAAIQ;AAAAA,EAAAA,GAAeO,GAAgB;AAAA,IAAEpB,WAAW,gEAAgEE,CAAgB;AAAA,EAAA,CAAG,GACrIL,EAAwB;AAAA,IAAEU,QAAAA;AAAAA,EAAAA,CAAQ,CAChC,CAEJ,CACF;AAET;"}
1
+ {"version":3,"file":"index35.js","sources":["../src/components/CustomAccordion/index.tsx"],"sourcesContent":["import React, { FC, useEffect, useState } from 'react';\nimport { Icon } from '../Icon';\nimport { useStableId } from '../../utils/useStableId';\nimport { useAccessiblePress, getA11yNameAttributes } from '../../utils/a11y';\nimport { getRegionAttributes } from '../../utils/a11y/regionAttributes';\n\nexport interface CustomAccordionProps {\n renderAccordionContents: (props: { isOpen: boolean }) => React.ReactNode;\n renderAccordionSrcElement: (props: { isOpen: boolean }) => React.ReactNode;\n renderControls?: () => React.ReactNode;\n defaultOpen?: boolean;\n expanded?: boolean;\n onChange?: (isOpen: boolean) => void;\n className?: string;\n arrowPosition?: 'left' | 'right';\n contentClassName?: string;\n disabled?: boolean;\n automationId?: string;\n id?: string;\n ariaLabel?: string;\n}\n\nexport const CustomAccordion: FC<CustomAccordionProps> = ({\n renderAccordionContents,\n renderAccordionSrcElement,\n renderControls,\n defaultOpen,\n expanded,\n onChange,\n className = '',\n arrowPosition = 'left',\n contentClassName = '',\n disabled = false,\n automationId = '',\n id,\n ariaLabel\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n useEffect(() => {\n setIsOpen(defaultOpen || false);\n }, [defaultOpen]);\n\n const isControlled = expanded !== undefined;\n const open = isControlled ? expanded : isOpen;\n\n const handleToggle = () => {\n if (isControlled) {\n onChange?.(!open);\n } else {\n setIsOpen(!open);\n }\n };\n\n // Generate stable IDs for ARIA relationships\n const triggerId = useStableId(id, 'custom-accordion');\n const contentId = `${triggerId}-content`;\n\n // Use accessible press hook for keyboard + mouse handling\n const { pressProps, role, tabIndex } = useAccessiblePress({\n onClick: handleToggle,\n isNative: false,\n disabled\n });\n\n // Get region attributes for content panel\n const regionAttributes = getRegionAttributes({\n titleId: triggerId,\n isFocusable: false\n });\n\n const focusVisibleClasses = 'group-focus-visible:[outline:var(--focus-width)_solid_var(--focus-color)] group-focus-visible:[outline-offset:var(--focus-offset)] group-focus-visible:p-[2px]';\n\n const getArrowRotation = () => {\n if (disabled) {\n return '';\n }\n if (arrowPosition === 'left') {\n return open ? 'rotate-90' : '';\n }\n return open ? 'rotate-180' : '';\n };\n\n return (\n <div className={`se-design-accordion ${className}`} data-automation-id={automationId}>\n <div className=\"flex flex-col\">\n <div className=\"se-design-accordion-src flex items-center\">\n <div\n {...pressProps}\n {...getA11yNameAttributes({ ariaLabel })}\n role={role}\n tabIndex={tabIndex}\n aria-expanded={open}\n aria-controls={contentId}\n className=\"flex items-center flex-1 cursor-pointer group focus-visible:outline-none\"\n >\n <div className={`flex items-center rounded ${focusVisibleClasses}`}>\n {arrowPosition === 'left' && (\n <div className={`se-design-accordion-icon transform transition-transform duration-300 ${getArrowRotation()} ${\n disabled ? 'opacity-30 pointer-events-none' : ''\n }`}>\n <Icon name=\"rightSide\" />\n </div>\n )}\n <div className=\"se-design-accordion-elements\">\n <div id={triggerId} className=\"se-design-accordion-src-element title\">{renderAccordionSrcElement({ isOpen: open })}</div>\n </div>\n {arrowPosition === 'right' && (\n <div className={`se-design-accordion-icon transform transition-transform duration-300 ${getArrowRotation()} ${\n disabled ? 'opacity-30 pointer-events-none' : ''\n }`}>\n <Icon name=\"chevron\" />\n </div>\n )}\n </div>\n </div>\n {renderControls?.()}\n </div>\n {open && (\n <div id={contentId} {...regionAttributes} className={`se-design-accordion-content transition-all duration-300 mt-1 ${contentClassName}`}>\n {renderAccordionContents({ isOpen: open })}\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["CustomAccordion","renderAccordionContents","renderAccordionSrcElement","renderControls","defaultOpen","expanded","onChange","className","arrowPosition","contentClassName","disabled","automationId","id","ariaLabel","isOpen","setIsOpen","useState","useEffect","isControlled","undefined","open","handleToggle","triggerId","useStableId","contentId","pressProps","role","tabIndex","useAccessiblePress","onClick","isNative","regionAttributes","getRegionAttributes","titleId","isFocusable","focusVisibleClasses","getArrowRotation","React","createElement","_extends","getA11yNameAttributes","Icon","name"],"mappings":"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"}
package/dist/index37.js CHANGED
@@ -3,8 +3,8 @@ import { Popover as ve } from "./index18.js";
3
3
  import { Icon as we } from "./index5.js";
4
4
  import { Checkbox as Ee } from "./index22.js";
5
5
  import { Button as G } from "./index3.js";
6
- import { useCombobox as ke } from "./index195.js";
7
- import { useStableId as be } from "./index189.js";
6
+ import { useCombobox as ke } from "./index196.js";
7
+ import { useStableId as be } from "./index190.js";
8
8
  /* empty css */
9
9
  function g() {
10
10
  return g = Object.assign ? Object.assign.bind() : function(v) {
package/dist/index38.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import e from "react";
2
- import { useStableId as A } from "./index189.js";
3
- import { mergeIds as P } from "./index190.js";
4
- import { getA11yNameAttributes as _ } from "./index70.js";
2
+ import { useStableId as A } from "./index190.js";
3
+ import { mergeIds as P } from "./index191.js";
4
+ import { getA11yNameAttributes as _ } from "./index71.js";
5
5
  /* empty css */
6
6
  function z({
7
7
  value: l,