UNPKG

@stanfordspezi/spezi-web-design-system

Version:

Stanford Biodesign Digital Health Spezi Web Design System

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