Neues Referenz-Block-Plugin „Excalidraw" (handgezeichnete Whiteboard-
Skizzen), analog zum draw.io-Plugin. Anders als draw.io (vendored Webapp)
ist Excalidraw eine React-npm-Lib: esbuild bündelt Controller + React +
Excalidraw in plugin.js, die Font-/Locale-/Data-Assets werden aus
node_modules in den ZIP-Root kopiert und zur Laufzeit über
EXCALIDRAW_ASSET_PATH (Plugin-Asset-Basis) geladen — nichts spricht mit
excalidraw.com, die Sandbox-CSP pinnt jede Anfrage auf self.
- manifest.json: kind=code, Block-Extension-Point diagram,
permissions blockData+ui, fallback "[Excalidraw]".
- src/plugin.tsx: Render-Modus zeigt gespeichertes SVG; Edit-Modus zeigt
Snapshot + Bearbeiten-Knopf (leerer Block öffnet direkt); Vollbild via
host.ui.enterFullscreen mountet <Excalidraw> (React), „Speichern &
Beenden" exportiert per exportToSvg, persistiert {scene, svg} über
host.blockData.setData → Fallback-Renderer bedient Lese-/Public-Ansicht
+ Exporte ohne Backend-Änderung.
- build.mjs: esbuild (jsx automatic, css→text, production-conditions) +
fflate-ZIP. Build erzeugt excalidraw-1.0.0.zip: 15,5 MiB zip /
22,3 MiB unpacked (Limits 64/256 MiB — passt).
- i18n de+en, globals.d.ts (CSS-Modul-Deklaration).
pnpm-Override @floating-ui/react-dom@2.1.2: Excalidraw 0.18.1 zieht sonst
@floating-ui/dom@^1.8.0, das (noch) nicht im Registry ist und `pnpm
install` repo-weit bricht (dokumentiert in pnpm-workspace.yaml).
VERIFIZIERT: typecheck/lint, Manifest-Validierung (SDK), Build+ZIP-Größe.
NICHT lokal verifiziert (braucht Preview/Test-Stage): Laufzeit —
Excalidraw-Rendering + Speichern unter Sandbox-CSP, Font-Laden vom
Asset-Pfad. Prod-Installation macht Stefan als Site-Admin.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155v2aT8AG1kZDQEZiCLBWC
23 lines
888 B
YAML
23 lines
888 B
YAML
packages:
|
|
- apps/*
|
|
- packages/*
|
|
# Reference plugins (plugin-architecture.md): each is a workspace package so
|
|
# its manifest/CSS checks run with the normal recursive test/typecheck.
|
|
- packages/plugins/*
|
|
# Postinstall scripts are opt-in with pnpm; esbuild needs its binary install.
|
|
allowBuilds:
|
|
'@prisma/client': true
|
|
'@prisma/engines': true
|
|
'@swc/core': true
|
|
argon2: true
|
|
esbuild: true
|
|
prisma: true
|
|
# Excalidraw 0.18.1 (excalidraw plugin, issue #136) transitively pulls
|
|
# @floating-ui/react-dom@2.1.9, which requires @floating-ui/dom@^1.8.0 — a
|
|
# version not published on the registry (latest 1.7.6), breaking `pnpm install`
|
|
# repo-wide. Pin react-dom to 2.1.2, which needs @floating-ui/dom@^1.0.0. Only
|
|
# the excalidraw plugin pulls @floating-ui at all; drop this once upstream
|
|
# @floating-ui/dom@1.8.0 is published.
|
|
overrides:
|
|
'@floating-ui/react-dom': '2.1.2'
|