Extract SeeCode diagram renderer for Chopin #405MergedMaggieAppletonmerged 11 commits intomainfromrefs/pull/405/headConversationFiles changed150 files changed+14744-7StackedSplit.github/workflows/ci.yml+3 −0AGENTS.md+1 −0Dockerfile+1 −0apps/web/package.json+1 −0apps/web/src/diagram-gallery/page.tsx+226 −0apps/web/src/diagram-gallery/route.ts+3 −0apps/web/src/diagram-gallery/styles.css+274 −0apps/web/src/main.tsx+3 −0apps/web/src/tokens.test.ts+2 −0bun.lock+17 −0docs/architecture.md+4 −0docs/superpowers/plans/2026-10-08-seecode-rendering-module.md+60 −0e2e/diagram-gallery/gallery.e2e.ts+171 −0e2e/diagram-gallery/playwright.config.ts+37 −0e2e/playwright.config.ts+5 −1package.json+1 −0packages/diagrams/LICENSE+21 −0packages/diagrams/PROVENANCE.md+24 −0packages/diagrams/README.md+34 −0packages/diagrams/package.json+38 −0packages/diagrams/src/core/motion.d.mts+1 −0packages/diagrams/src/core/motion.mjs+83 −0packages/diagrams/src/core/render/charts/bar.mjs+379 −0packages/diagrams/src/core/render/charts/blocks.mjs+316 −0packages/diagrams/src/core/render/charts/line.mjs+293 −0packages/diagrams/src/core/render/charts/radial.mjs+192 −0packages/diagrams/src/core/render/charts/sankey.mjs+210 −0packages/diagrams/src/core/render/charts/scale.mjs+37 −0packages/diagrams/src/core/render/charts/scatter.mjs+165 −0packages/diagrams/src/core/render/charts/wardley.mjs+160 −0packages/diagrams/src/core/render/graph/graph.mjs+665 −0packages/diagrams/src/core/render/graph/route.mjs+399 −0packages/diagrams/src/core/render/lanes/gantt.mjs+212 −0packages/diagrams/src/core/render/lanes/journey.mjs+144 −0packages/diagrams/src/core/render/lanes/sequence.mjs+292 −0packages/diagrams/src/core/render/lanes/time.mjs+89 −0packages/diagrams/src/core/render/lanes/timeline.mjs+174 −0packages/diagrams/src/core/render/shared/edges.mjs+201 −0packages/diagrams/src/core/render/shared/legend.mjs+91 −0packages/diagrams/src/core/render/shared/nodes.mjs+286 −0packages/diagrams/src/core/render/structure/common.mjs+71 −0packages/diagrams/src/core/render/structure/fishbone.mjs+110 −0packages/diagrams/src/core/render/structure/kanban.mjs+125 −0packages/diagrams/src/core/render/structure/layers.mjs+81 −0packages/diagrams/src/core/render/structure/loop.mjs+109 −0packages/diagrams/src/core/render/structure/matrix.mjs+114 −0packages/diagrams/src/core/render/structure/nested.mjs+138 −0packages/diagrams/src/core/render/structure/process.mjs+63 −0packages/diagrams/src/core/render/structure/pyramid.mjs+80 −0packages/diagrams/src/core/render/structure/quadrant.mjs+126 −0packages/diagrams/src/core/render/structure/storymap.mjs+100 −0packages/diagrams/src/core/render/structure/tree.mjs+149 −0packages/diagrams/src/core/render/structure/venn.mjs+90 −0packages/diagrams/src/core/schema.d.mts+9 −0packages/diagrams/src/core/schema.mjs+98 −0packages/diagrams/src/core/schemas.ts+62 −0packages/diagrams/src/core/schemas/bar.schema.json+207 −0packages/diagrams/src/core/schemas/common.schema.json+118 −0packages/diagrams/src/core/schemas/fishbone.schema.json+47 −0packages/diagrams/src/core/schemas/gantt.schema.json+93 −0packages/diagrams/src/core/schemas/graph.schema.json+291 −0packages/diagrams/src/core/schemas/heatmap.schema.json+52 −0packages/diagrams/src/core/schemas/journey.schema.json+70 −0packages/diagrams/src/core/schemas/kanban.schema.json+75 −0packages/diagrams/src/core/schemas/layers.schema.json+54 −0packages/diagrams/src/core/schemas/line.schema.json+68 −0packages/diagrams/src/core/schemas/loop.schema.json+58 −0packages/diagrams/src/core/schemas/matrix.schema.json+47 −0packages/diagrams/src/core/schemas/nested.schema.json+55 −0packages/diagrams/src/core/schemas/polar.schema.json+65 −0packages/diagrams/src/core/schemas/process.schema.json+53 −0packages/diagrams/src/core/schemas/pyramid.schema.json+54 −0packages/diagrams/src/core/schemas/quadrant.schema.json+101 −0packages/diagrams/src/core/schemas/radar.schema.json+51 −0packages/diagrams/src/core/schemas/sankey.schema.json+60 −0packages/diagrams/src/core/schemas/scatter.schema.json+97 −0packages/diagrams/src/core/schemas/sequence.schema.json+87 −0packages/diagrams/src/core/schemas/stages.schema.json+312 −0packages/diagrams/src/core/schemas/story-map.schema.json+90 −0packages/diagrams/src/core/schemas/timeline.schema.json+86 −0packages/diagrams/src/core/schemas/tree.schema.json+36 −0packages/diagrams/src/core/schemas/treemap.schema.json+61 −0packages/diagrams/src/core/schemas/venn.schema.json+72 −0packages/diagrams/src/core/schemas/wardley.schema.json+60 −0packages/diagrams/src/core/schemas/waterfall.schema.json+61 −0packages/diagrams/src/core/svg.mjs+89 −0packages/diagrams/src/core/text.mjs+75 −0packages/diagrams/src/core/tokens.mjs+2 −0packages/diagrams/src/core/types.d.mts+12 −0packages/diagrams/src/core/types.mjs+110 −0packages/diagrams/src/diagram.tsx+368 −0packages/diagrams/src/fixtures/index.ts+90 −0packages/diagrams/src/fixtures/specs/charts/bar.json+14 −0packages/diagrams/src/fixtures/specs/charts/heatmap.json+49 −0packages/diagrams/src/fixtures/specs/charts/line.json+57 −0packages/diagrams/src/fixtures/specs/charts/polar.json+56 −0packages/diagrams/src/fixtures/specs/charts/radar.json+49 −0packages/diagrams/src/fixtures/specs/charts/sankey.json+59 −0packages/diagrams/src/fixtures/specs/charts/scatter.json+36 −0packages/diagrams/src/fixtures/specs/charts/treemap.json+39 −0packages/diagrams/src/fixtures/specs/charts/waterfall.json+33 −0packages/diagrams/src/fixtures/specs/data-platform/dp-integration.json+89 −0packages/diagrams/src/fixtures/specs/data-platform/dp-security-matrix.json+50 −0packages/diagrams/src/fixtures/specs/data-platform/medallion.json+51 −0packages/diagrams/src/fixtures/specs/process/data-flow.json+83 −0packages/diagrams/src/fixtures/specs/process/flowchart.json+88 −0packages/diagrams/src/fixtures/specs/process/gantt.json+52 −0packages/diagrams/src/fixtures/specs/process/journey.json+53 −0packages/diagrams/src/fixtures/specs/process/kanban.json+49 −0packages/diagrams/src/fixtures/specs/process/loop.json+16 −0packages/diagrams/src/fixtures/specs/process/process.json+27 −0packages/diagrams/src/fixtures/specs/process/sequence.json+84 −0packages/diagrams/src/fixtures/specs/process/state.json+92 −0packages/diagrams/src/fixtures/specs/process/story-map.json+74 −0packages/diagrams/src/fixtures/specs/process/swimlane.json+79 −0packages/diagrams/src/fixtures/specs/process/timeline.json+50 −0packages/diagrams/src/fixtures/specs/structure/fishbone.json+37 −0packages/diagrams/src/fixtures/specs/structure/layers.json+43 −0packages/diagrams/src/fixtures/specs/structure/nested.json+24 −0packages/diagrams/src/fixtures/specs/structure/org-chart.json+21 −0packages/diagrams/src/fixtures/specs/structure/pyramid.json+13 −0packages/diagrams/src/fixtures/specs/structure/quadrant.json+14 −0packages/diagrams/src/fixtures/specs/structure/tree.json+33 −0packages/diagrams/src/fixtures/specs/structure/venn.json+15 −0packages/diagrams/src/fixtures/specs/structure/wardley.json+33 −0packages/diagrams/src/fixtures/specs/systems/architecture-delta.json+33 −0packages/diagrams/src/fixtures/specs/systems/architecture.json+57 −0packages/diagrams/src/fixtures/specs/systems/db-schema.json+38 −0packages/diagrams/src/fixtures/specs/systems/dependency.json+24 −0packages/diagrams/src/fixtures/specs/systems/deployment.json+52 −0packages/diagrams/src/fixtures/specs/systems/er.json+40 −0packages/diagrams/src/fixtures/specs/systems/high-level.json+12 −0packages/diagrams/src/fixtures/specs/systems/it-state.json+49 −0packages/diagrams/src/fixtures/specs/systems/uml-class.json+46 −0packages/diagrams/src/index.ts+2 −0packages/diagrams/src/render.ts+268 −0packages/diagrams/src/viewer/chrome.css+189 −0packages/diagrams/src/viewer/diagram.css+3 −0packages/diagrams/src/viewer/diagram.test.tsx+60 −0packages/diagrams/src/viewer/drawing.css+1148 −0packages/diagrams/src/viewer/motion.css+172 −0packages/diagrams/src/viewer/namespace.test.ts+24 −0packages/diagrams/src/viewer/namespace.ts+26 −0packages/diagrams/test/render.test.ts+251 −0packages/diagrams/tsconfig.json+11 −0packages/editor/src/static-plan-editor.tsx+4 −1scripts/check-design-production.ts+6 −3scripts/design-contract/exceptions.json+2 −1scripts/design-contract/exceptions/dynamic-editor.json+1 −1scripts/design-contract/exceptions/seecode-diagram.json+497 −0