/** * @fileoverview Select — animated dropdown select with spring transitions and grouped options. * @module packages/ui/components/ui/select * @layer core * * @component * @example * import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from '@saasflare/ui'; * */ import * as React from "react"; import * as SelectPrimitive from "@radix-ui/react-select"; import { type SaasflareComponentProps } from "../../providers"; /** * Animated dropdown select built on Radix Select. Manages value and open * state; compose with {@link SelectTrigger}, {@link SelectValue}, * {@link SelectContent}, and {@link SelectItem}. Use for single-choice * selection from a list too long for radio buttons. * * @component * @layer core */ declare function Select({ ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Groups related items inside {@link SelectContent}, typically headed by a * {@link SelectLabel}. * * @component * @layer core */ declare function SelectGroup({ ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Displays the selected item's text (or a `placeholder`) inside * {@link SelectTrigger}. * * @component * @layer core */ declare function SelectValue({ ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Button that opens the dropdown — renders the current {@link SelectValue} * with a trailing caret icon. * * @component * @layer core */ declare function SelectTrigger({ className, size, children, ...props }: React.ComponentProps & { /** Control height of the trigger. `"md"` (h-9) or `"sm"` (h-8). (`"default"` is a deprecated alias for `"md"`.) */ size?: "sm" | "md" | "default"; }): import("react/jsx-runtime").JSX.Element; /** * Props for {@link SelectContent}. Extends {@link SaasflareComponentProps} so * `surface`, `radius`, `animated`, and `iconWeight` can override the * context per instance. */ interface SelectContentProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps { } /** * Portalled dropdown panel with a spring entrance animation — hosts the * scrollable item viewport plus the scroll-up/down affordances. * * @component * @layer core */ declare function SelectContent({ className, children, position, surface, radius, animated, iconWeight, ...props }: SelectContentProps): import("react/jsx-runtime").JSX.Element; /** * Non-interactive heading for a {@link SelectGroup}. * * @component * @layer core */ declare function SelectLabel({ className, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Selectable option inside {@link SelectContent} — shows a check indicator * when it is the current value. * * @component * @layer core */ declare function SelectItem({ className, children, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Thin divider between groups of items. * * @component * @layer core */ declare function SelectSeparator({ className, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Scroll affordance pinned to the top of the viewport when items overflow. * Rendered automatically by {@link SelectContent}. * * @component * @layer core */ declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Scroll affordance pinned to the bottom of the viewport when items overflow. * Rendered automatically by {@link SelectContent}. * * @component * @layer core */ declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type SelectContentProps, };