import { type CSSProperties, type HTMLAttributes, type ReactElement, type ReactNode, type Ref, type SelectHTMLAttributes, } from "react"; import { getIcon } from "../icon/config.js"; import { type PropsWithRef } from "../types.js"; import { useEnsuredId } from "../useEnsuredId.js"; import { FormMessageContainer } from "./FormMessageContainer.js"; import { Label } from "./Label.js"; import { TextFieldContainer } from "./TextFieldContainer.js"; import { getFormConfig } from "./formConfig.js"; import { nativeSelect, nativeSelectContainer } from "./nativeSelectStyles.js"; import { type FormFieldOptions, type UserAgentAutocompleteProps, } from "./types.js"; /** * @since 6.0.0 Added support for {@link UserAgentAutocompleteProps} */ export interface NativeSelectProps extends Omit, "autoComplete">, UserAgentAutocompleteProps, FormFieldOptions { ref?: Ref; /** * A custom dropdown icon to use instead of the browser's default select * dropdown icon. * * Set this to `null` if the browser's default icon should be used instead. * * @defaultValue `getIcon("dropdown")` */ icon?: ReactNode; /** * This applies custom inline styles to the `` element since the * `className` prop is applied to the container element instead. */ selectClassName?: string; /** * This should be a list of `