Add IPropertyService interface for plugin property access (1.23.0)
Details
Add IPropertyService to PrivStack.Sdk exposing entity metadata CRUD
(tags, custom properties, property definitions) so plugins can read and
write properties without depending on Desktop types. EntityMetadataService
implements the interface via explicit implementations that convert Desktop
models to SDK-typed records (SdkEntityMetadata, SdkPropertyDefinition).
IPluginHost gains a nullable Properties member, wired through PluginHost
and PluginHostFactory. SDK version bumped 1.22.6 → 1.23.0.
Implement dual-grid freeze pane layout for column/row freezing (1.22.0)
Details
Column freeze now uses a DockPanel with a fixed-width frozen grid on the
left and a horizontally scrollable grid on the right, separated by a
visual divider. When FrozenColumnCount > 0, the renderer splits cells
between the two grids so frozen columns stay in place during horizontal
scroll. Resize grips dispatch to the correct grid via a routing layer.
Row freeze for infinite scroll pins the first N data rows at the top of
the visible window. The mouse wheel only scrolls the remaining rows.
The InfiniteScroll page cache assembles frozen rows + scrollable rows
from the appropriate pages.
Add column/row freezing, infinite scroll mode, and scroll mode toggle (1.21.0)
Details
Add freeze pane support to TableGrid: right-click column header → "Freeze From Here" pins
columns to the left; right-click data row → "Freeze This Row" pins rows above. Visual
indicators (blue border lines) mark freeze boundaries. Frozen state persisted through
FrozenColumnCount/FrozenRowCount properties on TableGridData and corresponding
OnFreezeColumnsAsync/OnFreezeRowsAsync callbacks on ITableGridDataSource.
Add infinite scroll mode as an alternative to pagination. Toggle via gear menu →
"Infinite Scroll". When active, pagination bar hides, vertical scrollbar enables,
and rows accumulate as user scrolls near the bottom (100px threshold). Filter/sort
resets accumulated rows. TableGridInfiniteScroll manages page tracking, row
accumulation, and loading indicator. TableScrollMode enum (Paginated/InfiniteScroll)
added to models.
New files: TableGridFreezeLayout.cs (dual-grid layout manager for frozen columns),
TableGridInfiniteScroll.cs (scroll monitoring and page accumulation).
Updated: TableGrid.cs (new StyledProperties + events for freeze counts and scroll mode),
TableGridRenderer.cs (freeze boundary indicators, frozenColumnCount/frozenRowCount params),
TableGridContextMenu.cs (freeze/unfreeze menu items), TableGridToolbar.cs (scroll mode toggle),
ITableGridDataSource.cs (freeze callbacks), TableGridModels.cs (freeze fields + scroll enum).
Bumps PrivStackSdkVersion from 1.20.14 to 1.21.0.
Overhaul TableGrid with filter bar, options gear menu, striping, insert indicators, and chevron pager (1.20.0)
Details
Restructure the TableGrid table system for improved UX. Replace the scattered +Row/-Row/+Col/-Col toolbar buttons with a unified options gear MenuFlyout containing header toggle, striped rows toggle, plugin-injected items, export submenu, and edit table entry. Add a new TableGridFilterBar with debounced filter TextBox and page size ComboBox selector at the top of the grid. Replace unicode triangle glyphs in the paging bar with proper PathIcon chevrons and center-align the pager.
Add row striping support via IsStriped/ColorTheme StyledProperties on TableGrid, with stripe and color theme preset brush resolution in TableGridCellFactory. Add 5 color theme presets (Default, Blue, Green, Purple, Orange) with header and stripe brush definitions across all 7 theme .axaml files. Register new brush keys in ThemeService aliasedBrushKeys.
Create TableGridInsertIndicators for hover-to-insert UX — circular "+" overlays appear on cell borders when hovering row bottom edges or column resize grips. Expand ITableGridDataSource with positional OnInsertRowAtAsync/OnDeleteRowAtAsync/OnInsertColumnAtAsync/OnDeleteColumnAtAsync methods.
Restructure TableGridContextMenu with Row/Column submenus (Add Above, Add Below, Remove Row / Add Left, Add Right, Remove Column) using the new positional methods. Add "Set as Header" option visible only when right-clicking row 0.
Update TableGridRenderer to pass isStriped/colorTheme through cell creation, render header cells as editable for inline tables, and attach insert indicators after rendering. Add IsStriped, ShowFilter, ColorTheme, and related committed events to TableGrid.
Version: UI.Adaptive 1.19.0 → 1.20.0, Desktop 1.21.1 → 1.21.2
Add editable cells, navigation, drag-drop, toolbar, context menus, and export to TableGrid (1.19.0)
Details
Phase 2 of TableGrid unification. Extends the shared TableGrid component with full
editing capabilities so all 6 table types (manual, entity, dataset, view, plugin-query,
source-backed) can use a single rendering path.
New files:
- TableGridCellNavigation: Tab/Arrow keyboard navigation between editable cells with
boundary escape events for block-level navigation
- TableGridRowDrag: Row reorder via drag handles with drop indicator
- TableGridColumnDrag: Column reorder via header cell drag with 10px threshold
- TableGridContextMenu: Right-click menus for row/column operations (insert, delete,
alignment, header toggle)
- TableGridToolbar: Configurable toolbar with add/remove row/col, header toggle, and
export flyout (CSV/TSV/Markdown/JSON/clipboard). Includes AdditionalContentSlot for
plugin-specific buttons
- TableGridExport: File export and clipboard copy with save file picker dialog
Modified files:
- TableGridCellFactory: Added CreateEditableCell() for TextBox-based editable cells
with commit-on-LostFocus/Enter and navigation delegation
- TableGridRenderer: Expanded to support editable mode, drag handles, and context menus.
Returns TableGridRenderResult record with cell metadata
- TableGrid: Integrated toolbar, cell navigation, row/column drag handlers. Added
ShowToolbar and AdditionalToolbarContent styled properties. All features are
capability-gated via ITableGridDataSource flags
Get notified about new releases