Migrate toolbar to PluginToolbar
Details
Replace inline toolbar XAML with PluginToolbar from PrivStack.UI.Adaptive.
Calendar has no sidebar so only toolbar migration applies. Date navigation,
view mode toggle (Day/Week/Month/Agenda), and settings flyout placed in
Actions slot. Date display (HeaderDisplay) used as dynamic Subtitle.
No search box (IsSearchVisible=false). No sidebar migration needed
(fixed-width, non-collapsible).
Version bump: 1.7.5 → 1.8.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
Migrate toolbar and sidebar to PluginToolbar/PluginSidebar
Details
Replace inline toolbar and sidebar XAML with reusable controls from
PrivStack.UI.Adaptive. Sidebar content mapped to HeaderContent (mode
title, lock button, action buttons, view mode toggle, icon size slider)
and SidebarContent (folder tree). Remove BoolToWidthConverter and
BoolToPathIconConverter. Keep BoolToStringConverter (still used in
detail view headers and preview panel). Files sidebar now gets resize
handle support for free. Add UI.Adaptive package reference.
Version bump: 1.6.1 → 1.7.0
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.
Get notified about new releases