import { View, type LayoutStyle, type MeasureProps, type StyleProp, type ViewStyle } from "../../style/index.js"; import { type AnatomyTarget } from "../../style/anatomy.js"; import { type SelectDisclosure, type SelectSkin, type Size } from "./select.styles.js"; /** * An option whose stored value differs from the text shown for it, for lists * keyed by id (a project id, a region slug, a workspace name). Passing bare * strings stays supported and means the value and the label are the same. */ export interface SelectOption { value: string; label: string; /** * A short leading glyph shown before the label in the trigger and in the option * row: a flag emoji for a country list ("🇺🇸"), a currency sign, a unit. Content, * not styling; it inherits the row's type and colour. */ leading?: string; } export interface SelectProps extends MeasureProps { /** * Controlled selection; omit for uncontrolled use. Empty shows the placeholder. * With plain string options this is the option itself; with `SelectOption` * objects it is the option's `value`, and the trigger shows its `label`. */ value?: string; /** Initial selection for uncontrolled use (a bare