import { Input } from '@base-ui/react/input';
import { clsx } from 'clsx';
import { type ReactNode, useId, useState } from 'react';
import { IconFilter, IconSearch } from '@ui/icon';
import { IconButton } from '@ui/input/IconButton/IconButton';
import { useTheme } from '@ui/theme-constants';
import styles from './SearchInput.module.scss';
export type SearchInputProps = {
value: string;
onChange: (value: string) => void;
placeholder?: string;
filterDropdown?: (filterButton: ReactNode) => ReactNode;
autoFocus?: boolean;
disabled?: boolean;
className?: string;
id?: string;
filterButtonAriaLabel?: string;
'aria-label'?: string;
'aria-labelledby'?: string;
};
export const SearchInput = ({
value,
onChange,
placeholder,
filterDropdown,
autoFocus,
disabled,
className,
id,
filterButtonAriaLabel = 'Filter',
'aria-label': ariaLabel,
'aria-labelledby': ariaLabelledby,
}: SearchInputProps) => {
const theme = useTheme();
const [isFocused, setIsFocused] = useState(false);
const generatedId = useId();
const inputId = id ?? generatedId;
const filterButton = (