Option Strict On
Option Explicit On

Imports System

Namespace Nexamas.UI.Rendering

    ''' <summary>
    ''' Canonical identifiers for reusable surface-frame profiles.
    ''' The current platform frame corresponds to the frame visible on PanelShell-hosted dialogs,
    ''' FilePicker, FileExplorer, MessageBox, and floating PanelShell surfaces.
    ''' Material-specific frame ids are planning identifiers inside the existing VisualSurfaceFrame;
    ''' they do not create a second frame registry or repaint runtime frames by themselves.
    ''' </summary>
    Friend NotInheritable Class MASSurfaceFrameIds
        Private Sub New()
        End Sub

        Friend Const PlatformDefault As String = "platform.default"
        Friend Const SoftMist As String = "frame.soft-mist"
        Friend Const FrostedGlass As String = "frame.frosted-glass"
        Friend Const CrystalIce As String = "frame.crystal-ice"
        Friend Const WarmPaper As String = "frame.warm-paper"
        Friend Const GraphiteMetal As String = "frame.graphite-metal"

        Friend Shared Function IsKnownFrameKey(frameKey As String) As Boolean
            Dim key As String = If(frameKey, String.Empty).Trim()
            If key.Length = 0 Then Return False

            Return String.Equals(key, PlatformDefault, StringComparison.OrdinalIgnoreCase) OrElse
                   String.Equals(key, SoftMist, StringComparison.OrdinalIgnoreCase) OrElse
                   String.Equals(key, FrostedGlass, StringComparison.OrdinalIgnoreCase) OrElse
                   String.Equals(key, CrystalIce, StringComparison.OrdinalIgnoreCase) OrElse
                   String.Equals(key, WarmPaper, StringComparison.OrdinalIgnoreCase) OrElse
                   String.Equals(key, GraphiteMetal, StringComparison.OrdinalIgnoreCase)
        End Function
    End Class

End Namespace
