{"version":3,"sources":["../../../src/Form/Form.tsx"],"names":[".f1lzoype",".fbefrgl",".fhwdexz",".fqp9cma",".f120vn2c"],"mappings":"AAWMA;AAkCAC;AAOAC;AAKAC;AAIAC","file":"../../../src/Form/Form.tsx","sourcesContent":["import React, { useCallback, FormEvent } from \"react\";\nimport { css, cx } from \"linaria\";\nimport { colors } from \"../utils\";\n\nexport type FormProps = {\n  allowSubmit?: boolean;\n} & React.DetailedHTMLProps<\n  React.FormHTMLAttributes<HTMLFormElement>,\n  HTMLFormElement\n>;\n\nconst FormContainer = css`\n  padding: 4px;\n`;\n\nconst Form: React.FC<FormProps> & {\n  // eslint-disable-next-line @typescript-eslint/no-use-before-define\n  Item: typeof FormItem;\n} = ({ children, className, allowSubmit, onSubmit, ...props }) => {\n  const _onSubmit = useCallback(\n    (e: FormEvent<HTMLFormElement>) => {\n      if (!allowSubmit) {\n        e.preventDefault();\n      }\n\n      onSubmit?.(e);\n    },\n    [allowSubmit, onSubmit]\n  );\n  return (\n    <form\n      {...props}\n      onSubmit={_onSubmit}\n      className={cx(FormContainer, className)}>\n      {children}\n    </form>\n  );\n};\n\nexport type FormItemProps = {\n  hint?: string;\n  status?: \"error\";\n  float?: \"right\";\n};\n\nconst FormItemContainer = css`\n  margin: 0 0 24px;\n  &:last-child {\n    margin-bottom: 0;\n  }\n`;\n\nconst FormItemHint = css`\n  margin: 8px 8px 0 8px;\n  font-weight: 500;\n`;\n\nconst FormItemHintError = css`\n  color: ${colors[\"color-danger-600\"]};\n`;\n\nconst FormItemChildrenContainerFloatRight = css`\n  display: flex;\n  justify-content: flex-end;\n`;\n\nconst FormItem: React.FC<FormItemProps> = ({\n  children,\n  hint,\n  status,\n  float,\n}) => {\n  return (\n    <div className={FormItemContainer}>\n      <div\n        className={cx(\n          float === \"right\" && FormItemChildrenContainerFloatRight\n        )}>\n        {children}\n      </div>\n      {hint && (\n        <div\n          className={cx(FormItemHint, status === \"error\" && FormItemHintError)}>\n          {hint}\n        </div>\n      )}\n    </div>\n  );\n};\n\nForm.Item = FormItem;\n\nexport default Form;\nexport { FormItem };\n"]}