@cartridge-engine/keyboard-engine
    Preparing search index...

    Interface PageKeyboardLayer

    Per-layer keyboard state: bindings, transparent keys, stop keys, and focus targets.

    interface PageKeyboardLayer {
        actionKeysMap: Map<string, string[]>;
        bindings: PageBoundKeyEntry[];
        currentFocusIds: CurrentFocusId[];
        defaultFocusOrder: string[];
        defaultTargets: Map<string, PageFocusTarget>;
        focusTargets: Map<string, FocusTargetsMap<PageFocusTarget>>;
        globalKeyOverrides: Set<string>;
        pendingSequence: PendingSequence | null;
        penetrationKeys: KeyRule[];
        sequences: Map<string, PageSequenceBinding[]>;
        stoppedKeys: KeyRule[];
    }

    Hierarchy (View Summary)

    Index
    actionKeysMap: Map<string, string[]>

    Maps action IDs to the normalized keys that trigger them (screen-level, excludes focus targets).

    bindings: PageBoundKeyEntry[]

    Registered screen-level key bindings (evaluation order).

    currentFocusIds: CurrentFocusId[]

    The currently active focus targets, each with its id and the group (or the default symbol) it came from.

    defaultFocusOrder: string[]

    Order in which the default group's focus targets are cycled during automatic focus switching.

    defaultTargets: Map<string, PageFocusTarget>

    Default focus layer: focus targets not registered in a named group are stored here. Like named groups, this group allows only one active focus.

    focusTargets: Map<string, FocusTargetsMap<PageFocusTarget>>

    Focus targets grouped by named focus group: the key is the group name and the value is the group's target map plus activation order. Different groups can be active simultaneously within a layer, but each group can have only one active focus.

    globalKeyOverrides: Set<string>

    Keys from globalKeys that this layer has overridden.

    pendingSequence: PendingSequence | null

    The layer's pending sequence, or null when none is waiting — only one waiting sequence per layer is allowed.

    penetrationKeys: KeyRule[]

    Key rules marked as transparent at the screen level (pass-through).

    sequences: Map<string, PageSequenceBinding[]>

    Registered sequence bindings, keyed by their first key. When that key is pressed, the matching SequenceBinding is used to create a PendingSequence on this layer.

    stoppedKeys: KeyRule[]

    Key rules stopped at the screen level (propagation barrier).