A draggable menu item declared inside a layout zone.

interface LayoutItemConfig {
    collapsed?: boolean;
    icon?: string;
    id?: string;
    kind: string;
    label?: string;
    module?: AsukaInlineLayoutModuleDefinition;
    mountTarget?: string;
    order?: number;
    priority?: number;
    renderMode?: "inline" | "portal";
    requiredCapabilities?: string[];
    supportedEngines?: AsukaRenderEngineKind[];
    type?: OverlayType;
}

Properties

collapsed?: boolean

Default collapsed state when the item is rendered inline or in a panel.

icon?: string

Icon name, URL or serialized SVG token.

id?: string

Unique item id used for drag, persistence and programmatic updates.

kind: string

Module id to open when clicking the item.

label?: string

Small label shown under the icon (Figma-like).

Optional custom module registered automatically from this layout item. The module id is derived from kind; this executable definition is never copied into the serializable runtime layout state.

mountTarget?: string

Optional DOM selector used as the portal/mount target for this module overlay.

order?: number

Visual order inside the parent zone.

priority?: number

Responsive priority. Lower values stay visible first on compact mobile navigation.

renderMode?: "inline" | "portal"

Render mode override for panel-like zones or persistent page portals.

requiredCapabilities?: string[]

Optional menu-level capability filter. When omitted, the module definition controls capability compatibility.

supportedEngines?: AsukaRenderEngineKind[]

Optional menu-level engine filter. When omitted, the module definition controls compatibility.

Display container used when the module is opened.