diff --git a/README.md b/README.md index 7bd8e08..aaea738 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,12 @@ The public viewer API is intentionally coarse: - `selection`, `focusSelection`, `expandedNode`, and callbacks for app integration - typed state and event payloads +Norn owns graph layout, viewport motion, selection, focus, inspection, and the +interaction boundary of expanded node articles. Consumers own graph meaning and +article content. When an expanded article fills a node surface, Norn derives wheel +and drag behavior from that surface's committed article geometry; consumers do not +need product-specific classes or data attributes to make the article scrollable. + ## What It Does The support generator: diff --git a/web/norn-viewer/package.json b/web/norn-viewer/package.json index 032d96d..2c20fd1 100644 --- a/web/norn-viewer/package.json +++ b/web/norn-viewer/package.json @@ -19,7 +19,7 @@ "scripts": { "dev": "vite", "build": "npm run build:lib && npm run build:demo", - "build:lib": "tsup src/index.ts --format esm,cjs --dts --external react --external react-dom --clean", + "build:lib": "tsup src/index.ts --format \"esm,cjs\" --dts --external react --external react-dom --clean", "build:demo": "vite build --outDir dist/demo", "build:solver:wasm": "powershell -ExecutionPolicy Bypass -File ./scripts/Build-RustSolverWasm.ps1", "typecheck": "tsc --noEmit", diff --git a/web/norn-viewer/src/lib/NornViewer.tsx b/web/norn-viewer/src/lib/NornViewer.tsx index a87bf0b..c4482d4 100644 --- a/web/norn-viewer/src/lib/NornViewer.tsx +++ b/web/norn-viewer/src/lib/NornViewer.tsx @@ -2844,13 +2844,6 @@ function isArticleContentTarget(target: EventTarget | null) { return false; } - const articleContent = target.closest( - "[data-epiphany-article-content], .zyphos-spa-article", - ); - if (!articleContent) { - return false; - } - const surface = target.closest(".norn-node-surface"); if (!surface) { return false;