Migrate toolbar to PluginToolbar
Details
Replace inline toolbar XAML with PluginToolbar from PrivStack.UI.Adaptive.
Journal has no sidebar so only toolbar migration applies. Actions slot
contains Feed/Calendar/Insights view toggle buttons.
Version bump: 1.2.5 → 1.3.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.
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 SidebarContent (scrollable
filters, tags, relationship status, stats) and FooterContent (add contact/
company/group buttons). Remove duplicated BoolToWidthConverter,
BoolToStringConverter, BoolToPathIconConverter from ContactsConverters.
Contacts now gets resize handle support for free.
Version bump: 1.5.2 → 1.6.0
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 (new folder
button), SidebarContent (scrollable folders/snippets), and FooterContent
(trash button + new collection form). Remove duplicated BoolToWidthConverter,
BoolToStringConverter, BoolToPathIconConverter. Snippets now gets resize
handle support for free.
Version bump: 1.2.5 → 1.3.0
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).
Get notified about new releases