@revenuecat/purchases-ui-js
Version:
Web components for Paywalls. Powered by RevenueCat
57 lines (56 loc) • 1.89 kB
TypeScript
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<TabProps>;
}
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<TabsProps>;
}
export interface TabControlProps extends BaseComponent {
type: "tab_control";
overrides?: Overrides<TabControlProps>;
}
export interface TabControlButtonProps extends BaseComponent {
type: "tab_control_button";
tab_id: string;
stack: StackProps;
overrides?: Overrides<TabControlButtonProps>;
/**
* @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<TabControlToggleProps>;
}
export {};