diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index 4e09f52eda7b6..a346ec59367a7 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -60,7 +60,9 @@ jobs: # NOTE: we are at risk of missing a dependency here. We could make # the dependencies more clear if we separated the backend/frontend # code completely + # really we should ignore ee/frontend/** but dorny doesn't support that - 'ee/**/*' + - '!ee/frontend/**' - 'posthog/**/*' - 'bin/*.py' - requirements.txt diff --git a/.github/workflows/ci-frontend.yml b/.github/workflows/ci-frontend.yml index 2ea70218bd608..c586598152fd6 100644 --- a/.github/workflows/ci-frontend.yml +++ b/.github/workflows/ci-frontend.yml @@ -35,6 +35,7 @@ jobs: # NOTE: we are at risk of missing a dependency here. - 'bin/**' - 'frontend/**' + - 'ee/frontend/**' # Make sure we run if someone is explicitly change the workflow - .github/workflows/ci-frontend.yml # various JS config files @@ -117,18 +118,23 @@ jobs: jest: runs-on: ubuntu-latest needs: changes - name: Jest test (${{ matrix.chunk }}) + name: Jest test (${{ matrix.segment }} - ${{ matrix.chunk }}) strategy: # If one test fails, still run the others fail-fast: false matrix: + segment: ['FOSS', 'EE'] 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: Remove ee + if: needs.changes.outputs.frontend == 'true' && matrix.segment == 'FOSS' + run: rm -rf ee + - name: Install pnpm if: needs.changes.outputs.frontend == 'true' uses: pnpm/action-setup@v2 diff --git a/.github/workflows/container-images-cd.yml b/.github/workflows/container-images-cd.yml index a433c23be2317..c7e64245640fd 100644 --- a/.github/workflows/container-images-cd.yml +++ b/.github/workflows/container-images-cd.yml @@ -102,6 +102,7 @@ jobs: message: | { "image_tag": "${{ steps.build.outputs.digest }}", + "image_tag_unit": "${{ steps.build-unit.outputs.digest }}", "context": ${{ toJson(github) }} } diff --git a/.github/workflows/storybook-chromatic.yml b/.github/workflows/storybook-chromatic.yml index 02397ca2586db..cdf2ba0504a51 100644 --- a/.github/workflows/storybook-chromatic.yml +++ b/.github/workflows/storybook-chromatic.yml @@ -54,7 +54,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 container: - image: mcr.microsoft.com/playwright:v1.29.2 # Same as @storybook/test-runner@0.13's dependency + image: mcr.microsoft.com/playwright:v1.32.2 # Same as @storybook/test-runner@0.15.2's dependency strategy: fail-fast: false matrix: @@ -144,6 +144,7 @@ jobs: HOME: /root # Update snapshots for PRs on the main repo, verify on forks, which don't have access to PostHog Bot VARIANT: ${{ github.event.pull_request.head.repo.full_name == github.repository && 'update' || 'verify' }} + STORYBOOK_SKIP_TAGS: 'test-skip,test-skip-${{ matrix.browser }}' run: | pnpm test:visual-regression:stories:ci:$VARIANT --browsers ${{ matrix.browser }} --shard ${{ matrix.shard }}/$SHARD_COUNT diff --git a/.storybook/decorators/withSnapshotsDisabled.tsx b/.storybook/decorators/withSnapshotsDisabled.tsx deleted file mode 100644 index 6e7598c7a9c7e..0000000000000 --- a/.storybook/decorators/withSnapshotsDisabled.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Decorator } from '@storybook/react' -import { inStorybookTestRunner } from 'lib/utils' - -/** Workaround for https://github.com/storybookjs/test-runner/issues/74 */ -// TODO: Smoke-test all the stories by removing this decorator, once all the stories pass -export const withSnapshotsDisabled: Decorator = (Story, { parameters }) => { - if (parameters?.testOptions?.skip && inStorybookTestRunner()) { - return <>Disabled for Test Runner - } - return -} diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx index 091884046929e..fe45ae823c620 100644 --- a/.storybook/preview.tsx +++ b/.storybook/preview.tsx @@ -8,7 +8,6 @@ import { getStorybookAppContext } from './app-context' import { withKea } from './decorators/withKea' import { withMockDate } from './decorators/withMockDate' import { defaultMocks } from '~/mocks/handlers' -import { withSnapshotsDisabled } from './decorators/withSnapshotsDisabled' import { withFeatureFlags } from './decorators/withFeatureFlags' import { withTheme } from './decorators/withTheme' @@ -79,7 +78,6 @@ export const parameters: Parameters = { // Setup storybook global decorators. See https://storybook.js.org/docs/react/writing-stories/decorators#global-decorators export const decorators: Meta['decorators'] = [ - withSnapshotsDisabled, // Make sure the msw service worker is started, and reset the handlers to defaults. withKea, // Allow us to time travel to ensure our stories don't change over time. diff --git a/.storybook/test-runner.ts b/.storybook/test-runner.ts index 8decd13e17a65..605e79c6b1066 100644 --- a/.storybook/test-runner.ts +++ b/.storybook/test-runner.ts @@ -1,11 +1,12 @@ import { toMatchImageSnapshot } from 'jest-image-snapshot' -import { getStoryContext, TestRunnerConfig, TestContext } from '@storybook/test-runner' -import type { Locator, Page, LocatorScreenshotOptions } from 'playwright-core' +import { getStoryContext, TestRunnerConfig, TestContext, waitForPageReady } from '@storybook/test-runner' +import type { Locator, Page, LocatorScreenshotOptions } from '@playwright/test' import type { Mocks } from '~/mocks/utils' -import { StoryContext } from '@storybook/types' +import { StoryContext } from '@storybook/csf' // 'firefox' is technically supported too, but as of June 2023 it has memory usage issues that make is unusable type SupportedBrowserName = 'chromium' | 'webkit' +type SnapshotTheme = 'legacy' | 'light' | 'dark' // Extend Storybook interface `Parameters` with Chromatic parameters declare module '@storybook/types' { @@ -13,11 +14,6 @@ declare module '@storybook/types' { options?: any layout?: 'padded' | 'fullscreen' | 'centered' testOptions?: { - /** - * Whether the test should be a no-op (doesn't jest.skip as @storybook/test-runner doesn't allow that). - * @default false - */ - skip?: boolean /** * Whether we should wait for all loading indicators to disappear before taking a snapshot. * @default true @@ -40,12 +36,18 @@ declare module '@storybook/types' { snapshotBrowsers?: SupportedBrowserName[] /** If taking a component snapshot, you can narrow it down by specifying the selector. */ snapshotTargetSelector?: string + /** Include snapshots of buttons in 3000. */ + include3000?: boolean } msw?: { mocks?: Mocks } [name: string]: any } + + interface Globals { + theme: SnapshotTheme + } } const RETRY_TIMES = 3 @@ -71,19 +73,20 @@ module.exports = { jest.retryTimes(RETRY_TIMES, { logErrorsBeforeRetry: true }) jest.setTimeout(JEST_TIMEOUT_MS) }, - async postRender(page, context) { + async postVisit(page, context) { const browserContext = page.context() - const storyContext = (await getStoryContext(page, context)) as StoryContext - const { skip = false, snapshotBrowsers = ['chromium'] } = storyContext.parameters?.testOptions ?? {} + const storyContext = await getStoryContext(page, context) + const { snapshotBrowsers = ['chromium'] } = storyContext.parameters?.testOptions ?? {} browserContext.setDefaultTimeout(PLAYWRIGHT_TIMEOUT_MS) - if (!skip) { - const currentBrowser = browserContext.browser()!.browserType().name() as SupportedBrowserName - if (snapshotBrowsers.includes(currentBrowser)) { - await expectStoryToMatchSnapshot(page, context, storyContext, currentBrowser) - } + const currentBrowser = browserContext.browser()!.browserType().name() as SupportedBrowserName + if (snapshotBrowsers.includes(currentBrowser)) { + await expectStoryToMatchSnapshot(page, context, storyContext, currentBrowser) } }, + tags: { + skip: ['test-skip'], // NOTE: This is overridden by the CI action storybook-chromatic.yml to include browser specific skipping + }, } as TestRunnerConfig async function expectStoryToMatchSnapshot( @@ -96,12 +99,14 @@ async function expectStoryToMatchSnapshot( waitForLoadersToDisappear = true, waitForSelector, excludeNavigationFromSnapshot = false, + include3000 = false, } = storyContext.parameters?.testOptions ?? {} let check: ( page: Page, context: TestContext, browser: SupportedBrowserName, + theme: SnapshotTheme, targetSelector?: string ) => Promise if (storyContext.parameters?.layout === 'fullscreen') { @@ -114,8 +119,7 @@ async function expectStoryToMatchSnapshot( check = expectStoryToMatchComponentSnapshot } - // Wait for story to load - await page.waitForSelector('.sb-show-preparing-story', { state: 'detached' }) + await waitForPageReady(page) await page.evaluate(() => { // Stop all animations for consistent snapshots document.body.classList.add('storybook-test-runner') @@ -127,44 +131,62 @@ async function expectStoryToMatchSnapshot( await page.waitForSelector(waitForSelector) } - await page.waitForTimeout(400) // Wait for animations to finish + await page.waitForTimeout(400) // Wait for effects to finish // Wait for all images to load await page.waitForFunction(() => Array.from(document.querySelectorAll('img')).every((i: HTMLImageElement) => i.complete) ) - await check(page, context, browser, storyContext.parameters?.testOptions?.snapshotTargetSelector) + await check(page, context, browser, 'legacy', storyContext.parameters?.testOptions?.snapshotTargetSelector) + + if (include3000) { + await page.evaluate(() => { + document.body.classList.add('posthog-3000') + document.body.setAttribute('theme', 'light') + }) + + await check(page, context, browser, 'light', storyContext.parameters?.testOptions?.snapshotTargetSelector) + + await page.evaluate(() => { + document.body.setAttribute('theme', 'dark') + }) + + await check(page, context, browser, 'dark', storyContext.parameters?.testOptions?.snapshotTargetSelector) + } } async function expectStoryToMatchFullPageSnapshot( page: Page, context: TestContext, - browser: SupportedBrowserName + browser: SupportedBrowserName, + theme: SnapshotTheme ): Promise { - await expectLocatorToMatchStorySnapshot(page, context, browser) + await expectLocatorToMatchStorySnapshot(page, context, browser, theme) } async function expectStoryToMatchSceneSnapshot( page: Page, context: TestContext, - browser: SupportedBrowserName + browser: SupportedBrowserName, + theme: SnapshotTheme ): Promise { await page.evaluate(() => { // The screenshot gets clipped by the overflow hidden of the sidebar document.querySelector('.SideBar')?.setAttribute('style', 'overflow: visible;') }) - await expectLocatorToMatchStorySnapshot(page.locator('.main-app-content'), context, browser) + await expectLocatorToMatchStorySnapshot(page.locator('.main-app-content'), context, browser, theme) } async function expectStoryToMatchComponentSnapshot( page: Page, context: TestContext, browser: SupportedBrowserName, + theme: SnapshotTheme, targetSelector: string = '#storybook-root' ): Promise { - await page.evaluate(() => { + await page.evaluate((theme) => { const rootEl = document.getElementById('storybook-root') if (!rootEl) { throw new Error('Could not find root element') @@ -188,21 +210,27 @@ async function expectStoryToMatchComponentSnapshot( rootEl.style.width = `${-popoverBoundingClientRect.left + currentRootBoundingClientRect.right}px` } }) - // Make the body transparent to take the screenshot without background - document.body.style.background = 'transparent' - }) + // For legacy style, make the body transparent to take the screenshot without background + document.body.style.background = theme === 'legacy' ? 'transparent' : 'var(--bg-3000)' + }, theme) - await expectLocatorToMatchStorySnapshot(page.locator(targetSelector), context, browser, { omitBackground: true }) + await expectLocatorToMatchStorySnapshot(page.locator(targetSelector), context, browser, theme, { + omitBackground: true, + }) } async function expectLocatorToMatchStorySnapshot( locator: Locator | Page, context: TestContext, browser: SupportedBrowserName, + theme: SnapshotTheme, options?: LocatorScreenshotOptions ): Promise { const image = await locator.screenshot({ ...options }) let customSnapshotIdentifier = context.id + if (theme !== 'legacy') { + customSnapshotIdentifier += `--${theme}` + } if (browser !== 'chromium') { customSnapshotIdentifier += `--${browser}` } diff --git a/Dockerfile.playwright b/Dockerfile.playwright index 7591a53141b18..e911be228f55c 100644 --- a/Dockerfile.playwright +++ b/Dockerfile.playwright @@ -3,7 +3,7 @@ # We do this to ensure our reference images for visual regression tests are the same during development and in CI. # -FROM mcr.microsoft.com/playwright:v1.29.2 +FROM mcr.microsoft.com/playwright:v1.32.2 WORKDIR /work diff --git a/cypress/e2e/surveys.cy.ts b/cypress/e2e/surveys.cy.ts index 17805c09a8684..641f9b7a9a2b3 100644 --- a/cypress/e2e/surveys.cy.ts +++ b/cypress/e2e/surveys.cy.ts @@ -165,4 +165,58 @@ describe('Surveys', () => { cy.get('[data-attr=delete-survey]').click() cy.get('.Toastify__toast-body').contains('Survey deleted').should('be.visible') }) + + it('creates a new multiple choice survey with an open-ended choice', () => { + cy.get('h1').should('contain', 'Surveys') + cy.get('[data-attr=new-survey]').click() + cy.get('[data-attr=new-blank-survey]').click() + + // add a multiple choice question with an open-ended question + cy.get('[data-attr=survey-name]').focus().type(name).should('have.value', name) + cy.get('[data-attr="survey-question-type-0"]').click() + cy.contains('Multiple choice select').click() + cy.get('button').contains('Add open-ended choice').click() + + // check default open-ended choice form input and appearance after + // open-ended choice was added + cy.get('.LemonInput__input[value="Other"]') + cy.get('.choice-option').eq(3).contains('Other:') + cy.get('.choice-option').eq(3).find('input[type="text"]').should('have.value', '') + + // typing in open-ended question's appearance automatically checks the + // checkbox + cy.get('.choice-option').eq(3).find('input[type="checkbox"]').should('not.be.checked') + cy.get('.choice-option').eq(3).find('input[type="text"]').type('Outreach') + cy.get('.choice-option').eq(3).find('input[type="checkbox"]').should('be.checked') + + // clicking on open-ended question's appearance label unchecks or checks + // the checkbox + cy.get('.choice-option').eq(3).click() + cy.get('.choice-option').eq(3).find('input[type="checkbox"]').should('not.be.checked') + cy.get('.choice-option').eq(3).click() + cy.get('.choice-option').eq(3).find('input[type="checkbox"]').should('be.checked') + + // removing text in open-ended question's appearance automatically + // unchecks the checkbox + cy.get('.choice-option').eq(3).find('input[type="text"]').clear() + + // open-ended question label doesn't change even if appearance input + // changes + cy.get('.LemonInput__input[value="Other"]') + + // change open-ended choice after the label was added + cy.contains('Choices').parent().find('input[type="text"]').eq(3).clear() + cy.contains('Choices').parent().find('input[type="text"]').eq(3).type('First Choice') + cy.get('.choice-option').eq(3).contains('First Choice:') + + // attempt to create and save survey + cy.get('[data-attr=save-survey]').first().click() + + // after save there should be a launch button + cy.get('button[data-attr="launch-survey"]').should('have.text', 'Launch') + + cy.clickNavMenu('surveys') + cy.get('[data-attr=surveys-table]').should('contain', name) + cy.get(`[data-row-key="${name}"]`).contains(name).click() + }) }) diff --git a/cypress/e2e/toolbar.cy.ts b/cypress/e2e/toolbar.cy.ts index 0d7ad22fcd0c2..cc0765918a084 100644 --- a/cypress/e2e/toolbar.cy.ts +++ b/cypress/e2e/toolbar.cy.ts @@ -11,7 +11,7 @@ describe('Toolbar', () => { .then((href) => { cy.visit(href) }) - cy.get('#__POSTHOG_TOOLBAR__').shadow().find('.floating-toolbar-button').should('exist') + cy.get('#__POSTHOG_TOOLBAR__').shadow().find('.Toolbar').should('exist') }) }) diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts index b2ce0bb71285c..ce2feaa10d600 100644 --- a/cypress/support/e2e.ts +++ b/cypress/support/e2e.ts @@ -33,6 +33,7 @@ beforeEach(() => { 'surveys-new-creation-flow': true, 'surveys-results-visualizations': true, 'auto-redirect': true, + 'surveys-open-choice': true, notebooks: true, }) ) diff --git a/ee/frontend/exports.ts b/ee/frontend/exports.ts new file mode 100644 index 0000000000000..29d80016d730c --- /dev/null +++ b/ee/frontend/exports.ts @@ -0,0 +1,13 @@ +import { PostHogEE } from '@posthog/ee/types' + +const myTestCode = (): void => { + // eslint-disable-next-line no-console + console.log('it works!') +} + +const postHogEE: PostHogEE = { + enabled: true, + myTestCode, +} + +export default postHogEE diff --git a/frontend/@posthog/ee/exports.ts b/frontend/@posthog/ee/exports.ts new file mode 100644 index 0000000000000..96d7dc5a5e93d --- /dev/null +++ b/frontend/@posthog/ee/exports.ts @@ -0,0 +1,7 @@ +import { PostHogEE } from './types' + +const posthogEE: PostHogEE = { + enabled: false, +} + +export default posthogEE diff --git a/frontend/@posthog/ee/types.ts b/frontend/@posthog/ee/types.ts new file mode 100644 index 0000000000000..7270631c7c78f --- /dev/null +++ b/frontend/@posthog/ee/types.ts @@ -0,0 +1,5 @@ +// NOTE: All exported items from the EE module _must_ be optionally defined to ensure we work well with FOSS +export type PostHogEE = { + enabled: boolean + myTestCode?: () => void +} diff --git a/frontend/__snapshots__/components-cards-insight-card--insight-card.png b/frontend/__snapshots__/components-cards-insight-card--insight-card.png index eaa0ed7df25ed..0a38b26952afc 100644 Binary files a/frontend/__snapshots__/components-cards-insight-card--insight-card.png and b/frontend/__snapshots__/components-cards-insight-card--insight-card.png differ diff --git a/frontend/__snapshots__/components-compact-list--compact-list.png b/frontend/__snapshots__/components-compact-list--compact-list.png index 4a4b5e8704410..1ab5cccecf7f1 100644 Binary files a/frontend/__snapshots__/components-compact-list--compact-list.png and b/frontend/__snapshots__/components-compact-list--compact-list.png differ diff --git a/frontend/__snapshots__/exporter-exporter--dashboard.png b/frontend/__snapshots__/exporter-exporter--dashboard.png index 91372fefe3335..f9f627a9ec7fd 100644 Binary files a/frontend/__snapshots__/exporter-exporter--dashboard.png and b/frontend/__snapshots__/exporter-exporter--dashboard.png differ diff --git a/frontend/__snapshots__/exporter-exporter--funnel-left-to-right-breakdown-insight.png b/frontend/__snapshots__/exporter-exporter--funnel-left-to-right-breakdown-insight.png index aa5a9eab7354f..310cd26b65415 100644 Binary files a/frontend/__snapshots__/exporter-exporter--funnel-left-to-right-breakdown-insight.png and b/frontend/__snapshots__/exporter-exporter--funnel-left-to-right-breakdown-insight.png differ diff --git a/frontend/__snapshots__/exporter-exporter--funnel-left-to-right-insight.png b/frontend/__snapshots__/exporter-exporter--funnel-left-to-right-insight.png index dd92bf6b0ef79..d4c096567c39b 100644 Binary files a/frontend/__snapshots__/exporter-exporter--funnel-left-to-right-insight.png and b/frontend/__snapshots__/exporter-exporter--funnel-left-to-right-insight.png differ diff --git a/frontend/__snapshots__/exporter-exporter--trends-number-insight.png b/frontend/__snapshots__/exporter-exporter--trends-number-insight.png index e661eaa4de199..67b2a70ddeb75 100644 Binary files a/frontend/__snapshots__/exporter-exporter--trends-number-insight.png and b/frontend/__snapshots__/exporter-exporter--trends-number-insight.png differ diff --git a/frontend/__snapshots__/filters-cohort-filters-fields-number--basic.png b/frontend/__snapshots__/filters-cohort-filters-fields-number--basic.png index f8cb1193d87e2..d9d0a7dd0ada5 100644 Binary files a/frontend/__snapshots__/filters-cohort-filters-fields-number--basic.png and b/frontend/__snapshots__/filters-cohort-filters-fields-number--basic.png differ diff --git a/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters.png b/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters.png index 4bf204ad1e606..d90e64ea54ca3 100644 Binary files a/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters.png and b/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters.png differ diff --git a/frontend/__snapshots__/filters-propertyfilters--with-no-close-button.png b/frontend/__snapshots__/filters-propertyfilters--with-no-close-button.png index d6139bbdf9627..511e5bcc051b4 100644 Binary files a/frontend/__snapshots__/filters-propertyfilters--with-no-close-button.png and b/frontend/__snapshots__/filters-propertyfilters--with-no-close-button.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--positioning.png b/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--positioning.png index e672243819df7..111163f5e184b 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--positioning.png and b/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--positioning.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--active--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--active--dark.png new file mode 100644 index 0000000000000..8279e9b8cd294 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--active--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--active--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--active--light.png new file mode 100644 index 0000000000000..ebd2279e73099 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--active--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png new file mode 100644 index 0000000000000..8e0e51d495afb Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png new file mode 100644 index 0000000000000..db4eb5d6684a6 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--default--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--default--dark.png new file mode 100644 index 0000000000000..699a1a4e5e4d5 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--default--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--default--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--default--light.png new file mode 100644 index 0000000000000..f778b0439282a Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--default--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--disabled-with-reason--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--disabled-with-reason--dark.png new file mode 100644 index 0000000000000..74b31ddb77194 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--disabled-with-reason--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--disabled-with-reason--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--disabled-with-reason--light.png new file mode 100644 index 0000000000000..0f28786e0fbe0 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--disabled-with-reason--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--full-width--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--full-width--dark.png new file mode 100644 index 0000000000000..b63e3339a6b68 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--full-width--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--full-width--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--full-width--light.png new file mode 100644 index 0000000000000..d718129f7907f Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--full-width--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--loading--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--loading--dark.png new file mode 100644 index 0000000000000..6a30d34a48bcd Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--loading--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--loading--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--loading--light.png new file mode 100644 index 0000000000000..de7b523f88f42 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--loading--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--loading-via-on-click--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--loading-via-on-click--dark.png new file mode 100644 index 0000000000000..7eb76364e08f0 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--loading-via-on-click--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--loading-via-on-click--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--loading-via-on-click--light.png new file mode 100644 index 0000000000000..994f60c90278f Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--loading-via-on-click--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--menu-buttons--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--menu-buttons--dark.png new file mode 100644 index 0000000000000..03b53301a1c77 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--menu-buttons--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--menu-buttons--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--menu-buttons--light.png new file mode 100644 index 0000000000000..efd626e2f3b86 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--menu-buttons--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--more--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--more--dark.png new file mode 100644 index 0000000000000..f9c2569eb719a Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--more--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--more--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--more--light.png new file mode 100644 index 0000000000000..e254f362a5bb7 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--more--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--no-padding--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--no-padding--dark.png new file mode 100644 index 0000000000000..2a4966cad0fdb Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--no-padding--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--no-padding--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--no-padding--light.png new file mode 100644 index 0000000000000..ef8663f497b8f Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--no-padding--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--sizes--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--sizes--dark.png new file mode 100644 index 0000000000000..cd4718833510a Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--sizes--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--sizes--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--sizes--light.png new file mode 100644 index 0000000000000..059dffd093401 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--sizes--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--sizes-icon-only--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--sizes-icon-only--dark.png new file mode 100644 index 0000000000000..d6554973cad8a Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--sizes-icon-only--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--sizes-icon-only--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--sizes-icon-only--light.png new file mode 100644 index 0000000000000..27845dc2518ec Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--sizes-icon-only--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--text-only--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--text-only--dark.png new file mode 100644 index 0000000000000..78e1b2f4546e5 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--text-only--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--text-only--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--text-only--light.png new file mode 100644 index 0000000000000..1a35c75292b31 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--text-only--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--types-and-statuses--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--types-and-statuses--dark.png new file mode 100644 index 0000000000000..7a7cff21dcbb6 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--types-and-statuses--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--types-and-statuses--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--types-and-statuses--light.png new file mode 100644 index 0000000000000..952afc91d0716 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--types-and-statuses--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-bottom--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-bottom--dark.png new file mode 100644 index 0000000000000..02d52eb16097f Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-bottom--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-bottom--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-bottom--light.png new file mode 100644 index 0000000000000..1f688eb7250a0 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-bottom--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-right--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-right--dark.png new file mode 100644 index 0000000000000..4870210c00208 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-right--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-right--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-right--light.png new file mode 100644 index 0000000000000..7ddb04f2efb72 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-dropdown-to-the-right--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-side-action--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-side-action--dark.png new file mode 100644 index 0000000000000..d6e5ffff89ace Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-side-action--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-side-action--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-side-action--light.png new file mode 100644 index 0000000000000..4ae32b1903e2b Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-side-action--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-side-icon--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-side-icon--dark.png new file mode 100644 index 0000000000000..09b14d5bbcde6 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-side-icon--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-side-icon--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-side-icon--light.png new file mode 100644 index 0000000000000..8809b1fd96925 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-side-icon--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-tooltip--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-tooltip--dark.png new file mode 100644 index 0000000000000..699a1a4e5e4d5 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-tooltip--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-tooltip--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-tooltip--light.png new file mode 100644 index 0000000000000..f778b0439282a Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-tooltip--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-very-long-popover-to-the-bottom--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-very-long-popover-to-the-bottom--dark.png new file mode 100644 index 0000000000000..02d52eb16097f Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-very-long-popover-to-the-bottom--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--with-very-long-popover-to-the-bottom--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--with-very-long-popover-to-the-bottom--light.png new file mode 100644 index 0000000000000..1f688eb7250a0 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-lemon-button--with-very-long-popover-to-the-bottom--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--custom-styles.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--custom-styles.png index bc7634e3b5f1e..92882cab397a8 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--custom-styles.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--custom-styles.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--default.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--default.png index 3ac0dedd31030..9e1bea26011c1 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--default.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--default.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--friday-first.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--friday-first.png index 8cc57d7815d4b..751a6708b994f 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--friday-first.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--friday-first.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--monday-first.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--monday-first.png index 0e49faf8d2454..c2af14074c91a 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--monday-first.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--monday-first.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--multiple-months.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--multiple-months.png index f17a82b5c17f5..a79d0f0a89777 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--multiple-months.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--multiple-months.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--saturday-first.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--saturday-first.png index d22c3d4b650b3..5a0879568f37e 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--saturday-first.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--saturday-first.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--sunday-first.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--sunday-first.png index 3ac0dedd31030..9e1bea26011c1 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--sunday-first.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--sunday-first.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--thursday-first.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--thursday-first.png index 2daa09266b125..854876aec0706 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--thursday-first.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--thursday-first.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--tuesday-first.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--tuesday-first.png index 5035ace9f02d5..34d43dec75bca 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--tuesday-first.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--tuesday-first.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--wednesday-first.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--wednesday-first.png index 2677654470c84..d1ca9e9a54ff5 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--wednesday-first.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar--wednesday-first.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-range--lemon-calendar-range.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-range--lemon-calendar-range.png index 4c4220ef11640..b5e2113ee71af 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-range--lemon-calendar-range.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-range--lemon-calendar-range.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-range-inline--lemon-calendar-range-inline.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-range-inline--lemon-calendar-range-inline.png index 4d72144b7b205..6b9f4b17649a5 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-range-inline--lemon-calendar-range-inline.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-range-inline--lemon-calendar-range-inline.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-select--lemon-calendar-select.png b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-select--lemon-calendar-select.png index 1c7c6fa99c2ed..8ea8124973d82 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-select--lemon-calendar-select.png and b/frontend/__snapshots__/lemon-ui-lemon-calendar-lemon-calendar-select--lemon-calendar-select.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-input--small.png b/frontend/__snapshots__/lemon-ui-lemon-input--small.png index ef6b6ac7089dc..ab5e557060841 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-input--small.png and b/frontend/__snapshots__/lemon-ui-lemon-input--small.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default.png index bfbdc35d91150..dfe7248daa59f 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width.png index bfbdc35d91150..dfe7248daa59f 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small.png index 20eaad96cc7f8..8ef1ffe9b510e 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-select--long-options.png b/frontend/__snapshots__/lemon-ui-lemon-select--long-options.png index f9d8d709b0563..01c803c849fb2 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-select--long-options.png and b/frontend/__snapshots__/lemon-ui-lemon-select--long-options.png differ diff --git a/frontend/__snapshots__/lemon-ui-textfit--basic.png b/frontend/__snapshots__/lemon-ui-textfit--basic.png new file mode 100644 index 0000000000000..269bfc9cfad86 Binary files /dev/null and b/frontend/__snapshots__/lemon-ui-textfit--basic.png differ diff --git a/frontend/__snapshots__/lemon-ui-utilities--overview.png b/frontend/__snapshots__/lemon-ui-utilities--overview.png index 646796a14a8f2..57866050bab70 100644 Binary files a/frontend/__snapshots__/lemon-ui-utilities--overview.png and b/frontend/__snapshots__/lemon-ui-utilities--overview.png differ diff --git a/frontend/__snapshots__/posthog-3000-navigation--navigation-3000.png b/frontend/__snapshots__/posthog-3000-navigation--navigation-3000.png index bf6d08b1cb083..9c4e289199783 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 87cd957353f8c..a0e2068387f91 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-dashboards--edit.png b/frontend/__snapshots__/scenes-app-dashboards--edit.png index 0bd4f10c2b233..89cb4fa56f224 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 9f1dac8d8c809..11b82f1a6edce 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-experiments--complete-funnel-experiment.png b/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment.png index 0c9084824591a..3831be858dd60 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-feature-flags--edit-feature-flag.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag.png index 9fe8b83975eb5..af83f781707c8 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag.png index 45cc7c6c7b4d5..e2d2e1bbd2679 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag.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 613e89cdbc0d8..5ee7a8708613f 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-left-to-right--webkit.png b/frontend/__snapshots__/scenes-app-insights--funnel-left-to-right--webkit.png index 93a2510edbd3e..336a737d983af 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 88fce2b75ec39..b22467c95b46c 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 234167ed34ceb..8bcadaeddb713 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 8be9ffc926019..48c95635cae74 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 8eaedc5c1d3fa..f7f0a786c5d30 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 87320f1ad5b19..9a4387639a76b 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 92811307a20d4..4cf0295e84e27 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 ee0abcee40c6b..456b5fd067465 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-top-to-bottom.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom.png index 8760764ed3a04..1a4722fdb1a6f 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--trends-number--webkit.png b/frontend/__snapshots__/scenes-app-insights--trends-number--webkit.png index a4feb23317dd1..2615d368706cd 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 a34e6e1d5e272..635203fb3d413 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 d9cf620c1a161..6924135553179 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 03b2456ee4782..693dd022b93e9 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-notebooks--recordings-playlist.png b/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist.png index ae267af0034d9..b69055ad3d2ec 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-persons-groups--cohorts.png b/frontend/__snapshots__/scenes-app-persons-groups--cohorts.png new file mode 100644 index 0000000000000..e1b37e1f46562 Binary files /dev/null and b/frontend/__snapshots__/scenes-app-persons-groups--cohorts.png differ diff --git a/frontend/__snapshots__/scenes-app-persons-groups--groups.png b/frontend/__snapshots__/scenes-app-persons-groups--groups.png new file mode 100644 index 0000000000000..92ce45fd149ad Binary files /dev/null and b/frontend/__snapshots__/scenes-app-persons-groups--groups.png differ diff --git a/frontend/__snapshots__/scenes-app-persons-groups--persons.png b/frontend/__snapshots__/scenes-app-persons-groups--persons.png new file mode 100644 index 0000000000000..b2ff5023a1c61 Binary files /dev/null and b/frontend/__snapshots__/scenes-app-persons-groups--persons.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 5850c12954b74..b7a45b2b53c70 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-saved-insights--list-view.png b/frontend/__snapshots__/scenes-app-saved-insights--list-view.png index ae911ef6d0319..8bfe21cb3985b 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-not-found.png b/frontend/__snapshots__/scenes-app-surveys--survey-not-found.png index 711d125b3d17e..97cb2b5d1c080 100644 Binary files a/frontend/__snapshots__/scenes-app-surveys--survey-not-found.png and b/frontend/__snapshots__/scenes-app-surveys--survey-not-found.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--actions-dark.png b/frontend/__snapshots__/scenes-other-toolbar--actions-dark.png new file mode 100644 index 0000000000000..ff9e920010a2d Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--actions-dark.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--actions.png b/frontend/__snapshots__/scenes-other-toolbar--actions.png new file mode 100644 index 0000000000000..4c7de7b8f2d84 Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--actions.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--default-dark.png b/frontend/__snapshots__/scenes-other-toolbar--default-dark.png new file mode 100644 index 0000000000000..5ce4a063abdee Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--default-dark.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--default.png b/frontend/__snapshots__/scenes-other-toolbar--default.png new file mode 100644 index 0000000000000..a44a4554fe46e Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--default.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--feature-flags-dark.png b/frontend/__snapshots__/scenes-other-toolbar--feature-flags-dark.png new file mode 100644 index 0000000000000..6b5cb0fd9d37f Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--feature-flags-dark.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--feature-flags.png b/frontend/__snapshots__/scenes-other-toolbar--feature-flags.png new file mode 100644 index 0000000000000..76b528f09ea3d Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--feature-flags.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--heatmap-dark.png b/frontend/__snapshots__/scenes-other-toolbar--heatmap-dark.png new file mode 100644 index 0000000000000..fcee0abbf1035 Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--heatmap-dark.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--heatmap.png b/frontend/__snapshots__/scenes-other-toolbar--heatmap.png new file mode 100644 index 0000000000000..37544f9efe3d7 Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--heatmap.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--inspect-dark.png b/frontend/__snapshots__/scenes-other-toolbar--inspect-dark.png new file mode 100644 index 0000000000000..ecf7693b6e951 Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--inspect-dark.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--inspect.png b/frontend/__snapshots__/scenes-other-toolbar--inspect.png new file mode 100644 index 0000000000000..92ed2deac7d37 Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--inspect.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--minimized-dark.png b/frontend/__snapshots__/scenes-other-toolbar--minimized-dark.png new file mode 100644 index 0000000000000..1f1fcb514fa28 Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--minimized-dark.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--minimized.png b/frontend/__snapshots__/scenes-other-toolbar--minimized.png new file mode 100644 index 0000000000000..9cb08f787e2c3 Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--minimized.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar--unauthenticated.png b/frontend/__snapshots__/scenes-other-toolbar--unauthenticated.png new file mode 100644 index 0000000000000..1f0926ce0587c Binary files /dev/null and b/frontend/__snapshots__/scenes-other-toolbar--unauthenticated.png differ diff --git a/frontend/__snapshots__/scenes-other-toolbar-components--actions-with-results.png b/frontend/__snapshots__/scenes-other-toolbar-components--actions-with-results.png deleted file mode 100644 index 1ab262187fb5a..0000000000000 Binary files a/frontend/__snapshots__/scenes-other-toolbar-components--actions-with-results.png and /dev/null differ diff --git a/frontend/__snapshots__/scenes-other-toolbar-components--actions.png b/frontend/__snapshots__/scenes-other-toolbar-components--actions.png deleted file mode 100644 index de9b70d74cce8..0000000000000 Binary files a/frontend/__snapshots__/scenes-other-toolbar-components--actions.png and /dev/null differ diff --git a/frontend/src/layout/GlobalModals.tsx b/frontend/src/layout/GlobalModals.tsx index e2041d0f72dc8..d58ad3ee84d33 100644 --- a/frontend/src/layout/GlobalModals.tsx +++ b/frontend/src/layout/GlobalModals.tsx @@ -1,7 +1,7 @@ import { LemonModal } from '@posthog/lemon-ui' import { actions, kea, path, reducers, useActions, useValues } from 'kea' import { FlaggedFeature } from 'lib/components/FlaggedFeature' -import { HedgehogBuddyWithLogic } from 'lib/components/HedgehogBuddy/HedgehogBuddy' +import { HedgehogBuddyWithLogic } from 'lib/components/HedgehogBuddy/HedgehogBuddyWithLogic' import { Prompt } from 'lib/logic/newPrompt/Prompt' import { Setup2FA } from 'scenes/authentication/Setup2FA' import { CreateOrganizationModal } from 'scenes/organization/CreateOrganizationModal' diff --git a/frontend/src/layout/navigation-3000/Navigation.scss b/frontend/src/layout/navigation-3000/Navigation.scss index 431fe25d61728..4cb30d68b47d4 100644 --- a/frontend/src/layout/navigation-3000/Navigation.scss +++ b/frontend/src/layout/navigation-3000/Navigation.scss @@ -57,14 +57,9 @@ background: var(--accent-3000); .LemonButton { - min-height: 2.25rem !important; // Reduce minimum height - - > span { + .LemonButton__chrome { padding: 0.25rem !important; - } - - .LemonButton__content { - font-size: 0.813rem; + font-size: 0.8125rem; } } @@ -77,7 +72,7 @@ } li + li { - margin-top: 0.25rem; + margin-top: -1px; } } } diff --git a/frontend/src/layout/navigation-3000/components/Breadcrumbs.scss b/frontend/src/layout/navigation-3000/components/Breadcrumbs.scss index cee6415c6feaf..b4ddb5907086d 100644 --- a/frontend/src/layout/navigation-3000/components/Breadcrumbs.scss +++ b/frontend/src/layout/navigation-3000/components/Breadcrumbs.scss @@ -39,7 +39,7 @@ display: flex; align-items: center; height: 1rem; - margin-top: 0.25rem; + margin-top: calc(0.25rem * (1 - var(--breadcrumbs-compaction-rate))); overflow: visible; } diff --git a/frontend/src/layout/navigation-3000/components/Navbar.tsx b/frontend/src/layout/navigation-3000/components/Navbar.tsx index 33f73e869b6fa..c620d0c9b927f 100644 --- a/frontend/src/layout/navigation-3000/components/Navbar.tsx +++ b/frontend/src/layout/navigation-3000/components/Navbar.tsx @@ -3,7 +3,6 @@ import { LemonBadge } from '@posthog/lemon-ui' import { useActions, useValues } from 'kea' import { commandBarLogic } from 'lib/components/CommandBar/commandBarLogic' import { Resizer } from 'lib/components/Resizer/Resizer' -import { useFeatureFlag } from 'lib/hooks/useFeatureFlag' import { Popover } from 'lib/lemon-ui/Popover' import { ProfilePicture } from 'lib/lemon-ui/ProfilePicture' import { featureFlagLogic } from 'lib/logic/featureFlagLogic' @@ -14,7 +13,6 @@ import { userLogic } from 'scenes/userLogic' import { navigationLogic } from '~/layout/navigation/navigationLogic' import { SitePopoverOverlay } from '~/layout/navigation/TopBar/SitePopover' -import { KeyboardShortcut } from '~/layout/navigation-3000/components/KeyboardShortcut' import { navigation3000Logic } from '../navigationLogic' import { themeLogic } from '../themeLogic' @@ -47,7 +45,6 @@ export function Navbar(): JSX.Element { const { toggleSearchBar } = useActions(commandBarLogic) const containerRef = useRef(null) - const isUsingNewNav = useFeatureFlag('POSTHOG_3000_NAV') return (