Option Strict On
Option Explicit On

Imports System.Collections.Generic
Imports Nexamas.UI.Components

Namespace Nexamas.UI.Architecture

    ''' <summary>
    ''' Explicit static manifest for built-in Nexamas UI architecture providers.
    ''' </summary>
    ''' <remarks>
    ''' This file is generated/maintained beside the concrete component system rather than in
    ''' ArchitectureSystem. MASComponentRegistry and MASComponentGraphBuilder consume this
    ''' manifest as their primary path; reflection discovery is retained only as a diagnostic
    ''' fallback for tests or external/internal extension experiments.
    ''' </remarks>
    Friend NotInheritable Class MASArchitectureProviderManifest

        Private Sub New()
        End Sub

        Friend Shared Function GetComponentRegistrationProviders() As IReadOnlyList(Of IMASComponentRegistrationProvider)
            Return New IMASComponentRegistrationProvider() {
                New MASComponentMediaArchitectureProvider(),
                New MASComponentControlsArchitectureProvider(),
                New MASComponentTextInputArchitectureProvider(),
                New MASComponentFloatRuntimeArchitectureProvider(),
                New MASComponentCompositionArchitectureProvider(),
                New MASComponentThemeSystemArchitectureProvider(),
                New MASComponentRenderingArchitectureProvider()
            }
        End Function

        Friend Shared Function GetComponentRelationProviders() As IReadOnlyList(Of IMASComponentRelationProvider)
            Return New IMASComponentRelationProvider() {
                New MASMenuComponentRelationProvider(),
                New MASNavigationComponentRelationProvider(),
                New MASMediaComponentRelationProvider(),
                New MASFloatComponentRelationProvider(),
                New MASProductControlRelationProvider()
            }
        End Function

    End Class

End Namespace
