smartstepper
Version:
SmartStepper is a modern, customizable React stepper component for building multi-step forms, wizards, and onboarding flows. Integrates with react-hook-form, supports Yup/Zod validation, and offers a flexible, config-driven API for dynamic forms.
1 lines • 27.4 kB
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`);c=s(c,1);let l=require(`react/jsx-runtime`);var u=e=>e.type===`checkbox`,d=e=>e instanceof Date,f=e=>e==null,p=e=>typeof e==`object`,m=e=>!f(e)&&!Array.isArray(e)&&p(e)&&!d(e),h=e=>m(e)&&e.target?u(e.target)?e.target.checked:e.target.value:e,g=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,_=(e,t)=>e.has(g(t)),v=e=>{let t=e.constructor&&e.constructor.prototype;return m(t)&&t.hasOwnProperty(`isPrototypeOf`)},y=typeof window<`u`&&window.HTMLElement!==void 0&&typeof document<`u`;function b(e){let t,n=Array.isArray(e),r=typeof FileList<`u`?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else if(!(y&&(e instanceof Blob||r))&&(n||m(e)))if(t=n?[]:{},!n&&!v(e))t=e;else for(let n in e)e.hasOwnProperty(n)&&(t[n]=b(e[n]));else return e;return t}var x=e=>/^\w*$/.test(e),S=e=>e===void 0,C=e=>Array.isArray(e)?e.filter(Boolean):[],w=e=>C(e.replace(/["|']|\]/g,``).split(/\.|\[/)),T=(e,t,n)=>{if(!t||!m(e))return n;let r=(x(t)?[t]:w(t)).reduce((e,t)=>f(e)?e:e[t],e);return S(r)||r===e?S(e[t])?n:e[t]:r},E=e=>typeof e==`boolean`,D=(e,t,n)=>{let r=-1,i=x(t)?[t]:w(t),a=i.length,o=a-1;for(;++r<a;){let t=i[r],a=n;if(r!==o){let n=e[t];a=m(n)||Array.isArray(n)?n:isNaN(+i[r+1])?{}:[]}if(t===`__proto__`||t===`constructor`||t===`prototype`)return;e[t]=a,e=e[t]}},O={BLUR:`blur`,FOCUS_OUT:`focusout`,CHANGE:`change`},k={onBlur:`onBlur`,onChange:`onChange`,onSubmit:`onSubmit`,onTouched:`onTouched`,all:`all`},A={max:`max`,min:`min`,maxLength:`maxLength`,minLength:`minLength`,pattern:`pattern`,required:`required`,validate:`validate`},j=c.default.createContext(null);j.displayName=`HookFormContext`;var M=()=>c.default.useContext(j),N=(e,t,n,r=!0)=>{let i={defaultValues:t._defaultValues};for(let a in e)Object.defineProperty(i,a,{get:()=>{let i=a;return t._proxyFormState[i]!==k.all&&(t._proxyFormState[i]=!r||k.all),n&&(n[i]=!0),e[i]}});return i},P=typeof window<`u`?c.useLayoutEffect:c.useEffect;function ee(e){let t=M(),{control:n=t.control,disabled:r,name:i,exact:a}=e||{},[o,s]=c.default.useState(n._formState),l=c.default.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return P(()=>n._subscribe({name:i,formState:l.current,exact:a,callback:e=>{!r&&s({...n._formState,...e})}}),[i,r,a]),c.default.useEffect(()=>{l.current.isValid&&n._setValid(!0)},[n]),c.default.useMemo(()=>N(o,n,l.current,!1),[o,n])}var F=e=>typeof e==`string`,te=(e,t,n,r,i)=>F(e)?(r&&t.watch.add(e),T(n,e,i)):Array.isArray(e)?e.map(e=>(r&&t.watch.add(e),T(n,e))):(r&&(t.watchAll=!0),n);function ne(e){let t=M(),{control:n=t.control,name:r,defaultValue:i,disabled:a,exact:o}=e||{},s=c.default.useRef(i),[l,u]=c.default.useState(n._getWatch(r,s.current));return P(()=>n._subscribe({name:r,formState:{values:!0},exact:o,callback:e=>!a&&u(te(r,n._names,e.values||n._formValues,!1,s.current))}),[r,n,a,o]),c.default.useEffect(()=>n._removeUnmounted()),l}function re(e){let t=M(),{name:n,disabled:r,control:i=t.control,shouldUnregister:a}=e,o=_(i._names.array,n),s=ne({control:i,name:n,defaultValue:T(i._formValues,n,T(i._defaultValues,n,e.defaultValue)),exact:!0}),l=ee({control:i,name:n,exact:!0}),u=c.default.useRef(e),d=c.default.useRef(i.register(n,{...e.rules,value:s,...E(e.disabled)?{disabled:e.disabled}:{}})),f=c.default.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!T(l.errors,n)},isDirty:{enumerable:!0,get:()=>!!T(l.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!T(l.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!T(l.validatingFields,n)},error:{enumerable:!0,get:()=>T(l.errors,n)}}),[l,n]),p=c.default.useCallback(e=>d.current.onChange({target:{value:h(e),name:n},type:O.CHANGE}),[n]),m=c.default.useCallback(()=>d.current.onBlur({target:{value:T(i._formValues,n),name:n},type:O.BLUR}),[n,i._formValues]),g=c.default.useCallback(e=>{let t=T(i._fields,n);t&&e&&(t._f.ref={focus:()=>e.focus&&e.focus(),select:()=>e.select&&e.select(),setCustomValidity:t=>e.setCustomValidity(t),reportValidity:()=>e.reportValidity()})},[i._fields,n]),v=c.default.useMemo(()=>({name:n,value:s,...E(r)||l.disabled?{disabled:l.disabled||r}:{},onChange:p,onBlur:m,ref:g}),[n,r,l.disabled,p,m,g,s]);return c.default.useEffect(()=>{let e=i._options.shouldUnregister||a;i.register(n,{...u.current.rules,...E(u.current.disabled)?{disabled:u.current.disabled}:{}});let t=(e,t)=>{let n=T(i._fields,e);n&&n._f&&(n._f.mount=t)};if(t(n,!0),e){let e=b(T(i._options.defaultValues,n));D(i._defaultValues,n,e),S(T(i._formValues,n))&&D(i._formValues,n,e)}return!o&&i.register(n),()=>{(o?e&&!i._state.action:e)?i.unregister(n):t(n,!1)}},[n,i,o,a]),c.default.useEffect(()=>{i._setDisabledField({disabled:r,name:n})},[r,n,i]),c.default.useMemo(()=>({field:v,formState:l,fieldState:f}),[v,l,f])}var I=e=>e.render(re(e)),ie=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},L=e=>Array.isArray(e)?e:[e],ae=()=>{let e=[];return{get observers(){return e},next:t=>{for(let n of e)n.next&&n.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}},R=e=>f(e)||!p(e);function z(e,t,n=new WeakSet){if(R(e)||R(t))return e===t;if(d(e)&&d(t))return e.getTime()===t.getTime();let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;if(n.has(e)||n.has(t))return!0;n.add(e),n.add(t);for(let a of r){let r=e[a];if(!i.includes(a))return!1;if(a!==`ref`){let e=t[a];if(d(r)&&d(e)||m(r)&&m(e)||Array.isArray(r)&&Array.isArray(e)?!z(r,e,n):r!==e)return!1}}return!0}var B=e=>m(e)&&!Object.keys(e).length,oe=e=>e.type===`file`,V=e=>typeof e==`function`,se=e=>{if(!y)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},ce=e=>e.type===`select-multiple`,le=e=>e.type===`radio`,ue=e=>le(e)||u(e),de=e=>se(e)&&e.isConnected;function H(e,t){let n=t.slice(0,-1).length,r=0;for(;r<n;)e=S(e)?r++:e[t[r++]];return e}function fe(e){for(let t in e)if(e.hasOwnProperty(t)&&!S(e[t]))return!1;return!0}function U(e,t){let n=Array.isArray(t)?t:x(t)?[t]:w(t),r=n.length===1?e:H(e,n),i=n.length-1,a=n[i];return r&&delete r[a],i!==0&&(m(r)&&B(r)||Array.isArray(r)&&fe(r))&&U(e,n.slice(0,-1)),e}var pe=e=>{for(let t in e)if(V(e[t]))return!0;return!1};function W(e,t={}){let n=Array.isArray(e);if(m(e)||n)for(let n in e)Array.isArray(e[n])||m(e[n])&&!pe(e[n])?(t[n]=Array.isArray(e[n])?[]:{},W(e[n],t[n])):f(e[n])||(t[n]=!0);return t}function me(e,t,n){let r=Array.isArray(e);if(m(e)||r)for(let r in e)Array.isArray(e[r])||m(e[r])&&!pe(e[r])?S(t)||R(n[r])?n[r]=Array.isArray(e[r])?W(e[r],[]):{...W(e[r])}:me(e[r],f(t)?{}:t[r],n[r]):n[r]=!z(e[r],t[r]);return n}var G=(e,t)=>me(e,t,W(t)),K={value:!1,isValid:!1},he={value:!0,isValid:!0},ge=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!S(e[0].attributes.value)?S(e[0].value)||e[0].value===``?he:{value:e[0].value,isValid:!0}:he:K}return K},_e=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>S(e)?e:t?e===``?NaN:e&&+e:n&&F(e)?new Date(e):r?r(e):e,q={isValid:!1,value:null},ve=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,q):q;function ye(e){let t=e.ref;return oe(t)?t.files:le(t)?ve(e.refs).value:ce(t)?[...t.selectedOptions].map(({value:e})=>e):u(t)?ge(e.refs).value:_e(S(t.value)?e.ref.value:t.value,e)}var be=(e,t,n,r)=>{let i={};for(let n of e){let e=T(t,n);e&&D(i,n,e._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},J=e=>e instanceof RegExp,Y=e=>S(e)?e:J(e)?e.source:m(e)?J(e.value)?e.value.source:e.value:e,xe=e=>({isOnSubmit:!e||e===k.onSubmit,isOnBlur:e===k.onBlur,isOnChange:e===k.onChange,isOnAll:e===k.all,isOnTouch:e===k.onTouched}),Se=`AsyncFunction`,Ce=e=>!!e&&!!e.validate&&!!(V(e.validate)&&e.validate.constructor.name===Se||m(e.validate)&&Object.values(e.validate).find(e=>e.constructor.name===Se)),we=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Te=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(t=>e.startsWith(t)&&/^\.\w+/.test(e.slice(t.length)))),X=(e,t,n,r)=>{for(let i of n||Object.keys(e)){let n=T(e,i);if(n){let{_f:e,...a}=n;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],i)&&!r||e.ref&&t(e.ref,e.name)&&!r)return!0;if(X(a,t))break}else if(m(a)&&X(a,t))break}}};function Ee(e,t,n){let r=T(e,n);if(r||x(n))return{error:r,name:n};let i=n.split(`.`);for(;i.length;){let r=i.join(`.`),a=T(t,r),o=T(e,r);if(a&&!Array.isArray(a)&&n!==r)return{name:n};if(o&&o.type)return{name:r,error:o};if(o&&o.root&&o.root.type)return{name:`${r}.root`,error:o.root};i.pop()}return{name:n}}var De=(e,t,n,r)=>{n(e);let{name:i,...a}=e;return B(a)||Object.keys(a).length>=Object.keys(t).length||Object.keys(a).find(e=>t[e]===(!r||k.all))},Oe=(e,t,n)=>!e||!t||e===t||L(e).some(e=>e&&(n?e===t:e.startsWith(t)||t.startsWith(e))),ke=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:(n?r.isOnChange:i.isOnChange)?e:!0,Ae=(e,t)=>!C(T(e,t)).length&&U(e,t),je=(e,t,n)=>{let r=L(T(e,n));return D(r,`root`,t[n]),D(e,n,r),e},Z=e=>F(e);function Me(e,t,n=`validate`){if(Z(e)||Array.isArray(e)&&e.every(Z)||E(e)&&!e)return{type:n,message:Z(e)?e:``,ref:t}}var Q=e=>m(e)&&!J(e)?e:{value:e,message:``},Ne=async(e,t,n,r,i,a)=>{let{ref:o,refs:s,required:c,maxLength:l,minLength:d,min:p,max:h,pattern:g,validate:_,name:v,valueAsNumber:y,mount:b}=e._f,x=T(n,v);if(!b||t.has(v))return{};let C=s?s[0]:o,w=e=>{i&&C.reportValidity&&(C.setCustomValidity(E(e)?``:e||``),C.reportValidity())},D={},O=le(o),k=u(o),j=O||k,M=(y||oe(o))&&S(o.value)&&S(x)||se(o)&&o.value===``||x===``||Array.isArray(x)&&!x.length,N=ie.bind(null,v,r,D),P=(e,t,n,r=A.maxLength,i=A.minLength)=>{let a=e?t:n;D[v]={type:e?r:i,message:a,ref:o,...N(e?r:i,a)}};if(a?!Array.isArray(x)||!x.length:c&&(!j&&(M||f(x))||E(x)&&!x||k&&!ge(s).isValid||O&&!ve(s).isValid)){let{value:e,message:t}=Z(c)?{value:!!c,message:c}:Q(c);if(e&&(D[v]={type:A.required,message:t,ref:C,...N(A.required,t)},!r))return w(t),D}if(!M&&(!f(p)||!f(h))){let e,t,n=Q(h),i=Q(p);if(!f(x)&&!isNaN(x)){let r=o.valueAsNumber||x&&+x;f(n.value)||(e=r>n.value),f(i.value)||(t=r<i.value)}else{let r=o.valueAsDate||new Date(x),a=e=>new Date(new Date().toDateString()+` `+e),s=o.type==`time`,c=o.type==`week`;F(n.value)&&x&&(e=s?a(x)>a(n.value):c?x>n.value:r>new Date(n.value)),F(i.value)&&x&&(t=s?a(x)<a(i.value):c?x<i.value:r<new Date(i.value))}if((e||t)&&(P(!!e,n.message,i.message,A.max,A.min),!r))return w(D[v].message),D}if((l||d)&&!M&&(F(x)||a&&Array.isArray(x))){let e=Q(l),t=Q(d),n=!f(e.value)&&x.length>+e.value,i=!f(t.value)&&x.length<+t.value;if((n||i)&&(P(n,e.message,t.message),!r))return w(D[v].message),D}if(g&&!M&&F(x)){let{value:e,message:t}=Q(g);if(J(e)&&!x.match(e)&&(D[v]={type:A.pattern,message:t,ref:o,...N(A.pattern,t)},!r))return w(t),D}if(_){if(V(_)){let e=Me(await _(x,n),C);if(e&&(D[v]={...e,...N(A.validate,e.message)},!r))return w(e.message),D}else if(m(_)){let e={};for(let t in _){if(!B(e)&&!r)break;let i=Me(await _[t](x,n),C,t);i&&(e={...i,...N(t,i.message)},w(i.message),r&&(D[v]=e))}if(!B(e)&&(D[v]={ref:C,...e},!r))return D}}return w(!0),D},Pe={mode:k.onSubmit,reValidateMode:k.onChange,shouldFocusError:!0};function Fe(e={}){let t={...Pe,...e},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:V(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},i=(m(t.defaultValues)||m(t.values))&&b(t.defaultValues||t.values)||{},a=t.shouldUnregister?{}:b(i),o={action:!1,mount:!1,watch:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},c,l=0,p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},g={...p},v={array:ae(),state:ae()},x=t.criteriaMode===k.all,w=e=>t=>{clearTimeout(l),l=setTimeout(e,t)},A=async e=>{if(!t.disabled&&(p.isValid||g.isValid||e)){let e=t.resolver?B((await I()).errors):await R(r,!0);e!==n.isValid&&v.state.next({isValid:e})}},j=(e,r)=>{!t.disabled&&(p.isValidating||p.validatingFields||g.isValidating||g.validatingFields)&&((e||Array.from(s.mount)).forEach(e=>{e&&(r?D(n.validatingFields,e,r):U(n.validatingFields,e))}),v.state.next({validatingFields:n.validatingFields,isValidating:!B(n.validatingFields)}))},M=(e,s=[],c,l,u=!0,d=!0)=>{if(l&&c&&!t.disabled){if(o.action=!0,d&&Array.isArray(T(r,e))){let t=c(T(r,e),l.argA,l.argB);u&&D(r,e,t)}if(d&&Array.isArray(T(n.errors,e))){let t=c(T(n.errors,e),l.argA,l.argB);u&&D(n.errors,e,t),Ae(n.errors,e)}if((p.touchedFields||g.touchedFields)&&d&&Array.isArray(T(n.touchedFields,e))){let t=c(T(n.touchedFields,e),l.argA,l.argB);u&&D(n.touchedFields,e,t)}(p.dirtyFields||g.dirtyFields)&&(n.dirtyFields=G(i,a)),v.state.next({name:e,isDirty:H(e,s),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else D(a,e,s)},N=(e,t)=>{D(n.errors,e,t),v.state.next({errors:n.errors})},P=e=>{n.errors=e,v.state.next({errors:n.errors,isValid:!1})},ee=(e,t,n,s)=>{let c=T(r,e);if(c){let r=T(a,e,S(n)?T(i,e):n);S(r)||s&&s.defaultChecked||t?D(a,e,t?r:ye(c._f)):W(e,r),o.mount&&A()}},ne=(e,r,a,o,s)=>{let c=!1,l=!1,u={name:e};if(!t.disabled){if(!a||o){(p.isDirty||g.isDirty)&&(l=n.isDirty,n.isDirty=u.isDirty=H(),c=l!==u.isDirty);let t=z(T(i,e),r);l=!!T(n.dirtyFields,e),t?U(n.dirtyFields,e):D(n.dirtyFields,e,!0),u.dirtyFields=n.dirtyFields,c||=(p.dirtyFields||g.dirtyFields)&&l!==!t}if(a){let t=T(n.touchedFields,e);t||(D(n.touchedFields,e,a),u.touchedFields=n.touchedFields,c||=(p.touchedFields||g.touchedFields)&&t!==a)}c&&s&&v.state.next(u)}return c?u:{}},re=(e,r,i,a)=>{let o=T(n.errors,e),s=(p.isValid||g.isValid)&&E(r)&&n.isValid!==r;if(t.delayError&&i?(c=w(()=>N(e,i)),c(t.delayError)):(clearTimeout(l),c=null,i?D(n.errors,e,i):U(n.errors,e)),(i?!z(o,i):o)||!B(a)||s){let t={...a,...s&&E(r)?{isValid:r}:{},errors:n.errors,name:e};n={...n,...t},v.state.next(t)}},I=async e=>{j(e,!0);let n=await t.resolver(a,t.context,be(e||s.mount,r,t.criteriaMode,t.shouldUseNativeValidation));return j(e),n},ie=async e=>{let{errors:t}=await I(e);if(e)for(let r of e){let e=T(t,r);e?D(n.errors,r,e):U(n.errors,r)}else n.errors=t;return t},R=async(e,r,i={valid:!0})=>{for(let o in e){let c=e[o];if(c){let{_f:e,...l}=c;if(e){let l=s.array.has(e.name),u=c._f&&Ce(c._f);u&&p.validatingFields&&j([o],!0);let d=await Ne(c,s.disabled,a,x,t.shouldUseNativeValidation&&!r,l);if(u&&p.validatingFields&&j([o]),d[e.name]&&(i.valid=!1,r))break;!r&&(T(d,e.name)?l?je(n.errors,d,e.name):D(n.errors,e.name,d[e.name]):U(n.errors,e.name))}!B(l)&&await R(l,r,i)}}return i.valid},le=()=>{for(let e of s.unMount){let t=T(r,e);t&&(t._f.refs?t._f.refs.every(e=>!de(e)):!de(t._f.ref))&&Ie(e)}s.unMount=new Set},H=(e,n)=>!t.disabled&&(e&&n&&D(a,e,n),!z(ve(),i)),fe=(e,t,n)=>te(e,s,{...o.mount?a:S(t)?i:F(e)?{[e]:t}:t},n,t),pe=e=>C(T(o.mount?a:i,e,t.shouldUnregister?T(i,e,[]):[])),W=(e,t,n={})=>{let i=T(r,e),o=t;if(i){let n=i._f;n&&(!n.disabled&&D(a,e,_e(t,n)),o=se(n.ref)&&f(t)?``:t,ce(n.ref)?[...n.ref.options].forEach(e=>e.selected=o.includes(e.value)):n.refs?u(n.ref)?n.refs.forEach(e=>{(!e.defaultChecked||!e.disabled)&&(Array.isArray(o)?e.checked=!!o.find(t=>t===e.value):e.checked=o===e.value||!!o)}):n.refs.forEach(e=>e.checked=e.value===o):oe(n.ref)?n.ref.value=``:(n.ref.value=o,n.ref.type||v.state.next({name:e,values:b(a)})))}(n.shouldDirty||n.shouldTouch)&&ne(e,o,n.shouldTouch,n.shouldDirty,!0),n.shouldValidate&&q(e)},me=(e,t,n)=>{for(let i in t){if(!t.hasOwnProperty(i))return;let a=t[i],o=e+`.`+i,c=T(r,o);(s.array.has(e)||m(a)||c&&!c._f)&&!d(a)?me(o,a,n):W(o,a,n)}},K=(e,t,c={})=>{let l=T(r,e),u=s.array.has(e),d=b(t);D(a,e,d),u?(v.array.next({name:e,values:b(a)}),(p.isDirty||p.dirtyFields||g.isDirty||g.dirtyFields)&&c.shouldDirty&&v.state.next({name:e,dirtyFields:G(i,a),isDirty:H(e,d)})):l&&!l._f&&!f(d)?me(e,d,c):W(e,d,c),Te(e,s)&&v.state.next({...n}),v.state.next({name:o.mount?e:void 0,values:b(a)})},he=async e=>{o.mount=!0;let i=e.target,l=i.name,u=!0,f=T(r,l),m=e=>{u=Number.isNaN(e)||d(e)&&isNaN(e.getTime())||z(e,T(a,l,e))},_=xe(t.mode),y=xe(t.reValidateMode);if(f){let o,d,S=i.type?ye(f._f):h(e),C=e.type===O.BLUR||e.type===O.FOCUS_OUT,w=!we(f._f)&&!t.resolver&&!T(n.errors,l)&&!f._f.deps||ke(C,T(n.touchedFields,l),n.isSubmitted,y,_),E=Te(l,s,C);D(a,l,S),C?(f._f.onBlur&&f._f.onBlur(e),c&&c(0)):f._f.onChange&&f._f.onChange(e);let k=ne(l,S,C),M=!B(k)||E;if(!C&&v.state.next({name:l,type:e.type,values:b(a)}),w)return(p.isValid||g.isValid)&&(t.mode===`onBlur`?C&&A():C||A()),M&&v.state.next({name:l,...E?{}:k});if(!C&&E&&v.state.next({...n}),t.resolver){let{errors:e}=await I([l]);if(m(S),u){let t=Ee(e,r,Ee(n.errors,r,l).name||l);o=t.error,l=t.name,d=B(e)}}else j([l],!0),o=(await Ne(f,s.disabled,a,x,t.shouldUseNativeValidation))[l],j([l]),m(S),u&&(o?d=!1:(p.isValid||g.isValid)&&(d=await R(r,!0)));u&&(f._f.deps&&q(f._f.deps),re(l,d,o,k))}},ge=(e,t)=>{if(T(n.errors,t)&&e.focus)return e.focus(),1},q=async(e,i={})=>{let a,o,c=L(e);if(t.resolver){let t=await ie(S(e)?e:c);a=B(t),o=e?!c.some(e=>T(t,e)):a}else e?(o=(await Promise.all(c.map(async e=>{let t=T(r,e);return await R(t&&t._f?{[e]:t}:t)}))).every(Boolean),!(!o&&!n.isValid)&&A()):o=a=await R(r);return v.state.next({...!F(e)||(p.isValid||g.isValid)&&a!==n.isValid?{}:{name:e},...t.resolver||!e?{isValid:a}:{},errors:n.errors}),i.shouldFocus&&!o&&X(r,ge,e?c:s.mount),o},ve=e=>{let t={...o.mount?a:i};return S(e)?t:F(e)?T(t,e):e.map(e=>T(t,e))},J=(e,t)=>({invalid:!!T((t||n).errors,e),isDirty:!!T((t||n).dirtyFields,e),error:T((t||n).errors,e),isValidating:!!T(n.validatingFields,e),isTouched:!!T((t||n).touchedFields,e)}),Se=e=>{e&&L(e).forEach(e=>U(n.errors,e)),v.state.next({errors:e?n.errors:{}})},Z=(e,t,i)=>{let a=(T(r,e,{_f:{}})._f||{}).ref,{ref:o,message:s,type:c,...l}=T(n.errors,e)||{};D(n.errors,e,{...l,...t,ref:a}),v.state.next({name:e,errors:n.errors,isValid:!1}),i&&i.shouldFocus&&a&&a.focus&&a.focus()},Me=(e,t)=>V(e)?v.state.subscribe({next:n=>e(fe(void 0,t),n)}):fe(e,t,!0),Q=e=>v.state.subscribe({next:t=>{Oe(e.name,t.name,e.exact)&&De(t,e.formState||p,Ge,e.reRenderRoot)&&e.callback({values:{...a},...n,...t})}}).unsubscribe,Fe=e=>(o.mount=!0,g={...g,...e.formState},Q({...e,formState:g})),Ie=(e,o={})=>{for(let c of e?L(e):s.mount)s.mount.delete(c),s.array.delete(c),o.keepValue||(U(r,c),U(a,c)),!o.keepError&&U(n.errors,c),!o.keepDirty&&U(n.dirtyFields,c),!o.keepTouched&&U(n.touchedFields,c),!o.keepIsValidating&&U(n.validatingFields,c),!t.shouldUnregister&&!o.keepDefaultValue&&U(i,c);v.state.next({values:b(a)}),v.state.next({...n,...o.keepDirty?{isDirty:H()}:{}}),!o.keepIsValid&&A()},Le=({disabled:e,name:t})=>{(E(e)&&o.mount||e||s.disabled.has(t))&&(e?s.disabled.add(t):s.disabled.delete(t))},Re=(e,n={})=>{let a=T(r,e),c=E(n.disabled)||E(t.disabled);return D(r,e,{...a||{},_f:{...a&&a._f?a._f:{ref:{name:e}},name:e,mount:!0,...n}}),s.mount.add(e),a?Le({disabled:E(n.disabled)?n.disabled:t.disabled,name:e}):ee(e,!0,n.value),{...c?{disabled:n.disabled||t.disabled}:{},...t.progressive?{required:!!n.required,min:Y(n.min),max:Y(n.max),minLength:Y(n.minLength),maxLength:Y(n.maxLength),pattern:Y(n.pattern)}:{},name:e,onChange:he,onBlur:he,ref:c=>{if(c){Re(e,n),a=T(r,e);let t=S(c.value)&&c.querySelectorAll&&c.querySelectorAll(`input,select,textarea`)[0]||c,o=ue(t),s=a._f.refs||[];if(o?s.find(e=>e===t):t===a._f.ref)return;D(r,e,{_f:{...a._f,...o?{refs:[...s.filter(de),t,...Array.isArray(T(i,e))?[{}]:[]],ref:{type:t.type,name:e}}:{ref:t}}}),ee(e,!1,void 0,t)}else a=T(r,e,{}),a._f&&(a._f.mount=!1),(t.shouldUnregister||n.shouldUnregister)&&!(_(s.array,e)&&o.action)&&s.unMount.add(e)}}},$=()=>t.shouldFocusError&&X(r,ge,s.mount),ze=e=>{E(e)&&(v.state.next({disabled:e}),X(r,(t,n)=>{let i=T(r,n);i&&(t.disabled=i._f.disabled||e,Array.isArray(i._f.refs)&&i._f.refs.forEach(t=>{t.disabled=i._f.disabled||e}))},0,!1))},Be=(e,i)=>async o=>{let c;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let l=b(a);if(v.state.next({isSubmitting:!0}),t.resolver){let{errors:e,values:t}=await I();n.errors=e,l=b(t)}else await R(r);if(s.disabled.size)for(let e of s.disabled)U(l,e);if(U(n.errors,`root`),B(n.errors)){v.state.next({errors:{}});try{await e(l,o)}catch(e){c=e}}else i&&await i({...n.errors},o),$(),setTimeout($);if(v.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:B(n.errors)&&!c,submitCount:n.submitCount+1,errors:n.errors}),c)throw c},Ve=(e,t={})=>{T(r,e)&&(S(t.defaultValue)?K(e,b(T(i,e))):(K(e,t.defaultValue),D(i,e,b(t.defaultValue))),t.keepTouched||U(n.touchedFields,e),t.keepDirty||(U(n.dirtyFields,e),n.isDirty=t.defaultValue?H(e,b(T(i,e))):H()),t.keepError||(U(n.errors,e),p.isValid&&A()),v.state.next({...n}))},He=(e,c={})=>{let l=e?b(e):i,u=b(l),d=B(e),f=d?i:u;if(c.keepDefaultValues||(i=l),!c.keepValues){if(c.keepDirtyValues){let e=new Set([...s.mount,...Object.keys(G(i,a))]);for(let t of Array.from(e))T(n.dirtyFields,t)?D(f,t,T(a,t)):K(t,T(f,t))}else{if(y&&S(e))for(let e of s.mount){let t=T(r,e);if(t&&t._f){let e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(se(e)){let t=e.closest(`form`);if(t){t.reset();break}}}}for(let e of s.mount){let t=T(f,e,T(i,e));S(t)||(D(f,e,t),K(e,T(f,e)))}}a=b(f),v.array.next({values:{...f}}),v.state.next({values:{...f}})}s={mount:c.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:``},o.mount=!p.isValid||!!c.keepIsValid||!!c.keepDirtyValues,o.watch=!!t.shouldUnregister,v.state.next({submitCount:c.keepSubmitCount?n.submitCount:0,isDirty:d?!1:c.keepDirty?n.isDirty:!!(c.keepDefaultValues&&!z(e,i)),isSubmitted:c.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:d?{}:c.keepDirtyValues?c.keepDefaultValues&&a?G(i,a):n.dirtyFields:c.keepDefaultValues&&e?G(i,e):c.keepDirty?n.dirtyFields:{},touchedFields:c.keepTouched?n.touchedFields:{},errors:c.keepErrors?n.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1})},Ue=(e,t)=>He(V(e)?e(a):e,t),We=(e,t={})=>{let n=T(r,e),i=n&&n._f;if(i){let e=i.refs?i.refs[0]:i.ref;e.focus&&(e.focus(),t.shouldSelect&&V(e.select)&&e.select())}},Ge=e=>{n={...n,...e}},Ke={control:{register:Re,unregister:Ie,getFieldState:J,handleSubmit:Be,setError:Z,_subscribe:Q,_runSchema:I,_focusError:$,_getWatch:fe,_getDirty:H,_setValid:A,_setFieldArray:M,_setDisabledField:Le,_setErrors:P,_getFieldArray:pe,_reset:He,_resetDefaultValues:()=>V(t.defaultValues)&&t.defaultValues().then(e=>{Ue(e,t.resetOptions),v.state.next({isLoading:!1})}),_removeUnmounted:le,_disableForm:ze,_subjects:v,_proxyFormState:p,get _fields(){return r},get _formValues(){return a},get _state(){return o},set _state(e){o=e},get _defaultValues(){return i},get _names(){return s},set _names(e){s=e},get _formState(){return n},get _options(){return t},set _options(e){t={...t,...e}}},subscribe:Fe,trigger:q,register:Re,handleSubmit:Be,watch:Me,setValue:K,getValues:ve,reset:Ue,resetField:Ve,clearErrors:Se,unregister:Ie,setError:Z,setFocus:We,getFieldState:J};return{...Ke,formControl:Ke}}function Ie(e={}){let t=c.default.useRef(void 0),n=c.default.useRef(void 0),[r,i]=c.default.useState({isDirty:!1,isValidating:!1,isLoading:V(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:V(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:r},e.defaultValues&&!V(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:n,...i}=Fe(e);t.current={...i,formState:r}}let a=t.current.control;return a._options=e,P(()=>{let e=a._subscribe({formState:a._proxyFormState,callback:()=>i({...a._formState}),reRenderRoot:!0});return i(e=>({...e,isReady:!0})),a._formState.isReady=!0,e},[a]),c.default.useEffect(()=>a._disableForm(e.disabled),[a,e.disabled]),c.default.useEffect(()=>{e.mode&&(a._options.mode=e.mode),e.reValidateMode&&(a._options.reValidateMode=e.reValidateMode)},[a,e.mode,e.reValidateMode]),c.default.useEffect(()=>{e.errors&&(a._setErrors(e.errors),a._focusError())},[a,e.errors]),c.default.useEffect(()=>{e.shouldUnregister&&a._subjects.state.next({values:a._getWatch()})},[a,e.shouldUnregister]),c.default.useEffect(()=>{if(a._proxyFormState.isDirty){let e=a._getDirty();e!==r.isDirty&&a._subjects.state.next({isDirty:e})}},[a,r.isDirty]),c.default.useEffect(()=>{e.values&&!z(e.values,n.current)?(a._reset(e.values,a._options.resetOptions),n.current=e.values,i(e=>({...e}))):a._resetDefaultValues()},[a,e.values]),c.default.useEffect(()=>{a._state.mount||(a._setValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),t.current.formState=N(r,a),t.current}var Le=(0,c.createContext)({}),Re=({config:e})=>{let[t,n]=(0,c.useState)(e.start),[r,i]=(0,c.useState)([]),{control:a,trigger:o,getValues:s,setValue:u,register:d,unregister:f,reset:p,watch:m}=Ie({resolver:async n=>{let r=e.validations[t].schema;if(r&&typeof r.validate==`function`)return r.validate(n,{abortEarly:!1}).then(e=>({values:e,errors:{}})).catch(e=>({values:{},errors:(e.inner||[]).reduce((e,t)=>(e[t.path]={type:`manual`,message:t.message},e),{})}));if(r&&typeof r.safeParse==`function`){let e=r.safeParse(n);if(e.success)return{values:e.data,errors:{}};{let t={};return(e.error?.errors||[]).forEach(e=>{e.path&&e.path.length>0&&(t[e.path.join(`.`)]={type:`manual`,message:e.message})}),{values:{},errors:t}}}return{values:{},errors:{}}},defaultValues:e.validations[t].defaultValues,mode:`onBlur`}),h=(0,c.useMemo)(()=>{let n=e.validations[t].schema;if(n&&typeof n.fields==`object`)return Object.keys(n.fields??{});if(n&&typeof n._def==`object`&&n._def.shape){let e=n._def,t=typeof e.shape==`function`?e.shape():e.shape;return Object.keys(t??{})}return[]},[t,e.validations]),g=async()=>{if(!await o(h))return;let r=e.orchestration[t]?.next?.(s());r&&(i(e=>[...e,t]),n(r))},_=()=>{let e=r[r.length-1];e&&(f(h),n(e),i(e=>e.slice(0,-1)))},v=async t=>{t.preventDefault(),await o(h)&&e.onSubmit?.(s())},y=e.views[t]?.component,b=e.views[t]?.wrapper,x=b?typeof b==`function`?b(y):(0,c.isValidElement)(b)?(0,c.cloneElement)(b,{},y):y:y;return(0,l.jsx)(Le.Provider,{value:{navigateToNextStep:g,navigateToPreviousStep:_,registerStepperFields:d,getStepperFieldValues:s,setStepperFieldValues:u,stepperFieldResetter:p,canNavigateToNextStep:async()=>o(h),control:a,watchStepperFieldValues:m},children:(0,l.jsx)(`form`,{onSubmit:v,children:x})})},$=()=>(0,c.useContext)(Le),ze=e=>{let{control:t}=$();return re({control:t,...e})};exports.Controller=I,exports.SmartStepper=Re,exports.useController=re,exports.useSmartStepper=$,exports.useSmartStepperController=ze;