@strapi/design-system 1.6.4 → 1.6.5

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 (145) hide show
  1. package/dist/Accordion/Accordion.cjs +1 -1
  2. package/dist/Accordion/Accordion.js +1 -1
  3. package/dist/Accordion/AccordionToggle.cjs +6 -6
  4. package/dist/Accordion/AccordionToggle.js +48 -51
  5. package/dist/BaseRadio/BaseRadio.cjs +1 -1
  6. package/dist/BaseRadio/BaseRadio.js +1 -1
  7. package/dist/Box/Box.cjs +3 -3
  8. package/dist/Box/Box.js +26 -26
  9. package/dist/Card/Card.cjs +1 -1
  10. package/dist/Card/Card.js +1 -1
  11. package/dist/CarouselInput/CarouselActions.cjs +1 -1
  12. package/dist/CarouselInput/CarouselActions.js +16 -4
  13. package/dist/CarouselInput/CarouselInput.cjs +1 -1
  14. package/dist/CarouselInput/CarouselInput.js +13 -13
  15. package/dist/Checkbox/Checkbox.cjs +2 -2
  16. package/dist/Checkbox/Checkbox.js +13 -13
  17. package/dist/Combobox/Combobox.cjs +1 -1
  18. package/dist/Combobox/Combobox.js +62 -63
  19. package/dist/DatePicker/DatePickerCalendar.cjs +1 -1
  20. package/dist/DatePicker/DatePickerCalendar.js +2 -1
  21. package/dist/DatePicker/DatePickerTd.cjs +3 -3
  22. package/dist/DatePicker/DatePickerTd.js +8 -9
  23. package/dist/DatePicker/DatePickerTh.cjs +2 -2
  24. package/dist/DatePicker/DatePickerTh.js +3 -4
  25. package/dist/DateTimePicker/DateTimePicker.cjs +1 -1
  26. package/dist/DateTimePicker/DateTimePicker.js +28 -28
  27. package/dist/Dialog/Dialog.cjs +4 -4
  28. package/dist/Dialog/Dialog.js +2 -2
  29. package/dist/Dialog/DialogFooter.cjs +3 -3
  30. package/dist/Dialog/DialogFooter.js +2 -2
  31. package/dist/Field/Field.cjs +1 -1
  32. package/dist/Field/Field.js +31 -27
  33. package/dist/Field/FieldAction.cjs +2 -8
  34. package/dist/Field/FieldAction.js +27 -16
  35. package/dist/Field/FieldContext.cjs +1 -1
  36. package/dist/Field/FieldContext.js +2 -2
  37. package/dist/Field/FieldError.cjs +1 -1
  38. package/dist/Field/FieldError.js +14 -4
  39. package/dist/Field/FieldHint.cjs +1 -1
  40. package/dist/Field/FieldHint.js +17 -7
  41. package/dist/Field/FieldInput.cjs +14 -16
  42. package/dist/Field/FieldInput.js +104 -72
  43. package/dist/Field/FieldLabel.cjs +3 -3
  44. package/dist/Field/FieldLabel.js +43 -25
  45. package/dist/FocusTrap/FocusTrap.cjs +1 -1
  46. package/dist/FocusTrap/FocusTrap.js +34 -38
  47. package/dist/JSONInput/JSONInput.cjs +1 -1
  48. package/dist/JSONInput/JSONInput.js +29 -27
  49. package/dist/Layout/HeaderLayout.cjs +2 -2
  50. package/dist/Layout/HeaderLayout.js +3 -3
  51. package/dist/MainNav/NavSection.cjs +1 -1
  52. package/dist/MainNav/NavSection.js +33 -13
  53. package/dist/MainNav/NavSections.cjs +2 -2
  54. package/dist/MainNav/NavSections.js +20 -10
  55. package/dist/ModalLayout/ModalLayout.cjs +1 -1
  56. package/dist/ModalLayout/ModalLayout.js +1 -1
  57. package/dist/NumberInput/NumberInput.cjs +2 -2
  58. package/dist/NumberInput/NumberInput.js +32 -32
  59. package/dist/Popover/Popover.cjs +3 -3
  60. package/dist/Popover/Popover.js +1 -1
  61. package/dist/RawTable/RawCell.cjs +1 -1
  62. package/dist/RawTable/RawCell.js +61 -67
  63. package/dist/RawTable/RawTable.cjs +1 -1
  64. package/dist/RawTable/RawTable.js +39 -37
  65. package/dist/RawTable/RawTbody.cjs +1 -1
  66. package/dist/RawTable/RawTbody.js +14 -11
  67. package/dist/RawTable/RawThead.cjs +1 -1
  68. package/dist/RawTable/RawThead.js +13 -8
  69. package/dist/RawTable/RawTr.cjs +1 -1
  70. package/dist/RawTable/RawTr.js +20 -13
  71. package/dist/Searchbar/Searchbar.cjs +2 -2
  72. package/dist/Searchbar/Searchbar.js +7 -6
  73. package/dist/Select/Select.cjs +2 -2
  74. package/dist/Select/Select.js +24 -25
  75. package/dist/Select/SelectList.cjs +1 -1
  76. package/dist/Select/SelectList.js +10 -8
  77. package/dist/SimpleMenu/SimpleMenu.cjs +1 -1
  78. package/dist/SimpleMenu/SimpleMenu.js +1 -1
  79. package/dist/SubNav/SubNavHeader.cjs +2 -2
  80. package/dist/SubNav/SubNavHeader.js +2 -2
  81. package/dist/SubNav/SubNavLinkSection.cjs +3 -3
  82. package/dist/SubNav/SubNavLinkSection.js +1 -1
  83. package/dist/SubNav/SubNavSection.cjs +2 -2
  84. package/dist/SubNav/SubNavSection.js +7 -7
  85. package/dist/SubNav/SubNavSections.cjs +1 -1
  86. package/dist/SubNav/SubNavSections.js +17 -7
  87. package/dist/Tabs/TabGroup.cjs +1 -1
  88. package/dist/Tabs/TabGroup.js +1 -1
  89. package/dist/Tag/Tag.cjs +8 -8
  90. package/dist/Tag/Tag.js +52 -49
  91. package/dist/TextInput/TextInput.cjs +1 -1
  92. package/dist/TextInput/TextInput.js +13 -13
  93. package/dist/Textarea/Textarea.cjs +2 -2
  94. package/dist/Textarea/Textarea.js +12 -13
  95. package/dist/Textarea/TextareaInput.cjs +4 -4
  96. package/dist/Textarea/TextareaInput.js +13 -12
  97. package/dist/TimePicker/TimePicker.cjs +2 -2
  98. package/dist/TimePicker/TimePicker.js +1 -1
  99. package/dist/ToggleCheckbox/ToggleCheckbox.cjs +2 -2
  100. package/dist/ToggleCheckbox/ToggleCheckbox.js +1 -0
  101. package/dist/ToggleInput/ToggleInput.cjs +3 -3
  102. package/dist/ToggleInput/ToggleInput.js +28 -29
  103. package/dist/Tooltip/Tooltip.cjs +1 -1
  104. package/dist/Tooltip/Tooltip.js +1 -1
  105. package/dist/helpers/deprecations.cjs +1 -1
  106. package/dist/helpers/deprecations.js +7 -7
  107. package/dist/helpers/useElementOnScreen.cjs +1 -1
  108. package/dist/helpers/useElementOnScreen.js +4 -13
  109. package/dist/helpers/useId.cjs +1 -1
  110. package/dist/helpers/useId.js +4 -11
  111. package/dist/helpers/useIntersection.cjs +1 -1
  112. package/dist/helpers/useIntersection.js +4 -21
  113. package/dist/helpers/useLockScroll.cjs +1 -1
  114. package/dist/helpers/useLockScroll.js +4 -7
  115. package/dist/helpers/usePrevious.cjs +1 -1
  116. package/dist/helpers/usePrevious.js +4 -8
  117. package/dist/helpers/useResizeObserver.cjs +1 -1
  118. package/dist/helpers/useResizeObserver.js +4 -14
  119. package/dist/hooks/useElementOnScreen.cjs +1 -0
  120. package/dist/hooks/useElementOnScreen.js +15 -0
  121. package/dist/hooks/useIntersection.cjs +1 -1
  122. package/dist/hooks/useIntersection.js +3 -3
  123. package/dist/hooks/useLockScroll.cjs +1 -0
  124. package/dist/hooks/useLockScroll.js +9 -0
  125. package/dist/hooks/usePrevious.cjs +1 -0
  126. package/dist/hooks/usePrevious.js +10 -0
  127. package/dist/hooks/useResizeObserver.cjs +1 -0
  128. package/dist/hooks/useResizeObserver.js +16 -0
  129. package/dist/v2/MainNav/NavSection.cjs +1 -1
  130. package/dist/v2/MainNav/NavSection.js +33 -13
  131. package/dist/v2/MainNav/NavSections.cjs +2 -2
  132. package/dist/v2/MainNav/NavSections.js +20 -10
  133. package/dist/v2/SimpleMenu/SimpleMenu.cjs +1 -1
  134. package/dist/v2/SimpleMenu/SimpleMenu.js +1 -1
  135. package/dist/v2/SubNav/SubNavHeader.cjs +2 -2
  136. package/dist/v2/SubNav/SubNavHeader.js +2 -2
  137. package/dist/v2/SubNav/SubNavLinkSection.cjs +3 -3
  138. package/dist/v2/SubNav/SubNavLinkSection.js +1 -1
  139. package/dist/v2/SubNav/SubNavSection.cjs +2 -2
  140. package/dist/v2/SubNav/SubNavSection.js +10 -10
  141. package/dist/v2/SubNav/SubNavSections.cjs +1 -1
  142. package/dist/v2/SubNav/SubNavSections.js +17 -7
  143. package/package.json +4 -3
  144. package/dist/Select/SingleSelect.cjs +0 -82
  145. package/dist/Select/SingleSelect.js +0 -285
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),D=require("@radix-ui/react-use-callback-ref"),z=require("@strapi/icons"),U=require("prop-types"),H=require("styled-components"),T=require("./utils.cjs"),G=require("../../BaseLink/BaseLink.cjs"),k=require("../../Box/Box.cjs"),M=require("../../Button/Button.cjs"),J=require("../../Flex/Flex.cjs"),u=require("../../helpers/keyboardKeys.cjs"),Q=require("../../helpers/useId.cjs"),j=require("../../Popover/Popover.cjs"),C=require("../../Typography/Typography.cjs"),X=require("../Link/Link.cjs"),q=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},o=q(a),t=q(U),y=q(H),Y=y.default.button`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),D=require("@radix-ui/react-use-callback-ref"),z=require("@strapi/icons"),U=require("prop-types"),H=require("styled-components"),T=require("./utils.cjs"),G=require("../../BaseLink/BaseLink.cjs"),k=require("../../Box/Box.cjs"),M=require("../../Button/Button.cjs"),J=require("../../Flex/Flex.cjs"),u=require("../../helpers/keyboardKeys.cjs"),Q=require("../../hooks/useId.cjs"),j=require("../../Popover/Popover.cjs"),C=require("../../Typography/Typography.cjs"),X=require("../Link/Link.cjs"),q=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},o=q(a),t=q(U),y=q(H),Y=y.default.button`
2
2
  border: none;
3
3
  padding: 0;
4
4
  background: transparent;
@@ -9,7 +9,7 @@ import { Box as g } from "../../Box/Box.js";
9
9
  import { Button as K } from "../../Button/Button.js";
10
10
  import { Flex as G } from "../../Flex/Flex.js";
11
11
  import { KeyboardKeys as a } from "../../helpers/keyboardKeys.js";
12
- import { useId as J } from "../../helpers/useId.js";
12
+ import { useId as J } from "../../hooks/useId.js";
13
13
  import { POPOVER_PLACEMENTS as Q, Popover as X } from "../../Popover/Popover.js";
14
14
  import { Typography as O } from "../../Typography/Typography.js";
15
15
  import { Link as Y } from "../Link/Link.js";
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react"),C=require("@strapi/icons"),I=require("prop-types"),R=require("styled-components"),s=require("../../Box/Box.cjs"),_=require("../../Divider/Divider.cjs"),D=require("../../Flex/Flex.cjs"),P=require("../../helpers/keyboardKeys.cjs"),F=require("../../helpers/useId.cjs"),K=require("../../helpers/usePrevious.cjs"),L=require("../../IconButton/IconButton.cjs"),k=require("../../Searchbar/Searchbar.cjs"),w=require("../../Searchbar/SearchForm.cjs"),O=require("../../Typography/Typography.cjs"),d=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},e=d(o),r=d(I),H=d(R),h=H.default(_.Divider)`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react"),C=require("@strapi/icons"),I=require("prop-types"),R=require("styled-components"),s=require("../../Box/Box.cjs"),_=require("../../Divider/Divider.cjs"),D=require("../../Flex/Flex.cjs"),P=require("../../helpers/keyboardKeys.cjs"),k=require("../../hooks/useId.cjs"),F=require("../../hooks/usePrevious.cjs"),K=require("../../IconButton/IconButton.cjs"),L=require("../../Searchbar/Searchbar.cjs"),w=require("../../Searchbar/SearchForm.cjs"),O=require("../../Typography/Typography.cjs"),d=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},e=d(o),r=d(I),H=d(R),h=H.default(_.Divider)`
2
2
  width: ${24/16}rem;
3
3
  background-color: ${({theme:t})=>t.colors.neutral200};
4
- `,i=({as:t,label:g,searchLabel:f,searchable:y,onChange:b,value:m,onClear:S,onSubmit:v,id:B})=>{const[n,l]=o.useState(!1),p=K.usePrevious(n),q=F.useId(B),c=o.useRef(),u=o.useRef();o.useEffect(()=>{n&&c.current&&c.current.focus(),p&&!n&&u.current&&u.current.focus()},[n,p]);const E=()=>{l(a=>!a)},j=a=>{S(a),c.current.focus()},T=a=>{a.relatedTarget?.id!==q&&l(!1)},x=a=>{a.key===P.KeyboardKeys.ESCAPE&&l(!1)};return n?e.default.createElement(s.Box,{paddingLeft:4,paddingTop:5,paddingBottom:2,paddingRight:4},e.default.createElement(w.SearchForm,null,e.default.createElement(k.Searchbar,{name:"searchbar",value:m,onChange:b,placeholder:"e.g: strapi-plugin-abcd",onKeyDown:x,ref:c,onBlur:T,onClear:j,onSubmit:v,clearLabel:"Clear",size:"S"},f)),e.default.createElement(s.Box,{paddingLeft:2,paddingTop:4},e.default.createElement(h,null))):e.default.createElement(s.Box,{paddingLeft:6,paddingTop:6,paddingBottom:2,paddingRight:4},e.default.createElement(D.Flex,{justifyContent:"space-between",alignItems:"flex-start"},e.default.createElement(O.Typography,{variant:"beta",as:t},g),y&&e.default.createElement(L.IconButton,{ref:u,onClick:E,label:f,icon:e.default.createElement(C.Search,null)})),e.default.createElement(s.Box,{paddingTop:4},e.default.createElement(h,null)))};i.defaultProps={as:"h2",searchable:!1,onChange(){},onClear(){},onSubmit(){},value:"",searchLabel:"",id:void 0};i.propTypes={as:r.default.string,id:r.default.string,label:r.default.string.isRequired,onChange:r.default.func,onClear:r.default.func,onSubmit:r.default.func,searchLabel:r.default.string,searchable:r.default.bool,value:r.default.string};exports.SubNavHeader=i;
4
+ `,i=({as:t,label:g,searchLabel:f,searchable:y,onChange:b,value:m,onClear:S,onSubmit:v,id:B})=>{const[n,l]=o.useState(!1),p=F.usePrevious(n),q=k.useId(B),c=o.useRef(),u=o.useRef();o.useEffect(()=>{n&&c.current&&c.current.focus(),p&&!n&&u.current&&u.current.focus()},[n,p]);const E=()=>{l(a=>!a)},j=a=>{S(a),c.current.focus()},T=a=>{a.relatedTarget?.id!==q&&l(!1)},x=a=>{a.key===P.KeyboardKeys.ESCAPE&&l(!1)};return n?e.default.createElement(s.Box,{paddingLeft:4,paddingTop:5,paddingBottom:2,paddingRight:4},e.default.createElement(w.SearchForm,null,e.default.createElement(L.Searchbar,{name:"searchbar",value:m,onChange:b,placeholder:"e.g: strapi-plugin-abcd",onKeyDown:x,ref:c,onBlur:T,onClear:j,onSubmit:v,clearLabel:"Clear",size:"S"},f)),e.default.createElement(s.Box,{paddingLeft:2,paddingTop:4},e.default.createElement(h,null))):e.default.createElement(s.Box,{paddingLeft:6,paddingTop:6,paddingBottom:2,paddingRight:4},e.default.createElement(D.Flex,{justifyContent:"space-between",alignItems:"flex-start"},e.default.createElement(O.Typography,{variant:"beta",as:t},g),y&&e.default.createElement(K.IconButton,{ref:u,onClick:E,label:f,icon:e.default.createElement(C.Search,null)})),e.default.createElement(s.Box,{paddingTop:4},e.default.createElement(h,null)))};i.defaultProps={as:"h2",searchable:!1,onChange(){},onClear(){},onSubmit(){},value:"",searchLabel:"",id:void 0};i.propTypes={as:r.default.string,id:r.default.string,label:r.default.string.isRequired,onChange:r.default.func,onClear:r.default.func,onSubmit:r.default.func,searchLabel:r.default.string,searchable:r.default.bool,value:r.default.string};exports.SubNavHeader=i;
@@ -6,8 +6,8 @@ import { Box as n } from "../../Box/Box.js";
6
6
  import { Divider as I } from "../../Divider/Divider.js";
7
7
  import { Flex as K } from "../../Flex/Flex.js";
8
8
  import { KeyboardKeys as P } from "../../helpers/keyboardKeys.js";
9
- import { useId as k } from "../../helpers/useId.js";
10
- import { usePrevious as O } from "../../helpers/usePrevious.js";
9
+ import { useId as k } from "../../hooks/useId.js";
10
+ import { usePrevious as O } from "../../hooks/usePrevious.js";
11
11
  import { IconButton as F } from "../../IconButton/IconButton.js";
12
12
  import { Searchbar as _ } from "../../Searchbar/Searchbar.js";
13
13
  import { SearchForm as $ } from "../../Searchbar/SearchForm.js";
@@ -1,11 +1,11 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react"),m=require("@strapi/icons"),h=require("prop-types"),x=require("styled-components"),l=require("../../Box/Box.cjs"),b=require("../../Flex/Flex.cjs"),S=require("../../helpers/useId.cjs"),q=require("../../Typography/Typography.cjs"),d=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},t=d(o),r=d(h),i=d(x),E=i.default(l.Box)`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react"),m=require("@strapi/icons"),h=require("prop-types"),x=require("styled-components"),l=require("../../Box/Box.cjs"),b=require("../../Flex/Flex.cjs"),S=require("../../hooks/useId.cjs"),k=require("../../Typography/Typography.cjs"),d=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},t=d(o),r=d(h),i=d(x),q=i.default(l.Box)`
2
2
  svg {
3
3
  height: ${4/16}rem;
4
4
  path {
5
5
  fill: ${({theme:e})=>e.colors.neutral700};
6
6
  }
7
7
  }
8
- `,k=i.default.button`
8
+ `,E=i.default.button`
9
9
  border: none;
10
10
  padding: 0;
11
11
  background: transparent;
@@ -16,4 +16,4 @@
16
16
  align-items: center;
17
17
  width: ${12/16}rem;
18
18
  transform: rotateX(${({rotated:e})=>e?"0deg":"180deg"});
19
- `,s=({label:e,children:c,id:p})=>{const[n,f]=o.useState(!0),u=S.useId(p),g=()=>{f(a=>!a)};return t.default.createElement(l.Box,null,t.default.createElement(E,{paddingLeft:7,paddingTop:2,paddingBottom:2,paddingRight:4},t.default.createElement(b.Flex,{justifyContent:"space-between"},t.default.createElement(k,{onClick:g,"aria-expanded":n,"aria-controls":u},t.default.createElement(v,{rotated:n},t.default.createElement(m.CarretDown,{"aria-hidden":!0})),t.default.createElement(l.Box,{paddingLeft:2},t.default.createElement(q.Typography,{as:"span",fontWeight:"semiBold",textColor:"neutral800"},e))))),n&&t.default.createElement("ul",{id:u},o.Children.map(c,(a,y)=>t.default.createElement("li",{key:y},a))))};s.defaultProps={id:void 0};s.propTypes={children:r.default.node.isRequired,id:r.default.string,label:r.default.string.isRequired};exports.SubNavLinkSection=s;
19
+ `,s=({label:e,children:c,id:p})=>{const[n,f]=o.useState(!0),u=S.useId(p),g=()=>{f(a=>!a)};return t.default.createElement(l.Box,null,t.default.createElement(q,{paddingLeft:7,paddingTop:2,paddingBottom:2,paddingRight:4},t.default.createElement(b.Flex,{justifyContent:"space-between"},t.default.createElement(E,{onClick:g,"aria-expanded":n,"aria-controls":u},t.default.createElement(v,{rotated:n},t.default.createElement(m.CarretDown,{"aria-hidden":!0})),t.default.createElement(l.Box,{paddingLeft:2},t.default.createElement(k.Typography,{as:"span",fontWeight:"semiBold",textColor:"neutral800"},e))))),n&&t.default.createElement("ul",{id:u},o.Children.map(c,(a,y)=>t.default.createElement("li",{key:y},a))))};s.defaultProps={id:void 0};s.propTypes={children:r.default.node.isRequired,id:r.default.string,label:r.default.string.isRequired};exports.SubNavLinkSection=s;
@@ -4,7 +4,7 @@ import o from "prop-types";
4
4
  import a from "styled-components";
5
5
  import { Box as i } from "../../Box/Box.js";
6
6
  import { Flex as E } from "../../Flex/Flex.js";
7
- import { useId as y } from "../../helpers/useId.js";
7
+ import { useId as y } from "../../hooks/useId.js";
8
8
  import { Typography as b } from "../../Typography/Typography.js";
9
9
  const k = a(i)`
10
10
  svg {
@@ -1,8 +1,8 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react"),m=require("prop-types"),v=require("styled-components"),y=require("./SubNavSectionLabel.cjs"),h=require("../../Badge/Badge.cjs"),u=require("../../Box/Box.cjs"),q=require("../../helpers/useId.cjs"),B=require("../../Stack/Stack.cjs"),r=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},t=r(n),a=r(m),k=r(v),_=k.default(u.Box)`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react"),S=require("prop-types"),h=require("styled-components"),v=require("./SubNavSectionLabel.cjs"),x=require("../../Badge/Badge.cjs"),u=require("../../Box/Box.cjs"),y=require("../../Flex/Flex.cjs"),q=require("../../hooks/useId.cjs"),r=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},t=r(n),a=r(S),B=r(h),_=B.default(u.Box)`
2
2
  svg {
3
3
  height: ${4/16}rem;
4
4
  path {
5
5
  fill: ${({theme:e})=>e.colors.neutral500};
6
6
  }
7
7
  }
8
- `,s=({collapsable:e,label:c,badgeLabel:o,children:p,id:f})=>{const[i,g]=n.useState(!0),d=q.useId(f),S=()=>{g(l=>!l)};return t.default.createElement(B.Stack,{spacing:1},t.default.createElement(_,{paddingLeft:6,paddingTop:2,paddingBottom:2,paddingRight:4},t.default.createElement(u.Box,{position:"relative",paddingRight:o?6:0},t.default.createElement(y.SubNavSectionLabel,{onClick:S,ariaExpanded:i,ariaControls:d,collapsable:e,label:c}),o&&t.default.createElement(h.Badge,{backgroundColor:"neutral150",textColor:"neutral600",position:"absolute",right:0,top:"50%",transform:"translateY(-50%)"},o))),(!e||i)&&t.default.createElement("ol",{id:d},n.Children.map(p,(l,b)=>t.default.createElement("li",{key:b},l))))};s.defaultProps={badgeLabel:null,collapsable:!1,id:void 0};s.propTypes={badgeLabel:a.default.string,children:a.default.node.isRequired,collapsable:a.default.bool,id:a.default.string,label:a.default.string.isRequired};exports.SubNavSection=s;
8
+ `,s=({collapsable:e,label:c,badgeLabel:l,children:p,id:f})=>{const[i,g]=n.useState(!0),d=q.useId(f),b=()=>{g(o=>!o)};return t.default.createElement(y.Flex,{direction:"column",alignItems:"stretch",gap:1},t.default.createElement(_,{paddingLeft:6,paddingTop:2,paddingBottom:2,paddingRight:4},t.default.createElement(u.Box,{position:"relative",paddingRight:l?6:0},t.default.createElement(v.SubNavSectionLabel,{onClick:b,ariaExpanded:i,ariaControls:d,collapsable:e,label:c}),l&&t.default.createElement(x.Badge,{backgroundColor:"neutral150",textColor:"neutral600",position:"absolute",right:0,top:"50%",transform:"translateY(-50%)"},l))),(!e||i)&&t.default.createElement("ol",{id:d},n.Children.map(p,(o,m)=>t.default.createElement("li",{key:m},o))))};s.defaultProps={badgeLabel:null,collapsable:!1,id:void 0};s.propTypes={badgeLabel:a.default.string,children:a.default.node.isRequired,collapsable:a.default.bool,id:a.default.string,label:a.default.string.isRequired};exports.SubNavSection=s;
@@ -1,12 +1,12 @@
1
- import e, { useState as f, Children as b } from "react";
1
+ import e, { useState as f, Children as h } from "react";
2
2
  import t from "prop-types";
3
- import h from "styled-components";
3
+ import b from "styled-components";
4
4
  import { SubNavSectionLabel as E } from "./SubNavSectionLabel.js";
5
5
  import { Badge as S } from "../../Badge/Badge.js";
6
6
  import { Box as l } from "../../Box/Box.js";
7
- import { useId as k } from "../../helpers/useId.js";
8
- import { Stack as v } from "../../Stack/Stack.js";
9
- const C = h(l)`
7
+ import { Flex as v } from "../../Flex/Flex.js";
8
+ import { useId as C } from "../../hooks/useId.js";
9
+ const k = b(l)`
10
10
  svg {
11
11
  height: ${4 / 16}rem;
12
12
  path {
@@ -14,15 +14,15 @@ const C = h(l)`
14
14
  }
15
15
  }
16
16
  `, p = ({ collapsable: r, label: s, badgeLabel: o, children: d, id: m }) => {
17
- const [a, c] = f(!0), n = k(m), u = () => {
17
+ const [n, c] = f(!0), a = C(m), u = () => {
18
18
  c((i) => !i);
19
19
  };
20
- return /* @__PURE__ */ e.createElement(v, { spacing: 1 }, /* @__PURE__ */ e.createElement(C, { paddingLeft: 6, paddingTop: 2, paddingBottom: 2, paddingRight: 4 }, /* @__PURE__ */ e.createElement(l, { position: "relative", paddingRight: o ? 6 : 0 }, /* @__PURE__ */ e.createElement(
20
+ return /* @__PURE__ */ e.createElement(v, { direction: "column", alignItems: "stretch", gap: 1 }, /* @__PURE__ */ e.createElement(k, { paddingLeft: 6, paddingTop: 2, paddingBottom: 2, paddingRight: 4 }, /* @__PURE__ */ e.createElement(l, { position: "relative", paddingRight: o ? 6 : 0 }, /* @__PURE__ */ e.createElement(
21
21
  E,
22
22
  {
23
23
  onClick: u,
24
- ariaExpanded: a,
25
- ariaControls: n,
24
+ ariaExpanded: n,
25
+ ariaControls: a,
26
26
  collapsable: r,
27
27
  label: s
28
28
  }
@@ -37,7 +37,7 @@ const C = h(l)`
37
37
  transform: "translateY(-50%)"
38
38
  },
39
39
  o
40
- ))), (!r || a) && /* @__PURE__ */ e.createElement("ol", { id: n }, b.map(d, (i, g) => /* @__PURE__ */ e.createElement("li", { key: g }, i))));
40
+ ))), (!r || n) && /* @__PURE__ */ e.createElement("ol", { id: a }, h.map(d, (i, g) => /* @__PURE__ */ e.createElement("li", { key: g }, i))));
41
41
  };
42
42
  p.defaultProps = {
43
43
  badgeLabel: null,
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react"),s=require("prop-types"),l=require("../../Box/Box.cjs"),i=require("../../Stack/Stack.cjs"),a=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},t=a(o),d=a(s),r=({children:e,...c})=>t.default.createElement(l.Box,{paddingTop:2,paddingBottom:4},t.default.createElement(i.Stack,{as:"ol",spacing:2,...c},o.Children.map(e,(n,u)=>t.default.createElement("li",{key:u},n))));r.propTypes={children:d.default.node.isRequired};exports.SubNavSections=r;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react"),i=require("prop-types"),d=require("../../Box/Box.cjs"),p=require("../../Flex/Flex.cjs"),a=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},t=a(r),f=a(i),c=({children:e,spacing:l=2,horizontal:o=!1,...n})=>t.default.createElement(d.Box,{paddingTop:2,paddingBottom:4},t.default.createElement(p.Flex,{as:"ol",gap:l,direction:o?"row":"column",alignItems:o?"center":"stretch",...n},r.Children.map(e,(s,u)=>t.default.createElement("li",{key:u},s))));c.propTypes={children:f.default.node.isRequired};exports.SubNavSections=c;
@@ -1,11 +1,21 @@
1
1
  import e, { Children as i } from "react";
2
- import m from "prop-types";
3
- import { Box as n } from "../../Box/Box.js";
4
- import { Stack as a } from "../../Stack/Stack.js";
5
- const c = ({ children: r, ...t }) => /* @__PURE__ */ e.createElement(n, { paddingTop: 2, paddingBottom: 4 }, /* @__PURE__ */ e.createElement(a, { as: "ol", spacing: 2, ...t }, i.map(r, (o, p) => /* @__PURE__ */ e.createElement("li", { key: p }, o))));
6
- c.propTypes = {
7
- children: m.node.isRequired
2
+ import a from "prop-types";
3
+ import { Box as c } from "../../Box/Box.js";
4
+ import { Flex as l } from "../../Flex/Flex.js";
5
+ const d = ({ children: t, spacing: o = 2, horizontal: r = !1, ...m }) => /* @__PURE__ */ e.createElement(c, { paddingTop: 2, paddingBottom: 4 }, /* @__PURE__ */ e.createElement(
6
+ l,
7
+ {
8
+ as: "ol",
9
+ gap: o,
10
+ direction: r ? "row" : "column",
11
+ alignItems: r ? "center" : "stretch",
12
+ ...m
13
+ },
14
+ i.map(t, (n, p) => /* @__PURE__ */ e.createElement("li", { key: p }, n))
15
+ ));
16
+ d.propTypes = {
17
+ children: a.node.isRequired
8
18
  };
9
19
  export {
10
- c as SubNavSections
20
+ d as SubNavSections
11
21
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/design-system",
3
- "version": "1.6.4",
3
+ "version": "1.6.5",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -29,11 +29,12 @@
29
29
  "devDependencies": {
30
30
  "@juggle/resize-observer": "^3.4.0",
31
31
  "@playwright/test": "1.27.1",
32
- "@strapi/icons": "^1.6.4",
32
+ "@strapi/icons": "^1.6.5",
33
33
  "@swc/core": "^1.3.11",
34
34
  "@swc/jest": "^0.2.23",
35
35
  "@testing-library/jest-dom": "5.16.5",
36
36
  "@testing-library/react": "12.1.4",
37
+ "@testing-library/user-event": "^14.4.3",
37
38
  "@types/jest": "^29.2.6",
38
39
  "@types/react": "17.0.2",
39
40
  "@types/react-dom": "17.0.2",
@@ -76,5 +77,5 @@
76
77
  "@types/react": "17.0.2",
77
78
  "@types/react-dom": "17.0.2"
78
79
  },
79
- "gitHead": "6c4710e399055cb8831c50d3b4a02bfbcc57aa04"
80
+ "gitHead": "0c136e23f46fcce45a4d005c1cd99a6197ec35d1"
80
81
  }
@@ -1,82 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),W=require("react"),U=require("@radix-ui/react-select"),w=require("@strapi/icons"),Y=require("styled-components"),G=require("../Field/Field.cjs"),J=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const Q=require("../Field/FieldHint.cjs"),X=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const Z=require("../Stack/Stack.cjs"),g=require("../Box/Box.cjs"),q=require("../Flex/Flex.cjs"),j=require("../Typography/Typography.cjs"),ee=require("../hooks/useId.cjs"),te=require("../hooks/useIntersection.cjs"),I=require("../themes/utils.cjs"),re=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function k(e){if(e&&e.__esModule)return e;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:()=>e[s]})}}return n.default=e,Object.freeze(n)}const h=k(W),o=k(U),c=re(Y),ne=[" ","Enter","ArrowUp","ArrowDown"],oe=({children:e,clearLabel:n="Clear",customizeContent:s=p=>p.toString(),disabled:i,error:b,hint:v,id:R,label:T,labelAction:O,onChange:$,onClear:a,onReachEnd:m,placeholder:_,required:y,selectButtonTitle:he,startIcon:S,size:B="M",value:f})=>{const p=h.useRef(null),x=h.useRef(null),d=h.useRef(null),[D,C]=h.useState(""),[E,P]=h.useState(!1),u=ee.useId(R),V=`${u}-hint`,M=`${u}-error`,N=r=>{$?$(typeof f=="number"?Number(r):r):C(r)},z=r=>{a&&!i&&(a(r),x.current.focus())},A=r=>{P(r)},H=r=>{d.current&&d.current===r.target.closest("div")&&r.preventDefault()},K=r=>{ne.includes(r.key)&&d.current&&d.current===r.target.closest("div")&&!i&&a&&(r.preventDefault(),a(r),x.current.focus())},F=`intersection-${u}`,L=r=>{m&&m(r)};te.useIntersection(p,L,{selectorToWatch:`#${F}`,skipWhen:!E});const l=typeof f<"u"?f.toString():D;return t.jsx(G.Field,{hint:v,error:b,id:u,required:y,children:t.jsxs(Z.Stack,{spacing:1,children:[t.jsx(J.FieldLabel,{action:O,children:T}),t.jsxs(o.Root,{onOpenChange:A,disabled:i,required:y,onValueChange:N,value:l,children:[t.jsxs(ie,{id:u,"aria-labelledby":`${V} ${M}`,"aria-disabled":i,$hasError:Boolean(b),$size:B,onPointerDown:H,onKeyDown:K,ref:x,children:[t.jsxs(q.Flex,{as:"span",gap:4,children:[S&&t.jsx(g.Box,{as:"span","aria-hidden":!0,children:S}),t.jsx(j.Typography,{ellipsis:!0,textColor:l?"neutral800":"neutral600",children:t.jsx(o.Value,{"aria-label":l,children:l?s(l):_})})]}),t.jsxs(q.Flex,{as:"span",gap:3,children:[l&&a?t.jsx(se,{hasRadius:!0,background:"transparent",role:"button",tabIndex:0,onClick:z,"aria-disabled":i,"aria-label":n,title:n,ref:d,children:t.jsx(w.Cross,{})}):null,t.jsx(le,{children:t.jsx(w.CarretDown,{})})]})]}),t.jsx(o.Portal,{children:t.jsx(ce,{position:"popper",sideOffset:4,children:t.jsxs(ae,{ref:p,children:[e,t.jsx(g.Box,{id:F,width:"100%",height:"1px"})]})})})]}),t.jsx(Q.FieldHint,{}),t.jsx(X.FieldError,{})]})})},se=c.default(g.Box)`
2
- border: none;
3
-
4
- svg {
5
- height: ${11/16}rem;
6
- width: ${11/16}rem;
7
- }
8
-
9
- svg path {
10
- fill: ${({theme:e})=>e.colors.neutral600};
11
- }
12
- `,ie=c.default(o.Trigger)`
13
- position: relative;
14
- border: 1px solid ${({theme:e,$hasError:n})=>n?e.colors.danger600:e.colors.neutral200};
15
- padding-right: ${({theme:e})=>e.spaces[3]};
16
- padding-left: ${({theme:e})=>e.spaces[3]};
17
- border-radius: ${({theme:e})=>e.borderRadius};
18
- background: ${({theme:e})=>e.colors.neutral0};
19
- overflow: hidden;
20
- min-height: ${({theme:e,$size:n})=>I.getThemeSize("input")({theme:e,size:n})};
21
- display: flex;
22
- align-items: center;
23
- justify-content: space-between;
24
- gap: ${({theme:e})=>e.spaces[4]};
25
-
26
- &[aria-disabled='true'] {
27
- color: ${e=>e.theme.colors.neutral600};
28
- background: ${e=>e.theme.colors.neutral150};
29
- }
30
-
31
- /* Required to ensure the below inputFocusStyles are adhered too */
32
- &:focus-visible {
33
- outline: none;
34
- }
35
-
36
- ${({theme:e,$hasError:n})=>I.inputFocusStyle()({theme:e,hasError:n})};
37
- `,le=c.default(o.Icon)`
38
- & > svg {
39
- width: ${6/16}rem;
40
-
41
- & > path {
42
- fill: ${({theme:e})=>e.colors.neutral600};
43
- }
44
- }
45
- `,ce=c.default(o.Content)`
46
- background: ${({theme:e})=>e.colors.neutral0};
47
- box-shadow: ${({theme:e})=>e.shadows.filterShadow};
48
- border: 1px solid ${({theme:e})=>e.colors.neutral150};
49
- border-radius: ${({theme:e})=>e.borderRadius};
50
- width: var(--radix-select-trigger-width);
51
- /* This is from the design-system figma file. */
52
- max-height: 15rem;
53
- `,ae=c.default(o.Viewport)`
54
- padding: ${({theme:e})=>e.spaces[1]};
55
- `,de=({children:e,startIcon:n,value:s})=>t.jsxs(ue,{textValue:e.toString(),value:s.toString(),children:[n&&t.jsx(g.Box,{as:"span",paddingRight:2,"aria-hidden":!0,children:n}),t.jsx(j.Typography,{textColor:"neutral800",children:t.jsx(o.ItemText,{children:e})})]}),ue=c.default(o.Item)`
56
- width: 100%;
57
- border: none;
58
- text-align: left;
59
- outline-offset: -3px;
60
- border-radius: ${e=>e.theme.borderRadius};
61
- padding: ${e=>`${e.theme.spaces[2]} ${e.theme.spaces[4]}`};
62
- padding-left: ${({theme:e})=>e.spaces[4]};
63
- background-color: ${({theme:e})=>e.colors.neutral0};
64
- display: flex;
65
- align-items: center;
66
-
67
- &:focus-visible {
68
- outline: none;
69
- background-color: ${({theme:e})=>e.colors.primary100};
70
- }
71
-
72
- &:hover {
73
- background-color: ${({theme:e})=>e.colors.primary100};
74
- }
75
-
76
- &[data-state='checked'] {
77
- ${j.Typography} {
78
- font-weight: bold;
79
- color: ${({theme:e})=>e.colors.primary600};
80
- }
81
- }
82
- `;exports.SingleSelect=oe;exports.SingleSelectOption=de;
@@ -1,285 +0,0 @@
1
- import { jsx as t, jsxs as i } from "react/jsx-runtime";
2
- import * as h from "react";
3
- import * as n from "@radix-ui/react-select";
4
- import { Cross as H, CarretDown as M } from "@strapi/icons";
5
- import s from "styled-components";
6
- import { Field as U } from "../Field/Field.js";
7
- import { FieldLabel as Y } from "../Field/FieldLabel.js";
8
- import "../Field/FieldInput.js";
9
- import { FieldHint as _ } from "../Field/FieldHint.js";
10
- import { FieldError as G } from "../Field/FieldError.js";
11
- import "../Field/FieldContext.js";
12
- import "../Field/FieldAction.js";
13
- import { Stack as J } from "../Stack/Stack.js";
14
- import { Box as m } from "../Box/Box.js";
15
- import { Flex as I } from "../Flex/Flex.js";
16
- import { Typography as b } from "../Typography/Typography.js";
17
- import { useId as L } from "../hooks/useId.js";
18
- import { useIntersection as Q } from "../hooks/useIntersection.js";
19
- import { getThemeSize as X, inputFocusStyle as Z } from "../themes/utils.js";
20
- const ee = [" ", "Enter", "ArrowUp", "ArrowDown"], Te = ({
21
- children: e,
22
- clearLabel: o = "Clear",
23
- customizeContent: g = (p) => p.toString(),
24
- disabled: a,
25
- error: w,
26
- hint: k,
27
- id: T,
28
- label: C,
29
- labelAction: D,
30
- onChange: x,
31
- onClear: c,
32
- onReachEnd: y,
33
- placeholder: E,
34
- required: S,
35
- selectButtonTitle: se,
36
- startIcon: v,
37
- size: F = "M",
38
- value: f
39
- }) => {
40
- const p = h.useRef(null), $ = h.useRef(null), d = h.useRef(null), [O, B] = h.useState(""), [V, N] = h.useState(!1), u = L(T), P = `${u}-hint`, j = `${u}-error`, z = (r) => {
41
- x ? x(typeof f == "number" ? Number(r) : r) : B(r);
42
- }, K = (r) => {
43
- c && !a && (c(r), $.current.focus());
44
- }, q = (r) => {
45
- N(r);
46
- }, A = (r) => {
47
- d.current && d.current === r.target.closest("div") && r.preventDefault();
48
- }, W = (r) => {
49
- ee.includes(r.key) && d.current && d.current === r.target.closest("div") && !a && c && (r.preventDefault(), c(r), $.current.focus());
50
- }, R = `intersection-${u}`;
51
- Q(p, (r) => {
52
- y && y(r);
53
- }, {
54
- selectorToWatch: `#${R}`,
55
- skipWhen: !V
56
- });
57
- const l = typeof f < "u" ? f.toString() : O;
58
- return t(U, {
59
- hint: k,
60
- error: w,
61
- id: u,
62
- required: S,
63
- children: i(J, {
64
- spacing: 1,
65
- children: [t(Y, {
66
- action: D,
67
- children: C
68
- }), i(n.Root, {
69
- onOpenChange: q,
70
- disabled: a,
71
- required: S,
72
- onValueChange: z,
73
- value: l,
74
- children: [i(te, {
75
- id: u,
76
- "aria-labelledby": `${P} ${j}`,
77
- "aria-disabled": a,
78
- $hasError: Boolean(w),
79
- $size: F,
80
- onPointerDown: A,
81
- onKeyDown: W,
82
- ref: $,
83
- children: [i(I, {
84
- as: "span",
85
- gap: 4,
86
- children: [v && t(m, {
87
- as: "span",
88
- "aria-hidden": !0,
89
- children: v
90
- }), t(b, {
91
- ellipsis: !0,
92
- textColor: l ? "neutral800" : "neutral600",
93
- children: t(n.Value, {
94
- "aria-label": l,
95
- children: l ? g(l) : E
96
- })
97
- })]
98
- }), i(I, {
99
- as: "span",
100
- gap: 3,
101
- children: [l && c ? t(re, {
102
- hasRadius: !0,
103
- background: "transparent",
104
- role: "button",
105
- tabIndex: 0,
106
- onClick: K,
107
- "aria-disabled": a,
108
- "aria-label": o,
109
- title: o,
110
- ref: d,
111
- children: t(H, {})
112
- }) : null, t(oe, {
113
- children: t(M, {})
114
- })]
115
- })]
116
- }), t(n.Portal, {
117
- children: t(ne, {
118
- position: "popper",
119
- sideOffset: 4,
120
- children: i(ie, {
121
- ref: p,
122
- children: [e, t(m, {
123
- id: R,
124
- width: "100%",
125
- height: "1px"
126
- })]
127
- })
128
- })
129
- })]
130
- }), t(_, {}), t(G, {})]
131
- })
132
- });
133
- }, re = s(m)`
134
- border: none;
135
-
136
- svg {
137
- height: ${11 / 16}rem;
138
- width: ${11 / 16}rem;
139
- }
140
-
141
- svg path {
142
- fill: ${({
143
- theme: e
144
- }) => e.colors.neutral600};
145
- }
146
- `, te = s(n.Trigger)`
147
- position: relative;
148
- border: 1px solid ${({
149
- theme: e,
150
- $hasError: o
151
- }) => o ? e.colors.danger600 : e.colors.neutral200};
152
- padding-right: ${({
153
- theme: e
154
- }) => e.spaces[3]};
155
- padding-left: ${({
156
- theme: e
157
- }) => e.spaces[3]};
158
- border-radius: ${({
159
- theme: e
160
- }) => e.borderRadius};
161
- background: ${({
162
- theme: e
163
- }) => e.colors.neutral0};
164
- overflow: hidden;
165
- min-height: ${({
166
- theme: e,
167
- $size: o
168
- }) => X("input")({
169
- theme: e,
170
- size: o
171
- })};
172
- display: flex;
173
- align-items: center;
174
- justify-content: space-between;
175
- gap: ${({
176
- theme: e
177
- }) => e.spaces[4]};
178
-
179
- &[aria-disabled='true'] {
180
- color: ${(e) => e.theme.colors.neutral600};
181
- background: ${(e) => e.theme.colors.neutral150};
182
- }
183
-
184
- /* Required to ensure the below inputFocusStyles are adhered too */
185
- &:focus-visible {
186
- outline: none;
187
- }
188
-
189
- ${({
190
- theme: e,
191
- $hasError: o
192
- }) => Z()({
193
- theme: e,
194
- hasError: o
195
- })};
196
- `, oe = s(n.Icon)`
197
- & > svg {
198
- width: ${6 / 16}rem;
199
-
200
- & > path {
201
- fill: ${({
202
- theme: e
203
- }) => e.colors.neutral600};
204
- }
205
- }
206
- `, ne = s(n.Content)`
207
- background: ${({
208
- theme: e
209
- }) => e.colors.neutral0};
210
- box-shadow: ${({
211
- theme: e
212
- }) => e.shadows.filterShadow};
213
- border: 1px solid ${({
214
- theme: e
215
- }) => e.colors.neutral150};
216
- border-radius: ${({
217
- theme: e
218
- }) => e.borderRadius};
219
- width: var(--radix-select-trigger-width);
220
- /* This is from the design-system figma file. */
221
- max-height: 15rem;
222
- `, ie = s(n.Viewport)`
223
- padding: ${({
224
- theme: e
225
- }) => e.spaces[1]};
226
- `, Ce = ({
227
- children: e,
228
- startIcon: o,
229
- value: g
230
- }) => i(le, {
231
- textValue: e.toString(),
232
- value: g.toString(),
233
- children: [o && t(m, {
234
- as: "span",
235
- paddingRight: 2,
236
- "aria-hidden": !0,
237
- children: o
238
- }), t(b, {
239
- textColor: "neutral800",
240
- children: t(n.ItemText, {
241
- children: e
242
- })
243
- })]
244
- }), le = s(n.Item)`
245
- width: 100%;
246
- border: none;
247
- text-align: left;
248
- outline-offset: -3px;
249
- border-radius: ${(e) => e.theme.borderRadius};
250
- padding: ${(e) => `${e.theme.spaces[2]} ${e.theme.spaces[4]}`};
251
- padding-left: ${({
252
- theme: e
253
- }) => e.spaces[4]};
254
- background-color: ${({
255
- theme: e
256
- }) => e.colors.neutral0};
257
- display: flex;
258
- align-items: center;
259
-
260
- &:focus-visible {
261
- outline: none;
262
- background-color: ${({
263
- theme: e
264
- }) => e.colors.primary100};
265
- }
266
-
267
- &:hover {
268
- background-color: ${({
269
- theme: e
270
- }) => e.colors.primary100};
271
- }
272
-
273
- &[data-state='checked'] {
274
- ${b} {
275
- font-weight: bold;
276
- color: ${({
277
- theme: e
278
- }) => e.colors.primary600};
279
- }
280
- }
281
- `;
282
- export {
283
- Te as SingleSelect,
284
- Ce as SingleSelectOption
285
- };