import type { BorderType, ShadowType, ShapeType, SizeType, Spacing } from ".."; import type { Dimension } from "../alignment"; import type { Background } from "../background"; import type { StackProps } from "./stack"; import type { BaseComponent } from "../base"; import type { Overrides } from "../overrides"; /** * One member of a group. Re-provides progress to its own stack, remapped * from the ambient Loader's 0–1 progress onto this item's own 0–1 span. */ export interface LoaderGroupItemProps extends BaseComponent { type: "loader_group_item"; visible?: boolean | null; /** 0–100; `ends_at` must be greater. */ starts_at: number; ends_at: number; stack: StackProps; overrides?: Overrides; } /** * Lays out its items like a stack — each animates on its own remapped span * of the ambient Loader's progress. */ export interface LoaderGroupProps extends BaseComponent { type: "loader_group"; visible?: boolean | null; components: LoaderGroupItemProps[]; size: SizeType; dimension: Dimension; spacing: number; margin: Spacing; padding: Spacing; background: Background | null; border: BorderType | null; shape: ShapeType | null; shadow: ShadowType | null; overrides?: Overrides; }