@strapi/design-system 1.4.0-beta.2 → 1.4.1

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 (36) hide show
  1. package/LICENSE +4 -17
  2. package/dist/CarouselInput/CarouselInput.cjs +1 -1
  3. package/dist/CarouselInput/CarouselInput.js +2 -2
  4. package/dist/Combobox/Combobox.cjs +1 -1
  5. package/dist/Combobox/Combobox.js +80 -80
  6. package/dist/DateTimePicker/DateTimePicker.cjs +1 -1
  7. package/dist/DateTimePicker/DateTimePicker.js +58 -56
  8. package/dist/Field/Field.cjs +1 -1
  9. package/dist/Field/Field.js +22 -20
  10. package/dist/Field/FieldInput.cjs +4 -4
  11. package/dist/Field/FieldInput.js +31 -30
  12. package/dist/Field/FieldLabel.cjs +3 -3
  13. package/dist/Field/FieldLabel.js +43 -42
  14. package/dist/Link/Link.cjs +5 -5
  15. package/dist/Link/Link.js +19 -18
  16. package/dist/NumberInput/NumberInput.cjs +1 -1
  17. package/dist/NumberInput/NumberInput.js +2 -2
  18. package/dist/Select/Select.cjs +2 -2
  19. package/dist/Select/Select.js +32 -33
  20. package/dist/SimpleMenu/SimpleMenu.cjs +23 -7
  21. package/dist/SimpleMenu/SimpleMenu.js +121 -97
  22. package/dist/TextInput/TextInput.cjs +1 -1
  23. package/dist/TextInput/TextInput.js +2 -2
  24. package/dist/Textarea/Textarea.cjs +1 -1
  25. package/dist/Textarea/Textarea.js +2 -2
  26. package/dist/Textarea/TextareaInput.cjs +4 -4
  27. package/dist/Textarea/TextareaInput.js +23 -22
  28. package/dist/TimePicker/TimePicker.cjs +2 -2
  29. package/dist/TimePicker/TimePicker.js +44 -39
  30. package/dist/ToggleCheckbox/ToggleCheckbox.cjs +6 -6
  31. package/dist/ToggleCheckbox/ToggleCheckbox.js +44 -37
  32. package/dist/ToggleInput/ToggleInput.cjs +3 -3
  33. package/dist/ToggleInput/ToggleInput.js +25 -26
  34. package/dist/v2/SimpleMenu/SimpleMenu.cjs +21 -7
  35. package/dist/v2/SimpleMenu/SimpleMenu.js +126 -105
  36. package/package.json +4 -4
package/dist/Link/Link.js CHANGED
@@ -1,7 +1,7 @@
1
- var b = Object.defineProperty;
1
+ var k = Object.defineProperty;
2
2
  var i = Object.getOwnPropertySymbols;
3
3
  var f = Object.prototype.hasOwnProperty, u = Object.prototype.propertyIsEnumerable;
4
- var p = (e, r, o) => r in e ? b(e, r, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[r] = o, v = (e, r) => {
4
+ var p = (e, r, o) => r in e ? k(e, r, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[r] = o, v = (e, r) => {
5
5
  for (var o in r || (r = {}))
6
6
  f.call(r, o) && p(e, o, r[o]);
7
7
  if (i)
@@ -18,15 +18,15 @@ var y = (e, r) => {
18
18
  r.indexOf(t) < 0 && u.call(e, t) && (o[t] = e[t]);
19
19
  return o;
20
20
  };
21
- import n from "react";
21
+ import n, { forwardRef as x } from "react";
22
22
  import a from "prop-types";
23
23
  import g from "styled-components";
24
- import k from "@strapi/icons/ExternalLink";
25
- import { NavLink as x } from "react-router-dom";
24
+ import R from "@strapi/icons/ExternalLink";
25
+ import { NavLink as w } from "react-router-dom";
26
26
  import { Typography as h } from "../Typography/Typography.js";
27
27
  import { Box as I } from "../Box/Box.js";
28
- import { buttonFocusStyle as R } from "../themes/utils.js";
29
- const T = g.a`
28
+ import { buttonFocusStyle as T } from "../themes/utils.js";
29
+ const _ = g.a`
30
30
  display: inline-flex;
31
31
  align-items: center;
32
32
  text-decoration: none;
@@ -55,19 +55,20 @@ const T = g.a`
55
55
  color: ${({ theme: e }) => e.colors.primary700};
56
56
  }
57
57
 
58
- ${R};
58
+ ${T};
59
59
  `, l = g(I)`
60
60
  display: flex;
61
- `, d = (_) => {
62
- var c = _, { href: e, to: r, children: o, disabled: t, startIcon: s, endIcon: m } = c, E = y(c, ["href", "to", "children", "disabled", "startIcon", "endIcon"]);
63
- const L = e ? "_blank" : void 0, $ = e ? "noreferrer noopener" : void 0;
64
- return /* @__PURE__ */ n.createElement(T, v({
65
- as: r && !t ? x : "a",
66
- target: L,
67
- rel: $,
61
+ `, d = x((C, L) => {
62
+ var c = C, { href: e, to: r, children: o, disabled: t, startIcon: s, endIcon: m } = c, E = y(c, ["href", "to", "children", "disabled", "startIcon", "endIcon"]);
63
+ const $ = e ? "_blank" : void 0, b = e ? "noreferrer noopener" : void 0;
64
+ return /* @__PURE__ */ n.createElement(_, v({
65
+ as: r && !t ? w : "a",
66
+ target: $,
67
+ rel: b,
68
68
  to: t ? void 0 : r,
69
69
  href: t ? "#" : e,
70
- disabled: t
70
+ disabled: t,
71
+ ref: L
71
72
  }, E), s && /* @__PURE__ */ n.createElement(l, {
72
73
  as: "span",
73
74
  "aria-hidden": !0,
@@ -80,8 +81,8 @@ const T = g.a`
80
81
  as: "span",
81
82
  "aria-hidden": !0,
82
83
  paddingLeft: 2
83
- }, /* @__PURE__ */ n.createElement(k, null)));
84
- };
84
+ }, /* @__PURE__ */ n.createElement(R, null)));
85
+ });
85
86
  d.displayName = "Link";
86
87
  d.defaultProps = {
87
88
  endIcon: void 0,
@@ -9,4 +9,4 @@
9
9
  height: ${4/16}rem;
10
10
  transform: ${({reverse:e})=>e?"rotateX(180deg)":void 0};
11
11
  }
12
- `,se="",b=l.default.forwardRef((ie,T)=>{var q=ie,{size:e,startAction:n,name:a,hint:u,error:V,label:F,labelAction:x,locale:L,id:P,onValueChange:R,value:K,step:i,required:z,disabled:f}=q,O=k(q,["size","startAction","name","hint","error","label","labelAction","locale","id","onValueChange","value","step","required","disabled"]);const $=ne.useId("numberinput",P),h=L||le.getDefaultLocale(),c=g.useRef(new D.NumberParser(h,{style:"decimal"})),y=g.useRef(new D.NumberFormatter(h,{maximumFractionDigits:20})),[s,B]=oe.useControllableState({prop(t){const o=String(K);return isNaN(o)||o!==t&&t!==""?t:o},defaultProp:se,onChange(t){const o=c.current.parse(t);R(isNaN(o)?void 0:o)}}),d=t=>{B(String(t))},H=({target:{value:t}})=>{c.current.isValidPartialNumber(t)&&d(t)},v=()=>{if(!s){d(i);return}const t=c.current.parse(s),o=isNaN(t)?i:t+i;d(y.current.format(o))},I=()=>{if(!s){d(-i);return}const t=c.current.parse(s),o=isNaN(t)?-i:t-i;d(y.current.format(o))},M=t=>{if(!f)switch(t.key){case A.KeyboardKeys.DOWN:{t.preventDefault(),I();break}case A.KeyboardKeys.UP:{t.preventDefault(),v();break}}},U=()=>{if(s){const t=c.current.parse(s),o=isNaN(t)?"":y.current.format(t);d(o)}};return l.default.createElement(J.Field,{name:a,hint:u,error:V,id:$},l.default.createElement(re.Stack,{spacing:1},F&&l.default.createElement(Q.FieldLabel,{required:z,action:x},F),l.default.createElement(Z.FieldInput,E({ref:T,startAction:n,disabled:f,type:"text",inputmode:"decimal",onChange:H,onKeyDown:M,onBlur:U,value:s,size:e,endAction:l.default.createElement(l.default.Fragment,null,l.default.createElement(_,{disabled:f,"aria-hidden":!0,reverse:!0,onClick:v,tabIndex:-1,type:"button","data-testid":"ArrowUp"},l.default.createElement(C.Icon,{as:S.default,color:"neutral500"})),l.default.createElement(_,{disabled:f,"aria-hidden":!0,onClick:I,tabIndex:-1,type:"button","data-testid":"ArrowDown"},l.default.createElement(C.Icon,{as:S.default,color:"neutral500"})))},O)),l.default.createElement(ee.FieldHint,null),l.default.createElement(te.FieldError,null)))});b.displayName="NumberInput";b.defaultProps={"aria-label":void 0,disabled:!1,error:void 0,hint:void 0,id:void 0,label:void 0,labelAction:void 0,locale:void 0,required:!1,size:"M",startAction:void 0,step:1,value:void 0};b.propTypes={"aria-label":r.default.string,disabled:r.default.bool,error:r.default.string,hint:r.default.oneOfType([r.default.string,r.default.node,r.default.arrayOf(r.default.node)]),id:r.default.string,label:r.default.string,labelAction:r.default.element,locale:r.default.string,name:r.default.string.isRequired,onValueChange:r.default.func.isRequired,required:r.default.bool,size:r.default.oneOf(Object.keys(ae.sizes.input)),startAction:r.default.element,step:r.default.number,value:r.default.number};exports.NumberInput=b;
12
+ `,se="",b=l.default.forwardRef((ie,T)=>{var q=ie,{size:e,startAction:n,name:a,hint:u,error:V,label:F,labelAction:x,locale:L,id:P,onValueChange:R,value:K,step:i,required:z,disabled:f}=q,O=k(q,["size","startAction","name","hint","error","label","labelAction","locale","id","onValueChange","value","step","required","disabled"]);const $=ne.useId("numberinput",P),h=L||le.getDefaultLocale(),c=g.useRef(new D.NumberParser(h,{style:"decimal"})),y=g.useRef(new D.NumberFormatter(h,{maximumFractionDigits:20})),[s,B]=oe.useControllableState({prop(t){const o=String(K);return isNaN(o)||o!==t&&t!==""?t:o},defaultProp:se,onChange(t){const o=c.current.parse(t);R(isNaN(o)?void 0:o)}}),d=t=>{B(String(t))},H=({target:{value:t}})=>{c.current.isValidPartialNumber(t)&&d(t)},v=()=>{if(!s){d(i);return}const t=c.current.parse(s),o=isNaN(t)?i:t+i;d(y.current.format(o))},I=()=>{if(!s){d(-i);return}const t=c.current.parse(s),o=isNaN(t)?-i:t-i;d(y.current.format(o))},M=t=>{if(!f)switch(t.key){case A.KeyboardKeys.DOWN:{t.preventDefault(),I();break}case A.KeyboardKeys.UP:{t.preventDefault(),v();break}}},U=()=>{if(s){const t=c.current.parse(s),o=isNaN(t)?"":y.current.format(t);d(o)}};return l.default.createElement(J.Field,{name:a,hint:u,error:V,id:$,required:z},l.default.createElement(re.Stack,{spacing:1},F&&l.default.createElement(Q.FieldLabel,{action:x},F),l.default.createElement(Z.FieldInput,E({ref:T,startAction:n,disabled:f,type:"text",inputmode:"decimal",onChange:H,onKeyDown:M,onBlur:U,value:s,size:e,endAction:l.default.createElement(l.default.Fragment,null,l.default.createElement(_,{disabled:f,"aria-hidden":!0,reverse:!0,onClick:v,tabIndex:-1,type:"button","data-testid":"ArrowUp"},l.default.createElement(C.Icon,{as:S.default,color:"neutral500"})),l.default.createElement(_,{disabled:f,"aria-hidden":!0,onClick:I,tabIndex:-1,type:"button","data-testid":"ArrowDown"},l.default.createElement(C.Icon,{as:S.default,color:"neutral500"})))},O)),l.default.createElement(ee.FieldHint,null),l.default.createElement(te.FieldError,null)))});b.displayName="NumberInput";b.defaultProps={"aria-label":void 0,disabled:!1,error:void 0,hint:void 0,id:void 0,label:void 0,labelAction:void 0,locale:void 0,required:!1,size:"M",startAction:void 0,step:1,value:void 0};b.propTypes={"aria-label":r.default.string,disabled:r.default.bool,error:r.default.string,hint:r.default.oneOfType([r.default.string,r.default.node,r.default.arrayOf(r.default.node)]),id:r.default.string,label:r.default.string,labelAction:r.default.element,locale:r.default.string,name:r.default.string.isRequired,onValueChange:r.default.func.isRequired,required:r.default.bool,size:r.default.oneOf(Object.keys(ae.sizes.input)),startAction:r.default.element,step:r.default.number,value:r.default.number};exports.NumberInput=b;
@@ -131,11 +131,11 @@ const C = M.button`
131
131
  name: o,
132
132
  hint: l,
133
133
  error: P,
134
- id: z
134
+ id: z,
135
+ required: K
135
136
  }, /* @__PURE__ */ a.createElement(ee, {
136
137
  spacing: 1
137
138
  }, g && /* @__PURE__ */ a.createElement(G, {
138
- required: K,
139
139
  action: R
140
140
  }, g), /* @__PURE__ */ a.createElement(J, A({
141
141
  ref: T,
@@ -1,3 +1,3 @@
1
- "use strict";var ie=Object.defineProperty;var j=Object.getOwnPropertySymbols;var J=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable;var N=(l,a,o)=>a in l?ie(l,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):l[a]=o,Q=(l,a)=>{for(var o in a||(a={}))J.call(a,o)&&N(l,o,a[o]);if(j)for(var o of j(a))K.call(a,o)&&N(l,o,a[o]);return l};var U=(l,a)=>{var o={};for(var s in l)J.call(l,s)&&a.indexOf(s)<0&&(o[s]=l[s]);if(l!=null&&j)for(var s of j(l))a.indexOf(s)<0&&K.call(l,s)&&(o[s]=l[s]);return o};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=require("react"),ce=require("prop-types"),de=require("@strapi/icons/CarretDown"),ue=require("@strapi/icons/Cross"),fe=require("styled-components"),pe=require("../themes/sizes.cjs"),ye=require("./SelectButton.cjs"),he=require("../Field/Field.cjs"),me=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const Ee=require("../Field/FieldHint.cjs"),ge=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const be=require("../Popover/Popover.cjs"),qe=require("../Stack/Stack.cjs"),V=require("../Typography/Typography.cjs"),R=require("../Flex/Flex.cjs"),X=require("../Box/Box.cjs"),Fe=require("../helpers/useId.cjs"),Se=require("./SelectList.cjs"),_=require("./components.cjs"),je=require("./hooks/useButtonRef.cjs"),Y=require("../VisuallyHidden/VisuallyHidden.cjs"),Be=require("./constants.cjs"),Z=require("../helpers/escapeSelector.cjs"),Te=require("./SelectTags.cjs"),m=l=>l&&typeof l=="object"&&"default"in l?l:{default:l},r=m(y),e=m(ce),xe=m(de),ve=m(ue),Ce=m(fe),Ie=Ce.default(R.Flex)`
1
+ "use strict";var ie=Object.defineProperty;var j=Object.getOwnPropertySymbols;var J=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable;var N=(l,a,o)=>a in l?ie(l,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):l[a]=o,Q=(l,a)=>{for(var o in a||(a={}))J.call(a,o)&&N(l,o,a[o]);if(j)for(var o of j(a))K.call(a,o)&&N(l,o,a[o]);return l};var U=(l,a)=>{var o={};for(var s in l)J.call(l,s)&&a.indexOf(s)<0&&(o[s]=l[s]);if(l!=null&&j)for(var s of j(l))a.indexOf(s)<0&&K.call(l,s)&&(o[s]=l[s]);return o};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=require("react"),ce=require("prop-types"),de=require("@strapi/icons/CarretDown"),ue=require("@strapi/icons/Cross"),fe=require("styled-components"),pe=require("../themes/sizes.cjs"),ye=require("./SelectButton.cjs"),he=require("../Field/Field.cjs"),me=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const Ee=require("../Field/FieldHint.cjs"),ge=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const be=require("../Popover/Popover.cjs"),qe=require("../Stack/Stack.cjs"),V=require("../Typography/Typography.cjs"),_=require("../Flex/Flex.cjs"),X=require("../Box/Box.cjs"),Fe=require("../helpers/useId.cjs"),Se=require("./SelectList.cjs"),O=require("./components.cjs"),je=require("./hooks/useButtonRef.cjs"),Y=require("../VisuallyHidden/VisuallyHidden.cjs"),Be=require("./constants.cjs"),Z=require("../helpers/escapeSelector.cjs"),Te=require("./SelectTags.cjs"),m=l=>l&&typeof l=="object"&&"default"in l?l:{default:l},r=m(y),e=m(ce),xe=m(de),ve=m(ue),Ce=m(fe),Ie=Ce.default(_.Flex)`
2
2
  width: 100%;
3
- `,L=Oe=>{var k=Oe,{label:l,labelAction:a,id:o,children:s,customizeContent:E,placeholder:B,onChange:T,value:n,hint:x,error:g,disabled:u,clearLabel:D,onClear:$,onReachEnd:ee,multi:c,required:te,selectButtonTitle:le,size:re,startIcon:w,withTags:b}=k,ne=U(k,["label","labelAction","id","children","customizeContent","placeholder","onChange","value","hint","error","disabled","clearLabel","onClear","onReachEnd","multi","required","selectButtonTitle","size","startIcon","withTags"]);const i=Fe.useId("select",o),[q,F]=y.useState(void 0),H=je.useButtonRef(q),M=y.useRef(null),v=`${i}-label`,S=`${i}-content`,P=typeof g=="string";let C;if(P?C=`${i}-error`:x&&(C=`${i}-hint`),b&&!c)throw new Error('The "withTags" props can only be used when the "multi" prop is present');const oe=()=>{F(void 0)},ae=()=>{u||($(),H.current.focus())},A=t=>{t.preventDefault(),!u&&(t.nativeEvent.which===3||t.nativeEvent.button===2||F(Be.DownState.Mouse))},I=(t,d=!0)=>{c?T(n.includes(t)?n.filter(f=>f!==t):[...n,t]):(T(t),d&&F(void 0))},z=t=>{T(n.includes(t[0])?n.filter((d,f,h)=>h.indexOf(d)<0,t):[...n,...t])};let O,G=[];const W=(t,d)=>{const f=`${i}-option-${t.props.value}`,h=c?n.includes(t.props.value):t.props.value===n;return h&&(b?G.push({label:t.props.children,value:t.props.value}):O=t.props.children),y.cloneElement(t,{id:Z.escapeSelector(f),onClick:()=>I(t.props.value),selected:h,multi:c,isChild:d})},se=y.Children.toArray(s).map(t=>{if(t.type.displayName==="OptGroup"){const d=`${i}-option-${t.props.label}`,f=t.props.children.every(p=>n.includes(p.props.value)),h=!f&&t.props.children.some(p=>n.includes(p.props.value));return y.cloneElement(t,{id:Z.escapeSelector(d),onClick:()=>z(t.props.children.map(p=>p.props.value)),selected:f,indeterminate:h,multi:c,children:y.Children.toArray(t.props.children).map(p=>W(p,!0)),value:t.props.label})}return W(t)});return r.default.createElement(he.Field,{hint:x,error:g,id:i},r.default.createElement(qe.Stack,{spacing:l||x||P?1:0},l&&r.default.createElement(me.FieldLabel,{required:te,as:"span",id:v,action:a},l),r.default.createElement(_.SelectButtonWrapper,{size:re,hasError:Boolean(g),disabled:u,ref:M},r.default.createElement(ye.SelectButton,Q({ref:H,labelledBy:`${v} ${S}`,"aria-describedby":C,expanded:Boolean(q),onTrigger:F,id:i,hasError:Boolean(g),disabled:u,onMouseDown:A},ne)),r.default.createElement(Ie,{justifyContent:"space-between"},r.default.createElement(R.Flex,null,w&&r.default.createElement(X.Box,{paddingLeft:3,"aria-hidden":!0},w),b&&r.default.createElement(Te.SelectTags,{tags:G,onRemoveTag:I,disabled:u}),r.default.createElement(X.Box,{paddingLeft:4,paddingRight:4},b?r.default.createElement(r.default.Fragment,null,!n||n.length===0?r.default.createElement(V.Typography,{ellipsis:!0,id:S,textColor:"neutral600"},B):null,r.default.createElement(Y.VisuallyHidden,{as:"span",id:S},E?E(n):O||B,n.join(", "))):r.default.createElement(V.Typography,{ellipsis:!0,id:S,textColor:n?"neutral800":"neutral600"},E?E(n):O||B,c&&r.default.createElement(Y.VisuallyHidden,{as:"span"},n.join(", "))))),r.default.createElement(R.Flex,null,(c&&n&&n.length||!c&&n)&&$&&r.default.createElement(_.IconBox,{as:"button",type:"button",onClick:ae,"aria-label":D,"aria-disabled":u,title:D},r.default.createElement(ve.default,null)),r.default.createElement(_.CaretBox,{paddingLeft:3,"aria-hidden":!0,as:"button",type:"button",onMouseDown:A,tabIndex:-1,disabled:u,title:le},r.default.createElement(xe.default,null))))),r.default.createElement(Ee.FieldHint,null),r.default.createElement(ge.FieldError,null)),q&&r.default.createElement(be.Popover,{source:M,spacing:4,fullWidth:!0,intersectionId:`select-list-intersection-${i}`,onReachEnd:ee},r.default.createElement(Se.SelectList,{selectId:i,labelledBy:l?v:void 0,onEscape:oe,expanded:q,onSelectItem:(t,d)=>d?z(t):I(t,!1),multi:c},se)))};L.defaultProps={"aria-label":void 0,children:[],clearLabel:"Clear",customizeContent:void 0,disabled:!1,id:void 0,label:void 0,labelAction:void 0,multi:!1,onChange(){},onClear:void 0,onReachEnd:void 0,value:void 0,hint:void 0,error:void 0,placeholder:"Select...",required:!1,selectButtonTitle:"Carret Down Button",size:"M",startIcon:void 0,withTags:!1};L.propTypes={"aria-label":e.default.string,children:e.default.oneOfType([e.default.arrayOf(e.default.node),e.default.node]),clearLabel:e.default.string,customizeContent:e.default.func,disabled:e.default.bool,error:e.default.oneOfType([e.default.string,e.default.bool]),hint:e.default.oneOfType([e.default.string,e.default.node,e.default.arrayOf(e.default.node)]),id:e.default.oneOfType([e.default.string,e.default.number]),label:e.default.string,labelAction:e.default.element,multi:e.default.bool,onChange:e.default.func,onClear:e.default.func,onReachEnd:e.default.func,placeholder:e.default.string,required:e.default.bool,selectButtonTitle:e.default.string,size:e.default.oneOf(Object.keys(pe.sizes.input)),startIcon:e.default.element,value:e.default.oneOfType([e.default.arrayOf(e.default.oneOfType([e.default.string,e.default.number])),e.default.string,e.default.number]),withTags:e.default.bool};exports.Select=L;
3
+ `,R=Oe=>{var w=Oe,{label:l,labelAction:a,id:o,children:s,customizeContent:E,placeholder:B,onChange:T,value:n,hint:x,error:g,disabled:u,clearLabel:L,onClear:D,onReachEnd:ee,multi:c,required:te,selectButtonTitle:le,size:re,startIcon:$,withTags:b}=w,ne=U(w,["label","labelAction","id","children","customizeContent","placeholder","onChange","value","hint","error","disabled","clearLabel","onClear","onReachEnd","multi","required","selectButtonTitle","size","startIcon","withTags"]);const i=Fe.useId("select",o),[q,F]=y.useState(void 0),k=je.useButtonRef(q),H=y.useRef(null),M=`${i}-label`,S=`${i}-content`,P=typeof g=="string";let v;if(P?v=`${i}-error`:x&&(v=`${i}-hint`),b&&!c)throw new Error('The "withTags" props can only be used when the "multi" prop is present');const oe=()=>{F(void 0)},ae=()=>{u||(D(),k.current.focus())},A=t=>{t.preventDefault(),!u&&(t.nativeEvent.which===3||t.nativeEvent.button===2||F(Be.DownState.Mouse))},C=(t,d=!0)=>{c?T(n.includes(t)?n.filter(f=>f!==t):[...n,t]):(T(t),d&&F(void 0))},z=t=>{T(n.includes(t[0])?n.filter((d,f,h)=>h.indexOf(d)<0,t):[...n,...t])};let I,G=[];const W=(t,d)=>{const f=`${i}-option-${t.props.value}`,h=c?n.includes(t.props.value):t.props.value===n;return h&&(b?G.push({label:t.props.children,value:t.props.value}):I=t.props.children),y.cloneElement(t,{id:Z.escapeSelector(f),onClick:()=>C(t.props.value),selected:h,multi:c,isChild:d})},se=y.Children.toArray(s).map(t=>{if(t.type.displayName==="OptGroup"){const d=`${i}-option-${t.props.label}`,f=t.props.children.every(p=>n.includes(p.props.value)),h=!f&&t.props.children.some(p=>n.includes(p.props.value));return y.cloneElement(t,{id:Z.escapeSelector(d),onClick:()=>z(t.props.children.map(p=>p.props.value)),selected:f,indeterminate:h,multi:c,children:y.Children.toArray(t.props.children).map(p=>W(p,!0)),value:t.props.label})}return W(t)});return r.default.createElement(he.Field,{hint:x,error:g,id:i,required:te},r.default.createElement(qe.Stack,{spacing:l||x||P?1:0},l&&r.default.createElement(me.FieldLabel,{as:"span",action:a},l),r.default.createElement(O.SelectButtonWrapper,{size:re,hasError:Boolean(g),disabled:u,ref:H},r.default.createElement(ye.SelectButton,Q({ref:k,labelledBy:`${M} ${S}`,"aria-describedby":v,expanded:Boolean(q),onTrigger:F,id:i,hasError:Boolean(g),disabled:u,onMouseDown:A},ne)),r.default.createElement(Ie,{justifyContent:"space-between"},r.default.createElement(_.Flex,null,$&&r.default.createElement(X.Box,{paddingLeft:3,"aria-hidden":!0},$),b&&r.default.createElement(Te.SelectTags,{tags:G,onRemoveTag:C,disabled:u}),r.default.createElement(X.Box,{paddingLeft:4,paddingRight:4},b?r.default.createElement(r.default.Fragment,null,!n||n.length===0?r.default.createElement(V.Typography,{ellipsis:!0,id:S,textColor:"neutral600"},B):null,r.default.createElement(Y.VisuallyHidden,{as:"span",id:S},E?E(n):I||B,n.join(", "))):r.default.createElement(V.Typography,{ellipsis:!0,id:S,textColor:n?"neutral800":"neutral600"},E?E(n):I||B,c&&r.default.createElement(Y.VisuallyHidden,{as:"span"},n.join(", "))))),r.default.createElement(_.Flex,null,(c&&n&&n.length||!c&&n)&&D&&r.default.createElement(O.IconBox,{as:"button",type:"button",onClick:ae,"aria-label":L,"aria-disabled":u,title:L},r.default.createElement(ve.default,null)),r.default.createElement(O.CaretBox,{paddingLeft:3,"aria-hidden":!0,as:"button",type:"button",onMouseDown:A,tabIndex:-1,disabled:u,title:le},r.default.createElement(xe.default,null))))),r.default.createElement(Ee.FieldHint,null),r.default.createElement(ge.FieldError,null)),q&&r.default.createElement(be.Popover,{source:H,spacing:4,fullWidth:!0,intersectionId:`select-list-intersection-${i}`,onReachEnd:ee},r.default.createElement(Se.SelectList,{selectId:i,labelledBy:l?M:void 0,onEscape:oe,expanded:q,onSelectItem:(t,d)=>d?z(t):C(t,!1),multi:c},se)))};R.defaultProps={"aria-label":void 0,children:[],clearLabel:"Clear",customizeContent:void 0,disabled:!1,id:void 0,label:void 0,labelAction:void 0,multi:!1,onChange(){},onClear:void 0,onReachEnd:void 0,value:void 0,hint:void 0,error:void 0,placeholder:"Select...",required:!1,selectButtonTitle:"Carret Down Button",size:"M",startIcon:void 0,withTags:!1};R.propTypes={"aria-label":e.default.string,children:e.default.oneOfType([e.default.arrayOf(e.default.node),e.default.node]),clearLabel:e.default.string,customizeContent:e.default.func,disabled:e.default.bool,error:e.default.oneOfType([e.default.string,e.default.bool]),hint:e.default.oneOfType([e.default.string,e.default.node,e.default.arrayOf(e.default.node)]),id:e.default.oneOfType([e.default.string,e.default.number]),label:e.default.string,labelAction:e.default.element,multi:e.default.bool,onChange:e.default.func,onClear:e.default.func,onReachEnd:e.default.func,placeholder:e.default.string,required:e.default.bool,selectButtonTitle:e.default.string,size:e.default.oneOf(Object.keys(pe.sizes.input)),startIcon:e.default.element,value:e.default.oneOfType([e.default.arrayOf(e.default.oneOfType([e.default.string,e.default.number])),e.default.string,e.default.number]),withTags:e.default.bool};exports.Select=R;
@@ -35,7 +35,7 @@ import "../Field/FieldAction.js";
35
35
  import { Popover as ge } from "../Popover/Popover.js";
36
36
  import { Stack as ve } from "../Stack/Stack.js";
37
37
  import { Typography as Q } from "../Typography/Typography.js";
38
- import { Flex as R } from "../Flex/Flex.js";
38
+ import { Flex as $ } from "../Flex/Flex.js";
39
39
  import { Box as U } from "../Box/Box.js";
40
40
  import { useId as Be } from "../helpers/useId.js";
41
41
  import { SelectList as Oe } from "./SelectList.js";
@@ -45,10 +45,10 @@ import { VisuallyHidden as X } from "../VisuallyHidden/VisuallyHidden.js";
45
45
  import { DownState as xe } from "./constants.js";
46
46
  import { escapeSelector as Y } from "../helpers/escapeSelector.js";
47
47
  import { SelectTags as $e } from "./SelectTags.js";
48
- const Re = de(R)`
48
+ const Re = de($)`
49
49
  width: 100%;
50
50
  `, Z = (we) => {
51
- var F = we, {
51
+ var L = we, {
52
52
  label: o,
53
53
  labelAction: l,
54
54
  id: i,
@@ -60,16 +60,16 @@ const Re = de(R)`
60
60
  hint: C,
61
61
  error: E,
62
62
  disabled: m,
63
- clearLabel: w,
64
- onClear: D,
63
+ clearLabel: R,
64
+ onClear: w,
65
65
  onReachEnd: V,
66
66
  multi: p,
67
67
  required: ee,
68
68
  selectButtonTitle: te,
69
69
  size: re,
70
- startIcon: L,
70
+ startIcon: D,
71
71
  withTags: b
72
- } = F, oe = N(F, [
72
+ } = L, oe = N(L, [
73
73
  "label",
74
74
  "labelAction",
75
75
  "id",
@@ -91,29 +91,29 @@ const Re = de(R)`
91
91
  "startIcon",
92
92
  "withTags"
93
93
  ]);
94
- const a = Be("select", i), [y, g] = ae(void 0), M = Se(y), k = pe(null), I = `${a}-label`, v = `${a}-content`, j = typeof E == "string";
95
- let S;
96
- if (j ? S = `${a}-error` : C && (S = `${a}-hint`), b && !p)
94
+ const a = Be("select", i), [y, g] = ae(void 0), F = Se(y), M = pe(null), k = `${a}-label`, v = `${a}-content`, j = typeof E == "string";
95
+ let I;
96
+ if (j ? I = `${a}-error` : C && (I = `${a}-hint`), b && !p)
97
97
  throw new Error('The "withTags" props can only be used when the "multi" prop is present');
98
98
  const ne = () => {
99
99
  g(void 0);
100
100
  }, ie = () => {
101
- m || (D(), M.current.focus());
101
+ m || (w(), F.current.focus());
102
102
  }, A = (t) => {
103
103
  t.preventDefault(), !m && (t.nativeEvent.which === 3 || t.nativeEvent.button === 2 || g(xe.Mouse));
104
- }, x = (t, c = !0) => {
104
+ }, S = (t, c = !0) => {
105
105
  p ? T(n.includes(t) ? n.filter((d) => d !== t) : [...n, t]) : (T(t), c && g(void 0));
106
106
  }, P = (t) => {
107
107
  T(
108
108
  n.includes(t[0]) ? n.filter((c, d, u) => u.indexOf(c) < 0, t) : [...n, ...t]
109
109
  );
110
110
  };
111
- let $, _ = [];
111
+ let x, _ = [];
112
112
  const q = (t, c) => {
113
113
  const d = `${a}-option-${t.props.value}`, u = p ? n.includes(t.props.value) : t.props.value === n;
114
- return u && (b ? _.push({ label: t.props.children, value: t.props.value }) : $ = t.props.children), K(t, {
114
+ return u && (b ? _.push({ label: t.props.children, value: t.props.value }) : x = t.props.children), K(t, {
115
115
  id: Y(d),
116
- onClick: () => x(t.props.value),
116
+ onClick: () => S(t.props.value),
117
117
  selected: u,
118
118
  multi: p,
119
119
  isChild: c
@@ -136,23 +136,22 @@ const Re = de(R)`
136
136
  return /* @__PURE__ */ r.createElement(he, {
137
137
  hint: C,
138
138
  error: E,
139
- id: a
139
+ id: a,
140
+ required: ee
140
141
  }, /* @__PURE__ */ r.createElement(ve, {
141
142
  spacing: o || C || j ? 1 : 0
142
143
  }, o && /* @__PURE__ */ r.createElement(Ee, {
143
- required: ee,
144
144
  as: "span",
145
- id: I,
146
145
  action: l
147
146
  }, o), /* @__PURE__ */ r.createElement(Te, {
148
147
  size: re,
149
148
  hasError: Boolean(E),
150
149
  disabled: m,
151
- ref: k
150
+ ref: M
152
151
  }, /* @__PURE__ */ r.createElement(ue, W({
153
- ref: M,
154
- labelledBy: `${I} ${v}`,
155
- "aria-describedby": S,
152
+ ref: F,
153
+ labelledBy: `${k} ${v}`,
154
+ "aria-describedby": I,
156
155
  expanded: Boolean(y),
157
156
  onTrigger: g,
158
157
  id: a,
@@ -161,12 +160,12 @@ const Re = de(R)`
161
160
  onMouseDown: A
162
161
  }, oe)), /* @__PURE__ */ r.createElement(Re, {
163
162
  justifyContent: "space-between"
164
- }, /* @__PURE__ */ r.createElement(R, null, L && /* @__PURE__ */ r.createElement(U, {
163
+ }, /* @__PURE__ */ r.createElement($, null, D && /* @__PURE__ */ r.createElement(U, {
165
164
  paddingLeft: 3,
166
165
  "aria-hidden": !0
167
- }, L), b && /* @__PURE__ */ r.createElement($e, {
166
+ }, D), b && /* @__PURE__ */ r.createElement($e, {
168
167
  tags: _,
169
- onRemoveTag: x,
168
+ onRemoveTag: S,
170
169
  disabled: m
171
170
  }), /* @__PURE__ */ r.createElement(U, {
172
171
  paddingLeft: 4,
@@ -178,19 +177,19 @@ const Re = de(R)`
178
177
  }, O) : null, /* @__PURE__ */ r.createElement(X, {
179
178
  as: "span",
180
179
  id: v
181
- }, h ? h(n) : $ || O, n.join(", "))) : /* @__PURE__ */ r.createElement(Q, {
180
+ }, h ? h(n) : x || O, n.join(", "))) : /* @__PURE__ */ r.createElement(Q, {
182
181
  ellipsis: !0,
183
182
  id: v,
184
183
  textColor: n ? "neutral800" : "neutral600"
185
- }, h ? h(n) : $ || O, p && /* @__PURE__ */ r.createElement(X, {
184
+ }, h ? h(n) : x || O, p && /* @__PURE__ */ r.createElement(X, {
186
185
  as: "span"
187
- }, n.join(", "))))), /* @__PURE__ */ r.createElement(R, null, (p && n && n.length || !p && n) && D && /* @__PURE__ */ r.createElement(Ce, {
186
+ }, n.join(", "))))), /* @__PURE__ */ r.createElement($, null, (p && n && n.length || !p && n) && w && /* @__PURE__ */ r.createElement(Ce, {
188
187
  as: "button",
189
188
  type: "button",
190
189
  onClick: ie,
191
- "aria-label": w,
190
+ "aria-label": R,
192
191
  "aria-disabled": m,
193
- title: w
192
+ title: R
194
193
  }, /* @__PURE__ */ r.createElement(me, null)), /* @__PURE__ */ r.createElement(Ie, {
195
194
  paddingLeft: 3,
196
195
  "aria-hidden": !0,
@@ -201,17 +200,17 @@ const Re = de(R)`
201
200
  disabled: m,
202
201
  title: te
203
202
  }, /* @__PURE__ */ r.createElement(ce, null))))), /* @__PURE__ */ r.createElement(be, null), /* @__PURE__ */ r.createElement(ye, null)), y && /* @__PURE__ */ r.createElement(ge, {
204
- source: k,
203
+ source: M,
205
204
  spacing: 4,
206
205
  fullWidth: !0,
207
206
  intersectionId: `select-list-intersection-${a}`,
208
207
  onReachEnd: V
209
208
  }, /* @__PURE__ */ r.createElement(Oe, {
210
209
  selectId: a,
211
- labelledBy: o ? I : void 0,
210
+ labelledBy: o ? k : void 0,
212
211
  onEscape: ne,
213
212
  expanded: y,
214
- onSelectItem: (t, c) => c ? P(t) : x(t, !1),
213
+ onSelectItem: (t, c) => c ? P(t) : S(t, !1),
215
214
  multi: p
216
215
  }, le)));
217
216
  };
@@ -1,19 +1,35 @@
1
- "use strict";var Z=Object.defineProperty;var v=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var j=(e,a,n)=>a in e?Z(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n,E=(e,a)=>{for(var n in a||(a={}))F.call(a,n)&&j(e,n,a[n]);if(v)for(var n of v(a))A.call(a,n)&&j(e,n,a[n]);return e};var I=(e,a)=>{var n={};for(var r in e)F.call(e,r)&&a.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&v)for(var r of v(e))a.indexOf(r)<0&&A.call(e,r)&&(n[r]=e[r]);return n};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react"),ee=require("prop-types"),te=require("styled-components"),ne=require("react-router-dom"),N=require("@radix-ui/react-use-callback-ref"),oe=require("@strapi/icons/CarretDown"),$=require("../Typography/Typography.cjs"),q=require("../Box/Box.cjs"),ae=require("../Flex/Flex.cjs"),L=require("../Button/Button.cjs"),V=require("../Popover/Popover.cjs"),W=require("./utils.cjs"),re=require("../helpers/useId.cjs"),c=require("../helpers/keyboardKeys.cjs"),K=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},s=K(l),t=K(ee),C=K(te),se=K(oe),ue=C.default.button`
1
+ "use strict";var Z=Object.defineProperty;var C=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var $=(e,r,n)=>r in e?Z(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,i=(e,r)=>{for(var n in r||(r={}))F.call(r,n)&&$(e,n,r[n]);if(C)for(var n of C(r))A.call(r,n)&&$(e,n,r[n]);return e};var D=(e,r)=>{var n={};for(var s in e)F.call(e,s)&&r.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&C)for(var s of C(e))r.indexOf(s)<0&&A.call(e,s)&&(n[s]=e[s]);return n};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react"),ee=require("prop-types"),te=require("styled-components"),ne=require("react-router-dom"),N=require("@radix-ui/react-use-callback-ref"),oe=require("@strapi/icons/CarretDown"),I=require("../Typography/Typography.cjs"),re=require("../Link/Link.cjs"),K=require("../Box/Box.cjs"),ae=require("../Flex/Flex.cjs"),V=require("../Button/Button.cjs"),W=require("../Popover/Popover.cjs"),O=require("./utils.cjs"),se=require("../helpers/useId.cjs"),d=require("../helpers/keyboardKeys.cjs"),R=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},a=R(l),t=R(ee),v=R(te),ue=R(oe),le=v.default.button`
2
2
  border: none;
3
3
  padding: 0;
4
4
  background: transparent;
5
5
  cursor: pointer;
6
- ${W.getOptionStyle}
7
- `,le=C.default(ne.NavLink)`
6
+ ${O.getOptionStyle}
7
+ `,ce=v.default(ne.NavLink)`
8
8
  text-decoration: none;
9
- ${W.getOptionStyle}
10
- `,ce=C.default.span`
9
+ ${O.getOptionStyle}
10
+ `,de=v.default(re.Link)`
11
+ /* Removing Link hover effect */
12
+ &:hover {
13
+ color: currentColor;
14
+ }
15
+
16
+ &:focus-visible {
17
+ /* Removing Link focus-visible after properties and reset to global outline */
18
+ outline: 2px solid ${({theme:e})=>e.colors.primary600};
19
+ outline-offset: 2px;
20
+ &:after {
21
+ content: none;
22
+ }
23
+ }
24
+
25
+ ${O.getOptionStyle}
26
+ `,ie=v.default.span`
11
27
  display: flex;
12
28
  align-items: center;
13
29
  svg {
14
30
  height: 4px;
15
31
  width: 6px;
16
32
  }
17
- `,de=C.default(L.Button)`
33
+ `,fe=v.default(V.Button)`
18
34
  padding: ${({theme:e})=>`${e.spaces[1]} ${e.spaces[3]}`};
19
- `,B=S=>{var h=S,{children:e,onClick:a,to:n,isFocused:r}=h,P=I(h,["children","onClick","to","isFocused"]);const i=l.useRef();l.useEffect(()=>{r&&i.current&&i.current.focus()},[r]);const d=E({tabIndex:r?0:-1,ref:i,role:"menuitem"},P),k=R=>{(R.key===c.KeyboardKeys.SPACE||R.key===c.KeyboardKeys.ENTER)&&a()};return n?s.default.createElement(le,E({to:n},d),s.default.createElement(q.Box,{padding:2},s.default.createElement($.Typography,null,e))):s.default.createElement(ue,E({onKeyDown:k,onMouseDown:a,type:"button"},d),s.default.createElement(q.Box,{padding:2},s.default.createElement($.Typography,null,e)))};B.defaultProps={as:void 0,onClick(){},isFocused:!1,to:void 0};B.propTypes={as:t.default.elementType,children:t.default.node.isRequired,isFocused:t.default.bool,onClick:t.default.func,to:t.default.string};const g=R=>{var O=R,{label:e,children:a,id:n,as:r,onOpen:P=()=>{},onClose:S=()=>{},size:h,popoverPlacement:i,onReachEnd:d}=O,k=I(O,["label","children","id","as","onOpen","onClose","size","popoverPlacement","onReachEnd"]);const f=l.useRef(),x=re.useId("simplemenu",n),p=l.useRef(!1),[y,m]=l.useState(!1),[T,D]=l.useState(0),b=l.Children.toArray(a),z=h==="S"?de:L.Button,U=r||z,w=!!d&&typeof d=="function";l.useEffect(()=>{if(["string","number"].includes(typeof e)){const o=b.findIndex(u=>u.props.children===e);o!==-1&&D(o)}},[e]);const M=N.useCallbackRef(P),_=N.useCallbackRef(S);l.useEffect(()=>{p!=null&&p.current?y?M():_():p.current=!0},[p,_,M,y]),l.useEffect(()=>{s.default.isValidElement(e)&&T===-1&&f.current.focus()},[e,T]);const H=o=>{y&&(o.key===c.KeyboardKeys.ESCAPE&&(o.stopPropagation(),m(!1),f.current.focus()),o.key===c.KeyboardKeys.DOWN&&D(u=>u===b.length-1?0:u+1),o.key===c.KeyboardKeys.UP&&D(u=>u===0?b.length-1:u-1))},G=o=>{(o.key===c.KeyboardKeys.ENTER||o.key===c.KeyboardKeys.SPACE)&&m(u=>!u)},J=o=>{o.preventDefault(),o.currentTarget.contains(o.relatedTarget)||m(!1)},Q=o=>{o.preventDefault(),m(u=>!u)},X=()=>{w&&d()},Y=b.map((o,u)=>s.default.createElement(ae.Flex,{as:"li",key:u,justifyContent:"center",role:"menuitem"},l.cloneElement(o,{onClick(){o.props.onClick(),m(!1),f.current.focus()},isFocused:T===u})));return s.default.createElement("div",{onKeyDown:H},s.default.createElement(U,E({label:s.default.isValidElement(e)?null:e,"aria-haspopup":!0,"aria-expanded":y,"aria-controls":x,onKeyDown:G,onMouseDown:Q,ref:f,type:"button",variant:"ghost",endIcon:s.default.createElement(ce,null,s.default.createElement(se.default,{"aria-hidden":!0}))},k),e),y&&s.default.createElement(V.Popover,{onBlur:J,placement:i,source:f,onReachEnd:X,intersectionId:w?`popover-${x}`:void 0,spacing:4},s.default.createElement(q.Box,{role:"menu",as:"ul",padding:1,id:x},Y)))};g.defaultProps={as:void 0};g.displayName="SimpleMenu";g.defaultProps={id:void 0,onOpen:void 0,onClose:void 0,onReachEnd:void 0,popoverPlacement:"bottom-start",size:"M"};g.propTypes={as:t.default.any,children:t.default.oneOfType([t.default.arrayOf(t.default.node),t.default.node]).isRequired,id:t.default.string,label:t.default.oneOfType([t.default.string,t.default.number,t.default.element]).isRequired,onClose:t.default.func,onOpen:t.default.func,onReachEnd:t.default.func,popoverPlacement:t.default.oneOf(V.POPOVER_PLACEMENTS),size:t.default.oneOf(["S","M"])};exports.MenuItem=B;exports.SimpleMenu=g;
35
+ `,S=w=>{var b=w,{children:e,onClick:r,to:n,isFocused:s,href:f}=b,P=D(b,["children","onClick","to","isFocused","href"]);const c=l.useRef();l.useEffect(()=>{s&&c.current&&c.current.focus()},[s]);const p=i({tabIndex:s?0:-1,ref:c,role:"menuitem"},P),M=y=>{(y.key===d.KeyboardKeys.SPACE||y.key===d.KeyboardKeys.ENTER)&&r()};return n&&!f?a.default.createElement(ce,i({to:n},p),a.default.createElement(K.Box,{padding:2},a.default.createElement(I.Typography,null,e))):f&&!n?a.default.createElement(de,i({isExternal:!0,href:f},p),a.default.createElement(K.Box,{padding:2},a.default.createElement(I.Typography,null,e))):a.default.createElement(le,i({onKeyDown:M,onMouseDown:r,type:"button"},p),a.default.createElement(K.Box,{padding:2},a.default.createElement(I.Typography,null,e)))};S.defaultProps={as:void 0,href:void 0,isFocused:!1,onClick(){},to:void 0};S.propTypes={as:t.default.elementType,children:t.default.node.isRequired,href:t.default.string,isFocused:t.default.bool,onClick:t.default.func,to:t.default.string};const k=M=>{var y=M,{label:e,children:r,id:n,as:s,onOpen:f=()=>{},onClose:P=()=>{},size:w,popoverPlacement:b,onReachEnd:c}=y,p=D(y,["label","children","id","as","onOpen","onClose","size","popoverPlacement","onReachEnd"]);const m=l.useRef(),T=se.useId("simplemenu",n),E=l.useRef(!1),[g,h]=l.useState(!1),[q,B]=l.useState(0),x=l.Children.toArray(r),z=w==="S"?fe:V.Button,U=s||z,j=!!c&&typeof c=="function";l.useEffect(()=>{if(["string","number"].includes(typeof e)){const o=x.findIndex(u=>u.props.children===e);o!==-1&&B(o)}},[e]);const _=N.useCallbackRef(f),L=N.useCallbackRef(P);l.useEffect(()=>{E!=null&&E.current?g?_():L():E.current=!0},[E,L,_,g]),l.useEffect(()=>{a.default.isValidElement(e)&&q===-1&&m.current.focus()},[e,q]);const H=o=>{g&&(o.key===d.KeyboardKeys.ESCAPE&&(o.stopPropagation(),h(!1),m.current.focus()),o.key===d.KeyboardKeys.DOWN&&B(u=>u===x.length-1?0:u+1),o.key===d.KeyboardKeys.UP&&B(u=>u===0?x.length-1:u-1))},G=o=>{(o.key===d.KeyboardKeys.ENTER||o.key===d.KeyboardKeys.SPACE)&&h(u=>!u)},J=o=>{o.preventDefault(),o.currentTarget.contains(o.relatedTarget)||h(!1)},Q=o=>{o.preventDefault(),h(u=>!u)},X=()=>{j&&c()},Y=x.map((o,u)=>a.default.createElement(ae.Flex,{as:"li",key:u,justifyContent:"center",role:"menuitem"},l.cloneElement(o,{onClick(){o.props.onClick(),h(!1),m.current.focus()},isFocused:q===u})));return a.default.createElement("div",{onKeyDown:H},a.default.createElement(U,i({label:a.default.isValidElement(e)?null:e,"aria-haspopup":!0,"aria-expanded":g,"aria-controls":T,onKeyDown:G,onMouseDown:Q,ref:m,type:"button",variant:"ghost",endIcon:a.default.createElement(ie,null,a.default.createElement(ue.default,{"aria-hidden":!0}))},p),e),g&&a.default.createElement(W.Popover,{onBlur:J,placement:b,source:m,onReachEnd:X,intersectionId:j?`popover-${T}`:void 0,spacing:4},a.default.createElement(K.Box,{role:"menu",as:"ul",padding:1,id:T},Y)))};k.defaultProps={as:void 0};k.displayName="SimpleMenu";k.defaultProps={id:void 0,onOpen:void 0,onClose:void 0,onReachEnd:void 0,popoverPlacement:"bottom-start",size:"M"};k.propTypes={as:t.default.any,children:t.default.oneOfType([t.default.arrayOf(t.default.node),t.default.node]).isRequired,id:t.default.string,label:t.default.oneOfType([t.default.string,t.default.number,t.default.element]).isRequired,onClose:t.default.func,onOpen:t.default.func,onReachEnd:t.default.func,popoverPlacement:t.default.oneOf(W.POPOVER_PLACEMENTS),size:t.default.oneOf(["S","M"])};exports.MenuItem=S;exports.SimpleMenu=k;