zudo-panel-designer docs
GitHub repository

Type to search...

to open search from anywhere

Monorepo Layout

zudo-panel-designer is a pnpm workspace with three published-in-place packages plus this documentation sub-project.

Packages

PathPackage nameWhat belongs here
packages/core@zpd/coreThe document model: DocState, Layer types, geometry, layer ops, undo/redo history, the PanelConfig serializer/parser. No UI, no DOM.
packages/patterns@zpd/patternsPanel pattern definitions (e.g. dot-grid, diagonal stripes) consumed by the app's pattern picker.
packages/app@zpd/app (private)The Vite + React one-page editor app: canvas rendering, tools, dialogs, the window.__zpdTest e2e bridge.
doc/— (isolated sub-project)This documentation site. Not part of the root pnpm workspace — it has its own pnpm-workspace.yaml and pnpm-lock.yaml so its dependency resolution never reaches the repo root.

packages/app depends on @zpd/core and @zpd/patterns as workspace:* dependencies. @zpd/core has no dependency on @zpd/patterns or the app — notably, PanelConfig's patternType field is kept as opaque string data in core rather than validated against the patterns registry, precisely to avoid that dependency direction (see PanelConfig Format).

Root-level configuration

Root config files (eslint.config.js, .prettierignore, vitest.config.ts, tsconfig references) apply to packages/* only. doc/ is deliberately excluded from all of them — it lints, formats, type-checks, and tests itself independently, and root pnpm -r scripts (which iterate the pnpm workspace) never touch it since it isn't a member of the root workspace.