﻿Option Strict On
Option Explicit On

Imports System

Friend Enum ShowcasePresentationKind
    OverviewCards
    TabularData
    ListNavigation
    SettingsForm
    VisualGallery
    SplitComparison
    DashboardMetrics
    ServiceActions
    ProofMatrix
    WorkflowSurface
End Enum

Partial Friend NotInheritable Class ShowcaseNavigationCatalog

    Friend Shared Function ResolvePresentationKind(entry As ShowcaseNavigationEntry) As ShowcasePresentationKind
        If entry Is Nothing Then Return ShowcasePresentationKind.OverviewCards

        Select Case entry.Id
            Case "datagrid", "output.product", "element.coverage", "certification.center", "diagnostics.dashboard", "render.verification", "application.architecture", "core.documentation", "licensing.evaluation", "packaging.consumer", "commercial.foundations", "application.lifetime", "dpi.text.accessibility"
                Return ShowcasePresentationKind.TabularData
            Case "data.analytics", "charts.dashboard"
                Return ShowcasePresentationKind.DashboardMetrics
            Case "inputs", "settings.sizing", "theme.studio", "surface.materials", "property.inspector"
                Return ShowcasePresentationKind.SettingsForm
            Case "lists.tree", "productivity.navigation", "selection"
                Return ShowcasePresentationKind.ListNavigation
            Case "tiles", "visual.editors", "file.surfaces", "feedback.status", "icon.resolution"
                Return ShowcasePresentationKind.VisualGallery
            Case "localization.rtl.product"
                Return ShowcasePresentationKind.SplitComparison
            Case "services", "buttons", "motion"
                Return ShowcasePresentationKind.ServiceActions
            Case "workflow.foundations", "planning.workspace"
                Return ShowcasePresentationKind.WorkflowSurface
            Case "virtualization"
                Return ShowcasePresentationKind.ProofMatrix
            Case Else
                Return ShowcasePresentationKind.OverviewCards
        End Select
    End Function

    Friend Shared Function ResolvePresentationKindTitle(kind As ShowcasePresentationKind) As String
        Select Case kind
            Case ShowcasePresentationKind.TabularData
                Return "DataGrid"
            Case ShowcasePresentationKind.ListNavigation
                Return "List / Navigation"
            Case ShowcasePresentationKind.SettingsForm
                Return "Form / Settings"
            Case ShowcasePresentationKind.VisualGallery
                Return "Gallery"
            Case ShowcasePresentationKind.SplitComparison
                Return "Split View"
            Case ShowcasePresentationKind.DashboardMetrics
                Return "Dashboard"
            Case ShowcasePresentationKind.ServiceActions
                Return "Command surface"
            Case ShowcasePresentationKind.ProofMatrix
                Return "Proof matrix"
            Case ShowcasePresentationKind.WorkflowSurface
                Return "Workflow surface"
            Case Else
                Return "Cards / Overview"
        End Select
    End Function

    Friend Shared Function ResolvePresentationDecision(kind As ShowcasePresentationKind) As String
        Select Case kind
            Case ShowcasePresentationKind.TabularData
                Return "Multi-field capability facts use MASDataGrid so columns, sorting, selection, and wide workspace behavior are demonstrated by the platform."
            Case ShowcasePresentationKind.ListNavigation
                Return "Sequential choices, route discovery, and compact option groups use MAS list/navigation surfaces instead of pretending to be data tables."
            Case ShowcasePresentationKind.SettingsForm
                Return "Editable product configuration uses MAS form/settings controls, not cards or table rows."
            Case ShowcasePresentationKind.VisualGallery
                Return "Visual assets and previewable surfaces use gallery/tile/card presentation because the primary value is visual comparison."
            Case ShowcasePresentationKind.SplitComparison
                Return "Before/after, LTR/RTL, and locale comparisons use split surfaces so both states stay visible without manual layout math."
            Case ShowcasePresentationKind.DashboardMetrics
                Return "Business summaries use metrics, dashboard grids, charts, and focused data surfaces rather than button-heavy galleries."
            Case ShowcasePresentationKind.ServiceActions
                Return "Operations use MAS command/action/service surfaces because the content is about doing, not browsing rows."
            Case ShowcasePresentationKind.ProofMatrix
                Return "Stress and quality proofs combine grids, metrics, and virtualization surfaces according to the amount of fields and rows."
            Case ShowcasePresentationKind.WorkflowSurface
                Return "Process pages use step, agenda, kanban, wizard, and validation surfaces because the information is stateful workflow."
            Case Else
                Return "Orientation pages use cards and metrics to direct the user without rebuilding a fixed left navigation tree."
        End Select
    End Function
End Class
