Option Strict On
Option Explicit On

Imports System
Imports System.Collections.Generic
Imports Nexamas.UI.Controls
Imports Nexamas.UI.Composition
Imports Nexamas.UI.General
Imports Nexamas.UI.Icons
Imports Nexamas.UI.Layout
Imports Nexamas.UI.Rendering
Imports Nexamas.UI.Theming
Imports Nexamas.UI.Values
Imports SkiaSharp
Imports Nexamas.UI.Architecture

Namespace Nexamas.UI.Components


    Partial Public Class MASToolbar
#Region "Factories"

        Public Shared Function Create() As MASToolbar
            Return New MASToolbar()
        End Function

#End Region




#Region "Surface Treatment API"

        Public Property SurfaceMaterial As String
            Get
                Return _surfaceMaterialKey
            End Get
            Set(value As String)
                Dim key As String = MASSurfaceTreatmentMaterialKeyNormalizer.NormalizeForStorage(value)
                If String.Equals(_surfaceMaterialKey, key, StringComparison.OrdinalIgnoreCase) Then Return
                _surfaceMaterialKey = key
                InvalidateVisual()
            End Set
        End Property

        Public Function WithSurfaceMaterial(materialKey As String) As MASToolbar
            SurfaceMaterial = materialKey
            Return Me
        End Function

#End Region

#Region "Unified MASSize Fluent API"

        ''' <summary>
        ''' Strongly typed entry into the shared MASSize intent API.
        ''' This method keeps fluent chains on the concrete element while delegating all sizing decisions to MASControlBase/MASSize.
        ''' </summary>
        Public Shadows Function WithSize(sizeIntent As Nexamas.UI.Layout.MASSize) As MASToolbar
            MyBase.SetSize(sizeIntent)
            Return Me
        End Function






#End Region

    End Class

End Namespace
