Public/Console/Write-Grid.ps1

function Write-Grid {
  [CmdletBinding()]
  param(
    [Parameter(Mandatory, Position = 0)]
    [int]$Columns,
    [Parameter(Mandatory, Position = 1)]
    [Array]$Rows
  )
  process {
    $grid = [Grid]::new()
    for ($i = 0; $i -lt $Columns; $i++) {
      $grid.AddColumn() | Out-Null
    }
    foreach ($row in $Rows) {
      if ($row -is [Array]) {
        $markupRow = [System.Collections.Generic.List[IRenderable]]::new()
        foreach ($item in $row) {
          if ($item -is [IRenderable]) {
            $markupRow.Add($item)
          } else {
            $markupRow.Add([Markup]::new([string]$item))
          }
        }
        [void]$grid.AddRow($markupRow.ToArray())
      }
    }
    [AnsiConsole]::Console.Write($grid)
  }
}