import { Button as BaseButton } from '@base-ui/react/button'; import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox'; import { Field } from '@base-ui/react/field'; import { Input as BaseInput } from '@base-ui/react/input'; import { Slider } from '@base-ui/react/slider'; import { Toggle as BaseToggle } from '@base-ui/react/toggle'; import clsx from 'clsx'; import { forwardRef, type CSSProperties, type ComponentPropsWithoutRef, type ButtonHTMLAttributes, type SelectHTMLAttributes, type ReactNode, type TextareaHTMLAttributes, } from 'react'; import styles from './form.module.css'; export interface FormFieldProps { children: ReactNode; className?: string; error?: ReactNode; helperText?: ReactNode; htmlFor?: string; label: ReactNode; } export function FormField({ children, className, error, helperText, htmlFor, label, }: FormFieldProps) { return (
{htmlFor ? ( ) : ( {label} )} {helperText ? ( {helperText} ) : null}
{children}
{error ? : null}
); } type BaseInputProps = ComponentPropsWithoutRef; export type TextInputProps = Omit & { className?: string; }; export const TextInput = forwardRef(function TextInput( { className, ...props }, ref, ) { return ; }); export type TextAreaProps = TextareaHTMLAttributes; export const TextArea = forwardRef(function TextArea( { className, ...props }, ref, ) { return