A detached overlay surface. It is also a UIContainer for adding controls.

interface UIOverlayWindow {
    CreateOverlay: (options?: UIOverlayOptions) => UIOverlayWindow;
    Clear: () => void;
    AddText: (text: string, options?: UIElementOptions) => UIElement;
    AddProgress: (options?: UIProgressOptions) => DisplayValueWrapper<number>;
    AddBox: (
        optionsOrBuilder?: UIBoxOptions | (box: ContainerWrapper) => void,
        builder?: (box: ContainerWrapper) => void,
    ) => ContainerWrapper;
    AddSpacer: (options?: UISpacerOptions) => UIElement;
    AddButton: (text: string, onClick: () => void) => UIElement;
    AddSlider: (
        id: string,
        min: number,
        max: number,
        label: string,
    ) => ValueWrapper<number>;
    AddTextInput: (
        id: string,
        label: string,
        defaultText?: string,
    ) => ValueWrapper<string>;
    AddToggle: (id: string, label: string) => ValueWrapper<boolean>;
    AddDropdown: (
        id: string,
        label: string,
        options: string[],
    ) => ValueWrapper<string>;
    AddTextArea: (
        id: string,
        label: string,
        defaultText?: string,
    ) => ValueWrapper<string>;
    AddColorPicker: (
        id: string,
        label: string,
        defaultColor?: string,
    ) => ValueWrapper<string>;
    AddHotkeyCapture: (
        id: string,
        label: string,
        defaultBind?: string,
    ) => HotkeyCaptureWrapper;
    AddFilePicker: (
        id: string,
        label: string,
        options?: { filters?: string[] },
    ) => ValueWrapper<string>;
    AddDirectoryPicker: (id: string, label: string) => ValueWrapper<string>;
    AddListBox: (
        id: string,
        label: string,
        items?: string[],
    ) => ValueWrapper<string[]>;
    AddDataGrid: (id: string, columns: DataGridColumn[]) => DataGridWrapper;
    AddTabGroup: () => TabGroupWrapper;
    AddRow: (builder?: (row: ContainerWrapper) => void) => ContainerWrapper;
    AddColumn: (builder?: (col: ContainerWrapper) => void) => ContainerWrapper;
    Show: (options?: UIOverlayOptions) => void;
    Hide: () => void;
    Destroy: () => void;
    SetBounds: (
        bounds: { x?: number; y?: number; width?: number; height?: number },
    ) => void;
    Move: (x: number, y: number) => void;
    Resize: (width: number, height: number) => void;
    SetWindowOptions: (options: UIOverlayOptions) => void;
    SetStyle: (style: Record<string, unknown>) => void;
    OnTargetLost: (callback: () => void) => void;
}

Hierarchy (View Summary)

Properties

CreateOverlay: (options?: UIOverlayOptions) => UIOverlayWindow

Creates a detached overlay or utility window. Requires the overlay permission.

Clear: () => void

Removes all child elements from this container.

AddText: (text: string, options?: UIElementOptions) => UIElement

Adds a read-only text label. Not persisted.

AddProgress: (options?: UIProgressOptions) => DisplayValueWrapper<number>

Adds a display-only progress bar. Not persisted.

AddBox: (
    optionsOrBuilder?: UIBoxOptions | (box: ContainerWrapper) => void,
    builder?: (box: ContainerWrapper) => void,
) => ContainerWrapper

Adds a styled layout box. Pass a builder function to populate it immediately. Not persisted.

AddSpacer: (options?: UISpacerOptions) => UIElement

Adds empty spacing between nearby controls. Not persisted.

AddButton: (text: string, onClick: () => void) => UIElement

Adds a clickable button. Not persisted.

AddSlider: (
    id: string,
    min: number,
    max: number,
    label: string,
) => ValueWrapper<number>

Adds a numeric range slider. Value is persisted by id and restored on next run.

AddTextInput: (
    id: string,
    label: string,
    defaultText?: string,
) => ValueWrapper<string>

Adds a single-line text input. Value is persisted by id and restored on next run. defaultText is only used when no saved value exists.

AddToggle: (id: string, label: string) => ValueWrapper<boolean>

Adds a boolean toggle switch. Value is persisted by id and restored on next run.

AddDropdown: (
    id: string,
    label: string,
    options: string[],
) => ValueWrapper<string>

Adds a dropdown selector. Value is persisted by id and restored on next run.

AddTextArea: (
    id: string,
    label: string,
    defaultText?: string,
) => ValueWrapper<string>

Adds a multi-line text area. Value is persisted by id and restored on next run. defaultText is only used when no saved value exists.

AddColorPicker: (
    id: string,
    label: string,
    defaultColor?: string,
) => ValueWrapper<string>

Adds a color picker. Value is persisted by id and restored on next run. defaultColor is only used when no saved value exists.

AddHotkeyCapture: (
    id: string,
    label: string,
    defaultBind?: string,
) => HotkeyCaptureWrapper

Adds a hotkey capture field. The captured keyboard, mouse, or HID trigger is persisted by id and restored on next run, including its active binding.

AddFilePicker: (
    id: string,
    label: string,
    options?: { filters?: string[] },
) => ValueWrapper<string>

Adds a file picker dialog button. Selected path is persisted by id and restored on next run.

AddDirectoryPicker: (id: string, label: string) => ValueWrapper<string>

Adds a directory picker dialog button. Selected path is persisted by id and restored on next run.

AddListBox: (
    id: string,
    label: string,
    items?: string[],
) => ValueWrapper<string[]>

Adds a multi-select list box. Selected items are persisted by id and restored on next run.

AddDataGrid: (id: string, columns: DataGridColumn[]) => DataGridWrapper

Adds a data grid with typed columns. Row data is persisted by id and restored on next run.

AddTabGroup: () => TabGroupWrapper

Adds a tabbed container group. Not persisted.

AddRow: (builder?: (row: ContainerWrapper) => void) => ContainerWrapper

Adds a horizontal row layout container. Children are arranged left-to-right. Not persisted.

AddColumn: (builder?: (col: ContainerWrapper) => void) => ContainerWrapper

Adds a vertical column layout container. Children are stacked top-to-bottom. Not persisted.

Show: (options?: UIOverlayOptions) => void

Shows the overlay.

Hide: () => void

Hides the overlay.

Destroy: () => void

Destroys the overlay window.

SetBounds: (
    bounds: { x?: number; y?: number; width?: number; height?: number },
) => void

Moves and/or resizes the overlay.

Move: (x: number, y: number) => void

Moves the overlay.

Resize: (width: number, height: number) => void

Resizes the overlay.

SetWindowOptions: (options: UIOverlayOptions) => void

Updates overlay window options.

SetStyle: (style: Record<string, unknown>) => void

Merges renderer style metadata into the overlay.

OnTargetLost: (callback: () => void) => void

Registers a callback that fires when a followed target window disappears.