/** * Configuration options for {@link AcApProgress}. */ export interface AcApProgressOptions { /** * Host element where overlay is mounted. * Use the CAD view container so mask is scoped to canvas area. * @defaultValue `document.body` */ host?: HTMLElement; /** * Size of the circular loader (width & height). * Accepts any valid CSS length value (e.g. "48px", "3rem", "25%"). * @defaultValue `"48px"` */ size?: string; /** * Width of the spinner border stroke. * Should be a valid CSS length value. * @defaultValue `"5px"` */ borderWidth?: string; /** * Color of the animated spinner arc. * Accepts any valid CSS color format. * @defaultValue `"#0b84ff"` */ color?: string; /** * Whether a fullscreen overlay background is shown. * @defaultValue `true` */ overlay?: boolean; /** * Background color used when {@link overlay} is enabled. * @defaultValue `"rgba(0,0,0,0.18)"` */ overlayColor?: string; /** * Optional message text displayed under the spinner. * Hidden automatically if empty or undefined. * @defaultValue `""` */ message?: string; } /** * Displays a centered infinite circular loading indicator with optional text. * * Features: * - Framework-free — pure TypeScript & DOM * - Auto-injects required CSS once per document * - Shows/hides without removing DOM * - Dynamically update message text * - Safe for multiple instances * * @example * ```ts * const progress = new AcApProgress({ message: "Loading data…" }); * progress.show(); * * setTimeout(() => { * progress.setMessage("Almost done…"); * }, 1500); * * // progress.hide(); * // progress.destroy(); * ``` */ export declare class AcApProgress { /** * ID assigned to the injected `