import type { JSX, ValidComponent } from "@solidjs/web"; import type { BaseUIComponentProps, NativeButtonProps } from "../../internals/types.js"; import type { Orientation } from "../../internals/types.js"; import { type TabsTabValue } from "../tabs-root-context.js"; export interface TabsTabState { /** Whether the tab is disabled (ignored by pointer + keyboard activation). */ disabled: boolean; /** Whether the tab is currently the selected one. */ active: boolean; /** Layout orientation (inherited from the root). */ orientation: Orientation; } export interface TabsTabProps extends NativeButtonProps, Omit, "value"> { /** Tag/component to render. Defaults to `"button"`. */ as?: ValidComponent; /** * The value this tab represents. Panels with the matching `value` render * when this tab is active. May be any type — numbers, strings, objects, * functions, symbols. */ value: TabsTabValue; /** * Whether the tab should ignore user interaction. Disabled tabs can still * receive keyboard focus (per WAI-ARIA guidance), but clicks / Space / * Enter are a no-op. * @default false */ disabled?: boolean | undefined; } /** * A single selectable tab button. Renders a `