PageSourceSearch

https://meethalfway.app/_assets/Form-CzuuZFSX.js

js meethalfway.app collected 2026-10-06 22:33:25 UTC 4,909 bytes, 1 lines download raw bytes

1import{R as u,dJ as M,r as j,j as g,m as N,dK as R,dL as D}from"./vendor-Gb9OPHf3.js";const L="_formItem_sura7_2",P="_formLabel_sura7_9",S="_error_sura7_19",O="_formControl_sura7_23",V="_formDescription_sura7_32",B="_formMessage_sura7_40",F={formItem:L,formLabel:P,error:S,formControl:O,formDescription:V,formMessage:B};function Q({defaultValues:t={},schema:n}){const[r,e]=u.useState(t),[o,s]=u.useState({}),a=u.useCallback((i,l)=>{s(p=>I(p,i,l))},[]),f=i=>i.code===D.unrecognized_keys,m=u.useCallback(()=>{if(!n)return!0;try{return G(n).parse(r),s({}),!0}catch(i){if(i instanceof M){const l=i.errors.filter(f),p=i.errors.filter(c=>!f(c));if(l.length>0)throw new Error("Extra properties detected in form values:"+l.map(c=>c.message).join(", ")+". Either update the schema or remove these values");const v={};if(p.forEach(c=>{const x=c.path.join("."),b=typeof c.message=="string"?c.message:String(c.message);Object.assign(v,{});const w=I(v,x,b);Object.assign(v,w)}),s(v),p.length===0&&l.length>0)throw new Error(`Form contains extra properties: ${l.map(c=>c.message).join(", ")}`)}return console.error("Form validation failed",i),!1}},[n,r]),d=u.useCallback((i,l)=>{if(!n)return;const p=n.safeParse(r);s(v=>{let c={...v};return l?.shallow?k(c,i)!==void 0&&(c=C(c,i,{shallow:!0})):c=C(c,i),p.success||p.error.errors.forEach(x=>{const b=x.path.join(".");if(l?.shallow?b===i:b===i||b.startsWith(i+".")){const A=typeof x.message=="string"?x.message:String(x.message);c=I(c,b,A)}}),c})},[n,r]),y=u.useCallback(i=>l=>{l.preventDefault(),m()&&i(r)},[m,r]),h=j.useRef(r);return j.useEffect(()=>{const i=[];for(const l of Object.keys(r))r[l]!==h.current[l]&&Array.isArray(r[l])&&Array.isArray(h.current[l])&&r[l].length!==h.current[l].length&&i.push(l);h.current=r;for(const l of i)d(l,{shallow:!0})},[r,d]),{values:r,errors:o,setValues:e,validateField:d,validateForm:m,setFieldError:a,handleSubmit:y,defaultValues:t}}function T(t){const{children:n,values:r,errors:e,setValues:o,validateField:s,validateForm:a,setFieldError:f}=t;return g.jsx(_.Provider,{value:{values:r,errors:e,setValues:o,validateField:s,validateForm:a,setFieldError:f},children:n})}const K=u.forwardRef(({name:t,className:n,...r},e)=>{const o=u.useId();return g.jsx($.Provider,{value:{id:o,name:t},children:g.jsx("div",{ref:e,className:`${F.formItem} ${n||""}`,...r})})});K.displayName="FormItem";const Z=u.forwardRef(({className:t,...n},r)=>{const{formItemId:e,error:o}=E();return g.jsx("label",{ref:r,className:`${F.formLabel} ${o?F.error:""} ${t||""}`,htmlFor:e,...n})});Z.displayName="FormLabel";const z=u.forwardRef(({className:t,...n},r)=>{const{formItemId:e,error:o,formMessageId:s,onBlur:a}=E();return g.jsx(N,{ref:r,id:e,className:`${F.formControl} ${o?F.error:""} ${t||""}`,"aria-invalid":!!o,"aria-describedby":o?s:void 0,onBlur:a,...n})});z.displayName="FormControl";const J=u.forwardRef(({className:t,...n},r)=>{const{formDescriptionId:e}=E();return g.jsx("p",{ref:r,id:e,className:`${F.formDescription} ${t||""}`,...n})});J.displayName="FormDescription";const W=u.forwardRef(({className:t,children:n,...r},e)=>{const{formMessageId:o,error:s}=E(),a=s?s.message:n;return a?g.jsx("p",{ref:e,id:o,className:`${F.formMessage} ${t||""}`,...r,children:a}):null});W.displayName="FormMessage";const _=u.createContext(void 0);function q(){const t=u.useContext(_);if(!t)throw new Error("useFormContext must be inside <Form>");return t}const $=u.createContext(null);function E(){const t=q(),n=u.useContext($);if(!n)throw new Error("<FormLabel> and <FormControl> must live inside <FormItem>");const{id:r,name:e}=n,o=k(t.errors,e),s=typeof o=="string"?o:void 0;return{id:r,name:e,error:s?{message:s}:void 0,formItemId:`${r}-form-item`,formDescriptionId:`${r}-form-item-description`,formMessageId:`${r}-form-item-message`,onBlur:()=>t.validateField(e),validateShallow:()=>t.validateField(e,{shallow:!0})}}function k(t,n){const r=n.split(".");let e=t;for(const o of r){if(e==null)return;/^\d+$/.test(o)&&Array.isArray(e)?e=e[+o]:e=e[o]}return e}function I(t,n,r){const e=n.split("."),o=e.pop(),s={...t};let a=s;for(let f=0;f<e.length;
1f++){const m=e[f],d=e[f+1];a[m]==null?a[m]=/^\d+$/.test(d)?[]:{}:Array.isArray(a[m])?a[m]=[...a[m]]:typeof a[m]=="object"&&(a[m]={...a[m]}),a=a[m]}return/^\d+$/.test(o)&&Array.isArray(a)?a[+o]=r:a[o]=r,s}function C(t,n,r){const e=n.split("."),o=e.pop();let s=t;const a=[];for(const f of e){if(s[f]==null)return t;a.push({parent:s,key:f}),s=s[f]}if(s&&typeof s=="object"&&o in s&&(r?.shallow?typeof s[o]=="string"?delete s[o]:typeof s[o]=="object"&&!Array.isArray(s[o])&&"message"in s[o]&&delete s[o].message:delete s[o]),!r?.shallow)for(let f=a.length-1;f>=0;f--){const{parent:m,key:d}=a[f],y=m[d],h=y&&!Array.isArray(y)&&Object.keys(y).length===0,i=Array.isArray(y)&&y.length===0;(h||i)&&delete m[d]}return t}function G(t){return t instanceof R?t.strict():t}export{T as F,K as a,Z as b,z as c,W as d,J as e,Q as u};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.