Option Strict On
Option Explicit On

Namespace Nexamas.UI.ThemeStudio

    ''' <summary>
    ''' Official Friend-owned gateway for Surface Designer catalog inspection after final public API lockdown.
    ''' </summary>
    ''' <remarks>
    ''' Surface Designer is a read-only Phase 5 projection over the existing Surface Visual System.
    ''' It is not a second material registry, a renderer wrapper, or a temporary design bridge.
    ''' </remarks>
    Friend NotInheritable Class MASSurfaceDesigner
        Private Sub New()
        End Sub

        ''' <summary>
        ''' Returns the owned Surface Visual material catalog without rebuilding the full Theme Studio snapshot.
        ''' </summary>
        Friend Shared Function GetMaterials() As IReadOnlyList(Of MASSurfaceDesignerMaterialEntry)
            Return MASSurfaceDesignerCatalog.CreateMaterialEntries()
        End Function

        ''' <summary>
        ''' Returns reusable material profiles for generic surface slots without exposing element-owned material names.
        ''' </summary>
        Friend Shared Function GetMaterialProfiles() As IReadOnlyList(Of MASSurfaceDesignerMaterialProfileEntry)
            Return MASSurfaceDesignerCatalog.CreateMaterialProfileEntries()
        End Function


        ''' <summary>
        ''' Returns generic surface slots so Designer/Showcase can assign materials to Root, Header,
        ''' Toolbar, Viewport, Floating, and other regions without inventing element material names.
        ''' </summary>
        Friend Shared Function GetSlots() As IReadOnlyList(Of MASSurfaceDesignerSlotEntry)
            Return MASSurfaceDesignerCatalog.CreateSlotEntries()
        End Function

        ''' <summary>
        ''' Returns the owned Surface Visual role matrix without rebuilding theme or contrast facts.
        ''' </summary>
        Friend Shared Function GetRoles() As IReadOnlyList(Of MASSurfaceDesignerRoleEntry)
            Return MASSurfaceDesignerCatalog.CreateRoleEntries()
        End Function

        ''' <summary>
        ''' Returns reusable visual style compositions without rebuilding theme or contrast facts.
        ''' </summary>
        Friend Shared Function GetVisualStyles() As IReadOnlyList(Of MASSurfaceDesignerVisualStyleEntry)
            Return MASSurfaceDesignerCatalog.CreateVisualStyleEntries()
        End Function
    End Class

End Namespace
