Перейти к основному содержимому

Composed panel menus (one array, desktop kebab + mobile sheet)

Generated from pattern-library/registry.json — do not edit by hand; change the registry and run bun 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: low — client-side menu state

A context-scoped registry where each panel instance registers its command menus, composed with a dock-supplied Panel floor menu and View menu into one array that the desktop kebab and the mobile commands sheet both render.

When to use: Use when per-panel commands must appear identically on multiple surfaces (desktop menus, mobile sheets, shortcut handlers) without each surface maintaining its own copy.

Docs

  • docs/blueprint/desk/README.md — § Focus Architecture (registries are followers) + § Mobile Chrome (menu parity rule) (GitHub · GitLab)

Code

  • src/lib/components/desk/panel-menus.state.svelte.ts — Context-scoped registry keyed by panel instance id — never module-level (GitHub · GitLab)
  • src/lib/components/desk/compose-menus.ts — composePanelMenus(): registered menus → Panel floor menu → View menu; drops empty registered menus (GitHub · GitLab)
  • src/lib/components/desk/view-menu.ts — buildViewMenu(actions) — desktop-only; the mobile sheet composes without it (the panels drawer projects View on touch) (GitHub · GitLab)

Tests

  • src/lib/components/desk/compose-menus.test.ts (GitHub · GitLab)

Proof

  • /desk (app route, no showcase)

Depends on


Machine-readable record: desk-panel-menus in pattern-library/registry.json.

← Back to Pattern Library

Думаете, этот паттерн можно сделать лучше? Расскажите как.

Оставить отзыв