Skip to content

Reactodia include#4

Merged
ThHanke merged 95 commits into
mainfrom
reactodia_include
Apr 10, 2026
Merged

Reactodia include#4
ThHanke merged 95 commits into
mainfrom
reactodia_include

Conversation

@ThHanke
Copy link
Copy Markdown
Owner

@ThHanke ThHanke commented Apr 10, 2026

Summary

  • Canvas migration: replaced React Flow with Reactodia canvas — entity groups, smooth animations, authoring mode for nodes and links
  • Clustering: SLPA/K-means/Louvain algorithms; auto-clusters large graphs on load (configurable threshold); expand/collapse all from toolbar
  • Layout engine: Dagre + ELK layout algorithms running in Web Workers; LayoutPopover for algorithm/spacing selection; auto-layout on graph updates
  • Reasoning visualization: inferred triples rendered as amber dashed edges; inferred types/annotations in amber italic; Clear Inferred button
  • Namespace editing: rename namespace URIs in-place from the legend; propagates across all stored triples
  • Entity auto-complete: scored domain/range tiers from loaded ontologies in link property editor
  • N3DataProvider: ontology queries (fetchClasses, fetchLinkTypes, scoreLinkTypes, getDomainRange) powering schema-aware editing
  • CSS theming: full Reactodia CSS variable bridge; glass-style toolbar and dialogs
  • README: complete rewrite documenting all new features

Thomas Hanke and others added 30 commits April 7, 2026 17:05
…kTypes

Implement new utility module for ontology queries:
- fetchClasses: maps ElementTypeModel to FatMapEntity[] via DataProvider.knownElementTypes()
- fetchLinkTypes: maps LinkTypeModel to FatMapEntity[] via DataProvider.knownLinkTypes()
- scoreLinkTypes: scores and sorts link types by rdfs:domain/rdfs:range fit (0-3 scale)

FatMapEntity canonical entity type supports iri, label, prefixed, and domainRangeScore.
All 9 tests passing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…dataProvider singleton

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…est imports

- Move vi and N3DataProvider imports to top of test file
- Remove duplicate imports from mid-file
- Add dataProvider prop to all EntityAutoComplete usages in NodePropertyEditor (5 instances)
- Add dataProvider prop to all EntityAutoComplete usages in rdfPropertyEditor (2 instances)
- Add dataProvider import to both editor components

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Thomas Hanke and others added 29 commits April 10, 2026 12:24
…ent, fix test isolation

Issue 1: In-place mutations in mergePrefixes, addNamespace, and renameNamespaceUri
leaked through held NamespaceEntry references. Fixed by replacing entry objects
instead of mutating them, preventing unintended side effects on cached snapshots.

Issue 2: Test isolation — rdfManager.clear() did not reset namespaces array.
Added rdfManager.setNamespaces({}, { replace: true }) to beforeEach to ensure
clean state between tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…] type, remove sync helpers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rs from palette only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… colors from buildPaletteMap

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…p dead code

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ollapseHelpers param

- Remove 'threshold' parameter from applyCanvasClustering signature and update JSDoc
- Hardcode threshold value to 2 in selectClusteringAlgorithm call
- Rename 'threshold' -> 'edgeThreshold' in findNodesToHideByPredicate for clarity
- Update applyCollapseFilter JSDoc and parameter name accordingly
- Remove stale cfg.collapseThreshold argument from handleCluster in ReactodiaCanvas
- All TypeScript checks pass

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… positions for expand fallback

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ThHanke ThHanke merged commit 785d7c9 into main Apr 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant