{
  "slug": "expo-ui",
  "name": "@gj-kit/expo-ui",
  "version": "0.8.1",
  "description": "Accessible, token-driven UI primitives for Expo, React Native, and React Native Web.",
  "homepage": "https://gj-kit.github.io/gj-kit/packages/expo-ui/",
  "repository": "git+https://github.com/gj-kit/gj-kit.git",
  "license": "MIT",
  "engines": {
    "node": ">=20"
  },
  "peerDependencies": {
    "react": ">=18",
    "react-native": ">=0.79",
    "react-native-safe-area-context": ">=4",
    "react-native-web": ">=0.21"
  },
  "peerDependenciesMeta": {
    "react-native-safe-area-context": {
      "optional": true
    },
    "react-native-web": {
      "optional": true
    }
  },
  "entries": [
    {
      "subpath": ".",
      "id": "root",
      "declarationTarget": "./dist/index.d.cts",
      "symbols": [
        {
          "name": "Accordion",
          "slug": "accordion",
          "kind": "function",
          "declaration": "declare function Accordion<T extends string>(props: AccordionProps<T>): ReactElement;"
        },
        {
          "name": "AccordionIndicatorRenderProps",
          "slug": "accordion-indicator-render-props",
          "kind": "type",
          "declaration": "type AccordionIndicatorRenderProps = IconRenderProps & {\n    readonly expanded: boolean;\n};"
        },
        {
          "name": "AccordionItem",
          "slug": "accordion-item",
          "kind": "interface",
          "declaration": "interface AccordionItem<T extends string> {\n    readonly value: T;\n    readonly title: string;\n    readonly description?: string | undefined;\n    readonly content: NonNullable<ReactNode>;\n    readonly leading?: ReactNode | undefined;\n    /**\n     * Presentation-only decoration at the end of the header row, before the\n     * expansion indicator — a count badge, for example. It renders inside the\n     * trigger but is hidden from accessibility, so the trigger's accessible name\n     * stays the title. Interactive trailing content is unsupported; when the\n     * information matters to assistive technology, repeat it in `description`.\n     */\n    readonly trailing?: ReactNode | undefined;\n    readonly disabled?: boolean | undefined;\n}"
        },
        {
          "name": "AccordionProps",
          "slug": "accordion-props",
          "kind": "type",
          "declaration": "type AccordionProps<T extends string> = AccordionBaseProps<T> & ({\n    type?: 'single' | undefined;\n    value: NoInfer<T> | null;\n    onValueChange: (value: T | null) => void;\n    /** When false, the last open item cannot be closed. Defaults to true. */\n    collapsible?: boolean | undefined;\n} | {\n    type: 'multiple';\n    value: ReadonlyArray<NoInfer<T>>;\n    onValueChange: (value: readonly T[]) => void;\n    collapsible?: never;\n});"
        },
        {
          "name": "ActionChipProps",
          "slug": "action-chip-props",
          "kind": "type",
          "declaration": "type ActionChipProps = ChipBaseProps & {\n    kind: 'action';\n    onPress: () => void;\n    selected?: never;\n    onSelectedChange?: never;\n    onRemove?: never;\n    removeAccessibilityLabel?: never;\n};"
        },
        {
          "name": "ActionLinkProps",
          "slug": "action-link-props",
          "kind": "type",
          "declaration": "type ActionLinkProps = LinkBaseProps & {\n    onPress: () => void;\n    href?: never;\n    target?: never;\n    rel?: never;\n    onOpenError?: never;\n};"
        },
        {
          "name": "ActionSheet",
          "slug": "action-sheet",
          "kind": "function",
          "declaration": "/** Controlled action sheet; callers hide it after receiving a dismissal detail. */\ndeclare function ActionSheet<const T extends string>({ visible, title, description, items, onDismiss, cancelLabel, presentation, animationType, dismissOnBackdrop, dismissDisabled, busy, bottomInset, keyboardOverlap, accessibilityLabel, finalFocusRef, overlayId: overlayIdProp, style, className, testID, }: ActionSheetProps<T>): ReactElement;",
          "sourceDocumentation": "Controlled action sheet; callers hide it after receiving a dismissal detail."
        },
        {
          "name": "ActionSheetDismissDetails",
          "slug": "action-sheet-dismiss-details",
          "kind": "type",
          "declaration": "type ActionSheetDismissDetails<T extends string> = DialogDismissDetails | (ActionSheetDetailBase & {\n    readonly reason: 'cancel-action';\n}) | (ActionSheetDetailBase & {\n    readonly reason: 'action-select';\n    readonly value: T;\n});"
        },
        {
          "name": "ActionSheetItem",
          "slug": "action-sheet-item",
          "kind": "interface",
          "declaration": "interface ActionSheetItem<T extends string> {\n    readonly value: T;\n    readonly label: string;\n    readonly description?: string | undefined;\n    readonly accessibilityLabel?: string | undefined;\n    readonly destructive?: boolean | undefined;\n    readonly disabled?: boolean | undefined;\n    readonly testID?: string | undefined;\n}"
        },
        {
          "name": "ActionSheetPresentation",
          "slug": "action-sheet-presentation",
          "kind": "type",
          "declaration": "type ActionSheetPresentation = 'auto' | 'bottom' | 'center';"
        },
        {
          "name": "ActionSheetProps",
          "slug": "action-sheet-props",
          "kind": "interface",
          "declaration": "interface ActionSheetProps<T extends string> extends Omit<CommonProps, 'unstyled'> {\n    visible: boolean;\n    title: string;\n    description?: string | undefined;\n    /** Dynamic arrays may be empty; the safe cancel action still renders. */\n    items: readonly ActionSheetItem<T>[];\n    onDismiss: (details: ActionSheetDismissDetails<NoInfer<T>>) => void;\n    /** Defaults to strings.cancel. */\n    cancelLabel?: string | undefined;\n    presentation?: ActionSheetPresentation | undefined;\n    animationType?: NonNullable<ModalProps['animationType']> | undefined;\n    dismissOnBackdrop?: boolean | undefined;\n    dismissDisabled?: boolean | undefined;\n    /** Blocks every action and dismissal during an async transition and exposes the busy state. */\n    busy?: boolean | undefined;\n    bottomInset?: number | undefined;\n    keyboardOverlap?: number | undefined;\n    accessibilityLabel?: string | undefined;\n    finalFocusRef?: DialogFocusRef | undefined;\n    overlayId?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "addCalendarDays",
          "slug": "add-calendar-days",
          "kind": "function",
          "declaration": "/**\n * Adds whole days (negative to subtract), crossing month and year boundaries\n * exactly. The result must stay inside the year range 1–9999.\n */\ndeclare function addCalendarDays(date: CalendarDate, amount: number): CalendarDate;",
          "sourceDocumentation": "Adds whole days (negative to subtract), crossing month and year boundaries\nexactly. The result must stay inside the year range 1–9999."
        },
        {
          "name": "addCalendarMonths",
          "slug": "add-calendar-months",
          "kind": "function",
          "declaration": "/** Adds whole months (negative to subtract) to a year–month pair. */\ndeclare function addCalendarMonths(month: CalendarMonth, amount: number): CalendarMonth;",
          "sourceDocumentation": "Adds whole months (negative to subtract) to a year–month pair."
        },
        {
          "name": "Alert",
          "slug": "alert",
          "kind": "function",
          "declaration": "declare function Alert(props: AlertProps): ReactElement;"
        },
        {
          "name": "AlertLive",
          "slug": "alert-live",
          "kind": "type",
          "declaration": "type AlertLive = 'off' | 'polite' | 'assertive';"
        },
        {
          "name": "AlertProps",
          "slug": "alert-props",
          "kind": "type",
          "declaration": "/** Either a title or non-empty children must be present. */\ntype AlertProps = AlertOwnProps & ({\n    title: string;\n    children?: ReactNode | undefined;\n} | {\n    title?: never;\n    children: NonNullable<ReactNode>;\n});",
          "sourceDocumentation": "Either a title or non-empty children must be present."
        },
        {
          "name": "AspectRatio",
          "slug": "aspect-ratio",
          "kind": "function",
          "declaration": "declare function AspectRatio({ ratio, children, style, className, testID, }: AspectRatioProps): ReactElement;"
        },
        {
          "name": "AspectRatioProps",
          "slug": "aspect-ratio-props",
          "kind": "interface",
          "declaration": "/** AspectRatio — pins the ratio of a media slot through a platform-shared View style. */\ninterface AspectRatioProps extends Omit<CommonProps, 'unstyled'> {\n    /** width / height. Only finite numbers greater than 0 are allowed. */\n    ratio: number;\n    /** It can be omitted, but if you pass it, it has to be a node — not null or undefined. */\n    children?: NonNullable<ReactNode>;\n    unstyled?: never;\n}",
          "sourceDocumentation": "AspectRatio — pins the ratio of a media slot through a platform-shared View style."
        },
        {
          "name": "Avatar",
          "slug": "avatar",
          "kind": "function",
          "declaration": "declare function Avatar(props: AvatarProps): ReactElement;"
        },
        {
          "name": "AvatarImageProps",
          "slug": "avatar-image-props",
          "kind": "type",
          "declaration": "/** The source, style, and accessibility props Avatar owns cannot be overridden from this slot. */\ntype AvatarImageProps = Omit<ImageProps, keyof AccessibilityProps | 'source' | 'src' | 'srcSet' | 'style' | 'alt' | 'height' | 'width'>;",
          "sourceDocumentation": "The source, style, and accessibility props Avatar owns cannot be overridden from this slot."
        },
        {
          "name": "AvatarProps",
          "slug": "avatar-props",
          "kind": "type",
          "declaration": "type AvatarProps = AvatarBaseProps & (InformativeAvatar | DecorativeAvatar);"
        },
        {
          "name": "AvatarSize",
          "slug": "avatar-size",
          "kind": "type",
          "declaration": "type AvatarSize = 'sm' | 'md' | 'lg';"
        },
        {
          "name": "Badge",
          "slug": "badge",
          "kind": "function",
          "declaration": "declare function Badge({ label, accessibilityLabel, variant, size, leading, labelStyle, labelClassName, style, className, testID, }: BadgeProps): ReactElement;"
        },
        {
          "name": "BadgeProps",
          "slug": "badge-props",
          "kind": "interface",
          "declaration": "interface BadgeProps extends Omit<CommonProps, 'unstyled'> {\n    label: string;\n    /**\n     * Overrides the accessible name derived from the visible label — for example\n     * \"Paid (PAID)\" while the visible label stays localized. When present, the\n     * badge is exposed as one accessibility element carrying this name: native\n     * flattens the accessible root, and the web root takes `role=\"img\"` with the\n     * label hidden from assistive technology, because ARIA prohibits naming a\n     * role-less generic element.\n     */\n    accessibilityLabel?: string | undefined;\n    /** Defaults to 'neutral'. */\n    variant?: StatusVariant | undefined;\n    /** Defaults to 'md'. */\n    size?: BadgeSize | undefined;\n    /** A static node, or an icon render function that receives color and size. */\n    leading?: ReactNode | RenderIcon | undefined;\n    labelStyle?: StyleProp<TextStyle> | undefined;\n    labelClassName?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "BadgeSize",
          "slug": "badge-size",
          "kind": "type",
          "declaration": "type BadgeSize = 'sm' | 'md';"
        },
        {
          "name": "buildMonthGrid",
          "slug": "build-month-grid",
          "kind": "function",
          "declaration": "/**\n * Lays a month out as weeks of seven cells. The first and last weeks are\n * completed with real adjacent-month dates flagged `inMonth: false`, and the\n * grid spans exactly as many weeks as the month needs (4–6) — a month that\n * fills whole weeks exactly gets no padding cells at all.\n *\n * Every month of the supported year space (1–9999) lays out without throwing.\n * At the two edge months (January 0001, December 9999) the padding cells name\n * days outside that space (year 0 / 10000) — see the MonthGridCell caveat;\n * such cells are not valid CalendarDates.\n */\ndeclare function buildMonthGrid(year: number, month: number, weekStartsOn?: CalendarWeekStart): MonthGrid;",
          "sourceDocumentation": "Lays a month out as weeks of seven cells. The first and last weeks are\ncompleted with real adjacent-month dates flagged `inMonth: false`, and the\ngrid spans exactly as many weeks as the month needs (4–6) — a month that\nfills whole weeks exactly gets no padding cells at all.\n\nEvery month of the supported year space (1–9999) lays out without throwing.\nAt the two edge months (January 0001, December 9999) the padding cells name\ndays outside that space (year 0 / 10000) — see the MonthGridCell caveat;\nsuch cells are not valid CalendarDates."
        },
        {
          "name": "Button",
          "slug": "button",
          "kind": "constant",
          "declaration": "Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<react_native.View>>"
        },
        {
          "name": "ButtonProps",
          "slug": "button-props",
          "kind": "type",
          "declaration": "/**\n * A Button always has both visible content and a non-empty accessible name. Text\n * labels and text children name themselves; arbitrary rich children require an\n * explicit accessibilityLabel. Enabled controls also require onPress. For an\n * icon-only action, use IconButton.\n */\ntype ButtonProps = ButtonOwnProps & ButtonContentProps & ButtonInteractionProps;",
          "sourceDocumentation": "A Button always has both visible content and a non-empty accessible name. Text\nlabels and text children name themselves; arbitrary rich children require an\nexplicit accessibilityLabel. Enabled controls also require onPress. For an\nicon-only action, use IconButton."
        },
        {
          "name": "ButtonSize",
          "slug": "button-size",
          "kind": "type",
          "declaration": "type ButtonSize = 'sm' | 'md' | 'lg';"
        },
        {
          "name": "ButtonVariant",
          "slug": "button-variant",
          "kind": "type",
          "declaration": "/** Renamed from 'dark' to 'inverse' — resolves the inverted meaning of a \"dark\" variant getting lighter in the dark theme (§5.2). */\ntype ButtonVariant = 'primary' | 'primary-outline' | 'secondary'\n/** A transparent action that uses the ordinary text color. */\n | 'ghost' | 'destructive' | 'destructive-outline' | 'inverse';",
          "sourceDocumentation": "Renamed from 'dark' to 'inverse' — resolves the inverted meaning of a \"dark\" variant getting lighter in the dark theme (§5.2)."
        },
        {
          "name": "CalendarDate",
          "slug": "calendar-date",
          "kind": "interface",
          "declaration": "/**\n * Pure calendar-date math — the foundation of MonthCalendar and DateField.\n *\n * This module is deliberately clock-free and time-zone-free: nothing here reads\n * the current time, and the JavaScript Date object appears in no signature.\n * A CalendarDate is a plain civil date in the proleptic Gregorian calendar;\n * which instant it corresponds to (and in which time zone \"today\" falls) is the\n * application's decision. Like src/theme, this folder imports neither react nor\n * react-native, so Node scripts can load the math safely.\n */\n/**\n * A plain civil calendar date. `month` is 1–12 and `day` is 1–31; `year` is a\n * four-digit-key year (1–9999). Deliberately not a Date: a CalendarDate names a\n * day, not an instant, so no time zone can silently shift it.\n */\ninterface CalendarDate {\n    readonly year: number;\n    /** 1–12. */\n    readonly month: number;\n    /** 1–31, at most the length of the month. */\n    readonly day: number;\n}",
          "sourceDocumentation": "A plain civil calendar date. `month` is 1–12 and `day` is 1–31; `year` is a\nfour-digit-key year (1–9999). Deliberately not a Date: a CalendarDate names a\nday, not an instant, so no time zone can silently shift it."
        },
        {
          "name": "calendarDayOfWeek",
          "slug": "calendar-day-of-week",
          "kind": "function",
          "declaration": "/** Day of week of a date, 0 = Sunday through 6 = Saturday. */\ndeclare function calendarDayOfWeek(date: CalendarDate): CalendarWeekday;",
          "sourceDocumentation": "Day of week of a date, 0 = Sunday through 6 = Saturday."
        },
        {
          "name": "CalendarMonth",
          "slug": "calendar-month",
          "kind": "interface",
          "declaration": "/** A year–month pair naming one displayed calendar month. `month` is 1–12. */\ninterface CalendarMonth {\n    readonly year: number;\n    /** 1–12. */\n    readonly month: number;\n}",
          "sourceDocumentation": "A year–month pair naming one displayed calendar month. `month` is 1–12."
        },
        {
          "name": "CalendarWeekday",
          "slug": "calendar-weekday",
          "kind": "type",
          "declaration": "/** Day of week as a number, 0 = Sunday through 6 = Saturday. */\ntype CalendarWeekday = 0 | 1 | 2 | 3 | 4 | 5 | 6;",
          "sourceDocumentation": "Day of week as a number, 0 = Sunday through 6 = Saturday."
        },
        {
          "name": "CalendarWeekStart",
          "slug": "calendar-week-start",
          "kind": "type",
          "declaration": "/** The week column a month grid starts on: 0 = Sunday, 1 = Monday. */\ntype CalendarWeekStart = 0 | 1;",
          "sourceDocumentation": "The week column a month grid starts on: 0 = Sunday, 1 = Monday."
        },
        {
          "name": "Card",
          "slug": "card",
          "kind": "function",
          "declaration": "declare function Card(props: CardProps): ReactElement;"
        },
        {
          "name": "CardProps",
          "slug": "card-props",
          "kind": "type",
          "declaration": "type CardProps = StaticCardProps | PressableCardProps;"
        },
        {
          "name": "CardVariant",
          "slug": "card-variant",
          "kind": "type",
          "declaration": "/**\n * Card — a container that groups related content onto one surface.\n *\n * The static form stays a plain View. The pressable form is an honest control:\n * a plain button when `selected` is absent, and an independent toggle button\n * (aria-pressed) when `selected` is a boolean. Because Card alone cannot own\n * group semantics or roving focus, it never fakes radio; a single-select card\n * group either uses RadioGroup or accepts independent-toggle semantics.\n */\ntype CardVariant = 'outlined' | 'elevated' | 'filled';",
          "sourceDocumentation": "Card — a container that groups related content onto one surface.\n\nThe static form stays a plain View. The pressable form is an honest control:\na plain button when `selected` is absent, and an independent toggle button\n(aria-pressed) when `selected` is a boolean. Because Card alone cannot own\ngroup semantics or roving focus, it never fakes radio; a single-select card\ngroup either uses RadioGroup or accepts independent-toggle semantics."
        },
        {
          "name": "Checkbox",
          "slug": "checkbox",
          "kind": "function",
          "declaration": "declare function Checkbox({ checked, onCheckedChange, label, accessibilityLabel, description, disabled, size, renderMark, style, className, testID, }: CheckboxProps): ReactElement;"
        },
        {
          "name": "CheckboxProps",
          "slug": "checkbox-props",
          "kind": "type",
          "declaration": "type CheckboxProps = CheckboxOwnProps & VisibleOrAccessibleLabel;"
        },
        {
          "name": "Chip",
          "slug": "chip",
          "kind": "function",
          "declaration": "declare function Chip(props: ChipProps): ReactElement;"
        },
        {
          "name": "ChipKind",
          "slug": "chip-kind",
          "kind": "type",
          "declaration": "/**\n * Chip — short actions, toggle filters, static selections, and removable values in one visual language.\n *\n * A chip has no single ARIA pattern of its own, so kind pins the semantics and\n * the callback together: action is a button, filter is a toggle button whose name\n * does not change, static is plain text with an optional visual selected state, and\n * removable is a static value plus a separate remove button. The removable Pressable\n * is never nested inside the container.\n */\ntype ChipKind = 'action' | 'filter' | 'static' | 'removable';",
          "sourceDocumentation": "Chip — short actions, toggle filters, static selections, and removable values in one visual language.\n\nA chip has no single ARIA pattern of its own, so kind pins the semantics and\nthe callback together: action is a button, filter is a toggle button whose name\ndoes not change, static is plain text with an optional visual selected state, and\nremovable is a static value plus a separate remove button. The removable Pressable\nis never nested inside the container."
        },
        {
          "name": "ChipProps",
          "slug": "chip-props",
          "kind": "type",
          "declaration": "type ChipProps = ActionChipProps | FilterChipProps | StaticChipProps | RemovableChipProps;"
        },
        {
          "name": "ChipSize",
          "slug": "chip-size",
          "kind": "type",
          "declaration": "type ChipSize = 'sm' | 'md';"
        },
        {
          "name": "ChipVariant",
          "slug": "chip-variant",
          "kind": "type",
          "declaration": "type ChipVariant = 'filled' | 'outlined';"
        },
        {
          "name": "clampCalendarDate",
          "slug": "clamp-calendar-date",
          "kind": "function",
          "declaration": "/**\n * Clamps a date into the inclusive [min, max] range. Either bound may be\n * omitted. Returns the input object itself when it is already in range.\n */\ndeclare function clampCalendarDate(date: CalendarDate, min?: CalendarDate, max?: CalendarDate): CalendarDate;",
          "sourceDocumentation": "Clamps a date into the inclusive [min, max] range. Either bound may be\nomitted. Returns the input object itself when it is already in range."
        },
        {
          "name": "Collapsible",
          "slug": "collapsible",
          "kind": "function",
          "declaration": "declare function Collapsible({ open, onOpenChange, children, disabled, variant, headingLevel, title, accessibilityLabel, triggerStyle, contentStyle, style, className, testID, }: CollapsibleProps): ReactElement;"
        },
        {
          "name": "CollapsibleProps",
          "slug": "collapsible-props",
          "kind": "type",
          "declaration": "type CollapsibleProps = CommonProps & {\n    title: string;\n    open: boolean;\n    onOpenChange: (open: boolean) => void;\n    children: NonNullable<ReactNode>;\n    disabled?: boolean | undefined;\n    variant?: CollapsibleVariant | undefined;\n    /** Web heading level. Defaults to 3. */\n    headingLevel?: 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n    triggerStyle?: StyleProp<ViewStyle> | undefined;\n    contentStyle?: StyleProp<ViewStyle> | undefined;\n    accessibilityLabel?: string | undefined;\n};"
        },
        {
          "name": "CollapsibleVariant",
          "slug": "collapsible-variant",
          "kind": "type",
          "declaration": "type CollapsibleVariant = 'plain' | 'outlined';"
        },
        {
          "name": "ColorKey",
          "slug": "color-key",
          "kind": "type",
          "declaration": "type ColorKey = keyof ThemeColors;"
        },
        {
          "name": "ColorScheme",
          "slug": "color-scheme",
          "kind": "type",
          "declaration": "/**\n * The token types — design doc §3.2.\n *\n * This folder (src/theme) imports neither react nor react-native (an entry-guard\n * test enforces it), so that tailwind.config (evaluated by Node) and other\n * non-React code can load it safely.\n */\ntype ColorScheme = 'light' | 'dark';",
          "sourceDocumentation": "The token types — design doc §3.2.\n\nThis folder (src/theme) imports neither react nor react-native (an entry-guard\ntest enforces it), so that tailwind.config (evaluated by Node) and other\nnon-React code can load it safely."
        },
        {
          "name": "Combobox",
          "slug": "combobox",
          "kind": "function",
          "declaration": "/** Native controlled searchable selection with adaptive modal and inline surfaces. */\ndeclare function Combobox<const T extends string>(props: ComboboxProps<T>): ReactElement;",
          "sourceDocumentation": "Native controlled searchable selection with adaptive modal and inline surfaces."
        },
        {
          "name": "ComboboxDirection",
          "slug": "combobox-direction",
          "kind": "type",
          "declaration": "type ComboboxDirection = \"ltr\" | \"rtl\";"
        },
        {
          "name": "ComboboxFilter",
          "slug": "combobox-filter",
          "kind": "type",
          "declaration": "type ComboboxFilter<T extends string> = (item: ComboboxItem<T>, query: string, details: ComboboxFilterDetails) => boolean;"
        },
        {
          "name": "ComboboxFilterDetails",
          "slug": "combobox-filter-details",
          "kind": "interface",
          "declaration": "interface ComboboxFilterDetails {\n    readonly normalizedQuery: string;\n    readonly tokens: readonly string[];\n    readonly locale?: string | readonly string[] | undefined;\n}"
        },
        {
          "name": "ComboboxInputValueChangeDetails",
          "slug": "combobox-input-value-change-details",
          "kind": "interface",
          "declaration": "interface ComboboxInputValueChangeDetails<T extends string> {\n    readonly reason: ComboboxInputValueChangeReason;\n    readonly previousInputValue: string;\n    readonly isComposing: boolean;\n    readonly item?: ComboboxItem<T> | undefined;\n    readonly originalEvent?: unknown;\n}"
        },
        {
          "name": "ComboboxInputValueChangeReason",
          "slug": "combobox-input-value-change-reason",
          "kind": "type",
          "declaration": "type ComboboxInputValueChangeReason = \"input-change\" | \"option-select\" | \"clear-action\" | \"dismiss-restore\";"
        },
        {
          "name": "ComboboxItem",
          "slug": "combobox-item",
          "kind": "interface",
          "declaration": "interface ComboboxItem<T extends string> {\n    readonly value: T;\n    readonly label: string;\n    readonly textValue?: string | undefined;\n    readonly keywords?: readonly string[] | undefined;\n    readonly description?: string | undefined;\n    readonly leading?: ReactNode | RenderIcon | undefined;\n    readonly trailing?: ReactNode | RenderIcon | undefined;\n    readonly disabled?: boolean | undefined;\n    readonly testID?: string | undefined;\n}"
        },
        {
          "name": "ComboboxOpenChangeDetails",
          "slug": "combobox-open-change-details",
          "kind": "interface",
          "declaration": "interface ComboboxOpenChangeDetails<T extends string> {\n    readonly reason: ComboboxOpenChangeReason;\n    readonly item?: ComboboxItem<T> | undefined;\n    readonly originalEvent?: unknown;\n}"
        },
        {
          "name": "ComboboxOpenChangeReason",
          "slug": "combobox-open-change-reason",
          "kind": "type",
          "declaration": "type ComboboxOpenChangeReason = \"input-focus\" | \"input-change\" | \"trigger-press\" | \"trigger-key\" | \"option-select\" | \"outside-press\" | \"escape-key\" | \"tab-key\" | \"focus-out\" | \"hardware-back\" | \"accessibility-escape\" | \"cancel-action\" | \"anchor-detached\";"
        },
        {
          "name": "ComboboxPlacement",
          "slug": "combobox-placement",
          "kind": "type",
          "declaration": "type ComboboxPlacement = OverlayPlacement;"
        },
        {
          "name": "ComboboxPresentation",
          "slug": "combobox-presentation",
          "kind": "type",
          "declaration": "type ComboboxPresentation = \"auto\" | \"bottom\" | \"center\" | \"inline\";"
        },
        {
          "name": "ComboboxProps",
          "slug": "combobox-props",
          "kind": "type",
          "declaration": "type ComboboxProps<T extends string> = ComboboxAccessibleName & ComboboxCommonProps<T> & (SingleComboboxSelection<T> | MultipleComboboxSelection<T>);"
        },
        {
          "name": "ComboboxSelectionMode",
          "slug": "combobox-selection-mode",
          "kind": "type",
          "declaration": "type ComboboxSelectionMode = \"single\" | \"multiple\";"
        },
        {
          "name": "ComboboxSize",
          "slug": "combobox-size",
          "kind": "type",
          "declaration": "type ComboboxSize = \"sm\" | \"md\";"
        },
        {
          "name": "ComboboxState",
          "slug": "combobox-state",
          "kind": "type",
          "declaration": "type ComboboxState<T extends string> = {\n    readonly status: \"ready\";\n    readonly items: readonly ComboboxItem<T>[];\n    readonly statusLabel?: string | undefined;\n    readonly onRetry?: never;\n} | {\n    readonly status: \"loading\";\n    /** Retained results remain available while a newer query is loading. */\n    readonly items: readonly ComboboxItem<T>[];\n    readonly statusLabel?: string | undefined;\n    readonly onRetry?: never;\n} | {\n    readonly status: \"error\";\n    /** Localized, visible error copy. */\n    readonly statusLabel: string;\n    readonly items: readonly ComboboxItem<T>[];\n    readonly onRetry?: (() => void) | undefined;\n};"
        },
        {
          "name": "ComboboxValueChangeDetails",
          "slug": "combobox-value-change-details",
          "kind": "type",
          "declaration": "type ComboboxValueChangeDetails<T extends string> = SingleComboboxValueChangeDetails<T> | MultipleComboboxValueChangeDetails<T>;"
        },
        {
          "name": "ComboboxValueChangeReason",
          "slug": "combobox-value-change-reason",
          "kind": "type",
          "declaration": "type ComboboxValueChangeReason = \"option-select\" | \"option-remove\" | \"clear-action\";"
        },
        {
          "name": "compareCalendarDates",
          "slug": "compare-calendar-dates",
          "kind": "function",
          "declaration": "/** Chronological comparison: -1 when a is earlier, 0 when equal, 1 when later. */\ndeclare function compareCalendarDates(a: CalendarDate, b: CalendarDate): -1 | 0 | 1;",
          "sourceDocumentation": "Chronological comparison: -1 when a is earlier, 0 when equal, 1 when later."
        },
        {
          "name": "ConfirmActionRow",
          "slug": "confirm-action-row",
          "kind": "function",
          "declaration": "declare function ConfirmActionRow({ onCancel, onConfirm, cancelLabel, confirmLabel, cancelVariant, confirmVariant, destructive, loading, cancelLoading, cancelTestID, confirmTestID, cancelStyle, confirmStyle, cancelLabelStyle, confirmLabelStyle, style, className, testID, }: ConfirmActionRowProps): ReactElement;"
        },
        {
          "name": "ConfirmActionRowProps",
          "slug": "confirm-action-row-props",
          "kind": "interface",
          "declaration": "interface ConfirmActionRowProps extends Omit<CommonProps, 'unstyled'> {\n    onCancel: () => void;\n    onConfirm: () => void;\n    /** Defaults to strings.cancel. */\n    cancelLabel?: string | undefined;\n    /** Defaults to strings.confirm. */\n    confirmLabel?: string | undefined;\n    /** Defaults to 'secondary'. */\n    cancelVariant?: ButtonVariant | undefined;\n    /** Defaults to 'primary', or to 'destructive' when destructive is true. */\n    confirmVariant?: ButtonVariant | undefined;\n    destructive?: boolean | undefined;\n    /** Confirm is loading — cancel is disabled automatically. */\n    loading?: boolean | undefined;\n    cancelLoading?: boolean | undefined;\n    cancelTestID?: string | undefined;\n    confirmTestID?: string | undefined;\n    /** Per-button container style, layered after the built-in flex sizing. */\n    cancelStyle?: StyleProp<ViewStyle> | undefined;\n    confirmStyle?: StyleProp<ViewStyle> | undefined;\n    cancelLabelStyle?: StyleProp<TextStyle> | undefined;\n    confirmLabelStyle?: StyleProp<TextStyle> | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "ConfirmDialog",
          "slug": "confirm-dialog",
          "kind": "function",
          "declaration": "/**\n * A controlled confirmation modal with one safe cancellation route and one\n * affirmative action. Use Dialog directly when the footer or modal body needs\n * richer composition.\n */\ndeclare function ConfirmDialog({ visible, title, description, onConfirm, onDismiss, cancelLabel, confirmLabel, confirmVariant, confirmDisabled, loading, dismissOnBackdrop, animationType, finalFocusRef, overlayId: overlayIdProp, cancelTestID, confirmTestID, style, className, testID, }: ConfirmDialogProps): ReactElement;",
          "sourceDocumentation": "A controlled confirmation modal with one safe cancellation route and one\naffirmative action. Use Dialog directly when the footer or modal body needs\nricher composition."
        },
        {
          "name": "ConfirmDialogDismissDetails",
          "slug": "confirm-dialog-dismiss-details",
          "kind": "type",
          "declaration": "/** Dialog dismissal plus the explicit safe cancel action. */\ntype ConfirmDialogDismissDetails = DialogDismissDetails | (Omit<DialogDismissDetails, 'reason'> & {\n    readonly reason: 'cancel-action';\n});",
          "sourceDocumentation": "Dialog dismissal plus the explicit safe cancel action."
        },
        {
          "name": "ConfirmDialogProps",
          "slug": "confirm-dialog-props",
          "kind": "interface",
          "declaration": "interface ConfirmDialogProps extends Omit<CommonProps, 'unstyled'> {\n    /** The caller owns visibility; this component only requests dismissal. */\n    visible: boolean;\n    /** The visible title also names the underlying modal. */\n    title: string;\n    description?: string | undefined;\n    /** Runs the affirmative action. It never closes the dialog automatically. */\n    onConfirm: () => void;\n    /** Receives every user-initiated close request, including the cancel action. */\n    onDismiss: (details: ConfirmDialogDismissDetails) => void;\n    /** Defaults to strings.cancel. */\n    cancelLabel?: string | undefined;\n    /** Defaults to strings.confirm. */\n    confirmLabel?: string | undefined;\n    /** Defaults to primary. The narrow set keeps the affirmative action semantic. */\n    confirmVariant?: Extract<ButtonVariant, 'primary' | 'destructive'> | undefined;\n    /** Disables only the affirmative action; cancel and ordinary dismissal stay available. */\n    confirmDisabled?: boolean | undefined;\n    /** Blocks every action and dismissal while the caller's confirmation work is pending. */\n    loading?: boolean | undefined;\n    /** Defaults to true. It affects only backdrop presses, like Dialog. */\n    dismissOnBackdrop?: boolean | undefined;\n    /**\n     * Passed through to Dialog. Defaults to Dialog's 'fade'; Dialog animates\n     * only once the platform has affirmatively reported that reduced motion is\n     * off, and presents with 'none' otherwise (unresolved or reduced).\n     */\n    animationType?: NonNullable<ModalProps['animationType']> | undefined;\n    /** Best-effort focus restoration after the modal exits. */\n    finalFocusRef?: DialogFocusRef | undefined;\n    overlayId?: string | undefined;\n    /** testID of the cancel button. Defaults to `${testID}-cancel`. */\n    cancelTestID?: string | undefined;\n    /** testID of the confirm button. Defaults to `${testID}-confirm`. */\n    confirmTestID?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "ContentFrame",
          "slug": "content-frame",
          "kind": "function",
          "declaration": "/** A navigation-agnostic content width frame — a shell such as ScreenShell composes it. */\ndeclare function ContentFrame({ children, maxWidth, padding, topPadding, bottomPadding, center, style, className, testID, }: ContentFrameProps): ReactElement;",
          "sourceDocumentation": "A navigation-agnostic content width frame — a shell such as ScreenShell composes it."
        },
        {
          "name": "ContentFrameProps",
          "slug": "content-frame-props",
          "kind": "interface",
          "declaration": "interface ContentFrameProps extends Omit<CommonProps, 'unstyled'> {\n    children?: ReactNode | undefined;\n    /** Defaults to 1040 — inherited from the predecessor. */\n    maxWidth?: number | undefined;\n    /** Defaults to 'xl'. */\n    padding?: SpacingKey | number | undefined;\n    topPadding?: SpacingKey | number | undefined;\n    bottomPadding?: SpacingKey | number | undefined;\n    center?: boolean | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "ControlSize",
          "slug": "control-size",
          "kind": "type",
          "declaration": "type ControlSize = 'sm' | 'md';"
        },
        {
          "name": "createTheme",
          "slug": "create-theme",
          "kind": "function",
          "declaration": "/**\n * Creates a new Theme from partial overrides. Every key of base is guaranteed to\n * be filled, so the result is a complete theme.\n *\n * Passing a single Theme as base layers the overrides on top of that theme,\n * producing a derived theme.\n */\ndeclare function createTheme(base: ColorScheme | Theme, overrides?: ThemeOverrides): Theme;",
          "sourceDocumentation": "Creates a new Theme from partial overrides. Every key of base is guaranteed to\nbe filled, so the result is a complete theme.\n\nPassing a single Theme as base layers the overrides on top of that theme,\nproducing a derived theme."
        },
        {
          "name": "createThemes",
          "slug": "create-themes",
          "kind": "function",
          "declaration": "/**\n * \"Brand colors for both schemes at once\" — builds a pair by merging shared\n * overrides first, then per-scheme ones. Overriding only light leaves dark on the\n * default dark palette; nothing is derived automatically, by explicit principle.\n */\ndeclare function createThemes(input?: {\n    readonly shared?: ThemeOverrides | undefined;\n    readonly light?: ThemeOverrides | undefined;\n    readonly dark?: ThemeOverrides | undefined;\n}): ThemePair;",
          "sourceDocumentation": "\"Brand colors for both schemes at once\" — builds a pair by merging shared\noverrides first, then per-scheme ones. Overriding only light leaves dark on the\ndefault dark palette; nothing is derived automatically, by explicit principle."
        },
        {
          "name": "darkTheme",
          "slug": "dark-theme",
          "kind": "constant",
          "declaration": "darkTheme: Theme",
          "sourceDocumentation": "The built-in dark theme — the palette proposed in §3.6."
        },
        {
          "name": "DataTable",
          "slug": "data-table",
          "kind": "function",
          "declaration": "declare function DataTable<Row, RowKey extends DataTableRowKey, const Columns extends readonly {\n    readonly id: string;\n}[]>(props: DataTableComponentProps<Row, RowKey, Columns>): ReactElement;"
        },
        {
          "name": "DataTableActiveRow",
          "slug": "data-table-active-row",
          "kind": "interface",
          "declaration": "/**\n * App-driven \"current row\" highlight for consoles where activating a row opens\n * a detail surface (Sheet, side panel) that stays in sync with the table. This\n * is deliberately not selection: the row is not aria-selected, because that\n * would claim grid/listbox semantics this static table does not have. On the\n * web the active body row — the `<tr>` in the table presentation and the\n * listitem in the list presentation — carries `aria-current=\"true\"` instead,\n * which is valid on any element. Native presentations expose no extra\n * accessibility state for the active row, so the detail surface itself must\n * also convey which record is open. Grouping key and style in one object makes\n * a style without a key impossible by construction, the same shape discipline\n * as the selection prop.\n */\ninterface DataTableActiveRow<RowKey extends DataTableRowKey> {\n    /** Key of the row currently open in a detail surface; null means none. */\n    readonly key: RowKey | null;\n    /**\n     * Replaces the default active visual (primarySoft full-row wash + primary\n     * start-edge accent on the row-header cell or list row container). Layered\n     * onto the active row after built-in row styles; the web table presentation\n     * applies it to each of the row's cells, because a real <table> row box\n     * cannot paint above its opaque cells. `aria-current` stays either way.\n     */\n    readonly style?: StyleProp<ViewStyle> | undefined;\n}",
          "sourceDocumentation": "App-driven \"current row\" highlight for consoles where activating a row opens\na detail surface (Sheet, side panel) that stays in sync with the table. This\nis deliberately not selection: the row is not aria-selected, because that\nwould claim grid/listbox semantics this static table does not have. On the\nweb the active body row — the `<tr>` in the table presentation and the\nlistitem in the list presentation — carries `aria-current=\"true\"` instead,\nwhich is valid on any element. Native presentations expose no extra\naccessibility state for the active row, so the detail surface itself must\nalso convey which record is open. Grouping key and style in one object makes\na style without a key impossible by construction, the same shape discipline\nas the selection prop."
        },
        {
          "name": "DataTableAlignment",
          "slug": "data-table-alignment",
          "kind": "type",
          "declaration": "type DataTableAlignment = \"start\" | \"center\" | \"end\";"
        },
        {
          "name": "DataTableCellContext",
          "slug": "data-table-cell-context",
          "kind": "interface",
          "declaration": "interface DataTableCellContext<Row, RowKey extends DataTableRowKey, ColumnId extends string> extends DataTableValueContext<Row, RowKey, ColumnId> {\n    /** Nonblank scalar returned by getTextValue. */\n    readonly textValue: string;\n    readonly presentation: \"table\";\n}"
        },
        {
          "name": "DataTableColumn",
          "slug": "data-table-column",
          "kind": "type",
          "declaration": "type DataTableColumn<Row, ColumnId extends string, RowKey extends DataTableRowKey = DataTableRowKey> = DataTableColumnLayout & DataTableSortableColumn & {\n    readonly id: ColumnId;\n    /** Visible, nonblank column title and the default control name. */\n    readonly header: string;\n    /**\n     * Localized scalar used by native accessibility and compact renderers.\n     * Rich visual cells can still be returned by renderCell.\n     */\n    readonly getTextValue: (context: DataTableValueContext<Row, RowKey, ColumnId>) => string;\n    readonly renderCell?: (context: DataTableCellContext<Row, RowKey, ColumnId>) => ReactElement;\n    readonly align?: DataTableAlignment | undefined;\n    readonly minWidth?: number | undefined;\n    readonly maxWidth?: number | undefined;\n    readonly headerStyle?: StyleProp<ViewStyle> | undefined;\n    readonly headerClassName?: string | undefined;\n    readonly headerTextStyle?: StyleProp<TextStyle> | undefined;\n    readonly headerTextClassName?: string | undefined;\n    readonly cellStyle?: StyleProp<ViewStyle> | undefined;\n    readonly cellClassName?: string | undefined;\n    readonly cellTextStyle?: StyleProp<TextStyle> | undefined;\n    readonly cellTextClassName?: string | undefined;\n};"
        },
        {
          "name": "DataTableColumnId",
          "slug": "data-table-column-id",
          "kind": "type",
          "declaration": "type DataTableColumnId<Columns extends readonly {\n    readonly id: string;\n}[]> = Extract<Columns[number][\"id\"], string>;"
        },
        {
          "name": "DataTableComponentProps",
          "slug": "data-table-component-props",
          "kind": "type",
          "declaration": "/**\n * JSX call contract. Literal column tuples narrow sort.columnId to only columns\n * marked `sortable: true`; widened column arrays retain the explicit\n * DataTableProps controlled-pair union.\n */\ntype DataTableComponentProps<Row, RowKey extends DataTableRowKey, Columns extends readonly {\n    readonly id: string;\n}[]> = DistributiveDataTableOmit<DataTableProps<Row, DataTableColumnId<Columns>, RowKey>, \"columns\" | \"sort\" | \"onSortChange\"> & {\n    readonly columns: Columns & readonly DataTableColumn<Row, DataTableColumnId<Columns>, RowKey>[];\n} & InferredDataTableSorting<Columns>;",
          "sourceDocumentation": "JSX call contract. Literal column tuples narrow sort.columnId to only columns\nmarked `sortable: true`; widened column arrays retain the explicit\nDataTableProps controlled-pair union."
        },
        {
          "name": "DataTableListCell",
          "slug": "data-table-list-cell",
          "kind": "interface",
          "declaration": "interface DataTableListCell<ColumnId extends string> {\n    readonly columnId: ColumnId;\n    readonly header: string;\n    readonly textValue: string;\n    readonly align: DataTableAlignment;\n}"
        },
        {
          "name": "DataTableListRowContext",
          "slug": "data-table-list-row-context",
          "kind": "interface",
          "declaration": "interface DataTableListRowContext<Row, RowKey extends DataTableRowKey, ColumnId extends string> {\n    readonly row: Row;\n    readonly rowKey: RowKey;\n    readonly rowIndex: number;\n    readonly cells: readonly DataTableListCell<ColumnId>[];\n    readonly selected: boolean;\n    readonly selectionDisabled: boolean;\n    readonly presentation: \"list\";\n}"
        },
        {
          "name": "DataTablePresentation",
          "slug": "data-table-presentation",
          "kind": "type",
          "declaration": "type DataTablePresentation = \"table\" | \"list\" | \"auto\";"
        },
        {
          "name": "DataTableProps",
          "slug": "data-table-props",
          "kind": "type",
          "declaration": "type DataTableProps<Row, ColumnId extends string, RowKey extends DataTableRowKey> = DataTableBaseProps<Row, ColumnId, RowKey> & DataTableAccessibleName & DataTableSorting<ColumnId> & DataTableRowPress<Row, RowKey> & (DataTableTablePresentation | DataTableAdaptivePresentation<Row, RowKey, ColumnId>);"
        },
        {
          "name": "DataTableRowKey",
          "slug": "data-table-row-key",
          "kind": "type",
          "declaration": "/**\n * DataTable public contracts.\n *\n * DataTable is a bounded, presentational data table rather than a spreadsheet\n * widget. The application owns ordering, filtering, pagination, and fetching;\n * this package owns semantics, responsive presentation, and controlled UI\n * notifications. A future DataGrid may add composite arrow-key navigation and\n * virtualization without changing this static-table contract.\n */\ntype DataTableRowKey = string | number;",
          "sourceDocumentation": "DataTable public contracts.\n\nDataTable is a bounded, presentational data table rather than a spreadsheet\nwidget. The application owns ordering, filtering, pagination, and fetching;\nthis package owns semantics, responsive presentation, and controlled UI\nnotifications. A future DataGrid may add composite arrow-key navigation and\nvirtualization without changing this static-table contract."
        },
        {
          "name": "DataTableRowPressContext",
          "slug": "data-table-row-press-context",
          "kind": "interface",
          "declaration": "interface DataTableRowPressContext<RowKey extends DataTableRowKey> {\n    readonly rowKey: RowKey;\n    readonly rowIndex: number;\n    /** \"table\" for the semantic web table and the native visual table; \"list\" for compact presentations. */\n    readonly presentation: \"table\" | \"list\";\n    readonly originalEvent?: unknown;\n}"
        },
        {
          "name": "DataTableRowStyleContext",
          "slug": "data-table-row-style-context",
          "kind": "interface",
          "declaration": "interface DataTableRowStyleContext<RowKey extends DataTableRowKey> {\n    readonly rowKey: RowKey;\n    readonly rowIndex: number;\n    /** True when this row's key equals activeRow.key. */\n    readonly active: boolean;\n    /** \"table\" for the semantic web table and the native visual table; \"list\" for compact presentations. */\n    readonly presentation: \"table\" | \"list\";\n}"
        },
        {
          "name": "DataTableSelection",
          "slug": "data-table-selection",
          "kind": "interface",
          "declaration": "interface DataTableSelection<Row, RowKey extends DataTableRowKey> {\n    /** Include-only controlled model. Off-page keys are preserved by page toggles. */\n    readonly selectedRowKeys: readonly NoInfer<RowKey>[];\n    readonly onSelectionChange: (selectedRowKeys: readonly RowKey[], details: DataTableSelectionChangeDetails<RowKey>) => void;\n    readonly getRowSelectionAccessibilityLabel: (context: DataTableSelectionRowContext<Row, RowKey>) => string;\n    readonly isRowSelectionDisabled?: (context: DataTableSelectionRowContext<Row, RowKey>) => boolean;\n    /** Defaults to true. It always means the currently supplied visible rows. */\n    readonly showSelectAll?: boolean | undefined;\n    readonly selectAllAccessibilityLabel?: string | undefined;\n    readonly clearSelectionAccessibilityLabel?: string | undefined;\n}"
        },
        {
          "name": "DataTableSelectionChangeDetails",
          "slug": "data-table-selection-change-details",
          "kind": "type",
          "declaration": "type DataTableSelectionChangeDetails<RowKey extends DataTableRowKey> = {\n    readonly reason: \"row-toggle\";\n    readonly scope: \"visible\";\n    readonly rowKey: RowKey;\n    readonly selected: boolean;\n    readonly originalEvent?: unknown;\n} | {\n    readonly reason: \"page-toggle\";\n    readonly scope: \"visible\";\n    /** Visible, enabled keys whose selected boolean actually changed. */\n    readonly affectedRowKeys: readonly RowKey[];\n    readonly selected: boolean;\n    readonly originalEvent?: unknown;\n};"
        },
        {
          "name": "DataTableSelectionRowContext",
          "slug": "data-table-selection-row-context",
          "kind": "interface",
          "declaration": "interface DataTableSelectionRowContext<Row, RowKey extends DataTableRowKey> {\n    readonly row: Row;\n    readonly rowKey: RowKey;\n    readonly rowIndex: number;\n}"
        },
        {
          "name": "DataTableSize",
          "slug": "data-table-size",
          "kind": "type",
          "declaration": "type DataTableSize = \"sm\" | \"md\" | \"lg\";"
        },
        {
          "name": "DataTableSort",
          "slug": "data-table-sort",
          "kind": "interface",
          "declaration": "interface DataTableSort<ColumnId extends string> {\n    readonly columnId: ColumnId;\n    readonly direction: DataTableSortDirection;\n}"
        },
        {
          "name": "DataTableSortableColumnId",
          "slug": "data-table-sortable-column-id",
          "kind": "type",
          "declaration": "type DataTableSortableColumnId<Columns extends readonly {\n    readonly id: string;\n}[]> = Extract<Extract<Columns[number], {\n    readonly sortable: true;\n}>[\"id\"], string>;"
        },
        {
          "name": "DataTableSortChangeDetails",
          "slug": "data-table-sort-change-details",
          "kind": "interface",
          "declaration": "interface DataTableSortChangeDetails<ColumnId extends string> {\n    readonly reason: \"column-header-press\";\n    readonly columnId: ColumnId;\n    readonly previous: DataTableSort<ColumnId> | null;\n    readonly originalEvent?: unknown;\n}"
        },
        {
          "name": "DataTableSortDirection",
          "slug": "data-table-sort-direction",
          "kind": "type",
          "declaration": "type DataTableSortDirection = \"ascending\" | \"descending\";"
        },
        {
          "name": "DataTableState",
          "slug": "data-table-state",
          "kind": "type",
          "declaration": "type DataTableState<Row> = {\n    readonly status: \"loading\";\n    readonly skeletonRowCount?: number | undefined;\n    readonly loadingState?: ReactElement | undefined;\n    readonly rows?: never;\n    readonly errorState?: never;\n    readonly emptyState?: never;\n    readonly refreshingAccessibilityLabel?: never;\n} | {\n    readonly status: \"error\";\n    readonly errorState?: ReactElement | undefined;\n    readonly rows?: never;\n    readonly skeletonRowCount?: never;\n    readonly loadingState?: never;\n    readonly emptyState?: never;\n    readonly refreshingAccessibilityLabel?: never;\n} | {\n    readonly status: \"ready\";\n    readonly rows: readonly Row[];\n    readonly emptyState?: ReactElement | undefined;\n    readonly skeletonRowCount?: never;\n    readonly loadingState?: never;\n    readonly errorState?: never;\n    readonly refreshingAccessibilityLabel?: never;\n} | {\n    readonly status: \"refreshing\";\n    readonly rows: readonly Row[];\n    readonly refreshingAccessibilityLabel?: string | undefined;\n    readonly skeletonRowCount?: never;\n    readonly loadingState?: never;\n    readonly errorState?: never;\n    readonly emptyState?: never;\n};"
        },
        {
          "name": "DataTableValueContext",
          "slug": "data-table-value-context",
          "kind": "interface",
          "declaration": "interface DataTableValueContext<Row, RowKey extends DataTableRowKey, ColumnId extends string> {\n    readonly row: Row;\n    readonly rowKey: RowKey;\n    readonly rowIndex: number;\n    readonly columnId: ColumnId;\n}"
        },
        {
          "name": "DataTableVariant",
          "slug": "data-table-variant",
          "kind": "type",
          "declaration": "type DataTableVariant = \"line\" | \"outline\";"
        },
        {
          "name": "DateField",
          "slug": "date-field",
          "kind": "function",
          "declaration": "declare function DateField(props: DateFieldProps): ReactElement;"
        },
        {
          "name": "DateFieldProps",
          "slug": "date-field-props",
          "kind": "interface",
          "declaration": "interface DateFieldProps {\n    /** The committed date, or null for empty. Controlled. */\n    readonly value: CalendarDate | null;\n    /** Receives the next committed date, or null when the field is emptied. */\n    readonly onValueChange: (value: CalendarDate | null) => void;\n    /** Display order of the segments — a permutation of year/month/day. Defaults to year, month, day. */\n    readonly segmentOrder?: readonly DateFieldSegment[] | undefined;\n    /** Committed results are clamped to this inclusive lower bound. */\n    readonly minDate?: CalendarDate | undefined;\n    /** Committed results are clamped to this inclusive upper bound. */\n    readonly maxDate?: CalendarDate | undefined;\n    readonly label?: string | undefined;\n    /** When set, the borders and helper turn danger-toned; takes precedence over helperText. */\n    readonly error?: string | undefined;\n    readonly helperText?: string | undefined;\n    readonly disabled?: boolean | undefined;\n    /** Per-segment accessible names. Fall back to UiStrings dateFieldYear/dateFieldMonth/dateFieldDay. */\n    readonly segmentLabels?: DateFieldSegmentText | undefined;\n    /** Per-segment placeholders. No default — placeholder copy stays with the application. */\n    readonly segmentPlaceholders?: DateFieldSegmentText | undefined;\n    /** FormField-compatible wiring — applied to the group container. */\n    readonly nativeID?: string | undefined;\n    readonly accessibilityLabel?: string | undefined;\n    readonly accessibilityLabelledBy?: string | undefined;\n    readonly accessibilityHint?: string | undefined;\n    /** RN Web-only relationship overrides, same contract as TextField. */\n    readonly 'aria-labelledby'?: string | undefined;\n    readonly 'aria-describedby'?: string | undefined;\n    readonly 'aria-errormessage'?: string | undefined;\n    readonly 'aria-invalid'?: boolean | undefined;\n    readonly 'aria-required'?: boolean | undefined;\n    readonly style?: StyleProp<ViewStyle> | undefined;\n    readonly className?: string | undefined;\n    readonly labelStyle?: StyleProp<TextStyle> | undefined;\n    readonly helperStyle?: StyleProp<TextStyle> | undefined;\n    /** Applied to every segment input after the built-in box styles. */\n    readonly segmentStyle?: StyleProp<TextStyle> | undefined;\n    readonly testID?: string | undefined;\n    readonly unstyled?: never;\n}"
        },
        {
          "name": "DateFieldSegment",
          "slug": "date-field-segment",
          "kind": "type",
          "declaration": "/** One editable segment of the field. */\ntype DateFieldSegment = 'year' | 'month' | 'day';",
          "sourceDocumentation": "One editable segment of the field."
        },
        {
          "name": "DateFieldSegmentText",
          "slug": "date-field-segment-text",
          "kind": "interface",
          "declaration": "/** Per-segment text overrides (labels or placeholders). */\ninterface DateFieldSegmentText {\n    readonly year?: string | undefined;\n    readonly month?: string | undefined;\n    readonly day?: string | undefined;\n}",
          "sourceDocumentation": "Per-segment text overrides (labels or placeholders)."
        },
        {
          "name": "daysInCalendarMonth",
          "slug": "days-in-calendar-month",
          "kind": "function",
          "declaration": "/** The number of days in the given month (28–31). */\ndeclare function daysInCalendarMonth(year: number, month: number): number;",
          "sourceDocumentation": "The number of days in the given month (28–31)."
        },
        {
          "name": "defaultThemes",
          "slug": "default-themes",
          "kind": "constant",
          "declaration": "defaultThemes: ThemePair",
          "sourceDocumentation": "The result of calling createThemes() with no arguments — the built-in pair."
        },
        {
          "name": "DestinationLinkProps",
          "slug": "destination-link-props",
          "kind": "type",
          "declaration": "type DestinationLinkProps = LinkBaseProps & {\n    href: string;\n    target?: LinkTarget | undefined;\n    rel?: string | undefined;\n    /** Called when Linking.openURL fails on native. */\n    onOpenError?: ((error: unknown) => void) | undefined;\n    onPress?: never;\n};"
        },
        {
          "name": "Dialog",
          "slug": "dialog",
          "kind": "function",
          "declaration": "/** Controlled dialog. Calling onDismiss requests a state change; it never hides itself. */\ndeclare function Dialog({ children, visible, onDismiss, dismissOnBackdrop, dismissDisabled, presentation, animationType, accessibilityLabel, initialFocusRef, finalFocusRef, overlayId: overlayIdProp, overlayStyle, backdropStyle, contentStyle, inlineStyle, statusBarTranslucent, navigationBarTranslucent, testID, }: DialogProps): ReactElement | null;",
          "sourceDocumentation": "Controlled dialog. Calling onDismiss requests a state change; it never hides itself."
        },
        {
          "name": "DialogDismissDetails",
          "slug": "dialog-dismiss-details",
          "kind": "interface",
          "declaration": "interface DialogDismissDetails extends OverlayDismissDetails {\n    readonly reason: DialogDismissReason;\n}"
        },
        {
          "name": "DialogDismissReason",
          "slug": "dialog-dismiss-reason",
          "kind": "type",
          "declaration": "type DialogDismissReason = Extract<OverlayDismissReason, 'backdrop-press' | 'escape-key' | 'hardware-back' | 'accessibility-escape' | 'close-action'>;"
        },
        {
          "name": "DialogFocusable",
          "slug": "dialog-focusable",
          "kind": "interface",
          "declaration": "/** React Native hosts and DOM nodes both expose this small imperative surface. */\ninterface DialogFocusable {\n    focus?: (() => void) | undefined;\n}",
          "sourceDocumentation": "React Native hosts and DOM nodes both expose this small imperative surface."
        },
        {
          "name": "DialogFocusRef",
          "slug": "dialog-focus-ref",
          "kind": "type",
          "declaration": "type DialogFocusRef = RefObject<DialogFocusable | null>;"
        },
        {
          "name": "DialogPanel",
          "slug": "dialog-panel",
          "kind": "function",
          "declaration": "/** The visual panel inside a Modal. It only creates a close button when a Dialog context exists. */\ndeclare function DialogPanel({ children, title, description, leading, footer, titleStyle, headerStyle, descriptionStyle, hideHeader, showCloseButton, closeAccessibilityLabel, closeButtonTestID, closeButtonStyle, closeIcon, style, className, testID, }: DialogPanelProps): ReactElement;",
          "sourceDocumentation": "The visual panel inside a Modal. It only creates a close button when a Dialog context exists."
        },
        {
          "name": "DialogPanelElement",
          "slug": "dialog-panel-element",
          "kind": "type",
          "declaration": "type DialogPanelElement = ReactElement<DialogPanelProps, typeof DialogPanel>;"
        },
        {
          "name": "DialogPanelProps",
          "slug": "dialog-panel-props",
          "kind": "interface",
          "declaration": "interface DialogPanelProps extends Omit<CommonProps, 'unstyled'> {\n    children?: ReactNode | undefined;\n    title: string;\n    description?: string | undefined;\n    leading?: ReactNode | undefined;\n    footer?: ReactNode | undefined;\n    titleStyle?: StyleProp<TextStyle> | undefined;\n    /** Styles the header row wrapping leading, the title/description copy, and the close button. */\n    headerStyle?: StyleProp<ViewStyle> | undefined;\n    descriptionStyle?: StyleProp<TextStyle> | undefined;\n    /**\n     * Hides the header visually — the title/description block and the leading\n     * node are both skipped; the close button keeps its own header row. A dialog\n     * must still have an accessible name, so a modal Dialog whose direct panel\n     * hides its header requires the Dialog accessibilityLabel (enforced at\n     * render). On the web that label names the modal; on native the panel\n     * content should carry its own context, exactly like the arbitrary-content\n     * Dialog branch. When defined it must be an actual boolean (enforced at\n     * render), so truthy non-booleans cannot bypass the naming rule.\n     */\n    hideHeader?: boolean | undefined;\n    /** Defaults to true inside a Dialog. Standalone there is no dismiss behavior, so it is not rendered. */\n    showCloseButton?: boolean | undefined;\n    /** Defaults to strings.close. */\n    closeAccessibilityLabel?: string | undefined;\n    closeButtonTestID?: string | undefined;\n    closeButtonStyle?: StyleProp<ViewStyle> | undefined;\n    /**\n     * Replaces the default close mark (icons.close or the × glyph). The button\n     * keeps its accessible name. Like every icon slot, null — passed directly or\n     * returned from the RenderIcon — falls back to the default mark; render an\n     * empty fragment for a mark-less button.\n     */\n    closeIcon?: ReactNode | RenderIcon | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "DialogPresentation",
          "slug": "dialog-presentation",
          "kind": "type",
          "declaration": "type DialogPresentation = 'modal' | 'inline';"
        },
        {
          "name": "DialogProps",
          "slug": "dialog-props",
          "kind": "type",
          "declaration": "type DialogProps = DialogBaseProps & (DirectPanelDialogProps | ArbitraryModalDialogProps | ArbitraryInlineDialogProps);"
        },
        {
          "name": "Divider",
          "slug": "divider",
          "kind": "function",
          "declaration": "declare function Divider({ orientation, color, thickness, inset, spacing, decorative, style, className, testID, }: DividerProps): ReactElement;"
        },
        {
          "name": "DividerOrientation",
          "slug": "divider-orientation",
          "kind": "type",
          "declaration": "type DividerOrientation = 'horizontal' | 'vertical';"
        },
        {
          "name": "DividerProps",
          "slug": "divider-props",
          "kind": "interface",
          "declaration": "interface DividerProps extends Omit<CommonProps, 'unstyled'> {\n    orientation?: DividerOrientation | undefined;\n    /** Theme color roles only. Defaults to 'line'. */\n    color?: ColorKey | undefined;\n    /** Defaults to StyleSheet.hairlineWidth. */\n    thickness?: number | undefined;\n    /** The start and end margins along the line's axis. Token keys are first class, numbers are the escape hatch for measured values. */\n    inset?: SpacingKey | number | undefined;\n    /** The gap between the line and the adjacent content. Token keys are first class, numbers are the escape hatch for measured values. */\n    spacing?: SpacingKey | number | undefined;\n    /** Defaults to true. When false it emits separator semantics. */\n    decorative?: boolean | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "ElevationKey",
          "slug": "elevation-key",
          "kind": "type",
          "declaration": "type ElevationKey = keyof ThemeElevation;"
        },
        {
          "name": "ElevationLevel",
          "slug": "elevation-level",
          "kind": "interface",
          "declaration": "/**\n * The predecessor's elevation was only an Android elevation number, so the four\n * iOS shadow properties were scattered across components — this expands it into a\n * platform-complete shadow spec (§3.2).\n */\ninterface ElevationLevel {\n    /** Android elevation. */\n    readonly elevation: number;\n    readonly shadowOpacity: number;\n    readonly shadowRadius: number;\n    /** shadowOffset.height — width is fixed at 0. */\n    readonly shadowOffsetY: number;\n}",
          "sourceDocumentation": "The predecessor's elevation was only an Android elevation number, so the four\niOS shadow properties were scattered across components — this expands it into a\nplatform-complete shadow spec (§3.2)."
        },
        {
          "name": "EmptyState",
          "slug": "empty-state",
          "kind": "function",
          "declaration": "declare function EmptyState({ variant, title, body, action, leading, maxFontSizeMultiplier, style, className, testID, }: EmptyStateProps): ReactElement;"
        },
        {
          "name": "EmptyStateProps",
          "slug": "empty-state-props",
          "kind": "interface",
          "declaration": "interface EmptyStateProps extends Omit<CommonProps, 'unstyled'> {\n    /**\n     * Defaults to 'default' — the standing card, unchanged. 'compact' is a\n     * one-line notice for table-internal or inline empty rows: label-role title,\n     * tighter padding, and no built-in icon (`leading` renders bare and only\n     * when explicitly provided).\n     */\n    variant?: EmptyStateVariant | undefined;\n    /** Defaults to strings.emptyTitle. */\n    title?: string | undefined;\n    body?: string | undefined;\n    /** Structurally blocks a dead button with no label and no onPress (§6 ⑨ — the action object from C). */\n    action?: {\n        readonly label: string;\n        readonly onPress: () => void;\n    } | undefined;\n    /** Defaults to icons.empty. */\n    leading?: ReactNode | undefined;\n    /** Defaults to metrics.maxFontScale. */\n    maxFontSizeMultiplier?: number | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "EmptyStateVariant",
          "slug": "empty-state-variant",
          "kind": "type",
          "declaration": "type EmptyStateVariant = 'default' | 'compact';"
        },
        {
          "name": "enStrings",
          "slug": "en-strings",
          "kind": "constant",
          "declaration": "enStrings: UiStrings"
        },
        {
          "name": "ErrorState",
          "slug": "error-state",
          "kind": "function",
          "declaration": "declare function ErrorState({ title, message, onRetry, retryLabel, leading, maxFontSizeMultiplier, style, className, testID, }: ErrorStateProps): ReactElement;"
        },
        {
          "name": "ErrorStateProps",
          "slug": "error-state-props",
          "kind": "interface",
          "declaration": "interface ErrorStateProps extends Omit<CommonProps, 'unstyled'> {\n    /** Defaults to strings.errorTitle. */\n    title?: string | undefined;\n    /** Defaults to strings.errorBody. */\n    message?: string | undefined;\n    /** Renders the button only when present — no dead buttons (§5.10). */\n    onRetry?: (() => void) | undefined;\n    /** Defaults to strings.retry. */\n    retryLabel?: string | undefined;\n    /** Defaults to icons.error. */\n    leading?: ReactNode | undefined;\n    maxFontSizeMultiplier?: number | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "FABPlacement",
          "slug": "fabplacement",
          "kind": "type",
          "declaration": "type FABPlacement = 'bottom-start' | 'bottom-center' | 'bottom-end';"
        },
        {
          "name": "FABProps",
          "slug": "fabprops",
          "kind": "type",
          "declaration": "type FABProps = FABBaseProps & (IconOnlyFABProps | ExtendedFABProps);"
        },
        {
          "name": "FABSize",
          "slug": "fabsize",
          "kind": "type",
          "declaration": "/** FloatingActionButton — places a screen's primary action together with the edge insets. */\ntype FABSize = 'sm' | 'md' | 'lg';",
          "sourceDocumentation": "FloatingActionButton — places a screen's primary action together with the edge insets."
        },
        {
          "name": "FABVariant",
          "slug": "fabvariant",
          "kind": "type",
          "declaration": "type FABVariant = 'primary' | 'secondary';"
        },
        {
          "name": "FilterChipProps",
          "slug": "filter-chip-props",
          "kind": "type",
          "declaration": "type FilterChipProps = ChipBaseProps & {\n    kind: 'filter';\n    selected: boolean;\n    onSelectedChange: (selected: boolean) => void;\n    onPress?: never;\n    onRemove?: never;\n    removeAccessibilityLabel?: never;\n};"
        },
        {
          "name": "filterComboboxItems",
          "slug": "filter-combobox-items",
          "kind": "function",
          "declaration": "/**\n * Deterministic zero-dependency filtering.\n *\n * - undefined filter: every normalized whitespace token must occur in the\n *   combined label/textValue/keywords copy.\n * - function filter: the caller owns matching, while this helper still supplies\n *   one normalized query/tokens object for every item.\n * - null filter: results are already filtered; the original array is returned.\n */\ndeclare function filterComboboxItems<T extends string>(items: readonly ComboboxItem<T>[], query: string, filter?: ComboboxFilter<T> | null | undefined, locale?: string | readonly string[] | undefined): readonly ComboboxItem<T>[];",
          "sourceDocumentation": "Deterministic zero-dependency filtering.\n\n- undefined filter: every normalized whitespace token must occur in the\n  combined label/textValue/keywords copy.\n- function filter: the caller owns matching, while this helper still supplies\n  one normalized query/tokens object for every item.\n- null filter: results are already filtered; the original array is returned."
        },
        {
          "name": "FloatingActionButton",
          "slug": "floating-action-button",
          "kind": "function",
          "declaration": "declare function FloatingActionButton(props: FABProps): ReactElement;"
        },
        {
          "name": "FontWeight",
          "slug": "font-weight",
          "kind": "type",
          "declaration": "/**\n * The predecessor's typography was only a fontSize number, so weight and\n * lineHeight were hardcoded in components — this expands it into a complete text\n * style per role (§3.2).\n */\ntype FontWeight = '400' | '500' | '600' | '700' | '800';",
          "sourceDocumentation": "The predecessor's typography was only a fontSize number, so weight and\nlineHeight were hardcoded in components — this expands it into a complete text\nstyle per role (§3.2)."
        },
        {
          "name": "formatCalendarDateKey",
          "slug": "format-calendar-date-key",
          "kind": "function",
          "declaration": "/**\n * Formats a date as the ISO-8601 key \"YYYY-MM-DD\" (zero-padded). This is a\n * data format, not display copy — visible labels stay with the application.\n */\ndeclare function formatCalendarDateKey(date: CalendarDate): string;",
          "sourceDocumentation": "Formats a date as the ISO-8601 key \"YYYY-MM-DD\" (zero-padded). This is a\ndata format, not display copy — visible labels stay with the application."
        },
        {
          "name": "FormField",
          "slug": "form-field",
          "kind": "function",
          "declaration": "declare function FormField({ label, children, helperText, error, required, requiredAccessibilityLabel, labelAccessory, style, labelStyle, helperStyle, className, labelClassName, helperClassName, testID, }: FormFieldProps): ReactElement;"
        },
        {
          "name": "FormFieldControlProps",
          "slug": "form-field-control-props",
          "kind": "interface",
          "declaration": "/**\n * The accessibility wiring a FormField render prop hands to its control.\n * `aria-*` only appears on the runtime object under RNW; this narrow public type\n * expresses it without bringing DOM types into src.\n */\ninterface FormFieldControlProps {\n    nativeID: string;\n    accessibilityLabel: string;\n    accessibilityLabelledBy: string;\n    accessibilityHint?: string | undefined;\n    'aria-labelledby'?: string | undefined;\n    'aria-describedby'?: string | undefined;\n    'aria-errormessage'?: string | undefined;\n    'aria-invalid'?: boolean | undefined;\n    'aria-required'?: boolean | undefined;\n}",
          "sourceDocumentation": "The accessibility wiring a FormField render prop hands to its control.\n`aria-*` only appears on the runtime object under RNW; this narrow public type\nexpresses it without bringing DOM types into src."
        },
        {
          "name": "FormFieldProps",
          "slug": "form-field-props",
          "kind": "type",
          "declaration": "type FormFieldProps = FormFieldBaseProps & (OptionalFormFieldProps | RequiredFormFieldProps);"
        },
        {
          "name": "getActiveTheme",
          "slug": "get-active-theme",
          "kind": "function",
          "declaration": "/**\n * A snapshot of the theme the root UiProvider is currently emitting; lightTheme\n * before or without a Provider. It triggers no re-render. Nested Providers do\n * not write the snapshot, so its definition stays unique in a native client app.\n *\n * @deprecated This is a client-only mutable module snapshot. It is neither\n * request-scoped nor updated during SSR rendering. For SSR or static\n * configuration, use `resolveTheme(theme, colorScheme)` with request-owned\n * inputs instead.\n */\ndeclare function getActiveTheme(): Theme;",
          "sourceDocumentation": "A snapshot of the theme the root UiProvider is currently emitting; lightTheme\nbefore or without a Provider. It triggers no re-render. Nested Providers do\nnot write the snapshot, so its definition stays unique in a native client app."
        },
        {
          "name": "getPaginationRange",
          "slug": "get-pagination-range",
          "kind": "function",
          "declaration": "/**\n * Produces a deterministic, presentation-only numbered range.\n *\n * Near an edge, unused sibling slots are filled with adjacent pages so the\n * control does not abruptly shrink. Ellipses never represent a selectable\n * page and the current page is present exactly once.\n */\ndeclare function getPaginationRange({ page, pageCount, boundaryCount, siblingCount, }: PaginationRangeOptions): readonly PaginationRangeItem[];",
          "sourceDocumentation": "Produces a deterministic, presentation-only numbered range.\n\nNear an edge, unused sibling slots are filled with adjacent pages so the\ncontrol does not abruptly shrink. Ellipses never represent a selectable\npage and the current page is present exactly once."
        },
        {
          "name": "IconButton",
          "slug": "icon-button",
          "kind": "function",
          "declaration": "declare function IconButton({ accessibilityLabel, icon, onPress, variant, size, disabled, loading, style, className, testID, }: IconButtonProps): ReactElement;"
        },
        {
          "name": "IconButtonProps",
          "slug": "icon-button-props",
          "kind": "type",
          "declaration": "/** An icon action needs a non-empty name and onPress unless it is inert. */\ntype IconButtonProps = IconButtonBaseProps & ButtonInteractionProps;",
          "sourceDocumentation": "An icon action needs a non-empty name and onPress unless it is inert."
        },
        {
          "name": "IconRenderProps",
          "slug": "icon-render-props",
          "kind": "type",
          "declaration": "/**\n * The icon injection system — design doc §4.2.\n *\n * The heart of having zero runtime dependencies: the host always supplies the icon\n * implementation and the library only computes color and size before handing it\n * over. Per-component renderMark and leading props are the individual override;\n * UiIcons is the default layer injected once at the Provider.\n */\ntype IconRenderProps = {\n    readonly color: string;\n    readonly size: number;\n};",
          "sourceDocumentation": "The icon injection system — design doc §4.2.\n\nThe heart of having zero runtime dependencies: the host always supplies the icon\nimplementation and the library only computes color and size before handing it\nover. Per-component renderMark and leading props are the individual override;\nUiIcons is the default layer injected once at the Provider."
        },
        {
          "name": "InteractiveRatingProps",
          "slug": "interactive-rating-props",
          "kind": "interface",
          "declaration": "interface InteractiveRatingProps extends RatingBaseProps {\n    /** Calls with the next selected rating, or `undefined` when a selection is cleared. */\n    onChange: (value: number | undefined) => void;\n    /** A second activation of the selected dot clears it. Default false. */\n    clearable?: boolean | undefined;\n    /** Disables pointer, keyboard and native accessibility actions. */\n    disabled?: boolean | undefined;\n    /** Optional localized name for the screen-reader clear action. */\n    clearAccessibilityLabel?: string | undefined;\n    /** Interactive is the default branch. */\n    readonly?: false | undefined;\n}"
        },
        {
          "name": "isCalendarLeapYear",
          "slug": "is-calendar-leap-year",
          "kind": "function",
          "declaration": "/** True when the year is a Gregorian leap year. */\ndeclare function isCalendarLeapYear(year: number): boolean;",
          "sourceDocumentation": "True when the year is a Gregorian leap year."
        },
        {
          "name": "isSameCalendarDate",
          "slug": "is-same-calendar-date",
          "kind": "function",
          "declaration": "/** True when both name the same civil day. */\ndeclare function isSameCalendarDate(a: CalendarDate, b: CalendarDate): boolean;",
          "sourceDocumentation": "True when both name the same civil day."
        },
        {
          "name": "isSameCalendarMonth",
          "slug": "is-same-calendar-month",
          "kind": "function",
          "declaration": "/** True when both name the same year–month. */\ndeclare function isSameCalendarMonth(a: CalendarMonth, b: CalendarMonth): boolean;",
          "sourceDocumentation": "True when both name the same year–month."
        },
        {
          "name": "isValidCalendarDate",
          "slug": "is-valid-calendar-date",
          "kind": "function",
          "declaration": "/**\n * True when the value is a structurally complete CalendarDate naming a real\n * day: integer fields, year 1–9999, month 1–12, and a day that exists in that\n * month (February 30th is rejected).\n */\ndeclare function isValidCalendarDate(value: unknown): value is CalendarDate;",
          "sourceDocumentation": "True when the value is a structurally complete CalendarDate naming a real\nday: integer fields, year 1–9999, month 1–12, and a day that exists in that\nmonth (February 30th is rejected)."
        },
        {
          "name": "KeyValueItem",
          "slug": "key-value-item",
          "kind": "interface",
          "declaration": "interface KeyValueItem {\n    /** Stable identity for the row. Defaults to label, which must then be unique within the list. */\n    readonly key?: string | undefined;\n    /** Visible, nonblank term. */\n    readonly label: string;\n    /**\n     * Strings and numbers render as themed text; any other node renders as\n     * supplied. Booleans and nullish values render nothing and are rejected at\n     * compile time and at runtime — omit the row instead.\n     */\n    readonly value: Exclude<NonNullable<ReactNode>, boolean>;\n}"
        },
        {
          "name": "KeyValueList",
          "slug": "key-value-list",
          "kind": "function",
          "declaration": "/** A themed description list. Renders nothing when items is empty. */\ndeclare function KeyValueList(props: KeyValueListProps): ReactElement | null;",
          "sourceDocumentation": "A themed description list. Renders nothing when items is empty."
        },
        {
          "name": "KeyValueListLayout",
          "slug": "key-value-list-layout",
          "kind": "type",
          "declaration": "/**\n * KeyValueList — a description list for detail panes.\n *\n * The web build emits a real `<dl>` with `<dt>`/`<dd>` pairs (each pair wrapped\n * in a `<div>`, which HTML permits inside `dl`) through the same narrow raw-host\n * boundary DataTable uses for `<table>`. Native has no description-list\n * semantics, so it uses the honest `list`/`listitem` roles and folds scalar\n * pairs into one \"label: value\" accessibility element.\n */\ntype KeyValueListLayout = 'stacked' | 'inline';",
          "sourceDocumentation": "KeyValueList — a description list for detail panes.\n\nThe web build emits a real `<dl>` with `<dt>`/`<dd>` pairs (each pair wrapped\nin a `<div>`, which HTML permits inside `dl`) through the same narrow raw-host\nboundary DataTable uses for `<table>`. Native has no description-list\nsemantics, so it uses the honest `list`/`listitem` roles and folds scalar\npairs into one \"label: value\" accessibility element."
        },
        {
          "name": "KeyValueListProps",
          "slug": "key-value-list-props",
          "kind": "interface",
          "declaration": "interface KeyValueListProps extends Omit<CommonProps, 'unstyled'> {\n    /** An empty list renders nothing at all — no empty container. */\n    items: readonly KeyValueItem[];\n    /** Names the list for assistive technology. Omit when a nearby heading already names the section. */\n    accessibilityLabel?: string | undefined;\n    /** inline places the label left of the value on one row; stacked places the label above. Defaults to inline. */\n    layout?: KeyValueListLayout | undefined;\n    /** Defaults to md. */\n    size?: KeyValueListSize | undefined;\n    /** Draws a hairline between rows. Defaults to false. */\n    divider?: boolean | undefined;\n    labelStyle?: StyleProp<TextStyle> | undefined;\n    labelClassName?: string | undefined;\n    /** Applies to the value text; for a custom node it applies to the node's wrapper instead. */\n    valueStyle?: StyleProp<TextStyle> | undefined;\n    valueClassName?: string | undefined;\n    rowStyle?: StyleProp<ViewStyle> | undefined;\n    rowClassName?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "KeyValueListSize",
          "slug": "key-value-list-size",
          "kind": "type",
          "declaration": "type KeyValueListSize = 'sm' | 'md';"
        },
        {
          "name": "koStrings",
          "slug": "ko-strings",
          "kind": "constant",
          "declaration": "koStrings: UiStrings"
        },
        {
          "name": "lightTheme",
          "slug": "light-theme",
          "kind": "constant",
          "declaration": "lightTheme: Theme",
          "sourceDocumentation": "The built-in light theme — values inherited from the predecessor's tokens.json (§3.6)."
        },
        {
          "name": "Link",
          "slug": "link",
          "kind": "function",
          "declaration": "declare function Link(props: LinkProps): ReactElement;"
        },
        {
          "name": "LinkProps",
          "slug": "link-props",
          "kind": "type",
          "declaration": "type LinkProps = DestinationLinkProps | ActionLinkProps;"
        },
        {
          "name": "LinkTarget",
          "slug": "link-target",
          "kind": "type",
          "declaration": "type LinkTarget = '_self' | '_blank';"
        },
        {
          "name": "LinkVariant",
          "slug": "link-variant",
          "kind": "type",
          "declaration": "/**\n * Link — the text primitive that separates document and screen navigation from a\n * button action.\n *\n * The href branch renders a real <a> on the web and uses Linking on native. The\n * router-owned onPress branch provides the link role and Enter-only keyboard\n * behavior.\n */\ntype LinkVariant = 'primary' | 'muted' | 'danger';",
          "sourceDocumentation": "Link — the text primitive that separates document and screen navigation from a\nbutton action.\n\nThe href branch renders a real <a> on the web and uses Linking on native. The\nrouter-owned onPress branch provides the link role and Enter-only keyboard\nbehavior."
        },
        {
          "name": "ListItem",
          "slug": "list-item",
          "kind": "function",
          "declaration": "declare function ListItem(props: ListItemProps): ReactElement;"
        },
        {
          "name": "ListItemProps",
          "slug": "list-item-props",
          "kind": "type",
          "declaration": "type ListItemProps = ListItemBaseProps & (InteractiveListItem | StaticListItem);"
        },
        {
          "name": "ListItemSize",
          "slug": "list-item-size",
          "kind": "type",
          "declaration": "type ListItemSize = 'sm' | 'md' | 'lg';"
        },
        {
          "name": "Menu",
          "slug": "menu",
          "kind": "function",
          "declaration": "/** Native/default controlled menu. Compact screens adapt to a bottom action surface. */\ndeclare function Menu<const T extends string>(props: MenuProps<T>): ReactElement;",
          "sourceDocumentation": "Native/default controlled menu. Compact screens adapt to a bottom action surface."
        },
        {
          "name": "MenuActionItem",
          "slug": "menu-action-item",
          "kind": "type",
          "declaration": "type MenuActionItem<T extends string> = MenuItemBase<T> & {\n    readonly kind: 'action';\n    readonly destructive?: boolean | undefined;\n    /** Defaults to true. */\n    readonly closeOnSelect?: boolean | undefined;\n};"
        },
        {
          "name": "MenuCheckboxItem",
          "slug": "menu-checkbox-item",
          "kind": "type",
          "declaration": "type MenuCheckboxItem<T extends string> = MenuItemBase<T> & {\n    readonly kind: 'checkbox';\n    readonly checked: boolean | 'mixed';\n    /** Defaults to false, so several options can be changed in a row. */\n    readonly closeOnSelect?: boolean | undefined;\n    readonly destructive?: never;\n};"
        },
        {
          "name": "MenuDirection",
          "slug": "menu-direction",
          "kind": "type",
          "declaration": "type MenuDirection = 'ltr' | 'rtl';"
        },
        {
          "name": "MenuItem",
          "slug": "menu-item",
          "kind": "type",
          "declaration": "type MenuItem<T extends string> = MenuActionItem<T> | MenuCheckboxItem<T>;"
        },
        {
          "name": "MenuOpenChangeDetails",
          "slug": "menu-open-change-details",
          "kind": "interface",
          "declaration": "interface MenuOpenChangeDetails<T extends string> {\n    readonly reason: MenuOpenChangeReason;\n    readonly value?: T | undefined;\n    readonly originalEvent?: unknown;\n}"
        },
        {
          "name": "MenuOpenChangeReason",
          "slug": "menu-open-change-reason",
          "kind": "type",
          "declaration": "type MenuOpenChangeReason = 'trigger-press' | 'outside-press' | 'escape-key' | 'hardware-back' | 'accessibility-escape' | 'cancel-action' | 'tab-key' | 'focus-out' | 'anchor-detached' | 'action-select';"
        },
        {
          "name": "MenuPlacement",
          "slug": "menu-placement",
          "kind": "type",
          "declaration": "type MenuPlacement = OverlayPlacement;"
        },
        {
          "name": "MenuPresentation",
          "slug": "menu-presentation",
          "kind": "type",
          "declaration": "/**\n * Native surface form. 'auto' resolves to 'bottom' on compact widths and\n * 'center' on tablet widths, exactly as before. 'anchored' renders a dim-less\n * panel positioned by the measured trigger inside a transparent Modal; the\n * web popup is always anchored and ignores this prop.\n */\ntype MenuPresentation = 'auto' | 'bottom' | 'center' | 'anchored';",
          "sourceDocumentation": "Native surface form. 'auto' resolves to 'bottom' on compact widths and\n'center' on tablet widths, exactly as before. 'anchored' renders a dim-less\npanel positioned by the measured trigger inside a transparent Modal; the\nweb popup is always anchored and ignores this prop."
        },
        {
          "name": "MenuProps",
          "slug": "menu-props",
          "kind": "type",
          "declaration": "type MenuProps<T extends string> = Omit<CommonProps, 'unstyled'> & (MenuOwnedTriggerProps | MenuRenderTriggerProps) & {\n    readonly items: readonly MenuItem<T>[];\n    readonly open: boolean;\n    readonly onOpenChange: (open: boolean, details: MenuOpenChangeDetails<NoInfer<T>>) => void;\n    readonly onSelect: (details: MenuSelectDetails<NoInfer<T>>) => void;\n    /** The menu landmark name. Defaults to triggerLabel. */\n    readonly accessibilityLabel?: string | undefined;\n    readonly disabled?: boolean | undefined;\n    /** Blocks selection while still allowing an already open menu to dismiss. */\n    readonly busy?: boolean | undefined;\n    /** Blocks outside presses, Escape, Back, and the accessibility escape. */\n    readonly dismissDisabled?: boolean | undefined;\n    readonly placement?: MenuPlacement | undefined;\n    readonly direction?: MenuDirection | undefined;\n    readonly sideOffset?: number | undefined;\n    readonly alignOffset?: number | undefined;\n    readonly collisionPadding?: number | undefined;\n    readonly presentation?: MenuPresentation | undefined;\n    /** Safe-area inset composed by the caller for a native bottom presentation. */\n    readonly bottomInset?: number | undefined;\n    /** Keyboard occlusion height measured inside a native Modal. Takes precedence over bottomInset when greater than 0. */\n    readonly keyboardOverlap?: number | undefined;\n    /** testID on the trigger pressable itself (the actual press target), distinct from the root container testID. */\n    readonly triggerTestID?: string | undefined;\n    /** Applied to an enabled item while a pointer hovers it. Layered after itemStyle. */\n    readonly itemHoverStyle?: StyleProp<ViewStyle> | undefined;\n    readonly contentStyle?: StyleProp<ViewStyle> | undefined;\n    readonly contentClassName?: string | undefined;\n    readonly itemStyle?: StyleProp<ViewStyle> | undefined;\n    readonly itemClassName?: string | undefined;\n    readonly itemLabelStyle?: StyleProp<TextStyle> | undefined;\n    readonly itemLabelClassName?: string | undefined;\n    readonly unstyled?: never;\n};"
        },
        {
          "name": "MenuSelectDetails",
          "slug": "menu-select-details",
          "kind": "type",
          "declaration": "type MenuSelectDetails<T extends string> = {\n    readonly kind: 'action';\n    readonly value: T;\n    readonly originalEvent?: unknown;\n} | {\n    readonly kind: 'checkbox';\n    readonly value: T;\n    readonly checked: boolean;\n    readonly originalEvent?: unknown;\n};"
        },
        {
          "name": "MenuTriggerSize",
          "slug": "menu-trigger-size",
          "kind": "type",
          "declaration": "type MenuTriggerSize = 'sm' | 'md';"
        },
        {
          "name": "MenuTriggerVariant",
          "slug": "menu-trigger-variant",
          "kind": "type",
          "declaration": "type MenuTriggerVariant = 'filled' | 'outlined' | 'ghost';"
        },
        {
          "name": "MonthCalendar",
          "slug": "month-calendar",
          "kind": "function",
          "declaration": "declare function MonthCalendar(props: MonthCalendarProps): ReactElement;"
        },
        {
          "name": "MonthCalendarDayContext",
          "slug": "month-calendar-day-context",
          "kind": "interface",
          "declaration": "/** The state of one day cell, handed to renderDay/getDayAccessibilityLabel/dayStyle. */\ninterface MonthCalendarDayContext {\n    readonly date: CalendarDate;\n    /** False for the adjacent-month padding cells of the first and last week. */\n    readonly inMonth: boolean;\n    /** True only when the app passed `today` and it names this day. */\n    readonly today: boolean;\n    readonly selected: boolean;\n    /** True for adjacent-month padding cells and for days outside the minDate/maxDate range. */\n    readonly disabled: boolean;\n}",
          "sourceDocumentation": "The state of one day cell, handed to renderDay/getDayAccessibilityLabel/dayStyle."
        },
        {
          "name": "MonthCalendarLabels",
          "slug": "month-calendar-labels",
          "kind": "interface",
          "declaration": "/**\n * Header copy. `weekdays` is ALWAYS Sunday-first (index 0 = Sunday through\n * index 6 = Saturday) regardless of weekStartsOn — the component reorders the\n * columns for display, so one array works for both week starts.\n */\ninterface MonthCalendarLabels {\n    readonly weekdays: readonly [\n        string,\n        string,\n        string,\n        string,\n        string,\n        string,\n        string\n    ];\n    /** The visible caption of the displayed month (e.g. \"August 2026\"). */\n    readonly monthTitle: string;\n}",
          "sourceDocumentation": "Header copy. `weekdays` is ALWAYS Sunday-first (index 0 = Sunday through\nindex 6 = Saturday) regardless of weekStartsOn — the component reorders the\ncolumns for display, so one array works for both week starts."
        },
        {
          "name": "MonthCalendarProps",
          "slug": "month-calendar-props",
          "kind": "interface",
          "declaration": "interface MonthCalendarProps {\n    /** The displayed month. Controlled — the application owns this state. */\n    readonly month: CalendarMonth;\n    /**\n     * Month-navigation requests raised by the calendar itself — on the web,\n     * PageUp (previous month) and PageDown (next month) on a focused day cell.\n     * The calendar renders no built-in previous/next buttons; the application\n     * composes its own (a Toolbar of Buttons) and updates `month` from both.\n     */\n    readonly onMonthChange?: ((month: CalendarMonth) => void) | undefined;\n    /** The selected day, or null for none. */\n    readonly value?: CalendarDate | null | undefined;\n    /**\n     * Selection handler. When absent the grid is a static presentation: day\n     * cells are not focusable, not pressable, and carry no keyboard behavior.\n     */\n    readonly onValueChange?: ((date: CalendarDate) => void) | undefined;\n    /** The weekday the grid starts on: 0 = Sunday, 1 = Monday. Defaults to 1. */\n    readonly weekStartsOn?: CalendarWeekStart | undefined;\n    /** Days earlier than this are disabled (still focusable, activation is a no-op). */\n    readonly minDate?: CalendarDate | undefined;\n    /** Days later than this are disabled (still focusable, activation is a no-op). */\n    readonly maxDate?: CalendarDate | undefined;\n    /**\n     * The application-resolved current day. The kit never reads the clock, so\n     * omitting this simply renders no today ring and no `aria-current=\"date\"`.\n     */\n    readonly today?: CalendarDate | undefined;\n    readonly labels: MonthCalendarLabels;\n    /** Names the grid for assistive technology (web `aria-label`). Required. */\n    readonly accessibilityLabel: string;\n    /**\n     * Replaces a day cell's CONTENT. The cell itself — its gridcell/button\n     * semantics, focus, and press handling — stays kit-owned.\n     */\n    readonly renderDay?: ((context: MonthCalendarDayContext) => ReactNode) | undefined;\n    /**\n     * The accessible name of a day cell. Defaults to the ISO key \"YYYY-MM-DD\" —\n     * a locale-free data format; pass this for localized, state-rich names.\n     */\n    readonly getDayAccessibilityLabel?: ((context: MonthCalendarDayContext) => string) | undefined;\n    /** Per-day style hook layered after the built-in cell visuals. */\n    readonly dayStyle?: ((context: MonthCalendarDayContext) => StyleProp<ViewStyle> | undefined) | undefined;\n    readonly titleStyle?: StyleProp<TextStyle> | undefined;\n    readonly weekdayStyle?: StyleProp<TextStyle> | undefined;\n    readonly style?: StyleProp<ViewStyle> | undefined;\n    readonly className?: string | undefined;\n    readonly testID?: string | undefined;\n    readonly unstyled?: never;\n}"
        },
        {
          "name": "MonthGrid",
          "slug": "month-grid",
          "kind": "interface",
          "declaration": "/**\n * A month laid out as weeks. The grid has as many weeks as the month actually\n * spans (4–6) — no phantom sixth week is padded on.\n */\ninterface MonthGrid {\n    readonly month: CalendarMonth;\n    readonly weekStartsOn: CalendarWeekStart;\n    readonly weeks: readonly MonthGridWeek[];\n}",
          "sourceDocumentation": "A month laid out as weeks. The grid has as many weeks as the month actually\nspans (4–6) — no phantom sixth week is padded on."
        },
        {
          "name": "MonthGridCell",
          "slug": "month-grid-cell",
          "kind": "interface",
          "declaration": "/**\n * One cell of a month grid. Leading/trailing cells carry `inMonth: false`.\n *\n * Boundary caveat: at the two edge months of the year space (January 0001 and\n * December 9999) the padding days fall OUTSIDE the CalendarDate year range —\n * year 0 or 10000. Those `inMonth: false` cells fail `isValidCalendarDate`,\n * and asserting helpers such as `formatCalendarDateKey` reject them; treat a\n * padding cell's `date` as display data, not as a value to feed back into the\n * calendar API without checking `isValidCalendarDate` first.\n */\ninterface MonthGridCell {\n    readonly date: CalendarDate;\n    /** False for the adjacent-month days that pad the first and last week. */\n    readonly inMonth: boolean;\n}",
          "sourceDocumentation": "One cell of a month grid. Leading/trailing cells carry `inMonth: false`.\n\nBoundary caveat: at the two edge months of the year space (January 0001 and\nDecember 9999) the padding days fall OUTSIDE the CalendarDate year range —\nyear 0 or 10000. Those `inMonth: false` cells fail `isValidCalendarDate`,\nand asserting helpers such as `formatCalendarDateKey` reject them; treat a\npadding cell's `date` as display data, not as a value to feed back into the\ncalendar API without checking `isValidCalendarDate` first."
        },
        {
          "name": "MonthGridWeek",
          "slug": "month-grid-week",
          "kind": "type",
          "declaration": "/** One grid row — always exactly seven cells. */\ntype MonthGridWeek = readonly [\n    MonthGridCell,\n    MonthGridCell,\n    MonthGridCell,\n    MonthGridCell,\n    MonthGridCell,\n    MonthGridCell,\n    MonthGridCell\n];",
          "sourceDocumentation": "One grid row — always exactly seven cells."
        },
        {
          "name": "MultipleComboboxValueChangeDetails",
          "slug": "multiple-combobox-value-change-details",
          "kind": "type",
          "declaration": "type MultipleComboboxValueChangeDetails<T extends string> = {\n    readonly selectionMode: \"multiple\";\n    readonly reason: \"option-select\" | \"option-remove\";\n    readonly previousValue: readonly T[];\n    readonly item: ComboboxItem<T>;\n    readonly originalEvent?: unknown;\n} | {\n    readonly selectionMode: \"multiple\";\n    readonly reason: \"clear-action\";\n    readonly previousValue: readonly T[];\n    readonly item?: never;\n    readonly originalEvent?: unknown;\n};"
        },
        {
          "name": "normalizeComboboxText",
          "slug": "normalize-combobox-text",
          "kind": "function",
          "declaration": "/**\n * Search normalization shared by the built-in Combobox filter.\n *\n * Lowercasing happens before decomposition so Turkish dotted I behaves as the\n * requested locale expects. Combining marks are removed only when they follow\n * a Latin base; marks remain meaningful in scripts such as Devanagari.\n */\ndeclare function normalizeComboboxText(value: string, locale?: string | readonly string[] | undefined): string;",
          "sourceDocumentation": "Search normalization shared by the built-in Combobox filter.\n\nLowercasing happens before decomposition so Turkish dotted I behaves as the\nrequested locale expects. Combining marks are removed only when they follow\na Latin base; marks remain meaningful in scripts such as Devanagari."
        },
        {
          "name": "OverlayProvider",
          "slug": "overlay-provider",
          "kind": "function",
          "declaration": "/**\n * The overlay registry scope. It belongs below the app-wide Provider and above the\n * navigation tree by default. Create a new scope inside a separate native Modal\n * when that Modal needs its own inline overlays.\n */\ndeclare function OverlayProvider({ children }: OverlayProviderProps): ReactElement;",
          "sourceDocumentation": "The overlay registry scope. It belongs below the app-wide Provider and above the\nnavigation tree by default. Create a new scope inside a separate native Modal\nwhen that Modal needs its own inline overlays."
        },
        {
          "name": "OverlayProviderProps",
          "slug": "overlay-provider-props",
          "kind": "interface",
          "declaration": "interface OverlayProviderProps {\n    children: ReactNode;\n}"
        },
        {
          "name": "Pagination",
          "slug": "pagination",
          "kind": "function",
          "declaration": "declare function Pagination(props: PaginationProps): ReactElement;"
        },
        {
          "name": "PaginationBaseProps",
          "slug": "pagination-base-props",
          "kind": "type",
          "declaration": "type PaginationBaseProps = Omit<CommonProps, \"unstyled\"> & {\n    /** Accessible name for the complete pagination navigation region. */\n    readonly accessibilityLabel: string;\n    readonly direction?: PaginationDirection | undefined;\n    readonly size?: PaginationSize | undefined;\n    readonly disabled?: boolean | undefined;\n    readonly busy?: boolean | undefined;\n    /** Visible control label. Falls back to UiProvider strings. */\n    readonly previousLabel?: string | undefined;\n    /** Visible control label. Falls back to UiProvider strings. */\n    readonly nextLabel?: string | undefined;\n    readonly controlStyle?: StyleProp<ViewStyle> | undefined;\n    readonly controlClassName?: string | undefined;\n    readonly controlLabelStyle?: StyleProp<TextStyle> | undefined;\n    readonly controlLabelClassName?: string | undefined;\n    readonly statusStyle?: StyleProp<TextStyle> | undefined;\n    readonly statusClassName?: string | undefined;\n    readonly unstyled?: never;\n};"
        },
        {
          "name": "PaginationBoundaryCount",
          "slug": "pagination-boundary-count",
          "kind": "type",
          "declaration": "type PaginationBoundaryCount = 0 | 1 | 2;"
        },
        {
          "name": "PaginationCountMode",
          "slug": "pagination-count-mode",
          "kind": "type",
          "declaration": "type PaginationCountMode = \"items\" | \"pages\";"
        },
        {
          "name": "PaginationCursorProps",
          "slug": "pagination-cursor-props",
          "kind": "type",
          "declaration": "type PaginationCursorProps = PaginationBaseProps & {\n    readonly mode: \"cursor\";\n    /** Required because a cursor does not expose a numeric position. */\n    readonly statusLabel: string;\n    readonly hasPreviousPage: boolean;\n    readonly hasNextPage: boolean;\n    readonly onNavigate: (direction: PaginationNavigateDirection, details: PaginationNavigateDetails) => void;\n    readonly page?: never;\n    readonly presentation?: never;\n    readonly boundaryCount?: never;\n    readonly siblingCount?: never;\n    readonly getPageAccessibilityLabel?: never;\n    readonly countMode?: never;\n    readonly totalItemCount?: never;\n    readonly pageSize?: never;\n    readonly pageCount?: never;\n    readonly onPageChange?: never;\n};"
        },
        {
          "name": "PaginationDirection",
          "slug": "pagination-direction",
          "kind": "type",
          "declaration": "type PaginationDirection = \"ltr\" | \"rtl\";"
        },
        {
          "name": "PaginationItemsPageChangeDetails",
          "slug": "pagination-items-page-change-details",
          "kind": "interface",
          "declaration": "interface PaginationItemsPageChangeDetails extends PaginationNumberedPageChangeDetails {\n    readonly countMode: \"items\";\n    readonly totalItemCount: number;\n    readonly pageSize: number;\n    /** Zero-based inclusive item offset for the requested page. */\n    readonly offset: number;\n    /** Zero-based exclusive item offset, clamped to totalItemCount. */\n    readonly endOffsetExclusive: number;\n    readonly visibleItemCount: number;\n}"
        },
        {
          "name": "PaginationMode",
          "slug": "pagination-mode",
          "kind": "type",
          "declaration": "/**\n * Pagination public contracts.\n *\n * Pagination is controlled and intentionally separates numbered collections\n * from opaque cursor navigation. Applications continue to own fetching and\n * the current page/cursor; this component owns accessible navigation requests.\n */\ntype PaginationMode = \"numbered\" | \"cursor\";",
          "sourceDocumentation": "Pagination public contracts.\n\nPagination is controlled and intentionally separates numbered collections\nfrom opaque cursor navigation. Applications continue to own fetching and\nthe current page/cursor; this component owns accessible navigation requests."
        },
        {
          "name": "PaginationNavigateDetails",
          "slug": "pagination-navigate-details",
          "kind": "interface",
          "declaration": "interface PaginationNavigateDetails {\n    readonly mode: \"cursor\";\n    readonly direction: PaginationNavigateDirection;\n    readonly hasPreviousPage: boolean;\n    readonly hasNextPage: boolean;\n    readonly originalEvent?: unknown;\n}"
        },
        {
          "name": "PaginationNavigateDirection",
          "slug": "pagination-navigate-direction",
          "kind": "type",
          "declaration": "type PaginationNavigateDirection = \"previous\" | \"next\";"
        },
        {
          "name": "PaginationNumberedItemsProps",
          "slug": "pagination-numbered-items-props",
          "kind": "type",
          "declaration": "type PaginationNumberedItemsProps = PaginationBaseProps & PaginationNumberedCommonProps & {\n    readonly countMode: \"items\";\n    readonly totalItemCount: number;\n    readonly pageSize: number;\n    readonly pageCount?: never;\n    readonly onPageChange: (page: number, details: PaginationItemsPageChangeDetails) => void;\n};"
        },
        {
          "name": "PaginationNumberedPagesProps",
          "slug": "pagination-numbered-pages-props",
          "kind": "type",
          "declaration": "type PaginationNumberedPagesProps = PaginationBaseProps & PaginationNumberedCommonProps & {\n    readonly countMode: \"pages\";\n    readonly pageCount: number;\n    readonly totalItemCount?: never;\n    readonly pageSize?: never;\n    readonly onPageChange: (page: number, details: PaginationPagesPageChangeDetails) => void;\n};"
        },
        {
          "name": "PaginationPageChangeReason",
          "slug": "pagination-page-change-reason",
          "kind": "type",
          "declaration": "type PaginationPageChangeReason = \"page-press\" | \"previous-press\" | \"next-press\";"
        },
        {
          "name": "PaginationPageLabelDetails",
          "slug": "pagination-page-label-details",
          "kind": "interface",
          "declaration": "interface PaginationPageLabelDetails {\n    readonly page: number;\n    readonly pageCount: number;\n    readonly current: boolean;\n}"
        },
        {
          "name": "PaginationPagesPageChangeDetails",
          "slug": "pagination-pages-page-change-details",
          "kind": "interface",
          "declaration": "interface PaginationPagesPageChangeDetails extends PaginationNumberedPageChangeDetails {\n    readonly countMode: \"pages\";\n}"
        },
        {
          "name": "PaginationPresentation",
          "slug": "pagination-presentation",
          "kind": "type",
          "declaration": "type PaginationPresentation = \"auto\" | \"full\" | \"compact\";"
        },
        {
          "name": "PaginationProps",
          "slug": "pagination-props",
          "kind": "type",
          "declaration": "type PaginationProps = PaginationNumberedItemsProps | PaginationNumberedPagesProps | PaginationCursorProps;"
        },
        {
          "name": "PaginationRangeItem",
          "slug": "pagination-range-item",
          "kind": "type",
          "declaration": "type PaginationRangeItem = {\n    readonly type: \"page\";\n    readonly page: number;\n    readonly current: boolean;\n} | {\n    readonly type: \"start-ellipsis\" | \"end-ellipsis\";\n};"
        },
        {
          "name": "PaginationRangeOptions",
          "slug": "pagination-range-options",
          "kind": "interface",
          "declaration": "interface PaginationRangeOptions {\n    /** Controlled, one-based page. pageCount=0 uses the sentinel page 1. */\n    readonly page: number;\n    readonly pageCount: number;\n    readonly boundaryCount?: PaginationBoundaryCount | undefined;\n    readonly siblingCount?: PaginationSiblingCount | undefined;\n}"
        },
        {
          "name": "PaginationSiblingCount",
          "slug": "pagination-sibling-count",
          "kind": "type",
          "declaration": "type PaginationSiblingCount = 0 | 1 | 2;"
        },
        {
          "name": "PaginationSize",
          "slug": "pagination-size",
          "kind": "type",
          "declaration": "type PaginationSize = \"sm\" | \"md\";"
        },
        {
          "name": "parseCalendarDateKey",
          "slug": "parse-calendar-date-key",
          "kind": "function",
          "declaration": "/**\n * Parses a strict \"YYYY-MM-DD\" key back into a CalendarDate. Returns null for\n * anything that is not a zero-padded key naming a real day.\n */\ndeclare function parseCalendarDateKey(value: string): CalendarDate | null;",
          "sourceDocumentation": "Parses a strict \"YYYY-MM-DD\" key back into a CalendarDate. Returns null for\nanything that is not a zero-padded key naming a real day."
        },
        {
          "name": "Popover",
          "slug": "popover",
          "kind": "function",
          "declaration": "/**\n * Controlled native Popover. Compact screens use a bottom presentation while\n * tablets retain the centered dialog form.\n */\ndeclare function Popover(props: PopoverProps): ReactElement;",
          "sourceDocumentation": "Controlled native Popover. Compact screens use a bottom presentation while\ntablets retain the centered dialog form."
        },
        {
          "name": "PopoverDirection",
          "slug": "popover-direction",
          "kind": "type",
          "declaration": "type PopoverDirection = 'ltr' | 'rtl';"
        },
        {
          "name": "PopoverOpenChangeDetails",
          "slug": "popover-open-change-details",
          "kind": "interface",
          "declaration": "interface PopoverOpenChangeDetails {\n    readonly reason: PopoverOpenChangeReason;\n    readonly originalEvent?: unknown;\n}"
        },
        {
          "name": "PopoverOpenChangeReason",
          "slug": "popover-open-change-reason",
          "kind": "type",
          "declaration": "type PopoverOpenChangeReason = 'trigger-press' | 'outside-press' | 'escape-key' | 'hardware-back' | 'accessibility-escape' | 'close-action' | 'tab-key' | 'focus-out' | 'anchor-detached';"
        },
        {
          "name": "PopoverPlacement",
          "slug": "popover-placement",
          "kind": "type",
          "declaration": "type PopoverPlacement = OverlayPlacement;"
        },
        {
          "name": "PopoverPresentation",
          "slug": "popover-presentation",
          "kind": "type",
          "declaration": "type PopoverPresentation = 'auto' | 'bottom' | 'center';"
        },
        {
          "name": "PopoverProps",
          "slug": "popover-props",
          "kind": "type",
          "declaration": "type PopoverProps = Omit<CommonProps, 'unstyled'> & PopoverTriggerProps & {\n    /** The caller owns visibility; every interaction only requests a change. */\n    readonly open: boolean;\n    readonly onOpenChange: (open: boolean, details: PopoverOpenChangeDetails) => void;\n    /** Required dialog name on every platform. */\n    readonly title: string;\n    readonly description?: string | undefined;\n    readonly children: NonNullable<ReactNode>;\n    readonly closeAccessibilityLabel?: string | undefined;\n    readonly initialFocusRef?: DialogFocusRef | undefined;\n    readonly disabled?: boolean | undefined;\n    /** Blocks pointer, Escape, Back, accessibility escape, and explicit close. */\n    readonly dismissDisabled?: boolean | undefined;\n    readonly overlayId?: string | undefined;\n    readonly placement?: PopoverPlacement | undefined;\n    readonly direction?: PopoverDirection | undefined;\n    readonly sideOffset?: number | undefined;\n    readonly alignOffset?: number | undefined;\n    readonly collisionPadding?: number | undefined;\n    readonly presentation?: PopoverPresentation | undefined;\n    /** Native bottom presentation safe-area inset supplied by the app. */\n    readonly bottomInset?: number | undefined;\n    /** Native keyboard overlap. A positive value takes precedence over bottomInset. */\n    readonly keyboardOverlap?: number | undefined;\n    readonly size?: PopoverTriggerSize | undefined;\n    readonly variant?: PopoverTriggerVariant | undefined;\n    readonly triggerStyle?: StyleProp<ViewStyle> | undefined;\n    readonly triggerClassName?: string | undefined;\n    readonly triggerLabelStyle?: StyleProp<TextStyle> | undefined;\n    readonly triggerLabelClassName?: string | undefined;\n    /** Visible popover surface. Named content for consistency with Menu and Select. */\n    readonly contentStyle?: StyleProp<ViewStyle> | undefined;\n    readonly contentClassName?: string | undefined;\n    /** Scrollable body content, excluding the fixed title/close header. */\n    readonly bodyStyle?: StyleProp<ViewStyle> | undefined;\n    readonly bodyClassName?: string | undefined;\n    readonly titleStyle?: StyleProp<TextStyle> | undefined;\n    readonly unstyled?: never;\n};"
        },
        {
          "name": "PopoverTriggerSize",
          "slug": "popover-trigger-size",
          "kind": "type",
          "declaration": "type PopoverTriggerSize = 'sm' | 'md';"
        },
        {
          "name": "PopoverTriggerVariant",
          "slug": "popover-trigger-variant",
          "kind": "type",
          "declaration": "type PopoverTriggerVariant = 'filled' | 'outlined' | 'ghost';"
        },
        {
          "name": "PRESSABLE_FEEDBACK_CLASS",
          "slug": "pressable-feedback-class",
          "kind": "constant",
          "declaration": "PRESSABLE_FEEDBACK_CLASS = \"hover:brightness-90 active:scale-[0.98]\""
        },
        {
          "name": "PressableCardProps",
          "slug": "pressable-card-props",
          "kind": "type",
          "declaration": "/**\n * The pressable form. Card children are arbitrary rich content, so the\n * accessible name is always explicit — the same rule as Button with rich\n * children.\n */\ntype PressableCardProps = CardBaseProps & {\n    onPress: () => void;\n    accessibilityLabel: string;\n    accessibilityHint?: string | undefined;\n    /**\n     * A boolean makes the card an independent toggle button — aria-pressed on\n     * web, togglebutton with a checked state natively — plus a primary token\n     * border and primarySoft background while selected. Leave it undefined for a\n     * plain button. For an exactly-one-of-N group, RadioGroup is the honest\n     * widget; a selectable Card group reads as independent toggles.\n     */\n    selected?: boolean | undefined;\n    disabled?: boolean | undefined;\n};",
          "sourceDocumentation": "The pressable form. Card children are arbitrary rich content, so the\naccessible name is always explicit — the same rule as Button with rich\nchildren."
        },
        {
          "name": "ProgressBar",
          "slug": "progress-bar",
          "kind": "function",
          "declaration": "declare function ProgressBar(props: ProgressBarProps): ReactElement;"
        },
        {
          "name": "ProgressBarProps",
          "slug": "progress-bar-props",
          "kind": "type",
          "declaration": "/** `value={null}` is indeterminate progress whose current amount is unknown. */\ntype ProgressBarProps = ProgressBarBaseProps & ({\n    value: number;\n    /** Only finite positive numbers are used; anything else is normalized to 100. */\n    max?: number | undefined;\n    accessibilityValueText?: string | undefined;\n} | {\n    value: null;\n    max?: never;\n    accessibilityValueText?: string | undefined;\n});",
          "sourceDocumentation": "`value={null}` is indeterminate progress whose current amount is unknown."
        },
        {
          "name": "ProgressBarVariant",
          "slug": "progress-bar-variant",
          "kind": "type",
          "declaration": "type ProgressBarVariant = 'primary' | 'info' | 'success' | 'warning' | 'error';"
        },
        {
          "name": "ProgressSize",
          "slug": "progress-size",
          "kind": "type",
          "declaration": "type ProgressSize = 'sm' | 'md' | 'lg';"
        },
        {
          "name": "RadioGroup",
          "slug": "radio-group",
          "kind": "function",
          "declaration": "declare function RadioGroup<T extends string>({ items, value, onValueChange, accessibilityLabel, orientation, style, className, testID, }: RadioGroupProps<T>): ReactElement;"
        },
        {
          "name": "RadioGroupProps",
          "slug": "radio-group-props",
          "kind": "interface",
          "declaration": "interface RadioGroupProps<T extends string> extends CommonProps {\n    items: readonly RadioItem<T>[];\n    value: NoInfer<T> | null;\n    onValueChange: (value: T) => void;\n    accessibilityLabel: string;\n    orientation?: 'vertical' | 'horizontal' | undefined;\n}"
        },
        {
          "name": "RadioItem",
          "slug": "radio-item",
          "kind": "interface",
          "declaration": "interface RadioItem<T extends string> {\n    readonly label: string;\n    readonly value: T;\n    readonly description?: string | undefined;\n    readonly disabled?: boolean | undefined;\n}"
        },
        {
          "name": "RadiusKey",
          "slug": "radius-key",
          "kind": "type",
          "declaration": "type RadiusKey = keyof ThemeRadius;"
        },
        {
          "name": "RangeSliderProps",
          "slug": "range-slider-props",
          "kind": "interface",
          "declaration": "interface RangeSliderProps extends SliderSharedProps {\n    mode: 'range';\n    value: readonly [\n        number,\n        number\n    ];\n    onValueChange: (value: readonly [\n        number,\n        number\n    ]) => void;\n    onValueCommit?: ((value: readonly [\n        number,\n        number\n    ]) => void) | undefined;\n    /** Lower and upper thumb names are deliberately separate for screen readers. */\n    accessibilityLabels: readonly [\n        string,\n        string\n    ];\n    accessibilityLabel?: never;\n    /** Minimum numeric distance between lower and upper values. Default 0. */\n    minDistance?: number | undefined;\n}"
        },
        {
          "name": "Rating",
          "slug": "rating",
          "kind": "function",
          "declaration": "/**\n * Controlled dot rating. Interactive mode requires `onChange`; `readonly` mode\n * has no controls and is announced as a single image. Values are 1..maxRating,\n * or .5 increments when `halfStep` is enabled; use `undefined` for no rating.\n * maxRating is bounded to 10 to keep the visual control and its hit targets safe.\n */\ndeclare function Rating(props: RatingProps): ReactElement;",
          "sourceDocumentation": "Controlled dot rating. Interactive mode requires `onChange`; `readonly` mode\nhas no controls and is announced as a single image. Values are 1..maxRating,\nor .5 increments when `halfStep` is enabled; use `undefined` for no rating.\nmaxRating is bounded to 10 to keep the visual control and its hit targets safe."
        },
        {
          "name": "RatingProps",
          "slug": "rating-props",
          "kind": "type",
          "declaration": "type RatingProps = InteractiveRatingProps | ReadonlyRatingProps;"
        },
        {
          "name": "RatingSize",
          "slug": "rating-size",
          "kind": "type",
          "declaration": "/**\n * Rating — controlled dot rating input and read-only display.\n *\n * The same component serves compact record metadata and a touch-friendly editor.\n * It intentionally owns neither haptics nor an icon dependency: consumers can add\n * those concerns around `onChange` without making this primitive platform-specific.\n */\ntype RatingSize = 'sm' | 'md' | 'lg';",
          "sourceDocumentation": "Rating — controlled dot rating input and read-only display.\n\nThe same component serves compact record metadata and a touch-friendly editor.\nIt intentionally owns neither haptics nor an icon dependency: consumers can add\nthose concerns around `onChange` without making this primitive platform-specific."
        },
        {
          "name": "ReadonlyRatingProps",
          "slug": "readonly-rating-props",
          "kind": "interface",
          "declaration": "interface ReadonlyRatingProps extends RatingBaseProps {\n    /** Renders a non-interactive image-like rating announcement. */\n    readonly: true;\n    onChange?: never;\n    clearable?: never;\n    disabled?: never;\n    clearAccessibilityLabel?: never;\n}"
        },
        {
          "name": "RemovableChipProps",
          "slug": "removable-chip-props",
          "kind": "type",
          "declaration": "type RemovableChipProps = ChipBaseProps & {\n    kind: 'removable';\n    onRemove: () => void;\n    /** The remove button does something different from the visible value label, so a separate accessible name is required. */\n    removeAccessibilityLabel: string;\n    onPress?: never;\n    selected?: never;\n    onSelectedChange?: never;\n};"
        },
        {
          "name": "RenderIcon",
          "slug": "render-icon",
          "kind": "type",
          "declaration": "type RenderIcon = (props: IconRenderProps) => ReactNode;"
        },
        {
          "name": "resolveTheme",
          "slug": "resolve-theme",
          "kind": "function",
          "declaration": "/**\n * Resolves a ThemePair to a concrete Theme without reading React, platform, or\n * module-global state. Use this in SSR and static configuration paths, where a\n * request-owned `colorScheme` is already known. A single Theme is returned\n * unchanged regardless of the requested scheme.\n */\ndeclare function resolveTheme(theme: Theme | ThemePair, colorScheme: ColorScheme): Theme;",
          "sourceDocumentation": "Resolves a ThemePair to a concrete Theme without reading React, platform, or\nmodule-global state. Use this in SSR and static configuration paths, where a\nrequest-owned `colorScheme` is already known. A single Theme is returned\nunchanged regardless of the requested scheme."
        },
        {
          "name": "SearchField",
          "slug": "search-field",
          "kind": "function",
          "declaration": "declare function SearchField({ value, onChangeText, onSubmitEditing, autoFocus, returnKeyType, placeholder, leading, inputStyle, inputClassName, style, className, nativeID, accessibilityLabel, accessibilityLabelledBy, accessibilityHint, accessibilityState, editable, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'aria-disabled': ariaDisabled, testID, }: SearchFieldProps): ReactElement;"
        },
        {
          "name": "SearchFieldProps",
          "slug": "search-field-props",
          "kind": "interface",
          "declaration": "interface SearchFieldProps extends Pick<TextInputProps, 'value' | 'onChangeText' | 'onSubmitEditing' | 'autoFocus' | 'returnKeyType' | 'nativeID' | 'accessibilityLabel' | 'accessibilityLabelledBy' | 'accessibilityHint' | 'accessibilityState' | 'editable' | 'aria-labelledby' | 'aria-disabled'> {\n    /** Defaults to strings.searchPlaceholder (§4.1). */\n    placeholder?: string | undefined;\n    /** RN Web-only supplementary description id(s). */\n    'aria-describedby'?: string | undefined;\n    /** Renders icons.search by default (§4.2). */\n    leading?: ReactNode | undefined;\n    inputStyle?: StyleProp<TextStyle> | undefined;\n    inputClassName?: string | undefined;\n    /** The container (pill). */\n    style?: StyleProp<ViewStyle> | undefined;\n    className?: string | undefined;\n    testID?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "Section",
          "slug": "section",
          "kind": "function",
          "declaration": "declare function Section({ children, title, headingLevel, titleStyle, titleClassName, count, countAccessibilityLabel, accessory, subtitle, actions, gap, style, className, testID, }: SectionProps): ReactElement;"
        },
        {
          "name": "SectionProps",
          "slug": "section-props",
          "kind": "interface",
          "declaration": "interface SectionProps extends Omit<CommonProps, 'unstyled'> {\n    children?: ReactNode | undefined;\n    /** typography.title. */\n    title?: string | undefined;\n    /**\n     * When set, the title is exposed as a heading — native accessibilityRole\n     * \"header\", web role heading with this aria-level. Absent keeps the title a\n     * plain text node, exactly as before.\n     */\n    headingLevel?: 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n    titleStyle?: StyleProp<TextStyle> | undefined;\n    titleClassName?: string | undefined;\n    /**\n     * Renders a token-styled count pill next to the title. Must be a finite\n     * number; formatting beyond String(count) stays with the caller.\n     */\n    count?: number | undefined;\n    /**\n     * Accessible name of the count pill — e.g. \"40 of 812 shown\". Defaults to\n     * the visible number. On the web the pill takes `role=\"img\"` with this name\n     * and hides the numeral (ARIA prohibits naming a role-less generic element);\n     * native keeps the label on the numeral text element.\n     */\n    countAccessibilityLabel?: string | undefined;\n    /** Arbitrary node after the title and count pill, inside the title row. */\n    accessory?: ReactNode | undefined;\n    /** typography.caption + textMuted. */\n    subtitle?: string | undefined;\n    actions?: ReactNode | undefined;\n    /** Defaults to 'md'. */\n    gap?: SpacingKey | number | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "SegmentedControl",
          "slug": "segmented-control",
          "kind": "function",
          "declaration": "/** A compact required-choice radio group with native and web keyboard semantics. */\ndeclare function SegmentedControl<T extends string>({ items, value, onValueChange, accessibilityLabel, size, fit, variant, itemStyle, itemClassName, style, className, testID, }: SegmentedControlProps<T>): ReactElement;",
          "sourceDocumentation": "A compact required-choice radio group with native and web keyboard semantics."
        },
        {
          "name": "SegmentedControlFit",
          "slug": "segmented-control-fit",
          "kind": "type",
          "declaration": "type SegmentedControlFit = 'equal' | 'content';"
        },
        {
          "name": "SegmentedControlItem",
          "slug": "segmented-control-item",
          "kind": "interface",
          "declaration": "interface SegmentedControlItem<T extends string> {\n    readonly label: string;\n    readonly value: T;\n    readonly accessibilityLabel?: string | undefined;\n    readonly disabled?: boolean | undefined;\n}"
        },
        {
          "name": "SegmentedControlProps",
          "slug": "segmented-control-props",
          "kind": "interface",
          "declaration": "interface SegmentedControlProps<T extends string> extends Omit<CommonProps, 'unstyled'> {\n    /** The values are the source of truth for the literal value union. */\n    items: readonly SegmentedControlItem<T>[];\n    /** Exactly one item is selected; empty selection belongs to ToggleGroup. */\n    value: NoInfer<T>;\n    onValueChange: (value: T) => void;\n    /** A stable accessible name for the radio group. */\n    accessibilityLabel: string;\n    /** Defaults to md. */\n    size?: SegmentedControlSize | undefined;\n    /** Equal segments fill their container; content segments retain their intrinsic width. Defaults to equal. */\n    fit?: SegmentedControlFit | undefined;\n    /** Visual treatment only; radio semantics and keyboard behavior are identical. Defaults to filled. */\n    variant?: SegmentedControlVariant | undefined;\n    /** Applies to every segment without changing its semantic state. */\n    itemStyle?: StyleProp<ViewStyle> | undefined;\n    itemClassName?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "SegmentedControlSize",
          "slug": "segmented-control-size",
          "kind": "type",
          "declaration": "type SegmentedControlSize = 'sm' | 'md';"
        },
        {
          "name": "SegmentedControlVariant",
          "slug": "segmented-control-variant",
          "kind": "type",
          "declaration": "/**\n * `filled` is the bordered pill track; `underline` is a transparent track whose\n * selected segment carries a `tabActive` underline and label (`tabInactive` on\n * the rest) — the same token roles as an underline Tabs row, which it visually\n * matches for filter rows that change a list rather than swap panels.\n */\ntype SegmentedControlVariant = 'filled' | 'underline';",
          "sourceDocumentation": "`filled` is the bordered pill track; `underline` is a transparent track whose\nselected segment carries a `tabActive` underline and label (`tabInactive` on\nthe rest) — the same token roles as an underline Tabs row, which it visually\nmatches for filter rows that change a list rather than swap panels."
        },
        {
          "name": "Select",
          "slug": "select",
          "kind": "function",
          "declaration": "/** Native/default controlled Select with an adaptive radio action surface. */\ndeclare function Select<const T extends string>(props: SelectProps<T>): ReactElement;",
          "sourceDocumentation": "Native/default controlled Select with an adaptive radio action surface."
        },
        {
          "name": "SelectableRow",
          "slug": "selectable-row",
          "kind": "function",
          "declaration": "declare function SelectableRow({ children, selected, onPress, disabled, accessibilityLabel, indicatorSize, renderMark, style, className, testID, }: SelectableRowProps): ReactElement;"
        },
        {
          "name": "SelectableRowProps",
          "slug": "selectable-row-props",
          "kind": "interface",
          "declaration": "interface SelectableRowProps extends Omit<CommonProps, 'unstyled'> {\n    children?: ReactNode | undefined;\n    selected: boolean;\n    onPress: () => void;\n    disabled?: boolean | undefined;\n    accessibilityLabel?: string | undefined;\n    indicatorSize?: SelectionSize | undefined;\n    renderMark?: RenderIcon | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "SelectAllRow",
          "slug": "select-all-row",
          "kind": "function",
          "declaration": "declare function SelectAllRow({ selected, onPress, disabled, showUncheckedMark, checkSize, selectLabel, deselectLabel, renderMark, labelStyle, labelClassName, style, className, testID, }: SelectAllRowProps): ReactElement;"
        },
        {
          "name": "SelectAllRowProps",
          "slug": "select-all-row-props",
          "kind": "interface",
          "declaration": "interface SelectAllRowProps extends Omit<CommonProps, 'unstyled'> {\n    selected: boolean;\n    onPress: () => void;\n    disabled?: boolean | undefined;\n    /** Cleans up the former showUncheckedCheck (§5.7). */\n    showUncheckedMark?: boolean | undefined;\n    checkSize?: SelectionSize | undefined;\n    /** Defaults to strings.selectAll (§4.1). */\n    selectLabel?: string | undefined;\n    /** Defaults to strings.deselectAll. */\n    deselectLabel?: string | undefined;\n    renderMark?: RenderIcon | undefined;\n    labelStyle?: StyleProp<TextStyle> | undefined;\n    labelClassName?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "SelectDirection",
          "slug": "select-direction",
          "kind": "type",
          "declaration": "type SelectDirection = 'ltr' | 'rtl';"
        },
        {
          "name": "SelectionIndicator",
          "slug": "selection-indicator",
          "kind": "function",
          "declaration": "declare function SelectionIndicator({ selected, showUncheckedMark, size, renderMark, style, className, testID, }: SelectionIndicatorProps): ReactElement;"
        },
        {
          "name": "SelectionIndicatorProps",
          "slug": "selection-indicator-props",
          "kind": "interface",
          "declaration": "interface SelectionIndicatorProps extends Omit<CommonProps, 'unstyled'> {\n    selected: boolean;\n    showUncheckedMark?: boolean | undefined;\n    size?: SelectionSize | undefined;\n    /** Defaults to icons.check, falling back to a ✓ text glyph (§4.2). */\n    renderMark?: RenderIcon | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "SelectionSize",
          "slug": "selection-size",
          "kind": "type",
          "declaration": "/**\n * SelectionIndicator / SelectableRow / SelectAllRow — design doc §5.7.\n *\n * The SelectionSize literal union stays — the type guarantees a host's\n * size-to-class map is exhaustive (§0 rejected: dropping the union in C).\n */\ntype SelectionSize = 16 | 18 | 20 | 24;",
          "sourceDocumentation": "SelectionIndicator / SelectableRow / SelectAllRow — design doc §5.7.\n\nThe SelectionSize literal union stays — the type guarantees a host's\nsize-to-class map is exhaustive (§0 rejected: dropping the union in C)."
        },
        {
          "name": "SelectItem",
          "slug": "select-item",
          "kind": "interface",
          "declaration": "interface SelectItem<T extends string> {\n    readonly value: T;\n    readonly label: string;\n    readonly textValue?: string | undefined;\n    readonly description?: string | undefined;\n    readonly leading?: ReactNode | RenderIcon | undefined;\n    readonly disabled?: boolean | undefined;\n    readonly testID?: string | undefined;\n}"
        },
        {
          "name": "SelectOpenChangeDetails",
          "slug": "select-open-change-details",
          "kind": "interface",
          "declaration": "interface SelectOpenChangeDetails<T extends string> {\n    readonly reason: SelectOpenChangeReason;\n    readonly value?: T | undefined;\n    readonly originalEvent?: unknown;\n}"
        },
        {
          "name": "SelectOpenChangeReason",
          "slug": "select-open-change-reason",
          "kind": "type",
          "declaration": "type SelectOpenChangeReason = 'trigger-press' | 'trigger-key' | 'outside-press' | 'escape-key' | 'hardware-back' | 'accessibility-escape' | 'cancel-action' | 'tab-key' | 'focus-out' | 'anchor-detached' | 'option-select';"
        },
        {
          "name": "SelectPlacement",
          "slug": "select-placement",
          "kind": "type",
          "declaration": "type SelectPlacement = OverlayPlacement;"
        },
        {
          "name": "SelectPresentation",
          "slug": "select-presentation",
          "kind": "type",
          "declaration": "/**\n * Native surface form. 'auto' resolves to 'bottom' on compact widths and\n * 'center' on tablet widths, exactly as before. 'anchored' renders a dim-less\n * panel positioned by the measured trigger inside a transparent Modal; the\n * web popup is always anchored and ignores this prop.\n */\ntype SelectPresentation = 'auto' | 'bottom' | 'center' | 'anchored';",
          "sourceDocumentation": "Native surface form. 'auto' resolves to 'bottom' on compact widths and\n'center' on tablet widths, exactly as before. 'anchored' renders a dim-less\npanel positioned by the measured trigger inside a transparent Modal; the\nweb popup is always anchored and ignores this prop."
        },
        {
          "name": "SelectProps",
          "slug": "select-props",
          "kind": "type",
          "declaration": "type SelectProps<T extends string> = Omit<CommonProps, 'unstyled'> & SelectLabelProps & (SelectOwnedTriggerProps | SelectRenderTriggerProps) & {\n    readonly items: readonly SelectItem<T>[];\n    readonly value: NoInfer<T> | null;\n    readonly onValueChange: (value: NoInfer<T>) => void;\n    readonly open: boolean;\n    readonly onOpenChange: (open: boolean, details: SelectOpenChangeDetails<NoInfer<T>>) => void;\n    /** Shown on the trigger when value is null. */\n    readonly placeholder: string;\n    readonly description?: string | undefined;\n    readonly error?: string | undefined;\n    readonly required?: boolean | undefined;\n    readonly disabled?: boolean | undefined;\n    readonly busy?: boolean | undefined;\n    readonly dismissDisabled?: boolean | undefined;\n    readonly placement?: SelectPlacement | undefined;\n    readonly direction?: SelectDirection | undefined;\n    readonly sideOffset?: number | undefined;\n    readonly alignOffset?: number | undefined;\n    readonly collisionPadding?: number | undefined;\n    readonly presentation?: SelectPresentation | undefined;\n    /** Safe-area inset composed by the caller for a native bottom presentation. */\n    readonly bottomInset?: number | undefined;\n    /** Keyboard occlusion height measured inside a native Modal. Takes precedence over bottomInset when greater than 0. */\n    readonly keyboardOverlap?: number | undefined;\n    /** testID on the trigger pressable itself (the actual press target). On the web it replaces the derived `${testID}-trigger`. */\n    readonly triggerTestID?: string | undefined;\n    /** Applied to an enabled option while a pointer hovers it. Layered after itemStyle. */\n    readonly itemHoverStyle?: StyleProp<ViewStyle> | undefined;\n    readonly labelStyle?: StyleProp<TextStyle> | undefined;\n    readonly labelClassName?: string | undefined;\n    readonly helperStyle?: StyleProp<TextStyle> | undefined;\n    readonly helperClassName?: string | undefined;\n    readonly contentStyle?: StyleProp<ViewStyle> | undefined;\n    readonly contentClassName?: string | undefined;\n    readonly itemStyle?: StyleProp<ViewStyle> | undefined;\n    readonly itemClassName?: string | undefined;\n    readonly itemLabelStyle?: StyleProp<TextStyle> | undefined;\n    readonly itemLabelClassName?: string | undefined;\n    readonly unstyled?: never;\n};"
        },
        {
          "name": "SelectSize",
          "slug": "select-size",
          "kind": "type",
          "declaration": "type SelectSize = 'sm' | 'md';"
        },
        {
          "name": "Sheet",
          "slug": "sheet",
          "kind": "function",
          "declaration": "/** Controlled adaptive sheet. It only requests closure; the caller owns open. */\ndeclare function Sheet({ children, open, onOpenChange, title, description, leading, footer, presentation, accessibilityLabel, closeAccessibilityLabel, showCloseButton, dismissOnBackdrop, dismissDisabled, initialFocusRef, finalFocusRef, overlayId: overlayIdProp, safeAreaInsets, keyboardOverlap, scrollMode, titleStyle, bodyStyle, bodyClassName, footerStyle, footerClassName, style, className, testID, ...scrollProps }: SheetProps): ReactElement;",
          "sourceDocumentation": "Controlled adaptive sheet. It only requests closure; the caller owns open."
        },
        {
          "name": "SheetOpenChangeDetails",
          "slug": "sheet-open-change-details",
          "kind": "type",
          "declaration": "/** Sheet requests use the same bounded dismissal reasons as Dialog. */\ntype SheetOpenChangeDetails = DialogDismissDetails;",
          "sourceDocumentation": "Sheet requests use the same bounded dismissal reasons as Dialog."
        },
        {
          "name": "SheetPresentation",
          "slug": "sheet-presentation",
          "kind": "type",
          "declaration": "type SheetPresentation = 'auto' | 'bottom' | 'start' | 'end';"
        },
        {
          "name": "SheetProps",
          "slug": "sheet-props",
          "kind": "type",
          "declaration": "type SheetProps = SheetBaseProps & (InternallyScrolledSheetProps | ConsumerScrolledSheetProps);"
        },
        {
          "name": "SheetSafeAreaInsets",
          "slug": "sheet-safe-area-insets",
          "kind": "interface",
          "declaration": "/**\n * Host-provided safe-area measurements. The root entry intentionally does not\n * import react-native-safe-area-context; applications may compose their hook\n * result into this dependency-free value object.\n */\ninterface SheetSafeAreaInsets {\n    readonly top?: number | undefined;\n    readonly right?: number | undefined;\n    readonly bottom?: number | undefined;\n    readonly left?: number | undefined;\n}",
          "sourceDocumentation": "Host-provided safe-area measurements. The root entry intentionally does not\nimport react-native-safe-area-context; applications may compose their hook\nresult into this dependency-free value object."
        },
        {
          "name": "SingleComboboxValueChangeDetails",
          "slug": "single-combobox-value-change-details",
          "kind": "type",
          "declaration": "type SingleComboboxValueChangeDetails<T extends string> = {\n    readonly selectionMode: \"single\";\n    readonly reason: \"option-select\";\n    readonly previousValue: T | null;\n    readonly item: ComboboxItem<T>;\n    readonly originalEvent?: unknown;\n} | {\n    readonly selectionMode: \"single\";\n    readonly reason: \"clear-action\";\n    readonly previousValue: T | null;\n    readonly item?: never;\n    readonly originalEvent?: unknown;\n};"
        },
        {
          "name": "SingleSliderProps",
          "slug": "single-slider-props",
          "kind": "interface",
          "declaration": "interface SingleSliderProps extends SliderSharedProps {\n    mode?: 'single' | undefined;\n    value: number;\n    onValueChange: (value: number) => void;\n    /** Fires exactly once at the end of a committed pointer or keyboard interaction. */\n    onValueCommit?: ((value: number) => void) | undefined;\n    /** A visible label is not owned by Slider, so the thumb always needs a name. */\n    accessibilityLabel: string;\n    accessibilityLabels?: never;\n    minDistance?: never;\n}"
        },
        {
          "name": "Skeleton",
          "slug": "skeleton",
          "kind": "function",
          "declaration": "declare function Skeleton({ radius, accessibilityLabel, style, className, testID, }: SkeletonProps): ReactElement;"
        },
        {
          "name": "SkeletonProps",
          "slug": "skeleton-props",
          "kind": "interface",
          "declaration": "interface SkeletonProps extends Omit<CommonProps, 'unstyled'> {\n    /** Defaults to 'sm'. */\n    radius?: RadiusKey | undefined;\n    /** Defaults to strings.loading. */\n    accessibilityLabel?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "Slider",
          "slug": "slider",
          "kind": "function",
          "declaration": "/**\n * Controlled horizontal numeric input. `mode=\"range\"` preserves its tuple in\n * both callbacks; a single slider can never accidentally emit an array.\n */\ndeclare function Slider(props: SliderProps): ReactElement;",
          "sourceDocumentation": "Controlled horizontal numeric input. `mode=\"range\"` preserves its tuple in\nboth callbacks; a single slider can never accidentally emit an array."
        },
        {
          "name": "SliderDirection",
          "slug": "slider-direction",
          "kind": "type",
          "declaration": "type SliderDirection = 'ltr' | 'rtl';"
        },
        {
          "name": "SliderProps",
          "slug": "slider-props",
          "kind": "type",
          "declaration": "type SliderProps = SingleSliderProps | RangeSliderProps;"
        },
        {
          "name": "SliderSharedProps",
          "slug": "slider-shared-props",
          "kind": "interface",
          "declaration": "interface SliderSharedProps extends CommonProps {\n    /** Inclusive lower bound. Default 0. */\n    min?: number | undefined;\n    /** Inclusive upper bound. Default 100. */\n    max?: number | undefined;\n    /** Smallest interactive increment. Default 1. */\n    step?: number | undefined;\n    /** Disables pointer, keyboard and native accessibility actions. */\n    disabled?: boolean | undefined;\n    /** Horizontal coordinate and left/right arrow meaning. Default ltr. */\n    direction?: SliderDirection | undefined;\n    /** Optional localized text for each thumb's accessibility value. */\n    valueText?: ((value: number) => string) | undefined;\n    /** Root style escape hatch. */\n    style?: StyleProp<ViewStyle> | undefined;\n    /** Track-only style escape hatch. */\n    trackStyle?: StyleProp<ViewStyle> | undefined;\n    trackClassName?: string | undefined;\n    /** Active range-only style escape hatch. */\n    rangeStyle?: StyleProp<ViewStyle> | undefined;\n    rangeClassName?: string | undefined;\n    /** Applied to every thumb hit target. */\n    thumbStyle?: StyleProp<ViewStyle> | undefined;\n    thumbClassName?: string | undefined;\n}"
        },
        {
          "name": "SpacingKey",
          "slug": "spacing-key",
          "kind": "type",
          "declaration": "type SpacingKey = keyof ThemeSpacing;"
        },
        {
          "name": "Spinner",
          "slug": "spinner",
          "kind": "function",
          "declaration": "declare function Spinner({ size, color, accessibilityLabel, style, className, testID, }: SpinnerProps): ReactElement;"
        },
        {
          "name": "SpinnerProps",
          "slug": "spinner-props",
          "kind": "interface",
          "declaration": "interface SpinnerProps extends Omit<CommonProps, 'unstyled'> {\n    /** Defaults to 'md'. */\n    size?: ProgressSize | undefined;\n    /** Defaults to 'primary'. */\n    color?: ColorKey | undefined;\n    /** Defaults to strings.loading. */\n    accessibilityLabel?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "StatGrid",
          "slug": "stat-grid",
          "kind": "function",
          "declaration": "/** A bordered N-column metric grid. Renders nothing when items is empty. */\ndeclare function StatGrid(props: StatGridProps): ReactElement | null;",
          "sourceDocumentation": "A bordered N-column metric grid. Renders nothing when items is empty."
        },
        {
          "name": "StatGridProps",
          "slug": "stat-grid-props",
          "kind": "interface",
          "declaration": "interface StatGridProps extends Omit<CommonProps, 'unstyled'> {\n    /** An empty array renders nothing at all — no empty frame. */\n    items: readonly StatItem[];\n    /** Integer number of cells per row. Defaults to 2. */\n    columns?: number | undefined;\n    /** Names the whole grid for assistive technology. */\n    accessibilityLabel?: string | undefined;\n    /** Defaults to md. */\n    size?: StatGridSize | undefined;\n    itemStyle?: StyleProp<ViewStyle> | undefined;\n    itemClassName?: string | undefined;\n    labelStyle?: StyleProp<TextStyle> | undefined;\n    labelClassName?: string | undefined;\n    valueStyle?: StyleProp<TextStyle> | undefined;\n    valueClassName?: string | undefined;\n    hintStyle?: StyleProp<TextStyle> | undefined;\n    hintClassName?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "StatGridSize",
          "slug": "stat-grid-size",
          "kind": "type",
          "declaration": "/**\n * StatGrid — one bordered grid of reference metrics.\n *\n * A row of separate cards reads as N equally urgent things; one quiet grid reads\n * as reference data, which is what these numbers usually are. Every item is an\n * accessible group named \"label, value[, hint]\". A ratio renders a thin bar whose\n * value is exposed through the progressbar contract; the library never decides\n * thresholds — the caller passes the tone it has already judged.\n */\ntype StatGridSize = 'sm' | 'md';",
          "sourceDocumentation": "StatGrid — one bordered grid of reference metrics.\n\nA row of separate cards reads as N equally urgent things; one quiet grid reads\nas reference data, which is what these numbers usually are. Every item is an\naccessible group named \"label, value[, hint]\". A ratio renders a thin bar whose\nvalue is exposed through the progressbar contract; the library never decides\nthresholds — the caller passes the tone it has already judged."
        },
        {
          "name": "StaticCardProps",
          "slug": "static-card-props",
          "kind": "type",
          "declaration": "/** The static container. It carries no press props, so a plain surface never gains widget semantics. */\ntype StaticCardProps = CardBaseProps & {\n    onPress?: never;\n    accessibilityLabel?: never;\n    accessibilityHint?: never;\n    selected?: never;\n    disabled?: never;\n};",
          "sourceDocumentation": "The static container. It carries no press props, so a plain surface never gains widget semantics."
        },
        {
          "name": "StaticChipProps",
          "slug": "static-chip-props",
          "kind": "type",
          "declaration": "/** A read-only value or selected tag. `selected` changes appearance only; this branch has no widget role or selection ARIA state. */\ntype StaticChipProps = Omit<ChipBaseProps, 'disabled'> & {\n    kind: 'static';\n    /** Defaults to false. This is visual state only; use a filter chip when the user can change it. */\n    selected?: boolean | undefined;\n    disabled?: never;\n    onPress?: never;\n    onSelectedChange?: never;\n    onRemove?: never;\n    removeAccessibilityLabel?: never;\n};",
          "sourceDocumentation": "A read-only value or selected tag. `selected` changes appearance only; this branch has no widget role or selection ARIA state."
        },
        {
          "name": "StatItem",
          "slug": "stat-item",
          "kind": "interface",
          "declaration": "interface StatItem {\n    /** Stable identity for the cell. Defaults to label, which must then be unique within the grid. */\n    readonly key?: string | undefined;\n    /** Visible, nonblank metric name. */\n    readonly label: string;\n    /** Already-formatted figure; the library never formats numbers. */\n    readonly value: string;\n    /** Short secondary line under the value, such as a denominator or a time window. */\n    readonly hint?: string | undefined;\n    /**\n     * Fraction from 0 to 1 that renders a thin bar under the value. Out-of-range\n     * and non-finite input is clamped, and the clamped value is exposed to\n     * assistive technology as a percentage.\n     */\n    readonly ratio?: number | undefined;\n    /** Defaults to neutral. Thresholds belong to the caller. */\n    readonly tone?: StatTone | undefined;\n}"
        },
        {
          "name": "StatTone",
          "slug": "stat-tone",
          "kind": "type",
          "declaration": "/** Color intent of a value and its bar. neutral uses the text color; the rest use the matching status role. */\ntype StatTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';",
          "sourceDocumentation": "Color intent of a value and its bar. neutral uses the text color; the rest use the matching status role."
        },
        {
          "name": "StatusVariant",
          "slug": "status-variant",
          "kind": "type",
          "declaration": "/**\n * Badge / Alert — short status labels and inline feedback.\n *\n * Color resolves only from the per-status soft, strong, and on-color token pairs.\n * Alert is a static description by default, so it uses live=\"off\"; specify polite\n * or assertive only when announcing an asynchronous update. A live region never\n * moves focus.\n */\ntype StatusVariant = 'neutral' | 'info' | 'success' | 'warning' | 'error';",
          "sourceDocumentation": "Badge / Alert — short status labels and inline feedback.\n\nColor resolves only from the per-status soft, strong, and on-color token pairs.\nAlert is a static description by default, so it uses live=\"off\"; specify polite\nor assertive only when announcing an asynchronous update. A live region never\nmoves focus."
        },
        {
          "name": "StickyActionBar",
          "slug": "sticky-action-bar",
          "kind": "function",
          "declaration": "/** Keyboard avoidance belongs to the host — this component only provides the visuals, web sticky behavior, and inset padding. */\ndeclare function StickyActionBar({ children, bottomInset, style, className, testID, }: StickyActionBarProps): ReactElement;",
          "sourceDocumentation": "Keyboard avoidance belongs to the host — this component only provides the visuals, web sticky behavior, and inset padding."
        },
        {
          "name": "StickyActionBarProps",
          "slug": "sticky-action-bar-props",
          "kind": "interface",
          "declaration": "interface StickyActionBarProps extends Omit<CommonProps, 'unstyled'> {\n    children?: ReactNode | undefined;\n    /**\n     * Where the return value of useBottomInset() from './insets' goes. The library\n     * does not measure it directly so the safe-area peer is never pulled into \".\"\n     * (§7). Defaults to 0.\n     */\n    bottomInset?: number | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "subscribeActiveTheme",
          "slug": "subscribe-active-theme",
          "kind": "function",
          "declaration": "/**\n * Subscribes to root theme replacements. Returns an unsubscribe function.\n *\n * @deprecated This client-only subscription observes a module-global snapshot.\n * It must not be used for SSR. Use `resolveTheme(theme, colorScheme)` for\n * request-scoped or static configuration instead.\n */\ndeclare function subscribeActiveTheme(listener: (theme: Theme) => void): () => void;",
          "sourceDocumentation": "Subscribes to root theme replacements. Returns an unsubscribe function."
        },
        {
          "name": "Surface",
          "slug": "surface",
          "kind": "function",
          "declaration": "declare function Surface({ children, padding, radius, elevation, bordered, style, className, testID, }: SurfaceProps): ReactElement;"
        },
        {
          "name": "SurfaceProps",
          "slug": "surface-props",
          "kind": "interface",
          "declaration": "/**\n * Surface / ContentFrame / Section / StickyActionBar — design doc §5.8.\n *\n * Boolean switches (padded/elevated) were replaced by token-key props, so the API\n * itself proves the padding and elevation values really come from tokens.\n */\ninterface SurfaceProps extends Omit<CommonProps, 'unstyled'> {\n    children?: ReactNode | undefined;\n    /** Defaults to 'lg'. Numbers are the escape hatch for Figma measurements. */\n    padding?: SpacingKey | number | undefined;\n    /** Defaults to 'sm'. */\n    radius?: RadiusKey | undefined;\n    /** Defaults to 'none'. */\n    elevation?: ElevationKey | undefined;\n    /** Defaults to true. */\n    bordered?: boolean | undefined;\n    unstyled?: never;\n}",
          "sourceDocumentation": "Surface / ContentFrame / Section / StickyActionBar — design doc §5.8.\n\nBoolean switches (padded/elevated) were replaced by token-key props, so the API\nitself proves the padding and elevation values really come from tokens."
        },
        {
          "name": "Switch",
          "slug": "switch",
          "kind": "function",
          "declaration": "/** Uses the native Switch as is, preserving the platform's keyboard and screen reader behavior. */\ndeclare function Switch({ value, onValueChange, label, accessibilityLabel, description, disabled, size, style, className, testID, }: SwitchProps): ReactElement;",
          "sourceDocumentation": "Uses the native Switch as is, preserving the platform's keyboard and screen reader behavior."
        },
        {
          "name": "SwitchProps",
          "slug": "switch-props",
          "kind": "type",
          "declaration": "type SwitchProps = SwitchOwnProps & VisibleOrAccessibleLabel;"
        },
        {
          "name": "TabItem",
          "slug": "tab-item",
          "kind": "interface",
          "declaration": "interface TabItem<T extends string> {\n    readonly label: string;\n    readonly value: T;\n    readonly disabled?: boolean | undefined;\n}"
        },
        {
          "name": "Tabs",
          "slug": "tabs",
          "kind": "function",
          "declaration": "declare function Tabs<T extends string>({ items, value, onChange, accessibilityLabel, variant, panels, panelMountStrategy, panelStyle, panelClassName, style, className, testID, }: TabsProps<T>): ReactElement;"
        },
        {
          "name": "TabsProps",
          "slug": "tabs-props",
          "kind": "type",
          "declaration": "type TabsProps<T extends string> = TabsBaseProps<T> & TabsPanelsProps<T>;"
        },
        {
          "name": "Text",
          "slug": "text",
          "kind": "function",
          "declaration": "declare function Text({ role, color, tabularNums, style, className, children, ...rest }: TextProps): ReactElement;"
        },
        {
          "name": "TextField",
          "slug": "text-field",
          "kind": "function",
          "declaration": "declare function TextField({ label, error, helperText, counter, labelAccessory, containerStyle, inputStyle, labelStyle, counterStyle, helperStyle, containerClassName, inputClassName, labelClassName, counterClassName, helperClassName, multiline, placeholderTextColor, nativeID, accessibilityLabel, accessibilityLabelledBy, accessibilityHint, accessibilityState, editable, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'aria-errormessage': ariaErrorMessage, 'aria-invalid': ariaInvalid, 'aria-required': ariaRequired, 'aria-disabled': ariaDisabled, testID, ...inputProps }: TextFieldProps): ReactElement;"
        },
        {
          "name": "TextFieldProps",
          "slug": "text-field-props",
          "kind": "interface",
          "declaration": "interface TextFieldProps extends Omit<TextInputProps, 'style'> {\n    label?: string | undefined;\n    /** When set, the border and helper turn danger-toned and it takes precedence over helperText (§6 rejection table: mutual exclusion is not enforced). */\n    error?: string | undefined;\n    helperText?: string | undefined;\n    counter?: string | undefined;\n    labelAccessory?: ReactNode | undefined;\n    /** Blocks the meaning change of the old library's style (which meant input style) — use containerStyle and inputStyle (§5.4). */\n    style?: never;\n    containerStyle?: StyleProp<ViewStyle> | undefined;\n    inputStyle?: StyleProp<TextStyle> | undefined;\n    labelStyle?: StyleProp<TextStyle> | undefined;\n    counterStyle?: StyleProp<TextStyle> | undefined;\n    helperStyle?: StyleProp<TextStyle> | undefined;\n    containerClassName?: string | undefined;\n    inputClassName?: string | undefined;\n    labelClassName?: string | undefined;\n    counterClassName?: string | undefined;\n    helperClassName?: string | undefined;\n    /** Narrowly supports the RNW field relationships that the React Native core types do not have yet. */\n    'aria-describedby'?: string | undefined;\n    'aria-errormessage'?: string | undefined;\n    'aria-invalid'?: boolean | undefined;\n    'aria-required'?: boolean | undefined;\n    testID?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "TextProps",
          "slug": "text-props",
          "kind": "interface",
          "declaration": "/**\n * Text — design doc §5.1 (new).\n *\n * The direct consumer of the typography tokens. The predecessor had no text\n * primitive, so the app duplicated things like `text-[13px] font-bold` in hundreds\n * of places. Shadowing RN's Text is industry practice (Paper, Tamagui) — reach for\n * `import { Text as RNText }` when you need the original.\n */\ninterface TextProps extends Omit<TextProps$1, 'style' | 'role'> {\n    /** Defaults to 'body' — fontSize, lineHeight, fontWeight, and fontFamily are all decided by tokens. */\n    role?: TextRole | undefined;\n    /** A closed union — typos are compile errors and raw colors go through the style escape hatch (§0). Defaults to 'text'. */\n    color?: ColorKey | undefined;\n    /**\n     * Renders every digit at the same advance width so columns of figures line up.\n     * Emits `fontVariant: ['tabular-nums']`, which React Native Web serializes as\n     * the CSS `font-variant` shorthand carrying the tabular-figures feature.\n     * Defaults to false.\n     */\n    tabularNums?: boolean | undefined;\n    style?: StyleProp<TextStyle> | undefined;\n    className?: string | undefined;\n    unstyled?: never;\n}",
          "sourceDocumentation": "Text — design doc §5.1 (new).\n\nThe direct consumer of the typography tokens. The predecessor had no text\nprimitive, so the app duplicated things like `text-[13px] font-bold` in hundreds\nof places. Shadowing RN's Text is industry practice (Paper, Tamagui) — reach for\n`import { Text as RNText }` when you need the original."
        },
        {
          "name": "TextRole",
          "slug": "text-role",
          "kind": "type",
          "declaration": "type TextRole = Exclude<keyof ThemeTypography, 'fontFamily'>;"
        },
        {
          "name": "Theme",
          "slug": "theme",
          "kind": "interface",
          "declaration": "/** A resolved single-scheme theme. Branded — it exists only through createTheme (§3.3). Deeply frozen. */\ninterface Theme extends ThemeTokens, Brand<'Theme'> {\n    readonly scheme: ColorScheme;\n}",
          "sourceDocumentation": "A resolved single-scheme theme. Branded — it exists only through createTheme (§3.3). Deeply frozen."
        },
        {
          "name": "ThemeBreakpoints",
          "slug": "theme-breakpoints",
          "kind": "interface",
          "declaration": "interface ThemeBreakpoints {\n    readonly tablet: number;\n    readonly desktop: number;\n}"
        },
        {
          "name": "ThemeColors",
          "slug": "theme-colors",
          "kind": "interface",
          "declaration": "/**\n * The color roles — 31 of them: the base surface and brand roles plus a strong,\n * soft, and on-color trio per status. They keep status components from borrowing a\n * raw color or a token that means something else (onPrimary and friends).\n */\ninterface ThemeColors {\n    readonly background: string;\n    readonly surface: string;\n    readonly surfaceSubtle: string;\n    readonly text: string;\n    readonly textMuted: string;\n    readonly textSubtle: string;\n    /** The active label and indicator color of an underline tab. */\n    readonly tabActive: string;\n    /** The inactive label color of an underline tab. */\n    readonly tabInactive: string;\n    readonly line: string;\n    readonly primary: string;\n    readonly primaryStrong: string;\n    readonly primarySoft: string;\n    readonly onPrimary: string;\n    readonly danger: string;\n    readonly dangerStrong: string;\n    readonly dangerSoft: string;\n    readonly onDanger: string;\n    readonly warning: string;\n    readonly warningStrong: string;\n    readonly warningSoft: string;\n    readonly onWarning: string;\n    readonly success: string;\n    readonly successStrong: string;\n    readonly successSoft: string;\n    readonly onSuccess: string;\n    readonly info: string;\n    readonly infoStrong: string;\n    readonly infoSoft: string;\n    readonly onInfo: string;\n    readonly overlay: string;\n    /**\n     * The color of every shadow — the map adopted in §0. The predecessor borrowed\n     * colors.text for shadows, a structural defect that produced light shadows in\n     * the dark theme.\n     */\n    readonly shadow: string;\n}",
          "sourceDocumentation": "The color roles — 31 of them: the base surface and brand roles plus a strong,\nsoft, and on-color trio per status. They keep status components from borrowing a\nraw color or a token that means something else (onPrimary and friends)."
        },
        {
          "name": "ThemeElevation",
          "slug": "theme-elevation",
          "kind": "interface",
          "declaration": "interface ThemeElevation {\n    readonly none: ElevationLevel;\n    readonly sm: ElevationLevel;\n    readonly md: ElevationLevel;\n    readonly lg: ElevationLevel;\n}"
        },
        {
          "name": "ThemeMetrics",
          "slug": "theme-metrics",
          "kind": "interface",
          "declaration": "/**\n * Component dimension tokens — the map adopted in §0 (A). It converges what used to\n * be scattered module literals: the predecessor's buttonSizes (36/44/52), the input\n * minHeight of 48, the icon sizes, and the\n * EMPTY_STATE_MAX_FONT_SIZE_MULTIPLIER constant.\n */\ninterface ThemeMetrics {\n    readonly control: {\n        readonly sm: number;\n        readonly md: number;\n        readonly lg: number;\n    };\n    readonly input: number;\n    readonly icon: {\n        readonly sm: number;\n        readonly md: number;\n        readonly lg: number;\n    };\n    readonly maxFontScale: number;\n}",
          "sourceDocumentation": "Component dimension tokens — the map adopted in §0 (A). It converges what used to\nbe scattered module literals: the predecessor's buttonSizes (36/44/52), the input\nminHeight of 48, the icon sizes, and the\nEMPTY_STATE_MAX_FONT_SIZE_MULTIPLIER constant."
        },
        {
          "name": "ThemeOverrides",
          "slug": "theme-overrides",
          "kind": "type",
          "declaration": "/**\n * Two-level partial overrides (group then key). A typography role is replaced\n * whole as a TypeRole — three-level DeepPartial was rejected because the cost of\n * memorizing the merge rules outweighed the benefit (§11).\n * Key level is `| undefined` as well, so an EOP consumer can assemble overrides\n * conditionally (undefined values are skipped during the merge).\n */\ntype ThemeOverrides = {\n    readonly [G in keyof ThemeTokens]?: {\n        readonly [K in keyof ThemeTokens[G]]?: ThemeTokens[G][K] | undefined;\n    } | undefined;\n};",
          "sourceDocumentation": "Two-level partial overrides (group then key). A typography role is replaced\nwhole as a TypeRole — three-level DeepPartial was rejected because the cost of\nmemorizing the merge rules outweighed the benefit (§11).\nKey level is `| undefined` as well, so an EOP consumer can assemble overrides\nconditionally (undefined values are skipped during the merge)."
        },
        {
          "name": "ThemePair",
          "slug": "theme-pair",
          "kind": "interface",
          "declaration": "/** A light/dark pair — the type guarantees both schemes are complete (§3.3). It exists only through createThemes. */\ninterface ThemePair extends Brand<'ThemePair'> {\n    readonly light: Theme;\n    readonly dark: Theme;\n}",
          "sourceDocumentation": "A light/dark pair — the type guarantees both schemes are complete (§3.3). It exists only through createThemes."
        },
        {
          "name": "ThemeRadius",
          "slug": "theme-radius",
          "kind": "interface",
          "declaration": "interface ThemeRadius {\n    readonly none: 0;\n    readonly sm: number;\n    readonly md: number;\n    readonly lg: number;\n    readonly pill: number;\n}"
        },
        {
          "name": "ThemeSpacing",
          "slug": "theme-spacing",
          "kind": "interface",
          "declaration": "interface ThemeSpacing {\n    readonly none: 0;\n    readonly xs: number;\n    readonly sm: number;\n    readonly md: number;\n    readonly lg: number;\n    readonly xl: number;\n    readonly xxl: number;\n    readonly xxxl: number;\n}"
        },
        {
          "name": "ThemeTokens",
          "slug": "theme-tokens",
          "kind": "interface",
          "declaration": "interface ThemeTokens {\n    readonly colors: ThemeColors;\n    readonly spacing: ThemeSpacing;\n    readonly radius: ThemeRadius;\n    readonly typography: ThemeTypography;\n    readonly elevation: ThemeElevation;\n    readonly metrics: ThemeMetrics;\n    readonly breakpoints: ThemeBreakpoints;\n}"
        },
        {
          "name": "ThemeTypography",
          "slug": "theme-typography",
          "kind": "interface",
          "declaration": "interface ThemeTypography {\n    readonly caption: TypeRole;\n    readonly label: TypeRole;\n    readonly button: TypeRole;\n    readonly body: TypeRole;\n    readonly title: TypeRole;\n    readonly heading: TypeRole;\n    /**\n     * The role reserved for navigation tab labels in underline Tabs. The 16px/'600'\n     * pair inherited from the predecessor matches no other role, so it was promoted\n     * to a role of its own (an adversarial-review finding). Same principle as the\n     * §0 decision to keep tab-only color tokens (tabActive/tabInactive).\n     */\n    readonly tab: TypeRole;\n    /** The app's custom font family. Falls back to the system font when omitted. */\n    readonly fontFamily?: string | undefined;\n}"
        },
        {
          "name": "Toast",
          "slug": "toast",
          "kind": "function",
          "declaration": "declare function Toast({ message, variant, leading, bottomOffset, containerStyle, className, testID, }: ToastProps): ReactElement;"
        },
        {
          "name": "ToastAction",
          "slug": "toast-action",
          "kind": "interface",
          "declaration": "interface ToastAction {\n    readonly label: string;\n    readonly onPress: () => void;\n    readonly accessibilityLabel?: string | undefined;\n}"
        },
        {
          "name": "ToastAnnouncement",
          "slug": "toast-announcement",
          "kind": "type",
          "declaration": "type ToastAnnouncement = 'off' | 'polite' | 'assertive';"
        },
        {
          "name": "ToastDismissReason",
          "slug": "toast-dismiss-reason",
          "kind": "type",
          "declaration": "type ToastDismissReason = 'timeout' | 'close-action' | 'action' | 'programmatic' | 'queue-overflow';"
        },
        {
          "name": "ToastId",
          "slug": "toast-id",
          "kind": "type",
          "declaration": "/** The nominal type that lets only queue-issued identifiers be handed back to the update and dismiss APIs. */\ntype ToastId = string & {\n    readonly [toastIdBrand]: 'ToastId';\n};",
          "sourceDocumentation": "The nominal type that lets only queue-issued identifiers be handed back to the update and dismiss APIs."
        },
        {
          "name": "ToastPayload",
          "slug": "toast-payload",
          "kind": "type",
          "declaration": "type ToastPayload = {\n    message: string;\n    variant: ToastVariant;\n};"
        },
        {
          "name": "ToastProps",
          "slug": "toast-props",
          "kind": "interface",
          "declaration": "interface ToastProps {\n    message: string;\n    /** Defaults to 'error'. */\n    variant?: ToastVariant | undefined;\n    /** Defaults to icons.toast[variant]. */\n    leading?: ReactNode | undefined;\n    /**\n     * Distance from the bottom as a plain number. Defaults to 96. Compose it with\n     * useBottomInset() for safe-area handling (§7). The legacy bottomOffset!==96\n     * style branch is gone — the value only affects position.\n     */\n    bottomOffset?: number | undefined;\n    containerStyle?: StyleProp<ViewStyle> | undefined;\n    className?: string | undefined;\n    testID?: string | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "ToastQueueController",
          "slug": "toast-queue-controller",
          "kind": "interface",
          "declaration": "interface ToastQueueController {\n    /** The full FIFO snapshot of visible plus queued. */\n    readonly records: readonly ToastRecord[];\n    readonly visibleToasts: readonly ToastRecord[];\n    readonly queuedCount: number;\n    readonly show: (request: ToastRequest) => ToastId;\n    readonly update: (id: ToastId, update: ToastUpdate) => boolean;\n    readonly dismiss: (id: ToastId, reason?: ToastDismissReason | undefined) => boolean;\n    readonly dismissAll: (reason?: ToastDismissReason | undefined) => void;\n    readonly pause: (id: ToastId) => boolean;\n    readonly resume: (id: ToastId) => boolean;\n}"
        },
        {
          "name": "ToastRecord",
          "slug": "toast-record",
          "kind": "interface",
          "declaration": "/** The public snapshot after show/update input is validated and defaults are resolved. */\ninterface ToastRecord {\n    readonly id: ToastId;\n    readonly title?: string | undefined;\n    readonly message: string;\n    readonly variant: ToastVariant;\n    readonly durationMs: number | null;\n    readonly announcement: ToastAnnouncement;\n    readonly action?: ToastAction | undefined;\n    readonly dedupeKey?: string | undefined;\n}",
          "sourceDocumentation": "The public snapshot after show/update input is validated and defaults are resolved."
        },
        {
          "name": "ToastRequest",
          "slug": "toast-request",
          "kind": "interface",
          "declaration": "interface ToastRequest {\n    readonly title?: string | undefined;\n    readonly message: string;\n    /** Defaults to 'info'. */\n    readonly variant?: ToastVariant | undefined;\n    /** When null, it stays until the user dismisses it. */\n    readonly durationMs?: number | null | undefined;\n    /** Defaults to 'polite'. */\n    readonly announcement?: ToastAnnouncement | undefined;\n    readonly action?: ToastAction | undefined;\n    /** Calling show again with the same key replaces the content while preserving the existing position and id. */\n    readonly dedupeKey?: string | undefined;\n}"
        },
        {
          "name": "ToastUpdate",
          "slug": "toast-update",
          "kind": "interface",
          "declaration": "/** In update, null explicitly removes an existing optional property. */\ninterface ToastUpdate {\n    readonly title?: string | null | undefined;\n    readonly message?: string | undefined;\n    readonly variant?: ToastVariant | undefined;\n    readonly durationMs?: number | null | undefined;\n    readonly announcement?: ToastAnnouncement | undefined;\n    readonly action?: ToastAction | null | undefined;\n    readonly dedupeKey?: string | null | undefined;\n}",
          "sourceDocumentation": "In update, null explicitly removes an existing optional property."
        },
        {
          "name": "ToastVariant",
          "slug": "toast-variant",
          "kind": "type",
          "declaration": "/** The Toast variants — name preserved across 88 call sites (§0 rejected: renaming to intent in C). */\ntype ToastVariant = 'error' | 'success' | 'info' | 'warning';",
          "sourceDocumentation": "The Toast variants — name preserved across 88 call sites (§0 rejected: renaming to intent in C)."
        },
        {
          "name": "ToastViewport",
          "slug": "toast-viewport",
          "kind": "function",
          "declaration": "/** The fixed-position renderer. It owns layout only and hands queue state back through callbacks. */\ndeclare function ToastViewport({ toasts, onDismiss, onPause, onResume, placement, offset, style, className, testID, }: ToastViewportProps): ReactElement;",
          "sourceDocumentation": "The fixed-position renderer. It owns layout only and hands queue state back through callbacks."
        },
        {
          "name": "ToastViewportDismissReason",
          "slug": "toast-viewport-dismiss-reason",
          "kind": "type",
          "declaration": "type ToastViewportDismissReason = Extract<ToastDismissReason, 'close-action' | 'action'>;"
        },
        {
          "name": "ToastViewportPlacement",
          "slug": "toast-viewport-placement",
          "kind": "type",
          "declaration": "type ToastViewportPlacement = 'top' | 'bottom';"
        },
        {
          "name": "ToastViewportProps",
          "slug": "toast-viewport-props",
          "kind": "interface",
          "declaration": "interface ToastViewportProps extends Omit<CommonProps, 'unstyled'> {\n    readonly toasts: readonly ToastRecord[];\n    readonly onDismiss: (id: ToastId, reason: ToastViewportDismissReason) => void;\n    readonly onPause: (id: ToastId) => void;\n    readonly onResume: (id: ToastId) => void;\n    /** Defaults to 'bottom'. */\n    readonly placement?: ToastViewportPlacement | undefined;\n    /** The distance from the screen edge. Defaults to spacing.xl. */\n    readonly offset?: number | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "ToggleGroup",
          "slug": "toggle-group",
          "kind": "function",
          "declaration": "declare function ToggleGroup<T extends string>(props: ToggleGroupProps<T>): ReactElement;"
        },
        {
          "name": "ToggleGroupItem",
          "slug": "toggle-group-item",
          "kind": "type",
          "declaration": "type ToggleGroupItem<T extends string> = ToggleGroupItemBase<T> & (LabeledToggleGroupItem | IconOnlyToggleGroupItem);"
        },
        {
          "name": "ToggleGroupOrientation",
          "slug": "toggle-group-orientation",
          "kind": "type",
          "declaration": "type ToggleGroupOrientation = 'horizontal' | 'vertical';"
        },
        {
          "name": "ToggleGroupProps",
          "slug": "toggle-group-props",
          "kind": "type",
          "declaration": "type ToggleGroupProps<T extends string> = SingleToggleGroupProps<T> | MultipleToggleGroupProps<T>;"
        },
        {
          "name": "ToggleGroupSelectionMode",
          "slug": "toggle-group-selection-mode",
          "kind": "type",
          "declaration": "type ToggleGroupSelectionMode = 'single' | 'multiple';"
        },
        {
          "name": "ToggleGroupSize",
          "slug": "toggle-group-size",
          "kind": "type",
          "declaration": "type ToggleGroupSize = 'sm' | 'md';"
        },
        {
          "name": "ToggleGroupVariant",
          "slug": "toggle-group-variant",
          "kind": "type",
          "declaration": "type ToggleGroupVariant = 'filled' | 'outlined';"
        },
        {
          "name": "Toolbar",
          "slug": "toolbar",
          "kind": "function",
          "declaration": "/** A named wrapping row of controls. Children own their focus; no roving tabindex is added. */\ndeclare function Toolbar(props: ToolbarProps): ReactElement;",
          "sourceDocumentation": "A named wrapping row of controls. Children own their focus; no roving tabindex is added."
        },
        {
          "name": "ToolbarAlign",
          "slug": "toolbar-align",
          "kind": "type",
          "declaration": "/**\n * Toolbar — a named, wrapping row of controls (filters, bulk actions, sort).\n *\n * It is a layout and naming contract only: the web host carries `role=\"toolbar\"`\n * with an `aria-label`, and every child keeps its own focus behavior. The\n * library does not add arrow-key roving focus across children; a toolbar of\n * independent controls (search field, select, buttons) is reached with Tab.\n */\n/** Main-axis distribution of the controls. */\ntype ToolbarAlign = 'start' | 'center' | 'end' | 'space-between';",
          "sourceDocumentation": "Main-axis distribution of the controls."
        },
        {
          "name": "ToolbarProps",
          "slug": "toolbar-props",
          "kind": "interface",
          "declaration": "interface ToolbarProps extends Omit<CommonProps, 'unstyled'> {\n    /** Required: a toolbar landmark is only useful to assistive technology when it is named. */\n    accessibilityLabel: string;\n    children: ReactNode;\n    /** Lets controls flow onto new lines when the row is too narrow. Defaults to true. */\n    wrap?: boolean | undefined;\n    /** Gap between controls, and between wrapped lines. Defaults to sm. */\n    gap?: SpacingKey | undefined;\n    /** Defaults to start. */\n    align?: ToolbarAlign | undefined;\n    /** Draws the toolbar as a bordered surface with inner padding. Defaults to false. */\n    bordered?: boolean | undefined;\n    unstyled?: never;\n}"
        },
        {
          "name": "Tooltip",
          "slug": "tooltip",
          "kind": "function",
          "declaration": "/** Native Tooltip: platform accessibility hint, with no floating layer or timer. */\ndeclare function Tooltip(props: TooltipProps): ReactElement;",
          "sourceDocumentation": "Native Tooltip: platform accessibility hint, with no floating layer or timer."
        },
        {
          "name": "TooltipDirection",
          "slug": "tooltip-direction",
          "kind": "type",
          "declaration": "type TooltipDirection = OverlayDirection;"
        },
        {
          "name": "TooltipPlacement",
          "slug": "tooltip-placement",
          "kind": "type",
          "declaration": "type TooltipPlacement = OverlayPlacement;"
        },
        {
          "name": "TooltipProps",
          "slug": "tooltip-props",
          "kind": "type",
          "declaration": "type TooltipProps = Omit<CommonProps, 'unstyled'> & TooltipOwnProps;"
        },
        {
          "name": "TooltipTriggerSize",
          "slug": "tooltip-trigger-size",
          "kind": "type",
          "declaration": "type TooltipTriggerSize = 'sm' | 'md';"
        },
        {
          "name": "TriggerRenderProps",
          "slug": "trigger-render-props",
          "kind": "interface",
          "declaration": "/**\n * The injected contract of the renderTrigger slot.\n *\n * The kit owns trigger behavior and accessibility; the consumer owns only the\n * visuals. Both a type-level union and runtime validation enforce that split.\n */\n/**\n * Props the kit injects into a `renderTrigger` element. Spread every one of\n * them onto a single Pressable — or an equivalent host that actually forwards\n * React Native press handling (a plain View silently drops `onPress` and\n * ships an announced-but-inoperable button, so it is not a valid host). The\n * kit owns press behavior, disabled/expanded accessibility state, ids, and\n * the measurement hooks that anchoring needs, while the consumer owns only\n * the visuals. The object also carries platform wiring beyond these declared\n * keys (web `aria-haspopup`/`aria-controls`/key handlers, Select value text),\n * so forwarding a hand-picked subset instead of spreading breaks the\n * contract.\n */\ninterface TriggerRenderProps {\n    /**\n     * Must reach the returned host element. Anchored positioning measures the\n     * trigger through it and dismissal restores focus to it; the component\n     * throws when it opens without the ref attached.\n     */\n    readonly ref: (node: unknown) => void;\n    readonly onPress: (event: GestureResponderEvent) => void;\n    readonly disabled: boolean;\n    /** 'button' for Menu (and native Select); 'combobox' for the web Select. */\n    readonly accessibilityRole: 'button' | 'combobox';\n    readonly accessibilityLabel: string;\n    readonly accessibilityState: {\n        readonly disabled: boolean;\n        readonly expanded: boolean;\n        readonly busy: boolean;\n    };\n    /**\n     * Dual-written with accessibilityState.expanded: React Native maps aria-*\n     * onto accessibilityState natively, while React Native Web needs the aria\n     * attribute directly because it does not map accessibilityState to DOM aria.\n     */\n    readonly 'aria-expanded': boolean;\n    /** Select only — the helper or error text of the field. */\n    readonly accessibilityHint?: string | undefined;\n    /** Select only — the displayed value or placeholder. */\n    readonly accessibilityValue?: {\n        readonly text: string;\n    } | undefined;\n    /** The component's triggerTestID (web Select falls back to `${testID}-trigger`). */\n    readonly testID?: string | undefined;\n    /** Re-measures an open native anchored panel when the trigger's layout moves. */\n    readonly onLayout?: (() => void) | undefined;\n    /** Web Select only — the DOM id the label and popup relationships expect. */\n    readonly nativeID?: string | undefined;\n}",
          "sourceDocumentation": "Props the kit injects into a `renderTrigger` element. Spread every one of\nthem onto a single Pressable — or an equivalent host that actually forwards\nReact Native press handling (a plain View silently drops `onPress` and\nships an announced-but-inoperable button, so it is not a valid host). The\nkit owns press behavior, disabled/expanded accessibility state, ids, and\nthe measurement hooks that anchoring needs, while the consumer owns only\nthe visuals. The object also carries platform wiring beyond these declared\nkeys (web `aria-haspopup`/`aria-controls`/key handlers, Select value text),\nso forwarding a hand-picked subset instead of spreading breaks the\ncontract."
        },
        {
          "name": "TypeRole",
          "slug": "type-role",
          "kind": "interface",
          "declaration": "interface TypeRole {\n    readonly fontSize: number;\n    readonly lineHeight: number;\n    readonly fontWeight: FontWeight;\n}"
        },
        {
          "name": "UiIcons",
          "slug": "ui-icons",
          "kind": "interface",
          "declaration": "interface UiIcons {\n    /** The SelectionIndicator and SelectAllRow mark. Falls back to a ✓ text glyph. */\n    readonly check?: RenderIcon | undefined;\n    /** The Checkbox mixed state. Falls back to a − text glyph. */\n    readonly minus?: RenderIcon | undefined;\n    /** The Accordion expansion affordance. Falls back to a text glyph. */\n    readonly chevronDown?: RenderIcon | undefined;\n    /** The SearchField leading slot. Falls back to rendering nothing. */\n    readonly search?: RenderIcon | undefined;\n    /** The EmptyState leading slot. Falls back to rendering nothing. */\n    readonly empty?: RenderIcon | undefined;\n    /** The ErrorState leading slot. Falls back to rendering nothing. */\n    readonly error?: RenderIcon | undefined;\n    /** The dismiss affordance for Alert and friends. */\n    readonly close?: RenderIcon | undefined;\n    /** The Toast leading slot, per variant. Falls back to rendering nothing. Key level is | undefined too, so an EOP consumer can assemble conditionally. */\n    readonly toast?: {\n        readonly [V in ToastVariant]?: RenderIcon | undefined;\n    } | undefined;\n}"
        },
        {
          "name": "UiProvider",
          "slug": "ui-provider",
          "kind": "function",
          "declaration": "declare function UiProvider({ theme, colorScheme, strings, icons, children, }: UiProviderProps): ReactElement;"
        },
        {
          "name": "UiProviderProps",
          "slug": "ui-provider-props",
          "kind": "interface",
          "declaration": "interface UiProviderProps {\n    /**\n     * A single Theme means a fixed scheme with no switching — an explicit decision.\n     * A ThemePair switches by the colorScheme rule. Hand-assembled token objects\n     * carry no brand and fail to compile (§6 ①). When omitted, a nested Provider\n     * inherits the parent's resolved Theme (only the resolved one, even if the\n     * parent held a Pair — colorScheme cannot re-resolve it) and the root uses\n     * lightTheme.\n     */\n    theme?: Theme | ThemePair | undefined;\n    /**\n     * Only meaningful when theme is a ThemePair. 'system' (default) follows RN\n     * Appearance. 'light' and 'dark' are app-controlled, e.g. a settings toggle —\n     * persistence stays with the app.\n     */\n    colorScheme?: ColorScheme | 'system' | undefined;\n    /** A complete UiStrings only — §4.1. When omitted, a nested Provider inherits from its parent and the root uses enStrings. */\n    strings?: UiStrings | undefined;\n    /** The icon default layer — §4.2. When omitted, a nested Provider inherits from its parent and an unspecified slot uses the built-in fallback. */\n    icons?: UiIcons | undefined;\n    children?: ReactNode | undefined;\n}"
        },
        {
          "name": "UiStrings",
          "slug": "ui-strings",
          "kind": "interface",
          "declaration": "/**\n * The string injection system — design doc §4.1.\n *\n * Precedence: an individual prop, then Provider strings, then the built-in en.\n * Partial<UiStrings> is deliberately not accepted — when the library adds a key,\n * consumers of a hand-assembled bundle see a compile error instead of a missing\n * key quietly leaking through in English. Customize by spreading:\n * `{ ...koStrings, retry: '다시 시도' }`.\n */\ninterface UiStrings {\n    /** The Skeleton accessibility label. */\n    readonly loading: string;\n    /** The default EmptyState title. */\n    readonly emptyTitle: string;\n    /** The default ErrorState title. */\n    readonly errorTitle: string;\n    /** The default ErrorState body. */\n    readonly errorBody: string;\n    /** The ErrorState retry button. */\n    readonly retry: string;\n    /** The SelectAllRow unselected label. */\n    readonly selectAll: string;\n    /** The SelectAllRow deselect label. */\n    readonly deselectAll: string;\n    /** ConfirmActionRow cancel. */\n    readonly cancel: string;\n    /** ConfirmActionRow confirm. */\n    readonly confirm: string;\n    /** The Dialog backdrop accessibility label. */\n    readonly close: string;\n    /** The default SearchField placeholder. */\n    readonly searchPlaceholder: string;\n    /** The combobox no-results state. */\n    readonly noResults: string;\n    /** The ascending state of the DataTable compact sort control. */\n    readonly sortAscending: string;\n    /** The descending state of the DataTable compact sort control. */\n    readonly sortDescending: string;\n    /** The unsorted state of the DataTable compact sort control. */\n    readonly sortUnsorted: string;\n    /**\n     * The visually hidden keyboard hint referenced by activatable DataTable rows\n     * on the web through `aria-describedby`.\n     */\n    readonly rowActivationHint: string;\n    /** The Pagination previous control. */\n    readonly previousPage: string;\n    /** The Pagination next control. */\n    readonly nextPage: string;\n    /** The Rating announcement when no value is selected. */\n    readonly ratingNoValue: string;\n    /** The Rating announcement for a selected value. Keep value and maxRating in the user-facing scale. */\n    readonly ratingValue: (value: number, maxRating: number) => string;\n    /** The Rating custom accessibility action that clears a selected value. */\n    readonly clearRating: string;\n    /** The DateField year segment name. */\n    readonly dateFieldYear: string;\n    /** The DateField month segment name. */\n    readonly dateFieldMonth: string;\n    /** The DateField day segment name. */\n    readonly dateFieldDay: string;\n}",
          "sourceDocumentation": "The string injection system — design doc §4.1.\n\nPrecedence: an individual prop, then Provider strings, then the built-in en.\nPartial<UiStrings> is deliberately not accepted — when the library adds a key,\nconsumers of a hand-assembled bundle see a compile error instead of a missing\nkey quietly leaking through in English. Customize by spreading:\n`{ ...koStrings, retry: '다시 시도' }`."
        },
        {
          "name": "useResolvedColorScheme",
          "slug": "use-resolved-color-scheme",
          "kind": "function",
          "declaration": "/** The resolved current scheme — with 'system', the result of applying the OS value (§3.4). */\ndeclare function useResolvedColorScheme(): ColorScheme;",
          "sourceDocumentation": "The resolved current scheme — with 'system', the result of applying the OS value (§3.4)."
        },
        {
          "name": "useStrings",
          "slug": "use-strings",
          "kind": "function",
          "declaration": "declare function useStrings(): UiStrings;"
        },
        {
          "name": "useTheme",
          "slug": "use-theme",
          "kind": "function",
          "declaration": "/** The Theme resolved for the active scheme. lightTheme without a Provider (the Provider is optional — same as the predecessor). */\ndeclare function useTheme(): Theme;",
          "sourceDocumentation": "The Theme resolved for the active scheme. lightTheme without a Provider (the Provider is optional — same as the predecessor)."
        },
        {
          "name": "useToastController",
          "slug": "use-toast-controller",
          "kind": "function",
          "declaration": "declare function useToastController<T extends ToastPayload = ToastPayload>(options?: {\n    durationMs?: number | undefined;\n}): {\n    toast: T | null;\n    showToast: (toast: T) => void;\n    clearToast: () => void;\n};"
        },
        {
          "name": "useToastQueue",
          "slug": "use-toast-queue",
          "kind": "function",
          "declaration": "/**\n * A FIFO queue. Timing state lives in a ref so pause and resume preserve the\n * remaining time without waiting on a render, and the public records expose only\n * the normalized data a render needs.\n */\ndeclare function useToastQueue(options?: UseToastQueueOptions): ToastQueueController;",
          "sourceDocumentation": "A FIFO queue. Timing state lives in a ref so pause and resume preserve the\nremaining time without waiting on a render, and the public records expose only\nthe normalized data a render needs."
        },
        {
          "name": "UseToastQueueOptions",
          "slug": "use-toast-queue-options",
          "kind": "interface",
          "declaration": "interface UseToastQueueOptions {\n    /** How many are visible at once. Defaults to 1. */\n    readonly maxVisible?: number | undefined;\n    /** How many can wait behind the visible ones. Defaults to 9, for a default cap of 10 in total. */\n    readonly maxQueued?: number | undefined;\n    /** The lifetime used when request.durationMs is omitted. Defaults to 5000ms. */\n    readonly defaultDurationMs?: number | undefined;\n    readonly onDismiss?: ((toast: ToastRecord, reason: ToastDismissReason) => void) | undefined;\n}"
        }
      ]
    },
    {
      "subpath": "./insets",
      "id": "insets",
      "declarationTarget": "./dist/insets.d.cts",
      "symbols": [
        {
          "name": "computeKeyboardRevealOffset",
          "slug": "compute-keyboard-reveal-offset",
          "kind": "function",
          "declaration": "/**\n * Calculates the forward-only scroll offset that keeps a focused input above a\n * keyboard and any fixed bottom bar. Returns null when no reveal is needed.\n */\ndeclare function computeKeyboardRevealOffset({ currentOffset, inputHeight, inputTop, keyboardInset, reservedBottomHeight, viewportHeight, margin, }: {\n    /** The current scroll offset (contentOffset.y). */\n    currentOffset: number;\n    /** The height of the focused input. */\n    inputHeight: number;\n    /** The top (y) of the focused input inside the scroll content. */\n    inputTop: number;\n    /** The keyboard overlap covering the bottom of the viewport. */\n    keyboardInset: number;\n    /** The measured height of a fixed bottom bar lifted above the keyboard, or 0 when there is none. */\n    reservedBottomHeight: number;\n    /** The scroll viewport height with no keyboard present. */\n    viewportHeight: number;\n    /** The gap between the input's bottom edge and the keyboard. Defaults to 16. */\n    margin?: number | undefined;\n}): number | null;",
          "sourceDocumentation": "Calculates the forward-only scroll offset that keeps a focused input above a\nkeyboard and any fixed bottom bar. Returns null when no reveal is needed."
        },
        {
          "name": "ModalSafeAreaInsets",
          "slug": "modal-safe-area-insets",
          "kind": "interface",
          "declaration": "/** A structural safe-area value that does not depend on the optional React Native peer. */\ninterface ModalSafeAreaInsets {\n    readonly top: number;\n    readonly right: number;\n    readonly bottom: number;\n    readonly left: number;\n}",
          "sourceDocumentation": "A structural safe-area value that does not depend on the optional React Native peer."
        },
        {
          "name": "nativeBottomInset",
          "slug": "native-bottom-inset",
          "kind": "function",
          "declaration": "/**\n * Resolves the real bottom inset using the current React Native platform.\n * Import `./insets/pure` when no React Native dependency is acceptable.\n */\ndeclare function nativeBottomInset(bottomInset: number, platformOS?: string): number;",
          "sourceDocumentation": "Resolves the real bottom inset using the current React Native platform.\nImport `./insets/pure` when no React Native dependency is acceptable."
        },
        {
          "name": "nativeBottomPadding",
          "slug": "native-bottom-padding",
          "kind": "function",
          "declaration": "/** Adds design padding to the real bottom inset using the current platform by default. */\ndeclare function nativeBottomPadding(basePadding: number, bottomInset: number, platformOS?: string): number;",
          "sourceDocumentation": "Adds design padding to the real bottom inset using the current platform by default."
        },
        {
          "name": "resolveModalSafeAreaInsets",
          "slug": "resolve-modal-safe-area-insets",
          "kind": "function",
          "declaration": "/**\n * Resolves full-screen Modal padding from root-provider safe-area values.\n *\n * Android can report a zero top safe-area inset in the first frame of a\n * translucent Modal while content still renders below the status bar. In that\n * one configuration, retain the larger of the provider inset and the reported\n * status-bar height. All other platforms use the provider values unchanged.\n */\ndeclare function resolveModalSafeAreaInsets({ insets, platformOS, statusBarTranslucent, statusBarHeight, }: ResolveModalSafeAreaInsetsInput): ModalSafeAreaInsets;",
          "sourceDocumentation": "Resolves full-screen Modal padding from root-provider safe-area values.\n\nAndroid can report a zero top safe-area inset in the first frame of a\ntranslucent Modal while content still renders below the status bar. In that\none configuration, retain the larger of the provider inset and the reported\nstatus-bar height. All other platforms use the provider values unchanged."
        },
        {
          "name": "ResolveModalSafeAreaInsetsInput",
          "slug": "resolve-modal-safe-area-insets-input",
          "kind": "interface",
          "declaration": "/** Input for resolving the padding of a full-screen native Modal. */\ninterface ResolveModalSafeAreaInsetsInput {\n    readonly insets: ModalSafeAreaInsets;\n    readonly platformOS: string;\n    readonly statusBarTranslucent?: boolean | undefined;\n    readonly statusBarHeight?: number | undefined;\n}",
          "sourceDocumentation": "Input for resolving the padding of a full-screen native Modal."
        },
        {
          "name": "useBottomInset",
          "slug": "use-bottom-inset",
          "kind": "function",
          "declaration": "/** The bottom safe-area inset (0 on the web). For composing StickyActionBar bottomInset and Toast bottomOffset. */\ndeclare function useBottomInset(): number;",
          "sourceDocumentation": "The bottom safe-area inset (0 on the web). For composing StickyActionBar bottomInset and Toast bottomOffset."
        },
        {
          "name": "useBottomSheetPadding",
          "slug": "use-bottom-sheet-padding",
          "kind": "function",
          "declaration": "/**\n * The paddingBottom for a bottom-anchored surface: bottom sheets, fixed bars, and\n * bottom button rows. One rule: design padding plus the real bottom inset. Where\n * the inset is 0 (the web, or three-button navigation with the window stopping\n * above the bar) only the design padding remains, automatically. Always use this\n * hook for bottom-anchored surfaces instead of composing insets by hand.\n */\ndeclare function useBottomSheetPadding(designPadding: number): number;",
          "sourceDocumentation": "The paddingBottom for a bottom-anchored surface: bottom sheets, fixed bars, and\nbottom button rows. One rule: design padding plus the real bottom inset. Where\nthe inset is 0 (the web, or three-button navigation with the window stopping\nabove the bar) only the design padding remains, automatically. Always use this\nhook for bottom-anchored surfaces instead of composing insets by hand."
        },
        {
          "name": "useModalKeyboardOverlap",
          "slug": "use-modal-keyboard-overlap",
          "kind": "function",
          "declaration": "/**\n * How much of a bottom-anchored sheet inside a separate native window (`<Modal>`)\n * the keyboard covers. Apply it directly as the sheet container's paddingBottom.\n *\n * KeyboardAvoidingView cannot be used here. An Android edge-to-edge Modal window\n * (with statusBarTranslucent) does not resize when the keyboard opens, and KAV's\n * frame math is off inside that window as well, so neither the \"height\" nor the\n * \"padding\" behavior lifts the sheet (reproduced and confirmed in the memorylog2\n * album record upload sheet). Hence the direct subscription to keyboard events.\n *\n * Android keyboard events report the IME height measured above the system\n * navigation inset, but an edge-to-edge Modal window extends below the navigation\n * bar, so insets.bottom has to be added to get the real occlusion. iOS reports the\n * full occlusion as is.\n */\ndeclare function useModalKeyboardOverlap(): number;",
          "sourceDocumentation": "How much of a bottom-anchored sheet inside a separate native window (`<Modal>`)\nthe keyboard covers. Apply it directly as the sheet container's paddingBottom.\n\nKeyboardAvoidingView cannot be used here. An Android edge-to-edge Modal window\n(with statusBarTranslucent) does not resize when the keyboard opens, and KAV's\nframe math is off inside that window as well, so neither the \"height\" nor the\n\"padding\" behavior lifts the sheet (reproduced and confirmed in the memorylog2\nalbum record upload sheet). Hence the direct subscription to keyboard events.\n\nAndroid keyboard events report the IME height measured above the system\nnavigation inset, but an edge-to-edge Modal window extends below the navigation\nbar, so insets.bottom has to be added to get the real occlusion. iOS reports the\nfull occlusion as is."
        },
        {
          "name": "useModalSafeAreaInsets",
          "slug": "use-modal-safe-area-insets",
          "kind": "function",
          "declaration": "/**\n * Returns root-provider insets for padding a plain View inside a full-screen Modal.\n *\n * Do not mount another SafeAreaProvider or SafeAreaView inside the Modal: their\n * first layout can arrive after the header has already rendered under the\n * system UI. Apply this result directly as View padding instead.\n */\ndeclare function useModalSafeAreaInsets(options?: UseModalSafeAreaInsetsOptions): ModalSafeAreaInsets;",
          "sourceDocumentation": "Returns root-provider insets for padding a plain View inside a full-screen Modal.\n\nDo not mount another SafeAreaProvider or SafeAreaView inside the Modal: their\nfirst layout can arrive after the header has already rendered under the\nsystem UI. Apply this result directly as View padding instead."
        },
        {
          "name": "UseModalSafeAreaInsetsOptions",
          "slug": "use-modal-safe-area-insets-options",
          "kind": "interface",
          "declaration": "interface UseModalSafeAreaInsetsOptions {\n    /** Set this when the native Modal uses React Native's `statusBarTranslucent` prop. */\n    readonly statusBarTranslucent?: boolean | undefined;\n}"
        }
      ]
    },
    {
      "subpath": "./insets/pure",
      "id": "insets--pure",
      "declarationTarget": "./dist/insets/pure.d.cts",
      "symbols": [
        {
          "name": "computeKeyboardRevealOffset",
          "slug": "compute-keyboard-reveal-offset",
          "kind": "function",
          "declaration": "/**\n * Calculates the forward-only scroll offset that keeps a focused input above a\n * keyboard and any fixed bottom bar. Returns null when no reveal is needed.\n */\ndeclare function computeKeyboardRevealOffset({ currentOffset, inputHeight, inputTop, keyboardInset, reservedBottomHeight, viewportHeight, margin, }: {\n    /** The current scroll offset (contentOffset.y). */\n    currentOffset: number;\n    /** The height of the focused input. */\n    inputHeight: number;\n    /** The top (y) of the focused input inside the scroll content. */\n    inputTop: number;\n    /** The keyboard overlap covering the bottom of the viewport. */\n    keyboardInset: number;\n    /** The measured height of a fixed bottom bar lifted above the keyboard, or 0 when there is none. */\n    reservedBottomHeight: number;\n    /** The scroll viewport height with no keyboard present. */\n    viewportHeight: number;\n    /** The gap between the input's bottom edge and the keyboard. Defaults to 16. */\n    margin?: number | undefined;\n}): number | null;",
          "sourceDocumentation": "Calculates the forward-only scroll offset that keeps a focused input above a\nkeyboard and any fixed bottom bar. Returns null when no reveal is needed."
        },
        {
          "name": "ModalSafeAreaInsets",
          "slug": "modal-safe-area-insets",
          "kind": "interface",
          "declaration": "/** A structural safe-area value that does not depend on the optional React Native peer. */\ninterface ModalSafeAreaInsets {\n    readonly top: number;\n    readonly right: number;\n    readonly bottom: number;\n    readonly left: number;\n}",
          "sourceDocumentation": "A structural safe-area value that does not depend on the optional React Native peer."
        },
        {
          "name": "nativeBottomInset",
          "slug": "native-bottom-inset",
          "kind": "function",
          "declaration": "/**\n * Dependency-free inset and keyboard arithmetic.\n *\n * This module deliberately imports neither React nor React Native, so it is safe\n * in shared browser, server, and build-tool code. Unlike the legacy `./insets`\n * entry, callers provide `platformOS` explicitly because this entry cannot read\n * `Platform.OS` for them.\n */\n/**\n * Returns the real bottom safe-area inset for a platform.\n *\n * Bottom-anchored surfaces use the actual inset without a synthetic Android\n * minimum: gesture navigation, edge-to-edge three-button navigation, and windows\n * ending above the navigation bar all report different valid values.\n */\ndeclare function nativeBottomInset(bottomInset: number, platformOS: string): number;",
          "sourceDocumentation": "Returns the real bottom safe-area inset for a platform.\n\nBottom-anchored surfaces use the actual inset without a synthetic Android\nminimum: gesture navigation, edge-to-edge three-button navigation, and windows\nending above the navigation bar all report different valid values."
        },
        {
          "name": "nativeBottomPadding",
          "slug": "native-bottom-padding",
          "kind": "function",
          "declaration": "/** Adds design padding to the real bottom inset for a bottom-anchored surface. */\ndeclare function nativeBottomPadding(basePadding: number, bottomInset: number, platformOS: string): number;",
          "sourceDocumentation": "Adds design padding to the real bottom inset for a bottom-anchored surface."
        },
        {
          "name": "resolveModalSafeAreaInsets",
          "slug": "resolve-modal-safe-area-insets",
          "kind": "function",
          "declaration": "/**\n * Resolves full-screen Modal padding from root-provider safe-area values.\n *\n * Android can report a zero top safe-area inset in the first frame of a\n * translucent Modal while content still renders below the status bar. In that\n * one configuration, retain the larger of the provider inset and the reported\n * status-bar height. All other platforms use the provider values unchanged.\n */\ndeclare function resolveModalSafeAreaInsets({ insets, platformOS, statusBarTranslucent, statusBarHeight, }: ResolveModalSafeAreaInsetsInput): ModalSafeAreaInsets;",
          "sourceDocumentation": "Resolves full-screen Modal padding from root-provider safe-area values.\n\nAndroid can report a zero top safe-area inset in the first frame of a\ntranslucent Modal while content still renders below the status bar. In that\none configuration, retain the larger of the provider inset and the reported\nstatus-bar height. All other platforms use the provider values unchanged."
        },
        {
          "name": "ResolveModalSafeAreaInsetsInput",
          "slug": "resolve-modal-safe-area-insets-input",
          "kind": "interface",
          "declaration": "/** Input for resolving the padding of a full-screen native Modal. */\ninterface ResolveModalSafeAreaInsetsInput {\n    readonly insets: ModalSafeAreaInsets;\n    readonly platformOS: string;\n    readonly statusBarTranslucent?: boolean | undefined;\n    readonly statusBarHeight?: number | undefined;\n}",
          "sourceDocumentation": "Input for resolving the padding of a full-screen native Modal."
        }
      ]
    },
    {
      "subpath": "./tailwind",
      "id": "tailwind",
      "declarationTarget": "./dist/tailwind.d.cts",
      "symbols": [
        {
          "name": "createTailwindPreset",
          "slug": "create-tailwind-preset",
          "kind": "function",
          "declaration": "declare function createTailwindPreset(theme?: Theme, options?: TailwindPresetOptions): TailwindPreset;"
        },
        {
          "name": "defaultTailwindPreset",
          "slug": "default-tailwind-preset",
          "kind": "constant",
          "declaration": "defaultTailwindPreset: TailwindPreset",
          "sourceDocumentation": "zero-config: the built-in light theme preset."
        },
        {
          "name": "TailwindPreset",
          "slug": "tailwind-preset",
          "kind": "interface",
          "declaration": "interface TailwindPreset {\n    theme: {\n        extend: Record<string, unknown>;\n    };\n}"
        },
        {
          "name": "TailwindPresetOptions",
          "slug": "tailwind-preset-options",
          "kind": "interface",
          "declaration": "interface TailwindPresetOptions {\n    /** The class prefix. Defaults to 'ui' → bg-ui-surface, p-ui-lg, rounded-ui-pill, text-ui-title … */\n    readonly prefix?: string | undefined;\n}"
        }
      ]
    },
    {
      "subpath": "./theme",
      "id": "theme",
      "declarationTarget": "./dist/theme.d.cts",
      "symbols": [
        {
          "name": "ColorKey",
          "slug": "color-key",
          "kind": "type",
          "declaration": "type ColorKey = keyof ThemeColors;"
        },
        {
          "name": "ColorScheme",
          "slug": "color-scheme",
          "kind": "type",
          "declaration": "/**\n * The token types — design doc §3.2.\n *\n * This folder (src/theme) imports neither react nor react-native (an entry-guard\n * test enforces it), so that tailwind.config (evaluated by Node) and other\n * non-React code can load it safely.\n */\ntype ColorScheme = 'light' | 'dark';",
          "sourceDocumentation": "The token types — design doc §3.2.\n\nThis folder (src/theme) imports neither react nor react-native (an entry-guard\ntest enforces it), so that tailwind.config (evaluated by Node) and other\nnon-React code can load it safely."
        },
        {
          "name": "createTheme",
          "slug": "create-theme",
          "kind": "function",
          "declaration": "/**\n * Creates a new Theme from partial overrides. Every key of base is guaranteed to\n * be filled, so the result is a complete theme.\n *\n * Passing a single Theme as base layers the overrides on top of that theme,\n * producing a derived theme.\n */\ndeclare function createTheme(base: ColorScheme | Theme, overrides?: ThemeOverrides): Theme;",
          "sourceDocumentation": "Creates a new Theme from partial overrides. Every key of base is guaranteed to\nbe filled, so the result is a complete theme.\n\nPassing a single Theme as base layers the overrides on top of that theme,\nproducing a derived theme."
        },
        {
          "name": "createThemes",
          "slug": "create-themes",
          "kind": "function",
          "declaration": "/**\n * \"Brand colors for both schemes at once\" — builds a pair by merging shared\n * overrides first, then per-scheme ones. Overriding only light leaves dark on the\n * default dark palette; nothing is derived automatically, by explicit principle.\n */\ndeclare function createThemes(input?: {\n    readonly shared?: ThemeOverrides | undefined;\n    readonly light?: ThemeOverrides | undefined;\n    readonly dark?: ThemeOverrides | undefined;\n}): ThemePair;",
          "sourceDocumentation": "\"Brand colors for both schemes at once\" — builds a pair by merging shared\noverrides first, then per-scheme ones. Overriding only light leaves dark on the\ndefault dark palette; nothing is derived automatically, by explicit principle."
        },
        {
          "name": "darkTheme",
          "slug": "dark-theme",
          "kind": "constant",
          "declaration": "darkTheme: Theme",
          "sourceDocumentation": "The built-in dark theme — the palette proposed in §3.6."
        },
        {
          "name": "defaultThemes",
          "slug": "default-themes",
          "kind": "constant",
          "declaration": "defaultThemes: ThemePair",
          "sourceDocumentation": "The result of calling createThemes() with no arguments — the built-in pair."
        },
        {
          "name": "ElevationKey",
          "slug": "elevation-key",
          "kind": "type",
          "declaration": "type ElevationKey = keyof ThemeElevation;"
        },
        {
          "name": "ElevationLevel",
          "slug": "elevation-level",
          "kind": "interface",
          "declaration": "/**\n * The predecessor's elevation was only an Android elevation number, so the four\n * iOS shadow properties were scattered across components — this expands it into a\n * platform-complete shadow spec (§3.2).\n */\ninterface ElevationLevel {\n    /** Android elevation. */\n    readonly elevation: number;\n    readonly shadowOpacity: number;\n    readonly shadowRadius: number;\n    /** shadowOffset.height — width is fixed at 0. */\n    readonly shadowOffsetY: number;\n}",
          "sourceDocumentation": "The predecessor's elevation was only an Android elevation number, so the four\niOS shadow properties were scattered across components — this expands it into a\nplatform-complete shadow spec (§3.2)."
        },
        {
          "name": "FontWeight",
          "slug": "font-weight",
          "kind": "type",
          "declaration": "/**\n * The predecessor's typography was only a fontSize number, so weight and\n * lineHeight were hardcoded in components — this expands it into a complete text\n * style per role (§3.2).\n */\ntype FontWeight = '400' | '500' | '600' | '700' | '800';",
          "sourceDocumentation": "The predecessor's typography was only a fontSize number, so weight and\nlineHeight were hardcoded in components — this expands it into a complete text\nstyle per role (§3.2)."
        },
        {
          "name": "lightTheme",
          "slug": "light-theme",
          "kind": "constant",
          "declaration": "lightTheme: Theme",
          "sourceDocumentation": "The built-in light theme — values inherited from the predecessor's tokens.json (§3.6)."
        },
        {
          "name": "RadiusKey",
          "slug": "radius-key",
          "kind": "type",
          "declaration": "type RadiusKey = keyof ThemeRadius;"
        },
        {
          "name": "resolveTheme",
          "slug": "resolve-theme",
          "kind": "function",
          "declaration": "/**\n * Resolves a ThemePair to a concrete Theme without reading React, platform, or\n * module-global state. Use this in SSR and static configuration paths, where a\n * request-owned `colorScheme` is already known. A single Theme is returned\n * unchanged regardless of the requested scheme.\n */\ndeclare function resolveTheme(theme: Theme | ThemePair, colorScheme: ColorScheme): Theme;",
          "sourceDocumentation": "Resolves a ThemePair to a concrete Theme without reading React, platform, or\nmodule-global state. Use this in SSR and static configuration paths, where a\nrequest-owned `colorScheme` is already known. A single Theme is returned\nunchanged regardless of the requested scheme."
        },
        {
          "name": "SpacingKey",
          "slug": "spacing-key",
          "kind": "type",
          "declaration": "type SpacingKey = keyof ThemeSpacing;"
        },
        {
          "name": "TextRole",
          "slug": "text-role",
          "kind": "type",
          "declaration": "type TextRole = Exclude<keyof ThemeTypography, 'fontFamily'>;"
        },
        {
          "name": "Theme",
          "slug": "theme",
          "kind": "interface",
          "declaration": "/** A resolved single-scheme theme. Branded — it exists only through createTheme (§3.3). Deeply frozen. */\ninterface Theme extends ThemeTokens, Brand<'Theme'> {\n    readonly scheme: ColorScheme;\n}",
          "sourceDocumentation": "A resolved single-scheme theme. Branded — it exists only through createTheme (§3.3). Deeply frozen."
        },
        {
          "name": "ThemeBreakpoints",
          "slug": "theme-breakpoints",
          "kind": "interface",
          "declaration": "interface ThemeBreakpoints {\n    readonly tablet: number;\n    readonly desktop: number;\n}"
        },
        {
          "name": "ThemeColors",
          "slug": "theme-colors",
          "kind": "interface",
          "declaration": "/**\n * The color roles — 31 of them: the base surface and brand roles plus a strong,\n * soft, and on-color trio per status. They keep status components from borrowing a\n * raw color or a token that means something else (onPrimary and friends).\n */\ninterface ThemeColors {\n    readonly background: string;\n    readonly surface: string;\n    readonly surfaceSubtle: string;\n    readonly text: string;\n    readonly textMuted: string;\n    readonly textSubtle: string;\n    /** The active label and indicator color of an underline tab. */\n    readonly tabActive: string;\n    /** The inactive label color of an underline tab. */\n    readonly tabInactive: string;\n    readonly line: string;\n    readonly primary: string;\n    readonly primaryStrong: string;\n    readonly primarySoft: string;\n    readonly onPrimary: string;\n    readonly danger: string;\n    readonly dangerStrong: string;\n    readonly dangerSoft: string;\n    readonly onDanger: string;\n    readonly warning: string;\n    readonly warningStrong: string;\n    readonly warningSoft: string;\n    readonly onWarning: string;\n    readonly success: string;\n    readonly successStrong: string;\n    readonly successSoft: string;\n    readonly onSuccess: string;\n    readonly info: string;\n    readonly infoStrong: string;\n    readonly infoSoft: string;\n    readonly onInfo: string;\n    readonly overlay: string;\n    /**\n     * The color of every shadow — the map adopted in §0. The predecessor borrowed\n     * colors.text for shadows, a structural defect that produced light shadows in\n     * the dark theme.\n     */\n    readonly shadow: string;\n}",
          "sourceDocumentation": "The color roles — 31 of them: the base surface and brand roles plus a strong,\nsoft, and on-color trio per status. They keep status components from borrowing a\nraw color or a token that means something else (onPrimary and friends)."
        },
        {
          "name": "ThemeElevation",
          "slug": "theme-elevation",
          "kind": "interface",
          "declaration": "interface ThemeElevation {\n    readonly none: ElevationLevel;\n    readonly sm: ElevationLevel;\n    readonly md: ElevationLevel;\n    readonly lg: ElevationLevel;\n}"
        },
        {
          "name": "ThemeMetrics",
          "slug": "theme-metrics",
          "kind": "interface",
          "declaration": "/**\n * Component dimension tokens — the map adopted in §0 (A). It converges what used to\n * be scattered module literals: the predecessor's buttonSizes (36/44/52), the input\n * minHeight of 48, the icon sizes, and the\n * EMPTY_STATE_MAX_FONT_SIZE_MULTIPLIER constant.\n */\ninterface ThemeMetrics {\n    readonly control: {\n        readonly sm: number;\n        readonly md: number;\n        readonly lg: number;\n    };\n    readonly input: number;\n    readonly icon: {\n        readonly sm: number;\n        readonly md: number;\n        readonly lg: number;\n    };\n    readonly maxFontScale: number;\n}",
          "sourceDocumentation": "Component dimension tokens — the map adopted in §0 (A). It converges what used to\nbe scattered module literals: the predecessor's buttonSizes (36/44/52), the input\nminHeight of 48, the icon sizes, and the\nEMPTY_STATE_MAX_FONT_SIZE_MULTIPLIER constant."
        },
        {
          "name": "ThemeOverrides",
          "slug": "theme-overrides",
          "kind": "type",
          "declaration": "/**\n * Two-level partial overrides (group then key). A typography role is replaced\n * whole as a TypeRole — three-level DeepPartial was rejected because the cost of\n * memorizing the merge rules outweighed the benefit (§11).\n * Key level is `| undefined` as well, so an EOP consumer can assemble overrides\n * conditionally (undefined values are skipped during the merge).\n */\ntype ThemeOverrides = {\n    readonly [G in keyof ThemeTokens]?: {\n        readonly [K in keyof ThemeTokens[G]]?: ThemeTokens[G][K] | undefined;\n    } | undefined;\n};",
          "sourceDocumentation": "Two-level partial overrides (group then key). A typography role is replaced\nwhole as a TypeRole — three-level DeepPartial was rejected because the cost of\nmemorizing the merge rules outweighed the benefit (§11).\nKey level is `| undefined` as well, so an EOP consumer can assemble overrides\nconditionally (undefined values are skipped during the merge)."
        },
        {
          "name": "ThemePair",
          "slug": "theme-pair",
          "kind": "interface",
          "declaration": "/** A light/dark pair — the type guarantees both schemes are complete (§3.3). It exists only through createThemes. */\ninterface ThemePair extends Brand<'ThemePair'> {\n    readonly light: Theme;\n    readonly dark: Theme;\n}",
          "sourceDocumentation": "A light/dark pair — the type guarantees both schemes are complete (§3.3). It exists only through createThemes."
        },
        {
          "name": "ThemeRadius",
          "slug": "theme-radius",
          "kind": "interface",
          "declaration": "interface ThemeRadius {\n    readonly none: 0;\n    readonly sm: number;\n    readonly md: number;\n    readonly lg: number;\n    readonly pill: number;\n}"
        },
        {
          "name": "ThemeSpacing",
          "slug": "theme-spacing",
          "kind": "interface",
          "declaration": "interface ThemeSpacing {\n    readonly none: 0;\n    readonly xs: number;\n    readonly sm: number;\n    readonly md: number;\n    readonly lg: number;\n    readonly xl: number;\n    readonly xxl: number;\n    readonly xxxl: number;\n}"
        },
        {
          "name": "ThemeTokens",
          "slug": "theme-tokens",
          "kind": "interface",
          "declaration": "interface ThemeTokens {\n    readonly colors: ThemeColors;\n    readonly spacing: ThemeSpacing;\n    readonly radius: ThemeRadius;\n    readonly typography: ThemeTypography;\n    readonly elevation: ThemeElevation;\n    readonly metrics: ThemeMetrics;\n    readonly breakpoints: ThemeBreakpoints;\n}"
        },
        {
          "name": "ThemeTypography",
          "slug": "theme-typography",
          "kind": "interface",
          "declaration": "interface ThemeTypography {\n    readonly caption: TypeRole;\n    readonly label: TypeRole;\n    readonly button: TypeRole;\n    readonly body: TypeRole;\n    readonly title: TypeRole;\n    readonly heading: TypeRole;\n    /**\n     * The role reserved for navigation tab labels in underline Tabs. The 16px/'600'\n     * pair inherited from the predecessor matches no other role, so it was promoted\n     * to a role of its own (an adversarial-review finding). Same principle as the\n     * §0 decision to keep tab-only color tokens (tabActive/tabInactive).\n     */\n    readonly tab: TypeRole;\n    /** The app's custom font family. Falls back to the system font when omitted. */\n    readonly fontFamily?: string | undefined;\n}"
        },
        {
          "name": "TypeRole",
          "slug": "type-role",
          "kind": "interface",
          "declaration": "interface TypeRole {\n    readonly fontSize: number;\n    readonly lineHeight: number;\n    readonly fontWeight: FontWeight;\n}"
        }
      ]
    }
  ]
}
