/** Tabs — self-managing; the model gives tabs + panels, no state plumbing (W2). * * V4 (one component family): this absorbed the retired tree primitive's WIRE * contract, because the plan skeleton emits tabs as a TREE node and a wire * attribute cannot hold an element. So a tab item may be a plain string or * `{value,label}`, `value` picks the initial tab by value, and PANELS ARRIVE AS CHILDREN in tab order. * The code-only `{label, content}` item still works; children win when both * are present. */ import { Tabs as Base } from "@base-ui/react/tabs"; import { type ComponentProps, type ReactNode } from "react"; import { type KitStyled, type KitEngine, type KitRendered } from "../tokens.js"; export type TabItem = string | number | { value?: string | number; label?: string | number; disabled?: boolean; /** Code-only inline panel. Wire trees nest panels as children instead. */ content?: ReactNode; }; interface TabsOwnProps extends KitStyled { tabs: TabItem[]; /** The initially selected tab's `value` (the wire dialect's selector). */ value?: string | number; /** Index of the initially selected tab. Ignored when `value` names a tab. */ defaultIndex?: number; /** One panel per tab, in tab order. Wins over an item's `content`. */ children?: ReactNode; /** Kit elements at the end of the tab row — what the whole set does. */ actions?: ReactNode; } /** Plus any Base UI `` prop, handed straight to the tab set. */ export type TabsProps = TabsOwnProps & KitEngine, TabsOwnProps>; export declare function Tabs({ tabs, value, defaultIndex, actions, children, style, pending, ...engine }: TabsProps & KitRendered): import("react").JSX.Element; export {};