@strapi/design-system 1.7.6 → 1.7.8

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 (143) hide show
  1. package/dist/BaseButton/BaseButton.cjs +3 -3
  2. package/dist/BaseButton/BaseButton.js +5 -5
  3. package/dist/Box/Box.cjs +2 -2
  4. package/dist/Box/Box.js +1 -1
  5. package/dist/CarouselInput/Carousel.cjs +6 -7
  6. package/dist/CarouselInput/Carousel.js +25 -79
  7. package/dist/CarouselInput/CarouselActions.cjs +1 -1
  8. package/dist/CarouselInput/CarouselActions.js +1 -14
  9. package/dist/CarouselInput/CarouselImage.cjs +3 -4
  10. package/dist/CarouselInput/CarouselImage.js +13 -23
  11. package/dist/CarouselInput/CarouselInput.cjs +1 -1
  12. package/dist/CarouselInput/CarouselInput.js +12 -75
  13. package/dist/CarouselInput/CarouselSlide.cjs +1 -3
  14. package/dist/CarouselInput/CarouselSlide.js +4 -29
  15. package/dist/Checkbox/Checkbox.cjs +3 -3
  16. package/dist/Checkbox/Checkbox.js +18 -40
  17. package/dist/Dialog/Dialog.cjs +5 -5
  18. package/dist/Dialog/Dialog.js +21 -49
  19. package/dist/Dialog/DialogBody.cjs +2 -2
  20. package/dist/Dialog/DialogBody.js +6 -19
  21. package/dist/Dialog/DialogFooter.cjs +2 -2
  22. package/dist/Dialog/DialogFooter.js +7 -21
  23. package/dist/Grid/Grid.cjs +3 -3
  24. package/dist/Grid/Grid.js +8 -22
  25. package/dist/Grid/GridItem.cjs +2 -2
  26. package/dist/Grid/GridItem.js +10 -27
  27. package/dist/Layout/ActionLayout.cjs +1 -9
  28. package/dist/Layout/ActionLayout.js +4 -27
  29. package/dist/Layout/ContentLayout.cjs +1 -1
  30. package/dist/Layout/ContentLayout.js +4 -9
  31. package/dist/Layout/GridLayout.cjs +3 -3
  32. package/dist/Layout/GridLayout.js +4 -8
  33. package/dist/Layout/HeaderLayout.cjs +4 -4
  34. package/dist/Layout/HeaderLayout.js +25 -120
  35. package/dist/Layout/Layout.cjs +4 -4
  36. package/dist/Layout/Layout.js +7 -19
  37. package/dist/Layout/TwoColsLayout.cjs +1 -1
  38. package/dist/Layout/TwoColsLayout.js +6 -15
  39. package/dist/ModalLayout/ModalBody.cjs +2 -2
  40. package/dist/ModalLayout/ModalBody.js +4 -5
  41. package/dist/ModalLayout/ModalContext.cjs +1 -1
  42. package/dist/ModalLayout/ModalContext.js +2 -1
  43. package/dist/ModalLayout/ModalFooter.cjs +2 -6
  44. package/dist/ModalLayout/ModalFooter.js +9 -26
  45. package/dist/ModalLayout/ModalHeader.cjs +2 -2
  46. package/dist/ModalLayout/ModalHeader.js +10 -22
  47. package/dist/ModalLayout/ModalLayout.cjs +3 -5
  48. package/dist/ModalLayout/ModalLayout.js +10 -30
  49. package/dist/NumberInput/NumberInput.cjs +2 -2
  50. package/dist/NumberInput/NumberInput.js +68 -168
  51. package/dist/Pagination/Pagination.cjs +1 -5
  52. package/dist/Pagination/Pagination.js +7 -21
  53. package/dist/Pagination/components.cjs +7 -10
  54. package/dist/Pagination/components.js +34 -81
  55. package/dist/Popover/Popover.cjs +3 -3
  56. package/dist/Popover/Popover.js +67 -66
  57. package/dist/ProgressBar/ProgressBar.cjs +5 -5
  58. package/dist/ProgressBar/ProgressBar.js +6 -37
  59. package/dist/Radio/Radio.cjs +1 -4
  60. package/dist/Radio/Radio.js +5 -18
  61. package/dist/Searchbar/SearchForm.cjs +1 -1
  62. package/dist/Searchbar/SearchForm.js +2 -3
  63. package/dist/Searchbar/Searchbar.cjs +10 -11
  64. package/dist/Searchbar/Searchbar.js +25 -54
  65. package/dist/Status/Status.cjs +6 -6
  66. package/dist/Status/Status.js +8 -46
  67. package/dist/Switch/Switch.cjs +5 -5
  68. package/dist/Switch/Switch.js +16 -52
  69. package/dist/Table/Cell.cjs +3 -3
  70. package/dist/Table/Cell.js +10 -23
  71. package/dist/Table/TFooter.cjs +3 -3
  72. package/dist/Table/TFooter.js +8 -20
  73. package/dist/Table/Table.cjs +12 -12
  74. package/dist/Table/Table.js +19 -31
  75. package/dist/Table/Tbody.cjs +2 -2
  76. package/dist/Table/Tbody.js +4 -5
  77. package/dist/Table/Thead.cjs +2 -2
  78. package/dist/Table/Thead.js +6 -7
  79. package/dist/Table/Tr.cjs +1 -1
  80. package/dist/Table/Tr.js +3 -4
  81. package/dist/Tabs/TabGroup.cjs +1 -1
  82. package/dist/Tabs/TabGroup.js +13 -37
  83. package/dist/Tabs/TabPanels.cjs +1 -1
  84. package/dist/Tabs/TabPanels.js +11 -22
  85. package/dist/Tabs/Tabs.cjs +2 -2
  86. package/dist/Tabs/Tabs.js +55 -110
  87. package/dist/Tabs/TabsContext.cjs +1 -1
  88. package/dist/Tabs/TabsContext.js +11 -4
  89. package/dist/Textarea/Textarea.cjs +14 -12
  90. package/dist/Textarea/Textarea.js +33 -55
  91. package/dist/ToggleCheckbox/ToggleCheckbox.cjs +8 -8
  92. package/dist/ToggleCheckbox/ToggleCheckbox.js +25 -121
  93. package/dist/ToggleInput/ToggleInput.cjs +3 -3
  94. package/dist/ToggleInput/ToggleInput.js +17 -70
  95. package/dist/Typography/Typography.cjs +1 -1
  96. package/dist/Typography/Typography.js +6 -6
  97. package/dist/hooks/useControllableState.cjs +1 -1
  98. package/dist/hooks/useControllableState.js +6 -6
  99. package/dist/themes/utils.cjs +2 -2
  100. package/dist/themes/utils.js +1 -1
  101. package/dist/v2/MainNav/MainNav.cjs +2 -2
  102. package/dist/v2/MainNav/MainNav.js +9 -31
  103. package/dist/v2/MainNav/MainNavContext.cjs +1 -1
  104. package/dist/v2/MainNav/MainNavContext.js +1 -1
  105. package/dist/v2/MainNav/NavBrand.cjs +3 -3
  106. package/dist/v2/MainNav/NavBrand.js +13 -36
  107. package/dist/v2/MainNav/NavCondense.cjs +2 -5
  108. package/dist/v2/MainNav/NavCondense.js +15 -22
  109. package/dist/v2/MainNav/NavFooter.cjs +1 -1
  110. package/dist/v2/MainNav/NavFooter.js +4 -10
  111. package/dist/v2/MainNav/NavLink.cjs +10 -10
  112. package/dist/v2/MainNav/NavLink.js +18 -39
  113. package/dist/v2/MainNav/NavSection.cjs +1 -1
  114. package/dist/v2/MainNav/NavSection.js +8 -42
  115. package/dist/v2/MainNav/NavSections.cjs +2 -2
  116. package/dist/v2/MainNav/NavSections.js +8 -22
  117. package/dist/v2/MainNav/NavUser.cjs +2 -2
  118. package/dist/v2/MainNav/NavUser.js +13 -27
  119. package/dist/v2/Pagination/Pagination.cjs +1 -5
  120. package/dist/v2/Pagination/Pagination.js +7 -21
  121. package/dist/v2/Pagination/components.cjs +7 -10
  122. package/dist/v2/Pagination/components.js +32 -65
  123. package/dist/v2/SubNav/SubNav.cjs +5 -5
  124. package/dist/v2/SubNav/SubNav.js +8 -13
  125. package/dist/v2/SubNav/SubNavHeader.cjs +3 -3
  126. package/dist/v2/SubNav/SubNavHeader.js +30 -77
  127. package/dist/v2/SubNav/SubNavLink.cjs +5 -5
  128. package/dist/v2/SubNav/SubNavLink.js +13 -47
  129. package/dist/v2/SubNav/SubNavLinkSection.cjs +4 -4
  130. package/dist/v2/SubNav/SubNavLinkSection.js +19 -34
  131. package/dist/v2/SubNav/SubNavSection.cjs +2 -2
  132. package/dist/v2/SubNav/SubNavSection.js +16 -55
  133. package/dist/v2/SubNav/SubNavSectionLabel.cjs +3 -3
  134. package/dist/v2/SubNav/SubNavSectionLabel.js +10 -38
  135. package/dist/v2/SubNav/SubNavSections.cjs +1 -1
  136. package/dist/v2/SubNav/SubNavSections.js +4 -18
  137. package/package.json +4 -4
  138. package/dist/Grid/GridContext.cjs +0 -1
  139. package/dist/Grid/GridContext.js +0 -6
  140. package/dist/Tabs/useTabsFocus.cjs +0 -1
  141. package/dist/Tabs/useTabsFocus.js +0 -17
  142. package/dist/Textarea/TextareaInput.cjs +0 -30
  143. package/dist/Textarea/TextareaInput.js +0 -65
@@ -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;
package/dist/Tabs/Tabs.js CHANGED
@@ -1,131 +1,76 @@
1
- import { jsx as l } from "react/jsx-runtime";
2
- import { Children as C, cloneElement as D } from "react";
3
- import o from "prop-types";
4
- import k from "styled-components";
5
- import { DefaultTabsRow as w, SimpleTabBox as R, DefaultTabButton as B, DefaultTabBox as E } from "./components.js";
6
- import { useTabs as K } from "./TabsContext.js";
7
- import { useTabsFocus as P } from "./useTabsFocus.js";
8
- import { KeyboardKeys as T } from "../helpers/keyboardKeys.js";
9
- import { Typography as I } from "../Typography/Typography.js";
10
- const A = k.button`
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { Children as T, cloneElement as I, useRef as g, useEffect as k } from "react";
3
+ import { useCallbackRef as w } from "@strapi/ui-primitives";
4
+ import R from "styled-components";
5
+ import { DefaultTabsRow as v, SimpleTabBox as B, DefaultTabButton as E, DefaultTabBox as K } from "./components.js";
6
+ import { useTabs as A } from "./TabsContext.js";
7
+ import { KeyboardKeys as y } from "../helpers/keyboardKeys.js";
8
+ import { Typography as C } from "../Typography/Typography.js";
9
+ const N = (s, b) => {
10
+ const i = g(null), l = g(!1), r = w(b);
11
+ return k(() => {
12
+ if (i.current) {
13
+ if (l.current) {
14
+ const d = i.current.querySelector('[tabindex="0"]');
15
+ d && (d.focus(), r(s));
16
+ }
17
+ l.current || (l.current = !0);
18
+ }
19
+ }, [s, r]), i;
20
+ }, $ = R.button`
11
21
  &[aria-disabled='true'] {
12
22
  cursor: not-allowed;
13
23
  }
14
- `, N = ({ children: b, ...p }) => {
15
- const { id: x, selectedTabIndex: c, selectTabIndex: i, label: f, variant: u, onTabChange: y } = K(), m = P(c, y), r = C.toArray(b).map(
16
- (n, s) => D(n, {
17
- id: `${x}-${s}`,
18
- index: s,
19
- selectedTabIndex: c,
20
- onTabClick: () => i(s),
21
- variant: u
22
- })
23
- ), h = (n) => {
24
- if (!r.every((a) => a.props.disabled))
25
- switch (n.key) {
26
- case T.RIGHT: {
27
- const a = c + 1, e = (t) => r[t].props.disabled ? t === r.length - 1 ? e(0) : e(t + 1) : t, d = e(a >= r.length ? 0 : a);
28
- i(d);
24
+ `, G = ({ children: s, ...b }) => {
25
+ const { id: i, selectedTabIndex: l, selectTabIndex: r, label: d, variant: h, onTabChange: x } = A(), p = N(l, x), n = T.toArray(s).map((t, u) => I(t, {
26
+ id: `${i}-${u}`,
27
+ index: u,
28
+ selectedTabIndex: l,
29
+ onTabClick: () => r(u),
30
+ variant: h
31
+ })), m = (t) => {
32
+ if (!n.every((a) => a.props.disabled))
33
+ switch (t.key) {
34
+ case y.RIGHT: {
35
+ const a = l + 1, e = (o) => n[o].props.disabled ? o === n.length - 1 ? e(0) : e(o + 1) : o, f = e(a >= n.length ? 0 : a);
36
+ r(f);
29
37
  break;
30
38
  }
31
- case T.LEFT: {
32
- const a = c - 1, e = (t) => r[t].props.disabled ? e(t === 0 ? r.length - 1 : t - 1) : t, d = e(a < 0 ? r.length - 1 : a);
33
- i(d);
39
+ case y.LEFT: {
40
+ const a = l - 1, e = (o) => n[o].props.disabled ? e(o === 0 ? n.length - 1 : o - 1) : o, f = e(a < 0 ? n.length - 1 : a);
41
+ r(f);
34
42
  break;
35
43
  }
36
- case T.HOME: {
37
- const a = r.findIndex((e) => !e.props.disabled);
38
- i(a);
44
+ case y.HOME: {
45
+ const a = n.findIndex((e) => !e.props.disabled);
46
+ r(a);
39
47
  break;
40
48
  }
41
- case T.END: {
42
- const e = r.map((d, t) => ({ isDisabled: d.props.disabled, index: t })).reverse().find(({ isDisabled: d }) => !d);
43
- e && i(e.index);
49
+ case y.END: {
50
+ const e = n.map((f, o) => ({ isDisabled: f.props.disabled, index: o })).reverse().find(({ isDisabled: f }) => !f);
51
+ e && r(e.index);
44
52
  break;
45
53
  }
46
54
  }
47
55
  };
48
- return u === "simple" ? (
56
+ return h === "simple" ? (
49
57
  // TODO: This needs to be reviewed how to handle correctly since it's supposed to have focus.
50
58
  // eslint-disable-next-line jsx-a11y/interactive-supports-focus
51
- /* @__PURE__ */ l("div", { ref: m, role: "tablist", "aria-label": f, onKeyDown: h, ...p, children: r })
52
- ) : /* @__PURE__ */ l(
53
- w,
54
- {
55
- ref: m,
56
- role: "tablist",
57
- alignItems: "flex-end",
58
- "aria-label": f,
59
- onKeyDown: h,
60
- ...p,
61
- children: r
62
- }
63
- );
64
- };
65
- N.propTypes = {
66
- children: o.node.isRequired
67
- };
68
- const v = ({ disabled: b, id: p, children: x, variant: c, hasError: i, index: f, selectedTabIndex: u, onTabClick: y, ...m }) => {
69
- const r = `${p}-tab`, h = `${p}-tabpanel`, n = f === u, s = () => {
70
- b || y();
59
+ c("div", { ref: p, role: "tablist", "aria-label": d, onKeyDown: m, ...b, children: n })
60
+ ) : c(v, { ref: p, role: "tablist", alignItems: "flex-end", "aria-label": d, onKeyDown: m, ...b, children: n });
61
+ }, L = ({ disabled: s = !1, id: b, children: i, variant: l, hasError: r = !1, index: d, selectedTabIndex: h, onTabClick: x, ...p }) => {
62
+ const n = `${b}-tab`, m = `${b}-tabpanel`, t = d === h, u = () => {
63
+ s || x && x();
71
64
  };
72
- if (c === "simple") {
65
+ if (l === "simple") {
73
66
  let e;
74
- return i ? e = "danger600" : n ? e = "primary600" : e = "neutral600", /* @__PURE__ */ l(
75
- A,
76
- {
77
- id: r,
78
- role: "tab",
79
- "aria-controls": n ? h : void 0,
80
- tabIndex: n ? 0 : -1,
81
- "aria-selected": n,
82
- type: "button",
83
- onClick: s,
84
- "aria-disabled": b,
85
- ...m,
86
- children: /* @__PURE__ */ l(R, { padding: 4, selected: n, hasError: i, children: /* @__PURE__ */ l(I, { variant: "sigma", textColor: e, children: x }) })
87
- }
88
- );
67
+ return r ? e = "danger600" : t ? e = "primary600" : e = "neutral600", c($, { id: n, role: "tab", "aria-controls": t ? m : void 0, tabIndex: t ? 0 : -1, "aria-selected": t, type: "button", onClick: u, "aria-disabled": s, ...p, children: c(B, { padding: 4, selected: t, hasError: r, children: c(C, { variant: "sigma", textColor: e, children: i }) }) });
89
68
  }
90
- i && console.warn('The "hasError" prop is only available for the "simple" variant.');
91
- const a = u - 1 === f;
92
- return /* @__PURE__ */ l(
93
- B,
94
- {
95
- id: r,
96
- role: "tab",
97
- type: "button",
98
- "aria-controls": n ? h : void 0,
99
- tabIndex: n ? 0 : -1,
100
- "aria-selected": n,
101
- onClick: s,
102
- "aria-disabled": b,
103
- showRightBorder: a,
104
- ...m,
105
- children: /* @__PURE__ */ l(E, { padding: n ? 4 : 3, background: n ? "neutral0" : "neutral100", selected: n, children: /* @__PURE__ */ l(I, { fontWeight: "bold", textColor: n ? "primary700" : "neutral600", children: x }) })
106
- }
107
- );
108
- };
109
- v.defaultProps = {
110
- disabled: !1,
111
- hasError: !1,
112
- id: void 0,
113
- index: void 0,
114
- onTabClick: void 0,
115
- selectedTabIndex: void 0,
116
- variant: void 0
117
- };
118
- v.propTypes = {
119
- children: o.node.isRequired,
120
- disabled: o.bool,
121
- hasError: o.bool,
122
- id: o.string,
123
- index: o.number,
124
- onTabClick: o.func,
125
- selectedTabIndex: o.number,
126
- variant: o.oneOf(["simple"])
69
+ r && console.warn('The "hasError" prop is only available for the "simple" variant.');
70
+ const a = h && h - 1 === d;
71
+ return c(E, { id: n, role: "tab", type: "button", "aria-controls": t ? m : void 0, tabIndex: t ? 0 : -1, "aria-selected": t, onClick: u, "aria-disabled": s, showRightBorder: !!a, ...p, children: c(K, { padding: t ? 4 : 3, background: t ? "neutral0" : "neutral100", selected: t, children: c(C, { fontWeight: "bold", textColor: t ? "primary700" : "neutral600", children: i }) }) });
127
72
  };
128
73
  export {
129
- v as Tab,
130
- N as Tabs
74
+ L as Tab,
75
+ G as Tabs
131
76
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=e.createContext(),s=()=>e.useContext(t);exports.TabsContext=t;exports.useTabs=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=e.createContext({id:"",label:"",selectedTabIndex:0,selectTabIndex(){throw new Error("TabsContext.selectTabIndex is not implemented.")}}),s=()=>e.useContext(t);exports.TabsContext=t;exports.useTabs=s;
@@ -1,6 +1,13 @@
1
- import { createContext as t, useContext as e } from "react";
2
- const o = t(), n = () => e(o);
1
+ import { createContext as e, useContext as t } from "react";
2
+ const n = e({
3
+ id: "",
4
+ label: "",
5
+ selectedTabIndex: 0,
6
+ selectTabIndex() {
7
+ throw new Error("TabsContext.selectTabIndex is not implemented.");
8
+ }
9
+ }), s = () => t(n);
3
10
  export {
4
- o as TabsContext,
5
- n as useTabs
11
+ n as TabsContext,
12
+ s as useTabs
6
13
  };
@@ -1,15 +1,17 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),g=require("react"),q=require("prop-types"),m=require("styled-components"),T=require("./TextareaInput.cjs"),v=require("../hooks/useId.cjs"),y=require("../Field/Field.cjs"),d=require("../Flex/Flex.cjs"),F=require("../Field/FieldLabel.cjs"),b=require("../Field/FieldHint.cjs"),j=require("../Field/FieldError.cjs"),l=t=>t&&t.__esModule?t:{default:t},_=l(g),e=l(q),I=l(m),O=I.default.div`
2
- & textarea {
3
- // TODO: remove when we'll have fonts in the theme
4
- height: ${80/16}rem;
5
- line-height: ${20/16}rem;
6
- }
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),p=require("react"),g=require("styled-components"),j=require("../hooks/useId.cjs"),b=require("../themes/utils.cjs"),d=require("../Box/Box.cjs"),m=require("../Field/FieldContext.cjs"),y=require("../Field/Field.cjs"),R=require("../Flex/Flex.cjs"),_=require("../Field/FieldLabel.cjs"),$=require("../Field/FieldHint.cjs"),E=require("../Field/FieldError.cjs"),c=e=>e&&e.__esModule?e:{default:e},f=c(p),x=c(g),I=x.default(d.Box)`
2
+ ${b.inputFocusStyle()}
3
+ `,S=x.default(d.Box)`
4
+ border: none;
5
+ resize: none;
7
6
 
8
- & textarea::placeholder {
9
- font-weight: 400;
10
- font-size: ${14/16}rem;
11
- line-height: 1.43;
12
- color: ${({theme:t})=>t.colors.neutral500};
7
+ ::placeholder {
8
+ color: ${({theme:e})=>e.colors.neutral500};
9
+ font-size: ${({theme:e})=>e.fontSizes[2]};
10
+ color: ${({theme:e})=>e.colors.neutral500};
13
11
  opacity: 1;
14
12
  }
15
- `,i=_.default.forwardRef(({name:t,hint:n,error:o,label:a,children:s,labelAction:u,id:c,required:f,...h},x)=>{const p=v.useId(c);return r.jsx(O,{children:r.jsx(y.Field,{name:t,hint:n,error:o,id:p,required:f,children:r.jsxs(d.Flex,{direction:"column",alignItems:"stretch",gap:1,children:[a&&r.jsx(d.Flex,{children:r.jsx(F.FieldLabel,{action:u,children:a})}),r.jsx(T.TextareaInput,{ref:x,as:"textarea",value:s,...h}),r.jsx(b.FieldHint,{}),r.jsx(j.FieldError,{})]})})})});i.displayName="Textarea";i.defaultProps={"aria-label":void 0,label:void 0,labelAction:void 0,error:void 0,hint:void 0,id:void 0,children:"",required:!1};i.propTypes={"aria-label":e.default.string,children:e.default.string,error:e.default.string,hint:e.default.oneOfType([e.default.string,e.default.node,e.default.arrayOf(e.default.node)]),id:e.default.string,label:e.default.string,labelAction:e.default.element,name:e.default.string.isRequired,required:e.default.bool};exports.Textarea=i;
13
+
14
+ &:focus-within {
15
+ outline: none;
16
+ }
17
+ `,T=f.default.forwardRef(({disabled:e,...a},s)=>{const{id:t,error:i,hint:l,required:u}=m.useField(),n=!!i;let o=l?`${t}-hint`:void 0;return i&&(o=`${t}-error`),r.jsx(I,{borderColor:n?"danger600":"neutral200",hasError:n,hasRadius:!0,children:r.jsx(S,{"aria-describedby":o,"aria-invalid":n,"aria-required":u,as:"textarea",background:e?"neutral150":"neutral0",color:e?"neutral600":"neutral800",disabled:e,fontSize:2,hasRadius:!0,height:`${105/16}rem`,id:t,ref:s,lineHeight:4,padding:4,width:"100%",...a})})}),w=f.default.forwardRef(({name:e,hint:a,error:s,label:t,labelAction:i,id:l,required:u=!1,children:n,value:o,...h},q)=>{const F=j.useId(l);return r.jsx(y.Field,{name:e,hint:a,error:s,id:F,required:u,children:r.jsxs(R.Flex,{direction:"column",alignItems:"stretch",gap:1,children:[t&&r.jsx(_.FieldLabel,{action:i,children:t}),r.jsx(T,{ref:q,value:n??o,...h}),r.jsx($.FieldHint,{}),r.jsx(E.FieldError,{})]})})});exports.Textarea=w;
@@ -1,61 +1,39 @@
1
- import { jsx as r, jsxs as g } from "react/jsx-runtime";
2
- import u from "react";
3
- import e from "prop-types";
4
- import x from "styled-components";
5
- import { TextareaInput as v } from "./TextareaInput.js";
6
- import { useId as T } from "../hooks/useId.js";
7
- import { Field as b } from "../Field/Field.js";
8
- import { Flex as a } from "../Flex/Flex.js";
9
- import { FieldLabel as y } from "../Field/FieldLabel.js";
10
- import { FieldHint as F } from "../Field/FieldHint.js";
11
- import { FieldError as w } from "../Field/FieldError.js";
12
- const I = x.div`
13
- & textarea {
14
- // TODO: remove when we'll have fonts in the theme
15
- height: ${80 / 16}rem;
16
- line-height: ${20 / 16}rem;
17
- }
1
+ import { jsx as e, jsxs as x } from "react/jsx-runtime";
2
+ import m from "react";
3
+ import c from "styled-components";
4
+ import { useId as g } from "../hooks/useId.js";
5
+ import { inputFocusStyle as F } from "../themes/utils.js";
6
+ import { Box as u } from "../Box/Box.js";
7
+ import { useField as $ } from "../Field/FieldContext.js";
8
+ import { Field as R } from "../Field/Field.js";
9
+ import { Flex as b } from "../Flex/Flex.js";
10
+ import { FieldLabel as w } from "../Field/FieldLabel.js";
11
+ import { FieldHint as y } from "../Field/FieldHint.js";
12
+ import { FieldError as z } from "../Field/FieldError.js";
13
+ const E = c(u)`
14
+ ${F()}
15
+ `, I = c(u)`
16
+ border: none;
17
+ resize: none;
18
18
 
19
- & textarea::placeholder {
20
- font-weight: 400;
21
- font-size: ${14 / 16}rem;
22
- line-height: 1.43;
23
- color: ${({ theme: i }) => i.colors.neutral500};
19
+ ::placeholder {
20
+ color: ${({ theme: r }) => r.colors.neutral500};
21
+ font-size: ${({ theme: r }) => r.fontSizes[2]};
22
+ color: ${({ theme: r }) => r.colors.neutral500};
24
23
  opacity: 1;
25
24
  }
26
- `, t = u.forwardRef(
27
- ({ name: i, hint: l, error: n, label: o, children: d, labelAction: m, id: s, required: p, ...h }, c) => {
28
- const f = T(s);
29
- return /* @__PURE__ */ r(I, { children: /* @__PURE__ */ r(b, { name: i, hint: l, error: n, id: f, required: p, children: /* @__PURE__ */ g(a, { direction: "column", alignItems: "stretch", gap: 1, children: [
30
- o && /* @__PURE__ */ r(a, { children: /* @__PURE__ */ r(y, { action: m, children: o }) }),
31
- /* @__PURE__ */ r(v, { ref: c, as: "textarea", value: d, ...h }),
32
- /* @__PURE__ */ r(F, {}),
33
- /* @__PURE__ */ r(w, {})
34
- ] }) }) });
25
+
26
+ &:focus-within {
27
+ outline: none;
35
28
  }
36
- );
37
- t.displayName = "Textarea";
38
- t.defaultProps = {
39
- "aria-label": void 0,
40
- label: void 0,
41
- labelAction: void 0,
42
- error: void 0,
43
- hint: void 0,
44
- id: void 0,
45
- children: "",
46
- required: !1
47
- };
48
- t.propTypes = {
49
- "aria-label": e.string,
50
- children: e.string,
51
- error: e.string,
52
- hint: e.oneOfType([e.string, e.node, e.arrayOf(e.node)]),
53
- id: e.string,
54
- label: e.string,
55
- labelAction: e.element,
56
- name: e.string.isRequired,
57
- required: e.bool
58
- };
29
+ `, q = m.forwardRef(({ disabled: r, ...a }, d) => {
30
+ const { id: o, error: i, hint: l, required: s } = $(), t = !!i;
31
+ let n = l ? `${o}-hint` : void 0;
32
+ return i && (n = `${o}-error`), e(E, { borderColor: t ? "danger600" : "neutral200", hasError: t, hasRadius: !0, children: e(I, { "aria-describedby": n, "aria-invalid": t, "aria-required": s, as: "textarea", background: r ? "neutral150" : "neutral0", color: r ? "neutral600" : "neutral800", disabled: r, fontSize: 2, hasRadius: !0, height: `${105 / 16}rem`, id: o, ref: d, lineHeight: 4, padding: 4, width: "100%", ...a }) });
33
+ }), A = m.forwardRef(({ name: r, hint: a, error: d, label: o, labelAction: i, id: l, required: s = !1, children: t, value: n, ...f }, p) => {
34
+ const h = g(l);
35
+ return e(R, { name: r, hint: a, error: d, id: h, required: s, children: x(b, { direction: "column", alignItems: "stretch", gap: 1, children: [o && e(w, { action: i, children: o }), e(q, { ref: p, value: t ?? n, ...f }), e(y, {}), e(z, {})] }) });
36
+ });
59
37
  export {
60
- t as Textarea
38
+ A as Textarea
61
39
  };
@@ -1,19 +1,19 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),$=require("react"),_=require("prop-types"),L=require("styled-components"),m=require("../themes/sizes.cjs"),z=require("../themes/utils.cjs"),S=require("../Box/Box.cjs"),F=require("../Flex/Flex.cjs"),W=require("../Field/FieldContext.cjs"),B=require("../VisuallyHidden/VisuallyHidden.cjs"),h=require("../Typography/Typography.cjs"),c=e=>e&&e.__esModule?e:{default:e},M=c($),n=c(_),i=c(L),P=i.default.label`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),R=require("react"),k=require("styled-components"),m=require("../themes/utils.cjs"),_=require("../Box/Box.cjs"),S=require("../Flex/Flex.cjs"),B=require("../Field/FieldContext.cjs"),F=require("../VisuallyHidden/VisuallyHidden.cjs"),f=require("../Typography/Typography.cjs"),x=e=>e&&e.__esModule?e:{default:e},L=x(R),a=x(k),W=a.default.label`
2
2
  position: relative;
3
3
  display: inline-block;
4
4
  z-index: 0;
5
5
  width: 100%;
6
- `,I=i.default(S.Box)`
6
+ `,z=a.default(_.Box)`
7
7
  cursor: ${({disabled:e})=>e?"not-allowed":void 0};
8
8
  // Masks the background of each value
9
9
  overflow: hidden;
10
10
  flex-wrap: wrap;
11
11
 
12
- ${z.inputFocusStyle()}
13
- `,g=i.default(F.Flex).attrs({hasRadius:!0})`
14
- background-color: ${({theme:e,checked:l,disabled:a})=>l?a?e.colors.neutral200:e.colors.neutral0:"transparent"};
12
+ ${m.inputFocusStyle()}
13
+ `,h=a.default(S.Flex).attrs({hasRadius:!0})`
14
+ background-color: ${({theme:e,checked:o,disabled:l})=>o?l?e.colors.neutral200:e.colors.neutral0:"transparent"};
15
15
  border: 1px solid
16
- ${({theme:e,checked:l,disabled:a})=>l&&l!==null?a?e.colors.neutral300:e.colors.neutral200:a?e.colors.neutral150:e.colors.neutral100};
16
+ ${({theme:e,checked:o,disabled:l})=>o&&o!==null?l?e.colors.neutral300:e.colors.neutral200:l?e.colors.neutral150:e.colors.neutral100};
17
17
  position: relative;
18
18
  user-select: none;
19
19
  z-index: 2;
@@ -25,7 +25,7 @@
25
25
  */
26
26
  padding-top: ${({size:e})=>`${e==="S"?"2px":"6px"}`};
27
27
  padding-bottom: ${({size:e})=>`${e==="S"?"2px":"6px"}`};
28
- `,O=i.default.input`
28
+ `,M=a.default.input`
29
29
  height: 100%;
30
30
  left: 0;
31
31
  opacity: 0;
@@ -33,4 +33,4 @@
33
33
  top: 0;
34
34
  z-index: 1;
35
35
  width: 100%;
36
- `,s=M.default.forwardRef(({size:e,onLabel:l,offLabel:a,children:x,checked:t,disabled:r,onChange:b,...y},C)=>{const{error:q,hint:w,id:p,name:j,required:T}=W.useField(),f="neutral600";let v=!t&&t!==null?"danger700":f,R=t?"primary600":f;const k=d=>{r||b(d)};let u;return q?u=`${p}-error`:w&&(u=`${p}-hint`),o.jsxs(P,{children:[o.jsx(B.VisuallyHidden,{children:x}),o.jsxs(I,{hasRadius:!0,disabled:r,padding:1,display:"flex",background:r?"neutral150":"neutral100",borderStyle:"solid",borderWidth:"1px",borderColor:"neutral200",children:[o.jsx(g,{size:e,paddingLeft:3,paddingRight:3,justifyContent:"center",alignItems:"center","aria-hidden":!0,checked:t===null?!1:!t,disabled:r,children:o.jsx(h.Typography,{variant:"pi",fontWeight:"bold",textTransform:"uppercase",textColor:r?"neutral700":v,children:a})}),o.jsx(g,{size:e,paddingLeft:3,paddingRight:3,justifyContent:"center",alignItems:"center","aria-hidden":!0,checked:t===null?!1:t,disabled:r,children:o.jsx(h.Typography,{variant:"pi",fontWeight:"bold",textTransform:"uppercase",textColor:r?"neutral700":R,children:l})}),o.jsx(O,{type:"checkbox","aria-disabled":r,"aria-describedby":u,onChange:d=>k(d),name:j,ref:C,"aria-required":T,...y,checked:!(t===null||!t)})]})]})});s.displayName="ToggleCheckbox";s.defaultProps={disabled:!1,checked:!1,onChange:void 0,size:"M"};s.propTypes={checked:n.default.bool,children:n.default.string.isRequired,disabled:n.default.bool,offLabel:n.default.string.isRequired,onChange:n.default.func,onLabel:n.default.string.isRequired,size:n.default.oneOf(Object.keys(m.sizes.input))};exports.ToggleCheckbox=s;
36
+ `,g=L.default.forwardRef(({size:e="M",onLabel:o,offLabel:l,children:b,checked:r=!1,disabled:t=!1,onChange:u,...y},C)=>{const{error:d,hint:w,id:c,name:j,required:q}=B.useField(),p="neutral600";let T=!r&&r!==null?"danger700":p,$=r?"primary600":p;const v=s=>{t||u&&u(s)};let i;return d?i=`${c}-error`:w&&(i=`${c}-hint`),n.jsxs(W,{children:[n.jsx(F.VisuallyHidden,{children:b}),n.jsxs(z,{hasRadius:!0,disabled:t,padding:1,display:"flex",background:t?"neutral150":"neutral100",borderStyle:"solid",borderWidth:"1px",borderColor:"neutral200",hasError:!!d,children:[n.jsx(h,{size:e,paddingLeft:3,paddingRight:3,justifyContent:"center",alignItems:"center","aria-hidden":!0,checked:r===null?!1:!r,disabled:t,children:n.jsx(f.Typography,{variant:"pi",fontWeight:"bold",textTransform:"uppercase",textColor:t?"neutral700":T,children:l})}),n.jsx(h,{size:e,paddingLeft:3,paddingRight:3,justifyContent:"center",alignItems:"center","aria-hidden":!0,checked:r===null?!1:r,disabled:t,children:n.jsx(f.Typography,{variant:"pi",fontWeight:"bold",textTransform:"uppercase",textColor:t?"neutral700":$,children:o})}),n.jsx(M,{type:"checkbox","aria-disabled":t,"aria-describedby":i,onChange:s=>v(s),name:j,ref:C,"aria-required":q,...y,checked:!(r===null||!r)})]})]})});g.displayName="ToggleCheckbox";exports.ToggleCheckbox=g;