SheetXL - v0.8.0-beta.9+sites.210.e2d420901
    Preparing search index...

    Function PaneScopeProvider

    • Per-pane command layer stack (the GridSurface.wrapPane seam).

      Each pane gets a base scope (pane:<anchor>, child of the sheet scope) plus a Command.LayerActivation — its z-ordered command-parent chain. The per-pane layer components (selection, clipboard, the cell editor) each register their own scope into that chain at their layer's real visual z (via a declarative CommandScopeProvider spec order), so getAnchor() is the stack top and a key resolves top→down the z-stack then pane → sheet → app.

      The grid owns no resolver (design/COMMAND-DESIGN.md §"Layered resolver"). This provider does exactly one thing: it records Stage element → this pane's LayerActivation in the tree's shared region index — so the studio focus tracker anchors at the focused pane's live stack top (the LayerActivation is an AnchorSource, read live via getAnchor(); mechanism 2). The Stage is the layers' DOM parent, but the anchor is the deepest layer — that inversion is why the pane maps its Stage to the chain, not to the base. A pane pushes nothing into any tracker: the tracker's cold-start value is the consumer's one-shot INITIAL anchor (the studio resolves it with the loaded grid's center pane, pre-reveal), which resolves back through this same index like a real focus would.

      Key delivery is the studio's synthetic key seam, not a per-pane terminal. A grid keydown is a synthetic React event on the Stage; the Stage fans it across its z-ordered responder chain (a layer consumes by stopPropagation), and whatever no layer consumed keeps bubbling up the React tree to the app-root seam (CommandRootProvider's CommandAnchorProvider keyBindings='synthetic'), which hands it to the one studio resolver at the same focus-within anchor. So there is a single resolver-delivery seam — the pane no longer mounts its own terminal key tap (design/COMMAND-DESIGN.md §"Reduce the two key-dispatch seams to one"). The Stage responder chain still runs (layers need z-ordered first crack); only the redundant resolver hand-off at the bottom of it is gone.

      Rendered once per pane (≤4 with freeze) — the per-pane duplication is by design (each pane's layers read their own pane).

      Parameters

      • __namedParameters: { children: ReactNode; pane: IGridPane }

      Returns ReactNode

    Index
    displayName: string