Skip to content

Implements standardized plugin interfaces for UI contributions#76

Merged
mdwigley merged 1 commit intoenterlucent:mainfrom
mdwigley:issue#67-mdwigley
Sep 4, 2025
Merged

Implements standardized plugin interfaces for UI contributions#76
mdwigley merged 1 commit intoenterlucent:mainfrom
mdwigley:issue#67-mdwigley

Conversation

@mdwigley
Copy link
Member

@mdwigley mdwigley commented Sep 4, 2025

Description

This PR introduces a set of plugin interfaces in the PlugHub.Shared project that allow plugins to contribute user interface elements to the host application in a structured and extensible way.

The following interfaces and supporting descriptors have been added:

  • IPluginStyleInclusion – enables plugins to register StyleInclude resources (themes, icon sets, etc.).
  • IPluginPages – provides a contract for contributing navigation pages (views, viewmodels, and metadata) to the application's main NavigationView.
  • IPluginSettingsPages – defines contributions of plugin-specific configuration pages to the host’s Settings hub.
  • Descriptor classes (PluginStyleIncludeDescriptor, PluginPageDescriptor, SettingsPageDescriptor) encapsulate metadata for each plugin contribution.

Related Issue

Motivation and Context

Currently, plugin developers do not have a standardized way to contribute UI components to the host app. Each plugin has to integrate in an ad-hoc manner, creating tight coupling and maintenance challenges.

By introducing these interfaces, we provide:

  • A clear, extensible contract for contributing styles, navigation, and settings pages.
  • The ability for plugins to dynamically register UI components without requiring host modifications.
  • A scalable foundation for plugin-driven UI extensibility moving forward.

How Has This Been Tested?

  • NA

Screenshots (if appropriate):

  • NA

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Asset change (adds or updates icons, templates, or other assets)
  • Documentation change (adds or updates documentation)
  • Plugin change (adds or updates a plugin)

Checklist:

  • I have read the CONTRIBUTING document.
  • My change requires a change to the core logic.
    • I have linked the project issue above.
  • My change requires a change to the assets.
    • I have linked the asset issue above.
  • My change requires a change to the documentation.
    • I have linked the documentation issue above.
  • My change requires a change to a plugin.
    • I have linked the plugin issue above.

@mdwigley mdwigley self-assigned this Sep 4, 2025
@mdwigley mdwigley merged commit 4af51cf into enterlucent:main Sep 4, 2025
3 checks passed
@mdwigley mdwigley deleted the issue#67-mdwigley branch September 4, 2025 07:34
@mdwigley mdwigley added the approved Change issue has been accepted for implementation label Sep 4, 2025
mdwigley added a commit that referenced this pull request Sep 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Change issue has been accepted for implementation

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Implement plugin interfaces

1 participant

Comments