Repository: spectreconsole/spectre.console

Issue:
Table line separators not showing for the first line when table headers are hidden
**Information**
 - OS: Windows 11 23H2 (OS Build 22631.2506)
 - Version: Spectre.Console 0.48.0
 - Terminal: Windows Terminal 1.19.3172.0

**Describe the bug**
When table headers are hidden, the first row separator is not drawn.

**To Reproduce**
```csharp
var table = new Table();

table.AddColumn("First");
table.AddColumn("Second");

table.AddRow("1", "2");
table.AddRow("3", "4");
table.AddRow("5", "6");

table.ShowRowSeparators = true;
table.HideHeaders();

AnsiConsole.Write(table);
```
**Expected behavior**
The first row separator should be visible even if table headers are hidden

**Screenshots**
![image](https://github.com/spectreconsole/spectre.console/assets/8770486/3f81a05b-4716-4351-92cc-b9735d863ef0)




Hints:

Patch:
diff --git a/src/Spectre.Console/Widgets/Table/TableRenderer.cs b/src/Spectre.Console/Widgets/Table/TableRenderer.cs
index 23bff61cd..0d1716685 100644
--- a/src/Spectre.Console/Widgets/Table/TableRenderer.cs
+++ b/src/Spectre.Console/Widgets/Table/TableRenderer.cs
@@ -150,9 +150,9 @@ public static List<Segment> Render(TableRendererContext context, List<int> colum
                 result.Add(Segment.LineBreak);
             }
 
-            // Show row separator?
+            // Show row separator, if headers are hidden show separator after the first row
             if (context.Border.SupportsRowSeparator && context.ShowRowSeparators
-                                                    && !isFirstRow && !isLastRow)
+                                                    && (!isFirstRow || (isFirstRow && !context.ShowHeaders)) && !isLastRow)
             {
                 var hasVisibleFootes = context is { ShowFooters: true, HasFooters: true };
                 var isNextLastLine = index == context.Rows.Count - 2;


Test patch:
diff --git a/test/Spectre.Console.Tests/Expectations/Widgets/Table/Render_Row_Separators_No_Header.Output.verified.txt b/test/Spectre.Console.Tests/Expectations/Widgets/Table/Render_Row_Separators_No_Header.Output.verified.txt
new file mode 100644
index 000000000..e296413d0
--- /dev/null
+++ b/test/Spectre.Console.Tests/Expectations/Widgets/Table/Render_Row_Separators_No_Header.Output.verified.txt
@@ -0,0 +1,7 @@
+﻿┌────────┬────────┐
+│ Qux    │ Corgi  │
+├────────┼────────┤
+│ Waldo  │ Grault │
+├────────┼────────┤
+│ Garply │ Fred   │
+└────────┴────────┘
diff --git a/test/Spectre.Console.Tests/Unit/Widgets/Table/TableTests.cs b/test/Spectre.Console.Tests/Unit/Widgets/Table/TableTests.cs
index 9df303846..18379bdcd 100644
--- a/test/Spectre.Console.Tests/Unit/Widgets/Table/TableTests.cs
+++ b/test/Spectre.Console.Tests/Unit/Widgets/Table/TableTests.cs
@@ -159,6 +159,29 @@ public Task Should_Render_Table_With_Row_Separators_Correctly()
         return Verifier.Verify(console.Output);
     }
 
+    [Fact]
+    [Expectation("Render_Row_Separators_No_Header")]
+    public Task Should_Render_Table_With_Row_Separators_No_Header_Correctly()
+    {
+        // Given
+        var console = new TestConsole();
+        var table = new Table();
+
+        table.ShowRowSeparators();
+        table.HideHeaders();
+
+        table.AddColumns("Foo", "Bar");
+        table.AddRow("Qux", "Corgi");
+        table.AddRow("Waldo", "Grault");
+        table.AddRow("Garply", "Fred");
+
+        // When
+        console.Write(table);
+
+        // Then
+        return Verifier.Verify(console.Output);
+    }
+
     [Fact]
     [Expectation("Render_EA_Character")]
     public Task Should_Render_Table_With_EA_Character_Correctly()