Files
example/web/panels.ts
T
pastilhasandClaude Opus 5 176fb19950 example, extracted from the platform into its own repository
The reference plugin — deliberately the smallest thing that is still a real
plugin, and what EXTRACTING-A-PLUGIN.md sends people to read.

It leaves the platform tree with music and offscale, so that `plugins/` in the
platform repository holds documentation and nothing else. That is the point of
the move: a directory that contains both tracked source and untracked installs
is one where "is this mine or is this installed" has no answer you can see.

Same extraction as the two before it: source only, no history. The platform's
history still holds every commit that shaped this.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 18:17:03 +00:00

17 lines
927 B
TypeScript

import { Puzzle, ListTree } from 'lucide-react';
import type { AppRegistryMeta } from 'officerdev';
import { ExampleOverview } from './ExampleOverview';
import { ExampleDetail } from './ExampleDetail';
// The panels this plugin contributes. AT LEAST ONE, or discovery refuses the plugin.
//
// A plugin never renders a screen — the shell renders `WorkspaceView` around these, arranged by
// `layout.ts`. That is what makes "every plugin route is a Workspace" a property of the shape rather than
// a rule someone has to remember.
//
// `availableOnPanel: false` keeps them off the generic panel picker: they belong to this plugin's screen.
export const appRegistryMetas: AppRegistryMeta[] = [
{ key: 'example-overview', name: 'Overview', icon: Puzzle, component: ExampleOverview, availableOnPanel: false },
{ key: 'example-detail', name: 'Detail', icon: ListTree, component: ExampleDetail, availableOnPanel: false },
];