Option Strict On
Option Explicit On

Namespace Nexamas.UI.Components

    ''' <summary>
    ''' Friend-only readiness evidence for MASAvatarGroup refinement. The group remains
    ''' a compact display-first identity visual surface with an official +N overflow popover; people directories, contact lookup,
    ''' presence transport, thumbnail loading, tooltip previews, and collaboration services remain
    ''' outside the control.
    ''' </summary>
    Friend NotInheritable Class MASAvatarGroupReadinessManifest
        Friend Sub New(status As MASAvatarGroupReadinessStatus,
                       hasLayoutPolicy As Boolean,
                       hasOverflowCounterPolicy As Boolean,
                       hasRtlOrderingPolicy As Boolean,
                       hasKeyboardSelectionPolicy As Boolean,
                       hasDisplayFirstSelectionPolicy As Boolean,
                       hasPointerTopLayerPolicy As Boolean,
                       hasHoverTopLayerSuppressedPolicy As Boolean,
                       hasCircularVisualHitTestingPolicy As Boolean,
                       hasActionableOverflowPopoverPolicy As Boolean,
                       hasNoProfileEditorRoute As Boolean,
                       parallelPeopleDirectoryRouteAbsent As Boolean)
            Me.Status = status
            Me.HasLayoutPolicy = hasLayoutPolicy
            Me.HasOverflowCounterPolicy = hasOverflowCounterPolicy
            Me.HasRtlOrderingPolicy = hasRtlOrderingPolicy
            Me.HasKeyboardSelectionPolicy = hasKeyboardSelectionPolicy
            Me.HasDisplayFirstSelectionPolicy = hasDisplayFirstSelectionPolicy
            Me.HasPointerTopLayerPolicy = hasPointerTopLayerPolicy
            Me.HasHoverTopLayerSuppressedPolicy = hasHoverTopLayerSuppressedPolicy
            Me.HasCircularVisualHitTestingPolicy = hasCircularVisualHitTestingPolicy
            Me.HasActionableOverflowPopoverPolicy = hasActionableOverflowPopoverPolicy
            Me.HasNoProfileEditorRoute = hasNoProfileEditorRoute
            Me.ParallelPeopleDirectoryRouteAbsent = parallelPeopleDirectoryRouteAbsent
        End Sub

        Friend ReadOnly Property Status As MASAvatarGroupReadinessStatus
        Friend ReadOnly Property HasLayoutPolicy As Boolean
        Friend ReadOnly Property HasOverflowCounterPolicy As Boolean
        Friend ReadOnly Property HasRtlOrderingPolicy As Boolean
        Friend ReadOnly Property HasKeyboardSelectionPolicy As Boolean
        Friend ReadOnly Property HasDisplayFirstSelectionPolicy As Boolean
        Friend ReadOnly Property HasPointerTopLayerPolicy As Boolean
        Friend ReadOnly Property HasHoverTopLayerSuppressedPolicy As Boolean
        Friend ReadOnly Property HasCircularVisualHitTestingPolicy As Boolean
        Friend ReadOnly Property HasActionableOverflowPopoverPolicy As Boolean
        Friend ReadOnly Property HasNoProfileEditorRoute As Boolean
        Friend ReadOnly Property ParallelPeopleDirectoryRouteAbsent As Boolean

        Friend Shared Function CreateCurrent() As MASAvatarGroupReadinessManifest
            Return New MASAvatarGroupReadinessManifest(
                MASAvatarGroupReadinessStatus.Ready,
                True,
                MASAvatarGroupLayoutPolicy.HasOverflowCounterPolicy(),
                MASAvatarGroupLayoutPolicy.HasRtlOrderingPolicy(),
                True,
                MASAvatarGroupLayoutPolicy.HasDisplayFirstSelectionPolicy(),
                MASAvatarGroupLayoutPolicy.HasPointerTopLayerPolicy(),
                MASAvatarGroupLayoutPolicy.HasHoverTopLayerSuppressedPolicy(),
                MASAvatarGroupLayoutPolicy.HasCircularVisualHitTestingPolicy(),
                MASAvatarGroupLayoutPolicy.HasActionableOverflowPopoverPolicy(),
                MASAvatarGroupLayoutPolicy.HasNoProfileEditorRoute(),
                MASAvatarGroupLayoutPolicy.HasNoPeopleDirectoryRoute())
        End Function
    End Class

End Namespace
