import{t as _,a6 as M,aY as B,aW as U,n as q}from"./index-DiaaLdUu.js";import{r,j as p}from"./react-vendor-jWT2yUdV.js";var N=_({base:"flex flex-col gap-2 items-start"});function Q(e){const t=r.useRef(null);return r.useMemo(()=>({get current(){return t.current},set current(a){t.current=a,typeof e=="function"?e(a):e&&(e.current=a)}}),[e])}function X(e){let{id:t,label:a,"aria-labelledby":l,"aria-label":n,labelElementType:i="label"}=e;t=M(t);let d=M(),s={};a&&(l=l?`${d} ${l}`:d,s={id:d,htmlFor:i==="label"?t:void 0});let u=B({id:t,"aria-label":n,"aria-labelledby":l});return{labelProps:s,fieldProps:u}}var C=Symbol("default");function Y(e,t){let a=r.useContext(e);if(t===null)return null;if(a&&typeof a=="object"&&"slots"in a&&a.slots){let l=new Intl.ListFormat().format(Object.keys(a.slots).map(i=>`"${i}"`));if(!t&&!a.slots[C])throw new Error(`A slot prop is required. Valid slot names are ${l}.`);let n=t||C;if(!a.slots[n])throw new Error(`Invalid slot "${t}". Valid slot names are ${l}.`);return a.slots[n]}return a}function k(e,t,a){let l=Y(a,e.slot)||{},{ref:n,...i}=l,d=Q(r.useMemo(()=>U(t,n),[t,n])),s=q(i,e);return"style"in i&&i.style&&"style"in e&&e.style&&(typeof i.style=="function"||typeof e.style=="function"?s.style=u=>{let f=typeof i.style=="function"?i.style(u):i.style,c={...u.defaultStyle,...f},m=typeof e.style=="function"?e.style({...u,defaultStyle:c}):e.style;return{...c,...m}}:s.style={...i.style,...e.style}),[s,d]}const F={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},L={...F,customError:!0,valid:!1},v={isInvalid:!1,validationDetails:F,validationErrors:[]},T=r.createContext({}),j="__formValidationState"+Date.now();function Z(e){if(e[j]){let{realtimeValidation:t,displayValidation:a,updateValidation:l,resetValidation:n,commitValidation:i}=e[j];return{realtimeValidation:t,displayValidation:a,updateValidation:l,resetValidation:n,commitValidation:i}}return K(e)}function K(e){let{isInvalid:t,validationState:a,name:l,value:n,builtinValidation:i,validate:d,validationBehavior:s="aria"}=e;a&&(t||(t=a==="invalid"));let u=t!==void 0?{isInvalid:t,validationErrors:[],validationDetails:L}:null,f=r.useMemo(()=>{if(!d||n==null)return null;let o=W(d,n);return A(o)},[d,n]);i!=null&&i.validationDetails.valid&&(i=void 0);let c=r.useContext(T),m=r.useMemo(()=>l?Array.isArray(l)?l.flatMap(o=>h(c[o])):h(c[l]):[],[c,l]),[P,w]=r.useState(c),[I,$]=r.useState(!1);c!==P&&(w(c),$(!1));let y=r.useMemo(()=>A(I?[]:m),[I,m]),g=r.useRef(v),[V,x]=r.useState(v),b=r.useRef(v),O=()=>{if(!R)return;E(!1);let o=f||i||g.current;S(o,b.current)||(b.current=o,x(o))},[R,E]=r.useState(!1);return r.useEffect(O),{realtimeValidation:u||y||f||i||v,displayValidation:s==="native"?u||y||V:u||y||f||i||V,updateValidation(o){s==="aria"&&!S(V,o)?x(o):g.current=o},resetValidation(){let o=v;S(o,b.current)||(b.current=o,x(o)),s==="native"&&E(!1),$(!0)},commitValidation(){s==="native"&&E(!0),$(!0)}}}function h(e){return e?Array.isArray(e)?e:[e]:[]}function W(e,t){if(typeof e=="function"){let a=e(t);if(a&&typeof a!="boolean")return h(a)}return[]}function A(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:L}:null}function S(e,t){return e===t?!0:!!e&&!!t&&e.isInvalid===t.isInvalid&&e.validationErrors.length===t.validationErrors.length&&e.validationErrors.every((a,l)=>a===t.validationErrors[l])&&Object.entries(e.validationDetails).every(([a,l])=>t.validationDetails[a]===l)}var D=r.createContext(null),ee=r.forwardRef(function(t,a){[t,a]=k(t,a,D);let{validationErrors:l,validationBehavior:n="native",children:i,className:d,...s}=t;const u=r.useMemo(()=>N({className:d}),[d]);return p.jsx("form",{noValidate:n!=="native",...s,ref:a,className:u,children:p.jsx(D.Provider,{value:{...t,validationBehavior:n},children:p.jsx(T.Provider,{value:l??{},children:i})})})});export{X as $,ee as F,Z as a,D as b,N as f,Y as u};