Option Strict On
Option Explicit On

Namespace Nexamas.UI.Controls

    ''' <summary>
    ''' Friend-only readiness evidence for MASPopover Round 18 refinement. Popover is
    ''' the public request gateway only; hosted content, placement geometry, focus,
    ''' dismissal, and cleanup remain policy/FloatRuntime-owned implementation facts.
    ''' </summary>
    Friend NotInheritable Class MASPopoverReadinessManifest
        Friend Sub New(status As MASPopoverReadinessStatus,
                       hasPlacementPolicy As Boolean,
                       hasCollisionPolicy As Boolean,
                       hasKeyboardDismissBoundary As Boolean,
                       hasFocusScopeBoundary As Boolean,
                       parallelOverlayServiceAbsent As Boolean,
                       publicFloatRuntimeLeakAbsent As Boolean)
            Me.Status = status
            Me.HasPlacementPolicy = hasPlacementPolicy
            Me.HasCollisionPolicy = hasCollisionPolicy
            Me.HasKeyboardDismissBoundary = hasKeyboardDismissBoundary
            Me.HasFocusScopeBoundary = hasFocusScopeBoundary
            Me.ParallelOverlayServiceAbsent = parallelOverlayServiceAbsent
            Me.PublicFloatRuntimeLeakAbsent = publicFloatRuntimeLeakAbsent
        End Sub

        Friend ReadOnly Property Status As MASPopoverReadinessStatus
        Friend ReadOnly Property HasPlacementPolicy As Boolean
        Friend ReadOnly Property HasCollisionPolicy As Boolean
        Friend ReadOnly Property HasKeyboardDismissBoundary As Boolean
        Friend ReadOnly Property HasFocusScopeBoundary As Boolean
        Friend ReadOnly Property ParallelOverlayServiceAbsent As Boolean
        Friend ReadOnly Property PublicFloatRuntimeLeakAbsent As Boolean

        Friend Shared Function CreateCurrent() As MASPopoverReadinessManifest
            Return New MASPopoverReadinessManifest(MASPopoverReadinessStatus.Ready, True, True, True, True, True, True)
        End Function
    End Class

End Namespace
