diff --git a/.eslintrc.js b/.eslintrc.js
index 8847173b0c79f..91fe2aed3b1e8 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -12,7 +12,7 @@ const globals = {
}
module.exports = {
- ignorePatterns: ['node_modules', 'plugin-server'],
+ ignorePatterns: ['node_modules', 'plugin-server', 'cypress'],
env,
settings: {
react: {
diff --git a/.github/workflows/ci-frontend.yml b/.github/workflows/ci-frontend.yml
index d290a0594bbf0..2ea70218bd608 100644
--- a/.github/workflows/ci-frontend.yml
+++ b/.github/workflows/ci-frontend.yml
@@ -2,10 +2,6 @@ name: Frontend CI
on:
pull_request:
- # NOTE: by running on master, aside from highlight issues on master it also
- # ensures we have e.g. node modules cached for master, which can then be
- # used for branches. See https://github.com/actions/cache#cache-scopes for
- # scope details.
push:
branches:
- master
@@ -15,28 +11,71 @@ concurrency:
cancel-in-progress: true
jobs:
+ # Job to decide if we should run frontend ci
+ # See https://github.com/dorny/paths-filter#conditional-execution for more details
+ # we skip each step individually, so they are still reported as success
+ # because many of them are required for CI checks to be green
+ changes:
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ name: Determine need to run frontend checks
+ outputs:
+ frontend: ${{ steps.filter.outputs.frontend }}
+ steps:
+ # For pull requests it's not necessary to check out the code, but we
+ # also want this to run on master, so we need to check out
+ - uses: actions/checkout@v3
+
+ - uses: dorny/paths-filter@v2
+ id: filter
+ with:
+ filters: |
+ frontend:
+ # Avoid running frontend tests for irrelevant changes
+ # NOTE: we are at risk of missing a dependency here.
+ - 'bin/**'
+ - 'frontend/**'
+ # Make sure we run if someone is explicitly change the workflow
+ - .github/workflows/ci-frontend.yml
+ # various JS config files
+ - .eslintrc.js
+ - .prettier*
+ - babel.config.js
+ - jest.*.ts
+ - tsconfig.json
+ - tsconfig.*.json
+ - webpack.config.js
+ - postcss.config.js
+ - stylelint*
+
frontend-code-quality:
name: Code quality checks
+ needs: changes
# kea typegen and typescript:check need some more oomph
runs-on: ubuntu-latest
steps:
+ # we need at least one thing to run to make sure we include everything for required jobs
- uses: actions/checkout@v3
- name: Install pnpm
+ if: needs.changes.outputs.frontend == 'true'
uses: pnpm/action-setup@v2
with:
version: 8.x.x
- name: Set up Node.js
- uses: buildjet/setup-node@v3
+ if: needs.changes.outputs.frontend == 'true'
+ uses: actions/setup-node@v3
with:
node-version: 18
- name: Get pnpm cache directory path
+ if: needs.changes.outputs.frontend == 'true'
id: pnpm-cache-dir
run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
+ if: needs.changes.outputs.frontend == 'true'
id: pnpm-cache
with:
path: ${{ steps.pnpm-cache-dir.outputs.PNPM_STORE_PATH }}
@@ -44,24 +83,31 @@ jobs:
restore-keys: ${{ runner.os }}-pnpm-cypress-
- name: Install package.json dependencies with pnpm
+ if: needs.changes.outputs.frontend == 'true'
run: pnpm install --frozen-lockfile
- name: Check formatting with prettier
+ if: needs.changes.outputs.frontend == 'true'
run: pnpm prettier:check
- name: Lint with Stylelint
+ if: needs.changes.outputs.frontend == 'true'
run: pnpm lint:css
- name: Generate logic types and run typescript with strict
+ if: needs.changes.outputs.frontend == 'true'
run: pnpm typegen:write && pnpm typescript:check
- name: Lint with ESLint
+ if: needs.changes.outputs.frontend == 'true'
run: pnpm lint:js
- name: Check if "schema.json" is up to date
+ if: needs.changes.outputs.frontend == 'true'
run: pnpm schema:build:json && git diff --exit-code
- name: Check toolbar bundle size
+ if: needs.changes.outputs.frontend == 'true'
uses: preactjs/compressed-size-action@v2
with:
build-script: 'build'
@@ -70,6 +116,7 @@ jobs:
jest:
runs-on: ubuntu-latest
+ needs: changes
name: Jest test (${{ matrix.chunk }})
strategy:
@@ -79,24 +126,29 @@ jobs:
chunk: [1, 2, 3]
steps:
+ # we need at least one thing to run to make sure we include everything for required jobs
- uses: actions/checkout@v3
- name: Install pnpm
+ if: needs.changes.outputs.frontend == 'true'
uses: pnpm/action-setup@v2
with:
version: 8.x.x
- name: Set up Node.js
- uses: buildjet/setup-node@v3
+ if: needs.changes.outputs.frontend == 'true'
+ uses: actions/setup-node@v3
with:
node-version: 18
cache: pnpm
- name: Install package.json dependencies with pnpm
+ if: needs.changes.outputs.frontend == 'true'
run: pnpm install --frozen-lockfile
- name: Test with Jest
# set maxWorkers or Jest only uses 1 CPU in GitHub Actions
run: pnpm test:unit --maxWorkers=2 --shard=${{ matrix.chunk }}/3
+ if: needs.changes.outputs.frontend == 'true'
env:
NODE_OPTIONS: --max-old-space-size=6144
diff --git a/.run/Dev.run.xml b/.run/Dev.run.xml
new file mode 100644
index 0000000000000..8e0efc8b0e7b3
--- /dev/null
+++ b/.run/Dev.run.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a9ed14cbd01cc..4047d14a6106b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,3 @@
# Changelog
-Updates to the PostHog project can be found on [https://posthog.com/changelog](our changelog).
\ No newline at end of file
+Updates to the PostHog project can be found on [our changelog](https://posthog.com/changelog).
diff --git a/cypress/e2e/early-access-management.cy.ts b/cypress/e2e/early-access-management.cy.ts
index 9a594d8d1c34c..8736a39ab945a 100644
--- a/cypress/e2e/early-access-management.cy.ts
+++ b/cypress/e2e/early-access-management.cy.ts
@@ -6,7 +6,7 @@ describe('Early Access Management', () => {
it('Early access feature new and list', () => {
// load an empty early access feature page
cy.get('h1').should('contain', 'Early Access Management')
- cy.title().should('equal', 'Early Access Management • PostHog')
+ cy.title().should('equal', 'Early access features • PostHog')
cy.get('h2').should('contain', 'Create your first feature')
cy.get('[data-attr="product-introduction-docs-link"]').should(
'contain',
diff --git a/cypress/e2e/insights.cy.ts b/cypress/e2e/insights.cy.ts
index 0e449825b2194..5157d21429ba9 100644
--- a/cypress/e2e/insights.cy.ts
+++ b/cypress/e2e/insights.cy.ts
@@ -24,7 +24,7 @@ describe('Insights', () => {
cy.get('[data-attr=breadcrumb-0]').should('contain', 'Hogflix')
cy.get('[data-attr=breadcrumb-1]').should('contain', 'Hogflix Demo App')
- cy.get('[data-attr=breadcrumb-2]').should('have.text', 'Insights')
+ cy.get('[data-attr=breadcrumb-2]').should('have.text', 'Product analytics')
cy.get('[data-attr=breadcrumb-3]').should('have.text', 'insight name')
})
diff --git a/docker/clickhouse/config.xml b/docker/clickhouse/config.xml
index f3f858be7d117..7047c93e5c5d8 100644
--- a/docker/clickhouse/config.xml
+++ b/docker/clickhouse/config.xml
@@ -20,17 +20,20 @@
- trace
- test (not for production usage)
- [1]: https://github.com/pocoproject/poco/blob/poco-1.9.4-release/Foundation/include/Poco/Logger.h#L105-L114
+ [1]:
+ https://github.com/pocoproject/poco/blob/poco-1.9.4-release/Foundation/include/Poco/Logger.h#L105-L114
-->
trace/var/log/clickhouse-server/clickhouse-server.log/var/log/clickhouse-server/clickhouse-server.err.log1000M10
-
+
-
+
@@ -217,7 +225,8 @@
/path/to/ssl_ca_cert_file
-
none
@@ -232,10 +241,12 @@
false
-
+
-
+
/etc/clickhouse-server/server.crt/etc/clickhouse-server/server.key
+ truetruesslv2,sslv3
@@ -264,24 +276,30 @@
-
+
1000
@@ -302,21 +320,25 @@
-->
0.9
-
4194304
-
0
-
@@ -341,14 +363,18 @@
-
-
-
+
true
@@ -644,14 +698,16 @@
-
+
localhost9000
-
+
@@ -666,22 +722,28 @@
Example: "yandex.ru", "yandex.ru." and "www.yandex.ru" are different hosts.
If port is explicitly specified in URL, the host:port is checked as a whole.
If host specified here without port, any port with this host allowed.
- "yandex.ru" -> "yandex.ru:443", "yandex.ru:80" etc. is allowed, but "yandex.ru:80" -> only "yandex.ru:80" is allowed.
- If the host is specified as IP address, it is checked as specified in URL. Example: "[2a02:6b8:a::a]".
- If there are redirects and support for redirects is enabled, every redirect (the Location field) is checked.
+ "yandex.ru" -> "yandex.ru:443", "yandex.ru:80" etc. is allowed, but "yandex.ru:80" -> only
+ "yandex.ru:80" is allowed.
+ If the host is specified as IP address, it is checked as specified in URL. Example:
+ "[2a02:6b8:a::a]".
+ If there are redirects and support for redirects is enabled, every redirect (the Location field) is
+ checked.
Host should be specified using the host xml tag:
yandex.ru
-->
.*
-
@@ -701,7 +763,8 @@
@@ -710,7 +773,6 @@
-
3600
@@ -788,7 +850,8 @@
system
query_log
toYYYYMM(event_date)
-
@@ -843,7 +909,8 @@
+ Part log contains information about all actions with parts in MergeTree tables (creation, deletion,
+ merges, downloads).-->
system
part_log
@@ -852,8 +919,10 @@
-
+
system
metric_log
@@ -933,7 +1003,8 @@
-->
-
+
@@ -965,12 +1036,14 @@
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1032,7 +1107,8 @@
-
+
/var/lib/clickhouse/format_schemas/
-
false
-
+
false
-
+
https://6f33034cfe684dd7a3ab9875e57b1c8d@o388870.ingest.sentry.io/5226277
@@ -1183,4 +1267,4 @@
-->
-
+
\ No newline at end of file
diff --git a/docker/clickhouse/users-dev.xml b/docker/clickhouse/users-dev.xml
index dd6e54d7c5de3..704e99ef9e961 100644
--- a/docker/clickhouse/users-dev.xml
+++ b/docker/clickhouse/users-dev.xml
@@ -15,7 +15,8 @@
with minimum number of different symbols between replica's hostname and local hostname
(Hamming distance).
in_order - first live replica is chosen in specified order.
- first_or_random - if first replica one has higher number of errors, pick a random one from replicas with minimum number of errors.
+ first_or_random - if first replica one has higher number of errors, pick a random one from replicas
+ with minimum number of errors.
-->
random
@@ -45,30 +46,39 @@
Password could be empty.
If you want to specify SHA256, place it in 'password_sha256_hex' element.
- Example: 65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5
- Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).
+ Example:
+ 65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5
+ Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July
+ 2019).
If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
- Example: e395796d6546b1b65db9d665cd43f0e858dd4303
+ Example:
+ e395796d6546b1b65db9d665cd43f0e858dd4303
- If you want to specify a previously defined LDAP server (see 'ldap_servers' in the main config) for authentication,
+ If you want to specify a previously defined LDAP server (see 'ldap_servers' in the main config) for
+ authentication,
place its name in 'server' element inside 'ldap' element.
Example: my_ldap_server
- If you want to authenticate the user via Kerberos (assuming Kerberos is enabled, see 'kerberos' in the main config),
+ If you want to authenticate the user via Kerberos (assuming Kerberos is enabled, see 'kerberos' in
+ the main config),
place 'kerberos' element instead of 'password' (and similar) elements.
- The name part of the canonical principal name of the initiator must match the user name for authentication to succeed.
- You can also place 'realm' element inside 'kerberos' element to further restrict authentication to only those requests
+ The name part of the canonical principal name of the initiator must match the user name for
+ authentication to succeed.
+ You can also place 'realm' element inside 'kerberos' element to further restrict authentication to
+ only those requests
whose initiator's realm matches it.
Example:
Example: EXAMPLE.COM
How to generate decent password:
- Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
+ Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" |
+ sha256sum | tr -d '-'
In first line will be password and in second - corresponding SHA256.
How to generate double SHA1:
- Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
+ Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" |
+ sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
In first line will be password and in second - corresponding double SHA1.
-->
@@ -89,7 +99,8 @@
To check access, DNS query is performed, and all received addresses compared to peer address.
Regular expression for host names. Example, ^server\d\d-\d\d-\d\.yandex\.ru$
To check access, DNS PTR query is performed for peer address and then regexp is applied.
- Then, for result of PTR query, another DNS query is performed and all received addresses compared to peer address.
+ Then, for result of PTR query, another DNS query is performed and all received addresses compared
+ to peer address.
Strongly recommended that regexp is ends with $
All results of DNS requests are cached till server restart.
-->
@@ -126,4 +137,4 @@
-
+
\ No newline at end of file
diff --git a/docker/clickhouse/users.xml b/docker/clickhouse/users.xml
index 49ac9f73e0de5..ece3df0f09fbe 100644
--- a/docker/clickhouse/users.xml
+++ b/docker/clickhouse/users.xml
@@ -15,7 +15,8 @@
with minimum number of different symbols between replica's hostname and local hostname
(Hamming distance).
in_order - first live replica is chosen in specified order.
- first_or_random - if first replica one has higher number of errors, pick a random one from replicas with minimum number of errors.
+ first_or_random - if first replica one has higher number of errors, pick a random one from replicas
+ with minimum number of errors.
-->
random
@@ -43,30 +44,39 @@
Password could be empty.
If you want to specify SHA256, place it in 'password_sha256_hex' element.
- Example: 65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5
- Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).
+ Example:
+ 65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5
+ Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July
+ 2019).
If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
- Example: e395796d6546b1b65db9d665cd43f0e858dd4303
+ Example:
+ e395796d6546b1b65db9d665cd43f0e858dd4303
- If you want to specify a previously defined LDAP server (see 'ldap_servers' in the main config) for authentication,
+ If you want to specify a previously defined LDAP server (see 'ldap_servers' in the main config) for
+ authentication,
place its name in 'server' element inside 'ldap' element.
Example: my_ldap_server
- If you want to authenticate the user via Kerberos (assuming Kerberos is enabled, see 'kerberos' in the main config),
+ If you want to authenticate the user via Kerberos (assuming Kerberos is enabled, see 'kerberos' in
+ the main config),
place 'kerberos' element instead of 'password' (and similar) elements.
- The name part of the canonical principal name of the initiator must match the user name for authentication to succeed.
- You can also place 'realm' element inside 'kerberos' element to further restrict authentication to only those requests
+ The name part of the canonical principal name of the initiator must match the user name for
+ authentication to succeed.
+ You can also place 'realm' element inside 'kerberos' element to further restrict authentication to
+ only those requests
whose initiator's realm matches it.
Example:
Example: EXAMPLE.COM
How to generate decent password:
- Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
+ Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" |
+ sha256sum | tr -d '-'
In first line will be password and in second - corresponding SHA256.
How to generate double SHA1:
- Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
+ Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" |
+ sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
In first line will be password and in second - corresponding double SHA1.
-->
@@ -87,7 +97,8 @@
To check access, DNS query is performed, and all received addresses compared to peer address.
Regular expression for host names. Example, ^server\d\d-\d\d-\d\.yandex\.ru$
To check access, DNS PTR query is performed for peer address and then regexp is applied.
- Then, for result of PTR query, another DNS query is performed and all received addresses compared to peer address.
+ Then, for result of PTR query, another DNS query is performed and all received addresses compared
+ to peer address.
Strongly recommended that regexp is ends with $
All results of DNS requests are cached till server restart.
-->
@@ -124,4 +135,4 @@
-
+
\ No newline at end of file
diff --git a/ee/api/feature_flag_role_access.py b/ee/api/feature_flag_role_access.py
index d3ca7a68c1a32..3ce77dca89599 100644
--- a/ee/api/feature_flag_role_access.py
+++ b/ee/api/feature_flag_role_access.py
@@ -35,7 +35,11 @@ def has_permission(self, request, view):
return True
try:
feature_flag: FeatureFlag = FeatureFlag.objects.get(id=view.parents_query_dict["feature_flag_id"])
- if feature_flag.created_by.uuid == request.user.uuid:
+ if (
+ hasattr(feature_flag, "created_by")
+ and feature_flag.created_by
+ and feature_flag.created_by.uuid == request.user.uuid
+ ):
return True
except FeatureFlag.DoesNotExist:
raise exceptions.NotFound("Feature flag not found.")
diff --git a/ee/api/test/test_billing.py b/ee/api/test/test_billing.py
index 88addd2d7f416..c37c3ee9d6482 100644
--- a/ee/api/test/test_billing.py
+++ b/ee/api/test/test_billing.py
@@ -2,9 +2,9 @@
from typing import Any, Dict, List
from unittest.mock import MagicMock, patch
from uuid import uuid4
+from zoneinfo import ZoneInfo
import jwt
-from zoneinfo import ZoneInfo
from dateutil.relativedelta import relativedelta
from django.utils.timezone import now
from freezegun import freeze_time
diff --git a/ee/api/test/test_feature_flag_role_access.py b/ee/api/test/test_feature_flag_role_access.py
index f143f10505f0f..3cd4e947d90c9 100644
--- a/ee/api/test/test_feature_flag_role_access.py
+++ b/ee/api/test/test_feature_flag_role_access.py
@@ -37,6 +37,26 @@ def test_can_always_add_role_access_if_creator_of_feature_flag(self):
self.assertEqual(flag_role.role.name, self.eng_role.name)
self.assertEqual(flag_role.feature_flag.id, self.feature_flag.id)
+ def test_role_access_with_deleted_creator_of_feature_flag(self):
+ OrganizationResourceAccess.objects.create(
+ resource=OrganizationResourceAccess.Resources.FEATURE_FLAGS,
+ access_level=OrganizationResourceAccess.AccessLevel.CAN_ONLY_VIEW,
+ organization=self.organization,
+ )
+
+ flag = FeatureFlag.objects.create(
+ created_by=None,
+ team=self.team,
+ key="flag_role_access_none",
+ name="Flag role access",
+ )
+ self.assertEqual(self.user.role_memberships.count(), 0)
+ flag_role_access_create_res = self.client.post(
+ f"/api/projects/@current/feature_flags/{flag.id}/role_access",
+ {"role_id": self.eng_role.id},
+ )
+ self.assertEqual(flag_role_access_create_res.status_code, status.HTTP_403_FORBIDDEN)
+
def test_cannot_add_role_access_if_feature_flags_access_level_too_low_and_not_creator(self):
OrganizationResourceAccess.objects.create(
resource=OrganizationResourceAccess.Resources.FEATURE_FLAGS,
diff --git a/ee/api/test/test_organization.py b/ee/api/test/test_organization.py
index 2f1b11bb95256..a77361dc579e8 100644
--- a/ee/api/test/test_organization.py
+++ b/ee/api/test/test_organization.py
@@ -1,6 +1,7 @@
import datetime as dt
import random
-from unittest.mock import ANY, patch
+from unittest import mock
+from unittest.mock import ANY, call, patch
from freezegun.api import freeze_time
from rest_framework import status
@@ -104,11 +105,21 @@ def test_delete_last_organization(self, mock_capture):
"Did not return a 404 on trying to delete a nonexistent org",
)
- mock_capture.assert_called_once_with(
- self.user.distinct_id,
- "organization deleted",
- organization_props,
- groups={"instance": ANY, "organization": str(org_id)},
+ mock_capture.assert_has_calls(
+ [
+ call(
+ self.user.distinct_id,
+ "membership level changed",
+ properties={"new_level": 15, "previous_level": 1},
+ groups=mock.ANY,
+ ),
+ call(
+ self.user.distinct_id,
+ "organization deleted",
+ organization_props,
+ groups={"instance": mock.ANY, "organization": str(org_id)},
+ ),
+ ]
)
def test_no_delete_organization_not_owning(self):
diff --git a/ee/billing/billing_manager.py b/ee/billing/billing_manager.py
index 5a8119c57df9b..324b158fe071d 100644
--- a/ee/billing/billing_manager.py
+++ b/ee/billing/billing_manager.py
@@ -6,6 +6,7 @@
import structlog
from django.utils import timezone
from rest_framework.exceptions import NotAuthenticated
+from sentry_sdk import capture_exception
from ee.billing.billing_types import BillingStatus
from ee.billing.quota_limiting import set_org_usage_summary, sync_org_quota_limits
@@ -13,7 +14,7 @@
from ee.settings import BILLING_SERVICE_URL
from posthog.cloud_utils import get_cached_instance_license
from posthog.models import Organization
-from posthog.models.organization import OrganizationUsageInfo
+from posthog.models.organization import OrganizationMembership, OrganizationUsageInfo
logger = structlog.get_logger(__name__)
@@ -114,6 +115,14 @@ def update_billing_distinct_ids(self, organization: Organization) -> None:
distinct_ids = list(organization.members.values_list("distinct_id", flat=True))
self.update_billing(organization, {"distinct_ids": distinct_ids})
+ def update_billing_customer_email(self, organization: Organization) -> None:
+ try:
+ owner_membership = OrganizationMembership.objects.get(organization=organization, level=15)
+ user = owner_membership.user
+ self.update_billing(organization, {"org_customer_email": user.email})
+ except Exception as e:
+ capture_exception(e)
+
def deactivate_products(self, organization: Organization, products: str) -> None:
res = requests.get(
f"{BILLING_SERVICE_URL}/api/billing/deactivate?products={products}",
diff --git a/ee/billing/test/test_billing_manager.py b/ee/billing/test/test_billing_manager.py
index e0c09e0d071fb..1dbbcb464f068 100644
--- a/ee/billing/test/test_billing_manager.py
+++ b/ee/billing/test/test_billing_manager.py
@@ -33,3 +33,26 @@ def test_update_billing_distinct_ids(self, billing_patch_request_mock: MagicMock
BillingManager(license).update_billing_distinct_ids(organization)
assert billing_patch_request_mock.call_count == 1
assert len(billing_patch_request_mock.call_args[1]["json"]["distinct_ids"]) == 2
+
+ @patch(
+ "ee.billing.billing_manager.requests.patch",
+ return_value=MagicMock(status_code=200, json=MagicMock(return_value={"text": "ok"})),
+ )
+ def test_update_billing_customer_email(self, billing_patch_request_mock: MagicMock):
+ organization = self.organization
+ license = super(LicenseManager, cast(LicenseManager, License.objects)).create(
+ key="key123::key123",
+ plan="enterprise",
+ valid_until=timezone.datetime(2038, 1, 19, 3, 14, 7),
+ )
+ User.objects.create_and_join(
+ organization=organization,
+ email="y@x.com",
+ password=None,
+ level=OrganizationMembership.Level.OWNER,
+ )
+ organization.refresh_from_db()
+ assert len(organization.members.values_list("distinct_id", flat=True)) == 2 # one exists in the test base
+ BillingManager(license).update_billing_customer_email(organization)
+ assert billing_patch_request_mock.call_count == 1
+ assert billing_patch_request_mock.call_args[1]["json"]["org_customer_email"] == "y@x.com"
diff --git a/ee/clickhouse/test/test_client.py b/ee/clickhouse/test/test_client.py
deleted file mode 100644
index ab5ba1b4a53e0..0000000000000
--- a/ee/clickhouse/test/test_client.py
+++ /dev/null
@@ -1,129 +0,0 @@
-from unittest.mock import patch
-
-import fakeredis
-from clickhouse_driver.errors import ServerException
-from django.test import TestCase
-
-from posthog.clickhouse.client import execute_async as client
-from posthog.client import sync_execute
-from posthog.test.base import ClickhouseTestMixin
-
-
-class ClickhouseClientTestCase(TestCase, ClickhouseTestMixin):
- def setUp(self):
- self.redis_client = fakeredis.FakeStrictRedis()
-
- def test_async_query_client(self):
- query = "SELECT 1+1"
- team_id = 2
- query_id = client.enqueue_execute_with_progress(team_id, query, bypass_celery=True)
- result = client.get_status_or_results(team_id, query_id)
- self.assertFalse(result.error)
- self.assertTrue(result.complete)
- self.assertEqual(result.results, [[2]])
-
- def test_async_query_client_errors(self):
- query = "SELECT WOW SUCH DATA FROM NOWHERE THIS WILL CERTAINLY WORK"
- team_id = 2
- self.assertRaises(
- ServerException,
- client.enqueue_execute_with_progress,
- **{"team_id": team_id, "query": query, "bypass_celery": True},
- )
- try:
- query_id = client.enqueue_execute_with_progress(team_id, query, bypass_celery=True)
- except Exception:
- pass
-
- result = client.get_status_or_results(team_id, query_id)
- self.assertTrue(result.error)
- self.assertRegex(result.error_message, "Code: 62.\nDB::Exception: Syntax error:")
-
- def test_async_query_client_does_not_leak(self):
- query = "SELECT 1+1"
- team_id = 2
- wrong_team = 5
- query_id = client.enqueue_execute_with_progress(team_id, query, bypass_celery=True)
- result = client.get_status_or_results(wrong_team, query_id)
- self.assertTrue(result.error)
- self.assertEqual(result.error_message, "Requesting team is not executing team")
-
- @patch("posthog.clickhouse.client.execute_async.enqueue_clickhouse_execute_with_progress")
- def test_async_query_client_is_lazy(self, execute_sync_mock):
- query = "SELECT 4 + 4"
- team_id = 2
- client.enqueue_execute_with_progress(team_id, query, bypass_celery=True)
-
- # Try the same query again
- client.enqueue_execute_with_progress(team_id, query, bypass_celery=True)
-
- # Try the same query again (for good measure!)
- client.enqueue_execute_with_progress(team_id, query, bypass_celery=True)
-
- # Assert that we only called clickhouse once
- execute_sync_mock.assert_called_once()
-
- @patch("posthog.clickhouse.client.execute_async.enqueue_clickhouse_execute_with_progress")
- def test_async_query_client_is_lazy_but_not_too_lazy(self, execute_sync_mock):
- query = "SELECT 8 + 8"
- team_id = 2
- client.enqueue_execute_with_progress(team_id, query, bypass_celery=True)
-
- # Try the same query again, but with force
- client.enqueue_execute_with_progress(team_id, query, bypass_celery=True, force=True)
-
- # Try the same query again (for good measure!)
- client.enqueue_execute_with_progress(team_id, query, bypass_celery=True)
-
- # Assert that we called clickhouse twice
- self.assertEqual(execute_sync_mock.call_count, 2)
-
- @patch("posthog.clickhouse.client.execute_async.enqueue_clickhouse_execute_with_progress")
- def test_async_query_client_manual_query_uuid(self, execute_sync_mock):
- # This is a unique test because technically in the test pattern `SELECT 8 + 8` is already
- # in redis. This tests to make sure it is treated as a unique run of that query
- query = "SELECT 8 + 8"
- team_id = 2
- query_id = "I'm so unique"
- client.enqueue_execute_with_progress(team_id, query, query_id=query_id, bypass_celery=True)
-
- # Try the same query again, but with force
- client.enqueue_execute_with_progress(team_id, query, query_id=query_id, bypass_celery=True, force=True)
-
- # Try the same query again (for good measure!)
- client.enqueue_execute_with_progress(team_id, query, query_id=query_id, bypass_celery=True)
-
- # Assert that we called clickhouse twice
- self.assertEqual(execute_sync_mock.call_count, 2)
-
- def test_client_strips_comments_from_request(self):
- """
- To ensure we can easily copy queries from `system.query_log` in e.g.
- Metabase, we strip comments from the query we send. Metabase doesn't
- display multilined output.
-
- See https://github.com/metabase/metabase/issues/14253
-
- Note I'm not really testing much complexity, I trust that those will
- come out as failures in other tests.
- """
- from posthog.clickhouse.query_tagging import tag_queries
-
- # First add in the request information that should be added to the sql.
- # We check this to make sure it is not removed by the comment stripping
- with self.capture_select_queries() as sqls:
- tag_queries(kind="request", id="1")
- sync_execute(
- query="""
- -- this request returns 1
- SELECT 1
- """
- )
- self.assertEqual(len(sqls), 1)
- first_query = sqls[0]
- self.assertIn(f"SELECT 1", first_query)
- self.assertNotIn("this request returns", first_query)
-
- # Make sure it still includes the "annotation" comment that includes
- # request routing information for debugging purposes
- self.assertIn("/* request:1 */", first_query)
diff --git a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr
index f039a2994204e..3474ae77b858f 100644
--- a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr
+++ b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr
@@ -1,6 +1,6 @@
# name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results
'
- /* user_id:126 celery:posthog.celery.sync_insight_caching_state */
+ /* user_id:131 celery:posthog.celery.sync_insight_caching_state */
SELECT team_id,
date_diff('second', max(timestamp), now()) AS age
FROM events
diff --git a/ee/clickhouse/views/test/test_clickhouse_trends.py b/ee/clickhouse/views/test/test_clickhouse_trends.py
index 75ab015e39a15..8bf86c1524006 100644
--- a/ee/clickhouse/views/test/test_clickhouse_trends.py
+++ b/ee/clickhouse/views/test/test_clickhouse_trends.py
@@ -118,7 +118,7 @@ def test_includes_only_intervals_within_range(client: Client):
{
"action": ANY,
"breakdown_value": cohort["id"],
- "label": "$pageview - test cohort",
+ "label": "test cohort",
"count": 3.0,
"data": [1.0, 1.0, 1.0],
# Prior to the fix this would also include '29-Aug-2021'
@@ -827,14 +827,12 @@ def test_insight_trends_cumulative(self):
],
)
data_response = get_trends_time_series_ok(self.client, request, self.team)
- person_response = get_people_from_url_ok(
- self.client, data_response["$pageview - val"]["2012-01-14"].person_url
- )
+ person_response = get_people_from_url_ok(self.client, data_response["val"]["2012-01-14"].person_url)
- assert data_response["$pageview - val"]["2012-01-13"].value == 1
- assert data_response["$pageview - val"]["2012-01-13"].breakdown_value == "val"
- assert data_response["$pageview - val"]["2012-01-14"].value == 3
- assert data_response["$pageview - val"]["2012-01-14"].label == "14-Jan-2012"
+ assert data_response["val"]["2012-01-13"].value == 1
+ assert data_response["val"]["2012-01-13"].breakdown_value == "val"
+ assert data_response["val"]["2012-01-14"].value == 3
+ assert data_response["val"]["2012-01-14"].label == "14-Jan-2012"
assert sorted([p["id"] for p in person_response]) == sorted(
[str(created_people["p1"].uuid), str(created_people["p3"].uuid)]
@@ -862,12 +860,12 @@ def test_insight_trends_cumulative(self):
properties=[{"type": "person", "key": "key", "value": "some_val"}],
)
data_response = get_trends_time_series_ok(self.client, request, self.team)
- people = get_people_from_url_ok(self.client, data_response["$pageview - val"]["2012-01-14"].person_url)
+ people = get_people_from_url_ok(self.client, data_response["val"]["2012-01-14"].person_url)
- assert data_response["$pageview - val"]["2012-01-13"].value == 1
- assert data_response["$pageview - val"]["2012-01-13"].breakdown_value == "val"
- assert data_response["$pageview - val"]["2012-01-14"].value == 3
- assert data_response["$pageview - val"]["2012-01-14"].label == "14-Jan-2012"
+ assert data_response["val"]["2012-01-13"].value == 1
+ assert data_response["val"]["2012-01-13"].breakdown_value == "val"
+ assert data_response["val"]["2012-01-14"].value == 3
+ assert data_response["val"]["2012-01-14"].label == "14-Jan-2012"
assert sorted([p["id"] for p in people]) == sorted(
[str(created_people["p1"].uuid), str(created_people["p3"].uuid)]
@@ -894,12 +892,12 @@ def test_insight_trends_cumulative(self):
],
)
data_response = get_trends_time_series_ok(self.client, request, self.team)
- people = get_people_from_url_ok(self.client, data_response["$pageview - val"]["2012-01-14"].person_url)
+ people = get_people_from_url_ok(self.client, data_response["val"]["2012-01-14"].person_url)
- assert data_response["$pageview - val"]["2012-01-13"].value == 1
- assert data_response["$pageview - val"]["2012-01-13"].breakdown_value == "val"
- assert data_response["$pageview - val"]["2012-01-14"].value == 2
- assert data_response["$pageview - val"]["2012-01-14"].label == "14-Jan-2012"
+ assert data_response["val"]["2012-01-13"].value == 1
+ assert data_response["val"]["2012-01-13"].breakdown_value == "val"
+ assert data_response["val"]["2012-01-14"].value == 2
+ assert data_response["val"]["2012-01-14"].label == "14-Jan-2012"
assert sorted([p["id"] for p in people]) == sorted(
[str(created_people["p1"].uuid), str(created_people["p3"].uuid)]
@@ -933,12 +931,10 @@ def test_breakdown_with_filter(self):
properties=[{"key": "key", "value": "oh", "operator": "not_icontains"}],
)
data_response = get_trends_time_series_ok(self.client, params, self.team)
- person_response = get_people_from_url_ok(
- self.client, data_response["sign up - val"]["2012-01-13"].person_url
- )
+ person_response = get_people_from_url_ok(self.client, data_response["val"]["2012-01-13"].person_url)
- assert data_response["sign up - val"]["2012-01-13"].value == 1
- assert data_response["sign up - val"]["2012-01-13"].breakdown_value == "val"
+ assert data_response["val"]["2012-01-13"].value == 1
+ assert data_response["val"]["2012-01-13"].breakdown_value == "val"
assert sorted([p["id"] for p in person_response]) == sorted([str(created_people["person1"].uuid)])
@@ -950,11 +946,9 @@ def test_breakdown_with_filter(self):
events=[{"id": "sign up", "name": "sign up", "type": "events", "order": 0}],
)
aggregate_response = get_trends_aggregate_ok(self.client, params, self.team)
- aggregate_person_response = get_people_from_url_ok(
- self.client, aggregate_response["sign up - val"].person_url
- )
+ aggregate_person_response = get_people_from_url_ok(self.client, aggregate_response["val"].person_url)
- assert aggregate_response["sign up - val"].value == 1
+ assert aggregate_response["val"].value == 1
assert sorted([p["id"] for p in aggregate_person_response]) == sorted([str(created_people["person1"].uuid)])
def test_insight_trends_compare(self):
diff --git a/frontend/__snapshots__/components-command-bar--actions.png b/frontend/__snapshots__/components-command-bar--actions.png
new file mode 100644
index 0000000000000..302fb86f50402
Binary files /dev/null and b/frontend/__snapshots__/components-command-bar--actions.png differ
diff --git a/frontend/__snapshots__/components-command-bar--search.png b/frontend/__snapshots__/components-command-bar--search.png
new file mode 100644
index 0000000000000..54dff6f4974bf
Binary files /dev/null and b/frontend/__snapshots__/components-command-bar--search.png differ
diff --git a/frontend/__snapshots__/components-editable-field--default.png b/frontend/__snapshots__/components-editable-field--default.png
index 2d16114431388..f68ba65618170 100644
Binary files a/frontend/__snapshots__/components-editable-field--default.png and b/frontend/__snapshots__/components-editable-field--default.png differ
diff --git a/frontend/__snapshots__/components-networkrequesttiming--basic.png b/frontend/__snapshots__/components-networkrequesttiming--basic.png
index 8247b433f71c8..effc91c21a0a6 100644
Binary files a/frontend/__snapshots__/components-networkrequesttiming--basic.png and b/frontend/__snapshots__/components-networkrequesttiming--basic.png differ
diff --git a/frontend/__snapshots__/components-product-empty-state--empty-with-action.png b/frontend/__snapshots__/components-product-empty-state--empty-with-action.png
index dd10594e21d1c..4c6bc2766b5e4 100644
Binary files a/frontend/__snapshots__/components-product-empty-state--empty-with-action.png and b/frontend/__snapshots__/components-product-empty-state--empty-with-action.png differ
diff --git a/frontend/__snapshots__/components-product-empty-state--not-empty-with-action.png b/frontend/__snapshots__/components-product-empty-state--not-empty-with-action.png
index d9ed865218733..a93edc4abb8e1 100644
Binary files a/frontend/__snapshots__/components-product-empty-state--not-empty-with-action.png and b/frontend/__snapshots__/components-product-empty-state--not-empty-with-action.png differ
diff --git a/frontend/__snapshots__/components-product-empty-state--product-introduction.png b/frontend/__snapshots__/components-product-empty-state--product-introduction.png
index dd10594e21d1c..4c6bc2766b5e4 100644
Binary files a/frontend/__snapshots__/components-product-empty-state--product-introduction.png and b/frontend/__snapshots__/components-product-empty-state--product-introduction.png differ
diff --git a/frontend/__snapshots__/components-properties-table--properties-table.png b/frontend/__snapshots__/components-properties-table--properties-table.png
new file mode 100644
index 0000000000000..0ebb3a71ccb83
Binary files /dev/null and b/frontend/__snapshots__/components-properties-table--properties-table.png differ
diff --git a/frontend/__snapshots__/layout-navigation--app-page-with-side-bar-shown.png b/frontend/__snapshots__/layout-navigation--app-page-with-side-bar-shown.png
index b49b6fc4bd341..b2ae49cd91f5b 100644
Binary files a/frontend/__snapshots__/layout-navigation--app-page-with-side-bar-shown.png and b/frontend/__snapshots__/layout-navigation--app-page-with-side-bar-shown.png differ
diff --git a/frontend/__snapshots__/lemon-ui-colors--all-three-thousand-color-options.png b/frontend/__snapshots__/lemon-ui-colors--all-three-thousand-color-options.png
index 2038fbe5c8bb2..02abe5eaa23a3 100644
Binary files a/frontend/__snapshots__/lemon-ui-colors--all-three-thousand-color-options.png and b/frontend/__snapshots__/lemon-ui-colors--all-three-thousand-color-options.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-banner--closable.png b/frontend/__snapshots__/lemon-ui-lemon-banner--closable.png
index a05dd78b3e3e7..a7a8ac55c5061 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-banner--closable.png and b/frontend/__snapshots__/lemon-ui-lemon-banner--closable.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-banner--dismissable.png b/frontend/__snapshots__/lemon-ui-lemon-banner--dismissable.png
index be2ef2e5a884b..540a8a3ef2c39 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-banner--dismissable.png and b/frontend/__snapshots__/lemon-ui-lemon-banner--dismissable.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-banner--error.png b/frontend/__snapshots__/lemon-ui-lemon-banner--error.png
index 7db8c557495b9..9389cfa4ea1b2 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-banner--error.png and b/frontend/__snapshots__/lemon-ui-lemon-banner--error.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-banner--info.png b/frontend/__snapshots__/lemon-ui-lemon-banner--info.png
index 7c6e78d57caf2..6848c05f89a32 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-banner--info.png and b/frontend/__snapshots__/lemon-ui-lemon-banner--info.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-banner--success.png b/frontend/__snapshots__/lemon-ui-lemon-banner--success.png
index 2053ce5ccc6de..f3b58cb98363a 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-banner--success.png and b/frontend/__snapshots__/lemon-ui-lemon-banner--success.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-banner--warning.png b/frontend/__snapshots__/lemon-ui-lemon-banner--warning.png
index bf8c975d7385b..3c41933fb5078 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-banner--warning.png and b/frontend/__snapshots__/lemon-ui-lemon-banner--warning.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--as-links.png b/frontend/__snapshots__/lemon-ui-lemon-button--as-links.png
index 24ae6fe59d181..292f9ce7d0a99 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-button--as-links.png and b/frontend/__snapshots__/lemon-ui-lemon-button--as-links.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-table--empty-loading.png b/frontend/__snapshots__/lemon-ui-lemon-table--empty-loading.png
index b6109c6884322..90ae77d5ca04a 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-table--empty-loading.png and b/frontend/__snapshots__/lemon-ui-lemon-table--empty-loading.png differ
diff --git a/frontend/__snapshots__/lemon-ui-lemon-table--loading.png b/frontend/__snapshots__/lemon-ui-lemon-table--loading.png
index e5852c23bda01..f3f2287fcdb4c 100644
Binary files a/frontend/__snapshots__/lemon-ui-lemon-table--loading.png and b/frontend/__snapshots__/lemon-ui-lemon-table--loading.png differ
diff --git a/frontend/__snapshots__/posthog-3000-keyboard-shortcut--default.png b/frontend/__snapshots__/posthog-3000-keyboard-shortcut--default.png
new file mode 100644
index 0000000000000..1f8990c3a32c8
Binary files /dev/null and b/frontend/__snapshots__/posthog-3000-keyboard-shortcut--default.png differ
diff --git a/frontend/__snapshots__/posthog-3000-keyboard-shortcut--muted.png b/frontend/__snapshots__/posthog-3000-keyboard-shortcut--muted.png
new file mode 100644
index 0000000000000..091bda66799ec
Binary files /dev/null and b/frontend/__snapshots__/posthog-3000-keyboard-shortcut--muted.png differ
diff --git a/frontend/__snapshots__/posthog-3000-navigation--navigation-3000.png b/frontend/__snapshots__/posthog-3000-navigation--navigation-3000.png
index 9329598d4f0f9..db71a2726588c 100644
Binary files a/frontend/__snapshots__/posthog-3000-navigation--navigation-3000.png and b/frontend/__snapshots__/posthog-3000-navigation--navigation-3000.png differ
diff --git a/frontend/__snapshots__/posthog-3000-navigation--navigation-base.png b/frontend/__snapshots__/posthog-3000-navigation--navigation-base.png
index a63ee9697bb12..3c1f2a921338a 100644
Binary files a/frontend/__snapshots__/posthog-3000-navigation--navigation-base.png and b/frontend/__snapshots__/posthog-3000-navigation--navigation-base.png differ
diff --git a/frontend/__snapshots__/scenes-app-batchexports--create-export.png b/frontend/__snapshots__/scenes-app-batchexports--create-export.png
index 5812443d7cc01..51889a6cdcc34 100644
Binary files a/frontend/__snapshots__/scenes-app-batchexports--create-export.png and b/frontend/__snapshots__/scenes-app-batchexports--create-export.png differ
diff --git a/frontend/__snapshots__/scenes-app-dashboards--edit.png b/frontend/__snapshots__/scenes-app-dashboards--edit.png
index ca634e775f0d7..0bd4f10c2b233 100644
Binary files a/frontend/__snapshots__/scenes-app-dashboards--edit.png and b/frontend/__snapshots__/scenes-app-dashboards--edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-dashboards--show.png b/frontend/__snapshots__/scenes-app-dashboards--show.png
index 0bac6702636e7..9f1dac8d8c809 100644
Binary files a/frontend/__snapshots__/scenes-app-dashboards--show.png and b/frontend/__snapshots__/scenes-app-dashboards--show.png differ
diff --git a/frontend/__snapshots__/scenes-app-events--event-explorer.png b/frontend/__snapshots__/scenes-app-events--event-explorer.png
index 4ed82b3bdbbdd..7d3287e05481b 100644
Binary files a/frontend/__snapshots__/scenes-app-events--event-explorer.png and b/frontend/__snapshots__/scenes-app-events--event-explorer.png differ
diff --git a/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment.png b/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment.png
index b954a89c3fe4f..0c9084824591a 100644
Binary files a/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment.png and b/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment.png differ
diff --git a/frontend/__snapshots__/scenes-app-experiments--experiments-list-pay-gate.png b/frontend/__snapshots__/scenes-app-experiments--experiments-list-pay-gate.png
index fd9d704276d4c..683e286506729 100644
Binary files a/frontend/__snapshots__/scenes-app-experiments--experiments-list-pay-gate.png and b/frontend/__snapshots__/scenes-app-experiments--experiments-list-pay-gate.png differ
diff --git a/frontend/__snapshots__/scenes-app-experiments--experiments-list.png b/frontend/__snapshots__/scenes-app-experiments--experiments-list.png
index f6760a46e6b69..4072657487cb8 100644
Binary files a/frontend/__snapshots__/scenes-app-experiments--experiments-list.png and b/frontend/__snapshots__/scenes-app-experiments--experiments-list.png differ
diff --git a/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment.png b/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment.png
index 34fc0266e6ee9..766de1662f8ae 100644
Binary files a/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment.png and b/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment.png differ
diff --git a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag.png b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag.png
index c640e778e8505..2d6a0dd22fbb2 100644
Binary files a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag.png and b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends--webkit.png
index ff8d20c392180..a36d7365e7344 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends-edit--webkit.png
index f46520b2f73dc..613e89cdbc0d8 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends-edit.png b/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends-edit.png
index d3727abe59c66..d2c639e108166 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends-edit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends.png b/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends.png
index 7f8fbe65c33f4..bcd656dcc26a3 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends.png and b/frontend/__snapshots__/scenes-app-insights--funnel-historical-trends.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right--webkit.png
index 7f37b4f88ea9e..93a2510edbd3e 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown--webkit.png
index 52b192f0436ff..88fce2b75ec39 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown-edit--webkit.png
index 9aa218739300b..234167ed34ceb 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown-edit.png
index f7301be8fcc9b..7ef2484ddde67 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown.png
index 2426224527e72..8eaedc5c1d3fa 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-edit--webkit.png
index 3f938630e0cee..87320f1ad5b19 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-edit.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-edit.png
index 97c300aec44da..92811307a20d4 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-edit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right.png
index 451a3e13a2d4f..ee0abcee40c6b 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right.png and b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert--webkit.png
index 2cd74f758f4f0..cd77f1bbd8447 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert-edit--webkit.png
index 5e437308fefd9..b0c052e1b37ff 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert-edit.png b/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert-edit.png
index 3ac105cb27e6c..62ab313160740 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert-edit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert.png b/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert.png
index 0c68ed20b354c..0f65f00462135 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert.png and b/frontend/__snapshots__/scenes-app-insights--funnel-time-to-convert.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom--webkit.png
index b93219c3d0204..20f8540e7af66 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown--webkit.png
index a03a837b14ca3..5ba4dd941fcbf 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit--webkit.png
index 57c8868d90d40..64b2955db1cfe 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit.png
index afc88b3502e60..7fde8e692b299 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown.png
index 0c51f972a0c9e..67d55e396a376 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit--webkit.png
index 1bc80b159fcf0..a41c083a673a9 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit.png
index 1fceceed5b2ba..10a781cafc5d0 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom.png
index 7f8d3f622e01d..8760764ed3a04 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--lifecycle--webkit.png b/frontend/__snapshots__/scenes-app-insights--lifecycle--webkit.png
index 91f6f6e560edd..c4212fc4ab28d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--lifecycle--webkit.png and b/frontend/__snapshots__/scenes-app-insights--lifecycle--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--lifecycle-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--lifecycle-edit--webkit.png
index bd131be5920a7..4f11382fa8bb4 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--lifecycle-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--lifecycle-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--lifecycle-edit.png b/frontend/__snapshots__/scenes-app-insights--lifecycle-edit.png
index 38cb27172dece..a4c4a82e5d207 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--lifecycle-edit.png and b/frontend/__snapshots__/scenes-app-insights--lifecycle-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--lifecycle.png b/frontend/__snapshots__/scenes-app-insights--lifecycle.png
index 89b738cf06472..b5af8e303507d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--lifecycle.png and b/frontend/__snapshots__/scenes-app-insights--lifecycle.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--retention--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention--webkit.png
index 38102732ee359..3f6259a8a2428 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--retention--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--webkit.png
index cb52e0f1495f4..8e6390a225b40 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--webkit.png
index ee03a7556c872..998fedb12e86e 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit.png
index 1e71a2fc11b12..6262a5918f1f1 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown.png
index 3e2ab6d65836f..62dd6f95bbd41 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--retention-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-edit--webkit.png
index 9d791a3259380..0a8e1c20fdb87 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--retention-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--retention-edit.png b/frontend/__snapshots__/scenes-app-insights--retention-edit.png
index 45c2836c18811..cd3d9f866c7f4 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--retention-edit.png and b/frontend/__snapshots__/scenes-app-insights--retention-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--retention.png b/frontend/__snapshots__/scenes-app-insights--retention.png
index 9a7251ee3698d..5df60b1e00204 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--retention.png and b/frontend/__snapshots__/scenes-app-insights--retention.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--stickiness--webkit.png b/frontend/__snapshots__/scenes-app-insights--stickiness--webkit.png
index b1f44c1341ec3..d226c57fe43df 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--stickiness--webkit.png and b/frontend/__snapshots__/scenes-app-insights--stickiness--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--stickiness-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--stickiness-edit--webkit.png
index fc56f416a79ff..c458ce60c87b2 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--stickiness-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--stickiness-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--stickiness-edit.png b/frontend/__snapshots__/scenes-app-insights--stickiness-edit.png
index 3cc58acbcacee..80e20f0a84a3e 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--stickiness-edit.png and b/frontend/__snapshots__/scenes-app-insights--stickiness-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--stickiness.png b/frontend/__snapshots__/scenes-app-insights--stickiness.png
index e3a0289b2bde0..5f6daca8e6c78 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--stickiness.png and b/frontend/__snapshots__/scenes-app-insights--stickiness.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-area--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-area--webkit.png
index d3ad0d0416ed0..451decec4637d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-area--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-area--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown--webkit.png
index 8f14499429e91..77b2e0087b84b 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown-edit--webkit.png
index a2d3654a7b019..39cb74dee61dd 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown-edit.png
index eacd277f8c466..85107049f853f 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown.png b/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown.png
index d2c34da43a597..41ba6d59e1550 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--trends-area-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-area-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-area-edit--webkit.png
index bccdd29949efa..f70af9d2e782c 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-area-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-area-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-area-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-area-edit.png
index 689dcd9839e8d..f57645211428a 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-area-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-area-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-area.png b/frontend/__snapshots__/scenes-app-insights--trends-area.png
index bc2055bb61140..fdd0315060948 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-area.png and b/frontend/__snapshots__/scenes-app-insights--trends-area.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-bar--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-bar--webkit.png
index 9348697847367..5d60dee4f60b7 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-bar--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-bar--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown--webkit.png
index 6542e66ded261..8df383d36fc1b 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown-edit--webkit.png
index 9bfb5ce522765..3a7274819f516 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown-edit.png
index c0c5a2092f525..e32072ec0780d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown.png b/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown.png
index 1f0039036ffa4..03c62e056870b 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--trends-bar-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-bar-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-bar-edit--webkit.png
index b854c985c0849..c9bd130f6cdab 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-bar-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-bar-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-bar-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-bar-edit.png
index 932b2d3d43abc..ffaa1c4bf1988 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-bar-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-bar-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-bar.png b/frontend/__snapshots__/scenes-app-insights--trends-bar.png
index e6b4d9722076b..74a5209277252 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-bar.png and b/frontend/__snapshots__/scenes-app-insights--trends-bar.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-line--webkit.png
index b3a5b20f6394c..81275e0a9df95 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown--webkit.png
index 5a1d695b843d6..ab2904ba751e9 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-edit--webkit.png
index 9d275c34efbf3..966b934574728 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-edit.png
index e308b6b409e0d..ca3343a84046c 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-labels--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-labels--webkit.png
index e2d82fc57c0e0..8f97eb8c1a01c 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-labels--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-labels--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-labels.png b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-labels.png
index 066c2201792a3..48a045de1d451 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-labels.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown-labels.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown.png b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown.png
index 0ac5093e23ca3..d4873d617014e 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-edit--webkit.png
index 1990ae3d264c0..a158e442de8ff 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-edit.png
index b3d789e752710..5e1fb2d08feb2 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-multi--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-multi--webkit.png
index 42561f322039c..225acef8aacb3 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-multi--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-multi--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-multi-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-multi-edit--webkit.png
index 8a47ca33b0fd2..c036f5a792f9e 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-multi-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-multi-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-multi-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-line-multi-edit.png
index 2788c12f3b2c7..ca3654b2fd11d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-multi-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-multi-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line-multi.png b/frontend/__snapshots__/scenes-app-insights--trends-line-multi.png
index 939ae1dea2f56..d2c5a5a81dcc9 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line-multi.png and b/frontend/__snapshots__/scenes-app-insights--trends-line-multi.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-line.png b/frontend/__snapshots__/scenes-app-insights--trends-line.png
index 975132fef1b19..49bbad9f70249 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-line.png and b/frontend/__snapshots__/scenes-app-insights--trends-line.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-number--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-number--webkit.png
index f3161e700a738..a4feb23317dd1 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-number--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-number--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-number-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-number-edit--webkit.png
index 20c2074825f8e..a34e6e1d5e272 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-number-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-number-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-number-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-number-edit.png
index 80c580574079c..d9cf620c1a161 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-number-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-number-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-number.png b/frontend/__snapshots__/scenes-app-insights--trends-number.png
index baf47a94ff5db..03b2456ee4782 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-number.png and b/frontend/__snapshots__/scenes-app-insights--trends-number.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-pie--webkit.png
index 93b7e9b656117..660bb356237ca 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown--webkit.png
index d33d21c2387f1..cadbd8a861f31 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-edit--webkit.png
index e11265b7a23c5..646050c69e70b 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-edit.png
index f83b718feeb79..bd1f3ed00e233 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-labels--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-labels--webkit.png
index 6e89f0b8e8683..082bca2e23f47 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-labels--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-labels--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-labels.png b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-labels.png
index 6177698ddf6dc..7a1c58bf02c1d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-labels.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown-labels.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown.png b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown.png
index dcb273e64439b..bc2f9c129b6f9 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-pie-edit--webkit.png
index a5b457de916b1..3e784f8c855d5 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-pie-edit.png
index c80f95a6464a1..886c9d33a0add 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-pie.png b/frontend/__snapshots__/scenes-app-insights--trends-pie.png
index bea0f178cf14c..c6000ed1654c6 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-pie.png and b/frontend/__snapshots__/scenes-app-insights--trends-pie.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-table--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-table--webkit.png
index 106f7b70d1f54..cee544d679cc5 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-table--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-table--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown--webkit.png
index ff41c7540bfcf..4a32c1bf8df36 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown-edit--webkit.png
index 2d1533eb70717..dc9333bb1780d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown-edit.png
index 2f708f79c912c..f9e6a6f710268 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown.png b/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown.png
index 18487bb88d559..ed70303f61142 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--trends-table-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-table-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-table-edit--webkit.png
index 38c6892a0c112..d71a4ba3b777d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-table-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-table-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-table-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-table-edit.png
index 4a6fe4f1a4daf..43417b1c2f0ac 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-table-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-table-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-table.png b/frontend/__snapshots__/scenes-app-insights--trends-table.png
index bab2405d9ac61..2507ecadf9e8f 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-table.png and b/frontend/__snapshots__/scenes-app-insights--trends-table.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-value--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-value--webkit.png
index f6af074e96923..94e1c6b5604ab 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-value--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-value--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown--webkit.png
index 979febee96067..066eb2c1ac02a 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown-edit--webkit.png
index d3a3dec473f0b..63e0e28282346 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown-edit.png
index fb29412159cd5..f3599c707dd15 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown.png b/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown.png
index 7f099baaf9eab..a0f6e839e7e60 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown.png and b/frontend/__snapshots__/scenes-app-insights--trends-value-breakdown.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-value-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-value-edit--webkit.png
index 362964c3bcf89..140d24237944a 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-value-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-value-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-value-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-value-edit.png
index 91225e794f2b4..c908b3c0a5d9e 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-value-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-value-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-value.png b/frontend/__snapshots__/scenes-app-insights--trends-value.png
index 94177c7f28870..ea8fd3d8fd413 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-value.png and b/frontend/__snapshots__/scenes-app-insights--trends-value.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-world-map--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-world-map--webkit.png
index 25eaf83180416..24462204e7738 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-world-map--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-world-map--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-world-map-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-world-map-edit--webkit.png
index 5ecbf86975a4f..e11671b67ea0a 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-world-map-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--trends-world-map-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-world-map-edit.png b/frontend/__snapshots__/scenes-app-insights--trends-world-map-edit.png
index 4afd8b0955fbd..9fbed136e738d 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-world-map-edit.png and b/frontend/__snapshots__/scenes-app-insights--trends-world-map-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--trends-world-map.png b/frontend/__snapshots__/scenes-app-insights--trends-world-map.png
index 0050ed308e178..cbb62ce7deb40 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--trends-world-map.png and b/frontend/__snapshots__/scenes-app-insights--trends-world-map.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--user-paths--webkit.png b/frontend/__snapshots__/scenes-app-insights--user-paths--webkit.png
index c2354f8a1112d..bd9ba9dbf8a97 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--user-paths--webkit.png and b/frontend/__snapshots__/scenes-app-insights--user-paths--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--user-paths-edit--webkit.png b/frontend/__snapshots__/scenes-app-insights--user-paths-edit--webkit.png
index a09292dd4f0cb..ea0ad2f69c6ae 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--user-paths-edit--webkit.png and b/frontend/__snapshots__/scenes-app-insights--user-paths-edit--webkit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--user-paths-edit.png b/frontend/__snapshots__/scenes-app-insights--user-paths-edit.png
index 7199f4a937fbc..af38b73f25636 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--user-paths-edit.png and b/frontend/__snapshots__/scenes-app-insights--user-paths-edit.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights--user-paths.png b/frontend/__snapshots__/scenes-app-insights--user-paths.png
index 2d4d7040cd6f6..deec9d37f5b61 100644
Binary files a/frontend/__snapshots__/scenes-app-insights--user-paths.png and b/frontend/__snapshots__/scenes-app-insights--user-paths.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--bullet-list.png b/frontend/__snapshots__/scenes-app-notebooks--bullet-list.png
index d196998a7e56f..2b56395785ef6 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--bullet-list.png and b/frontend/__snapshots__/scenes-app-notebooks--bullet-list.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--empty-notebook.png b/frontend/__snapshots__/scenes-app-notebooks--empty-notebook.png
index 2086ed0aa90aa..c6df20187e100 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--empty-notebook.png and b/frontend/__snapshots__/scenes-app-notebooks--empty-notebook.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--headings.png b/frontend/__snapshots__/scenes-app-notebooks--headings.png
index 3186fed28fd49..1d202bf688da1 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--headings.png and b/frontend/__snapshots__/scenes-app-notebooks--headings.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found.png b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found.png
index 0df1f64e9ec3c..6286e7ae27078 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found.png and b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--notebooks-list.png b/frontend/__snapshots__/scenes-app-notebooks--notebooks-list.png
index c9f29c566c2c6..d6e7ef6b4a71f 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--notebooks-list.png and b/frontend/__snapshots__/scenes-app-notebooks--notebooks-list.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--numbered-list.png b/frontend/__snapshots__/scenes-app-notebooks--numbered-list.png
index cbe5aefd199ed..de7c9e016a3d0 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--numbered-list.png and b/frontend/__snapshots__/scenes-app-notebooks--numbered-list.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png b/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png
index e18ecc8d6a5a5..ae267af0034d9 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png and b/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--text-formats.png b/frontend/__snapshots__/scenes-app-notebooks--text-formats.png
index aa872f0a5cfe9..6f7c0b4c36de0 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--text-formats.png and b/frontend/__snapshots__/scenes-app-notebooks--text-formats.png differ
diff --git a/frontend/__snapshots__/scenes-app-notebooks--text-only-notebook.png b/frontend/__snapshots__/scenes-app-notebooks--text-only-notebook.png
index f0ea3f9550997..c475638688418 100644
Binary files a/frontend/__snapshots__/scenes-app-notebooks--text-only-notebook.png and b/frontend/__snapshots__/scenes-app-notebooks--text-only-notebook.png differ
diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration.png
index 94b53793cc3fe..4268b9820e627 100644
Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration.png differ
diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs.png
index f7ea3ec3cff02..fc3f054686e53 100644
Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs.png differ
diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics.png
index 16186b1e522ff..6e4f613841bdf 100644
Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics.png differ
diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page.png
index 2922f7f7736ff..a000f5709360c 100644
Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page.png differ
diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page.png
index 72113b0438d81..d5df660c362ee 100644
Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page.png differ
diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty.png
index b9810d5bf2186..5655e24e12a0c 100644
Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty.png differ
diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page.png
index 80fdf0c1d8632..06bdfb7c4f880 100644
Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page.png differ
diff --git a/frontend/__snapshots__/scenes-app-project-homepage--project-homepage.png b/frontend/__snapshots__/scenes-app-project-homepage--project-homepage.png
index 55081c3b37420..5850c12954b74 100644
Binary files a/frontend/__snapshots__/scenes-app-project-homepage--project-homepage.png and b/frontend/__snapshots__/scenes-app-project-homepage--project-homepage.png differ
diff --git a/frontend/__snapshots__/scenes-app-recordings--recordings-play-lists.png b/frontend/__snapshots__/scenes-app-recordings--recordings-play-lists.png
index c4c27f4db817a..7bb41e1837cc3 100644
Binary files a/frontend/__snapshots__/scenes-app-recordings--recordings-play-lists.png and b/frontend/__snapshots__/scenes-app-recordings--recordings-play-lists.png differ
diff --git a/frontend/__snapshots__/scenes-app-saved-insights--card-view.png b/frontend/__snapshots__/scenes-app-saved-insights--card-view.png
index fd1b5084ad4bd..3349db3182ce2 100644
Binary files a/frontend/__snapshots__/scenes-app-saved-insights--card-view.png and b/frontend/__snapshots__/scenes-app-saved-insights--card-view.png differ
diff --git a/frontend/__snapshots__/scenes-app-saved-insights--empty-state.png b/frontend/__snapshots__/scenes-app-saved-insights--empty-state.png
index 7757d243d548c..7952158fdb025 100644
Binary files a/frontend/__snapshots__/scenes-app-saved-insights--empty-state.png and b/frontend/__snapshots__/scenes-app-saved-insights--empty-state.png differ
diff --git a/frontend/__snapshots__/scenes-app-saved-insights--list-view.png b/frontend/__snapshots__/scenes-app-saved-insights--list-view.png
index 520f2c041c0a8..ae911ef6d0319 100644
Binary files a/frontend/__snapshots__/scenes-app-saved-insights--list-view.png and b/frontend/__snapshots__/scenes-app-saved-insights--list-view.png differ
diff --git a/frontend/__snapshots__/scenes-app-surveys--survey-templates.png b/frontend/__snapshots__/scenes-app-surveys--survey-templates.png
index 069a66dbfbb5b..d888557c99407 100644
Binary files a/frontend/__snapshots__/scenes-app-surveys--survey-templates.png and b/frontend/__snapshots__/scenes-app-surveys--survey-templates.png differ
diff --git a/frontend/__snapshots__/scenes-app-surveys--surveys-list.png b/frontend/__snapshots__/scenes-app-surveys--surveys-list.png
index 012692ee2758d..80ccaa5e006fd 100644
Binary files a/frontend/__snapshots__/scenes-app-surveys--surveys-list.png and b/frontend/__snapshots__/scenes-app-surveys--surveys-list.png differ
diff --git a/frontend/__snapshots__/scenes-other-login--second-factor.png b/frontend/__snapshots__/scenes-other-login--second-factor.png
index 0eda9f6a6d221..d770df97b4345 100644
Binary files a/frontend/__snapshots__/scenes-other-login--second-factor.png and b/frontend/__snapshots__/scenes-other-login--second-factor.png differ
diff --git a/frontend/__snapshots__/scenes-other-login--sso-error.png b/frontend/__snapshots__/scenes-other-login--sso-error.png
index 4bac52c291407..37309681cfb75 100644
Binary files a/frontend/__snapshots__/scenes-other-login--sso-error.png and b/frontend/__snapshots__/scenes-other-login--sso-error.png differ
diff --git a/frontend/__snapshots__/scenes-other-password-reset-complete--default.png b/frontend/__snapshots__/scenes-other-password-reset-complete--default.png
index b08362e5ab1ab..8671219107f0c 100644
Binary files a/frontend/__snapshots__/scenes-other-password-reset-complete--default.png and b/frontend/__snapshots__/scenes-other-password-reset-complete--default.png differ
diff --git a/frontend/__snapshots__/scenes-other-password-reset-complete--invalid-link.png b/frontend/__snapshots__/scenes-other-password-reset-complete--invalid-link.png
index d5f6503dbfa2b..6e928b3ee74ac 100644
Binary files a/frontend/__snapshots__/scenes-other-password-reset-complete--invalid-link.png and b/frontend/__snapshots__/scenes-other-password-reset-complete--invalid-link.png differ
diff --git a/frontend/__snapshots__/scenes-other-settings--settings-organization.png b/frontend/__snapshots__/scenes-other-settings--settings-organization.png
index 05fee3ba22511..0e5752e576d8b 100644
Binary files a/frontend/__snapshots__/scenes-other-settings--settings-organization.png and b/frontend/__snapshots__/scenes-other-settings--settings-organization.png differ
diff --git a/frontend/__snapshots__/scenes-other-settings--settings-project.png b/frontend/__snapshots__/scenes-other-settings--settings-project.png
index 71514ddb64f12..7e0fee45a376d 100644
Binary files a/frontend/__snapshots__/scenes-other-settings--settings-project.png and b/frontend/__snapshots__/scenes-other-settings--settings-project.png differ
diff --git a/frontend/__snapshots__/scenes-other-settings--settings-user.png b/frontend/__snapshots__/scenes-other-settings--settings-user.png
index 5574601d11794..7d18a6db46dd5 100644
Binary files a/frontend/__snapshots__/scenes-other-settings--settings-user.png and b/frontend/__snapshots__/scenes-other-settings--settings-user.png differ
diff --git a/frontend/__snapshots__/scenes-other-unsubscribe--unsubscribe-scene.png b/frontend/__snapshots__/scenes-other-unsubscribe--unsubscribe-scene.png
index 4c1e72c47cc86..e0e34f6fbc61b 100644
Binary files a/frontend/__snapshots__/scenes-other-unsubscribe--unsubscribe-scene.png and b/frontend/__snapshots__/scenes-other-unsubscribe--unsubscribe-scene.png differ
diff --git a/frontend/__snapshots__/scenes-other-verify-email--verify-email-invalid.png b/frontend/__snapshots__/scenes-other-verify-email--verify-email-invalid.png
index ea95c8af90bc0..0291a167335d6 100644
Binary files a/frontend/__snapshots__/scenes-other-verify-email--verify-email-invalid.png and b/frontend/__snapshots__/scenes-other-verify-email--verify-email-invalid.png differ
diff --git a/frontend/__snapshots__/scenes-other-verify-email--verify-email-success.png b/frontend/__snapshots__/scenes-other-verify-email--verify-email-success.png
index 45b7e05851b7a..71aad6c351f8b 100644
Binary files a/frontend/__snapshots__/scenes-other-verify-email--verify-email-success.png and b/frontend/__snapshots__/scenes-other-verify-email--verify-email-success.png differ
diff --git a/frontend/__snapshots__/scenes-other-verify-email--verifying-email.png b/frontend/__snapshots__/scenes-other-verify-email--verifying-email.png
index a6efa516c1cda..ecfc94858c28a 100644
Binary files a/frontend/__snapshots__/scenes-other-verify-email--verifying-email.png and b/frontend/__snapshots__/scenes-other-verify-email--verifying-email.png differ
diff --git a/frontend/src/layout/navigation-3000/Navigation.scss b/frontend/src/layout/navigation-3000/Navigation.scss
index e727859e8c19f..cccca30bc0e4b 100644
--- a/frontend/src/layout/navigation-3000/Navigation.scss
+++ b/frontend/src/layout/navigation-3000/Navigation.scss
@@ -15,6 +15,12 @@
min-width: 0;
overflow: auto;
}
+
+ .BridgePage {
+ background: none;
+ height: 100%;
+ overflow: visible;
+ }
}
.Navigation3000__scene {
diff --git a/frontend/src/layout/navigation-3000/Navigation.tsx b/frontend/src/layout/navigation-3000/Navigation.tsx
index 522dfc2bef618..3dab2a0c34052 100644
--- a/frontend/src/layout/navigation-3000/Navigation.tsx
+++ b/frontend/src/layout/navigation-3000/Navigation.tsx
@@ -12,6 +12,7 @@ import { SceneConfig } from 'scenes/sceneTypes'
import { FlaggedFeature } from 'lib/components/FlaggedFeature'
import { FEATURE_FLAGS } from 'lib/constants'
import { SidePanel } from './sidepanel/SidePanel'
+import { MinimalNavigation } from './components/MinimalNavigation'
export function Navigation({
children,
@@ -21,16 +22,22 @@ export function Navigation({
sceneConfig: SceneConfig | null
}): JSX.Element {
useMountedLogic(themeLogic)
- const { activeNavbarItem } = useValues(navigation3000Logic)
+ const { activeNavbarItem, mode } = useValues(navigation3000Logic)
useEffect(() => {
// FIXME: Include debug notice in a non-obstructing way
document.getElementById('bottom-notice')?.remove()
}, [])
- if (sceneConfig?.layout === 'plain') {
- return <>{children}>
+ if (mode !== 'full') {
+ return (
+