@strapi/design-system 1.6.4 → 1.6.6

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 (168) 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/BaseButton/BaseButton.cjs +3 -3
  6. package/dist/BaseButton/BaseButton.js +17 -16
  7. package/dist/BaseRadio/BaseRadio.cjs +1 -1
  8. package/dist/BaseRadio/BaseRadio.js +1 -1
  9. package/dist/Box/Box.cjs +3 -3
  10. package/dist/Box/Box.js +26 -26
  11. package/dist/Card/Card.cjs +1 -1
  12. package/dist/Card/Card.js +1 -1
  13. package/dist/CarouselInput/CarouselActions.cjs +1 -1
  14. package/dist/CarouselInput/CarouselActions.js +16 -4
  15. package/dist/CarouselInput/CarouselInput.cjs +1 -1
  16. package/dist/CarouselInput/CarouselInput.js +13 -13
  17. package/dist/Checkbox/Checkbox.cjs +2 -2
  18. package/dist/Checkbox/Checkbox.js +13 -13
  19. package/dist/Combobox/Combobox.cjs +1 -1
  20. package/dist/Combobox/Combobox.js +62 -63
  21. package/dist/DatePicker/DatePicker.cjs +8 -1
  22. package/dist/DatePicker/DatePicker.js +71 -98
  23. package/dist/DatePicker/DatePickerCalendar.cjs +1 -1
  24. package/dist/DatePicker/DatePickerCalendar.js +125 -57
  25. package/dist/DatePicker/DatePickerTd.cjs +4 -4
  26. package/dist/DatePicker/DatePickerTd.js +43 -26
  27. package/dist/DatePicker/DatePickerTh.cjs +3 -3
  28. package/dist/DatePicker/DatePickerTh.js +31 -15
  29. package/dist/DatePicker/components.cjs +8 -6
  30. package/dist/DatePicker/components.js +15 -13
  31. package/dist/DatePicker/utils/getDayOfWeek.js +8 -8
  32. package/dist/DatePicker/utils/getMonths.cjs +1 -1
  33. package/dist/DatePicker/utils/getMonths.js +3 -3
  34. package/dist/DatePicker/utils/getYears.cjs +1 -1
  35. package/dist/DatePicker/utils/getYears.js +1 -1
  36. package/dist/DateTimePicker/DateTimePicker.cjs +1 -1
  37. package/dist/DateTimePicker/DateTimePicker.js +97 -104
  38. package/dist/Dialog/Dialog.cjs +4 -4
  39. package/dist/Dialog/Dialog.js +2 -2
  40. package/dist/Dialog/DialogFooter.cjs +3 -3
  41. package/dist/Dialog/DialogFooter.js +2 -2
  42. package/dist/Field/Field.cjs +1 -1
  43. package/dist/Field/Field.js +31 -27
  44. package/dist/Field/FieldAction.cjs +2 -8
  45. package/dist/Field/FieldAction.js +27 -16
  46. package/dist/Field/FieldContext.cjs +1 -1
  47. package/dist/Field/FieldContext.js +2 -2
  48. package/dist/Field/FieldError.cjs +1 -1
  49. package/dist/Field/FieldError.js +14 -4
  50. package/dist/Field/FieldHint.cjs +1 -1
  51. package/dist/Field/FieldHint.js +17 -7
  52. package/dist/Field/FieldInput.cjs +14 -16
  53. package/dist/Field/FieldInput.js +104 -72
  54. package/dist/Field/FieldLabel.cjs +6 -3
  55. package/dist/Field/FieldLabel.js +43 -25
  56. package/dist/FocusTrap/FocusTrap.cjs +1 -1
  57. package/dist/FocusTrap/FocusTrap.js +34 -38
  58. package/dist/IconButton/IconButton.cjs +4 -4
  59. package/dist/IconButton/IconButton.js +32 -30
  60. package/dist/JSONInput/JSONInput.cjs +1 -1
  61. package/dist/JSONInput/JSONInput.js +29 -27
  62. package/dist/Layout/HeaderLayout.cjs +2 -2
  63. package/dist/Layout/HeaderLayout.js +3 -3
  64. package/dist/MainNav/NavSection.cjs +1 -1
  65. package/dist/MainNav/NavSection.js +33 -13
  66. package/dist/MainNav/NavSections.cjs +2 -2
  67. package/dist/MainNav/NavSections.js +20 -10
  68. package/dist/ModalLayout/ModalLayout.cjs +1 -1
  69. package/dist/ModalLayout/ModalLayout.js +1 -1
  70. package/dist/NumberInput/NumberInput.cjs +2 -2
  71. package/dist/NumberInput/NumberInput.js +32 -32
  72. package/dist/Popover/Popover.cjs +3 -3
  73. package/dist/Popover/Popover.js +1 -1
  74. package/dist/RawTable/RawCell.cjs +1 -1
  75. package/dist/RawTable/RawCell.js +64 -67
  76. package/dist/RawTable/RawTable.cjs +1 -1
  77. package/dist/RawTable/RawTable.js +39 -37
  78. package/dist/RawTable/RawTbody.cjs +1 -1
  79. package/dist/RawTable/RawTbody.js +14 -11
  80. package/dist/RawTable/RawThead.cjs +1 -1
  81. package/dist/RawTable/RawThead.js +13 -8
  82. package/dist/RawTable/RawTr.cjs +1 -1
  83. package/dist/RawTable/RawTr.js +20 -13
  84. package/dist/Searchbar/Searchbar.cjs +2 -2
  85. package/dist/Searchbar/Searchbar.js +7 -6
  86. package/dist/Select/Select.cjs +2 -2
  87. package/dist/Select/Select.js +66 -65
  88. package/dist/Select/SelectButton.cjs +3 -3
  89. package/dist/Select/SelectButton.js +17 -15
  90. package/dist/Select/SelectList.cjs +1 -1
  91. package/dist/Select/SelectList.js +10 -8
  92. package/dist/SimpleMenu/SimpleMenu.cjs +1 -1
  93. package/dist/SimpleMenu/SimpleMenu.js +1 -1
  94. package/dist/SubNav/SubNavHeader.cjs +2 -2
  95. package/dist/SubNav/SubNavHeader.js +2 -2
  96. package/dist/SubNav/SubNavLinkSection.cjs +3 -3
  97. package/dist/SubNav/SubNavLinkSection.js +1 -1
  98. package/dist/SubNav/SubNavSection.cjs +2 -2
  99. package/dist/SubNav/SubNavSection.js +7 -7
  100. package/dist/SubNav/SubNavSections.cjs +1 -1
  101. package/dist/SubNav/SubNavSections.js +17 -7
  102. package/dist/Tabs/TabGroup.cjs +1 -1
  103. package/dist/Tabs/TabGroup.js +1 -1
  104. package/dist/Tag/Tag.cjs +8 -8
  105. package/dist/Tag/Tag.js +52 -49
  106. package/dist/TextButton/TextButton.cjs +6 -12
  107. package/dist/TextButton/TextButton.js +32 -46
  108. package/dist/TextInput/TextInput.cjs +1 -1
  109. package/dist/TextInput/TextInput.js +48 -47
  110. package/dist/Textarea/Textarea.cjs +2 -2
  111. package/dist/Textarea/Textarea.js +12 -13
  112. package/dist/Textarea/TextareaInput.cjs +4 -4
  113. package/dist/Textarea/TextareaInput.js +13 -12
  114. package/dist/TimePicker/TimePicker.cjs +5 -7
  115. package/dist/TimePicker/TimePicker.js +48 -100
  116. package/dist/ToggleCheckbox/ToggleCheckbox.cjs +2 -2
  117. package/dist/ToggleCheckbox/ToggleCheckbox.js +1 -0
  118. package/dist/ToggleInput/ToggleInput.cjs +3 -3
  119. package/dist/ToggleInput/ToggleInput.js +28 -29
  120. package/dist/Tooltip/Tooltip.cjs +1 -1
  121. package/dist/Tooltip/Tooltip.js +1 -1
  122. package/dist/helpers/deprecations.cjs +1 -1
  123. package/dist/helpers/deprecations.js +7 -7
  124. package/dist/helpers/useElementOnScreen.cjs +1 -1
  125. package/dist/helpers/useElementOnScreen.js +4 -13
  126. package/dist/helpers/useId.cjs +1 -1
  127. package/dist/helpers/useId.js +4 -11
  128. package/dist/helpers/useIntersection.cjs +1 -1
  129. package/dist/helpers/useIntersection.js +4 -21
  130. package/dist/helpers/useLockScroll.cjs +1 -1
  131. package/dist/helpers/useLockScroll.js +4 -7
  132. package/dist/helpers/usePrevious.cjs +1 -1
  133. package/dist/helpers/usePrevious.js +4 -8
  134. package/dist/helpers/useResizeObserver.cjs +1 -1
  135. package/dist/helpers/useResizeObserver.js +4 -14
  136. package/dist/hooks/useElementOnScreen.cjs +1 -0
  137. package/dist/hooks/useElementOnScreen.js +15 -0
  138. package/dist/hooks/useIntersection.cjs +1 -1
  139. package/dist/hooks/useIntersection.js +3 -3
  140. package/dist/hooks/useLockScroll.cjs +1 -0
  141. package/dist/hooks/useLockScroll.js +9 -0
  142. package/dist/hooks/usePrevious.cjs +1 -0
  143. package/dist/hooks/usePrevious.js +10 -0
  144. package/dist/hooks/useResizeObserver.cjs +1 -0
  145. package/dist/hooks/useResizeObserver.js +16 -0
  146. package/dist/v2/MainNav/NavSection.cjs +1 -1
  147. package/dist/v2/MainNav/NavSection.js +33 -13
  148. package/dist/v2/MainNav/NavSections.cjs +2 -2
  149. package/dist/v2/MainNav/NavSections.js +20 -10
  150. package/dist/v2/SimpleMenu/SimpleMenu.cjs +1 -1
  151. package/dist/v2/SimpleMenu/SimpleMenu.js +1 -1
  152. package/dist/v2/SubNav/SubNavHeader.cjs +2 -2
  153. package/dist/v2/SubNav/SubNavHeader.js +2 -2
  154. package/dist/v2/SubNav/SubNavLinkSection.cjs +3 -3
  155. package/dist/v2/SubNav/SubNavLinkSection.js +1 -1
  156. package/dist/v2/SubNav/SubNavSection.cjs +2 -2
  157. package/dist/v2/SubNav/SubNavSection.js +10 -10
  158. package/dist/v2/SubNav/SubNavSections.cjs +1 -1
  159. package/dist/v2/SubNav/SubNavSections.js +17 -7
  160. package/package.json +5 -3
  161. package/dist/DateTimePicker/DateTimePickerProps.cjs +0 -1
  162. package/dist/DateTimePicker/DateTimePickerProps.js +0 -40
  163. package/dist/DateTimePicker/__tests__/parseDate.test.cjs +0 -1
  164. package/dist/DateTimePicker/__tests__/parseDate.test.js +0 -8
  165. package/dist/DateTimePicker/parseDate.cjs +0 -1
  166. package/dist/DateTimePicker/parseDate.js +0 -7
  167. package/dist/Select/SingleSelect.cjs +0 -82
  168. package/dist/Select/SingleSelect.js +0 -285
@@ -7,25 +7,25 @@ import { Field as u } from "../Field/Field.js";
7
7
  import "../Field/FieldLabel.js";
8
8
  import "../Field/FieldInput.js";
9
9
  import { FieldHint as b } from "../Field/FieldHint.js";
10
- import { FieldError as y } from "../Field/FieldError.js";
11
- import { useField as x } from "../Field/FieldContext.js";
10
+ import { FieldError as x } from "../Field/FieldError.js";
11
+ import { useField as y } from "../Field/FieldContext.js";
12
12
  import "../Field/FieldAction.js";
13
- import { useId as E } from "../helpers/useId.js";
14
- import { Stack as g } from "../Stack/Stack.js";
15
- import { Typography as h } from "../Typography/Typography.js";
16
- const k = s(h)`
13
+ import { Flex as g } from "../Flex/Flex.js";
14
+ import { useId as h } from "../hooks/useId.js";
15
+ import { Typography as E } from "../Typography/Typography.js";
16
+ const T = s(E)`
17
17
  display: flex;
18
18
  align-items: flex-start;
19
19
  * {
20
- cursor: ${({ disabled: o }) => o ? "not-allowed" : "pointer"};
20
+ cursor: ${({ disabled: t }) => t ? "not-allowed" : "pointer"};
21
21
  }
22
- `, T = (o) => {
23
- const { id: t } = x();
24
- return /* @__PURE__ */ r.createElement(c, { id: t, ...o });
25
- }, a = ({ children: o, disabled: t, id: p, hint: m, error: l, ...d }) => {
26
- const i = E(p);
22
+ `, k = (t) => {
23
+ const { id: o } = y();
24
+ return /* @__PURE__ */ r.createElement(c, { id: o, ...t });
25
+ }, a = ({ children: t, disabled: o, id: d, hint: l, error: m, ...p }) => {
26
+ const i = h(d);
27
27
  let n;
28
- return l ? n = `${i}-error` : m && (n = `${i}-hint`), /* @__PURE__ */ r.createElement(u, { id: i, hint: m, error: l }, /* @__PURE__ */ r.createElement(g, { spacing: 1 }, /* @__PURE__ */ r.createElement(k, { as: "label", textColor: "neutral800", disabled: t }, /* @__PURE__ */ r.createElement(T, { disabled: t, "aria-describedby": n, ...d }), /* @__PURE__ */ r.createElement(f, { paddingLeft: 2 }, o)), /* @__PURE__ */ r.createElement(b, null), /* @__PURE__ */ r.createElement(y, null)));
28
+ return m ? n = `${i}-error` : l && (n = `${i}-hint`), /* @__PURE__ */ r.createElement(u, { id: i, hint: l, error: m }, /* @__PURE__ */ r.createElement(g, { direction: "column", alignItems: "stretch", gap: 1 }, /* @__PURE__ */ r.createElement(T, { as: "label", textColor: "neutral800", disabled: o }, /* @__PURE__ */ r.createElement(k, { disabled: o, "aria-describedby": n, ...p }), /* @__PURE__ */ r.createElement(f, { paddingLeft: 2 }, t)), /* @__PURE__ */ r.createElement(b, null), /* @__PURE__ */ r.createElement(x, null)));
29
29
  };
30
30
  a.defaultProps = {
31
31
  disabled: !1,
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),H=require("@strapi/icons"),he=require("prop-types"),ve=require("./ComboboxOption.cjs"),q=require("./components.cjs"),l=require("./utils.cjs"),Ee=require("../Box/Box.cjs"),Fe=require("../Field/Field.cjs"),Ie=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const ke=require("../Field/FieldHint.cjs"),qe=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const _=require("../Flex/Flex.cjs"),Me=require("../helpers/keyboardKeys.cjs"),Oe=require("../helpers/useId.cjs"),je=require("../Loader/Loader.cjs"),Se=require("../Popover/Popover.cjs"),N=require("../Select/components.cjs"),Le=require("../Stack/Stack.cjs"),U=require("../Typography/Typography.cjs"),Re=require("../VisuallyHidden/VisuallyHidden.cjs"),z=r=>r&&typeof r=="object"&&"default"in r?r:{default:r},o=z(a),e=z(he),C=({children:r,clearLabel:W,creatable:x,createMessage:G,disabled:d,error:F,hasMoreItems:J,hint:M,id:Q,label:h,labelAction:X,loading:O,loadingMessage:Y,noOptionsMessage:Z,onChange:R,onClear:A,onCreateOption:ee,onInputChange:T,onLoadMore:te,placeholder:oe,required:$,value:p,...ne})=>{const ae=()=>r.find(t=>t.props?.value.toLowerCase()===p.toLowerCase()).props?.children,[c,w]=a.useState(0),[re,le]=a.useState(null),[u,B]=a.useState(r),[m,se]=a.useState(!1),[s,I]=a.useState(""),v=a.useRef(),k=a.useRef(!1),E=a.useRef(),D=a.useRef(),ie=a.useRef(),P=a.useRef(!0),i=Oe.useId(Q),ce=`${i}-label`;if(!h&&!ne["aria-label"])throw new Error('The Combobox component needs a "label" or an "aria-label" props');a.useEffect(()=>{B(l.filterOptions(r,s))},[s,r]),a.useEffect(()=>{m&&v.current&&l.maintainScrollVisibility(v.current)},[c,m]),a.useLayoutEffect(()=>{P.current&&(P.current=!1)},[p]);const ue=m?`${i}-${c}`:"",V=()=>{R(null),I("")},de=t=>{T&&T(t);const n=E.current.value;B(l.filterOptions(r,n)),w(0),le(null),s!==n&&I(n),m||b(!0,!1)},fe=t=>{const{key:n}=t,f=x&&s?u.length:u.length-1,y=l.getActionFromKey(n,m);switch(p&&!s&&n===Me.KeyboardKeys.BACKSPACE&&V(),y){case l.MenuActions.Next:{if(c===f){g(0);break}g(l.getUpdatedIndex(c,f,y));break}case l.MenuActions.Previous:{if(c===0){g(f);break}g(l.getUpdatedIndex(c,f,y));break}case l.MenuActions.Last:case l.MenuActions.First:{if(c===f){g(0);break}g(l.getUpdatedIndex(c,f,y));break}case l.MenuActions.CloseSelect:t.preventDefault(),j(c);break;case l.MenuActions.Close:t.preventDefault(),b(!1);break;case l.MenuActions.Open:b(!0);break}},pe=t=>{if(t.preventDefault(),p&&!k.current&&I(""),k.current){k.current=!1;return}b(!1,!1)},g=t=>{w(t)},be=t=>{g(t),j(t)},K=()=>{k.current=!0},j=t=>{const n=u[t];if(I(""),n){R(n.props.value),b(!1);return}x&&(ee(s),b(!1))},b=(t,n=!0)=>{se(t),n&&E.current.focus()},me=a.Children.toArray(u).map((t,n)=>{const f=c===n;return a.cloneElement(t,{id:`${i}-${n}`,"aria-selected":re===n,"aria-posinset":n+1,"aria-setsize":a.Children.toArray(u).length,ref(y){f&&(v.current=y)},onClick:()=>be(n),onMouseDown:K,isSelected:f})}),ge=()=>{E.current.focus(),A&&A(),V()},ye=()=>{E.current.focus(),b(!0)},Ce=()=>{const t=u.findIndex(n=>n.props?.children===s);return s&&t===-1},xe=t=>{t.preventDefault(),b(t,!0)};let S;return F?S=`${i}-error`:M&&(S=`${i}-hint`),o.default.createElement(Fe.Field,{hint:M,error:F,id:i,required:$},o.default.createElement(Re.VisuallyHidden,{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text"},p),o.default.createElement(Le.Stack,{spacing:h||M||F?1:0},h&&o.default.createElement(Ie.FieldLabel,{action:X},h),o.default.createElement(q.MainRow,{ref:D,$disabled:d,hasError:F},o.default.createElement(q.InputContainer,{wrap:"wrap"},!s&&p&&o.default.createElement(q.ValueContainer,{id:`${i}-selected-value`},o.default.createElement(U.Typography,null,ae())),o.default.createElement(q.Input,{"aria-activedescendant":ue,"aria-autocomplete":"list","aria-controls":`${i}-listbox`,"aria-disabled":d,"aria-expanded":m,"aria-haspopup":"listbox","aria-describedby":S,autoComplete:"off",autoCorrect:"off",id:i,onBlur:d?void 0:pe,onClick:d?void 0:xe,onInput:d?void 0:de,onKeyDown:d?void 0:fe,placeholder:p?"":oe,readOnly:d,ref:E,required:$,role:"combobox",spellCheck:"off",type:"text",value:s})),o.default.createElement(_.Flex,null,(p||s)&&o.default.createElement(N.IconBox,{id:`${i}-clear`,"aria-label":W,disabled:d,paddingLeft:3,as:"button",onClick:ge,type:"button"},o.default.createElement(H.Cross,null)),o.default.createElement(N.CaretBox,{disabled:d,paddingLeft:3,"aria-hidden":!0,as:"button",onClick:ye,tabIndex:-1,type:"button"},o.default.createElement(H.CarretDown,null)))),o.default.createElement(ke.FieldHint,null),o.default.createElement(qe.FieldError,null)),m&&o.default.createElement(Se.Popover,{id:`${i}-popover`,source:D,spacing:4,fullWidth:!0,intersectionId:`${i}-listbox-popover-intersection`,onReachEnd:J&&!O?te:void 0},o.default.createElement("div",{role:"listbox",ref:ie,id:`${i}-listbox`,"aria-labelledby":h?ce:void 0},(Boolean(u.length)||x)&&o.default.createElement(o.default.Fragment,null,me,Ce()&&x&&o.default.createElement(ve.ComboboxOption,{isSelected:c===u.length,ref:t=>{c===u.length&&(v.current=t)},onMouseDown:K,onClick:()=>j(),taindex:0},G(s))),!u.length&&!x&&!O&&o.default.createElement(Ee.Box,{paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2,ref:v},o.default.createElement(U.Typography,{textColor:"neutral800"},Z(s))),O&&o.default.createElement(_.Flex,{justifyContent:"center",alignItems:"center",paddingTop:2,paddingBottom:2},o.default.createElement(je.Loader,{small:!0},Y)))))},L=r=>o.default.createElement(C,{...r,creatable:!0});C.defaultProps={"aria-label":void 0,clearLabel:"clear",creatable:!1,createMessage:r=>`Create "${r}"`,disabled:!1,error:void 0,hasMoreItems:!1,hint:void 0,id:void 0,label:void 0,loading:!1,loadingMessage:"Loading content...",noOptionsMessage:()=>"No results found",onClear:void 0,onCreateOption:void 0,onInputChange:void 0,onLoadMore:void 0,placeholder:"Select or enter a value",value:void 0};L.defaultProps=C.defaultProps;C.propTypes={"aria-label":e.default.string,children:e.default.oneOfType([e.default.arrayOf(e.default.node),e.default.node]),clearLabel:e.default.string,creatable:e.default.bool,createMessage:e.default.func,disabled:e.default.bool,error:e.default.string,hasMoreItems:e.default.bool,id:e.default.string,hint:e.default.oneOfType([e.default.string,e.default.node,e.default.arrayOf(e.default.node)]),label:e.default.string,labelAction:e.default.element,loading:e.default.bool,loadingMessage:e.default.string,noOptionsMessage:e.default.func,onChange:e.default.func.isRequired,onClear:e.default.func,onCreateOption:e.default.func,onInputChange:e.default.func,onLoadMore:e.default.func,placeholder:e.default.string,value:e.default.string};L.propTypes={...C.propTypes,onCreateOption:e.default.func.isRequired};exports.Combobox=C;exports.CreatableCombobox=L;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),_=require("@strapi/icons"),he=require("prop-types"),ve=require("./ComboboxOption.cjs"),O=require("./components.cjs"),l=require("./utils.cjs"),Ee=require("../Box/Box.cjs"),Fe=require("../Field/Field.cjs"),Ie=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const Me=require("../Field/FieldHint.cjs"),Oe=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const R=require("../Flex/Flex.cjs"),qe=require("../helpers/keyboardKeys.cjs"),je=require("../hooks/useId.cjs"),ke=require("../Loader/Loader.cjs"),Le=require("../Popover/Popover.cjs"),N=require("../Select/components.cjs"),U=require("../Typography/Typography.cjs"),Re=require("../VisuallyHidden/VisuallyHidden.cjs"),z=r=>r&&typeof r=="object"&&"default"in r?r:{default:r},o=z(a),e=z(he),C=({children:r,clearLabel:W,creatable:x,createMessage:G,disabled:d,error:F,hasMoreItems:J,hint:q,id:Q,label:h,labelAction:X,loading:j,loadingMessage:Y,noOptionsMessage:Z,onChange:A,onClear:T,onCreateOption:ee,onInputChange:$,onLoadMore:te,placeholder:oe,required:w,value:p,...ne})=>{const ae=()=>r.find(t=>t.props?.value.toLowerCase()===p.toLowerCase()).props?.children,[c,B]=a.useState(0),[re,le]=a.useState(null),[u,D]=a.useState(r),[m,ie]=a.useState(!1),[i,I]=a.useState(""),v=a.useRef(),M=a.useRef(!1),E=a.useRef(),P=a.useRef(),se=a.useRef(),V=a.useRef(!0),s=je.useId(Q),ce=`${s}-label`;if(!h&&!ne["aria-label"])throw new Error('The Combobox component needs a "label" or an "aria-label" props');a.useEffect(()=>{D(l.filterOptions(r,i))},[i,r]),a.useEffect(()=>{m&&v.current&&l.maintainScrollVisibility(v.current)},[c,m]),a.useLayoutEffect(()=>{V.current&&(V.current=!1)},[p]);const ue=m?`${s}-${c}`:"",K=()=>{A(null),I("")},de=t=>{$&&$(t);const n=E.current.value;D(l.filterOptions(r,n)),B(0),le(null),i!==n&&I(n),m||b(!0,!1)},fe=t=>{const{key:n}=t,f=x&&i?u.length:u.length-1,y=l.getActionFromKey(n,m);switch(p&&!i&&n===qe.KeyboardKeys.BACKSPACE&&K(),y){case l.MenuActions.Next:{if(c===f){g(0);break}g(l.getUpdatedIndex(c,f,y));break}case l.MenuActions.Previous:{if(c===0){g(f);break}g(l.getUpdatedIndex(c,f,y));break}case l.MenuActions.Last:case l.MenuActions.First:{if(c===f){g(0);break}g(l.getUpdatedIndex(c,f,y));break}case l.MenuActions.CloseSelect:t.preventDefault(),k(c);break;case l.MenuActions.Close:t.preventDefault(),b(!1);break;case l.MenuActions.Open:b(!0);break}},pe=t=>{if(t.preventDefault(),p&&!M.current&&I(""),M.current){M.current=!1;return}b(!1,!1)},g=t=>{B(t)},be=t=>{g(t),k(t)},H=()=>{M.current=!0},k=t=>{const n=u[t];if(I(""),n){A(n.props.value),b(!1);return}x&&(ee(i),b(!1))},b=(t,n=!0)=>{ie(t),n&&E.current.focus()},me=a.Children.toArray(u).map((t,n)=>{const f=c===n;return a.cloneElement(t,{id:`${s}-${n}`,"aria-selected":re===n,"aria-posinset":n+1,"aria-setsize":a.Children.toArray(u).length,ref(y){f&&(v.current=y)},onClick:()=>be(n),onMouseDown:H,isSelected:f})}),ge=()=>{E.current.focus(),T&&T(),K()},ye=()=>{E.current.focus(),b(!0)},Ce=()=>{const t=u.findIndex(n=>n.props?.children===i);return i&&t===-1},xe=t=>{t.preventDefault(),b(t,!0)};let L;return F?L=`${s}-error`:q&&(L=`${s}-hint`),o.default.createElement(Fe.Field,{hint:q,error:F,id:s,required:w},o.default.createElement(Re.VisuallyHidden,{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text"},p),o.default.createElement(R.Flex,{direction:"column",alignItems:"stretch",gap:h||q||F?1:0},h&&o.default.createElement(Ie.FieldLabel,{action:X},h),o.default.createElement(O.MainRow,{ref:P,$disabled:d,hasError:F},o.default.createElement(O.InputContainer,{wrap:"wrap"},!i&&p&&o.default.createElement(O.ValueContainer,{id:`${s}-selected-value`},o.default.createElement(U.Typography,null,ae())),o.default.createElement(O.Input,{"aria-activedescendant":ue,"aria-autocomplete":"list","aria-controls":`${s}-listbox`,"aria-disabled":d,"aria-expanded":m,"aria-haspopup":"listbox","aria-describedby":L,autoComplete:"off",autoCorrect:"off",id:s,onBlur:d?void 0:pe,onClick:d?void 0:xe,onInput:d?void 0:de,onKeyDown:d?void 0:fe,placeholder:p?"":oe,readOnly:d,ref:E,required:w,role:"combobox",spellCheck:"off",type:"text",value:i})),o.default.createElement(R.Flex,null,(p||i)&&o.default.createElement(N.IconBox,{id:`${s}-clear`,"aria-label":W,disabled:d,paddingLeft:3,as:"button",onClick:ge,type:"button"},o.default.createElement(_.Cross,null)),o.default.createElement(N.CaretBox,{disabled:d,paddingLeft:3,"aria-hidden":!0,as:"button",onClick:ye,tabIndex:-1,type:"button"},o.default.createElement(_.CarretDown,null)))),o.default.createElement(Me.FieldHint,null),o.default.createElement(Oe.FieldError,null)),m&&o.default.createElement(Le.Popover,{id:`${s}-popover`,source:P,spacing:4,fullWidth:!0,intersectionId:`${s}-listbox-popover-intersection`,onReachEnd:J&&!j?te:void 0},o.default.createElement("div",{role:"listbox",ref:se,id:`${s}-listbox`,"aria-labelledby":h?ce:void 0},(Boolean(u.length)||x)&&o.default.createElement(o.default.Fragment,null,me,Ce()&&x&&o.default.createElement(ve.ComboboxOption,{isSelected:c===u.length,ref:t=>{c===u.length&&(v.current=t)},onMouseDown:H,onClick:()=>k(),taindex:0},G(i))),!u.length&&!x&&!j&&o.default.createElement(Ee.Box,{paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2,ref:v},o.default.createElement(U.Typography,{textColor:"neutral800"},Z(i))),j&&o.default.createElement(R.Flex,{justifyContent:"center",alignItems:"center",paddingTop:2,paddingBottom:2},o.default.createElement(ke.Loader,{small:!0},Y)))))},S=r=>o.default.createElement(C,{...r,creatable:!0});C.defaultProps={"aria-label":void 0,clearLabel:"clear",creatable:!1,createMessage:r=>`Create "${r}"`,disabled:!1,error:void 0,hasMoreItems:!1,hint:void 0,id:void 0,label:void 0,loading:!1,loadingMessage:"Loading content...",noOptionsMessage:()=>"No results found",onClear:void 0,onCreateOption:void 0,onInputChange:void 0,onLoadMore:void 0,placeholder:"Select or enter a value",value:void 0};S.defaultProps=C.defaultProps;C.propTypes={"aria-label":e.default.string,children:e.default.oneOfType([e.default.arrayOf(e.default.node),e.default.node]),clearLabel:e.default.string,creatable:e.default.bool,createMessage:e.default.func,disabled:e.default.bool,error:e.default.string,hasMoreItems:e.default.bool,id:e.default.string,hint:e.default.oneOfType([e.default.string,e.default.node,e.default.arrayOf(e.default.node)]),label:e.default.string,labelAction:e.default.element,loading:e.default.bool,loadingMessage:e.default.string,noOptionsMessage:e.default.func,onChange:e.default.func.isRequired,onClear:e.default.func,onCreateOption:e.default.func,onInputChange:e.default.func,onLoadMore:e.default.func,placeholder:e.default.string,value:e.default.string};S.propTypes={...C.propTypes,onCreateOption:e.default.func.isRequired};exports.Combobox=C;exports.CreatableCombobox=S;
@@ -1,33 +1,32 @@
1
- import o, { useState as y, useRef as C, useEffect as U, useLayoutEffect as xe, Children as _, cloneElement as ye } from "react";
2
- import { Cross as Ie, CarretDown as ke } from "@strapi/icons";
1
+ import o, { useState as y, useRef as C, useEffect as _, useLayoutEffect as xe, Children as j, cloneElement as ye } from "react";
2
+ import { Cross as Ie, CarretDown as Oe } from "@strapi/icons";
3
3
  import e from "prop-types";
4
- import { ComboboxOption as Oe } from "./ComboboxOption.js";
4
+ import { ComboboxOption as ke } from "./ComboboxOption.js";
5
5
  import { MainRow as Me, InputContainer as $e, ValueContainer as we, Input as Le } from "./components.js";
6
- import { filterOptions as j, maintainScrollVisibility as De, getActionFromKey as Re, MenuActions as b, getUpdatedIndex as R } from "./utils.js";
7
- import { Box as Se } from "../Box/Box.js";
8
- import { Field as Be } from "../Field/Field.js";
9
- import { FieldLabel as Fe } from "../Field/FieldLabel.js";
6
+ import { filterOptions as q, maintainScrollVisibility as De, getActionFromKey as Re, MenuActions as b, getUpdatedIndex as R } from "./utils.js";
7
+ import { Box as Be } from "../Box/Box.js";
8
+ import { Field as Fe } from "../Field/Field.js";
9
+ import { FieldLabel as Se } from "../Field/FieldLabel.js";
10
10
  import "../Field/FieldInput.js";
11
11
  import { FieldHint as Te } from "../Field/FieldHint.js";
12
12
  import { FieldError as Ae } from "../Field/FieldError.js";
13
13
  import "../Field/FieldContext.js";
14
14
  import "../Field/FieldAction.js";
15
- import { Flex as q } from "../Flex/Flex.js";
15
+ import { Flex as B } from "../Flex/Flex.js";
16
16
  import { KeyboardKeys as Pe } from "../helpers/keyboardKeys.js";
17
- import { useId as Ve } from "../helpers/useId.js";
17
+ import { useId as Ve } from "../hooks/useId.js";
18
18
  import { Loader as Ke } from "../Loader/Loader.js";
19
19
  import { Popover as Ne } from "../Popover/Popover.js";
20
20
  import { IconBox as He, CaretBox as Ue } from "../Select/components.js";
21
- import { Stack as _e } from "../Stack/Stack.js";
22
21
  import { Typography as z } from "../Typography/Typography.js";
23
- import { VisuallyHidden as je } from "../VisuallyHidden/VisuallyHidden.js";
22
+ import { VisuallyHidden as _e } from "../VisuallyHidden/VisuallyHidden.js";
24
23
  const I = ({
25
24
  children: s,
26
25
  clearLabel: G,
27
26
  creatable: h,
28
27
  createMessage: J,
29
28
  disabled: c,
30
- error: k,
29
+ error: O,
31
30
  hasMoreItems: Q,
32
31
  hint: $,
33
32
  id: X,
@@ -36,35 +35,35 @@ const I = ({
36
35
  loading: w,
37
36
  loadingMessage: Z,
38
37
  noOptionsMessage: ee,
39
- onChange: S,
40
- onClear: B,
38
+ onChange: F,
39
+ onClear: S,
41
40
  onCreateOption: te,
42
- onInputChange: F,
41
+ onInputChange: T,
43
42
  onLoadMore: oe,
44
- placeholder: re,
45
- required: T,
43
+ placeholder: ne,
44
+ required: A,
46
45
  value: d,
47
- ...ne
46
+ ...re
48
47
  }) => {
49
- const ae = () => s.find((t) => t.props?.value.toLowerCase() === d.toLowerCase()).props?.children, [i, A] = y(0), [ie, le] = y(null), [l, P] = y(s), [u, se] = y(!1), [n, O] = y(""), v = C(), M = C(!1), x = C(), V = C(), ce = C(), K = C(!0), a = Ve(X), pe = `${a}-label`;
50
- if (!E && !ne["aria-label"])
48
+ const ae = () => s.find((t) => t.props?.value.toLowerCase() === d.toLowerCase()).props?.children, [i, P] = y(0), [ie, le] = y(null), [l, V] = y(s), [u, se] = y(!1), [r, k] = y(""), v = C(), M = C(!1), x = C(), K = C(), ce = C(), N = C(!0), a = Ve(X), pe = `${a}-label`;
49
+ if (!E && !re["aria-label"])
51
50
  throw new Error('The Combobox component needs a "label" or an "aria-label" props');
52
- U(() => {
53
- P(j(s, n));
54
- }, [n, s]), U(() => {
51
+ _(() => {
52
+ V(q(s, r));
53
+ }, [r, s]), _(() => {
55
54
  u && v.current && De(v.current);
56
55
  }, [i, u]), xe(() => {
57
- K.current && (K.current = !1);
56
+ N.current && (N.current = !1);
58
57
  }, [d]);
59
- const de = u ? `${a}-${i}` : "", N = () => {
60
- S(null), O("");
58
+ const de = u ? `${a}-${i}` : "", H = () => {
59
+ F(null), k("");
61
60
  }, fe = (t) => {
62
- F && F(t);
63
- const r = x.current.value;
64
- P(j(s, r)), A(0), le(null), n !== r && O(r), u || f(!0, !1);
61
+ T && T(t);
62
+ const n = x.current.value;
63
+ V(q(s, n)), P(0), le(null), r !== n && k(n), u || f(!0, !1);
65
64
  }, ue = (t) => {
66
- const { key: r } = t, p = h && n ? l.length : l.length - 1, g = Re(r, u);
67
- switch (d && !n && r === Pe.BACKSPACE && N(), g) {
65
+ const { key: n } = t, p = h && r ? l.length : l.length - 1, g = Re(n, u);
66
+ switch (d && !r && n === Pe.BACKSPACE && H(), g) {
68
67
  case b.Next: {
69
68
  if (i === p) {
70
69
  m(0);
@@ -101,52 +100,52 @@ const I = ({
101
100
  break;
102
101
  }
103
102
  }, me = (t) => {
104
- if (t.preventDefault(), d && !M.current && O(""), M.current) {
103
+ if (t.preventDefault(), d && !M.current && k(""), M.current) {
105
104
  M.current = !1;
106
105
  return;
107
106
  }
108
107
  f(!1, !1);
109
108
  }, m = (t) => {
110
- A(t);
109
+ P(t);
111
110
  }, be = (t) => {
112
111
  m(t), L(t);
113
- }, H = () => {
112
+ }, U = () => {
114
113
  M.current = !0;
115
114
  }, L = (t) => {
116
- const r = l[t];
117
- if (O(""), r) {
118
- S(r.props.value), f(!1);
115
+ const n = l[t];
116
+ if (k(""), n) {
117
+ F(n.props.value), f(!1);
119
118
  return;
120
119
  }
121
- h && (te(n), f(!1));
122
- }, f = (t, r = !0) => {
123
- se(t), r && x.current.focus();
124
- }, ge = _.toArray(l).map((t, r) => {
125
- const p = i === r;
120
+ h && (te(r), f(!1));
121
+ }, f = (t, n = !0) => {
122
+ se(t), n && x.current.focus();
123
+ }, ge = j.toArray(l).map((t, n) => {
124
+ const p = i === n;
126
125
  return ye(t, {
127
- id: `${a}-${r}`,
128
- "aria-selected": ie === r,
129
- "aria-posinset": r + 1,
130
- "aria-setsize": _.toArray(l).length,
126
+ id: `${a}-${n}`,
127
+ "aria-selected": ie === n,
128
+ "aria-posinset": n + 1,
129
+ "aria-setsize": j.toArray(l).length,
131
130
  ref(g) {
132
131
  p && (v.current = g);
133
132
  },
134
- onClick: () => be(r),
135
- onMouseDown: H,
133
+ onClick: () => be(n),
134
+ onMouseDown: U,
136
135
  isSelected: p
137
136
  });
138
137
  }), Ce = () => {
139
- x.current.focus(), B && B(), N();
138
+ x.current.focus(), S && S(), H();
140
139
  }, he = () => {
141
140
  x.current.focus(), f(!0);
142
141
  }, Ee = () => {
143
- const t = l.findIndex((r) => r.props?.children === n);
144
- return n && t === -1;
142
+ const t = l.findIndex((n) => n.props?.children === r);
143
+ return r && t === -1;
145
144
  }, ve = (t) => {
146
145
  t.preventDefault(), f(t, !0);
147
146
  };
148
147
  let D;
149
- return k ? D = `${a}-error` : $ && (D = `${a}-hint`), /* @__PURE__ */ o.createElement(Be, { hint: $, error: k, id: a, required: T }, /* @__PURE__ */ o.createElement(je, { "aria-live": "polite", "aria-atomic": "false", "aria-relevant": "additions text" }, d), /* @__PURE__ */ o.createElement(_e, { spacing: E || $ || k ? 1 : 0 }, E && /* @__PURE__ */ o.createElement(Fe, { action: Y }, E), /* @__PURE__ */ o.createElement(Me, { ref: V, $disabled: c, hasError: k }, /* @__PURE__ */ o.createElement($e, { wrap: "wrap" }, !n && d && /* @__PURE__ */ o.createElement(we, { id: `${a}-selected-value` }, /* @__PURE__ */ o.createElement(z, null, ae())), /* @__PURE__ */ o.createElement(
148
+ return O ? D = `${a}-error` : $ && (D = `${a}-hint`), /* @__PURE__ */ o.createElement(Fe, { hint: $, error: O, id: a, required: A }, /* @__PURE__ */ o.createElement(_e, { "aria-live": "polite", "aria-atomic": "false", "aria-relevant": "additions text" }, d), /* @__PURE__ */ o.createElement(B, { direction: "column", alignItems: "stretch", gap: E || $ || O ? 1 : 0 }, E && /* @__PURE__ */ o.createElement(Se, { action: Y }, E), /* @__PURE__ */ o.createElement(Me, { ref: K, $disabled: c, hasError: O }, /* @__PURE__ */ o.createElement($e, { wrap: "wrap" }, !r && d && /* @__PURE__ */ o.createElement(we, { id: `${a}-selected-value` }, /* @__PURE__ */ o.createElement(z, null, ae())), /* @__PURE__ */ o.createElement(
150
149
  Le,
151
150
  {
152
151
  "aria-activedescendant": de,
@@ -163,16 +162,16 @@ const I = ({
163
162
  onClick: c ? void 0 : ve,
164
163
  onInput: c ? void 0 : fe,
165
164
  onKeyDown: c ? void 0 : ue,
166
- placeholder: d ? "" : re,
165
+ placeholder: d ? "" : ne,
167
166
  readOnly: c,
168
167
  ref: x,
169
- required: T,
168
+ required: A,
170
169
  role: "combobox",
171
170
  spellCheck: "off",
172
171
  type: "text",
173
- value: n
172
+ value: r
174
173
  }
175
- )), /* @__PURE__ */ o.createElement(q, null, (d || n) && /* @__PURE__ */ o.createElement(
174
+ )), /* @__PURE__ */ o.createElement(B, null, (d || r) && /* @__PURE__ */ o.createElement(
176
175
  He,
177
176
  {
178
177
  id: `${a}-clear`,
@@ -195,12 +194,12 @@ const I = ({
195
194
  tabIndex: -1,
196
195
  type: "button"
197
196
  },
198
- /* @__PURE__ */ o.createElement(ke, null)
197
+ /* @__PURE__ */ o.createElement(Oe, null)
199
198
  ))), /* @__PURE__ */ o.createElement(Te, null), /* @__PURE__ */ o.createElement(Ae, null)), u && /* @__PURE__ */ o.createElement(
200
199
  Ne,
201
200
  {
202
201
  id: `${a}-popover`,
203
- source: V,
202
+ source: K,
204
203
  spacing: 4,
205
204
  fullWidth: !0,
206
205
  intersectionId: `${a}-listbox-popover-intersection`,
@@ -215,20 +214,20 @@ const I = ({
215
214
  "aria-labelledby": E ? pe : void 0
216
215
  },
217
216
  (Boolean(l.length) || h) && /* @__PURE__ */ o.createElement(o.Fragment, null, ge, Ee() && h && /* @__PURE__ */ o.createElement(
218
- Oe,
217
+ ke,
219
218
  {
220
219
  isSelected: i === l.length,
221
220
  ref: (t) => {
222
221
  i === l.length && (v.current = t);
223
222
  },
224
- onMouseDown: H,
223
+ onMouseDown: U,
225
224
  onClick: () => L(),
226
225
  taindex: 0
227
226
  },
228
- J(n)
227
+ J(r)
229
228
  )),
230
- !l.length && !h && !w && /* @__PURE__ */ o.createElement(Se, { paddingLeft: 4, paddingRight: 4, paddingTop: 2, paddingBottom: 2, ref: v }, /* @__PURE__ */ o.createElement(z, { textColor: "neutral800" }, ee(n))),
231
- w && /* @__PURE__ */ o.createElement(q, { justifyContent: "center", alignItems: "center", paddingTop: 2, paddingBottom: 2 }, /* @__PURE__ */ o.createElement(Ke, { small: !0 }, Z))
229
+ !l.length && !h && !w && /* @__PURE__ */ o.createElement(Be, { paddingLeft: 4, paddingRight: 4, paddingTop: 2, paddingBottom: 2, ref: v }, /* @__PURE__ */ o.createElement(z, { textColor: "neutral800" }, ee(r))),
230
+ w && /* @__PURE__ */ o.createElement(B, { justifyContent: "center", alignItems: "center", paddingTop: 2, paddingBottom: 2 }, /* @__PURE__ */ o.createElement(Ke, { small: !0 }, Z))
232
231
  )
233
232
  ));
234
233
  }, W = (s) => /* @__PURE__ */ o.createElement(I, { ...s, creatable: !0 });
@@ -1 +1,8 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react"),v=require("@strapi/icons"),z=require("prop-types"),u=require("./components.cjs"),I=require("./DatePickerCalendar.cjs"),C=require("./utils/formatDate.cjs"),S=require("../helpers/getDefaultLocale.cjs"),B=require("../TextInput/TextInput.cjs"),M=require("../themes/sizes.cjs"),h=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},a=h(o),e=h(z),f=({ariaLabel:t,initialDate:k,selectedDate:n,onChange:P,label:i,locale:q,selectedDateLabel:y,onClear:d,clearLabel:R,disabled:l,id:j,minDate:E,maxDate:T,...x})=>{const[p,c]=o.useState(!1),r=o.useRef(null),D=o.useRef(null),m=q||S.getDefaultLocale(),b=n?C.formatDate(n,m):"",g=()=>{l||c(s=>!s)},L=()=>{l||(d(),D.current.focus())},O=s=>{P(s),c(!1)},_=()=>{c(!1)};return a.default.createElement(u.DatePickerWrapper,{bold:p},a.default.createElement(B.TextInput,{ref:r,onClick:g,onChange:()=>{},value:b,startAction:a.default.createElement(u.DatePickerButton,{ref:D,onClick:g,"aria-label":n?y(C.formatDate(n,m)):i||t,type:"button","aria-disabled":l},a.default.createElement(v.Calendar,{"aria-hidden":!0})),endAction:d&&b?a.default.createElement(u.IconBox,{as:"button",onClick:L,"aria-label":R,"aria-disabled":l},a.default.createElement(v.Cross,null)):void 0,"aria-autocomplete":"none",label:i,"aria-label":t,disabled:l,id:j,...x}),r.current&&r.current.inputWrapperRef&&p&&a.default.createElement(I.DatePickerCalendar,{selectedDate:n,initialDate:k,onChange:O,onEscape:_,popoverSource:r.current.inputWrapperRef,label:i||t,minDate:E,maxDate:T}))};f.defaultProps={ariaLabel:void 0,clearLabel:void 0,disabled:!1,id:void 0,label:void 0,locale:void 0,initialDate:new Date,minDate:void 0,maxDate:void 0,onClear:void 0,placeholder:void 0,selectedDate:void 0,size:"M"};f.propTypes={ariaLabel:e.default.string,clearLabel:e.default.string,disabled:e.default.bool,id:e.default.string,initialDate:e.default.instanceOf(Date),label:e.default.string,locale:e.default.string,maxDate:e.default.instanceOf(Date),minDate:e.default.instanceOf(Date),onChange:e.default.func.isRequired,onClear:e.default.func,placeholder:e.default.string,selectedDate:e.default.instanceOf(Date),selectedDateLabel:e.default.func.isRequired,size:e.default.oneOf(Object.keys(M.sizes.input))};exports.DatePicker=f;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),p=require("react"),f=require("@strapi/icons"),b=require("styled-components"),k=require("./components.cjs"),P=require("./DatePickerCalendar.cjs"),R=require("./utils/formatDate.cjs");require("../Field/Field.cjs");require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");require("../Field/FieldContext.cjs");require("../Typography/Typography.cjs");const T=require("../Field/FieldAction.cjs"),v=require("../helpers/getDefaultLocale.cjs"),A=require("../TextInput/TextInput.cjs"),I=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},L=I(b),S=({ariaLabel:e,onClear:i,clearLabel:j="Clear",initialDate:D,locale:h,maxDate:m,minDate:q,onChange:l,selectedDate:a,disabled:n=!1,...x})=>{const[o,c]=p.useState(!1),r=p.useRef(null),u=h||v.getDefaultLocale(),d=a?R.formatDate(a,u):"",g=()=>{n||c(s=>!s)},y=()=>{n||i&&(i(),r.current.inputWrapperRef.current.focus())},F=s=>{l&&l(s),c(!1)},C=()=>{c(!1)};return t.jsxs(k.DatePickerWrapper,{bold:o,children:[t.jsx(A.TextInput,{ref:r,onClick:g,onChange:()=>{},value:d,startAction:t.jsx(f.Calendar,{"aria-hidden":!0}),endAction:i&&d?t.jsx(T.FieldAction,{label:j,onClick:y,"aria-disabled":n||void 0,children:t.jsx(_,{})}):void 0,"aria-autocomplete":"none","aria-label":e,disabled:n,type:"text",...x}),r.current&&r.current.inputWrapperRef&&o&&t.jsx(P.DatePickerCalendar,{selectedDate:a,initialDate:D,onChange:F,onEscape:C,locale:u,popoverSource:r.current.inputWrapperRef,minDate:q,maxDate:m})]})},_=L.default(f.Cross)`
2
+ height: ${11/16}rem;
3
+ width: ${11/16}rem;
4
+
5
+ path {
6
+ fill: ${({theme:e})=>e.colors.neutral600};
7
+ }
8
+ `;exports.DatePicker=S;
@@ -1,110 +1,83 @@
1
- import t, { useState as B, useRef as D } from "react";
2
- import { Calendar as T, Cross as W } from "@strapi/icons";
3
- import e from "prop-types";
4
- import { DatePickerWrapper as q, DatePickerButton as A, IconBox as I } from "./components.js";
5
- import { DatePickerCalendar as S } from "./DatePickerCalendar.js";
6
- import { formatDate as b } from "./utils/formatDate.js";
1
+ import { jsxs as R, jsx as r } from "react/jsx-runtime";
2
+ import { useState as y, useRef as W } from "react";
3
+ import { Cross as v, Calendar as A } from "@strapi/icons";
4
+ import P from "styled-components";
5
+ import { DatePickerWrapper as S } from "./components.js";
6
+ import { DatePickerCalendar as $ } from "./DatePickerCalendar.js";
7
+ import { formatDate as j } from "./utils/formatDate.js";
8
+ import "../Field/Field.js";
9
+ import "../Field/FieldLabel.js";
10
+ import "../Field/FieldInput.js";
11
+ import "../Field/FieldContext.js";
12
+ import "../Typography/Typography.js";
13
+ import { FieldAction as E } from "../Field/FieldAction.js";
7
14
  import { getDefaultLocale as V } from "../helpers/getDefaultLocale.js";
8
- import { TextInput as _ } from "../TextInput/TextInput.js";
9
- import { sizes as j } from "../themes/sizes.js";
10
- const v = ({
15
+ import { TextInput as w } from "../TextInput/TextInput.js";
16
+ const X = ({
11
17
  ariaLabel: o,
12
- initialDate: g,
18
+ onClear: i,
19
+ clearLabel: s = "Clear",
20
+ initialDate: u,
21
+ locale: d,
22
+ maxDate: h,
23
+ minDate: C,
24
+ onChange: p,
13
25
  selectedDate: a,
14
- onChange: C,
15
- label: i,
16
- locale: h,
17
- selectedDateLabel: k,
18
- onClear: s,
19
- clearLabel: E,
20
- disabled: r,
21
- id: R,
22
- minDate: P,
23
- maxDate: O,
24
- ...x
26
+ disabled: t = !1,
27
+ ...D
25
28
  }) => {
26
- const [f, l] = B(!1), n = D(null), p = D(null), u = h || V(), m = a ? b(a, u) : "", d = () => {
27
- r || l((c) => !c);
28
- }, y = () => {
29
- r || (s(), p.current.focus());
30
- }, L = (c) => {
31
- C(c), l(!1);
32
- }, z = () => {
33
- l(!1);
29
+ const [c, n] = y(!1), e = W(null), m = d || V(), f = a ? j(a, m) : "", g = () => {
30
+ t || n((l) => !l);
31
+ }, x = () => {
32
+ t || i && (i(), e.current.inputWrapperRef.current.focus());
33
+ }, b = (l) => {
34
+ p && p(l), n(!1);
35
+ }, k = () => {
36
+ n(!1);
34
37
  };
35
- return /* @__PURE__ */ t.createElement(q, { bold: f }, /* @__PURE__ */ t.createElement(
36
- _,
37
- {
38
- ref: n,
39
- onClick: d,
38
+ return R(S, {
39
+ bold: c,
40
+ children: [r(w, {
41
+ ref: e,
42
+ onClick: g,
40
43
  onChange: () => {
41
44
  },
42
- value: m,
43
- startAction: /* @__PURE__ */ t.createElement(
44
- A,
45
- {
46
- ref: p,
47
- onClick: d,
48
- "aria-label": a ? k(b(a, u)) : i || o,
49
- type: "button",
50
- "aria-disabled": r
51
- },
52
- /* @__PURE__ */ t.createElement(T, { "aria-hidden": !0 })
53
- ),
54
- endAction: s && m ? /* @__PURE__ */ t.createElement(I, { as: "button", onClick: y, "aria-label": E, "aria-disabled": r }, /* @__PURE__ */ t.createElement(W, null)) : void 0,
45
+ value: f,
46
+ startAction: r(A, {
47
+ "aria-hidden": !0
48
+ }),
49
+ endAction: i && f ? r(E, {
50
+ label: s,
51
+ onClick: x,
52
+ "aria-disabled": t || void 0,
53
+ children: r(F, {})
54
+ }) : void 0,
55
55
  "aria-autocomplete": "none",
56
- label: i,
57
56
  "aria-label": o,
58
- disabled: r,
59
- id: R,
60
- ...x
61
- }
62
- ), n.current && n.current.inputWrapperRef && f && /* @__PURE__ */ t.createElement(
63
- S,
64
- {
57
+ disabled: t,
58
+ type: "text",
59
+ ...D
60
+ }), e.current && e.current.inputWrapperRef && c && r($, {
65
61
  selectedDate: a,
66
- initialDate: g,
67
- onChange: L,
68
- onEscape: z,
69
- popoverSource: n.current.inputWrapperRef,
70
- label: i || o,
71
- minDate: P,
72
- maxDate: O
73
- }
74
- ));
75
- };
76
- v.defaultProps = {
77
- ariaLabel: void 0,
78
- clearLabel: void 0,
79
- disabled: !1,
80
- id: void 0,
81
- label: void 0,
82
- locale: void 0,
83
- initialDate: new Date(),
84
- minDate: void 0,
85
- maxDate: void 0,
86
- onClear: void 0,
87
- placeholder: void 0,
88
- selectedDate: void 0,
89
- size: "M"
90
- };
91
- v.propTypes = {
92
- ariaLabel: e.string,
93
- clearLabel: e.string,
94
- disabled: e.bool,
95
- id: e.string,
96
- initialDate: e.instanceOf(Date),
97
- label: e.string,
98
- locale: e.string,
99
- maxDate: e.instanceOf(Date),
100
- minDate: e.instanceOf(Date),
101
- onChange: e.func.isRequired,
102
- onClear: e.func,
103
- placeholder: e.string,
104
- selectedDate: e.instanceOf(Date),
105
- selectedDateLabel: e.func.isRequired,
106
- size: e.oneOf(Object.keys(j.input))
107
- };
62
+ initialDate: u,
63
+ onChange: b,
64
+ onEscape: k,
65
+ locale: m,
66
+ popoverSource: e.current.inputWrapperRef,
67
+ minDate: C,
68
+ maxDate: h
69
+ })]
70
+ });
71
+ }, F = P(v)`
72
+ height: ${11 / 16}rem;
73
+ width: ${11 / 16}rem;
74
+
75
+ path {
76
+ fill: ${({
77
+ theme: o
78
+ }) => o.colors.neutral600};
79
+ }
80
+ `;
108
81
  export {
109
- v as DatePicker
82
+ X as DatePicker
110
83
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("react"),W=require("prop-types"),H=require("./components.cjs"),V=require("./DatePickerTd.cjs"),r=require("./DatePickerTh.cjs"),L=require("./utils/getDayOfWeek.cjs"),$=require("./utils/getMonths.cjs"),I=require("./utils/generateWeeks.cjs"),z=require("./utils/getYears.cjs"),A=require("./utils/formatDate.cjs"),d=require("../Box/Box.cjs"),G=require("../Flex/Flex.cjs"),J=require("../FocusTrap/FocusTrap.cjs"),K=require("../RawTable/RawTable.cjs");require("../RawTable/RawCell.cjs");const N=require("../RawTable/RawThead.cjs"),Q=require("../RawTable/RawTbody.cjs"),D=require("../RawTable/RawTr.cjs"),i=require("../SimpleMenu/SimpleMenu.cjs"),U=require("../VisuallyHidden/VisuallyHidden.cjs"),T=a=>a&&typeof a=="object"&&"default"in a?a:{default:a},e=T(f),l=T(W),m=({selectedDate:a,initialDate:g,popoverSource:E,onChange:R,label:h,minDate:k,maxDate:w,onEscape:q})=>{const[c,s]=f.useState(g),[p,y,j]=I.generateWeeks(c,a),{sun:P,mon:b,tue:M,wed:x,thu:C,fri:F,sat:O}=L.getDayOfWeek(),o=$.getMonths(),S=z.getYears(k,w);f.useEffect(()=>{a&&s(a)},[a]);const v=t=>{const n=new Date(c);n.setMonth(o.indexOf(t)),s(n)},B=t=>{const n=new Date(c);n.setFullYear(t),s(n)};return e.default.createElement(H.DatePickerPopover,{source:E,role:"dialog","aria-modal":"true","aria-label":h,spacing:4},e.default.createElement(J.FocusTrap,{onEscape:q},e.default.createElement(d.Box,{padding:4},e.default.createElement(d.Box,{paddingBottom:4,paddingLeft:2,paddingRight:2},e.default.createElement(G.Flex,null,e.default.createElement(i.SimpleMenu,{label:o[c.getMonth()]},o.map(t=>e.default.createElement(i.MenuItem,{key:t,onClick:()=>v(t)},t))),e.default.createElement(d.Box,{paddingLeft:2},e.default.createElement(i.SimpleMenu,{label:c.getFullYear()},S.map(t=>e.default.createElement(i.MenuItem,{key:t,onClick:()=>B(t)},t)))))),e.default.createElement(K.RawTable,{colCount:7,rowCount:p.length+1,initialCol:j,initialRow:y,role:"grid"},e.default.createElement(N.RawThead,null,e.default.createElement(D.RawTr,{"aria-rowindex":1},e.default.createElement(r.DatePickerTh,null,P),e.default.createElement(r.DatePickerTh,null,b),e.default.createElement(r.DatePickerTh,null,M),e.default.createElement(r.DatePickerTh,null,x),e.default.createElement(r.DatePickerTh,null,C),e.default.createElement(r.DatePickerTh,null,F),e.default.createElement(r.DatePickerTh,null,O))),e.default.createElement(Q.RawTbody,null,p.map((t,n)=>e.default.createElement(D.RawTr,{key:n},t.map(({date:u,outsideMonth:Y,isSelected:_})=>e.default.createElement(V.DatePickerTd,{key:`${u.getFullYear()}-${u.getMonth()+1}-${u.getDate()}`,outsideMonth:Y,onSelectDay:()=>R(u),isSelected:_},e.default.createElement("span",{"aria-hidden":!0},u.getDate()),e.default.createElement(U.VisuallyHidden,null,e.default.createElement("span",null,A.formatDate(u))))))))))))};m.defaultProps={selectedDate:void 0,initialDate:new Date,minDate:void 0,maxDate:void 0};m.propTypes={initialDate:l.default.instanceOf(Date),label:l.default.string.isRequired,maxDate:l.default.instanceOf(Date),minDate:l.default.instanceOf(Date),onChange:l.default.func.isRequired,onEscape:l.default.func.isRequired,popoverSource:l.default.shape({current:(typeof Element>"u"?l.default.any:l.default.instanceOf(Element)).isRequired}).isRequired,selectedDate:l.default.instanceOf(Date)};exports.DatePickerCalendar=m;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),T=require("react"),L=require("./components.cjs"),O=require("./DatePickerTd.cjs"),a=require("./DatePickerTh.cjs"),H=require("./utils/getDayOfWeek.cjs"),V=require("./utils/getMonths.cjs"),$=require("./utils/generateWeeks.cjs"),E=require("./utils/getYears.cjs"),I=require("./utils/formatDate.cjs"),h=require("../Box/Box.cjs"),_=require("../Flex/Flex.cjs"),z=require("../FocusTrap/FocusTrap.cjs"),A=require("../helpers/getDefaultLocale.cjs"),G=require("../RawTable/RawTable.cjs");require("../RawTable/RawTableContext.cjs");const J=require("../RawTable/RawThead.cjs"),K=require("../RawTable/RawTbody.cjs"),g=require("../RawTable/RawTr.cjs"),i=require("../SimpleMenu/SimpleMenu.cjs"),N=require("../VisuallyHidden/VisuallyHidden.cjs"),Q=({onEscape:s,popoverSource:l,...o})=>e.jsx(L.DatePickerPopover,{source:l,role:"dialog","aria-modal":"true",spacing:4,children:e.jsx(z.FocusTrap,{onEscape:s,children:e.jsx(D,{...o})})}),D=({selectedDate:s,initialDate:l=new Date,locale:o,onChange:j,minDate:p,maxDate:w})=>{const[c,d]=T.useState(l),[x,k,R]=$.generateWeeks(c,s),{sun:m,mon:q,tue:P,wed:f,thu:M,fri:b,sat:C}=H.getDayOfWeek(),u=V.getMonths(),y=E.getYears(p,w),F=o||A.getDefaultLocale();T.useEffect(()=>{s&&d(s)},[s]);const S=t=>{const r=new Date(c);r.setMonth(u.indexOf(t)),d(r)},B=t=>{const r=new Date(c);r.setFullYear(t),d(r)},Y=t=>()=>{j&&j(t)};return e.jsxs(h.Box,{padding:4,children:[e.jsx(h.Box,{paddingBottom:4,paddingLeft:2,paddingRight:2,children:e.jsxs(_.Flex,{children:[e.jsx(i.SimpleMenu,{label:u[c.getMonth()],children:u.map(t=>e.jsx(i.MenuItem,{onClick:()=>S(t),children:t},t))}),e.jsx(h.Box,{paddingLeft:2,children:e.jsx(i.SimpleMenu,{label:c.getFullYear(),children:y.map(t=>e.jsx(i.MenuItem,{onClick:()=>B(t),children:t},t))})})]})}),e.jsxs(G.RawTable,{colCount:7,rowCount:x.length+1,initialCol:R,initialRow:k,role:"grid",children:[e.jsx(J.RawThead,{children:e.jsxs(g.RawTr,{"aria-rowindex":1,children:[e.jsx(a.DatePickerTh,{children:m}),e.jsx(a.DatePickerTh,{children:q}),e.jsx(a.DatePickerTh,{children:P}),e.jsx(a.DatePickerTh,{children:f}),e.jsx(a.DatePickerTh,{children:M}),e.jsx(a.DatePickerTh,{children:b}),e.jsx(a.DatePickerTh,{children:C})]})}),e.jsx(K.RawTbody,{children:x.map((t,r)=>e.jsx(g.RawTr,{children:t.map(({date:n,outsideMonth:W,isSelected:v})=>e.jsxs(O.DatePickerTd,{outsideMonth:W,onSelectDay:Y(n),isSelected:v,children:[e.jsx("span",{"aria-hidden":!0,children:n.getDate()}),e.jsx(N.VisuallyHidden,{children:e.jsx("span",{children:I.formatDate(n,F)})})]},`${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`))},r))})]})]})};exports.DatePickerCalendar=Q;exports.DatePickerCalendarContent=D;