Option Strict On
Option Explicit On

Imports System.Collections.Generic
Imports Nexamas.UI.Architecture
Imports Nexamas.UI.Rendering

Namespace Nexamas.UI.Components

    ''' <summary>
    ''' Architecture relation declarations for FloatRuntime dialog contracts and their shared
    ''' PanelShell chrome surface.
    '''
    ''' Legacy GroupBox-backed FloatPanel relations were intentionally removed.
    ''' Generic floating panels now use MASPanelShellFloatHost through the ShowPanelShell gateway.
    ''' </summary>
    Friend NotInheritable Class MASFloatComponentRelationProvider
        Implements IMASComponentRelationProvider

        Public Function GetRelations() As IEnumerable(Of MASComponentRelationDeclaration) _
            Implements IMASComponentRelationProvider.GetRelations

            Dim relations As New List(Of MASComponentRelationDeclaration)()

            relations.Add(
                MASComponentRelationDeclaration.Create(
                    GetType(MASMessageBoxFloatContract),
                    GetType(MASPanelShellContract),
                    MASComponentRelationKind.Uses,
                    "MessageBox float contract uses PanelShell as its dialog chrome contract."))

            relations.Add(
                MASComponentRelationDeclaration.Create(
                    GetType(MASFilePickerFloatContract),
                    GetType(MASPanelShellContract),
                    MASComponentRelationKind.Uses,
                    "FilePicker float contract uses PanelShell as its dialog chrome contract."))

            relations.Add(
                MASComponentRelationDeclaration.Create(
                    GetType(MASFileExplorerFloatContract),
                    GetType(MASPanelShellContract),
                    MASComponentRelationKind.Uses,
                    "FileExplorer float contract uses PanelShell as its dialog chrome contract."))

            relations.Add(
                MASComponentRelationDeclaration.Create(
                    GetType(MASPanelShellFloatHost),
                    GetType(MASPanelShellContract),
                    MASComponentRelationKind.Uses,
                    "Generic PanelShell float host uses PanelShell as its reusable floating dialog chrome contract."))

            Return relations

        End Function

    End Class

End Namespace