{"version":3,"file":"Form.mjs","names":[],"sources":["../../../src/components/Form.tsx"],"sourcesContent":["import {\n  type FC,\n  type FormEvent,\n  type PropsWithChildren,\n  type Ref,\n} from \"react\";\n\ntype FormProps = {\n  action?: (data: FormData) => void | Promise<void>;\n  onSubmit?: (data: FormData) => void | Promise<void>;\n  ref?: Ref<HTMLFormElement>;\n} & PropsWithChildren;\n\nexport const Form: FC<FormProps> = (props) => {\n  const {\n    action: onActionFromProps,\n    onSubmit: onSubmitFromProps,\n    ref,\n    ...rest\n  } = props;\n\n  const onSubmit = async (event: FormEvent<HTMLFormElement>) => {\n    event.preventDefault();\n    await onSubmitFromProps?.(new FormData(event.currentTarget));\n  };\n\n  const onAction = async (formData: FormData) => {\n    await onActionFromProps?.(formData);\n  };\n\n  return (\n    <form\n      {...rest}\n      ref={ref}\n      action={onActionFromProps ? onAction : undefined}\n      onSubmit={onSubmitFromProps ? onSubmit : undefined}\n    />\n  );\n};\n"],"mappings":";;;;;AAaA,IAAa,QAAuB,UAAU;CAC5C,MAAM,EACJ,QAAQ,mBACR,UAAU,mBACV,KACA,GAAG,SACD;CAEJ,MAAM,WAAW,OAAO,UAAsC;EAC5D,MAAM,eAAe;EACrB,MAAM,oBAAoB,IAAI,SAAS,MAAM,aAAa,CAAC;CAC7D;CAEA,MAAM,WAAW,OAAO,aAAuB;EAC7C,MAAM,oBAAoB,QAAQ;CACpC;CAEA,OACE,oBAAC,QAAD;EACE,GAAI;EACC;EACL,QAAQ,oBAAoB,WAAW,KAAA;EACvC,UAAU,oBAAoB,WAAW,KAAA;CAC1C,CAAA;AAEL"}