se-design 1.0.71 → 1.0.73-dev1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) 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/index17.js +2 -1
  155. package/dist/index17.js.map +1 -1
  156. package/dist/index170.js +2 -2
  157. package/dist/index170.js.map +1 -1
  158. package/dist/index171.js +2 -2
  159. package/dist/index171.js.map +1 -1
  160. package/dist/index172.js +1 -1
  161. package/dist/index172.js.map +1 -1
  162. package/dist/index173.js +1 -1
  163. package/dist/index173.js.map +1 -1
  164. package/dist/index174.js +2 -2
  165. package/dist/index174.js.map +1 -1
  166. package/dist/index175.js +2 -2
  167. package/dist/index175.js.map +1 -1
  168. package/dist/index176.js +1 -1
  169. package/dist/index176.js.map +1 -1
  170. package/dist/index177.js +1 -1
  171. package/dist/index177.js.map +1 -1
  172. package/dist/index178.js +1 -1
  173. package/dist/index178.js.map +1 -1
  174. package/dist/index179.js +1 -1
  175. package/dist/index179.js.map +1 -1
  176. package/dist/index18.js +160 -156
  177. package/dist/index18.js.map +1 -1
  178. package/dist/index180.js +1 -1
  179. package/dist/index180.js.map +1 -1
  180. package/dist/index181.js +1 -1
  181. package/dist/index181.js.map +1 -1
  182. package/dist/index182.js +1 -1
  183. package/dist/index182.js.map +1 -1
  184. package/dist/index183.js +1 -1
  185. package/dist/index183.js.map +1 -1
  186. package/dist/index184.js +2 -2
  187. package/dist/index184.js.map +1 -1
  188. package/dist/index185.js +2 -2
  189. package/dist/index185.js.map +1 -1
  190. package/dist/index186.js +2 -2
  191. package/dist/index186.js.map +1 -1
  192. package/dist/index187.js +2 -149
  193. package/dist/index187.js.map +1 -1
  194. package/dist/index188.js +149 -9
  195. package/dist/index188.js.map +1 -1
  196. package/dist/index189.js +8 -5
  197. package/dist/index189.js.map +1 -1
  198. package/dist/index190.js +5 -4
  199. package/dist/index190.js.map +1 -1
  200. package/dist/index191.js +8 -0
  201. package/dist/index191.js.map +1 -0
  202. package/dist/{index193.js → index194.js} +1 -1
  203. package/dist/{index193.js.map → index194.js.map} +1 -1
  204. package/dist/{index195.js → index196.js} +3 -3
  205. package/dist/{index195.js.map → index196.js.map} +1 -1
  206. package/dist/{index197.js → index198.js} +1 -1
  207. package/dist/{index197.js.map → index198.js.map} +1 -1
  208. package/dist/{index205.js → index206.js} +1 -1
  209. package/dist/{index205.js.map → index206.js.map} +1 -1
  210. package/dist/index21.js +34 -30
  211. package/dist/index21.js.map +1 -1
  212. package/dist/{index213.js → index214.js} +1 -1
  213. package/dist/{index213.js.map → index214.js.map} +1 -1
  214. package/dist/index217.js +42 -42
  215. package/dist/index217.js.map +1 -1
  216. package/dist/index22.js +31 -31
  217. package/dist/index22.js.map +1 -1
  218. package/dist/index228.js +1 -1
  219. package/dist/index229.js +20 -52
  220. package/dist/index229.js.map +1 -1
  221. package/dist/index230.js +53 -9
  222. package/dist/index230.js.map +1 -1
  223. package/dist/index231.js +18 -9
  224. package/dist/index231.js.map +1 -1
  225. package/dist/index232.js +9 -4
  226. package/dist/index232.js.map +1 -1
  227. package/dist/index233.js +10 -170
  228. package/dist/index233.js.map +1 -1
  229. package/dist/index234.js +5 -11
  230. package/dist/index234.js.map +1 -1
  231. package/dist/index235.js +170 -22
  232. package/dist/index235.js.map +1 -1
  233. package/dist/index236.js +11 -19
  234. package/dist/index236.js.map +1 -1
  235. package/dist/index24.js +2 -2
  236. package/dist/index27.js +2 -2
  237. package/dist/index28.js +119 -60
  238. package/dist/index28.js.map +1 -1
  239. package/dist/index29.js +1 -1
  240. package/dist/index3.js +1 -1
  241. package/dist/index30.js +56 -41
  242. package/dist/index30.js.map +1 -1
  243. package/dist/index31.js +11 -10
  244. package/dist/index32.js +59 -44
  245. package/dist/index32.js.map +1 -1
  246. package/dist/index34.js +1 -1
  247. package/dist/index35.js +56 -49
  248. package/dist/index35.js.map +1 -1
  249. package/dist/index37.js +2 -2
  250. package/dist/index38.js +3 -3
  251. package/dist/index39.js +1 -1
  252. package/dist/index40.js +1 -1
  253. package/dist/index40.js.map +1 -1
  254. package/dist/index41.js +8 -7
  255. package/dist/index42.js +7 -6
  256. package/dist/index44.js +3 -3
  257. package/dist/index45.js +4 -4
  258. package/dist/index48.js +53 -56
  259. package/dist/index48.js.map +1 -1
  260. package/dist/index49.js +35 -25
  261. package/dist/index49.js.map +1 -1
  262. package/dist/index5.js +294 -307
  263. package/dist/index5.js.map +1 -1
  264. package/dist/index50.js +48 -48
  265. package/dist/index50.js.map +1 -1
  266. package/dist/index51.js +2 -2
  267. package/dist/index54.js +20 -19
  268. package/dist/index54.js.map +1 -1
  269. package/dist/index56.js +1 -1
  270. package/dist/index57.js +13 -9
  271. package/dist/index57.js.map +1 -1
  272. package/dist/index6.js +8 -7
  273. package/dist/index62.js +1 -1
  274. package/dist/index63.js +1 -1
  275. package/dist/index64.js +3 -2
  276. package/dist/index66.js +1 -1
  277. package/dist/index69.js +59 -5
  278. package/dist/index69.js.map +1 -1
  279. package/dist/index70.js +5 -9
  280. package/dist/index70.js.map +1 -1
  281. package/dist/index71.js +12 -0
  282. package/dist/index71.js.map +1 -0
  283. package/dist/index73.js +2 -2
  284. package/dist/index73.js.map +1 -1
  285. package/dist/index74.js +2 -2
  286. package/dist/index74.js.map +1 -1
  287. package/dist/index75.js +2 -2
  288. package/dist/index75.js.map +1 -1
  289. package/dist/index76.js +1 -1
  290. package/dist/index76.js.map +1 -1
  291. package/dist/index77.js +1 -1
  292. package/dist/index77.js.map +1 -1
  293. package/dist/index78.js +1 -1
  294. package/dist/index78.js.map +1 -1
  295. package/dist/index79.js +1 -1
  296. package/dist/index79.js.map +1 -1
  297. package/dist/index8.js +3 -3
  298. package/dist/index80.js +1 -1
  299. package/dist/index80.js.map +1 -1
  300. package/dist/index81.js +1 -1
  301. package/dist/index81.js.map +1 -1
  302. package/dist/index82.js +1 -1
  303. package/dist/index82.js.map +1 -1
  304. package/dist/index83.js +1 -1
  305. package/dist/index83.js.map +1 -1
  306. package/dist/index84.js +1 -1
  307. package/dist/index84.js.map +1 -1
  308. package/dist/index85.js +1 -1
  309. package/dist/index85.js.map +1 -1
  310. package/dist/index86.js +1 -1
  311. package/dist/index86.js.map +1 -1
  312. package/dist/index87.js +1 -1
  313. package/dist/index87.js.map +1 -1
  314. package/dist/index88.js +1 -1
  315. package/dist/index88.js.map +1 -1
  316. package/dist/index89.js +1 -1
  317. package/dist/index89.js.map +1 -1
  318. package/dist/index90.js +1 -1
  319. package/dist/index90.js.map +1 -1
  320. package/dist/index91.js +1 -1
  321. package/dist/index91.js.map +1 -1
  322. package/dist/index92.js +1 -1
  323. package/dist/index92.js.map +1 -1
  324. package/dist/index93.js +1 -1
  325. package/dist/index93.js.map +1 -1
  326. package/dist/index94.js +1 -1
  327. package/dist/index94.js.map +1 -1
  328. package/dist/index95.js +1 -1
  329. package/dist/index95.js.map +1 -1
  330. package/dist/index96.js +1 -1
  331. package/dist/index96.js.map +1 -1
  332. package/dist/index97.js +1 -1
  333. package/dist/index97.js.map +1 -1
  334. package/dist/index98.js +1 -1
  335. package/dist/index98.js.map +1 -1
  336. package/dist/index99.js +2 -2
  337. package/dist/index99.js.map +1 -1
  338. package/package.json +1 -1
  339. package/dist/components/NavigationBar/useTabsA11y.d.ts +0 -36
  340. package/dist/index216.js +0 -35
  341. package/dist/index216.js.map +0 -1
  342. package/dist/index72.js +0 -5
  343. package/dist/index72.js.map +0 -1
package/dist/index28.js CHANGED
@@ -1,84 +1,143 @@
1
- import r, { useState as f, useEffect as k } from "react";
2
- import { Icon as E } from "./index5.js";
3
- import { Popover as N } from "./index18.js";
4
- import { MenuList as I } from "./index17.js";
1
+ import o, { useState as F, useMemo as R, useRef as S, useEffect as _ } from "react";
2
+ import { Icon as $ } from "./index5.js";
3
+ import { Popover as j } from "./index18.js";
4
+ import { MenuList as B } from "./index17.js";
5
+ import { useStableId as z } from "./index190.js";
6
+ import { getA11yNameAttributes as H } from "./index71.js";
7
+ import { useTabsA11y as V, getPanelId as q } from "./index69.js";
5
8
  /* empty css */
6
- const M = ({
7
- defaultActiveTab: a,
8
- tabs: o,
9
- onTabChange: p,
10
- primaryTabCount: i = 0,
11
- singleTabAsHeading: y = !1
9
+ function s() {
10
+ return s = Object.assign ? Object.assign.bind() : function(l) {
11
+ for (var t = 1; t < arguments.length; t++) {
12
+ var i = arguments[t];
13
+ for (var c in i) ({}).hasOwnProperty.call(i, c) && (l[c] = i[c]);
14
+ }
15
+ return l;
16
+ }, s.apply(null, arguments);
17
+ }
18
+ const ee = ({
19
+ defaultActiveTab: l,
20
+ tabs: t,
21
+ onTabChange: i,
22
+ primaryTabCount: c,
23
+ headingLevel: v,
24
+ id: A,
25
+ ariaLabel: D = "Tabs",
26
+ ariaLabelledBy: L,
27
+ panelId: f
12
28
  }) => {
13
- const T = a || (o[0] ? o[0].id : ""), [n, c] = f(T), [d, m] = f(!1), v = i || o?.length, h = o.slice(0, v), l = o.slice(v), s = l.find((e) => e.id === n), x = y && o.length === 1;
14
- k(() => {
15
- c(a || "");
16
- }, [a]);
17
- const u = (e) => {
18
- c(e?.id), p?.(e?.id);
19
- }, b = (e, t) => e.id === t;
20
- if (x) {
21
- const e = o[0];
22
- return /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement("div", {
23
- className: "se-design-tabs-heading text-xl font-semibold text-[var(--color-gray-900)] mb-4"
24
- }, e.label), /* @__PURE__ */ r.createElement("div", {
29
+ const O = l || (t[0] ? t[0].id : ""), [d, g] = F(O), [p, h] = F(!1), T = c ?? t?.length, b = t.slice(0, T), m = t.slice(T), u = m.find((e) => e.id === d), w = t.some((e) => e.renderTabContent), y = z(A, "tabs"), M = R(() => {
30
+ const e = b.filter((a) => !a.disabled), r = m.filter((a) => !a.disabled), n = e.map((a) => a.id);
31
+ return r.length > 0 ? [...n, "overflow"] : n;
32
+ }, [b, m]), {
33
+ getTabProps: E,
34
+ getPanelProps: K,
35
+ handleKeyDown: I,
36
+ setFocusedTabId: x
37
+ } = V({
38
+ itemIds: M,
39
+ activeItem: d,
40
+ orientation: "horizontal",
41
+ idBase: y,
42
+ includePanelLinks: w || !!f,
43
+ externalPanelId: f
44
+ }), k = S(null);
45
+ _(() => {
46
+ g(l || "");
47
+ }, [l]);
48
+ const C = (e) => {
49
+ g(e?.id), i?.(e?.id);
50
+ }, P = (e, r) => e.id === r;
51
+ if (v && t.length === 1) {
52
+ const e = t[0];
53
+ return /* @__PURE__ */ o.createElement(o.Fragment, null, /* @__PURE__ */ o.createElement(v, {
54
+ className: "se-design-tabs se-design-tabs-heading"
55
+ }, e.label), /* @__PURE__ */ o.createElement("div", {
25
56
  className: "se-design-tabs-content"
26
- }, /* @__PURE__ */ r.createElement("div", {
57
+ }, /* @__PURE__ */ o.createElement("div", {
27
58
  className: "tab-content block"
28
59
  }, e?.renderTabContent && e?.renderTabContent(e))));
29
60
  }
30
- return /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement("div", {
31
- className: "se-design-tabs flex items-center relative border rounded-md border-[var(--color-gray-400)] w-fit",
61
+ return /* @__PURE__ */ o.createElement(o.Fragment, null, /* @__PURE__ */ o.createElement("div", s({
62
+ className: "se-design-tabs flex items-stretch relative border rounded-md border-[var(--color-gray-400)] w-fit",
63
+ role: "tablist",
32
64
  "data-automation-id": "tabs-container"
33
- }, h.map((e) => {
34
- const t = n === e.id, g = e.disabled;
35
- return /* @__PURE__ */ r.createElement("div", {
36
- key: e.label,
37
- onClick: () => !g && u(e),
38
- className: `se-design-tab-item text-base px-3 py-0.5 border-l first:border-l-0 first:rounded-l-[0.3rem] last:rounded-r-[0.3rem] border-[var(--color-gray-200)] ${g ? "text-[var(--color-gray-400)] cursor-not-allowed" : t ? "se-design-tab-item-active text-[var(--color-blue-500)] bg-[var(--color-blue-100)] font-medium hover:cursor-pointer" : "text-[var(--color-gray-700)] font-normal hover:bg-[var(--color-gray-50)] hover:text-[var(--color-gray-900)] cursor-pointer transition-all duration-200 ease-in-out"}`,
65
+ }, H({
66
+ ariaLabel: D,
67
+ ariaLabelledBy: L
68
+ })), b.map((e) => {
69
+ const r = d === e.id, n = !!e.disabled, a = E(e.id);
70
+ return /* @__PURE__ */ o.createElement("button", s({
71
+ type: "button",
72
+ key: e.id
73
+ }, a, {
74
+ disabled: n,
75
+ "aria-label": e.ariaLabel,
76
+ onFocus: () => !n && x(e.id),
77
+ onKeyDown: I,
78
+ onClick: () => C(e),
79
+ className: `se-design-tab-item flex items-center text-base px-3 py-0.5 min-w-0 border-l first:border-l-0 first:rounded-l-[0.3rem] last:rounded-r-[0.3rem] border-[var(--color-gray-400)] ${n ? "" : "focus-outline"} ${n ? "text-[var(--color-gray-400)] cursor-not-allowed" : r ? "se-design-tab-item-active text-[var(--color-white)] bg-[var(--color-blue-500)] font-medium hover:cursor-pointer" : "text-[var(--color-gray-700)] font-normal hover:bg-[var(--color-gray-50)] hover:text-[var(--color-gray-900)] cursor-pointer transition-all duration-200 ease-in-out"}`,
39
80
  "data-automation-id": `tab-item-${e.automationId || e.id || ""}`
40
- }, e.label);
41
- }), l.length > 0 && /* @__PURE__ */ r.createElement(N, {
81
+ }), e.label);
82
+ }), m.length > 0 && /* @__PURE__ */ o.createElement(j, {
42
83
  className: "se-design-overflow-tabs",
43
84
  position: "bottom-left",
44
85
  automationId: "tabs-kebab-menu",
45
86
  noBorder: !0,
87
+ disableClickToggle: !0,
88
+ onPopoverToggle: (e) => {
89
+ e || k.current?.focus();
90
+ },
46
91
  renderPopoverSrcElement: ({
47
- displayPopover: e
48
- }) => /* @__PURE__ */ r.createElement("div", {
49
- className: `overflow-tabs-src-element border-l px-3 py-0.5 rounded-r-md font-medium hover:cursor-pointer transition-all duration-200 ease-in-out ${e ? "bg-[var(--color-blue-100)]" : ""} ${s?.label ? "bg-[var(--color-blue-100)]" : "hover:bg-[var(--color-gray-50)]"}`,
50
- onMouseEnter: () => m(!0),
51
- onMouseLeave: () => m(!1)
52
- }, s?.label ? /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement("span", {
53
- className: "text-[var(--color-blue-500)]"
54
- }, s?.label), /* @__PURE__ */ r.createElement(E, {
55
- name: "chevron",
56
- rotation: e ? "180" : "0",
57
- stroke: d ? "var(--color-gray-900)" : "var(--color-gray-700)"
58
- })) : /* @__PURE__ */ r.createElement(E, {
59
- name: "kebab-menu",
60
- fill: d ? "var(--color-gray-900)" : "var(--color-gray-700)"
61
- })),
92
+ displayPopover: e,
93
+ togglePopover: r
94
+ }) => {
95
+ const n = E("overflow"), a = u ? q(u.id, y) : void 0;
96
+ return /* @__PURE__ */ o.createElement("div", s({}, n, {
97
+ ref: (N) => {
98
+ k.current = N, n.ref(N);
99
+ },
100
+ "aria-controls": a,
101
+ "aria-haspopup": "true",
102
+ "aria-expanded": e,
103
+ onClick: () => r(),
104
+ onFocus: () => x("overflow"),
105
+ onKeyDown: I,
106
+ className: `overflow-tabs-src-element focus-outline border-l px-3 py-0.5 rounded-r-md font-medium hover:cursor-pointer transition-all duration-200 ease-in-out ${e ? "bg-[var(--color-blue-100)]" : ""} ${u?.label ? "bg-[var(--color-blue-500)]" : "hover:bg-[var(--color-gray-50)]"}`,
107
+ onMouseEnter: () => h(!0),
108
+ onMouseLeave: () => h(!1)
109
+ }), u?.label ? /* @__PURE__ */ o.createElement(o.Fragment, null, /* @__PURE__ */ o.createElement("span", {
110
+ className: "text-[var(--color-white)]"
111
+ }, u?.label), /* @__PURE__ */ o.createElement($, {
112
+ name: "chevron",
113
+ rotation: e ? "180" : "0",
114
+ stroke: p ? "var(--color-gray-100)" : "var(--color-white)"
115
+ })) : /* @__PURE__ */ o.createElement($, {
116
+ name: "kebab-menu",
117
+ fill: p ? "var(--color-gray-900)" : "var(--color-gray-700)"
118
+ }));
119
+ },
62
120
  renderPopoverContents: ({
63
121
  closePopoverCb: e
64
- }) => /* @__PURE__ */ r.createElement(I, {
65
- items: l.map((t) => ({
66
- id: t?.id,
67
- label: t?.label,
68
- automationId: t?.automationId || t?.id,
122
+ }) => /* @__PURE__ */ o.createElement(B, {
123
+ items: m.map((r) => ({
124
+ id: r?.id,
125
+ label: r?.label,
126
+ automationId: r?.automationId || r?.id,
69
127
  onClick: () => {
70
- u(t), e();
128
+ C(r), e();
71
129
  }
72
130
  }))
73
131
  })
74
- })), /* @__PURE__ */ r.createElement("div", {
132
+ })), w && /* @__PURE__ */ o.createElement("div", {
75
133
  className: "se-design-tabs-content"
76
- }, o.map((e) => /* @__PURE__ */ r.createElement("div", {
77
- key: e.id,
78
- className: `tab-content ${b(e, n) ? "block" : "hidden"}`
79
- }, b(e, n) && e?.renderTabContent && e?.renderTabContent(e)))));
134
+ }, t.map((e) => /* @__PURE__ */ o.createElement("div", s({
135
+ key: e.id
136
+ }, K(e.id), {
137
+ className: `tab-content ${P(e, d) ? "block" : "hidden"}`
138
+ }), P(e, d) && e.renderTabContent?.(e)))));
80
139
  };
81
140
  export {
82
- M as Tabs
141
+ ee as Tabs
83
142
  };
84
143
  //# sourceMappingURL=index28.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index28.js","sources":["../src/components/Tabs/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useState, useEffect } from 'react';\nimport { Icon } from '../Icon';\nimport { Popover } from '../Popover';\nimport { MenuList } from '../MenuList';\n\nimport './style.scss';\n\ninterface TabProps {\n label: string;\n id: string;\n disabled?: boolean;\n renderTabContent?: (tab: TabProps) => ReactNode;\n automationId?: string;\n}\ninterface TabsProps {\n defaultActiveTab?: string;\n tabs: TabProps[];\n onTabChange?: (tabId: string) => void;\n primaryTabCount?: number; // prop for controlling primary tabs\n singleTabAsHeading?: boolean; // prop for rendering single tab as heading\n automationId?: string;\n}\n\nexport const Tabs: FC<TabsProps> = ({\n defaultActiveTab,\n tabs,\n onTabChange,\n primaryTabCount = 0,\n singleTabAsHeading = false\n}) => {\n const defaultTabId = defaultActiveTab || (tabs[0] ? tabs[0].id : '');\n const [activeTab, setActiveTab] = useState(defaultTabId);\n const [isIconTabHover, setIsIconTabHover] = useState(false);\n\n const visibleTabCount = primaryTabCount ? primaryTabCount : tabs?.length;\n const visibleTabs = tabs.slice(0, visibleTabCount);\n const overflowTabs = tabs.slice(visibleTabCount);\n const activeOverflowTab = overflowTabs.find((tab) => tab.id === activeTab);\n\n // Check if we should render as heading (single tab and singleTabAsHeading is true)\n const shouldRenderAsHeading = singleTabAsHeading && tabs.length === 1;\n\n useEffect(() => {\n setActiveTab(defaultActiveTab || '');\n }, [defaultActiveTab]);\n\n const handleTabClick = (tab: TabProps) => {\n setActiveTab(tab?.id);\n onTabChange?.(tab?.id);\n };\n\n const isTabActive = (tab: TabProps, activeTab: string) => {\n return tab.id === activeTab;\n };\n\n // If single tab and should render as heading, render just the heading\n if (shouldRenderAsHeading) {\n const singleTab = tabs[0];\n return (\n <>\n <div className=\"se-design-tabs-heading text-xl font-semibold text-[var(--color-gray-900)] mb-4\">\n {singleTab.label}\n </div>\n <div className=\"se-design-tabs-content\">\n <div className=\"tab-content block\">\n {singleTab?.renderTabContent && singleTab?.renderTabContent(singleTab)}\n </div>\n </div>\n </>\n );\n }\n\n return (\n <>\n <div\n className=\"se-design-tabs flex items-center relative border rounded-md border-[var(--color-gray-400)] w-fit\"\n data-automation-id=\"tabs-container\"\n >\n {visibleTabs.map((tab) => {\n const isActive = activeTab === tab.id;\n const isDisabled = tab.disabled;\n return (\n <div\n key={tab.label}\n onClick={() => !isDisabled && handleTabClick(tab)}\n className={`se-design-tab-item text-base px-3 py-0.5 border-l first:border-l-0 first:rounded-l-[0.3rem] last:rounded-r-[0.3rem] border-[var(--color-gray-200)] ${\n isDisabled\n ? 'text-[var(--color-gray-400)] cursor-not-allowed'\n : isActive\n ? 'se-design-tab-item-active text-[var(--color-blue-500)] bg-[var(--color-blue-100)] font-medium hover:cursor-pointer'\n : 'text-[var(--color-gray-700)] font-normal hover:bg-[var(--color-gray-50)] hover:text-[var(--color-gray-900)] cursor-pointer transition-all duration-200 ease-in-out'\n }`}\n data-automation-id={`tab-item-${tab.automationId || tab.id || ''}`}\n >\n {tab.label}\n </div>\n );\n })}\n\n {overflowTabs.length > 0 && (\n <Popover\n className=\"se-design-overflow-tabs\"\n position=\"bottom-left\"\n automationId=\"tabs-kebab-menu\"\n noBorder\n renderPopoverSrcElement={({ displayPopover }) => {\n return (\n <div\n className={`overflow-tabs-src-element border-l px-3 py-0.5 rounded-r-md font-medium hover:cursor-pointer transition-all duration-200 ease-in-out ${\n displayPopover ? 'bg-[var(--color-blue-100)]' : ''\n } ${activeOverflowTab?.label ? 'bg-[var(--color-blue-100)]' : 'hover:bg-[var(--color-gray-50)]'}`}\n onMouseEnter={() => setIsIconTabHover(true)}\n onMouseLeave={() => setIsIconTabHover(false)}\n >\n {activeOverflowTab?.label ? (\n <>\n <span className=\"text-[var(--color-blue-500)]\">{activeOverflowTab?.label}</span>\n <Icon\n name=\"chevron\"\n rotation={displayPopover ? '180' : '0'}\n stroke={isIconTabHover ? 'var(--color-gray-900)' : 'var(--color-gray-700)'}\n />\n </>\n ) : (\n <Icon name=\"kebab-menu\" fill={isIconTabHover ? 'var(--color-gray-900)' : 'var(--color-gray-700)'} />\n )}\n </div>\n );\n }}\n renderPopoverContents={({ closePopoverCb }) => (\n <MenuList\n items={overflowTabs.map((tab) => ({\n id: tab?.id,\n label: tab?.label,\n automationId: tab?.automationId || tab?.id,\n onClick: () => {\n handleTabClick(tab);\n closePopoverCb();\n }\n }))}\n />\n )}\n />\n )}\n </div>\n\n <div className=\"se-design-tabs-content\">\n {tabs.map((tab) => (\n <div key={tab.id} className={`tab-content ${isTabActive(tab, activeTab) ? 'block' : 'hidden'}`}>\n {isTabActive(tab, activeTab) && tab?.renderTabContent && tab?.renderTabContent(tab)}\n </div>\n ))}\n </div>\n </>\n );\n};\n"],"names":["Tabs","defaultActiveTab","tabs","onTabChange","primaryTabCount","singleTabAsHeading","defaultTabId","id","activeTab","setActiveTab","useState","isIconTabHover","setIsIconTabHover","visibleTabCount","length","visibleTabs","slice","overflowTabs","activeOverflowTab","find","tab","shouldRenderAsHeading","useEffect","handleTabClick","isTabActive","singleTab","createElement","React","Fragment","className","label","renderTabContent","map","isActive","isDisabled","disabled","key","onClick","automationId","Popover","position","noBorder","renderPopoverSrcElement","displayPopover","onMouseEnter","onMouseLeave","Icon","name","rotation","stroke","fill","renderPopoverContents","closePopoverCb","MenuList","items"],"mappings":"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"}
1
+ {"version":3,"file":"index28.js","sources":["../src/components/Tabs/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useState, useEffect, useMemo, useRef } from 'react';\nimport { Icon } from '../Icon';\nimport { Popover } from '../Popover';\nimport { MenuList } from '../MenuList';\nimport { useStableId } from '../../utils/useStableId';\nimport { useTabsA11y, getPanelId, getA11yNameAttributes } from '../../utils/a11y';\n\nimport './style.scss';\n\ninterface TabProps {\n label: string;\n id: string;\n disabled?: boolean;\n renderTabContent?: (tab: TabProps) => ReactNode;\n automationId?: string;\n ariaLabel?: string;\n}\ninterface TabsProps {\n defaultActiveTab?: string;\n tabs: TabProps[];\n onTabChange?: (tabId: string) => void;\n primaryTabCount?: number; // prop for controlling primary tabs\n headingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span'; // heading tag to render single tab as a heading element when only one tab is present\n automationId?: string;\n id?: string; // custom ID for baseId (passed to useStableId)\n ariaLabel?: string; // Accessible name when no visible label exists\n ariaLabelledBy?: string; // ID of element that labels this tablist (preferred over ariaLabel)\n panelId?: string; // When consumer manages a single external panel, pass its id here\n}\n\nexport const Tabs: FC<TabsProps> = ({\n defaultActiveTab,\n tabs,\n onTabChange,\n primaryTabCount,\n headingLevel: HeadingTag,\n id,\n ariaLabel = 'Tabs',\n ariaLabelledBy,\n panelId\n}) => {\n const defaultTabId = defaultActiveTab || (tabs[0] ? tabs[0].id : '');\n const [activeTab, setActiveTab] = useState(defaultTabId);\n const [isIconTabHover, setIsIconTabHover] = useState(false);\n\n const visibleTabCount = primaryTabCount ?? tabs?.length;\n const visibleTabs = tabs.slice(0, visibleTabCount);\n const overflowTabs = tabs.slice(visibleTabCount);\n const activeOverflowTab = overflowTabs.find((tab) => tab.id === activeTab);\n\n // Only render internal panels if at least one tab provides content via renderTabContent\n const hasPanelContent = tabs.some(t => t.renderTabContent);\n\n // A11y setup\n const baseId = useStableId(id, 'tabs');\n const itemIds = useMemo(() => {\n const enabledVisibleTabs = visibleTabs.filter(t => !t.disabled);\n const enabledOverflowTabs = overflowTabs.filter(t => !t.disabled);\n const visibleIds = enabledVisibleTabs.map(t => t.id);\n return enabledOverflowTabs.length > 0 ? [...visibleIds, 'overflow'] : visibleIds;\n }, [visibleTabs, overflowTabs]);\n\n const { getTabProps, getPanelProps, handleKeyDown, setFocusedTabId } = useTabsA11y({\n itemIds,\n activeItem: activeTab,\n orientation: 'horizontal',\n idBase: baseId,\n includePanelLinks: hasPanelContent || !!panelId,\n externalPanelId: panelId\n });\n\n // Ref for the overflow button div — needed to return focus after menu closes\n const overflowDivRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n setActiveTab(defaultActiveTab || '');\n }, [defaultActiveTab]);\n\n const handleTabClick = (tab: TabProps) => {\n setActiveTab(tab?.id);\n onTabChange?.(tab?.id);\n };\n\n const isTabActive = (tab: TabProps, activeTab: string) => {\n return tab.id === activeTab;\n };\n\n if (HeadingTag && tabs.length === 1) {\n const singleTab = tabs[0];\n return (\n <>\n <HeadingTag className=\"se-design-tabs se-design-tabs-heading\">\n {singleTab.label}\n </HeadingTag>\n <div className=\"se-design-tabs-content\">\n <div className=\"tab-content block\">\n {singleTab?.renderTabContent && singleTab?.renderTabContent(singleTab)}\n </div>\n </div>\n </>\n );\n }\n\n return (\n <>\n <div\n className=\"se-design-tabs flex items-stretch relative border rounded-md border-[var(--color-gray-400)] w-fit\"\n role=\"tablist\"\n data-automation-id=\"tabs-container\"\n {...getA11yNameAttributes({\n ariaLabel,\n ariaLabelledBy\n })}\n >\n {visibleTabs.map((tab) => {\n const isActive = activeTab === tab.id;\n const isDisabled = !!tab.disabled;\n const tabProps = getTabProps(tab.id);\n return (\n <button\n type=\"button\"\n key={tab.id}\n {...tabProps}\n disabled={isDisabled}\n aria-label={tab.ariaLabel}\n onFocus={() => !isDisabled && setFocusedTabId(tab.id)}\n onKeyDown={handleKeyDown}\n onClick={() => handleTabClick(tab)}\n className={`se-design-tab-item flex items-center text-base px-3 py-0.5 min-w-0 border-l first:border-l-0 first:rounded-l-[0.3rem] last:rounded-r-[0.3rem] border-[var(--color-gray-400)] ${!isDisabled ? 'focus-outline' : ''} ${\n isDisabled\n ? 'text-[var(--color-gray-400)] cursor-not-allowed'\n : isActive\n ? 'se-design-tab-item-active text-[var(--color-white)] bg-[var(--color-blue-500)] font-medium hover:cursor-pointer'\n : 'text-[var(--color-gray-700)] font-normal hover:bg-[var(--color-gray-50)] hover:text-[var(--color-gray-900)] cursor-pointer transition-all duration-200 ease-in-out'\n }`}\n data-automation-id={`tab-item-${tab.automationId || tab.id || ''}`}\n >\n {tab.label}\n </button>\n );\n })}\n\n {overflowTabs.length > 0 && (\n <Popover\n className=\"se-design-overflow-tabs\"\n position=\"bottom-left\"\n automationId=\"tabs-kebab-menu\"\n noBorder\n disableClickToggle={true}\n onPopoverToggle={(isOpen) => {\n // Return focus to the overflow button when the menu closes (e.g. Escape)\n if (!isOpen) overflowDivRef.current?.focus();\n }}\n renderPopoverSrcElement={({ displayPopover, togglePopover }) => {\n const overflowTabProps = getTabProps('overflow');\n const overflowAriaControls = activeOverflowTab\n ? getPanelId(activeOverflowTab.id, baseId)\n : undefined;\n\n return (\n <div\n {...overflowTabProps}\n ref={(el) => { overflowDivRef.current = el; overflowTabProps.ref(el); }}\n aria-controls={overflowAriaControls}\n aria-haspopup=\"true\"\n aria-expanded={displayPopover}\n onClick={() => togglePopover()}\n onFocus={() => setFocusedTabId('overflow')}\n onKeyDown={handleKeyDown}\n className={`overflow-tabs-src-element focus-outline border-l px-3 py-0.5 rounded-r-md font-medium hover:cursor-pointer transition-all duration-200 ease-in-out ${\n displayPopover ? 'bg-[var(--color-blue-100)]' : ''\n } ${activeOverflowTab?.label ? 'bg-[var(--color-blue-500)]' : 'hover:bg-[var(--color-gray-50)]'}`}\n onMouseEnter={() => setIsIconTabHover(true)}\n onMouseLeave={() => setIsIconTabHover(false)}\n >\n {activeOverflowTab?.label ? (\n <>\n <span className=\"text-[var(--color-white)]\">{activeOverflowTab?.label}</span>\n <Icon\n name=\"chevron\"\n rotation={displayPopover ? '180' : '0'}\n stroke={isIconTabHover ? 'var(--color-gray-100)' : 'var(--color-white)'}\n />\n </>\n ) : (\n <Icon name=\"kebab-menu\" fill={isIconTabHover ? 'var(--color-gray-900)' : 'var(--color-gray-700)'} />\n )}\n </div>\n );\n }}\n renderPopoverContents={({ closePopoverCb }) => (\n <MenuList\n items={overflowTabs.map((tab) => ({\n id: tab?.id,\n label: tab?.label,\n automationId: tab?.automationId || tab?.id,\n onClick: () => {\n handleTabClick(tab);\n closePopoverCb();\n }\n }))}\n />\n )}\n />\n )}\n </div>\n\n {hasPanelContent && (\n <div className=\"se-design-tabs-content\">\n {tabs.map((tab) => (\n <div\n key={tab.id}\n {...getPanelProps(tab.id)}\n className={`tab-content ${isTabActive(tab, activeTab) ? 'block' : 'hidden'}`}\n >\n {isTabActive(tab, activeTab) && tab.renderTabContent?.(tab)}\n </div>\n ))}\n </div>\n )}\n </>\n );\n};\n"],"names":["Tabs","defaultActiveTab","tabs","onTabChange","primaryTabCount","headingLevel","HeadingTag","id","ariaLabel","ariaLabelledBy","panelId","defaultTabId","activeTab","setActiveTab","useState","isIconTabHover","setIsIconTabHover","visibleTabCount","length","visibleTabs","slice","overflowTabs","activeOverflowTab","find","tab","hasPanelContent","some","t","renderTabContent","baseId","useStableId","itemIds","useMemo","enabledVisibleTabs","filter","disabled","enabledOverflowTabs","visibleIds","map","getTabProps","getPanelProps","handleKeyDown","setFocusedTabId","useTabsA11y","activeItem","orientation","idBase","includePanelLinks","externalPanelId","overflowDivRef","useRef","useEffect","handleTabClick","isTabActive","singleTab","createElement","React","Fragment","className","label","_extends","role","getA11yNameAttributes","isActive","isDisabled","tabProps","type","key","onFocus","onKeyDown","onClick","automationId","Popover","position","noBorder","disableClickToggle","onPopoverToggle","isOpen","current","focus","renderPopoverSrcElement","displayPopover","togglePopover","overflowTabProps","overflowAriaControls","getPanelId","undefined","ref","el","onMouseEnter","onMouseLeave","Icon","name","rotation","stroke","fill","renderPopoverContents","closePopoverCb","MenuList","items"],"mappings":"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"}
package/dist/index29.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import e, { forwardRef as H } from "react";
2
2
  import { Icon as J } from "./index5.js";
3
3
  import { Button as b } from "./index3.js";
4
- import { useStableId as I } from "./index189.js";
4
+ import { useStableId as I } from "./index190.js";
5
5
  import { getRegionAttributes as K } from "./index65.js";
6
6
  import { useAccessiblePress as M } from "./index66.js";
7
7
  /* empty css */
package/dist/index3.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import r, { forwardRef as I } from "react";
2
- import { getA11yNameAttributes as R } from "./index70.js";
2
+ import { getA11yNameAttributes as R } from "./index71.js";
3
3
  import { useAccessiblePress as z } from "./index66.js";
4
4
  import { Icon as b } from "./index5.js";
5
5
  /* empty css */
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