@strapi/design-system 1.7.6 → 1.7.7

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 (75) hide show
  1. package/dist/BaseButton/BaseButton.cjs +3 -3
  2. package/dist/BaseButton/BaseButton.js +5 -5
  3. package/dist/CarouselInput/Carousel.cjs +6 -7
  4. package/dist/CarouselInput/Carousel.js +25 -79
  5. package/dist/CarouselInput/CarouselActions.cjs +1 -1
  6. package/dist/CarouselInput/CarouselActions.js +1 -14
  7. package/dist/CarouselInput/CarouselImage.cjs +3 -4
  8. package/dist/CarouselInput/CarouselImage.js +13 -23
  9. package/dist/CarouselInput/CarouselInput.cjs +1 -1
  10. package/dist/CarouselInput/CarouselInput.js +12 -75
  11. package/dist/CarouselInput/CarouselSlide.cjs +1 -3
  12. package/dist/CarouselInput/CarouselSlide.js +4 -29
  13. package/dist/Checkbox/Checkbox.cjs +3 -3
  14. package/dist/Checkbox/Checkbox.js +18 -40
  15. package/dist/Dialog/Dialog.cjs +5 -5
  16. package/dist/Dialog/Dialog.js +21 -49
  17. package/dist/Dialog/DialogBody.cjs +2 -2
  18. package/dist/Dialog/DialogBody.js +6 -19
  19. package/dist/Dialog/DialogFooter.cjs +2 -2
  20. package/dist/Dialog/DialogFooter.js +7 -21
  21. package/dist/ModalLayout/ModalBody.cjs +2 -2
  22. package/dist/ModalLayout/ModalBody.js +4 -5
  23. package/dist/ModalLayout/ModalContext.cjs +1 -1
  24. package/dist/ModalLayout/ModalContext.js +2 -1
  25. package/dist/ModalLayout/ModalFooter.cjs +2 -6
  26. package/dist/ModalLayout/ModalFooter.js +9 -26
  27. package/dist/ModalLayout/ModalHeader.cjs +2 -2
  28. package/dist/ModalLayout/ModalHeader.js +10 -22
  29. package/dist/ModalLayout/ModalLayout.cjs +3 -5
  30. package/dist/ModalLayout/ModalLayout.js +10 -30
  31. package/dist/NumberInput/NumberInput.cjs +2 -2
  32. package/dist/NumberInput/NumberInput.js +68 -168
  33. package/dist/Pagination/Pagination.cjs +1 -5
  34. package/dist/Pagination/Pagination.js +7 -21
  35. package/dist/Pagination/components.cjs +7 -10
  36. package/dist/Pagination/components.js +34 -81
  37. package/dist/Popover/Popover.cjs +3 -3
  38. package/dist/Popover/Popover.js +67 -66
  39. package/dist/ProgressBar/ProgressBar.cjs +5 -5
  40. package/dist/ProgressBar/ProgressBar.js +6 -37
  41. package/dist/Radio/Radio.cjs +1 -4
  42. package/dist/Radio/Radio.js +5 -18
  43. package/dist/Searchbar/SearchForm.cjs +1 -1
  44. package/dist/Searchbar/SearchForm.js +2 -3
  45. package/dist/Searchbar/Searchbar.cjs +10 -11
  46. package/dist/Searchbar/Searchbar.js +25 -54
  47. package/dist/Status/Status.cjs +6 -6
  48. package/dist/Status/Status.js +8 -46
  49. package/dist/Switch/Switch.cjs +5 -5
  50. package/dist/Switch/Switch.js +16 -52
  51. package/dist/Tabs/TabGroup.cjs +1 -1
  52. package/dist/Tabs/TabGroup.js +13 -37
  53. package/dist/Tabs/TabPanels.cjs +1 -1
  54. package/dist/Tabs/TabPanels.js +11 -22
  55. package/dist/Tabs/Tabs.cjs +2 -2
  56. package/dist/Tabs/Tabs.js +55 -110
  57. package/dist/Tabs/TabsContext.cjs +1 -1
  58. package/dist/Tabs/TabsContext.js +11 -4
  59. package/dist/Textarea/Textarea.cjs +14 -12
  60. package/dist/Textarea/Textarea.js +33 -55
  61. package/dist/ToggleCheckbox/ToggleCheckbox.cjs +8 -8
  62. package/dist/ToggleCheckbox/ToggleCheckbox.js +25 -121
  63. package/dist/ToggleInput/ToggleInput.cjs +3 -3
  64. package/dist/ToggleInput/ToggleInput.js +17 -70
  65. package/dist/Typography/Typography.cjs +1 -1
  66. package/dist/Typography/Typography.js +6 -6
  67. package/dist/hooks/useControllableState.cjs +1 -1
  68. package/dist/hooks/useControllableState.js +6 -6
  69. package/dist/themes/utils.cjs +2 -2
  70. package/dist/themes/utils.js +1 -1
  71. package/package.json +4 -4
  72. package/dist/Tabs/useTabsFocus.cjs +0 -1
  73. package/dist/Tabs/useTabsFocus.js +0 -17
  74. package/dist/Textarea/TextareaInput.cjs +0 -30
  75. package/dist/Textarea/TextareaInput.js +0 -65
@@ -1,76 +1,47 @@
1
- import { jsx as e, jsxs as g } from "react/jsx-runtime";
2
- import { forwardRef as y, useRef as $ } from "react";
3
- import { Search as C, Cross as S } from "@strapi/icons";
4
- import o from "prop-types";
5
- import i from "styled-components";
6
- import { sizes as v } from "../themes/sizes.js";
7
- import { inputFocusStyle as x } from "../themes/utils.js";
8
- import { InputWrapper as l, FieldInput as F } from "../Field/FieldInput.js";
9
- import { Flex as a } from "../Flex/Flex.js";
10
- import { Field as w } from "../Field/Field.js";
1
+ import { jsx as o, jsxs as $ } from "react/jsx-runtime";
2
+ import { forwardRef as R, useRef as S } from "react";
3
+ import { Cross as w, Search as x } from "@strapi/icons";
4
+ import e from "styled-components";
5
+ import { composeRefs as C } from "../hooks/useComposeRefs.js";
6
+ import { inputFocusStyle as F } from "../themes/utils.js";
7
+ import { InputWrapper as n, FieldInput as y } from "../Field/FieldInput.js";
8
+ import { Field as I } from "../Field/Field.js";
11
9
  import { VisuallyHidden as z } from "../VisuallyHidden/VisuallyHidden.js";
12
- import { FieldLabel as q } from "../Field/FieldLabel.js";
13
- import { FieldAction as I } from "../Field/FieldAction.js";
14
- const W = i(a)`
10
+ import { FieldLabel as A } from "../Field/FieldLabel.js";
11
+ import { FieldAction as g } from "../Field/FieldAction.js";
12
+ const j = e(w)`
15
13
  font-size: 0.5rem;
16
- svg path {
14
+ path {
17
15
  fill: ${({ theme: r }) => r.colors.neutral400};
18
16
  }
19
- `, p = i(a)`
17
+ `, l = e(x)`
20
18
  font-size: 0.8rem;
21
-
22
- svg path {
19
+ path {
23
20
  fill: ${({ theme: r }) => r.colors.neutral800};
24
21
  }
25
- `, j = i.div`
22
+ `, W = e.div`
26
23
  border-radius: ${({ theme: r }) => r.borderRadius};
27
24
  box-shadow: ${({ theme: r }) => r.shadows.filterShadow};
28
25
 
29
26
  &:focus-within {
30
- ${p} {
31
- svg path {
27
+ ${l} {
28
+ path {
32
29
  fill: ${({ theme: r }) => r.colors.primary600};
33
30
  }
34
31
  }
35
32
  }
36
33
 
37
- ${l} {
34
+ ${n} {
38
35
  border: 1px solid transparent;
39
36
  }
40
37
 
41
- ${x(l)}
42
- `, t = y(({ name: r, size: c, children: d, value: s, onClear: m, clearLabel: f, ...u }, h) => {
43
- const n = $(null), b = s.length > 0;
44
- return /* @__PURE__ */ e(j, { children: /* @__PURE__ */ g(w, { name: r, children: [
45
- /* @__PURE__ */ e(z, { children: /* @__PURE__ */ e(q, { children: d }) }),
46
- /* @__PURE__ */ e(
47
- F,
48
- {
49
- ref: h || n,
50
- value: s,
51
- startAction: /* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(C, { "aria-hidden": !0 }) }),
52
- size: c,
53
- endAction: b ? /* @__PURE__ */ e(I, { label: f, onClick: (R) => {
54
- m(R), n.current.focus();
55
- }, children: /* @__PURE__ */ e(W, { children: /* @__PURE__ */ e(S, {}) }) }) : void 0,
56
- ...u
57
- }
58
- )
59
- ] }) });
38
+ ${F(n)}
39
+ `, J = R(({ name: r, size: s = "M", children: a, value: t = "", onClear: c, clearLabel: d, ...m }, p) => {
40
+ const i = S(null), f = t.length > 0, h = (b) => {
41
+ c(b), i.current.focus();
42
+ }, u = C(p, i);
43
+ return o(W, { children: $(I, { name: r, children: [o(z, { children: o(A, { children: a }) }), o(y, { ref: u, value: t, startAction: o(l, { "aria-hidden": !0 }), size: s, endAction: f ? o(g, { label: d, onClick: h, children: o(j, {}) }) : void 0, ...m })] }) });
60
44
  });
61
- t.displayName = "Searchbar";
62
- t.defaultProps = {
63
- value: "",
64
- size: "M"
65
- };
66
- t.propTypes = {
67
- children: o.node.isRequired,
68
- clearLabel: o.string.isRequired,
69
- name: o.string.isRequired,
70
- onClear: o.func.isRequired,
71
- size: o.oneOf(Object.keys(v.input)),
72
- value: o.string
73
- };
74
45
  export {
75
- t as Searchbar
46
+ J as Searchbar
76
47
  };
@@ -1,11 +1,11 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime");require("react");const h=require("prop-types"),b=require("styled-components"),$=require("../Box/Box.cjs"),x=require("../Typography/Typography.cjs"),m=require("../Flex/Flex.cjs"),l=e=>e&&e.__esModule?e:{default:e},r=l(h),i=l(b),q=i.default.div`
2
- margin-right: ${({theme:e})=>e.spaces[3]};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),p=require("styled-components"),b=require("../Box/Box.cjs"),x=require("../Typography/Typography.cjs"),$=require("../Flex/Flex.cjs"),h=o=>o&&o.__esModule?o:{default:o},u=h(p),y=u.default.div`
2
+ margin-right: ${({theme:o})=>o.spaces[3]};
3
3
  width: ${6/16}rem;
4
4
  height: ${6/16}rem;
5
5
  border-radius: 50%;
6
- background: ${({theme:e,backgroundColor:o})=>e.colors[o]};
7
- `,S=i.default($.Box)`
6
+ background: ${({theme:o,backgroundColor:t})=>o.colors[t]};
7
+ `,f=u.default(b.Box)`
8
8
  ${x.Typography} {
9
- color: ${({theme:e,textColor:o})=>e.colors[o]};
9
+ color: ${({theme:o,textColor:t})=>o.colors[t]};
10
10
  }
11
- `,s=({variant:e,showBullet:o,size:n,children:d,...c})=>{const p=`${e}100`,g=`${e}200`,f=`${e}600`,y=`${e}600`,u=n==="S"?2:5,a=n==="S"?1:4;return t.jsx(S,{borderColor:g,textColor:y,background:p,hasRadius:!0,paddingTop:a,paddingBottom:a,paddingLeft:u,paddingRight:u,...c,children:o?t.jsxs(m.Flex,{children:[t.jsx(q,{backgroundColor:f}),d]}):d})};s.defaultProps={showBullet:!0,size:"M",variant:"primary"};s.propTypes={children:r.default.node.isRequired,showBullet:r.default.bool,size:r.default.oneOf(["S","M"]),variant:r.default.oneOf(["alternative","danger","neutral","primary","secondary","success","warning"])};exports.Status=s;
11
+ `,m=({variant:o="primary",showBullet:t=!0,size:e="M",children:s,...l})=>{const c=`${o}100`,a=`${o}200`,i=`${o}600`,g=`${o}600`,d=e==="S"?2:5,n=e==="S"?1:4;return r.jsx(f,{borderColor:a,textColor:g,background:c,hasRadius:!0,paddingTop:n,paddingBottom:n,paddingLeft:d,paddingRight:d,...l,children:t?r.jsxs($.Flex,{children:[r.jsx(y,{backgroundColor:i}),s]}):s})};exports.Status=m;
@@ -1,60 +1,22 @@
1
- import { jsx as i, jsxs as h } from "react/jsx-runtime";
2
- import "react";
3
- import t from "prop-types";
1
+ import { jsx as n, jsxs as a } from "react/jsx-runtime";
4
2
  import p from "styled-components";
5
- import { Box as f } from "../Box/Box.js";
3
+ import { Box as u } from "../Box/Box.js";
6
4
  import { Typography as $ } from "../Typography/Typography.js";
7
5
  import { Flex as b } from "../Flex/Flex.js";
8
- const y = p.div`
6
+ const h = p.div`
9
7
  margin-right: ${({ theme: o }) => o.spaces[3]};
10
8
  width: ${6 / 16}rem;
11
9
  height: ${6 / 16}rem;
12
10
  border-radius: 50%;
13
11
  background: ${({ theme: o, backgroundColor: r }) => o.colors[r]};
14
- `, x = p(f)`
12
+ `, x = p(u)`
15
13
  ${$} {
16
14
  color: ${({ theme: o, textColor: r }) => o.colors[r]};
17
15
  }
18
- `, a = ({ variant: o, showBullet: r, size: e, children: s, ...l }) => {
19
- const c = `${o}100`, m = `${o}200`, u = `${o}600`, g = `${o}600`, n = e === "S" ? 2 : 5, d = e === "S" ? 1 : 4;
20
- return /* @__PURE__ */ i(
21
- x,
22
- {
23
- borderColor: m,
24
- textColor: g,
25
- background: c,
26
- hasRadius: !0,
27
- paddingTop: d,
28
- paddingBottom: d,
29
- paddingLeft: n,
30
- paddingRight: n,
31
- ...l,
32
- children: r ? /* @__PURE__ */ h(b, { children: [
33
- /* @__PURE__ */ i(y, { backgroundColor: u }),
34
- s
35
- ] }) : s
36
- }
37
- );
38
- };
39
- a.defaultProps = {
40
- showBullet: !0,
41
- size: "M",
42
- variant: "primary"
43
- };
44
- a.propTypes = {
45
- children: t.node.isRequired,
46
- /**
47
- * If `false`, the preceeding bullet of the status won't be displayed.
48
- * This prop and the bullet will be removed in the next major version.
49
- */
50
- showBullet: t.bool,
51
- // TODO V2: remove prop and bullet
52
- size: t.oneOf(["S", "M"]),
53
- /**
54
- * Color variation
55
- */
56
- variant: t.oneOf(["alternative", "danger", "neutral", "primary", "secondary", "success", "warning"])
16
+ `, B = ({ variant: o = "primary", showBullet: r = !0, size: t = "M", children: d, ...c }) => {
17
+ const i = `${o}100`, l = `${o}200`, g = `${o}600`, m = `${o}600`, s = t === "S" ? 2 : 5, e = t === "S" ? 1 : 4;
18
+ return n(x, { borderColor: l, textColor: m, background: i, hasRadius: !0, paddingTop: e, paddingBottom: e, paddingLeft: s, paddingRight: s, ...c, children: r ? a(b, { children: [n(h, { backgroundColor: g }), d] }) : d });
57
19
  };
58
20
  export {
59
- a as Status
21
+ B as Status
60
22
  };
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),b=require("react"),h=require("prop-types"),g=require("styled-components"),m=require("../Flex/Flex.cjs"),x=require("../Box/Box.cjs"),a=e=>e&&e.__esModule?e:{default:e},$=a(b),t=a(h),l=a(g),s=l.default.div`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),h=require("react"),f=require("styled-components"),p=require("../Flex/Flex.cjs"),b=require("../Box/Box.cjs"),i=e=>e&&e.__esModule?e:{default:e},g=i(h),c=i(f),n=c.default.div`
2
2
  background: ${({theme:e})=>e.colors.danger500};
3
3
  border: none;
4
4
  border-radius: 16px;
@@ -27,16 +27,16 @@
27
27
  transition: none;
28
28
  }
29
29
  }
30
- `,q=l.default.button`
30
+ `,x=c.default.button`
31
31
  background: transparent;
32
32
  padding: 0;
33
33
  border: none;
34
34
 
35
- &[aria-checked='true'] ${s} {
35
+ &[aria-checked='true'] ${n} {
36
36
  background: ${({theme:e})=>e.colors.success500};
37
37
  }
38
38
 
39
- &[aria-checked='true'] ${s}:before {
39
+ &[aria-checked='true'] ${n}:before {
40
40
  transform: translateX(1rem);
41
41
  }
42
- `,o=$.default.forwardRef(({label:e,onChange:u,onLabel:i,offLabel:d,selected:n,visibleLabels:c,...f},p)=>r.jsx(q,{ref:p,role:"switch","aria-checked":n,"aria-label":e,onClick:u,visibleLabels:c,type:"button",...f,children:r.jsxs(m.Flex,{children:[r.jsxs(s,{children:[r.jsx("span",{children:i}),r.jsx("span",{children:d})]}),c&&r.jsx(x.Box,{as:"span","aria-hidden":!0,paddingLeft:2,color:n?"success600":"danger600",children:n?i:d})]})}));o.defaultProps={onLabel:"On",offLabel:"Off",visibleLabels:!1};o.propTypes={label:t.default.string.isRequired,offLabel:t.default.string,onChange:t.default.func.isRequired,onLabel:t.default.string,selected:t.default.bool.isRequired,visibleLabels:t.default.bool};o.displayName="Switch";exports.Switch=o;
42
+ `,m=g.default.forwardRef(({label:e,onChange:d,onLabel:o="On",offLabel:s="Off",selected:t,visibleLabels:a=!1,...u},l)=>r.jsx(x,{ref:l,role:"switch","aria-checked":t,"aria-label":e,onClick:d,visibleLabels:a,type:"button",...u,children:r.jsxs(p.Flex,{children:[r.jsxs(n,{children:[r.jsx("span",{children:o}),r.jsx("span",{children:s})]}),a&&r.jsx(b.Box,{as:"span","aria-hidden":!0,paddingLeft:2,color:t?"success600":"danger600",children:t?o:s})]})}));exports.Switch=m;
@@ -1,11 +1,10 @@
1
- import { jsx as o, jsxs as c } from "react/jsx-runtime";
2
- import b from "react";
3
- import r from "prop-types";
4
- import l from "styled-components";
5
- import { Flex as h } from "../Flex/Flex.js";
1
+ import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
+ import h from "react";
3
+ import c from "styled-components";
4
+ import { Flex as u } from "../Flex/Flex.js";
6
5
  import { Box as m } from "../Box/Box.js";
7
- const n = l.div`
8
- background: ${({ theme: e }) => e.colors.danger500};
6
+ const t = c.div`
7
+ background: ${({ theme: r }) => r.colors.danger500};
9
8
  border: none;
10
9
  border-radius: 16px;
11
10
  position: relative;
@@ -13,19 +12,19 @@ const n = l.div`
13
12
  width: ${40 / 16}rem;
14
13
 
15
14
  & span {
16
- font-size: ${({ visibleLabels: e }) => e ? "1rem" : 0};
15
+ font-size: ${({ visibleLabels: r }) => r ? "1rem" : 0};
17
16
  }
18
17
 
19
18
  &:before {
20
19
  content: '';
21
- background: ${({ theme: e }) => e.colors.neutral0};
20
+ background: ${({ theme: r }) => r.colors.neutral0};
22
21
  width: 1rem;
23
22
  height: 1rem;
24
23
  border-radius: 50%;
25
24
  position: absolute;
26
25
  transition: all 0.5s;
27
- left: ${({ theme: e }) => e.spaces[1]};
28
- top: ${({ theme: e }) => e.spaces[1]};
26
+ left: ${({ theme: r }) => r.spaces[1]};
27
+ top: ${({ theme: r }) => r.spaces[1]};
29
28
  }
30
29
 
31
30
  @media (prefers-reduced-motion: reduce) {
@@ -33,54 +32,19 @@ const n = l.div`
33
32
  transition: none;
34
33
  }
35
34
  }
36
- `, g = l.button`
35
+ `, f = c.button`
37
36
  background: transparent;
38
37
  padding: 0;
39
38
  border: none;
40
39
 
41
- &[aria-checked='true'] ${n} {
42
- background: ${({ theme: e }) => e.colors.success500};
40
+ &[aria-checked='true'] ${t} {
41
+ background: ${({ theme: r }) => r.colors.success500};
43
42
  }
44
43
 
45
- &[aria-checked='true'] ${n}:before {
44
+ &[aria-checked='true'] ${t}:before {
46
45
  transform: translateX(1rem);
47
46
  }
48
- `, i = b.forwardRef(
49
- ({ label: e, onChange: p, onLabel: a, offLabel: s, selected: t, visibleLabels: d, ...u }, f) => /* @__PURE__ */ o(
50
- g,
51
- {
52
- ref: f,
53
- role: "switch",
54
- "aria-checked": t,
55
- "aria-label": e,
56
- onClick: p,
57
- visibleLabels: d,
58
- type: "button",
59
- ...u,
60
- children: /* @__PURE__ */ c(h, { children: [
61
- /* @__PURE__ */ c(n, { children: [
62
- /* @__PURE__ */ o("span", { children: a }),
63
- /* @__PURE__ */ o("span", { children: s })
64
- ] }),
65
- d && /* @__PURE__ */ o(m, { as: "span", "aria-hidden": !0, paddingLeft: 2, color: t ? "success600" : "danger600", children: t ? a : s })
66
- ] })
67
- }
68
- )
69
- );
70
- i.defaultProps = {
71
- onLabel: "On",
72
- offLabel: "Off",
73
- visibleLabels: !1
74
- };
75
- i.propTypes = {
76
- label: r.string.isRequired,
77
- offLabel: r.string,
78
- onChange: r.func.isRequired,
79
- onLabel: r.string,
80
- selected: r.bool.isRequired,
81
- visibleLabels: r.bool
82
- };
83
- i.displayName = "Switch";
47
+ `, x = h.forwardRef(({ label: r, onChange: d, onLabel: n = "On", offLabel: i = "Off", selected: o, visibleLabels: a = !1, ...l }, p) => e(f, { ref: p, role: "switch", "aria-checked": o, "aria-label": r, onClick: d, visibleLabels: a, type: "button", ...l, children: s(u, { children: [s(t, { children: [e("span", { children: n }), e("span", { children: i })] }), a && e(m, { as: "span", "aria-hidden": !0, paddingLeft: 2, color: o ? "success600" : "danger600", children: o ? n : i })] }) }));
84
48
  export {
85
- i as Switch
49
+ x as Switch
86
50
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("react/jsx-runtime"),v=require("react"),x=require("prop-types"),_=require("./TabsContext.cjs"),g=require("../hooks/useId.cjs"),I=e=>e&&e.__esModule?e:{default:e};function j(e){if(e&&e.__esModule)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const d=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,d.get?d:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const a=j(v),n=I(x),o=a.forwardRef(({id:e,initialSelectedTabIndex:r,label:t,onTabChange:d,variant:u,...l},m)=>{const c=g.useId(e),f=a.Children.toArray(l.children).find(i=>i.type.displayName==="Tabs");let s=r||0;f&&r===void 0&&(s=f.props.children.findIndex(i=>!i.props.disabled));const[p,b]=a.useState(s===-1?0:s);a.useImperativeHandle(m,()=>({_handlers:{setSelectedTabIndex:b}}));const y=a.useMemo(()=>({id:c,selectedTabIndex:p,selectTabIndex:b,label:t,variant:u,onTabChange:d}),[t,d,p,c,u]);return T.jsx(_.TabsContext.Provider,{value:y,children:T.jsx("div",{...l})})});o.displayName="TabGroup";o.defaultProps={id:void 0,initialSelectedTabIndex:void 0,onTabChange(){},variant:void 0};o.propTypes={children:n.default.node.isRequired,id:n.default.string,initialSelectedTabIndex:n.default.number,label:n.default.string.isRequired,onTabChange:n.default.func,variant:n.default.oneOf(["simple"])};exports.TabGroup=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),p=require("react"),m=require("./TabsContext.cjs"),x=require("../hooks/useId.cjs");function T(e){if(e&&e.__esModule)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const o=T(p),i=o.forwardRef(({id:e,initialSelectedTabIndex:r=0,label:t,onTabChange:n,variant:s,...l},b)=>{const c=x.useId(e),[u,a]=o.useState(r);o.useImperativeHandle(b,()=>({_handlers:{setSelectedTabIndex:a}}));const f=o.useMemo(()=>({id:c,selectedTabIndex:u,selectTabIndex:a,label:t,variant:s,onTabChange:n}),[t,n,u,c,s]);return d.jsx(m.TabsContext.Provider,{value:f,children:d.jsx("div",{...l})})});i.displayName="TabGroup";exports.TabGroup=i;
@@ -1,40 +1,16 @@
1
- import { jsx as f } from "react/jsx-runtime";
2
- import * as r from "react";
3
- import e from "prop-types";
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import * as e from "react";
4
3
  import { TabsContext as x } from "./TabsContext.js";
5
- import { useId as I } from "../hooks/useId.js";
6
- const t = r.forwardRef(
7
- ({ id: u, initialSelectedTabIndex: o, label: n, onTabChange: s, variant: a, ...p }, T) => {
8
- const l = I(u), c = r.Children.toArray(p.children).find((i) => i.type.displayName === "Tabs");
9
- let d = o || 0;
10
- c && o === void 0 && (d = c.props.children.findIndex((i) => !i.props.disabled));
11
- const [m, b] = r.useState(d === -1 ? 0 : d);
12
- r.useImperativeHandle(T, () => ({
13
- _handlers: { setSelectedTabIndex: b }
14
- }));
15
- const v = r.useMemo(
16
- () => ({ id: l, selectedTabIndex: m, selectTabIndex: b, label: n, variant: a, onTabChange: s }),
17
- [n, s, m, l, a]
18
- );
19
- return /* @__PURE__ */ f(x.Provider, { value: v, children: /* @__PURE__ */ f("div", { ...p }) });
20
- }
21
- );
22
- t.displayName = "TabGroup";
23
- t.defaultProps = {
24
- id: void 0,
25
- initialSelectedTabIndex: void 0,
26
- onTabChange() {
27
- },
28
- variant: void 0
29
- };
30
- t.propTypes = {
31
- children: e.node.isRequired,
32
- id: e.string,
33
- initialSelectedTabIndex: e.number,
34
- label: e.string.isRequired,
35
- onTabChange: e.func,
36
- variant: e.oneOf(["simple"])
37
- };
4
+ import { useId as f } from "../hooks/useId.js";
5
+ const l = e.forwardRef(({ id: c, initialSelectedTabIndex: n = 0, label: t, onTabChange: o, variant: r, ...i }, p) => {
6
+ const s = f(c), [d, a] = e.useState(n);
7
+ e.useImperativeHandle(p, () => ({
8
+ _handlers: { setSelectedTabIndex: a }
9
+ }));
10
+ const u = e.useMemo(() => ({ id: s, selectedTabIndex: d, selectTabIndex: a, label: t, variant: r, onTabChange: o }), [t, o, d, s, r]);
11
+ return m(x.Provider, { value: u, children: m("div", { ...i }) });
12
+ });
13
+ l.displayName = "TabGroup";
38
14
  export {
39
- t as TabGroup
15
+ l as TabGroup
40
16
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),o=require("react"),b=require("prop-types"),p=require("./TabsContext.cjs"),T=e=>e&&e.__esModule?e:{default:e},i=T(b),c=({children:e,...t})=>{const{id:n,selectedTabIndex:a}=p.useTabs(),u=o.Children.toArray(e).map((l,r)=>o.cloneElement(l,{id:`${n}-${r}`})).filter((l,r)=>r===a);return d.jsx("div",{...t,children:u})};c.propTypes={children:i.default.node.isRequired};const s=({id:e,...t})=>{const n=`${e}-tab`,a=`${e}-tabpanel`;return d.jsx("div",{id:a,role:"tabpanel",tabIndex:0,"aria-labelledby":n,...t})};s.defaultProps={id:void 0};s.propTypes={id:i.default.string};exports.TabPanel=s;exports.TabPanels=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react/jsx-runtime"),s=require("react"),c=require("./TabsContext.cjs"),i=({children:e,...t})=>{const{id:a,selectedTabIndex:n}=c.useTabs(),o=s.Children.toArray(e).map((l,r)=>s.cloneElement(l,{id:`${a}-${r}`})).filter((l,r)=>r===n);return b.jsx("div",{...t,children:o})},d=({id:e,...t})=>{const a=`${e}-tab`,n=`${e}-tabpanel`;return b.jsx("div",{id:n,role:"tabpanel",tabIndex:0,"aria-labelledby":a,...t})};exports.TabPanel=d;exports.TabPanels=i;
@@ -1,25 +1,14 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { Children as s, cloneElement as b } from "react";
3
- import i from "prop-types";
4
- import { useTabs as c } from "./TabsContext.js";
5
- const m = ({ children: e, ...r }) => {
6
- const { id: t, selectedTabIndex: o } = c(), p = s.toArray(e).map((a, n) => b(a, { id: `${t}-${n}` })).filter((a, n) => n === o);
7
- return /* @__PURE__ */ d("div", { ...r, children: p });
8
- };
9
- m.propTypes = {
10
- children: i.node.isRequired
11
- };
12
- const l = ({ id: e, ...r }) => {
13
- const t = `${e}-tab`, o = `${e}-tabpanel`;
14
- return /* @__PURE__ */ d("div", { id: o, role: "tabpanel", tabIndex: 0, "aria-labelledby": t, ...r });
15
- };
16
- l.defaultProps = {
17
- id: void 0
18
- };
19
- l.propTypes = {
20
- id: i.string
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Children as b, cloneElement as i } from "react";
3
+ import { useTabs as s } from "./TabsContext.js";
4
+ const f = ({ children: e, ...t }) => {
5
+ const { id: a, selectedTabIndex: r } = s(), d = b.toArray(e).map((l, n) => i(l, { id: `${a}-${n}` })).filter((l, n) => n === r);
6
+ return o("div", { ...t, children: d });
7
+ }, x = ({ id: e, ...t }) => {
8
+ const a = `${e}-tab`, r = `${e}-tabpanel`;
9
+ return o("div", { id: r, role: "tabpanel", tabIndex: 0, "aria-labelledby": a, ...t });
21
10
  };
22
11
  export {
23
- l as TabPanel,
24
- m as TabPanels
12
+ x as TabPanel,
13
+ f as TabPanels
25
14
  };
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),I=require("react"),q=require("prop-types"),j=require("styled-components"),g=require("./components.cjs"),w=require("./TabsContext.cjs"),R=require("./useTabsFocus.cjs"),T=require("../helpers/keyboardKeys.cjs"),C=require("../Typography/Typography.cjs"),D=r=>r&&r.__esModule?r:{default:r},i=D(q),P=D(j),_=P.default.button`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),x=require("react"),I=require("@strapi/ui-primitives"),K=require("styled-components"),m=require("./components.cjs"),R=require("./TabsContext.cjs"),T=require("../helpers/keyboardKeys.cjs"),C=require("../Typography/Typography.cjs"),k=n=>n&&n.__esModule?n:{default:n},j=k(K),q=(n,u)=>{const i=x.useRef(null),l=x.useRef(!1),a=I.useCallbackRef(u);return x.useEffect(()=>{if(i.current){if(l.current){const d=i.current.querySelector('[tabindex="0"]');d&&(d.focus(),a(n))}l.current||(l.current=!0)}},[n,a]),i},v=j.default.button`
2
2
  &[aria-disabled='true'] {
3
3
  cursor: not-allowed;
4
4
  }
5
- `,k=({children:r,...u})=>{const{id:h,selectedTabIndex:b,selectTabIndex:o,label:p,variant:f,onTabChange:m}=w.useTabs(),y=R.useTabsFocus(b,m),a=I.Children.toArray(r).map((t,d)=>I.cloneElement(t,{id:`${h}-${d}`,index:d,selectedTabIndex:b,onTabClick:()=>o(d),variant:f})),x=t=>{if(!a.every(n=>n.props.disabled))switch(t.key){case T.KeyboardKeys.RIGHT:{const n=b+1,e=s=>a[s].props.disabled?s===a.length-1?e(0):e(s+1):s,c=e(n>=a.length?0:n);o(c);break}case T.KeyboardKeys.LEFT:{const n=b-1,e=s=>a[s].props.disabled?e(s===0?a.length-1:s-1):s,c=e(n<0?a.length-1:n);o(c);break}case T.KeyboardKeys.HOME:{const n=a.findIndex(e=>!e.props.disabled);o(n);break}case T.KeyboardKeys.END:{const e=a.map((c,s)=>({isDisabled:c.props.disabled,index:s})).reverse().find(({isDisabled:c})=>!c);e&&o(e.index);break}}};return f==="simple"?l.jsx("div",{ref:y,role:"tablist","aria-label":p,onKeyDown:x,...u,children:a}):l.jsx(g.DefaultTabsRow,{ref:y,role:"tablist",alignItems:"flex-end","aria-label":p,onKeyDown:x,...u,children:a})};k.propTypes={children:i.default.node.isRequired};const v=({disabled:r,id:u,children:h,variant:b,hasError:o,index:p,selectedTabIndex:f,onTabClick:m,...y})=>{const a=`${u}-tab`,x=`${u}-tabpanel`,t=p===f,d=()=>{r||m()};if(b==="simple"){let e;return o?e="danger600":t?e="primary600":e="neutral600",l.jsx(_,{id:a,role:"tab","aria-controls":t?x:void 0,tabIndex:t?0:-1,"aria-selected":t,type:"button",onClick:d,"aria-disabled":r,...y,children:l.jsx(g.SimpleTabBox,{padding:4,selected:t,hasError:o,children:l.jsx(C.Typography,{variant:"sigma",textColor:e,children:h})})})}o&&console.warn('The "hasError" prop is only available for the "simple" variant.');const n=f-1===p;return l.jsx(g.DefaultTabButton,{id:a,role:"tab",type:"button","aria-controls":t?x:void 0,tabIndex:t?0:-1,"aria-selected":t,onClick:d,"aria-disabled":r,showRightBorder:n,...y,children:l.jsx(g.DefaultTabBox,{padding:t?4:3,background:t?"neutral0":"neutral100",selected:t,children:l.jsx(C.Typography,{fontWeight:"bold",textColor:t?"primary700":"neutral600",children:h})})})};v.defaultProps={disabled:!1,hasError:!1,id:void 0,index:void 0,onTabClick:void 0,selectedTabIndex:void 0,variant:void 0};v.propTypes={children:i.default.node.isRequired,disabled:i.default.bool,hasError:i.default.bool,id:i.default.string,index:i.default.number,onTabClick:i.default.func,selectedTabIndex:i.default.number,variant:i.default.oneOf(["simple"])};exports.Tab=v;exports.Tabs=k;
5
+ `,w=({children:n,...u})=>{const{id:i,selectedTabIndex:l,selectTabIndex:a,label:d,variant:h,onTabChange:g}=R.useTabs(),y=q(l,g),r=x.Children.toArray(n).map((t,b)=>x.cloneElement(t,{id:`${i}-${b}`,index:b,selectedTabIndex:l,onTabClick:()=>a(b),variant:h})),p=t=>{if(!r.every(s=>s.props.disabled))switch(t.key){case T.KeyboardKeys.RIGHT:{const s=l+1,e=o=>r[o].props.disabled?o===r.length-1?e(0):e(o+1):o,f=e(s>=r.length?0:s);a(f);break}case T.KeyboardKeys.LEFT:{const s=l-1,e=o=>r[o].props.disabled?e(o===0?r.length-1:o-1):o,f=e(s<0?r.length-1:s);a(f);break}case T.KeyboardKeys.HOME:{const s=r.findIndex(e=>!e.props.disabled);a(s);break}case T.KeyboardKeys.END:{const e=r.map((f,o)=>({isDisabled:f.props.disabled,index:o})).reverse().find(({isDisabled:f})=>!f);e&&a(e.index);break}}};return h==="simple"?c.jsx("div",{ref:y,role:"tablist","aria-label":d,onKeyDown:p,...u,children:r}):c.jsx(m.DefaultTabsRow,{ref:y,role:"tablist",alignItems:"flex-end","aria-label":d,onKeyDown:p,...u,children:r})},B=({disabled:n=!1,id:u,children:i,variant:l,hasError:a=!1,index:d,selectedTabIndex:h,onTabClick:g,...y})=>{const r=`${u}-tab`,p=`${u}-tabpanel`,t=d===h,b=()=>{n||g&&g()};if(l==="simple"){let e;return a?e="danger600":t?e="primary600":e="neutral600",c.jsx(v,{id:r,role:"tab","aria-controls":t?p:void 0,tabIndex:t?0:-1,"aria-selected":t,type:"button",onClick:b,"aria-disabled":n,...y,children:c.jsx(m.SimpleTabBox,{padding:4,selected:t,hasError:a,children:c.jsx(C.Typography,{variant:"sigma",textColor:e,children:i})})})}a&&console.warn('The "hasError" prop is only available for the "simple" variant.');const s=h&&h-1===d;return c.jsx(m.DefaultTabButton,{id:r,role:"tab",type:"button","aria-controls":t?p:void 0,tabIndex:t?0:-1,"aria-selected":t,onClick:b,"aria-disabled":n,showRightBorder:!!s,...y,children:c.jsx(m.DefaultTabBox,{padding:t?4:3,background:t?"neutral0":"neutral100",selected:t,children:c.jsx(C.Typography,{fontWeight:"bold",textColor:t?"primary700":"neutral600",children:i})})})};exports.Tab=B;exports.Tabs=w;