AsterGraph.Avalonia
0.2.0-alpha.1
See the version list below for details.
dotnet add package AsterGraph.Avalonia --version 0.2.0-alpha.1
NuGet\Install-Package AsterGraph.Avalonia -Version 0.2.0-alpha.1
<PackageReference Include="AsterGraph.Avalonia" Version="0.2.0-alpha.1" />
<PackageVersion Include="AsterGraph.Avalonia" Version="0.2.0-alpha.1" />
<PackageReference Include="AsterGraph.Avalonia" />
paket add AsterGraph.Avalonia --version 0.2.0-alpha.1
#r "nuget: AsterGraph.Avalonia, 0.2.0-alpha.1"
#:package AsterGraph.Avalonia@0.2.0-alpha.1
#addin nuget:?package=AsterGraph.Avalonia&version=0.2.0-alpha.1&prerelease
#tool nuget:?package=AsterGraph.Avalonia&version=0.2.0-alpha.1&prerelease
AsterGraph.Avalonia
Avalonia UI shell for the AsterGraph editor.
Quick Start: main UI entry quick start.
This package belongs to the supported AsterGraph package set with AsterGraph.Abstractions, AsterGraph.Core, and AsterGraph.Editor, and it targets net8.0 and net9.0.
Direct package reference:
- Yes, this is the default UI package for hosts embedding the editor.
- Pair it with
AsterGraph.Editorfor the canonical hosted-UI composition path. - Pair it with
AsterGraph.Abstractionsfor node definitions and shared style contracts. - Add
AsterGraph.Corewhen the host also needs direct model or serialization access.
This project intentionally contains:
GraphEditorViewGraphEditorView.ChromeModefor switching between the default shell andCanvasOnlyNodeCanvasas a supported standalone graph surfaceGraphInspectorViewas a supported standalone inspector surfaceGraphMiniMapas a supported standalone mini map surfaceGraphContextMenuPresenteras the stock Avalonia menu presenterAsterGraphPresentationOptionsplus node/menu/inspector/mini-map presenter contracts for opt-in visual replacement- canvas rendering and pointer interaction
- theme resources
- context-menu presentation from editor descriptors
- rendered-control-based anchor resolution for connection endpoints
This project intentionally does not own:
- node definition contracts
- compatibility policy
- editor-state orchestration
- demo node content
Those responsibilities live in AsterGraph.Abstractions, AsterGraph.Core, and AsterGraph.Editor. AsterGraph.Demo remains a sample app only.
Integration entry points:
Canonical and compatibility UI entry paths:
- Canonical full shell:
AsterGraphAvaloniaViewFactory.Create(new AsterGraphAvaloniaViewOptions { ... }) - Canonical standalone canvas:
AsterGraphCanvasViewFactory.Create(new AsterGraphCanvasViewOptions { ... }) - Canonical standalone inspector:
AsterGraphInspectorViewFactory.Create(new AsterGraphInspectorViewOptions { ... }) - Canonical standalone mini map:
AsterGraphMiniMapViewFactory.Create(new AsterGraphMiniMapViewOptions { ... }) - Compatibility:
new GraphEditorView { Editor = editor }
Per-surface presentation replacement is opt-in through AsterGraphPresentationOptions.
Phase 18 readiness note:
- future plugin/automation work should anchor on
editor.Session/CreateSession(...), not on Avalonia controls themselves src/AsterGraph.Demo,tools/AsterGraph.PackageSmoke, andtools/AsterGraph.ScaleSmokenow carry the current host/UI validation signals for that runtime boundary
Phase 16 adapter boundary:
- Stock full-shell and standalone-canvas context menus are built from
editor.Session.Queries.BuildContextMenuDescriptors(...). IGraphContextMenuPresenterimplementations can opt into the canonical descriptor overload and receiveIGraphEditorCommandsdirectly. The olderMenuItemDescriptoroverload remains as a compatibility path.- Stock default keyboard shortcuts in
GraphEditorViewandNodeCanvasnow route through a shared Avalonia shortcut adapter overeditor.Session.Commands. GraphEditorViewowns Avalonia clipboard and host-context seam binding for the full shell. Its embeddedNodeCanvaskeeps platform-seam ownership disabled.- A standalone
NodeCanvasowns those Avalonia clipboard and host-context seams when it is attached to the visual tree.
Example full-shell configuration:
var view = AsterGraphAvaloniaViewFactory.Create(new AsterGraphAvaloniaViewOptions
{
Editor = editor,
Presentation = new AsterGraphPresentationOptions
{
NodeVisualPresenter = customNodePresenter,
ContextMenuPresenter = customMenuPresenter,
InspectorPresenter = customInspectorPresenter,
MiniMapPresenter = customMiniMapPresenter,
},
});
If Presentation is omitted, the shipped stock presenters remain active.
Standalone canvas keeps the stock context menu and stock command shortcuts enabled by default. Hosts can explicitly opt out through:
EnableDefaultContextMenuEnableDefaultCommandShortcuts
If a host replaces only the presenter, not the editor state, the recommended path is to keep consuming canonical session descriptors/commands and treat GraphEditorViewModel.BuildContextMenu(...) as retained compatibility surface.
Header/library/status chrome remain shell-only. Phase 4 adds presenter replacement for node visuals, menus, inspector, and mini map without moving editor behavior into the host.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- AsterGraph.Core (>= 0.2.0-alpha.1)
- AsterGraph.Editor (>= 0.2.0-alpha.1)
- Avalonia (>= 11.3.10)
- Avalonia.Markup.Xaml.Loader (>= 11.3.10)
- CommunityToolkit.Mvvm (>= 8.2.1)
-
net9.0
- AsterGraph.Core (>= 0.2.0-alpha.1)
- AsterGraph.Editor (>= 0.2.0-alpha.1)
- Avalonia (>= 11.3.10)
- Avalonia.Markup.Xaml.Loader (>= 11.3.10)
- CommunityToolkit.Mvvm (>= 8.2.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.11.0-beta | 55 | 4/26/2026 |
| 0.2.0-alpha.3 | 64 | 4/18/2026 |
| 0.2.0-alpha.2 | 51 | 4/18/2026 |
| 0.2.0-alpha.1 | 56 | 4/17/2026 |