Option Strict On
Option Explicit On

Namespace Nexamas.UI.Components

    ''' <summary>
    ''' Defines MessageBox content metrics only.
    ''' Panel chrome, header, close button, outer padding, and corner geometry are owned by MASPanelShell.
    ''' The shell uses a preferred size for short messages and may grow internally up to
    ''' the configured maximum height before delegating overflow to the MAS Scroll stack.
    ''' </summary>
    Friend NotInheritable Class MessageBoxMetrics

        ' ===== Adaptive shell size =====
        Friend Property FixedPanelWidth As Single = Nexamas.UI.Values.MessageBoxTokens.FixedPanelWidthDip
        Friend Property FixedPanelHeight As Single = Nexamas.UI.Values.MessageBoxTokens.FixedPanelHeightDip
        Friend Property MaxPanelHeight As Single = Nexamas.UI.Values.MessageBoxTokens.MaxPanelHeightDip
        Friend Property ViewportEdgeMargin As Single = Nexamas.UI.Values.MessageBoxTokens.ViewportEdgeMarginDip

        ' ===== Content spacing =====
        Friend Property ContentTopGap As Single = Nexamas.UI.Values.MessageBoxTokens.ContentTopGapDip
        Friend Property ContentBottomGap As Single = Nexamas.UI.Values.MessageBoxTokens.ContentBottomGapDip
        Friend Property MessageTopInset As Single = Nexamas.UI.Values.MessageBoxTokens.MessageTopInsetDip
        Friend Property DetailTopGap As Single = Nexamas.UI.Values.MessageBoxTokens.DetailTopGapDip

        ' ===== Buttons =====
        Friend Property ButtonsBottomGap As Single = Nexamas.UI.Values.MessageBoxTokens.ButtonsBottomGapDip
        Friend Property ButtonsRowGap As Single = Nexamas.UI.Values.MessageBoxTokens.ButtonsRowGapDip
        Friend Property ButtonsColumnGap As Single = Nexamas.UI.Values.MessageBoxTokens.ButtonsColumnGapDip

        Friend Property SingleLineButtonsTopGap As Single = Nexamas.UI.Values.MessageBoxTokens.SingleLineButtonsTopGapDip
        Friend Property MultiLineButtonsTopGap As Single = Nexamas.UI.Values.MessageBoxTokens.MultiLineButtonsTopGapDip

        Friend Property ButtonHeight As Single = Nexamas.UI.Values.MessageBoxTokens.ButtonHeightDip
        Friend Property ButtonMinWidth As Single = Nexamas.UI.Values.MessageBoxTokens.ButtonMinWidthDip
        Friend Property ButtonMaxWidth As Single = Nexamas.UI.Values.MessageBoxTokens.ButtonMaxWidthDip
        Friend Property ButtonTextHorizontalPadding As Single = Nexamas.UI.Values.MessageBoxTokens.ButtonTextHorizontalPaddingDip

        ' ===== Company icon =====
        Friend Property CompanyIconMinSize As Single = Nexamas.UI.Values.MessageBoxTokens.CompanyIconMinSizeDip
        Friend Property CompanyIconPreferredSize As Single = Nexamas.UI.Values.MessageBoxTokens.CompanyIconPreferredSizeDip
        Friend Property CompanyIconMaxSize As Single = Nexamas.UI.Values.MessageBoxTokens.CompanyIconMaxSizeDip
        Friend Property CompanyIconBottomGap As Single = Nexamas.UI.Values.MessageBoxTokens.CompanyIconBottomGapDip

        ' ===== Text width / wrapping =====
        Friend Property ContentMaxReadableWidth As Single = Nexamas.UI.Values.MessageBoxTokens.ContentMaxReadableWidthDip

        ' ===== Scrollable content viewport =====
        Friend Property ContentMinViewportHeight As Single = Nexamas.UI.Values.MessageBoxTokens.ContentMinViewportHeightDip
        Friend Property ContentScrollFadeHeightDip As Single = Nexamas.UI.Values.MessageBoxTokens.ContentScrollFadeHeightDip

        ' ===== Checkbox =====
        Friend Property CheckBoxTopGap As Single = Nexamas.UI.Values.MessageBoxTokens.CheckBoxTopGapDip
        Friend Property CheckBoxHeight As Single = Nexamas.UI.Values.MessageBoxTokens.CheckBoxHeightDip
        Friend Property CheckBoxBoxSize As Single = Nexamas.UI.Values.MessageBoxTokens.CheckBoxBoxSizeDip
        Friend Property CheckBoxTextGap As Single = Nexamas.UI.Values.MessageBoxTokens.CheckBoxTextGapDip

    End Class

End Namespace
