Generalize article interaction ownership

This commit is contained in:
Meta Vens 2026-08-27 00:09:09 +02:00
commit 67db92910b
3 changed files with 7 additions and 8 deletions

View file

@ -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:

View file

@ -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",

View file

@ -2844,13 +2844,6 @@ function isArticleContentTarget(target: EventTarget | null) {
return false;
}
const articleContent = target.closest<HTMLElement>(
"[data-epiphany-article-content], .zyphos-spa-article",
);
if (!articleContent) {
return false;
}
const surface = target.closest<HTMLElement>(".norn-node-surface");
if (!surface) {
return false;