import type React from "react"; import type { ReactNode } from "react"; import type { Select } from "../../unstyledPrimitives"; import type { OverlaySeparator } from "../OverlaySeparator"; export type SelectPrimitiveRootProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveTriggerProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveValueProps = React.ComponentPropsWithoutRef; export type SelectPrimitivePortalProps = React.ComponentPropsWithoutRef; export type SelectPrimitivePositionerProps = React.ComponentPropsWithoutRef; export type SelectPrimitivePopupProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveListProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveItemProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveItemTextProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveItemIndicatorProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveGroupProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveGroupLabelProps = React.ComponentPropsWithoutRef; export type SelectPrimitiveSeparatorProps = React.ComponentPropsWithoutRef; /** * Context-free, presentational trigger surface (field button + chevron). Render * it via Base UI's `Select.Trigger` (or any trigger's `render` prop) so the * field chrome can be reused outside a `Select.Root` — e.g. a bottom sheet. */ export interface SelectPrimitiveFieldTriggerProps extends React.ComponentPropsWithRef<"button"> { /** The value/placeholder display element rendered before the chevron. */ readonly valueSlot?: ReactNode; } /** * Presentational value text (the `.value` styling) for triggers rendered * outside a `Select.Root`, where `SelectPrimitive.Value` can't be used. */ export type SelectPrimitiveValueTextProps = React.ComponentPropsWithRef<"span">;