Explorer panel (unified file tree over N sources)
Generated from
pattern-library/registry.json— do not edit by hand; change the registry and runbun run patterns:build.
Index card — the docs below are the canonical explanation; deep-tier pattern pages additionally carry invariants and emulation notes.
Category: Desk Workspace · Tier: light · Maturity: proven (verified 2026-08-20 @ 1a130d67) · Risk: medium — mutates posts, assets, and files through their APIs
One recursive tree over heterogeneous content APIs: adapters normalize every source into an ExplorerNode with a capability set, and the context menu, touch kebab, drag-and-drop, and inline rename/delete are all driven by capabilities — not per-type branching.
When to use: Use when a file-browser UI must merge several backends (posts, assets, files) and every row action should be declaratively controlled per item type.
Docs
docs/blueprint/desk/README.md— § Explorer Panel — ExplorerNode, adapters, capability-driven menu (GitHub · GitLab)
Code
src/lib/components/desk/panels/explorer/(GitHub · GitLab)src/lib/components/desk/panels/explorer/node.ts— ExplorerNode + NodeCapability — the unifying interface (GitHub · GitLab)src/lib/components/desk/panels/explorer/context-menu-items.ts— Capability-driven menu builder shared by right-click menu and touch kebab (GitHub · GitLab)
Proof
/desk(app route, no showcase)
Depends on
Machine-readable record: desk-explorer in pattern-library/registry.json.