Public custom module definition used by registerModule.

interface AsukaModuleDefinition {
    action?: ((context: AsukaModuleContext) => void | Promise<void>);
    displayMode?: ModuleDisplayMode;
    group?: string;
    icon?: string;
    id: string;
    isAvailable?: boolean;
    keepMounted?: boolean;
    label?: string;
    licenseFeature?: string;
    loader?: AsukaModuleLoader;
    mountTarget?: string;
    render?: AsukaModuleComponent;
    requiredCapabilities?: string[];
    requiresView?: boolean;
    supportedEngines?: AsukaRenderEngineKind[];
    title?: string;
}

Properties

action?: ((context: AsukaModuleContext) => void | Promise<void>)

Optional action-only module triggered without opening a UI container.

displayMode?: ModuleDisplayMode

Preferred display mode.

group?: string

Optional grouping used by higher-level UIs.

icon?: string

Icon name or serialized icon token.

id: string

Stable module id used by layout blocks and runtime APIs.

isAvailable?: boolean

Whether the module is currently available.

keepMounted?: boolean

Keep the module mounted when it closes so internal state is preserved.

label?: string

Human-readable sidebar/menu label.

licenseFeature?: string

Optional premium gate evaluated against the current runtime license.

Lazy loader used to resolve the module implementation on demand.

mountTarget?: string

DOM selector or element id used as a mount target override.

Module render function.

requiredCapabilities?: string[]

Optional high-level engine capabilities required by this module.

requiresView?: boolean

Whether this module needs at least one view/canvas to be usable. Defaults to true except for view-independent core modules.

supportedEngines?: AsukaRenderEngineKind[]

Rendering engines supported by this module. Defaults to ['fabric'] when omitted.

title?: string

Optional overlay title override.