diff --git a/.github/workflows/bundle-size.yml b/.github/workflows/bundle-size.yml index dedb3cb060..1c38925388 100644 --- a/.github/workflows/bundle-size.yml +++ b/.github/workflows/bundle-size.yml @@ -141,12 +141,11 @@ jobs: const message = `${(pr / 1000).toFixed(1)} KB (${sign}${increasePercent} % / ${sign}${increaseKb} KB in this pull request)` - const name = "Bundle size"; await github.rest.repos.createCommitStatus({ owner: context.repo.owner, repo: context.repo.repo, sha: context.payload.pull_request.head.sha, - context: name, + context: "Bundle size", state: 'success', description: message, target_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}` @@ -163,7 +162,7 @@ jobs: owner: context.repo.owner, repo: context.repo.repo, sha: context.payload.pull_request.head.sha, - context: name, + context: "Bundle size", state: 'error', description: "The workflow encountered an error.", target_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}` diff --git a/.github/workflows/bundle-size/package-lock.json b/.github/workflows/bundle-size/package-lock.json index ff16e7e9d4..25e258f7d4 100644 --- a/.github/workflows/bundle-size/package-lock.json +++ b/.github/workflows/bundle-size/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "bundle-size-test-project", "version": "0.0.0", + "hasInstallScript": true, "dependencies": { "@cloudscape-design/components": "*", "@vitejs/plugin-react": "^4.0.0", @@ -344,72 +345,6 @@ "node": ">=6.9.0" } }, - "node_modules/@cloudscape-design/collection-hooks": { - "version": "1.0.21", - "resolved": "https://registry.npmjs.org/@cloudscape-design/collection-hooks/-/collection-hooks-1.0.21.tgz", - "integrity": "sha512-H2svaXsqHK/XX2CAgU0hxIqiiAh3rvlG490DpNHGbQ8ouXCURc8Hz0Hws+DbZ/etEczpyW44uBBO6xfIXE41iQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@cloudscape-design/component-toolkit": { - "version": "1.0.0-beta.14", - "resolved": "https://registry.npmjs.org/@cloudscape-design/component-toolkit/-/component-toolkit-1.0.0-beta.14.tgz", - "integrity": "sha512-FUncISDyZJMOuuFDFzzXUdrew+deTpF7oJeox34b9Xm69L7fJYQV5mOkKckFW5/lnE52n3pENfU5hLb+ic+baw==", - "dependencies": { - "@juggle/resize-observer": "^3.3.1", - "tslib": "^2.3.1" - } - }, - "node_modules/@cloudscape-design/components": { - "version": "3.0.306", - "resolved": "https://registry.npmjs.org/@cloudscape-design/components/-/components-3.0.306.tgz", - "integrity": "sha512-zNOaIohtn2ZrH6O8h1CtNjUJ4VrTd4h7d5psOUtGuLV7RKojl1UsJ8eXAGzbCYi3dPte/UdDjmnoB3WwIEEZBw==", - "dependencies": { - "@cloudscape-design/collection-hooks": "^1.0.0", - "@cloudscape-design/component-toolkit": "^1.0.0-beta", - "@cloudscape-design/test-utils-core": "^1.0.0", - "@cloudscape-design/theming-runtime": "^1.0.0", - "@dnd-kit/core": "^6.0.8", - "@dnd-kit/sortable": "^7.0.2", - "@dnd-kit/utilities": "^3.2.1", - "@juggle/resize-observer": "^3.3.1", - "ace-builds": "^1.4.13", - "balanced-match": "^1.0.2", - "clsx": "^1.1.0", - "d3-shape": "^1.3.7", - "date-fns": "^2.25.0", - "intl-messageformat": "^10.3.1", - "mnth": "^2.0.0", - "react-focus-lock": "~2.8.1", - "react-keyed-flatten-children": "^1.3.0", - "react-transition-group": "^4.4.2", - "react-virtual": "^2.8.2", - "tslib": "^2.4.0", - "weekstart": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17 || ^18", - "react-dom": "^16.8 || ^17 || ^18" - } - }, - "node_modules/@cloudscape-design/test-utils-core": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@cloudscape-design/test-utils-core/-/test-utils-core-1.0.10.tgz", - "integrity": "sha512-JScy8oujpinTwyPcF0JA1fhxbinvaJANuHjWeVeE63WW3/oum+30Q7f96yJu3sGOlEbCJ3EQ/rpWgaBoE9pq7Q==", - "dependencies": { - "css-selector-tokenizer": "^0.8.0", - "css.escape": "^1.5.1" - } - }, - "node_modules/@cloudscape-design/theming-runtime": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/@cloudscape-design/theming-runtime/-/theming-runtime-1.0.17.tgz", - "integrity": "sha512-vgZ3D3lp3m/48/rfifZNtjNozZ43SO4zWkhHN6jNua/TattCfJo8WqURbNUwh7KDSsJOdls7Ni0HQvl9GzJXJQ==", - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@dnd-kit/accessibility": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.0.1.tgz", @@ -1522,9 +1457,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -1936,66 +1871,6 @@ "to-fast-properties": "^2.0.0" } }, - "@cloudscape-design/collection-hooks": { - "version": "1.0.21", - "resolved": "https://registry.npmjs.org/@cloudscape-design/collection-hooks/-/collection-hooks-1.0.21.tgz", - "integrity": "sha512-H2svaXsqHK/XX2CAgU0hxIqiiAh3rvlG490DpNHGbQ8ouXCURc8Hz0Hws+DbZ/etEczpyW44uBBO6xfIXE41iQ==", - "requires": {} - }, - "@cloudscape-design/component-toolkit": { - "version": "1.0.0-beta.14", - "resolved": "https://registry.npmjs.org/@cloudscape-design/component-toolkit/-/component-toolkit-1.0.0-beta.14.tgz", - "integrity": "sha512-FUncISDyZJMOuuFDFzzXUdrew+deTpF7oJeox34b9Xm69L7fJYQV5mOkKckFW5/lnE52n3pENfU5hLb+ic+baw==", - "requires": { - "@juggle/resize-observer": "^3.3.1", - "tslib": "^2.3.1" - } - }, - "@cloudscape-design/components": { - "version": "3.0.306", - "resolved": "https://registry.npmjs.org/@cloudscape-design/components/-/components-3.0.306.tgz", - "integrity": "sha512-zNOaIohtn2ZrH6O8h1CtNjUJ4VrTd4h7d5psOUtGuLV7RKojl1UsJ8eXAGzbCYi3dPte/UdDjmnoB3WwIEEZBw==", - "requires": { - "@cloudscape-design/collection-hooks": "^1.0.0", - "@cloudscape-design/component-toolkit": "^1.0.0-beta", - "@cloudscape-design/test-utils-core": "^1.0.0", - "@cloudscape-design/theming-runtime": "^1.0.0", - "@dnd-kit/core": "^6.0.8", - "@dnd-kit/sortable": "^7.0.2", - "@dnd-kit/utilities": "^3.2.1", - "@juggle/resize-observer": "^3.3.1", - "ace-builds": "^1.4.13", - "balanced-match": "^1.0.2", - "clsx": "^1.1.0", - "d3-shape": "^1.3.7", - "date-fns": "^2.25.0", - "intl-messageformat": "^10.3.1", - "mnth": "^2.0.0", - "react-focus-lock": "~2.8.1", - "react-keyed-flatten-children": "^1.3.0", - "react-transition-group": "^4.4.2", - "react-virtual": "^2.8.2", - "tslib": "^2.4.0", - "weekstart": "^1.1.0" - } - }, - "@cloudscape-design/test-utils-core": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@cloudscape-design/test-utils-core/-/test-utils-core-1.0.10.tgz", - "integrity": "sha512-JScy8oujpinTwyPcF0JA1fhxbinvaJANuHjWeVeE63WW3/oum+30Q7f96yJu3sGOlEbCJ3EQ/rpWgaBoE9pq7Q==", - "requires": { - "css-selector-tokenizer": "^0.8.0", - "css.escape": "^1.5.1" - } - }, - "@cloudscape-design/theming-runtime": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/@cloudscape-design/theming-runtime/-/theming-runtime-1.0.17.tgz", - "integrity": "sha512-vgZ3D3lp3m/48/rfifZNtjNozZ43SO4zWkhHN6jNua/TattCfJo8WqURbNUwh7KDSsJOdls7Ni0HQvl9GzJXJQ==", - "requires": { - "tslib": "^2.4.0" - } - }, "@dnd-kit/accessibility": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.0.1.tgz", @@ -2706,9 +2581,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "source-map-js": { "version": "1.0.2", diff --git a/.github/workflows/bundle-size/package.json b/.github/workflows/bundle-size/package.json index 6adaf36f7e..cb19638d4f 100644 --- a/.github/workflows/bundle-size/package.json +++ b/.github/workflows/bundle-size/package.json @@ -4,7 +4,8 @@ "version": "0.0.0", "type": "module", "scripts": { - "build": "node build.js" + "build": "node build.js", + "preinstall": "node ./unlock-package-lock.cjs" }, "dependencies": { "@cloudscape-design/components": "*", diff --git a/.github/workflows/bundle-size/unlock-package-lock.cjs b/.github/workflows/bundle-size/unlock-package-lock.cjs new file mode 100644 index 0000000000..f599682120 --- /dev/null +++ b/.github/workflows/bundle-size/unlock-package-lock.cjs @@ -0,0 +1,29 @@ +#!/usr/bin/env node +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +const fs = require('fs'); +const path = require('path'); + +/** + * Remove specific @cloudscape-design/* packages where we should always use the latest minor release. + */ +const filename = path.resolve(__dirname, 'package-lock.json'); +const packageLock = JSON.parse(fs.readFileSync(filename)); + +Object.keys(packageLock.packages).forEach(dependencyName => { + removeDependencies(dependencyName, packageLock.packages); +}); + +Object.keys(packageLock.dependencies).forEach(dependencyName => { + removeDependencies(dependencyName, packageLock.dependencies); +}); + +fs.writeFileSync(filename, JSON.stringify(packageLock, null, 2) + '\n'); +console.log('Removed @cloudscape-design/ dependencies from package-lock file'); + +function removeDependencies(dependencyName, packages) { + if (dependencyName.includes('@cloudscape-design/')) { + delete packages[dependencyName]; + } +} diff --git a/.stylelintrc b/.stylelintrc index 3826774f7b..5c082727fa 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -44,7 +44,8 @@ "plugin/no-unsupported-browser-features": [ true, { - "ignorePartialSupport": true + "ignorePartialSupport": true, + "ignore": ["css-nesting", "css-when-else", "flexbox-gap"] } ] }, diff --git a/README.md b/README.md index 2423184f65..6811d2b364 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Here is a basic example that renders a primary button: import Button from '@cloudscape-design/components/button'; import '@cloudscape-design/global-styles/index.css'; -function App { +function App() { return ; } ``` diff --git a/build-tools/tasks/generate-environment.js b/build-tools/tasks/generate-environment.js index 6c8d1049ad..4d28f833e0 100644 --- a/build-tools/tasks/generate-environment.js +++ b/build-tools/tasks/generate-environment.js @@ -15,6 +15,7 @@ function writeEnvironmentFile(theme) { }; const basePath = path.join(theme.outputPath, filepath); + writeFile(`${basePath}.json`, JSON.stringify(values, null, 2)); writeFile( `${basePath}.js`, Object.entries(values) diff --git a/build-tools/tasks/package-json.js b/build-tools/tasks/package-json.js index faa5a1c65c..dd5acb92bd 100644 --- a/build-tools/tasks/package-json.js +++ b/build-tools/tasks/package-json.js @@ -5,7 +5,7 @@ const path = require('path'); const fs = require('fs'); const { writeFile, listPublicItems, listBetaVersions } = require('../utils/files'); const themes = require('../utils/themes'); -const { task } = require('../utils/gulp-utils'); +const { task, copyTask } = require('../utils/gulp-utils'); const workspace = require('../utils/workspace'); const pkg = require('../../package.json'); @@ -116,6 +116,7 @@ module.exports = parallel([ }), styleDictionaryPackageJson, componentsThemeablePackageJson, + copyTask('package-lock', ['package-lock.json'], path.join(workspace.targetPath, 'dev-pages', 'internal')), devPagesPackageJson, ]); module.exports.generatePackageJson = generatePackageJson; diff --git a/build-tools/tasks/styles.js b/build-tools/tasks/styles.js index b70fd4d609..ff26d033a2 100644 --- a/build-tools/tasks/styles.js +++ b/build-tools/tasks/styles.js @@ -50,6 +50,7 @@ function stylesTask(theme) { const exposed = []; const themeable = []; const variablesMap = {}; + const descriptions = {}; Object.entries(metadata).forEach(([token, meta]) => { if (meta.public) { @@ -61,6 +62,9 @@ function stylesTask(theme) { if (meta.sassName) { variablesMap[token] = meta.sassName.substring(1); } + if (meta.description) { + descriptions[token] = meta.description; + } }); return buildThemedComponentsInternal({ @@ -74,6 +78,8 @@ function stylesTask(theme) { skip: designTokensOutputDir ? [] : ['design-tokens'], designTokensOutputDir, designTokensFileName: theme.designTokensOutput, + descriptions, + jsonSchema: true, }); }); } diff --git a/jest.unit.config.js b/jest.unit.config.js index 55419e6171..9aae43130f 100644 --- a/jest.unit.config.js +++ b/jest.unit.config.js @@ -23,6 +23,14 @@ module.exports = merge({}, tsPreset, cloudscapePreset, { '/internal\\/vendor/', '/pages', ], + coverageThreshold: { + global: { + branches: 82, + functions: 88, + lines: 90, + statements: 90, + }, + }, globals: { 'ts-jest': { tsconfig: 'tsconfig.unit.json', diff --git a/package-lock.json b/package-lock.json index a2c524e647..dbf73401f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", "@juggle/resize-observer": "^3.3.1", - "ace-builds": "^1.4.13", + "ace-builds": "^1.23.0", "balanced-match": "^1.0.2", "clsx": "^1.1.0", "d3-shape": "^1.3.7", @@ -49,7 +49,6 @@ "@types/jest": "^27.5.1", "@types/lodash": "^4.14.176", "@types/node": "^16.0.0", - "@types/qs": "^6.9.7", "@types/react": "^16.14.20", "@types/react-dom": "^16.9.14", "@types/react-resizable": "^1.7.4", @@ -64,7 +63,6 @@ "change-case": "^4.1.2", "commenting": "^1.1.0", "copy-webpack-plugin": "^9.0.1", - "core-js": "^3.19.1", "css-loader": "^6.5.1", "css-minimizer-webpack-plugin": "^3.1.1", "d3-scale": "^4.0.2", @@ -93,7 +91,6 @@ "mockdate": "^3.0.5", "please-upgrade-node": "^3.2.0", "prettier": "^2.4.1", - "qs": "^6.10.1", "react": "^16.14.0", "react-dom": "^16.14.0", "react-router-dom": "^5.3.0", @@ -103,13 +100,13 @@ "rollup-plugin-license": "^3.0.1", "sass": "^1.43.4", "sass-loader": "^12.3.0", - "stylelint": "^14.15.0", + "stylelint": "^15.10.1", "stylelint-config-prettier": "^9.0.4", - "stylelint-config-recommended-scss": "^8.0.0", - "stylelint-no-unsupported-browser-features": "^6.0.1", - "stylelint-order": "^5.0.0", + "stylelint-config-recommended-scss": "^12.0.0", + "stylelint-no-unsupported-browser-features": "^7.0.0", + "stylelint-order": "^6.0.3", "stylelint-prettier": "^2.0.0", - "stylelint-scss": "^4.3.0", + "stylelint-scss": "^5.0.1", "svgo": "^2.8.0", "ts-jest": "^28.0.2", "ts-loader": "^9.2.6", @@ -752,20 +749,84 @@ "dev": true, "license": "MIT" }, - "node_modules/@csstools/selector-specificity": { - "version": "2.0.2", + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", + "integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.1.1" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", + "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", "dev": true, - "license": "CC0-1.0", "engines": { - "node": "^12 || ^14 || >=16" + "node": "^14 || ^16 || >=18" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/csstools" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", + "integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "postcss": "^8.2", - "postcss-selector-parser": "^6.0.10" + "@csstools/css-parser-algorithms": "^2.3.0", + "@csstools/css-tokenizer": "^2.1.1" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", + "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.13" } }, "node_modules/@discoveryjs/json-ext": { @@ -1983,8 +2044,9 @@ }, "node_modules/@types/minimist": { "version": "1.2.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true }, "node_modules/@types/node": { "version": "16.18.6", @@ -2763,8 +2825,9 @@ } }, "node_modules/ace-builds": { - "version": "1.13.1", - "license": "BSD-3-Clause" + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.23.0.tgz", + "integrity": "sha512-PKRuQaQkjIhg1zeqJPW1QFtJO2fx13Nlv7N/VLhQS/kIQ/2aGAgWvYVcE9X64gbSiLzPdY3jcxv5wJJpLj1gLw==" }, "node_modules/acorn": { "version": "8.8.1", @@ -3173,8 +3236,9 @@ }, "node_modules/array-differ": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -3333,8 +3397,9 @@ }, "node_modules/arrify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3819,7 +3884,9 @@ "license": "BSD-2-Clause" }, "node_modules/browserslist": { - "version": "4.21.4", + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "dev": true, "funding": [ { @@ -3829,14 +3896,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" }, "bin": { "browserslist": "cli.js" @@ -4013,27 +4083,45 @@ } }, "node_modules/camelcase-keys": { - "version": "6.2.2", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "dev": true, - "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-keys/node_modules/quick-lru": { - "version": "4.0.1", + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-api": { @@ -4048,7 +4136,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001436", + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", "dev": true, "funding": [ { @@ -4058,9 +4148,12 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/capital-case": { "version": "1.0.4", @@ -4716,16 +4809,6 @@ "node": ">=10.13.0" } }, - "node_modules/core-js": { - "version": "3.26.1", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-util-is": { "version": "1.0.3", "dev": true, @@ -4952,50 +5035,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/css-rule-stream": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tokenize": "^1.0.1", - "duplexer2": "0.0.2", - "ldjson-stream": "^1.2.1", - "through2": "^0.6.3" - }, - "bin": { - "css-rule-stream": "index.js" - } - }, - "node_modules/css-rule-stream/node_modules/isarray": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/css-rule-stream/node_modules/readable-stream": { - "version": "1.0.34", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/css-rule-stream/node_modules/string_decoder": { - "version": "0.10.31", - "dev": true, - "license": "MIT" - }, - "node_modules/css-rule-stream/node_modules/through2": { - "version": "0.6.5", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, "node_modules/css-select": { "version": "3.1.2", "dev": true, @@ -5025,8 +5064,9 @@ }, "node_modules/css-tokenize": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz", + "integrity": "sha512-gLmmbJdwH9HLY4bcA17lnZ8GgPwEXRbvxBJGHnkiB6gLhRpTzjkjtMIvz7YORGW/Ptv2oMk8b5g+u7mRD6Dd7A==", "dev": true, - "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^1.0.33" @@ -5034,13 +5074,15 @@ }, "node_modules/css-tokenize/node_modules/isarray": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true }, "node_modules/css-tokenize/node_modules/readable-stream": { "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -5050,8 +5092,9 @@ }, "node_modules/css-tokenize/node_modules/string_decoder": { "version": "0.10.31", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true }, "node_modules/css-tree": { "version": "1.1.3", @@ -5384,8 +5427,9 @@ }, "node_modules/decamelize-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, - "license": "MIT", "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -5399,8 +5443,9 @@ }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5807,66 +5852,86 @@ } }, "node_modules/doiuse": { - "version": "4.4.1", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.2.tgz", + "integrity": "sha512-eBTs23NOX+EAYPr4RbCR6J4DRW/TML3uMo37y0X1whlkersDYFCk9HmCl09KX98cis22VKsV1QaxfVNauJ3NBw==", "dev": true, - "license": "MIT", "dependencies": { - "browserslist": "^4.16.1", - "caniuse-lite": "^1.0.30001179", - "css-rule-stream": "^1.1.0", - "duplexer2": "0.0.2", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001487", + "css-tokenize": "^1.0.1", + "duplexify": "^4.1.2", "ldjson-stream": "^1.2.1", "multimatch": "^5.0.0", - "postcss": "^8.2.4", - "source-map": "^0.7.3", - "through2": "^4.0.2", - "yargs": "^16.2.0" + "postcss": "^8.4.21", + "source-map": "^0.7.4", + "yargs": "^17.7.1" }, "bin": { - "doiuse": "cli.js" + "doiuse": "bin/cli.js" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/doiuse/node_modules/cliui": { - "version": "7.0.4", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/doiuse/node_modules/duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" } }, "node_modules/doiuse/node_modules/get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/doiuse/node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/doiuse/node_modules/source-map": { "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/doiuse/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5876,18 +5941,11 @@ "node": ">=8" } }, - "node_modules/doiuse/node_modules/through2": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "3" - } - }, "node_modules/doiuse/node_modules/wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5902,35 +5960,38 @@ }, "node_modules/doiuse/node_modules/y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/doiuse/node_modules/yargs": { - "version": "16.2.0", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/doiuse/node_modules/yargs-parser": { - "version": "20.2.9", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/dom-accessibility-api": { @@ -6033,35 +6094,6 @@ "tslib": "^2.0.3" } }, - "node_modules/duplexer2": { - "version": "0.0.2", - "dev": true, - "license": "BSD", - "dependencies": { - "readable-stream": "~1.1.9" - } - }, - "node_modules/duplexer2/node_modules/isarray": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "1.1.14", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "0.10.31", - "dev": true, - "license": "MIT" - }, "node_modules/duplexify": { "version": "3.7.1", "dev": true, @@ -6111,9 +6143,10 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "dev": true, - "license": "ISC" + "version": "1.4.459", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.459.tgz", + "integrity": "sha512-XXRS5NFv8nCrBL74Rm3qhJjA2VCsRFx0OjHKBMPI0otij56aun8UWiKTDABmd5/7GTR021pA4wivs+Ri6XCElg==", + "dev": true }, "node_modules/emittery": { "version": "0.10.2", @@ -7453,9 +7486,10 @@ "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.2.12", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -8596,8 +8630,9 @@ }, "node_modules/hard-rejection": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -8860,9 +8895,10 @@ } }, "node_modules/html-tags": { - "version": "3.2.0", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -9217,9 +9253,10 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.2.1", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } @@ -9717,8 +9754,9 @@ }, "node_modules/is-plain-obj": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11310,6 +11348,15 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "dev": true, @@ -11360,9 +11407,10 @@ } }, "node_modules/known-css-properties": { - "version": "0.26.0", - "dev": true, - "license": "MIT" + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", + "dev": true }, "node_modules/ky": { "version": "0.30.0", @@ -11425,8 +11473,9 @@ }, "node_modules/ldjson-stream": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ldjson-stream/-/ldjson-stream-1.2.1.tgz", + "integrity": "sha512-xw/nNEXafuPSLu8NjjG3+atVVw+8U1APZAQylmwQn19Hgw6rC7QjHvP6MupnHWCrzSm9m0xs5QWkCLuRvBPjgQ==", "dev": true, - "license": "BSD", "dependencies": { "split2": "^0.2.1", "through2": "^0.6.1" @@ -11434,13 +11483,15 @@ }, "node_modules/ldjson-stream/node_modules/isarray": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true }, "node_modules/ldjson-stream/node_modules/readable-stream": { "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -11450,13 +11501,15 @@ }, "node_modules/ldjson-stream/node_modules/string_decoder": { "version": "0.10.31", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true }, "node_modules/ldjson-stream/node_modules/through2": { "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", "dev": true, - "license": "MIT", "dependencies": { "readable-stream": ">=1.0.33-1 <1.1.0-0", "xtend": ">=4.0.0 <4.1.0-0" @@ -12007,8 +12060,9 @@ }, "node_modules/map-obj": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -12229,22 +12283,51 @@ } }, "node_modules/meow": { - "version": "9.0.0", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", "dev": true, - "license": "MIT", "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=10" @@ -12255,8 +12338,9 @@ }, "node_modules/meow/node_modules/hosted-git-info": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -12264,10 +12348,38 @@ "node": ">=10" } }, + "node_modules/meow/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/meow/node_modules/normalize-package-data": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -12278,10 +12390,107 @@ "node": ">=10" } }, + "node_modules/meow/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -12291,8 +12500,9 @@ }, "node_modules/meow/node_modules/yargs-parser": { "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } @@ -12487,8 +12697,9 @@ }, "node_modules/minimist-options": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, - "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -12642,8 +12853,9 @@ }, "node_modules/multimatch": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, - "license": "MIT", "dependencies": { "@types/minimatch": "^3.0.3", "array-differ": "^3.0.0", @@ -12660,21 +12872,24 @@ }, "node_modules/multimatch/node_modules/@types/minimatch": { "version": "3.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true }, "node_modules/multimatch/node_modules/arrify": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/multimatch/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -12682,8 +12897,9 @@ }, "node_modules/multimatch/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -12700,9 +12916,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.4", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12801,9 +13024,10 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.6", - "dev": true, - "license": "MIT" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -13612,7 +13836,9 @@ } }, "node_modules/postcss": { - "version": "8.4.19", + "version": "8.4.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", + "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", "dev": true, "funding": [ { @@ -13622,11 +13848,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -14146,9 +14375,10 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.11", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, - "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14158,11 +14388,12 @@ } }, "node_modules/postcss-sorting": { - "version": "7.0.1", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz", + "integrity": "sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==", "dev": true, - "license": "MIT", "peerDependencies": { - "postcss": "^8.3.9" + "postcss": "^8.4.20" } }, "node_modules/postcss-svgo": { @@ -16026,21 +16257,24 @@ }, "node_modules/split2": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-0.2.1.tgz", + "integrity": "sha512-D/oTExYAkC9nWleOCTOyNmAuzfAT/6rHGBA9LIK7FVnGo13CSvrKCUzKenwH6U1s2znY9MqH6v0UQTEDa3vJmg==", "dev": true, - "license": "ISC", "dependencies": { "through2": "~0.6.1" } }, "node_modules/split2/node_modules/isarray": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true }, "node_modules/split2/node_modules/readable-stream": { "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -16050,13 +16284,15 @@ }, "node_modules/split2/node_modules/string_decoder": { "version": "0.10.31", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true }, "node_modules/split2/node_modules/through2": { "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", "dev": true, - "license": "MIT", "dependencies": { "readable-stream": ">=1.0.33-1 <1.1.0-0", "xtend": ">=4.0.0 <4.1.0-0" @@ -16344,54 +16580,57 @@ } }, "node_modules/stylelint": { - "version": "14.16.0", + "version": "15.10.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz", + "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==", "dev": true, - "license": "MIT", "dependencies": { - "@csstools/selector-specificity": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.3.0", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.1.2", + "@csstools/selector-specificity": "^3.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^7.1.0", + "cosmiconfig": "^8.2.0", "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^6.0.1", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.1", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", + "known-css-properties": "^0.27.0", "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", + "meow": "^10.1.5", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.19", - "postcss-media-query-parser": "^0.2.3", + "postcss": "^8.4.24", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.2" + "write-file-atomic": "^5.0.1" }, "bin": { - "stylelint": "bin/stylelint.js" + "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.13.1 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -16414,25 +16653,27 @@ } }, "node_modules/stylelint-config-recommended": { - "version": "9.0.0", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", + "integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", "dev": true, - "license": "MIT", "peerDependencies": { - "stylelint": "^14.10.0" + "stylelint": "^15.5.0" } }, "node_modules/stylelint-config-recommended-scss": { - "version": "8.0.0", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-12.0.0.tgz", + "integrity": "sha512-5Bb2mlGy6WLa30oNeKpZvavv2lowJUsUJO25+OA68GFTemlwd1zbFsL7q0bReKipOSU3sG47hKneZ6Nd+ctrFA==", "dev": true, - "license": "MIT", "dependencies": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^9.0.0", - "stylelint-scss": "^4.0.0" + "postcss-scss": "^4.0.6", + "stylelint-config-recommended": "^12.0.0", + "stylelint-scss": "^5.0.0" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^14.10.0" + "stylelint": "^15.5.0" }, "peerDependenciesMeta": { "postcss": { @@ -16441,31 +16682,33 @@ } }, "node_modules/stylelint-no-unsupported-browser-features": { - "version": "6.0.1", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-7.0.0.tgz", + "integrity": "sha512-O5VYlBhr+lpJ6jeTJSy+SMbHJhW5h5EJxsoicYcTi/07m45V/CF1mQidwRQLjv8y9BFQMpioWz60O89IkmbaNw==", "dev": true, - "license": "MIT", "dependencies": { - "doiuse": "^4.4.1", + "doiuse": "^6.0.1", "lodash": "^4.17.15", "postcss": "^8.4.16" }, "engines": { - "node": ">=14" + "node": ">=16" }, "peerDependencies": { - "stylelint": "^14.0.0" + "stylelint": "^14.0.0||^15.0.0" } }, "node_modules/stylelint-order": { - "version": "5.0.0", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.3.tgz", + "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==", "dev": true, - "license": "MIT", "dependencies": { - "postcss": "^8.3.11", - "postcss-sorting": "^7.0.1" + "postcss": "^8.4.21", + "postcss-sorting": "^8.0.2" }, "peerDependencies": { - "stylelint": "^14.0.0" + "stylelint": "^14.0.0 || ^15.0.0" } }, "node_modules/stylelint-prettier": { @@ -16484,25 +16727,62 @@ } }, "node_modules/stylelint-scss": { - "version": "4.3.0", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.0.1.tgz", + "integrity": "sha512-n87iCRZrr2J7//I/QFsDXxFLnHKw633U4qvWZ+mOW6KDAp/HLj06H+6+f9zOuTYy+MdGdTuCSDROCpQIhw5fvQ==", "dev": true, - "license": "MIT", "dependencies": { - "lodash": "^4.17.21", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0" }, "peerDependencies": { - "stylelint": "^14.5.1" + "stylelint": "^14.5.1 || ^15.0.0" } }, + "node_modules/stylelint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "dev": true, "license": "MIT" }, + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/stylelint/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, "node_modules/stylelint/node_modules/debug": { "version": "4.3.4", "dev": true, @@ -16559,11 +16839,41 @@ "node": ">=0.10.0" } }, + "node_modules/stylelint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/stylelint/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, "node_modules/stylelint/node_modules/ms": { "version": "2.1.2", "dev": true, "license": "MIT" }, + "node_modules/stylelint/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/stylelint/node_modules/string-width": { "version": "4.2.3", "dev": true, @@ -16577,6 +16887,19 @@ "node": ">=8" } }, + "node_modules/stylelint/node_modules/supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + } + }, "node_modules/stylelint/node_modules/which": { "version": "1.3.1", "dev": true, @@ -16588,6 +16911,19 @@ "which": "bin/which" } }, + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "dev": true, @@ -17092,9 +17428,10 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.2", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -17127,11 +17464,15 @@ "license": "MIT" }, "node_modules/trim-newlines": { - "version": "3.0.1", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ts-jest": { @@ -17569,7 +17910,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -17579,15 +17922,18 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -17694,11 +18040,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, "node_modules/v8-to-istanbul": { "version": "9.0.1", "dev": true, @@ -18429,9 +18770,10 @@ "license": "MIT" }, "node_modules/word-wrap": { - "version": "1.2.3", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -19107,8 +19449,30 @@ "version": "0.2.3", "dev": true }, + "@csstools/css-parser-algorithms": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", + "integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", + "dev": true, + "requires": {} + }, + "@csstools/css-tokenizer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", + "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", + "dev": true + }, + "@csstools/media-query-list-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", + "integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", + "dev": true, + "requires": {} + }, "@csstools/selector-specificity": { - "version": "2.0.2", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", + "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", "dev": true, "requires": {} }, @@ -20006,6 +20370,8 @@ }, "@types/minimist": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, "@types/node": { @@ -20550,7 +20916,9 @@ } }, "ace-builds": { - "version": "1.13.1" + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.23.0.tgz", + "integrity": "sha512-PKRuQaQkjIhg1zeqJPW1QFtJO2fx13Nlv7N/VLhQS/kIQ/2aGAgWvYVcE9X64gbSiLzPdY3jcxv5wJJpLj1gLw==" }, "acorn": { "version": "8.8.1", @@ -20815,6 +21183,8 @@ }, "array-differ": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true }, "array-each": { @@ -20917,6 +21287,8 @@ }, "arrify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, "assign-symbols": { @@ -21233,13 +21605,15 @@ "dev": true }, "browserslist": { - "version": "4.21.4", + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" } }, "bs-logger": { @@ -21351,16 +21725,27 @@ "dev": true }, "camelcase-keys": { - "version": "6.2.2", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "dev": true, "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" }, "dependencies": { - "quick-lru": { - "version": "4.0.1", + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true } } @@ -21376,7 +21761,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001436", + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", "dev": true }, "capital-case": { @@ -21819,10 +22206,6 @@ } } }, - "core-js": { - "version": "3.26.1", - "dev": true - }, "core-util-is": { "version": "1.0.3", "dev": true @@ -21954,44 +22337,6 @@ } } }, - "css-rule-stream": { - "version": "1.1.0", - "dev": true, - "requires": { - "css-tokenize": "^1.0.1", - "duplexer2": "0.0.2", - "ldjson-stream": "^1.2.1", - "through2": "^0.6.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "dev": true - }, - "through2": { - "version": "0.6.5", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, "css-select": { "version": "3.1.2", "dev": true, @@ -22016,6 +22361,8 @@ }, "css-tokenize": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz", + "integrity": "sha512-gLmmbJdwH9HLY4bcA17lnZ8GgPwEXRbvxBJGHnkiB6gLhRpTzjkjtMIvz7YORGW/Ptv2oMk8b5g+u7mRD6Dd7A==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -22024,10 +22371,14 @@ "dependencies": { "isarray": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "readable-stream": { "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -22038,6 +22389,8 @@ }, "string_decoder": { "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true } } @@ -22258,6 +22611,8 @@ }, "decamelize-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, "requires": { "decamelize": "^1.1.0", @@ -22266,6 +22621,8 @@ "dependencies": { "map-obj": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true } } @@ -22541,44 +22898,67 @@ } }, "doiuse": { - "version": "4.4.1", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-6.0.2.tgz", + "integrity": "sha512-eBTs23NOX+EAYPr4RbCR6J4DRW/TML3uMo37y0X1whlkersDYFCk9HmCl09KX98cis22VKsV1QaxfVNauJ3NBw==", "dev": true, "requires": { - "browserslist": "^4.16.1", - "caniuse-lite": "^1.0.30001179", - "css-rule-stream": "^1.1.0", - "duplexer2": "0.0.2", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001487", + "css-tokenize": "^1.0.1", + "duplexify": "^4.1.2", "ldjson-stream": "^1.2.1", "multimatch": "^5.0.0", - "postcss": "^8.2.4", - "source-map": "^0.7.3", - "through2": "^4.0.2", - "yargs": "^16.2.0" + "postcss": "^8.4.21", + "source-map": "^0.7.4", + "yargs": "^17.7.1" }, "dependencies": { "cliui": { - "version": "7.0.4", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, + "duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "dev": true, + "requires": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, "get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "source-map": { "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true }, "string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -22586,15 +22966,10 @@ "strip-ansi": "^6.0.1" } }, - "through2": { - "version": "4.0.2", - "dev": true, - "requires": { - "readable-stream": "3" - } - }, "wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -22604,23 +22979,29 @@ }, "y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yargs": { - "version": "16.2.0", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" } }, "yargs-parser": { - "version": "20.2.9", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true } } @@ -22693,33 +23074,6 @@ "tslib": "^2.0.3" } }, - "duplexer2": { - "version": "0.0.2", - "dev": true, - "requires": { - "readable-stream": "~1.1.9" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "dev": true - } - } - }, "duplexify": { "version": "3.7.1", "dev": true, @@ -22766,7 +23120,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.284", + "version": "1.4.459", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.459.tgz", + "integrity": "sha512-XXRS5NFv8nCrBL74Rm3qhJjA2VCsRFx0OjHKBMPI0otij56aun8UWiKTDABmd5/7GTR021pA4wivs+Ri6XCElg==", "dev": true }, "emittery": { @@ -23652,7 +24008,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.12", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -24478,6 +24836,8 @@ }, "hard-rejection": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true }, "has": { @@ -24661,7 +25021,9 @@ } }, "html-tags": { - "version": "3.2.0", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true }, "html-validate": { @@ -24875,7 +25237,9 @@ "dev": true }, "ignore": { - "version": "5.2.1", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "immutable": { @@ -25168,6 +25532,8 @@ }, "is-plain-obj": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true }, "is-plain-object": { @@ -26212,6 +26578,12 @@ "universalify": "^2.0.0" } }, + "jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true + }, "jsx-ast-utils": { "version": "3.3.3", "dev": true, @@ -26244,7 +26616,9 @@ "dev": true }, "known-css-properties": { - "version": "0.26.0", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", "dev": true }, "ky": { @@ -26290,6 +26664,8 @@ }, "ldjson-stream": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ldjson-stream/-/ldjson-stream-1.2.1.tgz", + "integrity": "sha512-xw/nNEXafuPSLu8NjjG3+atVVw+8U1APZAQylmwQn19Hgw6rC7QjHvP6MupnHWCrzSm9m0xs5QWkCLuRvBPjgQ==", "dev": true, "requires": { "split2": "^0.2.1", @@ -26298,10 +26674,14 @@ "dependencies": { "isarray": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "readable-stream": { "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -26312,10 +26692,14 @@ }, "string_decoder": { "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "through2": { "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", "dev": true, "requires": { "readable-stream": ">=1.0.33-1 <1.1.0-0", @@ -26684,6 +27068,8 @@ }, "map-obj": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true }, "map-visit": { @@ -26837,32 +27223,69 @@ } }, "meow": { - "version": "9.0.0", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", "dev": true, "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, "hosted-git-info": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, "normalize-package-data": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "requires": { "hosted-git-info": "^4.0.1", @@ -26871,12 +27294,76 @@ "validate-npm-package-license": "^3.0.1" } }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + } + }, + "read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "requires": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + } + }, + "redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "requires": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + } + }, + "strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "requires": { + "min-indent": "^1.0.1" + } + }, "type-fest": { - "version": "0.18.1", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true }, "yargs-parser": { "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true } } @@ -26993,6 +27480,8 @@ }, "minimist-options": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, "requires": { "arrify": "^1.0.1", @@ -27107,6 +27596,8 @@ }, "multimatch": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, "requires": { "@types/minimatch": "^3.0.3", @@ -27118,14 +27609,20 @@ "dependencies": { "@types/minimatch": { "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, "arrify": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true }, "brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -27134,6 +27631,8 @@ }, "minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -27146,7 +27645,9 @@ "dev": true }, "nanoid": { - "version": "3.3.4", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true }, "nanomatch": { @@ -27210,7 +27711,9 @@ "dev": true }, "node-releases": { - "version": "2.0.6", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "normalize-package-data": { @@ -27730,10 +28233,12 @@ "dev": true }, "postcss": { - "version": "8.4.19", + "version": "8.4.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", + "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -28012,7 +28517,9 @@ "requires": {} }, "postcss-selector-parser": { - "version": "6.0.11", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -28020,7 +28527,9 @@ } }, "postcss-sorting": { - "version": "7.0.1", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz", + "integrity": "sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==", "dev": true, "requires": {} }, @@ -29267,6 +29776,8 @@ }, "split2": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-0.2.1.tgz", + "integrity": "sha512-D/oTExYAkC9nWleOCTOyNmAuzfAT/6rHGBA9LIK7FVnGo13CSvrKCUzKenwH6U1s2znY9MqH6v0UQTEDa3vJmg==", "dev": true, "requires": { "through2": "~0.6.1" @@ -29274,10 +29785,14 @@ "dependencies": { "isarray": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "readable-stream": { "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -29288,10 +29803,14 @@ }, "string_decoder": { "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "through2": { "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", "dev": true, "requires": { "readable-stream": ">=1.0.33-1 <1.1.0-0", @@ -29490,53 +30009,85 @@ } }, "stylelint": { - "version": "14.16.0", + "version": "15.10.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz", + "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==", "dev": true, "requires": { - "@csstools/selector-specificity": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.3.0", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.1.2", + "@csstools/selector-specificity": "^3.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^7.1.0", + "cosmiconfig": "^8.2.0", "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^6.0.1", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.1", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", + "known-css-properties": "^0.27.0", "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", + "meow": "^10.1.5", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.19", - "postcss-media-query-parser": "^0.2.3", + "postcss": "^8.4.24", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.2" + "write-file-atomic": "^5.0.1" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "balanced-match": { "version": "2.0.0", "dev": true }, + "cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, "debug": { "version": "4.3.4", "dev": true, @@ -29568,10 +30119,31 @@ "version": "5.0.0", "dev": true }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, "ms": { "version": "2.1.2", "dev": true }, + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true + }, "string-width": { "version": "4.2.3", "dev": true, @@ -29581,12 +30153,32 @@ "strip-ansi": "^6.0.1" } }, + "supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, "which": { "version": "1.3.1", "dev": true, "requires": { "isexe": "^2.0.0" } + }, + "write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + } } } }, @@ -29596,34 +30188,42 @@ "requires": {} }, "stylelint-config-recommended": { - "version": "9.0.0", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", + "integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", "dev": true, "requires": {} }, "stylelint-config-recommended-scss": { - "version": "8.0.0", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-12.0.0.tgz", + "integrity": "sha512-5Bb2mlGy6WLa30oNeKpZvavv2lowJUsUJO25+OA68GFTemlwd1zbFsL7q0bReKipOSU3sG47hKneZ6Nd+ctrFA==", "dev": true, "requires": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^9.0.0", - "stylelint-scss": "^4.0.0" + "postcss-scss": "^4.0.6", + "stylelint-config-recommended": "^12.0.0", + "stylelint-scss": "^5.0.0" } }, "stylelint-no-unsupported-browser-features": { - "version": "6.0.1", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-7.0.0.tgz", + "integrity": "sha512-O5VYlBhr+lpJ6jeTJSy+SMbHJhW5h5EJxsoicYcTi/07m45V/CF1mQidwRQLjv8y9BFQMpioWz60O89IkmbaNw==", "dev": true, "requires": { - "doiuse": "^4.4.1", + "doiuse": "^6.0.1", "lodash": "^4.17.15", "postcss": "^8.4.16" } }, "stylelint-order": { - "version": "5.0.0", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.3.tgz", + "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==", "dev": true, "requires": { - "postcss": "^8.3.11", - "postcss-sorting": "^7.0.1" + "postcss": "^8.4.21", + "postcss-sorting": "^8.0.2" } }, "stylelint-prettier": { @@ -29634,14 +30234,15 @@ } }, "stylelint-scss": { - "version": "4.3.0", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.0.1.tgz", + "integrity": "sha512-n87iCRZrr2J7//I/QFsDXxFLnHKw633U4qvWZ+mOW6KDAp/HLj06H+6+f9zOuTYy+MdGdTuCSDROCpQIhw5fvQ==", "dev": true, "requires": { - "lodash": "^4.17.21", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0" } }, "supports-color": { @@ -29991,7 +30592,9 @@ "dev": true }, "tough-cookie": { - "version": "4.1.2", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "requires": { "psl": "^1.1.33", @@ -30015,7 +30618,9 @@ "dev": true }, "trim-newlines": { - "version": "3.0.1", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", "dev": true }, "ts-jest": { @@ -30279,7 +30884,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.10", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -30364,10 +30971,6 @@ "version": "8.0.0", "dev": true }, - "v8-compile-cache": { - "version": "2.3.0", - "dev": true - }, "v8-to-istanbul": { "version": "9.0.1", "dev": true, @@ -30876,7 +31479,9 @@ "dev": true }, "word-wrap": { - "version": "1.2.3", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", "dev": true }, "wordwrap": { diff --git a/package.json b/package.json index cc37f59fbd..1d043b177f 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", "@juggle/resize-observer": "^3.3.1", - "ace-builds": "^1.4.13", + "ace-builds": "^1.23.0", "balanced-match": "^1.0.2", "clsx": "^1.1.0", "d3-shape": "^1.3.7", @@ -66,7 +66,6 @@ "@types/jest": "^27.5.1", "@types/lodash": "^4.14.176", "@types/node": "^16.0.0", - "@types/qs": "^6.9.7", "@types/react": "^16.14.20", "@types/react-dom": "^16.9.14", "@types/react-resizable": "^1.7.4", @@ -81,7 +80,6 @@ "change-case": "^4.1.2", "commenting": "^1.1.0", "copy-webpack-plugin": "^9.0.1", - "core-js": "^3.19.1", "css-loader": "^6.5.1", "css-minimizer-webpack-plugin": "^3.1.1", "d3-scale": "^4.0.2", @@ -110,7 +108,6 @@ "mockdate": "^3.0.5", "please-upgrade-node": "^3.2.0", "prettier": "^2.4.1", - "qs": "^6.10.1", "react": "^16.14.0", "react-dom": "^16.14.0", "react-router-dom": "^5.3.0", @@ -120,13 +117,13 @@ "rollup-plugin-license": "^3.0.1", "sass": "^1.43.4", "sass-loader": "^12.3.0", - "stylelint": "^14.15.0", + "stylelint": "^15.10.1", "stylelint-config-prettier": "^9.0.4", - "stylelint-config-recommended-scss": "^8.0.0", - "stylelint-no-unsupported-browser-features": "^6.0.1", - "stylelint-order": "^5.0.0", + "stylelint-config-recommended-scss": "^12.0.0", + "stylelint-no-unsupported-browser-features": "^7.0.0", + "stylelint-order": "^6.0.3", "stylelint-prettier": "^2.0.0", - "stylelint-scss": "^4.3.0", + "stylelint-scss": "^5.0.1", "svgo": "^2.8.0", "ts-jest": "^28.0.2", "ts-loader": "^9.2.6", diff --git a/pages/app-layout/utils/external-widget.tsx b/pages/app-layout/utils/external-widget.tsx index 22ce944e80..2a2496b74c 100644 --- a/pages/app-layout/utils/external-widget.tsx +++ b/pages/app-layout/utils/external-widget.tsx @@ -24,7 +24,10 @@ awsuiPlugins.appLayout.registerDrawer({ }, trigger: { - iconName: 'security', + iconSvg: ` + + + `, }, resizable: true, diff --git a/pages/app-layout/with-table.page.tsx b/pages/app-layout/with-table.page.tsx index a02800690c..671dd2059c 100644 --- a/pages/app-layout/with-table.page.tsx +++ b/pages/app-layout/with-table.page.tsx @@ -1,6 +1,6 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import React, { useState } from 'react'; +import React, { useContext, useState } from 'react'; import AppLayout from '~components/app-layout'; import Header from '~components/header'; import Link from '~components/link'; @@ -12,12 +12,16 @@ import Table from '~components/table'; import { generateItems, Instance } from '../table/generate-data'; import { columnsConfig } from '../table/shared-configs'; import Button from '~components/button'; +import AppContext, { AppContextType } from '../app/app-context'; + +type PageContext = React.Context>; const items = generateItems(20); export default function () { const [toolsOpen, setToolsOpen] = useState(false); const [selectedTool, setSelectedTool] = useState('long'); + const { urlParams } = useContext(AppContext as PageContext); function openHelp(article: keyof typeof toolsContent) { setToolsOpen(true); @@ -35,6 +39,7 @@ export default function () { toolsOpen={toolsOpen} onToolsChange={({ detail }) => setToolsOpen(detail.open)} notifications={} + stickyNotifications={urlParams.stickyNotifications} content={ header={ diff --git a/pages/app/app-context.tsx b/pages/app/app-context.tsx index 50fd46dc97..154b0c8ca1 100644 --- a/pages/app/app-context.tsx +++ b/pages/app/app-context.tsx @@ -1,6 +1,5 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import qs from 'qs'; import React, { createContext } from 'react'; import mapValues from 'lodash/mapValues'; import { THEME } from '~components/internal/environment'; @@ -38,7 +37,9 @@ const AppContext = createContext(appContextDefaults); export default AppContext; export function parseQuery(query: string) { - const queryParams = { ...appContextDefaults.urlParams, ...qs.parse(query.substring(1)) } as Record; + const queryParams: Record = { ...appContextDefaults.urlParams }; + const urlParams = new URLSearchParams(query); + urlParams.forEach((value, key) => (queryParams[key] = value)); return mapValues(queryParams, value => { if (value === 'true' || value === 'false') { @@ -49,10 +50,14 @@ export function parseQuery(query: string) { } function formatQuery(params: AppUrlParams) { - const query = qs.stringify(params, { - filter: (key, value) => (appContextDefaults.urlParams[key as keyof AppUrlParams] !== value ? value : undefined), - }); - return query ? `?${query}` : ''; + const query = new URLSearchParams(); + for (const [key, value] of Object.entries(params)) { + if (value === appContextDefaults.urlParams[key as keyof AppUrlParams]) { + continue; + } + query.set(key, value); + } + return query ? `?${query.toString()}` : ''; } export function AppContextProvider({ children }: { children: React.ReactNode }) { diff --git a/pages/app/index.tsx b/pages/app/index.tsx index 69a98625d1..a5b0b16aaa 100644 --- a/pages/app/index.tsx +++ b/pages/app/index.tsx @@ -5,7 +5,6 @@ import { render } from 'react-dom'; import { HashRouter, Redirect } from 'react-router-dom'; import { createHashHistory } from 'history'; import { applyMode, applyDensity, disableMotion } from '@cloudscape-design/global-styles'; -import './polyfills'; // import font-size reset and Ember font import '@cloudscape-design/global-styles/index.css'; diff --git a/pages/app/polyfills.ts b/pages/app/polyfills.ts deleted file mode 100644 index 91d0727534..0000000000 --- a/pages/app/polyfills.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* global require */ -/* eslint-disable header/header */ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -if (typeof Promise === 'undefined') { - require('core-js/es/promise'); -} diff --git a/pages/area-chart/fit-height.page.tsx b/pages/area-chart/fit-height.page.tsx new file mode 100644 index 0000000000..eea9e4c9bc --- /dev/null +++ b/pages/area-chart/fit-height.page.tsx @@ -0,0 +1,104 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import React, { useContext } from 'react'; + +import { createLinearTimeLatencyProps } from './series'; +import { AreaChart, Box, Button, Checkbox, SpaceBetween } from '~components'; +import AppContext, { AppContextType } from '../app/app-context'; +import ScreenshotArea from '../utils/screenshot-area'; + +type DemoContext = React.Context< + AppContextType<{ fitHeight: boolean; hideFilter: boolean; hideLegend: boolean; minHeight: number }> +>; + +const chartData = createLinearTimeLatencyProps(); + +export default function () { + const { urlParams, setUrlParams } = useContext(AppContext as DemoContext); + const minHeight = parseInt(urlParams.minHeight?.toString() || '0'); + const heights = [800, 600, 400, 300, 200, 100]; + const fitHeight = urlParams.fitHeight ?? true; + return ( + +

Area chart fit height

+ + + setUrlParams({ fitHeight: e.detail.checked })}> + fit height + + setUrlParams({ hideFilter: e.detail.checked })}> + hide filter + + setUrlParams({ hideLegend: e.detail.checked })}> + hide legend + + + setUrlParams({ minHeight: parseInt(e.target.value) })} + /> + + + + + + + {heights.map(height => ( + + {height}px +
+ {}} + empty={ + + No data + + There is no data to display + + + } + noMatch={ + + No matching data + + There is no data to display + + + + } + i18nStrings={{ + filterLabel: 'Filter displayed data', + filterPlaceholder: 'Filter data', + filterSelectedAriaLabel: '(selected)', + detailTotalLabel: 'Total', + detailPopoverDismissAriaLabel: 'Dismiss', + legendAriaLabel: 'Legend', + chartAriaRoleDescription: 'area chart', + xAxisAriaRoleDescription: 'x axis', + yAxisAriaRoleDescription: 'y axis', + xTickFormatter: value => `${value}\nxxx`, + }} + xDomain={[0, 119]} + {...chartData} + /> +
+
+ ))} +
+
+
+ ); +} diff --git a/pages/autosuggest/form-submit.page.tsx b/pages/autosuggest/form-submit.page.tsx new file mode 100644 index 0000000000..92b16d689f --- /dev/null +++ b/pages/autosuggest/form-submit.page.tsx @@ -0,0 +1,44 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import Autosuggest from '~components/autosuggest'; +import Alert from '~components/alert'; +import React, { useState } from 'react'; + +export default function () { + const [isSubmitted, setSubmitted] = useState(false); + return ( + <> +

Autosuggest in a form

+
{ + event.preventDefault(); + setSubmitted(true); + }} + > + { + if (event.detail.key === 'Enter') { + event.preventDefault(); + } + }} + /> + + + + {isSubmitted && ( + setSubmitted(false)}> + Form sent! + + )} + + ); +} diff --git a/pages/button-dropdown/permutations-main-action.page.tsx b/pages/button-dropdown/permutations-main-action.page.tsx new file mode 100644 index 0000000000..11b78f9c09 --- /dev/null +++ b/pages/button-dropdown/permutations-main-action.page.tsx @@ -0,0 +1,86 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import * as React from 'react'; + +import ButtonDropdown, { ButtonDropdownProps } from '~components/button-dropdown'; +import { Box, SpaceBetween } from '~components'; +import createPermutations from '../utils/permutations'; +import ScreenshotArea from '../utils/screenshot-area'; +import PermutationsView from '../utils/permutations-view'; + +const launchInstanceItem = { + text: 'Launch instance', + iconName: 'add-plus', +} as const; + +const launchInstanceFromTemplateItem = { + text: 'Launch instance from template', + iconName: 'file', +} as const; + +const viewInstancesItem = { + text: 'View instances', + href: 'https://instances.com', + external: true, + externalIconAriaLabel: '(opens in new tab)', +} as const; + +const permutations = createPermutations([ + { + mainAction: [ + { ...launchInstanceItem }, + { ...launchInstanceItem, disabled: true }, + { ...launchInstanceItem, loading: true, loadingText: 'Loading' }, + ], + items: [ + [ + { id: '1', ...launchInstanceFromTemplateItem }, + { id: '2', ...viewInstancesItem }, + ], + ], + disabled: [false, true], + loading: [false, true], + }, + { + mainAction: [{ ...viewInstancesItem }, { ...viewInstancesItem, disabled: true }], + items: [ + [ + { id: '1', ...launchInstanceItem }, + { id: '2', ...launchInstanceFromTemplateItem }, + ], + ], + }, +]); + +export default function () { + return ( + <> + ButtonDropdown with main action permutations + + { + const propertyKeys = Object.keys(rest) as (keyof Omit)[]; + const propertiesString = propertyKeys.map(key => `${key}=${JSON.stringify(rest[key])}`).join(', '); + return ( + + + {propertiesString} + + + + + + ); + }} + /> + + + ); +} diff --git a/pages/button-dropdown/permutations.page.tsx b/pages/button-dropdown/permutations.page.tsx index 213b20a952..bfa69550e8 100644 --- a/pages/button-dropdown/permutations.page.tsx +++ b/pages/button-dropdown/permutations.page.tsx @@ -17,7 +17,7 @@ const permutations = createPermutations([ disabled: [false, true], loading: [false, true], items: [[]], - variant: ['icon'], + variant: ['icon', 'inline-icon'], ariaLabel: ['Button dropdown'], }, ]); diff --git a/pages/button/permutations.page.tsx b/pages/button/permutations.page.tsx index 4997418987..bcd828c93a 100644 --- a/pages/button/permutations.page.tsx +++ b/pages/button/permutations.page.tsx @@ -81,6 +81,14 @@ const permutations = createPermutations([ variant: ['normal', 'primary', 'link'], children: ['Full width'], }, + { + variant: ['inline-link'], + iconName: [undefined, 'download'], + iconAlign: ['left', 'right'], + children: ['Inline link'], + loading: [false, true], + disabled: [false, true], + }, ]); export default function ButtonPermutations() { diff --git a/pages/code-editor/controllable-height.page.tsx b/pages/code-editor/controllable-height.page.tsx index b780ebd9af..8aa3ed2f03 100644 --- a/pages/code-editor/controllable-height.page.tsx +++ b/pages/code-editor/controllable-height.page.tsx @@ -15,6 +15,9 @@ export default function () { useEffect(() => { import('ace-builds').then(ace => { ace.config.set('basePath', './ace/'); + ace.config.set('themePath', './ace/'); + ace.config.set('modePath', './ace/'); + ace.config.set('workerPath', './ace/'); ace.config.set('useStrictCSP', true); setAce(ace); setLoading(false); diff --git a/pages/code-editor/simple.page.tsx b/pages/code-editor/simple.page.tsx index 5b586eb18e..b3ac69b841 100644 --- a/pages/code-editor/simple.page.tsx +++ b/pages/code-editor/simple.page.tsx @@ -36,6 +36,9 @@ export default class App extends React.PureComponent { import('ace-builds').then(ace => { ace.config.set('basePath', './ace/'); + ace.config.set('themePath', './ace/'); + ace.config.set('modePath', './ace/'); + ace.config.set('workerPath', './ace/'); ace.config.set('useStrictCSP', true); this.setState({ ace, loading: false }); }); diff --git a/pages/code-editor/vertical-scroll.page.tsx b/pages/code-editor/vertical-scroll.page.tsx index 643c7f6798..9cf11ef290 100644 --- a/pages/code-editor/vertical-scroll.page.tsx +++ b/pages/code-editor/vertical-scroll.page.tsx @@ -18,6 +18,9 @@ export default function () { useEffect(() => { import('ace-builds').then(ace => { ace.config.set('basePath', './ace/'); + ace.config.set('themePath', './ace/'); + ace.config.set('modePath', './ace/'); + ace.config.set('workerPath', './ace/'); ace.config.set('useStrictCSP', true); setAce(ace); setLoading(false); diff --git a/pages/code-editor/with-errors-no-warnings.page.tsx b/pages/code-editor/with-errors-no-warnings.page.tsx index 45993d3e69..1238b036d4 100644 --- a/pages/code-editor/with-errors-no-warnings.page.tsx +++ b/pages/code-editor/with-errors-no-warnings.page.tsx @@ -46,6 +46,9 @@ sdsdasd import('ace-builds').then(ace => { ace.config.set('basePath', './ace/'); + ace.config.set('themePath', './ace/'); + ace.config.set('modePath', './ace/'); + ace.config.set('workerPath', './ace/'); ace.config.set('useStrictCSP', true); this.setState({ ace, loading: false }); }); diff --git a/pages/container-queries.page.tsx b/pages/container-queries.page.tsx index 0d6d4bb41e..0157de45c4 100644 --- a/pages/container-queries.page.tsx +++ b/pages/container-queries.page.tsx @@ -1,8 +1,9 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import React, { useState } from 'react'; +import { useContainerQuery } from '@cloudscape-design/component-toolkit'; import { colorBackgroundContainerHeader } from '~design-tokens'; -import { useContainerQuery, useContainerBreakpoints } from '~components/internal/hooks/container-queries'; +import { useContainerBreakpoints } from '~components/internal/hooks/container-queries'; import { Breakpoint } from '~components/internal/breakpoints'; import { SegmentedControl } from '~components'; diff --git a/pages/expandable-section/common.tsx b/pages/expandable-section/common.tsx new file mode 100644 index 0000000000..93c608809d --- /dev/null +++ b/pages/expandable-section/common.tsx @@ -0,0 +1,15 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import Link from '~components/link'; +import React from 'react'; +import Button from '~components/button'; +import SpaceBetween from '~components/space-between'; + +export const headerInfo = info; + +export const headerActions = ( + + + + +); diff --git a/pages/expandable-section/container-variant.permutations.page.tsx b/pages/expandable-section/container-variant.permutations.page.tsx index 7b6bd02e7b..a7b4060dde 100644 --- a/pages/expandable-section/container-variant.permutations.page.tsx +++ b/pages/expandable-section/container-variant.permutations.page.tsx @@ -2,28 +2,22 @@ // SPDX-License-Identifier: Apache-2.0 import React from 'react'; import ExpandableSection, { ExpandableSectionProps } from '~components/expandable-section'; -import SpaceBetween from '~components/space-between'; import ScreenshotArea from '../utils/screenshot-area'; -import Link from '~components/link'; -import Button from '~components/button'; import createPermutations from '../utils/permutations'; import PermutationsView from '../utils/permutations-view'; +import { headerActions, headerInfo } from './common'; const permutations = createPermutations([ { headerCounter: [undefined, '(5)'], - headerDescription: [undefined, 'Expandable section header description'], - // eslint-disable-next-line react/jsx-key - headerInfo: [undefined, info], - headerActions: [ + headerDescription: [ undefined, - // eslint-disable-next-line react/jsx-key - - - - , + 'Expandable section header description', + 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', ], + headerInfo: [undefined, headerInfo], + headerActions: [undefined, headerActions], }, ]); export default function ExpandableSectionContainerVariantPermutations({ @@ -35,8 +29,6 @@ export default function ExpandableSectionContainerVariantPermutations({

Expandable Section - container variant

- - +>; + +export default function () { + const { urlParams } = useContext(AppContext as DemoContext); + const { hasHeaderActions, hasHeaderInfo, headerCounter, headerDescription, headerText, variant } = urlParams; + + const isVariantValid = variant && ['container', 'default', 'footer', 'navigation'].indexOf(variant) !== -1; + + return ( +
+

Expandable Section - focus tests

+ + + + + + Expandable section content + + +
+ ); +} diff --git a/pages/expandable-section/permutations.page.tsx b/pages/expandable-section/permutations.page.tsx index 265be30bbf..4ad9f485e1 100644 --- a/pages/expandable-section/permutations.page.tsx +++ b/pages/expandable-section/permutations.page.tsx @@ -128,7 +128,10 @@ const permutations = createPermutations([ variant: ['default', 'container', 'footer'], headerText: ['With description'], children: ['Sample content'], - headerDescription: ['Sample description'], + headerDescription: [ + 'Sample description', + 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', + ], defaultExpanded: [false, true], }, { diff --git a/pages/flashbar/permutations.page.tsx b/pages/flashbar/permutations.page.tsx index 8d546d85fe..35c9ade8a6 100644 --- a/pages/flashbar/permutations.page.tsx +++ b/pages/flashbar/permutations.page.tsx @@ -8,6 +8,7 @@ import Flashbar, { FlashbarProps } from '~components/flashbar'; import Link from '~components/link'; import Box from '~components/box'; import Button from '~components/button'; +import ExpandableSection from '~components/expandable-section'; const noop = () => void 0; @@ -71,6 +72,14 @@ const permutations = createPermutations([ header: ['header'], content: ['content'], }, + { + header: ['header'], + content: [ + + Expandable Section content + , + ], + }, ]); /* eslint-enable react/jsx-key */ diff --git a/pages/form/with-validation.page.tsx b/pages/form/with-validation.page.tsx new file mode 100644 index 0000000000..4741a1fcb5 --- /dev/null +++ b/pages/form/with-validation.page.tsx @@ -0,0 +1,134 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import React, { useState } from 'react'; +import { + Alert, + BreadcrumbGroup, + Button, + Checkbox, + Container, + Form, + FormField, + Header, + Input, + SpaceBetween, +} from '~components'; + +export default function FormScenario() { + const [value, setValue] = useState(''); + const [simulateServerError, setSimulateServerError] = useState(true); + const [showInlineSuccess, setShowInlineSuccess] = useState(false); + const [submitWithDelay, setSubmitWithDelay] = useState(false); + + const [attemptedToSubmit, setAttemptedToSubmit] = useState(false); + + const [loading, setLoading] = useState(false); + const [showFormError, setShowFormError] = useState(false); + + const [finished, setFinished] = useState(false); + + const onSubmit = () => { + setAttemptedToSubmit(true); + setShowFormError(false); + + if (value.length > 4) { + return; + } + + setLoading(true); + + const submit = () => { + setLoading(false); + + if (simulateServerError) { + setShowFormError(true); + } else { + setFinished(true); + } + }; + + if (submitWithDelay) { + setTimeout(submit, 2000); + } else { + submit(); + } + }; + + return ( + <> + + {finished && !showInlineSuccess ? ( + Finished + ) : ( +
Form} + actions={ + + + + + } + errorText={showFormError ? 'A server-side error happened.' : undefined} + errorIconAriaLabel="Error" + > + + Form section 1}> + 4 ? 'The text must not be longer than 4 letters' : undefined + } + constraintText="Maximum length: 4 letters" + > + setValue(e.detail.value)} disabled={loading} /> + + + Form section 2}> + + + setSubmitWithDelay(e.detail.checked)} + disabled={loading} + > + Apply a loading state when submitting the form + + + + + setSimulateServerError(e.detail.checked)} + disabled={loading} + > + Show a server side error when this form is submitted + + + + + setShowInlineSuccess(e.detail.checked)} + disabled={loading} + > + Show success inline instead of on a new page + + + + + {finished && showInlineSuccess && The resource was successfully created.} + +
+ )} + + ); +} diff --git a/pages/funnel-analytics/with-error-alert-in-wizard.page.tsx b/pages/funnel-analytics/with-error-alert-in-wizard.page.tsx new file mode 100644 index 0000000000..07e49c5fb3 --- /dev/null +++ b/pages/funnel-analytics/with-error-alert-in-wizard.page.tsx @@ -0,0 +1,55 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import React, { useState } from 'react'; +import Wizard, { WizardProps } from '~components/wizard'; + +import { i18nStrings } from '../wizard/common'; +import Alert from '~components/alert'; +import Container from '~components/container'; +import Header from '~components/header'; + +export default function WizardPage() { + const [errorMode, setErrorMode] = useState(0); + + const steps: WizardProps.Step[] = [ + { + title: 'Step 1', + content: ( +
+
Content 1
+
{errorMode === 1 && This is an error on the step level}
+
+ {errorMode === 2 && ( + A container around the alert}> + This is an error on the substep level + + )} +
+
+ {errorMode === 3 && ( + <> + This is an error on the step level + A container around the alert}> + This is an error on the substep level + + + )} +
+
+ ), + }, + { + title: 'Step 2', + content:
Content 2
, + }, + ]; + + return ( + setErrorMode((errorMode + 1) % 4)} + /> + ); +} diff --git a/pages/icon/size-inherit.page.tsx b/pages/icon/size-inherit.page.tsx index dfee2be3a5..eb048861e0 100644 --- a/pages/icon/size-inherit.page.tsx +++ b/pages/icon/size-inherit.page.tsx @@ -83,8 +83,8 @@ export default function IconScenario() {
- - Box h3 (normal/medium) + + Box h2 (normal/medium)
diff --git a/pages/mixed-line-bar-chart/fit-height.page.tsx b/pages/mixed-line-bar-chart/fit-height.page.tsx new file mode 100644 index 0000000000..fb1c833d8e --- /dev/null +++ b/pages/mixed-line-bar-chart/fit-height.page.tsx @@ -0,0 +1,80 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import React, { useContext } from 'react'; + +import { Box, Button, Checkbox, MixedLineBarChart, SpaceBetween } from '~components'; +import AppContext, { AppContextType } from '../app/app-context'; +import ScreenshotArea from '../utils/screenshot-area'; +import { barChartInstructions, commonProps, data3, data4 } from './common'; +import { colorChartsThresholdInfo } from '~design-tokens'; + +type DemoContext = React.Context< + AppContextType<{ fitHeight: boolean; hideFilter: boolean; hideLegend: boolean; minHeight: number }> +>; + +export default function () { + const { urlParams, setUrlParams } = useContext(AppContext as DemoContext); + const minHeight = parseInt(urlParams.minHeight?.toString() || '0'); + const heights = [800, 600, 400, 300, 200, 100]; + const fitHeight = urlParams.fitHeight ?? true; + return ( + +

Mixed chart fit height

+ + + setUrlParams({ fitHeight: e.detail.checked })}> + fit height + + setUrlParams({ hideFilter: e.detail.checked })}> + hide filter + + setUrlParams({ hideLegend: e.detail.checked })}> + hide legend + + + setUrlParams({ minHeight: parseInt(e.target.value) })} + /> + + + + + + + {heights.map(height => ( + + {height}px +
+ x !== 'Chocolate') }, + { title: 'Calories', type: 'line', data: data3 }, + { title: 'Threshold', type: 'threshold', y: 420, color: colorChartsThresholdInfo }, + ]} + xDomain={data3.map(d => d.x)} + yDomain={[0, 650]} + xTitle="Food" + yTitle="Calories (kcal)" + xScaleType="categorical" + ariaLabel="Mixed chart 1" + ariaDescription={barChartInstructions} + detailPopoverFooter={xValue => } + /> +
+
+ ))} +
+
+
+ ); +} diff --git a/pages/multiselect/screenshot.page.tsx b/pages/multiselect/screenshot.page.tsx index 4c24e3e600..c477370ca2 100644 --- a/pages/multiselect/screenshot.page.tsx +++ b/pages/multiselect/screenshot.page.tsx @@ -27,6 +27,7 @@ const options: MultiselectProps.Options = [ export default function () { const [selected, setSelected] = useState(options.slice(0, 3)); const [virtualScroll, setVirtualScroll] = useState(false); + const [showError, setShowError] = useState(false); return ( <> @@ -36,6 +37,10 @@ export default function () { Toggle virtual scroll + + setSelected(event.detail.selectedOptions)} i18nStrings={i18nStrings} tokenLimit={2} diff --git a/pages/pie-chart/fit-height.page.tsx b/pages/pie-chart/fit-height.page.tsx new file mode 100644 index 0000000000..8a26e3fa66 --- /dev/null +++ b/pages/pie-chart/fit-height.page.tsx @@ -0,0 +1,81 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import React, { useContext } from 'react'; + +import { Box, Button, Checkbox, PieChart, SegmentedControl, SpaceBetween } from '~components'; +import AppContext, { AppContextType } from '../app/app-context'; +import ScreenshotArea from '../utils/screenshot-area'; +import { FoodData, commonProps, data1 } from './common'; + +type DemoContext = React.Context< + AppContextType<{ + fitHeight: boolean; + hideFilter: boolean; + hideLegend: boolean; + minSize: 'large' | 'medium' | 'small'; + }> +>; + +export default function () { + const { urlParams, setUrlParams } = useContext(AppContext as DemoContext); + const minSize = urlParams.minSize ?? 'small'; + const heights = [800, 600, 400, 300, 200, 100]; + const fitHeight = urlParams.fitHeight ?? true; + return ( + +

Pie chart fit height

+ + + setUrlParams({ fitHeight: e.detail.checked })}> + fit height + + setUrlParams({ hideFilter: e.detail.checked })}> + hide filter + + setUrlParams({ hideLegend: e.detail.checked })}> + hide legend + + + setUrlParams({ minSize: e.detail.selectedId as any })} + /> + + + + + + + {heights.map(height => ( + + {height}px +
+ + {...commonProps} + fitHeight={fitHeight} + hideFilter={urlParams.hideFilter} + hideLegend={urlParams.hideLegend} + data={data1} + ariaLabel="Food facts" + size={minSize} + detailPopoverFooter={segment => } + variant="donut" + innerMetricValue="180" + /> +
+
+ ))} +
+
+
+ ); +} diff --git a/pages/popover/focus-test.page.tsx b/pages/popover/focus-test.page.tsx index feaa5e7974..9df0c2b547 100644 --- a/pages/popover/focus-test.page.tsx +++ b/pages/popover/focus-test.page.tsx @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import React from 'react'; +import { Button } from '~components'; import Popover from '~components/popover'; export default function () { @@ -47,6 +48,29 @@ export default function () { > Error +
+ {' '} + +

+ This instance contains insufficient memory. Stop the instance, choose a different instance type with more + memory, and restart it. +

+ + + } + dismissAriaLabel="Close" + id="focus-trap-button" + renderWithPortal={renderWithPortal} + triggerType="custom" + > + +
  • Popover without dismiss button should not trap focus when opened
  • Popover without dismiss button should close when focus leaves the trigger
  • diff --git a/pages/status-indicator/permutations.page.tsx b/pages/status-indicator/permutations.page.tsx index 010ee7c9a5..870ecf6c40 100644 --- a/pages/status-indicator/permutations.page.tsx +++ b/pages/status-indicator/permutations.page.tsx @@ -1,12 +1,12 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import React from 'react'; -import StatusIndicator, { StatusIndicatorProps } from '~components/status-indicator'; +import StatusIndicator, { InternalStatusIndicatorProps } from '~components/status-indicator/internal'; import createPermutations from '../utils/permutations'; import PermutationsView from '../utils/permutations-view'; import ScreenshotArea from '../utils/screenshot-area'; -const permutations = createPermutations([ +const permutations = createPermutations([ { type: ['error', 'warning', 'success', 'info', 'stopped', 'pending', 'in-progress', 'loading'], }, @@ -17,6 +17,7 @@ const permutations = createPermutations([ { type: ['info'], wrapText: [true, false], + __display: ['inline', 'inline-block'], children: [ 'Simple', 'very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text', @@ -33,10 +34,12 @@ export default function StatusIndicatorPermutations() { ( -
    - - {permutation.children ?? <>Status {permutation.type}} - +
    +
    + + {permutation.children ?? <>Status {permutation.type}} + +
    )} /> diff --git a/pages/table/inline-actions.page.tsx b/pages/table/inline-actions.page.tsx new file mode 100644 index 0000000000..e912828ce9 --- /dev/null +++ b/pages/table/inline-actions.page.tsx @@ -0,0 +1,210 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import React from 'react'; +import Box from '~components/box'; +import Button from '~components/button'; +import ButtonDropdown from '~components/button-dropdown'; +import Header from '~components/header'; +import SpaceBetween from '~components/space-between'; +import Table, { TableProps } from '~components/table'; +import ScreenshotArea from '../utils/screenshot-area'; +import { Instance, generateItems } from './generate-data'; +import { columnsConfig, selectionLabels } from './shared-configs'; +import Link from '~components/link'; + +const items = generateItems(10); + +const simpleColumns = [columnsConfig[0], columnsConfig[1], columnsConfig[3], columnsConfig[4]]; + +const columnDefinitionsSingle: TableProps.ColumnDefinition[] = [ + ...simpleColumns, + { + id: 'action', + header: 'Actions', + cell: item => ( + + ), + }, +]; +const columnDefinitionsMultiple: TableProps.ColumnDefinition[] = [ + ...simpleColumns, + { + id: 'action', + header: 'Actions', + cell: item => ( + + {item.state === 'TERMINATING' || item.state === 'TERMINATED' ? ( + <> + + + + ) : item.state === 'RUNNING' ? ( + + ) : item.state === 'STOPPED' ? ( + + ) : item.state === 'STOPPING' ? ( + + ) : ( + '-' + )} + + ), + }, +]; +const columnDefinitionsDropdown: TableProps.ColumnDefinition[] = [ + ...simpleColumns, + { + id: 'action', + header: 'Actions', + cell: item => ( + + + + ), + }, +]; +const columnDefinitionsMixed: TableProps.ColumnDefinition[] = [ + { + id: 'id', + header: 'Task name', + cell: item => {item.id}, + sortingField: 'id', + }, + columnsConfig[1], + { + id: 'dnsName', + header: 'value', + cell: item => item.dnsName || '-', + sortingField: 'dnsName', + }, + { + id: 'action', + header: 'Actions', + cell: item => ( + + + + + ), + }, +]; +const columnDefinitionsOnlyIcons: TableProps.ColumnDefinition[] = [ + ...simpleColumns, + { + id: 'action', + header: 'Actions', + cell: item => ( + + +