{"version":3,"file":"Form.cjs","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/forms';\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 *\n * https://developers.grafana.com/ui/latest/index.html?path=/docs/forms-form--docs\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":["useForm","useEffect","jsx","css"],"mappings":";;;;;;;;;;AAuBO,SAAS,IAAA,CAA4B;AAAA,EAC1C,aAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA,EAClB,qBAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA,GAAa,UAAA;AAAA,EACb,QAAA,GAAW,GAAA;AAAA,EACX,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,EAAE,YAAA,EAAc,OAAA,EAAS,WAAW,GAAG,IAAA,KAASA,qBAAA,CAAW;AAAA,IAC/D,IAAA,EAAM,UAAA;AAAA,IACN;AAAA,GACD,CAAA;AAED,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,eAAA,EAAiB;AAEnB,MAAA,OAAA,CAAQ,qBAAqB,CAAA;AAAA,IAC/B;AAAA,EACF,CAAA,EAAG,CAAC,OAAA,EAAS,qBAAA,EAAuB,eAAe,CAAC,CAAA;AAEpD,EAAA,uBACEC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAWC,OAAA,CAAI;AAAA,QACb,QAAA,EAAU,QAAA,KAAa,MAAA,GAAS,QAAA,GAAW,IAAA,GAAO,QAAA;AAAA,QAClD,KAAA,EAAO;AAAA,OACR,CAAA;AAAA,MACD,QAAA,EAAU,aAAa,QAAQ,CAAA;AAAA,MAC9B,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA,QAAA,CAAS,EAAE,MAAA,EAAQ,SAAA,CAAU,QAAQ,SAAA,EAAW,OAAA,EAAS,GAAG,IAAA,EAAM;AAAA;AAAA,GACrE;AAEJ;;;;"}