diff --git a/.coverage b/.coverage
index c8aad912..0eef93c8 100644
Binary files a/.coverage and b/.coverage differ
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index c48431d1..66bc750e 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -1,3 +1,26 @@
+## 2.2.0 [17th November 2024]
+
+### Added
+
+- Added 15 new themes (4 specific to Posting, 11 inherited from Textual's new theme system).
+- Themes are now in submenu of command palette.
+- Keybinding assistant can now be displayed as a sidebar, teaching you keybindings as you go.
+- New tooltips when hovering over collection browser keybinds in the app footer.
+
+### Changed
+
+- Syntax highlighting colours now derive automatically from the current theme.
+- URL bar highlighting now derives automatically from the current theme.
+- Method colour-coding in the collection browser is now derived automatically from the current theme.
+- Jump mode UI has been refined to be more readable.
+- Various refinements to existing themes.
+- Options and descriptions in command palette reworded and reordered for clarity.
+- Updated to Textual 0.86.1.
+
+### Fixed
+
+- Fixed error notification not rendering correctly when HTTP request times out.
+
## 2.1.1 [12th November 2024]
### Fixed
diff --git a/src/posting/app.py b/src/posting/app.py
index 1757b4f5..c5a1ca0b 100644
--- a/src/posting/app.py
+++ b/src/posting/app.py
@@ -8,8 +8,6 @@
from textual.content import Content
from posting.importing.curl import CurlImport
-from rich.console import Group
-from rich.text import Text
from textual import on, log, work
from textual.command import CommandPalette
from textual.css.query import NoMatches
@@ -837,7 +835,6 @@ class Posting(App[None], inherit_bindings=False):
id="help",
),
Binding("f8", "save_screenshot", "Save screenshot.", show=False),
- Binding("ctrl+0", "next_theme", "Next theme", show=False),
]
def __init__(
@@ -962,11 +959,6 @@ def on_mount(self) -> None:
self.unregister_theme(theme_name)
self.theme = settings.theme
- self.theme_names = cycle(
- theme_name
- for theme_name in self.available_themes.keys()
- if theme_name not in unwanted_themes
- )
self.set_keymap(self.settings.keymap)
self.jumper = Jumper(
@@ -1009,7 +1001,7 @@ def command_layout(self, layout: Literal["vertical", "horizontal"]) -> None:
def action_save_screenshot(
self,
) -> str:
- self.search_themes()
+ return self.save_screenshot()
@on(CommandPalette.Opened)
def palette_opened(self) -> None:
@@ -1095,6 +1087,3 @@ def reset_focus(_) -> None:
self.set_focus(None)
await self.push_screen(HelpScreen(widget=focused), callback=reset_focus)
-
- def action_next_theme(self) -> None:
- self.theme = next(self.theme_names)
diff --git a/tests/__snapshots__/test_snapshots/TestCommandPalette.test_can_type_to_filter_options.svg b/tests/__snapshots__/test_snapshots/TestCommandPalette.test_can_type_to_filter_options.svg
index e3d17a7c..f7ad8d57 100644
--- a/tests/__snapshots__/test_snapshots/TestCommandPalette.test_can_type_to_filter_options.svg
+++ b/tests/__snapshots__/test_snapshots/TestCommandPalette.test_can_type_to_filter_options.svg
@@ -19,170 +19,171 @@
font-weight: 700;
}
- .terminal-1322801255-matrix {
+ .terminal-1229214472-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1322801255-title {
+ .terminal-1229214472-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1322801255-r1 { fill: #69696c }
-.terminal-1322801255-r2 { fill: #c5c8c6 }
-.terminal-1322801255-r3 { fill: #f0f0e0 }
-.terminal-1322801255-r4 { fill: #4f3770;font-weight: bold }
-.terminal-1322801255-r5 { fill: #4f3770 }
-.terminal-1322801255-r6 { fill: #4f3770;text-decoration: underline; }
-.terminal-1322801255-r7 { fill: #3c354f }
-.terminal-1322801255-r8 { fill: #1b1b32 }
-.terminal-1322801255-r9 { fill: #0f0f1f }
-.terminal-1322801255-r10 { fill: #39394a }
-.terminal-1322801255-r11 { fill: #6f4764;font-weight: bold }
-.terminal-1322801255-r12 { fill: #484854 }
-.terminal-1322801255-r13 { fill: #351d36 }
-.terminal-1322801255-r14 { fill: #3f2b41 }
-.terminal-1322801255-r15 { fill: #ff69b4 }
-.terminal-1322801255-r16 { fill: #595761 }
-.terminal-1322801255-r17 { fill: #57575c }
-.terminal-1322801255-r18 { fill: #3b3b45 }
-.terminal-1322801255-r19 { fill: #171726 }
-.terminal-1322801255-r20 { fill: #2b6d5d }
-.terminal-1322801255-r21 { fill: #f0f0e0;font-weight: bold }
-.terminal-1322801255-r22 { fill: #f0f0e0;font-weight: bold;text-decoration: underline; }
-.terminal-1322801255-r23 { fill: #17172c }
-.terminal-1322801255-r24 { fill: #3a3a43 }
-.terminal-1322801255-r25 { fill: #3a3a43;font-weight: bold }
-.terminal-1322801255-r26 { fill: #a3a3b3 }
-.terminal-1322801255-r27 { fill: #222139 }
-.terminal-1322801255-r28 { fill: #262337 }
-.terminal-1322801255-r29 { fill: #6f3d35 }
-.terminal-1322801255-r30 { fill: #1e1e2c }
-.terminal-1322801255-r31 { fill: #4d4d55 }
-.terminal-1322801255-r32 { fill: #301b33 }
-.terminal-1322801255-r33 { fill: #131322 }
-.terminal-1322801255-r34 { fill: #3f3f4b }
-.terminal-1322801255-r35 { fill: #2b2825 }
-.terminal-1322801255-r36 { fill: #4f4f57 }
-.terminal-1322801255-r37 { fill: #2b2b3d }
-.terminal-1322801255-r38 { fill: #111125 }
-.terminal-1322801255-r39 { fill: #22514a }
-.terminal-1322801255-r40 { fill: #6f335a;font-weight: bold }
+ .terminal-1229214472-r1 { fill: #c0c0b3 }
+.terminal-1229214472-r2 { fill: #c5c8c6 }
+.terminal-1229214472-r3 { fill: #f0f0e0 }
+.terminal-1229214472-r4 { fill: #8d5cbc;font-weight: bold }
+.terminal-1229214472-r5 { fill: #8d5cbc }
+.terminal-1229214472-r6 { fill: #8d5cbc;text-decoration: underline; }
+.terminal-1229214472-r7 { fill: #665879 }
+.terminal-1229214472-r8 { fill: #252440 }
+.terminal-1229214472-r9 { fill: #0c0c18 }
+.terminal-1229214472-r10 { fill: #606070 }
+.terminal-1229214472-r11 { fill: #cc7ca4;font-weight: bold }
+.terminal-1229214472-r12 { fill: #7f7f84 }
+.terminal-1229214472-r13 { fill: #582848 }
+.terminal-1229214472-r14 { fill: #6c445e }
+.terminal-1229214472-r15 { fill: #ff69b4 }
+.terminal-1229214472-r16 { fill: #a19c9d }
+.terminal-1229214472-r17 { fill: #9c9c94 }
+.terminal-1229214472-r18 { fill: #0f0f1f }
+.terminal-1229214472-r19 { fill: #656565 }
+.terminal-1229214472-r20 { fill: #1d1d28 }
+.terminal-1229214472-r21 { fill: #44c896 }
+.terminal-1229214472-r22 { fill: #f0f0e0;font-weight: bold }
+.terminal-1229214472-r23 { fill: #f0f0e0;font-weight: bold;text-decoration: underline; }
+.terminal-1229214472-r24 { fill: #1d1c34 }
+.terminal-1229214472-r25 { fill: #626262 }
+.terminal-1229214472-r26 { fill: #626262;font-weight: bold }
+.terminal-1229214472-r27 { fill: #a3a3b3 }
+.terminal-1229214472-r28 { fill: #33314e }
+.terminal-1229214472-r29 { fill: #3b3549 }
+.terminal-1229214472-r30 { fill: #cc6944 }
+.terminal-1229214472-r31 { fill: #2b2b33 }
+.terminal-1229214472-r32 { fill: #898984 }
+.terminal-1229214472-r33 { fill: #4f2442 }
+.terminal-1229214472-r34 { fill: #141420 }
+.terminal-1229214472-r35 { fill: #6c6c72 }
+.terminal-1229214472-r36 { fill: #453e25 }
+.terminal-1229214472-r37 { fill: #8c8c89 }
+.terminal-1229214472-r38 { fill: #444454 }
+.terminal-1229214472-r39 { fill: #111124 }
+.terminal-1229214472-r40 { fill: #339070 }
+.terminal-1229214472-r41 { fill: #cc5490;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌Enter a URL or paste a curl command... Send
-
-╭──────────▎─ Request ─╮
-│ GET echo▎viewiptsOptio│
-│GET get ra▎━━━━━━━━━━━│
-│POS echo p▎view: Expand request section ╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplace▎Expand the request section and hide the ╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/▎response section╱╱╱╱╱╱╱╱╱╱╱│
-│GET ge▎view: Expand response section ╱╱╱╱╱╱╱╱╱╱╱│
-│GET ge▎Expand the response section and hide the Add │
-│POS cr▎request section───────────╯
-│DEL de▎view: Toggle collection browser Response ─╮
-│▼ comme▎Toggle the collection browser sidebare│
-│───────────▎━━━━━━━━━━━│
-│This is an echo │││
-│server we can use to │││
-│see exactly what │││
-│request is being │││
-│sent.││1:1read-onlyJSON▼Wrap ▐X▌│
-╰─ sample-collections ──╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Help
+
+
+
+
+Posting
+
+GET▼▌Enter a URL or paste a curl command... Send
+
+╭──────────▎─ Request ─╮
+│ GET echo▎viewiptsOptio│
+│GET get ra▎━━━━━━━━━━━│
+│POS echo p▎view: Expand request section ╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplace▎Expand the request section and hide the ╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/▎response section╱╱╱╱╱╱╱╱╱╱╱│
+│GET ge▎view: Expand response section ╱╱╱╱╱╱╱╱╱╱╱│
+│GET ge▎Expand the response section and hide the Add │
+│POS cr▎request section───────────╯
+│DEL de▎view: Toggle collection browser Response ─╮
+│▼ comme▎Toggle the collection browser sidebare│
+│───────────▎━━━━━━━━━━━│
+│This is an echo │││
+│server we can use to │││
+│see exactly what │││
+│request is being │││
+│sent.││1:1read-onlyJSON▼Wrap ▐X▌│
+╰─ sample-collections ──╯╰─────────────────────────────────────────────────╯
+ ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Help
diff --git a/tests/__snapshots__/test_snapshots/TestCommandPalette.test_loads_and_shows_discovery_options.svg b/tests/__snapshots__/test_snapshots/TestCommandPalette.test_loads_and_shows_discovery_options.svg
index 293c215f..b979f8d4 100644
--- a/tests/__snapshots__/test_snapshots/TestCommandPalette.test_loads_and_shows_discovery_options.svg
+++ b/tests/__snapshots__/test_snapshots/TestCommandPalette.test_loads_and_shows_discovery_options.svg
@@ -19,209 +19,210 @@
font-weight: 700;
}
- .terminal-1044068753-matrix {
+ .terminal-2431990255-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1044068753-title {
+ .terminal-2431990255-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1044068753-r1 { fill: #69696c }
-.terminal-1044068753-r2 { fill: #c5c8c6 }
-.terminal-1044068753-r3 { fill: #f0f0e0 }
-.terminal-1044068753-r4 { fill: #4f3770;font-weight: bold }
-.terminal-1044068753-r5 { fill: #4f3770 }
-.terminal-1044068753-r6 { fill: #4f3770;text-decoration: underline; }
-.terminal-1044068753-r7 { fill: #3c354f }
-.terminal-1044068753-r8 { fill: #1b1b32 }
-.terminal-1044068753-r9 { fill: #0f0f1f }
-.terminal-1044068753-r10 { fill: #39394a }
-.terminal-1044068753-r11 { fill: #6f4764;font-weight: bold }
-.terminal-1044068753-r12 { fill: #484854 }
-.terminal-1044068753-r13 { fill: #351d36 }
-.terminal-1044068753-r14 { fill: #ff69b4 }
-.terminal-1044068753-r15 { fill: #3f2b41 }
-.terminal-1044068753-r16 { fill: #595761 }
-.terminal-1044068753-r17 { fill: #57575c }
-.terminal-1044068753-r18 { fill: #71718a }
-.terminal-1044068753-r19 { fill: #171726 }
-.terminal-1044068753-r20 { fill: #2b6d5d }
-.terminal-1044068753-r21 { fill: #f0f0e0;font-weight: bold }
-.terminal-1044068753-r22 { fill: #17172c }
-.terminal-1044068753-r23 { fill: #3a3a43 }
-.terminal-1044068753-r24 { fill: #3a3a43;font-weight: bold }
-.terminal-1044068753-r25 { fill: #a3a3b3 }
-.terminal-1044068753-r26 { fill: #222139 }
-.terminal-1044068753-r27 { fill: #6f3d35 }
-.terminal-1044068753-r28 { fill: #262337 }
-.terminal-1044068753-r29 { fill: #6f6435 }
-.terminal-1044068753-r30 { fill: #4d4d55 }
-.terminal-1044068753-r31 { fill: #131322 }
-.terminal-1044068753-r32 { fill: #301b33 }
-.terminal-1044068753-r33 { fill: #3f3f4b }
-.terminal-1044068753-r34 { fill: #2b2825 }
-.terminal-1044068753-r35 { fill: #4f4f57 }
-.terminal-1044068753-r36 { fill: #2b2b3d }
-.terminal-1044068753-r37 { fill: #111125 }
-.terminal-1044068753-r38 { fill: #22514a }
-.terminal-1044068753-r39 { fill: #6f335a;font-weight: bold }
+ .terminal-2431990255-r1 { fill: #c0c0b3 }
+.terminal-2431990255-r2 { fill: #c5c8c6 }
+.terminal-2431990255-r3 { fill: #f0f0e0 }
+.terminal-2431990255-r4 { fill: #8d5cbc;font-weight: bold }
+.terminal-2431990255-r5 { fill: #8d5cbc }
+.terminal-2431990255-r6 { fill: #8d5cbc;text-decoration: underline; }
+.terminal-2431990255-r7 { fill: #665879 }
+.terminal-2431990255-r8 { fill: #252440 }
+.terminal-2431990255-r9 { fill: #0c0c18 }
+.terminal-2431990255-r10 { fill: #606070 }
+.terminal-2431990255-r11 { fill: #cc7ca4;font-weight: bold }
+.terminal-2431990255-r12 { fill: #7f7f84 }
+.terminal-2431990255-r13 { fill: #582848 }
+.terminal-2431990255-r14 { fill: #ff69b4 }
+.terminal-2431990255-r15 { fill: #6c445e }
+.terminal-2431990255-r16 { fill: #a19c9d }
+.terminal-2431990255-r17 { fill: #9c9c94 }
+.terminal-2431990255-r18 { fill: #0f0f1f }
+.terminal-2431990255-r19 { fill: #71718a }
+.terminal-2431990255-r20 { fill: #1d1d28 }
+.terminal-2431990255-r21 { fill: #44c896 }
+.terminal-2431990255-r22 { fill: #f0f0e0;font-weight: bold }
+.terminal-2431990255-r23 { fill: #1d1c34 }
+.terminal-2431990255-r24 { fill: #626262 }
+.terminal-2431990255-r25 { fill: #626262;font-weight: bold }
+.terminal-2431990255-r26 { fill: #a3a3b3 }
+.terminal-2431990255-r27 { fill: #33314e }
+.terminal-2431990255-r28 { fill: #cc6944 }
+.terminal-2431990255-r29 { fill: #3b3549 }
+.terminal-2431990255-r30 { fill: #ccb644 }
+.terminal-2431990255-r31 { fill: #898984 }
+.terminal-2431990255-r32 { fill: #141420 }
+.terminal-2431990255-r33 { fill: #4f2442 }
+.terminal-2431990255-r34 { fill: #6c6c72 }
+.terminal-2431990255-r35 { fill: #453e25 }
+.terminal-2431990255-r36 { fill: #8c8c89 }
+.terminal-2431990255-r37 { fill: #444454 }
+.terminal-2431990255-r38 { fill: #111124 }
+.terminal-2431990255-r39 { fill: #339070 }
+.terminal-2431990255-r40 { fill: #cc5490;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌Enter a URL or paste a curl command... Send
-
-╭──────────────────▎──────── Request ─╮
-│ GET echo▎Search for commands…│
-│GET get random us▎━━━━━━━━━━━━━━━━━━│
-│POS echo post ▎ layout: Horizontal ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▎Change layout to horizontal╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/▎ view: Expand request section ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│GET get all ▎Expand the request section and hide the response section╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│GET get one ▎ view: Expand response section ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│POS create ▎Expand the response section and hide the request section╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│DEL delete a ▎ view: Toggle collection browser ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ comments/▎Toggle the collection browser sidebar╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│GET get com▎ theme: Change theme ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│GET get com▎Change the current theme Add │
-│PUT edit a ▎ help: Show keybindings sidebar ──────────────────╯
-│▼ todos/▎Display keybindings for the focused widget in a sidebar─────── Response ─╮
-│GET get all ▎ app: Quit Posting │
-│GET get one ▎Quit Posting and return to the command line━━━━━━━━━━━━━━━━━━│
-│▼ users/▎│
-│GET get a user │││
-│GET get all users │││
-│POS create a user │││
-│PUT update a user │││
-│DEL delete a user │││
-│───────────────────────────────────│││
-│This is an echo server we can use│││
-│to see exactly what request is │││
-│being sent.││1:1read-onlyJSON▼Wrap ▐X▌│
-╰─ sample-collections ──────────────╯╰─────────────────────────────────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Help
+
+
+
+
+Posting
+
+GET▼▌Enter a URL or paste a curl command... Send
+
+╭──────────────────▎──────── Request ─╮
+│ GET echo▎Search for commands…│
+│GET get random us▎━━━━━━━━━━━━━━━━━━│
+│POS echo post ▎ layout: Horizontal ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▎Change layout to horizontal╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/▎ view: Expand request section ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│GET get all ▎Expand the request section and hide the response section╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│GET get one ▎ view: Expand response section ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│POS create ▎Expand the response section and hide the request section╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│DEL delete a ▎ view: Toggle collection browser ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ comments/▎Toggle the collection browser sidebar╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│GET get com▎ theme: Change theme ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│GET get com▎Change the current theme Add │
+│PUT edit a ▎ help: Show keybindings sidebar ──────────────────╯
+│▼ todos/▎Display keybindings for the focused widget in a sidebar─────── Response ─╮
+│GET get all ▎ app: Quit Posting │
+│GET get one ▎Quit Posting and return to the command line━━━━━━━━━━━━━━━━━━│
+│▼ users/▎│
+│GET get a user │││
+│GET get all users │││
+│POS create a user │││
+│PUT update a user │││
+│DEL delete a user │││
+│───────────────────────────────────│││
+│This is an echo server we can use│││
+│to see exactly what request is │││
+│being sent.││1:1read-onlyJSON▼Wrap ▐X▌│
+╰─ sample-collections ──────────────╯╰─────────────────────────────────────────────────────────────────────────────╯
+ ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Help
diff --git a/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_set_on_startup_and_in_command_palette.svg b/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_set_on_startup_and_in_command_palette.svg
index ec61c939..166bfc6b 100644
--- a/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_set_on_startup_and_in_command_palette.svg
+++ b/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_set_on_startup_and_in_command_palette.svg
@@ -19,169 +19,170 @@
font-weight: 700;
}
- .terminal-1737390359-matrix {
+ .terminal-4153404190-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1737390359-title {
+ .terminal-4153404190-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1737390359-r1 { fill: #939698 }
-.terminal-1737390359-r2 { fill: #c5c8c6 }
-.terminal-1737390359-r3 { fill: #1b0d02 }
-.terminal-1737390359-r4 { fill: #8fb4d4;font-weight: bold }
-.terminal-1737390359-r5 { fill: #8fb4d4 }
-.terminal-1737390359-r6 { fill: #8fb4d4;text-decoration: underline; }
-.terminal-1737390359-r7 { fill: #b1c5d4 }
-.terminal-1737390359-r8 { fill: #c7d0d7 }
-.terminal-1737390359-r9 { fill: #bf9da4;font-weight: bold }
-.terminal-1737390359-r10 { fill: #acb7c0 }
-.terminal-1737390359-r11 { fill: #dca4aa }
-.terminal-1737390359-r12 { fill: #939698;font-weight: bold }
-.terminal-1737390359-r13 { fill: #d22f2f }
-.terminal-1737390359-r14 { fill: #e0d2db }
-.terminal-1737390359-r15 { fill: #d1c7d0 }
-.terminal-1737390359-r16 { fill: #e2f0fc;font-weight: bold }
-.terminal-1737390359-r17 { fill: #e3f2fd }
-.terminal-1737390359-r18 { fill: #bbc4ca }
-.terminal-1737390359-r19 { fill: #8dd3f5 }
-.terminal-1737390359-r20 { fill: #dbe8f2 }
-.terminal-1737390359-r21 { fill: #95e0bd }
-.terminal-1737390359-r22 { fill: #eaf5fd }
-.terminal-1737390359-r23 { fill: #b3bac0 }
-.terminal-1737390359-r24 { fill: #b3bac0;font-weight: bold }
-.terminal-1737390359-r25 { fill: #e5eef5 }
-.terminal-1737390359-r26 { fill: #dfeffc }
-.terminal-1737390359-r27 { fill: #e7acb3 }
-.terminal-1737390359-r28 { fill: #abb1b6 }
-.terminal-1737390359-r29 { fill: #d5e1eb }
-.terminal-1737390359-r30 { fill: #e0d6df }
-.terminal-1737390359-r31 { fill: #dfedf7 }
-.terminal-1737390359-r32 { fill: #abd4f6 }
-.terminal-1737390359-r33 { fill: #b5c1ca }
-.terminal-1737390359-r34 { fill: #c9dff0 }
-.terminal-1737390359-r35 { fill: #adb2b6 }
-.terminal-1737390359-r36 { fill: #d0dae2 }
-.terminal-1737390359-r37 { fill: #e8f4fd }
-.terminal-1737390359-r38 { fill: #afcbc3 }
-.terminal-1737390359-r39 { fill: #dca4aa;font-weight: bold }
+ .terminal-4153404190-r1 { fill: #150a01 }
+.terminal-4153404190-r2 { fill: #c5c8c6 }
+.terminal-4153404190-r3 { fill: #1b0d02 }
+.terminal-4153404190-r4 { fill: #0f4778;font-weight: bold }
+.terminal-4153404190-r5 { fill: #0f4778 }
+.terminal-4153404190-r6 { fill: #0f4778;text-decoration: underline; }
+.terminal-4153404190-r7 { fill: #526878 }
+.terminal-4153404190-r8 { fill: #7e7e7e }
+.terminal-4153404190-r9 { fill: #6f1818;font-weight: bold }
+.terminal-4153404190-r10 { fill: #484c50 }
+.terminal-4153404190-r11 { fill: #a82525 }
+.terminal-4153404190-r12 { fill: #150a01;font-weight: bold }
+.terminal-4153404190-r13 { fill: #d22f2f }
+.terminal-4153404190-r14 { fill: #b08388 }
+.terminal-4153404190-r15 { fill: #926c71 }
+.terminal-4153404190-r16 { fill: #b4bfc8;font-weight: bold }
+.terminal-4153404190-r17 { fill: #e3f2fd }
+.terminal-4153404190-r18 { fill: #656565 }
+.terminal-4153404190-r19 { fill: #0b84ba }
+.terminal-4153404190-r20 { fill: #a5afb5 }
+.terminal-4153404190-r21 { fill: #1b9d4b }
+.terminal-4153404190-r22 { fill: #c4c8cb }
+.terminal-4153404190-r23 { fill: #555351 }
+.terminal-4153404190-r24 { fill: #555351;font-weight: bold }
+.terminal-4153404190-r25 { fill: #bababa }
+.terminal-4153404190-r26 { fill: #adbcc8 }
+.terminal-4153404190-r27 { fill: #bf3636 }
+.terminal-4153404190-r28 { fill: #45403d }
+.terminal-4153404190-r29 { fill: #99a0a6 }
+.terminal-4153404190-r30 { fill: #b08a90 }
+.terminal-4153404190-r31 { fill: #adb8c0 }
+.terminal-4153404190-r32 { fill: #4785bc }
+.terminal-4153404190-r33 { fill: #5a6064 }
+.terminal-4153404190-r34 { fill: #839cb1 }
+.terminal-4153404190-r35 { fill: #49433d }
+.terminal-4153404190-r36 { fill: #909294 }
+.terminal-4153404190-r37 { fill: #c0c6ca }
+.terminal-4153404190-r38 { fill: #4e7456 }
+.terminal-4153404190-r39 { fill: #a82525;font-weight: bold }
+.terminal-4153404190-r40 { fill: #160a01 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter a URL or paste a curl command... Send
-
-╭──────────▎─ Request ─╮
-│ GET echo▎anothertestiptsOptio│
-│GET get ra▎━━━━━━━━━━━│
-│POS echo post ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│GET get all ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│GET get one ││NameValue Add │
-│POS create │╰─────────────────────────────────────────────────╯
-│DEL delete a post │╭────────────────────────────────────── Response ─╮
-│▼ comments/││BodyHeadersCookiesScriptsTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│This is an echo │││
-│server we can use to │││
-│see exactly what │││
-│request is being │││
-│sent.││1:1read-onlyJSON▼Wrap ▐X▌│
-╰─ sample-collections ──╯╰─────────────────────────────────────────────────╯
- d Dupe ⌫ Delete ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump
+
+
+
+
+Posting
+
+GET▼Enter a URL or paste a curl command... Send
+
+╭──────────▎─ Request ─╮
+│ GET echo▎anothertestiptsOptio│
+│GET get ra▎━━━━━━━━━━━│
+│POS echo post ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│GET get all ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│GET get one ││NameValue Add │
+│POS create │╰─────────────────────────────────────────────────╯
+│DEL delete a post │╭────────────────────────────────────── Response ─╮
+│▼ comments/││BodyHeadersCookiesScriptsTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│This is an echo │││
+│server we can use to │││
+│see exactly what │││
+│request is being │││
+│sent.││1:1read-onlyJSON▼Wrap ▐X▌│
+╰─ sample-collections ──╯╰─────────────────────────────────────────────────╯
+ d Dupe ⌫ Delete ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump
diff --git a/tests/__snapshots__/test_snapshots/TestFocusAutoSwitchingConfig.test_focus_on_request_open__open_body[body].svg b/tests/__snapshots__/test_snapshots/TestFocusAutoSwitchingConfig.test_focus_on_request_open__open_body[body].svg
index 06504db8..52677159 100644
--- a/tests/__snapshots__/test_snapshots/TestFocusAutoSwitchingConfig.test_focus_on_request_open__open_body[body].svg
+++ b/tests/__snapshots__/test_snapshots/TestFocusAutoSwitchingConfig.test_focus_on_request_open__open_body[body].svg
@@ -1,4 +1,4 @@
-