From 58c6d2c896e2f00ebdeab515418fc243cedd24cf Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 2 May 2025 17:26:24 +0200 Subject: [PATCH 1/7] add some changes to create new branch --- packages/graphiql/resources/build.sh | 20 ------------------ packages/graphiql/resources/checkgit.sh | 27 ------------------------- 2 files changed, 47 deletions(-) delete mode 100644 packages/graphiql/resources/build.sh delete mode 100644 packages/graphiql/resources/checkgit.sh diff --git a/packages/graphiql/resources/build.sh b/packages/graphiql/resources/build.sh deleted file mode 100644 index e112482842c..00000000000 --- a/packages/graphiql/resources/build.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -set -e -set -o pipefail - -if [ ! -d "node_modules/.bin" ]; then - echo "Be sure to run \`yarn install\` before building GraphiQL." - exit 1 -fi - -babel src --ignore __tests__ --out-dir dist/ -ESM=true babel src --ignore __tests__ --out-dir esm/ -echo "Bundling graphiql.js..." -browserify -g browserify-shim -s GraphiQL dist/index.js > graphiql.js -echo "Bundling graphiql.min.js..." -browserify -g browserify-shim -t uglifyify -s GraphiQL graphiql.js | uglifyjs -c > graphiql.min.js -echo "Bundling graphiql.css..." -postcss --no-map --use autoprefixer -d dist/ css/*.css -cat dist/*.css > graphiql.css -echo "Done" diff --git a/packages/graphiql/resources/checkgit.sh b/packages/graphiql/resources/checkgit.sh deleted file mode 100644 index f6798e23d40..00000000000 --- a/packages/graphiql/resources/checkgit.sh +++ /dev/null @@ -1,27 +0,0 @@ -# -# This script determines if current git state is the up to date master. If so -# it exits normally. If not it prompts for an explicit continue. This script -# intends to protect from versioning for NPM without first pushing changes -# and including any changes on master. -# - -# First fetch to ensure git is up to date. Fail-fast if this fails. -git fetch; -if [[ $? -ne 0 ]]; then exit 1; fi; - -# Extract useful information. -GITBRANCH=$(git branch -v 2> /dev/null | sed '/^[^*]/d'); -GITBRANCHNAME=$(echo "$GITBRANCH" | sed 's/* \([A-Za-z0-9_\-]*\).*/\1/'); -GITBRANCHSYNC=$(echo "$GITBRANCH" | sed 's/* [^[]*.\([^]]*\).*/\1/'); - -# Check if master is checked out -if [ "$GITBRANCHNAME" != "master" ]; then - read -p "Git not on master but $GITBRANCHNAME. Continue? (y|N) " yn; - if [ "$yn" != "y" ]; then exit 1; fi; -fi; - -# Check if branch is synced with remote -if [ "$GITBRANCHSYNC" != "" ]; then - read -p "Git not up to date but $GITBRANCHSYNC. Continue? (y|N) " yn; - if [ "$yn" != "y" ]; then exit 1; fi; -fi; From 0b434a96dd85aec87945be21a836a1e1b4d1c71e Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 2 May 2025 17:29:01 +0200 Subject: [PATCH 2/7] [v3] update vite to v6 (#3828) * upd * rm postcss since it's included in vite * prettier * upd * upd * upd * fix lint --- .changeset/late-trains-train.md | 8 + .../package.json | 5 +- .../postcss.config.js | 3 - .../vite.config.mts | 4 + .../graphiql-plugin-explorer/package.json | 6 +- .../graphiql-plugin-explorer/vite.config.mts | 4 + packages/graphiql-react/package.json | 11 +- packages/graphiql-react/postcss.config.js | 3 - packages/graphiql-react/vite.config.mts | 6 +- packages/graphiql/package.json | 14 +- packages/graphiql/postcss.config.js | 9 - packages/graphiql/vite.config.mts | 4 + yarn.lock | 483 ++++++++++++++---- 13 files changed, 435 insertions(+), 125 deletions(-) create mode 100644 .changeset/late-trains-train.md delete mode 100644 packages/graphiql-plugin-code-exporter/postcss.config.js delete mode 100644 packages/graphiql-react/postcss.config.js delete mode 100644 packages/graphiql/postcss.config.js diff --git a/.changeset/late-trains-train.md b/.changeset/late-trains-train.md new file mode 100644 index 00000000000..e3e77c1b62a --- /dev/null +++ b/.changeset/late-trains-train.md @@ -0,0 +1,8 @@ +--- +'@graphiql/plugin-code-exporter': minor +'@graphiql/plugin-explorer': minor +'@graphiql/react': minor +'graphiql': minor +--- + +update `vite` and related dependencies diff --git a/packages/graphiql-plugin-code-exporter/package.json b/packages/graphiql-plugin-code-exporter/package.json index 5268859c300..97b1b34a88c 100644 --- a/packages/graphiql-plugin-code-exporter/package.json +++ b/packages/graphiql-plugin-code-exporter/package.json @@ -40,12 +40,11 @@ }, "devDependencies": { "@graphiql/react": "^0.29.0", - "@vitejs/plugin-react": "^4.3.1", + "@vitejs/plugin-react": "^4.4.1", "graphql": "^16.9.0", - "postcss-nesting": "^10.1.7", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "^4.6.3", - "vite": "^5.4.18" + "vite": "^6.3.3" } } diff --git a/packages/graphiql-plugin-code-exporter/postcss.config.js b/packages/graphiql-plugin-code-exporter/postcss.config.js deleted file mode 100644 index 1ab3f9d65bf..00000000000 --- a/packages/graphiql-plugin-code-exporter/postcss.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - plugins: [require('postcss-nesting')], -}; diff --git a/packages/graphiql-plugin-code-exporter/vite.config.mts b/packages/graphiql-plugin-code-exporter/vite.config.mts index b963a34933f..95425d6a7b3 100644 --- a/packages/graphiql-plugin-code-exporter/vite.config.mts +++ b/packages/graphiql-plugin-code-exporter/vite.config.mts @@ -6,6 +6,9 @@ const IS_UMD = process.env.UMD === 'true'; export default defineConfig({ plugins: [react({ jsxRuntime: 'classic' })], + css: { + transformer: 'lightningcss', + }, build: { minify: IS_UMD ? 'esbuild' : false, // avoid clean cjs/es builds @@ -15,6 +18,7 @@ export default defineConfig({ fileName: 'index', name: 'GraphiQLPluginCodeExporter', formats: IS_UMD ? ['umd'] : ['cjs', 'es'], + cssFileName: 'style', }, rollupOptions: { external: [ diff --git a/packages/graphiql-plugin-explorer/package.json b/packages/graphiql-plugin-explorer/package.json index bc95006df48..c8b22c8fa26 100644 --- a/packages/graphiql-plugin-explorer/package.json +++ b/packages/graphiql-plugin-explorer/package.json @@ -39,12 +39,12 @@ }, "devDependencies": { "@graphiql/react": "^0.29.0", - "@vitejs/plugin-react": "^4.3.1", + "@vitejs/plugin-react": "^4.4.1", "graphql": "^16.9.0", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "^4.6.3", - "vite": "^5.4.18", - "vite-plugin-svgr": "^4.2.0" + "vite": "^6.3.3", + "vite-plugin-svgr": "^4.3.0" } } diff --git a/packages/graphiql-plugin-explorer/vite.config.mts b/packages/graphiql-plugin-explorer/vite.config.mts index e47ea748b70..cac0251026a 100644 --- a/packages/graphiql-plugin-explorer/vite.config.mts +++ b/packages/graphiql-plugin-explorer/vite.config.mts @@ -15,6 +15,9 @@ export default defineConfig({ }, }), ], + css: { + transformer: 'lightningcss', + }, build: { minify: IS_UMD ? 'esbuild' : false, // avoid clean cjs/es builds @@ -24,6 +27,7 @@ export default defineConfig({ fileName: 'index', name: 'GraphiQLPluginExplorer', formats: IS_UMD ? ['umd'] : ['cjs', 'es'], + cssFileName: 'style', }, rollupOptions: { external: [ diff --git a/packages/graphiql-react/package.json b/packages/graphiql-react/package.json index 06b254b0446..62545703a35 100644 --- a/packages/graphiql-react/package.json +++ b/packages/graphiql-react/package.json @@ -16,9 +16,9 @@ "exports": { "./package.json": "./package.json", ".": { + "types": "./types/index.d.ts", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "types": "./types/index.d.ts" + "require": "./dist/index.js" }, "./font/roboto.css": "./font/roboto.css", "./font/fira-code.css": "./font/fira-code.css", @@ -76,13 +76,12 @@ "@types/markdown-it": "^14.1.2", "@types/get-value": "^3.0.5", "@types/set-value": "^4.0.1", - "@vitejs/plugin-react": "^4.3.1", + "@vitejs/plugin-react": "^4.4.1", "graphql": "^16.9.0", - "postcss-nesting": "^10.1.7", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "^4.6.3", - "vite": "^5.4.18", - "vite-plugin-svgr": "^4.2.0" + "vite": "^6.3.3", + "vite-plugin-svgr": "^4.3.0" } } diff --git a/packages/graphiql-react/postcss.config.js b/packages/graphiql-react/postcss.config.js deleted file mode 100644 index 1ab3f9d65bf..00000000000 --- a/packages/graphiql-react/postcss.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - plugins: [require('postcss-nesting')], -}; diff --git a/packages/graphiql-react/vite.config.mts b/packages/graphiql-react/vite.config.mts index 0b9c34108b2..4a7e04b8efd 100644 --- a/packages/graphiql-react/vite.config.mts +++ b/packages/graphiql-react/vite.config.mts @@ -2,7 +2,6 @@ import { defineConfig, PluginOption } from 'vite'; import react from '@vitejs/plugin-react'; import svgr from 'vite-plugin-svgr'; -import postCssNestingPlugin from 'postcss-nesting'; import type { PluginOptions as ReactCompilerConfig } from 'babel-plugin-react-compiler'; import packageJSON from './package.json'; @@ -58,9 +57,7 @@ export const plugins: PluginOption[] = [ export default defineConfig({ plugins, css: { - postcss: { - plugins: [postCssNestingPlugin()], - }, + transformer: 'lightningcss', }, build: { minify: false, @@ -69,6 +66,7 @@ export default defineConfig({ entry: 'src/index.ts', fileName: 'index', formats: ['cjs', 'es'], + cssFileName: 'style', }, rollupOptions: { external: [ diff --git a/packages/graphiql/package.json b/packages/graphiql/package.json index 7e5d475b5e7..905e175fb46 100644 --- a/packages/graphiql/package.json +++ b/packages/graphiql/package.json @@ -33,9 +33,9 @@ "./style.css": "./dist/style.css", "./graphiql.css": "./dist/style.css", ".": { + "types": "./dist/index.d.ts", "require": "./dist/index.js", - "import": "./dist/index.mjs", - "types": "./dist/index.d.ts" + "import": "./dist/index.mjs" } }, "scripts": { @@ -59,11 +59,11 @@ "react-dom": "^16.8.0 || ^17 || ^18" }, "devDependencies": { + "lightningcss": "^1.29.3", "babel-plugin-react-compiler": "19.1.0-rc.1", - "vite-plugin-dts": "^4.3.0", - "vite": "^5.3.6", - "postcss-lightningcss": "^1.0.1", - "@vitejs/plugin-react": "^4.3.1", + "vite-plugin-dts": "^4.5.3", + "vite": "^6.3.3", + "@vitejs/plugin-react": "^4.4.1", "@graphiql/toolkit": "^0.11.2", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.1.0", @@ -73,8 +73,6 @@ "graphql": "^16.9.0", "graphql-http": "^1.22.1", "graphql-subscriptions": "^2.0.0", - "postcss": "8.4.31", - "postcss-import": "15.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "start-server-and-test": "^1.10.11", diff --git a/packages/graphiql/postcss.config.js b/packages/graphiql/postcss.config.js deleted file mode 100644 index 31470672ba7..00000000000 --- a/packages/graphiql/postcss.config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - plugins: { - // https://github.com/postcss/postcss-import/issues/442#issuecomment-822427606 - 'postcss-import': '', - 'postcss-lightningcss': { - browsers: '>= .25%', - }, - }, -}; diff --git a/packages/graphiql/vite.config.mts b/packages/graphiql/vite.config.mts index a846cd1517f..29ce479f6e8 100644 --- a/packages/graphiql/vite.config.mts +++ b/packages/graphiql/vite.config.mts @@ -36,6 +36,9 @@ const umdConfig = defineConfig({ 'process.env.NODE_ENV': '"production"', }, plugins, + css: { + transformer: 'lightningcss', + }, build: { minify: 'terser', // produce less bundle size sourcemap: true, @@ -46,6 +49,7 @@ const umdConfig = defineConfig({ name: 'GraphiQL', fileName: 'index', formats: ['umd'], + cssFileName: 'style', }, rollupOptions: { external: ['react', 'react-dom'], diff --git a/yarn.lock b/yarn.lock index 07858a8bff1..a3ea28a5f9c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -197,6 +197,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.3.tgz#99488264a56b2aded63983abd6a417f03b92ed02" integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g== +"@babel/compat-data@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" + integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== + "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.0", "@babel/core@^7.21.3", "@babel/core@^7.22.9", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.23.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" @@ -260,6 +265,27 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/core@^7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/generator@^7.23.6", "@babel/generator@^7.7.2": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3" @@ -291,7 +317,7 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" -"@babel/generator@^7.27.0": +"@babel/generator@^7.26.10", "@babel/generator@^7.27.0": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== @@ -363,6 +389,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.26.5": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz#de0c753b1cd1d9ab55d473c5a5cf7170f0a81880" + integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA== + dependencies: + "@babel/compat-data" "^7.26.8" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" @@ -694,7 +731,7 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helpers@^7.23.7", "@babel/helpers@^7.24.8", "@babel/helpers@^7.26.0": +"@babel/helpers@^7.23.7", "@babel/helpers@^7.24.8", "@babel/helpers@^7.26.0", "@babel/helpers@^7.26.10": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== @@ -741,7 +778,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.0.tgz#9fdc9237504d797b6e7b8f66e78ea7f570d256ad" integrity sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA== -"@babel/parser@^7.25.3", "@babel/parser@^7.27.0": +"@babel/parser@^7.25.3", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== @@ -1293,6 +1330,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" +"@babel/plugin-transform-react-jsx-self@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz#c0b6cae9c1b73967f7f9eb2fca9536ba2fad2858" + integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/plugin-transform-react-jsx-source@^7.24.1": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz#1198aab2548ad19582013815c938d3ebd8291ee3" @@ -1300,6 +1344,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" +"@babel/plugin-transform-react-jsx-source@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz#4c6b8daa520b5f155b5fb55547d7c9fa91417503" + integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/plugin-transform-react-jsx@^7.18.6": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz#656b42c2fdea0a6d8762075d58ef9d4e3c4ab8a2" @@ -1586,7 +1637,7 @@ "@babel/parser" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/template@^7.27.0": +"@babel/template@^7.26.9", "@babel/template@^7.27.0": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== @@ -1595,7 +1646,7 @@ "@babel/parser" "^7.27.0" "@babel/types" "^7.27.0" -"@babel/traverse@^7.16.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.7", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.16.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.7", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.7.2": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== @@ -1643,7 +1694,7 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" -"@babel/types@^7.27.0": +"@babel/types@^7.26.10", "@babel/types@^7.27.0": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== @@ -2198,11 +2249,6 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-vue/-/dict-vue-2.0.1.tgz#7514875f760ae755d2a6ef1fd00917d107682fe1" integrity sha512-n9So2C2Zw+uSDRzb2h9wq3PjZBqoHx+vBvu6a34H2qpumNjZ6HaEronrzX5tXJJXzOtocIQYrLxdd128TAU3+g== -"@csstools/selector-specificity@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz#91c560df2ed8d9700e4c7ed4ac21a3a322c9d975" - integrity sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw== - "@cypress/request@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.1.tgz#72d7d5425236a2413bd3d8bb66d02d9dc3168960" @@ -2284,6 +2330,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353" integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ== +"@esbuild/aix-ppc64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz#014180d9a149cffd95aaeead37179433f5ea5437" + integrity sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ== + "@esbuild/android-arm64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.10.tgz#a416286e6271a8f050869df76ecfc4b822103bbe" @@ -2299,6 +2350,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018" integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw== +"@esbuild/android-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz#649e47e04ddb24a27dc05c395724bc5f4c55cbfe" + integrity sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ== + "@esbuild/android-arm@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.10.tgz#aff8cfebd2ed3a52f4d4a923360e7abd0817c34c" @@ -2314,6 +2370,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee" integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ== +"@esbuild/android-arm@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.3.tgz#8a0f719c8dc28a4a6567ef7328c36ea85f568ff4" + integrity sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A== + "@esbuild/android-x64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.10.tgz#f3b1f52fd6bfdf79d5b9b5965798ff3a8afa584d" @@ -2329,6 +2390,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517" integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg== +"@esbuild/android-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.3.tgz#e2ab182d1fd06da9bef0784a13c28a7602d78009" + integrity sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ== + "@esbuild/darwin-arm64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.10.tgz#70644fc5f41bfe90079df449506de2a568f4c08f" @@ -2344,6 +2410,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16" integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q== +"@esbuild/darwin-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz#c7f3166fcece4d158a73dcfe71b2672ca0b1668b" + integrity sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w== + "@esbuild/darwin-x64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.10.tgz#a8a8466559af303db881c7a760553bfc00593a62" @@ -2359,6 +2430,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931" integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw== +"@esbuild/darwin-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz#d8c5342ec1a4bf4b1915643dfe031ba4b173a87a" + integrity sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A== + "@esbuild/freebsd-arm64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.10.tgz#eda518b8d9b38b6c17c2c58600f8b97ff7acd73b" @@ -2374,6 +2450,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc" integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA== +"@esbuild/freebsd-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz#9f7d789e2eb7747d4868817417cc968ffa84f35b" + integrity sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw== + "@esbuild/freebsd-x64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.10.tgz#e96ba0a380ec38055fd4654dd7a96c90e32e4bbb" @@ -2389,6 +2470,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730" integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g== +"@esbuild/freebsd-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz#8ad35c51d084184a8e9e76bb4356e95350a64709" + integrity sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q== + "@esbuild/linux-arm64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.10.tgz#63255f396ab465081bf37e4751bfade9578a8ff0" @@ -2404,6 +2490,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383" integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g== +"@esbuild/linux-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz#3af0da3d9186092a9edd4e28fa342f57d9e3cd30" + integrity sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A== + "@esbuild/linux-arm@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.10.tgz#9a589ffb96837b7536cfa6739dd2e666cc5e548e" @@ -2419,6 +2510,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771" integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ== +"@esbuild/linux-arm@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz#e91cafa95e4474b3ae3d54da12e006b782e57225" + integrity sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ== + "@esbuild/linux-ia32@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.10.tgz#291aba2de93e8cdf77d607f54e554ce4ffd2f5ef" @@ -2434,6 +2530,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333" integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ== +"@esbuild/linux-ia32@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz#81025732d85b68ee510161b94acdf7e3007ea177" + integrity sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw== + "@esbuild/linux-loong64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.10.tgz#ff0fe68c137dc165277b559a747c5debe6a8baec" @@ -2449,6 +2550,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac" integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw== +"@esbuild/linux-loong64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz#3c744e4c8d5e1148cbe60a71a11b58ed8ee5deb8" + integrity sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g== + "@esbuild/linux-mips64el@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.10.tgz#99801b17fe2bffcce5cf9375731adf3025e7aee9" @@ -2464,6 +2570,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6" integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q== +"@esbuild/linux-mips64el@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz#1dfe2a5d63702db9034cc6b10b3087cc0424ec26" + integrity sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag== + "@esbuild/linux-ppc64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.10.tgz#b5d179a6271d123b20694402364162bfa583b35b" @@ -2479,6 +2590,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96" integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw== +"@esbuild/linux-ppc64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz#2e85d9764c04a1ebb346dc0813ea05952c9a5c56" + integrity sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg== + "@esbuild/linux-riscv64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.10.tgz#c34b55bcc71d07685e4b836659f299cd4f6889ec" @@ -2494,6 +2610,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7" integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA== +"@esbuild/linux-riscv64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz#a9ea3334556b09f85ccbfead58c803d305092415" + integrity sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA== + "@esbuild/linux-s390x@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.10.tgz#84318e86ee1e377c603c7b5359f5f67771eddd99" @@ -2509,6 +2630,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f" integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw== +"@esbuild/linux-s390x@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz#f6a7cb67969222b200974de58f105dfe8e99448d" + integrity sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ== + "@esbuild/linux-x64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.10.tgz#631650dc12f902535dea84b356709ba4ca893071" @@ -2524,6 +2650,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24" integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ== +"@esbuild/linux-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz#a237d3578ecdd184a3066b1f425e314ade0f8033" + integrity sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA== + +"@esbuild/netbsd-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz#4c15c68d8149614ddb6a56f9c85ae62ccca08259" + integrity sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA== + "@esbuild/netbsd-x64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.10.tgz#436c8c8590eb7638e9d811ce5aae5e44b7dd2e45" @@ -2539,11 +2675,21 @@ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653" integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA== +"@esbuild/netbsd-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz#12f6856f8c54c2d7d0a8a64a9711c01a743878d5" + integrity sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g== + "@esbuild/openbsd-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7" integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q== +"@esbuild/openbsd-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz#ca078dad4a34df192c60233b058db2ca3d94bc5c" + integrity sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ== + "@esbuild/openbsd-x64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.10.tgz#69945ceeecfb30c20b64068d14a2cf9853254035" @@ -2559,6 +2705,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273" integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA== +"@esbuild/openbsd-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz#c9178adb60e140e03a881d0791248489c79f95b2" + integrity sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w== + "@esbuild/sunos-x64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.10.tgz#2ad291b87225f82490d3ffd7c8b643e45fe0d616" @@ -2574,6 +2725,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403" integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA== +"@esbuild/sunos-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz#03765eb6d4214ff27e5230af779e80790d1ee09f" + integrity sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA== + "@esbuild/win32-arm64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.10.tgz#f12fcff13b9dbd3e80481f4cb6282708ce7794bb" @@ -2589,6 +2745,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2" integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A== +"@esbuild/win32-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz#f1c867bd1730a9b8dfc461785ec6462e349411ea" + integrity sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ== + "@esbuild/win32-ia32@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.10.tgz#e369e9bedf6b548a62b284320c6de08982d045da" @@ -2604,6 +2765,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac" integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ== +"@esbuild/win32-ia32@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz#77491f59ef6c9ddf41df70670d5678beb3acc322" + integrity sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew== + "@esbuild/win32-x64@0.18.10": version "0.18.10" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.10.tgz#141d8e73b74252eef46a5433f69d15890d82b5e3" @@ -2619,6 +2785,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== +"@esbuild/win32-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz#b17a2171f9074df9e91bfb07ef99a892ac06412a" + integrity sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg== + "@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.5.0": version "4.6.1" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz#e4c58fdcf0696e7a5f19c30201ed43123ab15abc" @@ -3934,16 +4105,7 @@ estree-walker "^2.0.1" picomatch "^2.2.2" -"@rollup/pluginutils@^5.0.5": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" - integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^2.3.1" - -"@rollup/pluginutils@^5.1.4": +"@rollup/pluginutils@^5.1.3", "@rollup/pluginutils@^5.1.4": version "5.1.4" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz#bb94f1f9eaaac944da237767cdfee6c5b2262d4a" integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ== @@ -3957,101 +4119,201 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz#d964ee8ce4d18acf9358f96adc408689b6e27fe3" integrity sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg== +"@rollup/rollup-android-arm-eabi@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz#e1562d360bca73c7bef6feef86098de3a2f1d442" + integrity sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw== + "@rollup/rollup-android-arm64@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz#9b5e130ecc32a5fc1e96c09ff371743ee71a62d3" integrity sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w== +"@rollup/rollup-android-arm64@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz#37ba63940211673e15dcc5f469a78e34276dbca7" + integrity sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw== + "@rollup/rollup-darwin-arm64@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz#ef439182c739b20b3c4398cfc03e3c1249ac8903" integrity sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ== +"@rollup/rollup-darwin-arm64@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz#58b1eb86d997d71dabc5b78903233a3c27438ca0" + integrity sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA== + "@rollup/rollup-darwin-x64@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz#d7380c1531ab0420ca3be16f17018ef72dd3d504" integrity sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA== +"@rollup/rollup-darwin-x64@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz#5e22dab3232b1e575d930ce891abb18fe19c58c9" + integrity sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw== + "@rollup/rollup-freebsd-arm64@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz#cbcbd7248823c6b430ce543c59906dd3c6df0936" integrity sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg== +"@rollup/rollup-freebsd-arm64@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz#04c892d9ff864d66e31419634726ab0bebb33707" + integrity sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw== + "@rollup/rollup-freebsd-x64@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz#96bf6ff875bab5219c3472c95fa6eb992586a93b" integrity sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw== +"@rollup/rollup-freebsd-x64@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz#f4b1e091f7cf5afc9e3a029d70128ad56409ecfb" + integrity sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q== + "@rollup/rollup-linux-arm-gnueabihf@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz#d80cd62ce6d40f8e611008d8dbf03b5e6bbf009c" integrity sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA== +"@rollup/rollup-linux-arm-gnueabihf@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz#c8814bb5ce047a81b1fe4a33628dfd4ac52bd864" + integrity sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg== + "@rollup/rollup-linux-arm-musleabihf@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz#75440cfc1e8d0f87a239b4c31dfeaf4719b656b7" integrity sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg== +"@rollup/rollup-linux-arm-musleabihf@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz#5b4e7bd83cbebbf5ffe958802dcfd4ee34bf73a3" + integrity sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg== + "@rollup/rollup-linux-arm64-gnu@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz#ac527485ecbb619247fb08253ec8c551a0712e7c" integrity sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg== +"@rollup/rollup-linux-arm64-gnu@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz#141c848e53cee011e82a11777b8a51f1b3e8d77c" + integrity sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg== + "@rollup/rollup-linux-arm64-musl@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz#74d2b5cb11cf714cd7d1682e7c8b39140e908552" integrity sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ== +"@rollup/rollup-linux-arm64-musl@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz#22ebeaf2fa301aa4aa6c84b760e6cd1d1ac7eb1e" + integrity sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ== + "@rollup/rollup-linux-loongarch64-gnu@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz#a0a310e51da0b5fea0e944b0abd4be899819aef6" integrity sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg== +"@rollup/rollup-linux-loongarch64-gnu@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz#20b77dc78e622f5814ff8e90c14c938ceb8043bc" + integrity sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ== + "@rollup/rollup-linux-powerpc64le-gnu@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz#4077e2862b0ac9f61916d6b474d988171bd43b83" integrity sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw== +"@rollup/rollup-linux-powerpc64le-gnu@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz#2c90f99c987ef1198d4f8d15d754c286e1f07b13" + integrity sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg== + "@rollup/rollup-linux-riscv64-gnu@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz#5812a1a7a2f9581cbe12597307cc7ba3321cf2f3" integrity sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA== +"@rollup/rollup-linux-riscv64-gnu@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz#9336fd5e47d7f4760d02aa85f76976176eef53ca" + integrity sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ== + "@rollup/rollup-linux-riscv64-musl@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz#973aaaf4adef4531375c36616de4e01647f90039" integrity sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ== +"@rollup/rollup-linux-riscv64-musl@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz#d75b4d54d46439bb5c6c13762788f57e798f5670" + integrity sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA== + "@rollup/rollup-linux-s390x-gnu@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz#9bad59e907ba5bfcf3e9dbd0247dfe583112f70b" integrity sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw== +"@rollup/rollup-linux-s390x-gnu@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz#e9f09b802f1291839247399028beaef9ce034c81" + integrity sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg== + "@rollup/rollup-linux-x64-gnu@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz#68b045a720bd9b4d905f462b997590c2190a6de0" integrity sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ== +"@rollup/rollup-linux-x64-gnu@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz#0413169dc00470667dea8575c1129d4e7a73eb29" + integrity sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ== + "@rollup/rollup-linux-x64-musl@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz#8e703e2c2ad19ba7b2cb3d8c3a4ad11d4ee3a282" integrity sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw== +"@rollup/rollup-linux-x64-musl@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz#c76fd593323c60ea219439a00da6c6d33ffd0ea6" + integrity sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ== + "@rollup/rollup-win32-arm64-msvc@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz#c5bee19fa670ff5da5f066be6a58b4568e9c650b" integrity sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ== +"@rollup/rollup-win32-arm64-msvc@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz#c7724c386eed0bda5ae7143e4081c1910cab349b" + integrity sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg== + "@rollup/rollup-win32-ia32-msvc@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz#846e02c17044bd922f6f483a3b4d36aac6e2b921" integrity sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA== +"@rollup/rollup-win32-ia32-msvc@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz#7749e1b65cb64fe6d41ad1ad9e970a0ccc8ac350" + integrity sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA== + "@rollup/rollup-win32-x64-msvc@4.40.0": version "4.40.0" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz#fd92d31a2931483c25677b9c6698106490cbbc76" integrity sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ== +"@rollup/rollup-win32-x64-msvc@4.40.1": + version "4.40.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz#8078b71fe0d5825dcbf83d52a7dc858b39da165c" + integrity sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA== + "@rtsao/scc@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" @@ -5155,6 +5417,17 @@ "@types/babel__core" "^7.20.5" react-refresh "^0.14.2" +"@vitejs/plugin-react@^4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz#d7d1e9c9616d7536b0953637edfee7c6cbe2fe0f" + integrity sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w== + dependencies: + "@babel/core" "^7.26.10" + "@babel/plugin-transform-react-jsx-self" "^7.25.9" + "@babel/plugin-transform-react-jsx-source" "^7.25.9" + "@types/babel__core" "^7.20.5" + react-refresh "^0.17.0" + "@vitest/expect@2.1.9": version "2.1.9" resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.9.tgz#b566ea20d58ea6578d8dc37040d6c1a47ebe5ff8" @@ -6812,16 +7085,6 @@ browserslist@^4.14.5, browserslist@^4.20.2, browserslist@^4.22.2, browserslist@^ node-releases "^2.0.14" update-browserslist-db "^1.0.16" -browserslist@^4.19.1, browserslist@^4.24.4: - version "4.24.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" - integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== - dependencies: - caniuse-lite "^1.0.30001688" - electron-to-chromium "^1.5.73" - node-releases "^2.0.19" - update-browserslist-db "^1.1.1" - browserslist@^4.21.10: version "4.24.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.3.tgz#5fc2725ca8fb3c1432e13dac278c7cc103e026d2" @@ -6852,6 +7115,16 @@ browserslist@^4.24.0: node-releases "^2.0.18" update-browserslist-db "^1.1.1" +browserslist@^4.24.4: + version "4.24.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== + dependencies: + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" + update-browserslist-db "^1.1.1" + bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -8991,6 +9264,37 @@ esbuild@^0.23.0: "@esbuild/win32-ia32" "0.23.1" "@esbuild/win32-x64" "0.23.1" +esbuild@^0.25.0: + version "0.25.3" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.3.tgz#371f7cb41283e5b2191a96047a7a89562965a285" + integrity sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.3" + "@esbuild/android-arm" "0.25.3" + "@esbuild/android-arm64" "0.25.3" + "@esbuild/android-x64" "0.25.3" + "@esbuild/darwin-arm64" "0.25.3" + "@esbuild/darwin-x64" "0.25.3" + "@esbuild/freebsd-arm64" "0.25.3" + "@esbuild/freebsd-x64" "0.25.3" + "@esbuild/linux-arm" "0.25.3" + "@esbuild/linux-arm64" "0.25.3" + "@esbuild/linux-ia32" "0.25.3" + "@esbuild/linux-loong64" "0.25.3" + "@esbuild/linux-mips64el" "0.25.3" + "@esbuild/linux-ppc64" "0.25.3" + "@esbuild/linux-riscv64" "0.25.3" + "@esbuild/linux-s390x" "0.25.3" + "@esbuild/linux-x64" "0.25.3" + "@esbuild/netbsd-arm64" "0.25.3" + "@esbuild/netbsd-x64" "0.25.3" + "@esbuild/openbsd-arm64" "0.25.3" + "@esbuild/openbsd-x64" "0.25.3" + "@esbuild/sunos-x64" "0.25.3" + "@esbuild/win32-arm64" "0.25.3" + "@esbuild/win32-ia32" "0.25.3" + "@esbuild/win32-x64" "0.25.3" + escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" @@ -13158,7 +13462,7 @@ lightningcss-win32-x64-msvc@1.29.3: resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.3.tgz#0a46911cf8804e7df15440eac9e91d3f95c53b8b" integrity sha512-IszwRPu2cPnDQsZpd7/EAr0x2W7jkaWqQ1SwCVIZ/tSbZVXPLt6k8s6FkcyBjViCzvB5CW0We0QbbP7zp2aBjQ== -lightningcss@^1.22.0: +lightningcss@^1.29.3: version "1.29.3" resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.29.3.tgz#ddb8c6367f6d63432a4e81278421f2a9b3ac6efb" integrity sha512-GlOJwTIP6TMIlrTFsxTerwC0W6OpQpCGuX1ECRLBUVRh6fpJH3xTqjCjRgQHTb4ZXexH9rtHou1Lf03GKzmhhQ== @@ -14427,7 +14731,7 @@ nanoid@3.3.3: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -nanoid@^3.3.4, nanoid@^3.3.6: +nanoid@^3.3.4: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== @@ -15299,7 +15603,7 @@ picomatch@^4.0.2: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== -pify@^2.2.0, pify@^2.3.0: +pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -15390,23 +15694,6 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== -postcss-import@15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-lightningcss@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-lightningcss/-/postcss-lightningcss-1.0.1.tgz#4a28c451e5205e0da6ec9110ad881f8d6b1b222f" - integrity sha512-9IrtZVt2HQ92iZJTkO43Qipx7E3PM+lLzZM8aGwMmMjNQHcir5jNC42U33p3Gh2lj1nES/ireYWEbMrJNiRBoQ== - dependencies: - browserslist "^4.19.1" - lightningcss "^1.22.0" - postcss-load-config@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-6.0.1.tgz#6fd7dcd8ae89badcf1b2d644489cbabf83aa8096" @@ -15442,15 +15729,7 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nesting@^10.1.7: - version "10.1.7" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.7.tgz#0101bd6c7d386e7ad8e2e86ebcc0e0109833b86e" - integrity sha512-Btho5XzDTpl117SmB3tvUHP8txg5n7Ayv7vQ5m4b1zXkfs1Y52C67uZjZ746h7QvOJ+rLRg50OlhhjFW+IQY6A== - dependencies: - "@csstools/selector-specificity" "1.0.0" - postcss-selector-parser "^6.0.10" - -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.11" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== @@ -15458,7 +15737,7 @@ postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selecto cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -15472,16 +15751,7 @@ postcss@8.4.14: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@8.4.31: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.19, postcss@^8.4.40, postcss@^8.4.43: +postcss@^8.4.19, postcss@^8.4.40, postcss@^8.4.43, postcss@^8.5.3: version "8.5.3" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== @@ -15809,6 +16079,11 @@ react-refresh@^0.14.2: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== +react-refresh@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.17.0.tgz#b7e579c3657f23d04eccbe4ad2e58a8ed51e7e53" + integrity sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ== + react-remove-scroll-bar@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.3.tgz#e291f71b1bb30f5f67f023765b7435f4b2b2cd94" @@ -15844,13 +16119,6 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" @@ -16238,7 +16506,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.4: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -16408,6 +16676,35 @@ rollup@^4.19.0, rollup@^4.20.0: "@rollup/rollup-win32-x64-msvc" "4.40.0" fsevents "~2.3.2" +rollup@^4.34.9: + version "4.40.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.40.1.tgz#03d6c53ebb6a9c2c060ae686a61e72a2472b366f" + integrity sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw== + dependencies: + "@types/estree" "1.0.7" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.40.1" + "@rollup/rollup-android-arm64" "4.40.1" + "@rollup/rollup-darwin-arm64" "4.40.1" + "@rollup/rollup-darwin-x64" "4.40.1" + "@rollup/rollup-freebsd-arm64" "4.40.1" + "@rollup/rollup-freebsd-x64" "4.40.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.40.1" + "@rollup/rollup-linux-arm-musleabihf" "4.40.1" + "@rollup/rollup-linux-arm64-gnu" "4.40.1" + "@rollup/rollup-linux-arm64-musl" "4.40.1" + "@rollup/rollup-linux-loongarch64-gnu" "4.40.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.40.1" + "@rollup/rollup-linux-riscv64-gnu" "4.40.1" + "@rollup/rollup-linux-riscv64-musl" "4.40.1" + "@rollup/rollup-linux-s390x-gnu" "4.40.1" + "@rollup/rollup-linux-x64-gnu" "4.40.1" + "@rollup/rollup-linux-x64-musl" "4.40.1" + "@rollup/rollup-win32-arm64-msvc" "4.40.1" + "@rollup/rollup-win32-ia32-msvc" "4.40.1" + "@rollup/rollup-win32-x64-msvc" "4.40.1" + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -18818,7 +19115,7 @@ vite-node@2.1.9: pathe "^1.1.2" vite "^5.0.0" -vite-plugin-dts@^4.3.0: +vite-plugin-dts@^4.5.3: version "4.5.3" resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-4.5.3.tgz#9d9e64c12e21e9389efd9f999e034cd5864b0027" integrity sha512-P64VnD00dR+e8S26ESoFELqc17+w7pKkwlBpgXteOljFyT0zDwD8hH4zXp49M/kciy//7ZbVXIwQCekBJjfWzA== @@ -18838,16 +19135,16 @@ vite-plugin-monaco-editor@^1.1.0: resolved "https://registry.yarnpkg.com/vite-plugin-monaco-editor/-/vite-plugin-monaco-editor-1.1.0.tgz#a6238c2e13d5e98dd54a1bc51f6f189325219de3" integrity sha512-IvtUqZotrRoVqwT0PBBDIZPNraya3BxN/bfcNfnxZ5rkJiGcNtO5eAOWWSgT7zullIAEqQwxMU83yL9J5k7gww== -vite-plugin-svgr@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz#9f3bf5206b0ec510287e56d16f1915e729bb4e6b" - integrity sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA== +vite-plugin-svgr@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/vite-plugin-svgr/-/vite-plugin-svgr-4.3.0.tgz#742f16f11375996306c696ec323e4d23f6005075" + integrity sha512-Jy9qLB2/PyWklpYy0xk0UU3TlU0t2UMpJXZvf+hWII1lAmRHrOUKi11Uw8N3rxoNk7atZNYO3pR3vI1f7oi+6w== dependencies: - "@rollup/pluginutils" "^5.0.5" + "@rollup/pluginutils" "^5.1.3" "@svgr/core" "^8.1.0" "@svgr/plugin-jsx" "^8.1.0" -vite@^5.0.0, vite@^5.3.6, vite@^5.4.18: +vite@^5.0.0, vite@^5.4.18: version "5.4.18" resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.18.tgz#b5af357f9d5ebb2e0c085779b7a37a77f09168a4" integrity sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA== @@ -18858,6 +19155,20 @@ vite@^5.0.0, vite@^5.3.6, vite@^5.4.18: optionalDependencies: fsevents "~2.3.3" +vite@^6.3.3: + version "6.3.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.3.3.tgz#497392c3f2243194e4dbf09ea83e9a3dddf49b88" + integrity sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw== + dependencies: + esbuild "^0.25.0" + fdir "^6.4.4" + picomatch "^4.0.2" + postcss "^8.5.3" + rollup "^4.34.9" + tinyglobby "^0.2.13" + optionalDependencies: + fsevents "~2.3.3" + vitest@^2.1.9: version "2.1.9" resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.9.tgz#7d01ffd07a553a51c87170b5e80fea3da7fb41e7" From d1db4c7db037b2c70e31a673cf6e9af996c4537a Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 2 May 2025 17:41:58 +0200 Subject: [PATCH 3/7] [graphiql]: support react 19, drop support react 16 and react 17 (#3897) * upd * upd * upd * upd * upd * exclude react-dom/client from bundle * bump react everywhere to v19 * bump react everywhere to v19 * polish * fix failing text, to unblock canary * upd * try `minor` for graphiql/react, otherwise it pines to `1.0.0-next.2` in esm.sh * try workaround * try workaround * try workaround * try workaround * this should fix vitest * try * try * lint * try * fix test * try SOURCEMAP var * try ESM_SH_BUILD var * try * rm some unneeded code * try to fix esbuild: package 'uWebSockets.js' not found * update vite to see if it fix esbuild error? * bump module "@emotion/is-prop-valid" not found to fix `module "@emotion/is-prop-valid" not found` on esm.sh * upd * upd * upd * fix e2e * add changeset * add migration markdown file * fix --- .changeset/clean-lamps-bow.md | 8 + .changeset/gold-cooks-design.md | 10 + .eslintrc.js | 17 +- docs/migration/graphiql-4.0.0.md | 26 + .../graphiql-create-react-app/package.json | 4 +- examples/graphiql-parcel/package.json | 4 +- examples/graphiql-webpack/package.json | 4 +- examples/monaco-graphql-nextjs/package.json | 6 +- .../monaco-graphql-react-vite/package.json | 6 +- package.json | 4 +- .../package.json | 10 +- .../vite.config.mts | 5 +- .../graphiql-plugin-explorer/package.json | 10 +- .../graphiql-plugin-explorer/vite.config.mts | 5 +- packages/graphiql-react/package.json | 49 +- packages/graphiql-react/src/editor/common.ts | 2 +- .../graphiql-react/src/editor/context.tsx | 4 +- .../graphiql-react/src/editor/query-editor.ts | 10 +- .../src/editor/response-editor.tsx | 40 +- .../src/editor/variable-editor.ts | 7 +- .../src/explorer/components/search.tsx | 25 +- .../graphiql-react/src/icons/implements.svg | 3 +- packages/graphiql-react/src/ui/tooltip.tsx | 8 +- packages/graphiql-react/tsconfig.json | 6 +- packages/graphiql-react/tsconfig.node.json | 8 - packages/graphiql-react/vite.config.mts | 20 +- packages/graphiql/index.html | 4 +- packages/graphiql/package.json | 17 +- .../renderExample.js => src/e2e.ts} | 37 +- packages/graphiql/src/env.d.ts | 3 + packages/graphiql/vite.config.mts | 30 +- yarn.lock | 1062 +++++++---------- 32 files changed, 675 insertions(+), 779 deletions(-) create mode 100644 .changeset/clean-lamps-bow.md create mode 100644 .changeset/gold-cooks-design.md create mode 100644 docs/migration/graphiql-4.0.0.md delete mode 100644 packages/graphiql-react/tsconfig.node.json rename packages/graphiql/{resources/renderExample.js => src/e2e.ts} (73%) create mode 100644 packages/graphiql/src/env.d.ts diff --git a/.changeset/clean-lamps-bow.md b/.changeset/clean-lamps-bow.md new file mode 100644 index 00000000000..c5df42e4770 --- /dev/null +++ b/.changeset/clean-lamps-bow.md @@ -0,0 +1,8 @@ +--- +'@graphiql/plugin-code-exporter': major +'@graphiql/plugin-explorer': major +'@graphiql/react': minor +'graphiql': major +--- + +drop commonjs build files diff --git a/.changeset/gold-cooks-design.md b/.changeset/gold-cooks-design.md new file mode 100644 index 00000000000..d5d1c00d660 --- /dev/null +++ b/.changeset/gold-cooks-design.md @@ -0,0 +1,10 @@ +--- +'@graphiql/plugin-code-exporter': major +'@graphiql/plugin-explorer': major +'@graphiql/react': minor +'graphiql': major +--- + +- support react 19, drop support react 16 and react 17 +- replace deprecated `ReactDOM.unmountComponentAtNode()` and `ReactDOM.render()` with `root.unmount()` and `createRoot(container).render()` +- update `@radix-ui` and `@headlessui/react` dependencies diff --git a/.eslintrc.js b/.eslintrc.js index 103a62f0c34..9c60692380e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -366,6 +366,7 @@ module.exports = { excludedFiles: ['**/*.{md,mdx}/*.{ts,tsx}'], // extends: ['plugin:@typescript-eslint/recommended-type-checked'], rules: { + // '@typescript-eslint/no-redundant-type-constituents': 'error', '@typescript-eslint/prefer-optional-chain': 'error', '@typescript-eslint/no-unnecessary-type-assertion': 'error', '@typescript-eslint/no-floating-promises': 'error', @@ -388,11 +389,10 @@ module.exports = { projectService: { allowDefaultProject: [ 'examples/monaco-graphql-react-vite/vite.config.ts', - 'packages/*/vitest.config.mts', - 'packages/*/vite.config.mts', + 'packages/{graphiql,graphiql-plugin-explorer,graphiql-plugin-code-exporter}/vite.config.mts', + 'packages/{codemirror-graphql,graphiql-toolkit,graphql-language-service-cli,graphql-language-service,monaco-graphql,vscode-graphql-syntax,graphiql}/vitest.config.mts', 'packages/cm6-graphql/__tests__/test.spec.ts', - 'packages/graphiql-react/setup-files.ts', 'packages/graphiql/src/GraphiQL.spec.tsx', 'packages/vscode-graphql-syntax/tests/*.spec.ts', 'packages/graphql-language-service-cli/src/__tests__/*.test.ts', @@ -483,7 +483,7 @@ module.exports = { }, }, { - // Rule prefer await to then without React packages because it's ugly to have `async IIFE` inside `useEffect` + // Rule to prefer await to then without React packages because it's ugly to have `async IIFE` inside `useEffect` files: ['packages/**'], excludedFiles: ['packages/graphiql/**', 'packages/graphiql-react/**'], rules: { @@ -491,7 +491,7 @@ module.exports = { }, }, { - files: ['packages/{graphiql-react,graphiql}/**'], + files: ['packages/{graphiql-react,graphiql}/**/*.{ts,tsx}'], rules: { '@typescript-eslint/no-restricted-imports': [ 'error', @@ -502,6 +502,7 @@ module.exports = { }, ], 'react-hooks/react-compiler': 'error', + '@typescript-eslint/no-deprecated': 'error', }, }, { @@ -529,6 +530,12 @@ module.exports = { 'mdx/code-blocks': true, }, }, + { + files: ['**/*.d.ts'], + rules: { + 'no-var': 'off', + }, + }, { // ❗ALWAYS LAST // Rules for codeblocks inside Markdown/MDX diff --git a/docs/migration/graphiql-4.0.0.md b/docs/migration/graphiql-4.0.0.md new file mode 100644 index 00000000000..4819b812658 --- /dev/null +++ b/docs/migration/graphiql-4.0.0.md @@ -0,0 +1,26 @@ +# Upgrading `graphiql` from `3.x` to `4.0.0` + +## `graphiql` changes + +- Drop CommonJS build output +- Drop support React 16/17 +- Support React 19 + +## `@graphiql/react` changes + +- Drop CommonJS build output +- Drop support React 16/17 +- Support React 19 +- Update `@radix-ui` and `@headlessui/react` dependencies + +## `@graphiql/plugin-code-exporter` changes + +- Drop CommonJS build output +- Drop support React 16/17 +- Support React 19 + +## `@graphiql/plugin-explorer` changes + +- Drop CommonJS build output +- Drop support React 16/17 +- Support React 19 diff --git a/examples/graphiql-create-react-app/package.json b/examples/graphiql-create-react-app/package.json index e46b92ee19e..e2c9baefb7a 100644 --- a/examples/graphiql-create-react-app/package.json +++ b/examples/graphiql-create-react-app/package.json @@ -5,8 +5,8 @@ "dependencies": { "graphiql": "^3.4.0", "graphql": "^16.9.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.1.0", + "react-dom": "^19.1.0", "react-scripts": "5.0.1" }, "scripts": { diff --git a/examples/graphiql-parcel/package.json b/examples/graphiql-parcel/package.json index 9db03b446eb..250c810f221 100644 --- a/examples/graphiql-parcel/package.json +++ b/examples/graphiql-parcel/package.json @@ -24,8 +24,8 @@ "dependencies": { "graphiql": "^2.2.0", "graphql": "^16.9.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "react": "^19.1.0", + "react-dom": "^19.1.0" }, "devDependencies": { "parcel": "^2.5.0", diff --git a/examples/graphiql-webpack/package.json b/examples/graphiql-webpack/package.json index 2d6f13d3bd2..005e22425d0 100644 --- a/examples/graphiql-webpack/package.json +++ b/examples/graphiql-webpack/package.json @@ -16,7 +16,7 @@ "graphiql": "^3.9.0", "graphql": "^16.9.0", "graphql-ws": "^5.5.5", - "react": "^18.2.0", + "react": "^19.1.0", "regenerator-runtime": "^0.13.9" }, "devDependencies": { @@ -29,7 +29,7 @@ "cross-env": "^7.0.2", "css-loader": "^6.7.3", "html-webpack-plugin": "^5.5.0", - "react-dom": "^18.2.0", + "react-dom": "^19.1.0", "style-loader": "^3.3.1", "webpack": "5.94.0", "webpack-cli": "^5.0.1", diff --git a/examples/monaco-graphql-nextjs/package.json b/examples/monaco-graphql-nextjs/package.json index b13ee42a0bb..382d88f7f87 100644 --- a/examples/monaco-graphql-nextjs/package.json +++ b/examples/monaco-graphql-nextjs/package.json @@ -19,12 +19,12 @@ "monaco-graphql": "^1.6.1", "next": "13.4.7", "prettier": "3.3.2", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "react": "^19.1.0", + "react-dom": "^19.1.0" }, "devDependencies": { "@types/node": "^16.18.4", - "@types/react": "18.2.14", + "@types/react": "^19.1.2", "next-global-css": "1.3.1", "typescript": "^4.6.3" } diff --git a/examples/monaco-graphql-react-vite/package.json b/examples/monaco-graphql-react-vite/package.json index 0e0ce70cc2b..379a7ac6e9e 100644 --- a/examples/monaco-graphql-react-vite/package.json +++ b/examples/monaco-graphql-react-vite/package.json @@ -10,11 +10,11 @@ "monaco-editor": "^0.39.0", "monaco-graphql": "^1.6.1", "prettier": "3.3.2", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "react": "^19.1.0", + "react-dom": "^19.1.0" }, "devDependencies": { - "@vitejs/plugin-react": "^4.3.1", + "@vitejs/plugin-react": "^4.4.1", "vite": "^5.4.18", "vite-plugin-monaco-editor": "^1.1.0" }, diff --git a/package.json b/package.json index 42a383fbd0a..039c952b2ed 100644 --- a/package.json +++ b/package.json @@ -143,6 +143,8 @@ "resolutions": { "@babel/traverse": "^7.23.2", "vscode-languageserver-types": "3.17.3", - "markdown-it": "14.1.0" + "markdown-it": "14.1.0", + "react": "18.3.1", + "react-dom": "18.3.1" } } diff --git a/packages/graphiql-plugin-code-exporter/package.json b/packages/graphiql-plugin-code-exporter/package.json index 97b1b34a88c..e0eecbe45dd 100644 --- a/packages/graphiql-plugin-code-exporter/package.json +++ b/packages/graphiql-plugin-code-exporter/package.json @@ -1,6 +1,7 @@ { "name": "@graphiql/plugin-code-exporter", "version": "3.1.5", + "sideEffects": false, "repository": { "type": "git", "url": "https://github.com/graphql/graphiql", @@ -8,7 +9,6 @@ }, "author": "LekoArts", "main": "dist/index.js", - "module": "dist/index.mjs", "types": "types/index.d.ts", "license": "MIT", "keywords": [ @@ -35,15 +35,15 @@ "peerDependencies": { "@graphiql/react": "^0.29.0", "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" + "react": "^18 || ^19", + "react-dom": "^18 || ^19" }, "devDependencies": { "@graphiql/react": "^0.29.0", "@vitejs/plugin-react": "^4.4.1", "graphql": "^16.9.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.1.0", + "react-dom": "^19.1.0", "typescript": "^4.6.3", "vite": "^6.3.3" } diff --git a/packages/graphiql-plugin-code-exporter/vite.config.mts b/packages/graphiql-plugin-code-exporter/vite.config.mts index 95425d6a7b3..a6b7327d4bd 100644 --- a/packages/graphiql-plugin-code-exporter/vite.config.mts +++ b/packages/graphiql-plugin-code-exporter/vite.config.mts @@ -15,9 +15,10 @@ export default defineConfig({ emptyOutDir: !IS_UMD, lib: { entry: 'src/index.tsx', - fileName: 'index', + fileName: (format, filePath) => + `${filePath}.${format === 'umd' ? 'umd.' : ''}js`, name: 'GraphiQLPluginCodeExporter', - formats: IS_UMD ? ['umd'] : ['cjs', 'es'], + formats: IS_UMD ? ['umd'] : ['es'], cssFileName: 'style', }, rollupOptions: { diff --git a/packages/graphiql-plugin-explorer/package.json b/packages/graphiql-plugin-explorer/package.json index c8b22c8fa26..099d6a29d8f 100644 --- a/packages/graphiql-plugin-explorer/package.json +++ b/packages/graphiql-plugin-explorer/package.json @@ -1,13 +1,13 @@ { "name": "@graphiql/plugin-explorer", "version": "3.2.6", + "sideEffects": false, "repository": { "type": "git", "url": "https://github.com/graphql/graphiql", "directory": "packages/graphiql-plugin-explorer" }, "main": "dist/index.js", - "module": "dist/index.mjs", "types": "types/index.d.ts", "license": "MIT", "keywords": [ @@ -34,15 +34,15 @@ "peerDependencies": { "@graphiql/react": "^0.29.0", "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" + "react": "^18 || ^19", + "react-dom": "^18 || ^19" }, "devDependencies": { "@graphiql/react": "^0.29.0", "@vitejs/plugin-react": "^4.4.1", "graphql": "^16.9.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.1.0", + "react-dom": "^19.1.0", "typescript": "^4.6.3", "vite": "^6.3.3", "vite-plugin-svgr": "^4.3.0" diff --git a/packages/graphiql-plugin-explorer/vite.config.mts b/packages/graphiql-plugin-explorer/vite.config.mts index cac0251026a..f636de5fade 100644 --- a/packages/graphiql-plugin-explorer/vite.config.mts +++ b/packages/graphiql-plugin-explorer/vite.config.mts @@ -24,9 +24,10 @@ export default defineConfig({ emptyOutDir: !IS_UMD, lib: { entry: 'src/index.tsx', - fileName: 'index', + fileName: (format, filePath) => + `${filePath}.${format === 'umd' ? 'umd.' : ''}js`, name: 'GraphiQLPluginExplorer', - formats: IS_UMD ? ['umd'] : ['cjs', 'es'], + formats: IS_UMD ? ['umd'] : ['es'], cssFileName: 'style', }, rollupOptions: { diff --git a/packages/graphiql-react/package.json b/packages/graphiql-react/package.json index 62545703a35..6a9c28077cb 100644 --- a/packages/graphiql-react/package.json +++ b/packages/graphiql-react/package.json @@ -1,6 +1,9 @@ { "name": "@graphiql/react", "version": "0.29.0", + "sideEffects": [ + "*.css" + ], "repository": { "type": "git", "url": "https://github.com/graphql/graphiql", @@ -11,20 +14,17 @@ "url": "https://github.com/graphql/graphiql/issues?q=issue+label:@graphiql/react" }, "license": "MIT", - "main": "dist/index.js", - "module": "dist/index.mjs", "exports": { "./package.json": "./package.json", ".": { - "types": "./types/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./font/roboto.css": "./font/roboto.css", "./font/fira-code.css": "./font/fira-code.css", "./dist/style.css": "./dist/style.css" }, - "types": "types/index.d.ts", + "types": "dist/index.d.ts", "keywords": [ "react", "graphql", @@ -33,35 +33,33 @@ ], "files": [ "dist", - "font", - "src", - "types" + "font" ], "scripts": { - "prebuild": "rimraf dist types", - "dev": "concurrently 'tsc --emitDeclarationOnly --watch' 'vite build --watch'", - "build": "tsc --emitDeclarationOnly && vite build", - "test": "vitest" + "dev": "vite build --watch", + "build": "vite build", + "test": "vitest", + "types:check": "tsc --noEmit" }, "peerDependencies": { "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" + "react": "^18 || ^19", + "react-dom": "^18 || ^19" }, "dependencies": { "react-compiler-runtime": "19.1.0-rc.1", "@graphiql/toolkit": "^0.11.2", - "@headlessui/react": "^1.7.15", - "@radix-ui/react-dialog": "^1.0.4", - "@radix-ui/react-dropdown-menu": "^2.0.5", - "@radix-ui/react-tooltip": "^1.0.6", - "@radix-ui/react-visually-hidden": "^1.0.3", + "@headlessui/react": "^2.2", + "@radix-ui/react-dialog": "^1.1", + "@radix-ui/react-dropdown-menu": "^2.1", + "@radix-ui/react-tooltip": "^1.2", + "@radix-ui/react-visually-hidden": "^1.2", "@types/codemirror": "^5.60.8", "clsx": "^1.2.1", "codemirror": "^5.65.3", "codemirror-graphql": "^2.2.1", "copy-to-clipboard": "^3.2.0", - "framer-motion": "^6.5.1", + "framer-motion": "^12", "get-value": "^3.0.1", "graphql-language-service": "^5.3.1", "markdown-it": "^14.1.0", @@ -69,7 +67,7 @@ }, "devDependencies": { "babel-plugin-react-compiler": "19.1.0-rc.1", - "@types/react-dom": "^18.3.1", + "@types/react-dom": "^19.1.2", "@babel/helper-string-parser": "^7.19.4", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.1.0", @@ -78,10 +76,11 @@ "@types/set-value": "^4.0.1", "@vitejs/plugin-react": "^4.4.1", "graphql": "^16.9.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.1.0", + "react-dom": "^19.1.0", "typescript": "^4.6.3", "vite": "^6.3.3", - "vite-plugin-svgr": "^4.3.0" + "vite-plugin-svgr": "^4.3.0", + "vite-plugin-dts": "^4.5.3" } } diff --git a/packages/graphiql-react/src/editor/common.ts b/packages/graphiql-react/src/editor/common.ts index 40d45515a17..a4ea9fd2bbc 100644 --- a/packages/graphiql-react/src/editor/common.ts +++ b/packages/graphiql-react/src/editor/common.ts @@ -29,7 +29,7 @@ export async function importCodeMirror( ) { const CodeMirror = await import('codemirror').then(c => // Depending on bundler and settings the dynamic import either returns a - // function (e.g. parcel) or an object containing a `default` property + // function (e.g., parcel) or an object containing a `default` property typeof c === 'function' ? c : c.default, ); await Promise.all( diff --git a/packages/graphiql-react/src/editor/context.tsx b/packages/graphiql-react/src/editor/context.tsx index 81bd501ebea..0fa20ad2f01 100644 --- a/packages/graphiql-react/src/editor/context.tsx +++ b/packages/graphiql-react/src/editor/context.tsx @@ -211,7 +211,7 @@ export type EditorContextProviderProps = { * - Adding a tab * - Switching to a different tab * - Closing a tab - * @param tabState The tabs state after it has been updated. + * @param tabState The tab state after it has been updated. */ onTabChange?(tabState: TabsState): void; /** @@ -336,7 +336,7 @@ export function EditorContextProvider(props: EditorContextProviderProps) { storage?.set(PERSIST_HEADERS_STORAGE_KEY, persist.toString()); }; - const lastShouldPersistHeadersProp = useRef(); + const lastShouldPersistHeadersProp = useRef(undefined); useEffect(() => { const propValue = Boolean(props.shouldPersistHeaders); if (lastShouldPersistHeadersProp?.current !== propValue) { diff --git a/packages/graphiql-react/src/editor/query-editor.ts b/packages/graphiql-react/src/editor/query-editor.ts index 455053253f9..97f056d6a1f 100644 --- a/packages/graphiql-react/src/editor/query-editor.ts +++ b/packages/graphiql-react/src/editor/query-editor.ts @@ -11,7 +11,7 @@ import { GraphQLDocumentMode, OperationFacts, } from 'graphql-language-service'; -import { MutableRefObject, useEffect, useRef } from 'react'; +import { RefObject, useEffect, useRef } from 'react'; import { useExecutionContext } from '../execution'; import { useExplorerContext } from '../explorer'; @@ -149,7 +149,7 @@ export function useQueryEditor( const merge = useMergeQuery({ caller: caller || _useQueryEditor }); const prettify = usePrettifyEditors({ caller: caller || _useQueryEditor }); const ref = useRef(null); - const codeMirrorRef = useRef(); + const codeMirrorRef = useRef(undefined); const onClickReferenceRef = useRef< NonNullable @@ -474,7 +474,7 @@ export function useQueryEditor( function useSynchronizeSchema( editor: CodeMirrorEditor | null, schema: GraphQLSchema | null, - codeMirrorRef: MutableRefObject, + codeMirrorRef: RefObject, ) { useEffect(() => { if (!editor) { @@ -493,7 +493,7 @@ function useSynchronizeSchema( function useSynchronizeValidationRules( editor: CodeMirrorEditor | null, validationRules: ValidationRule[] | null, - codeMirrorRef: MutableRefObject, + codeMirrorRef: RefObject, ) { useEffect(() => { if (!editor) { @@ -512,7 +512,7 @@ function useSynchronizeValidationRules( function useSynchronizeExternalFragments( editor: CodeMirrorEditor | null, externalFragments: Map, - codeMirrorRef: MutableRefObject, + codeMirrorRef: RefObject, ) { const externalFragmentList = [...externalFragments.values()]; // eslint-disable-line react-hooks/exhaustive-deps -- false positive, variable is optimized by react-compiler, no need to wrap with useMemo diff --git a/packages/graphiql-react/src/editor/response-editor.tsx b/packages/graphiql-react/src/editor/response-editor.tsx index 967a83d58ed..91338daf0a1 100644 --- a/packages/graphiql-react/src/editor/response-editor.tsx +++ b/packages/graphiql-react/src/editor/response-editor.tsx @@ -1,8 +1,7 @@ import { formatError } from '@graphiql/toolkit'; import type { Position, Token } from 'codemirror'; import { ComponentType, useEffect, useRef, JSX } from 'react'; -// eslint-disable-next-line react/no-deprecated -- We can't refactor to root.unmount() from React 18 because we support React 16/17 too -import { unmountComponentAtNode, render } from 'react-dom'; +import { createRoot } from 'react-dom/client'; import { useSchemaContext } from '../schema'; import { @@ -84,6 +83,7 @@ export function useResponseEditor( useEffect(() => { let isActive = true; + void importCodeMirrorImports().then(CodeMirror => { // Don't continue if the effect has already been cleaned up if (!isActive) { @@ -91,31 +91,25 @@ export function useResponseEditor( } // Handle image tooltips and custom tooltips - const tooltipDiv = document.createElement('div'); + const tooltipContainer = document.createElement('div'); + const tooltipRoot = createRoot(tooltipContainer); CodeMirror.registerHelper( 'info', 'graphql-results', (token: Token, _options: any, _cm: CodeMirrorEditor, pos: Position) => { - const infoElements: JSX.Element[] = []; - - const ResponseTooltipComponent = responseTooltipRef.current; - if (ResponseTooltipComponent) { - infoElements.push( - , - ); - } - - if (ImagePreview.shouldRender(token)) { - infoElements.push( - , - ); - } - if (!infoElements.length) { - unmountComponentAtNode(tooltipDiv); - return null; + const ResponseTooltip = responseTooltipRef.current; + const infoElements: JSX.Element[] = [ + ResponseTooltip && , + ImagePreview.shouldRender(token) && ( + + ), + ].filter((v): v is JSX.Element => Boolean(v)); + + if (infoElements.length) { + tooltipRoot.render(infoElements); + return tooltipContainer; } - render(infoElements, tooltipDiv); - return tooltipDiv; + tooltipRoot.unmount(); }, ); @@ -151,7 +145,7 @@ export function useResponseEditor( if (fetchError) { responseEditor?.setValue(fetchError); } - if (validationErrors.length > 0) { + if (validationErrors.length) { responseEditor?.setValue(formatError(validationErrors)); } }, [responseEditor, fetchError, validationErrors]); diff --git a/packages/graphiql-react/src/editor/variable-editor.ts b/packages/graphiql-react/src/editor/variable-editor.ts index a03a93cbdce..09bc7fb0046 100644 --- a/packages/graphiql-react/src/editor/variable-editor.ts +++ b/packages/graphiql-react/src/editor/variable-editor.ts @@ -17,7 +17,7 @@ import { usePrettifyEditors, useSynchronizeOption, } from './hooks'; -import { CodeMirrorType, WriteableEditorProps } from './types'; +import { WriteableEditorProps } from './types'; export type UseVariableEditorArgs = WriteableEditorProps & { /** @@ -64,8 +64,6 @@ export function useVariableEditor( const merge = useMergeQuery({ caller: caller || _useVariableEditor }); const prettify = usePrettifyEditors({ caller: caller || _useVariableEditor }); const ref = useRef(null); - const codeMirrorRef = useRef(); - useEffect(() => { let isActive = true; @@ -74,9 +72,6 @@ export function useVariableEditor( if (!isActive) { return; } - - codeMirrorRef.current = CodeMirror; - const container = ref.current; if (!container) { return; diff --git a/packages/graphiql-react/src/explorer/components/search.tsx b/packages/graphiql-react/src/explorer/components/search.tsx index 1246599908a..90f1e4f4ec6 100644 --- a/packages/graphiql-react/src/explorer/components/search.tsx +++ b/packages/graphiql-react/src/explorer/components/search.tsx @@ -8,7 +8,12 @@ import { isObjectType, } from 'graphql'; import { FC, useEffect, useRef, useState } from 'react'; -import { Combobox } from '@headlessui/react'; +import { + Combobox, + ComboboxInput, + ComboboxOptions, + ComboboxOption, +} from '@headlessui/react'; import { MagnifyingGlassIcon } from '../../icons'; import { useSchemaContext } from '../../schema'; import debounce from '../../utility/debounce'; @@ -85,7 +90,7 @@ export const Search: FC = () => { }} > - setSearchValue(event.target.value)} placeholder={`${isMacOs ? '⌘' : 'Ctrl'} K`} @@ -95,7 +100,7 @@ export const Search: FC = () => { /> {isFocused && ( - + {results.within.length + results.types.length + results.fields.length === @@ -105,13 +110,13 @@ export const Search: FC = () => { ) : ( results.within.map((result, i) => ( - - + )) )} {results.within.length > 0 && @@ -121,25 +126,25 @@ export const Search: FC = () => { ) : null} {results.types.map((result, i) => ( - - + ))} {results.fields.map((result, i) => ( - . - + ))} - + )} ); diff --git a/packages/graphiql-react/src/icons/implements.svg b/packages/graphiql-react/src/icons/implements.svg index 43b3374052a..afae9fc2721 100644 --- a/packages/graphiql-react/src/icons/implements.svg +++ b/packages/graphiql-react/src/icons/implements.svg @@ -11,8 +11,7 @@ stroke="currentColor" stroke-width="1.2" stroke-dasharray="4.241025 4.241025" - transform="rotate(22.5)" - transform-origin="center" + transform="rotate(22.5 6 6)" /> diff --git a/packages/graphiql-react/src/ui/tooltip.tsx b/packages/graphiql-react/src/ui/tooltip.tsx index af141a9364c..6284780c580 100644 --- a/packages/graphiql-react/src/ui/tooltip.tsx +++ b/packages/graphiql-react/src/ui/tooltip.tsx @@ -1,15 +1,15 @@ -import { ReactElement, ReactNode } from 'react'; +import { FC, ReactNode } from 'react'; import * as T from '@radix-ui/react-tooltip'; import { createComponentGroup } from '../utility/component-group'; import './tooltip.css'; -export function TooltipRoot({ +export const TooltipRoot: FC = ({ children, align = 'start', side = 'bottom', sideOffset = 5, label, -}: T.TooltipContentProps & { label: ReactNode }): ReactElement { +}) => { return ( {children} @@ -25,7 +25,7 @@ export function TooltipRoot({ ); -} +}; export const Tooltip = createComponentGroup(TooltipRoot, { Provider: T.Provider, diff --git a/packages/graphiql-react/tsconfig.json b/packages/graphiql-react/tsconfig.json index ccf8cb89dee..3d58136542f 100644 --- a/packages/graphiql-react/tsconfig.json +++ b/packages/graphiql-react/tsconfig.json @@ -5,7 +5,7 @@ "lib": ["DOM", "DOM.Iterable", "ESNext"], "allowJs": false, "skipLibCheck": true, - "esModuleInterop": false, + "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, @@ -17,7 +17,5 @@ "declaration": true, "declarationDir": "types", "types": ["vitest/globals", "@testing-library/jest-dom"] - }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] + } } diff --git a/packages/graphiql-react/tsconfig.node.json b/packages/graphiql-react/tsconfig.node.json deleted file mode 100644 index e993792cb12..00000000000 --- a/packages/graphiql-react/tsconfig.node.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "module": "esnext", - "moduleResolution": "node" - }, - "include": ["vite.config.ts"] -} diff --git a/packages/graphiql-react/vite.config.mts b/packages/graphiql-react/vite.config.mts index 4a7e04b8efd..2094b5108c5 100644 --- a/packages/graphiql-react/vite.config.mts +++ b/packages/graphiql-react/vite.config.mts @@ -3,10 +3,11 @@ import { defineConfig, PluginOption } from 'vite'; import react from '@vitejs/plugin-react'; import svgr from 'vite-plugin-svgr'; import type { PluginOptions as ReactCompilerConfig } from 'babel-plugin-react-compiler'; -import packageJSON from './package.json'; +import packageJSON from './package.json' assert { type: 'json' }; +import dts from 'vite-plugin-dts'; export const reactCompilerConfig: Partial = { - target: '17', + target: '18', sources(filename) { if (filename.includes('__tests__')) { return false; @@ -52,6 +53,11 @@ export const plugins: PluginOption[] = [ titleProp: true, }, }), + dts({ + include: ['src/**'], + outDir: ['dist'], + exclude: ['**/*.spec.{ts,tsx}', '**/__tests__/'], + }), ]; export default defineConfig({ @@ -64,13 +70,17 @@ export default defineConfig({ sourcemap: true, lib: { entry: 'src/index.ts', - fileName: 'index', - formats: ['cjs', 'es'], + fileName(_format, entryName) { + const filePath = entryName.replace(/\.svg$/, ''); + return `${filePath}.js`; + }, + formats: ['es'], cssFileName: 'style', }, rollupOptions: { external: [ 'react/jsx-runtime', + 'react-dom/client', // Exclude peer dependencies and dependencies from bundle ...Object.keys(packageJSON.peerDependencies), ...Object.keys(packageJSON.dependencies), @@ -78,7 +88,7 @@ export default defineConfig({ /codemirror[/-]/, ], output: { - chunkFileNames: '[name].[format].js', + preserveModules: true, }, }, }, diff --git a/packages/graphiql/index.html b/packages/graphiql/index.html index 04073bb4c0e..67dce46c302 100644 --- a/packages/graphiql/index.html +++ b/packages/graphiql/index.html @@ -24,6 +24,7 @@ } + - +
Loading…
- diff --git a/packages/graphiql/package.json b/packages/graphiql/package.json index 905e175fb46..9c586302f69 100644 --- a/packages/graphiql/package.json +++ b/packages/graphiql/package.json @@ -1,10 +1,11 @@ { "name": "graphiql", "version": "3.9.0", + "sideEffects": false, "description": "An graphical interactive in-browser GraphQL IDE.", "contributors": [ "Hyohyeon Jeong ", - "Lee Byron (http://leebyron.com/)" + "Lee Byron (https://leebyron.com)" ], "repository": { "type": "git", @@ -16,11 +17,10 @@ "url": "https://github.com/graphql/graphiql/issues?q=issue+label:graphiql" }, "license": "MIT", - "main": "dist/index.js", - "module": "dist/index.mjs", "types": "dist/index.d.ts", "files": [ "dist", + "!dist/e2e.*", "graphiql.js", "graphiql.js.map", "graphiql.min.js", @@ -34,8 +34,7 @@ "./graphiql.css": "./dist/style.css", ".": { "types": "./dist/index.d.ts", - "require": "./dist/index.js", - "import": "./dist/index.mjs" + "import": "./dist/index.js" } }, "scripts": { @@ -55,8 +54,8 @@ }, "peerDependencies": { "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" + "react": "^18 || ^19", + "react-dom": "^18 || ^19" }, "devDependencies": { "lightningcss": "^1.29.3", @@ -73,8 +72,8 @@ "graphql": "^16.9.0", "graphql-http": "^1.22.1", "graphql-subscriptions": "^2.0.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.1.0", + "react-dom": "^19.1.0", "start-server-and-test": "^1.10.11", "subscriptions-transport-ws": "0.11.0", "typescript": "^4.6.3", diff --git a/packages/graphiql/resources/renderExample.js b/packages/graphiql/src/e2e.ts similarity index 73% rename from packages/graphiql/resources/renderExample.js rename to packages/graphiql/src/e2e.ts index 43a821a6f01..7400a45a0c2 100644 --- a/packages/graphiql/resources/renderExample.js +++ b/packages/graphiql/src/e2e.ts @@ -1,5 +1,7 @@ 'use no memo'; +import { TabsState, Theme } from '@graphiql/react'; + /* global React, ReactDOM, GraphiQL */ /** @@ -14,42 +16,53 @@ * - vite dev server */ +interface Params { + query?: string; + variables?: string; + headers?: string; + confirmCloseTab?: 'true'; + forcedTheme?: 'light' | 'dark' | 'system'; + defaultQuery?: string; + defaultTheme?: Theme; + defaultHeaders?: string; +} + // Parse the search string to get url parameters. -const parameters = Object.fromEntries( +const parameters: Params = Object.fromEntries( new URLSearchParams(location.search).entries(), ); // When the query and variables string is edited, update the URL bar so // that it can be easily shared. -function onEditQuery(newQuery) { +function onEditQuery(newQuery: string): void { parameters.query = newQuery; updateURL(); } -function onEditVariables(newVariables) { +function onEditVariables(newVariables: string): void { parameters.variables = newVariables; updateURL(); } -function onEditHeaders(newHeaders) { +function onEditHeaders(newHeaders: string): void { parameters.headers = newHeaders; updateURL(); } -function onTabChange(tabsState) { +function onTabChange(tabsState: TabsState): void { const activeTab = tabsState.tabs[tabsState.activeTabIndex]; - parameters.query = activeTab.query; - parameters.variables = activeTab.variables; - parameters.headers = activeTab.headers; + parameters.query = activeTab.query ?? undefined; + parameters.variables = activeTab.variables ?? undefined; + parameters.headers = activeTab.headers ?? undefined; updateURL(); } -function confirmCloseTab(index) { +function confirmCloseTab(index: number): boolean { // eslint-disable-next-line no-alert return confirm(`Are you sure you want to close tab with index ${index}?`); } -function updateURL() { +function updateURL(): void { const newSearch = Object.entries(parameters) .filter(([_key, value]) => value) .map( @@ -57,10 +70,10 @@ function updateURL() { encodeURIComponent(key) + '=' + encodeURIComponent(value), ) .join('&'); - history.replaceState(null, null, `?${newSearch}`); + history.replaceState(null, '', `?${newSearch}`); } -function getSchemaUrl() { +function getSchemaUrl(): string { const isDev = /localhost$/.test(location.hostname); if (isDev) { diff --git a/packages/graphiql/src/env.d.ts b/packages/graphiql/src/env.d.ts new file mode 100644 index 00000000000..915f0f330ab --- /dev/null +++ b/packages/graphiql/src/env.d.ts @@ -0,0 +1,3 @@ +declare var React: import('react'); +declare var ReactDOM: import('react-dom/client'); +declare var GraphiQL: import('./cdn'); diff --git a/packages/graphiql/vite.config.mts b/packages/graphiql/vite.config.mts index 29ce479f6e8..dbd3f401ebe 100644 --- a/packages/graphiql/vite.config.mts +++ b/packages/graphiql/vite.config.mts @@ -15,7 +15,7 @@ const reactCompilerConfig: Partial = { ) { return false; } - return filename.includes(`packages${sep}graphiql${sep}`); + return filename.includes(`packages${sep}graphiql${sep}src`); }, }; @@ -31,7 +31,7 @@ const umdConfig = defineConfig({ define: { // graphql v17 'globalThis.process.env.NODE_ENV': 'true', - // https://github.com/graphql/graphql-js/blob/16.x.x/website/docs/tutorials/going-to-production.md#vite + // https://github.com/graphql/graphql-js/blob/16.x.x/website/pages/docs/going-to-production.mdx 'globalThis.process': 'true', 'process.env.NODE_ENV': '"production"', }, @@ -45,7 +45,10 @@ const umdConfig = defineConfig({ emptyOutDir: false, lib: { entry: 'src/cdn.ts', - // 👇 The name of the exposed global variable. Required when the formats option includes umd or iife + /** + * The name of the exposed global variable. Required when the `formats` option includes `umd` + * or `iife`. + */ name: 'GraphiQL', fileName: 'index', formats: ['umd'], @@ -64,20 +67,13 @@ const umdConfig = defineConfig({ }); const esmConfig = defineConfig({ - ...(process.env.NODE_ENV !== 'production' && { - resolve: { - alias: { - 'react/compiler-runtime': 'react-compiler-runtime', - }, - }, - }), build: { minify: false, sourcemap: true, lib: { - entry: 'src/index.ts', - fileName: 'index', - formats: ['cjs', 'es'], + entry: ['src/index.ts', 'src/e2e.ts'], + fileName: (_format, filePath) => `${filePath}.js`, + formats: ['es'], }, rollupOptions: { external: [ @@ -86,10 +82,13 @@ const esmConfig = defineConfig({ ...Object.keys(packageJSON.peerDependencies), ...Object.keys(packageJSON.dependencies), ], + output: { + preserveModules: true, + }, }, }, server: { - // prevent a browser window from opening automatically + // Prevent a browser window from opening automatically open: false, proxy: { '/graphql': 'http://localhost:8080', @@ -104,6 +103,7 @@ const esmConfig = defineConfig({ function htmlPlugin(): PluginOption { const htmlForVite = /* HTML */ ` + - + `; return { diff --git a/yarn.lock b/yarn.lock index a3ea28a5f9c..6ec37cb381e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -187,11 +187,6 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/compat-data@^7.24.8": - version "7.24.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.9.tgz#53eee4e68f1c1d0282aa0eb05ddb02d033fc43a0" - integrity sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng== - "@babel/compat-data@^7.25.9": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.3.tgz#99488264a56b2aded63983abd6a417f03b92ed02" @@ -244,27 +239,6 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/core@^7.24.5": - version "7.24.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.9.tgz#dc07c9d307162c97fa9484ea997ade65841c7c82" - integrity sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.9" - "@babel/helper-compilation-targets" "^7.24.8" - "@babel/helper-module-transforms" "^7.24.9" - "@babel/helpers" "^7.24.8" - "@babel/parser" "^7.24.8" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.8" - "@babel/types" "^7.24.9" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - "@babel/core@^7.26.10": version "7.26.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" @@ -296,16 +270,6 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/generator@^7.24.9": - version "7.24.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.10.tgz#a4ab681ec2a78bbb9ba22a3941195e28a81d8e76" - integrity sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg== - dependencies: - "@babel/types" "^7.24.9" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - "@babel/generator@^7.26.0": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.3.tgz#ab8d4360544a425c90c248df7059881f4b2ce019" @@ -367,17 +331,6 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-compilation-targets@^7.24.8": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz#b607c3161cd9d1744977d4f97139572fe778c271" - integrity sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw== - dependencies: - "@babel/compat-data" "^7.24.8" - "@babel/helper-validator-option" "^7.24.8" - browserslist "^4.23.1" - lru-cache "^5.1.1" - semver "^6.3.1" - "@babel/helper-compilation-targets@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" @@ -466,13 +419,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-environment-visitor@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" - integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== - dependencies: - "@babel/types" "^7.24.7" - "@babel/helper-function-name@^7.22.5": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" @@ -518,14 +464,6 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-imports@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" - integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - "@babel/helper-module-imports@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" @@ -545,17 +483,6 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.20" -"@babel/helper-module-transforms@^7.24.9": - version "7.24.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz#e13d26306b89eea569180868e652e7f514de9d29" - integrity sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw== - dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - "@babel/helper-module-transforms@^7.26.0": version "7.26.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" @@ -644,14 +571,6 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-simple-access@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" - integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5", "@babel/helper-skip-transparent-expression-wrappers@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" @@ -675,13 +594,6 @@ dependencies: "@babel/types" "^7.24.5" -"@babel/helper-split-export-declaration@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" - integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== - dependencies: - "@babel/types" "^7.24.7" - "@babel/helper-string-parser@^7.19.4", "@babel/helper-string-parser@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" @@ -712,11 +624,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helper-validator-option@^7.24.8": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" - integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== - "@babel/helper-validator-option@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" @@ -731,7 +638,7 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helpers@^7.23.7", "@babel/helpers@^7.24.8", "@babel/helpers@^7.26.0", "@babel/helpers@^7.26.10": +"@babel/helpers@^7.23.7", "@babel/helpers@^7.26.0", "@babel/helpers@^7.26.10": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== @@ -768,11 +675,6 @@ dependencies: "@babel/types" "^7.25.2" -"@babel/parser@^7.24.8": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.8.tgz#58a4dbbcad7eb1d48930524a3fd93d93e9084c6f" - integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== - "@babel/parser@^7.25.0": version "7.25.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.0.tgz#9fdc9237504d797b6e7b8f66e78ea7f570d256ad" @@ -1323,13 +1225,6 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.18.6" -"@babel/plugin-transform-react-jsx-self@^7.24.5": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz#66bff0248ea0b549972e733516ffad577477bdab" - integrity sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-transform-react-jsx-self@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz#c0b6cae9c1b73967f7f9eb2fca9536ba2fad2858" @@ -1337,13 +1232,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-react-jsx-source@^7.24.1": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz#1198aab2548ad19582013815c938d3ebd8291ee3" - integrity sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-transform-react-jsx-source@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz#4c6b8daa520b5f155b5fb55547d7c9fa91417503" @@ -1603,7 +1491,7 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.20.1", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.20.1", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== @@ -1619,15 +1507,6 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/template@^7.24.7", "@babel/template@^7.4.4": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" - integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.25.0" - "@babel/types" "^7.25.0" - "@babel/template@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" @@ -1646,6 +1525,15 @@ "@babel/parser" "^7.27.0" "@babel/types" "^7.27.0" +"@babel/template@^7.4.4": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + "@babel/traverse@^7.16.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.7", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.7.2": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" @@ -1677,15 +1565,6 @@ "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" -"@babel/types@^7.24.9": - version "7.24.9" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.9.tgz#228ce953d7b0d16646e755acf204f4cf3d08cc73" - integrity sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ== - dependencies: - "@babel/helper-string-parser" "^7.24.8" - "@babel/helper-validator-identifier" "^7.24.7" - to-fast-properties "^2.0.0" - "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0" @@ -2308,18 +2187,6 @@ dependencies: tslib "^2.4.0" -"@emotion/is-prop-valid@^0.8.2": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== - dependencies: - "@emotion/memoize" "0.7.4" - -"@emotion/memoize@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== - "@esbuild/aix-ppc64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" @@ -2878,6 +2745,21 @@ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.3.0.tgz#113bc85fa102cf890ae801668f43ee265c547a09" integrity sha512-vX1WVAdPjZg9DkDkC+zEx/tKtnST6/qcNpwcjeBgco3XRNHz5PUA+ivi/yr6G3o0kMR60uKBJcfOdfzOFI7PMQ== +"@floating-ui/core@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.0.tgz#1aff27a993ea1b254a586318c29c3b16ea0f4d0a" + integrity sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA== + dependencies: + "@floating-ui/utils" "^0.2.9" + +"@floating-ui/dom@^1.0.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.0.tgz#f9f83ee4fee78ac23ad9e65b128fc11a27857532" + integrity sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg== + dependencies: + "@floating-ui/core" "^1.7.0" + "@floating-ui/utils" "^0.2.9" + "@floating-ui/dom@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.3.0.tgz#69456f2164fc3d33eb40837686eaf71537235ac9" @@ -2892,6 +2774,27 @@ dependencies: "@floating-ui/dom" "^1.3.0" +"@floating-ui/react-dom@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.2.tgz#a1349bbf6a0e5cb5ded55d023766f20a4d439a31" + integrity sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A== + dependencies: + "@floating-ui/dom" "^1.0.0" + +"@floating-ui/react@^0.26.16": + version "0.26.28" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.28.tgz#93f44ebaeb02409312e9df9507e83aab4a8c0dc7" + integrity sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw== + dependencies: + "@floating-ui/react-dom" "^2.1.2" + "@floating-ui/utils" "^0.2.8" + tabbable "^6.0.0" + +"@floating-ui/utils@^0.2.8", "@floating-ui/utils@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.9.tgz#50dea3616bc8191fb8e112283b49eaff03e78429" + integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg== + "@graphql-tools/batch-execute@^9.0.0": version "9.0.0" resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-9.0.0.tgz#9aba67c235dfa8e28e17d204ccb74998064eaec3" @@ -3101,12 +3004,16 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@headlessui/react@^1.7.15": - version "1.7.15" - resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.15.tgz#53ef6ae132af81b8f188414767b6e79ebf8dc73f" - integrity sha512-OTO0XtoRQ6JPB1cKNFYBZv2Q0JMqMGNhYP1CjPvcJvjz8YGokz8oAj89HIYZGN0gZzn/4kk9iUpmMF4Q21Gsqw== +"@headlessui/react@^2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-2.2.2.tgz#adbfed24a10b73a4951462c5a6c120a7f886d05d" + integrity sha512-zbniWOYBQ8GHSUIOPY7BbdIn6PzUOq0z41RFrF30HbjsxG6Rrfk+6QulR8Kgf2Vwj2a/rE6i62q5vo+2gI5dJA== dependencies: - client-only "^0.0.1" + "@floating-ui/react" "^0.26.16" + "@react-aria/focus" "^3.17.1" + "@react-aria/interactions" "^3.21.3" + "@tanstack/react-virtual" "^3.13.6" + use-sync-external-store "^1.5.0" "@humanfs/core@^0.19.1": version "0.19.1" @@ -3556,59 +3463,6 @@ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz#d4f6937353bc4568292654efb0a0e0532adbcba2" integrity sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw== -"@motionone/animation@^10.12.0": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.15.1.tgz#4a85596c31cbc5100ae8eb8b34c459fb0ccf6807" - integrity sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ== - dependencies: - "@motionone/easing" "^10.15.1" - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" - tslib "^2.3.1" - -"@motionone/dom@10.12.0": - version "10.12.0" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.12.0.tgz#ae30827fd53219efca4e1150a5ff2165c28351ed" - integrity sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw== - dependencies: - "@motionone/animation" "^10.12.0" - "@motionone/generators" "^10.12.0" - "@motionone/types" "^10.12.0" - "@motionone/utils" "^10.12.0" - hey-listen "^1.0.8" - tslib "^2.3.1" - -"@motionone/easing@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.15.1.tgz#95cf3adaef34da6deebb83940d8143ede3deb693" - integrity sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw== - dependencies: - "@motionone/utils" "^10.15.1" - tslib "^2.3.1" - -"@motionone/generators@^10.12.0": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.15.1.tgz#dc6abb11139d1bafe758a41c134d4c753a9b871c" - integrity sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ== - dependencies: - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" - tslib "^2.3.1" - -"@motionone/types@^10.12.0", "@motionone/types@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.15.1.tgz#89441b54285012795cbba8612cbaa0fa420db3eb" - integrity sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA== - -"@motionone/utils@^10.12.0", "@motionone/utils@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.15.1.tgz#6b5f51bde75be88b5411e084310299050368a438" - integrity sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw== - dependencies: - "@motionone/types" "^10.15.1" - hey-listen "^1.0.8" - tslib "^2.3.1" - "@n1ru4l/push-pull-async-iterable-iterator@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.1.0.tgz#be450c97d1c7cd6af1a992d53232704454345df9" @@ -3765,295 +3619,328 @@ resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.4.tgz#d897170a2b0ba51f78a099edccd968f7b103387c" integrity sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw== -"@radix-ui/primitive@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.0.1.tgz#e46f9958b35d10e9f6dc71c497305c22e3e55dbd" - integrity sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw== - dependencies: - "@babel/runtime" "^7.13.10" - -"@radix-ui/react-arrow@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz#c24f7968996ed934d57fe6cde5d6ec7266e1d25d" - integrity sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-primitive" "1.0.3" - -"@radix-ui/react-collection@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.0.3.tgz#9595a66e09026187524a36c6e7e9c7d286469159" - integrity sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-context" "1.0.1" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-slot" "1.0.2" +"@radix-ui/primitive@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.2.tgz#83f415c4425f21e3d27914c12b3272a32e3dae65" + integrity sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA== -"@radix-ui/react-compose-refs@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz#7ed868b66946aa6030e580b1ffca386dd4d21989" - integrity sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw== +"@radix-ui/react-arrow@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.1.4.tgz#08e263c692b3a56a3f1c4bdc8405b7f73f070963" + integrity sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw== dependencies: - "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "2.1.0" -"@radix-ui/react-context@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.0.1.tgz#fe46e67c96b240de59187dcb7a1a50ce3e2ec00c" - integrity sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg== +"@radix-ui/react-collection@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.4.tgz#45fb4215ca26a84bd61b9b1337105e4d4e01b686" + integrity sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg== dependencies: - "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-slot" "1.2.0" -"@radix-ui/react-dialog@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.0.4.tgz#06bce6c16bb93eb36d7a8589e665a20f4c1c52c1" - integrity sha512-hJtRy/jPULGQZceSAP2Re6/4NpKo8im6V8P2hUqZsdFiSL8l35kYsw3qbRI6Ay5mQd2+wlLqje770eq+RJ3yZg== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/primitive" "1.0.1" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-context" "1.0.1" - "@radix-ui/react-dismissable-layer" "1.0.4" - "@radix-ui/react-focus-guards" "1.0.1" - "@radix-ui/react-focus-scope" "1.0.3" - "@radix-ui/react-id" "1.0.1" - "@radix-ui/react-portal" "1.0.3" - "@radix-ui/react-presence" "1.0.1" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-slot" "1.0.2" - "@radix-ui/react-use-controllable-state" "1.0.1" - aria-hidden "^1.1.1" - react-remove-scroll "2.5.5" - -"@radix-ui/react-direction@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.0.1.tgz#9cb61bf2ccf568f3421422d182637b7f47596c9b" - integrity sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA== - dependencies: - "@babel/runtime" "^7.13.10" +"@radix-ui/react-compose-refs@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz#a2c4c47af6337048ee78ff6dc0d090b390d2bb30" + integrity sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg== -"@radix-ui/react-dismissable-layer@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz#883a48f5f938fa679427aa17fcba70c5494c6978" - integrity sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/primitive" "1.0.1" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-use-callback-ref" "1.0.1" - "@radix-ui/react-use-escape-keydown" "1.0.3" +"@radix-ui/react-context@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.2.tgz#61628ef269a433382c364f6f1e3788a6dc213a36" + integrity sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA== -"@radix-ui/react-dropdown-menu@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.5.tgz#19bf4de8ffa348b4eb6a86842f14eff93d741170" - integrity sha512-xdOrZzOTocqqkCkYo8yRPCib5OkTkqN7lqNCdxwPOdE466DOaNl4N8PkUIlsXthQvW5Wwkd+aEmWpfWlBoDPEw== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/primitive" "1.0.1" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-context" "1.0.1" - "@radix-ui/react-id" "1.0.1" - "@radix-ui/react-menu" "2.0.5" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-use-controllable-state" "1.0.1" - -"@radix-ui/react-focus-guards@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz#1ea7e32092216b946397866199d892f71f7f98ad" - integrity sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA== - dependencies: - "@babel/runtime" "^7.13.10" +"@radix-ui/react-dialog@^1.1": + version "1.1.11" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.11.tgz#1144609cbc9f8b36bcc288beb880f6b72cbd85ee" + integrity sha512-yI7S1ipkP5/+99qhSI6nthfo/tR6bL6Zgxi/+1UO6qPa6UeM6nlafWcQ65vB4rU2XjgjMfMhI3k9Y5MztA62VQ== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-dismissable-layer" "1.1.7" + "@radix-ui/react-focus-guards" "1.1.2" + "@radix-ui/react-focus-scope" "1.1.4" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-portal" "1.1.6" + "@radix-ui/react-presence" "1.1.4" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-slot" "1.2.0" + "@radix-ui/react-use-controllable-state" "1.2.2" + aria-hidden "^1.2.4" + react-remove-scroll "^2.6.3" + +"@radix-ui/react-direction@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.1.tgz#39e5a5769e676c753204b792fbe6cf508e550a14" + integrity sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw== -"@radix-ui/react-focus-scope@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz#9c2e8d4ed1189a1d419ee61edd5c1828726472f9" - integrity sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-use-callback-ref" "1.0.1" +"@radix-ui/react-dismissable-layer@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.7.tgz#80b5c23a0d29cfe56850399210c603376c27091f" + integrity sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-escape-keydown" "1.1.1" + +"@radix-ui/react-dropdown-menu@^2.1": + version "2.1.12" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.12.tgz#18c71e1588c5bd436e8d32d0464b6237c0647e4b" + integrity sha512-VJoMs+BWWE7YhzEQyVwvF9n22Eiyr83HotCVrMQzla/OwRovXCgah7AcaEr4hMNj4gJxSdtIbcHGvmJXOoJVHA== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-menu" "2.1.12" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-use-controllable-state" "1.2.2" + +"@radix-ui/react-focus-guards@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz#4ec9a7e50925f7fb661394460045b46212a33bed" + integrity sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA== -"@radix-ui/react-id@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.0.1.tgz#73cdc181f650e4df24f0b6a5b7aa426b912c88c0" - integrity sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ== +"@radix-ui/react-focus-scope@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.4.tgz#dbe9ed31b36ff9aadadf4b59aa733a4e91799d15" + integrity sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-use-callback-ref" "1.1.1" -"@radix-ui/react-menu@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.0.5.tgz#a7d78b0808c4d38269240bf5d5c7ffea3e225e16" - integrity sha512-Gw4f9pwdH+w5w+49k0gLjN0PfRDHvxmAgG16AbyJZ7zhwZ6PBHKtWohvnSwfusfnK3L68dpBREHpVkj8wEM7ZA== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/primitive" "1.0.1" - "@radix-ui/react-collection" "1.0.3" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-context" "1.0.1" - "@radix-ui/react-direction" "1.0.1" - "@radix-ui/react-dismissable-layer" "1.0.4" - "@radix-ui/react-focus-guards" "1.0.1" - "@radix-ui/react-focus-scope" "1.0.3" - "@radix-ui/react-id" "1.0.1" - "@radix-ui/react-popper" "1.1.2" - "@radix-ui/react-portal" "1.0.3" - "@radix-ui/react-presence" "1.0.1" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-roving-focus" "1.0.4" - "@radix-ui/react-slot" "1.0.2" - "@radix-ui/react-use-callback-ref" "1.0.1" - aria-hidden "^1.1.1" - react-remove-scroll "2.5.5" - -"@radix-ui/react-popper@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.1.2.tgz#4c0b96fcd188dc1f334e02dba2d538973ad842e9" - integrity sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg== +"@radix-ui/react-id@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.1.tgz#1404002e79a03fe062b7e3864aa01e24bd1471f7" + integrity sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-menu@2.1.12": + version "2.1.12" + resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.1.12.tgz#011eb9c0dfc58a01bc8d7eea04ed62450a0b6563" + integrity sha512-+qYq6LfbiGo97Zz9fioX83HCiIYYFNs8zAsVCMQrIakoNYylIzWuoD/anAD3UzvvR6cnswmfRFJFq/zYYq/k7Q== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-collection" "1.1.4" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.7" + "@radix-ui/react-focus-guards" "1.1.2" + "@radix-ui/react-focus-scope" "1.1.4" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-popper" "1.2.4" + "@radix-ui/react-portal" "1.1.6" + "@radix-ui/react-presence" "1.1.4" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-roving-focus" "1.1.7" + "@radix-ui/react-slot" "1.2.0" + "@radix-ui/react-use-callback-ref" "1.1.1" + aria-hidden "^1.2.4" + react-remove-scroll "^2.6.3" + +"@radix-ui/react-popper@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.4.tgz#8fd6d954fca9e5d1341c7d9153cc88e05d5ed84e" + integrity sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA== dependencies: - "@babel/runtime" "^7.13.10" "@floating-ui/react-dom" "^2.0.0" - "@radix-ui/react-arrow" "1.0.3" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-context" "1.0.1" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-use-callback-ref" "1.0.1" - "@radix-ui/react-use-layout-effect" "1.0.1" - "@radix-ui/react-use-rect" "1.0.1" - "@radix-ui/react-use-size" "1.0.1" - "@radix-ui/rect" "1.0.1" - -"@radix-ui/react-portal@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.0.3.tgz#ffb961244c8ed1b46f039e6c215a6c4d9989bda1" - integrity sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA== + "@radix-ui/react-arrow" "1.1.4" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-layout-effect" "1.1.1" + "@radix-ui/react-use-rect" "1.1.1" + "@radix-ui/react-use-size" "1.1.1" + "@radix-ui/rect" "1.1.1" + +"@radix-ui/react-portal@1.1.6": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.6.tgz#4202e1bb34afdac612e4e982eca8efd36cbc611f" + integrity sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-presence@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.0.1.tgz#491990ba913b8e2a5db1b06b203cb24b5cdef9ba" - integrity sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg== +"@radix-ui/react-presence@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.4.tgz#253ac0ad4946c5b4a9c66878335f5cf07c967ced" + integrity sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-primitive@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz#d49ea0f3f0b2fe3ab1cb5667eb03e8b843b914d0" - integrity sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g== +"@radix-ui/react-primitive@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz#9233e17a22d0010195086f8b5eb1808ebbca8437" + integrity sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-slot" "1.0.2" + "@radix-ui/react-slot" "1.2.0" -"@radix-ui/react-roving-focus@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz#e90c4a6a5f6ac09d3b8c1f5b5e81aab2f0db1974" - integrity sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/primitive" "1.0.1" - "@radix-ui/react-collection" "1.0.3" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-context" "1.0.1" - "@radix-ui/react-direction" "1.0.1" - "@radix-ui/react-id" "1.0.1" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-use-callback-ref" "1.0.1" - "@radix-ui/react-use-controllable-state" "1.0.1" - -"@radix-ui/react-slot@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz#a9ff4423eade67f501ffb32ec22064bc9d3099ab" - integrity sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg== +"@radix-ui/react-roving-focus@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.7.tgz#02077705ab0c712d2d9692459a7194c5a4e5236d" + integrity sha512-C6oAg451/fQT3EGbWHbCQjYTtbyjNO1uzQgMzwyivcHT3GKNEmu1q3UuREhN+HzHAVtv3ivMVK08QlC+PkYw9Q== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-collection" "1.1.4" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-controllable-state" "1.2.2" + +"@radix-ui/react-slot@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.0.tgz#57727fc186ddb40724ccfbe294e1a351d92462ba" + integrity sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-compose-refs" "1.1.2" -"@radix-ui/react-tooltip@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.0.6.tgz#87a7786cd9f2b4de957ac645afae1575339c58b0" - integrity sha512-DmNFOiwEc2UDigsYj6clJENma58OelxD24O4IODoZ+3sQc3Zb+L8w1EP+y9laTuKCLAysPw4fD6/v0j4KNV8rg== - dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/primitive" "1.0.1" - "@radix-ui/react-compose-refs" "1.0.1" - "@radix-ui/react-context" "1.0.1" - "@radix-ui/react-dismissable-layer" "1.0.4" - "@radix-ui/react-id" "1.0.1" - "@radix-ui/react-popper" "1.1.2" - "@radix-ui/react-portal" "1.0.3" - "@radix-ui/react-presence" "1.0.1" - "@radix-ui/react-primitive" "1.0.3" - "@radix-ui/react-slot" "1.0.2" - "@radix-ui/react-use-controllable-state" "1.0.1" - "@radix-ui/react-visually-hidden" "1.0.3" - -"@radix-ui/react-use-callback-ref@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz#f4bb1f27f2023c984e6534317ebc411fc181107a" - integrity sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ== +"@radix-ui/react-tooltip@^1.2": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.2.4.tgz#d9111cfccb47891cf19e6e025b7583f3ceadb4bc" + integrity sha512-DyW8VVeeMSSLFvAmnVnCwvI3H+1tpJFHT50r+tdOoMse9XqYDBCcyux8u3G2y+LOpt7fPQ6KKH0mhs+ce1+Z5w== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-dismissable-layer" "1.1.7" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-popper" "1.2.4" + "@radix-ui/react-portal" "1.1.6" + "@radix-ui/react-presence" "1.1.4" + "@radix-ui/react-primitive" "2.1.0" + "@radix-ui/react-slot" "1.2.0" + "@radix-ui/react-use-controllable-state" "1.2.2" + "@radix-ui/react-visually-hidden" "1.2.0" + +"@radix-ui/react-use-callback-ref@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz#62a4dba8b3255fdc5cc7787faeac1c6e4cc58d40" + integrity sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg== + +"@radix-ui/react-use-controllable-state@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz#905793405de57d61a439f4afebbb17d0645f3190" + integrity sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg== dependencies: - "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-effect-event" "0.0.2" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-use-controllable-state@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz#ecd2ced34e6330caf89a82854aa2f77e07440286" - integrity sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA== +"@radix-ui/react-use-effect-event@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz#090cf30d00a4c7632a15548512e9152217593907" + integrity sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-use-escape-keydown@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz#217b840c250541609c66f67ed7bab2b733620755" - integrity sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg== +"@radix-ui/react-use-escape-keydown@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz#b3fed9bbea366a118f40427ac40500aa1423cc29" + integrity sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-callback-ref" "1.1.1" -"@radix-ui/react-use-layout-effect@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz#be8c7bc809b0c8934acf6657b577daf948a75399" - integrity sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ== +"@radix-ui/react-use-layout-effect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz#0c4230a9eed49d4589c967e2d9c0d9d60a23971e" + integrity sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ== + +"@radix-ui/react-use-rect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz#01443ca8ed071d33023c1113e5173b5ed8769152" + integrity sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w== dependencies: - "@babel/runtime" "^7.13.10" + "@radix-ui/rect" "1.1.1" -"@radix-ui/react-use-rect@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz#fde50b3bb9fd08f4a1cd204572e5943c244fcec2" - integrity sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw== +"@radix-ui/react-use-size@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz#6de276ffbc389a537ffe4316f5b0f24129405b37" + integrity sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/rect" "1.0.1" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-use-size@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz#1c5f5fea940a7d7ade77694bb98116fb49f870b2" - integrity sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g== +"@radix-ui/react-visually-hidden@1.2.0", "@radix-ui/react-visually-hidden@^1.2": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.0.tgz#7692a590b4789bebf7e02d73e6d1390704a97920" + integrity sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-primitive" "2.1.0" -"@radix-ui/react-visually-hidden@1.0.3", "@radix-ui/react-visually-hidden@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz#51aed9dd0fe5abcad7dee2a234ad36106a6984ac" - integrity sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA== +"@radix-ui/rect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.1.tgz#78244efe12930c56fd255d7923865857c41ac8cb" + integrity sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw== + +"@react-aria/focus@^3.17.1": + version "3.20.2" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.20.2.tgz#f20cd830d2536b905169a547228c5d5471a874bc" + integrity sha512-Q3rouk/rzoF/3TuH6FzoAIKrl+kzZi9LHmr8S5EqLAOyP9TXIKG34x2j42dZsAhrw7TbF9gA8tBKwnCNH4ZV+Q== + dependencies: + "@react-aria/interactions" "^3.25.0" + "@react-aria/utils" "^3.28.2" + "@react-types/shared" "^3.29.0" + "@swc/helpers" "^0.5.0" + clsx "^2.0.0" + +"@react-aria/interactions@^3.21.3", "@react-aria/interactions@^3.25.0": + version "3.25.0" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.25.0.tgz#a57dcec4b8c429756770fbe969263588bb879110" + integrity sha512-GgIsDLlO8rDU/nFn6DfsbP9rfnzhm8QFjZkB9K9+r+MTSCn7bMntiWQgMM+5O6BiA8d7C7x4zuN4bZtc0RBdXQ== + dependencies: + "@react-aria/ssr" "^3.9.8" + "@react-aria/utils" "^3.28.2" + "@react-stately/flags" "^3.1.1" + "@react-types/shared" "^3.29.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/ssr@^3.9.8": + version "3.9.8" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.8.tgz#9c06f1860abac629517898c1b5424be5d03bc112" + integrity sha512-lQDE/c9uTfBSDOjaZUJS8xP2jCKVk4zjQeIlCH90xaLhHDgbpCdns3xvFpJJujfj3nI4Ll9K7A+ONUBDCASOuw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-aria/utils@^3.28.2": + version "3.28.2" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.28.2.tgz#f698bc54b2cb506c2f81d1ce92543ae39aae3968" + integrity sha512-J8CcLbvnQgiBn54eeEvQQbIOfBF3A1QizxMw9P4cl9MkeR03ug7RnjTIdJY/n2p7t59kLeAB3tqiczhcj+Oi5w== + dependencies: + "@react-aria/ssr" "^3.9.8" + "@react-stately/flags" "^3.1.1" + "@react-stately/utils" "^3.10.6" + "@react-types/shared" "^3.29.0" + "@swc/helpers" "^0.5.0" + clsx "^2.0.0" + +"@react-stately/flags@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-stately/flags/-/flags-3.1.1.tgz#c47d540c4196798f4cc0ee83f844099b4d57b876" + integrity sha512-XPR5gi5LfrPdhxZzdIlJDz/B5cBf63l4q6/AzNqVWFKgd0QqY5LvWJftXkklaIUpKSJkIKQb8dphuZXDtkWNqg== dependencies: - "@babel/runtime" "^7.13.10" - "@radix-ui/react-primitive" "1.0.3" + "@swc/helpers" "^0.5.0" -"@radix-ui/rect@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.0.1.tgz#bf8e7d947671996da2e30f4904ece343bc4a883f" - integrity sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ== +"@react-stately/utils@^3.10.6": + version "3.10.6" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.10.6.tgz#2ae25c2773e53a4ebdaf39264aa27145b758dc1b" + integrity sha512-O76ip4InfTTzAJrg8OaZxKU4vvjMDOpfA/PGNOytiXwBbkct2ZeZwaimJ8Bt9W1bj5VsZ81/o/tW4BacbdDOMA== dependencies: - "@babel/runtime" "^7.13.10" + "@swc/helpers" "^0.5.0" + +"@react-types/shared@^3.29.0": + version "3.29.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.29.0.tgz#f29bdad3bff1336aaa754d7abc420da2f014d931" + integrity sha512-IDQYu/AHgZimObzCFdNl1LpZvQW/xcfLt3v20sorl5qRucDVj4S9os98sVTZ4IRIBjmS+MkjqpR5E70xan7ooA== "@repeaterjs/repeater@3.0.4", "@repeaterjs/repeater@^3.0.4": version "3.0.4" @@ -4541,6 +4428,13 @@ dependencies: tslib "^2.4.0" +"@swc/helpers@^0.5.0": + version "0.5.17" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" + integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== + dependencies: + tslib "^2.8.0" + "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -4548,6 +4442,18 @@ dependencies: defer-to-connect "^2.0.0" +"@tanstack/react-virtual@^3.13.6": + version "3.13.6" + resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.13.6.tgz#30243c8c3166673caf66bfbf5352e1b314a3a4cd" + integrity sha512-WT7nWs8ximoQ0CDx/ngoFP7HbQF9Q2wQe4nh2NB+u2486eX3nZRE40P9g6ccCVq7ZfTSH5gFOuCoVH5DLNS/aA== + dependencies: + "@tanstack/virtual-core" "3.13.6" + +"@tanstack/virtual-core@3.13.6": + version "3.13.6" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.13.6.tgz#329f962f1596b3280736c266a982897ed2112157" + integrity sha512-cnQUeWnhNP8tJ4WsGcYiX24Gjkc9ALstLbHcBj1t3E7EimN6n6kHH+DPV4PpDnuw00NApQp+ViojMj1GRdwYQg== + "@testing-library/dom@^10.4.0": version "10.4.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-10.4.0.tgz#82a9d9462f11d240ecadbf406607c6ceeeff43a8" @@ -5041,11 +4947,6 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.4.tgz#ad899dad022bab6b5a9f0a0fe67c2f7a4a8950ed" integrity sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw== -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - "@types/qs@*": version "6.9.5" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" @@ -5056,18 +4957,16 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== -"@types/react-dom@^18.3.1": - version "18.3.5" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.5.tgz#45f9f87398c5dcea085b715c58ddcf1faf65f716" - integrity sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q== +"@types/react-dom@^19.1.2": + version "19.1.3" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.3.tgz#3f0c60804441bf34d19f8dd0d44405c0c0e21bfa" + integrity sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg== -"@types/react@18.2.14": - version "18.2.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" - integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== +"@types/react@^19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.2.tgz#11df86f66f188f212c90ecb537327ec68bfd593f" + integrity sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw== dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" "@types/resolve@1.17.1": @@ -5089,11 +4988,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== - "@types/semver@^7.3.9", "@types/semver@^7.5.0": version "7.5.8" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" @@ -5406,17 +5300,6 @@ "@graphql-typed-document-node/core" "^3.1.1" wonka "^4.0.14" -"@vitejs/plugin-react@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz#d0be6594051ded8957df555ff07a991fb618b48e" - integrity sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg== - dependencies: - "@babel/core" "^7.24.5" - "@babel/plugin-transform-react-jsx-self" "^7.24.5" - "@babel/plugin-transform-react-jsx-source" "^7.24.1" - "@types/babel__core" "^7.20.5" - react-refresh "^0.14.2" - "@vitejs/plugin-react@^4.4.1": version "4.4.1" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz#d7d1e9c9616d7536b0953637edfee7c6cbe2fe0f" @@ -6401,10 +6284,10 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-hidden@^1.1.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.3.tgz#14aeb7fb692bbb72d69bebfa47279c1fd725e954" - integrity sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ== +aria-hidden@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.4.tgz#b78e383fdbc04d05762c78b4a25a501e736c4522" + integrity sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A== dependencies: tslib "^2.0.0" @@ -7095,16 +6978,6 @@ browserslist@^4.21.10: node-releases "^2.0.19" update-browserslist-db "^1.1.1" -browserslist@^4.23.1: - version "4.23.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.2.tgz#244fe803641f1c19c28c48c4b6ec9736eb3d32ed" - integrity sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA== - dependencies: - caniuse-lite "^1.0.30001640" - electron-to-chromium "^1.4.820" - node-releases "^2.0.14" - update-browserslist-db "^1.1.0" - browserslist@^4.24.0: version "4.24.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" @@ -7298,11 +7171,6 @@ caniuse-lite@^1.0.30001317, caniuse-lite@^1.0.30001328, caniuse-lite@^1.0.300014 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001639.tgz#972b3a6adeacdd8f46af5fc7f771e9639f6c1521" integrity sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg== -caniuse-lite@^1.0.30001640: - version "1.0.30001643" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz#9c004caef315de9452ab970c3da71085f8241dbd" - integrity sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg== - caniuse-lite@^1.0.30001669: version "1.0.30001687" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz#d0ac634d043648498eedf7a3932836beba90ebae" @@ -7599,7 +7467,7 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" -client-only@0.0.1, client-only@^0.0.1: +client-only@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== @@ -7662,6 +7530,11 @@ clsx@^1.2.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== +clsx@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -8821,11 +8694,6 @@ electron-to-chromium@^1.4.796, electron-to-chromium@^1.4.84: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.815.tgz#e901b195c57c3e0fae8dc6d596e4188a33c3e82c" integrity sha512-OvpTT2ItpOXJL7IGcYakRjHCt8L5GrrN/wHCQsRB4PQa1X9fe+X9oen245mIId7s14xvArCGSTIq644yPUKKLg== -electron-to-chromium@^1.4.820: - version "1.5.1" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.1.tgz#24640bd4dcfaccb6d82bb4c3f4c7311503241581" - integrity sha512-FKbOCOQ5QRB3VlIbl1LZQefWIYwszlBloaXcY2rbfpu9ioJnNh3TK03YtIDKDo3WKBi8u+YV4+Fn2CkEozgf4w== - electron-to-chromium@^1.5.41: version "1.5.72" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.72.tgz#a732805986d3a5b5fedd438ddf4616c7d78ac2df" @@ -10587,26 +10455,14 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -framer-motion@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.5.1.tgz#802448a16a6eb764124bf36d8cbdfa6dd6b931a7" - integrity sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw== - dependencies: - "@motionone/dom" "10.12.0" - framesync "6.0.1" - hey-listen "^1.0.8" - popmotion "11.0.3" - style-value-types "5.0.0" - tslib "^2.1.0" - optionalDependencies: - "@emotion/is-prop-valid" "^0.8.2" - -framesync@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.0.1.tgz#5e32fc01f1c42b39c654c35b16440e07a25d6f20" - integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA== +framer-motion@^12: + version "12.9.4" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-12.9.4.tgz#c3091d77d6e84d1105549c40e4d7890b60f1ffb6" + integrity sha512-yaeGDmGQ3eCQEwZ95/pRQMaSh/Q4E2CK6JYOclG/PdjyQad0MULJ+JFVV8911Fl5a6tF6o0wgW8Dpl5Qx4Adjg== dependencies: - tslib "^2.1.0" + motion-dom "^12.9.4" + motion-utils "^12.9.4" + tslib "^2.4.0" fresh@0.5.2: version "0.5.2" @@ -11322,11 +11178,6 @@ hermes-parser@^0.25.1: dependencies: hermes-estree "0.25.1" -hey-listen@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" - integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== - highlight.js@^10.2.0: version "10.5.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f" @@ -11715,13 +11566,6 @@ interpret@^3.1.1: resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -13780,7 +13624,7 @@ longest-streak@^3.0.0: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -14674,6 +14518,18 @@ monaco-editor@^0.39.0: resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.39.0.tgz#3cf8e3718d6aac347d374516a6837d1c13d967d2" integrity sha512-zhbZ2Nx93tLR8aJmL2zI1mhJpsl87HMebNBM6R8z4pLfs8pj604pIVIVwyF1TivcfNtIPpMXL+nb3DsBmE/x6Q== +motion-dom@^12.9.4: + version "12.9.4" + resolved "https://registry.yarnpkg.com/motion-dom/-/motion-dom-12.9.4.tgz#9de06ab408effc73877309cf27813442501ec0ef" + integrity sha512-25TWkQPj5I18m+qVjXGtCsxboY11DaRC5HMjd29tHKExazW4Zf4XtAagBdLpyKsVuAxEQ6cx5/E4AB21PFpLnQ== + dependencies: + motion-utils "^12.9.4" + +motion-utils@^12.9.4: + version "12.9.4" + resolved "https://registry.yarnpkg.com/motion-utils/-/motion-utils-12.9.4.tgz#9d5a45a19971e20059911526d7af2217c5158fa2" + integrity sha512-BW3I65zeM76CMsfh3kHid9ansEJk9Qvl+K5cu4DVHKGsI52n76OJ4z2CUJUV+Mn3uEP9k1JJA3tClG0ggSrRcg== + mri@^1.1.0, mri@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -15679,16 +15535,6 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -popmotion@11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-11.0.3.tgz#565c5f6590bbcddab7a33a074bb2ba97e24b0cc9" - integrity sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA== - dependencies: - framesync "6.0.1" - hey-listen "^1.0.8" - style-value-types "5.0.0" - tslib "^2.1.0" - possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" @@ -16051,13 +15897,13 @@ react-compiler-runtime@19.1.0-rc.1: resolved "https://registry.yarnpkg.com/react-compiler-runtime/-/react-compiler-runtime-19.1.0-rc.1.tgz#2535efd2e9fc9fc7d5ad47e970061dfbe38fb3f6" integrity sha512-wCt6g+cRh8g32QT18/9blfQHywGjYu+4FlEc3CW1mx3pPxYzZZl1y+VtqxRgnKKBCFLIGUYxog4j4rs5YS86hw== -react-dom@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== +react-dom@18.3.1, react-dom@^19.1.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" - scheduler "^0.23.0" + scheduler "^0.23.2" react-is@^16.13.1: version "16.13.1" @@ -16074,48 +15920,42 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-refresh@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" - integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== - react-refresh@^0.17.0: version "0.17.0" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.17.0.tgz#b7e579c3657f23d04eccbe4ad2e58a8ed51e7e53" integrity sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ== -react-remove-scroll-bar@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.3.tgz#e291f71b1bb30f5f67f023765b7435f4b2b2cd94" - integrity sha512-i9GMNWwpz8XpUpQ6QlevUtFjHGqnPG4Hxs+wlIJntu/xcsZVEpJcIV71K3ZkqNy2q3GfgvkD7y6t/Sv8ofYSbw== +react-remove-scroll-bar@^2.3.7: + version "2.3.8" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz#99c20f908ee467b385b68a3469b4a3e750012223" + integrity sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q== dependencies: - react-style-singleton "^2.2.1" + react-style-singleton "^2.2.2" tslib "^2.0.0" -react-remove-scroll@2.5.5: - version "2.5.5" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz#1e31a1260df08887a8a0e46d09271b52b3a37e77" - integrity sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw== +react-remove-scroll@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz#df02cde56d5f2731e058531f8ffd7f9adec91ac2" + integrity sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ== dependencies: - react-remove-scroll-bar "^2.3.3" - react-style-singleton "^2.2.1" + react-remove-scroll-bar "^2.3.7" + react-style-singleton "^2.2.3" tslib "^2.1.0" - use-callback-ref "^1.3.0" - use-sidecar "^1.1.2" + use-callback-ref "^1.3.3" + use-sidecar "^1.1.3" -react-style-singleton@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" - integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== +react-style-singleton@^2.2.2, react-style-singleton@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.3.tgz#4265608be69a4d70cfe3047f2c6c88b2c3ace388" + integrity sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ== dependencies: get-nonce "^1.0.0" - invariant "^2.2.4" tslib "^2.0.0" -react@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== +react@18.3.1, react@^19.1.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" @@ -16822,10 +16662,10 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" @@ -17854,14 +17694,6 @@ style-mod@^4.1.0: resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67" integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== -style-value-types@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.0.0.tgz#76c35f0e579843d523187989da866729411fc8ad" - integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA== - dependencies: - hey-listen "^1.0.8" - tslib "^2.1.0" - styled-jsx@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" @@ -18001,6 +17833,11 @@ synckit@^0.11.0, synckit@^0.11.4: "@pkgr/core" "^0.2.3" tslib "^2.8.1" +tabbable@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -18367,7 +18204,7 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.1, tslib@^2.4 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tslib@^2.8.1: +tslib@^2.8.0, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -18897,14 +18734,6 @@ update-browserslist-db@^1.0.16: escalade "^3.1.2" picocolors "^1.0.1" -update-browserslist-db@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" - integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== - dependencies: - escalade "^3.1.2" - picocolors "^1.0.1" - update-browserslist-db@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" @@ -18952,21 +18781,26 @@ urlpattern-polyfill@^9.0.0: resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz#bc7e386bb12fd7898b58d1509df21d3c29ab3460" integrity sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g== -use-callback-ref@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" - integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== +use-callback-ref@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.3.tgz#98d9fab067075841c5b2c6852090d5d0feabe2bf" + integrity sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg== dependencies: tslib "^2.0.0" -use-sidecar@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" - integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== +use-sidecar@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.3.tgz#10e7fd897d130b896e2c546c63a5e8233d00efdb" + integrity sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ== dependencies: detect-node-es "^1.1.0" tslib "^2.0.0" +use-sync-external-store@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz#55122e2a3edd2a6c106174c27485e0fd59bcfca0" + integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" From 6ff205c9599ba5e52441e7b7a90c66a542934171 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 2 May 2025 17:46:48 +0200 Subject: [PATCH 4/7] Update GraphiQL CDN example using ESM-based CDN esm.sh (#3902) * upd * upd * upd * upd * upd * exclude react-dom/client from bundle * bump react everywhere to v19 * bump react everywhere to v19 * polish * fix failing text, to unblock canary * upd * try `minor` for graphiql/react, otherwise it pines to `1.0.0-next.2` in esm.sh * try workaround * try workaround * try workaround * try workaround * this should fix vitest * try * try * lint * try * fix test * try SOURCEMAP var * try ESM_SH_BUILD var * try * rm some unneeded code * try to fix esbuild: package 'uWebSockets.js' not found * update vite to see if it fix esbuild error? * bump module "@emotion/is-prop-valid" not found to fix `module "@emotion/is-prop-valid" not found` on esm.sh * upd * upd * upd * fix e2e * add changeset * add migration markdown file * fix * upd * upd graphiql plugin explorer docs * upd * upd * upd * update code exporter * upd * upd * upd * upd * upd * upd * polish * add changeset --- .changeset/chatty-spoons-accept.md | 8 ++ docs/migration/graphiql-4.0.0.md | 5 + examples/graphiql-cdn/README.md | 22 ++- examples/graphiql-cdn/index.html | 117 ++++++++-------- examples/graphiql-parcel/src/index.html | 5 +- .../graphiql-plugin-code-exporter/README.md | 115 +++++++--------- .../example/index.html | 126 ++++++++++++++++++ .../examples/index.html | 123 ----------------- packages/graphiql-plugin-explorer/README.md | 18 ++- .../example/index.html | 1 + .../examples/index.html | 76 ----------- packages/graphiql/README.md | 31 ++--- resources/custom-words.txt | 1 + 13 files changed, 292 insertions(+), 356 deletions(-) create mode 100644 .changeset/chatty-spoons-accept.md create mode 100644 packages/graphiql-plugin-code-exporter/example/index.html delete mode 100644 packages/graphiql-plugin-code-exporter/examples/index.html create mode 120000 packages/graphiql-plugin-explorer/example/index.html delete mode 100644 packages/graphiql-plugin-explorer/examples/index.html diff --git a/.changeset/chatty-spoons-accept.md b/.changeset/chatty-spoons-accept.md new file mode 100644 index 00000000000..64f5e3bab15 --- /dev/null +++ b/.changeset/chatty-spoons-accept.md @@ -0,0 +1,8 @@ +--- +'@graphiql/plugin-code-exporter': minor +'@graphiql/plugin-explorer': minor +'@graphiql/react': minor +'graphiql': minor +--- + +Update GraphiQL CDN example using ESM-based CDN esm.sh diff --git a/docs/migration/graphiql-4.0.0.md b/docs/migration/graphiql-4.0.0.md index 4819b812658..09439975d21 100644 --- a/docs/migration/graphiql-4.0.0.md +++ b/docs/migration/graphiql-4.0.0.md @@ -5,6 +5,7 @@ - Drop CommonJS build output - Drop support React 16/17 - Support React 19 +- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN. ## `@graphiql/react` changes @@ -18,9 +19,13 @@ - Drop CommonJS build output - Drop support React 16/17 - Support React 19 +- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN. +- [Updated CDN ESM-based example](../../packages/graphiql-plugin-code-exporter/example/index.html) ## `@graphiql/plugin-explorer` changes - Drop CommonJS build output - Drop support React 16/17 - Support React 19 +- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN. +- [Updated CDN ESM-based example](../../packages/graphiql-plugin-explorer/example/index.html) diff --git a/examples/graphiql-cdn/README.md b/examples/graphiql-cdn/README.md index 51573e9581b..62e87a67b35 100644 --- a/examples/graphiql-cdn/README.md +++ b/examples/graphiql-cdn/README.md @@ -1,11 +1,23 @@ # GraphiQL CDN Example -This example uses the CDN bundles to show a simple graphiql example, with explorer plugin. +This is a simple example of using **GraphiQL** directly from a CDN, including the [GraphiQL Explorer plugin](../../packages/graphiql-plugin-explorer/README.md). -It uses the latest version published on npm, via unpkg +It loads the latest GraphiQL version from [esm.sh](https://esm.sh), an ESM-based CDN that serves npm packages as ES modules. -### Setup +## Setup -none required, just open the index.html! +No installation or build step is required — just open the `index.html` file in your browser: -`open index.html` in osx `firefox index.html` or `chromium index.html` in linux +- macOS: + + ```sh + open index.html + ``` + +- Linux: + + ```sh + firefox index.html + # or + chromium index.html + ``` diff --git a/examples/graphiql-cdn/index.html b/examples/graphiql-cdn/index.html index 13bad1a3a3d..cb760ed24e8 100644 --- a/examples/graphiql-cdn/index.html +++ b/examples/graphiql-cdn/index.html @@ -8,74 +8,83 @@ - GraphiQL + + + GraphiQL 4 with React 19 and GraphiQL Explorer - - - - - - - - + .loading { + height: 100%; + display: flex; + align-items: center; + justify-content: center; + font-size: 4rem; + } + - + + + + + + +
+
Loading…
+
diff --git a/examples/graphiql-parcel/src/index.html b/examples/graphiql-parcel/src/index.html index 936537cbb0d..6662d55cae1 100644 --- a/examples/graphiql-parcel/src/index.html +++ b/examples/graphiql-parcel/src/index.html @@ -16,7 +16,10 @@ Parcel React Example - + diff --git a/packages/graphiql-plugin-code-exporter/README.md b/packages/graphiql-plugin-code-exporter/README.md index 40764460285..51f0c0eb9fb 100644 --- a/packages/graphiql-plugin-code-exporter/README.md +++ b/packages/graphiql-plugin-code-exporter/README.md @@ -1,19 +1,17 @@ # GraphiQL Code Exporter Plugin This package provides a plugin that integrates the -[GraphiQL Code Exporter](https://github.com/OneGraph/graphiql-code-exporter) -into the GraphiQL UI. +[GraphiQL Code Exporter](https://github.com/OneGraph/graphiql-code-exporter) into the GraphiQL UI. -## Install +## Installation -Use your favorite package manager to install the package: +Install the plugin using your preferred package manager: ```sh npm install @graphiql/plugin-code-exporter ``` -The following packages are peer dependencies, so make sure you have them -installed as well: +Make sure to also install the required peer dependencies: ```sh npm install react react-dom graphql @@ -21,13 +19,12 @@ npm install react react-dom graphql ## Usage -See -[GraphiQL Code Exporter README](https://github.com/OneGraph/graphiql-code-exporter) -for all details on available `props` and how to -[create snippets](https://github.com/OneGraph/graphiql-code-exporter#snippets). +Refer to the +[GraphiQL Code Exporter README](https://github.com/OneGraph/graphiql-code-exporter) for full details on available `props` and how to [create snippets](https://github.com/OneGraph/graphiql-code-exporter#snippets). + +Example integration: ```jsx -import { useState } from 'react'; import { GraphiQL } from 'graphiql'; import { createGraphiQLFetcher } from '@graphiql/toolkit'; import { codeExporterPlugin } from '@graphiql/plugin-code-exporter'; @@ -35,70 +32,50 @@ import 'graphiql/graphiql.css'; import '@graphiql/plugin-code-exporter/dist/style.css'; const fetcher = createGraphiQLFetcher({ - url: 'https://swapi-graphql.netlify.app/.netlify/functions/index', + url: 'https://countries.trevorblades.com', }); +function getQuery(arg, spaceCount = 2) { + const spaces = ' '.repeat(spaceCount); + const { query } = arg.operationDataList[0]; + return spaces + query.replaceAll('\n', '\n' + spaces); +} -/** - * Example code for snippets. See https://github.com/OneGraph/graphiql-code-exporter#snippets for - * details - */ -const removeQueryName = query => - query.replace( - /^[^{(]+([{(])/, - (_match, openingCurlyBracketsOrParenthesis) => - `query ${openingCurlyBracketsOrParenthesis}`, - ); - -const getQuery = (arg, spaceCount) => { - const { operationDataList } = arg; - const { query } = operationDataList[0]; - const anonymousQuery = removeQueryName(query); - return ( - ' '.repeat(spaceCount) + - anonymousQuery.replaceAll('\n', '\n' + ' '.repeat(spaceCount)) - ); -}; - -const exampleSnippetOne = { - name: 'Example One', - language: 'JavaScript', - codeMirrorMode: 'jsx', - options: [], - generate: arg => `export const query = graphql\` -${getQuery(arg, 2)} -\` -`, -}; - -const exampleSnippetTwo = { - name: 'Example Two', - language: 'JavaScript', - codeMirrorMode: 'jsx', - options: [], - generate: arg => `import { graphql } from 'graphql' - -export const query = graphql\` -${getQuery(arg, 2)} -\` -`, -}; - -const snippets = [exampleSnippetOne, exampleSnippetTwo]; - -const exporter = codeExporterPlugin({ - snippets, - codeMirrorTheme: 'graphiql', +const codeExporter = codeExporterPlugin({ + /** + * Example code for snippets. See https://github.com/OneGraph/graphiql-code-exporter#snippets for details. + */ + snippets: [ + { + name: 'Example One', + language: 'JavaScript', + codeMirrorMode: 'jsx', + options: [], + generate: arg => + ['export const query = graphql`', getQuery(arg), '`'].join('\n'), + }, + { + name: 'Example Two', + language: 'JavaScript', + codeMirrorMode: 'jsx', + options: [], + generate: arg => + [ + "import { graphql } from 'graphql'", + '', + 'export const query = graphql`', + getQuery(arg), + '`', + ].join('\n'), + }, + ], }); - -function GraphiQLWithCodeExporter() { - return ( - - ); +function App() { + return ; } ``` ## CDN bundles -You can also use this plugin with `unpkg`, `jsdelivr`, and other CDNs. +You can also use this plugin via an ESM-based CDN like [esm.sh](https://esm.sh). -See the [example HTML file](examples/index.html) for this plugin +See the [CDN example](./example/index.html) for a working demo. diff --git a/packages/graphiql-plugin-code-exporter/example/index.html b/packages/graphiql-plugin-code-exporter/example/index.html new file mode 100644 index 00000000000..d08d372cf1d --- /dev/null +++ b/packages/graphiql-plugin-code-exporter/example/index.html @@ -0,0 +1,126 @@ + + + + + + + GraphiQL 4 with React 19 and GraphiQL Code Exporter + + + + + + + + +
+
Loading…
+
+ + diff --git a/packages/graphiql-plugin-code-exporter/examples/index.html b/packages/graphiql-plugin-code-exporter/examples/index.html deleted file mode 100644 index 9011e9c4022..00000000000 --- a/packages/graphiql-plugin-code-exporter/examples/index.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - -
Loading...
- - - - - - - - - - diff --git a/packages/graphiql-plugin-explorer/README.md b/packages/graphiql-plugin-explorer/README.md index 69bcbad7eb6..1b2f33eee3e 100644 --- a/packages/graphiql-plugin-explorer/README.md +++ b/packages/graphiql-plugin-explorer/README.md @@ -1,19 +1,17 @@ # GraphiQL Explorer Plugin -This package provides a plugin that integrated the -[`GraphiQL Explorer`](https://github.com/OneGraph/graphiql-explorer) into the -GraphiQL UI. +This package provides a plugin that integrates the +[`GraphiQL Explorer`](https://github.com/OneGraph/graphiql-explorer) into the GraphiQL UI. -## Install +## Installation -Use your favorite package manager to install the package: +Use your preferred package manager to install the plugin: ```sh npm install @graphiql/plugin-explorer ``` -The following packages are peer dependencies, so make sure you have them -installed as well: +Make sure to also install the required peer dependencies: ```sh npm install react react-dom graphql @@ -25,7 +23,7 @@ npm install react react-dom graphql import { GraphiQL } from 'graphiql'; import { createGraphiQLFetcher } from '@graphiql/toolkit'; import { explorerPlugin } from '@graphiql/plugin-explorer'; -import 'graphiql/graphiql.css'; +import 'graphiql/style.css'; import '@graphiql/plugin-explorer/dist/style.css'; const fetcher = createGraphiQLFetcher({ @@ -42,6 +40,6 @@ function GraphiQLWithExplorer() { ## CDN bundles -You can also use this plugin with `unpkg`, `jsdelivr`, and other CDNs. +You can also use this plugin via an ESM-based CDN like [esm.sh](https://esm.sh). -See the [example HTML file](examples/index.html) for this plugin +See the [CDN example](./example/index.html) for a working demo. diff --git a/packages/graphiql-plugin-explorer/example/index.html b/packages/graphiql-plugin-explorer/example/index.html new file mode 120000 index 00000000000..3236e5b32d2 --- /dev/null +++ b/packages/graphiql-plugin-explorer/example/index.html @@ -0,0 +1 @@ +../../../examples/graphiql-cdn/index.html \ No newline at end of file diff --git a/packages/graphiql-plugin-explorer/examples/index.html b/packages/graphiql-plugin-explorer/examples/index.html deleted file mode 100644 index 9e93f7aa6d8..00000000000 --- a/packages/graphiql-plugin-explorer/examples/index.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - -
Loading...
- - - - - - - - - - diff --git a/packages/graphiql/README.md b/packages/graphiql/README.md index 817cf6a3171..d851dfee0c9 100644 --- a/packages/graphiql/README.md +++ b/packages/graphiql/README.md @@ -45,8 +45,7 @@ _/ˈɡrafək(ə)l/_ A graphical interactive in-browser GraphQL IDE. ## Examples -- [`Unpkg (CDN)`](../../examples/graphiql-cdn) - A single HTML file using CDN - assets and a script tag +- [`CDN (ESM-based)`](../../examples/graphiql-cdn) - A single HTML file using [JavaScript modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules) from http URLs and a ` -``` +Use the modern, ESM-based CDN approach. +See the [ESM-based example](../../examples/graphiql-cdn) for setup details. + +#### UMD (deprecated) -(see: Usage UMD Bundle below for more required script tags) +> [!WARNING] +> +> The UMD CDN build is **deprecated** and will be removed in a future major release of GraphiQL. +> Please migrate to the [ESM-based example](../../examples/graphiql-cdn). ## Usage @@ -96,7 +98,7 @@ may return a `Promise` for queries or mutations, but also an `Observable` or an An easy way to get create such a function is the [`createGraphiQLFetcher`](../graphiql-toolkit/src/create-fetcher/createFetcher.ts) method exported from the `@graphiql/toolkit` package. If you want to implement -your own fetcher function you can use the `Fetcher` type from +your own fetcher function, you can use the `Fetcher` type from `@graphiql/toolkit` to make sure the signature matches what GraphiQL expects. The following is everything you need to render GraphiQL in your React @@ -105,9 +107,8 @@ application: ```jsx import { createGraphiQLFetcher } from '@graphiql/toolkit'; import { GraphiQL } from 'graphiql'; -import React from 'react'; import { createRoot } from 'react-dom/client'; -import 'graphiql/graphiql.css'; +import 'graphiql/style.css'; const fetcher = createGraphiQLFetcher({ url: 'https://my.backend/graphql' }); @@ -115,12 +116,6 @@ const root = createRoot(document.getElementById('root')); root.render(); ``` -### Using as UMD bundle over CDN (Unpkg, JSDelivr, etc) - -There exist pre-bundled static assets that allow you to easily render GraphiQL -just by putting together a single HTML file. Check out the `index.html` file in -the [example project](../../examples/graphiql-cdn) in this repository. - ## Customize GraphiQL supports customization in UI and behavior by accepting React props and diff --git a/resources/custom-words.txt b/resources/custom-words.txt index b0cdc08e42f..b8529d73ece 100644 --- a/resources/custom-words.txt +++ b/resources/custom-words.txt @@ -95,6 +95,7 @@ hola htmling hurrell hyohyeon +importmap ical imolorhe inno From aeabfcec0241ac2d6bab9d36e888ac21dc1c8cdf Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Fri, 2 May 2025 22:41:32 +0200 Subject: [PATCH 5/7] new tabs look for graphiql v4 (#3685) * changeset pre enter alpha * [graphiql-react/graphiql] new looks of tabs (#3644) * new looks of tabs * add graphiql react too * all fixes * more polishing * more * more * more * more * more * prettier * polish changeset * disable shrinking while changing the operation name * Update packages/graphiql-react/src/ui/tabs.css Co-authored-by: Ted Thibodeau Jr * yarn i * apply new design changes * prettier * Update .changeset/thirty-spoons-call.md * fix cypress * this fix locally --------- Co-authored-by: Ted Thibodeau Jr * [2] GraphiQL x Vite v5 (#3679) * new looks of tabs * add graphiql react too * all fixes * more polishing * more * more * more * more * more * prettier * polish changeset * disable shrinking while changing the operation name * Update packages/graphiql-react/src/ui/tabs.css Co-authored-by: Ted Thibodeau Jr * yarn i * apply new design changes * prettier * vite more more more * fix demo * fix cspell * fix dev * update cypress to v13 * upd cache key * Update .changeset/thirty-spoons-call.md * Update packages/graphiql/vite.config.mts * merge * add changeset * yarn.lock --------- Co-authored-by: Ted Thibodeau Jr * [3] remove unused webpack deps (#3681) * new looks of tabs * add graphiql react too * all fixes * more polishing * more * more * more * more * more * prettier * polish changeset * disable shrinking while changing the operation name * Update packages/graphiql-react/src/ui/tabs.css Co-authored-by: Ted Thibodeau Jr * yarn i * apply new design changes * prettier * vite more more more * fix demo * fix cspell * fix dev * update cypress to v13 * upd cache key * remove webpack deps * fix `yarn jest --coverage` * Update .changeset/thirty-spoons-call.md * Update packages/graphiql/vite.config.mts * merge * add changeset * yarn.lock * yarn.lock --------- Co-authored-by: Ted Thibodeau Jr * [4] update graphql to `16.9.0` and use vite `define` configuration to remove development code from cdn bundle (#3683) * vite more more more * fix demo * fix cspell * fix dev * update cypress to v13 * upd cache key * remove webpack deps * fix `yarn jest --coverage` * upd graphql * aa * yarn.lock * fix tests * remove `data-testid="graphiql-container"` (#3688) * commit `pre.json` until `graphiql-v4` will be added to list of authorized branches to deploy * remove `graphiql-v4` from release.yml * [v4] remove `disableTabs` option (#3687) * remove `disableTabs` option * format * commit `pre.json` * add `graphiql-v4` in release.yml * [v4] prefer `location` over `window.location` and prefer `navigator` over `window.navigator` (#3692) * [v4] remove `build.sh` and `checkgit.sh` (#3694) * [v4] test umd build only on ci, locally test cdn.ts (#3693) * test umd build only on ci, locally test cdn.ts * Update custom-words.txt * [v4] convert graphiql e2e server to ESM (#3697) * aa * fix netlify * fix * fix fails on ci * [v4] update changeset for changed exports (#3700) * [v4] generate types with `vite-plugin-dts` (#3702) * generate types with `vite-plugin-dts` * add types:check in prebuild * more * more * more * update vite * upd * use terser * [v4] use `vite build --watch` instead of `vite` for `dev` script because we don't need development server for them (#3705) * [v4] remove graphiql default export (#3706) * aa * aa * polish * [v4] fix netlify deploy (#3708) * fix netlify deploy * fix cypress * change `style.css` imports (#3709) * Update poor-ghosts-jump.md * Version Packages (alpha) (#3689) Co-authored-by: github-actions[bot] * [v4] show tabs even there is only 1 tab (#3713) * aa * aa * fix unit tests * fix cypress * [v4] Remove `toolbar.additionalContent` and `toolbar.additionalComponent` props in favor of `GraphiQL.Toolbar` render props. (#3707) * Version Packages (alpha) (#3714) Co-authored-by: github-actions[bot] * [v4] use `position: absolute` for `.graphiql-logo` class (#3716) * [v4] remove `createComponentGroup` utility in favour `Object.assign` (#3717) * Version Packages (alpha) (#3718) Co-authored-by: github-actions[bot] * [v4] fix merge conflicts with `main` (#3719) * upgrade to graphql v17 including support for new incremental delivery format (#3682) * add support for new incremental delivery format * fix vitest * add patch for graphql-js bug submittes upstream with test at https://github.com/graphql/graphql-js/pull/4160 * apply feedback * move patches! * some fixes * fix netlify/cypress * remove export * update changeset --------- Co-authored-by: Dimitri POSTOLOV * Version Packages (#3715) Co-authored-by: github-actions[bot] * prettier * fix e2e * update pr-graphql-compat-check.yml * prettier --------- Co-authored-by: Yaacov Rydzinski Co-authored-by: Rikki Schulte Co-authored-by: github-actions[bot] * [v4] fix scrollbar appearing in sidebar (#3720) * replace `overflow-y: scroll` with `overflow-y: auto` * fix netlify graphql function * Version Packages (alpha) (#3723) Co-authored-by: github-actions[bot] * style: Don't convert single \n to
(#3414) * Update development instructions * Don't convert single \n to
* Add changeset * Update .changeset/olive-mice-hide.md --------- Co-authored-by: Dimitri POSTOLOV * [v4] some refactoring (#3726) * some refactoring * use `right: var(--px-16)` instead of `right: 0` for `.graphiql-logo` * more * try to fix * fix join is not defined * Update packages/graphiql/cypress/e2e/incremental-delivery.cy.ts Co-authored-by: Ted Thibodeau Jr --------- Co-authored-by: Ted Thibodeau Jr * [v4] polish `tabs.cy` tests, remove `.graphiql-session` class (#3728) * aa * aa * aa * aa * fix tests * [v4] rollback `position: absolute` style for `.graphiql-logo` because tabs will behind logo (#3730) * Version Packages (alpha) (#3725) Co-authored-by: github-actions[bot] * Add support for onPrettifyQuery callback to enable customised query formatting (#3733) * aa * prettifyyy * Version Packages (alpha) (#3732) Co-authored-by: github-actions[bot] * [v4] improve explorer styles (#3738) * improve explorer styles * aa * Version Packages (alpha) (#3739) Co-authored-by: github-actions[bot] * fix types incorrect types entry (#3740) * Version Packages (alpha) (#3741) Co-authored-by: github-actions[bot] * add vite replace html plugin for graphiql plugin explorer (#3742) * add vite replace html plugin for graphiql plugin explorer * fix build * temp * migrate `@graphiql/toolkit` to `tsup` (#3746) * aa * removes unneeded `undefined` * try * fix * fix vitest * rollback of `temp` commit * update lock * merge * Update .changeset/rich-jobs-kick.md * polish * lint * Update .changeset/good-vans-refuse.md * update migration guide * update migration guide * upd * upd * fix * make on prettify query async * use maybe promise from toolkit * upd * message processor test pass * fix e2e * try * FIX e2e * try * ok now it's good * I hope now it's ok! --------- Co-authored-by: Ted Thibodeau Jr Co-authored-by: Rikki Schulte Co-authored-by: github-actions[bot] Co-authored-by: Yaacov Rydzinski Co-authored-by: Leonard Ehrenfried --- .changeset/add-on-prettify-callback.md | 6 + .changeset/breezy-chicken-crash.md | 12 + .changeset/few-steaks-clap.md | 5 + .changeset/flat-lies-heal.md | 7 + .changeset/gentle-bugs-mix.md | 19 + .changeset/good-vans-refuse.md | 12 + .changeset/green-pugs-worry.md | 5 + .changeset/healthy-onions-bake.md | 5 + .changeset/hungry-spiders-cheat.md | 5 + .changeset/metal-glasses-bow.md | 5 + .changeset/nine-meals-happen.md | 6 + .changeset/old-zebras-knock.md | 5 + .changeset/olive-mice-hide.md | 6 + .changeset/orange-rivers-draw.md | 9 + .changeset/pink-moose-shake.md | 5 + .changeset/poor-ghosts-jump.md | 13 + .changeset/pre.json | 51 +++ .changeset/red-papayas-fly.md | 6 + .changeset/rich-jobs-kick.md | 21 + .changeset/serious-forks-sip.md | 6 + .changeset/spotty-bulldogs-confess.md | 7 + .changeset/strong-ears-bake.md | 5 + .changeset/thick-adults-leave.md | 5 + .changeset/thirty-spoons-call.md | 8 + .changeset/weak-dancers-jog.md | 79 ++++ .changeset/wicked-seas-laugh.md | 5 + .eslintrc.js | 12 +- .github/workflows/pr-graphql-compat-check.yml | 3 +- docs/migration/graphiql-4.0.0.md | 125 ++++- .../graphiql-create-react-app/package.json | 2 +- .../graphiql-create-react-app/src/App.jsx | 2 +- examples/graphiql-webpack/public/logo.svg | 22 +- examples/graphiql-webpack/src/index.jsx | 6 +- .../monaco-graphql-webpack/webpack.config.js | 2 +- functions/graphql.ts | 4 +- package.json | 4 +- .../CHANGELOG.md | 32 ++ .../graphiql-plugin-code-exporter/README.md | 4 +- .../package.json | 35 +- .../resources/copy-types.mjs | 11 - .../src/index.css | 2 +- .../tsconfig.json | 5 +- .../tsconfig.node.json | 9 - .../vite.config.mts | 15 +- .../graphiql-plugin-explorer/CHANGELOG.md | 38 ++ packages/graphiql-plugin-explorer/README.md | 2 +- .../graphiql-plugin-explorer/package.json | 35 +- .../resources/copy-types.mjs | 11 - .../src/icons/folder-plus.svg | 2 - .../graphiql-plugin-explorer/src/index.css | 23 +- .../graphiql-plugin-explorer/tsconfig.json | 5 +- .../tsconfig.node.json | 9 - .../graphiql-plugin-explorer/vite.config.mts | 7 +- packages/graphiql-react/CHANGELOG.md | 56 +++ packages/graphiql-react/README.md | 2 +- packages/graphiql-react/package.json | 13 +- packages/graphiql-react/src/editor/common.ts | 4 +- .../src/editor/components/image-preview.tsx | 5 +- packages/graphiql-react/src/editor/hooks.ts | 53 ++- .../graphiql-react/src/editor/query-editor.ts | 10 +- packages/graphiql-react/src/markdown.ts | 4 +- packages/graphiql-react/src/style/root.css | 2 +- packages/graphiql-react/src/toolbar/menu.tsx | 3 +- packages/graphiql-react/src/ui/dialog.tsx | 3 +- packages/graphiql-react/src/ui/dropdown.css | 2 +- packages/graphiql-react/src/ui/dropdown.tsx | 3 +- packages/graphiql-react/src/ui/tabs.css | 94 ++-- packages/graphiql-react/src/ui/tabs.tsx | 32 +- packages/graphiql-react/src/ui/tooltip.tsx | 3 +- .../src/utility/component-group.ts | 15 - packages/graphiql-react/tsconfig.json | 1 - packages/graphiql/CHANGELOG.md | 187 ++++++++ packages/graphiql/cypress/e2e/errors.cy.ts | 2 +- .../cypress/e2e/incremental-delivery.cy.ts | 2 +- packages/graphiql/cypress/e2e/prettify.cy.ts | 21 + packages/graphiql/cypress/e2e/tabs.cy.ts | 26 +- packages/graphiql/cypress/support/commands.ts | 26 +- packages/graphiql/package.json | 10 +- packages/graphiql/resources/logo.svg | 22 +- packages/graphiql/src/GraphiQL.spec.tsx | 86 +--- packages/graphiql/src/GraphiQL.tsx | 430 +++++++++--------- packages/graphiql/src/cdn.ts | 55 +-- packages/graphiql/src/e2e.ts | 7 + packages/graphiql/src/index.ts | 4 +- packages/graphiql/src/style.css | 63 ++- packages/graphiql/test/afterDevServer.js | 14 - packages/graphiql/test/e2e-server.js | 56 ++- packages/graphiql/test/execute.js | 12 +- packages/graphiql/test/package.json | 3 + packages/graphiql/test/schema.js | 7 +- packages/graphiql/vite.config.mts | 4 +- .../src/__tests__/MessageProcessor.spec.ts | 17 +- .../vscode-graphql-execution/package.json | 2 +- packages/vscode-graphql/package.json | 2 +- resources/custom-words.txt | 1 + yarn.lock | 189 +++++++- 96 files changed, 1596 insertions(+), 702 deletions(-) create mode 100644 .changeset/add-on-prettify-callback.md create mode 100644 .changeset/breezy-chicken-crash.md create mode 100644 .changeset/few-steaks-clap.md create mode 100644 .changeset/flat-lies-heal.md create mode 100644 .changeset/gentle-bugs-mix.md create mode 100644 .changeset/good-vans-refuse.md create mode 100644 .changeset/green-pugs-worry.md create mode 100644 .changeset/healthy-onions-bake.md create mode 100644 .changeset/hungry-spiders-cheat.md create mode 100644 .changeset/metal-glasses-bow.md create mode 100644 .changeset/nine-meals-happen.md create mode 100644 .changeset/old-zebras-knock.md create mode 100644 .changeset/olive-mice-hide.md create mode 100644 .changeset/orange-rivers-draw.md create mode 100644 .changeset/pink-moose-shake.md create mode 100644 .changeset/poor-ghosts-jump.md create mode 100644 .changeset/pre.json create mode 100644 .changeset/red-papayas-fly.md create mode 100644 .changeset/rich-jobs-kick.md create mode 100644 .changeset/serious-forks-sip.md create mode 100644 .changeset/spotty-bulldogs-confess.md create mode 100644 .changeset/strong-ears-bake.md create mode 100644 .changeset/thick-adults-leave.md create mode 100644 .changeset/thirty-spoons-call.md create mode 100644 .changeset/weak-dancers-jog.md create mode 100644 .changeset/wicked-seas-laugh.md delete mode 100644 packages/graphiql-plugin-code-exporter/resources/copy-types.mjs delete mode 100644 packages/graphiql-plugin-code-exporter/tsconfig.node.json delete mode 100644 packages/graphiql-plugin-explorer/resources/copy-types.mjs delete mode 100644 packages/graphiql-plugin-explorer/tsconfig.node.json delete mode 100644 packages/graphiql-react/src/utility/component-group.ts delete mode 100644 packages/graphiql/test/afterDevServer.js create mode 100644 packages/graphiql/test/package.json diff --git a/.changeset/add-on-prettify-callback.md b/.changeset/add-on-prettify-callback.md new file mode 100644 index 00000000000..40640e5571c --- /dev/null +++ b/.changeset/add-on-prettify-callback.md @@ -0,0 +1,6 @@ +--- +"@graphiql/react": minor +"graphiql": minor +--- + +Add support for `onPrettifyQuery` callback to enable customised query formatting diff --git a/.changeset/breezy-chicken-crash.md b/.changeset/breezy-chicken-crash.md new file mode 100644 index 00000000000..1a3bff1737e --- /dev/null +++ b/.changeset/breezy-chicken-crash.md @@ -0,0 +1,12 @@ +--- +'@graphiql/plugin-code-exporter': major +--- + +`style.css` import was changed + +## Migration + +```diff +-import '@graphiql/plugin-code-exporter/dist/style.css'; ++import '@graphiql/plugin-code-exporter/style.css'; +``` diff --git a/.changeset/few-steaks-clap.md b/.changeset/few-steaks-clap.md new file mode 100644 index 00000000000..7eff915641d --- /dev/null +++ b/.changeset/few-steaks-clap.md @@ -0,0 +1,5 @@ +--- +'graphiql': major +--- + +show tabs even there is only 1 tab diff --git a/.changeset/flat-lies-heal.md b/.changeset/flat-lies-heal.md new file mode 100644 index 00000000000..dfe39818386 --- /dev/null +++ b/.changeset/flat-lies-heal.md @@ -0,0 +1,7 @@ +--- +'@graphiql/react': minor +'@graphiql/plugin-explorer': minor +'@graphiql/plugin-code-exporter': minor +--- + +generate types with `vite-plugin-dts` diff --git a/.changeset/gentle-bugs-mix.md b/.changeset/gentle-bugs-mix.md new file mode 100644 index 00000000000..9bb1ae56ab2 --- /dev/null +++ b/.changeset/gentle-bugs-mix.md @@ -0,0 +1,19 @@ +--- +'graphiql': major +--- + +remove default export + +## Migration + +### Before + +```jsx +import GraphiQL from 'graphiql' +``` + +### After + +```jsx +import { GraphiQL } from 'graphiql' +``` diff --git a/.changeset/good-vans-refuse.md b/.changeset/good-vans-refuse.md new file mode 100644 index 00000000000..906325035d5 --- /dev/null +++ b/.changeset/good-vans-refuse.md @@ -0,0 +1,12 @@ +--- +'@graphiql/react': minor +--- + +`style.css` import was changed + +## Migration + +```diff +-import '@graphiql/react/dist/style.css'; ++import '@graphiql/react/style.css'; +``` diff --git a/.changeset/green-pugs-worry.md b/.changeset/green-pugs-worry.md new file mode 100644 index 00000000000..4342a6bc271 --- /dev/null +++ b/.changeset/green-pugs-worry.md @@ -0,0 +1,5 @@ +--- +'graphiql': major +--- + +remove `disableTabs` option diff --git a/.changeset/healthy-onions-bake.md b/.changeset/healthy-onions-bake.md new file mode 100644 index 00000000000..37a059e690e --- /dev/null +++ b/.changeset/healthy-onions-bake.md @@ -0,0 +1,5 @@ +--- +'@graphiql/plugin-explorer': patch +--- + +improve explorer styles diff --git a/.changeset/hungry-spiders-cheat.md b/.changeset/hungry-spiders-cheat.md new file mode 100644 index 00000000000..2f22a97f550 --- /dev/null +++ b/.changeset/hungry-spiders-cheat.md @@ -0,0 +1,5 @@ +--- +'graphiql': major +--- + +remove `data-testid="graphiql-container"` diff --git a/.changeset/metal-glasses-bow.md b/.changeset/metal-glasses-bow.md new file mode 100644 index 00000000000..48c99bbf5c7 --- /dev/null +++ b/.changeset/metal-glasses-bow.md @@ -0,0 +1,5 @@ +--- +'graphiql': patch +--- + +update graphql to `16.9.0` and use vite `define` configuration to remove development code from cdn bundle diff --git a/.changeset/nine-meals-happen.md b/.changeset/nine-meals-happen.md new file mode 100644 index 00000000000..34b1551d197 --- /dev/null +++ b/.changeset/nine-meals-happen.md @@ -0,0 +1,6 @@ +--- +'@graphiql/plugin-code-exporter': patch +'@graphiql/plugin-explorer': patch +--- + +fix types incorrect types entry diff --git a/.changeset/old-zebras-knock.md b/.changeset/old-zebras-knock.md new file mode 100644 index 00000000000..a0109290d2e --- /dev/null +++ b/.changeset/old-zebras-knock.md @@ -0,0 +1,5 @@ +--- +'graphiql': minor +--- + +remove `.graphiql-session` class diff --git a/.changeset/olive-mice-hide.md b/.changeset/olive-mice-hide.md new file mode 100644 index 00000000000..2606c7cae1c --- /dev/null +++ b/.changeset/olive-mice-hide.md @@ -0,0 +1,6 @@ +--- +'graphiql': patch +'@graphiql/react': patch +--- + +Respect Markdown format: ignore single newline diff --git a/.changeset/orange-rivers-draw.md b/.changeset/orange-rivers-draw.md new file mode 100644 index 00000000000..f87e0f7e852 --- /dev/null +++ b/.changeset/orange-rivers-draw.md @@ -0,0 +1,9 @@ +--- +'@graphiql/plugin-code-exporter': patch +'@graphiql/plugin-explorer': patch +'@graphiql/react': patch +--- + +use `vite build --watch` instead of `vite` for `dev` script because we don't need development server for them + +do not use `vite-plugin-dts` when generating umd build diff --git a/.changeset/pink-moose-shake.md b/.changeset/pink-moose-shake.md new file mode 100644 index 00000000000..59273f6196b --- /dev/null +++ b/.changeset/pink-moose-shake.md @@ -0,0 +1,5 @@ +--- +'graphiql': patch +--- + +use `position: absolute` for `.graphiql-logo` class diff --git a/.changeset/poor-ghosts-jump.md b/.changeset/poor-ghosts-jump.md new file mode 100644 index 00000000000..79d454d52a5 --- /dev/null +++ b/.changeset/poor-ghosts-jump.md @@ -0,0 +1,13 @@ +--- +'@graphiql/plugin-explorer': major +--- + +`style.css` import was changed + +## Migration + +```diff +-import '@graphiql/plugin-explorer/dist/style.css'; ++import '@graphiql/plugin-explorer/style.css'; +``` + diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000000..4220dda8dcc --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,51 @@ +{ + "mode": "pre", + "tag": "alpha", + "initialVersions": { + "cm6-graphql": "0.0.15", + "codemirror-graphql": "2.0.13", + "graphiql": "3.4.0", + "@graphiql/plugin-code-exporter": "3.0.5", + "@graphiql/plugin-explorer": "3.1.1", + "@graphiql/react": "0.23.0", + "@graphiql/toolkit": "0.9.2", + "graphql-language-service": "5.2.2", + "graphql-language-service-cli": "3.4.2", + "graphql-language-service-server": "2.13.2", + "monaco-graphql": "1.5.3", + "vscode-graphql": "0.11.2", + "vscode-graphql-execution": "0.2.6", + "vscode-graphql-syntax": "1.3.6", + "example-graphiql-webpack": "0.0.0", + "example-monaco-graphql-nextjs": "0.0.0", + "example-monaco-graphql-react-vite": "0.0.0", + "example-monaco-graphql-webpack": "0.0.0" + }, + "changesets": [ + "add-on-prettify-callback", + "breezy-chicken-crash", + "few-steaks-clap", + "flat-lies-heal", + "gentle-bugs-mix", + "good-vans-refuse", + "green-pugs-worry", + "healthy-onions-bake", + "hungry-spiders-cheat", + "metal-glasses-bow", + "nine-meals-happen", + "old-zebras-knock", + "olive-mice-hide", + "orange-rivers-draw", + "pink-moose-shake", + "poor-ghosts-jump", + "red-papayas-fly", + "rich-jobs-kick", + "serious-forks-sip", + "spotty-bulldogs-confess", + "strong-ears-bake", + "thick-adults-leave", + "thirty-spoons-call", + "weak-dancers-jog", + "wicked-seas-laugh" + ] +} diff --git a/.changeset/red-papayas-fly.md b/.changeset/red-papayas-fly.md new file mode 100644 index 00000000000..2d02218e3b5 --- /dev/null +++ b/.changeset/red-papayas-fly.md @@ -0,0 +1,6 @@ +--- +'@graphiql/react': patch +'graphiql': patch +--- + +replace `overflow-y: scroll` with `overflow-y: auto` diff --git a/.changeset/rich-jobs-kick.md b/.changeset/rich-jobs-kick.md new file mode 100644 index 00000000000..602fd4c63c3 --- /dev/null +++ b/.changeset/rich-jobs-kick.md @@ -0,0 +1,21 @@ +--- +'graphiql': major +--- + +changed exports + +```diff +-graphiql/graphiql.css ++graphiql/style.css +``` + +changed cdn paths, `dist/index.umd.js` and `dist/style.css` are minified + +```diff +-https://unpkg.com/graphiql/graphiql.js +-https://unpkg.com/graphiql/graphiql.min.js ++https://unpkg.com/graphiql/dist/index.umd.js +-https://unpkg.com/graphiql/graphiql.css +-https://unpkg.com/graphiql/graphiql.min.css ++https://unpkg.com/graphiql/dist/style.css +``` diff --git a/.changeset/serious-forks-sip.md b/.changeset/serious-forks-sip.md new file mode 100644 index 00000000000..e7c0353f66f --- /dev/null +++ b/.changeset/serious-forks-sip.md @@ -0,0 +1,6 @@ +--- +'@graphiql/react': patch +'graphiql': patch +--- + +rollback `position: absolute` style for `.graphiql-logo` because tabs will behind logo diff --git a/.changeset/spotty-bulldogs-confess.md b/.changeset/spotty-bulldogs-confess.md new file mode 100644 index 00000000000..eed64fbd7f1 --- /dev/null +++ b/.changeset/spotty-bulldogs-confess.md @@ -0,0 +1,7 @@ +--- +'@graphiql/react': patch +'graphiql': patch +--- + +- prefer `location` over `window.location` +- prefer `navigator` over `window.navigator` diff --git a/.changeset/strong-ears-bake.md b/.changeset/strong-ears-bake.md new file mode 100644 index 00000000000..45ac76e3ebd --- /dev/null +++ b/.changeset/strong-ears-bake.md @@ -0,0 +1,5 @@ +--- +'graphiql': patch +--- + +use `right: var(--px-16)` instead of `right: 0` for `.graphiql-logo` diff --git a/.changeset/thick-adults-leave.md b/.changeset/thick-adults-leave.md new file mode 100644 index 00000000000..f18738c9905 --- /dev/null +++ b/.changeset/thick-adults-leave.md @@ -0,0 +1,5 @@ +--- +'@graphiql/react': minor +--- + +remove `createComponentGroup` utility in favour `Object.assign` diff --git a/.changeset/thirty-spoons-call.md b/.changeset/thirty-spoons-call.md new file mode 100644 index 00000000000..4853b541b98 --- /dev/null +++ b/.changeset/thirty-spoons-call.md @@ -0,0 +1,8 @@ +--- +"graphiql": major +"@graphiql/react": minor +--- + +- new looks of tabs + +- fix `disableTabs` when `Add tab` button is still shown diff --git a/.changeset/weak-dancers-jog.md b/.changeset/weak-dancers-jog.md new file mode 100644 index 00000000000..8b78fe25302 --- /dev/null +++ b/.changeset/weak-dancers-jog.md @@ -0,0 +1,79 @@ +--- +'graphiql': major +--- + +Remove `toolbar.additionalContent` and `toolbar.additionalComponent` props in favor of `GraphiQL.Toolbar` render props. + +## Migration from `toolbar.additionalContent` + +### Before + +```jsx +My button }} /> +``` + +### After + +```jsx + + + {({ merge, prettify, copy }) => ( + <> + {prettify} + {merge} + {copy} + + + )} + + +``` + +## Migration from `toolbar.additionalComponent` + +### Before + +```jsx +My button; + }, + }} +/> +``` + +### After + +```jsx + + + {({ merge, prettify, copy }) => ( + <> + {prettify} + {merge} + {copy} + + + )} + + +``` + +--- + +Additionally, you can sort default toolbar buttons in different order or remove unneeded buttons for you: + +```jsx + + + {({ prettify, copy }) => ( + <> + {copy /* Copy button will be first instead of default last */} + {/* Merge button is removed from toolbar */} + {prettify} + + )} + + +``` diff --git a/.changeset/wicked-seas-laugh.md b/.changeset/wicked-seas-laugh.md new file mode 100644 index 00000000000..3162059dcaf --- /dev/null +++ b/.changeset/wicked-seas-laugh.md @@ -0,0 +1,5 @@ +--- +'graphiql': patch +--- + +replace `Tooltip`s in tabs with html `title="..."` attribute diff --git a/.eslintrc.js b/.eslintrc.js index 9c60692380e..b83237de399 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -129,6 +129,16 @@ module.exports = { property: 'localStorage', message: 'Use `localStorage` instead', }, + { + object: 'window', + property: 'location', + message: 'Use `location` instead', + }, + { + object: 'window', + property: 'navigator', + message: 'Use `navigator` instead', + }, ], 'no-return-assign': 'error', 'no-return-await': 'error', @@ -389,7 +399,7 @@ module.exports = { projectService: { allowDefaultProject: [ 'examples/monaco-graphql-react-vite/vite.config.ts', - 'packages/{graphiql,graphiql-plugin-explorer,graphiql-plugin-code-exporter}/vite.config.mts', + 'packages/graphiql/vite.config.mts', 'packages/{codemirror-graphql,graphiql-toolkit,graphql-language-service-cli,graphql-language-service,monaco-graphql,vscode-graphql-syntax,graphiql}/vitest.config.mts', 'packages/cm6-graphql/__tests__/test.spec.ts', diff --git a/.github/workflows/pr-graphql-compat-check.yml b/.github/workflows/pr-graphql-compat-check.yml index da0c1c2098c..ec380cb83ed 100644 --- a/.github/workflows/pr-graphql-compat-check.yml +++ b/.github/workflows/pr-graphql-compat-check.yml @@ -4,8 +4,7 @@ on: # only on merge to main. # it's rare that this workflow would # show us an error, but when it does it's important! - branches: - - main + branches: [main, graphiql-v4] # don't run this regression suite if we don't need to paths-ignore: - '**.md' diff --git a/docs/migration/graphiql-4.0.0.md b/docs/migration/graphiql-4.0.0.md index 09439975d21..780ff6b0208 100644 --- a/docs/migration/graphiql-4.0.0.md +++ b/docs/migration/graphiql-4.0.0.md @@ -2,30 +2,149 @@ ## `graphiql` changes +- New looks of tabs - Drop CommonJS build output - Drop support React 16/17 - Support React 19 -- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN. +- Changed umd CDN paths, `dist/index.umd.js` and `dist/style.css` are minified + ```diff + -https://unpkg.com/graphiql/graphiql.js + -https://unpkg.com/graphiql/graphiql.min.js + +https://unpkg.com/graphiql/dist/index.umd.js + -https://unpkg.com/graphiql/graphiql.css + -https://unpkg.com/graphiql/graphiql.min.css + +https://unpkg.com/graphiql/dist/style.css + ``` +- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN +- Add support for `onPrettifyQuery` callback to enable customized query formatting +- Show tabs even there is only one tab +- Remove default export + ```diff + -import GraphiQL from 'graphiql' + +import { GraphiQL } from 'graphiql' + ``` +- Remove `disableTabs` option +- Respect a Markdown format - ignore single newline +- Replace `Tooltip`s in tabs with html `title="..."` attribute +- Style import was changed + ```diff + -graphiql/graphiql.css + +graphiql/style.css + ``` +- Remove `toolbar.additionalContent` and `toolbar.additionalComponent` props in favor of `GraphiQL.Toolbar` render props + + ### Migration from `toolbar.additionalContent` + + #### Before + + ```jsx + My button }} /> + ``` + + #### After + + ```jsx + + + {({ merge, prettify, copy }) => ( + <> + {prettify} + {merge} + {copy} + + + )} + + + ``` + + ### Migration from `toolbar.additionalComponent` + + #### Before + + ```jsx + My button; + }, + }} + /> + ``` + + #### After + + ```jsx + + + {({ merge, prettify, copy }) => ( + <> + {prettify} + {merge} + {copy} + + + )} + + + ``` + + *** + + Additionally, you can sort default toolbar buttons in different order or remove unneeded buttons for you: + + ```jsx + + + {({ prettify, copy }) => ( + <> + {copy /* Copy button will be first instead of default last */} + {/* Merge button is removed from toolbar */} + {prettify} + + )} + + + ``` ## `@graphiql/react` changes +- New looks of tabs - Drop CommonJS build output - Drop support React 16/17 - Support React 19 - Update `@radix-ui` and `@headlessui/react` dependencies +- Add support for `onPrettifyQuery` callback to enable customized query formatting +- `style.css` import was changed + ```diff + -import '@graphiql/react/dist/style.css'; + +import '@graphiql/react/style.css'; + ``` +- Respect a Markdown format - ignore single newline ## `@graphiql/plugin-code-exporter` changes - Drop CommonJS build output - Drop support React 16/17 - Support React 19 -- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN. +- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN - [Updated CDN ESM-based example](../../packages/graphiql-plugin-code-exporter/example/index.html) +- `style.css` import was changed + ```diff + -import '@graphiql/plugin-code-exporter/dist/style.css'; + +import '@graphiql/plugin-code-exporter/style.css'; + ``` ## `@graphiql/plugin-explorer` changes - Drop CommonJS build output - Drop support React 16/17 - Support React 19 -- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN. +- ⚠️ UMD CDN build `index.umd.js` is deprecated. Migrate to ESM-based CDN - [Updated CDN ESM-based example](../../packages/graphiql-plugin-explorer/example/index.html) +- Improve explorer styles +- `style.css` import was changed + ```diff + -import '@graphiql/plugin-explorer/dist/style.css'; + +import '@graphiql/plugin-explorer/style.css'; + ``` diff --git a/examples/graphiql-create-react-app/package.json b/examples/graphiql-create-react-app/package.json index e2c9baefb7a..6a2438460a2 100644 --- a/examples/graphiql-create-react-app/package.json +++ b/examples/graphiql-create-react-app/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "private": true, "dependencies": { - "graphiql": "^3.4.0", + "graphiql": "^3.4.1", "graphql": "^16.9.0", "react": "^19.1.0", "react-dom": "^19.1.0", diff --git a/examples/graphiql-create-react-app/src/App.jsx b/examples/graphiql-create-react-app/src/App.jsx index 9175fb03fee..ba2d6b6fb2e 100644 --- a/examples/graphiql-create-react-app/src/App.jsx +++ b/examples/graphiql-create-react-app/src/App.jsx @@ -1,5 +1,5 @@ import { GraphiQL } from 'graphiql'; -import 'graphiql/graphiql.css'; +import 'graphiql/style.css'; const fetcher = async graphQLParams => { const response = await fetch( diff --git a/examples/graphiql-webpack/public/logo.svg b/examples/graphiql-webpack/public/logo.svg index 43e513e06ca..8b265562b12 100644 --- a/examples/graphiql-webpack/public/logo.svg +++ b/examples/graphiql-webpack/public/logo.svg @@ -1,27 +1,15 @@ - + + + - - + - + - diff --git a/examples/graphiql-webpack/src/index.jsx b/examples/graphiql-webpack/src/index.jsx index ea0adb4c667..7b6f678fa04 100644 --- a/examples/graphiql-webpack/src/index.jsx +++ b/examples/graphiql-webpack/src/index.jsx @@ -5,9 +5,9 @@ import { GraphiQL } from 'graphiql'; import { explorerPlugin } from '@graphiql/plugin-explorer'; import { getSnippets } from './snippets'; import { codeExporterPlugin } from '@graphiql/plugin-code-exporter'; -import 'graphiql/graphiql.css'; -import '@graphiql/plugin-explorer/dist/style.css'; -import '@graphiql/plugin-code-exporter/dist/style.css'; +import 'graphiql/style.css'; +import '@graphiql/plugin-explorer/style.css'; +import '@graphiql/plugin-code-exporter/style.css'; import { createGraphiQLFetcher } from '@graphiql/toolkit'; import { useStorageContext } from '@graphiql/react'; diff --git a/examples/monaco-graphql-webpack/webpack.config.js b/examples/monaco-graphql-webpack/webpack.config.js index 577f2b1f5c2..019b0e0ac21 100644 --- a/examples/monaco-graphql-webpack/webpack.config.js +++ b/examples/monaco-graphql-webpack/webpack.config.js @@ -47,7 +47,7 @@ const resultConfig = { plugins: [ // in order to prevent async modules for CDN builds // until we can guarantee it will work with the CDN properly - // and so that graphiql.min.js can retain parity + // and so that `index.umd.js` can retain parity new HtmlWebpackPlugin({ template: relPath('src/index.html.ejs'), filename: 'index.html', diff --git a/functions/graphql.ts b/functions/graphql.ts index 935f056e26f..2788d0b9188 100644 --- a/functions/graphql.ts +++ b/functions/graphql.ts @@ -10,8 +10,8 @@ import type { HandlerContext as NetlifyHandlerContext, } from '@netlify/functions'; -import schema from '../packages/graphiql/test/schema'; -import { customExecute } from '../packages/graphiql/test/execute'; +import { schema } from '../packages/graphiql/test/schema.js'; +import { customExecute } from '../packages/graphiql/test/execute.js'; /** * Handler options when using the netlify adapter diff --git a/package.json b/package.json index 039c952b2ed..3f0dfe41a27 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,8 @@ "gen-agenda": "wgutils agenda gen" }, "dependencies": { + "identity-obj-proxy": "^3.0.0", + "babel-plugin-macros": "^3.1.0", "graphql-http": "^1.22.1", "@babel/cli": "^7.21.0", "@babel/core": "^7.21.0", @@ -104,7 +106,6 @@ "@typescript-eslint/eslint-plugin": "^8.31.0", "@typescript-eslint/parser": "^8.31.0", "babel-jest": "^29.4.3", - "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-import-meta": "^2.2.1", "concurrently": "^7.0.0", "copy": "^0.3.2", @@ -122,7 +123,6 @@ "eslint-plugin-sonarjs": "^3.0.2", "eslint-plugin-unicorn": "^56.0.0", "execa": "^7.1.1", - "identity-obj-proxy": "^3.0.0", "fetch-mock": "6.5.2", "husky": "^4.2.3", "jest": "^27.5.1", diff --git a/packages/graphiql-plugin-code-exporter/CHANGELOG.md b/packages/graphiql-plugin-code-exporter/CHANGELOG.md index e4acbf292d9..7ac8389de9b 100644 --- a/packages/graphiql-plugin-code-exporter/CHANGELOG.md +++ b/packages/graphiql-plugin-code-exporter/CHANGELOG.md @@ -1,5 +1,37 @@ # @graphiql/plugin-code-exporter +## 4.0.0-alpha.1 + +### Patch Changes + +- [#3740](https://github.com/graphql/graphiql/pull/3740) [`3c12ce0`](https://github.com/graphql/graphiql/commit/3c12ce01eb3b2ec9a317a2fea2bb92602b748a8b) Thanks [@dimaMachina](https://github.com/dimaMachina)! - fix types incorrect types entry + +## 4.0.0-alpha.0 + +### Major Changes + +- [#3709](https://github.com/graphql/graphiql/pull/3709) [`9baf1f0`](https://github.com/graphql/graphiql/commit/9baf1f0fc9f32404fbb8bf57b3d1c2c2c8778ddb) Thanks [@dimaMachina](https://github.com/dimaMachina)! - `style.css` import was changed + + ## Migration + + ```diff + -import '@graphiql/plugin-code-exporter/dist/style.css'; + +import '@graphiql/plugin-code-exporter/style.css'; + ``` + +### Minor Changes + +- [#3702](https://github.com/graphql/graphiql/pull/3702) [`00415d2`](https://github.com/graphql/graphiql/commit/00415d2940c4d76a4a9e683e9fa0504ba97dd627) Thanks [@dimaMachina](https://github.com/dimaMachina)! - generate types with `vite-plugin-dts` + +### Patch Changes + +- [#3705](https://github.com/graphql/graphiql/pull/3705) [`8ff87d7`](https://github.com/graphql/graphiql/commit/8ff87d7b6b3d5d12b539612a39ca3abf7e631106) Thanks [@dimaMachina](https://github.com/dimaMachina)! - use `vite build --watch` instead of `vite` for `dev` script because we don't need development server for them + + do not use `vite-plugin-dts` when generating umd build + +- Updated dependencies [[`00415d2`](https://github.com/graphql/graphiql/commit/00415d2940c4d76a4a9e683e9fa0504ba97dd627), [`9baf1f0`](https://github.com/graphql/graphiql/commit/9baf1f0fc9f32404fbb8bf57b3d1c2c2c8778ddb), [`8ff87d7`](https://github.com/graphql/graphiql/commit/8ff87d7b6b3d5d12b539612a39ca3abf7e631106), [`82bc961`](https://github.com/graphql/graphiql/commit/82bc961a33c4e9da29dffb4a603035a4909f49ad), [`3c1a345`](https://github.com/graphql/graphiql/commit/3c1a345acd9bf07b45bc230009cb57c51c425673)]: + - @graphiql/react@1.0.0-alpha.0 + ## 3.1.5 ### Patch Changes diff --git a/packages/graphiql-plugin-code-exporter/README.md b/packages/graphiql-plugin-code-exporter/README.md index 51f0c0eb9fb..56c683531e3 100644 --- a/packages/graphiql-plugin-code-exporter/README.md +++ b/packages/graphiql-plugin-code-exporter/README.md @@ -28,8 +28,8 @@ Example integration: import { GraphiQL } from 'graphiql'; import { createGraphiQLFetcher } from '@graphiql/toolkit'; import { codeExporterPlugin } from '@graphiql/plugin-code-exporter'; -import 'graphiql/graphiql.css'; -import '@graphiql/plugin-code-exporter/dist/style.css'; +import 'graphiql/style.css'; +import '@graphiql/plugin-code-exporter/style.css'; const fetcher = createGraphiQLFetcher({ url: 'https://countries.trevorblades.com', diff --git a/packages/graphiql-plugin-code-exporter/package.json b/packages/graphiql-plugin-code-exporter/package.json index e0eecbe45dd..c775e92fd80 100644 --- a/packages/graphiql-plugin-code-exporter/package.json +++ b/packages/graphiql-plugin-code-exporter/package.json @@ -1,6 +1,6 @@ { "name": "@graphiql/plugin-code-exporter", - "version": "3.1.5", + "version": "4.0.0-alpha.1", "sideEffects": false, "repository": { "type": "git", @@ -8,8 +8,7 @@ "directory": "packages/graphiql-plugin-code-exporter" }, "author": "LekoArts", - "main": "dist/index.js", - "types": "types/index.d.ts", + "types": "dist/index.d.ts", "license": "MIT", "keywords": [ "react", @@ -19,32 +18,40 @@ "explorer" ], "files": [ - "dist", - "src", - "types" + "dist" ], + "exports": { + "./package.json": "./package.json", + "./style.css": "./dist/style.css", + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, "scripts": { - "prebuild": "rimraf dist types", - "dev": "vite", - "build": "tsc --emitDeclarationOnly && node resources/copy-types.mjs && vite build && UMD=true vite build", - "preview": "vite preview" + "dev": "vite build --watch", + "build": "vite build && UMD=true vite build", + "prebuild": "yarn types:check", + "postbuild": "cp src/graphiql-code-exporter.d.ts dist/graphiql-code-exporter.d.ts", + "types:check": "tsc --noEmit" }, "dependencies": { "graphiql-code-exporter": "^3.0.3" }, "peerDependencies": { - "@graphiql/react": "^0.29.0", - "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "@graphiql/react": "^1.0.0-alpha.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0-alpha.2", "react": "^18 || ^19", "react-dom": "^18 || ^19" }, "devDependencies": { - "@graphiql/react": "^0.29.0", + "@graphiql/react": "^1.0.0-alpha.3", "@vitejs/plugin-react": "^4.4.1", "graphql": "^16.9.0", "react": "^19.1.0", "react-dom": "^19.1.0", "typescript": "^4.6.3", - "vite": "^6.3.3" + "vite": "^6.3.3", + "vite-plugin-dts": "^4.0.1" } } diff --git a/packages/graphiql-plugin-code-exporter/resources/copy-types.mjs b/packages/graphiql-plugin-code-exporter/resources/copy-types.mjs deleted file mode 100644 index 45e621b507b..00000000000 --- a/packages/graphiql-plugin-code-exporter/resources/copy-types.mjs +++ /dev/null @@ -1,11 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const base = path.resolve(path.dirname(__filename), '..'); - -fs.copyFileSync( - path.resolve(base, 'src', 'graphiql-code-exporter.d.ts'), - path.resolve(base, 'types', 'graphiql-code-exporter.d.ts'), -); diff --git a/packages/graphiql-plugin-code-exporter/src/index.css b/packages/graphiql-plugin-code-exporter/src/index.css index 716d01d954c..16af4b1b6f9 100644 --- a/packages/graphiql-plugin-code-exporter/src/index.css +++ b/packages/graphiql-plugin-code-exporter/src/index.css @@ -133,7 +133,7 @@ } & .CodeMirror { box-shadow: var(--popover-box-shadow); - border-radius: calc(var(--border-radius-12)); + border-radius: var(--border-radius-12); padding: var(--px-16); } } diff --git a/packages/graphiql-plugin-code-exporter/tsconfig.json b/packages/graphiql-plugin-code-exporter/tsconfig.json index 8ad4d4a311c..2dd9b41294b 100644 --- a/packages/graphiql-plugin-code-exporter/tsconfig.json +++ b/packages/graphiql-plugin-code-exporter/tsconfig.json @@ -14,9 +14,6 @@ "resolveJsonModule": true, "isolatedModules": true, "declaration": true, - "declarationDir": "types", "jsx": "react" - }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] + } } diff --git a/packages/graphiql-plugin-code-exporter/tsconfig.node.json b/packages/graphiql-plugin-code-exporter/tsconfig.node.json deleted file mode 100644 index 9d31e2aed93..00000000000 --- a/packages/graphiql-plugin-code-exporter/tsconfig.node.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "module": "ESNext", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/packages/graphiql-plugin-code-exporter/vite.config.mts b/packages/graphiql-plugin-code-exporter/vite.config.mts index a6b7327d4bd..627e266b78f 100644 --- a/packages/graphiql-plugin-code-exporter/vite.config.mts +++ b/packages/graphiql-plugin-code-exporter/vite.config.mts @@ -1,16 +1,22 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import packageJSON from './package.json'; +import dts from 'vite-plugin-dts'; const IS_UMD = process.env.UMD === 'true'; export default defineConfig({ - plugins: [react({ jsxRuntime: 'classic' })], + plugins: [ + react({ jsxRuntime: 'classic' }), + !IS_UMD && dts({ include: ['src/**'] }), + ], css: { transformer: 'lightningcss', }, build: { - minify: IS_UMD ? 'esbuild' : false, + minify: IS_UMD + ? 'terser' // produce better bundle size than esbuild + : false, // avoid clean cjs/es builds emptyOutDir: !IS_UMD, lib: { @@ -28,7 +34,6 @@ export default defineConfig({ ...(IS_UMD ? [] : Object.keys(packageJSON.dependencies)), ], output: { - chunkFileNames: '[name].[format].js', globals: { '@graphiql/react': 'GraphiQL.React', graphql: 'GraphiQL.GraphQL', @@ -37,9 +42,5 @@ export default defineConfig({ }, }, }, - commonjsOptions: { - esmExternals: true, - requireReturnsDefault: 'auto', - }, }, }); diff --git a/packages/graphiql-plugin-explorer/CHANGELOG.md b/packages/graphiql-plugin-explorer/CHANGELOG.md index 9d64d6f730e..86bd789f48e 100644 --- a/packages/graphiql-plugin-explorer/CHANGELOG.md +++ b/packages/graphiql-plugin-explorer/CHANGELOG.md @@ -1,5 +1,43 @@ # @graphiql/plugin-explorer +## 4.0.0-alpha.2 + +### Patch Changes + +- [#3740](https://github.com/graphql/graphiql/pull/3740) [`3c12ce0`](https://github.com/graphql/graphiql/commit/3c12ce01eb3b2ec9a317a2fea2bb92602b748a8b) Thanks [@dimaMachina](https://github.com/dimaMachina)! - fix types incorrect types entry + +## 4.0.0-alpha.1 + +### Patch Changes + +- [#3738](https://github.com/graphql/graphiql/pull/3738) [`eaa415c`](https://github.com/graphql/graphiql/commit/eaa415cce5c3baecea76068c02953884eec5ba2e) Thanks [@dimaMachina](https://github.com/dimaMachina)! - improve explorer styles + +## 4.0.0-alpha.0 + +### Major Changes + +- [#3709](https://github.com/graphql/graphiql/pull/3709) [`9baf1f0`](https://github.com/graphql/graphiql/commit/9baf1f0fc9f32404fbb8bf57b3d1c2c2c8778ddb) Thanks [@dimaMachina](https://github.com/dimaMachina)! - `style.css` import was changed + + ## Migration + + ```diff + -import '@graphiql/plugin-explorer/dist/style.css'; + +import '@graphiql/plugin-explorer/style.css'; + ``` + +### Minor Changes + +- [#3702](https://github.com/graphql/graphiql/pull/3702) [`00415d2`](https://github.com/graphql/graphiql/commit/00415d2940c4d76a4a9e683e9fa0504ba97dd627) Thanks [@dimaMachina](https://github.com/dimaMachina)! - generate types with `vite-plugin-dts` + +### Patch Changes + +- [#3705](https://github.com/graphql/graphiql/pull/3705) [`8ff87d7`](https://github.com/graphql/graphiql/commit/8ff87d7b6b3d5d12b539612a39ca3abf7e631106) Thanks [@dimaMachina](https://github.com/dimaMachina)! - use `vite build --watch` instead of `vite` for `dev` script because we don't need development server for them + + do not use `vite-plugin-dts` when generating umd build + +- Updated dependencies [[`00415d2`](https://github.com/graphql/graphiql/commit/00415d2940c4d76a4a9e683e9fa0504ba97dd627), [`9baf1f0`](https://github.com/graphql/graphiql/commit/9baf1f0fc9f32404fbb8bf57b3d1c2c2c8778ddb), [`8ff87d7`](https://github.com/graphql/graphiql/commit/8ff87d7b6b3d5d12b539612a39ca3abf7e631106), [`82bc961`](https://github.com/graphql/graphiql/commit/82bc961a33c4e9da29dffb4a603035a4909f49ad), [`3c1a345`](https://github.com/graphql/graphiql/commit/3c1a345acd9bf07b45bc230009cb57c51c425673)]: + - @graphiql/react@1.0.0-alpha.0 + ## 3.2.6 ### Patch Changes diff --git a/packages/graphiql-plugin-explorer/README.md b/packages/graphiql-plugin-explorer/README.md index 1b2f33eee3e..ea75f273f10 100644 --- a/packages/graphiql-plugin-explorer/README.md +++ b/packages/graphiql-plugin-explorer/README.md @@ -24,7 +24,7 @@ import { GraphiQL } from 'graphiql'; import { createGraphiQLFetcher } from '@graphiql/toolkit'; import { explorerPlugin } from '@graphiql/plugin-explorer'; import 'graphiql/style.css'; -import '@graphiql/plugin-explorer/dist/style.css'; +import '@graphiql/plugin-explorer/style.css'; const fetcher = createGraphiQLFetcher({ url: 'https://swapi-graphql.netlify.app/.netlify/functions/index', diff --git a/packages/graphiql-plugin-explorer/package.json b/packages/graphiql-plugin-explorer/package.json index 099d6a29d8f..748ebe64586 100644 --- a/packages/graphiql-plugin-explorer/package.json +++ b/packages/graphiql-plugin-explorer/package.json @@ -1,14 +1,13 @@ { "name": "@graphiql/plugin-explorer", - "version": "3.2.6", + "version": "4.0.0-alpha.2", "sideEffects": false, "repository": { "type": "git", "url": "https://github.com/graphql/graphiql", "directory": "packages/graphiql-plugin-explorer" }, - "main": "dist/index.js", - "types": "types/index.d.ts", + "types": "dist/index.d.ts", "license": "MIT", "keywords": [ "react", @@ -18,33 +17,41 @@ "explorer" ], "files": [ - "dist", - "src", - "types" + "dist" ], + "exports": { + "./package.json": "./package.json", + "./style.css": "./dist/style.css", + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, "scripts": { - "prebuild": "rimraf dist types", - "dev": "vite", - "build": "tsc --emitDeclarationOnly && node resources/copy-types.mjs && vite build && UMD=true vite build", - "preview": "vite preview" + "dev": "vite build --watch", + "build": "vite build && UMD=true vite build", + "postbuild": "cp src/graphiql-explorer.d.ts dist/graphiql-explorer.d.ts", + "prebuild": "yarn types:check", + "types:check": "tsc --noEmit" }, "dependencies": { "graphiql-explorer": "^0.9.0" }, "peerDependencies": { - "@graphiql/react": "^0.29.0", - "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "@graphiql/react": "^1.0.0-alpha.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0-alpha.2", "react": "^18 || ^19", "react-dom": "^18 || ^19" }, "devDependencies": { - "@graphiql/react": "^0.29.0", + "@graphiql/react": "^1.0.0-alpha.3", "@vitejs/plugin-react": "^4.4.1", "graphql": "^16.9.0", "react": "^19.1.0", "react-dom": "^19.1.0", "typescript": "^4.6.3", "vite": "^6.3.3", - "vite-plugin-svgr": "^4.3.0" + "vite-plugin-svgr": "^4.3.0", + "vite-plugin-dts": "^4.0.1" } } diff --git a/packages/graphiql-plugin-explorer/resources/copy-types.mjs b/packages/graphiql-plugin-explorer/resources/copy-types.mjs deleted file mode 100644 index 8f6175f68c7..00000000000 --- a/packages/graphiql-plugin-explorer/resources/copy-types.mjs +++ /dev/null @@ -1,11 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const base = path.resolve(path.dirname(__filename), '..'); - -fs.copyFileSync( - path.resolve(base, 'src', 'graphiql-explorer.d.ts'), - path.resolve(base, 'types', 'graphiql-explorer.d.ts'), -); diff --git a/packages/graphiql-plugin-explorer/src/icons/folder-plus.svg b/packages/graphiql-plugin-explorer/src/icons/folder-plus.svg index d6714651b81..0e5550c87d8 100644 --- a/packages/graphiql-plugin-explorer/src/icons/folder-plus.svg +++ b/packages/graphiql-plugin-explorer/src/icons/folder-plus.svg @@ -13,8 +13,6 @@ /> div { + overflow: auto !important; /* override overflow: scroll */ +} + .graphiql-explorer-root input { background: unset; } @@ -44,16 +48,23 @@ padding: var(--px-4) var(--px-6); } -.graphiql-operation-title-bar .toolbar-button { - line-height: 0; - margin-left: var(--px-8); - color: hsla(var(--color-neutral), var(--alpha-secondary, 0.6)); - font-size: var(--font-size-h3); - vertical-align: middle; +.toolbar-button { + all: unset; + cursor: pointer; + line-height: 0 !important; + margin-left: var(--px-6); + color: hsl(var(--color-primary)); + font-size: var(--font-size-h3) !important; +} + +.graphiql-explorer-slug .toolbar-button, +.graphiql-explorer-graphql-arguments .toolbar-button { + font-size: inherit !important; } .graphiql-explorer-graphql-arguments input { line-height: 0; + min-width: 2rem; } .graphiql-explorer-actions { diff --git a/packages/graphiql-plugin-explorer/tsconfig.json b/packages/graphiql-plugin-explorer/tsconfig.json index 8ad4d4a311c..2dd9b41294b 100644 --- a/packages/graphiql-plugin-explorer/tsconfig.json +++ b/packages/graphiql-plugin-explorer/tsconfig.json @@ -14,9 +14,6 @@ "resolveJsonModule": true, "isolatedModules": true, "declaration": true, - "declarationDir": "types", "jsx": "react" - }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] + } } diff --git a/packages/graphiql-plugin-explorer/tsconfig.node.json b/packages/graphiql-plugin-explorer/tsconfig.node.json deleted file mode 100644 index 9d31e2aed93..00000000000 --- a/packages/graphiql-plugin-explorer/tsconfig.node.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "module": "ESNext", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/packages/graphiql-plugin-explorer/vite.config.mts b/packages/graphiql-plugin-explorer/vite.config.mts index f636de5fade..aa65e0ba7f0 100644 --- a/packages/graphiql-plugin-explorer/vite.config.mts +++ b/packages/graphiql-plugin-explorer/vite.config.mts @@ -1,6 +1,7 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import svgr from 'vite-plugin-svgr'; +import dts from 'vite-plugin-dts'; import packageJSON from './package.json'; const IS_UMD = process.env.UMD === 'true'; @@ -9,17 +10,19 @@ export default defineConfig({ plugins: [ react({ jsxRuntime: 'classic' }), svgr({ - exportAsDefault: true, svgrOptions: { titleProp: true, }, }), + !IS_UMD && [dts({ include: ['src/**'] })], ], css: { transformer: 'lightningcss', }, build: { - minify: IS_UMD ? 'esbuild' : false, + minify: IS_UMD + ? 'terser' // produce better bundle size than esbuild + : false, // avoid clean cjs/es builds emptyOutDir: !IS_UMD, lib: { diff --git a/packages/graphiql-react/CHANGELOG.md b/packages/graphiql-react/CHANGELOG.md index f7042df3357..d0b32d05b1f 100644 --- a/packages/graphiql-react/CHANGELOG.md +++ b/packages/graphiql-react/CHANGELOG.md @@ -1,5 +1,61 @@ # @graphiql/react +## 1.0.0-alpha.4 + +### Minor Changes + +- [#3733](https://github.com/graphql/graphiql/pull/3733) [`8dbddb5`](https://github.com/graphql/graphiql/commit/8dbddb50273720d76f895af6b783b04204c68e03) Thanks [@dimaMachina](https://github.com/dimaMachina)! - Add support for `onPrettifyQuery` callback to enable customised query formatting + +## 1.0.0-alpha.3 + +### Patch Changes + +- [#3414](https://github.com/graphql/graphiql/pull/3414) [`f8b719f`](https://github.com/graphql/graphiql/commit/f8b719f215a79038d1b2a54ddfef461fd849a912) Thanks [@leonardehrenfried](https://github.com/leonardehrenfried)! - Respect Markdown format: ignore single newline + +- [#3730](https://github.com/graphql/graphiql/pull/3730) [`360a038`](https://github.com/graphql/graphiql/commit/360a0385d4ef0105beb8e76044a78f5cd43c9448) Thanks [@dimaMachina](https://github.com/dimaMachina)! - rollback `position: absolute` style for `.graphiql-logo` because tabs will behind logo + +## 1.0.0-alpha.2 + +### Patch Changes + +- [#3720](https://github.com/graphql/graphiql/pull/3720) [`79f3abf`](https://github.com/graphql/graphiql/commit/79f3abf9b697c448442e32eb5a21b7ff720bc242) Thanks [@dimaMachina](https://github.com/dimaMachina)! - replace `overflow-y: scroll` with `overflow-y: auto` + +## 1.0.0-alpha.1 + +### Minor Changes + +- [#3717](https://github.com/graphql/graphiql/pull/3717) [`bf0c4e7`](https://github.com/graphql/graphiql/commit/bf0c4e7236f4a68448063aa0c6a4ed439e869a9f) Thanks [@dimaMachina](https://github.com/dimaMachina)! - remove `createComponentGroup` utility in favour `Object.assign` + +## 1.0.0-alpha.0 + +### Major Changes + +- [#3709](https://github.com/graphql/graphiql/pull/3709) [`9baf1f0`](https://github.com/graphql/graphiql/commit/9baf1f0fc9f32404fbb8bf57b3d1c2c2c8778ddb) Thanks [@dimaMachina](https://github.com/dimaMachina)! - `style.css` import was changed + + ## Migration + + ```diff + -import '@graphiql/react/dist/style.css'; + +import '@graphiql/react/style.css'; + ``` + +### Minor Changes + +- [#3702](https://github.com/graphql/graphiql/pull/3702) [`00415d2`](https://github.com/graphql/graphiql/commit/00415d2940c4d76a4a9e683e9fa0504ba97dd627) Thanks [@dimaMachina](https://github.com/dimaMachina)! - generate types with `vite-plugin-dts` + +- [#3644](https://github.com/graphql/graphiql/pull/3644) [`3c1a345`](https://github.com/graphql/graphiql/commit/3c1a345acd9bf07b45bc230009cb57c51c425673) Thanks [@dimaMachina](https://github.com/dimaMachina)! - - new looks of tabs + + - fix `disableTabs` when `Add tab` button is still shown + +### Patch Changes + +- [#3705](https://github.com/graphql/graphiql/pull/3705) [`8ff87d7`](https://github.com/graphql/graphiql/commit/8ff87d7b6b3d5d12b539612a39ca3abf7e631106) Thanks [@dimaMachina](https://github.com/dimaMachina)! - use `vite build --watch` instead of `vite` for `dev` script because we don't need development server for them + + do not use `vite-plugin-dts` when generating umd build + +- [#3692](https://github.com/graphql/graphiql/pull/3692) [`82bc961`](https://github.com/graphql/graphiql/commit/82bc961a33c4e9da29dffb4a603035a4909f49ad) Thanks [@dimaMachina](https://github.com/dimaMachina)! - - prefer `location` over `window.location` + - prefer `navigator` over `window.navigator` + ## 0.29.0 ### Minor Changes diff --git a/packages/graphiql-react/README.md b/packages/graphiql-react/README.md index 54ac1e2615e..77b90db13c2 100644 --- a/packages/graphiql-react/README.md +++ b/packages/graphiql-react/README.md @@ -61,7 +61,7 @@ function MyGraphQLIDE() { ``` The package also ships the necessary CSS that all its UI components need. You -can import them from `@graphiql/react/dist/style.css`. +can import them from `@graphiql/react/style.css`. > **Note**: In order for these styles to apply, the UI components need to be > rendered inside an element that has a class name `graphiql-container`. diff --git a/packages/graphiql-react/package.json b/packages/graphiql-react/package.json index 6a9c28077cb..c49cb0d5b73 100644 --- a/packages/graphiql-react/package.json +++ b/packages/graphiql-react/package.json @@ -1,9 +1,7 @@ { "name": "@graphiql/react", - "version": "0.29.0", - "sideEffects": [ - "*.css" - ], + "version": "1.0.0-alpha.4", + "sideEffects": false, "repository": { "type": "git", "url": "https://github.com/graphql/graphiql", @@ -16,13 +14,12 @@ "license": "MIT", "exports": { "./package.json": "./package.json", + "./style.css": "./dist/style.css", + "./font/*": "./font/*", ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" - }, - "./font/roboto.css": "./font/roboto.css", - "./font/fira-code.css": "./font/fira-code.css", - "./dist/style.css": "./dist/style.css" + } }, "types": "dist/index.d.ts", "keywords": [ diff --git a/packages/graphiql-react/src/editor/common.ts b/packages/graphiql-react/src/editor/common.ts index a4ea9fd2bbc..7b5673c4306 100644 --- a/packages/graphiql-react/src/editor/common.ts +++ b/packages/graphiql-react/src/editor/common.ts @@ -27,10 +27,10 @@ export async function importCodeMirror( addons: Promise[], options?: { useCommonAddons?: boolean }, ) { - const CodeMirror = await import('codemirror').then(c => + const CodeMirror = await import('codemirror').then(mod => // Depending on bundler and settings the dynamic import either returns a // function (e.g., parcel) or an object containing a `default` property - typeof c === 'function' ? c : c.default, + typeof mod === 'function' ? mod : mod.default, ); await Promise.all( options?.useCommonAddons === false diff --git a/packages/graphiql-react/src/editor/components/image-preview.tsx b/packages/graphiql-react/src/editor/components/image-preview.tsx index 4a2b65dfc16..f21f6aa5ef5 100644 --- a/packages/graphiql-react/src/editor/components/image-preview.tsx +++ b/packages/graphiql-react/src/editor/components/image-preview.tsx @@ -76,11 +76,8 @@ function tokenToURL(token: Token) { const value = token.string.slice(1).slice(0, -1).trim(); try { - const { location } = window; return new URL(value, location.protocol + '//' + location.host); - } catch { - return; - } + } catch {} } function isImageURL(url: URL) { diff --git a/packages/graphiql-react/src/editor/hooks.ts b/packages/graphiql-react/src/editor/hooks.ts index 2292c7db615..52c1f68b27d 100644 --- a/packages/graphiql-react/src/editor/hooks.ts +++ b/packages/graphiql-react/src/editor/hooks.ts @@ -1,4 +1,9 @@ -import { fillLeafs, GetDefaultFieldNamesFn, mergeAst } from '@graphiql/toolkit'; +import { + fillLeafs, + GetDefaultFieldNamesFn, + mergeAst, + MaybePromise, +} from '@graphiql/toolkit'; import type { EditorChange, EditorConfiguration } from 'codemirror'; import type { SchemaReference } from 'codemirror-graphql/utils/SchemaReference'; import copyToClipboard from 'copy-to-clipboard'; @@ -32,9 +37,7 @@ export function useSynchronizeOption( value: EditorConfiguration[K], ) { useEffect(() => { - if (editor) { - editor.setOption(option, value); - } + editor?.setOption(option, value); }, [editor, option, value]); } @@ -214,19 +217,36 @@ export function useMergeQuery({ caller }: UseMergeQueryArgs = {}) { }; } -type UsePrettifyEditorsArgs = { +export type UsePrettifyEditorsArgs = { /** * This is only meant to be used internally in `@graphiql/react`. */ caller?: Function; + /** + * Invoked when the prettify callback is invoked. + * @param query The current value of the query editor. + * @default + * import { parse, print } from 'graphql' + * + * (query) => print(parse(query)) + * @returns The formatted query. + */ + onPrettifyQuery?: (query: string) => MaybePromise; }; -export function usePrettifyEditors({ caller }: UsePrettifyEditorsArgs = {}) { +function DEFAULT_PRETTIFY_QUERY(query: string): string { + return print(parse(query)); +} + +export function usePrettifyEditors({ + caller, + onPrettifyQuery = DEFAULT_PRETTIFY_QUERY, +}: UsePrettifyEditorsArgs = {}) { const { queryEditor, headerEditor, variableEditor } = useEditorContext({ nonNull: true, caller: caller || _usePrettifyEditors, }); - return () => { + return async () => { if (variableEditor) { const variableEditorContent = variableEditor.getValue(); try { @@ -262,10 +282,13 @@ export function usePrettifyEditors({ caller }: UsePrettifyEditorsArgs = {}) { if (queryEditor) { const editorContent = queryEditor.getValue(); - const prettifiedEditorContent = print(parse(editorContent)); - - if (prettifiedEditorContent !== editorContent) { - queryEditor.setValue(prettifiedEditorContent); + try { + const prettifiedEditorContent = await onPrettifyQuery(editorContent); + if (prettifiedEditorContent !== editorContent) { + queryEditor.setValue(prettifiedEditorContent); + } + } catch { + /* Parsing query failed, skip prettification */ } } }; @@ -344,12 +367,10 @@ export function useAutoCompleteLeafs({ } // https://react.dev/learn/you-might-not-need-an-effect - export const useEditorState = (editor: 'query' | 'variable' | 'header') => { - 'use no memo'; // eslint-disable-line react-hooks/react-compiler -- TODO: check why query builder update only 1st field https://github.com/graphql/graphiql/issues/3836 - const context = useEditorContext({ - nonNull: true, - }); + // eslint-disable-next-line react-hooks/react-compiler -- TODO: check why query builder update only 1st field https://github.com/graphql/graphiql/issues/3836 + 'use no memo'; + const context = useEditorContext({ nonNull: true }); const editorInstance = context[`${editor}Editor` as const]; let valueString = ''; diff --git a/packages/graphiql-react/src/editor/query-editor.ts b/packages/graphiql-react/src/editor/query-editor.ts index 97f056d6a1f..1e3d97cc1ff 100644 --- a/packages/graphiql-react/src/editor/query-editor.ts +++ b/packages/graphiql-react/src/editor/query-editor.ts @@ -34,6 +34,7 @@ import { useCompletion, useCopyQuery, UseCopyQueryArgs, + UsePrettifyEditorsArgs, useKeyMap, useMergeQuery, usePrettifyEditors, @@ -47,7 +48,8 @@ import { import { normalizeWhitespace } from './whitespace'; export type UseQueryEditorArgs = WriteableEditorProps & - Pick & { + Pick & + Pick & { /** * Invoked when a reference to the GraphQL schema (type or field) is clicked * as part of the editor or one of its tooltips. @@ -120,6 +122,7 @@ export function useQueryEditor( onClickReference, onCopyQuery, onEdit, + onPrettifyQuery, readOnly = false, }: UseQueryEditorArgs = {}, caller?: Function, @@ -147,7 +150,10 @@ export function useQueryEditor( const plugin = usePluginContext(); const copy = useCopyQuery({ caller: caller || _useQueryEditor, onCopyQuery }); const merge = useMergeQuery({ caller: caller || _useQueryEditor }); - const prettify = usePrettifyEditors({ caller: caller || _useQueryEditor }); + const prettify = usePrettifyEditors({ + caller: caller || _useQueryEditor, + onPrettifyQuery, + }); const ref = useRef(null); const codeMirrorRef = useRef(undefined); diff --git a/packages/graphiql-react/src/markdown.ts b/packages/graphiql-react/src/markdown.ts index e8d24628cff..c1fe6a36465 100644 --- a/packages/graphiql-react/src/markdown.ts +++ b/packages/graphiql-react/src/markdown.ts @@ -3,6 +3,8 @@ import MarkdownIt from 'markdown-it'; export const markdown = new MarkdownIt({ - breaks: true, + // we don't want to convert \n to
because in markdown a single newline is not a line break + // https://github.com/graphql/graphiql/issues/3155 + breaks: false, linkify: true, }); diff --git a/packages/graphiql-react/src/style/root.css b/packages/graphiql-react/src/style/root.css index 5f18fa336c6..8c8dbcfa09f 100644 --- a/packages/graphiql-react/src/style/root.css +++ b/packages/graphiql-react/src/style/root.css @@ -68,7 +68,7 @@ /* Layout */ --sidebar-width: 60px; --toolbar-width: 40px; - --session-header-height: 51px; + --session-header-height: 38.5px; } @media (prefers-color-scheme: dark) { diff --git a/packages/graphiql-react/src/toolbar/menu.tsx b/packages/graphiql-react/src/toolbar/menu.tsx index 1874679cbfc..7f8a6a9d154 100644 --- a/packages/graphiql-react/src/toolbar/menu.tsx +++ b/packages/graphiql-react/src/toolbar/menu.tsx @@ -1,7 +1,6 @@ import { ReactNode } from 'react'; import { clsx } from 'clsx'; import { DropdownMenu, Tooltip } from '../ui'; -import { createComponentGroup } from '../utility/component-group'; import './menu.css'; import { DropdownMenuProps } from '@radix-ui/react-dropdown-menu'; @@ -38,6 +37,6 @@ const ToolbarMenuRoot = ({ ); }; -export const ToolbarMenu = createComponentGroup(ToolbarMenuRoot, { +export const ToolbarMenu = Object.assign(ToolbarMenuRoot, { Item: DropdownMenu.Item, }); diff --git a/packages/graphiql-react/src/ui/dialog.tsx b/packages/graphiql-react/src/ui/dialog.tsx index 50c54bdb0c4..7ec068fe0cb 100644 --- a/packages/graphiql-react/src/ui/dialog.tsx +++ b/packages/graphiql-react/src/ui/dialog.tsx @@ -1,7 +1,6 @@ import { clsx } from 'clsx'; import { forwardRef, ReactElement, JSX } from 'react'; import { CloseIcon } from '../icons'; -import { createComponentGroup } from '../utility/component-group'; import { UnStyledButton } from './button'; import * as D from '@radix-ui/react-dialog'; import { Root as VisuallyHidden } from '@radix-ui/react-visually-hidden'; @@ -40,7 +39,7 @@ export function DialogRoot({ ); } -export const Dialog = createComponentGroup(DialogRoot, { +export const Dialog = Object.assign(DialogRoot, { Close: DialogClose, Title: D.Title, Trigger: D.Trigger, diff --git a/packages/graphiql-react/src/ui/dropdown.css b/packages/graphiql-react/src/ui/dropdown.css index 5f7b9186ee2..09f4c57524e 100644 --- a/packages/graphiql-react/src/ui/dropdown.css +++ b/packages/graphiql-react/src/ui/dropdown.css @@ -12,7 +12,7 @@ calc(var(--radix-dropdown-menu-content-available-height) - 10px), 400px ); - overflow-y: scroll; + overflow-y: auto; } .graphiql-dropdown-item { diff --git a/packages/graphiql-react/src/ui/dropdown.tsx b/packages/graphiql-react/src/ui/dropdown.tsx index 5009c102da4..4d39e706fbc 100644 --- a/packages/graphiql-react/src/ui/dropdown.tsx +++ b/packages/graphiql-react/src/ui/dropdown.tsx @@ -1,6 +1,5 @@ import { ComponentProps, forwardRef, ReactElement } from 'react'; import { clsx } from 'clsx'; -import { createComponentGroup } from '../utility/component-group'; import { Trigger, Portal, @@ -53,7 +52,7 @@ const Item = ({ className, children, ...props }: DropdownMenuItemProps) => ( ); -export const DropdownMenu = createComponentGroup(Root, { +export const DropdownMenu = Object.assign(Root, { Button, Item, Content, diff --git a/packages/graphiql-react/src/ui/tabs.css b/packages/graphiql-react/src/ui/tabs.css index d3ddb46e7e8..66cd5b73361 100644 --- a/packages/graphiql-react/src/ui/tabs.css +++ b/packages/graphiql-react/src/ui/tabs.css @@ -1,46 +1,84 @@ .graphiql-tabs { + --bg: hsl(var(--color-base)); + display: flex; align-items: center; - overflow-x: auto; - padding: var(--px-12); + gap: var(--px-8); + /* reset browser defaults */ + padding: 0; + margin: 0; + list-style: none; +} - & > :not(:first-child) { - margin-left: var(--px-12); - } +/* trick to shrink multiple tabs, instead of overflow container */ +.graphiql-tabs, +.graphiql-tab { + min-width: 0; } .graphiql-tab { - align-items: stretch; - border-radius: var(--border-radius-8); - color: hsla(var(--color-neutral), var(--alpha-secondary)); + border-radius: var(--border-radius-8) var(--border-radius-8) 0 0; + background: hsla(var(--color-neutral), var(--alpha-background-light)); + position: relative; display: flex; + max-width: 140px; - & > button.graphiql-tab-close { - visibility: hidden; - } - &.graphiql-tab-active > button.graphiql-tab-close, - &:hover > button.graphiql-tab-close, - &:focus-within > button.graphiql-tab-close { - visibility: unset; + /* disable shrinking while changing the operation name */ + &:not(:focus-within) { + transform: none !important; } + &:hover, + &:focus-within, &.graphiql-tab-active { - background-color: hsla(var(--color-neutral), var(--alpha-background-heavy)); - color: hsla(var(--color-neutral), 1); + background: var(--bg); + color: hsl(var(--color-neutral)); + + .graphiql-tab-close { + display: block; + } } -} -button.graphiql-tab-button { - padding: var(--px-4) 0 var(--px-4) var(--px-8); -} + .graphiql-tab-button { + border-radius: var(--border-radius-8) var(--border-radius-8) 0 0; + overflow: hidden; + text-overflow: ellipsis; + padding: var(--px-4) 28px var(--px-4) var(--px-8); -button.graphiql-tab-close { - align-items: center; - display: flex; - padding: var(--px-4) var(--px-8); + &:hover { + background: none; + } + } + + .graphiql-tab-close { + position: absolute; + right: min(var(--px-4), 5%); + top: 50%; + transform: translateY(-50%); + display: none; + background: var(--bg); + box-shadow: -10px 0 10px 0 var(--bg); + padding: var(--px-6); + line-height: 0; + + & > svg { + height: var(--px-8); + width: var(--px-8); + } + + &:hover { + background: var(--bg); + color: hsl(var(--color-neutral)); + overflow: hidden; /* bg in `:before` will not overflow from radius area */ - & > svg { - height: var(--px-8); - width: var(--px-8); + /* trick to add 2nd bg with opacity */ + &:before { + content: ''; + position: absolute; + inset: 0; + z-index: -1; + background: hsla(var(--color-neutral), 0.3); + } + } } } diff --git a/packages/graphiql-react/src/ui/tabs.tsx b/packages/graphiql-react/src/ui/tabs.tsx index a0a2c7dd920..331c0f5fa61 100644 --- a/packages/graphiql-react/src/ui/tabs.tsx +++ b/packages/graphiql-react/src/ui/tabs.tsx @@ -2,9 +2,7 @@ import { forwardRef, ReactNode, JSX } from 'react'; import { clsx } from 'clsx'; import { Reorder } from 'framer-motion'; import { CloseIcon } from '../icons'; -import { createComponentGroup } from '../utility/component-group'; import { UnStyledButton } from './button'; -import { Tooltip } from './tooltip'; import './tabs.css'; @@ -21,7 +19,7 @@ const TabRoot = forwardRef( {...props} ref={ref} value={value} - aria-selected={isActive ? 'true' : undefined} + aria-selected={isActive} role="tab" className={clsx( 'graphiql-tab', @@ -38,36 +36,34 @@ TabRoot.displayName = 'Tab'; const TabButton = forwardRef< HTMLButtonElement, JSX.IntrinsicElements['button'] ->((props, ref) => ( +>(({ children, className, ...props }, ref) => ( - {props.children} + {children} )); TabButton.displayName = 'Tab.Button'; const TabClose = forwardRef( (props, ref) => ( - - - - - + + + ), ); TabClose.displayName = 'Tab.Close'; -export const Tab = createComponentGroup(TabRoot, { +export const Tab = Object.assign(TabRoot, { Button: TabButton, Close: TabClose, }); diff --git a/packages/graphiql-react/src/ui/tooltip.tsx b/packages/graphiql-react/src/ui/tooltip.tsx index 6284780c580..125d7c10db6 100644 --- a/packages/graphiql-react/src/ui/tooltip.tsx +++ b/packages/graphiql-react/src/ui/tooltip.tsx @@ -1,6 +1,5 @@ import { FC, ReactNode } from 'react'; import * as T from '@radix-ui/react-tooltip'; -import { createComponentGroup } from '../utility/component-group'; import './tooltip.css'; export const TooltipRoot: FC = ({ @@ -27,6 +26,6 @@ export const TooltipRoot: FC = ({ ); }; -export const Tooltip = createComponentGroup(TooltipRoot, { +export const Tooltip = Object.assign(TooltipRoot, { Provider: T.Provider, }); diff --git a/packages/graphiql-react/src/utility/component-group.ts b/packages/graphiql-react/src/utility/component-group.ts deleted file mode 100644 index 71e67ac3c32..00000000000 --- a/packages/graphiql-react/src/utility/component-group.ts +++ /dev/null @@ -1,15 +0,0 @@ -'use no memo'; - -import { JSXElementConstructor } from 'react'; - -export const createComponentGroup = < - Root extends JSXElementConstructor, - Children extends { [key: string]: JSXElementConstructor }, ->( - root: Root, - children: Children, -): Root & Children => - Object.entries(children).reduce((r, [key, value]) => { - r[key] = value; - return r; - }, root); diff --git a/packages/graphiql-react/tsconfig.json b/packages/graphiql-react/tsconfig.json index 3d58136542f..d1c216fef77 100644 --- a/packages/graphiql-react/tsconfig.json +++ b/packages/graphiql-react/tsconfig.json @@ -15,7 +15,6 @@ "isolatedModules": true, "jsx": "react-jsx", "declaration": true, - "declarationDir": "types", "types": ["vitest/globals", "@testing-library/jest-dom"] } } diff --git a/packages/graphiql/CHANGELOG.md b/packages/graphiql/CHANGELOG.md index 02fc07ad16c..978db1997f6 100644 --- a/packages/graphiql/CHANGELOG.md +++ b/packages/graphiql/CHANGELOG.md @@ -1,5 +1,192 @@ # Change Log +## 4.0.0-alpha.5 + +### Minor Changes + +- [#3733](https://github.com/graphql/graphiql/pull/3733) [`8dbddb5`](https://github.com/graphql/graphiql/commit/8dbddb50273720d76f895af6b783b04204c68e03) Thanks [@dimaMachina](https://github.com/dimaMachina)! - Add support for `onPrettifyQuery` callback to enable customised query formatting + +### Patch Changes + +- Updated dependencies [[`8dbddb5`](https://github.com/graphql/graphiql/commit/8dbddb50273720d76f895af6b783b04204c68e03)]: + - @graphiql/react@1.0.0-alpha.4 + +## 4.0.0-alpha.4 + +### Minor Changes + +- [#3728](https://github.com/graphql/graphiql/pull/3728) [`a1a5208`](https://github.com/graphql/graphiql/commit/a1a5208aeebe4ff622e83cd355f8b4e9b7fa011c) Thanks [@dimaMachina](https://github.com/dimaMachina)! - remove `.graphiql-session` class + +### Patch Changes + +- [#3414](https://github.com/graphql/graphiql/pull/3414) [`f8b719f`](https://github.com/graphql/graphiql/commit/f8b719f215a79038d1b2a54ddfef461fd849a912) Thanks [@leonardehrenfried](https://github.com/leonardehrenfried)! - Respect Markdown format: ignore single newline + +- [#3730](https://github.com/graphql/graphiql/pull/3730) [`360a038`](https://github.com/graphql/graphiql/commit/360a0385d4ef0105beb8e76044a78f5cd43c9448) Thanks [@dimaMachina](https://github.com/dimaMachina)! - rollback `position: absolute` style for `.graphiql-logo` because tabs will behind logo + +- [#3726](https://github.com/graphql/graphiql/pull/3726) [`196e9a0`](https://github.com/graphql/graphiql/commit/196e9a081ffc0df16a5537c8ec0fb622fc3ba0b0) Thanks [@dimaMachina](https://github.com/dimaMachina)! - use `right: var(--px-16)` instead of `right: 0` for `.graphiql-logo` + +- Updated dependencies [[`f8b719f`](https://github.com/graphql/graphiql/commit/f8b719f215a79038d1b2a54ddfef461fd849a912), [`360a038`](https://github.com/graphql/graphiql/commit/360a0385d4ef0105beb8e76044a78f5cd43c9448)]: + - @graphiql/react@1.0.0-alpha.3 + +## 4.0.0-alpha.3 + +### Patch Changes + +- [#3720](https://github.com/graphql/graphiql/pull/3720) [`79f3abf`](https://github.com/graphql/graphiql/commit/79f3abf9b697c448442e32eb5a21b7ff720bc242) Thanks [@dimaMachina](https://github.com/dimaMachina)! - replace `overflow-y: scroll` with `overflow-y: auto` + +- [#3720](https://github.com/graphql/graphiql/pull/3720) [`79f3abf`](https://github.com/graphql/graphiql/commit/79f3abf9b697c448442e32eb5a21b7ff720bc242) Thanks [@dimaMachina](https://github.com/dimaMachina)! - replace `Tooltip`s in tabs with html `title="..."` attribute + +- Updated dependencies [[`79f3abf`](https://github.com/graphql/graphiql/commit/79f3abf9b697c448442e32eb5a21b7ff720bc242)]: + - @graphiql/react@1.0.0-alpha.2 + +## 4.0.0-alpha.2 + +### Patch Changes + +- [#3716](https://github.com/graphql/graphiql/pull/3716) [`cc2808f`](https://github.com/graphql/graphiql/commit/cc2808f9b0d9ac0f98603299ec67e2a659cbfcd7) Thanks [@dimaMachina](https://github.com/dimaMachina)! - use `position: absolute` for `.graphiql-logo` class + +- Updated dependencies [[`bf0c4e7`](https://github.com/graphql/graphiql/commit/bf0c4e7236f4a68448063aa0c6a4ed439e869a9f)]: + - @graphiql/react@1.0.0-alpha.1 + +## 4.0.0-alpha.1 + +### Major Changes + +- [#3713](https://github.com/graphql/graphiql/pull/3713) [`27bbc51`](https://github.com/graphql/graphiql/commit/27bbc51a69504ffa9c6efbb17f112668f38fe52d) Thanks [@dimaMachina](https://github.com/dimaMachina)! - show tabs even there is only 1 tab + +- [#3707](https://github.com/graphql/graphiql/pull/3707) [`3c901c1`](https://github.com/graphql/graphiql/commit/3c901c104123750f45bcd64ade5b0ab9706d3146) Thanks [@dimaMachina](https://github.com/dimaMachina)! - Remove `toolbar.additionalContent` and `toolbar.additionalComponent` props in favor of `GraphiQL.Toolbar` render props. + + ## Migration from `toolbar.additionalContent` + + #### Before + + ```jsx + My button }} /> + ``` + + #### After + + ```jsx + + + {({ merge, prettify, copy }) => ( + <> + {prettify} + {merge} + {copy} + + + )} + + + ``` + + ### Migration from `toolbar.additionalComponent` + + #### Before + + ```jsx + My button; + }, + }} + /> + ``` + + #### After + + ```jsx + + + {({ merge, prettify, copy }) => ( + <> + {prettify} + {merge} + {copy} + + + )} + + + ``` + + *** + + Additionally, you can sort default toolbar buttons in different order or remove unneeded buttons for you: + + ```jsx + + + {({ prettify, copy }) => ( + <> + {copy /* Copy button will be first instead of default last */} + {/* Merge button is removed from toolbar */} + {prettify} + + )} + + + ``` + +## 4.0.0-alpha.0 + +### Major Changes + +- [#3706](https://github.com/graphql/graphiql/pull/3706) [`343dd59`](https://github.com/graphql/graphiql/commit/343dd599ee10b0670cd7ab4dfaa65344f0d48c84) Thanks [@dimaMachina](https://github.com/dimaMachina)! - remove default export + + ## Migration + + ### Before + + ```jsx + import GraphiQL from 'graphiql'; + ``` + + ### After + + ```jsx + import { GraphiQL } from 'graphiql'; + ``` + +- [#3687](https://github.com/graphql/graphiql/pull/3687) [`09e7004`](https://github.com/graphql/graphiql/commit/09e700403beb6c7290d165df33a2455ac2196971) Thanks [@dimaMachina](https://github.com/dimaMachina)! - remove `disableTabs` option + +- [#3688](https://github.com/graphql/graphiql/pull/3688) [`0fdd9b9`](https://github.com/graphql/graphiql/commit/0fdd9b9f32513d96281f577a5d9bd2fefb5f05d4) Thanks [@dimaMachina](https://github.com/dimaMachina)! - remove `data-testid="graphiql-container"` + +- [#3679](https://github.com/graphql/graphiql/pull/3679) [`5d90e0e`](https://github.com/graphql/graphiql/commit/5d90e0eed58214c5926e6e0edb196971b15b1121) Thanks [@dimaMachina](https://github.com/dimaMachina)! - migrate from `webpack` to `vite` + + changed exports + + ```diff + -graphiql/graphiql.css + +graphiql/style.css + ``` + + changed cdn paths, `dist/index.umd.js` and `dist/style.css` are minified + + ```diff + -https://unpkg.com/graphiql/graphiql.js + -https://unpkg.com/graphiql/graphiql.min.js + +https://unpkg.com/graphiql/dist/index.umd.js + -https://unpkg.com/graphiql/graphiql.css + -https://unpkg.com/graphiql/graphiql.min.css + +https://unpkg.com/graphiql/dist/style.css + ``` + +- [#3644](https://github.com/graphql/graphiql/pull/3644) [`3c1a345`](https://github.com/graphql/graphiql/commit/3c1a345acd9bf07b45bc230009cb57c51c425673) Thanks [@dimaMachina](https://github.com/dimaMachina)! - - new looks of tabs + + - fix `disableTabs` when `Add tab` button is still shown + +### Patch Changes + +- [#3683](https://github.com/graphql/graphiql/pull/3683) [`8efb873`](https://github.com/graphql/graphiql/commit/8efb873458489ce3497d917bcafd4ad8dfcbe6c8) Thanks [@dimaMachina](https://github.com/dimaMachina)! - update graphql to `16.9.0` and use vite `define` configuration to remove development code from cdn bundle + +- [#3692](https://github.com/graphql/graphiql/pull/3692) [`82bc961`](https://github.com/graphql/graphiql/commit/82bc961a33c4e9da29dffb4a603035a4909f49ad) Thanks [@dimaMachina](https://github.com/dimaMachina)! - - prefer `location` over `window.location` + - prefer `navigator` over `window.navigator` +- Updated dependencies [[`00415d2`](https://github.com/graphql/graphiql/commit/00415d2940c4d76a4a9e683e9fa0504ba97dd627), [`9baf1f0`](https://github.com/graphql/graphiql/commit/9baf1f0fc9f32404fbb8bf57b3d1c2c2c8778ddb), [`8ff87d7`](https://github.com/graphql/graphiql/commit/8ff87d7b6b3d5d12b539612a39ca3abf7e631106), [`82bc961`](https://github.com/graphql/graphiql/commit/82bc961a33c4e9da29dffb4a603035a4909f49ad), [`3c1a345`](https://github.com/graphql/graphiql/commit/3c1a345acd9bf07b45bc230009cb57c51c425673)]: + - @graphiql/react@1.0.0-alpha.0 + ## 3.9.0 ### Minor Changes diff --git a/packages/graphiql/cypress/e2e/errors.cy.ts b/packages/graphiql/cypress/e2e/errors.cy.ts index a6613665f19..b46511b3a8d 100644 --- a/packages/graphiql/cypress/e2e/errors.cy.ts +++ b/packages/graphiql/cypress/e2e/errors.cy.ts @@ -39,7 +39,7 @@ describe('Errors', () => { cy.visit('/'); /** * We can't use `cy.assertQueryResult` here because the stack contains line - * and column numbers of the `graphiql.min.js` bundle which are not stable. + * and column numbers of the `index.umd.js` bundle which are not stable. */ cy.get('section.result-window').should(element => { expect(element.get(0).innerText).to.contain( diff --git a/packages/graphiql/cypress/e2e/incremental-delivery.cy.ts b/packages/graphiql/cypress/e2e/incremental-delivery.cy.ts index d10273434b2..00e46ff0312 100644 --- a/packages/graphiql/cypress/e2e/incremental-delivery.cy.ts +++ b/packages/graphiql/cypress/e2e/incremental-delivery.cy.ts @@ -106,7 +106,7 @@ describeOrSkip('IncrementalDelivery support via fetcher', () => { This tests that; 1. user ({name}) => { name } 2. user ({age}) => { name, age } - 3. user.friends.0 ({name}) => { name, age, friends: [{name}] } <- can sometimes happen before 4, due the the promise race + 3. user.friends.0 ({name}) => { name, age, friends: [{name}] } <- can sometimes happen before 4, due to the promise race 4. user.friends.0 ({age}) => { name, age, friends: [{name, age}] } This shows us that we can deep merge defers, deep merge streams, and also deep merge defers inside streams diff --git a/packages/graphiql/cypress/e2e/prettify.cy.ts b/packages/graphiql/cypress/e2e/prettify.cy.ts index 6e2224f28dc..ba8e3e16ada 100644 --- a/packages/graphiql/cypress/e2e/prettify.cy.ts +++ b/packages/graphiql/cypress/e2e/prettify.cy.ts @@ -1,4 +1,5 @@ import { version } from 'graphql'; + let describeOrSkip = describe.skip; // hard to account for the extra \n between 15/16 so these only run for 16 for now @@ -25,6 +26,26 @@ const brokenQuery = 'longDescriptionType {id}}'; const brokenVariables = '"a": 1}'; describeOrSkip('GraphiQL Prettify', () => { + describe('onPrettifyQuery', () => { + const rawQuery = '{ test\n\nid }'; + const resultQuery = '{ test id }'; + + it('should work while click on prettify button', () => { + cy.visit(`/?query=${rawQuery}&onPrettifyQuery=true`); + cy.clickPrettify(); + cy.assertHasValues({ query: resultQuery }); + }); + + it('should work while click on key map short cut', () => { + cy.visit(`/?query=${rawQuery}&onPrettifyQuery=true`); + cy.get('.graphiql-query-editor textarea').type('{shift}{ctrl}P', { + force: true, + }); + cy.get('.graphiql-query-editor textarea').type('{esc}'); + cy.assertHasValues({ query: resultQuery }); + }); + }); + it('Regular prettification', () => { cy.visitWithOp({ query: uglyQuery, variablesString: uglyVariables }); diff --git a/packages/graphiql/cypress/e2e/tabs.cy.ts b/packages/graphiql/cypress/e2e/tabs.cy.ts index 43df5a2db4c..c3dac4a5705 100644 --- a/packages/graphiql/cypress/e2e/tabs.cy.ts +++ b/packages/graphiql/cypress/e2e/tabs.cy.ts @@ -2,8 +2,8 @@ describe('Tabs', () => { it('Should store editor contents when switching between tabs', () => { cy.visit('/?defaultQuery=&query='); - // Assert that no tab visible when there's only one session - cy.get('#graphiql-session-tab-0').should('not.exist'); + // Assert that tab visible when there's only one session + cy.get('.graphiql-tab-button').eq(0).should('exist'); // Enter a query without operation name cy.get('.graphiql-query-editor textarea').type('{id', { force: true }); @@ -18,7 +18,7 @@ describe('Tabs', () => { cy.get('.graphiql-query-editor textarea').type('query Foo {image', { force: true, }); - cy.get('#graphiql-session-tab-1').should('have.text', 'Foo'); + cy.get('.graphiql-tab-button').eq(1).should('have.text', 'Foo'); // Enter variables cy.get('.graphiql-editor-tool textarea') @@ -35,11 +35,11 @@ describe('Tabs', () => { cy.clickExecuteQuery(); // Switch back to the first tab - cy.get('#graphiql-session-tab-0').click(); + cy.get('.graphiql-tab-button').eq(0).click(); // Assert tab titles - cy.get('#graphiql-session-tab-0').should('have.text', ''); - cy.get('#graphiql-session-tab-1').should('have.text', 'Foo'); + cy.get('.graphiql-tab-button').eq(0).should('have.text', ''); + cy.get('.graphiql-tab-button').eq(1).should('have.text', 'Foo'); // Assert editor values cy.assertHasValues({ @@ -50,11 +50,11 @@ describe('Tabs', () => { }); // Switch back to the second tab - cy.get('#graphiql-session-tab-1').click(); + cy.get('.graphiql-tab-button').eq(1).click(); // Assert tab titles - cy.get('#graphiql-session-tab-0').should('have.text', ''); - cy.get('#graphiql-session-tab-1').should('have.text', 'Foo'); + cy.get('.graphiql-tab-button').eq(0).should('have.text', ''); + cy.get('.graphiql-tab-button').eq(1).should('have.text', 'Foo'); // Assert editor values cy.assertHasValues({ @@ -65,10 +65,10 @@ describe('Tabs', () => { }); // Close tab - cy.get('#graphiql-session-tab-1 + .graphiql-tab-close').click(); + cy.get('.graphiql-tab-button + .graphiql-tab-close').eq(1).click(); - // Assert that no tab visible when there's only one session - cy.get('#graphiql-session-tab-0').should('not.exist'); + // Assert that tab close button not visible when there is only 1 tab + cy.get('.graphiql-tab-button + .graphiql-tab-close').should('not.exist'); // Assert editor values cy.assertHasValues({ @@ -99,7 +99,7 @@ describe('Tabs', () => { cy.get('.graphiql-tab-button + .graphiql-tab-close').eq(1).click(); - cy.get('.graphiql-tab-button').should('have.length', 0); + cy.get('.graphiql-tab-button').should('have.length', 1); }); }); }); diff --git a/packages/graphiql/cypress/support/commands.ts b/packages/graphiql/cypress/support/commands.ts index 411033d2fcc..4e34051cab5 100644 --- a/packages/graphiql/cypress/support/commands.ts +++ b/packages/graphiql/cypress/support/commands.ts @@ -1,12 +1,10 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** +/** + * This example commands.ts shows you how to create various custom commands and + * overwrite existing commands. + * + * For more comprehensive examples of custom commands, please read more here: + * https://on.cypress.io/custom-commands + */ /// @@ -26,7 +24,7 @@ declare namespace Cypress { interface Chainable { /** - * Custom command to select DOM element by data-cy attribute. + * Custom command to select a DOM element by `data-cy` attribute. * @example cy.dataCy('greeting') */ dataCy(value: string): Chainable; @@ -56,11 +54,15 @@ Cypress.Commands.add('dataCy', value => { // @ts-expect-error -- fixme Cypress.Commands.add('clickExecuteQuery', () => { + // Check CodeMirror was initialized + cy.get('.graphiql-query-editor .CodeMirror-scroll').should('exist'); return cy.get('.graphiql-execute-button').click(); }); // @ts-expect-error -- fixme Cypress.Commands.add('clickPrettify', () => { + // Check CodeMirror was initialized + cy.get('.graphiql-query-editor .CodeMirror-scroll').should('exist'); return cy.get('[aria-label="Prettify query (Shift-Ctrl-P)"]').click(); }); @@ -139,11 +141,11 @@ function codeWithLineNumbers(code: string): string { .join('\n'); } -function normalize(str: string) { +function normalize(str: string): string { return str.replaceAll('​', ''); } -function normalizeWhitespace(str: string) { +function normalizeWhitespace(str: string): string { return str.replaceAll('\xA0', ' '); } diff --git a/packages/graphiql/package.json b/packages/graphiql/package.json index 9c586302f69..d44ccb16e63 100644 --- a/packages/graphiql/package.json +++ b/packages/graphiql/package.json @@ -1,6 +1,6 @@ { "name": "graphiql", - "version": "3.9.0", + "version": "4.0.0-alpha.5", "sideEffects": false, "description": "An graphical interactive in-browser GraphQL IDE.", "contributors": [ @@ -41,7 +41,7 @@ "prebuild": "yarn types:check", "types:check": "tsc --noEmit", "build": "vite build && UMD=true vite build", - "cypress-open": "yarn dev 'cypress open'", + "cypress-open": "yarn dev 'cypress open --browser electron'", "dev": "concurrently 'cross-env PORT=8080 node test/e2e-server' vite", "e2e": "yarn e2e-server 'cypress run'", "e2e-server": "start-server-and-test 'cross-env PORT=8080 node test/e2e-server' 'http-get://localhost:8080/graphql?query={test { id }}'", @@ -50,7 +50,7 @@ }, "dependencies": { "react-compiler-runtime": "19.1.0-rc.1", - "@graphiql/react": "^0.29.0" + "@graphiql/react": "^1.0.0-alpha.4" }, "peerDependencies": { "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", @@ -69,8 +69,8 @@ "cross-env": "^7.0.2", "cypress": "^13.13.2", "express": "^4.20.0", - "graphql": "^16.9.0", - "graphql-http": "^1.22.1", + "graphql": "^16.11.0", + "graphql-helix": "^1.13.0", "graphql-subscriptions": "^2.0.0", "react": "^19.1.0", "react-dom": "^19.1.0", diff --git a/packages/graphiql/resources/logo.svg b/packages/graphiql/resources/logo.svg index 43e513e06ca..e50db408fa2 100644 --- a/packages/graphiql/resources/logo.svg +++ b/packages/graphiql/resources/logo.svg @@ -1,27 +1,15 @@ - + + + - - + - + - diff --git a/packages/graphiql/src/GraphiQL.spec.tsx b/packages/graphiql/src/GraphiQL.spec.tsx index eb363ff13a3..5d8f1fd8e38 100644 --- a/packages/graphiql/src/GraphiQL.spec.tsx +++ b/packages/graphiql/src/GraphiQL.spec.tsx @@ -415,13 +415,13 @@ describe('GraphiQL', () => { }); describe('Tabs', () => { - it('show tabs if there are more than one', async () => { + it('show tabs', async () => { const { container } = render(); await waitFor(() => { expect( container.querySelectorAll('.graphiql-tabs .graphiql-tab'), - ).toHaveLength(0); + ).toHaveLength(1); }); act(() => { @@ -497,7 +497,7 @@ describe('GraphiQL', () => { await waitFor(() => { expect( container.querySelectorAll('.graphiql-tabs .graphiql-tab'), - ).toHaveLength(0); + ).toHaveLength(1); expect( container.querySelectorAll('.graphiql-tab .graphiql-tab-close'), ).toHaveLength(0); @@ -604,28 +604,6 @@ describe('GraphiQL', () => { expect(getByText('My Exported Type Logo')).toBeInTheDocument(); }); }); - - it('can be overridden using a named component', async () => { - const WrappedLogo = () => { - return ( -
- My Named Component Logo -
- ); - }; - WrappedLogo.displayName = 'GraphiQLLogo'; - - const { container, getByText } = render( - - - , - ); - - await waitFor(() => { - expect(container.querySelector('.test-wrapper')).toBeInTheDocument(); - expect(getByText('My Named Component Logo')).toBeInTheDocument(); - }); - }); }); describe('GraphiQL.Toolbar', () => { @@ -633,7 +611,7 @@ describe('GraphiQL', () => { const { container } = render( - + {() => } , ); @@ -646,35 +624,6 @@ describe('GraphiQL', () => { ).toHaveLength(1); }); }); - - it('can be overridden using a named component', async () => { - const WrappedToolbar = () => { - return ( -
- - - - , -
- ); - }; - WrappedToolbar.displayName = 'GraphiQLToolbar'; - - const { container } = render( - - - , - ); - - await waitFor(() => { - expect(container.querySelector('.test-wrapper')).toBeInTheDocument(); - expect( - container.querySelectorAll( - '[role="toolbar"] .graphiql-toolbar-button', - ), - ).toHaveLength(1); - }); - }); }); describe('GraphiQL.Footer', () => { @@ -693,33 +642,6 @@ describe('GraphiQL', () => { ).toHaveLength(1); }); }); - - it('can be overridden using a named component', async () => { - const WrappedFooter = () => { - return ( -
- - - - , -
- ); - }; - WrappedFooter.displayName = 'GraphiQLFooter'; - - const { container } = render( - - - , - ); - - await waitFor(() => { - expect(container.querySelector('.test-wrapper')).toBeInTheDocument(); - expect( - container.querySelectorAll('.graphiql-footer button'), - ).toHaveLength(1); - }); - }); }); }); }); diff --git a/packages/graphiql/src/GraphiQL.tsx b/packages/graphiql/src/GraphiQL.tsx index 4927bc94087..8178050c367 100644 --- a/packages/graphiql/src/GraphiQL.tsx +++ b/packages/graphiql/src/GraphiQL.tsx @@ -6,14 +6,20 @@ */ import type { - ComponentType, MouseEventHandler, PropsWithChildren, ReactNode, ReactElement, - JSXElementConstructor, + JSX, +} from 'react'; +import { + Fragment, + useState, + useEffect, + version, + Children, + cloneElement, } from 'react'; -import { Fragment, useState, useEffect, version, Children } from 'react'; import { Button, ButtonGroup, @@ -71,20 +77,6 @@ if (majorVersion < 16) { ); } -export type GraphiQLToolbarConfig = { - /** - * This content will be rendered after the built-in buttons of the toolbar. - * Note that this will not apply if you provide a completely custom toolbar - * (by passing `GraphiQL.Toolbar` as child to the `GraphiQL` component). - */ - additionalContent?: ReactNode; - - /** - * same as above, except a component with access to context - */ - additionalComponent?: JSXElementConstructor; -}; - /** * API docs for this live here: * @@ -135,7 +127,18 @@ export function GraphiQL({ 'The `GraphiQL` component requires a `fetcher` function to be passed as prop.', ); } - + // @ts-expect-error -- Prop is removed + if (props.toolbar?.additionalContent) { + throw new TypeError( + '`toolbar.additionalContent` was removed. Use render props on `GraphiQL.Toolbar` component instead.', + ); + } + // @ts-expect-error -- Prop is removed + if (props.toolbar?.additionalComponent) { + throw new TypeError( + '`toolbar.additionalComponent` was removed. Use render props on `GraphiQL.Toolbar` component instead.', + ); + } return ( @@ -187,7 +189,7 @@ type AddSuffix, Suffix extends string> = { export type GraphiQLInterfaceProps = WriteableEditorProps & AddSuffix, 'Query'> & - Pick & + Pick & AddSuffix, 'Variables'> & AddSuffix, 'Headers'> & Pick & { @@ -207,18 +209,12 @@ export type GraphiQLInterfaceProps = WriteableEditorProps & * @default true */ isHeadersEditorEnabled?: boolean; - /** - * An object that allows configuration of the toolbar next to the query - * editor. - */ - toolbar?: GraphiQLToolbarConfig; /** * Indicates if settings for persisting headers should appear in the * settings modal. */ showPersistHeadersSettings?: boolean; defaultTheme?: Theme; - disableTabs?: boolean; /** * `forcedTheme` allows enforcement of a specific theme for GraphiQL. * This is useful when you want to make sure that GraphiQL is always @@ -254,11 +250,6 @@ export function GraphiQLInterface(props: GraphiQLInterfaceProps) { props.forcedTheme && THEMES.includes(props.forcedTheme) ? props.forcedTheme : undefined; - - const copy = useCopyQuery({ onCopyQuery: props.onCopyQuery }); - const merge = useMergeQuery(); - const prettify = usePrettifyEditors(); - const { theme, setTheme } = useTheme(props.defaultTheme); useEffect(() => { @@ -332,37 +323,39 @@ export function GraphiQLInterface(props: GraphiQLInterfaceProps) { 'success' | 'error' | null >(null); - const children = Children.toArray(props.children); - - const logo = children.find(child => - isChildComponentType(child, GraphiQL.Logo), - ) || ; - - const toolbar = children.find(child => - isChildComponentType(child, GraphiQL.Toolbar), - ) || ( - <> - - - - - - - {props.toolbar?.additionalContent} - {props.toolbar?.additionalComponent && ( - - )} - - ); - - const footer = children.find(child => - isChildComponentType(child, GraphiQL.Footer), + const { logo, toolbar, footer } = Children.toArray(props.children).reduce<{ + logo?: ReactNode; + toolbar?: ReactNode; + footer?: ReactNode; + }>( + (acc, curr) => { + switch (getChildComponentType(curr)) { + case GraphiQL.Logo: + acc.logo = curr; + break; + case GraphiQL.Toolbar: + // @ts-expect-error -- fix type error + acc.toolbar = cloneElement(curr, { + onCopyQuery: props.onCopyQuery, + onPrettifyQuery: props.onPrettifyQuery, + }); + break; + case GraphiQL.Footer: + acc.footer = curr; + break; + } + return acc; + }, + { + logo: , + toolbar: ( +