diff --git a/superset-frontend/jest.config.js b/superset-frontend/jest.config.js index 7e33e4a9377..162e8d980cf 100644 --- a/superset-frontend/jest.config.js +++ b/superset-frontend/jest.config.js @@ -72,7 +72,7 @@ module.exports = { ], coverageReporters: ['lcov', 'json-summary', 'html', 'text'], transformIgnorePatterns: [ - 'node_modules/(?!@formatjs/.*|d3-(array|interpolate|color|time|scale|time-format|format)|internmap|@mapbox/tiny-sdf|remark-gfm|(?!@ngrx|(?!deck.gl)|d3-scale)|markdown-table|micromark-*.|decode-named-character-reference|character-entities|mdast-util-*.|unist-util-*.|ccount|escape-string-regexp|nanoid|uuid|@rjsf/*.|echarts|zrender|fetch-mock|pretty-ms|parse-ms|ol|@babel/runtime|@emotion|cheerio|cheerio/lib|parse5|dom-serializer|entities|htmlparser2|rehype-sanitize|hast-util-sanitize|unified|unist-.*|hast-.*|rehype-.*|remark-.*|mdast-.*|micromark-.*|parse-entities|property-information|space-separated-tokens|comma-separated-tokens|bail|devlop|zwitch|longest-streak|geostyler|geostyler-.*|(?!geostyler)lodash|react-error-boundary|react-json-tree|react-base16-styling|lodash-es|rbush|quickselect|react-diff-viewer-continued|storybook/*.|json-stringify-pretty-compact)', + 'node_modules/(?!@formatjs/.*|d3-(array|interpolate|color|time|scale|time-format|format)|internmap|@mapbox/tiny-sdf|remark-gfm|(?!@ngrx|(?!deck.gl)|d3-scale)|markdown-table|micromark-*.|decode-named-character-reference|character-entities|mdast-util-*.|unist-util-*.|ccount|escape-string-regexp|nanoid|uuid|@rjsf/*.|@x0k/.*|echarts|zrender|fetch-mock|pretty-ms|parse-ms|ol|@babel/runtime|@emotion|cheerio|cheerio/lib|parse5|dom-serializer|entities|htmlparser2|rehype-sanitize|hast-util-sanitize|unified|unist-.*|hast-.*|rehype-.*|remark-.*|mdast-.*|micromark-.*|parse-entities|property-information|space-separated-tokens|comma-separated-tokens|bail|devlop|zwitch|longest-streak|geostyler|geostyler-.*|(?!geostyler)lodash|react-error-boundary|react-json-tree|react-base16-styling|lodash-es|rbush|quickselect|react-diff-viewer-continued|storybook/*.|json-stringify-pretty-compact)', ], preset: 'ts-jest', transform: { diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index 5b476024d97..e9865b00b76 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -44,10 +44,9 @@ "@luma.gl/shadertools": "~9.2.5", "@luma.gl/webgl": "~9.2.5", "@reduxjs/toolkit": "^1.9.3", - "@rjsf/antd": "^5.24.13", - "@rjsf/core": "^5.24.13", - "@rjsf/utils": "^5.24.3", - "@rjsf/validator-ajv8": "^5.24.13", + "@rjsf/core": "^6.6.2", + "@rjsf/utils": "^6.6.2", + "@rjsf/validator-ajv8": "^6.6.2", "@scarf/scarf": "^1.4.0", "@superset-ui/chart-controls": "file:./packages/superset-ui-chart-controls", "@superset-ui/core": "file:./packages/superset-ui-core", @@ -83,7 +82,7 @@ "@visx/xychart": "^4.0.0", "ag-grid-community": "35.3.1", "ag-grid-react": "35.3.1", - "antd": "^5.26.0", + "antd": "^6.0.0", "chrono-node": "^2.9.1", "classnames": "^2.2.5", "content-disposition": "^2.0.1", @@ -349,17 +348,17 @@ } }, "node_modules/@ant-design/cssinjs": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz", - "integrity": "sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-2.1.2.tgz", + "integrity": "sha512-2Hy8BnCEH31xPeSLbhhB2ctCPXE2ZnASdi+KbSeS79BNbUhL9hAEe20SkUk+BR8aKTmqb6+FKFruk7w8z0VoRQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.11.1", "@emotion/hash": "^0.8.0", "@emotion/unitless": "^0.7.5", - "classnames": "^2.3.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1", "csstype": "^3.1.3", - "rc-util": "^5.35.0", "stylis": "^4.3.4" }, "peerDependencies": { @@ -368,18 +367,18 @@ } }, "node_modules/@ant-design/cssinjs-utils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", - "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-2.1.2.tgz", + "integrity": "sha512-5fTHQ158jJJ5dC/ECeyIdZUzKxE/mpEMRZxthyG1sw/AKRHKgJBg00Yi6ACVXgycdje7KahRNvNET/uBccwCnA==", "license": "MIT", "dependencies": { - "@ant-design/cssinjs": "^1.21.0", + "@ant-design/cssinjs": "^2.1.2", "@babel/runtime": "^7.23.2", - "rc-util": "^5.38.0" + "@rc-component/util": "^1.4.0" }, "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "react": ">=18", + "react-dom": ">=18" } }, "node_modules/@ant-design/cssinjs/node_modules/@emotion/hash": { @@ -433,25 +432,25 @@ } }, "node_modules/@ant-design/icons-svg": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", - "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.5.0.tgz", + "integrity": "sha512-1BTUFyKPTBZ53MuTP8s0k5SFEXL7o3VHEOwLgzaoWKwnBeqIcqUtVshc4SKzhI6uACfqhJqBwBUE9FsWR3uULA==", "license": "MIT" }, "node_modules/@ant-design/react-slick": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", - "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-2.0.0.tgz", + "integrity": "sha512-HMS9sRoEmZey8LsE/Yo6+klhlzU12PisjrVcydW3So7RdklyEd2qehyU6a7Yp+OYN72mgsYs3NFCyP2lCPFVqg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", + "@babel/runtime": "^7.28.4", + "clsx": "^2.1.1", "json2mq": "^0.2.0", - "resize-observer-polyfill": "^1.5.1", "throttle-debounce": "^5.0.0" }, "peerDependencies": { - "react": ">=16.9.0" + "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/@apache-superset/core": { @@ -8982,9 +8981,9 @@ "license": "MIT" }, "node_modules/@rc-component/async-validator": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", - "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-6.0.0.tgz", + "integrity": "sha512-D3AGQwdyE58gmvx6waVSXJ80JGO+IY5L2O8HDnSOex7JNlzB3GuN/4hyHNTdhy2qtOhkpbIjmeAN3tL993wKbA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.24.4" @@ -8993,29 +8992,228 @@ "node": ">=14.x" } }, - "node_modules/@rc-component/color-picker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", - "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "node_modules/@rc-component/cascader": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@rc-component/cascader/-/cascader-1.17.0.tgz", + "integrity": "sha512-3cVNG0zrQF1PoXq262L3wGCU+/YLEC1mGSVHDl577dQmA0ZKkXFbY6nwyXo+beCcM7buo49t24jkr+QZdL7O8w==", "license": "MIT", "dependencies": { - "@ant-design/fast-color": "^2.0.6", - "@babel/runtime": "^7.23.6", - "classnames": "^2.2.6", - "rc-util": "^5.38.1" + "@rc-component/select": "~1.8.0", + "@rc-component/tree": "~1.3.2", + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/checkbox": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/checkbox/-/checkbox-2.0.0.tgz", + "integrity": "sha512-3CXGPpAR9gsPKeO2N78HAPOzU30UdemD6HGJoWVJOpa6WleaGB5kzZj3v6bdTZab31YuWgY/RxV3VKPctn0DwQ==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, - "node_modules/@rc-component/context": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", - "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "node_modules/@rc-component/collapse": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/collapse/-/collapse-1.2.0.tgz", + "integrity": "sha512-ZRYSKSS39qsFx93p26bde7JUZJshsUBEQRlRXPuJYlAiNX0vyYlF5TsAm8JZN3LcF8XvKikdzPbgAtXSbkLUkw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.1", - "rc-util": "^5.27.0" + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-3.1.1.tgz", + "integrity": "sha512-OHaCHLHszCegdXmIq2ZRIZBN/EtpT6Wm8SG/gpzLATHbVKc/avvuKi+zlOuk05FTWvgaMmpxAko44uRJ3M+2pg==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^3.0.1", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/color-picker/node_modules/@ant-design/fast-color": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-3.0.1.tgz", + "integrity": "sha512-esKJegpW4nckh0o6kV3Tkb7NPIZYbPnnFxmQDUmL08ukXZAvV85TZBr70eGuke/CIArLaP6aw8lt9KILjnWuOw==", + "license": "MIT", + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/context": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-2.0.2.tgz", + "integrity": "sha512-uiGpAlblCNlziHPwj4S4Iy/oemeuz/hR03mbiEjTCXwsqOIN3BOzsRMyDwpyO5Fm0vIEEJRUf9ZtbRLbhksuTA==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.11.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/dialog": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@rc-component/dialog/-/dialog-1.10.0.tgz", + "integrity": "sha512-eDukNlz9vNszAGv7i3zKXdxEd3wgVmNxuJijYt8zvTh17QwTu8KK/bdURRd/lU4qaMzhO1HKKmMrwOnkaw0BvQ==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.3.3", + "@rc-component/portal": "^2.1.0", + "@rc-component/util": "^1.9.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/drawer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@rc-component/drawer/-/drawer-1.4.2.tgz", + "integrity": "sha512-1ib+fZEp6FBu+YvcIktm+nCQ+Q+qIpwpoaJH6opGr4ofh2QMq+qdr5DLC4oCf5qf3pcWX9lUWPYX652k4ini8Q==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/portal": "^2.1.3", + "@rc-component/util": "^1.9.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/dropdown": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/dropdown/-/dropdown-1.0.2.tgz", + "integrity": "sha512-6PY2ecUSYhDPhkNHHb4wfeAya04WhpmUSKzdR60G+kMNVUCX2vjT/AgTS0Lz0I/K6xrPMJ3enQbwVpeN3sHCgg==", + "license": "MIT", + "dependencies": { + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/@rc-component/form": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@rc-component/form/-/form-1.8.5.tgz", + "integrity": "sha512-d24EYtvUOBhxEtSd/EqIu9DaMuqrWF2IRIvAFCTM6NQ/GJIYNr8DvEpUSUlv2uPxEJ0ZPwYQ+wwlGIAaiHvdrw==", + "license": "MIT", + "dependencies": { + "@rc-component/async-validator": "^6.0.0", + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/image": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@rc-component/image/-/image-1.9.0.tgz", + "integrity": "sha512-khF7w7xkBH5B1bsBcI1FSUZdkyd1aqpl2eYyILCqCzzQH3XdfehGUaZTnptyaJJfs09/R5hv9jXWyazOMFIClQ==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.0.0", + "@rc-component/portal": "^2.1.2", + "@rc-component/util": "^1.10.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/input": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/input/-/input-1.3.1.tgz", + "integrity": "sha512-iFvTUT9W+JC/MSin2aGAk8NqsVlTzcExNC9DZariON1IWirju9NoNeEk47an4Q8iHazkoVI/y1LnDi88+CPcig==", + "license": "MIT", + "dependencies": { + "@rc-component/resize-observer": "^1.1.1", + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@rc-component/input-number": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@rc-component/input-number/-/input-number-1.6.2.tgz", + "integrity": "sha512-Gjcq7meZlCOiWN1t1xCC+7/s85humHVokTBI7PJgTfoyw5OWF74y3e6P8PHX104g9+b54jsodFIzyaj6p8LI9w==", + "license": "MIT", + "dependencies": { + "@rc-component/mini-decimal": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mentions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@rc-component/mentions/-/mentions-1.10.0.tgz", + "integrity": "sha512-CI1njYUVY0NjHtLhNoVmXlJyy568Sfep9Wsak6vmGjtT6uazx98djGYlCXz2xkHhEm73g91Y3MTvzUyE5avI7w==", + "license": "MIT", + "dependencies": { + "@rc-component/input": "~1.3.0", + "@rc-component/menu": "~1.4.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/menu": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@rc-component/menu/-/menu-1.4.1.tgz", + "integrity": "sha512-3GsVRoQ4cnF/AoIQ4P+Z1haBfgfBPQfLT1RJY3Nu4DzOnheTslfCiGSPj7bv/cLj5sW5pHqN25dDXGP3JELAlQ==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/overflow": "^1.0.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" }, "peerDependencies": { "react": ">=16.9.0", @@ -9023,9 +9221,9 @@ } }, "node_modules/@rc-component/mini-decimal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", - "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.4.tgz", + "integrity": "sha512-xiuXcaCwyOWpD8a8scdExFl+bntNphAW8XeenL1ig2en0AAZY0Pcp4pC0dI22qJ+NvxKn9RoNIoRdqYU3BLH4w==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.0" @@ -9034,15 +9232,27 @@ "node": ">=8.x" } }, - "node_modules/@rc-component/mutate-observer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", - "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "node_modules/@rc-component/motion": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@rc-component/motion/-/motion-1.3.3.tgz", + "integrity": "sha512-Xh3IszxvlSv3/PLYFyC2UZi9LNB83yOnkB/LNmRzaypZLvkhqUIPS7MQpGZcCMWrNsXV2p6YTSWbSGvFpEle9A==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" + "@rc-component/util": "^1.11.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-2.0.1.tgz", + "integrity": "sha512-AyarjoLU5YlxuValRi+w8JRH2Z84TBbFO2RoGWz9d8bSu0FqT8DtugH3xC3BV7mUwlmROFauyWuXFuq4IFbH+w==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.0" }, "engines": { "node": ">=8.x" @@ -9052,31 +9262,130 @@ "react-dom": ">=16.9.0" } }, - "node_modules/@rc-component/portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", - "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "node_modules/@rc-component/notification": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@rc-component/notification/-/notification-2.0.7.tgz", + "integrity": "sha512-nqZzpf6BPdaj+3ILx7si79LLmqPKyUmQoXa+/9gg0SkH0v1DbD66oJgRMSBEVnd/zUT3D4gwxWIHUKebYf2ZXQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.11.0", + "clsx": "^2.1.1" }, "engines": { "node": ">=8.x" }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/overflow": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/overflow/-/overflow-1.0.1.tgz", + "integrity": "sha512-syfmgAABaHCnCDzPwHZ/2tuvIcpOO3jefYZMmfkN+pmo8HKTzsfhS57vxo4ksPdN0By+uWVJhJWNFozNBxi2eA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@rc-component/resize-observer": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/pagination": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/pagination/-/pagination-1.4.0.tgz", + "integrity": "sha512-CW1g7P9V8u+e8JQdUsl2RWg+GCsoee0mtJjZUCCxn/vb3jzOwDKm6hAdwddHCVBfWJ58eGUBZz3IvnU8rRktjw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/picker": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rc-component/picker/-/picker-1.11.0.tgz", + "integrity": "sha512-6qXGKtoJvO8sUd17m5cyNEbEJub0zflCHnaZTBBmj63DPRZYc0WEHN8rp6hFSl+yMCJS/dJY5G+1fQ8bLCuD7A==", + "license": "MIT", + "dependencies": { + "@rc-component/overflow": "^1.0.0", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/trigger": "^3.6.15", + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=12.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/@rc-component/portal": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-2.2.1.tgz", + "integrity": "sha512-ck+r1kW/JSv0wxPji3KN2ss9K6Z0qqwusw/mf/0JobXhZ8hC2ejZwCJObW/SvDi0uhA0VzmCnx0CaCci95tcmA==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.11.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=12.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/progress": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/progress/-/progress-1.0.2.tgz", + "integrity": "sha512-WZUnH9eGxH1+xodZKqdrHke59uyGZSWgj5HBM5Kwk5BrTMuAORO7VJ2IP5Qbm9aH3n9x3IcesqHHR0NWPBC7fQ==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "node_modules/@rc-component/qrcode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.1.tgz", - "integrity": "sha512-g8eeeaMyFXVlq8cZUeaxCDhfIYjpao0l9cvm5gFwKXy/Vm1yDWV7h2sjH5jHYzdFedlVKBpATFB1VKMrHzwaWQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-2.0.0.tgz", + "integrity": "sha512-aAv3QhPP1xyafuTZOxub6a54pCeBnN3IwQkpETrBtthq4BL5IgxnCbuoBWPDpdLw1y1j6BgBUCAKV92+yX06Dw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.24.7", - "classnames": "^2.3.2" + "@babel/runtime": "^7.24.7" }, "engines": { "node": ">=8.x" @@ -9086,17 +9395,186 @@ "react-dom": ">=16.9.0" } }, + "node_modules/@rc-component/rate": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/rate/-/rate-1.0.1.tgz", + "integrity": "sha512-bkXxeBqDpl5IOC7yL7GcSYjQx9G8H+6kLYQnNZWeBYq2OYIv1MONd6mqKTjnnJYpV0cQIU2z3atdW0j1kttpTw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/resize-observer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/resize-observer/-/resize-observer-1.1.2.tgz", + "integrity": "sha512-t/Bb0W8uvL4PYKAB3YcChC+DlHh0Wt5kM7q/J+0qpVEUMLe7Hk5zuvc9km0hMnTFPSx5Z7Wu/fzCLN6erVLE8Q==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/segmented": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@rc-component/segmented/-/segmented-1.3.0.tgz", + "integrity": "sha512-5J/bJ01mbDnoA6P/FW8SxUvKn+OgUSTZJPzCNnTBntG50tzoP7DydGhqxp7ggZXZls7me3mc2EQDXakU3iTVFg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@rc-component/select": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@rc-component/select/-/select-1.8.2.tgz", + "integrity": "sha512-HQ9zuYqjfZTlcEMWlU1GAPBajd2OHIMVHyjZSGVTCVARwkfCgvXZMTEn0cduy3L+ejAKkaZluOQvxovZoaJaQw==", + "license": "MIT", + "dependencies": { + "@rc-component/overflow": "^1.0.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.11.1", + "@rc-component/virtual-list": "^1.2.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/slider": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/slider/-/slider-1.1.1.tgz", + "integrity": "sha512-LSzgWGYDgeCDgR4r1XlU29gbYws6HpLnvJd/uMhLeW/vQgxldeR+Wb4uzHDCHiYEbr1bnEHWdjkPxjJRHxuiig==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/steps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@rc-component/steps/-/steps-1.2.2.tgz", + "integrity": "sha512-/yVIZ00gDYYPHSY0JP+M+s3ZvuXLu2f9rEjQqiUDs7EcYsUYrpJ/1bLj9aI9R7MBR3fu/NGh6RM9u2qGfqp+Nw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/switch": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rc-component/switch/-/switch-1.0.3.tgz", + "integrity": "sha512-Jgi+EbOBquje/XNdofr7xbJQZPYJP+BlPfR0h+WN4zFkdtB2EWqEfvkXJWeipflwjWip0/17rNbxEAqs8hVHfw==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/table": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@rc-component/table/-/table-1.10.2.tgz", + "integrity": "sha512-b3PjqB9Gp25p5t/zq+9QrbXbodkptT8/zvLmwgd2FNPUUtaYyDnQqfxeD5a7ao8E8lpinLHsi2u2vdfPhyNvAw==", + "license": "MIT", + "dependencies": { + "@rc-component/context": "^2.0.1", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.11.1", + "@rc-component/virtual-list": "^1.0.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/tabs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rc-component/tabs/-/tabs-1.11.0.tgz", + "integrity": "sha512-hA/drZYOVa/MMIb4M2fWf3yaTyTG4qVuIABmghvEhyfw2nBob5VTH69lMCDjSVKmgODjO6nWlCV+gVn3xBrj5Q==", + "license": "MIT", + "dependencies": { + "@rc-component/dropdown": "~1.0.0", + "@rc-component/menu": "~1.4.0", + "@rc-component/motion": "^1.1.3", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tooltip": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/tooltip/-/tooltip-1.4.0.tgz", + "integrity": "sha512-8Rx5DCctIlLI4raR0I0xHjVTf1aF48+gKCNeAAo5bmF5VoR5YED+A/XEqzXv9KKqrJDRcd3Wndpxh2hyzrTtSg==", + "license": "MIT", + "dependencies": { + "@rc-component/trigger": "^3.7.1", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, "node_modules/@rc-component/tour": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", - "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-2.4.0.tgz", + "integrity": "sha512-aui4r4TqmTzwaBgcQxHYep8kM8PTjZFufjokObpy35KfFeZ0k9ArquWFZqegQlH24P14t+F0qO0mGTgzlav1yg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.18.0", - "@rc-component/portal": "^1.0.0-9", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" + "@rc-component/portal": "^2.2.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.7.0", + "clsx": "^2.1.1" }, "engines": { "node": ">=8.x" @@ -9106,21 +9584,70 @@ "react-dom": ">=16.9.0" } }, - "node_modules/@rc-component/trigger": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.0.tgz", - "integrity": "sha512-iwaxZyzOuK0D7lS+0AQEtW52zUWxoGqTGkke3dRyb8pYiShmRpCjB/8TzPI4R6YySCH7Vm9BZj/31VPiiQTLBg==", + "node_modules/@rc-component/tree": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@rc-component/tree/-/tree-1.3.2.tgz", + "integrity": "sha512-bJFj46wEkpBPnWyTm18XmgAgNQ/4YvprxMOPPY2a6rmhGJYxLuNKEFiL5Qej4Qctu9wHJm8WW+v2SYskafE0kA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.2", - "@rc-component/portal": "^1.1.0", - "classnames": "^2.3.2", - "rc-motion": "^2.0.0", - "rc-resize-observer": "^1.3.1", - "rc-util": "^5.44.0" + "@rc-component/motion": "^1.0.0", + "@rc-component/util": "^1.11.1", + "@rc-component/virtual-list": "^1.2.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/tree-select": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rc-component/tree-select/-/tree-select-1.11.0.tgz", + "integrity": "sha512-EhS0X0wtUhBfK4S5TlpSY3MR9ndPMGgujtt1PJW3Ej+ToAlnS/6ohYURtCoXBYGqazUwHmgQGVUDsfpVwhWPkg==", + "license": "MIT", + "dependencies": { + "@rc-component/select": "~1.8.0", + "@rc-component/tree": "~1.3.2", + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/trigger": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-3.9.1.tgz", + "integrity": "sha512-LNsYvz60mrLJ/kRvKcHE7boUvcQfVMCfRqZ71x3Fo9AOiZ1KKIEqkzMA8DNvz2V3Bcvir/vwQNn7JF1NPODQ7Q==", + "license": "MIT", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/portal": "^2.2.0", + "@rc-component/resize-observer": "^1.1.1", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" }, "engines": { "node": ">=8.x" }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/upload": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/upload/-/upload-1.1.1.tgz", + "integrity": "sha512-GvYWSKeaJTOxxC5p6+nOSadzfvXA1h8C/iHFPFZX+szH3JUXrvs+DLiW8YUTBgvMh8m63mJeHrlYlJzAlg+pDA==", + "license": "MIT", + "dependencies": { + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1" + }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" @@ -9140,6 +9667,25 @@ "react-dom": ">=18.0.0" } }, + "node_modules/@rc-component/virtual-list": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/virtual-list/-/virtual-list-1.2.0.tgz", + "integrity": "sha512-iavRm1Jo4GDbASQwdGa7jFyk93RvSOo9xHyBT4QL1pgFJj/Fdf1G+3RErH7/7BmAMvx2AkF62mjGYxDbXsK9TQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "@rc-component/resize-observer": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, "node_modules/@react-dnd/asap": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz", @@ -9277,160 +9823,62 @@ "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", "license": "MIT" }, - "node_modules/@rjsf/antd": { - "version": "5.24.13", - "resolved": "https://registry.npmjs.org/@rjsf/antd/-/antd-5.24.13.tgz", - "integrity": "sha512-UiWE8xoBxxCoe/SEkdQEmL5E6z3I1pw0+y0dTyGt8SHfAxxFc4/OWn7tKOAiNsKCXgf83t0JKn6CHWLD01sAdQ==", - "license": "Apache-2.0", - "dependencies": { - "classnames": "^2.5.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "rc-picker": "2.7.6" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@ant-design/icons": "^4.0.0 || ^5.0.0", - "@rjsf/core": "^5.24.x", - "@rjsf/utils": "^5.24.x", - "antd": "^4.24.0 || ^5.8.5", - "dayjs": "^1.8.0", - "react": "^16.14.0 || >=17" - } - }, - "node_modules/@rjsf/antd/node_modules/rc-picker": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.7.6.tgz", - "integrity": "sha512-H9if/BUJUZBOhPfWcPeT15JUI3/ntrG9muzERrXDkSoWmDj4yzmBvumozpxYrHwjcKnjyDGAke68d+whWwvhHA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "date-fns": "2.x", - "dayjs": "1.x", - "moment": "^2.24.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.37.0", - "shallowequal": "^1.1.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rjsf/antd/node_modules/rc-picker/node_modules/rc-trigger": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.3.4.tgz", - "integrity": "sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.6", - "rc-align": "^4.0.0", - "rc-motion": "^2.0.0", - "rc-util": "^5.19.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rjsf/antd/node_modules/rc-picker/node_modules/rc-trigger/node_modules/rc-align": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.15.tgz", - "integrity": "sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "dom-align": "^1.7.0", - "rc-util": "^5.26.0", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, "node_modules/@rjsf/core": { - "version": "5.24.13", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.24.13.tgz", - "integrity": "sha512-ONTr14s7LFIjx2VRFLuOpagL76sM/HPy6/OhdBfq6UukINmTIs6+aFN0GgcR0aXQHFDXQ7f/fel0o/SO05Htdg==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-6.6.2.tgz", + "integrity": "sha512-rmckOHIc0N3Vu0egcjrm4aRnw4ETW1i4fGdm0m63qd/298zHfF7x2md2rDh8F5HLgoxW3X/LdvrCHcsD1lxbGw==", "license": "Apache-2.0", "dependencies": { - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "markdown-to-jsx": "^7.4.1", + "lodash": "^4.18.1", + "lodash-es": "^4.18.1", + "markdown-to-jsx": "^9.8.1", "prop-types": "^15.8.1" }, "engines": { - "node": ">=14" + "node": ">=20" }, "peerDependencies": { - "@rjsf/utils": "^5.24.x", - "react": "^16.14.0 || >=17" - } - }, - "node_modules/@rjsf/core/node_modules/markdown-to-jsx": { - "version": "7.7.17", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.7.17.tgz", - "integrity": "sha512-7mG/1feQ0TX5I7YyMZVDgCC/y2I3CiEhIRQIhyov9nGBP5eoVrOXXHuL5ZP8GRfxVZKRiXWJgwXkb9It+nQZfQ==", - "license": "MIT", - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "react": ">= 0.14.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - } + "@rjsf/utils": "^6.6.x", + "react": ">=18" } }, "node_modules/@rjsf/utils": { - "version": "5.24.3", - "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.24.3.tgz", - "integrity": "sha512-IFzMyr6RDRgSi9jdfFBomwc8LMul6zLBsRSAgzD9wAB9laDcYHwPNEL2kZhOkAGrc+4iNQSPsawGFOA6CXH87Q==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-6.6.2.tgz", + "integrity": "sha512-npqdWuuFmCkiXETrDLRx8a4EwDJoUdTTnGhJA/774bwDgT99u4nAEyXbJd75VuobunewcLm2FOS2cErD3e28cg==", "license": "Apache-2.0", "dependencies": { - "json-schema-merge-allof": "^0.8.1", + "@x0k/json-schema-merge": "^1.0.3", + "fast-equals": "^6.0.0", + "fast-uri": "^3.1.2", "jsonpointer": "^5.0.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-is": "^18.2.0" + "lodash": "^4.18.1", + "lodash-es": "^4.18.1", + "react-is": "^18.3.1" }, "engines": { - "node": ">=14" + "node": ">=20" }, "peerDependencies": { - "react": "^16.14.0 || >=17" + "react": ">=18" } }, "node_modules/@rjsf/validator-ajv8": { - "version": "5.24.13", - "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.24.13.tgz", - "integrity": "sha512-oWHP7YK581M8I5cF1t+UXFavnv+bhcqjtL1a7MG/Kaffi0EwhgcYjODrD8SsnrhncsEYMqSECr4ZOEoirnEUWw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-6.6.2.tgz", + "integrity": "sha512-pi+CBfkXxyR1JhEveuwi7qA9NcqYvFSvadY8LkQDC6wP89bZS8TYXzolirvXC7okDdI3WCtPjx/FYnxYpXbj7Q==", "license": "Apache-2.0", "dependencies": { - "ajv": "^8.12.0", + "ajv": "^8.20.0", "ajv-formats": "^2.1.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21" + "lodash": "^4.18.1", + "lodash-es": "^4.18.1" }, "engines": { - "node": ">=14" + "node": ">=20" }, "peerDependencies": { - "@rjsf/utils": "^5.24.x" + "@rjsf/utils": "^6.6.x" } }, "node_modules/@rtsao/scc": { @@ -13816,6 +14264,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@x0k/json-schema-merge": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@x0k/json-schema-merge/-/json-schema-merge-1.0.4.tgz", + "integrity": "sha512-KvmMgAftbVzATq4IRnkno/SKSu+gjaR2ZUPJG5JUlY4W3twRJo03sk2914u8scmosibBZ0m7s6euZlJuqpv8Ww==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.15" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -14187,57 +14644,56 @@ } }, "node_modules/antd": { - "version": "5.27.6", - "resolved": "https://registry.npmjs.org/antd/-/antd-5.27.6.tgz", - "integrity": "sha512-70HrjVbzDXvtiUQ5MP1XdNudr/wGAk9Ivaemk6f36yrAeJurJSmZ8KngOIilolLRHdGuNc6/Vk+4T1OZpSjpag==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/antd/-/antd-6.5.0.tgz", + "integrity": "sha512-9zbVc9UukfGuqCvIAov01nlpDQWfARNmZQyt21ZhqLX7ilXmi4cdkp12xA48WEmXRXwZvno8A03qQuGE9JG8fg==", + "license": "MIT", "dependencies": { - "@ant-design/colors": "^7.2.1", - "@ant-design/cssinjs": "^1.23.0", - "@ant-design/cssinjs-utils": "^1.1.3", - "@ant-design/fast-color": "^2.0.6", - "@ant-design/icons": "^5.6.1", - "@ant-design/react-slick": "~1.1.2", - "@babel/runtime": "^7.26.0", - "@rc-component/color-picker": "~2.0.1", - "@rc-component/mutate-observer": "^1.1.0", - "@rc-component/qrcode": "~1.0.1", - "@rc-component/tour": "~1.15.1", - "@rc-component/trigger": "^2.3.0", - "classnames": "^2.5.1", - "copy-to-clipboard": "^3.3.3", + "@ant-design/colors": "^8.0.1", + "@ant-design/cssinjs": "^2.1.2", + "@ant-design/cssinjs-utils": "^2.1.2", + "@ant-design/fast-color": "^3.0.1", + "@ant-design/icons": "^6.3.1", + "@ant-design/react-slick": "~2.0.0", + "@babel/runtime": "^7.29.2", + "@rc-component/cascader": "~1.17.0", + "@rc-component/checkbox": "~2.0.0", + "@rc-component/collapse": "~1.2.0", + "@rc-component/color-picker": "~3.1.1", + "@rc-component/dialog": "~1.10.0", + "@rc-component/drawer": "~1.4.2", + "@rc-component/dropdown": "~1.0.2", + "@rc-component/form": "~1.8.5", + "@rc-component/image": "~1.9.0", + "@rc-component/input": "~1.3.1", + "@rc-component/input-number": "~1.6.2", + "@rc-component/mentions": "~1.10.0", + "@rc-component/menu": "~1.4.1", + "@rc-component/motion": "^1.3.3", + "@rc-component/mutate-observer": "^2.0.1", + "@rc-component/notification": "~2.0.7", + "@rc-component/pagination": "~1.4.0", + "@rc-component/picker": "~1.11.0", + "@rc-component/progress": "~1.0.2", + "@rc-component/qrcode": "~2.0.0", + "@rc-component/rate": "~1.0.1", + "@rc-component/resize-observer": "^1.1.2", + "@rc-component/segmented": "~1.3.0", + "@rc-component/select": "~1.8.2", + "@rc-component/slider": "~1.1.1", + "@rc-component/steps": "~1.2.2", + "@rc-component/switch": "~1.0.3", + "@rc-component/table": "~1.10.2", + "@rc-component/tabs": "~1.11.0", + "@rc-component/tooltip": "~1.4.0", + "@rc-component/tour": "~2.4.0", + "@rc-component/tree": "~1.3.2", + "@rc-component/tree-select": "~1.11.0", + "@rc-component/trigger": "^3.9.1", + "@rc-component/upload": "~1.1.1", + "@rc-component/util": "^1.11.1", + "clsx": "^2.1.1", "dayjs": "^1.11.11", - "rc-cascader": "~3.34.0", - "rc-checkbox": "~3.5.0", - "rc-collapse": "~3.9.0", - "rc-dialog": "~9.6.0", - "rc-drawer": "~7.3.0", - "rc-dropdown": "~4.2.1", - "rc-field-form": "~2.7.0", - "rc-image": "~7.12.0", - "rc-input": "~1.8.0", - "rc-input-number": "~9.5.0", - "rc-mentions": "~2.20.0", - "rc-menu": "~9.16.1", - "rc-motion": "^2.9.5", - "rc-notification": "~5.6.4", - "rc-pagination": "~5.1.0", - "rc-picker": "~4.11.3", - "rc-progress": "~4.0.0", - "rc-rate": "~2.13.1", - "rc-resize-observer": "^1.4.3", - "rc-segmented": "~2.7.0", - "rc-select": "~14.16.8", - "rc-slider": "~11.1.9", - "rc-steps": "~6.0.1", - "rc-switch": "~4.1.0", - "rc-table": "~7.54.0", - "rc-tabs": "~15.7.0", - "rc-textarea": "~1.10.2", - "rc-tooltip": "~6.4.0", - "rc-tree": "~5.13.1", - "rc-tree-select": "~5.27.0", - "rc-upload": "~4.9.2", - "rc-util": "^5.44.4", "scroll-into-view-if-needed": "^3.1.0", "throttle-debounce": "^5.0.2" }, @@ -14246,8 +14702,45 @@ "url": "https://opencollective.com/ant-design" }, "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/antd/node_modules/@ant-design/colors": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-8.0.1.tgz", + "integrity": "sha512-foPVl0+SWIslGUtD/xBr1p9U4AKzPhNYEseXYRRo5QSzGACYZrQbe11AYJbYfAWnWSpGBx6JjBmSeugUsD9vqQ==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^3.0.0" + } + }, + "node_modules/antd/node_modules/@ant-design/fast-color": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-3.0.1.tgz", + "integrity": "sha512-esKJegpW4nckh0o6kV3Tkb7NPIZYbPnnFxmQDUmL08ukXZAvV85TZBr70eGuke/CIArLaP6aw8lt9KILjnWuOw==", + "license": "MIT", + "engines": { + "node": ">=8.x" + } + }, + "node_modules/antd/node_modules/@ant-design/icons": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.3.2.tgz", + "integrity": "sha512-B6O5a5XJ4wjtNOfZejXYwHW5zvKV5gYkjGf11dHGLEbKn0ABDGndo41+gfIiXyTFhvESj4XTotuud33mUFid0g==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^8.0.1", + "@ant-design/icons-svg": "^4.5.0", + "@rc-component/util": "^1.11.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" } }, "node_modules/anymatch": { @@ -16466,27 +16959,6 @@ "node": ">= 0.6" } }, - "node_modules/compute-gcd": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", - "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "node_modules/compute-lcm": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", - "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", - "dependencies": { - "compute-gcd": "^1.2.1", - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, "node_modules/compute-scroll-into-view": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", @@ -17870,22 +18342,6 @@ "topojson": "^1.6.19" } }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, "node_modules/dateformat": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.2.tgz", @@ -18480,12 +18936,6 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "license": "MIT" }, - "node_modules/dom-align": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz", - "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==", - "license": "MIT" - }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -20225,6 +20675,15 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/fast-equals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-6.0.0.tgz", + "integrity": "sha512-PFhhIGgdM79r5Uztdj9Zb6Tt1zKafqVfdMGwVca1z5z6fbX7DmsySSuJd8HiP6I1j505DCS83cLxo5rmSNeVEA==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", @@ -21634,6 +22093,56 @@ "url": "https://opencollective.com/geostyler" } }, + "node_modules/geostyler/node_modules/@ant-design/cssinjs": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz", + "integrity": "sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/geostyler/node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/geostyler/node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, "node_modules/geostyler/node_modules/@dnd-kit/sortable": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-8.0.0.tgz", @@ -21648,6 +22157,192 @@ "react": ">=16.8.0" } }, + "node_modules/geostyler/node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/geostyler/node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/geostyler/node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/geostyler/node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/geostyler/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/geostyler/node_modules/@rc-component/qrcode": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.1.3.tgz", + "integrity": "sha512-aGv6alnn4HbDEsURzKP+jv13rbi1VxmAYfBNZr5GKF1iohMNWy5tAVoJ1E3cOvzMB1kbUPvCXchM6zSFlRGPhA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/geostyler/node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/geostyler/node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/geostyler/node_modules/antd": { + "version": "5.29.3", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.29.3.tgz", + "integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.2.1", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.1.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.3.0", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.34.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.3.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.1", + "rc-image": "~7.12.0", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.4", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.8", + "rc-slider": "~11.1.9", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.54.0", + "rc-tabs": "~15.7.0", + "rc-textarea": "~1.10.2", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.1", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.11.0", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/geostyler/node_modules/geostyler-style": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/geostyler-style/-/geostyler-style-11.1.0.tgz", @@ -21661,6 +22356,12 @@ "url": "https://opencollective.com/geostyler" } }, + "node_modules/geostyler/node_modules/stylis": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz", + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==", + "license": "MIT" + }, "node_modules/geotiff": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-3.0.5.tgz", @@ -26591,29 +27292,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/json-schema-compare": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", - "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.4" - } - }, - "node_modules/json-schema-merge-allof": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", - "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", - "license": "MIT", - "dependencies": { - "compute-lcm": "^1.1.2", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.20" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -31239,6 +31917,7 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "license": "MIT", + "peer": true, "engines": { "node": "*" } @@ -35067,6 +35746,24 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-dialog/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-drawer": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz", @@ -35084,10 +35781,29 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-drawer/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-dropdown": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@rc-component/trigger": "^2.0.0", @@ -35099,10 +35815,49 @@ "react-dom": ">=16.11.0" } }, + "node_modules/rc-dropdown/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown/node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-field-form": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz", - "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.1.tgz", + "integrity": "sha512-vKeSifSJ6HoLaAB+B8aq/Qgm8a3dyxROzCtKNCsBQgiverpc4kWDQihoUwzUj+zNWJOykwSY4dNX3QrGwtVb9A==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.0", @@ -35117,6 +35872,18 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-field-form/node_modules/@rc-component/async-validator": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.1.2.tgz", + "integrity": "sha512-WYbrZSjzznU1ekD0qFq2qRxt309VoS61MTG5npnFQlKYcoy9IzU8T+ZCIhq5bGAXRbXysABFWTspicMfmWFwow==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, "node_modules/rc-image": { "version": "7.12.0", "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", @@ -35135,6 +35902,24 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-image/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-input": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", @@ -35186,6 +35971,45 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-mentions/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions/node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-menu": { "version": "9.16.1", "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", @@ -35204,6 +36028,45 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-menu/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu/node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-motion": { "version": "2.9.5", "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", @@ -35239,9 +36102,9 @@ } }, "node_modules/rc-overflow": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", - "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.5.0.tgz", + "integrity": "sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.11.1", @@ -35308,6 +36171,45 @@ } } }, + "node_modules/rc-picker/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker/node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-progress": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", @@ -35358,9 +36260,9 @@ } }, "node_modules/rc-segmented": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz", - "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.1.tgz", + "integrity": "sha512-izj1Nw/Dw2Vb7EVr+D/E9lUTkBe+kKC+SAFSU9zqr7WV2W5Ktaa9Gc7cB2jTqgk8GROJayltaec+DBlYKc6d+g==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.11.1", @@ -35395,10 +36297,50 @@ "react-dom": "*" } }, + "node_modules/rc-select/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-select/node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-slider": { "version": "11.1.9", "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.9.tgz", "integrity": "sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -35449,6 +36391,7 @@ "version": "7.54.0", "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.54.0.tgz", "integrity": "sha512-/wDTkki6wBTjwylwAGjpLKYklKo9YgjZwAU77+7ME5mBoS32Q4nAwoqhA2lSge6fobLW3Tap6uc5xfwaL2p0Sw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.1", "@rc-component/context": "^1.4.0", @@ -35465,10 +36408,25 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-table/node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-tabs": { "version": "15.7.0", "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.7.0.tgz", "integrity": "sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.11.2", "classnames": "2.x", @@ -35490,6 +36448,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.2.tgz", "integrity": "sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.1", @@ -35518,6 +36477,45 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-tooltip/node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip/node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/rc-tree": { "version": "5.13.1", "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", @@ -35556,9 +36554,9 @@ } }, "node_modules/rc-upload": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.9.2.tgz", - "integrity": "sha512-nHx+9rbd1FKMiMRYsqQ3NkXUv7COHPBo3X1Obwq9SWS6/diF/A0aJ5OHubvwUAIDs+4RMleljV0pcrNUc823GQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.11.0.tgz", + "integrity": "sha512-ZUyT//2JAehfHzjWowqROcwYJKnZkIUGWaTE/VogVrepSl7AFNbQf4+zGfX4zl9Vrj/Jm8scLO0R6UlPDKK4wA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", @@ -35585,9 +36583,9 @@ } }, "node_modules/rc-virtual-list": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.18.1.tgz", - "integrity": "sha512-ARSsD/dey/I4yNQHFYYUaKLUkD1wnD4lRZIvb3rCLMbTMmoFQJRVrWuSfbNt5P5MzMNooEBDvqrUPM4QN7BMNA==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz", + "integrity": "sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", @@ -38306,12 +39304,6 @@ "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", "license": "MIT" }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "license": "MIT" - }, "node_modules/shapefile": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/shapefile/-/shapefile-0.3.1.tgz", @@ -41931,39 +42923,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/validate.io-array": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==", - "license": "MIT" - }, - "node_modules/validate.io-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" - }, - "node_modules/validate.io-integer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", - "dependencies": { - "validate.io-number": "^1.0.3" - } - }, - "node_modules/validate.io-integer-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", - "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-integer": "^1.0.4" - } - }, - "node_modules/validate.io-number": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" - }, "node_modules/value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", @@ -44273,7 +45232,7 @@ "@emotion/styled": "^11.14.1", "@fontsource/ibm-plex-mono": "^5.2.7", "@fontsource/inter": "^5.2.6", - "antd": "^5.26.0", + "antd": "^6.0.0", "jed": "^1.1.1", "lodash": "^4.18.1", "nanoid": "^5.0.9", @@ -44295,7 +45254,7 @@ "tinycolor2": "*" }, "peerDependencies": { - "@ant-design/icons": "^5.6.1", + "@ant-design/icons": "^5.6.1 || ^6.0.0", "@emotion/react": "^11.4.1", "@superset-ui/core": "*", "@testing-library/dom": "^9.3.4", @@ -44391,7 +45350,7 @@ "@types/react-loadable": "*", "@types/react-window": "^1.8.8", "@types/tinycolor2": "*", - "antd": "^5.26.0", + "antd": "^6.0.0", "nanoid": "^5.0.9", "react": "^18.3.0", "react-dom": "^18.3.0", diff --git a/superset-frontend/package.json b/superset-frontend/package.json index 6921ac5739f..99fc1c107fe 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -127,10 +127,9 @@ "@luma.gl/shadertools": "~9.2.5", "@luma.gl/webgl": "~9.2.5", "@reduxjs/toolkit": "^1.9.3", - "@rjsf/antd": "^5.24.13", - "@rjsf/core": "^5.24.13", - "@rjsf/utils": "^5.24.3", - "@rjsf/validator-ajv8": "^5.24.13", + "@rjsf/core": "^6.6.2", + "@rjsf/utils": "^6.6.2", + "@rjsf/validator-ajv8": "^6.6.2", "@scarf/scarf": "^1.4.0", "@superset-ui/chart-controls": "file:./packages/superset-ui-chart-controls", "@superset-ui/core": "file:./packages/superset-ui-core", @@ -166,7 +165,7 @@ "@visx/xychart": "^4.0.0", "ag-grid-community": "35.3.1", "ag-grid-react": "35.3.1", - "antd": "^5.26.0", + "antd": "^6.0.0", "chrono-node": "^2.9.1", "classnames": "^2.2.5", "content-disposition": "^2.0.1", @@ -388,6 +387,9 @@ }, "overrides": { "uuid": "$uuid", + "@great-expectations/jsonforms-antd-renderers": { + "antd": "$antd" + }, "core-js": "^3.38.1", "dompurify": "^3.4.11", "esbuild": "^0.28.1", diff --git a/superset-frontend/packages/superset-core/package.json b/superset-frontend/packages/superset-core/package.json index ddea4ffb3d5..5cc62aa0b2c 100644 --- a/superset-frontend/packages/superset-core/package.json +++ b/superset-frontend/packages/superset-core/package.json @@ -110,7 +110,7 @@ "react-loadable": "^5.5.0", "tinycolor2": "*", "lodash": "^4.18.1", - "antd": "^5.26.0", + "antd": "^6.0.0", "jed": "^1.1.1" }, "scripts": { diff --git a/superset-frontend/packages/superset-core/src/theme/Theme.test.tsx b/superset-frontend/packages/superset-core/src/theme/Theme.test.tsx index 01d18e7483e..b5ee3c86dc8 100644 --- a/superset-frontend/packages/superset-core/src/theme/Theme.test.tsx +++ b/superset-frontend/packages/superset-core/src/theme/Theme.test.tsx @@ -18,7 +18,34 @@ */ import { theme as antdThemeImport } from 'antd'; import { Theme } from './Theme'; -import { AnyThemeConfig, ThemeAlgorithm } from './types'; +import { AnyThemeConfig, ThemeAlgorithm, allowedAntdTokens } from './types'; + +/** + * A fixed, Superset-representative base theme used by the characterization + * tests below. Mirrors the real THEME_DEFAULT token set so the snapshots are + * stable and meaningful. Do NOT churn this casually — it is the baseline the + * Ant Design v6 upgrade is measured against. + */ +const SUPERSET_BASE_THEME: AnyThemeConfig = { + token: { + colorPrimary: '#2893B3', + colorError: '#e04355', + colorWarning: '#fcc700', + colorSuccess: '#5ac189', + colorInfo: '#66bcfe', + fontFamily: "'Inter', Helvetica, Arial", + fontFamilyCode: "'IBM Plex Mono', 'Courier New', monospace", + }, +}; + +/** Collect the computed value of every allow-listed antd token, sorted. */ +function pickAllowedTokens(theme: Theme): Record { + const out: Record = {}; + [...allowedAntdTokens].sort().forEach(key => { + out[key] = (theme.theme as unknown as Record)[key]; + }); + return out; +} // Mock emotion's cache to avoid actual DOM operations jest.mock('@emotion/cache', () => ({ @@ -338,10 +365,10 @@ test('Theme edge cases correctly applies base theme tokens in dark mode', () => algorithm: antdThemeImport.defaultAlgorithm, }; - const baseThemeDark: AnyThemeConfig = { + const baseThemeDark = { ...baseTheme, algorithm: antdThemeImport.darkAlgorithm, - }; + } as AnyThemeConfig; // Simulate light mode with base theme const lightTheme = Theme.fromConfig({}, baseTheme); @@ -473,10 +500,10 @@ test('Theme base theme integration handles base theme with dark algorithm correc }, }; - const baseThemeDark: AnyThemeConfig = { + const baseThemeDark = { ...baseTheme, algorithm: antdThemeImport.darkAlgorithm, - }; + } as AnyThemeConfig; const userDarkTheme: AnyThemeConfig = { algorithm: antdThemeImport.darkAlgorithm, @@ -525,7 +552,7 @@ test('Theme base theme integration works with real-world Superset base theme con const darkTheme = Theme.fromConfig(themeDark, { ...supersetBaseTheme, algorithm: antdThemeImport.darkAlgorithm, - }); + } as AnyThemeConfig); expect(darkTheme.theme.fontFamily).toBe("'Inter', Helvetica, Arial"); const darkSerialized = darkTheme.toSerializedConfig(); @@ -604,7 +631,9 @@ test('Theme base theme integration handles cssVar, hashed and inherit properties // User properties override/add to base expect(serialized.inherit).toBe(true); - expect(serialized.cssVar).toBe(true); + // Ant Design v6 dropped boolean `cssVar`; Superset normalizes `true` to the + // object form `{}` at the antd boundary (CSS variables are on by default). + expect(serialized.cssVar).toEqual({}); expect(serialized.hashed).toBe(false); // Tokens are still merged @@ -909,3 +938,81 @@ test('colorLink is preserved in setConfig when explicitly set', () => { expect(theme.theme.colorPrimary).toBe('#f759ab'); expect(theme.theme.colorLink).toBe('#ff0000'); }); + +// --------------------------------------------------------------------------- +// Characterization tests — theming safety net for the Ant Design v6 upgrade. +// +// These lock the bridge between Superset's theme and Ant Design's design +// tokens (getDesignToken -> allowedAntdTokens -> SupersetTheme). When antd +// renames or removes a token, the completeness tests fail loudly instead of +// letting a token silently resolve to `undefined`, and the snapshots make any +// value drift reviewable. See packages/superset-core/src/theme/types.ts. +// --------------------------------------------------------------------------- + +test('every allowed antd token resolves to a defined value in light mode', () => { + const theme = Theme.fromConfig( + { algorithm: antdThemeImport.defaultAlgorithm }, + SUPERSET_BASE_THEME, + ); + + const missing = allowedAntdTokens.filter( + key => + (theme.theme as unknown as Record)[key] === undefined, + ); + + // A non-empty list means antd dropped/renamed a token we still allow-list. + expect(missing).toEqual([]); +}); + +test('every allowed antd token resolves to a defined value in dark mode', () => { + const theme = Theme.fromConfig( + { algorithm: antdThemeImport.darkAlgorithm }, + SUPERSET_BASE_THEME, + ); + + const missing = allowedAntdTokens.filter( + key => + (theme.theme as unknown as Record)[key] === undefined, + ); + + expect(missing).toEqual([]); +}); + +test('allowed antd token key set is stable', () => { + // Locks the *set* of tokens Superset exposes (independent of their values), + // so additions/removals to allowedAntdTokens are an explicit, reviewed diff. + expect([...allowedAntdTokens].sort()).toMatchSnapshot(); +}); + +test('computed light-mode token values match snapshot', () => { + const theme = Theme.fromConfig( + { algorithm: antdThemeImport.defaultAlgorithm }, + SUPERSET_BASE_THEME, + ); + + expect(pickAllowedTokens(theme)).toMatchSnapshot(); +}); + +test('computed dark-mode token values match snapshot', () => { + const theme = Theme.fromConfig( + { algorithm: antdThemeImport.darkAlgorithm }, + SUPERSET_BASE_THEME, + ); + + expect(pickAllowedTokens(theme)).toMatchSnapshot(); +}); + +test('dark mode actually diverges from light mode for background tokens', () => { + const light = Theme.fromConfig( + { algorithm: antdThemeImport.defaultAlgorithm }, + SUPERSET_BASE_THEME, + ); + const dark = Theme.fromConfig( + { algorithm: antdThemeImport.darkAlgorithm }, + SUPERSET_BASE_THEME, + ); + + // Guards the dark algorithm wiring: base surface and text must invert. + expect(dark.theme.colorBgBase).not.toBe(light.theme.colorBgBase); + expect(dark.theme.colorTextBase).not.toBe(light.theme.colorTextBase); +}); diff --git a/superset-frontend/packages/superset-core/src/theme/__snapshots__/Theme.test.tsx.snap b/superset-frontend/packages/superset-core/src/theme/__snapshots__/Theme.test.tsx.snap new file mode 100644 index 00000000000..c6cef778156 --- /dev/null +++ b/superset-frontend/packages/superset-core/src/theme/__snapshots__/Theme.test.tsx.snap @@ -0,0 +1,730 @@ +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing + +exports[`allowed antd token key set is stable 1`] = ` +[ + "borderRadius", + "borderRadiusLG", + "borderRadiusOuter", + "borderRadiusSM", + "borderRadiusXS", + "boxShadow", + "boxShadowDrawerLeft", + "boxShadowDrawerRight", + "boxShadowDrawerUp", + "boxShadowPopoverArrow", + "boxShadowSecondary", + "boxShadowTabsOverflowBottom", + "boxShadowTabsOverflowLeft", + "boxShadowTabsOverflowRight", + "boxShadowTabsOverflowTop", + "boxShadowTertiary", + "colorBgBase", + "colorBgBlur", + "colorBgContainer", + "colorBgContainerDisabled", + "colorBgElevated", + "colorBgLayout", + "colorBgMask", + "colorBgSpotlight", + "colorBgTextActive", + "colorBgTextHover", + "colorBorder", + "colorBorderBg", + "colorBorderSecondary", + "colorError", + "colorErrorActive", + "colorErrorBg", + "colorErrorBgActive", + "colorErrorBgHover", + "colorErrorBorder", + "colorErrorBorderHover", + "colorErrorHover", + "colorErrorOutline", + "colorErrorText", + "colorErrorTextActive", + "colorErrorTextHover", + "colorFill", + "colorFillAlter", + "colorFillContent", + "colorFillContentHover", + "colorFillQuaternary", + "colorFillSecondary", + "colorFillTertiary", + "colorHighlight", + "colorIcon", + "colorIconHover", + "colorInfo", + "colorInfoActive", + "colorInfoBg", + "colorInfoBgHover", + "colorInfoBorder", + "colorInfoBorderHover", + "colorInfoHover", + "colorInfoText", + "colorInfoTextActive", + "colorInfoTextHover", + "colorLink", + "colorLinkActive", + "colorLinkHover", + "colorPrimary", + "colorPrimaryActive", + "colorPrimaryBg", + "colorPrimaryBgHover", + "colorPrimaryBorder", + "colorPrimaryBorderHover", + "colorPrimaryHover", + "colorPrimaryText", + "colorPrimaryTextActive", + "colorPrimaryTextHover", + "colorSplit", + "colorSuccess", + "colorSuccessActive", + "colorSuccessBg", + "colorSuccessBgHover", + "colorSuccessBorder", + "colorSuccessBorderHover", + "colorSuccessHover", + "colorSuccessText", + "colorSuccessTextActive", + "colorSuccessTextHover", + "colorText", + "colorTextBase", + "colorTextDescription", + "colorTextDisabled", + "colorTextHeading", + "colorTextLabel", + "colorTextLightSolid", + "colorTextPlaceholder", + "colorTextQuaternary", + "colorTextSecondary", + "colorTextTertiary", + "colorWarning", + "colorWarningActive", + "colorWarningBg", + "colorWarningBgHover", + "colorWarningBorder", + "colorWarningBorderHover", + "colorWarningHover", + "colorWarningOutline", + "colorWarningText", + "colorWarningTextActive", + "colorWarningTextHover", + "colorWhite", + "controlHeight", + "controlHeightLG", + "controlHeightSM", + "controlHeightXS", + "controlInteractiveSize", + "controlItemBgActive", + "controlItemBgActiveDisabled", + "controlItemBgActiveHover", + "controlItemBgHover", + "controlOutline", + "controlOutlineWidth", + "controlPaddingHorizontal", + "controlPaddingHorizontalSM", + "controlTmpOutline", + "fontFamily", + "fontFamilyCode", + "fontHeight", + "fontHeightLG", + "fontHeightSM", + "fontSize", + "fontSizeHeading1", + "fontSizeHeading2", + "fontSizeHeading3", + "fontSizeHeading4", + "fontSizeHeading5", + "fontSizeIcon", + "fontSizeLG", + "fontSizeSM", + "fontSizeXL", + "fontWeightStrong", + "lineHeight", + "lineHeightHeading1", + "lineHeightHeading2", + "lineHeightHeading3", + "lineHeightHeading4", + "lineHeightHeading5", + "lineHeightLG", + "lineHeightSM", + "lineType", + "lineWidth", + "lineWidthBold", + "lineWidthFocus", + "linkDecoration", + "linkFocusDecoration", + "linkHoverDecoration", + "margin", + "marginLG", + "marginMD", + "marginSM", + "marginXL", + "marginXS", + "marginXXL", + "marginXXS", + "motion", + "motionBase", + "motionDurationFast", + "motionDurationMid", + "motionDurationSlow", + "motionEaseInBack", + "motionEaseInOut", + "motionEaseInOutCirc", + "motionEaseInQuint", + "motionEaseOut", + "motionEaseOutBack", + "motionEaseOutCirc", + "motionEaseOutQuint", + "motionUnit", + "opacityImage", + "opacityLoading", + "padding", + "paddingContentHorizontal", + "paddingContentHorizontalLG", + "paddingContentHorizontalSM", + "paddingContentVertical", + "paddingContentVerticalLG", + "paddingContentVerticalSM", + "paddingLG", + "paddingMD", + "paddingSM", + "paddingXL", + "paddingXS", + "paddingXXS", + "screenLG", + "screenLGMax", + "screenLGMin", + "screenMD", + "screenMDMax", + "screenMDMin", + "screenSM", + "screenSMMax", + "screenSMMin", + "screenXL", + "screenXLMax", + "screenXLMin", + "screenXS", + "screenXSMax", + "screenXSMin", + "screenXXL", + "screenXXLMin", + "size", + "sizeLG", + "sizeMD", + "sizeMS", + "sizePopupArrow", + "sizeSM", + "sizeStep", + "sizeUnit", + "sizeXL", + "sizeXS", + "sizeXXL", + "sizeXXS", + "wireframe", + "zIndexBase", + "zIndexPopupBase", +] +`; + +exports[`computed dark-mode token values match snapshot 1`] = ` +{ + "borderRadius": 6, + "borderRadiusLG": 8, + "borderRadiusOuter": 4, + "borderRadiusSM": 4, + "borderRadiusXS": 2, + "boxShadow": " + 0 6px 16px 0 rgba(255,255,255,0.016), + 0 3px 6px -4px rgba(255,255,255,0.024), + 0 9px 28px 8px rgba(255,255,255,0.010000000000000002) + ", + "boxShadowDrawerLeft": " + 6px 0 16px 0 rgba(255,255,255,0.016), + 3px 0 6px -4px rgba(255,255,255,0.024), + 9px 0 28px 8px rgba(255,255,255,0.010000000000000002) + ", + "boxShadowDrawerRight": " + -6px 0 16px 0 rgba(255,255,255,0.016), + -3px 0 6px -4px rgba(255,255,255,0.024), + -9px 0 28px 8px rgba(255,255,255,0.010000000000000002) + ", + "boxShadowDrawerUp": " + 0 6px 16px 0 rgba(255,255,255,0.016), + 0 3px 6px -4px rgba(255,255,255,0.024), + 0 9px 28px 8px rgba(255,255,255,0.010000000000000002) + ", + "boxShadowPopoverArrow": "2px 2px 5px rgba(255,255,255,0.010000000000000002)", + "boxShadowSecondary": " + 0 6px 16px 0 rgba(255,255,255,0.016), + 0 3px 6px -4px rgba(255,255,255,0.024), + 0 9px 28px 8px rgba(255,255,255,0.010000000000000002) + ", + "boxShadowTabsOverflowBottom": "inset 0 -10px 8px -8px rgba(255,255,255,0.016)", + "boxShadowTabsOverflowLeft": "inset 10px 0 8px -8px rgba(255,255,255,0.016)", + "boxShadowTabsOverflowRight": "inset -10px 0 8px -8px rgba(255,255,255,0.016)", + "boxShadowTabsOverflowTop": "inset 0 10px 8px -8px rgba(255,255,255,0.016)", + "boxShadowTertiary": " + 0 1px 2px 0 rgba(255,255,255,0.010000000000000002), + 0 1px 6px -1px rgba(255,255,255,0.006), + 0 2px 4px 0 rgba(255,255,255,0.006) + ", + "colorBgBase": "#000", + "colorBgBlur": "rgba(255,255,255,0.04)", + "colorBgContainer": "#141414", + "colorBgContainerDisabled": "rgba(255,255,255,0.08)", + "colorBgElevated": "#1f1f1f", + "colorBgLayout": "#000000", + "colorBgMask": "rgba(0,0,0,0.45)", + "colorBgSpotlight": "#424242", + "colorBgTextActive": "rgba(255,255,255,0.18)", + "colorBgTextHover": "rgba(255,255,255,0.12)", + "colorBorder": "#424242", + "colorBorderBg": "#141414", + "colorBorderSecondary": "#303030", + "colorError": "#e04355", + "colorErrorActive": "#99333e", + "colorErrorBg": "#271619", + "colorErrorBgActive": "#512228", + "colorErrorBgHover": "#3e1b20", + "colorErrorBorder": "#512228", + "colorErrorBorderHover": "#702931", + "colorErrorHover": "#d7646e", + "colorErrorOutline": "rgba(231,42,76,0.09)", + "colorErrorText": "#c13c4b", + "colorErrorTextActive": "#99333e", + "colorErrorTextHover": "#d7646e", + "colorFill": "rgba(255,255,255,0.18)", + "colorFillAlter": "rgba(255,255,255,0.04)", + "colorFillContent": "rgba(255,255,255,0.12)", + "colorFillContentHover": "rgba(255,255,255,0.18)", + "colorFillQuaternary": "rgba(255,255,255,0.04)", + "colorFillSecondary": "rgba(255,255,255,0.12)", + "colorFillTertiary": "rgba(255,255,255,0.08)", + "colorHighlight": "#c13c4b", + "colorIcon": "rgba(255,255,255,0.45)", + "colorIconHover": "rgba(255,255,255,0.85)", + "colorInfo": "#66bcfe", + "colorInfoActive": "#4981ac", + "colorInfoBg": "#19222c", + "colorInfoBgHover": "#223545", + "colorInfoBorder": "#2d465a", + "colorInfoBorderHover": "#39607d", + "colorInfoHover": "#39607d", + "colorInfoText": "#5aa3db", + "colorInfoTextActive": "#4981ac", + "colorInfoTextHover": "#83bfe8", + "colorLink": "#2893B3", + "colorLinkActive": "#21677b", + "colorLinkHover": "#1d4d5c", + "colorPrimary": "#2893B3", + "colorPrimaryActive": "#21677b", + "colorPrimaryBg": "#1a3a44", + "colorPrimaryBgHover": "#1d4d5c", + "colorPrimaryBorder": "#1a3a44", + "colorPrimaryBorderHover": "#1d4d5c", + "colorPrimaryHover": "#4499ae", + "colorPrimaryText": "#25809b", + "colorPrimaryTextActive": "#21677b", + "colorPrimaryTextHover": "#4499ae", + "colorSplit": "rgba(253,253,253,0.12)", + "colorSuccess": "#5ac189", + "colorSuccessActive": "#428460", + "colorSuccessBg": "#17231d", + "colorSuccessBgHover": "#1f362a", + "colorSuccessBorder": "#294837", + "colorSuccessBorderHover": "#346249", + "colorSuccessHover": "#346249", + "colorSuccessText": "#50a777", + "colorSuccessTextActive": "#428460", + "colorSuccessTextHover": "#77bc94", + "colorText": "rgba(255,255,255,0.85)", + "colorTextBase": "#fff", + "colorTextDescription": "rgba(255,255,255,0.45)", + "colorTextDisabled": "rgba(255,255,255,0.25)", + "colorTextHeading": "rgba(255,255,255,0.85)", + "colorTextLabel": "rgba(255,255,255,0.65)", + "colorTextLightSolid": "#fff", + "colorTextPlaceholder": "rgba(255,255,255,0.25)", + "colorTextQuaternary": "rgba(255,255,255,0.25)", + "colorTextSecondary": "rgba(255,255,255,0.65)", + "colorTextTertiary": "rgba(255,255,255,0.45)", + "colorWarning": "#fcc700", + "colorWarningActive": "#ab8807", + "colorWarningBg": "#2b2411", + "colorWarningBgHover": "#45370f", + "colorWarningBorder": "#5a4a0e", + "colorWarningBorderHover": "#7c650b", + "colorWarningHover": "#7c650b", + "colorWarningOutline": "rgba(173,127,0,0.15)", + "colorWarningText": "#d9ac03", + "colorWarningTextActive": "#ab8807", + "colorWarningTextHover": "#e8c427", + "colorWhite": "#fff", + "controlHeight": 32, + "controlHeightLG": 40, + "controlHeightSM": 24, + "controlHeightXS": 16, + "controlInteractiveSize": 16, + "controlItemBgActive": "#1a3a44", + "controlItemBgActiveDisabled": "rgba(255,255,255,0.18)", + "controlItemBgActiveHover": "#1d4d5c", + "controlItemBgHover": "rgba(255,255,255,0.08)", + "controlOutline": "rgba(49,201,249,0.21)", + "controlOutlineWidth": 2, + "controlPaddingHorizontal": 12, + "controlPaddingHorizontalSM": 8, + "controlTmpOutline": "rgba(255,255,255,0.04)", + "fontFamily": "'Inter', Helvetica, Arial", + "fontFamilyCode": "'IBM Plex Mono', 'Courier New', monospace", + "fontHeight": 22, + "fontHeightLG": 24, + "fontHeightSM": 20, + "fontSize": 14, + "fontSizeHeading1": 38, + "fontSizeHeading2": 30, + "fontSizeHeading3": 24, + "fontSizeHeading4": 20, + "fontSizeHeading5": 16, + "fontSizeIcon": 12, + "fontSizeLG": 16, + "fontSizeSM": 12, + "fontSizeXL": 20, + "fontWeightStrong": 600, + "lineHeight": 1.5714285714285714, + "lineHeightHeading1": 1.2105263157894737, + "lineHeightHeading2": 1.2666666666666666, + "lineHeightHeading3": 1.3333333333333333, + "lineHeightHeading4": 1.4, + "lineHeightHeading5": 1.5, + "lineHeightLG": 1.5, + "lineHeightSM": 1.6666666666666667, + "lineType": "solid", + "lineWidth": 1, + "lineWidthBold": 2, + "lineWidthFocus": 3, + "linkDecoration": "none", + "linkFocusDecoration": "none", + "linkHoverDecoration": "none", + "margin": 16, + "marginLG": 24, + "marginMD": 20, + "marginSM": 12, + "marginXL": 32, + "marginXS": 8, + "marginXXL": 48, + "marginXXS": 4, + "motion": true, + "motionBase": 0, + "motionDurationFast": "0.1s", + "motionDurationMid": "0.2s", + "motionDurationSlow": "0.3s", + "motionEaseInBack": "cubic-bezier(0.71, -0.46, 0.88, 0.6)", + "motionEaseInOut": "cubic-bezier(0.645, 0.045, 0.355, 1)", + "motionEaseInOutCirc": "cubic-bezier(0.78, 0.14, 0.15, 0.86)", + "motionEaseInQuint": "cubic-bezier(0.755, 0.05, 0.855, 0.06)", + "motionEaseOut": "cubic-bezier(0.215, 0.61, 0.355, 1)", + "motionEaseOutBack": "cubic-bezier(0.12, 0.4, 0.29, 1.46)", + "motionEaseOutCirc": "cubic-bezier(0.08, 0.82, 0.17, 1)", + "motionEaseOutQuint": "cubic-bezier(0.23, 1, 0.32, 1)", + "motionUnit": 0.1, + "opacityImage": 1, + "opacityLoading": 0.65, + "padding": 16, + "paddingContentHorizontal": 16, + "paddingContentHorizontalLG": 24, + "paddingContentHorizontalSM": 16, + "paddingContentVertical": 12, + "paddingContentVerticalLG": 16, + "paddingContentVerticalSM": 8, + "paddingLG": 24, + "paddingMD": 20, + "paddingSM": 12, + "paddingXL": 32, + "paddingXS": 8, + "paddingXXS": 4, + "screenLG": 992, + "screenLGMax": 1199, + "screenLGMin": 992, + "screenMD": 768, + "screenMDMax": 991, + "screenMDMin": 768, + "screenSM": 576, + "screenSMMax": 767, + "screenSMMin": 576, + "screenXL": 1200, + "screenXLMax": 1599, + "screenXLMin": 1200, + "screenXS": 480, + "screenXSMax": 575, + "screenXSMin": 480, + "screenXXL": 1600, + "screenXXLMin": 1600, + "size": 16, + "sizeLG": 24, + "sizeMD": 20, + "sizeMS": 16, + "sizePopupArrow": 16, + "sizeSM": 12, + "sizeStep": 4, + "sizeUnit": 4, + "sizeXL": 32, + "sizeXS": 8, + "sizeXXL": 48, + "sizeXXS": 4, + "wireframe": false, + "zIndexBase": 0, + "zIndexPopupBase": 1000, +} +`; + +exports[`computed light-mode token values match snapshot 1`] = ` +{ + "borderRadius": 6, + "borderRadiusLG": 8, + "borderRadiusOuter": 4, + "borderRadiusSM": 4, + "borderRadiusXS": 2, + "boxShadow": " + 0 6px 16px 0 rgba(0,0,0,0.08), + 0 3px 6px -4px rgba(0,0,0,0.12), + 0 9px 28px 8px rgba(0,0,0,0.05) + ", + "boxShadowDrawerLeft": " + 6px 0 16px 0 rgba(0,0,0,0.08), + 3px 0 6px -4px rgba(0,0,0,0.12), + 9px 0 28px 8px rgba(0,0,0,0.05) + ", + "boxShadowDrawerRight": " + -6px 0 16px 0 rgba(0,0,0,0.08), + -3px 0 6px -4px rgba(0,0,0,0.12), + -9px 0 28px 8px rgba(0,0,0,0.05) + ", + "boxShadowDrawerUp": " + 0 6px 16px 0 rgba(0,0,0,0.08), + 0 3px 6px -4px rgba(0,0,0,0.12), + 0 9px 28px 8px rgba(0,0,0,0.05) + ", + "boxShadowPopoverArrow": "2px 2px 5px rgba(0,0,0,0.05)", + "boxShadowSecondary": " + 0 6px 16px 0 rgba(0,0,0,0.08), + 0 3px 6px -4px rgba(0,0,0,0.12), + 0 9px 28px 8px rgba(0,0,0,0.05) + ", + "boxShadowTabsOverflowBottom": "inset 0 -10px 8px -8px rgba(0,0,0,0.08)", + "boxShadowTabsOverflowLeft": "inset 10px 0 8px -8px rgba(0,0,0,0.08)", + "boxShadowTabsOverflowRight": "inset -10px 0 8px -8px rgba(0,0,0,0.08)", + "boxShadowTabsOverflowTop": "inset 0 10px 8px -8px rgba(0,0,0,0.08)", + "boxShadowTertiary": " + 0 1px 2px 0 rgba(0,0,0,0.05), + 0 1px 6px -1px rgba(0,0,0,0.03), + 0 2px 4px 0 rgba(0,0,0,0.03) + ", + "colorBgBase": "#fff", + "colorBgBlur": "transparent", + "colorBgContainer": "#ffffff", + "colorBgContainerDisabled": "rgba(0,0,0,0.04)", + "colorBgElevated": "#ffffff", + "colorBgLayout": "#f5f5f5", + "colorBgMask": "rgba(0,0,0,0.45)", + "colorBgSpotlight": "rgba(0,0,0,0.85)", + "colorBgTextActive": "rgba(0,0,0,0.15)", + "colorBgTextHover": "rgba(0,0,0,0.06)", + "colorBorder": "#d9d9d9", + "colorBorderBg": "#ffffff", + "colorBorderSecondary": "#f0f0f0", + "colorError": "#e04355", + "colorErrorActive": "#ba2f43", + "colorErrorBg": "#fff0f0", + "colorErrorBgActive": "#ffc7c8", + "colorErrorBgHover": "#fff0f0", + "colorErrorBorder": "#ffc7c8", + "colorErrorBorderHover": "#fa9ba0", + "colorErrorHover": "#ed6d78", + "colorErrorOutline": "rgba(255,5,5,0.06)", + "colorErrorText": "#e04355", + "colorErrorTextActive": "#ba2f43", + "colorErrorTextHover": "#ed6d78", + "colorFill": "rgba(0,0,0,0.15)", + "colorFillAlter": "rgba(0,0,0,0.02)", + "colorFillContent": "rgba(0,0,0,0.06)", + "colorFillContentHover": "rgba(0,0,0,0.15)", + "colorFillQuaternary": "rgba(0,0,0,0.02)", + "colorFillSecondary": "rgba(0,0,0,0.06)", + "colorFillTertiary": "rgba(0,0,0,0.04)", + "colorHighlight": "#e04355", + "colorIcon": "rgba(0,0,0,0.45)", + "colorIconHover": "rgba(0,0,0,0.88)", + "colorInfo": "#66bcfe", + "colorInfoActive": "#4c97d9", + "colorInfoBg": "#f0fbff", + "colorInfoBgHover": "#f0faff", + "colorInfoBorder": "#e0f5ff", + "colorInfoBorderHover": "#b8e5ff", + "colorInfoHover": "#b8e5ff", + "colorInfoText": "#66bcfe", + "colorInfoTextActive": "#4c97d9", + "colorInfoTextHover": "#8fd2ff", + "colorLink": "#2893B3", + "colorLinkActive": "#186d8c", + "colorLinkHover": "#6ebccc", + "colorPrimary": "#2893B3", + "colorPrimaryActive": "#186d8c", + "colorPrimaryBg": "#e4f1f2", + "colorPrimaryBgHover": "#c5e2e6", + "colorPrimaryBorder": "#98d0d9", + "colorPrimaryBorderHover": "#6ebccc", + "colorPrimaryHover": "#49a8bf", + "colorPrimaryText": "#2893b3", + "colorPrimaryTextActive": "#186d8c", + "colorPrimaryTextHover": "#49a8bf", + "colorSplit": "rgba(5,5,5,0.06)", + "colorSuccess": "#5ac189", + "colorSuccessActive": "#419c6d", + "colorSuccessBg": "#f0fff4", + "colorSuccessBgHover": "#e6f5eb", + "colorSuccessBorder": "#dae8df", + "colorSuccessBorderHover": "#addbbf", + "colorSuccessHover": "#addbbf", + "colorSuccessText": "#5ac189", + "colorSuccessTextActive": "#419c6d", + "colorSuccessTextHover": "#82cfa2", + "colorText": "rgba(0,0,0,0.88)", + "colorTextBase": "#000", + "colorTextDescription": "rgba(0,0,0,0.45)", + "colorTextDisabled": "rgba(0,0,0,0.25)", + "colorTextHeading": "rgba(0,0,0,0.88)", + "colorTextLabel": "rgba(0,0,0,0.65)", + "colorTextLightSolid": "#fff", + "colorTextPlaceholder": "rgba(0,0,0,0.25)", + "colorTextQuaternary": "rgba(0,0,0,0.25)", + "colorTextSecondary": "rgba(0,0,0,0.65)", + "colorTextTertiary": "rgba(0,0,0,0.45)", + "colorWarning": "#fcc700", + "colorWarningActive": "#d6a100", + "colorWarningBg": "#fffee6", + "colorWarningBgHover": "#fff7a3", + "colorWarningBorder": "#fff07a", + "colorWarningBorderHover": "#ffe552", + "colorWarningHover": "#ffe552", + "colorWarningOutline": "rgba(255,245,5,0.1)", + "colorWarningText": "#fcc700", + "colorWarningTextActive": "#d6a100", + "colorWarningTextHover": "#ffd829", + "colorWhite": "#fff", + "controlHeight": 32, + "controlHeightLG": 40, + "controlHeightSM": 24, + "controlHeightXS": 16, + "controlInteractiveSize": 16, + "controlItemBgActive": "#e4f1f2", + "controlItemBgActiveDisabled": "rgba(0,0,0,0.15)", + "controlItemBgActiveHover": "#c5e2e6", + "controlItemBgHover": "rgba(0,0,0,0.04)", + "controlOutline": "rgba(10,128,137,0.11)", + "controlOutlineWidth": 2, + "controlPaddingHorizontal": 12, + "controlPaddingHorizontalSM": 8, + "controlTmpOutline": "rgba(0,0,0,0.02)", + "fontFamily": "'Inter', Helvetica, Arial", + "fontFamilyCode": "'IBM Plex Mono', 'Courier New', monospace", + "fontHeight": 22, + "fontHeightLG": 24, + "fontHeightSM": 20, + "fontSize": 14, + "fontSizeHeading1": 38, + "fontSizeHeading2": 30, + "fontSizeHeading3": 24, + "fontSizeHeading4": 20, + "fontSizeHeading5": 16, + "fontSizeIcon": 12, + "fontSizeLG": 16, + "fontSizeSM": 12, + "fontSizeXL": 20, + "fontWeightStrong": 600, + "lineHeight": 1.5714285714285714, + "lineHeightHeading1": 1.2105263157894737, + "lineHeightHeading2": 1.2666666666666666, + "lineHeightHeading3": 1.3333333333333333, + "lineHeightHeading4": 1.4, + "lineHeightHeading5": 1.5, + "lineHeightLG": 1.5, + "lineHeightSM": 1.6666666666666667, + "lineType": "solid", + "lineWidth": 1, + "lineWidthBold": 2, + "lineWidthFocus": 3, + "linkDecoration": "none", + "linkFocusDecoration": "none", + "linkHoverDecoration": "none", + "margin": 16, + "marginLG": 24, + "marginMD": 20, + "marginSM": 12, + "marginXL": 32, + "marginXS": 8, + "marginXXL": 48, + "marginXXS": 4, + "motion": true, + "motionBase": 0, + "motionDurationFast": "0.1s", + "motionDurationMid": "0.2s", + "motionDurationSlow": "0.3s", + "motionEaseInBack": "cubic-bezier(0.71, -0.46, 0.88, 0.6)", + "motionEaseInOut": "cubic-bezier(0.645, 0.045, 0.355, 1)", + "motionEaseInOutCirc": "cubic-bezier(0.78, 0.14, 0.15, 0.86)", + "motionEaseInQuint": "cubic-bezier(0.755, 0.05, 0.855, 0.06)", + "motionEaseOut": "cubic-bezier(0.215, 0.61, 0.355, 1)", + "motionEaseOutBack": "cubic-bezier(0.12, 0.4, 0.29, 1.46)", + "motionEaseOutCirc": "cubic-bezier(0.08, 0.82, 0.17, 1)", + "motionEaseOutQuint": "cubic-bezier(0.23, 1, 0.32, 1)", + "motionUnit": 0.1, + "opacityImage": 1, + "opacityLoading": 0.65, + "padding": 16, + "paddingContentHorizontal": 16, + "paddingContentHorizontalLG": 24, + "paddingContentHorizontalSM": 16, + "paddingContentVertical": 12, + "paddingContentVerticalLG": 16, + "paddingContentVerticalSM": 8, + "paddingLG": 24, + "paddingMD": 20, + "paddingSM": 12, + "paddingXL": 32, + "paddingXS": 8, + "paddingXXS": 4, + "screenLG": 992, + "screenLGMax": 1199, + "screenLGMin": 992, + "screenMD": 768, + "screenMDMax": 991, + "screenMDMin": 768, + "screenSM": 576, + "screenSMMax": 767, + "screenSMMin": 576, + "screenXL": 1200, + "screenXLMax": 1599, + "screenXLMin": 1200, + "screenXS": 480, + "screenXSMax": 575, + "screenXSMin": 480, + "screenXXL": 1600, + "screenXXLMin": 1600, + "size": 16, + "sizeLG": 24, + "sizeMD": 20, + "sizeMS": 16, + "sizePopupArrow": 16, + "sizeSM": 12, + "sizeStep": 4, + "sizeUnit": 4, + "sizeXL": 32, + "sizeXS": 8, + "sizeXXL": 48, + "sizeXXS": 4, + "wireframe": false, + "zIndexBase": 0, + "zIndexPopupBase": 1000, +} +`; diff --git a/superset-frontend/packages/superset-core/src/theme/utils/index.ts b/superset-frontend/packages/superset-core/src/theme/utils/index.ts index f5a8555567a..dbc743278d0 100644 --- a/superset-frontend/packages/superset-core/src/theme/utils/index.ts +++ b/superset-frontend/packages/superset-core/src/theme/utils/index.ts @@ -48,7 +48,7 @@ export function isSerializableConfig( export function deserializeThemeConfig( config: SerializableThemeConfig, ): AntdThemeConfig { - const { algorithm, ...rest } = config; + const { algorithm, cssVar, ...rest } = config; const algorithmMap: Record = { default: antdThemeImport.defaultAlgorithm, dark: antdThemeImport.darkAlgorithm, @@ -74,9 +74,17 @@ export function deserializeThemeConfig( resolvedAlgorithm = antdThemeImport.defaultAlgorithm; } + // Ant Design v6 dropped `boolean` from ThemeConfig['cssVar'] (it is now + // object-only, and CSS variables are enabled by default). Superset keeps a + // boolean-friendly serializable API, so coerce at the antd boundary: + // `true` -> `{}` (defaults), `false`/undefined -> omit (antd default). + const normalizedCssVar = + typeof cssVar === 'boolean' ? (cssVar ? {} : undefined) : cssVar; + return { ...rest, algorithm: resolvedAlgorithm, + ...(normalizedCssVar !== undefined ? { cssVar: normalizedCssVar } : {}), }; } diff --git a/superset-frontend/packages/superset-ui-chart-controls/package.json b/superset-frontend/packages/superset-ui-chart-controls/package.json index cb07a5dcb49..40125692e51 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/package.json +++ b/superset-frontend/packages/superset-ui-chart-controls/package.json @@ -31,7 +31,7 @@ "lodash-es": "^4.17.21" }, "peerDependencies": { - "@ant-design/icons": "^5.6.1", + "@ant-design/icons": "^5.6.1 || ^6.0.0", "@emotion/react": "^11.4.1", "@superset-ui/core": "*", "@testing-library/dom": "^9.3.4", diff --git a/superset-frontend/packages/superset-ui-core/package.json b/superset-frontend/packages/superset-ui-core/package.json index e52474c877a..1ddb561deb7 100644 --- a/superset-frontend/packages/superset-ui-core/package.json +++ b/superset-frontend/packages/superset-ui-core/package.json @@ -100,7 +100,7 @@ "@types/react-loadable": "*", "@types/react-window": "^1.8.8", "@types/tinycolor2": "*", - "antd": "^5.26.0", + "antd": "^6.0.0", "nanoid": "^5.0.9", "react": "^18.3.0", "react-dom": "^18.3.0", diff --git a/superset-frontend/packages/superset-ui-core/src/components/Collapse/Collapse.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/Collapse/Collapse.test.tsx index 664215d88ad..d474f5169a1 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/Collapse/Collapse.test.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/Collapse/Collapse.test.tsx @@ -82,8 +82,10 @@ test('collapses on click', async () => { await userEvent.click(screen.getAllByRole('button')[0]); - expect(screen.getByText('Content 1').parentNode).toHaveClass( - 'ant-collapse-content-hidden', + // antd v6 moved the hidden state to the panel wrapper element + // (ant-collapse-panel-hidden) instead of the content wrapper. + expect(screen.getByText('Content 1').parentElement).toHaveClass( + 'ant-collapse-panel-hidden', ); expect(screen.queryByText('Content 2')).not.toBeInTheDocument(); }); diff --git a/superset-frontend/packages/superset-ui-core/src/components/CronPicker/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/CronPicker/index.tsx index 7b4f1f68b5a..cc94891910b 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/CronPicker/index.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/CronPicker/index.tsx @@ -175,7 +175,7 @@ export const CronPicker = styled((props: CronProps) => ( .react-js-cron-select.ant-select { width: 100%; - .ant-select-selector { + .ant-select-content { flex-wrap: nowrap; } } diff --git a/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.tsx b/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.tsx index f1cb71e2c35..b148c8fb29c 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.tsx @@ -361,7 +361,8 @@ export const DropdownContainer = forwardRef( `container` + container: { maxHeight: `${MAX_HEIGHT}px`, overflow: showOverflow ? 'auto' : 'visible', }, diff --git a/superset-frontend/packages/superset-ui-core/src/components/Label/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Label/index.tsx index b27bd4c2d3b..05371b75235 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/Label/index.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/Label/index.tsx @@ -76,7 +76,27 @@ export const Label = forwardRef((props, ref) => { onClick={onClick} role={onClick ? 'button' : undefined} style={style} - icon={icon} + /* + * Ant Design v6's Tag clones the `icon` element and overrides its inline + * `style` (see antd/es/tag: cloneElement(icon, { style: mergedStyles.icon })), + * which would drop the icon's own color/size. Wrapping the icon in a span + * lets Tag override the (empty) wrapper style while the real icon keeps its + * own inline styling. + */ + icon={ + icon ? ( + + {icon} + + ) : ( + icon + ) + } css={labelStyles} {...rest} > diff --git a/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/PageHeaderWithActions.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/PageHeaderWithActions.test.tsx index faff4bfafe5..2a3d17c9a55 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/PageHeaderWithActions.test.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/PageHeaderWithActions.test.tsx @@ -41,7 +41,7 @@ const defaultProps: PageHeaderWithActionsProps = { data-test="additional-actions-menu" /> ), - menuDropdownProps: { onVisibleChange: jest.fn(), visible: true }, + menuDropdownProps: { onOpenChange: jest.fn(), open: true }, }; test('Renders', async () => { @@ -52,5 +52,5 @@ test('Renders', async () => { expect(screen.getByText('Save')).toBeVisible(); await userEvent.click(screen.getByLabelText('Menu actions trigger')); - expect(defaultProps.menuDropdownProps.onVisibleChange).toHaveBeenCalled(); + expect(defaultProps.menuDropdownProps.onOpenChange).toHaveBeenCalled(); }); diff --git a/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.test.tsx index c2ecee904db..b774c12acfc 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.test.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.test.tsx @@ -119,10 +119,22 @@ const findAllSelectOptions = () => waitFor(() => getElementsByClassName('.ant-select-item-option-content')); const findSelectValue = () => - waitFor(() => getElementByClassName('.ant-select-selection-item')); + // antd v6: single-mode value is `.ant-select-content-has-value`, multiple-mode + // tags remain `.ant-select-selection-item`. + waitFor(() => + getElementByClassName( + '.ant-select-content-has-value, .ant-select-selection-item', + ), + ); const findAllSelectValues = () => - waitFor(() => getElementsByClassName('.ant-select-selection-item')); + // antd v6: multiple-mode tags keep `.ant-select-selection-item`, single-mode + // value is `.ant-select-content-has-value`. + waitFor(() => + getElementsByClassName( + '.ant-select-selection-item, .ant-select-content-has-value', + ), + ); const clearAll = () => userEvent.click(screen.getByLabelText('close-circle')); @@ -381,7 +393,7 @@ test('searches for custom fields', async () => { test('removes duplicated values', async () => { render(); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { getData: () => 'a,b,b,b,c,d,d', @@ -814,7 +826,7 @@ test('Renders only an overflow tag if dropdown is open in oneLine mode', async ( ); await open(); - const withinSelector = within(getElementByClassName('.ant-select-selector')); + const withinSelector = within(getElementByClassName('.ant-select-content')); await waitFor(() => { expect( withinSelector.queryByText(OPTIONS[0].label), @@ -887,7 +899,7 @@ test('fires onChange when pasting a selection', async () => { const onChange = jest.fn(); render(); await open(); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { getData: () => OPTIONS[0].label, @@ -1164,7 +1176,7 @@ test('keeps loading indicator while a newer request is in flight after a stale r }); const isSpinnerVisible = (): boolean => - Boolean(document.querySelector('.ant-select-arrow .ant-spin')); + Boolean(document.querySelector('.ant-select-suffix .ant-spin')); try { render(); @@ -1312,7 +1324,7 @@ test('appends page>1 results during an active search and discards them when sear // Wait for loading to finish so handlePagination's `!isLoading` gate is // open before we fire scroll. await waitFor(() => - expect(document.querySelector('.ant-select-arrow .ant-spin')).toBeNull(), + expect(document.querySelector('.ant-select-suffix .ant-spin')).toBeNull(), ); // Trigger pagination by dispatching a scroll event on the virtual-list @@ -1392,7 +1404,7 @@ test('pasting an existing option does not duplicate it', async () => { })); render(); await open(); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { getData: () => OPTIONS[0].label, @@ -1420,7 +1432,7 @@ test('pasting an existing option does not duplicate it in multiple mode', async />, ); await open(); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { getData: () => 'John,Liam,Peter', @@ -1442,7 +1454,7 @@ test('pasting an non-existent option should not add it if allowNewOptions is fal />, ); await open(); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { getData: () => 'John', @@ -1456,7 +1468,7 @@ test('onChange is called with the value property when pasting an option that was const onChange = jest.fn(); render(); await open(); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const lastOption = OPTIONS[OPTIONS.length - 1]; const paste = createEvent.paste(input, { clipboardData: { diff --git a/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.tsx b/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.tsx index 4104911fc12..012df9cbaaf 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.tsx @@ -675,7 +675,14 @@ const AsyncSelect = forwardRef( setSelectValue(value); } } else { - const token = tokenSeparators.find(token => pastedText.includes(token)); + // antd v6 widened `tokenSeparators` to `string[] | (input => string[])`; + // Superset always uses the array form. + const separators = Array.isArray(tokenSeparators) + ? tokenSeparators + : []; + const token = separators.find((token: string) => + pastedText.includes(token), + ); const array = token ? uniq(pastedText.split(token)) : [pastedText]; const values = ( await Promise.all(array.map(item => getPastedTextValue(item))) @@ -730,7 +737,11 @@ const AsyncSelect = forwardRef( showSearch={allowNewOptions ? true : showSearch} tokenSeparators={tokenSeparators} value={selectValue} - suffixIcon={getSuffixIcon(isLoading, showSearch, isDropdownVisible)} + suffixIcon={getSuffixIcon( + isLoading, + Boolean(showSearch), + isDropdownVisible, + )} menuItemSelectedIcon={ invertSelection ? ( diff --git a/superset-frontend/packages/superset-ui-core/src/components/Select/Select.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/Select/Select.test.tsx index 417bd969f88..a8a4b2cee22 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/Select/Select.test.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/Select/Select.test.tsx @@ -108,10 +108,22 @@ const findAllSelectOptions = () => waitFor(() => getElementsByClassName('.ant-select-item-option-content')); const findSelectValue = () => - waitFor(() => getElementByClassName('.ant-select-selection-item')); + // antd v6: single-mode value is `.ant-select-content-has-value`, multiple-mode + // tags remain `.ant-select-selection-item`. + waitFor(() => + getElementByClassName( + '.ant-select-content-has-value, .ant-select-selection-item', + ), + ); const findAllSelectValues = () => - waitFor(() => [...getElementsByClassName('.ant-select-selection-item')]); + // antd v6: multiple-mode tags keep `.ant-select-selection-item`, single-mode + // value is `.ant-select-content-has-value`. + waitFor(() => [ + ...getElementsByClassName( + '.ant-select-selection-item, .ant-select-content-has-value', + ), + ]); const clearAll = () => userEvent.click(screen.getByLabelText('close-circle')); @@ -363,7 +375,7 @@ test('searches for custom fields', async () => { test('removes duplicated values', async () => { render(); await open(); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { getData: () => OPTIONS[0].label, @@ -1096,7 +1106,7 @@ test('does not duplicate options when using numeric values', async () => { test('pasting an existing option does not duplicate it', async () => { render(); await open(); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { getData: () => 'John', @@ -1162,7 +1172,7 @@ test('keeps pasted values outside loaded options when allowNewOptionsOnPaste is onChange={onChange} />, ); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { // Liam is a loaded option; OutsideValue is not in the loaded page. @@ -1198,7 +1208,7 @@ test('trims whitespace around pasted comma-separated values', async () => { onChange={onChange} />, ); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { // Note the space after the comma — it must not leak into the value. @@ -1231,7 +1241,7 @@ test('does not create an empty option when pasting blank text', async () => { onChange={onChange} />, ); - const input = getElementByClassName('.ant-select-selection-search-input'); + const input = getElementByClassName('.ant-select-input'); const paste = createEvent.paste(input, { clipboardData: { getData: () => ' ', @@ -1252,7 +1262,7 @@ test('does not create an empty option when pasting blank text', async () => { test('drops pasted values outside loaded options when allowNewOptionsOnPaste is false', async () => { render(