Repository: Textualize/textual
Pull request: Refresh layout of option lists on add.
Ensures options added to an empty list after mount are displayed.

Fixes #5794.

Attached screenshot of added snapshot test with fix reverted.
<img width="1495" alt="Screenshot 2025-05-10 at 11 52 38 PM" src="https://github.com/user-attachments/assets/f4241756-0c91-4bc5-9e69-fb8b989dccf0" />


Problem statement:
Options added to an empty (or cleared) OptionList after mount are not displayed.
OptionList._update_lines() exits early if the scroll region has zero height, which can be the case when called  from add_options() after mount.

Fix is to refresh the layout before _update_lines().

Filing issue to attach a PR to.

Hints from issue discussion:
We found the following entries in the [FAQ](https://textual.textualize.io/FAQ/) which you may find helpful:


- [How do I center a widget in a screen?](https://textual.textualize.io/FAQ/#how-do-i-center-a-widget-in-a-screen)
- [How do I pass arguments to an app?](https://textual.textualize.io/FAQ/#how-do-i-pass-arguments-to-an-app)

Feel free to close this issue if you found an answer in the FAQ. Otherwise, please give us a little time to review.

This is an automated reply, generated by [FAQtory](https://github.com/willmcgugan/faqtory)

Commit message: Refresh layout of option lists on add.

Ensures options added to an empty list after mount are displayed.

Patch to review:
diff --git a/src/textual/widgets/_option_list.py b/src/textual/widgets/_option_list.py
index 00909e3d9d..3cd4bdd489 100644
--- a/src/textual/widgets/_option_list.py
+++ b/src/textual/widgets/_option_list.py
@@ -373,6 +373,7 @@ def add_options(self, new_options: Iterable[OptionListContent]) -> Self:
                 self._id_to_option[option._id] = option
             add_option(option)
         if self.is_mounted:
+            self.refresh(layout=True)
             self._update_lines()
         return self
 
diff --git a/tests/snapshot_tests/__snapshots__/test_snapshots/test_option_list_build.svg b/tests/snapshot_tests/__snapshots__/test_snapshots/test_option_list_build.svg
index ac27972501..9378efcf58 100644
--- a/tests/snapshot_tests/__snapshots__/test_snapshots/test_option_list_build.svg
+++ b/tests/snapshot_tests/__snapshots__/test_snapshots/test_option_list_build.svg
@@ -19,138 +19,138 @@
         font-weight: 700;
     }
 
-    .terminal-242230253-matrix {
+    .terminal-matrix {
         font-family: Fira Code, monospace;
         font-size: 20px;
         line-height: 24.4px;
         font-variant-east-asian: full-width;
     }
 
-    .terminal-242230253-title {
+    .terminal-title {
         font-size: 18px;
         font-weight: bold;
         font-family: arial;
     }
 
-    .terminal-242230253-r1 { fill: #121212 }
-.terminal-242230253-r2 { fill: #0178d4 }
-.terminal-242230253-r3 { fill: #191919 }
-.terminal-242230253-r4 { fill: #c5c8c6 }
-.terminal-242230253-r5 { fill: #ddedf9;font-weight: bold }
-.terminal-242230253-r6 { fill: #e0e0e0 }
-.terminal-242230253-r7 { fill: #424242 }
-.terminal-242230253-r8 { fill: #3b3b3b }
-.terminal-242230253-r9 { fill: #f4005f }
+    .terminal-r1 { fill: #121212 }
+.terminal-r2 { fill: #0178d4 }
+.terminal-r3 { fill: #191919 }
+.terminal-r4 { fill: #c5c8c6 }
+.terminal-r5 { fill: #ddedf9;font-weight: bold }
+.terminal-r6 { fill: #e0e0e0 }
+.terminal-r7 { fill: #424242 }
+.terminal-r8 { fill: #3b3b3b }
+.terminal-r9 { fill: #f4005f }
     </style>
 
     <defs>
-    <clipPath id="terminal-242230253-clip-terminal">
+    <clipPath id="terminal-clip-terminal">
       <rect x="0" y="0" width="975.0" height="584.5999999999999" />
     </clipPath>
-    <clipPath id="terminal-242230253-line-0">
+    <clipPath id="terminal-line-0">
     <rect x="0" y="1.5" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-1">
+<clipPath id="terminal-line-1">
     <rect x="0" y="25.9" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-2">
+<clipPath id="terminal-line-2">
     <rect x="0" y="50.3" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-3">
+<clipPath id="terminal-line-3">
     <rect x="0" y="74.7" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-4">
+<clipPath id="terminal-line-4">
     <rect x="0" y="99.1" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-5">
+<clipPath id="terminal-line-5">
     <rect x="0" y="123.5" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-6">
+<clipPath id="terminal-line-6">
     <rect x="0" y="147.9" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-7">
+<clipPath id="terminal-line-7">
     <rect x="0" y="172.3" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-8">
+<clipPath id="terminal-line-8">
     <rect x="0" y="196.7" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-9">
+<clipPath id="terminal-line-9">
     <rect x="0" y="221.1" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-10">
+<clipPath id="terminal-line-10">
     <rect x="0" y="245.5" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-11">
+<clipPath id="terminal-line-11">
     <rect x="0" y="269.9" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-12">
+<clipPath id="terminal-line-12">
     <rect x="0" y="294.3" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-13">
+<clipPath id="terminal-line-13">
     <rect x="0" y="318.7" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-14">
+<clipPath id="terminal-line-14">
     <rect x="0" y="343.1" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-15">
+<clipPath id="terminal-line-15">
     <rect x="0" y="367.5" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-16">
+<clipPath id="terminal-line-16">
     <rect x="0" y="391.9" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-17">
+<clipPath id="terminal-line-17">
     <rect x="0" y="416.3" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-18">
+<clipPath id="terminal-line-18">
     <rect x="0" y="440.7" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-19">
+<clipPath id="terminal-line-19">
     <rect x="0" y="465.1" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-20">
+<clipPath id="terminal-line-20">
     <rect x="0" y="489.5" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-21">
+<clipPath id="terminal-line-21">
     <rect x="0" y="513.9" width="976" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-242230253-line-22">
+<clipPath id="terminal-line-22">
     <rect x="0" y="538.3" width="976" height="24.65"/>
             </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="633.6" rx="8"/><text class="terminal-242230253-title" fill="#c5c8c6" text-anchor="middle" x="496" y="27">OptionListApp</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="633.6" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="496" y="27">OptionListApp</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
             <circle cx="44" cy="0" r="7" fill="#28c840"/>
             </g>
         
-    <g transform="translate(9, 41)" clip-path="url(#terminal-242230253-clip-terminal)">
-    <rect fill="#0178d4" x="0" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="1.5" width="292.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="305" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="317.2" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="329.4" y="1.5" width="305" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="634.4" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="646.6" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="658.8" y="1.5" width="305" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="24.4" y="25.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="61" y="25.9" width="231.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="292.8" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="305" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="317.2" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="329.4" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="341.6" y="25.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="378.2" y="25.9" width="244" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="622.2" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="634.4" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="646.6" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="658.8" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="671" y="25.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="707.6" y="25.9" width="244" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="951.6" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="24.4" y="50.3" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="61" y="50.3" width="231.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="292.8" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="305" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="317.2" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="329.4" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="341.6" y="50.3" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="378.2" y="50.3" width="244" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="622.2" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="634.4" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="646.6" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="658.8" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="671" y="50.3" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="707.6" y="50.3" width="244" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="951.6" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="24.4" y="74.7" width="268.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="292.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="305" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="317.2" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="329.4" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="341.6" y="74.7" width="280.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="622.2" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="634.4" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="646.6" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="658.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="671" y="74.7" width="280.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="951.6" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="24.4" y="99.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="85.4" y="99.1" width="207.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="292.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="305" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="317.2" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="329.4" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="341.6" y="99.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="402.6" y="99.1" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="622.2" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="634.4" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="646.6" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="658.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="671" y="99.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="732" y="99.1" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="951.6" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="123.5" width="292.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="305" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="317.2" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="329.4" y="123.5" width="305" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="634.4" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="646.6" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="658.8" y="123.5" width="305" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="147.9" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="172.3" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="196.7" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="221.1" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="245.5" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="269.9" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="294.3" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="318.7" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="343.1" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="367.5" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="391.9" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="416.3" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="440.7" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="465.1" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="489.5" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="513.9" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="538.3" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="562.7" width="976" height="24.65" shape-rendering="crispEdges"/>
-    <g class="terminal-242230253-matrix">
-    <text class="terminal-242230253-r1" x="0" y="20" textLength="12.2" clip-path="url(#terminal-242230253-line-0)">▊</text><text class="terminal-242230253-r2" x="12.2" y="20" textLength="292.8" clip-path="url(#terminal-242230253-line-0)">▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔</text><text class="terminal-242230253-r2" x="305" y="20" textLength="12.2" clip-path="url(#terminal-242230253-line-0)">▎</text><text class="terminal-242230253-r1" x="317.2" y="20" textLength="12.2" clip-path="url(#terminal-242230253-line-0)">▊</text><text class="terminal-242230253-r3" x="329.4" y="20" textLength="305" clip-path="url(#terminal-242230253-line-0)">▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔</text><text class="terminal-242230253-r3" x="634.4" y="20" textLength="12.2" clip-path="url(#terminal-242230253-line-0)">▎</text><text class="terminal-242230253-r1" x="646.6" y="20" textLength="12.2" clip-path="url(#terminal-242230253-line-0)">▊</text><text class="terminal-242230253-r3" x="658.8" y="20" textLength="305" clip-path="url(#terminal-242230253-line-0)">▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔</text><text class="terminal-242230253-r3" x="963.8" y="20" textLength="12.2" clip-path="url(#terminal-242230253-line-0)">▎</text><text class="terminal-242230253-r4" x="976" y="20" textLength="12.2" clip-path="url(#terminal-242230253-line-0)">
-</text><text class="terminal-242230253-r1" x="0" y="44.4" textLength="12.2" clip-path="url(#terminal-242230253-line-1)">▊</text><text class="terminal-242230253-r5" x="24.4" y="44.4" textLength="36.6" clip-path="url(#terminal-242230253-line-1)">One</text><text class="terminal-242230253-r2" x="305" y="44.4" textLength="12.2" clip-path="url(#terminal-242230253-line-1)">▎</text><text class="terminal-242230253-r1" x="317.2" y="44.4" textLength="12.2" clip-path="url(#terminal-242230253-line-1)">▊</text><text class="terminal-242230253-r6" x="341.6" y="44.4" textLength="36.6" clip-path="url(#terminal-242230253-line-1)">One</text><text class="terminal-242230253-r3" x="634.4" y="44.4" textLength="12.2" clip-path="url(#terminal-242230253-line-1)">▎</text><text class="terminal-242230253-r1" x="646.6" y="44.4" textLength="12.2" clip-path="url(#terminal-242230253-line-1)">▊</text><text class="terminal-242230253-r6" x="671" y="44.4" textLength="36.6" clip-path="url(#terminal-242230253-line-1)">One</text><text class="terminal-242230253-r3" x="963.8" y="44.4" textLength="12.2" clip-path="url(#terminal-242230253-line-1)">▎</text><text class="terminal-242230253-r4" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-242230253-line-1)">
-</text><text class="terminal-242230253-r1" x="0" y="68.8" textLength="12.2" clip-path="url(#terminal-242230253-line-2)">▊</text><text class="terminal-242230253-r6" x="24.4" y="68.8" textLength="36.6" clip-path="url(#terminal-242230253-line-2)">Two</text><text class="terminal-242230253-r2" x="305" y="68.8" textLength="12.2" clip-path="url(#terminal-242230253-line-2)">▎</text><text class="terminal-242230253-r1" x="317.2" y="68.8" textLength="12.2" clip-path="url(#terminal-242230253-line-2)">▊</text><text class="terminal-242230253-r6" x="341.6" y="68.8" textLength="36.6" clip-path="url(#terminal-242230253-line-2)">Two</text><text class="terminal-242230253-r3" x="634.4" y="68.8" textLength="12.2" clip-path="url(#terminal-242230253-line-2)">▎</text><text class="terminal-242230253-r1" x="646.6" y="68.8" textLength="12.2" clip-path="url(#terminal-242230253-line-2)">▊</text><text class="terminal-242230253-r6" x="671" y="68.8" textLength="36.6" clip-path="url(#terminal-242230253-line-2)">Two</text><text class="terminal-242230253-r3" x="963.8" y="68.8" textLength="12.2" clip-path="url(#terminal-242230253-line-2)">▎</text><text class="terminal-242230253-r4" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-242230253-line-2)">
-</text><text class="terminal-242230253-r1" x="0" y="93.2" textLength="12.2" clip-path="url(#terminal-242230253-line-3)">▊</text><text class="terminal-242230253-r7" x="24.4" y="93.2" textLength="268.4" clip-path="url(#terminal-242230253-line-3)">──────────────────────</text><text class="terminal-242230253-r2" x="305" y="93.2" textLength="12.2" clip-path="url(#terminal-242230253-line-3)">▎</text><text class="terminal-242230253-r1" x="317.2" y="93.2" textLength="12.2" clip-path="url(#terminal-242230253-line-3)">▊</text><text class="terminal-242230253-r8" x="341.6" y="93.2" textLength="280.6" clip-path="url(#terminal-242230253-line-3)">───────────────────────</text><text class="terminal-242230253-r3" x="634.4" y="93.2" textLength="12.2" clip-path="url(#terminal-242230253-line-3)">▎</text><text class="terminal-242230253-r1" x="646.6" y="93.2" textLength="12.2" clip-path="url(#terminal-242230253-line-3)">▊</text><text class="terminal-242230253-r8" x="671" y="93.2" textLength="280.6" clip-path="url(#terminal-242230253-line-3)">───────────────────────</text><text class="terminal-242230253-r3" x="963.8" y="93.2" textLength="12.2" clip-path="url(#terminal-242230253-line-3)">▎</text><text class="terminal-242230253-r4" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-242230253-line-3)">
-</text><text class="terminal-242230253-r1" x="0" y="117.6" textLength="12.2" clip-path="url(#terminal-242230253-line-4)">▊</text><text class="terminal-242230253-r9" x="24.4" y="117.6" textLength="61" clip-path="url(#terminal-242230253-line-4)">Three</text><text class="terminal-242230253-r2" x="305" y="117.6" textLength="12.2" clip-path="url(#terminal-242230253-line-4)">▎</text><text class="terminal-242230253-r1" x="317.2" y="117.6" textLength="12.2" clip-path="url(#terminal-242230253-line-4)">▊</text><text class="terminal-242230253-r9" x="341.6" y="117.6" textLength="61" clip-path="url(#terminal-242230253-line-4)">Three</text><text class="terminal-242230253-r3" x="634.4" y="117.6" textLength="12.2" clip-path="url(#terminal-242230253-line-4)">▎</text><text class="terminal-242230253-r1" x="646.6" y="117.6" textLength="12.2" clip-path="url(#terminal-242230253-line-4)">▊</text><text class="terminal-242230253-r9" x="671" y="117.6" textLength="61" clip-path="url(#terminal-242230253-line-4)">Three</text><text class="terminal-242230253-r3" x="963.8" y="117.6" textLength="12.2" clip-path="url(#terminal-242230253-line-4)">▎</text><text class="terminal-242230253-r4" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-242230253-line-4)">
-</text><text class="terminal-242230253-r1" x="0" y="142" textLength="12.2" clip-path="url(#terminal-242230253-line-5)">▊</text><text class="terminal-242230253-r2" x="12.2" y="142" textLength="292.8" clip-path="url(#terminal-242230253-line-5)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-242230253-r2" x="305" y="142" textLength="12.2" clip-path="url(#terminal-242230253-line-5)">▎</text><text class="terminal-242230253-r1" x="317.2" y="142" textLength="12.2" clip-path="url(#terminal-242230253-line-5)">▊</text><text class="terminal-242230253-r3" x="329.4" y="142" textLength="305" clip-path="url(#terminal-242230253-line-5)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-242230253-r3" x="634.4" y="142" textLength="12.2" clip-path="url(#terminal-242230253-line-5)">▎</text><text class="terminal-242230253-r1" x="646.6" y="142" textLength="12.2" clip-path="url(#terminal-242230253-line-5)">▊</text><text class="terminal-242230253-r3" x="658.8" y="142" textLength="305" clip-path="url(#terminal-242230253-line-5)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-242230253-r3" x="963.8" y="142" textLength="12.2" clip-path="url(#terminal-242230253-line-5)">▎</text><text class="terminal-242230253-r4" x="976" y="142" textLength="12.2" clip-path="url(#terminal-242230253-line-5)">
-</text><text class="terminal-242230253-r4" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-242230253-line-6)">
-</text><text class="terminal-242230253-r4" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-242230253-line-7)">
-</text><text class="terminal-242230253-r4" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-242230253-line-8)">
-</text><text class="terminal-242230253-r4" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-242230253-line-9)">
-</text><text class="terminal-242230253-r4" x="976" y="264" textLength="12.2" clip-path="url(#terminal-242230253-line-10)">
-</text><text class="terminal-242230253-r4" x="976" y="288.4" textLength="12.2" clip-path="url(#terminal-242230253-line-11)">
-</text><text class="terminal-242230253-r4" x="976" y="312.8" textLength="12.2" clip-path="url(#terminal-242230253-line-12)">
-</text><text class="terminal-242230253-r4" x="976" y="337.2" textLength="12.2" clip-path="url(#terminal-242230253-line-13)">
-</text><text class="terminal-242230253-r4" x="976" y="361.6" textLength="12.2" clip-path="url(#terminal-242230253-line-14)">
-</text><text class="terminal-242230253-r4" x="976" y="386" textLength="12.2" clip-path="url(#terminal-242230253-line-15)">
-</text><text class="terminal-242230253-r4" x="976" y="410.4" textLength="12.2" clip-path="url(#terminal-242230253-line-16)">
-</text><text class="terminal-242230253-r4" x="976" y="434.8" textLength="12.2" clip-path="url(#terminal-242230253-line-17)">
-</text><text class="terminal-242230253-r4" x="976" y="459.2" textLength="12.2" clip-path="url(#terminal-242230253-line-18)">
-</text><text class="terminal-242230253-r4" x="976" y="483.6" textLength="12.2" clip-path="url(#terminal-242230253-line-19)">
-</text><text class="terminal-242230253-r4" x="976" y="508" textLength="12.2" clip-path="url(#terminal-242230253-line-20)">
-</text><text class="terminal-242230253-r4" x="976" y="532.4" textLength="12.2" clip-path="url(#terminal-242230253-line-21)">
-</text><text class="terminal-242230253-r4" x="976" y="556.8" textLength="12.2" clip-path="url(#terminal-242230253-line-22)">
+    <g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
+    <rect fill="#0178d4" x="0" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="1.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="231.8" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="244" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="256.2" y="1.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="475.8" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="488" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="500.2" y="1.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="719.8" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="732" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="744.2" y="1.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="24.4" y="25.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="61" y="25.9" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="219.6" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="231.8" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="244" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="256.2" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="268.4" y="25.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="305" y="25.9" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="463.6" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="475.8" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="488" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="500.2" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="512.4" y="25.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="549" y="25.9" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="707.6" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="719.8" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="732" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="744.2" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="756.4" y="25.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#153854" x="793" y="25.9" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="951.6" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="24.4" y="50.3" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="61" y="50.3" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="219.6" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="231.8" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="244" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="256.2" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="268.4" y="50.3" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="305" y="50.3" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="463.6" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="475.8" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="488" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="500.2" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="512.4" y="50.3" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="50.3" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="707.6" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="719.8" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="732" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="744.2" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="756.4" y="50.3" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="793" y="50.3" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="951.6" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="24.4" y="74.7" width="195.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="219.6" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="231.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="244" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="256.2" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="268.4" y="74.7" width="195.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="463.6" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="475.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="488" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="500.2" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="512.4" y="74.7" width="195.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="707.6" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="719.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="732" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="744.2" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="756.4" y="74.7" width="195.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="951.6" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="24.4" y="99.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="85.4" y="99.1" width="134.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="219.6" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="231.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="244" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="256.2" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="268.4" y="99.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="329.4" y="99.1" width="134.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="463.6" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="475.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="488" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="500.2" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="512.4" y="99.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="573.4" y="99.1" width="134.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="707.6" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="719.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="732" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="744.2" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="756.4" y="99.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="817.4" y="99.1" width="134.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="951.6" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="0" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#272727" x="12.2" y="123.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="231.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="244" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="256.2" y="123.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="475.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="488" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="500.2" y="123.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="719.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#191919" x="732" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="744.2" y="123.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="963.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="147.9" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="172.3" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="196.7" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="221.1" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="245.5" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="269.9" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="294.3" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="318.7" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="343.1" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="367.5" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="391.9" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="416.3" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="440.7" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="465.1" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="489.5" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="513.9" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="538.3" width="976" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="0" y="562.7" width="976" height="24.65" shape-rendering="crispEdges"/>
+    <g class="terminal-matrix">
+    <text class="terminal-r1" x="0" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">▊</text><text class="terminal-r2" x="12.2" y="20" textLength="219.6" clip-path="url(#terminal-line-0)">▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔</text><text class="terminal-r2" x="231.8" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">▎</text><text class="terminal-r1" x="244" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">▊</text><text class="terminal-r3" x="256.2" y="20" textLength="219.6" clip-path="url(#terminal-line-0)">▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔</text><text class="terminal-r3" x="475.8" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">▎</text><text class="terminal-r1" x="488" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">▊</text><text class="terminal-r3" x="500.2" y="20" textLength="219.6" clip-path="url(#terminal-line-0)">▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔</text><text class="terminal-r3" x="719.8" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">▎</text><text class="terminal-r1" x="732" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">▊</text><text class="terminal-r3" x="744.2" y="20" textLength="219.6" clip-path="url(#terminal-line-0)">▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔</text><text class="terminal-r3" x="963.8" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">▎</text><text class="terminal-r4" x="976" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
+</text><text class="terminal-r1" x="0" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">▊</text><text class="terminal-r5" x="24.4" y="44.4" textLength="36.6" clip-path="url(#terminal-line-1)">One</text><text class="terminal-r2" x="231.8" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">▎</text><text class="terminal-r1" x="244" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">▊</text><text class="terminal-r6" x="268.4" y="44.4" textLength="36.6" clip-path="url(#terminal-line-1)">One</text><text class="terminal-r3" x="475.8" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">▎</text><text class="terminal-r1" x="488" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">▊</text><text class="terminal-r6" x="512.4" y="44.4" textLength="36.6" clip-path="url(#terminal-line-1)">One</text><text class="terminal-r3" x="719.8" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">▎</text><text class="terminal-r1" x="732" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">▊</text><text class="terminal-r6" x="756.4" y="44.4" textLength="36.6" clip-path="url(#terminal-line-1)">One</text><text class="terminal-r3" x="963.8" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">▎</text><text class="terminal-r4" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
+</text><text class="terminal-r1" x="0" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">▊</text><text class="terminal-r6" x="24.4" y="68.8" textLength="36.6" clip-path="url(#terminal-line-2)">Two</text><text class="terminal-r2" x="231.8" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">▎</text><text class="terminal-r1" x="244" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">▊</text><text class="terminal-r6" x="268.4" y="68.8" textLength="36.6" clip-path="url(#terminal-line-2)">Two</text><text class="terminal-r3" x="475.8" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">▎</text><text class="terminal-r1" x="488" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">▊</text><text class="terminal-r6" x="512.4" y="68.8" textLength="36.6" clip-path="url(#terminal-line-2)">Two</text><text class="terminal-r3" x="719.8" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">▎</text><text class="terminal-r1" x="732" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">▊</text><text class="terminal-r6" x="756.4" y="68.8" textLength="36.6" clip-path="url(#terminal-line-2)">Two</text><text class="terminal-r3" x="963.8" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">▎</text><text class="terminal-r4" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
+</text><text class="terminal-r1" x="0" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">▊</text><text class="terminal-r7" x="24.4" y="93.2" textLength="195.2" clip-path="url(#terminal-line-3)">────────────────</text><text class="terminal-r2" x="231.8" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">▎</text><text class="terminal-r1" x="244" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">▊</text><text class="terminal-r8" x="268.4" y="93.2" textLength="195.2" clip-path="url(#terminal-line-3)">────────────────</text><text class="terminal-r3" x="475.8" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">▎</text><text class="terminal-r1" x="488" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">▊</text><text class="terminal-r8" x="512.4" y="93.2" textLength="195.2" clip-path="url(#terminal-line-3)">────────────────</text><text class="terminal-r3" x="719.8" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">▎</text><text class="terminal-r1" x="732" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">▊</text><text class="terminal-r8" x="756.4" y="93.2" textLength="195.2" clip-path="url(#terminal-line-3)">────────────────</text><text class="terminal-r3" x="963.8" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">▎</text><text class="terminal-r4" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
+</text><text class="terminal-r1" x="0" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">▊</text><text class="terminal-r9" x="24.4" y="117.6" textLength="61" clip-path="url(#terminal-line-4)">Three</text><text class="terminal-r2" x="231.8" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">▎</text><text class="terminal-r1" x="244" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">▊</text><text class="terminal-r9" x="268.4" y="117.6" textLength="61" clip-path="url(#terminal-line-4)">Three</text><text class="terminal-r3" x="475.8" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">▎</text><text class="terminal-r1" x="488" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">▊</text><text class="terminal-r9" x="512.4" y="117.6" textLength="61" clip-path="url(#terminal-line-4)">Three</text><text class="terminal-r3" x="719.8" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">▎</text><text class="terminal-r1" x="732" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">▊</text><text class="terminal-r9" x="756.4" y="117.6" textLength="61" clip-path="url(#terminal-line-4)">Three</text><text class="terminal-r3" x="963.8" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">▎</text><text class="terminal-r4" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
+</text><text class="terminal-r1" x="0" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">▊</text><text class="terminal-r2" x="12.2" y="142" textLength="219.6" clip-path="url(#terminal-line-5)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-r2" x="231.8" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">▎</text><text class="terminal-r1" x="244" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">▊</text><text class="terminal-r3" x="256.2" y="142" textLength="219.6" clip-path="url(#terminal-line-5)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-r3" x="475.8" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">▎</text><text class="terminal-r1" x="488" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">▊</text><text class="terminal-r3" x="500.2" y="142" textLength="219.6" clip-path="url(#terminal-line-5)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-r3" x="719.8" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">▎</text><text class="terminal-r1" x="732" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">▊</text><text class="terminal-r3" x="744.2" y="142" textLength="219.6" clip-path="url(#terminal-line-5)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-r3" x="963.8" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">▎</text><text class="terminal-r4" x="976" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
+</text><text class="terminal-r4" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
+</text><text class="terminal-r4" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
+</text><text class="terminal-r4" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
+</text><text class="terminal-r4" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
+</text><text class="terminal-r4" x="976" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
+</text><text class="terminal-r4" x="976" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
+</text><text class="terminal-r4" x="976" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
+</text><text class="terminal-r4" x="976" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
+</text><text class="terminal-r4" x="976" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
+</text><text class="terminal-r4" x="976" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
+</text><text class="terminal-r4" x="976" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
+</text><text class="terminal-r4" x="976" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
+</text><text class="terminal-r4" x="976" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
+</text><text class="terminal-r4" x="976" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
+</text><text class="terminal-r4" x="976" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
+</text><text class="terminal-r4" x="976" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
+</text><text class="terminal-r4" x="976" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
 </text>
     </g>
     </g>
diff --git a/tests/snapshot_tests/snapshot_apps/option_list.py b/tests/snapshot_tests/snapshot_apps/option_list.py
index 36e4691dd5..580a3c8cf1 100644
--- a/tests/snapshot_tests/snapshot_apps/option_list.py
+++ b/tests/snapshot_tests/snapshot_apps/option_list.py
@@ -10,6 +10,8 @@
 
 class OptionListApp(App[None]):
 
+    BINDINGS = [("a", "add", "add")]
+
     def compose( self ) -> ComposeResult:
         with Horizontal():
             yield OptionList(
@@ -20,6 +22,7 @@ def compose( self ) -> ComposeResult:
             )
             yield OptionList(id="later-individual")
             yield OptionList(id="later-at-once")
+            yield OptionList(id="after-mount")
 
     def on_mount(self) -> None:
         options: list[None | str | Text | Option] = [
@@ -41,5 +44,15 @@ def on_mount(self) -> None:
         ])
         option_list.highlighted = 0
 
+    def action_add(self):
+        option_list = self.query_one("#after-mount", OptionList)
+        option_list.add_options([
+            "One",
+            Option("Two"),
+            None,
+            Text.from_markup("[red]Three[/]"),
+        ])
+        option_list.highlighted = 0
+
 if __name__ == "__main__":
     OptionListApp().run()
diff --git a/tests/snapshot_tests/test_snapshots.py b/tests/snapshot_tests/test_snapshots.py
index 07f046d1e2..7f95c17f89 100644
--- a/tests/snapshot_tests/test_snapshots.py
+++ b/tests/snapshot_tests/test_snapshots.py
@@ -505,7 +505,7 @@ def test_option_list_tables(snap_compare):
 
 
 def test_option_list_build(snap_compare):
-    assert snap_compare(SNAPSHOT_APPS_DIR / "option_list.py")
+    assert snap_compare(SNAPSHOT_APPS_DIR / "option_list.py", press=["a"])
 
 
 def test_option_list_replace_prompt_from_single_line_to_single_line(snap_compare):


Code review comments:
diff_hunk: @@ -373,6 +373,7 @@ def add_options(self, new_options: Iterable[OptionListContent]) -> Self:
                 self._id_to_option[option._id] = option
             add_option(option)
         if self.is_mounted:
+            self.refresh(layout=True)
path: src/textual/widgets/_option_list.py
text: @user1:
Try `layout=self.styles.auto_dimensions` to avoid the layout if the widget wouldn't change dimensions.

@author:
Done. Thanks for the suggestion.