'use client';
import {
Button,
Input,
SearchField as AriaSearchField,
SearchFieldProps as AriaSearchFieldProps,
ValidationResult
} from 'react-aria-components';
import {Label, FieldError, Description} from '@/registry/react-aria/ui/Form';
import {Search, X} from 'lucide-react';
import './SearchField.css';
export interface SearchFieldProps extends AriaSearchFieldProps {
label?: string;
description?: string;
errorMessage?: string | ((validation: ValidationResult) => string);
placeholder?: string;
}
export function SearchField(
{ label, description, errorMessage, placeholder, ...props }: SearchFieldProps
) {
return (
(
<AriaSearchField {...props}>
{label && <Label>{label}</Label>}
<Search size={18} />
<Input placeholder={placeholder} className="react-aria-Input inset" />
<Button className="clear-button"><X size={14} /></Button>
{description && <Description>{description}</Description>}
<FieldError>{errorMessage}</FieldError>
</AriaSearchField>
)
);
}