@stanfordspezi/spezi-web-design-system
Version:
Stanford Biodesign Digital Health Spezi Web Design System
7 lines (6 loc) • 28.9 kB
JavaScript
;const x=require("react"),Lt=require("./query-D_aaQIsg.js"),Y=require("react/jsx-runtime"),Tt=require("./Tooltip-CY2BbJro.js"),ke=require("./misc-DD8jgyt3.js"),Ut=require("./createLucideIcon-DpotSgUx.js"),Mt=require("./Error-B11sQQ2M.js"),Nt=require("./Label-DnyD0Rlz.js"),pt=require("./ErrorState-DSH517_N.js"),Pt=require("./StateContainer-WjdrYal7.js"),Bt=require("./index-DwV9MiDB.js");/**
* @license lucide-react v0.488.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const It=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],lt=Ut.createLucideIcon("info",It);var ye=e=>e.type==="checkbox",ie=e=>e instanceof Date,I=e=>e==null;const ot=e=>typeof e=="object";var O=e=>!I(e)&&!Array.isArray(e)&&ot(e)&&!ie(e),ut=e=>O(e)&&e.target?ye(e.target)?e.target.checked:e.target.value:e,qt=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,ct=(e,s)=>e.has(qt(s)),jt=e=>{const s=e.constructor&&e.constructor.prototype;return O(s)&&s.hasOwnProperty("isPrototypeOf")},Re=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function M(e){let s;const t=Array.isArray(e),i=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)s=new Date(e);else if(e instanceof Set)s=new Set(e);else if(!(Re&&(e instanceof Blob||i))&&(t||O(e)))if(s=t?[]:{},!t&&!jt(e))s=e;else for(const a in e)e.hasOwnProperty(a)&&(s[a]=M(e[a]));else return e;return s}var Ve=e=>Array.isArray(e)?e.filter(Boolean):[],C=e=>e===void 0,f=(e,s,t)=>{if(!s||!O(e))return t;const i=Ve(s.split(/[,[\].]+?/)).reduce((a,l)=>I(a)?a:a[l],e);return C(i)||i===e?C(e[s])?t:e[s]:i},$=e=>typeof e=="boolean",Le=e=>/^\w*$/.test(e),dt=e=>Ve(e.replace(/["|']|\]/g,"").split(/\.|\[/)),w=(e,s,t)=>{let i=-1;const a=Le(s)?[s]:dt(s),l=a.length,u=l-1;for(;++i<l;){const y=a[i];let v=t;if(i!==u){const A=e[y];v=O(A)||Array.isArray(A)?A:isNaN(+a[i+1])?{}:[]}if(y==="__proto__"||y==="constructor"||y==="prototype")return;e[y]=v,e=e[y]}};const ve={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},z={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},ee={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Wt=x.createContext(null),Te=()=>x.useContext(Wt);var ft=(e,s,t,i=!0)=>{const a={defaultValues:s._defaultValues};for(const l in e)Object.defineProperty(a,l,{get:()=>{const u=l;return s._proxyFormState[u]!==z.all&&(s._proxyFormState[u]=!i||z.all),t&&(t[u]=!0),e[u]}});return a};function $t(e){const s=Te(),{control:t=s.control,disabled:i,name:a,exact:l}=e||{},[u,y]=x.useState(t._formState),v=x.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1}),A=x.useRef(a);return A.current=a,x.useEffect(()=>t._subscribe({name:A.current,formState:v.current,exact:l,callback:m=>{!i&&y({...t._formState,...m})}}),[t,i,l]),x.useEffect(()=>{v.current.isValid&&t._setValid(!0)},[t]),x.useMemo(()=>ft(u,t,v.current,!1),[u,t])}var X=e=>typeof e=="string",yt=(e,s,t,i,a)=>X(e)?(i&&s.watch.add(e),f(t,e,a)):Array.isArray(e)?e.map(l=>(i&&s.watch.add(l),f(t,l))):(i&&(s.watchAll=!0),t);function Ht(e){const s=Te(),{control:t=s.control,name:i,defaultValue:a,disabled:l,exact:u}=e||{},y=x.useRef(i),v=x.useRef(a);y.current=i,x.useEffect(()=>t._subscribe({name:y.current,formState:{values:!0},exact:u,callback:V=>!l&&m(yt(y.current,t._names,V.values||t._formValues,!1,v.current))}),[t,l,u]);const[A,m]=x.useState(t._getWatch(i,a));return x.useEffect(()=>t._removeUnmounted()),A}function Kt(e){const s=Te(),{name:t,disabled:i,control:a=s.control,shouldUnregister:l}=e,u=ct(a._names.array,t),y=Ht({control:a,name:t,defaultValue:f(a._formValues,t,f(a._defaultValues,t,e.defaultValue)),exact:!0}),v=$t({control:a,name:t,exact:!0}),A=x.useRef(e),m=x.useRef(a.register(t,{...e.rules,value:y,...$(e.disabled)?{disabled:e.disabled}:{}})),V=x.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!f(v.errors,t)},isDirty:{enumerable:!0,get:()=>!!f(v.dirtyFields,t)},isTouched:{enumerable:!0,get:()=>!!f(v.touchedFields,t)},isValidating:{enumerable:!0,get:()=>!!f(v.validatingFields,t)},error:{enumerable:!0,get:()=>f(v.errors,t)}}),[v,t]),b=x.useCallback(p=>m.current.onChange({target:{value:ut(p),name:t},type:ve.CHANGE}),[t]),j=x.useCallback(()=>m.current.onBlur({target:{value:f(a._formValues,t),name:t},type:ve.BLUR}),[t,a._formValues]),L=x.useCallback(p=>{const P=f(a._fields,t);P&&p&&(P._f.ref={focus:()=>p.focus(),select:()=>p.select(),setCustomValidity:_=>p.setCustomValidity(_),reportValidity:()=>p.reportValidity()})},[a._fields,t]),D=x.useMemo(()=>({name:t,value:y,...$(i)||v.disabled?{disabled:v.disabled||i}:{},onChange:b,onBlur:j,ref:L}),[t,i,v.disabled,b,j,L,y]);return x.useEffect(()=>{const p=a._options.shouldUnregister||l;a.register(t,{...A.current.rules,...$(A.current.disabled)?{disabled:A.current.disabled}:{}});const P=(_,K)=>{const W=f(a._fields,_);W&&W._f&&(W._f.mount=K)};if(P(t,!0),p){const _=M(f(a._options.defaultValues,t));w(a._defaultValues,t,_),C(f(a._formValues,t))&&w(a._formValues,t,_)}return!u&&a.register(t),()=>{(u?p&&!a._state.action:p)?a.unregister(t):P(t,!1)}},[t,a,u,l]),x.useEffect(()=>{a._setDisabledField({disabled:i,name:t})},[i,t,a]),x.useMemo(()=>({field:D,formState:v,fieldState:V}),[D,v,V])}const Yt=e=>e.render(Kt(e));var ht=(e,s,t,i,a)=>s?{...t[e],types:{...t[e]&&t[e].types?t[e].types:{},[i]:a||!0}}:{},de=e=>Array.isArray(e)?e:[e],ze=()=>{let e=[];return{get observers(){return e},next:a=>{for(const l of e)l.next&&l.next(a)},subscribe:a=>(e.push(a),{unsubscribe:()=>{e=e.filter(l=>l!==a)}}),unsubscribe:()=>{e=[]}}},Ce=e=>I(e)||!ot(e);function re(e,s){if(Ce(e)||Ce(s))return e===s;if(ie(e)&&ie(s))return e.getTime()===s.getTime();const t=Object.keys(e),i=Object.keys(s);if(t.length!==i.length)return!1;for(const a of t){const l=e[a];if(!i.includes(a))return!1;if(a!=="ref"){const u=s[a];if(ie(l)&&ie(u)||O(l)&&O(u)||Array.isArray(l)&&Array.isArray(u)?!re(l,u):l!==u)return!1}}return!0}var B=e=>O(e)&&!Object.keys(e).length,Ue=e=>e.type==="file",G=e=>typeof e=="function",be=e=>{if(!Re)return!1;const s=e?e.ownerDocument:0;return e instanceof(s&&s.defaultView?s.defaultView.HTMLElement:HTMLElement)},gt=e=>e.type==="select-multiple",Me=e=>e.type==="radio",zt=e=>Me(e)||ye(e),De=e=>be(e)&&e.isConnected;function Gt(e,s){const t=s.slice(0,-1).length;let i=0;for(;i<t;)e=C(e)?i++:e[s[i++]];return e}function Jt(e){for(const s in e)if(e.hasOwnProperty(s)&&!C(e[s]))return!1;return!0}function T(e,s){const t=Array.isArray(s)?s:Le(s)?[s]:dt(s),i=t.length===1?e:Gt(e,t),a=t.length-1,l=t[a];return i&&delete i[l],a!==0&&(O(i)&&B(i)||Array.isArray(i)&&Jt(i))&&T(e,t.slice(0,-1)),e}var vt=e=>{for(const s in e)if(G(e[s]))return!0;return!1};function _e(e,s={}){const t=Array.isArray(e);if(O(e)||t)for(const i in e)Array.isArray(e[i])||O(e[i])&&!vt(e[i])?(s[i]=Array.isArray(e[i])?[]:{},_e(e[i],s[i])):I(e[i])||(s[i]=!0);return s}function bt(e,s,t){const i=Array.isArray(e);if(O(e)||i)for(const a in e)Array.isArray(e[a])||O(e[a])&&!vt(e[a])?C(s)||Ce(t[a])?t[a]=Array.isArray(e[a])?_e(e[a],[]):{..._e(e[a])}:bt(e[a],I(s)?{}:s[a],t[a]):t[a]=!re(e[a],s[a]);return t}var ue=(e,s)=>bt(e,s,_e(s));const Ge={value:!1,isValid:!1},Je={value:!0,isValid:!0};var _t=e=>{if(Array.isArray(e)){if(e.length>1){const s=e.filter(t=>t&&t.checked&&!t.disabled).map(t=>t.value);return{value:s,isValid:!!s.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!C(e[0].attributes.value)?C(e[0].value)||e[0].value===""?Je:{value:e[0].value,isValid:!0}:Je:Ge}return Ge},mt=(e,{valueAsNumber:s,valueAsDate:t,setValueAs:i})=>C(e)?e:s?e===""?NaN:e&&+e:t&&X(e)?new Date(e):i?i(e):e;const Qe={isValid:!1,value:null};var Vt=e=>Array.isArray(e)?e.reduce((s,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:s,Qe):Qe;function Xe(e){const s=e.ref;return Ue(s)?s.files:Me(s)?Vt(e.refs).value:gt(s)?[...s.selectedOptions].map(({value:t})=>t):ye(s)?_t(e.refs).value:mt(C(s.value)?e.ref.value:s.value,e)}var Qt=(e,s,t,i)=>{const a={};for(const l of e){const u=f(s,l);u&&w(a,l,u._f)}return{criteriaMode:t,names:[...e],fields:a,shouldUseNativeValidation:i}},me=e=>e instanceof RegExp,ce=e=>C(e)?e:me(e)?e.source:O(e)?me(e.value)?e.value.source:e.value:e,Ze=e=>({isOnSubmit:!e||e===z.onSubmit,isOnBlur:e===z.onBlur,isOnChange:e===z.onChange,isOnAll:e===z.all,isOnTouch:e===z.onTouched});const et="AsyncFunction";var Xt=e=>!!e&&!!e.validate&&!!(G(e.validate)&&e.validate.constructor.name===et||O(e.validate)&&Object.values(e.validate).find(s=>s.constructor.name===et)),Zt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),tt=(e,s,t)=>!t&&(s.watchAll||s.watch.has(e)||[...s.watch].some(i=>e.startsWith(i)&&/^\.\w+/.test(e.slice(i.length))));const fe=(e,s,t,i)=>{for(const a of t||Object.keys(e)){const l=f(e,a);if(l){const{_f:u,...y}=l;if(u){if(u.refs&&u.refs[0]&&s(u.refs[0],a)&&!i)return!0;if(u.ref&&s(u.ref,u.name)&&!i)return!0;if(fe(y,s))break}else if(O(y)&&fe(y,s))break}}};function rt(e,s,t){const i=f(e,t);if(i||Le(t))return{error:i,name:t};const a=t.split(".");for(;a.length;){const l=a.join("."),u=f(s,l),y=f(e,l);if(u&&!Array.isArray(u)&&t!==l)return{name:t};if(y&&y.type)return{name:l,error:y};a.pop()}return{name:t}}var er=(e,s,t,i)=>{t(e);const{name:a,...l}=e;return B(l)||Object.keys(l).length>=Object.keys(s).length||Object.keys(l).find(u=>s[u]===(!i||z.all))},tr=(e,s,t)=>!e||!s||e===s||de(e).some(i=>i&&(t?i===s:i.startsWith(s)||s.startsWith(i))),rr=(e,s,t,i,a)=>a.isOnAll?!1:!t&&a.isOnTouch?!(s||e):(t?i.isOnBlur:a.isOnBlur)?!e:(t?i.isOnChange:a.isOnChange)?e:!0,sr=(e,s)=>!Ve(f(e,s)).length&&T(e,s),ir=(e,s,t)=>{const i=de(f(e,t));return w(i,"root",s[t]),w(e,t,i),e},ge=e=>X(e);function st(e,s,t="validate"){if(ge(e)||Array.isArray(e)&&e.every(ge)||$(e)&&!e)return{type:t,message:ge(e)?e:"",ref:s}}var ne=e=>O(e)&&!me(e)?e:{value:e,message:""},it=async(e,s,t,i,a,l)=>{const{ref:u,refs:y,required:v,maxLength:A,minLength:m,min:V,max:b,pattern:j,validate:L,name:D,valueAsNumber:p,mount:P}=e._f,_=f(t,D);if(!P||s.has(D))return{};const K=y?y[0]:u,W=S=>{a&&K.reportValidity&&(K.setCustomValidity($(S)?"":S||""),K.reportValidity())},U={},ae=Me(u),le=ye(u),Fe=ae||le,J=(p||Ue(u))&&C(u.value)&&C(_)||be(u)&&u.value===""||_===""||Array.isArray(_)&&!_.length,se=ht.bind(null,D,i,U),Z=(S,F,k,q=ee.maxLength,H=ee.minLength)=>{const Q=S?F:k;U[D]={type:S?q:H,message:Q,ref:u,...se(S?q:H,Q)}};if(l?!Array.isArray(_)||!_.length:v&&(!Fe&&(J||I(_))||$(_)&&!_||le&&!_t(y).isValid||ae&&!Vt(y).isValid)){const{value:S,message:F}=ge(v)?{value:!!v,message:v}:ne(v);if(S&&(U[D]={type:ee.required,message:F,ref:K,...se(ee.required,F)},!i))return W(F),U}if(!J&&(!I(V)||!I(b))){let S,F;const k=ne(b),q=ne(V);if(!I(_)&&!isNaN(_)){const H=u.valueAsNumber||_&&+_;I(k.value)||(S=H>k.value),I(q.value)||(F=H<q.value)}else{const H=u.valueAsDate||new Date(_),Q=he=>new Date(new Date().toDateString()+" "+he),te=u.type=="time",oe=u.type=="week";X(k.value)&&_&&(S=te?Q(_)>Q(k.value):oe?_>k.value:H>new Date(k.value)),X(q.value)&&_&&(F=te?Q(_)<Q(q.value):oe?_<q.value:H<new Date(q.value))}if((S||F)&&(Z(!!S,k.message,q.message,ee.max,ee.min),!i))return W(U[D].message),U}if((A||m)&&!J&&(X(_)||l&&Array.isArray(_))){const S=ne(A),F=ne(m),k=!I(S.value)&&_.length>+S.value,q=!I(F.value)&&_.length<+F.value;if((k||q)&&(Z(k,S.message,F.message),!i))return W(U[D].message),U}if(j&&!J&&X(_)){const{value:S,message:F}=ne(j);if(me(S)&&!_.match(S)&&(U[D]={type:ee.pattern,message:F,ref:u,...se(ee.pattern,F)},!i))return W(F),U}if(L){if(G(L)){const S=await L(_,t),F=st(S,K);if(F&&(U[D]={...F,...se(ee.validate,F.message)},!i))return W(F.message),U}else if(O(L)){let S={};for(const F in L){if(!B(S)&&!i)break;const k=st(await L[F](_,t),K,F);k&&(S={...k,...se(F,k.message)},W(k.message),i&&(U[D]=S))}if(!B(S)&&(U[D]={ref:K,...S},!i))return U}}return W(!0),U};const nr={mode:z.onSubmit,reValidateMode:z.onChange,shouldFocusError:!0};function ar(e={}){let s={...nr,...e},t={submitCount:0,isDirty:!1,isLoading:G(s.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:s.errors||{},disabled:s.disabled||!1};const i={};let a=O(s.defaultValues)||O(s.values)?M(s.values||s.defaultValues)||{}:{},l=s.shouldUnregister?{}:M(a),u={action:!1,mount:!1,watch:!1},y={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},v,A=0;const m={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let V={...m};const b={array:ze(),state:ze()},j=Ze(s.mode),L=Ze(s.reValidateMode),D=s.criteriaMode===z.all,p=r=>n=>{clearTimeout(A),A=setTimeout(r,n)},P=async r=>{if(!s.disabled&&(m.isValid||V.isValid||r)){const n=s.resolver?B((await J()).errors):await Z(i,!0);n!==t.isValid&&b.state.next({isValid:n})}},_=(r,n)=>{!s.disabled&&(m.isValidating||m.validatingFields||V.isValidating||V.validatingFields)&&((r||Array.from(y.mount)).forEach(o=>{o&&(n?w(t.validatingFields,o,n):T(t.validatingFields,o))}),b.state.next({validatingFields:t.validatingFields,isValidating:!B(t.validatingFields)}))},K=(r,n=[],o,h,d=!0,c=!0)=>{if(h&&o&&!s.disabled){if(u.action=!0,c&&Array.isArray(f(i,r))){const g=o(f(i,r),h.argA,h.argB);d&&w(i,r,g)}if(c&&Array.isArray(f(t.errors,r))){const g=o(f(t.errors,r),h.argA,h.argB);d&&w(t.errors,r,g),sr(t.errors,r)}if((m.touchedFields||V.touchedFields)&&c&&Array.isArray(f(t.touchedFields,r))){const g=o(f(t.touchedFields,r),h.argA,h.argB);d&&w(t.touchedFields,r,g)}(m.dirtyFields||V.dirtyFields)&&(t.dirtyFields=ue(a,l)),b.state.next({name:r,isDirty:F(r,n),dirtyFields:t.dirtyFields,errors:t.errors,isValid:t.isValid})}else w(l,r,n)},W=(r,n)=>{w(t.errors,r,n),b.state.next({errors:t.errors})},U=r=>{t.errors=r,b.state.next({errors:t.errors,isValid:!1})},ae=(r,n,o,h)=>{const d=f(i,r);if(d){const c=f(l,r,C(o)?f(a,r):o);C(c)||h&&h.defaultChecked||n?w(l,r,n?c:Xe(d._f)):H(r,c),u.mount&&P()}},le=(r,n,o,h,d)=>{let c=!1,g=!1;const E={name:r};if(!s.disabled){if(!o||h){(m.isDirty||V.isDirty)&&(g=t.isDirty,t.isDirty=E.isDirty=F(),c=g!==E.isDirty);const R=re(f(a,r),n);g=!!f(t.dirtyFields,r),R?T(t.dirtyFields,r):w(t.dirtyFields,r,!0),E.dirtyFields=t.dirtyFields,c=c||(m.dirtyFields||V.dirtyFields)&&g!==!R}if(o){const R=f(t.touchedFields,r);R||(w(t.touchedFields,r,o),E.touchedFields=t.touchedFields,c=c||(m.touchedFields||V.touchedFields)&&R!==o)}c&&d&&b.state.next(E)}return c?E:{}},Fe=(r,n,o,h)=>{const d=f(t.errors,r),c=(m.isValid||V.isValid)&&$(n)&&t.isValid!==n;if(s.delayError&&o?(v=p(()=>W(r,o)),v(s.delayError)):(clearTimeout(A),v=null,o?w(t.errors,r,o):T(t.errors,r)),(o?!re(d,o):d)||!B(h)||c){const g={...h,...c&&$(n)?{isValid:n}:{},errors:t.errors,name:r};t={...t,...g},b.state.next(g)}},J=async r=>{_(r,!0);const n=await s.resolver(l,s.context,Qt(r||y.mount,i,s.criteriaMode,s.shouldUseNativeValidation));return _(r),n},se=async r=>{const{errors:n}=await J(r);if(r)for(const o of r){const h=f(n,o);h?w(t.errors,o,h):T(t.errors,o)}else t.errors=n;return n},Z=async(r,n,o={valid:!0})=>{for(const h in r){const d=r[h];if(d){const{_f:c,...g}=d;if(c){const E=y.array.has(c.name),R=d._f&&Xt(d._f);R&&m.validatingFields&&_([h],!0);const N=await it(d,y.disabled,l,D,s.shouldUseNativeValidation&&!n,E);if(R&&m.validatingFields&&_([h]),N[c.name]&&(o.valid=!1,n))break;!n&&(f(N,c.name)?E?ir(t.errors,N,c.name):w(t.errors,c.name,N[c.name]):T(t.errors,c.name))}!B(g)&&await Z(g,n,o)}}return o.valid},S=()=>{for(const r of y.unMount){const n=f(i,r);n&&(n._f.refs?n._f.refs.every(o=>!De(o)):!De(n._f.ref))&&Ae(r)}y.unMount=new Set},F=(r,n)=>!s.disabled&&(r&&n&&w(l,r,n),!re(Ne(),a)),k=(r,n,o)=>yt(r,y,{...u.mount?l:C(n)?a:X(r)?{[r]:n}:n},o,n),q=r=>Ve(f(u.mount?l:a,r,s.shouldUnregister?f(a,r,[]):[])),H=(r,n,o={})=>{const h=f(i,r);let d=n;if(h){const c=h._f;c&&(!c.disabled&&w(l,r,mt(n,c)),d=be(c.ref)&&I(n)?"":n,gt(c.ref)?[...c.ref.options].forEach(g=>g.selected=d.includes(g.value)):c.refs?ye(c.ref)?c.refs.length>1?c.refs.forEach(g=>(!g.defaultChecked||!g.disabled)&&(g.checked=Array.isArray(d)?!!d.find(E=>E===g.value):d===g.value)):c.refs[0]&&(c.refs[0].checked=!!d):c.refs.forEach(g=>g.checked=g.value===d):Ue(c.ref)?c.ref.value="":(c.ref.value=d,c.ref.type||b.state.next({name:r,values:M(l)})))}(o.shouldDirty||o.shouldTouch)&&le(r,d,o.shouldTouch,o.shouldDirty,!0),o.shouldValidate&&xe(r)},Q=(r,n,o)=>{for(const h in n){const d=n[h],c=`${r}.${h}`,g=f(i,c);(y.array.has(r)||O(d)||g&&!g._f)&&!ie(d)?Q(c,d,o):H(c,d,o)}},te=(r,n,o={})=>{const h=f(i,r),d=y.array.has(r),c=M(n);w(l,r,c),d?(b.array.next({name:r,values:M(l)}),(m.isDirty||m.dirtyFields||V.isDirty||V.dirtyFields)&&o.shouldDirty&&b.state.next({name:r,dirtyFields:ue(a,l),isDirty:F(r,c)})):h&&!h._f&&!I(c)?Q(r,c,o):H(r,c,o),tt(r,y)&&b.state.next({...t}),b.state.next({name:u.mount?r:void 0,values:M(l)})},oe=async r=>{u.mount=!0;const n=r.target;let o=n.name,h=!0;const d=f(i,o),c=g=>{h=Number.isNaN(g)||ie(g)&&isNaN(g.getTime())||re(g,f(l,o,g))};if(d){let g,E;const R=n.type?Xe(d._f):ut(r),N=r.type===ve.BLUR||r.type===ve.FOCUS_OUT,Ct=!Zt(d._f)&&!s.resolver&&!f(t.errors,o)&&!d._f.deps||rr(N,f(t.touchedFields,o),t.isSubmitted,L,j),Se=tt(o,y,N);w(l,o,R),N?(d._f.onBlur&&d._f.onBlur(r),v&&v(0)):d._f.onChange&&d._f.onChange(r);const we=le(o,R,N),Ot=!B(we)||Se;if(!N&&b.state.next({name:o,type:r.type,values:M(l)}),Ct)return(m.isValid||V.isValid)&&(s.mode==="onBlur"?N&&P():N||P()),Ot&&b.state.next({name:o,...Se?{}:we});if(!N&&Se&&b.state.next({...t}),s.resolver){const{errors:Ke}=await J([o]);if(c(R),h){const Rt=rt(t.errors,i,o),Ye=rt(Ke,i,Rt.name||o);g=Ye.error,o=Ye.name,E=B(Ke)}}else _([o],!0),g=(await it(d,y.disabled,l,D,s.shouldUseNativeValidation))[o],_([o]),c(R),h&&(g?E=!1:(m.isValid||V.isValid)&&(E=await Z(i,!0)));h&&(d._f.deps&&xe(d._f.deps),Fe(o,E,g,we))}},he=(r,n)=>{if(f(t.errors,n)&&r.focus)return r.focus(),1},xe=async(r,n={})=>{let o,h;const d=de(r);if(s.resolver){const c=await se(C(r)?r:d);o=B(c),h=r?!d.some(g=>f(c,g)):o}else r?(h=(await Promise.all(d.map(async c=>{const g=f(i,c);return await Z(g&&g._f?{[c]:g}:g)}))).every(Boolean),!(!h&&!t.isValid)&&P()):h=o=await Z(i);return b.state.next({...!X(r)||(m.isValid||V.isValid)&&o!==t.isValid?{}:{name:r},...s.resolver||!r?{isValid:o}:{},errors:t.errors}),n.shouldFocus&&!h&&fe(i,he,r?d:y.mount),h},Ne=r=>{const n={...u.mount?l:a};return C(r)?n:X(r)?f(n,r):r.map(o=>f(n,o))},pe=(r,n)=>({invalid:!!f((n||t).errors,r),isDirty:!!f((n||t).dirtyFields,r),error:f((n||t).errors,r),isValidating:!!f(t.validatingFields,r),isTouched:!!f((n||t).touchedFields,r)}),xt=r=>{r&&de(r).forEach(n=>T(t.errors,n)),b.state.next({errors:r?t.errors:{}})},Pe=(r,n,o)=>{const h=(f(i,r,{_f:{}})._f||{}).ref,d=f(t.errors,r)||{},{ref:c,message:g,type:E,...R}=d;w(t.errors,r,{...R,...n,ref:h}),b.state.next({name:r,errors:t.errors,isValid:!1}),o&&o.shouldFocus&&h&&h.focus&&h.focus()},At=(r,n)=>G(r)?b.state.subscribe({next:o=>r(k(void 0,n),o)}):k(r,n,!0),Be=r=>b.state.subscribe({next:n=>{tr(r.name,n.name,r.exact)&&er(n,r.formState||m,kt,r.reRenderRoot)&&r.callback({values:{...l},...t,...n})}}).unsubscribe,Et=r=>(u.mount=!0,V={...V,...r.formState},Be({...r,formState:V})),Ae=(r,n={})=>{for(const o of r?de(r):y.mount)y.mount.delete(o),y.array.delete(o),n.keepValue||(T(i,o),T(l,o)),!n.keepError&&T(t.errors,o),!n.keepDirty&&T(t.dirtyFields,o),!n.keepTouched&&T(t.touchedFields,o),!n.keepIsValidating&&T(t.validatingFields,o),!s.shouldUnregister&&!n.keepDefaultValue&&T(a,o);b.state.next({values:M(l)}),b.state.next({...t,...n.keepDirty?{isDirty:F()}:{}}),!n.keepIsValid&&P()},Ie=({disabled:r,name:n})=>{($(r)&&u.mount||r||y.disabled.has(n))&&(r?y.disabled.add(n):y.disabled.delete(n))},Ee=(r,n={})=>{let o=f(i,r);const h=$(n.disabled)||$(s.disabled);return w(i,r,{...o||{},_f:{...o&&o._f?o._f:{ref:{name:r}},name:r,mount:!0,...n}}),y.mount.add(r),o?Ie({disabled:$(n.disabled)?n.disabled:s.disabled,name:r}):ae(r,!0,n.value),{...h?{disabled:n.disabled||s.disabled}:{},...s.progressive?{required:!!n.required,min:ce(n.min),max:ce(n.max),minLength:ce(n.minLength),maxLength:ce(n.maxLength),pattern:ce(n.pattern)}:{},name:r,onChange:oe,onBlur:oe,ref:d=>{if(d){Ee(r,n),o=f(i,r);const c=C(d.value)&&d.querySelectorAll&&d.querySelectorAll("input,select,textarea")[0]||d,g=zt(c),E=o._f.refs||[];if(g?E.find(R=>R===c):c===o._f.ref)return;w(i,r,{_f:{...o._f,...g?{refs:[...E.filter(De),c,...Array.isArray(f(a,r))?[{}]:[]],ref:{type:c.type,name:r}}:{ref:c}}}),ae(r,!1,void 0,c)}else o=f(i,r,{}),o._f&&(o._f.mount=!1),(s.shouldUnregister||n.shouldUnregister)&&!(ct(y.array,r)&&u.action)&&y.unMount.add(r)}}},qe=()=>s.shouldFocusError&&fe(i,he,y.mount),St=r=>{$(r)&&(b.state.next({disabled:r}),fe(i,(n,o)=>{const h=f(i,o);h&&(n.disabled=h._f.disabled||r,Array.isArray(h._f.refs)&&h._f.refs.forEach(d=>{d.disabled=h._f.disabled||r}))},0,!1))},je=(r,n)=>async o=>{let h;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let d=M(l);if(b.state.next({isSubmitting:!0}),s.resolver){const{errors:c,values:g}=await J();t.errors=c,d=g}else await Z(i);if(y.disabled.size)for(const c of y.disabled)w(d,c,void 0);if(T(t.errors,"root"),B(t.errors)){b.state.next({errors:{}});try{await r(d,o)}catch(c){h=c}}else n&&await n({...t.errors},o),qe(),setTimeout(qe);if(b.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:B(t.errors)&&!h,submitCount:t.submitCount+1,errors:t.errors}),h)throw h},wt=(r,n={})=>{f(i,r)&&(C(n.defaultValue)?te(r,M(f(a,r))):(te(r,n.defaultValue),w(a,r,M(n.defaultValue))),n.keepTouched||T(t.touchedFields,r),n.keepDirty||(T(t.dirtyFields,r),t.isDirty=n.defaultValue?F(r,M(f(a,r))):F()),n.keepError||(T(t.errors,r),m.isValid&&P()),b.state.next({...t}))},We=(r,n={})=>{const o=r?M(r):a,h=M(o),d=B(r),c=d?a:h;if(n.keepDefaultValues||(a=o),!n.keepValues){if(n.keepDirtyValues){const g=new Set([...y.mount,...Object.keys(ue(a,l))]);for(const E of Array.from(g))f(t.dirtyFields,E)?w(c,E,f(l,E)):te(E,f(c,E))}else{if(Re&&C(r))for(const g of y.mount){const E=f(i,g);if(E&&E._f){const R=Array.isArray(E._f.refs)?E._f.refs[0]:E._f.ref;if(be(R)){const N=R.closest("form");if(N){N.reset();break}}}}for(const g of y.mount)te(g,f(c,g))}l=M(c),b.array.next({values:{...c}}),b.state.next({values:{...c}})}y={mount:n.keepDirtyValues?y.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},u.mount=!m.isValid||!!n.keepIsValid||!!n.keepDirtyValues,u.watch=!!s.shouldUnregister,b.state.next({submitCount:n.keepSubmitCount?t.submitCount:0,isDirty:d?!1:n.keepDirty?t.isDirty:!!(n.keepDefaultValues&&!re(r,a)),isSubmitted:n.keepIsSubmitted?t.isSubmitted:!1,dirtyFields:d?{}:n.keepDirtyValues?n.keepDefaultValues&&l?ue(a,l):t.dirtyFields:n.keepDefaultValues&&r?ue(a,r):n.keepDirty?t.dirtyFields:{},touchedFields:n.keepTouched?t.touchedFields:{},errors:n.keepErrors?t.errors:{},isSubmitSuccessful:n.keepIsSubmitSuccessful?t.isSubmitSuccessful:!1,isSubmitting:!1})},$e=(r,n)=>We(G(r)?r(l):r,n),Dt=(r,n={})=>{const o=f(i,r),h=o&&o._f;if(h){const d=h.refs?h.refs[0]:h.ref;d.focus&&(d.focus(),n.shouldSelect&&G(d.select)&&d.select())}},kt=r=>{t={...t,...r}},He={control:{register:Ee,unregister:Ae,getFieldState:pe,handleSubmit:je,setError:Pe,_subscribe:Be,_runSchema:J,_getWatch:k,_getDirty:F,_setValid:P,_setFieldArray:K,_setDisabledField:Ie,_setErrors:U,_getFieldArray:q,_reset:We,_resetDefaultValues:()=>G(s.defaultValues)&&s.defaultValues().then(r=>{$e(r,s.resetOptions),b.state.next({isLoading:!1})}),_removeUnmounted:S,_disableForm:St,_subjects:b,_proxyFormState:m,get _fields(){return i},get _formValues(){return l},get _state(){return u},set _state(r){u=r},get _defaultValues(){return a},get _names(){return y},set _names(r){y=r},get _formState(){return t},get _options(){return s},set _options(r){s={...s,...r}}},subscribe:Et,trigger:xe,register:Ee,handleSubmit:je,watch:At,setValue:te,getValues:Ne,reset:$e,resetField:wt,clearErrors:xt,unregister:Ae,setError:Pe,setFocus:Dt,getFieldState:pe};return{...He,formControl:He}}function lr(e={}){const s=x.useRef(void 0),t=x.useRef(void 0),[i,a]=x.useState({isDirty:!1,isValidating:!1,isLoading:G(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,defaultValues:G(e.defaultValues)?void 0:e.defaultValues});s.current||(s.current={...e.formControl?e.formControl:ar(e),formState:i},e.formControl&&e.defaultValues&&!G(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions));const l=s.current.control;return l._options=e,x.useLayoutEffect(()=>l._subscribe({formState:l._proxyFormState,callback:()=>a({...l._formState}),reRenderRoot:!0}),[l]),x.useEffect(()=>l._disableForm(e.disabled),[l,e.disabled]),x.useEffect(()=>{if(l._proxyFormState.isDirty){const u=l._getDirty();u!==i.isDirty&&l._subjects.state.next({isDirty:u})}},[l,i.isDirty]),x.useEffect(()=>{e.values&&!re(e.values,t.current)?(l._reset(e.values,l._options.resetOptions),t.current=e.values,a(u=>({...u}))):l._resetDefaultValues()},[e.values,l]),x.useEffect(()=>{e.errors&&!B(e.errors)&&l._setErrors(e.errors)},[e.errors,l]),x.useEffect(()=>{l._state.mount||(l._setValid(),l._state.mount=!0),l._state.watch&&(l._state.watch=!1,l._subjects.state.next({...l._formState})),l._removeUnmounted()}),x.useEffect(()=>{e.shouldUnregister&&l._subjects.state.next({values:l._getWatch()})},[e.shouldUnregister,l]),s.current.formState=ft(i,l),s.current}const nt=(e,s,t)=>{if(e&&"reportValidity"in e){const i=f(t,s);e.setCustomValidity(i&&i.message||""),e.reportValidity()}},Ft=(e,s)=>{for(const t in s.fields){const i=s.fields[t];i&&i.ref&&"reportValidity"in i.ref?nt(i.ref,t,e):i&&i.refs&&i.refs.forEach(a=>nt(a,t,e))}},or=(e,s)=>{s.shouldUseNativeValidation&&Ft(e,s);const t={};for(const i in e){const a=f(s.fields,i),l=Object.assign(e[i]||{},{ref:a&&a.ref});if(ur(s.names||Object.keys(e),i)){const u=Object.assign({},f(t,i));w(u,"root",l),w(t,i,u)}else w(t,i,l)}return t},ur=(e,s)=>{const t=at(s);return e.some(i=>at(i).match(`^${t}\\.\\d+`))};function at(e){return e.replace(/\]|\[/g,"")}function cr(e,s){for(var t={};e.length;){var i=e[0],a=i.code,l=i.message,u=i.path.join(".");if(!t[u])if("unionErrors"in i){var y=i.unionErrors[0].errors[0];t[u]={message:y.message,type:y.code}}else t[u]={message:l,type:a};if("unionErrors"in i&&i.unionErrors.forEach(function(m){return m.errors.forEach(function(V){return e.push(V)})}),s){var v=t[u].types,A=v&&v[i.code];t[u]=ht(u,s,t,a,A?[].concat(A,i.message):i.message)}e.shift()}return t}function dr(e,s,t){return t===void 0&&(t={}),function(i,a,l){try{return Promise.resolve(function(u,y){try{var v=Promise.resolve(e[t.mode==="sync"?"parse":"parseAsync"](i,s)).then(function(A){return l.shouldUseNativeValidation&&Ft({},l),{errors:{},values:t.raw?Object.assign({},i):A}})}catch(A){return y(A)}return v&&v.then?v.then(void 0,y):v}(0,function(u){if(function(y){return Array.isArray(y==null?void 0:y.errors)}(u))return{values:{},errors:or(cr(u.errors,!l.shouldUseNativeValidation&&l.criteriaMode==="all"),l)};throw u}))}catch(u){return Promise.reject(u)}}}const Oe="FORM_ERROR";class fr extends Error{constructor(s){super("Form validation field when submitting"),this.fieldErrors=s}}const yr=({formSchema:e,...s})=>{const t=lr({resolver:dr(e),...s}),{formState:{isValid:i,isDirty:a,errors:l},setError:u}=t,y=()=>new Promise((b,j)=>{t.handleSubmit(L=>{b(L)},L=>{const D=new fr(L);j(D)})()}),v=x.useCallback((b,j)=>{const L={message:Lt.parseUnknownError(b)};u(Oe,L,j)},[u]),A=(b,j)=>t.handleSubmit(async(...L)=>{try{await b(...L)}catch(D){v(D)}},j),m=l[Oe];return{...t,submitAsync:y,formError:m,setFormError:v,isSubmitDisabled:!i||!a,handleSubmit:A}},hr=({label:e,id:s,...t})=>Y.jsx(Tt.Tooltip,{...t,children:Y.jsx("button",{type:"button",className:"focus-ring rounded-md","aria-label":["More information about the",ke.ensureString(e)??s,"field"].filter(Boolean).join(" "),children:Y.jsx(lt,{className:"text-muted-foreground size-4"})})}),gr=({label:e,name:s,className:t,checkEmptyError:i,render:a,error:l,tooltip:u,...y})=>{const v=s;return Y.jsx(Yt,{...y,name:s,render:A=>{const m=`${v}-error`,V=l??A.fieldState.error,b={...A.field,id:v,"aria-errormessage":V?m:"","aria-invalid":!!V};return Y.jsxs("div",{className:t,children:[u||e?Y.jsxs("div",{className:"mb-2 flex gap-2",children:[e&&Y.jsx(Nt.Label,{htmlFor:v,children:e}),u&&Y.jsx(hr,{tooltip:u,label:e,id:v})]}):null,a({...A,field:b}),Y.jsx(Mt.Error,{id:m,checkEmpty:i,children:V==null?void 0:V.message})]})}})},vr=({formError:e,className:s,prefix:t,...i})=>e?Y.jsx(Pt.StateContainer,{padding:!1,className:Bt.cn("pb-5",s),children:Y.jsxs(pt.ErrorState,{...i,children:[t,ke.isObject(e)&&"message"in e&&ke.isString(e.message)?e.message:e]})}):null;exports.FORM_ERROR_KEY=Oe;exports.Field=gr;exports.FormError=vr;exports.Info=lt;exports.useForm=yr;