"use strict";const t=require("react"),l=require("react/jsx-runtime"),E=require("@chakra-ui/react"),x=require("./Dialog-B64GoQlm.cjs.js"),P=require("@commercetools/nimbus-icons"),k=require("./useObjectRef-4v2MxSjQ.cjs.js"),w=require("./useField-DOT9H5ld.cjs.js"),F=require("./box-CWni3A32.cjs.js"),z=require("./icon-button-CVdz2C9L.cjs.js"),u=t.createContext({context:{label:null,description:null,error:null,info:null,input:null},setContext:()=>{}}),{withProvider:A,withContext:p}=E.createSlotRecipeContext({key:"nimbusFormField"}),D=A("div","root"),V=p("div","label"),_=p("div","input"),H=p("div","description"),O=p("div","error"),G=p("div","popover"),m=function({ref:i,id:o,isInvalid:r,isRequired:c,isDisabled:a,isReadOnly:d,children:v,...g}){const B=t.useRef(null),y=k.$df56164dff5785e2$export$4338b53315abf666(E.mergeRefs(B,i)),[e,S]=t.useState({label:null,description:null,error:null,info:null,input:null,isInvalid:r,isRequired:c,isDisabled:a,isReadOnly:d}),I=t.useMemo(()=>{const s={id:o,description:e.description,errorMessage:e.error};return e.label?s.label=e.label:(s["aria-label"]="empty-label",s["aria-labelledby"]="empty-label"),s},[o,e.description,e.error,e.label]),{labelProps:N,fieldProps:$,descriptionProps:M,errorMessageProps:L}=w.$2baaea4c71418dea$export$294aa081a6c6f55d(I);t.useEffect(()=>{S(s=>({...s,isInvalid:r,isRequired:c,isDisabled:a,isReadOnly:d}))},[r,c,a,d]);const q=t.useMemo(()=>({...$,isInvalid:r,isRequired:c,isDisabled:a,isReadOnly:d}),[$,r,c,a,d]),R=t.useMemo(()=>({context:e,setContext:S}),[e]);return l.jsx(u.Provider,{value:R,children:l.jsxs(D,{ref:y,...g,children:[e.label&&l.jsxs(V,{...e.labelSlotProps,children:[l.jsxs("label",{...N,"data-required":c,children:[e.label,c&&l.jsx("sup",{"aria-hidden":"true",children:"*"})]}),e.info&&l.jsxs(x.$de32f1b87079253c$export$2e1e1122cf0cba88,{children:[l.jsx(F.Box,{as:"span",display:"inline-block",position:"relative",width:"1ch",height:"1ch",ml:"200",children:l.jsx(F.Box,{as:"span",display:"inline-flex",position:"absolute",top:"50%",right:"50%",transform:"translate(50%, -50%)",children:l.jsx(z.IconButton,{"aria-label":"__MORE INFO",size:"2xs",colorPalette:"info",variant:"link",children:l.jsx(P.HelpOutline,{})})})}),l.jsx(x.$07b14b47974efb58$export$5b6b19405a83ff9d,{children:l.jsx(G,{asChild:!0,children:l.jsx(x.$de32f1b87079253c$export$3ddf2d174ce01153,{children:l.jsx(F.Box,{p:"300",children:e.info})})})})]})]}),e.input&&l.jsx(_,{...e.inputSlotProps,children:t.Children.map(e.input,s=>t.isValidElement(s)?t.cloneElement(s,q):s)}),e.description&&l.jsx(H,{...M,...e.descriptionSlotProps,children:e.description}),r&&e.error&&l.jsxs(O,{...L,...e.errorSlotProps,children:[l.jsx(F.Box,{as:P.ErrorOutline,display:"inline-flex",boxSize:"400",verticalAlign:"text-bottom",mr:"100",alignSelf:"center"}),e.error]}),v]})})};m.displayName="FormField.Root";const f=({children:n,...i})=>{const{setContext:o}=t.useContext(u);return t.useEffect(()=>(o(r=>({...r,label:n,labelSlotProps:i})),()=>{o(r=>({...r,label:null,labelSlotProps:void 0}))}),[n,o]),null};f.displayName="FormField.Label";const b=({children:n,...i})=>{const{setContext:o}=t.useContext(u);return t.useEffect(()=>{o(r=>({...r,input:n,inputSlotProps:i}))},[n,o]),null};b.displayName="FormField.Input";const h=({children:n,...i})=>{const{setContext:o}=t.useContext(u);return t.useEffect(()=>(o(r=>({...r,description:n,descriptionSlotProps:i})),()=>{o(r=>({...r,description:null,descriptionSlotProps:void 0}))}),[n,o]),null};h.displayName="FormField.Description";const j=({children:n,...i})=>{const{setContext:o}=t.useContext(u);return t.useEffect(()=>(o(r=>({...r,error:n,errorSlotProps:i})),()=>{o(r=>({...r,error:null,errorSlotProps:void 0}))}),[n,o]),null};j.displayName="FormField.Error";const C=({children:n})=>{const{setContext:i}=t.useContext(u);return t.useEffect(()=>(i(o=>({...o,info:n})),()=>{i(o=>({...o,info:null}))}),[n,i]),null};C.displayName="FormField.InfoBox";const J={Root:m,Label:f,Input:b,Description:h,Error:j,InfoBox:C};exports.FormField=J;exports.FormFieldDescription=h;exports.FormFieldError=j;exports.FormFieldInfoBox=C;exports.FormFieldInput=b;exports.FormFieldLabel=f;exports.FormFieldRoot=m;
//# sourceMappingURL=form-field-MU91QwOC.cjs.js.map
