Option Strict On
Option Explicit On

Imports Nexamas.UI.RuntimeEnvironment
Imports SkiaSharp

Namespace Nexamas.UI.TextInput

    ' CONTRACT:
    ' MASTextInputLayoutSnapshot is a render/layout cache.
    '
    ' Single-line fields remain the active rendering path today.
    ' Multi-line fields are prepared by Stage 5B and become active in later Stage 5C/5D.
    Friend NotInheritable Class MASTextInputLayoutSnapshot

        Friend Property ContentRect As SKRect
        Friend Property DisplayText As String
        Friend Property IsRtl As Boolean

        Friend Property Paint As SKPaint
        Friend Property PaintSignature As String
        Friend Property BaselineY As Single
        Friend Property CrispRendering As Boolean = True

        Friend Property ScrollOffsetPx As Single
        Friend Property VerticalScrollOffsetPx As Single
        Friend Property CaretIndex As Integer
        Friend Property CaretX As Single

        Friend Property SelectionStart As Integer
        Friend Property SelectionLength As Integer

        Friend Property InlineLayout As MASTextInlineLayout

        ' Stage 5B: prepared multiline paragraph layout.
        ' It is cache data only; it must not become a source of truth.
        Friend Property ParagraphLayout As MASTextParagraphLayout

        Friend Property TextVersion As Integer
        Friend Property LayoutVersion As Integer
        Friend Property ThemeVersion As Integer
        Friend Property EnvironmentStamp As MASRuntimeEnvironmentStamp

    End Class

End Namespace
