{"version":3,"file":"FormProvider.mjs","names":[],"sources":["../../src/FormProvider/FormProvider.tsx"],"sourcesContent":["import { createContext, use } from 'react';\nimport { UseForm, UseFormReturnType } from '../types';\nimport { useForm } from '../use-form';\n\nexport interface FormProviderProps<Form> {\n  form: Form;\n  children: React.ReactNode;\n}\n\nexport function createFormContext<Values, TransformedValues = Values, Rules = any>() {\n  type Form = UseFormReturnType<Values, TransformedValues, Rules>;\n\n  const FormContext = createContext<Form | null>(null);\n\n  function FormProvider({ form, children }: FormProviderProps<Form>) {\n    return <FormContext value={form}>{children}</FormContext>;\n  }\n\n  function useFormContext() {\n    const ctx = use(FormContext);\n    if (!ctx) {\n      throw new Error('useFormContext was called outside of FormProvider context');\n    }\n\n    return ctx;\n  }\n\n  return [FormProvider, useFormContext, useForm] as [\n    React.FC<FormProviderProps<Form>>,\n    () => Form,\n    UseForm<Values, TransformedValues, Rules>,\n  ];\n}\n"],"mappings":";;;;;AASA,SAAgB,oBAAqE;CAGnF,MAAM,cAAc,cAA2B,IAAI;CAEnD,SAAS,aAAa,EAAE,MAAM,YAAqC;EACjE,OAAO,oBAAC,aAAD;GAAa,OAAO;GAAO;EAAsB,CAAA;CAC1D;CAEA,SAAS,iBAAiB;EACxB,MAAM,MAAM,IAAI,WAAW;EAC3B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,2DAA2D;EAG7E,OAAO;CACT;CAEA,OAAO;EAAC;EAAc;EAAgB;CAAO;AAK/C"}