import type { BorderType, ShadowType, ShapeType, SizeType, Spacing } from ".."; import type { Background } from "../background"; import type { BaseComponent } from "../base"; import type { ColorGradientScheme } from "../colors"; import type { Overrides } from "../overrides"; import type { StackProps } from "./stack"; type TabControlType = "buttons" | "toggle"; export interface TabControl { type: TabControlType; stack: StackProps; } export interface TabProps extends BaseComponent { type: "tab"; stack: StackProps; overrides?: Overrides; } export interface TabsProps extends BaseComponent { type: "tabs"; visible?: boolean | null; size: SizeType; padding: Spacing; margin: Spacing; control: TabControl; tabs: TabProps[]; default_tab_id: string; background?: Background | null; shape?: ShapeType | null; border?: BorderType | null; shadow?: ShadowType | null; overrides?: Overrides; } export interface TabControlProps extends BaseComponent { type: "tab_control"; overrides?: Overrides; } export interface TabControlButtonProps extends BaseComponent { type: "tab_control_button"; tab_id: string; stack: StackProps; overrides?: Overrides; /** * @deprecated Use `tab_id` instead. This stores the index of the tab the control is related to, * we'll utilize the `tab_id` field instead but need this for backwards compatibility */ tab_index: number; } export interface TabControlToggleProps extends BaseComponent { type: "tab_control_toggle"; default_value: boolean; thumb_color_on: ColorGradientScheme; thumb_color_off: ColorGradientScheme; track_color_on: ColorGradientScheme; track_color_off: ColorGradientScheme; overrides?: Overrides; } export {};