"use client"; import cx from "classnames"; import React from "react"; import { useStatic } from "../../../utils/hooks"; import { Select } from "../Select"; import AutocompleteStatic from "./Autocomplete.static"; const CLASS_ROOT = "autocomplete"; export type AutocompleteOption = string | { title: string; value: string }; export interface AutocompleteProps extends Omit< React.SelectHTMLAttributes, "size" | "value" > { /** Module config. For more see accessible-autocomplete docs */ autocompleteConfig?: Record; /** Array of string options */ options?: AutocompleteOption[]; /** Placeholder text */ placeholder?: string; /** Additional CSS classes */ className?: string; /** Select value */ value?: string | string[]; } const Autocomplete: React.FC = ({ className, options = [], autocompleteConfig, placeholder, ...other }) => { const [autocompleteRef] = useStatic( AutocompleteStatic as any, autocompleteConfig, ); const serializedAutocompleteConfig = autocompleteConfig && !("data-autocomplete-config" in other || "dataAutocompleteConfig" in other) ? JSON.stringify(autocompleteConfig) : undefined; return ( ); }; Autocomplete.displayName = "Autocomplete"; export { Autocomplete };