Option Strict On
Option Explicit On

Namespace Nexamas.UI.ThemeStudio

    ''' <summary>
    ''' Product-safe surface role entry used by Surface Designer state/role previews.
    ''' </summary>
    ''' <remarks>
    ''' Surface roles remain internally owned by the reusable Surface Visual System. The
    ''' designer exposes names and stable role values only, preventing consumers from
    ''' depending on renderer-local enums or PanelShell implementation details.
    ''' </remarks>
    Friend NotInheritable Class MASSurfaceDesignerRoleEntry

        Friend Sub New(name As String,
                       value As Integer,
                       participatesInDesignerPreview As Boolean)
            Me.Name = Normalize(name)
            Me.Value = value
            Me.ParticipatesInDesignerPreview = participatesInDesignerPreview
        End Sub

        Friend ReadOnly Property Name As String
        Friend ReadOnly Property Value As Integer
        Friend ReadOnly Property ParticipatesInDesignerPreview As Boolean

        Private Shared Function Normalize(value As String) As String
            Return If(value, String.Empty).Trim()
        End Function

    End Class

End Namespace
