{"version":3,"file":"hooks.mjs","names":[],"sources":["../../src/tanstack-form/hooks.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\nimport type { AnyFormApi, AnyFormOptions } from \"@tanstack/react-form\";\nimport type { UseFieldFn } from \"../types\";\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } =\n  createFormHookContexts();\n\nexport const { useAppForm } = createFormHook({\n  fieldContext,\n  formContext,\n  fieldComponents: {},\n  formComponents: {},\n});\n\nexport function useExternalFormOptions(\n  form: AnyFormApi | undefined,\n  options: AnyFormOptions,\n): void {\n  useEffect(() => {\n    if (!form) return;\n\n    const merged = {\n      validators: options.validators,\n      validationLogic: options.validationLogic,\n      onSubmitInvalid: options.onSubmitInvalid,\n      ...form.options,\n      defaultValues: options.defaultValues,\n      onSubmit: options.onSubmit,\n    };\n\n    form.update(merged);\n    form.options = merged;\n  }, [form, options]);\n}\n\nexport const useFieldTanStack: UseFieldFn = () => {\n  const fieldApi = useFieldContext();\n\n  return {\n    field: {\n      value: fieldApi.state.value,\n      onChange: (valueOrEvent: any) => {\n        const target = valueOrEvent?.target;\n        fieldApi.handleChange(\n          target\n            ? target.type === \"checkbox\"\n              ? target.checked\n              : target.value\n            : valueOrEvent,\n        );\n      },\n      onBlur: () => fieldApi.handleBlur(),\n      name: String(fieldApi.name).replace(/\\[(\\d+)\\]/g, \".$1\"),\n    },\n  };\n};\n\nexport function useSyncValues(\n  form: { setFieldValue: (field: any, value: any, opts?: any) => void },\n  values?: Record<string, any>,\n) {\n  useEffect(() => {\n    if (!values) return;\n\n    for (const [key, value] of Object.entries(values)) {\n      form.setFieldValue(key, value, { dontUpdateMeta: true });\n    }\n  }, [form, values]);\n}\n"],"mappings":";;;AAKA,MAAa,EAAE,cAAc,iBAAiB,aAAa,mBACzD,uBAAuB;AAEzB,MAAa,EAAE,eAAe,eAAe;CAC3C;CACA;CACA,iBAAiB,CAAC;CAClB,gBAAgB,CAAC;AACnB,CAAC;AAED,SAAgB,uBACd,MACA,SACM;CACN,gBAAgB;EACd,IAAI,CAAC,MAAM;EAEX,MAAM,SAAS;GACb,YAAY,QAAQ;GACpB,iBAAiB,QAAQ;GACzB,iBAAiB,QAAQ;GACzB,GAAG,KAAK;GACR,eAAe,QAAQ;GACvB,UAAU,QAAQ;EACpB;EAEA,KAAK,OAAO,MAAM;EAClB,KAAK,UAAU;CACjB,GAAG,CAAC,MAAM,OAAO,CAAC;AACpB;AAEA,MAAa,yBAAqC;CAChD,MAAM,WAAW,gBAAgB;CAEjC,OAAO,EACL,OAAO;EACL,OAAO,SAAS,MAAM;EACtB,WAAW,iBAAsB;GAC/B,MAAM,SAAS,cAAc;GAC7B,SAAS,aACP,SACI,OAAO,SAAS,aACd,OAAO,UACP,OAAO,QACT,YACN;EACF;EACA,cAAc,SAAS,WAAW;EAClC,MAAM,OAAO,SAAS,IAAI,CAAC,CAAC,QAAQ,cAAc,KAAK;CACzD,EACF;AACF;AAEA,SAAgB,cACd,MACA,QACA;CACA,gBAAgB;EACd,IAAI,CAAC,QAAQ;EAEb,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAC9C,KAAK,cAAc,KAAK,OAAO,EAAE,gBAAgB,KAAK,CAAC;CAE3D,GAAG,CAAC,MAAM,MAAM,CAAC;AACnB"}