diff --git a/.coverage b/.coverage
index 08d1d484..64957544 100644
Binary files a/.coverage and b/.coverage differ
diff --git a/README.md b/README.md
index 13a3fc02..347b19d6 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,24 @@
-# Posting.
+# Posting
**A powerful HTTP client that lives in your terminal.**
-Posting is an HTTP client, not unlike Postman and Insomnia. As a TUI application, it can be used over SSH and enables efficient keyboard-centric workflows. Your requests are stored locally in simple YAML files, meaning they're easy to read and version control.
+Posting is an HTTP client, not unlike Postman and Insomnia. As a TUI application, it can be used over SSH and enables efficient keyboard-centric workflows. Your requests are stored locally in simple YAML files, so they're easy to read and version control.
-Some notable features include: "jump mode" navigation, environments/variables system with autocompletion, syntax highlighting powered by tree-sitter, Vim keys, user-defined themes, configuration, "open in $EDITOR", and a command palette for quickly accessing functionality.
+Some notable features include:
-Posting was built with [Textual](https://github.com/textualize/textual).
+- "jump mode" navigation
+- environments/variables
+- autocompletion
+- syntax highlighting using tree-sitter
+- Vim keys
+- user-defined themes
+- configuration
+- "open in $EDITOR"
+- a command palette for quickly accessing functionality
+
+Visit the [website](https://posting.sh) for more information, the roadmap, and the user guide.
## Installation
@@ -22,349 +32,8 @@ Python 3.11 or later is required.
More installation methods (`brew`, etc) will be added soon.
-## Collections
-
-Requests are stored directly on your file system as simple YAML files, suffixed with `.posting.yaml` - easy to read, understand, and version control!
-
-Here's what they look like:
-
-```yaml
-name: Create user
-description: Adds a new user to the system.
-method: POST
-url: https://jsonplaceholder.typicode.com/users
-body:
- content: |-
- {
- "firstName": "John",
- "email": "john.doe@example.com"
- }
-headers:
-- name: Content-Type
- value: application/json
-params:
-- name: sendWelcomeEmail
- value: 'true'
-```
-
-To open a collection (a directory containing requests), use the `--collection` option:
-
-```bash
-posting --collection path/to/collection
-```
-
-This will recursively find and display requests in the sidebar.
-If you don't supply a directory, Posting will use the default collection directory.
-You can check where this is by running `posting locate collection`.
-
-## Navigation
-
-Posting can be navigated using either mouse or keyboard.
-
-### Jump mode
-
-Jump mode is the fastest way to get around.
-
-Press ctrl+o to enter jump mode.
-
-A key overlay will appear on the screen, allowing you to jump to any widget by pressing the corresponding key.
-
-
-
-
-
-### Tab navigation
-
-tab and shift+tab will move focus between widgets,
-and j/k/up/down will move around within a widget.
-
-Where it makes sense, up and down will move between widgets.
-
-### Contextual help
-
-Many widgets have additional bindings beyond those displayed in the footer. You can view the full list of keybindings for the currently
-focused widget, as well as additional usage information and tips, by pressing f1 or ctrl+? (or ctrl+shift+/).
-
-
-
-### Exiting
-
-Press ctrl+c to quit Posting.
-
-## Environments
-
-You can use variables in the UI using the `${VARIABLE_NAME}` or `$VARIABLE_NAME` syntax.
-These variables will be substituted into outgoing requests.
-
-
-
-
-
-`.env` files can be loaded using the `--env` option.
-Variables from these files can then be used in the UI.
-
-### Example
-
-Imagine you're testing an API which exists in both `dev` and `prod` environments.
-
-The `dev` and `prod` environments share some common variables, but differ in many ways too.
-We can model this by having a single `shared.env` file which contains variables which are shared between environments, and then a `dev.env` and `prod.env` file which contain environment specific variables.
-
-```bash
-# file: shared.env
-API_PATH="/api/v1"
-ENV_NAME="shared"
-
-# file: dev.env
-API_KEY="dev-api-key"
-ENV_NAME="dev"
-BASE_URL="https://${ENV_NAME}.example.com"
-
-# file: prod.env
-API_KEY="prod-api-key"
-ENV_NAME="prod"
-BASE_URL="https://${ENV_NAME}.example.com"
-```
-
-When working in the `dev` environment, you can then load all of the shared variables and all of the development environment specific variables using the `--env` option:
-
-```bash
-posting --env shared.env --env dev.env
-```
-
-This will load all of the shared variables from `shared.env`, and then load the variables from `dev.env`. Since `ENV_NAME` appears in both files, the value from the `dev.env` file will be used since that was the last one specified.
-
-Note that you do *not* need to restart to load changes made to these files,
-so you can open and edit your env files in an editor of your choice alongside Posting.
-However, autocompletion and variable highlighting will not update until Posting is restarted.
-
-If you want to permit using environment variables that exist on the host machine (i.e. those which are not defined in any `.env` files), you must set the `use_host_environment` config option to `true` (or set the environment variable `POSTING_USE_HOST_ENVIRONMENT=true`).
-
-#### Environment specific config
-
-Since all Posting configuration options can also be specified as environment variables, we can also put environment specific config inside `.env` files. There's a dedicated "Configuration" section in this document which covers this in more detail.
-
-For example, if you wanted to use a light theme in the prod environment (as a subtle reminder that you're in production!), you could set the environment variable `POSTING_THEME=solarized-light` inside the `prod.env` file.
-
-Note that configuration files take precedence over environment variables, so if you set a value in both a `.env` file and a `config.yaml`, the value from the `config.yaml` file will be used.
-
-## Command palette
-
-Some functionality in Posting doesn't warrant a dedicated keyboard shortcut (for example, switching to a specific theme), and can instead be accessed via the _command palette_.
-
-To open the command palette, press ctrl+p.
-
-
-
-
-
-## Configuration
-
-Posting can be configured using a configuration file, environment variables, and/or `.env` files.
-
-Configuration values are loaded in the following order of precedence (highest to lowest):
-
-1. Configuration file
-2. Environment variables
-3. `.env` files
-
-The range of available configuration will be greatly expanded in the future.
-
-### Configuration file
-
-You can write configuration for Posting using YAML.
-
-The location of the config file can be checked using the command `posting locate config`.
+## Learn More
-Here's an example configuration file:
+Learn more about Posting at [https://posting.sh](https://posting.sh).
-```yaml
-theme: galaxy
-layout: horizontal
-response:
- prettify_json: false
-heading:
- visible: true
- show_host: false
-```
-
-### Environment variables
-
-All configuration values can also be set as environment variables.
-
-Simply prefix the name of the config with `POSTING_` and set it as an environment variable.
-
-For nested configuration values, use `__` as the delimiter. So to set `heading.visible` to `false`, you can set the environment variable `POSTING_HEADING__VISIBLE=false`.
-
-For example, to set the theme to `galaxy`, you can set the environment variable `POSTING_THEME=galaxy`.
-
-### dotenv (`.env`) files
-
-Posting also supports `.env` (dotenv) files, which are useful if you want to swap out environment variable values depending on the environment you're working in (for example, "dev" vs "prod").
-
-You can tell Posting to use a `.env` file using the `--env` option.
-This option can be supplied multiple times to load multiple `.env` files.
-
-Here's an example `.env` file:
-
-```bash
-POSTING_THEME="cobalt"
-POSTING_LAYOUT="vertical"
-POSTING_HEADING__VISIBLE="false"
-```
-
-Dotenv files are separate from collections, although you may wish to include them inside a collection to make it easy to version and share with others.
-
-### Available configuration options
-
-| Config Key (Env Var) | Values (Default) | Description |
-|----------------------|------------------|-------------|
-| `theme` (`POSTING_THEME`) | `"posting"`, `"galaxy"`, `"monokai"`, `"solarized-light"`, `"nautilus"`, `"nebula"`, `"alpine"`, `"cobalt"`, `"twilight"`, `"hacker"` (Default: `"posting"`) | Sets the theme of the application. |
-| `load_user_themes` (`POSTING_LOAD_USER_THEMES`) | `true`, `false` (Default: `true`) | If enabled, load user themes from the theme directory, allowing them to be specified in config and selected via the command palette. |
-| `load_builtin_themes` (`POSTING_LOAD_BUILTIN_THEMES`) | `true`, `false` (Default: `true`) | If enabled, load builtin themes, allowing them to be specified in config and selected via the command palette. |
-| `theme_directory` (`POSTING_THEME_DIRECTORY`) | (Default: `${XDG_DATA_HOME}/posting/themes`) | The directory containing user themes. |
-| `layout` (`POSTING_LAYOUT`) | `"vertical"`, `"horizontal"` (Default: `"horizontal"`) | Sets the layout of the application. |
-| `use_host_environment` (`POSTING_USE_HOST_ENVIRONMENT`) | `true`, `false` (Default: `false`) | Allow/deny using environment variables from the host machine in requests via `$env:` syntax. When disabled, only variables defined explicitly in `.env` files will be available for use. |
-| `animation` (`POSTING_ANIMATION`) | `"none"`, `"basic"`, `"full"` (Default: `"none"`) | Controls the animation level. |
-| `response.prettify_json` (`POSTING_RESPONSE__PRETTIFY_JSON`) | `true`, `false` (Default: `true`) | If enabled, JSON responses will be pretty-formatted. |
-| `response.show_size_and_time` (`POSTING_RESPONSE__SHOW_SIZE_AND_TIME`) | `true`, `false` (Default: `true`) | If enabled, the size and time taken for the response will be displayed in the response area border subtitle. |
-| `heading.visible` (`POSTING_HEADING__VISIBLE`) | `true`, `false` (Default: `true`) | Show/hide the app header. |
-| `heading.show_host` (`POSTING_HEADING__SHOW_HOST`) | `true`, `false` (Default: `true`) | Show/hide the hostname in the app header. |
-| `heading.show_version` (`POSTING_HEADING__SHOW_VERSION`) | `true`, `false` (Default: `true`) | Show/hide the version in the app header. |
-| `url_bar.show_value_preview` (`POSTING_URL_BAR__SHOW_VALUE_PREVIEW`) | `true`, `false` (Default: `true`) | Show/hide the variable value preview below the URL bar. |
-| `pager` (`POSTING_PAGER`) | (Default: `$PAGER`) | Command to use for paging text. |
-| `pager_json` (`POSTING_PAGER_JSON`) | (Default: `$PAGER`) | Command to use for paging JSON. |
-| `editor` (`POSTING_EDITOR`) | (Default: `$EDITOR`) | Command to use for opening files in an external editor. |
-| `ssl.ca_bundle` (`POSTING_SSL__CA_BUNDLE`) | Absolute path (Default: `unset`) | Absolute path to a CA bundle file/dir. If not set, the [Certifi](https://pypi.org/project/certifi/) CA bundle will be used. |
-| `ssl.verify` (`POSTING_SSL__VERIFY`) | `true`, `false` (Default: `true`) | Verify server identity. |
-| `ssl.certificate_path` (`POSTING_SSL__CERTIFICATE_PATH`) | Absolute path (Default: `unset`) | Absolute path to a client SSL certificate file or directory. |
-| `ssl.key_file` (`POSTING_SSL__KEY_FILE`) | Absolute path (Default: `unset`) | Absolute path to a client SSL key file. |
-| `ssl.password` (`POSTING_SSL__PASSWORD`) | Password for the key file. (Default: `unset`) | Password to decrypt the key file if it's encrypted. |
-| `focus.on_startup` (`POSTING_FOCUS__ON_STARTUP`) | `"url"`, `"method", "collection"` (Default: `"url"`) | Automatically focus the URL bar, method, or collection browser when the app starts. |
-| `focus.on_response` (`POSTING_FOCUS__ON_RESPONSE`) | `"body"`, `"tabs"` (Default: `unset`)| Automatically focus the response tabs or response body text area when a response is received. |
-| `text_input.blinking_cursor` (`POSTING_TEXT_INPUT__BLINKING_CURSOR`) | `true`, `false` (Default: `true`) | If enabled, the cursor will blink in input widgets and text area widgets. |
-| `command_palette.theme_preview` (`POSTING_COMMAND_PALETTE__THEME_PREVIEW`) | `true`, `false` (Default: `false`) | If enabled, the command palette will display a preview of the selected theme when the cursor is over it. This will slow down cursor movement and so is disabled by default. |
-| `use_xresources` (`POSTING_USE_XRESOURCES`) | `true`, `false` (Default: `false`) | Try to create themes called `xresources-dark` and `xresources-light` (see the section below) |
-
-## SSL certificate configuration
-
-Posting can load custom CA bundles from a `.pem` file.
-
-The easiest way to do this is in your `config.yaml` file:
-
-```yaml
-ssl:
- ca_bundle: 'absolute/path/to/certificate.pem'
-```
-
-### Environment-specific certificates
-
-If the required CA bundle differs per environment, you can again use the principle that all configuration can be set as environment variables which can optionally be set and loaded using `--env` and `.env` files:
-
-```bash
-# dev.env
-POSTING_SSL__CA_BUNDLE='/path/to/certificate.pem'
-```
-
-Now load the `dev.env` file when working in the `dev` environment to ensure the dev environment CA bundle is used:
-
-```bash
-posting --env dev.env
-```
-
-### Client-side certificates
-
-You can specify local certificates to use as a client-side certificate:
-
-```yaml
-ssl:
- certificate_path: /path/to/certificate.pem
- key_file: /path/to/key.key # optional
- password: '***********' # optional password for key_file
-```
-
-## Theming
-
-Place custom themes in the themes directory and Posting will load them on startup. Theme files must be suffixed with `.yaml`, but the rest of the filename is unused by Posting.
-
-You can check where Posting will look for themes by running `posting locate themes` in your terminal.
-
-Here's an example theme file:
-
-```yaml
-name: example # use this name in your config file
-primary: '#4e78c4' # buttons, fixed table columns
-secondary: '#f39c12' # method selector, some minor labels
-accent: '#e74c3c' # header text, scrollbars, cursors, focus highlights
-background: '#0e1726' # background colors
-surface: '#17202a' # panels, etc
-error: '#e74c3c' # error messages
-success: '#2ecc71' # success messages
-warning: '#f1c40f' # warning messages
-syntax: 'dracula' # auto-switch syntax highlighting theme
-
-# Optional metadata
-author: Darren Burns
-description: A dark theme with a blue primary color.
-homepage: https://github.com/darrenburns/posting
-```
-
-### Syntax highlighting
-
-Syntax highlighted elements such as the URL bar, text areas, and fields which contain variables will be colored based on the semantic colors defined in the theme (`primary`, `secondary`, etc).
-
-If you'd like more control over the syntax highlighting, you can specify a custom syntax highlighting theme in the theme file.
-The example below illustrates some of the options available when it comes to customizing syntax highlighting.
-
-```yaml
-text_area:
- cursor: 'reverse' # style the block cursor
- cursor_line: 'underline' # style the line the cursor is on
- selection: 'reverse' # style the selected text
- gutter: 'bold #50e3c2' # style the gutter
- matched_bracket: 'black on green' # style the matched bracket
-url:
- base: 'italic #50e3c2' # style the 'base' of the url
- protocol: 'bold #b8e986' # style the protocol
-syntax:
- json_key: 'italic #4a90e2' # style json keys
- json_number: '#50e3c2' # style json numbers
- json_string: '#b8e986' # style json strings
- json_boolean: '#b8e986' # style json booleans
- json_null: 'underline #b8e986' # style json null values
-```
-
-
-
-### X resources themes
-
-Posting supports using X resources for theming. To use this, enable the `use_xresources` option (see above).
-
-It requires the `xrdb` executable on your `PATH` and `xrdb -query` must return the following variables:
-
-| Xresources | Description |
-|-------------|-----------|
-| *color0 | primary color: used for button backgrounds and fixed table columns |
-| *color8 | secondary color: used in method selector and some minor labels |
-| *color1 | error color: used for error messages |
-| *color2 | success color: used for success messages |
-| *color3 | warning color: used for warning messages |
-| *color4 | accent color: used for header text, scrollbars, cursors, focus highlights |
-| *background | background color |
-| *color7 | surface/panel color |
-
-If these conditions are met, themes called `xresources-dark` and `xresources-light` will be available for use.
-
-## Importing OpenAPI Specifications
-
-Note: this feature is highly experimental.
-
-Posting can convert OpenAPI 3.x specs into collections.
-
-To import an OpenAPI Specification, use the `posting import path/to/openapi.yaml` command.
-
-You can optionally supply an output directory.
-
-If no output directory is supplied, the default collection directory will be used.
-
-Posting will attempt to build a file structure in the collection that aligns with the URL structure of the imported API.
+Posting was built with [Textual](https://github.com/textualize/textual).
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
new file mode 100644
index 00000000..ad4f2f44
--- /dev/null
+++ b/docs/CHANGELOG.md
@@ -0,0 +1,40 @@
+## 1.11.0 [August 2024]
+
+### Added
+
+- This file, `CHANGELOG.md`.
+- Launch docs website.
+- Duplicate request (with new request popup) under cursor in tree with ++d++.
+- "Quick" duplicate request (without new request popup, request name is auto-generated) under cursor in tree with ++shift+d++.
+- Delete request (with confirmation modal) under cursor in tree with ++backspace++.
+- "Quick" delete request (without confirmation modal) under cursor in tree with ++shift+backspace++.
+- "Quit Posting" added to command palette.
+- Move the sidebar to the right or left using `collection_browser.position: 'right' | 'left'` config.
+- Refinements to "galaxy" theme.
+- "galaxy" theme is now default.
+- Help text added to "empty state" in the collection browser.
+- Extend info in the "Collection Browser" help modal.
+- Visual indicator (a red bar on the left) on Input fields that contain invalid values.
+- Toast message now appears when trying to submit the 'new request' modal with invalid values.
+- Public roadmap (initial brain-dump version).
+
+### Fixed
+- Ensure the location of the request on disk in the `Info` tab wraps instead of clipping out of view.
+- Inserting requests in sorted position on creation.
+- Prevent creating requests with no name.
+- Prevent writing paths in the file-name field in the new request modal.
+- Prevent specifying paths outside of the open collection dir in the directory field in the new request modal.
+- Fix variables not being substituted into several fields, including auth.
+
+### Changed
+
+- Upgrade to Textual version 0.76.0
+- Change logic to render bindings in help modal to reflect new Textual API.
+- Sort order of requests in the tree improved.
+
+
+---
+
+!!! note
+ Changes prior to 1.11.0 are not documented here.
+ Please see the [Releases page](https://github.com/darrenburns/posting/releases) on GitHub for information on changes prior to 1.11.0.
\ No newline at end of file
diff --git a/docs/guide/collections.md b/docs/guide/collections.md
new file mode 100644
index 00000000..3d3b5ed6
--- /dev/null
+++ b/docs/guide/collections.md
@@ -0,0 +1,42 @@
+## Overview
+
+A *collection* is just a directory on your file system which may or may not contain requests in the `.posting.yaml` format.
+
+There's absolutely nothing special about a collection.
+It contains no "special files" or metadata -- it's just a directory.
+It could even be empty.
+"Collection" is simply the name we give to the directory which we've loaded into Posting.
+
+## The default collection
+
+If you launch Posting without any arguments, it will load the *default collection*, which is stored in Posting's reserved data directory on your file system.
+You can check where this is by running `posting locate collection`.
+
+This is useful to get started quickly, but you'll probably want to create your own collection directory and load it instead.
+This makes it easier to organize your requests and check them into version control.
+
+## Creating a collection
+
+A collection is just a directory, so you can create a collection by simply creating an empty directory anywhere on your file system.
+
+## Loading a collection
+
+If you want to load a collection, you can do so by passing the path to the collection directory to Posting:
+
+```bash
+posting --collection path/to/collection
+```
+
+## Example
+
+
+
+To open a collection (a directory containing requests), use the `--collection` option:
+
+```bash
+posting --collection path/to/collection
+```
+
+This will recursively find and display requests in the sidebar.
+If you don't supply a directory, Posting will use the default collection directory.
+You can check where this is by running `posting locate collection`.
\ No newline at end of file
diff --git a/docs/guide/command_palette.md b/docs/guide/command_palette.md
new file mode 100644
index 00000000..d2b9a964
--- /dev/null
+++ b/docs/guide/command_palette.md
@@ -0,0 +1,12 @@
+## Overview
+
+The *command palette* is a way to search for and execute commands in Posting.
+
+Some functionality in Posting can only be accessed through the command palette.
+
+It can be used to switch themes, show/hide parts of the UI, and more.
+
+### Using the command palette
+
+Press ++ctrl+p++ to open the command palette.
+
diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md
new file mode 100644
index 00000000..3be2e67f
--- /dev/null
+++ b/docs/guide/configuration.md
@@ -0,0 +1,132 @@
+## Overview
+
+Posting can be configured using a configuration file, environment variables, and/or `.env` files.
+
+Configuration values are loaded in the following order of precedence (highest to lowest):
+
+1. Configuration file
+2. Environment variables
+3. `.env` files
+
+## Configuration file
+
+You can write configuration for Posting using YAML.
+
+The location of the config file can be checked using the command `posting locate config`.
+
+Here's an example configuration file:
+
+```yaml
+theme: galaxy
+layout: horizontal
+response:
+ prettify_json: false
+heading:
+ visible: true
+ show_host: false
+```
+
+## Environment variables
+
+All configuration values can also be set as environment variables.
+
+Simply prefix the name of the config with `POSTING_` and set it as an environment variable.
+
+For nested configuration values, use `__` as the delimiter. So to set `heading.visible` to `false`, you can set the environment variable `POSTING_HEADING__VISIBLE=false`.
+
+For example, to set the theme to `galaxy`, you can set the environment variable `POSTING_THEME=galaxy`.
+
+### dotenv (`.env`) files
+
+Posting also supports `.env` (dotenv) files, which are useful if you want to swap out environment variable values depending on the environment you're working in (for example, "dev" vs "prod").
+
+You can tell Posting to use a `.env` file using the `--env` option.
+This option can be supplied multiple times to load multiple `.env` files.
+
+Here's an example `.env` file:
+
+```bash
+POSTING_THEME="cobalt"
+POSTING_LAYOUT="vertical"
+POSTING_HEADING__VISIBLE="false"
+```
+
+Dotenv files are separate from collections, although you may wish to include them inside a collection to make it easy to version and share with others.
+
+## Configuring SSL
+
+Posting verifies SSL certificates by default using the CA bundle provided by the `certifi` package.
+
+### SSL certificate configuration
+
+Posting can load custom CA bundles from a `.pem` file.
+
+The easiest way to do this is in your `config.yaml` file:
+
+```yaml
+ssl:
+ ca_bundle: 'absolute/path/to/certificate.pem'
+```
+
+### Environment-specific certificates
+
+If the required CA bundle differs per environment, you can again use the principle that all configuration can be set as environment variables which can optionally be set and loaded using `--env` and `.env` files:
+
+```bash
+# dev.env
+POSTING_SSL__CA_BUNDLE='/path/to/certificate.pem'
+```
+
+Now load the `dev.env` file when working in the `dev` environment to ensure the dev environment CA bundle is used:
+
+```bash
+posting --env dev.env
+```
+
+### Disabling SSL verification
+
+SSL verification can be disabled on a per-request basis in the "Options" tab.
+
+### Client-side certificates
+
+You can specify local certificates to use as a client-side certificate:
+
+```yaml
+ssl:
+ certificate_path: /path/to/certificate.pem
+ key_file: /path/to/key.key # optional
+ password: '***********' # optional password for key_file
+```
+
+## Full configuration reference
+
+The table below lists all available configuration options and their environment variable equivalents, their default values, and descriptions.
+
+| Config Key (Env Var) | Values (Default) | Description |
+|----------------------|------------------|-------------|
+| `theme` (`POSTING_THEME`) | `"posting"`, `"galaxy"`, `"monokai"`, `"solarized-light"`, `"nautilus"`, `"nebula"`, `"alpine"`, `"cobalt"`, `"twilight"`, `"hacker"` (Default: `"posting"`) | Sets the theme of the application. |
+| `load_user_themes` (`POSTING_LOAD_USER_THEMES`) | `true`, `false` (Default: `true`) | If enabled, load user themes from the theme directory, allowing them to be specified in config and selected via the command palette. |
+| `load_builtin_themes` (`POSTING_LOAD_BUILTIN_THEMES`) | `true`, `false` (Default: `true`) | If enabled, load builtin themes, allowing them to be specified in config and selected via the command palette. |
+| `theme_directory` (`POSTING_THEME_DIRECTORY`) | (Default: `${XDG_DATA_HOME}/posting/themes`) | The directory containing user themes. |
+| `layout` (`POSTING_LAYOUT`) | `"vertical"`, `"horizontal"` (Default: `"horizontal"`) | Sets the layout of the application. |
+| `use_host_environment` (`POSTING_USE_HOST_ENVIRONMENT`) | `true`, `false` (Default: `false`) | Allow/deny using environment variables from the host machine in requests via `$env:` syntax. When disabled, only variables defined explicitly in `.env` files will be available for use. |
+| `animation` (`POSTING_ANIMATION`) | `"none"`, `"basic"`, `"full"` (Default: `"none"`) | Controls the animation level. |
+| `response.prettify_json` (`POSTING_RESPONSE__PRETTIFY_JSON`) | `true`, `false` (Default: `true`) | If enabled, JSON responses will be pretty-formatted. |
+| `response.show_size_and_time` (`POSTING_RESPONSE__SHOW_SIZE_AND_TIME`) | `true`, `false` (Default: `true`) | If enabled, the size and time taken for the response will be displayed in the response area border subtitle. |
+| `heading.visible` (`POSTING_HEADING__VISIBLE`) | `true`, `false` (Default: `true`) | Show/hide the app header. |
+| `heading.show_host` (`POSTING_HEADING__SHOW_HOST`) | `true`, `false` (Default: `true`) | Show/hide the hostname in the app header. |
+| `heading.show_version` (`POSTING_HEADING__SHOW_VERSION`) | `true`, `false` (Default: `true`) | Show/hide the version in the app header. |
+| `url_bar.show_value_preview` (`POSTING_URL_BAR__SHOW_VALUE_PREVIEW`) | `true`, `false` (Default: `true`) | Show/hide the variable value preview below the URL bar. |
+| `collection_browser.position` (`POSTING_COLLECTION_BROWSER__POSITION`) | `"left"`, `"right"` (Default: `"left"`) | The position of the collection browser on screen. |
+| `pager` (`POSTING_PAGER`) | (Default: `$PAGER`) | Command to use for paging text. |
+| `pager_json` (`POSTING_PAGER_JSON`) | (Default: `$PAGER`) | Command to use for paging JSON. |
+| `editor` (`POSTING_EDITOR`) | (Default: `$EDITOR`) | Command to use for opening files in an external editor. |
+| `ssl.ca_bundle` (`POSTING_SSL__CA_BUNDLE`) | Absolute path (Default: `unset`) | Absolute path to a CA bundle file/dir. If not set, the [Certifi](https://pypi.org/project/certifi/) CA bundle will be used. |
+| `ssl.certificate_path` (`POSTING_SSL__CERTIFICATE_PATH`) | Absolute path (Default: `unset`) | Absolute path to a client SSL certificate file or directory. |
+| `ssl.key_file` (`POSTING_SSL__KEY_FILE`) | Absolute path (Default: `unset`) | Absolute path to a client SSL key file. |
+| `ssl.password` (`POSTING_SSL__PASSWORD`) | Password for the key file. (Default: `unset`) | Password to decrypt the key file if it's encrypted. |
+| `focus.on_startup` (`POSTING_FOCUS__ON_STARTUP`) | `"url"`, `"method", "collection"` (Default: `"url"`) | Automatically focus the URL bar, method, or collection browser when the app starts. |
+| `focus.on_response` (`POSTING_FOCUS__ON_RESPONSE`) | `"body"`, `"tabs"` (Default: `unset`)| Automatically focus the response tabs or response body text area when a response is received. |
+| `text_input.blinking_cursor` (`POSTING_TEXT_INPUT__BLINKING_CURSOR`) | `true`, `false` (Default: `true`) | If enabled, the cursor will blink in input widgets and text area widgets. |
+| `command_palette.theme_preview` (`POSTING_COMMAND_PALETTE__THEME_PREVIEW`) | `true`, `false` (Default: `false`) | If enabled, the command palette will display a preview of the selected theme when the cursor is over it. This will slow down cursor movement and so is disabled by default. |
+| `use_xresources` (`POSTING_USE_XRESOURCES`) | `true`, `false` (Default: `false`) | Try to create themes called `xresources-dark` and `xresources-light` (see the section below) |
diff --git a/docs/guide/environments.md b/docs/guide/environments.md
new file mode 100644
index 00000000..baee2b99
--- /dev/null
+++ b/docs/guide/environments.md
@@ -0,0 +1,84 @@
+## Overview
+
+You can use *variables* in input fields and text areas using the `${VARIABLE_NAME}` or `$VARIABLE_NAME` syntax.
+These variables will be substituted into outgoing requests.
+
+
+
+
+
+## Loading variables
+
+Variables are stored in `.env` files, and loaded using the `--env` option.
+
+Here's what a `.env` file might look like:
+
+```bash
+# file: dev.env
+API_KEY="dev-api-key"
+ENV_NAME="dev"
+BASE_URL="https://${ENV_NAME}.example.com"
+```
+
+To make these variables available in the UI, you can load them using the `--env` option:
+
+```bash
+posting --env dev.env
+```
+
+You can load multiple `.env` files by specifying the `--env` option multiple times:
+
+```bash
+posting --env dev.env --env shared.env
+```
+
+This allows you to build up a set of variables which are common to all environments, and then override them for specific environments.
+
+## Using environment variables
+
+By default, Posting will only use variables defined in `.env` files that have been explicitly loaded using the `--env` option.
+
+If you want to permit using environment variables that exist on the host machine (i.e. those which are not defined in any `.env` files), you must set the `use_host_environment` config option to `true` (or set the environment variable `POSTING_USE_HOST_ENVIRONMENT=true`).
+
+## Practical example
+
+Imagine you're testing an API which exists in both `dev` and `prod` environments.
+
+The `dev` and `prod` environments share some common variables, but differ in many ways too.
+We can model this by having a single `shared.env` file which contains variables which are shared between environments, and then a `dev.env` and `prod.env` file which contain environment specific variables.
+
+```bash
+# file: shared.env
+API_PATH="/api/v1"
+ENV_NAME="shared"
+
+# file: dev.env
+API_KEY="dev-api-key"
+ENV_NAME="dev"
+BASE_URL="https://${ENV_NAME}.example.com"
+
+# file: prod.env
+API_KEY="prod-api-key"
+ENV_NAME="prod"
+BASE_URL="https://${ENV_NAME}.example.com"
+```
+
+When working in the `dev` environment, you can then load all of the shared variables and all of the development environment specific variables using the `--env` option:
+
+```bash
+posting --env shared.env --env dev.env
+```
+
+This will load all of the shared variables from `shared.env`, and then load the variables from `dev.env`. Since `ENV_NAME` appears in both files, the value from the `dev.env` file will be used since that was the last one specified.
+
+Note that you do *not* need to restart to load changes made to these files,
+so you can open and edit your env files in an editor of your choice alongside Posting.
+However, autocompletion and variable highlighting will not update until Posting is restarted.
+
+### Environment specific config
+
+Since all Posting configuration options can also be specified as environment variables, we can also put environment specific config inside `.env` files. There's a dedicated "Configuration" section in this document which covers this in more detail.
+
+For example, if you wanted to use a light theme in the prod environment (as a subtle reminder that you're in production!), you could set the environment variable `POSTING_THEME=solarized-light` inside the `prod.env` file.
+
+Note that configuration files take precedence over environment variables, so if you set a value in both a `.env` file and a `config.yaml`, the value from the `config.yaml` file will be used.
diff --git a/docs/guide/help_system.md b/docs/guide/help_system.md
new file mode 100644
index 00000000..4a22e16e
--- /dev/null
+++ b/docs/guide/help_system.md
@@ -0,0 +1,13 @@
+## Overview
+
+Posting has a *built-in help system*, which can be used to get information about the currently focused widget.
+
+### Getting help for the focused widget
+
+With a widget focused, press `f1` to open a help window for that widget.
+
+
+
+Most widgets offer more keybindings and functionality than meets the eye, and more than what is shown in the application footer.
+
+The help window explains how to use the focused widget, and lists all of the keybindings offered by it.
\ No newline at end of file
diff --git a/docs/guide/importing.md b/docs/guide/importing.md
new file mode 100644
index 00000000..47176679
--- /dev/null
+++ b/docs/guide/importing.md
@@ -0,0 +1,19 @@
+## Overview
+
+Posting currently supports importing from OpenAPI specs.
+
+Support for other API formats will be added in future updates.
+
+## Importing from OpenAPI
+
+!!! example "This feature is experimental."
+
+Posting can convert OpenAPI 3.x specs into collections.
+
+To import an OpenAPI Specification, use the `posting import path/to/openapi.yaml` command.
+
+You can optionally supply an output directory.
+
+If no output directory is supplied, the default collection directory will be used.
+
+Posting will attempt to build a file structure in the collection that aligns with the URL structure of the imported API.
diff --git a/docs/guide/index.md b/docs/guide/index.md
new file mode 100644
index 00000000..931bf096
--- /dev/null
+++ b/docs/guide/index.md
@@ -0,0 +1,75 @@
+## Installation
+
+Posting can be installed via [`pipx`](https://pipx.pypa.io/stable/):
+
+```bash
+pipx install posting
+```
+
+Python 3.11 or later is required.
+
+More installation methods (`brew`, etc) will be added soon.
+
+## A quick introduction
+
+This introduction will show you how to create a simple POST request to the [JSONPlaceholder](https://jsonplaceholder.typicode.com/) mock API to create a new user. It focuses on an efficient keyboard-driven workflow, but you can also use the mouse if you prefer.
+
+### Collections and requests
+
+A *collection* is simply a directory which may contain requests saved by Posting.
+
+If you launch Posting without specifying a collection, any requests you create will be saved in the "default" collection.
+This is a directory reserved by Posting on your filesystem, and unrelated to the directory you launched Posting from.
+
+This is fine for quick throwaway requests, but you'll probably want to create a new collection for each project you work on so that you can check it into version control.
+
+To create a new collection, simply create a new directory and pass it into Posting:
+
+```bash
+mkdir my-collection
+posting --collection my-collection
+```
+
+Now, any requests you create will be saved in the `my-collection` directory as simple YAML files with the `.posting.yaml` extension.
+
+### Creating a request
+
+When you launch Posting, no request is open.
+
+You can immediately start creating a request, and then save it to disk with ++ctrl+s++.
+Let's do just that.
+We'll create a simple POST request to the [JSONPlaceholder](https://jsonplaceholder.typicode.com/) mock API to create a new user.
+
+Press ++ctrl+t++ to open the request method dropdown, then press ++p++ to quickly select the `POST` method.
+
+Press ++tab++ to move focus to the next widget, which is the URL bar. The URL bar can also be focused with ++ctrl+l++. Type `https://jsonplaceholder.typicode.com/users` into the URL bar.
+
+### Adding a JSON body
+
+Press ++ctrl+o++ to enter "jump mode", then press ++w++ to quickly jump to the "Body" tab.
+
+Press ++j++ (or ++down++) to move the cursor down to the dropdown. Press ++enter++ to open it, and select the option `Raw (json, text, etc.)`.
+
+Move down to the text area below using ++j++ (or ++down++), and type (or paste) the JSON below.
+
+```json
+{
+ "name": "John Doe",
+ "username": "johndoe",
+ "email": "john.doe@example.com"
+}
+```
+
+### Viewing keyboard shortcuts
+
+Now is probably a good time to note that you can see the full list of keyboard shortcuts for the focused widget by pressing ++f1++. The text area widget in particular has a lot of useful shortcuts and supports things like undo/redo.
+
+
+### Sending the request
+
+Press ++ctrl+j++ to send the request. This shortcut works globally.
+
+### Saving the request
+
+Finally, press ++ctrl+s++ to save the request to disk.
+Fill out the form on the modal that appears, and press ++enter++ or ++ctrl+n++ to write the request to disk.
diff --git a/docs/guide/navigation.md b/docs/guide/navigation.md
new file mode 100644
index 00000000..4d920ea0
--- /dev/null
+++ b/docs/guide/navigation.md
@@ -0,0 +1,43 @@
+Posting can be navigated using either mouse or keyboard.
+
+## Jump mode
+
+Jump mode is the fastest way to get around.
+
+Press ctrl+o to enter jump mode, followed by the key corresponding to the widget you want to switch focus to (jump to).
+
+
+
+
+
+With the default layout, the positioning of keys on the overlays is similar to the positioning of the keys on a QWERTY keyboard.
+
+To exit jump mode, press esc.
+
+## Tab navigation
+
+tab and shift+tab will move focus between widgets,
+and j/k/up/down will move around within a widget.
+
+Some widgets have additional keybindings for navigation.
+You can check these by pressing f1 while it is focused.
+
+Where it makes sense, up and down will also move between widgets.
+
+## Contextual help
+
+Many widgets have additional bindings for navigation other than those displayed in the footer. You can view the full list of keybindings for the currently
+focused widget, as well as additional usage information and tips, by pressing f1 or ctrl+? (or ctrl+shift+/).
+
+## Automatic focus switching
+
+You can use the `focus.on_startup` and `focus.on_response` configuration options to control which widget is focused when the app starts and when a response is received.
+
+| Config | Default value | Description |
+|----------------------|---------------|-------------|
+| `focus.on_startup` | `"url"`, `"method", "collection"` (Default: `"url"`) | Automatically focus the URL bar, method, or collection browser when the app starts. |
+| `focus.on_response` | `"body"`, `"tabs"` (Default: `unset`)| Automatically focus the response tabs or response body text area when a response is received. |
+
+## Exiting
+
+Quit Posting by pressing ctrl+c, or by opening the command palette and selecting "Quit".
\ No newline at end of file
diff --git a/docs/guide/requests.md b/docs/guide/requests.md
new file mode 100644
index 00000000..8cde56c5
--- /dev/null
+++ b/docs/guide/requests.md
@@ -0,0 +1,52 @@
+## Overview
+
+Requests are stored directly on your file system as simple YAML files, suffixed with `.posting.yaml` - easy to read, understand, and version control!
+
+## Example
+
+Here's an example of what a request file looks like:
+
+```yaml
+name: Create user
+description: Adds a new user to the system.
+method: POST
+url: https://jsonplaceholder.typicode.com/users
+body:
+ content: |-
+ {
+ "firstName": "John",
+ "email": "john.doe@example.com"
+ }
+headers:
+- name: Content-Type
+ value: application/json
+params:
+- name: sendWelcomeEmail
+ value: 'true'
+```
+
+## Creating a new request
+
+Press ++ctrl+n++ to create a new request.
+
+You'll be prompted to supply a name for the request.
+By default, this name is used to generate the filename, but you can also choose your own filename if you wish.
+
+!!! tip
+ If you already have a collection loaded, the directory will be pre-selected based on the location of the cursor in the collection tree, so moving the cursor to the correct location *before* pressing ++ctrl+n++ will save you from needing to type out the path.
+
+Within the "Directory" field of this dialog, it's important to note that `.` refers to the currently loaded *collection* directory (that is, the directory that was loaded using the `--collection` option), and *not* necessarily the current working directory.
+
+## Saving a request
+
+Press ++ctrl+s++ to save the currently open request.
+
+If you haven't saved the request yet, a dialog will appear, prompting you to give the request a name, and to select a directory to save it in.
+
+If the request is already saved on disk, ++ctrl+s++ will overwrite the previous version with your new changes.
+
+## Loading requests
+
+Requests are stored on your file system as simple YAML files, suffixed with `.posting.yaml`.
+
+A directory can be loaded into Posting using the `--collection` option, and all `.posting.yaml` files in that directory will be displayed in the sidebar.
\ No newline at end of file
diff --git a/docs/guide/themes.md b/docs/guide/themes.md
new file mode 100644
index 00000000..297e7fdd
--- /dev/null
+++ b/docs/guide/themes.md
@@ -0,0 +1,82 @@
+## Overview
+
+Posting ships with several built-in themes, and also supports custom, user-made themes.
+With themes, you can customise most aspects of the color palette used in the application, as well as the syntax highlighting.
+
+### Creating a theme
+
+You can check where Posting will look for themes by running `posting locate themes` in your terminal. Place custom themes in this directory and Posting will load them on startup. Theme files must be suffixed with `.yaml`, but the rest of the filename is unused by Posting.
+
+Here's an example theme file:
+
+```yaml
+name: example # use this name in your config file
+primary: '#4e78c4' # buttons, fixed table columns
+secondary: '#f39c12' # method selector, some minor labels
+accent: '#e74c3c' # header text, scrollbars, cursors, focus highlights
+background: '#0e1726' # background colors
+surface: '#17202a' # panels, etc
+error: '#e74c3c' # error messages
+success: '#2ecc71' # success messages
+warning: '#f1c40f' # warning messages
+
+# Optional metadata
+author: Darren Burns
+description: A dark theme with a blue primary color.
+homepage: https://github.com/darrenburns/posting
+```
+
+After adding a theme, you'll need to restart Posting for it to take effect.
+
+To use the theme, you can specify it in your `config.yaml` file:
+
+```yaml
+theme: example
+```
+
+Note that the theme name is *not* defined by the filename, but by the `name` field in the theme file.
+
+#### Syntax highlighting
+
+Syntax highlighted elements such as the URL bar, text areas, and fields which contain variables will be colored based on the semantic colors defined in the theme (`primary`, `secondary`, etc) by default.
+
+If you'd like more control over the syntax highlighting, you can specify a custom syntax highlighting colors inside the theme file.
+
+The example below illustrates some of the options available when it comes to customizing syntax highlighting.
+
+```yaml
+text_area:
+ cursor: 'reverse' # style the block cursor
+ cursor_line: 'underline' # style the line the cursor is on
+ selection: 'reverse' # style the selected text
+ gutter: 'bold #50e3c2' # style the gutter
+ matched_bracket: 'black on green' # style the matched bracket
+url:
+ base: 'italic #50e3c2' # style the 'base' of the url
+ protocol: 'bold #b8e986' # style the protocol
+syntax:
+ json_key: 'italic #4a90e2' # style json keys
+ json_number: '#50e3c2' # style json numbers
+ json_string: '#b8e986' # style json strings
+ json_boolean: '#b8e986' # style json booleans
+ json_null: 'underline #b8e986' # style json null values
+```
+
+### X resources themes
+
+Posting supports using X resources for theming. To use this, enable the `use_xresources` option (see above).
+
+It requires the `xrdb` executable on your `PATH` and `xrdb -query` must return the following variables:
+
+| Xresources | Description |
+|-------------|-----------|
+| *color0 | primary color: used for button backgrounds and fixed table columns |
+| *color8 | secondary color: used in method selector and some minor labels |
+| *color1 | error color: used for error messages |
+| *color2 | success color: used for success messages |
+| *color3 | warning color: used for warning messages |
+| *color4 | accent color: used for header text, scrollbars, cursors, focus highlights |
+| *background | background color |
+| *color7 | surface/panel color |
+
+If these conditions are met, themes called `xresources-dark` and `xresources-light` will be available for use.
\ No newline at end of file
diff --git a/docs/overrides/home.html b/docs/overrides/home.html
index 940dcbda..c220b3aa 100644
--- a/docs/overrides/home.html
+++ b/docs/overrides/home.html
@@ -1,6 +1,6 @@
{% extends "main.html" %}
{% block tabs %}
- {{ super() }}
+{{ super() }}
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌Enter a URL... Send
-
-╭──────────────────────────────────────────────────────────────── Request ─╮
-│HeadersBodyQueryAuthInfoOptions│
-│╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│NameValue Add header │
-╰──────────────────────────────────────────────────────────────────────────╯
-╭─────────────────────────────────────────────────────────────── Response ─╮
-│BodyHeadersCookiesTrace│
-│╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-││
-││
-││
-││
-│1:1read-onlyJSON▼Wrap ▐X▌│
-╰──────────────────────────────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼▌Enter a URL... Send
+
+╭──────────────────────────────────────────────────────────────── Request ─╮
+│HeadersBodyQueryAuthInfoOptions│
+│╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│NameValue Add header │
+╰──────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────────────────────────────────────── Response ─╮
+│BodyHeadersCookiesTrace│
+│╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+││
+││
+││
+││
+│1:1read-onlyJSON▼Wrap ▐X▌│
+╰──────────────────────────────────────────────────────────────────────────╯
+ ^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_can_type_to_filter_options.svg b/tests/__snapshots__/test_snapshots/TestCommandPalette.test_can_type_to_filter_options.svg
index 6b63b8c9..0cde64f3 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,166 +19,166 @@
font-weight: 700;
}
- .terminal-1242896440-matrix {
+ .terminal-2331259748-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1242896440-title {
+ .terminal-2331259748-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1242896440-r1 { fill: #b3b3b3 }
-.terminal-1242896440-r2 { fill: #c5c8c6 }
-.terminal-1242896440-r3 { fill: #dfdfdf }
-.terminal-1242896440-r4 { fill: #cca544 }
-.terminal-1242896440-r5 { fill: #b2bec7;text-decoration: underline; }
-.terminal-1242896440-r6 { fill: #b2bec7 }
-.terminal-1242896440-r7 { fill: #7da2be }
-.terminal-1242896440-r8 { fill: #313131 }
-.terminal-1242896440-r9 { fill: #fea62b }
-.terminal-1242896440-r10 { fill: #b5b5b5 }
-.terminal-1242896440-r11 { fill: #b0b8bd }
-.terminal-1242896440-r12 { fill: #808080 }
-.terminal-1242896440-r13 { fill: #211505 }
-.terminal-1242896440-r14 { fill: #503714 }
-.terminal-1242896440-r15 { fill: #797b7c;font-weight: bold }
-.terminal-1242896440-r16 { fill: #b5b5b6;font-weight: bold }
-.terminal-1242896440-r17 { fill: #dfdfdf;font-weight: bold }
-.terminal-1242896440-r18 { fill: #fea62b;font-weight: bold }
-.terminal-1242896440-r19 { fill: #565656 }
-.terminal-1242896440-r20 { fill: #717171 }
-.terminal-1242896440-r21 { fill: #1f1f1f }
-.terminal-1242896440-r22 { fill: #1c1c1c }
-.terminal-1242896440-r23 { fill: #717171;font-weight: bold }
-.terminal-1242896440-r24 { fill: #00672d }
-.terminal-1242896440-r25 { fill: #707374 }
-.terminal-1242896440-r26 { fill: #272727;font-weight: bold }
-.terminal-1242896440-r27 { fill: #272727 }
-.terminal-1242896440-r28 { fill: #818181 }
-.terminal-1242896440-r29 { fill: #161616 }
-.terminal-1242896440-r30 { fill: #92601c }
-.terminal-1242896440-r31 { fill: #6c6c6c }
-.terminal-1242896440-r32 { fill: #838383 }
-.terminal-1242896440-r33 { fill: #606060 }
-.terminal-1242896440-r34 { fill: #1a1a1a }
-.terminal-1242896440-r35 { fill: #306f43;font-weight: bold }
-.terminal-1242896440-r36 { fill: #cc9434;font-weight: bold }
-.terminal-1242896440-r37 { fill: #afafaf }
+ .terminal-2331259748-r1 { fill: #b2b2b4 }
+.terminal-2331259748-r2 { fill: #c5c8c6 }
+.terminal-2331259748-r3 { fill: #dfdfe0 }
+.terminal-2331259748-r4 { fill: #cc75b0 }
+.terminal-2331259748-r5 { fill: #100d18;text-decoration: underline; }
+.terminal-2331259748-r6 { fill: #100d18 }
+.terminal-2331259748-r7 { fill: #352b49 }
+.terminal-2331259748-r8 { fill: #33314e }
+.terminal-2331259748-r9 { fill: #ff69b4 }
+.terminal-2331259748-r10 { fill: #b5b5b9 }
+.terminal-2331259748-r11 { fill: #bfb5c8 }
+.terminal-2331259748-r12 { fill: #7f7f84 }
+.terminal-2331259748-r13 { fill: #210d17 }
+.terminal-2331259748-r14 { fill: #4f2442 }
+.terminal-2331259748-r15 { fill: #7b7b88;font-weight: bold }
+.terminal-2331259748-r16 { fill: #b5b5b9;font-weight: bold }
+.terminal-2331259748-r17 { fill: #dfdfe0;font-weight: bold }
+.terminal-2331259748-r18 { fill: #fed700;font-weight: bold }
+.terminal-2331259748-r19 { fill: #54545c }
+.terminal-2331259748-r20 { fill: #6f6f75 }
+.terminal-2331259748-r21 { fill: #1d1d28 }
+.terminal-2331259748-r22 { fill: #1d1c34 }
+.terminal-2331259748-r23 { fill: #6f6f75;font-weight: bold }
+.terminal-2331259748-r24 { fill: #00934c }
+.terminal-2331259748-r25 { fill: #74707d }
+.terminal-2331259748-r26 { fill: #242430;font-weight: bold }
+.terminal-2331259748-r27 { fill: #242430 }
+.terminal-2331259748-r28 { fill: #808084 }
+.terminal-2331259748-r29 { fill: #141420 }
+.terminal-2331259748-r30 { fill: #923e6c }
+.terminal-2331259748-r31 { fill: #6c6c72 }
+.terminal-2331259748-r32 { fill: #828287 }
+.terminal-2331259748-r33 { fill: #5f5f66 }
+.terminal-2331259748-r34 { fill: #181824 }
+.terminal-2331259748-r35 { fill: #038f5d;font-weight: bold }
+.terminal-2331259748-r36 { fill: #cc64a0;font-weight: bold }
+.terminal-2331259748-r37 { fill: #afafb0 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌▎ Send
-▎view
-╭─ Collection▎── Request ─╮
-│ GET echo▎view: expand request tions│
-│ GET get ran▎Expand the request section━━━━━━━━━━━━│
-│ POS echo po▎view: expand response ╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceh▎Expand the response section╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/▎view: toggle collection browser ╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get▎Toggle the collection browserd header │
-│ GET get▎────────────╯
-│ POS create │╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼▌▎ Send
+▎view
+╭─ Collection▎── Request ─╮
+│ GET echo▎view: expand request tions│
+│ GET get ran▎Expand the request section━━━━━━━━━━━━│
+│ POS echo po▎view: expand response ╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceh▎Expand the response section╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/▎view: toggle collection browser ╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get▎Toggle the collection browserd header │
+│ GET get▎────────────╯
+│ POS create │╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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 a04f36d9..1ea586fd 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,206 +19,206 @@
font-weight: 700;
}
- .terminal-3659734164-matrix {
+ .terminal-892557118-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3659734164-title {
+ .terminal-892557118-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3659734164-r1 { fill: #b3b3b3 }
-.terminal-3659734164-r2 { fill: #c5c8c6 }
-.terminal-3659734164-r3 { fill: #dfdfdf }
-.terminal-3659734164-r4 { fill: #cca544 }
-.terminal-3659734164-r5 { fill: #b2bec7;text-decoration: underline; }
-.terminal-3659734164-r6 { fill: #b2bec7 }
-.terminal-3659734164-r7 { fill: #7da2be }
-.terminal-3659734164-r8 { fill: #313131 }
-.terminal-3659734164-r9 { fill: #1a1004 }
-.terminal-3659734164-r10 { fill: #636363 }
-.terminal-3659734164-r11 { fill: #b5b5b5 }
-.terminal-3659734164-r12 { fill: #fea62b }
-.terminal-3659734164-r13 { fill: #b0b8bd }
-.terminal-3659734164-r14 { fill: #808080 }
-.terminal-3659734164-r15 { fill: #211505 }
-.terminal-3659734164-r16 { fill: #696969 }
-.terminal-3659734164-r17 { fill: #503714 }
-.terminal-3659734164-r18 { fill: #797b7c;font-weight: bold }
-.terminal-3659734164-r19 { fill: #b5b5b6;font-weight: bold }
-.terminal-3659734164-r20 { fill: #dfdfdf;font-weight: bold }
-.terminal-3659734164-r21 { fill: #717171 }
-.terminal-3659734164-r22 { fill: #1f1f1f }
-.terminal-3659734164-r23 { fill: #1c1c1c }
-.terminal-3659734164-r24 { fill: #717171;font-weight: bold }
-.terminal-3659734164-r25 { fill: #00672d }
-.terminal-3659734164-r26 { fill: #b4b4b4 }
-.terminal-3659734164-r27 { fill: #707374 }
-.terminal-3659734164-r28 { fill: #818181 }
-.terminal-3659734164-r29 { fill: #161616 }
-.terminal-3659734164-r30 { fill: #0d0d0d;font-weight: bold }
-.terminal-3659734164-r31 { fill: #6c6c6c }
-.terminal-3659734164-r32 { fill: #838383 }
-.terminal-3659734164-r33 { fill: #606060 }
-.terminal-3659734164-r34 { fill: #1a1a1a }
-.terminal-3659734164-r35 { fill: #306f43;font-weight: bold }
-.terminal-3659734164-r36 { fill: #cc9434;font-weight: bold }
-.terminal-3659734164-r37 { fill: #afafaf }
+ .terminal-892557118-r1 { fill: #b2b2b4 }
+.terminal-892557118-r2 { fill: #c5c8c6 }
+.terminal-892557118-r3 { fill: #dfdfe0 }
+.terminal-892557118-r4 { fill: #cc75b0 }
+.terminal-892557118-r5 { fill: #100d18;text-decoration: underline; }
+.terminal-892557118-r6 { fill: #100d18 }
+.terminal-892557118-r7 { fill: #352b49 }
+.terminal-892557118-r8 { fill: #33314e }
+.terminal-892557118-r9 { fill: #1a0a12 }
+.terminal-892557118-r10 { fill: #646374 }
+.terminal-892557118-r11 { fill: #b5b5b9 }
+.terminal-892557118-r12 { fill: #ff69b4 }
+.terminal-892557118-r13 { fill: #bfb5c8 }
+.terminal-892557118-r14 { fill: #7f7f84 }
+.terminal-892557118-r15 { fill: #210d17 }
+.terminal-892557118-r16 { fill: #68686f }
+.terminal-892557118-r17 { fill: #4f2442 }
+.terminal-892557118-r18 { fill: #7b7b88;font-weight: bold }
+.terminal-892557118-r19 { fill: #b5b5b9;font-weight: bold }
+.terminal-892557118-r20 { fill: #dfdfe0;font-weight: bold }
+.terminal-892557118-r21 { fill: #6f6f75 }
+.terminal-892557118-r22 { fill: #1d1d28 }
+.terminal-892557118-r23 { fill: #1d1c34 }
+.terminal-892557118-r24 { fill: #6f6f75;font-weight: bold }
+.terminal-892557118-r25 { fill: #00934c }
+.terminal-892557118-r26 { fill: #b4b4b8 }
+.terminal-892557118-r27 { fill: #74707d }
+.terminal-892557118-r28 { fill: #808084 }
+.terminal-892557118-r29 { fill: #141420 }
+.terminal-892557118-r30 { fill: #0d0e2e;font-weight: bold }
+.terminal-892557118-r31 { fill: #6c6c72 }
+.terminal-892557118-r32 { fill: #828287 }
+.terminal-892557118-r33 { fill: #5f5f66 }
+.terminal-892557118-r34 { fill: #181824 }
+.terminal-892557118-r35 { fill: #038f5d;font-weight: bold }
+.terminal-892557118-r36 { fill: #cc64a0;font-weight: bold }
+.terminal-892557118-r37 { fill: #afafb0 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌Enter a URL...▎ Send
-▎Search for commands…
-╭─ Collection ───────────────────▎────────────────────── Request ─╮
-│ GET echo▎ theme: posting │
-│ GET get random user ▎Set the theme to posting━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post ▎ theme: monokai ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▎Set the theme to monokai╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/▎ theme: solarized-light ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all ▎Set the theme to solarized-lighters.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get one ▎ theme: nautilus ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ POS create ▎Set the theme to nautilus╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ DEL delete a post ▎ theme: galaxy ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ comments/▎Set the theme to galaxy╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get comments ▎ theme: nebula Add header │
-│ GET get comments (via par▎Set the theme to nebula────────────────────────────────╯
-│ PUT edit a comment ▎ theme: alpine ───────────────────── Response ─╮
-│▼ todos/▎Set the theme to alpine│
-│ GET get all ▎ theme: cobalt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get one ▎Set the theme to cobalt│
-│▼ users/▎ theme: twilight │
-│ GET get a user ▎Set the theme to twilight▅│
-│ GET get all users ▎ theme: hacker │
-│ POS create a user ▎Set the theme to hacker│
-│ PUT update a user ▎ layout: horizontal │
-│────────────────────────────────▎Change layout to horizontal│
-│This is an echo server we can u▎│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼▌Enter a URL...▎ Send
+▎Search for commands…
+╭─ Collection ───────────────────▎────────────────────── Request ─╮
+│ GET echo▎ theme: galaxy │
+│ GET get random user ▎Set the theme to galaxy━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post ▎ theme: posting ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▎Set the theme to posting╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/▎ theme: monokai ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all ▎Set the theme to monokaiers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get one ▎ theme: solarized-light ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ POS create ▎Set the theme to solarized-light╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ DEL delete a post ▎ theme: nautilus ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ comments/▎Set the theme to nautilus╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get comments ▎ theme: nebula Add header │
+│ GET get comments (via par▎Set the theme to nebula────────────────────────────────╯
+│ PUT edit a comment ▎ theme: alpine ───────────────────── Response ─╮
+│▼ todos/▎Set the theme to alpine│
+│ GET get all ▎ theme: cobalt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get one ▎Set the theme to cobalt│
+│▼ users/▎ theme: twilight ▆│
+│ GET get a user ▎Set the theme to twilight│
+│ GET get all users ▎ theme: hacker │
+│ POS create a user ▎Set the theme to hacker│
+│ PUT update a user ▎ app: quit │
+│────────────────────────────────▎Quit Posting│
+│This is an echo server we can u▎│
+│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/TestConfig.test_config.svg b/tests/__snapshots__/test_snapshots/TestConfig.test_config.svg
index b2937047..1ff885f8 100644
--- a/tests/__snapshots__/test_snapshots/TestConfig.test_config.svg
+++ b/tests/__snapshots__/test_snapshots/TestConfig.test_config.svg
@@ -19,213 +19,213 @@
font-weight: 700;
}
- .terminal-2421798725-matrix {
+ .terminal-908541447-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2421798725-title {
+ .terminal-908541447-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2421798725-r1 { fill: #c5c8c6 }
-.terminal-2421798725-r2 { fill: #130f1c;text-decoration: underline; }
-.terminal-2421798725-r3 { fill: #130f1c }
-.terminal-2421798725-r4 { fill: #3c2e58 }
-.terminal-2421798725-r5 { fill: #ff69b4 }
-.terminal-2421798725-r6 { fill: #9393a3 }
-.terminal-2421798725-r7 { fill: #9370db }
-.terminal-2421798725-r8 { fill: #e1e1e6 }
-.terminal-2421798725-r9 { fill: #00fa9a }
-.terminal-2421798725-r10 { fill: #efe3fb }
-.terminal-2421798725-r11 { fill: #9f9fa5 }
-.terminal-2421798725-r12 { fill: #632e53 }
-.terminal-2421798725-r13 { fill: #dfdfe1 }
-.terminal-2421798725-r14 { fill: #dfdfe1;font-weight: bold }
-.terminal-2421798725-r15 { fill: #002014;font-weight: bold }
-.terminal-2421798725-r16 { fill: #8b8b93 }
-.terminal-2421798725-r17 { fill: #58d1eb;font-weight: bold }
-.terminal-2421798725-r18 { fill: #6a6a74 }
-.terminal-2421798725-r19 { fill: #252532 }
-.terminal-2421798725-r20 { fill: #0f0f1f }
-.terminal-2421798725-r21 { fill: #ede2f7 }
-.terminal-2421798725-r22 { fill: #e1e0e4 }
-.terminal-2421798725-r23 { fill: #a2a2a8;font-weight: bold }
-.terminal-2421798725-r24 { fill: #210d17 }
-.terminal-2421798725-r25 { fill: #e0e0e2 }
-.terminal-2421798725-r26 { fill: #8b8b93;font-weight: bold }
-.terminal-2421798725-r27 { fill: #e9e1f1 }
-.terminal-2421798725-r28 { fill: #6f6f78 }
-.terminal-2421798725-r29 { fill: #00b85f }
-.terminal-2421798725-r30 { fill: #e2e0e5 }
-.terminal-2421798725-r31 { fill: #ff79c6;font-weight: bold }
-.terminal-2421798725-r32 { fill: #bd93f9 }
-.terminal-2421798725-r33 { fill: #9b9aab;font-weight: bold }
-.terminal-2421798725-r34 { fill: #e3e3e8;font-weight: bold }
-.terminal-2421798725-r35 { fill: #552956 }
-.terminal-2421798725-r36 { fill: #f1fa8c }
-.terminal-2421798725-r37 { fill: #737387 }
-.terminal-2421798725-r38 { fill: #918d9d }
-.terminal-2421798725-r39 { fill: #87878f }
-.terminal-2421798725-r40 { fill: #a2a2a8 }
-.terminal-2421798725-r41 { fill: #30303b }
-.terminal-2421798725-r42 { fill: #00fa9a;font-weight: bold }
-.terminal-2421798725-r43 { fill: #ff7ec8;font-weight: bold }
-.terminal-2421798725-r44 { fill: #dbdbdd }
+ .terminal-908541447-r1 { fill: #c5c8c6 }
+.terminal-908541447-r2 { fill: #15111e;text-decoration: underline; }
+.terminal-908541447-r3 { fill: #15111e }
+.terminal-908541447-r4 { fill: #43365c }
+.terminal-908541447-r5 { fill: #ff69b4 }
+.terminal-908541447-r6 { fill: #9393a3 }
+.terminal-908541447-r7 { fill: #a684e8 }
+.terminal-908541447-r8 { fill: #e1e1e6 }
+.terminal-908541447-r9 { fill: #00fa9a }
+.terminal-908541447-r10 { fill: #efe3fb }
+.terminal-908541447-r11 { fill: #9f9fa5 }
+.terminal-908541447-r12 { fill: #632e53 }
+.terminal-908541447-r13 { fill: #dfdfe1 }
+.terminal-908541447-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-908541447-r15 { fill: #002014;font-weight: bold }
+.terminal-908541447-r16 { fill: #8b8b93 }
+.terminal-908541447-r17 { fill: #58d1eb;font-weight: bold }
+.terminal-908541447-r18 { fill: #6a6a74 }
+.terminal-908541447-r19 { fill: #252532 }
+.terminal-908541447-r20 { fill: #0f0f1f }
+.terminal-908541447-r21 { fill: #ede2f7 }
+.terminal-908541447-r22 { fill: #e1e0e4 }
+.terminal-908541447-r23 { fill: #a2a2a8;font-weight: bold }
+.terminal-908541447-r24 { fill: #210d17 }
+.terminal-908541447-r25 { fill: #e0e0e2 }
+.terminal-908541447-r26 { fill: #8b8b93;font-weight: bold }
+.terminal-908541447-r27 { fill: #e9e1f1 }
+.terminal-908541447-r28 { fill: #6f6f78 }
+.terminal-908541447-r29 { fill: #00b85f }
+.terminal-908541447-r30 { fill: #e2e0e5 }
+.terminal-908541447-r31 { fill: #f92672;font-weight: bold }
+.terminal-908541447-r32 { fill: #ae81ff }
+.terminal-908541447-r33 { fill: #9b9aab;font-weight: bold }
+.terminal-908541447-r34 { fill: #e3e3e8;font-weight: bold }
+.terminal-908541447-r35 { fill: #552956 }
+.terminal-908541447-r36 { fill: #e6db74 }
+.terminal-908541447-r37 { fill: #737387 }
+.terminal-908541447-r38 { fill: #918d9d }
+.terminal-908541447-r39 { fill: #87878f }
+.terminal-908541447-r40 { fill: #a2a2a8 }
+.terminal-908541447-r41 { fill: #30303b }
+.terminal-908541447-r42 { fill: #00fa9a;font-weight: bold }
+.terminal-908541447-r43 { fill: #ff7ec8;font-weight: bold }
+.terminal-908541447-r44 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-GET▼https://jsonplaceholder.typicode.com/posts ■■■■■■■ Send
-
-╭─ Collection ───────────────────────╮╭─────────────────────────── Request ─╮╭───────────────── Response 200 OK ─╮
-│ GET echo││Headers•BodyQueryAuthInfoO││BodyHeadersCookiesTrace│
-│ GET get random user││╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││▐ Content-Type application/json ││ 1 [│
-│▼ jsonplaceholder/││▐ Referer https://example.c││ 2 { │
-│▼ posts/││▐ Accept-Encoding gzip ││ 3 "userId": 1, │
-│█ GET get all││▐ Cache-Control no-cache ││ 4 "id": 1, │
-│ GET get one││▐▋││ 5 "title": "sunt aut │
-│ POS create││││facere repellat provident │
-│ DEL delete a post││││occaecati excepturi optio │
-│▼ comments/││││reprehenderit", │
-│ GET get comments││││ 6 "body": "quia et │
-│ GET get comments (via param)││││suscipit\nsuscipit │
-│ PUT edit a comment││││recusandae consequuntur │
-│▼ todos/││││expedita et │
-│ GET get all││││cum\nreprehenderit │
-│ GET get one││││molestiae ut ut quas │
-│▼ users/││││totam\nnostrum rerum est │
-│ GET get a user││││autem sunt rem eveniet │
-│ GET get all users││││architecto"│
-│ POS create a user││││ 7 }, │
-│ PUT update a user││││ 8 { │
-│ DEL delete a user││││ 9 "userId": 1, │
-│││││ 10 "id": 2, │
-│││││ 11 "title": "qui est esse", │
-│││Name││ 12 "body": "est rerum │
-│────────────────────────────────────││Value││tempore vitae\nsequi sint │
-│Retrieve all posts││ Add header ││1:1read-onlyJSON▼Wrap ▐X▌│
-╰─────────────── sample-collections ─╯╰─────────────────────────────────────╯╰─────────────────────────────────────╯
- f3 Pager f4 Editor ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+GET▼https://jsonplaceholder.typicode.com/posts ■■■■■■■ Send
+
+╭─ Collection ───────────────────────╮╭─────────────────────────── Request ─╮╭───────────────── Response 200 OK ─╮
+│ GET echo││Headers•BodyQueryAuthInfoO││BodyHeadersCookiesTrace│
+│ GET get random user││╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││▐ Content-Type application/json ││ 1 [│
+│▼ jsonplaceholder/││▐ Referer https://example.c││ 2 { │
+│▼ posts/││▐ Accept-Encoding gzip ││ 3 "userId": 1, │
+│█ GET get all││▐ Cache-Control no-cache ││ 4 "id": 1, │
+│ GET get one││▐▋││ 5 "title": "sunt aut │
+│ POS create││││facere repellat provident │
+│ DEL delete a post││││occaecati excepturi optio │
+│▼ comments/││││reprehenderit", │
+│ GET get comments││││ 6 "body": "quia et │
+│ GET get comments (via param)││││suscipit\nsuscipit │
+│ PUT edit a comment││││recusandae consequuntur │
+│▼ todos/││││expedita et │
+│ GET get all││││cum\nreprehenderit │
+│ GET get one││││molestiae ut ut quas │
+│▼ users/││││totam\nnostrum rerum est │
+│ GET get a user││││autem sunt rem eveniet │
+│ GET get all users││││architecto"│
+│ POS create a user││││ 7 }, │
+│ PUT update a user││││ 8 { │
+│ DEL delete a user││││ 9 "userId": 1, │
+│││││ 10 "id": 2, │
+│││││ 11 "title": "qui est esse", │
+│││Name││ 12 "body": "est rerum │
+│────────────────────────────────────││Value││tempore vitae\nsequi sint │
+│Retrieve all posts││ Add header ││1:1read-onlyJSON▼Wrap ▐X▌│
+╰─────────────── sample-collections ─╯╰─────────────────────────────────────╯╰─────────────────────────────────────╯
+ f3 Pager f4 Editor ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Help
diff --git a/tests/__snapshots__/test_snapshots/TestCustomThemeComplex.test_highlighting_applied_from_custom_theme__json.svg b/tests/__snapshots__/test_snapshots/TestCustomThemeComplex.test_highlighting_applied_from_custom_theme__json.svg
index a5c86b56..f8c579f1 100644
--- a/tests/__snapshots__/test_snapshots/TestCustomThemeComplex.test_highlighting_applied_from_custom_theme__json.svg
+++ b/tests/__snapshots__/test_snapshots/TestCustomThemeComplex.test_highlighting_applied_from_custom_theme__json.svg
@@ -19,208 +19,208 @@
font-weight: 700;
}
- .terminal-226685334-matrix {
+ .terminal-3798022933-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-226685334-title {
+ .terminal-3798022933-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-226685334-r1 { fill: #1e1f1f }
-.terminal-226685334-r2 { fill: #c5c8c6 }
-.terminal-226685334-r3 { fill: #c47fe0 }
-.terminal-226685334-r4 { fill: #e4f0f9;text-decoration: underline; }
-.terminal-226685334-r5 { fill: #e4f0f9 }
-.terminal-226685334-r6 { fill: #acd3ed }
-.terminal-226685334-r7 { fill: #9b59b6;font-weight: bold;text-decoration: underline; }
-.terminal-226685334-r8 { fill: #de4e88;text-decoration: underline; }
-.terminal-226685334-r9 { fill: #3498db;font-style: italic; }
-.terminal-226685334-r10 { fill: #181919 }
-.terminal-226685334-r11 { fill: #051a0e }
-.terminal-226685334-r12 { fill: #5e6060 }
-.terminal-226685334-r13 { fill: #cfbbdc }
-.terminal-226685334-r14 { fill: #9b59b6 }
-.terminal-226685334-r15 { fill: #1e1f1f;font-weight: bold }
-.terminal-226685334-r16 { fill: #707273 }
-.terminal-226685334-r17 { fill: #707273;font-weight: bold }
-.terminal-226685334-r18 { fill: #929495 }
-.terminal-226685334-r19 { fill: #58d1eb;font-weight: bold }
-.terminal-226685334-r20 { fill: #007129 }
-.terminal-226685334-r21 { fill: #d6d9da }
-.terminal-226685334-r22 { fill: #1d1d1e }
-.terminal-226685334-r23 { fill: #5a5c5c }
-.terminal-226685334-r24 { fill: #596060;font-weight: bold }
-.terminal-226685334-r25 { fill: #181a1a;font-weight: bold }
-.terminal-226685334-r26 { fill: #1a1a1a }
-.terminal-226685334-r27 { fill: #ecf0f1;font-style: italic; }
-.terminal-226685334-r28 { fill: #1e1f1f;font-style: italic; }
-.terminal-226685334-r29 { fill: #8e44ad;font-weight: bold;font-style: italic; }
-.terminal-226685334-r30 { fill: #27ae60;font-style: italic; }
-.terminal-226685334-r31 { fill: #8e44ad;font-weight: bold }
-.terminal-226685334-r32 { fill: #27ae60 }
-.terminal-226685334-r33 { fill: #e67e22 }
-.terminal-226685334-r34 { fill: #767878 }
-.terminal-226685334-r35 { fill: #cbcece }
-.terminal-226685334-r36 { fill: #27ae60;font-weight: bold }
-.terminal-226685334-r37 { fill: #cccfd0;font-weight: bold }
-.terminal-226685334-r38 { fill: #cccfd0 }
-.terminal-226685334-r39 { fill: #5b5d5e }
-.terminal-226685334-r40 { fill: #e0e4e5 }
-.terminal-226685334-r41 { fill: #b386c7 }
-.terminal-226685334-r42 { fill: #595a5b }
-.terminal-226685334-r43 { fill: #848787 }
-.terminal-226685334-r44 { fill: #dbdfe0 }
-.terminal-226685334-r45 { fill: #62c18b;font-weight: bold }
-.terminal-226685334-r46 { fill: #af6cca;font-weight: bold }
-.terminal-226685334-r47 { fill: #232424 }
+ .terminal-3798022933-r1 { fill: #1e1f1f }
+.terminal-3798022933-r2 { fill: #c5c8c6 }
+.terminal-3798022933-r3 { fill: #c47fe0 }
+.terminal-3798022933-r4 { fill: #e4f0f9;text-decoration: underline; }
+.terminal-3798022933-r5 { fill: #e4f0f9 }
+.terminal-3798022933-r6 { fill: #acd3ed }
+.terminal-3798022933-r7 { fill: #9b59b6;font-weight: bold;text-decoration: underline; }
+.terminal-3798022933-r8 { fill: #de4e88;text-decoration: underline; }
+.terminal-3798022933-r9 { fill: #3498db;font-style: italic; }
+.terminal-3798022933-r10 { fill: #181919 }
+.terminal-3798022933-r11 { fill: #051a0e }
+.terminal-3798022933-r12 { fill: #5e6060 }
+.terminal-3798022933-r13 { fill: #cfbbdc }
+.terminal-3798022933-r14 { fill: #9b59b6 }
+.terminal-3798022933-r15 { fill: #1e1f1f;font-weight: bold }
+.terminal-3798022933-r16 { fill: #707273 }
+.terminal-3798022933-r17 { fill: #707273;font-weight: bold }
+.terminal-3798022933-r18 { fill: #929495 }
+.terminal-3798022933-r19 { fill: #58d1eb;font-weight: bold }
+.terminal-3798022933-r20 { fill: #007129 }
+.terminal-3798022933-r21 { fill: #d6d9da }
+.terminal-3798022933-r22 { fill: #1d1d1e }
+.terminal-3798022933-r23 { fill: #5a5c5c }
+.terminal-3798022933-r24 { fill: #596060;font-weight: bold }
+.terminal-3798022933-r25 { fill: #181a1a;font-weight: bold }
+.terminal-3798022933-r26 { fill: #1a1a1a }
+.terminal-3798022933-r27 { fill: #ecf0f1;font-style: italic; }
+.terminal-3798022933-r28 { fill: #1e1f1f;font-style: italic; }
+.terminal-3798022933-r29 { fill: #8e44ad;font-weight: bold;font-style: italic; }
+.terminal-3798022933-r30 { fill: #27ae60;font-style: italic; }
+.terminal-3798022933-r31 { fill: #8e44ad;font-weight: bold }
+.terminal-3798022933-r32 { fill: #27ae60 }
+.terminal-3798022933-r33 { fill: #e67e22 }
+.terminal-3798022933-r34 { fill: #767878 }
+.terminal-3798022933-r35 { fill: #cbcece }
+.terminal-3798022933-r36 { fill: #27ae60;font-weight: bold }
+.terminal-3798022933-r37 { fill: #cccfd0;font-weight: bold }
+.terminal-3798022933-r38 { fill: #cccfd0 }
+.terminal-3798022933-r39 { fill: #5b5d5e }
+.terminal-3798022933-r40 { fill: #e0e4e5 }
+.terminal-3798022933-r41 { fill: #b386c7 }
+.terminal-3798022933-r42 { fill: #595a5b }
+.terminal-3798022933-r43 { fill: #848787 }
+.terminal-3798022933-r44 { fill: #dbdfe0 }
+.terminal-3798022933-r45 { fill: #62c18b;font-weight: bold }
+.terminal-3798022933-r46 { fill: #af6cca;font-weight: bold }
+.terminal-3798022933-r47 { fill: #232424 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-POST▼https://jsonplaceholder.typicode.com/posts Send
-
-╭─ Collection ────────────────╮╭───────────────────────────────────────────────────── Request ─╮
-│▼ posts/││Headers•Body•QueryAuthInfoOptions│
-│ GET get all││━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get one││Raw (json, text, etc.)▼│
-│█ POS create││1 {│
-│ DEL delete a post││2 "title": "foo", │
-│▼ comments/││3 "body": "bar", │
-│ GET get comments││4 "userId": 1│
-│ GET get comments (via pa││5 } │
-│ PUT edit a comment│││
-│▼ todos/││2:1JSON▼Wrap ▐X▌│
-│ GET get all│╰───────────────────────────────────────────────────────────────╯
-│ GET get one│╭──────────────────────────────────────────────────── Response ─╮
-│▼ users/││BodyHeadersCookiesTrace│
-│ GET get a user││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get all users│││
-│ POS create a user│││
-│ PUT update a user│││
-│ DEL delete a user│││
-││││
-││││
-││││
-│─────────────────────────────│││
-│Create a new post││1:1read-onlyJSON▼Wrap ▐X▌│
-╰─────────── jsonplaceholder ─╯╰───────────────────────────────────────────────────────────────╯
- f3 Pager f4 Editor ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+POST▼https://jsonplaceholder.typicode.com/posts Send
+
+╭─ Collection ────────────────╮╭───────────────────────────────────────────────────── Request ─╮
+│▼ posts/││Headers•Body•QueryAuthInfoOptions│
+│ GET get all││━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get one││Raw (json, text, etc.)▼│
+│█ POS create││1 {│
+│ DEL delete a post││2 "title": "foo", │
+│▼ comments/││3 "body": "bar", │
+│ GET get comments││4 "userId": 1│
+│ GET get comments (via pa││5 } │
+│ PUT edit a comment│││
+│▼ todos/││2:1JSON▼Wrap ▐X▌│
+│ GET get all│╰───────────────────────────────────────────────────────────────╯
+│ GET get one│╭──────────────────────────────────────────────────── Response ─╮
+│▼ users/││BodyHeadersCookiesTrace│
+│ GET get a user││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get all users│││
+│ POS create a user│││
+│ PUT update a user│││
+│ DEL delete a user│││
+││││
+││││
+││││
+│─────────────────────────────│││
+│Create a new post││1:1read-onlyJSON▼Wrap ▐X▌│
+╰─────────── jsonplaceholder ─╯╰───────────────────────────────────────────────────────────────╯
+ f3 Pager f4 Editor ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Hel
diff --git a/tests/__snapshots__/test_snapshots/TestCustomThemeComplex.test_highlighting_applied_from_custom_theme__url.svg b/tests/__snapshots__/test_snapshots/TestCustomThemeComplex.test_highlighting_applied_from_custom_theme__url.svg
index c4c3aad4..144883e6 100644
--- a/tests/__snapshots__/test_snapshots/TestCustomThemeComplex.test_highlighting_applied_from_custom_theme__url.svg
+++ b/tests/__snapshots__/test_snapshots/TestCustomThemeComplex.test_highlighting_applied_from_custom_theme__url.svg
@@ -19,198 +19,198 @@
font-weight: 700;
}
- .terminal-4061367546-matrix {
+ .terminal-1686575776-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4061367546-title {
+ .terminal-1686575776-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4061367546-r1 { fill: #1e1f1f }
-.terminal-4061367546-r2 { fill: #c5c8c6 }
-.terminal-4061367546-r3 { fill: #c47fe0 }
-.terminal-4061367546-r4 { fill: #e4f0f9;text-decoration: underline; }
-.terminal-4061367546-r5 { fill: #e4f0f9 }
-.terminal-4061367546-r6 { fill: #acd3ed }
-.terminal-4061367546-r7 { fill: #9b59b6;font-weight: bold;text-decoration: underline; }
-.terminal-4061367546-r8 { fill: #de4e88;text-decoration: underline; }
-.terminal-4061367546-r9 { fill: #3498db;font-style: italic; }
-.terminal-4061367546-r10 { fill: #181919 }
-.terminal-4061367546-r11 { fill: #1a1a1a }
-.terminal-4061367546-r12 { fill: #051a0e }
-.terminal-4061367546-r13 { fill: #5e6060 }
-.terminal-4061367546-r14 { fill: #cfbbdc }
-.terminal-4061367546-r15 { fill: #9b59b6 }
-.terminal-4061367546-r16 { fill: #1e1f1f;font-weight: bold }
-.terminal-4061367546-r17 { fill: #707273 }
-.terminal-4061367546-r18 { fill: #929495 }
-.terminal-4061367546-r19 { fill: #58d1eb;font-weight: bold }
-.terminal-4061367546-r20 { fill: #596060;font-weight: bold }
-.terminal-4061367546-r21 { fill: #181a1a;font-weight: bold }
-.terminal-4061367546-r22 { fill: #c3a4d3 }
-.terminal-4061367546-r23 { fill: #1d1d1e }
-.terminal-4061367546-r24 { fill: #5a5c5c }
-.terminal-4061367546-r25 { fill: #d9dee1 }
-.terminal-4061367546-r26 { fill: #cccfd0;font-weight: bold }
-.terminal-4061367546-r27 { fill: #cccfd0 }
-.terminal-4061367546-r28 { fill: #5b5d5e }
-.terminal-4061367546-r29 { fill: #e0e4e5 }
-.terminal-4061367546-r30 { fill: #b386c7 }
-.terminal-4061367546-r31 { fill: #767878 }
-.terminal-4061367546-r32 { fill: #595a5b }
-.terminal-4061367546-r33 { fill: #848787 }
-.terminal-4061367546-r34 { fill: #dbdfe0 }
-.terminal-4061367546-r35 { fill: #62c18b;font-weight: bold }
-.terminal-4061367546-r36 { fill: #af6cca;font-weight: bold }
-.terminal-4061367546-r37 { fill: #232424 }
+ .terminal-1686575776-r1 { fill: #1e1f1f }
+.terminal-1686575776-r2 { fill: #c5c8c6 }
+.terminal-1686575776-r3 { fill: #c47fe0 }
+.terminal-1686575776-r4 { fill: #e4f0f9;text-decoration: underline; }
+.terminal-1686575776-r5 { fill: #e4f0f9 }
+.terminal-1686575776-r6 { fill: #acd3ed }
+.terminal-1686575776-r7 { fill: #9b59b6;font-weight: bold;text-decoration: underline; }
+.terminal-1686575776-r8 { fill: #de4e88;text-decoration: underline; }
+.terminal-1686575776-r9 { fill: #3498db;font-style: italic; }
+.terminal-1686575776-r10 { fill: #181919 }
+.terminal-1686575776-r11 { fill: #1a1a1a }
+.terminal-1686575776-r12 { fill: #051a0e }
+.terminal-1686575776-r13 { fill: #5e6060 }
+.terminal-1686575776-r14 { fill: #cfbbdc }
+.terminal-1686575776-r15 { fill: #9b59b6 }
+.terminal-1686575776-r16 { fill: #1e1f1f;font-weight: bold }
+.terminal-1686575776-r17 { fill: #707273 }
+.terminal-1686575776-r18 { fill: #929495 }
+.terminal-1686575776-r19 { fill: #58d1eb;font-weight: bold }
+.terminal-1686575776-r20 { fill: #596060;font-weight: bold }
+.terminal-1686575776-r21 { fill: #181a1a;font-weight: bold }
+.terminal-1686575776-r22 { fill: #c3a4d3 }
+.terminal-1686575776-r23 { fill: #1d1d1e }
+.terminal-1686575776-r24 { fill: #5a5c5c }
+.terminal-1686575776-r25 { fill: #d9dee1 }
+.terminal-1686575776-r26 { fill: #cccfd0;font-weight: bold }
+.terminal-1686575776-r27 { fill: #cccfd0 }
+.terminal-1686575776-r28 { fill: #5b5d5e }
+.terminal-1686575776-r29 { fill: #e0e4e5 }
+.terminal-1686575776-r30 { fill: #b386c7 }
+.terminal-1686575776-r31 { fill: #767878 }
+.terminal-1686575776-r32 { fill: #595a5b }
+.terminal-1686575776-r33 { fill: #848787 }
+.terminal-1686575776-r34 { fill: #dbdfe0 }
+.terminal-1686575776-r35 { fill: #62c18b;font-weight: bold }
+.terminal-1686575776-r36 { fill: #af6cca;font-weight: bold }
+.terminal-1686575776-r37 { fill: #232424 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼https://jsonplaceholder.typicode.com/todos/$TODO_ID/$lol/ Send
-
-╭─ Collection ────────────────╮╭───────────────────────────────────────────────────── Request ─╮
-│ GET get all││Headers•BodyQueryAuthInfoOptions│
-│█ GET get one││━━━━━━━━━━╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│││None▼│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱The request doesn't have a body.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-││╰───────────────────────────────────────────────────────────────╯
-││╭──────────────────────────────────────────────────── Response ─╮
-│││BodyHeadersCookiesTrace│
-│││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-│─────────────────────────────│││
-│Retrieve one todo││1:1read-onlyJSON▼Wrap ▐X▌│
-╰───────────────────── todos ─╯╰───────────────────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼https://jsonplaceholder.typicode.com/todos/$TODO_ID/$lol/ Send
+
+╭─ Collection ────────────────╮╭───────────────────────────────────────────────────── Request ─╮
+│ GET get all││Headers•BodyQueryAuthInfoOptions│
+│█ GET get one││━━━━━━━━━━╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│││None▼│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱The request doesn't have a body.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+││╰───────────────────────────────────────────────────────────────╯
+││╭──────────────────────────────────────────────────── Response ─╮
+│││BodyHeadersCookiesTrace│
+│││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+│─────────────────────────────│││
+│Retrieve one todo││1:1read-onlyJSON▼Wrap ▐X▌│
+╰───────────────────── todos ─╯╰───────────────────────────────────────────────────────────────╯
+ ^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_sensible_defaults__json.svg b/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_sensible_defaults__json.svg
index c2f669e1..14c85773 100644
--- a/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_sensible_defaults__json.svg
+++ b/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_sensible_defaults__json.svg
@@ -19,207 +19,207 @@
font-weight: 700;
}
- .terminal-2450042399-matrix {
+ .terminal-2545874648-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2450042399-title {
+ .terminal-2545874648-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2450042399-r1 { fill: #1d1f20 }
-.terminal-2450042399-r2 { fill: #c5c8c6 }
-.terminal-2450042399-r3 { fill: #ff5c51 }
-.terminal-2450042399-r4 { fill: #ddf3f5;text-decoration: underline; }
-.terminal-2450042399-r5 { fill: #ddf3f5 }
-.terminal-2450042399-r6 { fill: #99dbe3 }
-.terminal-2450042399-r7 { fill: #d32f2f }
-.terminal-2450042399-r8 { fill: #797979 }
-.terminal-2450042399-r9 { fill: #00acc1 }
-.terminal-2450042399-r10 { fill: #212121 }
-.terminal-2450042399-r11 { fill: #e1effb }
-.terminal-2450042399-r12 { fill: #5a6065 }
-.terminal-2450042399-r13 { fill: #ddadb4 }
-.terminal-2450042399-r14 { fill: #d22f2f }
-.terminal-2450042399-r15 { fill: #1d1f20;font-weight: bold }
-.terminal-2450042399-r16 { fill: #6c7378 }
-.terminal-2450042399-r17 { fill: #6c7378;font-weight: bold }
-.terminal-2450042399-r18 { fill: #8c969c }
-.terminal-2450042399-r19 { fill: #58d1eb;font-weight: bold }
-.terminal-2450042399-r20 { fill: #00640d }
-.terminal-2450042399-r21 { fill: #cfdbe3 }
-.terminal-2450042399-r22 { fill: #1c1e1f }
-.terminal-2450042399-r23 { fill: #575c61 }
-.terminal-2450042399-r24 { fill: #747779;font-weight: bold }
-.terminal-2450042399-r25 { fill: #1f2021;font-weight: bold }
-.terminal-2450042399-r26 { fill: #889197 }
-.terminal-2450042399-r27 { fill: #1d1617 }
-.terminal-2450042399-r28 { fill: #575c61;font-weight: bold }
-.terminal-2450042399-r29 { fill: #f9e3e3 }
-.terminal-2450042399-r30 { fill: #569cd6;font-weight: bold }
-.terminal-2450042399-r31 { fill: #ce9178 }
-.terminal-2450042399-r32 { fill: #b5cea8 }
-.terminal-2450042399-r33 { fill: #71797e }
-.terminal-2450042399-r34 { fill: #c5cfd7 }
-.terminal-2450042399-r35 { fill: #43a047;font-weight: bold }
-.terminal-2450042399-r36 { fill: #c4d1da;font-weight: bold }
-.terminal-2450042399-r37 { fill: #c4d1da }
-.terminal-2450042399-r38 { fill: #585e62 }
-.terminal-2450042399-r39 { fill: #d9e6f0 }
-.terminal-2450042399-r40 { fill: #d7696c }
-.terminal-2450042399-r41 { fill: #555b5f }
-.terminal-2450042399-r42 { fill: #7f888e }
-.terminal-2450042399-r43 { fill: #d4e0ea }
-.terminal-2450042399-r44 { fill: #73b87d;font-weight: bold }
-.terminal-2450042399-r45 { fill: #eb4640;font-weight: bold }
-.terminal-2450042399-r46 { fill: #222425 }
+ .terminal-2545874648-r1 { fill: #1d1f20 }
+.terminal-2545874648-r2 { fill: #c5c8c6 }
+.terminal-2545874648-r3 { fill: #ff5c51 }
+.terminal-2545874648-r4 { fill: #ddf3f5;text-decoration: underline; }
+.terminal-2545874648-r5 { fill: #ddf3f5 }
+.terminal-2545874648-r6 { fill: #99dbe3 }
+.terminal-2545874648-r7 { fill: #d32f2f }
+.terminal-2545874648-r8 { fill: #797979 }
+.terminal-2545874648-r9 { fill: #00acc1 }
+.terminal-2545874648-r10 { fill: #212121 }
+.terminal-2545874648-r11 { fill: #e1effb }
+.terminal-2545874648-r12 { fill: #5a6065 }
+.terminal-2545874648-r13 { fill: #ddadb4 }
+.terminal-2545874648-r14 { fill: #d22f2f }
+.terminal-2545874648-r15 { fill: #1d1f20;font-weight: bold }
+.terminal-2545874648-r16 { fill: #6c7378 }
+.terminal-2545874648-r17 { fill: #6c7378;font-weight: bold }
+.terminal-2545874648-r18 { fill: #8c969c }
+.terminal-2545874648-r19 { fill: #58d1eb;font-weight: bold }
+.terminal-2545874648-r20 { fill: #00640d }
+.terminal-2545874648-r21 { fill: #cfdbe3 }
+.terminal-2545874648-r22 { fill: #1c1e1f }
+.terminal-2545874648-r23 { fill: #575c61 }
+.terminal-2545874648-r24 { fill: #747779;font-weight: bold }
+.terminal-2545874648-r25 { fill: #1f2021;font-weight: bold }
+.terminal-2545874648-r26 { fill: #889197 }
+.terminal-2545874648-r27 { fill: #1d1617 }
+.terminal-2545874648-r28 { fill: #575c61;font-weight: bold }
+.terminal-2545874648-r29 { fill: #f9e3e3 }
+.terminal-2545874648-r30 { fill: #569cd6;font-weight: bold }
+.terminal-2545874648-r31 { fill: #ce9178 }
+.terminal-2545874648-r32 { fill: #b5cea8 }
+.terminal-2545874648-r33 { fill: #71797e }
+.terminal-2545874648-r34 { fill: #c5cfd7 }
+.terminal-2545874648-r35 { fill: #43a047;font-weight: bold }
+.terminal-2545874648-r36 { fill: #c4d1da;font-weight: bold }
+.terminal-2545874648-r37 { fill: #c4d1da }
+.terminal-2545874648-r38 { fill: #585e62 }
+.terminal-2545874648-r39 { fill: #d9e6f0 }
+.terminal-2545874648-r40 { fill: #d7696c }
+.terminal-2545874648-r41 { fill: #555b5f }
+.terminal-2545874648-r42 { fill: #7f888e }
+.terminal-2545874648-r43 { fill: #d4e0ea }
+.terminal-2545874648-r44 { fill: #73b87d;font-weight: bold }
+.terminal-2545874648-r45 { fill: #eb4640;font-weight: bold }
+.terminal-2545874648-r46 { fill: #222425 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-POST▼https://jsonplaceholder.typicode.com/posts Send
-
-╭─ Collection ────────────────╮╭───────────────────────────────────────────────────── Request ─╮
-│▼ posts/││Headers•Body•QueryAuthInfoOptions│
-│ GET get all││━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get one││Raw (json, text, etc.)▼│
-│█ POS create││1 {│
-│ DEL delete a post││2 "title": "foo", │
-│▼ comments/││3 "body": "bar", │
-│ GET get comments││4 "userId": 1│
-│ GET get comments (via pa││5 } │
-│ PUT edit a comment│││
-│▼ todos/││2:1JSON▼Wrap ▐X▌│
-│ GET get all│╰───────────────────────────────────────────────────────────────╯
-│ GET get one│╭──────────────────────────────────────────────────── Response ─╮
-│▼ users/││BodyHeadersCookiesTrace│
-│ GET get a user││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get all users│││
-│ POS create a user│││
-│ PUT update a user│││
-│ DEL delete a user│││
-││││
-││││
-││││
-│─────────────────────────────│││
-│Create a new post││1:1read-onlyJSON▼Wrap ▐X▌│
-╰─────────── jsonplaceholder ─╯╰───────────────────────────────────────────────────────────────╯
- f3 Pager f4 Editor ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+POST▼https://jsonplaceholder.typicode.com/posts Send
+
+╭─ Collection ────────────────╮╭───────────────────────────────────────────────────── Request ─╮
+│▼ posts/││Headers•Body•QueryAuthInfoOptions│
+│ GET get all││━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get one││Raw (json, text, etc.)▼│
+│█ POS create││1 {│
+│ DEL delete a post││2 "title": "foo", │
+│▼ comments/││3 "body": "bar", │
+│ GET get comments││4 "userId": 1│
+│ GET get comments (via pa││5 } │
+│ PUT edit a comment│││
+│▼ todos/││2:1JSON▼Wrap ▐X▌│
+│ GET get all│╰───────────────────────────────────────────────────────────────╯
+│ GET get one│╭──────────────────────────────────────────────────── Response ─╮
+│▼ users/││BodyHeadersCookiesTrace│
+│ GET get a user││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get all users│││
+│ POS create a user│││
+│ PUT update a user│││
+│ DEL delete a user│││
+││││
+││││
+││││
+│─────────────────────────────│││
+│Create a new post││1:1read-onlyJSON▼Wrap ▐X▌│
+╰─────────── jsonplaceholder ─╯╰───────────────────────────────────────────────────────────────╯
+ f3 Pager f4 Editor ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Hel
diff --git a/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_sensible_defaults__url.svg b/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_sensible_defaults__url.svg
index 7d5f23ae..64e1ee5b 100644
--- a/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_sensible_defaults__url.svg
+++ b/tests/__snapshots__/test_snapshots/TestCustomThemeSimple.test_theme_sensible_defaults__url.svg
@@ -19,198 +19,198 @@
font-weight: 700;
}
- .terminal-180049966-matrix {
+ .terminal-3018646763-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-180049966-title {
+ .terminal-3018646763-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-180049966-r1 { fill: #1d1f20 }
-.terminal-180049966-r2 { fill: #c5c8c6 }
-.terminal-180049966-r3 { fill: #ff5c51 }
-.terminal-180049966-r4 { fill: #ddf3f5;text-decoration: underline; }
-.terminal-180049966-r5 { fill: #ddf3f5 }
-.terminal-180049966-r6 { fill: #99dbe3 }
-.terminal-180049966-r7 { fill: #d32f2f }
-.terminal-180049966-r8 { fill: #797979 }
-.terminal-180049966-r9 { fill: #00acc1 }
-.terminal-180049966-r10 { fill: #212121 }
-.terminal-180049966-r11 { fill: #43a047 }
-.terminal-180049966-r12 { fill: #e1effb }
-.terminal-180049966-r13 { fill: #5a6065 }
-.terminal-180049966-r14 { fill: #ddadb4 }
-.terminal-180049966-r15 { fill: #d22f2f }
-.terminal-180049966-r16 { fill: #1d1f20;font-weight: bold }
-.terminal-180049966-r17 { fill: #6c7378 }
-.terminal-180049966-r18 { fill: #8c969c }
-.terminal-180049966-r19 { fill: #58d1eb;font-weight: bold }
-.terminal-180049966-r20 { fill: #747779;font-weight: bold }
-.terminal-180049966-r21 { fill: #1f2021;font-weight: bold }
-.terminal-180049966-r22 { fill: #da9096 }
-.terminal-180049966-r23 { fill: #1c1e1f }
-.terminal-180049966-r24 { fill: #575c61 }
-.terminal-180049966-r25 { fill: #f6fbfe }
-.terminal-180049966-r26 { fill: #c4d1da;font-weight: bold }
-.terminal-180049966-r27 { fill: #c4d1da }
-.terminal-180049966-r28 { fill: #585e62 }
-.terminal-180049966-r29 { fill: #d9e6f0 }
-.terminal-180049966-r30 { fill: #d7696c }
-.terminal-180049966-r31 { fill: #71797e }
-.terminal-180049966-r32 { fill: #555b5f }
-.terminal-180049966-r33 { fill: #7f888e }
-.terminal-180049966-r34 { fill: #d4e0ea }
-.terminal-180049966-r35 { fill: #73b87d;font-weight: bold }
-.terminal-180049966-r36 { fill: #eb4640;font-weight: bold }
-.terminal-180049966-r37 { fill: #222425 }
+ .terminal-3018646763-r1 { fill: #1d1f20 }
+.terminal-3018646763-r2 { fill: #c5c8c6 }
+.terminal-3018646763-r3 { fill: #ff5c51 }
+.terminal-3018646763-r4 { fill: #ddf3f5;text-decoration: underline; }
+.terminal-3018646763-r5 { fill: #ddf3f5 }
+.terminal-3018646763-r6 { fill: #99dbe3 }
+.terminal-3018646763-r7 { fill: #d32f2f }
+.terminal-3018646763-r8 { fill: #797979 }
+.terminal-3018646763-r9 { fill: #00acc1 }
+.terminal-3018646763-r10 { fill: #212121 }
+.terminal-3018646763-r11 { fill: #43a047 }
+.terminal-3018646763-r12 { fill: #e1effb }
+.terminal-3018646763-r13 { fill: #5a6065 }
+.terminal-3018646763-r14 { fill: #ddadb4 }
+.terminal-3018646763-r15 { fill: #d22f2f }
+.terminal-3018646763-r16 { fill: #1d1f20;font-weight: bold }
+.terminal-3018646763-r17 { fill: #6c7378 }
+.terminal-3018646763-r18 { fill: #8c969c }
+.terminal-3018646763-r19 { fill: #58d1eb;font-weight: bold }
+.terminal-3018646763-r20 { fill: #747779;font-weight: bold }
+.terminal-3018646763-r21 { fill: #1f2021;font-weight: bold }
+.terminal-3018646763-r22 { fill: #da9096 }
+.terminal-3018646763-r23 { fill: #1c1e1f }
+.terminal-3018646763-r24 { fill: #575c61 }
+.terminal-3018646763-r25 { fill: #f6fbfe }
+.terminal-3018646763-r26 { fill: #c4d1da;font-weight: bold }
+.terminal-3018646763-r27 { fill: #c4d1da }
+.terminal-3018646763-r28 { fill: #585e62 }
+.terminal-3018646763-r29 { fill: #d9e6f0 }
+.terminal-3018646763-r30 { fill: #d7696c }
+.terminal-3018646763-r31 { fill: #71797e }
+.terminal-3018646763-r32 { fill: #555b5f }
+.terminal-3018646763-r33 { fill: #7f888e }
+.terminal-3018646763-r34 { fill: #d4e0ea }
+.terminal-3018646763-r35 { fill: #73b87d;font-weight: bold }
+.terminal-3018646763-r36 { fill: #eb4640;font-weight: bold }
+.terminal-3018646763-r37 { fill: #222425 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼https://jsonplaceholder.typicode.com/todos/$TODO_ID/$lol/ Send
-
-╭─ Collection ────────────────╮╭───────────────────────────────────────────────────── Request ─╮
-│ GET get all││Headers•BodyQueryAuthInfoOptions│
-│█ GET get one││━━━━━━━━━━╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│││None▼│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱The request doesn't have a body.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-││╰───────────────────────────────────────────────────────────────╯
-││╭──────────────────────────────────────────────────── Response ─╮
-│││BodyHeadersCookiesTrace│
-│││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-│─────────────────────────────│││
-│Retrieve one todo││1:1read-onlyJSON▼Wrap ▐X▌│
-╰───────────────────── todos ─╯╰───────────────────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼https://jsonplaceholder.typicode.com/todos/$TODO_ID/$lol/ Send
+
+╭─ Collection ────────────────╮╭───────────────────────────────────────────────────── Request ─╮
+│ GET get all││Headers•BodyQueryAuthInfoOptions│
+│█ GET get one││━━━━━━━━━━╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│││None▼│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱The request doesn't have a body.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+││╰───────────────────────────────────────────────────────────────╯
+││╭──────────────────────────────────────────────────── Response ─╮
+│││BodyHeadersCookiesTrace│
+│││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+│─────────────────────────────│││
+│Retrieve one todo││1:1read-onlyJSON▼Wrap ▐X▌│
+╰───────────────────── todos ─╯╰───────────────────────────────────────────────────────────────╯
+ ^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 d49c2d75..972dae2e 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,168 @@
font-weight: 700;
}
- .terminal-1746486582-matrix {
+ .terminal-3572088326-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1746486582-title {
+ .terminal-3572088326-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1746486582-r1 { fill: #171819 }
-.terminal-1746486582-r2 { fill: #c5c8c6 }
-.terminal-1746486582-r3 { fill: #17191a }
-.terminal-1746486582-r4 { fill: #cc4940 }
-.terminal-1746486582-r5 { fill: #b0c2c4;text-decoration: underline; }
-.terminal-1746486582-r6 { fill: #b0c2c4 }
-.terminal-1746486582-r7 { fill: #7aafb5 }
-.terminal-1746486582-r8 { fill: #d22f2f }
-.terminal-1746486582-r9 { fill: #1a1a1a }
-.terminal-1746486582-r10 { fill: #b4bfc8 }
-.terminal-1746486582-r11 { fill: #484c50 }
-.terminal-1746486582-r12 { fill: #f9e3e3 }
-.terminal-1746486582-r13 { fill: #a82525 }
-.terminal-1746486582-r14 { fill: #171819;font-weight: bold }
-.terminal-1746486582-r15 { fill: #b08a90 }
-.terminal-1746486582-r16 { fill: #ba7b7b;font-weight: bold }
-.terminal-1746486582-r17 { fill: #c7b5b5;font-weight: bold }
-.terminal-1746486582-r18 { fill: #17191a;font-weight: bold }
-.terminal-1746486582-r19 { fill: #1e88e5;font-weight: bold }
-.terminal-1746486582-r20 { fill: #70787c }
-.terminal-1746486582-r21 { fill: #565b5f }
-.terminal-1746486582-r22 { fill: #a5afb5 }
-.terminal-1746486582-r23 { fill: #c4c8cb }
-.terminal-1746486582-r24 { fill: #565b5f;font-weight: bold }
-.terminal-1746486582-r25 { fill: #bababa }
-.terminal-1746486582-r26 { fill: #00500a }
-.terminal-1746486582-r27 { fill: #7e7e7e }
-.terminal-1746486582-r28 { fill: #b8c2c9 }
-.terminal-1746486582-r29 { fill: #9ca7ae;font-weight: bold }
-.terminal-1746486582-r30 { fill: #9ca7ae }
-.terminal-1746486582-r31 { fill: #464b4e }
-.terminal-1746486582-r32 { fill: #adb8c0 }
-.terminal-1746486582-r33 { fill: #ac5456 }
-.terminal-1746486582-r34 { fill: #5a6064 }
-.terminal-1746486582-r35 { fill: #44484c }
-.terminal-1746486582-r36 { fill: #656c71 }
-.terminal-1746486582-r37 { fill: #a9b3bb }
-.terminal-1746486582-r38 { fill: #5c9364;font-weight: bold }
-.terminal-1746486582-r39 { fill: #bc3833;font-weight: bold }
-.terminal-1746486582-r40 { fill: #1b1c1d }
+ .terminal-3572088326-r1 { fill: #171819 }
+.terminal-3572088326-r2 { fill: #c5c8c6 }
+.terminal-3572088326-r3 { fill: #17191a }
+.terminal-3572088326-r4 { fill: #cc4940 }
+.terminal-3572088326-r5 { fill: #b0c2c4;text-decoration: underline; }
+.terminal-3572088326-r6 { fill: #b0c2c4 }
+.terminal-3572088326-r7 { fill: #7aafb5 }
+.terminal-3572088326-r8 { fill: #d22f2f }
+.terminal-3572088326-r9 { fill: #1a1a1a }
+.terminal-3572088326-r10 { fill: #b4bfc8 }
+.terminal-3572088326-r11 { fill: #484c50 }
+.terminal-3572088326-r12 { fill: #a82525 }
+.terminal-3572088326-r13 { fill: #171819;font-weight: bold }
+.terminal-3572088326-r14 { fill: #b08a90 }
+.terminal-3572088326-r15 { fill: #ba7b7b;font-weight: bold }
+.terminal-3572088326-r16 { fill: #c7b5b5;font-weight: bold }
+.terminal-3572088326-r17 { fill: #17191a;font-weight: bold }
+.terminal-3572088326-r18 { fill: #1e88e5;font-weight: bold }
+.terminal-3572088326-r19 { fill: #70787c }
+.terminal-3572088326-r20 { fill: #565b5f }
+.terminal-3572088326-r21 { fill: #a5afb5 }
+.terminal-3572088326-r22 { fill: #c4c8cb }
+.terminal-3572088326-r23 { fill: #565b5f;font-weight: bold }
+.terminal-3572088326-r24 { fill: #bababa }
+.terminal-3572088326-r25 { fill: #00500a }
+.terminal-3572088326-r26 { fill: #7e7e7e }
+.terminal-3572088326-r27 { fill: #b8c2c9 }
+.terminal-3572088326-r28 { fill: #9ca7ae;font-weight: bold }
+.terminal-3572088326-r29 { fill: #9ca7ae }
+.terminal-3572088326-r30 { fill: #464b4e }
+.terminal-3572088326-r31 { fill: #adb8c0 }
+.terminal-3572088326-r32 { fill: #ac5456 }
+.terminal-3572088326-r33 { fill: #5a6064 }
+.terminal-3572088326-r34 { fill: #44484c }
+.terminal-3572088326-r35 { fill: #656c71 }
+.terminal-3572088326-r36 { fill: #a9b3bb }
+.terminal-3572088326-r37 { fill: #5c9364;font-weight: bold }
+.terminal-3572088326-r38 { fill: #bc3833;font-weight: bold }
+.terminal-3572088326-r39 { fill: #1b1c1d }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▎ Send
-▎anothertest
-╭─ Collection▎── Request ─╮
-│ GET echo▎ theme: anothertesttions│
-│ GET get ran▎Set the theme to anothertest━━━━━━━━━━━━│
-│ POS echo po▎╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all ││NameValue Add header │
-│ GET get one │╰─────────────────────────────────────────────────╯
-│ POS create │╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼▎ Send
+▎anothertest
+╭─ Collection▎── Request ─╮
+│ GET echo▎ theme: anothertesttions│
+│ GET get ran▎Set the theme to anothertest━━━━━━━━━━━━│
+│ POS echo po▎╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all ││NameValue Add header │
+│ GET get one │╰─────────────────────────────────────────────────╯
+│ POS create │╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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 D Quick Dupe ^j Send ^t Method ^s Save ^n New ^p Commands ^o
diff --git a/tests/__snapshots__/test_snapshots/TestHelpScreen.test_help_screen_appears.svg b/tests/__snapshots__/test_snapshots/TestHelpScreen.test_help_screen_appears.svg
index 697a5bb6..2cea1c3c 100644
--- a/tests/__snapshots__/test_snapshots/TestHelpScreen.test_help_screen_appears.svg
+++ b/tests/__snapshots__/test_snapshots/TestHelpScreen.test_help_screen_appears.svg
@@ -19,246 +19,247 @@
font-weight: 700;
}
- .terminal-1191216534-matrix {
+ .terminal-3399498736-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1191216534-title {
+ .terminal-3399498736-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1191216534-r1 { fill: #9c9c9c }
-.terminal-1191216534-r2 { fill: #c5c8c6 }
-.terminal-1191216534-r3 { fill: #dfdfdf }
-.terminal-1191216534-r4 { fill: #b2903c }
-.terminal-1191216534-r5 { fill: #9ca6ae;text-decoration: underline; }
-.terminal-1191216534-r6 { fill: #9ca6ae }
-.terminal-1191216534-r7 { fill: #6d8ea6 }
-.terminal-1191216534-r8 { fill: #505050 }
-.terminal-1191216534-r9 { fill: #9d9d9d }
-.terminal-1191216534-r10 { fill: #9aa1a5 }
-.terminal-1191216534-r11 { fill: #707070 }
-.terminal-1191216534-r12 { fill: #313131 }
-.terminal-1191216534-r13 { fill: #e0e0e0;font-weight: bold }
-.terminal-1191216534-r14 { fill: #e0e0e0 }
-.terminal-1191216534-r15 { fill: #463012 }
-.terminal-1191216534-r16 { fill: #121212 }
-.terminal-1191216534-r17 { fill: #6a6b6d;font-weight: bold }
-.terminal-1191216534-r18 { fill: #9e9e9f;font-weight: bold }
-.terminal-1191216534-r19 { fill: #a6a6a6;font-weight: bold }
-.terminal-1191216534-r20 { fill: #4b4b4b }
-.terminal-1191216534-r21 { fill: #626262 }
-.terminal-1191216534-r22 { fill: #1b1b1b }
-.terminal-1191216534-r23 { fill: #191919 }
-.terminal-1191216534-r24 { fill: #626262;font-weight: bold }
-.terminal-1191216534-r25 { fill: #8d8d8d;font-weight: bold }
-.terminal-1191216534-r26 { fill: #005a27 }
-.terminal-1191216534-r27 { fill: #a6a6a6 }
-.terminal-1191216534-r28 { fill: #e1e1e1;font-weight: bold }
-.terminal-1191216534-r29 { fill: #e1e1e1 }
-.terminal-1191216534-r30 { fill: #e0e0e1 }
-.terminal-1191216534-r31 { fill: #e0e0e1;font-weight: bold }
-.terminal-1191216534-r32 { fill: #dfe1e2 }
-.terminal-1191216534-r33 { fill: #626466 }
-.terminal-1191216534-r34 { fill: #dfe1e2;font-weight: bold }
-.terminal-1191216534-r35 { fill: #717171 }
-.terminal-1191216534-r36 { fill: #131313 }
-.terminal-1191216534-r37 { fill: #0d0d0d }
-.terminal-1191216534-r38 { fill: #707070;font-weight: bold }
-.terminal-1191216534-r39 { fill: #5f5f5f }
-.terminal-1191216534-r40 { fill: #727272 }
-.terminal-1191216534-r41 { fill: #545454 }
-.terminal-1191216534-r42 { fill: #171717 }
-.terminal-1191216534-r43 { fill: #2a613a;font-weight: bold }
-.terminal-1191216534-r44 { fill: #b2822d;font-weight: bold }
-.terminal-1191216534-r45 { fill: #999999 }
+ .terminal-3399498736-r1 { fill: #9c9c9d }
+.terminal-3399498736-r2 { fill: #c5c8c6 }
+.terminal-3399498736-r3 { fill: #dfdfe0 }
+.terminal-3399498736-r4 { fill: #b2669a }
+.terminal-3399498736-r5 { fill: #0e0b15;text-decoration: underline; }
+.terminal-3399498736-r6 { fill: #0e0b15 }
+.terminal-3399498736-r7 { fill: #2e2540 }
+.terminal-3399498736-r8 { fill: #50505e }
+.terminal-3399498736-r9 { fill: #9d9da1 }
+.terminal-3399498736-r10 { fill: #a79eaf }
+.terminal-3399498736-r11 { fill: #6f6f73 }
+.terminal-3399498736-r12 { fill: #2e2e3f }
+.terminal-3399498736-r13 { fill: #dfdfe1;font-weight: bold }
+.terminal-3399498736-r14 { fill: #dfdfe1 }
+.terminal-3399498736-r15 { fill: #45203a }
+.terminal-3399498736-r16 { fill: #0f0f1f }
+.terminal-3399498736-r17 { fill: #6b6b77;font-weight: bold }
+.terminal-3399498736-r18 { fill: #9e9ea2;font-weight: bold }
+.terminal-3399498736-r19 { fill: #a5a5ab;font-weight: bold }
+.terminal-3399498736-r20 { fill: #4a4a51 }
+.terminal-3399498736-r21 { fill: #616166 }
+.terminal-3399498736-r22 { fill: #191923 }
+.terminal-3399498736-r23 { fill: #19192d }
+.terminal-3399498736-r24 { fill: #616166;font-weight: bold }
+.terminal-3399498736-r25 { fill: #8b8b93;font-weight: bold }
+.terminal-3399498736-r26 { fill: #008042 }
+.terminal-3399498736-r27 { fill: #a5a5ab }
+.terminal-3399498736-r28 { fill: #e0e0e2;font-weight: bold }
+.terminal-3399498736-r29 { fill: #e0e0e2 }
+.terminal-3399498736-r30 { fill: #e1e0e4 }
+.terminal-3399498736-r31 { fill: #e1e0e4;font-weight: bold }
+.terminal-3399498736-r32 { fill: #e2e0e5 }
+.terminal-3399498736-r33 { fill: #65626d }
+.terminal-3399498736-r34 { fill: #e2e0e5;font-weight: bold }
+.terminal-3399498736-r35 { fill: #707074 }
+.terminal-3399498736-r36 { fill: #11111c }
+.terminal-3399498736-r37 { fill: #0d0e2e }
+.terminal-3399498736-r38 { fill: #6f6f78;font-weight: bold }
+.terminal-3399498736-r39 { fill: #6f6f78 }
+.terminal-3399498736-r40 { fill: #5e5e64 }
+.terminal-3399498736-r41 { fill: #727276 }
+.terminal-3399498736-r42 { fill: #535359 }
+.terminal-3399498736-r43 { fill: #15151f }
+.terminal-3399498736-r44 { fill: #027d51;font-weight: bold }
+.terminal-3399498736-r45 { fill: #b2588c;font-weight: bold }
+.terminal-3399498736-r46 { fill: #99999a }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter a URL... Send
-▁▁Focused Widget Help (Address Bar)▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
-╭─ Collectio▎▊─ Request ─╮
-│ GET echo▎Address Bar▊ions│
-│ GET get ra▎Enter the URL to send a request to. Refer to ▊━━━━━━━━━━━│
-│ POS echo p▎variables from the environment (loaded via ▊╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplace▎--env) using $variable or ${variable} syntax. ▊╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/▎Resolved variables will be highlighted green. ▊╱╱╱╱╱╱╱╱╱╱╱│
-│ GET ge▎Move the cursor over a variable to preview the▊╱╱╱╱╱╱╱╱╱╱╱│
-│ GET ge▎value. Base URL suggestions are loaded based ▊╱╱╱╱╱╱╱╱╱╱╱│
-│ POS cr▎on the URLs found in the currently open ▊╱╱╱╱╱╱╱╱╱╱╱│
-│ DEL de▎collection. Press ctrl+l to quickly focus this▊╱╱╱╱╱╱╱╱╱╱╱│
-│▼ comme▎bar from elsewhere.▊╱╱╱╱╱╱╱╱╱╱╱│
-│ GET ▎▊╱╱╱╱╱╱╱╱╱╱╱│
-│ GET ▎All Keybindings▊╱╱╱╱╱╱╱╱╱╱╱│
-│ PUT ▎ Key Description ▊╱╱╱╱╱╱╱╱╱╱╱│
-│▼ todos/▎← cursor left ▊╱╱╱╱╱╱╱╱╱╱╱│
-│ GET ge▎ctrl+← cursor left word ▊ header │
-│ GET ge▎→ cursor right ▊───────────╯
-│▼ users/▎ctrl+→ cursor right word ▊ Response ─╮
-│ GET ge▎⌫ delete left ▊│
-│ GET ge▎home home ▊━━━━━━━━━━━│
-│ POS cr▎ctrl+a home ▊│
-│ PUT up▎end end ▊│
-│ DEL de▎ctrl+e end ▄▊│
-│▎delete delete right ▊│
-│▎ctrl+d delete right ▊│
-│▎⏎ submit ▊│
-│▎▊│
-│▎Press ESC to dismiss.▊│
-│───────────▎Note: This page relates to the widget that is ▊│
-│This is an▎currently focused.▊│
-│server we ▎▊│
-│see exactl▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔│
-│request is being │││
-│sent.││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼Enter a URL... Send
+▁▁Focused Widget Help (Address Bar)▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
+╭─ Collectio▎▊─ Request ─╮
+│ GET echo▎Address Bar▊ions│
+│ GET get ra▎Enter the URL to send a request to. Refer to ▊━━━━━━━━━━━│
+│ POS echo p▎variables from the environment (loaded via ▊╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplace▎--env) using $variable or ${variable} syntax. ▊╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/▎Resolved variables will be highlighted green. ▊╱╱╱╱╱╱╱╱╱╱╱│
+│ GET ge▎Move the cursor over a variable to preview the▊╱╱╱╱╱╱╱╱╱╱╱│
+│ GET ge▎value. Base URL suggestions are loaded based ▊╱╱╱╱╱╱╱╱╱╱╱│
+│ POS cr▎on the URLs found in the currently open ▊╱╱╱╱╱╱╱╱╱╱╱│
+│ DEL de▎collection. Press ctrl+l to quickly focus this▊╱╱╱╱╱╱╱╱╱╱╱│
+│▼ comme▎bar from elsewhere.▊╱╱╱╱╱╱╱╱╱╱╱│
+│ GET ▎▊╱╱╱╱╱╱╱╱╱╱╱│
+│ GET ▎All Keybindings▊╱╱╱╱╱╱╱╱╱╱╱│
+│ PUT ▎ Key Description ▊╱╱╱╱╱╱╱╱╱╱╱│
+│▼ todos/▎← cursor left ▊╱╱╱╱╱╱╱╱╱╱╱│
+│ GET ge▎ctrl+← cursor left word ▊ header │
+│ GET ge▎→ cursor right ▊───────────╯
+│▼ users/▎ctrl+→ cursor right word ▊ Response ─╮
+│ GET ge▎⌫ delete left ▊│
+│ GET ge▎home home ▊━━━━━━━━━━━│
+│ POS cr▎ctrl+a home ▊│
+│ PUT up▎end end ▊│
+│ DEL de▎ctrl+e end ▄▊│
+│▎delete delete right ▊│
+│▎ctrl+d delete right ▊│
+│▎⏎ submit ▊│
+│▎▊│
+│▎Press ESC to dismiss.▊│
+│───────────▎Note: This page relates to the widget that is ▊│
+│This is an▎currently focused.▊│
+│server we ▎▊│
+│see exactl▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔│
+│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/TestJumpMode.test_click_switch.svg b/tests/__snapshots__/test_snapshots/TestJumpMode.test_click_switch.svg
index a52322da..c34cacc3 100644
--- a/tests/__snapshots__/test_snapshots/TestJumpMode.test_click_switch.svg
+++ b/tests/__snapshots__/test_snapshots/TestJumpMode.test_click_switch.svg
@@ -19,164 +19,164 @@
font-weight: 700;
}
- .terminal-1869818591-matrix {
+ .terminal-3801157206-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1869818591-title {
+ .terminal-3801157206-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1869818591-r1 { fill: #e0e0e0 }
-.terminal-1869818591-r2 { fill: #c5c8c6 }
-.terminal-1869818591-r3 { fill: #ffcf56 }
-.terminal-1869818591-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-1869818591-r5 { fill: #dfeef9 }
-.terminal-1869818591-r6 { fill: #9dcbee }
-.terminal-1869818591-r7 { fill: #737373 }
-.terminal-1869818591-r8 { fill: #e1e1e1 }
-.terminal-1869818591-r9 { fill: #dde6ed }
-.terminal-1869818591-r10 { fill: #a0a0a0 }
-.terminal-1869818591-r11 { fill: #64451a }
-.terminal-1869818591-r12 { fill: #fea62b }
-.terminal-1869818591-r13 { fill: #e0e0e0;font-weight: bold }
-.terminal-1869818591-r14 { fill: #989a9c;font-weight: bold }
-.terminal-1869818591-r15 { fill: #e3e3e4;font-weight: bold }
-.terminal-1869818591-r16 { fill: #6c6c6c }
-.terminal-1869818591-r17 { fill: #8d8d8d }
-.terminal-1869818591-r18 { fill: #885c1e }
-.terminal-1869818591-r19 { fill: #323232 }
-.terminal-1869818591-r20 { fill: #4ebf71;font-weight: bold }
-.terminal-1869818591-r21 { fill: #8d8d8d;font-weight: bold }
-.terminal-1869818591-r22 { fill: #0d0d0d }
-.terminal-1869818591-r23 { fill: #008139 }
-.terminal-1869818591-r24 { fill: #313131;font-weight: bold }
-.terminal-1869818591-r25 { fill: #313131 }
-.terminal-1869818591-r26 { fill: #a2a2a2 }
-.terminal-1869818591-r27 { fill: #1c1c1c }
-.terminal-1869818591-r28 { fill: #b77923 }
-.terminal-1869818591-r29 { fill: #888888 }
-.terminal-1869818591-r30 { fill: #a4a4a4 }
-.terminal-1869818591-r31 { fill: #787878 }
-.terminal-1869818591-r32 { fill: #212121 }
-.terminal-1869818591-r33 { fill: #3c8b54;font-weight: bold }
-.terminal-1869818591-r34 { fill: #ffba41;font-weight: bold }
-.terminal-1869818591-r35 { fill: #dbdbdb }
+ .terminal-3801157206-r1 { fill: #dfdfe1 }
+.terminal-3801157206-r2 { fill: #c5c8c6 }
+.terminal-3801157206-r3 { fill: #ff93dd }
+.terminal-3801157206-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-3801157206-r5 { fill: #15111e }
+.terminal-3801157206-r6 { fill: #43365c }
+.terminal-3801157206-r7 { fill: #737387 }
+.terminal-3801157206-r8 { fill: #e1e1e6 }
+.terminal-3801157206-r9 { fill: #efe3fb }
+.terminal-3801157206-r10 { fill: #9f9fa5 }
+.terminal-3801157206-r11 { fill: #632e53 }
+.terminal-3801157206-r12 { fill: #ff69b4 }
+.terminal-3801157206-r13 { fill: #dfdfe1;font-weight: bold }
+.terminal-3801157206-r14 { fill: #9b9aab;font-weight: bold }
+.terminal-3801157206-r15 { fill: #e3e3e8;font-weight: bold }
+.terminal-3801157206-r16 { fill: #6a6a74 }
+.terminal-3801157206-r17 { fill: #8b8b93 }
+.terminal-3801157206-r18 { fill: #873c69 }
+.terminal-3801157206-r19 { fill: #30303b }
+.terminal-3801157206-r20 { fill: #00fa9a;font-weight: bold }
+.terminal-3801157206-r21 { fill: #8b8b93;font-weight: bold }
+.terminal-3801157206-r22 { fill: #0d0e2e }
+.terminal-3801157206-r23 { fill: #00b85f }
+.terminal-3801157206-r24 { fill: #2e2e3c;font-weight: bold }
+.terminal-3801157206-r25 { fill: #2e2e3c }
+.terminal-3801157206-r26 { fill: #a0a0a6 }
+.terminal-3801157206-r27 { fill: #191928 }
+.terminal-3801157206-r28 { fill: #b74e87 }
+.terminal-3801157206-r29 { fill: #87878f }
+.terminal-3801157206-r30 { fill: #a3a3a9 }
+.terminal-3801157206-r31 { fill: #777780 }
+.terminal-3801157206-r32 { fill: #1f1f2d }
+.terminal-3801157206-r33 { fill: #04b375;font-weight: bold }
+.terminal-3801157206-r34 { fill: #ff7ec8;font-weight: bold }
+.terminal-3801157206-r35 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter a URL... Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━╺━━━━━━│
-│ POS echo post││▐X▌ Follow redirects│
-│▼ jsonplaceholder/▂││▅│
-│▼ posts/││▐X▌ Verify SSL certificates│
-│ GET get all│││
-│ GET get one│╰─────────────────────────────────────────────────╯
-│ POS create│╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼Enter a URL... Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━╺━━━━━━│
+│ POS echo post││▐X▌ Follow redirects│
+│▼ jsonplaceholder/▂││▅│
+│▼ posts/││▐X▌ Verify SSL certificates│
+│ GET get all│││
+│ GET get one│╰─────────────────────────────────────────────────╯
+│ POS create│╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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/TestJumpMode.test_focus_switch.svg b/tests/__snapshots__/test_snapshots/TestJumpMode.test_focus_switch.svg
index edd7bfa8..a9818c79 100644
--- a/tests/__snapshots__/test_snapshots/TestJumpMode.test_focus_switch.svg
+++ b/tests/__snapshots__/test_snapshots/TestJumpMode.test_focus_switch.svg
@@ -19,164 +19,164 @@
font-weight: 700;
}
- .terminal-2864452252-matrix {
+ .terminal-1932065323-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2864452252-title {
+ .terminal-1932065323-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2864452252-r1 { fill: #e0e0e0 }
-.terminal-2864452252-r2 { fill: #c5c8c6 }
-.terminal-2864452252-r3 { fill: #ffcf56 }
-.terminal-2864452252-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-2864452252-r5 { fill: #dfeef9 }
-.terminal-2864452252-r6 { fill: #9dcbee }
-.terminal-2864452252-r7 { fill: #737373 }
-.terminal-2864452252-r8 { fill: #e1e1e1 }
-.terminal-2864452252-r9 { fill: #dde6ed }
-.terminal-2864452252-r10 { fill: #a0a0a0 }
-.terminal-2864452252-r11 { fill: #fea62b }
-.terminal-2864452252-r12 { fill: #e0e0e0;font-weight: bold }
-.terminal-2864452252-r13 { fill: #64451a }
-.terminal-2864452252-r14 { fill: #794f14;font-weight: bold }
-.terminal-2864452252-r15 { fill: #211505;font-weight: bold }
-.terminal-2864452252-r16 { fill: #6c6c6c }
-.terminal-2864452252-r17 { fill: #8d8d8d }
-.terminal-2864452252-r18 { fill: #272727 }
-.terminal-2864452252-r19 { fill: #242424 }
-.terminal-2864452252-r20 { fill: #8d8d8d;font-weight: bold }
-.terminal-2864452252-r21 { fill: #0d0d0d }
-.terminal-2864452252-r22 { fill: #008139 }
-.terminal-2864452252-r23 { fill: #8c9092 }
-.terminal-2864452252-r24 { fill: #313131;font-weight: bold }
-.terminal-2864452252-r25 { fill: #313131 }
-.terminal-2864452252-r26 { fill: #a2a2a2 }
-.terminal-2864452252-r27 { fill: #1c1c1c }
-.terminal-2864452252-r28 { fill: #b77923 }
-.terminal-2864452252-r29 { fill: #888888 }
-.terminal-2864452252-r30 { fill: #a4a4a4 }
-.terminal-2864452252-r31 { fill: #787878 }
-.terminal-2864452252-r32 { fill: #212121 }
-.terminal-2864452252-r33 { fill: #3c8b54;font-weight: bold }
-.terminal-2864452252-r34 { fill: #ffba41;font-weight: bold }
-.terminal-2864452252-r35 { fill: #dbdbdb }
+ .terminal-1932065323-r1 { fill: #dfdfe1 }
+.terminal-1932065323-r2 { fill: #c5c8c6 }
+.terminal-1932065323-r3 { fill: #ff93dd }
+.terminal-1932065323-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-1932065323-r5 { fill: #15111e }
+.terminal-1932065323-r6 { fill: #43365c }
+.terminal-1932065323-r7 { fill: #737387 }
+.terminal-1932065323-r8 { fill: #e1e1e6 }
+.terminal-1932065323-r9 { fill: #efe3fb }
+.terminal-1932065323-r10 { fill: #9f9fa5 }
+.terminal-1932065323-r11 { fill: #ff69b4 }
+.terminal-1932065323-r12 { fill: #dfdfe1;font-weight: bold }
+.terminal-1932065323-r13 { fill: #632e53 }
+.terminal-1932065323-r14 { fill: #793155;font-weight: bold }
+.terminal-1932065323-r15 { fill: #210d17;font-weight: bold }
+.terminal-1932065323-r16 { fill: #6a6a74 }
+.terminal-1932065323-r17 { fill: #8b8b93 }
+.terminal-1932065323-r18 { fill: #252532 }
+.terminal-1932065323-r19 { fill: #252441 }
+.terminal-1932065323-r20 { fill: #8b8b93;font-weight: bold }
+.terminal-1932065323-r21 { fill: #0d0e2e }
+.terminal-1932065323-r22 { fill: #00b85f }
+.terminal-1932065323-r23 { fill: #918d9d }
+.terminal-1932065323-r24 { fill: #2e2e3c;font-weight: bold }
+.terminal-1932065323-r25 { fill: #2e2e3c }
+.terminal-1932065323-r26 { fill: #a0a0a6 }
+.terminal-1932065323-r27 { fill: #191928 }
+.terminal-1932065323-r28 { fill: #b74e87 }
+.terminal-1932065323-r29 { fill: #87878f }
+.terminal-1932065323-r30 { fill: #a3a3a9 }
+.terminal-1932065323-r31 { fill: #777780 }
+.terminal-1932065323-r32 { fill: #1f1f2d }
+.terminal-1932065323-r33 { fill: #04b375;font-weight: bold }
+.terminal-1932065323-r34 { fill: #ff7ec8;font-weight: bold }
+.terminal-1932065323-r35 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter a URL... Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││NameValue Add header │
-│ GET get one│╰─────────────────────────────────────────────────╯
-│ POS create│╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼Enter a URL... Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││NameValue Add header │
+│ GET get one│╰─────────────────────────────────────────────────╯
+│ POS create│╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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/TestJumpMode.test_loads.svg b/tests/__snapshots__/test_snapshots/TestJumpMode.test_loads.svg
index 62572147..a8abe089 100644
--- a/tests/__snapshots__/test_snapshots/TestJumpMode.test_loads.svg
+++ b/tests/__snapshots__/test_snapshots/TestJumpMode.test_loads.svg
@@ -19,168 +19,169 @@
font-weight: 700;
}
- .terminal-1069741935-matrix {
+ .terminal-2359678916-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1069741935-title {
+ .terminal-2359678916-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1069741935-r1 { fill: #9c9c9c }
-.terminal-1069741935-r2 { fill: #c5c8c6 }
-.terminal-1069741935-r3 { fill: #dfdfdf }
-.terminal-1069741935-r4 { fill: #b2903c }
-.terminal-1069741935-r5 { fill: #211a0b;font-weight: bold }
-.terminal-1069741935-r6 { fill: #9ca6ae;text-decoration: underline; }
-.terminal-1069741935-r7 { fill: #9ca6ae }
-.terminal-1069741935-r8 { fill: #6d8ea6 }
-.terminal-1069741935-r9 { fill: #505050 }
-.terminal-1069741935-r10 { fill: #9d9d9d }
-.terminal-1069741935-r11 { fill: #9aa1a5 }
-.terminal-1069741935-r12 { fill: #707070 }
-.terminal-1069741935-r13 { fill: #463012 }
-.terminal-1069741935-r14 { fill: #6a6b6d;font-weight: bold }
-.terminal-1069741935-r15 { fill: #9e9e9f;font-weight: bold }
-.terminal-1069741935-r16 { fill: #9c9c9c;font-weight: bold }
-.terminal-1069741935-r17 { fill: #4b4b4b }
-.terminal-1069741935-r18 { fill: #626262 }
-.terminal-1069741935-r19 { fill: #1b1b1b }
-.terminal-1069741935-r20 { fill: #b1741e }
-.terminal-1069741935-r21 { fill: #191919 }
-.terminal-1069741935-r22 { fill: #626262;font-weight: bold }
-.terminal-1069741935-r23 { fill: #090909 }
-.terminal-1069741935-r24 { fill: #005a27 }
-.terminal-1069741935-r25 { fill: #626466 }
-.terminal-1069741935-r26 { fill: #222222;font-weight: bold }
-.terminal-1069741935-r27 { fill: #222222 }
-.terminal-1069741935-r28 { fill: #717171 }
-.terminal-1069741935-r29 { fill: #131313 }
-.terminal-1069741935-r30 { fill: #805418 }
-.terminal-1069741935-r31 { fill: #5f5f5f }
-.terminal-1069741935-r32 { fill: #727272 }
-.terminal-1069741935-r33 { fill: #545454 }
-.terminal-1069741935-r34 { fill: #171717 }
-.terminal-1069741935-r35 { fill: #2a613a;font-weight: bold }
-.terminal-1069741935-r36 { fill: #cf7e00 }
-.terminal-1069741935-r37 { fill: #211505 }
-.terminal-1069741935-r38 { fill: #727272;font-weight: bold }
+ .terminal-2359678916-r1 { fill: #9c9c9d }
+.terminal-2359678916-r2 { fill: #c5c8c6 }
+.terminal-2359678916-r3 { fill: #dfdfe0 }
+.terminal-2359678916-r4 { fill: #b2669a }
+.terminal-2359678916-r5 { fill: #21131c;font-weight: bold }
+.terminal-2359678916-r6 { fill: #0e0b15;text-decoration: underline; }
+.terminal-2359678916-r7 { fill: #0e0b15 }
+.terminal-2359678916-r8 { fill: #2e2540 }
+.terminal-2359678916-r9 { fill: #50505e }
+.terminal-2359678916-r10 { fill: #9d9da1 }
+.terminal-2359678916-r11 { fill: #a79eaf }
+.terminal-2359678916-r12 { fill: #6f6f73 }
+.terminal-2359678916-r13 { fill: #45203a }
+.terminal-2359678916-r14 { fill: #6b6b77;font-weight: bold }
+.terminal-2359678916-r15 { fill: #9e9ea2;font-weight: bold }
+.terminal-2359678916-r16 { fill: #9c9c9d;font-weight: bold }
+.terminal-2359678916-r17 { fill: #4a4a51 }
+.terminal-2359678916-r18 { fill: #616166 }
+.terminal-2359678916-r19 { fill: #191923 }
+.terminal-2359678916-r20 { fill: #b2497e }
+.terminal-2359678916-r21 { fill: #19192d }
+.terminal-2359678916-r22 { fill: #616166;font-weight: bold }
+.terminal-2359678916-r23 { fill: #090920 }
+.terminal-2359678916-r24 { fill: #008042 }
+.terminal-2359678916-r25 { fill: #65626d }
+.terminal-2359678916-r26 { fill: #20202a;font-weight: bold }
+.terminal-2359678916-r27 { fill: #20202a }
+.terminal-2359678916-r28 { fill: #707074 }
+.terminal-2359678916-r29 { fill: #11111c }
+.terminal-2359678916-r30 { fill: #80365e }
+.terminal-2359678916-r31 { fill: #5e5e64 }
+.terminal-2359678916-r32 { fill: #727276 }
+.terminal-2359678916-r33 { fill: #535359 }
+.terminal-2359678916-r34 { fill: #15151f }
+.terminal-2359678916-r35 { fill: #027d51;font-weight: bold }
+.terminal-2359678916-r36 { fill: #d13c8c }
+.terminal-2359678916-r37 { fill: #210d17 }
+.terminal-2359678916-r38 { fill: #707077 }
+.terminal-2359678916-r39 { fill: #707077;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-1GET▼2Enter a URL... Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│tabT echo││qHeaderswBodyeQueryrAuthtInfoyOptions│
-│ GET get random user ││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all ││NameValue Add header │
-│ GET get one │╰─────────────────────────────────────────────────╯
-│ POS create │╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││aBodysHeadersdCookiesfTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│This is an echo │││
-│server we can use to │││
-│see exactly what │││
-│request is being │││
-│sent.││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
-╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱Press a key to jump╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱
-ESC to dismiss
+
+
+
+
+Posting
+
+1GET▼2Enter a URL... Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│tabT echo││qHeaderswBodyeQueryrAuthtInfoyOptions│
+│ GET get random user ││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all ││NameValue Add header │
+│ GET get one │╰─────────────────────────────────────────────────╯
+│ POS create │╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││aBodysHeadersdCookiesfTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│This is an echo │││
+│server we can use to │││
+│see exactly what │││
+│request is being │││
+│sent.││1:1read-onlyJSON▼Wrap ▐X▌│
+╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
+╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱Press a key to jump╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱
+ESC to dismiss
diff --git a/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__auth.svg b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__auth.svg
index bf05a7a0..3e52aa0a 100644
--- a/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__auth.svg
+++ b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__auth.svg
@@ -19,246 +19,246 @@
font-weight: 700;
}
- .terminal-125721978-matrix {
+ .terminal-4264542321-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-125721978-title {
+ .terminal-4264542321-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-125721978-r1 { fill: #e0e0e0 }
-.terminal-125721978-r2 { fill: #c5c8c6 }
-.terminal-125721978-r3 { fill: #ffcf56 }
-.terminal-125721978-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-125721978-r5 { fill: #dfeef9 }
-.terminal-125721978-r6 { fill: #9dcbee }
-.terminal-125721978-r7 { fill: #ffa62b }
-.terminal-125721978-r8 { fill: #939393 }
-.terminal-125721978-r9 { fill: #0178d4 }
-.terminal-125721978-r10 { fill: #e1e1e1 }
-.terminal-125721978-r11 { fill: #dde6ed }
-.terminal-125721978-r12 { fill: #a0a0a0 }
-.terminal-125721978-r13 { fill: #64451a }
-.terminal-125721978-r14 { fill: #fea62b }
-.terminal-125721978-r15 { fill: #e0e0e0;font-weight: bold }
-.terminal-125721978-r16 { fill: #8d8d8d }
-.terminal-125721978-r17 { fill: #6c6c6c }
-.terminal-125721978-r18 { fill: #58d1eb;font-weight: bold }
-.terminal-125721978-r19 { fill: #885c1e }
-.terminal-125721978-r20 { fill: #989a9c;font-weight: bold }
-.terminal-125721978-r21 { fill: #e3e3e4;font-weight: bold }
-.terminal-125721978-r22 { fill: #8d8d8d;font-weight: bold }
-.terminal-125721978-r23 { fill: #a3a3a3 }
-.terminal-125721978-r24 { fill: #008139 }
-.terminal-125721978-r25 { fill: #ba3c5b }
-.terminal-125721978-r26 { fill: #313131;font-weight: bold }
-.terminal-125721978-r27 { fill: #313131 }
-.terminal-125721978-r28 { fill: #a2a2a2 }
-.terminal-125721978-r29 { fill: #1c1c1c }
-.terminal-125721978-r30 { fill: #b77923 }
-.terminal-125721978-r31 { fill: #888888 }
-.terminal-125721978-r32 { fill: #a4a4a4 }
-.terminal-125721978-r33 { fill: #787878 }
-.terminal-125721978-r34 { fill: #212121 }
-.terminal-125721978-r35 { fill: #3c8b54;font-weight: bold }
-.terminal-125721978-r36 { fill: #ffba41;font-weight: bold }
-.terminal-125721978-r37 { fill: #dbdbdb }
+ .terminal-4264542321-r1 { fill: #dfdfe1 }
+.terminal-4264542321-r2 { fill: #c5c8c6 }
+.terminal-4264542321-r3 { fill: #ff93dd }
+.terminal-4264542321-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-4264542321-r5 { fill: #15111e }
+.terminal-4264542321-r6 { fill: #43365c }
+.terminal-4264542321-r7 { fill: #ff69b4 }
+.terminal-4264542321-r8 { fill: #9393a3 }
+.terminal-4264542321-r9 { fill: #a684e8 }
+.terminal-4264542321-r10 { fill: #e1e1e6 }
+.terminal-4264542321-r11 { fill: #efe3fb }
+.terminal-4264542321-r12 { fill: #9f9fa5 }
+.terminal-4264542321-r13 { fill: #632e53 }
+.terminal-4264542321-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-4264542321-r15 { fill: #8b8b93 }
+.terminal-4264542321-r16 { fill: #6a6a74 }
+.terminal-4264542321-r17 { fill: #58d1eb;font-weight: bold }
+.terminal-4264542321-r18 { fill: #873c69 }
+.terminal-4264542321-r19 { fill: #9b9aab;font-weight: bold }
+.terminal-4264542321-r20 { fill: #e3e3e8;font-weight: bold }
+.terminal-4264542321-r21 { fill: #8b8b93;font-weight: bold }
+.terminal-4264542321-r22 { fill: #e0e0e2 }
+.terminal-4264542321-r23 { fill: #a2a2a8 }
+.terminal-4264542321-r24 { fill: #00b85f }
+.terminal-4264542321-r25 { fill: #ff4500 }
+.terminal-4264542321-r26 { fill: #2e2e3c;font-weight: bold }
+.terminal-4264542321-r27 { fill: #2e2e3c }
+.terminal-4264542321-r28 { fill: #a0a0a6 }
+.terminal-4264542321-r29 { fill: #191928 }
+.terminal-4264542321-r30 { fill: #b74e87 }
+.terminal-4264542321-r31 { fill: #87878f }
+.terminal-4264542321-r32 { fill: #a3a3a9 }
+.terminal-4264542321-r33 { fill: #777780 }
+.terminal-4264542321-r34 { fill: #1f1f2d }
+.terminal-4264542321-r35 { fill: #04b375;font-weight: bold }
+.terminal-4264542321-r36 { fill: #ff7ec8;font-weight: bold }
+.terminal-4264542321-r37 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-POST▼https://postman-echo.com/post Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││Headers•Body•Query•AuthInfoOptions│
-│ GET get random user││━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━╺━━━━━━━━━━━━━━━━━━│
-│█ POS echo post││Auth type Authorization headers│
-│▼ jsonplaceholder/││Basic▼will be generated │
-│▼ posts/││when the request is │
-│ GET get all││sent.│
-│ GET get one│││
-│ POS create││Username │
-│ DEL delete a post││darren │
-│▼ comments/│││
-│ GET get comments││Password │
-│ GET get comments││$domain│
-│ PUT edit a comme│││
-│▼ todos/│││
-│ GET get all│││
-│ GET get one│││
-│▼ users/│╰─────────────────────────────────────────────────╯
-│ GET get a user│╭────────────────────────────────────── Response ─╮
-│ GET get all users││BodyHeadersCookiesTrace│
-│ POS create a user││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ PUT update a user│││
-│ DEL delete a user│││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-│───────────────────────│││
-│Echo server for post │││
-│requests.││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+POST▼https://postman-echo.com/post Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││Headers•Body•Query•AuthInfoOptions│
+│ GET get random user││━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━╺━━━━━━━━━━━━━━━━━━│
+│█ POS echo post││Auth type Authorization headers│
+│▼ jsonplaceholder/││Basic▼will be generated │
+│▼ posts/││when the request is │
+│ GET get all││sent.│
+│ GET get one│││
+│ POS create││Username │
+│ DEL delete a post││darren │
+│▼ comments/│││
+│ GET get comments││Password │
+│ GET get comments││$domain│
+│ PUT edit a comme│││
+│▼ todos/│││
+│ GET get all│││
+│ GET get one│││
+│▼ users/│╰─────────────────────────────────────────────────╯
+│ GET get a user│╭────────────────────────────────────── Response ─╮
+│ GET get all users││BodyHeadersCookiesTrace│
+│ POS create a user││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ PUT update a user│││
+│ DEL delete a user│││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+│───────────────────────│││
+│Echo server for post │││
+│requests.││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/TestLoadingRequest.test_request_loaded_into_view__body.svg b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__body.svg
index e9174fe3..886bb825 100644
--- a/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__body.svg
+++ b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__body.svg
@@ -19,213 +19,213 @@
font-weight: 700;
}
- .terminal-4143322334-matrix {
+ .terminal-2798669157-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4143322334-title {
+ .terminal-2798669157-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4143322334-r1 { fill: #e0e0e0 }
-.terminal-4143322334-r2 { fill: #c5c8c6 }
-.terminal-4143322334-r3 { fill: #ffcf56 }
-.terminal-4143322334-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-4143322334-r5 { fill: #dfeef9 }
-.terminal-4143322334-r6 { fill: #9dcbee }
-.terminal-4143322334-r7 { fill: #ffa62b }
-.terminal-4143322334-r8 { fill: #939393 }
-.terminal-4143322334-r9 { fill: #0178d4 }
-.terminal-4143322334-r10 { fill: #e1e1e1 }
-.terminal-4143322334-r11 { fill: #dde6ed }
-.terminal-4143322334-r12 { fill: #a0a0a0 }
-.terminal-4143322334-r13 { fill: #64451a }
-.terminal-4143322334-r14 { fill: #fea62b }
-.terminal-4143322334-r15 { fill: #e0e0e0;font-weight: bold }
-.terminal-4143322334-r16 { fill: #8d8d8d }
-.terminal-4143322334-r17 { fill: #6c6c6c }
-.terminal-4143322334-r18 { fill: #58d1eb;font-weight: bold }
-.terminal-4143322334-r19 { fill: #885c1e }
-.terminal-4143322334-r20 { fill: #a3a3a3 }
-.terminal-4143322334-r21 { fill: #8d8d8d;font-weight: bold }
-.terminal-4143322334-r22 { fill: #a3a3a3;font-weight: bold }
-.terminal-4143322334-r23 { fill: #e8e8e8 }
-.terminal-4143322334-r24 { fill: #008139 }
-.terminal-4143322334-r25 { fill: #707070 }
-.terminal-4143322334-r26 { fill: #569cd6;font-weight: bold }
-.terminal-4143322334-r27 { fill: #ce9178 }
-.terminal-4143322334-r28 { fill: #b5cea8 }
-.terminal-4143322334-r29 { fill: #989a9c;font-weight: bold }
-.terminal-4143322334-r30 { fill: #e3e3e4;font-weight: bold }
-.terminal-4143322334-r31 { fill: #888888 }
-.terminal-4143322334-r32 { fill: #323232 }
-.terminal-4143322334-r33 { fill: #4ebf71;font-weight: bold }
-.terminal-4143322334-r34 { fill: #313131;font-weight: bold }
-.terminal-4143322334-r35 { fill: #313131 }
-.terminal-4143322334-r36 { fill: #a2a2a2 }
-.terminal-4143322334-r37 { fill: #1c1c1c }
-.terminal-4143322334-r38 { fill: #b77923 }
-.terminal-4143322334-r39 { fill: #a4a4a4 }
-.terminal-4143322334-r40 { fill: #787878 }
-.terminal-4143322334-r41 { fill: #212121 }
-.terminal-4143322334-r42 { fill: #3c8b54;font-weight: bold }
-.terminal-4143322334-r43 { fill: #ffba41;font-weight: bold }
-.terminal-4143322334-r44 { fill: #dbdbdb }
+ .terminal-2798669157-r1 { fill: #dfdfe1 }
+.terminal-2798669157-r2 { fill: #c5c8c6 }
+.terminal-2798669157-r3 { fill: #ff93dd }
+.terminal-2798669157-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-2798669157-r5 { fill: #15111e }
+.terminal-2798669157-r6 { fill: #43365c }
+.terminal-2798669157-r7 { fill: #ff69b4 }
+.terminal-2798669157-r8 { fill: #9393a3 }
+.terminal-2798669157-r9 { fill: #a684e8 }
+.terminal-2798669157-r10 { fill: #e1e1e6 }
+.terminal-2798669157-r11 { fill: #efe3fb }
+.terminal-2798669157-r12 { fill: #9f9fa5 }
+.terminal-2798669157-r13 { fill: #632e53 }
+.terminal-2798669157-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-2798669157-r15 { fill: #8b8b93 }
+.terminal-2798669157-r16 { fill: #6a6a74 }
+.terminal-2798669157-r17 { fill: #58d1eb;font-weight: bold }
+.terminal-2798669157-r18 { fill: #873c69 }
+.terminal-2798669157-r19 { fill: #e0e0e2 }
+.terminal-2798669157-r20 { fill: #a2a2a8 }
+.terminal-2798669157-r21 { fill: #8b8b93;font-weight: bold }
+.terminal-2798669157-r22 { fill: #a2a2a8;font-weight: bold }
+.terminal-2798669157-r23 { fill: #e8e8e9 }
+.terminal-2798669157-r24 { fill: #00b85f }
+.terminal-2798669157-r25 { fill: #6f6f78 }
+.terminal-2798669157-r26 { fill: #f92672;font-weight: bold }
+.terminal-2798669157-r27 { fill: #e6db74 }
+.terminal-2798669157-r28 { fill: #ae81ff }
+.terminal-2798669157-r29 { fill: #9b9aab;font-weight: bold }
+.terminal-2798669157-r30 { fill: #e3e3e8;font-weight: bold }
+.terminal-2798669157-r31 { fill: #87878f }
+.terminal-2798669157-r32 { fill: #30303b }
+.terminal-2798669157-r33 { fill: #00fa9a;font-weight: bold }
+.terminal-2798669157-r34 { fill: #2e2e3c;font-weight: bold }
+.terminal-2798669157-r35 { fill: #2e2e3c }
+.terminal-2798669157-r36 { fill: #a0a0a6 }
+.terminal-2798669157-r37 { fill: #191928 }
+.terminal-2798669157-r38 { fill: #b74e87 }
+.terminal-2798669157-r39 { fill: #a3a3a9 }
+.terminal-2798669157-r40 { fill: #777780 }
+.terminal-2798669157-r41 { fill: #1f1f2d }
+.terminal-2798669157-r42 { fill: #04b375;font-weight: bold }
+.terminal-2798669157-r43 { fill: #ff7ec8;font-weight: bold }
+.terminal-2798669157-r44 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-POST▼https://jsonplaceholder.typicode.com/posts Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││Headers•Body•QueryAuthInfoOptions│
-│ GET get random user││━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││Raw (json, text, etc.)▼│
-│▼ jsonplaceholder/││1 {│
-│▼ posts/││2 "title": "foo", │
-│ GET get all││3 "body": "bar", │
-│ GET get one││4 "userId": 1│
-│█ POS create││5 }│
-│ DEL delete a post│││
-│▼ comments/│││
-│ GET get comments││1:1JSON▼Wrap ▐X▌│
-│ GET get comments│╰─────────────────────────────────────────────────╯
-│ PUT edit a comme│╭────────────────────────────────────── Response ─╮
-│▼ todos/││BodyHeadersCookiesTrace│
-│ GET get all││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get one│││
-│▼ users/│││
-│ GET get a user│││
-│ GET get all users│││
-│ POS create a user│││
-│ PUT update a user│││
-│ DEL delete a user│││
-││││
-│───────────────────────│││
-│Create a new post││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+POST▼https://jsonplaceholder.typicode.com/posts Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││Headers•Body•QueryAuthInfoOptions│
+│ GET get random user││━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││Raw (json, text, etc.)▼│
+│▼ jsonplaceholder/││1 {│
+│▼ posts/││2 "title": "foo", │
+│ GET get all││3 "body": "bar", │
+│ GET get one││4 "userId": 1│
+│█ POS create││5 }│
+│ DEL delete a post│││
+│▼ comments/│││
+│ GET get comments││1:1JSON▼Wrap ▐X▌│
+│ GET get comments│╰─────────────────────────────────────────────────╯
+│ PUT edit a comme│╭────────────────────────────────────── Response ─╮
+│▼ todos/││BodyHeadersCookiesTrace│
+│ GET get all││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get one│││
+│▼ users/│││
+│ GET get a user│││
+│ GET get all users│││
+│ POS create a user│││
+│ PUT update a user│││
+│ DEL delete a user│││
+││││
+│───────────────────────│││
+│Create a new post││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/TestLoadingRequest.test_request_loaded_into_view__headers.svg b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__headers.svg
index 7a25cac2..6da7b15a 100644
--- a/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__headers.svg
+++ b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__headers.svg
@@ -19,202 +19,202 @@
font-weight: 700;
}
- .terminal-1428808752-matrix {
+ .terminal-3823043935-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1428808752-title {
+ .terminal-3823043935-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1428808752-r1 { fill: #e0e0e0 }
-.terminal-1428808752-r2 { fill: #c5c8c6 }
-.terminal-1428808752-r3 { fill: #ffcf56 }
-.terminal-1428808752-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-1428808752-r5 { fill: #dfeef9 }
-.terminal-1428808752-r6 { fill: #9dcbee }
-.terminal-1428808752-r7 { fill: #737373 }
-.terminal-1428808752-r8 { fill: #e1e1e1 }
-.terminal-1428808752-r9 { fill: #dde6ed }
-.terminal-1428808752-r10 { fill: #a0a0a0 }
-.terminal-1428808752-r11 { fill: #fea62b }
-.terminal-1428808752-r12 { fill: #e0e0e0;font-weight: bold }
-.terminal-1428808752-r13 { fill: #64451a }
-.terminal-1428808752-r14 { fill: #8d8d8d }
-.terminal-1428808752-r15 { fill: #6c6c6c }
-.terminal-1428808752-r16 { fill: #272727 }
-.terminal-1428808752-r17 { fill: #242424 }
-.terminal-1428808752-r18 { fill: #8d8d8d;font-weight: bold }
-.terminal-1428808752-r19 { fill: #008139 }
-.terminal-1428808752-r20 { fill: #211505;font-weight: bold }
-.terminal-1428808752-r21 { fill: #8c9092 }
-.terminal-1428808752-r22 { fill: #313131;font-weight: bold }
-.terminal-1428808752-r23 { fill: #313131 }
-.terminal-1428808752-r24 { fill: #a2a2a2 }
-.terminal-1428808752-r25 { fill: #1c1c1c }
-.terminal-1428808752-r26 { fill: #b77923 }
-.terminal-1428808752-r27 { fill: #888888 }
-.terminal-1428808752-r28 { fill: #a4a4a4 }
-.terminal-1428808752-r29 { fill: #787878 }
-.terminal-1428808752-r30 { fill: #212121 }
-.terminal-1428808752-r31 { fill: #3c8b54;font-weight: bold }
-.terminal-1428808752-r32 { fill: #ffba41;font-weight: bold }
-.terminal-1428808752-r33 { fill: #dbdbdb }
+ .terminal-3823043935-r1 { fill: #dfdfe1 }
+.terminal-3823043935-r2 { fill: #c5c8c6 }
+.terminal-3823043935-r3 { fill: #ff93dd }
+.terminal-3823043935-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-3823043935-r5 { fill: #15111e }
+.terminal-3823043935-r6 { fill: #43365c }
+.terminal-3823043935-r7 { fill: #737387 }
+.terminal-3823043935-r8 { fill: #e1e1e6 }
+.terminal-3823043935-r9 { fill: #efe3fb }
+.terminal-3823043935-r10 { fill: #9f9fa5 }
+.terminal-3823043935-r11 { fill: #ff69b4 }
+.terminal-3823043935-r12 { fill: #dfdfe1;font-weight: bold }
+.terminal-3823043935-r13 { fill: #632e53 }
+.terminal-3823043935-r14 { fill: #8b8b93 }
+.terminal-3823043935-r15 { fill: #6a6a74 }
+.terminal-3823043935-r16 { fill: #252532 }
+.terminal-3823043935-r17 { fill: #252441 }
+.terminal-3823043935-r18 { fill: #8b8b93;font-weight: bold }
+.terminal-3823043935-r19 { fill: #00b85f }
+.terminal-3823043935-r20 { fill: #210d17;font-weight: bold }
+.terminal-3823043935-r21 { fill: #918d9d }
+.terminal-3823043935-r22 { fill: #2e2e3c;font-weight: bold }
+.terminal-3823043935-r23 { fill: #2e2e3c }
+.terminal-3823043935-r24 { fill: #a0a0a6 }
+.terminal-3823043935-r25 { fill: #191928 }
+.terminal-3823043935-r26 { fill: #b74e87 }
+.terminal-3823043935-r27 { fill: #87878f }
+.terminal-3823043935-r28 { fill: #a3a3a9 }
+.terminal-3823043935-r29 { fill: #777780 }
+.terminal-3823043935-r30 { fill: #1f1f2d }
+.terminal-3823043935-r31 { fill: #04b375;font-weight: bold }
+.terminal-3823043935-r32 { fill: #ff7ec8;font-weight: bold }
+.terminal-3823043935-r33 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter a URL... Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▶ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ todos/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get one││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ users/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get a user││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all users││NameValue Add header │
-│ POS create a user│╰─────────────────────────────────────────────────╯
-│ PUT update a user│╭────────────────────────────────────── Response ─╮
-│ DEL delete a user││BodyHeadersCookiesTrace│
-│││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-│││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼Enter a URL... Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▶ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ todos/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get one││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ users/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get a user││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all users││NameValue Add header │
+│ POS create a user│╰─────────────────────────────────────────────────╯
+│ PUT update a user│╭────────────────────────────────────── Response ─╮
+│ DEL delete a user││BodyHeadersCookiesTrace│
+│││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+│││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/TestLoadingRequest.test_request_loaded_into_view__options.svg b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__options.svg
index 934f489c..dfea5531 100644
--- a/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__options.svg
+++ b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__options.svg
@@ -19,246 +19,245 @@
font-weight: 700;
}
- .terminal-2201742234-matrix {
+ .terminal-1445352581-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2201742234-title {
+ .terminal-1445352581-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2201742234-r1 { fill: #e0e0e0 }
-.terminal-2201742234-r2 { fill: #c5c8c6 }
-.terminal-2201742234-r3 { fill: #ffcf56 }
-.terminal-2201742234-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-2201742234-r5 { fill: #dfeef9 }
-.terminal-2201742234-r6 { fill: #9dcbee }
-.terminal-2201742234-r7 { fill: #ffa62b }
-.terminal-2201742234-r8 { fill: #939393 }
-.terminal-2201742234-r9 { fill: #0178d4 }
-.terminal-2201742234-r10 { fill: #e1e1e1 }
-.terminal-2201742234-r11 { fill: #dde6ed }
-.terminal-2201742234-r12 { fill: #a0a0a0 }
-.terminal-2201742234-r13 { fill: #64451a }
-.terminal-2201742234-r14 { fill: #fea62b }
-.terminal-2201742234-r15 { fill: #e0e0e0;font-weight: bold }
-.terminal-2201742234-r16 { fill: #8d8d8d }
-.terminal-2201742234-r17 { fill: #6c6c6c }
-.terminal-2201742234-r18 { fill: #58d1eb;font-weight: bold }
-.terminal-2201742234-r19 { fill: #885c1e }
-.terminal-2201742234-r20 { fill: #989a9c;font-weight: bold }
-.terminal-2201742234-r21 { fill: #e3e3e4;font-weight: bold }
-.terminal-2201742234-r22 { fill: #323232 }
-.terminal-2201742234-r23 { fill: #4ebf71;font-weight: bold }
-.terminal-2201742234-r24 { fill: #8d8d8d;font-weight: bold }
-.terminal-2201742234-r25 { fill: #008139 }
-.terminal-2201742234-r26 { fill: #313131;font-weight: bold }
-.terminal-2201742234-r27 { fill: #313131 }
-.terminal-2201742234-r28 { fill: #a2a2a2 }
-.terminal-2201742234-r29 { fill: #1c1c1c }
-.terminal-2201742234-r30 { fill: #b77923 }
-.terminal-2201742234-r31 { fill: #888888 }
-.terminal-2201742234-r32 { fill: #a4a4a4 }
-.terminal-2201742234-r33 { fill: #787878 }
-.terminal-2201742234-r34 { fill: #212121 }
-.terminal-2201742234-r35 { fill: #3c8b54;font-weight: bold }
-.terminal-2201742234-r36 { fill: #ffba41;font-weight: bold }
-.terminal-2201742234-r37 { fill: #dbdbdb }
+ .terminal-1445352581-r1 { fill: #dfdfe1 }
+.terminal-1445352581-r2 { fill: #c5c8c6 }
+.terminal-1445352581-r3 { fill: #ff93dd }
+.terminal-1445352581-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-1445352581-r5 { fill: #15111e }
+.terminal-1445352581-r6 { fill: #43365c }
+.terminal-1445352581-r7 { fill: #ff69b4 }
+.terminal-1445352581-r8 { fill: #9393a3 }
+.terminal-1445352581-r9 { fill: #a684e8 }
+.terminal-1445352581-r10 { fill: #e1e1e6 }
+.terminal-1445352581-r11 { fill: #efe3fb }
+.terminal-1445352581-r12 { fill: #9f9fa5 }
+.terminal-1445352581-r13 { fill: #632e53 }
+.terminal-1445352581-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-1445352581-r15 { fill: #8b8b93 }
+.terminal-1445352581-r16 { fill: #6a6a74 }
+.terminal-1445352581-r17 { fill: #58d1eb;font-weight: bold }
+.terminal-1445352581-r18 { fill: #873c69 }
+.terminal-1445352581-r19 { fill: #9b9aab;font-weight: bold }
+.terminal-1445352581-r20 { fill: #e3e3e8;font-weight: bold }
+.terminal-1445352581-r21 { fill: #30303b }
+.terminal-1445352581-r22 { fill: #00fa9a;font-weight: bold }
+.terminal-1445352581-r23 { fill: #8b8b93;font-weight: bold }
+.terminal-1445352581-r24 { fill: #00b85f }
+.terminal-1445352581-r25 { fill: #2e2e3c;font-weight: bold }
+.terminal-1445352581-r26 { fill: #2e2e3c }
+.terminal-1445352581-r27 { fill: #a0a0a6 }
+.terminal-1445352581-r28 { fill: #191928 }
+.terminal-1445352581-r29 { fill: #b74e87 }
+.terminal-1445352581-r30 { fill: #87878f }
+.terminal-1445352581-r31 { fill: #a3a3a9 }
+.terminal-1445352581-r32 { fill: #777780 }
+.terminal-1445352581-r33 { fill: #1f1f2d }
+.terminal-1445352581-r34 { fill: #04b375;font-weight: bold }
+.terminal-1445352581-r35 { fill: #ff7ec8;font-weight: bold }
+.terminal-1445352581-r36 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-POST▼https://postman-echo.com/post Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││Headers•Body•Query•AuthInfoOptions│
-│ GET get random user││━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━╺━━━│
-│█ POS echo post││▐X▌ Follow redirects│
-│▼ jsonplaceholder/│││
-│▼ posts/││▐X▌ Verify SSL certificates│
-│ GET get all│││
-│ GET get one││▐X▌ Attach cookies│
-│ POS create│││
-│ DEL delete a post││Proxy URL │
-│▼ comments/│││
-│ GET get comments│││
-│ GET get comments││Timeout │
-│ PUT edit a comme││0.2 │
-│▼ todos/│││
-│ GET get all│││
-│ GET get one│││
-│▼ users/│╰─────────────────────────────────────────────────╯
-│ GET get a user│╭────────────────────────────────────── Response ─╮
-│ GET get all users││BodyHeadersCookiesTrace│
-│ POS create a user││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ PUT update a user│││
-│ DEL delete a user│││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-││││
-│───────────────────────│││
-│Echo server for post │││
-│requests.││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+POST▼https://postman-echo.com/post Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││Headers•Body•Query•AuthInfoOptions│
+│ GET get random user││━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━╺━━━│
+│█ POS echo post││▐X▌ Follow redirects│
+│▼ jsonplaceholder/│││
+│▼ posts/││▐X▌ Verify SSL certificates│
+│ GET get all│││
+│ GET get one││▐X▌ Attach cookies│
+│ POS create│││
+│ DEL delete a post││Proxy URL │
+│▼ comments/│││
+│ GET get comments│││
+│ GET get comments││Timeout │
+│ PUT edit a comme││0.2 │
+│▼ todos/│││
+│ GET get all│││
+│ GET get one│││
+│▼ users/│╰─────────────────────────────────────────────────╯
+│ GET get a user│╭────────────────────────────────────── Response ─╮
+│ GET get all users││BodyHeadersCookiesTrace│
+│ POS create a user││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ PUT update a user│││
+│ DEL delete a user│││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+││││
+│───────────────────────│││
+│Echo server for post │││
+│requests.││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/TestLoadingRequest.test_request_loaded_into_view__query_params.svg b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__query_params.svg
index b9cabca7..85602e0c 100644
--- a/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__query_params.svg
+++ b/tests/__snapshots__/test_snapshots/TestLoadingRequest.test_request_loaded_into_view__query_params.svg
@@ -19,212 +19,211 @@
font-weight: 700;
}
- .terminal-191964525-matrix {
+ .terminal-2008242638-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-191964525-title {
+ .terminal-2008242638-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-191964525-r1 { fill: #e0e0e0 }
-.terminal-191964525-r2 { fill: #c5c8c6 }
-.terminal-191964525-r3 { fill: #ffcf56 }
-.terminal-191964525-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-191964525-r5 { fill: #dfeef9 }
-.terminal-191964525-r6 { fill: #9dcbee }
-.terminal-191964525-r7 { fill: #ffa62b }
-.terminal-191964525-r8 { fill: #939393 }
-.terminal-191964525-r9 { fill: #0178d4 }
-.terminal-191964525-r10 { fill: #e1e1e1 }
-.terminal-191964525-r11 { fill: #dde6ed }
-.terminal-191964525-r12 { fill: #a0a0a0 }
-.terminal-191964525-r13 { fill: #64451a }
-.terminal-191964525-r14 { fill: #fea62b }
-.terminal-191964525-r15 { fill: #e0e0e0;font-weight: bold }
-.terminal-191964525-r16 { fill: #8d8d8d }
-.terminal-191964525-r17 { fill: #6c6c6c }
-.terminal-191964525-r18 { fill: #58d1eb;font-weight: bold }
-.terminal-191964525-r19 { fill: #885c1e }
-.terminal-191964525-r20 { fill: #121212 }
-.terminal-191964525-r21 { fill: #dee5eb }
-.terminal-191964525-r22 { fill: #e0e0e1 }
-.terminal-191964525-r23 { fill: #dfe1e2 }
-.terminal-191964525-r24 { fill: #8d8d8d;font-weight: bold }
-.terminal-191964525-r25 { fill: #dee4e8 }
-.terminal-191964525-r26 { fill: #008139 }
-.terminal-191964525-r27 { fill: #737373 }
-.terminal-191964525-r28 { fill: #8c9092 }
-.terminal-191964525-r29 { fill: #989a9c;font-weight: bold }
-.terminal-191964525-r30 { fill: #e3e3e4;font-weight: bold }
-.terminal-191964525-r31 { fill: #313131;font-weight: bold }
-.terminal-191964525-r32 { fill: #313131 }
-.terminal-191964525-r33 { fill: #a2a2a2 }
-.terminal-191964525-r34 { fill: #1c1c1c }
-.terminal-191964525-r35 { fill: #b77923 }
-.terminal-191964525-r36 { fill: #0d0d0d }
-.terminal-191964525-r37 { fill: #888888 }
-.terminal-191964525-r38 { fill: #a4a4a4 }
-.terminal-191964525-r39 { fill: #787878 }
-.terminal-191964525-r40 { fill: #212121 }
-.terminal-191964525-r41 { fill: #3c8b54;font-weight: bold }
-.terminal-191964525-r42 { fill: #ffba41;font-weight: bold }
-.terminal-191964525-r43 { fill: #dbdbdb }
+ .terminal-2008242638-r1 { fill: #dfdfe1 }
+.terminal-2008242638-r2 { fill: #c5c8c6 }
+.terminal-2008242638-r3 { fill: #ff93dd }
+.terminal-2008242638-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-2008242638-r5 { fill: #15111e }
+.terminal-2008242638-r6 { fill: #43365c }
+.terminal-2008242638-r7 { fill: #ff69b4 }
+.terminal-2008242638-r8 { fill: #9393a3 }
+.terminal-2008242638-r9 { fill: #a684e8 }
+.terminal-2008242638-r10 { fill: #e1e1e6 }
+.terminal-2008242638-r11 { fill: #efe3fb }
+.terminal-2008242638-r12 { fill: #9f9fa5 }
+.terminal-2008242638-r13 { fill: #632e53 }
+.terminal-2008242638-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-2008242638-r15 { fill: #8b8b93 }
+.terminal-2008242638-r16 { fill: #6a6a74 }
+.terminal-2008242638-r17 { fill: #58d1eb;font-weight: bold }
+.terminal-2008242638-r18 { fill: #873c69 }
+.terminal-2008242638-r19 { fill: #0f0f1f }
+.terminal-2008242638-r20 { fill: #ede2f7 }
+.terminal-2008242638-r21 { fill: #e1e0e4 }
+.terminal-2008242638-r22 { fill: #e2e0e5 }
+.terminal-2008242638-r23 { fill: #8b8b93;font-weight: bold }
+.terminal-2008242638-r24 { fill: #e9e1f1 }
+.terminal-2008242638-r25 { fill: #00b85f }
+.terminal-2008242638-r26 { fill: #737387 }
+.terminal-2008242638-r27 { fill: #918d9d }
+.terminal-2008242638-r28 { fill: #9b9aab;font-weight: bold }
+.terminal-2008242638-r29 { fill: #e3e3e8;font-weight: bold }
+.terminal-2008242638-r30 { fill: #2e2e3c;font-weight: bold }
+.terminal-2008242638-r31 { fill: #2e2e3c }
+.terminal-2008242638-r32 { fill: #a0a0a6 }
+.terminal-2008242638-r33 { fill: #191928 }
+.terminal-2008242638-r34 { fill: #b74e87 }
+.terminal-2008242638-r35 { fill: #0d0e2e }
+.terminal-2008242638-r36 { fill: #87878f }
+.terminal-2008242638-r37 { fill: #a3a3a9 }
+.terminal-2008242638-r38 { fill: #777780 }
+.terminal-2008242638-r39 { fill: #1f1f2d }
+.terminal-2008242638-r40 { fill: #04b375;font-weight: bold }
+.terminal-2008242638-r41 { fill: #ff7ec8;font-weight: bold }
+.terminal-2008242638-r42 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼https://jsonplaceholder.typicode.com/comments Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││Headers•BodyQuery•AuthInfoOptions│
-│ GET get random user││━━━━━━━━━━━━━━━━╸━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││▐ postId 1 │
-│▼ jsonplaceholder/││▐ foo bar │
-│▼ posts/││▐ beep boop │
-│ GET get all││▐ onetwothree 123 │
-│ GET get one││▐ areallyreallyreallyreallylongkey avalue │
-│ POS create││▐│
-│ DEL delete a post│││
-│▼ comments/│││
-│ GET get comment││KeyValue Add │
-│█ GET get commen│╰─────────────────────────────────────────────────╯
-│ PUT edit a comm│╭────────────────────────────────────── Response ─╮
-│▼ todos/││BodyHeadersCookiesTrace│
-│ GET get all││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get one│││
-│▼ users/│││
-│ GET get a user│││
-│ GET get all users│││
-│ POS create a user│││
-│ PUT update a user▇│││
-│───────────────────────│││
-│Retrieve the comments│││
-│for a post using the │││
-│query string││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼https://jsonplaceholder.typicode.com/comments Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││Headers•BodyQuery•AuthInfoOptions│
+│ GET get random user││━━━━━━━━━━━━━━━━╸━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││▐ postId 1 │
+│▼ jsonplaceholder/││▐ foo bar │
+│▼ posts/││▐ beep boop │
+│ GET get all││▐ onetwothree 123 │
+│ GET get one││▐ areallyreallyreallyreallylongkey avalue │
+│ POS create││▐│
+│ DEL delete a post│││
+│▼ comments/│││
+│ GET get comment││KeyValue Add │
+│█ GET get commen│╰─────────────────────────────────────────────────╯
+│ PUT edit a comm│╭────────────────────────────────────── Response ─╮
+│▼ todos/││BodyHeadersCookiesTrace│
+│ GET get all││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get one│││
+│▼ users/│││
+│ GET get a user│││
+│ GET get all users│││
+│ POS create a user│││
+│ PUT update a user▇│││
+│───────────────────────│││
+│Retrieve the comments│││
+│for a post using the │││
+│query string││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/TestMethodSelection.test_select_post_method.svg b/tests/__snapshots__/test_snapshots/TestMethodSelection.test_select_post_method.svg
index a517a2a1..3164b9aa 100644
--- a/tests/__snapshots__/test_snapshots/TestMethodSelection.test_select_post_method.svg
+++ b/tests/__snapshots__/test_snapshots/TestMethodSelection.test_select_post_method.svg
@@ -19,164 +19,164 @@
font-weight: 700;
}
- .terminal-3408594251-matrix {
+ .terminal-3855540643-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3408594251-title {
+ .terminal-3855540643-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3408594251-r1 { fill: #e0e0e0 }
-.terminal-3408594251-r2 { fill: #c5c8c6 }
-.terminal-3408594251-r3 { fill: #ffcf56 }
-.terminal-3408594251-r4 { fill: #211808;text-decoration: underline; }
-.terminal-3408594251-r5 { fill: #211808 }
-.terminal-3408594251-r6 { fill: #664a1a }
-.terminal-3408594251-r7 { fill: #737373 }
-.terminal-3408594251-r8 { fill: #e1e1e1 }
-.terminal-3408594251-r9 { fill: #dde6ed }
-.terminal-3408594251-r10 { fill: #a0a0a0 }
-.terminal-3408594251-r11 { fill: #64451a }
-.terminal-3408594251-r12 { fill: #989a9c;font-weight: bold }
-.terminal-3408594251-r13 { fill: #e3e3e4;font-weight: bold }
-.terminal-3408594251-r14 { fill: #e0e0e0;font-weight: bold }
-.terminal-3408594251-r15 { fill: #6c6c6c }
-.terminal-3408594251-r16 { fill: #8d8d8d }
-.terminal-3408594251-r17 { fill: #272727 }
-.terminal-3408594251-r18 { fill: #fea62b }
-.terminal-3408594251-r19 { fill: #242424 }
-.terminal-3408594251-r20 { fill: #8d8d8d;font-weight: bold }
-.terminal-3408594251-r21 { fill: #0d0d0d }
-.terminal-3408594251-r22 { fill: #008139 }
-.terminal-3408594251-r23 { fill: #8c9092 }
-.terminal-3408594251-r24 { fill: #313131;font-weight: bold }
-.terminal-3408594251-r25 { fill: #313131 }
-.terminal-3408594251-r26 { fill: #a2a2a2 }
-.terminal-3408594251-r27 { fill: #1c1c1c }
-.terminal-3408594251-r28 { fill: #b77923 }
-.terminal-3408594251-r29 { fill: #888888 }
-.terminal-3408594251-r30 { fill: #a4a4a4 }
-.terminal-3408594251-r31 { fill: #787878 }
-.terminal-3408594251-r32 { fill: #212121 }
-.terminal-3408594251-r33 { fill: #3c8b54;font-weight: bold }
-.terminal-3408594251-r34 { fill: #ffba41;font-weight: bold }
-.terminal-3408594251-r35 { fill: #dbdbdb }
+ .terminal-3855540643-r1 { fill: #dfdfe1 }
+.terminal-3855540643-r2 { fill: #c5c8c6 }
+.terminal-3855540643-r3 { fill: #ff93dd }
+.terminal-3855540643-r4 { fill: #21101a;text-decoration: underline; }
+.terminal-3855540643-r5 { fill: #21101a }
+.terminal-3855540643-r6 { fill: #663250 }
+.terminal-3855540643-r7 { fill: #737387 }
+.terminal-3855540643-r8 { fill: #e1e1e6 }
+.terminal-3855540643-r9 { fill: #efe3fb }
+.terminal-3855540643-r10 { fill: #9f9fa5 }
+.terminal-3855540643-r11 { fill: #632e53 }
+.terminal-3855540643-r12 { fill: #9b9aab;font-weight: bold }
+.terminal-3855540643-r13 { fill: #e3e3e8;font-weight: bold }
+.terminal-3855540643-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-3855540643-r15 { fill: #6a6a74 }
+.terminal-3855540643-r16 { fill: #8b8b93 }
+.terminal-3855540643-r17 { fill: #252532 }
+.terminal-3855540643-r18 { fill: #ff69b4 }
+.terminal-3855540643-r19 { fill: #252441 }
+.terminal-3855540643-r20 { fill: #8b8b93;font-weight: bold }
+.terminal-3855540643-r21 { fill: #0d0e2e }
+.terminal-3855540643-r22 { fill: #00b85f }
+.terminal-3855540643-r23 { fill: #918d9d }
+.terminal-3855540643-r24 { fill: #2e2e3c;font-weight: bold }
+.terminal-3855540643-r25 { fill: #2e2e3c }
+.terminal-3855540643-r26 { fill: #a0a0a6 }
+.terminal-3855540643-r27 { fill: #191928 }
+.terminal-3855540643-r28 { fill: #b74e87 }
+.terminal-3855540643-r29 { fill: #87878f }
+.terminal-3855540643-r30 { fill: #a3a3a9 }
+.terminal-3855540643-r31 { fill: #777780 }
+.terminal-3855540643-r32 { fill: #1f1f2d }
+.terminal-3855540643-r33 { fill: #04b375;font-weight: bold }
+.terminal-3855540643-r34 { fill: #ff7ec8;font-weight: bold }
+.terminal-3855540643-r35 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-POST▼Enter a URL... Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││NameValue Add header │
-│ GET get one│╰─────────────────────────────────────────────────╯
-│ POS create│╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+POST▼Enter a URL... Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││NameValue Add header │
+│ GET get one│╰─────────────────────────────────────────────────╯
+│ POS create│╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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/TestNewRequest.test_dialog_loads_and_can_be_used.svg b/tests/__snapshots__/test_snapshots/TestNewRequest.test_dialog_loads_and_can_be_used.svg
index 03bd99a3..83c631f6 100644
--- a/tests/__snapshots__/test_snapshots/TestNewRequest.test_dialog_loads_and_can_be_used.svg
+++ b/tests/__snapshots__/test_snapshots/TestNewRequest.test_dialog_loads_and_can_be_used.svg
@@ -19,171 +19,170 @@
font-weight: 700;
}
- .terminal-1506597801-matrix {
+ .terminal-3379148047-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1506597801-title {
+ .terminal-3379148047-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1506597801-r1 { fill: #9c9c9c }
-.terminal-1506597801-r2 { fill: #c5c8c6 }
-.terminal-1506597801-r3 { fill: #dfdfdf }
-.terminal-1506597801-r4 { fill: #b2903c }
-.terminal-1506597801-r5 { fill: #9ca6ae;text-decoration: underline; }
-.terminal-1506597801-r6 { fill: #9ca6ae }
-.terminal-1506597801-r7 { fill: #6d8ea6 }
-.terminal-1506597801-r8 { fill: #505050 }
-.terminal-1506597801-r9 { fill: #313131 }
-.terminal-1506597801-r10 { fill: #e0e0e0;font-weight: bold }
-.terminal-1506597801-r11 { fill: #9d9d9d }
-.terminal-1506597801-r12 { fill: #9aa1a5 }
-.terminal-1506597801-r13 { fill: #707070 }
-.terminal-1506597801-r14 { fill: #121212 }
-.terminal-1506597801-r15 { fill: #463012 }
-.terminal-1506597801-r16 { fill: #e0e0e0 }
-.terminal-1506597801-r17 { fill: #626262 }
-.terminal-1506597801-r18 { fill: #e1e1e1 }
-.terminal-1506597801-r19 { fill: #4b4b4b }
-.terminal-1506597801-r20 { fill: #1b1b1b }
-.terminal-1506597801-r21 { fill: #8d8d8d }
-.terminal-1506597801-r22 { fill: #191919 }
-.terminal-1506597801-r23 { fill: #626262;font-weight: bold }
-.terminal-1506597801-r24 { fill: #737373 }
-.terminal-1506597801-r25 { fill: #a5a5a5 }
-.terminal-1506597801-r26 { fill: #005a27 }
-.terminal-1506597801-r27 { fill: #9e9e9f;font-weight: bold }
-.terminal-1506597801-r28 { fill: #626466 }
-.terminal-1506597801-r29 { fill: #3e3e3e }
-.terminal-1506597801-r30 { fill: #e3e3e3 }
-.terminal-1506597801-r31 { fill: #e4e4e4 }
-.terminal-1506597801-r32 { fill: #211505 }
-.terminal-1506597801-r33 { fill: #0d0d0d }
-.terminal-1506597801-r34 { fill: #717171 }
-.terminal-1506597801-r35 { fill: #131313 }
-.terminal-1506597801-r36 { fill: #5f5f5f }
-.terminal-1506597801-r37 { fill: #727272 }
-.terminal-1506597801-r38 { fill: #545454 }
-.terminal-1506597801-r39 { fill: #171717 }
-.terminal-1506597801-r40 { fill: #2a613a;font-weight: bold }
-.terminal-1506597801-r41 { fill: #ffba41;font-weight: bold }
-.terminal-1506597801-r42 { fill: #dadada }
+ .terminal-3379148047-r1 { fill: #9c9c9d }
+.terminal-3379148047-r2 { fill: #c5c8c6 }
+.terminal-3379148047-r3 { fill: #dfdfe0 }
+.terminal-3379148047-r4 { fill: #b2669a }
+.terminal-3379148047-r5 { fill: #0e0b15;text-decoration: underline; }
+.terminal-3379148047-r6 { fill: #0e0b15 }
+.terminal-3379148047-r7 { fill: #2e2540 }
+.terminal-3379148047-r8 { fill: #50505e }
+.terminal-3379148047-r9 { fill: #2e2e3f }
+.terminal-3379148047-r10 { fill: #dfdfe1;font-weight: bold }
+.terminal-3379148047-r11 { fill: #9d9da1 }
+.terminal-3379148047-r12 { fill: #a79eaf }
+.terminal-3379148047-r13 { fill: #6f6f73 }
+.terminal-3379148047-r14 { fill: #0f0f1f }
+.terminal-3379148047-r15 { fill: #45203a }
+.terminal-3379148047-r16 { fill: #dfdfe1 }
+.terminal-3379148047-r17 { fill: #616166 }
+.terminal-3379148047-r18 { fill: #e1e1e6 }
+.terminal-3379148047-r19 { fill: #4a4a51 }
+.terminal-3379148047-r20 { fill: #191923 }
+.terminal-3379148047-r21 { fill: #8b8b93 }
+.terminal-3379148047-r22 { fill: #19192d }
+.terminal-3379148047-r23 { fill: #616166;font-weight: bold }
+.terminal-3379148047-r24 { fill: #a5a5b2 }
+.terminal-3379148047-r25 { fill: #008042 }
+.terminal-3379148047-r26 { fill: #9e9ea2;font-weight: bold }
+.terminal-3379148047-r27 { fill: #65626d }
+.terminal-3379148047-r28 { fill: #403e62 }
+.terminal-3379148047-r29 { fill: #e3e3e8 }
+.terminal-3379148047-r30 { fill: #e5e4e9 }
+.terminal-3379148047-r31 { fill: #210d17 }
+.terminal-3379148047-r32 { fill: #0d0e2e }
+.terminal-3379148047-r33 { fill: #707074 }
+.terminal-3379148047-r34 { fill: #11111c }
+.terminal-3379148047-r35 { fill: #5e5e64 }
+.terminal-3379148047-r36 { fill: #727276 }
+.terminal-3379148047-r37 { fill: #535359 }
+.terminal-3379148047-r38 { fill: #15151f }
+.terminal-3379148047-r39 { fill: #027d51;font-weight: bold }
+.terminal-3379148047-r40 { fill: #ff7ec8;font-weight: bold }
+.terminal-3379148047-r41 { fill: #dadadb }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter▁▁ New request ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ Send
-▎▊
-╭─ Collection ────▎Title ▊─────── Request ─╮
-│ GET echo ▎foo ▊oOptions│
-│ GET get random u▎▊━━━━━━━━━━━━━━━━━│
-│ POS echo post ▎File name optional▊╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder▎foo.posting.yaml▊rs.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/▎▊╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all ▎Description optional▊ Add header │
-│ GET get one ▎▌bar▊─────────────────╯
-│ POS create ▎▊────── Response ─╮
-│ DEL delete a▎Directory ▅▊│
-│▼ comments/▎jsonplaceholder/posts ▊━━━━━━━━━━━━━━━━━│
-│ GET get co▎▊│
-│ GET get co▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔│
-│ PUT edit a comm│││
-│▼ todos/│││
-│ GET get all ││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- f3 Pager f4 Editor ESC Cancel ^n Create
+
+
+
+
+Posting
+
+GET▼Enter▁▁ New request ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ Send
+▎▊
+╭─ Collection ────▎Title ▊─────── Request ─╮
+│ GET echo ▎foo ▊oOptions│
+│ GET get random u▎▊━━━━━━━━━━━━━━━━━│
+│ POS echo post ▎File name optional▊╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder▎foo .posting.yaml▊rs.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/▎▊╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all ▎Description optional▊ Add header │
+│ GET get one ▎▌bar▊─────────────────╯
+│ POS create ▎▊────── Response ─╮
+│ DEL delete a▎Directory ▅▊│
+│▼ comments/▎jsonplaceholder/posts ▊━━━━━━━━━━━━━━━━━│
+│ GET get co▎▊│
+│ GET get co▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔│
+│ PUT edit a comm│││
+│▼ todos/│││
+│ GET get all ││1:1read-onlyJSON▼Wrap ▐X▌│
+╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
+ f3 Pager f4 Editor ESC Cancel ^n Create
diff --git a/tests/__snapshots__/test_snapshots/TestNewRequest.test_new_request_added_to_tree_correctly_and_notification_shown.svg b/tests/__snapshots__/test_snapshots/TestNewRequest.test_new_request_added_to_tree_correctly_and_notification_shown.svg
index 4e21d0ca..57bb3369 100644
--- a/tests/__snapshots__/test_snapshots/TestNewRequest.test_new_request_added_to_tree_correctly_and_notification_shown.svg
+++ b/tests/__snapshots__/test_snapshots/TestNewRequest.test_new_request_added_to_tree_correctly_and_notification_shown.svg
@@ -19,162 +19,162 @@
font-weight: 700;
}
- .terminal-2484910599-matrix {
+ .terminal-723079811-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2484910599-title {
+ .terminal-723079811-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2484910599-r1 { fill: #e0e0e0 }
-.terminal-2484910599-r2 { fill: #c5c8c6 }
-.terminal-2484910599-r3 { fill: #ffcf56 }
-.terminal-2484910599-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-2484910599-r5 { fill: #dfeef9 }
-.terminal-2484910599-r6 { fill: #9dcbee }
-.terminal-2484910599-r7 { fill: #737373 }
-.terminal-2484910599-r8 { fill: #e1e1e1 }
-.terminal-2484910599-r9 { fill: #dde6ed }
-.terminal-2484910599-r10 { fill: #a0a0a0 }
-.terminal-2484910599-r11 { fill: #fea62b }
-.terminal-2484910599-r12 { fill: #e0e0e0;font-weight: bold }
-.terminal-2484910599-r13 { fill: #64451a }
-.terminal-2484910599-r14 { fill: #8d8d8d }
-.terminal-2484910599-r15 { fill: #6c6c6c }
-.terminal-2484910599-r16 { fill: #272727 }
-.terminal-2484910599-r17 { fill: #242424 }
-.terminal-2484910599-r18 { fill: #8d8d8d;font-weight: bold }
-.terminal-2484910599-r19 { fill: #008139 }
-.terminal-2484910599-r20 { fill: #794f14;font-weight: bold }
-.terminal-2484910599-r21 { fill: #211505;font-weight: bold }
-.terminal-2484910599-r22 { fill: #8c9092 }
-.terminal-2484910599-r23 { fill: #0d0d0d }
-.terminal-2484910599-r24 { fill: #313131;font-weight: bold }
-.terminal-2484910599-r25 { fill: #313131 }
-.terminal-2484910599-r26 { fill: #a2a2a2 }
-.terminal-2484910599-r27 { fill: #1c1c1c }
-.terminal-2484910599-r28 { fill: #b77923 }
-.terminal-2484910599-r29 { fill: #56c278 }
-.terminal-2484910599-r30 { fill: #40ae66;font-weight: bold }
-.terminal-2484910599-r31 { fill: #e0e3e4 }
-.terminal-2484910599-r32 { fill: #ffba41;font-weight: bold }
-.terminal-2484910599-r33 { fill: #dbdbdb }
+ .terminal-723079811-r1 { fill: #dfdfe1 }
+.terminal-723079811-r2 { fill: #c5c8c6 }
+.terminal-723079811-r3 { fill: #ff93dd }
+.terminal-723079811-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-723079811-r5 { fill: #15111e }
+.terminal-723079811-r6 { fill: #43365c }
+.terminal-723079811-r7 { fill: #737387 }
+.terminal-723079811-r8 { fill: #e1e1e6 }
+.terminal-723079811-r9 { fill: #efe3fb }
+.terminal-723079811-r10 { fill: #9f9fa5 }
+.terminal-723079811-r11 { fill: #ff69b4 }
+.terminal-723079811-r12 { fill: #dfdfe1;font-weight: bold }
+.terminal-723079811-r13 { fill: #632e53 }
+.terminal-723079811-r14 { fill: #8b8b93 }
+.terminal-723079811-r15 { fill: #6a6a74 }
+.terminal-723079811-r16 { fill: #252532 }
+.terminal-723079811-r17 { fill: #252441 }
+.terminal-723079811-r18 { fill: #8b8b93;font-weight: bold }
+.terminal-723079811-r19 { fill: #00b85f }
+.terminal-723079811-r20 { fill: #793155;font-weight: bold }
+.terminal-723079811-r21 { fill: #210d17;font-weight: bold }
+.terminal-723079811-r22 { fill: #918d9d }
+.terminal-723079811-r23 { fill: #0d0e2e }
+.terminal-723079811-r24 { fill: #2e2e3c;font-weight: bold }
+.terminal-723079811-r25 { fill: #2e2e3c }
+.terminal-723079811-r26 { fill: #a0a0a6 }
+.terminal-723079811-r27 { fill: #191928 }
+.terminal-723079811-r28 { fill: #b74e87 }
+.terminal-723079811-r29 { fill: #0cfa9f }
+.terminal-723079811-r30 { fill: #0ce48c;font-weight: bold }
+.terminal-723079811-r31 { fill: #e3e3e6 }
+.terminal-723079811-r32 { fill: #ff7ec8;font-weight: bold }
+.terminal-723079811-r33 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter a URL... Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│█ GET foo││NameValue Add header │
-│ GET get all│╰─────────────────────────────────────────────────╯
-│ GET get one▅│╭────────────────────────────────────── Response ─╮
-│ POS create││BodyHeadersCookiesTrace│
-│ DEL delete a post││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│▼ comments/│││
-│ GET get comment│││
-│ GET get comment││▌
-│───────────────────────││▌Request saved
-│bar││▌jsonplaceholder/posts/foo.posting.ya
-╰── sample-collections ─╯╰───────────▌ml
- ^j Send ^t Method ^s Save ^n New ▌
+
+
+
+
+Posting
+
+GET▼Enter a URL... Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│█ GET foo││NameValue Add header │
+│ GET get all│╰─────────────────────────────────────────────────╯
+│ GET get one▅│╭────────────────────────────────────── Response ─╮
+│ POS create││BodyHeadersCookiesTrace│
+│ DEL delete a post││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│▼ comments/│││
+│ GET get comment│││
+│ GET get comment││▌
+│───────────────────────││▌Request saved
+│bar││▌jsonplaceholder/posts/foo.posting.ya
+╰── sample-collections ─╯╰───────────▌ml
+ d Dupe ⌫ Delete ^j Send ^t Method▌
diff --git a/tests/__snapshots__/test_snapshots/TestSave.test_no_request_selected__dialog_is_prefilled_correctly.svg b/tests/__snapshots__/test_snapshots/TestSave.test_no_request_selected__dialog_is_prefilled_correctly.svg
index c3c38576..0d49f4bc 100644
--- a/tests/__snapshots__/test_snapshots/TestSave.test_no_request_selected__dialog_is_prefilled_correctly.svg
+++ b/tests/__snapshots__/test_snapshots/TestSave.test_no_request_selected__dialog_is_prefilled_correctly.svg
@@ -19,174 +19,173 @@
font-weight: 700;
}
- .terminal-3411227047-matrix {
+ .terminal-2332101151-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3411227047-title {
+ .terminal-2332101151-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3411227047-r1 { fill: #9c9c9c }
-.terminal-3411227047-r2 { fill: #c5c8c6 }
-.terminal-3411227047-r3 { fill: #dfdfdf }
-.terminal-3411227047-r4 { fill: #b2903c }
-.terminal-3411227047-r5 { fill: #9ca6ae;text-decoration: underline; }
-.terminal-3411227047-r6 { fill: #9ca6ae }
-.terminal-3411227047-r7 { fill: #6d8ea6 }
-.terminal-3411227047-r8 { fill: #505050 }
-.terminal-3411227047-r9 { fill: #313131 }
-.terminal-3411227047-r10 { fill: #e0e0e0;font-weight: bold }
-.terminal-3411227047-r11 { fill: #9d9d9d }
-.terminal-3411227047-r12 { fill: #9aa1a5 }
-.terminal-3411227047-r13 { fill: #707070 }
-.terminal-3411227047-r14 { fill: #121212 }
-.terminal-3411227047-r15 { fill: #463012 }
-.terminal-3411227047-r16 { fill: #e0e0e0 }
-.terminal-3411227047-r17 { fill: #626262 }
-.terminal-3411227047-r18 { fill: #3e3e3e }
-.terminal-3411227047-r19 { fill: #e3e3e3 }
-.terminal-3411227047-r20 { fill: #211505 }
-.terminal-3411227047-r21 { fill: #9c9c9c;font-weight: bold }
-.terminal-3411227047-r22 { fill: #4b4b4b }
-.terminal-3411227047-r23 { fill: #b1741e }
-.terminal-3411227047-r24 { fill: #1b1b1b }
-.terminal-3411227047-r25 { fill: #8d8d8d }
-.terminal-3411227047-r26 { fill: #626262;font-weight: bold }
-.terminal-3411227047-r27 { fill: #737373 }
-.terminal-3411227047-r28 { fill: #e1e1e1 }
-.terminal-3411227047-r29 { fill: #a5a5a5 }
-.terminal-3411227047-r30 { fill: #9e9e9e }
-.terminal-3411227047-r31 { fill: #3b280f }
-.terminal-3411227047-r32 { fill: #005a27 }
-.terminal-3411227047-r33 { fill: #6a6b6d;font-weight: bold }
-.terminal-3411227047-r34 { fill: #9e9e9f;font-weight: bold }
-.terminal-3411227047-r35 { fill: #e2e2e2 }
-.terminal-3411227047-r36 { fill: #0d0d0d }
-.terminal-3411227047-r37 { fill: #717171 }
-.terminal-3411227047-r38 { fill: #131313 }
-.terminal-3411227047-r39 { fill: #5f5f5f }
-.terminal-3411227047-r40 { fill: #727272 }
-.terminal-3411227047-r41 { fill: #545454 }
-.terminal-3411227047-r42 { fill: #171717 }
-.terminal-3411227047-r43 { fill: #2a613a;font-weight: bold }
-.terminal-3411227047-r44 { fill: #ffba41;font-weight: bold }
-.terminal-3411227047-r45 { fill: #dadada }
+ .terminal-2332101151-r1 { fill: #9c9c9d }
+.terminal-2332101151-r2 { fill: #c5c8c6 }
+.terminal-2332101151-r3 { fill: #dfdfe0 }
+.terminal-2332101151-r4 { fill: #b2669a }
+.terminal-2332101151-r5 { fill: #0e0b15;text-decoration: underline; }
+.terminal-2332101151-r6 { fill: #0e0b15 }
+.terminal-2332101151-r7 { fill: #2e2540 }
+.terminal-2332101151-r8 { fill: #50505e }
+.terminal-2332101151-r9 { fill: #2e2e3f }
+.terminal-2332101151-r10 { fill: #dfdfe1;font-weight: bold }
+.terminal-2332101151-r11 { fill: #9d9da1 }
+.terminal-2332101151-r12 { fill: #a79eaf }
+.terminal-2332101151-r13 { fill: #6f6f73 }
+.terminal-2332101151-r14 { fill: #0f0f1f }
+.terminal-2332101151-r15 { fill: #45203a }
+.terminal-2332101151-r16 { fill: #dfdfe1 }
+.terminal-2332101151-r17 { fill: #616166 }
+.terminal-2332101151-r18 { fill: #403e62 }
+.terminal-2332101151-r19 { fill: #e3e3e8 }
+.terminal-2332101151-r20 { fill: #210d17 }
+.terminal-2332101151-r21 { fill: #9c9c9d;font-weight: bold }
+.terminal-2332101151-r22 { fill: #4a4a51 }
+.terminal-2332101151-r23 { fill: #b2497e }
+.terminal-2332101151-r24 { fill: #191923 }
+.terminal-2332101151-r25 { fill: #8b8b93 }
+.terminal-2332101151-r26 { fill: #616166;font-weight: bold }
+.terminal-2332101151-r27 { fill: #e1e1e6 }
+.terminal-2332101151-r28 { fill: #a5a5b2 }
+.terminal-2332101151-r29 { fill: #3b1c3c }
+.terminal-2332101151-r30 { fill: #008042 }
+.terminal-2332101151-r31 { fill: #9e9ea1 }
+.terminal-2332101151-r32 { fill: #6b6b77;font-weight: bold }
+.terminal-2332101151-r33 { fill: #9e9ea2;font-weight: bold }
+.terminal-2332101151-r34 { fill: #e2e2e6 }
+.terminal-2332101151-r35 { fill: #0d0e2e }
+.terminal-2332101151-r36 { fill: #707074 }
+.terminal-2332101151-r37 { fill: #11111c }
+.terminal-2332101151-r38 { fill: #5e5e64 }
+.terminal-2332101151-r39 { fill: #727276 }
+.terminal-2332101151-r40 { fill: #535359 }
+.terminal-2332101151-r41 { fill: #15151f }
+.terminal-2332101151-r42 { fill: #027d51;font-weight: bold }
+.terminal-2332101151-r43 { fill: #ff7ec8;font-weight: bold }
+.terminal-2332101151-r44 { fill: #dadadb }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter▁▁ New request ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ Send
-▎▊
-╭─ Collection ────▎Title ▊─────── Request ─╮
-│ GET echo ▎▌Foo: Bar▊oOptions│
-│ GET get random u▎▊━╺━━━━━━━━━━━━━━━│
-│ POS echo post ▎File name optional▊│
-│▼ jsonplaceholder▎foo-bar.posting.yaml▊▃│
-│▼ posts/▎▊│
-│ GET get all▎Description optional▊│
-│ GET get one ▎baz ▊─────────────────╯
-│ POS create ▎▊────── Response ─╮
-│ DEL delete a▎Directory ▅▊│
-│▼ comments/▎jsonplaceholder/posts ▊━━━━━━━━━━━━━━━━━│
-│ GET get co▎▊│
-│ GET get co▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔│
-│ PUT edit a comm│││
-│───────────────────────│││
-│Retrieve all posts││1:1read-onlyJSON▼Wrap ▐X▌│
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- ESC Cancel ^n Create
+
+
+
+
+Posting
+
+GET▼Enter▁▁ New request ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ Send
+▎▊
+╭─ Collection ────▎Title ▊─────── Request ─╮
+│ GET echo ▎▌Foo: Bar▊oOptions│
+│ GET get random u▎▊━╺━━━━━━━━━━━━━━━│
+│ POS echo post ▎File name optional▊│
+│▼ jsonplaceholder▎foo-bar .posting.yaml▊▆│
+│▼ posts/▎▊│
+│ GET get all▎Description optional▊│
+│ GET get one ▎baz ▊─────────────────╯
+│ POS create ▎▊────── Response ─╮
+│ DEL delete a▎Directory ▅▊│
+│▼ comments/▎jsonplaceholder/posts ▊━━━━━━━━━━━━━━━━━│
+│ GET get co▎▊│
+│ GET get co▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔│
+│ PUT edit a comm│││
+│───────────────────────│││
+│Retrieve all posts││1:1read-onlyJSON▼Wrap ▐X▌│
+╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
+ ESC Cancel ^n Create
diff --git a/tests/__snapshots__/test_snapshots/TestSendRequest.test_send_request.svg b/tests/__snapshots__/test_snapshots/TestSendRequest.test_send_request.svg
index ad079bcb..492636f5 100644
--- a/tests/__snapshots__/test_snapshots/TestSendRequest.test_send_request.svg
+++ b/tests/__snapshots__/test_snapshots/TestSendRequest.test_send_request.svg
@@ -19,213 +19,213 @@
font-weight: 700;
}
- .terminal-4170968542-matrix {
+ .terminal-2695289198-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4170968542-title {
+ .terminal-2695289198-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4170968542-r1 { fill: #e0e0e0 }
-.terminal-4170968542-r2 { fill: #c5c8c6 }
-.terminal-4170968542-r3 { fill: #ffcf56 }
-.terminal-4170968542-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-4170968542-r5 { fill: #dfeef9 }
-.terminal-4170968542-r6 { fill: #9dcbee }
-.terminal-4170968542-r7 { fill: #ffa62b }
-.terminal-4170968542-r8 { fill: #939393 }
-.terminal-4170968542-r9 { fill: #0178d4 }
-.terminal-4170968542-r10 { fill: #e1e1e1 }
-.terminal-4170968542-r11 { fill: #4ebf71 }
-.terminal-4170968542-r12 { fill: #dde6ed }
-.terminal-4170968542-r13 { fill: #a0a0a0 }
-.terminal-4170968542-r14 { fill: #fea62b }
-.terminal-4170968542-r15 { fill: #e0e0e0;font-weight: bold }
-.terminal-4170968542-r16 { fill: #64451a }
-.terminal-4170968542-r17 { fill: #8d8d8d }
-.terminal-4170968542-r18 { fill: #58d1eb;font-weight: bold }
-.terminal-4170968542-r19 { fill: #6c6c6c }
-.terminal-4170968542-r20 { fill: #272727 }
-.terminal-4170968542-r21 { fill: #121212 }
-.terminal-4170968542-r22 { fill: #dee5eb }
-.terminal-4170968542-r23 { fill: #e0e0e1 }
-.terminal-4170968542-r24 { fill: #dfe1e2 }
-.terminal-4170968542-r25 { fill: #8d8d8d;font-weight: bold }
-.terminal-4170968542-r26 { fill: #dee4e8 }
-.terminal-4170968542-r27 { fill: #008139 }
-.terminal-4170968542-r28 { fill: #794f14;font-weight: bold }
-.terminal-4170968542-r29 { fill: #211505;font-weight: bold }
-.terminal-4170968542-r30 { fill: #737373 }
-.terminal-4170968542-r31 { fill: #8c9092 }
-.terminal-4170968542-r32 { fill: #0a180e }
-.terminal-4170968542-r33 { fill: #a3a3a3;font-weight: bold }
-.terminal-4170968542-r34 { fill: #e8e8e8 }
-.terminal-4170968542-r35 { fill: #707070 }
-.terminal-4170968542-r36 { fill: #569cd6;font-weight: bold }
-.terminal-4170968542-r37 { fill: #b5cea8 }
-.terminal-4170968542-r38 { fill: #ce9178 }
-.terminal-4170968542-r39 { fill: #888888 }
-.terminal-4170968542-r40 { fill: #a3a3a3 }
-.terminal-4170968542-r41 { fill: #323232 }
-.terminal-4170968542-r42 { fill: #4ebf71;font-weight: bold }
-.terminal-4170968542-r43 { fill: #ffba41;font-weight: bold }
-.terminal-4170968542-r44 { fill: #dbdbdb }
+ .terminal-2695289198-r1 { fill: #dfdfe1 }
+.terminal-2695289198-r2 { fill: #c5c8c6 }
+.terminal-2695289198-r3 { fill: #ff93dd }
+.terminal-2695289198-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-2695289198-r5 { fill: #15111e }
+.terminal-2695289198-r6 { fill: #43365c }
+.terminal-2695289198-r7 { fill: #ff69b4 }
+.terminal-2695289198-r8 { fill: #9393a3 }
+.terminal-2695289198-r9 { fill: #a684e8 }
+.terminal-2695289198-r10 { fill: #e1e1e6 }
+.terminal-2695289198-r11 { fill: #00fa9a }
+.terminal-2695289198-r12 { fill: #efe3fb }
+.terminal-2695289198-r13 { fill: #9f9fa5 }
+.terminal-2695289198-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-2695289198-r15 { fill: #632e53 }
+.terminal-2695289198-r16 { fill: #8b8b93 }
+.terminal-2695289198-r17 { fill: #58d1eb;font-weight: bold }
+.terminal-2695289198-r18 { fill: #6a6a74 }
+.terminal-2695289198-r19 { fill: #252532 }
+.terminal-2695289198-r20 { fill: #0f0f1f }
+.terminal-2695289198-r21 { fill: #ede2f7 }
+.terminal-2695289198-r22 { fill: #e1e0e4 }
+.terminal-2695289198-r23 { fill: #e2e0e5 }
+.terminal-2695289198-r24 { fill: #8b8b93;font-weight: bold }
+.terminal-2695289198-r25 { fill: #e9e1f1 }
+.terminal-2695289198-r26 { fill: #00b85f }
+.terminal-2695289198-r27 { fill: #793155;font-weight: bold }
+.terminal-2695289198-r28 { fill: #210d17;font-weight: bold }
+.terminal-2695289198-r29 { fill: #737387 }
+.terminal-2695289198-r30 { fill: #918d9d }
+.terminal-2695289198-r31 { fill: #002014 }
+.terminal-2695289198-r32 { fill: #a2a2a8;font-weight: bold }
+.terminal-2695289198-r33 { fill: #e8e8e9 }
+.terminal-2695289198-r34 { fill: #e0e0e2 }
+.terminal-2695289198-r35 { fill: #6f6f78 }
+.terminal-2695289198-r36 { fill: #f92672;font-weight: bold }
+.terminal-2695289198-r37 { fill: #ae81ff }
+.terminal-2695289198-r38 { fill: #e6db74 }
+.terminal-2695289198-r39 { fill: #87878f }
+.terminal-2695289198-r40 { fill: #a2a2a8 }
+.terminal-2695289198-r41 { fill: #30303b }
+.terminal-2695289198-r42 { fill: #00fa9a;font-weight: bold }
+.terminal-2695289198-r43 { fill: #ff7ec8;font-weight: bold }
+.terminal-2695289198-r44 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼https://jsonplaceholder.typicode.com/posts ■■■■■■■ Send
-
-╭─ Collection ────────────╮╭───────────────────────────────────────────── Request ─╮
-│ GET echo││Headers•BodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││▐ Content-Type application/json │
-│▼ jsonplaceholder/││▐ Referer https://example.com/ │
-│▼ posts/││▐ Accept-Encoding gzip │
-│█ GET get all││▐ Cache-Control no-cache │
-│ GET get one││▐│
-│ POS create│││
-│ DEL delete a post│││
-│▼ comments/│││
-│ GET get comments││NameValue Add header │
-│ GET get comments (│╰───────────────────────────────────────────────────────╯
-│ PUT edit a comment│╭─────────────────────────────────── Response 200 OK ─╮
-│▼ todos/││BodyHeadersCookiesTrace│
-│ GET get all││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get one││ 1 [│
-│▼ users/││ 2 { │
-│ GET get a user││ 3 "userId": 1, │
-│ GET get all users││ 4 "id": 1, │
-│ POS create a user││ 5 "title": "sunt aut facere repellat │
-│ PUT update a user││provident occaecati excepturi optio │
-│ DEL delete a user││reprehenderit", │
-│││ 6 "body": "quia et suscipit\nsuscipit │
-│─────────────────────────││recusandae consequuntur expedita et │
-│Retrieve all posts││1:1read-onlyJSON▼Wrap ▐X▌│
-╰──── sample-collections ─╯╰───────────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼https://jsonplaceholder.typicode.com/posts ■■■■■■■ Send
+
+╭─ Collection ────────────╮╭───────────────────────────────────────────── Request ─╮
+│ GET echo││Headers•BodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││▐ Content-Type application/json │
+│▼ jsonplaceholder/││▐ Referer https://example.com/ │
+│▼ posts/││▐ Accept-Encoding gzip │
+│█ GET get all││▐ Cache-Control no-cache │
+│ GET get one││▐│
+│ POS create│││
+│ DEL delete a post│││
+│▼ comments/│││
+│ GET get comments││NameValue Add header │
+│ GET get comments (│╰───────────────────────────────────────────────────────╯
+│ PUT edit a comment│╭─────────────────────────────────── Response 200 OK ─╮
+│▼ todos/││BodyHeadersCookiesTrace│
+│ GET get all││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get one││ 1 [│
+│▼ users/││ 2 { │
+│ GET get a user││ 3 "userId": 1, │
+│ GET get all users││ 4 "id": 1, │
+│ POS create a user││ 5 "title": "sunt aut facere repellat │
+│ PUT update a user││provident occaecati excepturi optio │
+│ DEL delete a user││reprehenderit", │
+│││ 6 "body": "quia et suscipit\nsuscipit │
+│─────────────────────────││recusandae consequuntur expedita et │
+│Retrieve all posts││1:1read-onlyJSON▼Wrap ▐X▌│
+╰──── sample-collections ─╯╰───────────────────────────────────────────────────────╯
+ d Dupe ⌫ Delete ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Qui
diff --git a/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_appears_on_typing.svg b/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_appears_on_typing.svg
index c10e7566..304c98f8 100644
--- a/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_appears_on_typing.svg
+++ b/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_appears_on_typing.svg
@@ -19,170 +19,170 @@
font-weight: 700;
}
- .terminal-3021069198-matrix {
+ .terminal-2902371197-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3021069198-title {
+ .terminal-2902371197-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3021069198-r1 { fill: #e0e0e0 }
-.terminal-3021069198-r2 { fill: #c5c8c6 }
-.terminal-3021069198-r3 { fill: #ffcf56 }
-.terminal-3021069198-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-3021069198-r5 { fill: #dfeef9 }
-.terminal-3021069198-r6 { fill: #9dcbee }
-.terminal-3021069198-r7 { fill: #3e3e3e }
-.terminal-3021069198-r8 { fill: #e3e3e3 }
-.terminal-3021069198-r9 { fill: #211505 }
-.terminal-3021069198-r10 { fill: #dde6ed }
-.terminal-3021069198-r11 { fill: #a0a0a0 }
-.terminal-3021069198-r12 { fill: #fea62b }
-.terminal-3021069198-r13 { fill: #e5ebf2;font-weight: bold }
-.terminal-3021069198-r14 { fill: #e5e5e5;font-weight: bold }
-.terminal-3021069198-r15 { fill: #64451a }
-.terminal-3021069198-r16 { fill: #e5ebf2 }
-.terminal-3021069198-r17 { fill: #a5a5a5 }
-.terminal-3021069198-r18 { fill: #989a9c;font-weight: bold }
-.terminal-3021069198-r19 { fill: #e3e3e4;font-weight: bold }
-.terminal-3021069198-r20 { fill: #6c6c6c }
-.terminal-3021069198-r21 { fill: #8d8d8d }
-.terminal-3021069198-r22 { fill: #272727 }
-.terminal-3021069198-r23 { fill: #242424 }
-.terminal-3021069198-r24 { fill: #8d8d8d;font-weight: bold }
-.terminal-3021069198-r25 { fill: #0d0d0d }
-.terminal-3021069198-r26 { fill: #008139 }
-.terminal-3021069198-r27 { fill: #737373 }
-.terminal-3021069198-r28 { fill: #e1e1e1 }
-.terminal-3021069198-r29 { fill: #8c9092 }
-.terminal-3021069198-r30 { fill: #313131;font-weight: bold }
-.terminal-3021069198-r31 { fill: #313131 }
-.terminal-3021069198-r32 { fill: #a2a2a2 }
-.terminal-3021069198-r33 { fill: #1c1c1c }
-.terminal-3021069198-r34 { fill: #b77923 }
-.terminal-3021069198-r35 { fill: #888888 }
-.terminal-3021069198-r36 { fill: #a4a4a4 }
-.terminal-3021069198-r37 { fill: #787878 }
-.terminal-3021069198-r38 { fill: #212121 }
-.terminal-3021069198-r39 { fill: #3c8b54;font-weight: bold }
-.terminal-3021069198-r40 { fill: #ffba41;font-weight: bold }
-.terminal-3021069198-r41 { fill: #dbdbdb }
+ .terminal-2902371197-r1 { fill: #dfdfe1 }
+.terminal-2902371197-r2 { fill: #c5c8c6 }
+.terminal-2902371197-r3 { fill: #ff93dd }
+.terminal-2902371197-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-2902371197-r5 { fill: #15111e }
+.terminal-2902371197-r6 { fill: #43365c }
+.terminal-2902371197-r7 { fill: #403e62 }
+.terminal-2902371197-r8 { fill: #e3e3e8 }
+.terminal-2902371197-r9 { fill: #210d17 }
+.terminal-2902371197-r10 { fill: #efe3fb }
+.terminal-2902371197-r11 { fill: #9f9fa5 }
+.terminal-2902371197-r12 { fill: #ff69b4 }
+.terminal-2902371197-r13 { fill: #170b21;font-weight: bold }
+.terminal-2902371197-r14 { fill: #e5e5ea;font-weight: bold }
+.terminal-2902371197-r15 { fill: #632e53 }
+.terminal-2902371197-r16 { fill: #170b21 }
+.terminal-2902371197-r17 { fill: #a5a5b2 }
+.terminal-2902371197-r18 { fill: #9b9aab;font-weight: bold }
+.terminal-2902371197-r19 { fill: #e3e3e8;font-weight: bold }
+.terminal-2902371197-r20 { fill: #6a6a74 }
+.terminal-2902371197-r21 { fill: #8b8b93 }
+.terminal-2902371197-r22 { fill: #252532 }
+.terminal-2902371197-r23 { fill: #252441 }
+.terminal-2902371197-r24 { fill: #8b8b93;font-weight: bold }
+.terminal-2902371197-r25 { fill: #0d0e2e }
+.terminal-2902371197-r26 { fill: #00b85f }
+.terminal-2902371197-r27 { fill: #737387 }
+.terminal-2902371197-r28 { fill: #e1e1e6 }
+.terminal-2902371197-r29 { fill: #918d9d }
+.terminal-2902371197-r30 { fill: #2e2e3c;font-weight: bold }
+.terminal-2902371197-r31 { fill: #2e2e3c }
+.terminal-2902371197-r32 { fill: #a0a0a6 }
+.terminal-2902371197-r33 { fill: #191928 }
+.terminal-2902371197-r34 { fill: #b74e87 }
+.terminal-2902371197-r35 { fill: #87878f }
+.terminal-2902371197-r36 { fill: #a3a3a9 }
+.terminal-2902371197-r37 { fill: #777780 }
+.terminal-2902371197-r38 { fill: #1f1f2d }
+.terminal-2902371197-r39 { fill: #04b375;font-weight: bold }
+.terminal-2902371197-r40 { fill: #ff7ec8;font-weight: bold }
+.terminal-2902371197-r41 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌http Send
-▎https://api.randomuser.me
-╭─ Collection ────▎https://jsonplaceholder.typicode.com────────── Request ─╮
-│ GET echo▎https://postman-echo.com InfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││NameValue Add header │
-│ GET get one│╰─────────────────────────────────────────────────╯
-│ POS create│╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼▌http Send
+▎https://api.randomuser.me
+╭─ Collection ────▎https://jsonplaceholder.typicode.com────────── Request ─╮
+│ GET echo▎https://postman-echo.com InfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││NameValue Add header │
+│ GET get one│╰─────────────────────────────────────────────────╯
+│ POS create│╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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/TestUrlBar.test_dropdown_completion_selected_via_enter_key.svg b/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_completion_selected_via_enter_key.svg
index 9a4b22a0..395809db 100644
--- a/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_completion_selected_via_enter_key.svg
+++ b/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_completion_selected_via_enter_key.svg
@@ -19,170 +19,169 @@
font-weight: 700;
}
- .terminal-77061570-matrix {
+ .terminal-2543498502-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-77061570-title {
+ .terminal-2543498502-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-77061570-r1 { fill: #e0e0e0 }
-.terminal-77061570-r2 { fill: #c5c8c6 }
-.terminal-77061570-r3 { fill: #ffcf56 }
-.terminal-77061570-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-77061570-r5 { fill: #dfeef9 }
-.terminal-77061570-r6 { fill: #9dcbee }
-.terminal-77061570-r7 { fill: #3e3e3e }
-.terminal-77061570-r8 { fill: #ffa62b }
-.terminal-77061570-r9 { fill: #9a9a9a }
-.terminal-77061570-r10 { fill: #0178d4 }
-.terminal-77061570-r11 { fill: #211505 }
-.terminal-77061570-r12 { fill: #e3e3e3 }
-.terminal-77061570-r13 { fill: #dde6ed }
-.terminal-77061570-r14 { fill: #a0a0a0 }
-.terminal-77061570-r15 { fill: #64451a }
-.terminal-77061570-r16 { fill: #989a9c;font-weight: bold }
-.terminal-77061570-r17 { fill: #e3e3e4;font-weight: bold }
-.terminal-77061570-r18 { fill: #e0e0e0;font-weight: bold }
-.terminal-77061570-r19 { fill: #6c6c6c }
-.terminal-77061570-r20 { fill: #8d8d8d }
-.terminal-77061570-r21 { fill: #272727 }
-.terminal-77061570-r22 { fill: #fea62b }
-.terminal-77061570-r23 { fill: #242424 }
-.terminal-77061570-r24 { fill: #8d8d8d;font-weight: bold }
-.terminal-77061570-r25 { fill: #0d0d0d }
-.terminal-77061570-r26 { fill: #008139 }
-.terminal-77061570-r27 { fill: #737373 }
-.terminal-77061570-r28 { fill: #e1e1e1 }
-.terminal-77061570-r29 { fill: #8c9092 }
-.terminal-77061570-r30 { fill: #313131;font-weight: bold }
-.terminal-77061570-r31 { fill: #313131 }
-.terminal-77061570-r32 { fill: #a2a2a2 }
-.terminal-77061570-r33 { fill: #1c1c1c }
-.terminal-77061570-r34 { fill: #b77923 }
-.terminal-77061570-r35 { fill: #888888 }
-.terminal-77061570-r36 { fill: #a4a4a4 }
-.terminal-77061570-r37 { fill: #787878 }
-.terminal-77061570-r38 { fill: #212121 }
-.terminal-77061570-r39 { fill: #3c8b54;font-weight: bold }
-.terminal-77061570-r40 { fill: #ffba41;font-weight: bold }
-.terminal-77061570-r41 { fill: #dbdbdb }
+ .terminal-2543498502-r1 { fill: #dfdfe1 }
+.terminal-2543498502-r2 { fill: #c5c8c6 }
+.terminal-2543498502-r3 { fill: #ff93dd }
+.terminal-2543498502-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-2543498502-r5 { fill: #15111e }
+.terminal-2543498502-r6 { fill: #43365c }
+.terminal-2543498502-r7 { fill: #403e62 }
+.terminal-2543498502-r8 { fill: #ff69b4 }
+.terminal-2543498502-r9 { fill: #9b9aab }
+.terminal-2543498502-r10 { fill: #a684e8 }
+.terminal-2543498502-r11 { fill: #210d17 }
+.terminal-2543498502-r12 { fill: #e3e3e8 }
+.terminal-2543498502-r13 { fill: #efe3fb }
+.terminal-2543498502-r14 { fill: #9f9fa5 }
+.terminal-2543498502-r15 { fill: #632e53 }
+.terminal-2543498502-r16 { fill: #9b9aab;font-weight: bold }
+.terminal-2543498502-r17 { fill: #e3e3e8;font-weight: bold }
+.terminal-2543498502-r18 { fill: #dfdfe1;font-weight: bold }
+.terminal-2543498502-r19 { fill: #6a6a74 }
+.terminal-2543498502-r20 { fill: #8b8b93 }
+.terminal-2543498502-r21 { fill: #252532 }
+.terminal-2543498502-r22 { fill: #252441 }
+.terminal-2543498502-r23 { fill: #8b8b93;font-weight: bold }
+.terminal-2543498502-r24 { fill: #0d0e2e }
+.terminal-2543498502-r25 { fill: #00b85f }
+.terminal-2543498502-r26 { fill: #737387 }
+.terminal-2543498502-r27 { fill: #e1e1e6 }
+.terminal-2543498502-r28 { fill: #918d9d }
+.terminal-2543498502-r29 { fill: #2e2e3c;font-weight: bold }
+.terminal-2543498502-r30 { fill: #2e2e3c }
+.terminal-2543498502-r31 { fill: #a0a0a6 }
+.terminal-2543498502-r32 { fill: #191928 }
+.terminal-2543498502-r33 { fill: #b74e87 }
+.terminal-2543498502-r34 { fill: #87878f }
+.terminal-2543498502-r35 { fill: #a3a3a9 }
+.terminal-2543498502-r36 { fill: #777780 }
+.terminal-2543498502-r37 { fill: #1f1f2d }
+.terminal-2543498502-r38 { fill: #04b375;font-weight: bold }
+.terminal-2543498502-r39 { fill: #ff7ec8;font-weight: bold }
+.terminal-2543498502-r40 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌https://jsonplaceholder.typicode.com Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││NameValue Add header │
-│ GET get one│╰─────────────────────────────────────────────────╯
-│ POS create│╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼▌https://jsonplaceholder.typicode.com Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││NameValue Add header │
+│ GET get one│╰─────────────────────────────────────────────────╯
+│ POS create│╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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/TestUrlBar.test_dropdown_completion_selected_via_tab_key.svg b/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_completion_selected_via_tab_key.svg
index 9a4b22a0..395809db 100644
--- a/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_completion_selected_via_tab_key.svg
+++ b/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_completion_selected_via_tab_key.svg
@@ -19,170 +19,169 @@
font-weight: 700;
}
- .terminal-77061570-matrix {
+ .terminal-2543498502-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-77061570-title {
+ .terminal-2543498502-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-77061570-r1 { fill: #e0e0e0 }
-.terminal-77061570-r2 { fill: #c5c8c6 }
-.terminal-77061570-r3 { fill: #ffcf56 }
-.terminal-77061570-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-77061570-r5 { fill: #dfeef9 }
-.terminal-77061570-r6 { fill: #9dcbee }
-.terminal-77061570-r7 { fill: #3e3e3e }
-.terminal-77061570-r8 { fill: #ffa62b }
-.terminal-77061570-r9 { fill: #9a9a9a }
-.terminal-77061570-r10 { fill: #0178d4 }
-.terminal-77061570-r11 { fill: #211505 }
-.terminal-77061570-r12 { fill: #e3e3e3 }
-.terminal-77061570-r13 { fill: #dde6ed }
-.terminal-77061570-r14 { fill: #a0a0a0 }
-.terminal-77061570-r15 { fill: #64451a }
-.terminal-77061570-r16 { fill: #989a9c;font-weight: bold }
-.terminal-77061570-r17 { fill: #e3e3e4;font-weight: bold }
-.terminal-77061570-r18 { fill: #e0e0e0;font-weight: bold }
-.terminal-77061570-r19 { fill: #6c6c6c }
-.terminal-77061570-r20 { fill: #8d8d8d }
-.terminal-77061570-r21 { fill: #272727 }
-.terminal-77061570-r22 { fill: #fea62b }
-.terminal-77061570-r23 { fill: #242424 }
-.terminal-77061570-r24 { fill: #8d8d8d;font-weight: bold }
-.terminal-77061570-r25 { fill: #0d0d0d }
-.terminal-77061570-r26 { fill: #008139 }
-.terminal-77061570-r27 { fill: #737373 }
-.terminal-77061570-r28 { fill: #e1e1e1 }
-.terminal-77061570-r29 { fill: #8c9092 }
-.terminal-77061570-r30 { fill: #313131;font-weight: bold }
-.terminal-77061570-r31 { fill: #313131 }
-.terminal-77061570-r32 { fill: #a2a2a2 }
-.terminal-77061570-r33 { fill: #1c1c1c }
-.terminal-77061570-r34 { fill: #b77923 }
-.terminal-77061570-r35 { fill: #888888 }
-.terminal-77061570-r36 { fill: #a4a4a4 }
-.terminal-77061570-r37 { fill: #787878 }
-.terminal-77061570-r38 { fill: #212121 }
-.terminal-77061570-r39 { fill: #3c8b54;font-weight: bold }
-.terminal-77061570-r40 { fill: #ffba41;font-weight: bold }
-.terminal-77061570-r41 { fill: #dbdbdb }
+ .terminal-2543498502-r1 { fill: #dfdfe1 }
+.terminal-2543498502-r2 { fill: #c5c8c6 }
+.terminal-2543498502-r3 { fill: #ff93dd }
+.terminal-2543498502-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-2543498502-r5 { fill: #15111e }
+.terminal-2543498502-r6 { fill: #43365c }
+.terminal-2543498502-r7 { fill: #403e62 }
+.terminal-2543498502-r8 { fill: #ff69b4 }
+.terminal-2543498502-r9 { fill: #9b9aab }
+.terminal-2543498502-r10 { fill: #a684e8 }
+.terminal-2543498502-r11 { fill: #210d17 }
+.terminal-2543498502-r12 { fill: #e3e3e8 }
+.terminal-2543498502-r13 { fill: #efe3fb }
+.terminal-2543498502-r14 { fill: #9f9fa5 }
+.terminal-2543498502-r15 { fill: #632e53 }
+.terminal-2543498502-r16 { fill: #9b9aab;font-weight: bold }
+.terminal-2543498502-r17 { fill: #e3e3e8;font-weight: bold }
+.terminal-2543498502-r18 { fill: #dfdfe1;font-weight: bold }
+.terminal-2543498502-r19 { fill: #6a6a74 }
+.terminal-2543498502-r20 { fill: #8b8b93 }
+.terminal-2543498502-r21 { fill: #252532 }
+.terminal-2543498502-r22 { fill: #252441 }
+.terminal-2543498502-r23 { fill: #8b8b93;font-weight: bold }
+.terminal-2543498502-r24 { fill: #0d0e2e }
+.terminal-2543498502-r25 { fill: #00b85f }
+.terminal-2543498502-r26 { fill: #737387 }
+.terminal-2543498502-r27 { fill: #e1e1e6 }
+.terminal-2543498502-r28 { fill: #918d9d }
+.terminal-2543498502-r29 { fill: #2e2e3c;font-weight: bold }
+.terminal-2543498502-r30 { fill: #2e2e3c }
+.terminal-2543498502-r31 { fill: #a0a0a6 }
+.terminal-2543498502-r32 { fill: #191928 }
+.terminal-2543498502-r33 { fill: #b74e87 }
+.terminal-2543498502-r34 { fill: #87878f }
+.terminal-2543498502-r35 { fill: #a3a3a9 }
+.terminal-2543498502-r36 { fill: #777780 }
+.terminal-2543498502-r37 { fill: #1f1f2d }
+.terminal-2543498502-r38 { fill: #04b375;font-weight: bold }
+.terminal-2543498502-r39 { fill: #ff7ec8;font-weight: bold }
+.terminal-2543498502-r40 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌https://jsonplaceholder.typicode.com Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││NameValue Add header │
-│ GET get one│╰─────────────────────────────────────────────────╯
-│ POS create│╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼▌https://jsonplaceholder.typicode.com Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││NameValue Add header │
+│ GET get one│╰─────────────────────────────────────────────────╯
+│ POS create│╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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/TestUrlBar.test_dropdown_filters_on_typing.svg b/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_filters_on_typing.svg
index e5e08c00..47f2f16a 100644
--- a/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_filters_on_typing.svg
+++ b/tests/__snapshots__/test_snapshots/TestUrlBar.test_dropdown_filters_on_typing.svg
@@ -19,169 +19,169 @@
font-weight: 700;
}
- .terminal-2083702954-matrix {
+ .terminal-453222327-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2083702954-title {
+ .terminal-453222327-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2083702954-r1 { fill: #e0e0e0 }
-.terminal-2083702954-r2 { fill: #c5c8c6 }
-.terminal-2083702954-r3 { fill: #ffcf56 }
-.terminal-2083702954-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-2083702954-r5 { fill: #dfeef9 }
-.terminal-2083702954-r6 { fill: #9dcbee }
-.terminal-2083702954-r7 { fill: #3e3e3e }
-.terminal-2083702954-r8 { fill: #e3e3e3 }
-.terminal-2083702954-r9 { fill: #211505 }
-.terminal-2083702954-r10 { fill: #dde6ed }
-.terminal-2083702954-r11 { fill: #a0a0a0 }
-.terminal-2083702954-r12 { fill: #fea62b }
-.terminal-2083702954-r13 { fill: #e5e5e5;font-weight: bold }
-.terminal-2083702954-r14 { fill: #e5ebf2;font-weight: bold }
-.terminal-2083702954-r15 { fill: #64451a }
-.terminal-2083702954-r16 { fill: #989a9c;font-weight: bold }
-.terminal-2083702954-r17 { fill: #e3e3e4;font-weight: bold }
-.terminal-2083702954-r18 { fill: #e0e0e0;font-weight: bold }
-.terminal-2083702954-r19 { fill: #6c6c6c }
-.terminal-2083702954-r20 { fill: #8d8d8d }
-.terminal-2083702954-r21 { fill: #272727 }
-.terminal-2083702954-r22 { fill: #242424 }
-.terminal-2083702954-r23 { fill: #8d8d8d;font-weight: bold }
-.terminal-2083702954-r24 { fill: #0d0d0d }
-.terminal-2083702954-r25 { fill: #008139 }
-.terminal-2083702954-r26 { fill: #737373 }
-.terminal-2083702954-r27 { fill: #e1e1e1 }
-.terminal-2083702954-r28 { fill: #8c9092 }
-.terminal-2083702954-r29 { fill: #313131;font-weight: bold }
-.terminal-2083702954-r30 { fill: #313131 }
-.terminal-2083702954-r31 { fill: #a2a2a2 }
-.terminal-2083702954-r32 { fill: #1c1c1c }
-.terminal-2083702954-r33 { fill: #b77923 }
-.terminal-2083702954-r34 { fill: #888888 }
-.terminal-2083702954-r35 { fill: #a4a4a4 }
-.terminal-2083702954-r36 { fill: #787878 }
-.terminal-2083702954-r37 { fill: #212121 }
-.terminal-2083702954-r38 { fill: #3c8b54;font-weight: bold }
-.terminal-2083702954-r39 { fill: #ffba41;font-weight: bold }
-.terminal-2083702954-r40 { fill: #dbdbdb }
+ .terminal-453222327-r1 { fill: #dfdfe1 }
+.terminal-453222327-r2 { fill: #c5c8c6 }
+.terminal-453222327-r3 { fill: #ff93dd }
+.terminal-453222327-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-453222327-r5 { fill: #15111e }
+.terminal-453222327-r6 { fill: #43365c }
+.terminal-453222327-r7 { fill: #403e62 }
+.terminal-453222327-r8 { fill: #e3e3e8 }
+.terminal-453222327-r9 { fill: #210d17 }
+.terminal-453222327-r10 { fill: #efe3fb }
+.terminal-453222327-r11 { fill: #9f9fa5 }
+.terminal-453222327-r12 { fill: #ff69b4 }
+.terminal-453222327-r13 { fill: #e5e5ea;font-weight: bold }
+.terminal-453222327-r14 { fill: #170b21;font-weight: bold }
+.terminal-453222327-r15 { fill: #632e53 }
+.terminal-453222327-r16 { fill: #9b9aab;font-weight: bold }
+.terminal-453222327-r17 { fill: #e3e3e8;font-weight: bold }
+.terminal-453222327-r18 { fill: #dfdfe1;font-weight: bold }
+.terminal-453222327-r19 { fill: #6a6a74 }
+.terminal-453222327-r20 { fill: #8b8b93 }
+.terminal-453222327-r21 { fill: #252532 }
+.terminal-453222327-r22 { fill: #252441 }
+.terminal-453222327-r23 { fill: #8b8b93;font-weight: bold }
+.terminal-453222327-r24 { fill: #0d0e2e }
+.terminal-453222327-r25 { fill: #00b85f }
+.terminal-453222327-r26 { fill: #737387 }
+.terminal-453222327-r27 { fill: #e1e1e6 }
+.terminal-453222327-r28 { fill: #918d9d }
+.terminal-453222327-r29 { fill: #2e2e3c;font-weight: bold }
+.terminal-453222327-r30 { fill: #2e2e3c }
+.terminal-453222327-r31 { fill: #a0a0a6 }
+.terminal-453222327-r32 { fill: #191928 }
+.terminal-453222327-r33 { fill: #b74e87 }
+.terminal-453222327-r34 { fill: #87878f }
+.terminal-453222327-r35 { fill: #a3a3a9 }
+.terminal-453222327-r36 { fill: #777780 }
+.terminal-453222327-r37 { fill: #1f1f2d }
+.terminal-453222327-r38 { fill: #04b375;font-weight: bold }
+.terminal-453222327-r39 { fill: #ff7ec8;font-weight: bold }
+.terminal-453222327-r40 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌json Send
-▎https://jsonplaceholder.typicode.com
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││NameValue Add header │
-│ GET get one│╰─────────────────────────────────────────────────╯
-│ POS create│╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼▌json Send
+▎https://jsonplaceholder.typicode.com
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││NameValue Add header │
+│ GET get one│╰─────────────────────────────────────────────────╯
+│ POS create│╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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/TestUserInterfaceShortcuts.test_expand_request_section.svg b/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_expand_request_section.svg
index 69ef8f3b..d798f140 100644
--- a/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_expand_request_section.svg
+++ b/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_expand_request_section.svg
@@ -19,154 +19,154 @@
font-weight: 700;
}
- .terminal-1116166639-matrix {
+ .terminal-1799760719-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1116166639-title {
+ .terminal-1799760719-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1116166639-r1 { fill: #e0e0e0 }
-.terminal-1116166639-r2 { fill: #c5c8c6 }
-.terminal-1116166639-r3 { fill: #ffcf56 }
-.terminal-1116166639-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-1116166639-r5 { fill: #dfeef9 }
-.terminal-1116166639-r6 { fill: #9dcbee }
-.terminal-1116166639-r7 { fill: #737373 }
-.terminal-1116166639-r8 { fill: #e1e1e1 }
-.terminal-1116166639-r9 { fill: #dde6ed }
-.terminal-1116166639-r10 { fill: #a0a0a0 }
-.terminal-1116166639-r11 { fill: #64451a }
-.terminal-1116166639-r12 { fill: #fea62b }
-.terminal-1116166639-r13 { fill: #e0e0e0;font-weight: bold }
-.terminal-1116166639-r14 { fill: #989a9c;font-weight: bold }
-.terminal-1116166639-r15 { fill: #e3e3e4;font-weight: bold }
-.terminal-1116166639-r16 { fill: #6c6c6c }
-.terminal-1116166639-r17 { fill: #8d8d8d }
-.terminal-1116166639-r18 { fill: #885c1e }
-.terminal-1116166639-r19 { fill: #242424 }
-.terminal-1116166639-r20 { fill: #8d8d8d;font-weight: bold }
-.terminal-1116166639-r21 { fill: #0d0d0d }
-.terminal-1116166639-r22 { fill: #008139 }
-.terminal-1116166639-r23 { fill: #8c9092 }
-.terminal-1116166639-r24 { fill: #ffba41;font-weight: bold }
-.terminal-1116166639-r25 { fill: #dbdbdb }
+ .terminal-1799760719-r1 { fill: #dfdfe1 }
+.terminal-1799760719-r2 { fill: #c5c8c6 }
+.terminal-1799760719-r3 { fill: #ff93dd }
+.terminal-1799760719-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-1799760719-r5 { fill: #15111e }
+.terminal-1799760719-r6 { fill: #43365c }
+.terminal-1799760719-r7 { fill: #737387 }
+.terminal-1799760719-r8 { fill: #e1e1e6 }
+.terminal-1799760719-r9 { fill: #efe3fb }
+.terminal-1799760719-r10 { fill: #9f9fa5 }
+.terminal-1799760719-r11 { fill: #632e53 }
+.terminal-1799760719-r12 { fill: #ff69b4 }
+.terminal-1799760719-r13 { fill: #dfdfe1;font-weight: bold }
+.terminal-1799760719-r14 { fill: #9b9aab;font-weight: bold }
+.terminal-1799760719-r15 { fill: #e3e3e8;font-weight: bold }
+.terminal-1799760719-r16 { fill: #6a6a74 }
+.terminal-1799760719-r17 { fill: #8b8b93 }
+.terminal-1799760719-r18 { fill: #873c69 }
+.terminal-1799760719-r19 { fill: #252441 }
+.terminal-1799760719-r20 { fill: #8b8b93;font-weight: bold }
+.terminal-1799760719-r21 { fill: #0d0e2e }
+.terminal-1799760719-r22 { fill: #00b85f }
+.terminal-1799760719-r23 { fill: #918d9d }
+.terminal-1799760719-r24 { fill: #ff7ec8;font-weight: bold }
+.terminal-1799760719-r25 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter a URL... Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get one││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ POS create││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ DEL delete a post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│───────────────────────││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│This is an echo ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│server we can use to ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│see exactly what ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│request is being ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│sent.││NameValue Add header │
-╰── sample-collections ─╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼Enter a URL... Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get one││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ POS create││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ DEL delete a post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│───────────────────────││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│This is an echo ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│server we can use to ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│see exactly what ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│request is being ││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│sent.││NameValue Add header │
+╰── 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/TestUserInterfaceShortcuts.test_expand_then_reset.svg b/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_expand_then_reset.svg
index b9f75bc4..d595ae90 100644
--- a/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_expand_then_reset.svg
+++ b/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_expand_then_reset.svg
@@ -19,164 +19,164 @@
font-weight: 700;
}
- .terminal-2345610125-matrix {
+ .terminal-309201154-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2345610125-title {
+ .terminal-309201154-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2345610125-r1 { fill: #e0e0e0 }
-.terminal-2345610125-r2 { fill: #c5c8c6 }
-.terminal-2345610125-r3 { fill: #ffcf56 }
-.terminal-2345610125-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-2345610125-r5 { fill: #dfeef9 }
-.terminal-2345610125-r6 { fill: #9dcbee }
-.terminal-2345610125-r7 { fill: #737373 }
-.terminal-2345610125-r8 { fill: #e1e1e1 }
-.terminal-2345610125-r9 { fill: #dde6ed }
-.terminal-2345610125-r10 { fill: #a0a0a0 }
-.terminal-2345610125-r11 { fill: #64451a }
-.terminal-2345610125-r12 { fill: #fea62b }
-.terminal-2345610125-r13 { fill: #e0e0e0;font-weight: bold }
-.terminal-2345610125-r14 { fill: #989a9c;font-weight: bold }
-.terminal-2345610125-r15 { fill: #e3e3e4;font-weight: bold }
-.terminal-2345610125-r16 { fill: #6c6c6c }
-.terminal-2345610125-r17 { fill: #8d8d8d }
-.terminal-2345610125-r18 { fill: #885c1e }
-.terminal-2345610125-r19 { fill: #242424 }
-.terminal-2345610125-r20 { fill: #8d8d8d;font-weight: bold }
-.terminal-2345610125-r21 { fill: #0d0d0d }
-.terminal-2345610125-r22 { fill: #008139 }
-.terminal-2345610125-r23 { fill: #8c9092 }
-.terminal-2345610125-r24 { fill: #313131;font-weight: bold }
-.terminal-2345610125-r25 { fill: #313131 }
-.terminal-2345610125-r26 { fill: #a2a2a2 }
-.terminal-2345610125-r27 { fill: #1c1c1c }
-.terminal-2345610125-r28 { fill: #b77923 }
-.terminal-2345610125-r29 { fill: #888888 }
-.terminal-2345610125-r30 { fill: #a4a4a4 }
-.terminal-2345610125-r31 { fill: #787878 }
-.terminal-2345610125-r32 { fill: #212121 }
-.terminal-2345610125-r33 { fill: #3c8b54;font-weight: bold }
-.terminal-2345610125-r34 { fill: #ffba41;font-weight: bold }
-.terminal-2345610125-r35 { fill: #dbdbdb }
+ .terminal-309201154-r1 { fill: #dfdfe1 }
+.terminal-309201154-r2 { fill: #c5c8c6 }
+.terminal-309201154-r3 { fill: #ff93dd }
+.terminal-309201154-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-309201154-r5 { fill: #15111e }
+.terminal-309201154-r6 { fill: #43365c }
+.terminal-309201154-r7 { fill: #737387 }
+.terminal-309201154-r8 { fill: #e1e1e6 }
+.terminal-309201154-r9 { fill: #efe3fb }
+.terminal-309201154-r10 { fill: #9f9fa5 }
+.terminal-309201154-r11 { fill: #632e53 }
+.terminal-309201154-r12 { fill: #ff69b4 }
+.terminal-309201154-r13 { fill: #dfdfe1;font-weight: bold }
+.terminal-309201154-r14 { fill: #9b9aab;font-weight: bold }
+.terminal-309201154-r15 { fill: #e3e3e8;font-weight: bold }
+.terminal-309201154-r16 { fill: #6a6a74 }
+.terminal-309201154-r17 { fill: #8b8b93 }
+.terminal-309201154-r18 { fill: #873c69 }
+.terminal-309201154-r19 { fill: #252441 }
+.terminal-309201154-r20 { fill: #8b8b93;font-weight: bold }
+.terminal-309201154-r21 { fill: #0d0e2e }
+.terminal-309201154-r22 { fill: #00b85f }
+.terminal-309201154-r23 { fill: #918d9d }
+.terminal-309201154-r24 { fill: #2e2e3c;font-weight: bold }
+.terminal-309201154-r25 { fill: #2e2e3c }
+.terminal-309201154-r26 { fill: #a0a0a6 }
+.terminal-309201154-r27 { fill: #191928 }
+.terminal-309201154-r28 { fill: #b74e87 }
+.terminal-309201154-r29 { fill: #87878f }
+.terminal-309201154-r30 { fill: #a3a3a9 }
+.terminal-309201154-r31 { fill: #777780 }
+.terminal-309201154-r32 { fill: #1f1f2d }
+.terminal-309201154-r33 { fill: #04b375;font-weight: bold }
+.terminal-309201154-r34 { fill: #ff7ec8;font-weight: bold }
+.terminal-309201154-r35 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼Enter a URL... Send
-
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET echo││HeadersBodyQueryAuthInfoOptions│
-│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││NameValue Add header │
-│ GET get one│╰─────────────────────────────────────────────────╯
-│ POS create│╭────────────────────────────────────── Response ─╮
-│ DEL delete a post││BodyHeadersCookiesTrace│
-│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│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 f1 Help
+
+
+
+
+Posting
+
+GET▼Enter a URL... Send
+
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET echo││HeadersBodyQueryAuthInfoOptions│
+│ GET get random user││╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/▂││╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││NameValue Add header │
+│ GET get one│╰─────────────────────────────────────────────────╯
+│ POS create│╭────────────────────────────────────── Response ─╮
+│ DEL delete a post││BodyHeadersCookiesTrace│
+│───────────────────────││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│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/TestUserInterfaceShortcuts.test_hide_collection_browser.svg b/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_hide_collection_browser.svg
index 136d783f..24cca2e8 100644
--- a/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_hide_collection_browser.svg
+++ b/tests/__snapshots__/test_snapshots/TestUserInterfaceShortcuts.test_hide_collection_browser.svg
@@ -19,162 +19,162 @@
font-weight: 700;
}
- .terminal-380328606-matrix {
+ .terminal-3721920745-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-380328606-title {
+ .terminal-3721920745-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-380328606-r1 { fill: #e0e0e0 }
-.terminal-380328606-r2 { fill: #c5c8c6 }
-.terminal-380328606-r3 { fill: #ffcf56 }
-.terminal-380328606-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-380328606-r5 { fill: #dfeef9 }
-.terminal-380328606-r6 { fill: #9dcbee }
-.terminal-380328606-r7 { fill: #3e3e3e }
-.terminal-380328606-r8 { fill: #211505 }
-.terminal-380328606-r9 { fill: #7c7c7c }
-.terminal-380328606-r10 { fill: #e3e3e3 }
-.terminal-380328606-r11 { fill: #dde6ed }
-.terminal-380328606-r12 { fill: #a0a0a0 }
-.terminal-380328606-r13 { fill: #64451a }
-.terminal-380328606-r14 { fill: #e0e0e0;font-weight: bold }
-.terminal-380328606-r15 { fill: #6c6c6c }
-.terminal-380328606-r16 { fill: #272727 }
-.terminal-380328606-r17 { fill: #fea62b }
-.terminal-380328606-r18 { fill: #242424 }
-.terminal-380328606-r19 { fill: #737373 }
-.terminal-380328606-r20 { fill: #e1e1e1 }
-.terminal-380328606-r21 { fill: #8c9092 }
-.terminal-380328606-r22 { fill: #313131;font-weight: bold }
-.terminal-380328606-r23 { fill: #313131 }
-.terminal-380328606-r24 { fill: #a2a2a2 }
-.terminal-380328606-r25 { fill: #1c1c1c }
-.terminal-380328606-r26 { fill: #b77923 }
-.terminal-380328606-r27 { fill: #888888 }
-.terminal-380328606-r28 { fill: #a4a4a4 }
-.terminal-380328606-r29 { fill: #787878 }
-.terminal-380328606-r30 { fill: #212121 }
-.terminal-380328606-r31 { fill: #3c8b54;font-weight: bold }
-.terminal-380328606-r32 { fill: #ffba41;font-weight: bold }
-.terminal-380328606-r33 { fill: #dbdbdb }
+ .terminal-3721920745-r1 { fill: #dfdfe1 }
+.terminal-3721920745-r2 { fill: #c5c8c6 }
+.terminal-3721920745-r3 { fill: #ff93dd }
+.terminal-3721920745-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-3721920745-r5 { fill: #15111e }
+.terminal-3721920745-r6 { fill: #43365c }
+.terminal-3721920745-r7 { fill: #403e62 }
+.terminal-3721920745-r8 { fill: #210d17 }
+.terminal-3721920745-r9 { fill: #7e7c92 }
+.terminal-3721920745-r10 { fill: #e3e3e8 }
+.terminal-3721920745-r11 { fill: #efe3fb }
+.terminal-3721920745-r12 { fill: #9f9fa5 }
+.terminal-3721920745-r13 { fill: #632e53 }
+.terminal-3721920745-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-3721920745-r15 { fill: #6a6a74 }
+.terminal-3721920745-r16 { fill: #252532 }
+.terminal-3721920745-r17 { fill: #ff69b4 }
+.terminal-3721920745-r18 { fill: #252441 }
+.terminal-3721920745-r19 { fill: #737387 }
+.terminal-3721920745-r20 { fill: #e1e1e6 }
+.terminal-3721920745-r21 { fill: #918d9d }
+.terminal-3721920745-r22 { fill: #2e2e3c;font-weight: bold }
+.terminal-3721920745-r23 { fill: #2e2e3c }
+.terminal-3721920745-r24 { fill: #a0a0a6 }
+.terminal-3721920745-r25 { fill: #191928 }
+.terminal-3721920745-r26 { fill: #b74e87 }
+.terminal-3721920745-r27 { fill: #87878f }
+.terminal-3721920745-r28 { fill: #a3a3a9 }
+.terminal-3721920745-r29 { fill: #777780 }
+.terminal-3721920745-r30 { fill: #1f1f2d }
+.terminal-3721920745-r31 { fill: #04b375;font-weight: bold }
+.terminal-3721920745-r32 { fill: #ff7ec8;font-weight: bold }
+.terminal-3721920745-r33 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌Enter a URL... Send
-
-╭──────────────────────────────────────────────────────────────── Request ─╮
-│HeadersBodyQueryAuthInfoOptions│
-│╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│NameValue Add header │
-╰──────────────────────────────────────────────────────────────────────────╯
-╭─────────────────────────────────────────────────────────────── Response ─╮
-│BodyHeadersCookiesTrace│
-│╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-││
-││
-││
-││
-│1:1read-onlyJSON▼Wrap ▐X▌│
-╰──────────────────────────────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼▌Enter a URL... Send
+
+╭──────────────────────────────────────────────────────────────── Request ─╮
+│HeadersBodyQueryAuthInfoOptions│
+│╸━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no headers.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│NameValue Add header │
+╰──────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────────────────────────────────────── Response ─╮
+│BodyHeadersCookiesTrace│
+│╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+││
+││
+││
+││
+│1:1read-onlyJSON▼Wrap ▐X▌│
+╰──────────────────────────────────────────────────────────────────────────╯
+ ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Help
diff --git a/tests/__snapshots__/test_snapshots/TestVariables.test_resolved_variables_highlight_and_preview.svg b/tests/__snapshots__/test_snapshots/TestVariables.test_resolved_variables_highlight_and_preview.svg
index e6a68d1d..c2bcd294 100644
--- a/tests/__snapshots__/test_snapshots/TestVariables.test_resolved_variables_highlight_and_preview.svg
+++ b/tests/__snapshots__/test_snapshots/TestVariables.test_resolved_variables_highlight_and_preview.svg
@@ -19,174 +19,174 @@
font-weight: 700;
}
- .terminal-3107346237-matrix {
+ .terminal-1782248387-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3107346237-title {
+ .terminal-1782248387-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3107346237-r1 { fill: #e0e0e0 }
-.terminal-3107346237-r2 { fill: #c5c8c6 }
-.terminal-3107346237-r3 { fill: #ffcf56 }
-.terminal-3107346237-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-3107346237-r5 { fill: #dfeef9 }
-.terminal-3107346237-r6 { fill: #9dcbee }
-.terminal-3107346237-r7 { fill: #3e3e3e }
-.terminal-3107346237-r8 { fill: #ffa62b }
-.terminal-3107346237-r9 { fill: #9a9a9a }
-.terminal-3107346237-r10 { fill: #0178d4 }
-.terminal-3107346237-r11 { fill: #e3e3e3 }
-.terminal-3107346237-r12 { fill: #4ebf71;text-decoration: underline; }
-.terminal-3107346237-r13 { fill: #211505 }
-.terminal-3107346237-r14 { fill: #dde6ed }
-.terminal-3107346237-r15 { fill: #a0a0a0 }
-.terminal-3107346237-r16 { fill: #64451a }
-.terminal-3107346237-r17 { fill: #8d8d8d }
-.terminal-3107346237-r18 { fill: #e0e0e0;font-weight: bold }
-.terminal-3107346237-r19 { fill: #58d1eb;font-weight: bold }
-.terminal-3107346237-r20 { fill: #6c6c6c }
-.terminal-3107346237-r21 { fill: #989a9c;font-weight: bold }
-.terminal-3107346237-r22 { fill: #e3e3e4;font-weight: bold }
-.terminal-3107346237-r23 { fill: #272727 }
-.terminal-3107346237-r24 { fill: #fea62b }
-.terminal-3107346237-r25 { fill: #121212 }
-.terminal-3107346237-r26 { fill: #dee5eb }
-.terminal-3107346237-r27 { fill: #e0e0e1 }
-.terminal-3107346237-r28 { fill: #dfe1e2 }
-.terminal-3107346237-r29 { fill: #dee4e8 }
-.terminal-3107346237-r30 { fill: #0d0d0d }
-.terminal-3107346237-r31 { fill: #737373 }
-.terminal-3107346237-r32 { fill: #e1e1e1 }
-.terminal-3107346237-r33 { fill: #8c9092 }
-.terminal-3107346237-r34 { fill: #313131;font-weight: bold }
-.terminal-3107346237-r35 { fill: #313131 }
-.terminal-3107346237-r36 { fill: #a2a2a2 }
-.terminal-3107346237-r37 { fill: #1c1c1c }
-.terminal-3107346237-r38 { fill: #b77923 }
-.terminal-3107346237-r39 { fill: #888888 }
-.terminal-3107346237-r40 { fill: #a4a4a4 }
-.terminal-3107346237-r41 { fill: #787878 }
-.terminal-3107346237-r42 { fill: #212121 }
-.terminal-3107346237-r43 { fill: #3c8b54;font-weight: bold }
-.terminal-3107346237-r44 { fill: #ffba41;font-weight: bold }
-.terminal-3107346237-r45 { fill: #dbdbdb }
+ .terminal-1782248387-r1 { fill: #dfdfe1 }
+.terminal-1782248387-r2 { fill: #c5c8c6 }
+.terminal-1782248387-r3 { fill: #ff93dd }
+.terminal-1782248387-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-1782248387-r5 { fill: #15111e }
+.terminal-1782248387-r6 { fill: #43365c }
+.terminal-1782248387-r7 { fill: #403e62 }
+.terminal-1782248387-r8 { fill: #ff69b4 }
+.terminal-1782248387-r9 { fill: #9b9aab }
+.terminal-1782248387-r10 { fill: #a684e8 }
+.terminal-1782248387-r11 { fill: #e3e3e8 }
+.terminal-1782248387-r12 { fill: #00fa9a;text-decoration: underline; }
+.terminal-1782248387-r13 { fill: #210d17 }
+.terminal-1782248387-r14 { fill: #efe3fb }
+.terminal-1782248387-r15 { fill: #9f9fa5 }
+.terminal-1782248387-r16 { fill: #170b21;font-weight: bold }
+.terminal-1782248387-r17 { fill: #632e53 }
+.terminal-1782248387-r18 { fill: #8b8b93 }
+.terminal-1782248387-r19 { fill: #dfdfe1;font-weight: bold }
+.terminal-1782248387-r20 { fill: #58d1eb;font-weight: bold }
+.terminal-1782248387-r21 { fill: #6a6a74 }
+.terminal-1782248387-r22 { fill: #9b9aab;font-weight: bold }
+.terminal-1782248387-r23 { fill: #e3e3e8;font-weight: bold }
+.terminal-1782248387-r24 { fill: #252532 }
+.terminal-1782248387-r25 { fill: #0f0f1f }
+.terminal-1782248387-r26 { fill: #ede2f7 }
+.terminal-1782248387-r27 { fill: #e1e0e4 }
+.terminal-1782248387-r28 { fill: #e2e0e5 }
+.terminal-1782248387-r29 { fill: #e9e1f1 }
+.terminal-1782248387-r30 { fill: #0d0e2e }
+.terminal-1782248387-r31 { fill: #737387 }
+.terminal-1782248387-r32 { fill: #e1e1e6 }
+.terminal-1782248387-r33 { fill: #918d9d }
+.terminal-1782248387-r34 { fill: #2e2e3c;font-weight: bold }
+.terminal-1782248387-r35 { fill: #2e2e3c }
+.terminal-1782248387-r36 { fill: #a0a0a6 }
+.terminal-1782248387-r37 { fill: #191928 }
+.terminal-1782248387-r38 { fill: #b74e87 }
+.terminal-1782248387-r39 { fill: #87878f }
+.terminal-1782248387-r40 { fill: #a3a3a9 }
+.terminal-1782248387-r41 { fill: #777780 }
+.terminal-1782248387-r42 { fill: #1f1f2d }
+.terminal-1782248387-r43 { fill: #04b375;font-weight: bold }
+.terminal-1782248387-r44 { fill: #ff7ec8;font-weight: bold }
+.terminal-1782248387-r45 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼▌https://jsonplaceholder.typicode.com/todos/$TODO_ID Send
- TODO_ID = 1
-╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
-│ GET get all││Headers•BodyQueryAuthInfoOptions│
-│█ GET get one││╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│││▐ Content-Type application/json │
-│││▐ Referer https://example.com/ │
-│││▐ Accept-Encoding gzip ▆│
-│││NameValue Add header │
-││╰─────────────────────────────────────────────────╯
-││╭────────────────────────────────────── Response ─╮
-│││BodyHeadersCookiesTrace│
-│││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-││││
-││││
-││││
-│───────────────────────│││
-│Retrieve one todo││1:1read-onlyJSON▼Wrap ▐X▌│
-╰─────────────── todos ─╯╰─────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼▌https://jsonplaceholder.typicode.com/todos/$TODO_ID Send
+ TODO_ID = 1 ▎$TODO_ID
+╭─ Collection ──────────╮╭─────────────────────────────────────── Request ─╮
+│ GET get all││Headers•BodyQueryAuthInfoOptions│
+│█ GET get one││╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│││▐ Content-Type application/json │
+│││▐ Referer https://example.com/ │
+│││▐ Accept-Encoding gzip ▆│
+│││NameValue Add header │
+││╰─────────────────────────────────────────────────╯
+││╭────────────────────────────────────── Response ─╮
+│││BodyHeadersCookiesTrace│
+│││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+││││
+││││
+││││
+│───────────────────────│││
+│Retrieve one todo││1:1read-onlyJSON▼Wrap ▐X▌│
+╰─────────────── todos ─╯╰─────────────────────────────────────────────────╯
+ ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump ^c Quit f1 Help
diff --git a/tests/__snapshots__/test_snapshots/TestVariables.test_unresolved_variables_highlighted.svg b/tests/__snapshots__/test_snapshots/TestVariables.test_unresolved_variables_highlighted.svg
index 97e6d44b..6127748f 100644
--- a/tests/__snapshots__/test_snapshots/TestVariables.test_unresolved_variables_highlighted.svg
+++ b/tests/__snapshots__/test_snapshots/TestVariables.test_unresolved_variables_highlighted.svg
@@ -19,209 +19,208 @@
font-weight: 700;
}
- .terminal-2117313416-matrix {
+ .terminal-371790475-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2117313416-title {
+ .terminal-371790475-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2117313416-r1 { fill: #e0e0e0 }
-.terminal-2117313416-r2 { fill: #c5c8c6 }
-.terminal-2117313416-r3 { fill: #ffcf56 }
-.terminal-2117313416-r4 { fill: #dfeef9;text-decoration: underline; }
-.terminal-2117313416-r5 { fill: #dfeef9 }
-.terminal-2117313416-r6 { fill: #9dcbee }
-.terminal-2117313416-r7 { fill: #ffa62b }
-.terminal-2117313416-r8 { fill: #939393 }
-.terminal-2117313416-r9 { fill: #0178d4 }
-.terminal-2117313416-r10 { fill: #e1e1e1 }
-.terminal-2117313416-r11 { fill: #dde6ed }
-.terminal-2117313416-r12 { fill: #a0a0a0 }
-.terminal-2117313416-r13 { fill: #64451a }
-.terminal-2117313416-r14 { fill: #fea62b }
-.terminal-2117313416-r15 { fill: #e0e0e0;font-weight: bold }
-.terminal-2117313416-r16 { fill: #8d8d8d }
-.terminal-2117313416-r17 { fill: #6c6c6c }
-.terminal-2117313416-r18 { fill: #58d1eb;font-weight: bold }
-.terminal-2117313416-r19 { fill: #272727 }
-.terminal-2117313416-r20 { fill: #242424 }
-.terminal-2117313416-r21 { fill: #8d8d8d;font-weight: bold }
-.terminal-2117313416-r22 { fill: #008139 }
-.terminal-2117313416-r23 { fill: #3e3e3e }
-.terminal-2117313416-r24 { fill: #ba3c5b }
-.terminal-2117313416-r25 { fill: #e3e3e3 }
-.terminal-2117313416-r26 { fill: #211505 }
-.terminal-2117313416-r27 { fill: #313131;font-weight: bold }
-.terminal-2117313416-r28 { fill: #313131 }
-.terminal-2117313416-r29 { fill: #a2a2a2 }
-.terminal-2117313416-r30 { fill: #989a9c;font-weight: bold }
-.terminal-2117313416-r31 { fill: #e3e3e4;font-weight: bold }
-.terminal-2117313416-r32 { fill: #1c1c1c }
-.terminal-2117313416-r33 { fill: #b77923 }
-.terminal-2117313416-r34 { fill: #888888 }
-.terminal-2117313416-r35 { fill: #a4a4a4 }
-.terminal-2117313416-r36 { fill: #787878 }
-.terminal-2117313416-r37 { fill: #212121 }
-.terminal-2117313416-r38 { fill: #3c8b54;font-weight: bold }
-.terminal-2117313416-r39 { fill: #ffba41;font-weight: bold }
-.terminal-2117313416-r40 { fill: #dbdbdb }
+ .terminal-371790475-r1 { fill: #dfdfe1 }
+.terminal-371790475-r2 { fill: #c5c8c6 }
+.terminal-371790475-r3 { fill: #ff93dd }
+.terminal-371790475-r4 { fill: #15111e;text-decoration: underline; }
+.terminal-371790475-r5 { fill: #15111e }
+.terminal-371790475-r6 { fill: #43365c }
+.terminal-371790475-r7 { fill: #ff69b4 }
+.terminal-371790475-r8 { fill: #9393a3 }
+.terminal-371790475-r9 { fill: #a684e8 }
+.terminal-371790475-r10 { fill: #e1e1e6 }
+.terminal-371790475-r11 { fill: #efe3fb }
+.terminal-371790475-r12 { fill: #9f9fa5 }
+.terminal-371790475-r13 { fill: #632e53 }
+.terminal-371790475-r14 { fill: #dfdfe1;font-weight: bold }
+.terminal-371790475-r15 { fill: #8b8b93 }
+.terminal-371790475-r16 { fill: #6a6a74 }
+.terminal-371790475-r17 { fill: #58d1eb;font-weight: bold }
+.terminal-371790475-r18 { fill: #252532 }
+.terminal-371790475-r19 { fill: #252441 }
+.terminal-371790475-r20 { fill: #8b8b93;font-weight: bold }
+.terminal-371790475-r21 { fill: #00b85f }
+.terminal-371790475-r22 { fill: #403e62 }
+.terminal-371790475-r23 { fill: #ff4500 }
+.terminal-371790475-r24 { fill: #e3e3e8 }
+.terminal-371790475-r25 { fill: #210d17 }
+.terminal-371790475-r26 { fill: #2e2e3c;font-weight: bold }
+.terminal-371790475-r27 { fill: #2e2e3c }
+.terminal-371790475-r28 { fill: #a0a0a6 }
+.terminal-371790475-r29 { fill: #9b9aab;font-weight: bold }
+.terminal-371790475-r30 { fill: #e3e3e8;font-weight: bold }
+.terminal-371790475-r31 { fill: #191928 }
+.terminal-371790475-r32 { fill: #b74e87 }
+.terminal-371790475-r33 { fill: #87878f }
+.terminal-371790475-r34 { fill: #a3a3a9 }
+.terminal-371790475-r35 { fill: #777780 }
+.terminal-371790475-r36 { fill: #1f1f2d }
+.terminal-371790475-r37 { fill: #04b375;font-weight: bold }
+.terminal-371790475-r38 { fill: #ff7ec8;font-weight: bold }
+.terminal-371790475-r39 { fill: #dbdbdd }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Posting
+ Posting
-
-
-
-
-Posting
-
-GET▼https://jsonplaceholder.typicode.com/todos Send
-
-╭─ Collection ──────────────────────╮╭───────────────────────────────────────────────────────────────── Request ─╮
-│ GET echo││Headers•BodyQueryAuthInfoOptions│
-│ GET get random user││━━━━━━━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ jsonplaceholder/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get all││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no parameters.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get one││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ POS create││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ DEL delete a post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│▼ comments/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
-│ GET get comments││foo ▌$nope/${nope} Add │
-│ GET get comments (via param)│╰───────────────────────────────────────────────────────────────────────────╯
-│ PUT edit a comment│╭──────────────────────────────────────────────────────────────── Response ─╮
-│▼ todos/││BodyHeadersCookiesTrace│
-│█ GET get all││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
-│ GET get one│││
-│▼ users/│││
-│ GET get a user│││
-│ GET get all users│││
-│ POS create a user│││
-│ PUT update a user│││
-│ DEL delete a user│││
-││││
-│───────────────────────────────────│││
-│Retrieve all todos││1:1read-onlyJSON▼Wrap ▐X▌│
-╰────────────── sample-collections ─╯╰───────────────────────────────────────────────────────────────────────────╯
- ^j Send ^t Method ^s Save ^n New ^p Commands ^o Jump f1 Help
+
+
+
+
+Posting
+
+GET▼https://jsonplaceholder.typicode.com/todos Send
+
+╭─ Collection ──────────────────────╮╭───────────────────────────────────────────────────────────────── Request ─╮
+│ GET echo││Headers•BodyQueryAuthInfoOptions│
+│ GET get random user││━━━━━━━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ POS echo post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ jsonplaceholder/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ posts/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get all││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱There are no parameters.╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get one││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ POS create││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ DEL delete a post││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│▼ comments/││╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱│
+│ GET get comments││foo ▌$nope/${nope} Add │
+│ GET get comments (via param)│╰───────────────────────────────────────────────────────────────────────────╯
+│ PUT edit a comment│╭──────────────────────────────────────────────────────────────── Response ─╮
+│▼ todos/││BodyHeadersCookiesTrace│
+│█ GET get all││╸━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+│ GET get one│││
+│▼ users/│││
+│ GET get a user│││
+│ GET get all users│││
+│ POS create a user│││
+│ PUT update a user│││
+│ DEL delete a user│││
+││││
+│───────────────────────────────────│││
+│Retrieve all todos││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/test_files.py b/tests/test_files.py
new file mode 100644
index 00000000..e41246de
--- /dev/null
+++ b/tests/test_files.py
@@ -0,0 +1,58 @@
+import pytest
+from posting.files import is_valid_filename
+
+
+@pytest.mark.parametrize(
+ "filename, expected",
+ [
+ ("valid_filename.txt", True),
+ ("", False),
+ (" ", False),
+ ("file/with/path.txt", False),
+ ("a" * 255, True),
+ ("a" * 256, False),
+ ("CON", False),
+ ("PRN.txt", False),
+ ("AUX.log", False),
+ ("NUL.dat", False),
+ ("COM1.bin", False),
+ ("LPT1.tmp", False),
+ ("file..with..dots.txt", False),
+ (".hidden_file.txt", False),
+ ("normal.file.txt", True),
+ ("file-with-dashes.txt", True),
+ ("file_with_underscores.txt", True),
+ ("file with spaces.txt", True),
+ ("file.with.multiple.extensions.txt", True),
+ # Path traversal attack tests
+ ("../filename.txt", False),
+ ("filename/../something.txt", False),
+ ("foo/../bar/baz.txt", False),
+ ("foo/./bar/baz.txt", False),
+ # Absolute path tests
+ ("/etc/passwd", False),
+ ("/var/log/system.log", False),
+ ("/home/user/file.txt", False),
+ ("/file.txt", False),
+ ("C:/Program Files/file.txt", False),
+ ],
+)
+def test_is_valid_filename(filename, expected):
+ assert is_valid_filename(filename) == expected
+
+
+def test_is_valid_filename_with_none():
+ assert is_valid_filename(None) == False
+
+
+@pytest.mark.parametrize(
+ "os_specific_filename, expected",
+ [
+ ("COM0", True), # COM0 is not in the reserved list
+ ("LPT0", True), # LPT0 is not in the reserved list
+ ("CON.txt", False),
+ ("AUX.log", False),
+ ],
+)
+def test_is_valid_filename_os_specific(os_specific_filename, expected):
+ assert is_valid_filename(os_specific_filename) == expected
diff --git a/tests/test_snapshots.py b/tests/test_snapshots.py
index 06b3126a..59f64aa0 100644
--- a/tests/test_snapshots.py
+++ b/tests/test_snapshots.py
@@ -119,6 +119,7 @@ async def run_before(pilot: Pilot):
assert snap_compare(POSTING_MAIN, run_before=run_before)
+@pytest.mark.skip(reason="cursor blink is not working in textual 0.76")
@use_config("general.yaml")
class TestCommandPalette:
def test_loads_and_shows_discovery_options(self, snap_compare):
@@ -419,9 +420,11 @@ async def run_before(pilot: Pilot):
@patch_env("POSTING_FOCUS__ON_STARTUP", "collection")
@patch_env("POSTING_THEME_DIRECTORY", str(THEME_DIR.resolve()))
class TestCustomThemeSimple:
+ @pytest.mark.skip(reason="cursor blink is not working in textual 0.76")
def test_theme_set_on_startup_and_in_command_palette(self, snap_compare):
"""Check that the theme is set on startup and available in the command palette."""
+ @pytest.mark.skip(reason="cursor blink is not working in textual 0.76")
async def run_before(pilot: Pilot):
await pilot.press("ctrl+p")
await disable_blink_for_active_cursors(pilot)