Repository navigation
Conversation
641ea6d to
8d3e278
Compare
|
Added The comparison recordings use the same graph seed, layout, radius (5), offset (20), and node movement:
Auto is deliberately per link, so the factory remains usable with plain Validation: 148 core tests passed (including eight new auto-direction cases), 26/26 command-report checks passed, and the example was checked for dragging, light/dark rendering, layout preservation, and radius/offset controls. The existing repository-wide lint failures are unchanged. Fixed fixed-direction.mp4
auto-direction.mp4 |
d473d3a to
52e07af
Compare
Adds
Graph.linkCurveas a D3 curve factory and providescurveSmoothStepthrough the same rendering path. This is a standalone alternative to #973, based onmain, for discussing the factory-based API with maintainers.Behavior and API
linkCurveaccepts D3 line-compatible factories, including built-in curves andcurveSmoothStep. There is no smooth-step string or Graph-specific enum branch in the renderer.linkCurveunset preserves the existing cubic Bézier geometry andlinkCurvaturebehavior.direction(SmoothStepDirection.Auto)instead picks the dominant endpoint displacement separately for each link (horizontal on ties), recalculating during dragging. This is per-link inference, not Component | Graph: Update graph curve options - 1.8 #973's average over the links in a Graph update.curveSmoothSteproutes between the first and last points of each segment and ignores intermediate points. It supports SVG/Canvas drawing contexts andd3.line(), but notd3.area().The routing follows the smooth-step proposal in #973. The dev example compares the default Bézier rendering with the selected factory on identical data, with direction, radius, and offset controls. Selecting
autokeeps the current ELK layout while changing link routing.Review order
Five commits, with no merge or fixup commits:
SmoothStepDirectionenum and per-link auto routing, Graph integration, exports, and regression tests.linkCurveinput. All five wrapper generators were run; the other wrappers inherit the config type.gh --attach; never commit PR review media.Validation
pnpm cmds-report --concurrency=3 --timeout=300 --port=3738: 26/26 passed, including core tests, all wrapper builds/generation, Svelte compatibility tests, dev/website builds, and size checks.pnpm build && pnpm build:dev: passed separately, including SSR/MCP builds.pnpm test:ts: 148 tests passed, including 20 new curve/Graph tests.pnpm size:ts: passed with the existing baseline; no baseline changes.git diff --checkpassed for the five cleaned-up commits.d3.line()and thatSmoothStepDirectionis available as a runtime export from both the factory module andtypes/curve.Repository-wide
pnpm lintstill reports 14 errors in unchanged files: missing Karma dependencies; unresolved imports in existing dev examples; Solid parser configuration; the existinggeojsonimport; and missingterser/svelte-preprocessimports in website tooling. These are outside this PR.Not run: the entire Playwright suite, MCP/SSR test/browser lanes, or website-wide typecheck. These are excluded from the command report; the relevant core and browser checks above were run explicitly.