Add TableGrid component for shared table rendering (1.18.0)
Details
Extract a generic, configurable TableGrid control into PrivStack.UI.Adaptive
that provides reusable table rendering with sorting, paging, column resize,
and theme-aware styling. This is Phase 1 of the TableBlockEditor extraction.
New files:
- Models/TableGridModels.cs: TableColumnDefinition, TableGridRow, TableGridData,
TablePagingInfo records
- Models/ITableGridDataSource.cs: Data source interface for grid data providers
- Controls/TableGrid/TableGrid.cs: Main control with StyledProperties, lifecycle,
async rebuild dispatch
- Controls/TableGrid/TableGridRenderer.cs: Grid layout engine for columns, rows,
title/description rendering
- Controls/TableGrid/TableGridCellFactory.cs: Read-only cell creation with URL
detection, theme brushes, auto-fit width calculation
- Controls/TableGrid/TableGridSorting.cs: Sort state machine (None->Asc->Desc->None)
and SmartComparer
- Controls/TableGrid/TableGridColumnResize.cs: Resize grip pointer handling and
width redistribution
- Controls/TableGrid/TableGridPaging.cs: Paging bar with prev/next buttons and
page info display
Bumps PrivStackSdkVersion from 1.17.0 to 1.18.0.
Add wiki source entity support, fix plugin capability lifecycle and RTE context menu (1.21.1)
Details
Integrate wiki_source as a first-class entity type across graph and backlink
systems. The graph plugin now loads wiki_source nodes, creates
WikiSourceMembership edges between pages sourced from GitHub wikis, and
includes them under the Notes filter toggle. BacklinkService captures
source_id from github_wiki pages during index builds and creates
bidirectional backlink relationships between wiki pages and their sources.
EntityTypeMap registers wiki_source with the Globe icon.
Fix plugin capability lifecycle by calling Host.Capabilities.UnregisterAll
in both PluginBase.Deactivate() and Dispose(), preventing stale capability
references from surviving plugin shutdown.
Fix RichTextEditor right-click on links opening the OS context menu instead
of the link-edit UI by suppressing ContextRequestedEvent via a tunnel
handler when a link is detected under the cursor.
App version bumped to 1.21.1.
Add PluginToolbar and PluginSidebar reusable controls
Details
Add two new Border-based controls to PrivStack.UI.Adaptive for standardizing
plugin toolbar and sidebar patterns across all plugins.
PluginToolbar provides: Title, Subtitle, SearchText (TwoWay), SearchWatermark,
IsSearchVisible, and an Actions content slot. Responsive layout automatically
stacks search in compact mode. Theme-aware with dynamic resource bindings.
PluginSidebar provides: IsCollapsed (TwoWay), IsCollapsible, IsResizable,
CollapsedWidth/ExpandedWidth, Min/MaxExpandedWidth, and three content slots
(HeaderContent, SidebarContent, FooterContent). Includes built-in collapse
toggle with chevron icon and pointer-based resize handle with WidthChanged
event for VM persistence.
Both controls follow the existing CodeBlockEditor Border-inheritance pattern
with theme lookups via GetBrush() and AttachedToVisualTree initialization.
Version bump: 1.16.2 → 1.17.0 (new public API surface, non-breaking).
Update 2026-02-12
Added Datasource support to SDK and consumption via shell and core
Get notified about new releases