{"version":3,"file":"Form.mjs","sources":["../../../../src/components/Forms/Form.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { HTMLProps, useEffect } from 'react';\nimport * as React from 'react';\nimport { useForm, Mode, DefaultValues, SubmitHandler, FieldValues } from 'react-hook-form';\n\nimport { FormAPI } from '../../types';\n\ninterface FormProps<T extends FieldValues> extends Omit<HTMLProps<HTMLFormElement>, 'onSubmit' | 'children'> {\n  validateOn?: Mode;\n  validateOnMount?: boolean;\n  validateFieldsOnMount?: string | string[];\n  defaultValues?: DefaultValues<T>;\n  onSubmit: SubmitHandler<T>;\n  children: (api: FormAPI<T>) => React.ReactNode;\n  /** Sets max-width for container. Use it instead of setting individual widths on inputs.*/\n  maxWidth?: number | 'none';\n}\n\n/**\n * @deprecated use the `useForm` hook from react-hook-form instead\n */\nexport function Form<T extends FieldValues>({\n  defaultValues,\n  onSubmit,\n  validateOnMount = false,\n  validateFieldsOnMount,\n  children,\n  validateOn = 'onSubmit',\n  maxWidth = 600,\n  ...htmlProps\n}: FormProps<T>) {\n  const { handleSubmit, trigger, formState, ...rest } = useForm<T>({\n    mode: validateOn,\n    defaultValues,\n  });\n\n  useEffect(() => {\n    if (validateOnMount) {\n      //@ts-expect-error\n      trigger(validateFieldsOnMount);\n    }\n  }, [trigger, validateFieldsOnMount, validateOnMount]);\n\n  return (\n    <form\n      className={css({\n        maxWidth: maxWidth !== 'none' ? maxWidth + 'px' : maxWidth,\n        width: '100%',\n      })}\n      onSubmit={handleSubmit(onSubmit)}\n      {...htmlProps}\n    >\n      {children({ errors: formState.errors, formState, trigger, ...rest })}\n    </form>\n  );\n}\n"],"names":[],"mappings":";;;;;AAqBO,SAAS,IAA4B,CAAA;AAAA,EAC1C,aAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAkB,GAAA,KAAA;AAAA,EAClB,qBAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAa,GAAA,UAAA;AAAA,EACb,QAAW,GAAA,GAAA;AAAA,EACX,GAAG;AACL,CAAiB,EAAA;AACf,EAAA,MAAM,EAAE,YAAc,EAAA,OAAA,EAAS,WAAW,GAAG,IAAA,KAAS,OAAW,CAAA;AAAA,IAC/D,IAAM,EAAA,UAAA;AAAA,IACN;AAAA,GACD,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,eAAiB,EAAA;AAEnB,MAAA,OAAA,CAAQ,qBAAqB,CAAA;AAAA;AAC/B,GACC,EAAA,CAAC,OAAS,EAAA,qBAAA,EAAuB,eAAe,CAAC,CAAA;AAEpD,EACE,uBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAW,GAAI,CAAA;AAAA,QACb,QAAU,EAAA,QAAA,KAAa,MAAS,GAAA,QAAA,GAAW,IAAO,GAAA,QAAA;AAAA,QAClD,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD,QAAA,EAAU,aAAa,QAAQ,CAAA;AAAA,MAC9B,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA,QAAA,CAAS,EAAE,MAAQ,EAAA,SAAA,CAAU,QAAQ,SAAW,EAAA,OAAA,EAAS,GAAG,IAAA,EAAM;AAAA;AAAA,GACrE;AAEJ;;;;"}