From cafdd441cb85335be86d0f101149e4d20086b596 Mon Sep 17 00:00:00 2001 From: Liam Cho Date: Thu, 19 Dec 2024 16:20:30 +0900 Subject: [PATCH] temp --- __visual_unit_tests__/tests.spec.tsx | 143 +++++++ package.json | 4 +- playwright-ct.config.ts | 46 +++ playwright/index.html | 12 + playwright/index.tsx | 2 + yarn.lock | 569 +++++++++++++++++++++++++++ 6 files changed, 775 insertions(+), 1 deletion(-) create mode 100644 __visual_unit_tests__/tests.spec.tsx create mode 100644 playwright-ct.config.ts create mode 100644 playwright/index.html create mode 100644 playwright/index.tsx diff --git a/__visual_unit_tests__/tests.spec.tsx b/__visual_unit_tests__/tests.spec.tsx new file mode 100644 index 000000000..01f9165d6 --- /dev/null +++ b/__visual_unit_tests__/tests.spec.tsx @@ -0,0 +1,143 @@ +import { test, expect } from '@playwright/experimental-ct-react'; +import { ReactNode } from 'react'; + +import ParsedBotMessageBody from '../src/components/ParsedBotMessageBody'; +import { ConstantStateProvider } from '../src/context/ConstantContext'; +import { parseTextMessage, Token } from '../src/utils'; + +const withContextProvider = (children: ReactNode) => ( + + {children} + +); + +const message = + '# A demo of `react-markdown`\n' + + '\n' + + '`react-markdown` is a markdown component for React.\n' + + '\n' + + '👉 Changes are re-rendered as you type.\n' + + '\n' + + '👈 Try writing some markdown on the left.\n' + + '\n' + + '## Overview\n' + + '\n' + + '* Follows [CommonMark](https://commonmark.org)\n' + + '* Optionally follows [GitHub Flavored Markdown](https://github.github.com/gfm/)\n' + + '* Renders actual React elements instead of using `dangerouslySetInnerHTML`\n' + + "* Lets you define your own components (to render `MyHeading` instead of `'h1'`)\n" + + '* Has a lot of plugins\n' + + '\n' + + '## Contents\n' + + '\n' + + 'Here is an example of a plugin in action\n' + + '([`remark-toc`](https://github.com/remarkjs/remark-toc)).\n' + + '**This section is replaced by an actual table of contents**.\n' + + '\n' + + '## Syntax highlighting\n' + + '\n' + + 'Here is an example of a plugin to highlight code:\n' + + '[`rehype-highlight`](https://github.com/rehypejs/rehype-highlight).\n' + + '\n' + + '```js\n' + + "import React from 'react'\n" + + "import ReactDOM from 'react-dom'\n" + + "import Markdown from 'react-markdown'\n" + + "import rehypeHighlight from 'rehype-highlight'\n" + + '\n' + + 'const markdown = `\n' + + '# Your markdown here\n' + + '`\n' + + '\n' + + 'ReactDOM.render(\n' + + ' {markdown},\n' + + " document.querySelector('#content')\n" + + ')\n' + + '```\n' + + '\n' + + 'Pretty neat, eh?\n' + + '\n' + + '## GitHub flavored markdown (GFM)\n' + + '\n' + + 'For GFM, you can *also* use a plugin:\n' + + '[`remark-gfm`](https://github.com/remarkjs/react-markdown#use).\n' + + 'It adds support for GitHub-specific extensions to the language:\n' + + 'tables, strikethrough, tasklists, and literal URLs.\n' + + '\n' + + 'These features **do not work by default**.\n' + + '👆 Use the toggle above to add the plugin.\n' + + '\n' + + '| Feature | Support |\n' + + '| ---------: | :------------------- |\n' + + '| CommonMark | 100% |\n' + + '| GFM | 100% w/ `remark-gfm` |\n' + + '\n' + + '~~strikethrough~~\n' + + '\n' + + '* [ ] task list\n' + + '* [x] checked item\n' + + '\n' + + 'https://example.com\n' + + '\n' + + '## HTML in markdown\n' + + '\n' + + '⚠️ HTML in markdown is quite unsafe, but if you want to support it, you can\n' + + 'use [`rehype-raw`](https://github.com/rehypejs/rehype-raw).\n' + + 'You should probably combine it with\n' + + '[`rehype-sanitize`](https://github.com/rehypejs/rehype-sanitize).\n' + + '\n' + + '
\n' + + ' 👆 Use the toggle above to add the plugin.\n' + + '
\n' + + '\n' + + '## Components\n' + + '\n' + + 'You can pass components to change things:\n' + + '\n' + + '```js\n' + + "import React from 'react'\n" + + "import ReactDOM from 'react-dom'\n" + + "import Markdown from 'react-markdown'\n" + + "import MyFancyRule from './components/my-fancy-rule.js'\n" + + '\n' + + 'const markdown = `\n' + + '# Your markdown here\n' + + '`\n' + + '\n' + + 'ReactDOM.render(\n' + + ' \n' + + ' }\n' + + ' }}\n' + + ' >\n' + + ' {markdown}\n' + + ' ,\n' + + " document.querySelector('#content')\n" + + ')\n' + + '```\n' + + '\n' + + '## More info?\n' + + '\n' + + 'Much more info is available in the\n' + + '[readme on GitHub](https://github.com/remarkjs/react-markdown)!\n' + + '\n' + + '***\n' + + '\n' + + 'A component by [Espen Hovlandsdal](https://espen.codes/)'; + +/** + * 100 + * ParsedBotMessageBody + * Message with various markdown syntaxes. + */ +test('100', async ({ mount }) => { + const tokens: Token[] = parseTextMessage(message, []); + const component = await mount(withContextProvider()); + await expect(component).toHaveScreenshot(); +}); diff --git a/package.json b/package.json index 95d750d67..35359bfe0 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,8 @@ "lint:fix": "yarn eslint src __visual_tests__ --fix", "prettier:fix": "yarn prettier src __visual_tests__ --write", "preview": "vite preview", - "test": "vitest run" + "test": "vitest run", + "test-ct": "playwright test -c playwright-ct.config.ts" }, "dependencies": { "styled-components": "^5.3.11" @@ -36,6 +37,7 @@ "@linaria/atomic": "^6.2.0", "@linaria/core": "^6.2.0", "@linaria/react": "^6.2.1", + "@playwright/experimental-ct-react": "^1.49.1", "@playwright/test": "^1.48.1", "@types/dompurify": "^3.0.5", "@types/node": "^22.7.9", diff --git a/playwright-ct.config.ts b/playwright-ct.config.ts new file mode 100644 index 000000000..b94452dc3 --- /dev/null +++ b/playwright-ct.config.ts @@ -0,0 +1,46 @@ +import { defineConfig, devices } from '@playwright/experimental-ct-react'; + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './__visual_unit_tests__', + /* The base directory, relative to the config file, for snapshot files created with toMatchSnapshot and toHaveScreenshot. */ + snapshotDir: './__visual_unit_tests__/__snapshots__', + /* Maximum time one test can run for. */ + timeout: 10 * 1000, + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + + /* Port to use for Playwright component endpoint. */ + ctPort: 3100, + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], +}); diff --git a/playwright/index.html b/playwright/index.html new file mode 100644 index 000000000..610ddf8a4 --- /dev/null +++ b/playwright/index.html @@ -0,0 +1,12 @@ + + + + + + Testing Page + + +
+ + + diff --git a/playwright/index.tsx b/playwright/index.tsx new file mode 100644 index 000000000..ac6de14bf --- /dev/null +++ b/playwright/index.tsx @@ -0,0 +1,2 @@ +// Import styles, initialize component theme here. +// import '../src/common.css'; diff --git a/yarn.lock b/yarn.lock index 73701b12f..2288fd101 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1897,6 +1897,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-arm64@npm:0.20.2" @@ -1904,6 +1911,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-arm@npm:0.20.2" @@ -1911,6 +1925,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-x64@npm:0.20.2" @@ -1918,6 +1939,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/darwin-arm64@npm:0.20.2" @@ -1925,6 +1953,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/darwin-x64@npm:0.20.2" @@ -1932,6 +1967,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/freebsd-arm64@npm:0.20.2" @@ -1939,6 +1981,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/freebsd-x64@npm:0.20.2" @@ -1946,6 +1995,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-arm64@npm:0.20.2" @@ -1953,6 +2009,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-arm@npm:0.20.2" @@ -1960,6 +2023,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-ia32@npm:0.20.2" @@ -1967,6 +2037,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-loong64@npm:0.20.2" @@ -1974,6 +2051,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-mips64el@npm:0.20.2" @@ -1981,6 +2065,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-ppc64@npm:0.20.2" @@ -1988,6 +2079,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-riscv64@npm:0.20.2" @@ -1995,6 +2093,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-s390x@npm:0.20.2" @@ -2002,6 +2107,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-x64@npm:0.20.2" @@ -2009,6 +2121,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/netbsd-x64@npm:0.20.2" @@ -2016,6 +2135,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/openbsd-x64@npm:0.20.2" @@ -2023,6 +2149,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/sunos-x64@npm:0.20.2" @@ -2030,6 +2163,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-arm64@npm:0.20.2" @@ -2037,6 +2177,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-ia32@npm:0.20.2" @@ -2044,6 +2191,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-x64@npm:0.20.2" @@ -2051,6 +2205,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -2648,6 +2809,29 @@ __metadata: languageName: node linkType: hard +"@playwright/experimental-ct-core@npm:1.49.1": + version: 1.49.1 + resolution: "@playwright/experimental-ct-core@npm:1.49.1" + dependencies: + playwright: "npm:1.49.1" + playwright-core: "npm:1.49.1" + vite: "npm:^5.2.8" + checksum: 10c0/fcc2d9c924be03c3b891f93b511ce01a1ab548ee283a2d63f5b8cfba4652cf6879aa705126518b35584572f2a732d8fe5c969196a79ce0ab254166c5f442df99 + languageName: node + linkType: hard + +"@playwright/experimental-ct-react@npm:^1.49.1": + version: 1.49.1 + resolution: "@playwright/experimental-ct-react@npm:1.49.1" + dependencies: + "@playwright/experimental-ct-core": "npm:1.49.1" + "@vitejs/plugin-react": "npm:^4.2.1" + bin: + playwright: cli.js + checksum: 10c0/60cf968e350feb73a1211c0da205e0b2d122adae72001f86eb9cb523ee55fe86f9789dc98c8f89c1e85c0b2e2c1104ace819ff35925cc68666a651b7a26c1d0a + languageName: node + linkType: hard + "@playwright/test@npm:^1.48.1": version: 1.48.1 resolution: "@playwright/test@npm:1.48.1" @@ -3109,6 +3293,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.28.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-android-arm64@npm:4.17.2" @@ -3116,6 +3307,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-android-arm64@npm:4.28.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-darwin-arm64@npm:4.17.2" @@ -3123,6 +3321,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.28.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-darwin-x64@npm:4.17.2" @@ -3130,6 +3335,27 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.28.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.28.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.28.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.17.2" @@ -3137,6 +3363,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.28.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.17.2" @@ -3144,6 +3377,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.28.1" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.17.2" @@ -3151,6 +3391,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.28.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.17.2" @@ -3158,6 +3405,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.28.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loongarch64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.28.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-powerpc64le-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.17.2" @@ -3165,6 +3426,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.1" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.17.2" @@ -3172,6 +3440,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.28.1" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.17.2" @@ -3179,6 +3454,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.28.1" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.17.2" @@ -3186,6 +3468,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.28.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-x64-musl@npm:4.17.2" @@ -3193,6 +3482,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.28.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.17.2" @@ -3200,6 +3496,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.28.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.17.2" @@ -3207,6 +3510,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.28.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.17.2" @@ -3214,6 +3524,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.28.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rushstack/node-core-library@npm:4.0.2": version: 4.0.2 resolution: "@rushstack/node-core-library@npm:4.0.2" @@ -3277,6 +3594,7 @@ __metadata: "@linaria/atomic": "npm:^6.2.0" "@linaria/core": "npm:^6.2.0" "@linaria/react": "npm:^6.2.1" + "@playwright/experimental-ct-react": "npm:^1.49.1" "@playwright/test": "npm:^1.48.1" "@types/dompurify": "npm:^3.0.5" "@types/node": "npm:^22.7.9" @@ -4598,6 +4916,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a + languageName: node + linkType: hard + "@types/estree@npm:^0.0.51": version: 0.0.51 resolution: "@types/estree@npm:0.0.51" @@ -8641,6 +8966,86 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" @@ -14147,6 +14552,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -14222,6 +14634,15 @@ __metadata: languageName: node linkType: hard +"playwright-core@npm:1.49.1": + version: 1.49.1 + resolution: "playwright-core@npm:1.49.1" + bin: + playwright-core: cli.js + checksum: 10c0/990b619c75715cd98b2c10c1180a126e3a454b247063b8352bc67792fe01183ec07f31d30c8714c3768cefed12886d1d64ac06da701f2baafc2cad9b439e3919 + languageName: node + linkType: hard + "playwright@npm:1.48.1": version: 1.48.1 resolution: "playwright@npm:1.48.1" @@ -14237,6 +14658,21 @@ __metadata: languageName: node linkType: hard +"playwright@npm:1.49.1": + version: 1.49.1 + resolution: "playwright@npm:1.49.1" + dependencies: + fsevents: "npm:2.3.2" + playwright-core: "npm:1.49.1" + dependenciesMeta: + fsevents: + optional: true + bin: + playwright: cli.js + checksum: 10c0/2368762c898920d4a0a5788b153dead45f9c36c3f5cf4d2af5228d0b8ea65823e3bbe998877950a2b9bb23a211e4633996f854c6188769dc81a25543ac818ab5 + languageName: node + linkType: hard + "plop@npm:^2.5.3": version: 2.7.6 resolution: "plop@npm:2.7.6" @@ -14794,6 +15230,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.43": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -15897,6 +16344,78 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.20.0": + version: 4.28.1 + resolution: "rollup@npm:4.28.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.28.1" + "@rollup/rollup-android-arm64": "npm:4.28.1" + "@rollup/rollup-darwin-arm64": "npm:4.28.1" + "@rollup/rollup-darwin-x64": "npm:4.28.1" + "@rollup/rollup-freebsd-arm64": "npm:4.28.1" + "@rollup/rollup-freebsd-x64": "npm:4.28.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.28.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.28.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.28.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.28.1" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.28.1" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.28.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.28.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.28.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.28.1" + "@rollup/rollup-linux-x64-musl": "npm:4.28.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.28.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.28.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.28.1" + "@types/estree": "npm:1.0.6" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/2d2d0433b7cb53153a04c7b406f342f31517608dc57510e49177941b9e68c30071674b83a0292ef1d87184e5f7c6d0f2945c8b3c74963074de10c75366fe2c14 + languageName: node + linkType: hard + "rrweb-cssom@npm:^0.6.0": version: 0.6.0 resolution: "rrweb-cssom@npm:0.6.0" @@ -16386,6 +16905,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + "source-map-resolve@npm:^0.5.0": version: 0.5.3 resolution: "source-map-resolve@npm:0.5.3" @@ -18323,6 +18849,49 @@ __metadata: languageName: node linkType: hard +"vite@npm:^5.2.8": + version: 5.4.11 + resolution: "vite@npm:5.4.11" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.43" + rollup: "npm:^4.20.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/d536bb7af57dd0eca2a808f95f5ff1d7b7ffb8d86e17c6893087680a0448bd0d15e07475270c8a6de65cb5115592d037130a1dd979dc76bcef8c1dda202a1874 + languageName: node + linkType: hard + "vitest@npm:^1.6.0": version: 1.6.0 resolution: "vitest@npm:1.6.0"