Add entity sources sidebar to canvas view (v1.41.0)
Details
Adds a new "Entity Sources" panel below the whiteboard list in the
canvas sidebar. The panel discovers all ILinkableItemProvider plugins
(Tasks, Contacts, Calendar, Journal, Snippets, RSS, Web Clips, Files)
and lists their items grouped by plugin. Items can be dragged directly
onto the canvas to create entity reference cards.
New files:
- Models/CanvasEntityGroup.cs — grouped list model for sidebar TreeView
- ViewModels/CanvasViewModel.EntitySidebar.cs — entity sidebar state,
loading, and client-side filtering with debounce
Changes:
- NotesPlugin.cs: wire CapabilityBroker to CanvasViewModel, auto-load
entity sources on canvas navigation, version bump to 1.41.0
- NotesViewModel.Canvas.cs: load entity sources on canvas view switch
- NotesView.axaml: add resize handle + entity sources panel (header,
filter TextBox, TreeView with group/leaf templates) to canvas sidebar
- NotesView.axaml.cs: add entity drag handlers using EntityDragHelper,
resize handlers, and filter debounce wiring
Toolbar overhaul with active highlighting, shapes flyout, and connector toolbars (v1.40.0)
Details
Toolbar redesign with Figma-style active tool highlighting via EnumMatchConverter and
Classes.active binding. Shape buttons consolidated into a single flyout dropdown exposing
all 8 shapes (Rect, Ellipse, Diamond, Parallelogram, Cylinder, Hexagon, RoundedRect,
Triangle). Clicking the button creates the last-used shape; clicking the dropdown opens
the full menu.
Connector sub-toolbar appears when Connector tool is active, providing Style (Straight,
Curved, Elbow) and Arrow (Forward, Both, Backward, None) pickers that set defaults for
new connectors. Selected connector toolbar appears when a connector is selected, allowing
live modification of style and arrow mode on the selected connector.
New CanvasViewModel.ConnectorToolbar.cs partial handles connector selection state, default
connector properties, and event handlers for ConnectorSelected/Deselected/PropertyChanged.
Code-behind wires canvas control events to VM and syncs default properties back to control.
Add context menus, element operations, and connector events to InfiniteCanvas (v1.31.0)
Details
Add right-click context menus for elements (Delete, Duplicate, Bring to Front, Send to Back,
Color submenu with 9 presets), connectors (Delete, Style submenu, Arrow submenu, Color submenu),
and empty canvas (Select All, Fit to View).
New public API: BringSelectedToFront, SendSelectedToBack, DuplicateSelected (deep-clone with
connector remapping), SetSelectedElementColor, GetSelectedConnector, GetSelectedElements.
New events: ConnectorSelected (fired on connector selection), ConnectorPropertyChanged (fired
after SetSelectedConnectorStyle/ArrowMode/Color calls). SelectionCleared now also fires when
connector selection is cleared.
Right-click routing added to OnPointerPressed before the left-button guard, dispatching to
hit-test-aware context menu builder in new InfiniteCanvasContextMenu.cs partial.
Add 6 diagram shapes — Diamond, Parallelogram, Cylinder, Hexagon, RoundedRect, Triangle (v1.30.0)
Details
Adds UML/flowchart diagram shapes to the InfiniteCanvas with StreamGeometry
vector rendering, 0.7 opacity fills, configurable stroke colors, and centered
text labels.
Diamond: 4-point rotated square for decision nodes (default #FFDCB4 warm peach).
Parallelogram: 20% inset skewed rectangle for I/O operations (default #B4D2FF).
Cylinder: Rectangle body with elliptical top/bottom caps (15% height) for
database symbols (default #C8DCF0 slate blue).
Hexagon: Flat-top 6-point polygon with 25% left/right inset for preparation
steps (default #DCC8F0 soft purple).
RoundedRect: Pill-shaped rectangle with radius = min(h/2, w/4) for terminal
nodes (default #B4E6C8 mint green).
Triangle: 3-point upward-pointing triangle (default #FFC8C8 soft red).
Each shape has shape-specific click-create default dimensions and integrates
with the existing drop shadow, selection, resize, and connector anchor systems.
Render dispatch added to the main element type switch in InfiniteCanvasRendering.
Connector overhaul with smart routing, anchor visualization, and arrow modes (v1.29.0)
Details
Rewrites the InfiniteCanvas connector system with anchor-aware routing, visible
anchor points, configurable arrow directions, and connector selection support.
Connector rendering: Replace naive QuadraticBezier with anchor-aware CubicBezier
curves where control points extend outward from the anchor direction. Elbow
connectors now route orthogonally with perpendicular exit/entry margins and
at most two 90-degree turns instead of a simple midpoint split.
Arrow modes: New ArrowMode enum (Forward/None/Backward/Both) with direction-aware
arrow heads that correctly follow curved and elbow connector end tangents.
Connector color: Each connector can now specify a custom color, falling back to
the theme muted text brush.
Anchor visualization: Blue anchor dots (radius 5, hover radius 7) appear on all
element edges when the Connector tool is active, with hover tracking for visual
feedback during connector creation.
Connector selection: Click a connector in Select mode to highlight it with a
dashed overlay. Selected connectors can be deleted with Delete/Backspace.
Three new public methods (SetSelectedConnectorStyle, SetSelectedArrowMode,
SetSelectedConnectorColor) allow toolbar bindings to modify selected connectors.
Hit-testing: Style-aware connector hit tests dispatch to DistanceToLineSegment,
DistanceToElbowPath, or DistanceToCubicBezier based on connector style.
File splits: Extracted helpers to InfiniteCanvasHelpers.cs, tool-specific handlers
to InfiniteCanvasElementInteraction.cs, and anchor rendering to
InfiniteCanvasAnchorRendering.cs to stay within the 250-line modularity rule.
Model additions: ArrowMode enum, CanvasConnector.ArrowMode and Color properties,
6 new CanvasElementType constants (Diamond, Parallelogram, Cylinder, Hexagon,
RoundedRect, Triangle) and corresponding CanvasToolMode enum values as forward
declarations for the next commit.
Visual polish: 2px drop shadow offset on NoteCard, Rect, and Ellipse elements.
DefaultConnectorStyle, DefaultArrowMode, and DefaultConnectorColor StyledProperties
control defaults for newly created connectors.
Get notified about new releases