import { FormRoot } from "./form-root";
import { FormField } from "./form-field";
import { FormLabel } from "./form-label";
import { FormControl } from "./form-control";
import { FormDescription } from "./form-description";
import { FormErrorMessage } from "./form-error-message";
import { FormSubmit } from "./form-submit";

export { FormRootPropsSchema, FormFieldPropsSchema, FormMeta } from "./form.props";
export type { FormRootProps } from "./form-root";
export type { FormFieldProps } from "./form-field";
export type { FormLabelProps } from "./form-label";
export type { FormControlProps } from "./form-control";
export type { FormDescriptionProps } from "./form-description";
export type { FormErrorMessageProps } from "./form-error-message";
export type { FormSubmitProps } from "./form-submit";
export type { FormContextValue, FormFieldContextValue } from "./form-context";

export const Form = Object.assign(FormRoot, { Field: FormField, Label: FormLabel, Control: FormControl, Description: FormDescription, ErrorMessage: FormErrorMessage, Submit: FormSubmit });
