@strapi/design-system 1.6.0 → 1.6.2

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 (101) hide show
  1. package/dist/Accordion/Accordion.cjs +5 -5
  2. package/dist/Accordion/Accordion.js +24 -22
  3. package/dist/Avatar/Avatar.cjs +5 -16
  4. package/dist/Avatar/Avatar.js +44 -48
  5. package/dist/BaseRadio/BaseRadio.cjs +2 -2
  6. package/dist/BaseRadio/BaseRadio.js +25 -23
  7. package/dist/Button/utils.cjs +1 -1
  8. package/dist/Button/utils.js +1 -1
  9. package/dist/Card/Card.cjs +1 -1
  10. package/dist/Card/Card.js +1 -1
  11. package/dist/Card/CardHeader.cjs +1 -2
  12. package/dist/Card/CardHeader.js +1 -1
  13. package/dist/Card/CardTimer.cjs +1 -5
  14. package/dist/Card/CardTimer.js +14 -20
  15. package/dist/CarouselInput/CarouselInput.cjs +1 -1
  16. package/dist/CarouselInput/CarouselInput.js +9 -9
  17. package/dist/Checkbox/Checkbox.cjs +2 -2
  18. package/dist/Checkbox/Checkbox.js +16 -16
  19. package/dist/Combobox/Combobox.cjs +1 -1
  20. package/dist/Combobox/Combobox.js +139 -139
  21. package/dist/Combobox/ComboboxList.cjs +1 -1
  22. package/dist/Combobox/ComboboxList.js +5 -12
  23. package/dist/DateTimePicker/DateTimePicker.cjs +1 -1
  24. package/dist/DateTimePicker/DateTimePicker.js +71 -71
  25. package/dist/Dialog/Dialog.cjs +4 -7
  26. package/dist/Dialog/Dialog.js +30 -29
  27. package/dist/Field/Field.cjs +1 -1
  28. package/dist/Field/Field.js +6 -6
  29. package/dist/Field/FieldHint.cjs +1 -1
  30. package/dist/Field/FieldHint.js +4 -4
  31. package/dist/JSONInput/JSONInput.cjs +1 -1
  32. package/dist/JSONInput/JSONInput.js +45 -42
  33. package/dist/JSONInput/JSONInputContainer.cjs +5 -2
  34. package/dist/JSONInput/JSONInputContainer.js +6 -3
  35. package/dist/Layout/HeaderLayout.cjs +3 -8
  36. package/dist/Layout/HeaderLayout.js +38 -38
  37. package/dist/Main/SkipToContent.cjs +1 -2
  38. package/dist/Main/SkipToContent.js +1 -1
  39. package/dist/MainNav/MainNav.cjs +1 -6
  40. package/dist/MainNav/MainNav.js +15 -15
  41. package/dist/MainNav/NavFooter.cjs +1 -3
  42. package/dist/MainNav/NavFooter.js +3 -4
  43. package/dist/ModalLayout/ModalLayout.cjs +3 -9
  44. package/dist/ModalLayout/ModalLayout.js +24 -23
  45. package/dist/NumberInput/NumberInput.cjs +1 -1
  46. package/dist/NumberInput/NumberInput.js +18 -18
  47. package/dist/Select/Option.cjs +3 -7
  48. package/dist/Select/Option.js +6 -6
  49. package/dist/Select/Select.cjs +2 -2
  50. package/dist/Select/Select.js +57 -57
  51. package/dist/Select/SelectTags.cjs +1 -3
  52. package/dist/Select/SelectTags.js +4 -4
  53. package/dist/Select/SingleSelect.cjs +82 -0
  54. package/dist/Select/SingleSelect.js +285 -0
  55. package/dist/SimpleMenu/SimpleMenu.cjs +1 -1
  56. package/dist/SimpleMenu/SimpleMenu.js +10 -10
  57. package/dist/Stack/Stack.cjs +5 -5
  58. package/dist/Stack/Stack.js +7 -6
  59. package/dist/SubNav/SubNavHeader.cjs +1 -1
  60. package/dist/SubNav/SubNavHeader.js +15 -15
  61. package/dist/SubNav/SubNavLinkSection.cjs +2 -2
  62. package/dist/SubNav/SubNavLinkSection.js +6 -6
  63. package/dist/SubNav/SubNavSection.cjs +1 -1
  64. package/dist/SubNav/SubNavSection.js +12 -12
  65. package/dist/Table/Table.cjs +1 -3
  66. package/dist/Table/Table.js +2 -3
  67. package/dist/Tabs/TabGroup.cjs +1 -1
  68. package/dist/Tabs/TabGroup.js +11 -11
  69. package/dist/TextInput/TextInput.cjs +1 -1
  70. package/dist/TextInput/TextInput.js +18 -18
  71. package/dist/Textarea/Textarea.cjs +1 -1
  72. package/dist/Textarea/Textarea.js +1 -1
  73. package/dist/TimePicker/TimePicker.cjs +2 -2
  74. package/dist/TimePicker/TimePicker.js +1 -1
  75. package/dist/ToggleCheckbox/ToggleCheckbox.cjs +6 -6
  76. package/dist/ToggleCheckbox/ToggleCheckbox.js +45 -43
  77. package/dist/ToggleInput/ToggleInput.cjs +1 -1
  78. package/dist/ToggleInput/ToggleInput.js +10 -10
  79. package/dist/Tooltip/Tooltip.cjs +2 -3
  80. package/dist/Tooltip/Tooltip.js +18 -18
  81. package/dist/helpers/deprecations.cjs +1 -0
  82. package/dist/helpers/deprecations.js +13 -0
  83. package/dist/helpers/useId.cjs +1 -1
  84. package/dist/helpers/useId.js +11 -4
  85. package/dist/hooks/useIntersection.cjs +1 -0
  86. package/dist/hooks/useIntersection.js +23 -0
  87. package/dist/v2/MainNav/MainNav.cjs +1 -6
  88. package/dist/v2/MainNav/MainNav.js +15 -15
  89. package/dist/v2/MainNav/NavFooter.cjs +1 -3
  90. package/dist/v2/MainNav/NavFooter.js +3 -4
  91. package/dist/v2/SimpleMenu/SimpleMenu.cjs +1 -1
  92. package/dist/v2/SimpleMenu/SimpleMenu.js +12 -12
  93. package/dist/v2/SubNav/SubNavHeader.cjs +1 -1
  94. package/dist/v2/SubNav/SubNavHeader.js +15 -15
  95. package/dist/v2/SubNav/SubNavLinkSection.cjs +4 -4
  96. package/dist/v2/SubNav/SubNavLinkSection.js +8 -8
  97. package/dist/v2/SubNav/SubNavSection.cjs +1 -1
  98. package/dist/v2/SubNav/SubNavSection.js +4 -4
  99. package/package.json +3 -4
  100. package/dist/helpers/genId.cjs +0 -1
  101. package/dist/helpers/genId.js +0 -5
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),xe=require("prop-types"),H=require("@strapi/icons"),ye=require("../helpers/useId.cjs"),l=require("./utils.cjs"),_=require("../Flex/Flex.cjs"),N=require("../Select/components.cjs"),he=require("../Popover/Popover.cjs"),ve=require("../Box/Box.cjs"),U=require("../Typography/Typography.cjs"),Ee=require("../Loader/Loader.cjs"),k=require("./components.cjs"),Fe=require("./ComboboxOption.cjs"),Ie=require("./ComboboxList.cjs"),ke=require("../Field/Field.cjs"),qe=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const je=require("../Field/FieldHint.cjs"),Me=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const Oe=require("../Stack/Stack.cjs"),Le=require("../helpers/keyboardKeys.cjs"),Se=require("../VisuallyHidden/VisuallyHidden.cjs"),z=r=>r&&typeof r=="object"&&"default"in r?r:{default:r},o=z(a),e=z(xe),h=({children:r,clearLabel:W,creatable:v,createMessage:G,disabled:d,error:q,hasMoreItems:J,hint:L,label:C,labelAction:Q,loading:j,loadingMessage:X,noOptionsMessage:Y,onChange:S,onClear:R,onCreateOption:Z,onInputChange:A,onLoadMore:ee,placeholder:te,required:T,value:p,...oe})=>{const ne=()=>r.find(t=>t.props?.value.toLowerCase()===p.toLowerCase()).props?.children,[i,w]=a.useState(0),[ae,re]=a.useState(null),[u,$]=a.useState(r),[m,le]=a.useState(!1),[s,F]=a.useState(""),x=a.useRef(),I=a.useRef(!1),E=a.useRef(),B=a.useRef(),se=a.useRef(),P=a.useRef(!0),c=ye.useId("combobox"),D=`${c}-label`;if(!C&&!oe["aria-label"])throw new Error('The Combobox component needs a "label" or an "aria-label" props');a.useEffect(()=>{$(l.filterOptions(r,s))},[s,r]),a.useEffect(()=>{m&&x.current&&l.maintainScrollVisibility(x.current)},[i,m]),a.useLayoutEffect(()=>{P.current&&(P.current=!1)},[p]);const ie=m?`${c}-${i}`:"",V=()=>{S(null),F("")},ce=t=>{A&&A(t);const n=E.current.value;$(l.filterOptions(r,n)),w(0),re(null),s!==n&&F(n),m||b(!0,!1)},ue=t=>{const{key:n}=t,f=v&&s?u.length:u.length-1,y=l.getActionFromKey(n,m);switch(p&&!s&&n===Le.KeyboardKeys.BACKSPACE&&V(),y){case l.MenuActions.Next:{if(i===f){g(0);break}g(l.getUpdatedIndex(i,f,y));break}case l.MenuActions.Previous:{if(i===0){g(f);break}g(l.getUpdatedIndex(i,f,y));break}case l.MenuActions.Last:case l.MenuActions.First:{if(i===f){g(0);break}g(l.getUpdatedIndex(i,f,y));break}case l.MenuActions.CloseSelect:t.preventDefault(),M(i);break;case l.MenuActions.Close:t.preventDefault(),b(!1);break;case l.MenuActions.Open:b(!0);break}},de=t=>{if(t.preventDefault(),p&&!I.current&&F(""),I.current){I.current=!1;return}b(!1,!1)},g=t=>{w(t)},fe=t=>{g(t),M(t)},K=()=>{I.current=!0},M=t=>{const n=u[t];if(F(""),n){S(n.props.value),b(!1);return}v&&(Z(s),b(!1))},b=(t,n=!0)=>{le(t),n&&E.current.focus()},pe=a.Children.toArray(u).map((t,n)=>{const f=i===n;return a.cloneElement(t,{id:`${c}-${n}`,"aria-selected":ae===n,"aria-posinset":n+1,"aria-setsize":a.Children.toArray(u).length,ref(y){f&&(x.current=y)},onClick:()=>fe(n),onMouseDown:K,isSelected:f})}),be=()=>{E.current.focus(),R&&R(),V()},me=()=>{E.current.focus(),b(!0)},ge=()=>{const t=u.findIndex(n=>n.props?.children===s);return s&&t===-1},Ce=t=>{t.preventDefault(),b(t,!0)};return o.default.createElement(ke.Field,{hint:L,error:q,id:c,required:T},o.default.createElement(Se.VisuallyHidden,{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text"},p),o.default.createElement(Oe.Stack,{spacing:C||L||q?1:0},C&&o.default.createElement(qe.FieldLabel,{action:Q},C),o.default.createElement(k.MainRow,{ref:B,$disabled:d,hasError:q},o.default.createElement(k.InputContainer,{wrap:"wrap"},!s&&p&&o.default.createElement(k.ValueContainer,{id:`${c}-selected-value`},o.default.createElement(U.Typography,null,ne())),o.default.createElement(k.Input,{"aria-activedescendant":ie,"aria-autocomplete":"list","aria-controls":`${c}-listbox`,"aria-disabled":d,"aria-expanded":m,"aria-haspopup":"listbox","aria-labelledby":C?D:void 0,autoComplete:"off",autoCorrect:"off",id:c,onBlur:d?void 0:de,onClick:d?void 0:Ce,onInput:d?void 0:ce,onKeyDown:d?void 0:ue,placeholder:p?"":te,readOnly:d,ref:E,required:T,role:"combobox",spellCheck:"off",type:"text",value:s})),o.default.createElement(_.Flex,null,(p||s)&&o.default.createElement(N.IconBox,{id:`${c}-clear`,"aria-label":W,disabled:d,paddingLeft:3,as:"button",onClick:be,type:"button"},o.default.createElement(H.Cross,null)),o.default.createElement(N.CaretBox,{disabled:d,paddingLeft:3,"aria-hidden":!0,as:"button",onClick:me,tabIndex:-1,type:"button"},o.default.createElement(H.CarretDown,null)))),o.default.createElement(je.FieldHint,null),o.default.createElement(Me.FieldError,null)),m&&o.default.createElement(he.Popover,{id:`${c}-popover`,source:B,spacing:4,fullWidth:!0,intersectionId:`${c}-listbox-popover-intersection`,onReachEnd:J&&!j?ee:void 0},o.default.createElement("div",{role:"listbox",ref:se,id:`${c}-listbox`,"aria-labelledby":C?D:void 0},(Boolean(u.length)||v)&&o.default.createElement(o.default.Fragment,null,o.default.createElement(Ie.ComboboxList,{activeOptionRef:x,options:pe}),ge()&&v&&o.default.createElement(Fe.ComboboxOption,{isSelected:i===u.length,ref:t=>{i===u.length&&(x.current=t)},onMouseDown:K,onClick:()=>M(),taindex:0},G(s))),!u.length&&!v&&!j&&o.default.createElement(ve.Box,{paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2,ref:x},o.default.createElement(U.Typography,{textColor:"neutral800"},Y(s))),j&&o.default.createElement(_.Flex,{justifyContent:"center",alignItems:"center",paddingTop:2,paddingBottom:2},o.default.createElement(Ee.Loader,{small:!0},X)))))},O=r=>o.default.createElement(h,{...r,creatable:!0});h.defaultProps={"aria-label":void 0,clearLabel:"clear",creatable:!1,createMessage:r=>`Create "${r}"`,disabled:!1,error:void 0,hasMoreItems:!1,hint: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};O.defaultProps=h.defaultProps;h.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,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};O.propTypes={...h.propTypes,onCreateOption:e.default.func.isRequired};exports.Combobox=h;exports.CreatableCombobox=O;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),he=require("prop-types"),H=require("@strapi/icons"),ve=require("../helpers/useId.cjs"),l=require("./utils.cjs"),_=require("../Flex/Flex.cjs"),N=require("../Select/components.cjs"),Ee=require("../Popover/Popover.cjs"),Fe=require("../Box/Box.cjs"),U=require("../Typography/Typography.cjs"),Ie=require("../Loader/Loader.cjs"),q=require("./components.cjs"),ke=require("./ComboboxOption.cjs"),qe=require("../Field/Field.cjs"),Me=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const Oe=require("../Field/FieldHint.cjs"),je=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const Se=require("../Stack/Stack.cjs"),Le=require("../helpers/keyboardKeys.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=ve.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===Le.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(qe.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(Se.Stack,{spacing:h||M||F?1:0},h&&o.default.createElement(Me.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(Oe.FieldHint,null),o.default.createElement(je.FieldError,null)),m&&o.default.createElement(Ee.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(ke.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(Fe.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(Ie.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,97 +1,97 @@
1
- import o, { useState as y, useRef as E, useEffect as U, useLayoutEffect as Ee, Children as _, cloneElement as xe } from "react";
1
+ import o, { useState as y, useRef as C, useEffect as U, useLayoutEffect as xe, Children as _, cloneElement as ye } from "react";
2
2
  import e from "prop-types";
3
- import { Cross as ve, CarretDown as ye } from "@strapi/icons";
4
- import { useId as Ie } from "../helpers/useId.js";
5
- import { filterOptions as j, maintainScrollVisibility as ke, getActionFromKey as Oe, MenuActions as b, getUpdatedIndex as $ } from "./utils.js";
3
+ import { Cross as Ie, CarretDown as ke } from "@strapi/icons";
4
+ import { useId as Oe } from "../helpers/useId.js";
5
+ import { filterOptions as j, maintainScrollVisibility as Me, getActionFromKey as $e, MenuActions as b, getUpdatedIndex as R } from "./utils.js";
6
6
  import { Flex as q } from "../Flex/Flex.js";
7
- import { IconBox as Me, CaretBox as Le } from "../Select/components.js";
8
- import { Popover as we } from "../Popover/Popover.js";
9
- import { Box as $e } from "../Box/Box.js";
7
+ import { IconBox as we, CaretBox as Le } from "../Select/components.js";
8
+ import { Popover as De } from "../Popover/Popover.js";
9
+ import { Box as Re } from "../Box/Box.js";
10
10
  import { Typography as z } from "../Typography/Typography.js";
11
- import { Loader as Re } from "../Loader/Loader.js";
12
- import { MainRow as Se, InputContainer as Be, ValueContainer as De, Input as Fe } from "./components.js";
13
- import { ComboboxOption as Te } from "./ComboboxOption.js";
14
- import { ComboboxList as Ae } from "./ComboboxList.js";
15
- import { Field as Pe } from "../Field/Field.js";
16
- import { FieldLabel as Ve } from "../Field/FieldLabel.js";
11
+ import { Loader as Se } from "../Loader/Loader.js";
12
+ import { MainRow as Be, InputContainer as Fe, ValueContainer as Te, Input as Ae } from "./components.js";
13
+ import { ComboboxOption as Pe } from "./ComboboxOption.js";
14
+ import { Field as Ve } from "../Field/Field.js";
15
+ import { FieldLabel as Ke } from "../Field/FieldLabel.js";
17
16
  import "../Field/FieldInput.js";
18
- import { FieldHint as Ke } from "../Field/FieldHint.js";
19
- import { FieldError as Ne } from "../Field/FieldError.js";
17
+ import { FieldHint as Ne } from "../Field/FieldHint.js";
18
+ import { FieldError as He } from "../Field/FieldError.js";
20
19
  import "../Field/FieldContext.js";
21
20
  import "../Field/FieldAction.js";
22
- import { Stack as He } from "../Stack/Stack.js";
23
- import { KeyboardKeys as Ue } from "../helpers/keyboardKeys.js";
24
- import { VisuallyHidden as _e } from "../VisuallyHidden/VisuallyHidden.js";
21
+ import { Stack as Ue } from "../Stack/Stack.js";
22
+ import { KeyboardKeys as _e } from "../helpers/keyboardKeys.js";
23
+ import { VisuallyHidden as je } from "../VisuallyHidden/VisuallyHidden.js";
25
24
  const I = ({
26
25
  children: s,
27
26
  clearLabel: G,
28
- creatable: x,
27
+ creatable: h,
29
28
  createMessage: J,
30
29
  disabled: c,
31
- error: M,
30
+ error: k,
32
31
  hasMoreItems: Q,
33
- hint: R,
34
- label: g,
35
- labelAction: X,
36
- loading: L,
37
- loadingMessage: Y,
38
- noOptionsMessage: Z,
32
+ hint: $,
33
+ id: X,
34
+ label: E,
35
+ labelAction: Y,
36
+ loading: w,
37
+ loadingMessage: Z,
38
+ noOptionsMessage: ee,
39
39
  onChange: S,
40
40
  onClear: B,
41
- onCreateOption: ee,
42
- onInputChange: D,
43
- onLoadMore: te,
44
- placeholder: oe,
45
- required: F,
41
+ onCreateOption: te,
42
+ onInputChange: F,
43
+ onLoadMore: oe,
44
+ placeholder: re,
45
+ required: T,
46
46
  value: d,
47
47
  ...ne
48
48
  }) => {
49
- const re = () => s.find((t) => t.props?.value.toLowerCase() === d.toLowerCase()).props?.children, [a, T] = y(0), [ae, ie] = y(null), [l, A] = y(s), [u, le] = y(!1), [r, k] = y(""), C = E(), O = E(!1), v = E(), P = E(), se = E(), V = E(!0), i = Ie("combobox"), K = `${i}-label`;
50
- if (!g && !ne["aria-label"])
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 = Oe(X), pe = `${a}-label`;
50
+ if (!E && !ne["aria-label"])
51
51
  throw new Error('The Combobox component needs a "label" or an "aria-label" props');
52
52
  U(() => {
53
- A(j(s, r));
54
- }, [r, s]), U(() => {
55
- u && C.current && ke(C.current);
56
- }, [a, u]), Ee(() => {
57
- V.current && (V.current = !1);
53
+ P(j(s, n));
54
+ }, [n, s]), U(() => {
55
+ u && v.current && Me(v.current);
56
+ }, [i, u]), xe(() => {
57
+ K.current && (K.current = !1);
58
58
  }, [d]);
59
- const ce = u ? `${i}-${a}` : "", N = () => {
60
- S(null), k("");
61
- }, pe = (t) => {
62
- D && D(t);
63
- const n = v.current.value;
64
- A(j(s, n)), T(0), ie(null), r !== n && k(n), u || f(!0, !1);
65
- }, de = (t) => {
66
- const { key: n } = t, p = x && r ? l.length : l.length - 1, h = Oe(n, u);
67
- switch (d && !r && n === Ue.BACKSPACE && N(), h) {
59
+ const de = u ? `${a}-${i}` : "", N = () => {
60
+ S(null), O("");
61
+ }, 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);
65
+ }, ue = (t) => {
66
+ const { key: r } = t, p = h && n ? l.length : l.length - 1, g = $e(r, u);
67
+ switch (d && !n && r === _e.BACKSPACE && N(), g) {
68
68
  case b.Next: {
69
- if (a === p) {
69
+ if (i === p) {
70
70
  m(0);
71
71
  break;
72
72
  }
73
- m($(a, p, h));
73
+ m(R(i, p, g));
74
74
  break;
75
75
  }
76
76
  case b.Previous: {
77
- if (a === 0) {
77
+ if (i === 0) {
78
78
  m(p);
79
79
  break;
80
80
  }
81
- m($(a, p, h));
81
+ m(R(i, p, g));
82
82
  break;
83
83
  }
84
84
  case b.Last:
85
85
  case b.First: {
86
- if (a === p) {
86
+ if (i === p) {
87
87
  m(0);
88
88
  break;
89
89
  }
90
- m($(a, p, h));
90
+ m(R(i, p, g));
91
91
  break;
92
92
  }
93
93
  case b.CloseSelect:
94
- t.preventDefault(), w(a);
94
+ t.preventDefault(), L(i);
95
95
  break;
96
96
  case b.Close:
97
97
  t.preventDefault(), f(!1);
@@ -100,150 +100,148 @@ const I = ({
100
100
  f(!0);
101
101
  break;
102
102
  }
103
- }, fe = (t) => {
104
- if (t.preventDefault(), d && !O.current && k(""), O.current) {
105
- O.current = !1;
103
+ }, me = (t) => {
104
+ if (t.preventDefault(), d && !M.current && O(""), M.current) {
105
+ M.current = !1;
106
106
  return;
107
107
  }
108
108
  f(!1, !1);
109
109
  }, m = (t) => {
110
- T(t);
111
- }, ue = (t) => {
112
- m(t), w(t);
110
+ A(t);
111
+ }, be = (t) => {
112
+ m(t), L(t);
113
113
  }, H = () => {
114
- O.current = !0;
115
- }, w = (t) => {
116
- const n = l[t];
117
- if (k(""), n) {
118
- S(n.props.value), f(!1);
114
+ M.current = !0;
115
+ }, L = (t) => {
116
+ const r = l[t];
117
+ if (O(""), r) {
118
+ S(r.props.value), f(!1);
119
119
  return;
120
120
  }
121
- x && (ee(r), f(!1));
122
- }, f = (t, n = !0) => {
123
- le(t), n && v.current.focus();
124
- }, me = _.toArray(l).map((t, n) => {
125
- const p = a === n;
126
- return xe(t, {
127
- id: `${i}-${n}`,
128
- "aria-selected": ae === n,
129
- "aria-posinset": n + 1,
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;
126
+ return ye(t, {
127
+ id: `${a}-${r}`,
128
+ "aria-selected": ie === r,
129
+ "aria-posinset": r + 1,
130
130
  "aria-setsize": _.toArray(l).length,
131
- ref(h) {
132
- p && (C.current = h);
131
+ ref(g) {
132
+ p && (v.current = g);
133
133
  },
134
- onClick: () => ue(n),
134
+ onClick: () => be(r),
135
135
  onMouseDown: H,
136
136
  isSelected: p
137
137
  });
138
- }), be = () => {
139
- v.current.focus(), B && B(), N();
140
- }, ge = () => {
141
- v.current.focus(), f(!0);
142
- }, Ce = () => {
143
- const t = l.findIndex((n) => n.props?.children === r);
144
- return r && t === -1;
145
- }, he = (t) => {
138
+ }), Ce = () => {
139
+ x.current.focus(), B && B(), N();
140
+ }, he = () => {
141
+ x.current.focus(), f(!0);
142
+ }, Ee = () => {
143
+ const t = l.findIndex((r) => r.props?.children === n);
144
+ return n && t === -1;
145
+ }, ve = (t) => {
146
146
  t.preventDefault(), f(t, !0);
147
147
  };
148
- return /* @__PURE__ */ o.createElement(Pe, {
149
- hint: R,
150
- error: M,
151
- id: i,
152
- required: F
153
- }, /* @__PURE__ */ o.createElement(_e, {
148
+ let D;
149
+ return k ? D = `${a}-error` : $ && (D = `${a}-hint`), /* @__PURE__ */ o.createElement(Ve, {
150
+ hint: $,
151
+ error: k,
152
+ id: a,
153
+ required: T
154
+ }, /* @__PURE__ */ o.createElement(je, {
154
155
  "aria-live": "polite",
155
156
  "aria-atomic": "false",
156
157
  "aria-relevant": "additions text"
157
- }, d), /* @__PURE__ */ o.createElement(He, {
158
- spacing: g || R || M ? 1 : 0
159
- }, g && /* @__PURE__ */ o.createElement(Ve, {
160
- action: X
161
- }, g), /* @__PURE__ */ o.createElement(Se, {
162
- ref: P,
158
+ }, d), /* @__PURE__ */ o.createElement(Ue, {
159
+ spacing: E || $ || k ? 1 : 0
160
+ }, E && /* @__PURE__ */ o.createElement(Ke, {
161
+ action: Y
162
+ }, E), /* @__PURE__ */ o.createElement(Be, {
163
+ ref: V,
163
164
  $disabled: c,
164
- hasError: M
165
- }, /* @__PURE__ */ o.createElement(Be, {
165
+ hasError: k
166
+ }, /* @__PURE__ */ o.createElement(Fe, {
166
167
  wrap: "wrap"
167
- }, !r && d && /* @__PURE__ */ o.createElement(De, {
168
- id: `${i}-selected-value`
169
- }, /* @__PURE__ */ o.createElement(z, null, re())), /* @__PURE__ */ o.createElement(Fe, {
170
- "aria-activedescendant": ce,
168
+ }, !n && d && /* @__PURE__ */ o.createElement(Te, {
169
+ id: `${a}-selected-value`
170
+ }, /* @__PURE__ */ o.createElement(z, null, ae())), /* @__PURE__ */ o.createElement(Ae, {
171
+ "aria-activedescendant": de,
171
172
  "aria-autocomplete": "list",
172
- "aria-controls": `${i}-listbox`,
173
+ "aria-controls": `${a}-listbox`,
173
174
  "aria-disabled": c,
174
175
  "aria-expanded": u,
175
176
  "aria-haspopup": "listbox",
176
- "aria-labelledby": g ? K : void 0,
177
+ "aria-describedby": D,
177
178
  autoComplete: "off",
178
179
  autoCorrect: "off",
179
- id: i,
180
- onBlur: c ? void 0 : fe,
181
- onClick: c ? void 0 : he,
182
- onInput: c ? void 0 : pe,
183
- onKeyDown: c ? void 0 : de,
184
- placeholder: d ? "" : oe,
180
+ id: a,
181
+ onBlur: c ? void 0 : me,
182
+ onClick: c ? void 0 : ve,
183
+ onInput: c ? void 0 : fe,
184
+ onKeyDown: c ? void 0 : ue,
185
+ placeholder: d ? "" : re,
185
186
  readOnly: c,
186
- ref: v,
187
- required: F,
187
+ ref: x,
188
+ required: T,
188
189
  role: "combobox",
189
190
  spellCheck: "off",
190
191
  type: "text",
191
- value: r
192
- })), /* @__PURE__ */ o.createElement(q, null, (d || r) && /* @__PURE__ */ o.createElement(Me, {
193
- id: `${i}-clear`,
192
+ value: n
193
+ })), /* @__PURE__ */ o.createElement(q, null, (d || n) && /* @__PURE__ */ o.createElement(we, {
194
+ id: `${a}-clear`,
194
195
  "aria-label": G,
195
196
  disabled: c,
196
197
  paddingLeft: 3,
197
198
  as: "button",
198
- onClick: be,
199
+ onClick: Ce,
199
200
  type: "button"
200
- }, /* @__PURE__ */ o.createElement(ve, null)), /* @__PURE__ */ o.createElement(Le, {
201
+ }, /* @__PURE__ */ o.createElement(Ie, null)), /* @__PURE__ */ o.createElement(Le, {
201
202
  disabled: c,
202
203
  paddingLeft: 3,
203
204
  "aria-hidden": !0,
204
205
  as: "button",
205
- onClick: ge,
206
+ onClick: he,
206
207
  tabIndex: -1,
207
208
  type: "button"
208
- }, /* @__PURE__ */ o.createElement(ye, null)))), /* @__PURE__ */ o.createElement(Ke, null), /* @__PURE__ */ o.createElement(Ne, null)), u && /* @__PURE__ */ o.createElement(we, {
209
- id: `${i}-popover`,
210
- source: P,
209
+ }, /* @__PURE__ */ o.createElement(ke, null)))), /* @__PURE__ */ o.createElement(Ne, null), /* @__PURE__ */ o.createElement(He, null)), u && /* @__PURE__ */ o.createElement(De, {
210
+ id: `${a}-popover`,
211
+ source: V,
211
212
  spacing: 4,
212
213
  fullWidth: !0,
213
- intersectionId: `${i}-listbox-popover-intersection`,
214
- onReachEnd: Q && !L ? te : void 0
214
+ intersectionId: `${a}-listbox-popover-intersection`,
215
+ onReachEnd: Q && !w ? oe : void 0
215
216
  }, /* @__PURE__ */ o.createElement("div", {
216
217
  role: "listbox",
217
- ref: se,
218
- id: `${i}-listbox`,
219
- "aria-labelledby": g ? K : void 0
220
- }, (Boolean(l.length) || x) && /* @__PURE__ */ o.createElement(o.Fragment, null, /* @__PURE__ */ o.createElement(Ae, {
221
- activeOptionRef: C,
222
- options: me
223
- }), Ce() && x && /* @__PURE__ */ o.createElement(Te, {
224
- isSelected: a === l.length,
218
+ ref: ce,
219
+ id: `${a}-listbox`,
220
+ "aria-labelledby": E ? pe : void 0
221
+ }, (Boolean(l.length) || h) && /* @__PURE__ */ o.createElement(o.Fragment, null, ge, Ee() && h && /* @__PURE__ */ o.createElement(Pe, {
222
+ isSelected: i === l.length,
225
223
  ref: (t) => {
226
- a === l.length && (C.current = t);
224
+ i === l.length && (v.current = t);
227
225
  },
228
226
  onMouseDown: H,
229
- onClick: () => w(),
227
+ onClick: () => L(),
230
228
  taindex: 0
231
- }, J(r))), !l.length && !x && !L && /* @__PURE__ */ o.createElement($e, {
229
+ }, J(n))), !l.length && !h && !w && /* @__PURE__ */ o.createElement(Re, {
232
230
  paddingLeft: 4,
233
231
  paddingRight: 4,
234
232
  paddingTop: 2,
235
233
  paddingBottom: 2,
236
- ref: C
234
+ ref: v
237
235
  }, /* @__PURE__ */ o.createElement(z, {
238
236
  textColor: "neutral800"
239
- }, Z(r))), L && /* @__PURE__ */ o.createElement(q, {
237
+ }, ee(n))), w && /* @__PURE__ */ o.createElement(q, {
240
238
  justifyContent: "center",
241
239
  alignItems: "center",
242
240
  paddingTop: 2,
243
241
  paddingBottom: 2
244
- }, /* @__PURE__ */ o.createElement(Re, {
242
+ }, /* @__PURE__ */ o.createElement(Se, {
245
243
  small: !0
246
- }, Y)))));
244
+ }, Z)))));
247
245
  }, W = (s) => /* @__PURE__ */ o.createElement(I, {
248
246
  ...s,
249
247
  creatable: !0
@@ -257,6 +255,7 @@ I.defaultProps = {
257
255
  error: void 0,
258
256
  hasMoreItems: !1,
259
257
  hint: void 0,
258
+ id: void 0,
260
259
  label: void 0,
261
260
  loading: !1,
262
261
  loadingMessage: "Loading content...",
@@ -278,6 +277,7 @@ I.propTypes = {
278
277
  disabled: e.bool,
279
278
  error: e.string,
280
279
  hasMoreItems: e.bool,
280
+ id: e.string,
281
281
  hint: e.oneOfType([e.string, e.node, e.arrayOf(e.node)]),
282
282
  label: e.string,
283
283
  labelAction: e.element,
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react"),s=require("prop-types"),i=require("./utils.cjs"),u=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},c=u(s),o=({options:e,activeOptionRef:t})=>(r.useEffect(()=>{t.current&&i.maintainScrollVisibility(t.current)},[t]),e);o.defaultProps={activeOptionRef:void 0};o.propTypes={options:c.default.array.isRequired};exports.ComboboxList=o;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("prop-types"),r=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},s=r(t),o=({options:e})=>e;o.propTypes={options:s.default.array.isRequired};exports.ComboboxList=o;
@@ -1,15 +1,8 @@
1
- import { useEffect as t } from "react";
2
- import p from "prop-types";
3
- import { maintainScrollVisibility as e } from "./utils.js";
4
- const o = ({ options: i, activeOptionRef: r }) => (t(() => {
5
- r.current && e(r.current);
6
- }, [r]), i);
7
- o.defaultProps = {
8
- activeOptionRef: void 0
9
- };
10
- o.propTypes = {
11
- options: p.array.isRequired
1
+ import r from "prop-types";
2
+ const p = ({ options: o }) => o;
3
+ p.propTypes = {
4
+ options: r.array.isRequired
12
5
  };
13
6
  export {
14
- o as ComboboxList
7
+ p as ComboboxList
15
8
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("react"),E=require("../Stack/Stack.cjs"),v=require("../DatePicker/DatePicker.cjs"),C=require("../TimePicker/TimePicker.cjs"),R=require("../Field/Field.cjs"),x=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const A=require("../Field/FieldHint.cjs"),O=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const q=require("../helpers/useId.cjs"),$=require("./parseDate.cjs"),H=require("./DateTimePickerProps.cjs"),z=i=>i&&typeof i=="object"&&"default"in i?i:{default:i},a=z(p),F=({ariaLabel:i,clearLabel:P,disabled:T,error:f,hint:y,label:o,labelAction:M,onChange:s,onClear:m,name:g,required:D,selectButtonTitle:I,size:j,step:b,value:c,...S})=>{const d=$.parseDate(c),[r,n]=p.useState(d),[u,l]=p.useState(d?`${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`:null),h=e=>{n(e);let t;u?(t=new Date(e),t.setHours(u.split(":")[0]),t.setMinutes(u.split(":")[1])):(t=new Date(e),l(`${t.getHours()}:${t.getMinutes()}:${t.getSeconds()}`)),s&&s(t)},w=e=>{l(e);const t=r?new Date(r):new Date;t.setHours(e.split(":")[0]),t.setMinutes(e.split(":")[1]),r||n(t),s&&s(t)},_=()=>{n(void 0),l(void 0),m()},L=()=>{l(void 0);let e;r&&(e=new Date(r),e.setHours("00"),e.setMinutes("00")),s&&s(e)};p.useEffect(()=>{if(c&&+c!=+r){const e=$.parseDate(c);n(e),l(e?`${e.getHours()}:${e.getMinutes()}:${e.getSeconds()}`:null)}else c||(n(void 0),l(void 0))},[c,r]);const k=q.useId("datetime-label",S?.id),V=q.useId("datetimepicker");return a.default.createElement(R.Field,{name:g,role:"group",id:k,"aria-labelledby":k,hint:y,error:f,required:D},a.default.createElement(E.Stack,{spacing:1},o&&a.default.createElement(x.FieldLabel,{action:M},o),a.default.createElement(E.Stack,{horizontal:!0,spacing:2},a.default.createElement(v.DatePicker,{"data-testid":"datetimepicker-date",id:k,name:g,ariaLabel:o||i,error:typeof f=="string",selectedDate:r,selectedDateLabel:e=>`Date picker, current is ${e}`,onChange:h,required:D,size:j,onClear:m&&_,clearLabel:P,disabled:T,...S}),a.default.createElement(C.TimePicker,{"data-testid":"datetimepicker-time",size:j,"aria-label":o||i,error:typeof f=="string",value:u,onChange:w,onClear:m&&L,clearLabel:P,required:D,selectButtonTitle:I,disabled:T,step:b})),a.default.createElement(A.FieldHint,null),a.default.createElement(O.FieldError,{id:V})))};F.defaultProps=H.dateTimePickerDefaultProps;F.propTypes=H.dateTimePickerPropTypes;exports.DateTimePicker=F;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("react"),E=require("../Stack/Stack.cjs"),L=require("../DatePicker/DatePicker.cjs"),V=require("../TimePicker/TimePicker.cjs"),v=require("../Field/Field.cjs"),C=require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");const R=require("../Field/FieldHint.cjs"),x=require("../Field/FieldError.cjs");require("../Field/FieldContext.cjs");require("../Field/FieldAction.cjs");const A=require("../helpers/useId.cjs"),y=require("./parseDate.cjs"),$=require("./DateTimePickerProps.cjs"),O=i=>i&&typeof i=="object"&&"default"in i?i:{default:i},s=O(p),P=({ariaLabel:i,clearLabel:g,disabled:T,error:f,hint:D,label:o,labelAction:H,onChange:a,onClear:m,name:j,required:k,selectButtonTitle:M,size:S,step:b,value:c,...q})=>{const n=y.parseDate(c),[r,d]=p.useState(n),[u,l]=p.useState(n?`${n.getHours()}:${n.getMinutes()}:${n.getSeconds()}`:null),h=e=>{d(e);let t;u?(t=new Date(e),t.setHours(u.split(":")[0]),t.setMinutes(u.split(":")[1])):(t=new Date(e),l(`${t.getHours()}:${t.getMinutes()}:${t.getSeconds()}`)),a&&a(t)},w=e=>{l(e);const t=r?new Date(r):new Date;t.setHours(e.split(":")[0]),t.setMinutes(e.split(":")[1]),r||d(t),a&&a(t)},I=()=>{d(void 0),l(void 0),m()},_=()=>{l(void 0);let e;r&&(e=new Date(r),e.setHours("00"),e.setMinutes("00")),a&&a(e)};p.useEffect(()=>{if(c&&+c!=+r){const e=y.parseDate(c);d(e),l(e?`${e.getHours()}:${e.getMinutes()}:${e.getSeconds()}`:null)}else c||(d(void 0),l(void 0))},[c,r]);const F=A.useId(q?.id);return s.default.createElement(v.Field,{name:j,role:"group",id:F,"aria-labelledby":F,hint:D,error:f,required:k},s.default.createElement(E.Stack,{spacing:1},o&&s.default.createElement(C.FieldLabel,{action:H},o),s.default.createElement(E.Stack,{horizontal:!0,spacing:2},s.default.createElement(L.DatePicker,{"data-testid":"datetimepicker-date",id:F,name:j,ariaLabel:o||i,error:typeof f=="string",hint:typeof D=="string",selectedDate:r,selectedDateLabel:e=>`Date picker, current is ${e}`,onChange:h,required:k,size:S,onClear:m&&I,clearLabel:g,disabled:T,...q}),s.default.createElement(V.TimePicker,{"data-testid":"datetimepicker-time",size:S,"aria-label":o||i,error:typeof f=="string",hint:typeof D=="string",value:u,onChange:w,onClear:m&&_,clearLabel:g,required:k,selectButtonTitle:M,disabled:T,step:b})),s.default.createElement(R.FieldHint,null),s.default.createElement(x.FieldError,null)))};P.defaultProps=$.dateTimePickerDefaultProps;P.propTypes=$.dateTimePickerPropTypes;exports.DateTimePicker=P;