From b2d2da488b5639cb43cc210ce64db5419460f1dc Mon Sep 17 00:00:00 2001 From: Aaron Casanova <32409546+aaronccasanova@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:02:34 -0700 Subject: [PATCH] Upgrade `stylelint-polaris` to `stylelint` v16 (#12337) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### WHAT is this pull request doing? This PR upgrades `stylelint-polaris` to `stylelint` v16 and drops support for v15 and v16. As part of this upgrade, the following updates were made: - Upgraded dependencies - `stylelint` to `^16.6.1` - `stylelint-scss` to `^6.3.2` - `@shopify/eslint-plugin` to `^45.0.0` - `@shopify/stylelint-plugin` to `^14.0.0` - `eslint` to `^8.56.0` - `jest-preset-stylelint` to `^7.0.1` - `prettier` to `^3.2.2` - Patched `stylelint` to report errors on async rules. See Stylelint issue for more details: https://github.com/stylelint/stylelint/issues/7820 - Added `--experimental-vm-modules` flag to `jest` calls to enable support for async plugins - Updated relevant `stylelint-polaris` plugins and `stylelint` APIs to be asynchronous - Updated `prettier.format` calls to be asynchronous - Resolved `eslint` and `stylelint` failures after dependency upgrades - Temporarily removed the `styles-insert-stylelint-disable` migration as `result.messages` `node`s are now detached from the `root` AST. Calls such as `node.prev()` and `node.before(comment)` now throw exceptions as the reported nodes don't have access to properties and methods previously exposed. The consensus speaking with @kyledurand and @sophschneider is that we can revisit adding support for this migration if and when it is needed again. ### How to 🎩 🖥 [Local development instructions](https://github.com/Shopify/polaris/blob/main/README.md#install-dependencies-and-build-workspaces) 🗒 [General tophatting guidelines](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting.md) 📄 [Changelog guidelines](https://github.com/Shopify/polaris/blob/main/.github/CONTRIBUTING.md#changelog) ### 🎩 checklist - [ ] Tested a [snapshot](https://github.com/Shopify/polaris/blob/main/documentation/Releasing.md#-snapshot-releases) - [ ] Tested on [mobile](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting.md#cross-browser-testing) - [ ] Tested on [multiple browsers](https://help.shopify.com/en/manual/shopify-admin/supported-browsers) - [ ] Tested for [accessibility](https://github.com/Shopify/polaris/blob/main/documentation/Accessibility%20testing.md) - [ ] Updated the component's `README.md` with documentation changes - [ ] [Tophatted documentation](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting%20documentation.md) changes in the style guide --------- Co-authored-by: Jess Telford Co-authored-by: Kyle Durand --- .changeset/little-impalas-knock.md | 5 + .changeset/tricky-mayflies-push.md | 5 + .eslintrc.js | 3 + .prettierignore | 4 + .stylelintrc.js | 7 + package.json | 17 +- patches/stylelint@16.6.1.patch | 26 + pnpm-lock.yaml | 1914 +++++++++++++---- polaris-migrator/package.json | 6 +- ...styles-insert-stylelint-disable.input.scss | 71 - ...tyles-insert-stylelint-disable.output.scss | 84 - .../tests/test-config.js | 19 - .../tests/transform.test.ts | 17 - .../transform.ts | 146 -- polaris-migrator/src/utilities/check.ts | 6 +- polaris-react/postcss-mixins/button-base.css | 1 + .../ActionList/ActionList.module.css | 2 - .../RollupActions/RollupActions.module.css | 3 - .../SecondaryAction.module.css | 4 +- .../MappedAction/MappedAction.module.css | 3 - polaris-react/src/components/Box/Box.tsx | 18 +- .../src/components/Button/Button.module.css | 8 +- .../components/Checkbox/Checkbox.module.css | 21 +- .../src/components/Choice/Choice.module.css | 1 + .../components/Choice/tests/Choice.test.tsx | 2 +- .../Combobox/tests/Combobox.test.tsx | 13 +- .../components/DataTable/DataTable.module.css | 2 +- .../DatePicker/DatePicker.module.css | 3 - .../components/Weekday/tests/Weekday.test.tsx | 2 +- .../DatePicker/tests/DatePicker.test.tsx | 2 +- .../DescriptionList.module.css | 2 - .../components/DropZone/DropZone.module.css | 1 - .../DropZone/tests/DropZone.test.tsx | 2 +- .../ExceptionList/ExceptionList.module.css | 2 - .../src/components/Filters/Filters.module.css | 1 - .../FilterPill/FilterPill.module.css | 3 +- .../components/FiltersBar/FiltersBar.tsx | 7 +- .../src/components/Frame/Frame.module.css | 5 +- .../ToastManager/ToastManager.module.css | 3 +- .../components/ToastManager/ToastManager.tsx | 9 +- .../IndexTable/IndexTable.module.css | 174 +- .../components/Labelled/Labelled.module.css | 1 - .../ConnectedFilterControl.module.css | 4 - .../LegacyTabs/LegacyTabs.module.css | 6 +- .../LegacyTabs/tests/LegacyTabs.test.tsx | 4 +- .../tests/MediaQueryProvider.test.tsx | 2 - .../Modal/components/Dialog/Dialog.module.css | 4 +- .../Navigation/Navigation.module.css | 24 +- .../src/components/OptionList/OptionList.tsx | 4 +- .../components/Option/Option.module.css | 7 +- .../Page/components/Header/Header.module.css | 9 +- .../Header/components/Title/Title.module.css | 1 - .../tests/PolarisTestProvider.test.tsx | 1 - .../src/components/Popover/Popover.module.css | 4 +- .../PopoverOverlay/PopoverOverlay.tsx | 13 +- .../RadioButton/RadioButton.module.css | 11 +- .../components/DualThumb/DualThumb.module.css | 2 - .../SingleThumb/SingleThumb.module.css | 2 - .../ResourceItem/ResourceItem.module.css | 4 - .../ResourceList/ResourceList.module.css | 9 +- .../src/components/Select/Select.module.css | 12 +- .../components/Select/tests/Select.test.tsx | 4 +- .../ShadowBevel/ShadowBevel.module.css | 2 - .../src/components/Tabs/Tabs.module.css | 1 - .../src/components/Tabs/tests/Tabs.test.tsx | 4 +- .../src/components/Tag/Tag.module.css | 8 +- .../components/TextField/TextField.module.css | 18 +- .../components/Resizer/tests/Resizer.test.tsx | 8 +- .../TextField/tests/TextField.test.tsx | 12 +- .../components/Thumbnail/Thumbnail.module.css | 1 - .../TooltipOverlay/TooltipOverlay.module.css | 1 - .../src/components/TopBar/TopBar.module.css | 5 +- .../SearchField/SearchField.module.css | 7 +- .../tests/use-is-after-initial-mount.test.tsx | 1 - .../src/utilities/use-event-listener.ts | 16 +- .../playroom/FrameComponent.tsx | 8 +- .../PatternsExample/PatternsExample.tsx | 140 +- stylelint-polaris/package.json | 6 +- stylelint-polaris/plugins/coverage/index.js | 4 +- .../index.js | 4 +- .../plugins/media-query-allowed-list/index.js | 4 +- 81 files changed, 1879 insertions(+), 1123 deletions(-) create mode 100644 .changeset/little-impalas-knock.md create mode 100644 .changeset/tricky-mayflies-push.md create mode 100644 patches/stylelint@16.6.1.patch delete mode 100644 polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/styles-insert-stylelint-disable.input.scss delete mode 100644 polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/styles-insert-stylelint-disable.output.scss delete mode 100644 polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/test-config.js delete mode 100644 polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/transform.test.ts delete mode 100644 polaris-migrator/src/migrations/styles-insert-stylelint-disable/transform.ts diff --git a/.changeset/little-impalas-knock.md b/.changeset/little-impalas-knock.md new file mode 100644 index 00000000000..0f3b7faa581 --- /dev/null +++ b/.changeset/little-impalas-knock.md @@ -0,0 +1,5 @@ +--- +'@shopify/stylelint-polaris': major +--- + +Dropped support for `stylelint` v14 and v15 diff --git a/.changeset/tricky-mayflies-push.md b/.changeset/tricky-mayflies-push.md new file mode 100644 index 00000000000..25c2d1eb855 --- /dev/null +++ b/.changeset/tricky-mayflies-push.md @@ -0,0 +1,5 @@ +--- +'@shopify/polaris-migrator': major +--- + +Removed `styles-insert-stylelint-disable` migration diff --git a/.eslintrc.js b/.eslintrc.js index d50397e9ab2..18728f62e62 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -69,6 +69,7 @@ module.exports = { '@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/consistent-type-exports': 'error', '@typescript-eslint/naming-convention': 'off', + '@typescript-eslint/consistent-indexed-object-style': 'off', 'jsx-a11y/label-has-for': [ 2, { @@ -86,6 +87,8 @@ module.exports = { 'jsx-a11y/click-events-have-key-events': 'off', 'jsx-a11y/no-noninteractive-element-interactions': 'off', 'jsx-a11y/no-noninteractive-element-to-interactive-role': 'off', + 'jest/no-conditional-in-test': 'off', + 'jest/no-standalone-expect': 'off', 'no-restricted-imports': [ 'error', { diff --git a/.prettierignore b/.prettierignore index e41b0709127..456affe98a4 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,8 @@ .next +pnpm-lock.yaml +**/CHANGELOG.md +/polaris-migrator/src/migrations/**/tests/*.scss +/polaris-migrator/templates/**/*.hbs dist node_modules /polaris-react/build diff --git a/.stylelintrc.js b/.stylelintrc.js index 0723273ba25..4584429dcf2 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -9,6 +9,13 @@ module.exports = { 'value-keyword-case': ['lower', {camelCaseSvgKeywords: true}], 'at-rule-no-unknown': null, 'scss/at-rule-no-unknown': true, + 'selector-max-class': 5, + 'selector-max-combinators': 5, + 'selector-max-compound-selectors': 5, + 'selector-max-specificity': '0,5,0', + // Disabling this rule as it's not forward-compatible with new CSS rules + // that get added. See: https://github.com/stylelint/stylelint/issues/7630 + 'declaration-block-no-redundant-longhand-properties': null, }, overrides: [ { diff --git a/package.json b/package.json index 4ff17dee4ef..66b47d39243 100644 --- a/package.json +++ b/package.json @@ -40,32 +40,37 @@ "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-virtual": "^3.0.1", "@rollup/pluginutils": "^5.0.2", - "@shopify/eslint-plugin": "^42.0.1", - "@shopify/stylelint-plugin": "^11.0.0", + "@shopify/eslint-plugin": "^45.0.0", + "@shopify/stylelint-plugin": "^14.0.0", "@shopify/typescript-configs": "^5.1.0", "@size-limit/preset-small-lib": "^5.0.3", "@types/jest": "^29.5.12", "@types/node": "^20.10.0", "babel-loader": "^9.1.2", - "eslint": "^8.3.0", + "eslint": "^8.56.0", "eslint-plugin-storybook": "^0.8.0", "execa": "^5.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "jest-preset-stylelint": "^5.0.3", + "jest-preset-stylelint": "^7.0.1", "jest-watch-typeahead": "^2.2.2", "js-yaml": "^4.1.0", "npm-run-all": "^4.1.5", "postinstall-postinstall": "^2.1.0", - "prettier": "^2.5.0", + "prettier": "^3.3.2", "rollup": "^3.12.0", "rollup-plugin-node-externals": "^5.1.0", "size-limit": "^5.0.3", - "stylelint": "^14.15.0", + "stylelint": "^16.6.1", "ts-node": "^10.7.0", "turbo": "^1.11.1", "typescript": "^4.9.3" }, + "pnpm": { + "patchedDependencies": { + "stylelint@16.6.1": "patches/stylelint@16.6.1.patch" + } + }, "size-limit": [ { "name": "polaris-react-cjs", diff --git a/patches/stylelint@16.6.1.patch b/patches/stylelint@16.6.1.patch new file mode 100644 index 00000000000..f34b75a88a3 --- /dev/null +++ b/patches/stylelint@16.6.1.patch @@ -0,0 +1,26 @@ +diff --git a/lib/utils/checkAgainstRule.cjs b/lib/utils/checkAgainstRule.cjs +index 862f0c77f2ec60a26ac670230c531be88cead26f..e2c40a2009941ccd9e6c4a8f49f654c8e6ae1ef3 100644 +--- a/lib/utils/checkAgainstRule.cjs ++++ b/lib/utils/checkAgainstRule.cjs +@@ -45,7 +45,7 @@ async function checkAgainstRule(options, callback) { + const [primary, secondary] = settings; + const ruleFunc = rule(primary, secondary || {}, context); + +- ruleFunc( ++ await ruleFunc( + root, + + // NOTE: This temporary PostCSS result doesn't have a property for Stylelint use. +diff --git a/lib/utils/checkAgainstRule.mjs b/lib/utils/checkAgainstRule.mjs +index c82c6c82734ba7a41f59a57aa7a89f149378599f..168270665e953635e3cb223fe5ebdbbbaf69ff54 100644 +--- a/lib/utils/checkAgainstRule.mjs ++++ b/lib/utils/checkAgainstRule.mjs +@@ -42,7 +42,7 @@ export default async function checkAgainstRule(options, callback) { + const [primary, secondary] = settings; + const ruleFunc = rule(primary, secondary || {}, context); + +- ruleFunc( ++ await ruleFunc( + root, + + // NOTE: This temporary PostCSS result doesn't have a property for Stylelint use. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9396558aad3..7183a7da935 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + stylelint@16.6.1: + hash: wls6x7gbpq4g6z7ydobqcmwpgu + path: patches/stylelint@16.6.1.patch + importers: .: @@ -60,11 +65,11 @@ importers: specifier: ^5.0.2 version: 5.0.2(rollup@3.29.4) '@shopify/eslint-plugin': - specifier: ^42.0.1 - version: 42.0.1(@babel/core@7.23.6)(eslint@8.10.0)(jest@29.7.0)(prettier@2.8.8)(typescript@4.9.3) + specifier: ^45.0.0 + version: 45.0.0(@babel/core@7.23.6)(eslint@8.57.0)(jest@29.7.0)(prettier@3.3.2)(typescript@4.9.3) '@shopify/stylelint-plugin': - specifier: ^11.0.0 - version: 11.0.1(prettier@2.8.8)(stylelint@14.15.0) + specifier: ^14.0.0 + version: 14.0.0(prettier@3.3.2)(stylelint@16.6.1) '@shopify/typescript-configs': specifier: ^5.1.0 version: 5.1.0 @@ -81,11 +86,11 @@ importers: specifier: ^9.1.2 version: 9.1.2(@babel/core@7.23.6)(webpack@5.76.0) eslint: - specifier: ^8.3.0 - version: 8.10.0 + specifier: ^8.56.0 + version: 8.57.0 eslint-plugin-storybook: specifier: ^0.8.0 - version: 0.8.0(eslint@8.10.0)(typescript@4.9.3) + version: 0.8.0(eslint@8.57.0)(typescript@4.9.3) execa: specifier: ^5.0.0 version: 5.1.1 @@ -96,8 +101,8 @@ importers: specifier: ^29.7.0 version: 29.7.0 jest-preset-stylelint: - specifier: ^5.0.3 - version: 5.0.4(jest@29.7.0) + specifier: ^7.0.1 + version: 7.0.1(jest@29.7.0) jest-watch-typeahead: specifier: ^2.2.2 version: 2.2.2(jest@29.7.0) @@ -111,8 +116,8 @@ importers: specifier: ^2.1.0 version: 2.1.0 prettier: - specifier: ^2.5.0 - version: 2.8.8 + specifier: ^3.3.2 + version: 3.3.2 rollup: specifier: ^3.12.0 version: 3.29.4 @@ -123,8 +128,8 @@ importers: specifier: ^5.0.3 version: 5.0.5 stylelint: - specifier: ^14.15.0 - version: 14.15.0 + specifier: ^16.6.1 + version: 16.6.1(patch_hash=wls6x7gbpq4g6z7ydobqcmwpgu)(typescript@4.9.3) ts-node: specifier: ^10.7.0 version: 10.7.0(@types/node@20.12.5)(typescript@4.9.3) @@ -224,8 +229,8 @@ importers: specifier: ^4.2.0 version: 4.2.0 stylelint: - specifier: ^14.15.0 - version: 14.15.0 + specifier: ^16.6.1 + version: 16.6.1(patch_hash=wls6x7gbpq4g6z7ydobqcmwpgu)(typescript@4.9.3) devDependencies: '@rollup/plugin-babel': specifier: ^5.3.1 @@ -255,8 +260,8 @@ importers: specifier: ^0.0.5 version: 0.0.5(plop@3.1.1) prettier: - specifier: ^2.7.1 - version: 2.8.8 + specifier: ^3.3.2 + version: 3.3.2 type-fest: specifier: ^2.19.0 version: 2.19.0 @@ -699,16 +704,16 @@ importers: version: 0.2.3 postcss-scss: specifier: ^4.0.9 - version: 4.0.9(postcss@8.4.32) + version: 4.0.9(postcss@8.4.39) postcss-value-parser: specifier: ^4.2.0 version: 4.2.0 stylelint: - specifier: ^14.15.0 || ^15.0.0 - version: 14.15.0 + specifier: ^16.0.0 + version: 16.6.1(patch_hash=wls6x7gbpq4g6z7ydobqcmwpgu)(typescript@4.9.3) stylelint-scss: - specifier: ^4.4.0 - version: 4.7.0(stylelint@14.15.0) + specifier: ^6.3.2 + version: 6.3.2(stylelint@16.6.1) packages: @@ -762,7 +767,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.24.2 - picocolors: 1.0.0 + picocolors: 1.0.1 /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} @@ -812,7 +817,7 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.17.0(@babel/core@7.23.6)(eslint@8.10.0): + /@babel/eslint-parser@7.17.0(@babel/core@7.23.6)(eslint@8.57.0): resolution: {integrity: sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -820,21 +825,21 @@ packages: eslint: ^7.5.0 || ^8.0.0 dependencies: '@babel/core': 7.23.6 - eslint: 8.10.0 + eslint: 8.57.0 eslint-scope: 5.1.1 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.17.7(@babel/eslint-parser@7.17.0)(eslint@8.10.0): + /@babel/eslint-plugin@7.17.7(@babel/eslint-parser@7.17.0)(eslint@8.57.0): resolution: {integrity: sha512-JATUoJJXSgwI0T8juxWYtK1JSgoLpIGUsCHIv+NMXcUDA2vIe6nvAHR9vnuJgs/P1hOFw7vPwibixzfqBBLIVw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/eslint-parser': 7.17.0(@babel/core@7.23.6)(eslint@8.10.0) - eslint: 8.10.0 + '@babel/eslint-parser': 7.17.0(@babel/core@7.23.6)(eslint@8.57.0) + eslint: 8.57.0 eslint-rule-composer: 0.3.0 dev: true @@ -1147,7 +1152,7 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 /@babel/node@7.20.7(@babel/core@7.23.6): resolution: {integrity: sha512-AQt3gVcP+fpFuoFn4FmIW/+5JovvEoA9og4Y1LrRw0pv3jkl4tujZMMy3X/3ugjLrEy3k1aNywo3JIl3g+jVXQ==} @@ -3422,11 +3427,33 @@ packages: '@csstools/css-tokenizer': 2.2.1 dev: true + /@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.3): + resolution: {integrity: sha512-qvBMcOU/uWFCH/VO0MYe0AMs0BGMWAt6FTryMbFIKYtZtVnqTZtT8ktv5o718llkaGZWomJezJZjq3vJDHeJNQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.3.2 + dependencies: + '@csstools/css-tokenizer': 2.3.3 + /@csstools/css-tokenizer@2.2.1: resolution: {integrity: sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==} engines: {node: ^14 || ^16 || >=18} dev: true + /@csstools/css-tokenizer@2.3.3: + resolution: {integrity: sha512-fTaF0vRcXVJ4cmwg8nHofydDjitKMDBzC8cCu+O/Lg13C4PdkC15GVjGpbmWauOOnhomVSTg5I5LpLJFJE2Hfw==} + engines: {node: ^14 || ^16 || >=18} + + /@csstools/media-query-list-parser@2.1.12(@csstools/css-parser-algorithms@2.7.0)(@csstools/css-tokenizer@2.3.3): + resolution: {integrity: sha512-t1/CdyVJzOQUiGUcIBXRzTAkWTFPxiPnoKwowKW2z9Uj78c2bBWI/X94BeVfUwVq1xtCjD7dnO8kS6WONgp8Jw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.7.0 + '@csstools/css-tokenizer': ^2.3.2 + dependencies: + '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3) + '@csstools/css-tokenizer': 2.3.3 + /@csstools/media-query-list-parser@2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): resolution: {integrity: sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==} engines: {node: ^14 || ^16 || >=18} @@ -3447,16 +3474,6 @@ packages: postcss: 8.4.32 dev: true - /@csstools/selector-specificity@2.0.2(postcss-selector-parser@6.0.15)(postcss@8.4.32): - resolution: {integrity: sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==} - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - postcss-selector-parser: ^6.0.10 - dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 - /@csstools/selector-specificity@3.0.2(postcss-selector-parser@6.0.15): resolution: {integrity: sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==} engines: {node: ^14 || ^16 || >=18} @@ -3466,11 +3483,22 @@ packages: postcss-selector-parser: 6.0.15 dev: true + /@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.0): + resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.1.0 + /@discoveryjs/json-ext@0.5.7: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} dev: true + /@dual-bundle/import-meta-resolve@4.1.0: + resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} + /@emotion/hash@0.8.0: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} dev: true @@ -3695,18 +3723,28 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.3.0(eslint@8.10.0): + /@eslint-community/eslint-utils@4.3.0(eslint@8.57.0): resolution: {integrity: sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.10.0 + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 eslint-visitor-keys: 3.3.0 dev: true - /@eslint-community/regexpp@4.4.1: - resolution: {integrity: sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==} + /@eslint-community/regexpp@4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -3727,6 +3765,28 @@ packages: - supports-color dev: true + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@esm2cjs/aggregate-error@4.0.1: resolution: {integrity: sha512-bcKpYqFlH6BJhIV0ru9zymGCNZ7WB6F9YdBADaBPkMM2hewT0xYSHni728KYddb11XrVGHEC0s3TrtD+Mj+W7w==} engines: {node: '>=12'} @@ -3825,6 +3885,18 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /@humanwhocodes/config-array@0.9.5: resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} engines: {node: '>=10.10.0'} @@ -3836,17 +3908,27 @@ packages: - supports-color dev: true + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + dev: true + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 @@ -4748,6 +4830,11 @@ packages: dev: true optional: true + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true @@ -4990,37 +5077,38 @@ packages: engines: {node: ^14.17.0 || >=16.0.0} dev: true - /@shopify/eslint-plugin@42.0.1(@babel/core@7.23.6)(eslint@8.10.0)(jest@29.7.0)(prettier@2.8.8)(typescript@4.9.3): - resolution: {integrity: sha512-rtWKd0hdXkyhYo8XkG7TYYVFCIQV8cJ2zCQHaYmsq5p7q1EZ9itXoOcNFzrNjSmiqXoDjCDpBj+33bcZYHKG3Q==} + /@shopify/eslint-plugin@45.0.0(@babel/core@7.23.6)(eslint@8.57.0)(jest@29.7.0)(prettier@3.3.2)(typescript@4.9.3): + resolution: {integrity: sha512-aRgVkl+EovLk6OC4WzT+C6hgAyta5VReEIdetpe+/bJhVovlqbFjYa3yHGvEM4VuWv8sim7XH2VV3ZsDiwpgvQ==, tarball: https://registry.npmjs.org/@shopify/eslint-plugin/-/eslint-plugin-45.0.0.tgz} peerDependencies: - eslint: ^8.3.0 + eslint: ^8.56.0 dependencies: - '@babel/eslint-parser': 7.17.0(@babel/core@7.23.6)(eslint@8.10.0) - '@babel/eslint-plugin': 7.17.7(@babel/eslint-parser@7.17.0)(eslint@8.10.0) - '@typescript-eslint/eslint-plugin': 5.56.0(@typescript-eslint/parser@5.56.0)(eslint@8.10.0)(typescript@4.9.3) - '@typescript-eslint/parser': 5.56.0(eslint@8.10.0)(typescript@4.9.3) + '@babel/eslint-parser': 7.17.0(@babel/core@7.23.6)(eslint@8.57.0) + '@babel/eslint-plugin': 7.17.7(@babel/eslint-parser@7.17.0)(eslint@8.57.0) + '@typescript-eslint/eslint-plugin': 7.15.0(@typescript-eslint/parser@7.15.0)(eslint@8.57.0)(typescript@4.9.3) + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@4.9.3) change-case: 4.1.2 common-tags: 1.8.2 doctrine: 2.1.0 - eslint: 8.10.0 - eslint-config-prettier: 8.5.0(eslint@8.10.0) - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.56.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.10.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.10.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.56.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.10.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.56.0)(eslint@8.10.0)(jest@29.7.0)(typescript@4.9.3) - eslint-plugin-jest-formatting: 3.1.0(eslint@8.10.0) - eslint-plugin-jsx-a11y: 6.5.1(eslint@8.10.0) - eslint-plugin-node: 11.1.0(eslint@8.10.0) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.5.0)(eslint@8.10.0)(prettier@2.8.8) - eslint-plugin-promise: 6.0.0(eslint@8.10.0) - eslint-plugin-react: 7.31.10(eslint@8.10.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.10.0) - eslint-plugin-sort-class-members: 1.14.1(eslint@8.10.0) + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.15.0)(eslint@8.57.0) + eslint-plugin-jest: 28.6.0(@typescript-eslint/eslint-plugin@7.15.0)(eslint@8.57.0)(jest@29.7.0)(typescript@4.9.3) + eslint-plugin-jest-formatting: 3.1.0(eslint@8.57.0) + eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) + eslint-plugin-node: 11.1.0(eslint@8.57.0) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.3.2) + eslint-plugin-promise: 6.4.0(eslint@8.57.0) + eslint-plugin-react: 7.34.3(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + eslint-plugin-sort-class-members: 1.20.0(eslint@8.57.0) jsx-ast-utils: 3.2.2 pkg-dir: 5.0.0 pluralize: 8.0.0 transitivePeerDependencies: - '@babel/core' + - '@types/eslint' - eslint-import-resolver-node - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -5069,18 +5157,17 @@ packages: react-reconciler: 0.28.0(react@18.2.0) dev: true - /@shopify/stylelint-plugin@11.0.1(prettier@2.8.8)(stylelint@14.15.0): - resolution: {integrity: sha512-5QBUaI7uFtXiiRVmH42dUgbKYfoHLc0+9sIaXNvNu2nDLZLxMoXAdj3RNOWJknj4xXETToyBTRJKRasv4CK4iA==} + /@shopify/stylelint-plugin@14.0.0(prettier@3.3.2)(stylelint@16.6.1): + resolution: {integrity: sha512-2URgR6E+G7zUR5VjBxsLhEUwg+U6hNoOJOekuNUswJAvSlWYk38rca78FYDTBRZ2P7JW11vb61ODVEcty9CMaw==, tarball: https://registry.npmjs.org/@shopify/stylelint-plugin/-/stylelint-plugin-14.0.0.tgz} peerDependencies: - stylelint: '>=14.1.0' + stylelint: '>=16.0.0' dependencies: - postcss: 8.4.32 - postcss-scss: 4.0.9(postcss@8.4.32) - stylelint: 14.15.0 - stylelint-config-prettier: 9.0.3(stylelint@14.15.0) - stylelint-order: 5.0.0(stylelint@14.15.0) - stylelint-prettier: 2.0.0(prettier@2.8.8)(stylelint@14.15.0) - stylelint-scss: 4.7.0(stylelint@14.15.0) + postcss: 8.4.39 + postcss-scss: 4.0.9(postcss@8.4.39) + stylelint: 16.6.1(patch_hash=wls6x7gbpq4g6z7ydobqcmwpgu)(typescript@4.9.3) + stylelint-order: 6.0.4(stylelint@16.6.1) + stylelint-prettier: 5.0.0(prettier@3.3.2)(stylelint@16.6.1) + stylelint-scss: 6.3.2(stylelint@16.6.1) transitivePeerDependencies: - prettier dev: true @@ -5389,7 +5476,7 @@ packages: jscodeshift: 0.15.1(@babel/preset-env@7.23.6) leven: 3.1.0 ora: 5.4.1 - prettier: 3.2.5 + prettier: 3.3.2 prompts: 2.4.2 read-pkg-up: 7.0.1 semver: 7.5.4 @@ -5428,7 +5515,7 @@ packages: globby: 11.1.0 jscodeshift: 0.15.1(@babel/preset-env@7.23.6) lodash: 4.17.21 - prettier: 3.2.5 + prettier: 3.3.2 recast: 0.23.6 tiny-invariant: 1.3.1 transitivePeerDependencies: @@ -6605,6 +6692,7 @@ packages: /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true /@types/parse5@5.0.3: resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} @@ -6795,62 +6883,69 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.56.0(@typescript-eslint/parser@5.56.0)(eslint@8.10.0)(typescript@4.9.3): - resolution: {integrity: sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0)(eslint@8.57.0)(typescript@4.9.3): + resolution: {integrity: sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.4.1 - '@typescript-eslint/parser': 5.56.0(eslint@8.10.0)(typescript@4.9.3) - '@typescript-eslint/scope-manager': 5.56.0 - '@typescript-eslint/type-utils': 5.56.0(eslint@8.10.0)(typescript@4.9.3) - '@typescript-eslint/utils': 5.56.0(eslint@8.10.0)(typescript@4.9.3) - debug: 4.3.4 - eslint: 8.10.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.0 - natural-compare-lite: 1.4.0 - semver: 7.5.4 - tsutils: 3.21.0(typescript@4.9.3) + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@4.9.3) + '@typescript-eslint/scope-manager': 7.15.0 + '@typescript-eslint/type-utils': 7.15.0(eslint@8.57.0)(typescript@4.9.3) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@4.9.3) + '@typescript-eslint/visitor-keys': 7.15.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@4.9.3) typescript: 4.9.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.56.0(eslint@8.10.0)(typescript@4.9.3): - resolution: {integrity: sha512-sxWuj0eO5nItmKgZmsBbChVt90EhfkuncDCPbLAVeEJ+SCjXMcZN3AhhNbxed7IeGJ4XwsdL3/FMvD4r+FLqqA==} + /@typescript-eslint/parser@5.56.0(eslint@8.10.0)(typescript@4.9.3): + resolution: {integrity: sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/utils': 5.56.0(eslint@8.10.0)(typescript@4.9.3) + '@typescript-eslint/scope-manager': 5.56.0 + '@typescript-eslint/types': 5.56.0 + '@typescript-eslint/typescript-estree': 5.56.0(typescript@4.9.3) + debug: 4.3.4 eslint: 8.10.0 + typescript: 4.9.3 transitivePeerDependencies: - supports-color - - typescript dev: true - /@typescript-eslint/parser@5.56.0(eslint@8.10.0)(typescript@4.9.3): - resolution: {integrity: sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@4.9.3): + resolution: {integrity: sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.56.0 - '@typescript-eslint/types': 5.56.0 - '@typescript-eslint/typescript-estree': 5.56.0(typescript@4.9.3) + '@typescript-eslint/scope-manager': 7.15.0 + '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/typescript-estree': 7.15.0(typescript@4.9.3) + '@typescript-eslint/visitor-keys': 7.15.0 debug: 4.3.4 - eslint: 8.10.0 + eslint: 8.57.0 typescript: 4.9.3 transitivePeerDependencies: - supports-color @@ -6872,21 +6967,29 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.56.0(eslint@8.10.0)(typescript@4.9.3): - resolution: {integrity: sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@7.15.0: + resolution: {integrity: sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/visitor-keys': 7.15.0 + dev: true + + /@typescript-eslint/type-utils@7.15.0(eslint@8.57.0)(typescript@4.9.3): + resolution: {integrity: sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: '*' + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.56.0(typescript@4.9.3) - '@typescript-eslint/utils': 5.56.0(eslint@8.10.0)(typescript@4.9.3) + '@typescript-eslint/typescript-estree': 7.15.0(typescript@4.9.3) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@4.9.3) debug: 4.3.4 - eslint: 8.10.0 - tsutils: 3.21.0(typescript@4.9.3) + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@4.9.3) typescript: 4.9.3 transitivePeerDependencies: - supports-color @@ -6902,6 +7005,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types@7.15.0: + resolution: {integrity: sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.56.0(typescript@4.9.3): resolution: {integrity: sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6944,39 +7052,41 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.56.0(eslint@8.10.0)(typescript@4.9.3): - resolution: {integrity: sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@7.15.0(typescript@4.9.3): + resolution: {integrity: sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@eslint-community/eslint-utils': 4.3.0(eslint@8.10.0) - '@types/json-schema': 7.0.11 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 5.56.0 - '@typescript-eslint/types': 5.56.0 - '@typescript-eslint/typescript-estree': 5.56.0(typescript@4.9.3) - eslint: 8.10.0 - eslint-scope: 5.1.1 - semver: 7.5.4 + '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/visitor-keys': 7.15.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@4.9.3) + typescript: 4.9.3 transitivePeerDependencies: - supports-color - - typescript dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.10.0)(typescript@4.9.3): + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@4.9.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.3.0(eslint@8.10.0) + '@eslint-community/eslint-utils': 4.3.0(eslint@8.57.0) '@types/json-schema': 7.0.11 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.3) - eslint: 8.10.0 + eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -6984,6 +7094,22 @@ packages: - typescript dev: true + /@typescript-eslint/utils@7.15.0(eslint@8.57.0)(typescript@4.9.3): + resolution: {integrity: sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.15.0 + '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/typescript-estree': 7.15.0(typescript@4.9.3) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@5.56.0: resolution: {integrity: sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7000,6 +7126,18 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /@typescript-eslint/visitor-keys@7.15.0: + resolution: {integrity: sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.15.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + /@use-it/event-listener@0.1.7(react@18.2.0): resolution: {integrity: sha512-hgfExDzUU9uTRTPDCpw2s9jWTxcxmpJya3fK5ADpf5VDpSy8WYwY/kh28XE0tUcbsljeP8wfan48QvAQTSSa3Q==} peerDependencies: @@ -7673,7 +7811,6 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true /ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} @@ -7814,6 +7951,14 @@ packages: is-array-buffer: 3.0.2 dev: true + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true + /array-differ@1.0.0: resolution: {integrity: sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==} engines: {node: '>=0.10.0'} @@ -7848,6 +7993,18 @@ packages: is-string: 1.0.7 dev: true + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: true + /array-slice@1.1.0: resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} engines: {node: '>=0.10.0'} @@ -7873,6 +8030,30 @@ packages: resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} engines: {node: '>=0.10.0'} + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + /array.prototype.flat@1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} @@ -7883,6 +8064,16 @@ packages: es-shim-unscopables: 1.0.0 dev: true + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.0 + dev: true + /array.prototype.flatmap@1.3.1: resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} engines: {node: '>= 0.4'} @@ -7893,6 +8084,50 @@ packages: es-shim-unscopables: 1.0.0 dev: true + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + dev: true + /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -7938,6 +8173,10 @@ packages: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true + /ast-types@0.14.2: resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} engines: {node: '>=4'} @@ -8022,6 +8261,11 @@ packages: engines: {node: '>=4'} dev: true + /axe-core@4.9.1: + resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} + engines: {node: '>=4'} + dev: true + /axe-html-reporter@2.2.3(axe-core@4.9.0): resolution: {integrity: sha512-io8aCEt4fJvv43W+33n3zEa8rdplH5Ti2v5fOnth3GBKLhLHarNs7jj46xGfpnGnpaNrz23/tXPHC3HbwTzwwA==} engines: {node: '>=8.9.0'} @@ -8070,6 +8314,12 @@ packages: resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} dev: true + /axobject-query@3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + dependencies: + deep-equal: 2.2.3 + dev: true + /azure-devops-node-api@11.1.1: resolution: {integrity: sha512-XDG91XzLZ15reP12s3jFkKS8oiagSICjnLwxEYieme4+4h3ZveFOFRA4iYIG40RyHXsiI0mefFYYMFIJbMpWcg==} dependencies: @@ -8572,6 +8822,12 @@ packages: dependencies: fill-range: 7.0.1 + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + /breakword@1.0.5: resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} dependencies: @@ -9756,6 +10012,22 @@ packages: parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 + dev: true + + /cosmiconfig@9.0.0(typescript@4.9.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + typescript: 4.9.3 /create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} @@ -9889,18 +10161,18 @@ packages: engines: {node: '>=4'} dev: true - /css-declaration-sorter@6.2.2(postcss@8.4.32): + /css-declaration-sorter@6.2.2(postcss@8.4.39): resolution: {integrity: sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 dev: true - /css-functions-list@3.1.0: - resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} - engines: {node: '>=12.22'} + /css-functions-list@3.2.2: + resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==} + engines: {node: '>=12 || >=16'} /css-in-js-utils@2.0.1: resolution: {integrity: sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==} @@ -9977,6 +10249,13 @@ packages: source-map: 0.6.1 dev: true + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + /css-what@5.1.0: resolution: {integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==} engines: {node: '>= 6'} @@ -9996,62 +10275,62 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default@5.2.7(postcss@8.4.32): + /cssnano-preset-default@5.2.7(postcss@8.4.39): resolution: {integrity: sha512-JiKP38ymZQK+zVKevphPzNSGHSlTI+AOwlasoSRtSVMUU285O7/6uZyd5NbW92ZHp41m0sSHe6JoZosakj63uA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.2.2(postcss@8.4.32) - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 - postcss-calc: 8.2.4(postcss@8.4.32) - postcss-colormin: 5.3.0(postcss@8.4.32) - postcss-convert-values: 5.1.0(postcss@8.4.32) - postcss-discard-comments: 5.1.1(postcss@8.4.32) - postcss-discard-duplicates: 5.1.0(postcss@8.4.32) - postcss-discard-empty: 5.1.1(postcss@8.4.32) - postcss-discard-overridden: 5.1.0(postcss@8.4.32) - postcss-merge-longhand: 5.1.4(postcss@8.4.32) - postcss-merge-rules: 5.1.1(postcss@8.4.32) - postcss-minify-font-values: 5.1.0(postcss@8.4.32) - postcss-minify-gradients: 5.1.1(postcss@8.4.32) - postcss-minify-params: 5.1.2(postcss@8.4.32) - postcss-minify-selectors: 5.2.0(postcss@8.4.32) - postcss-normalize-charset: 5.1.0(postcss@8.4.32) - postcss-normalize-display-values: 5.1.0(postcss@8.4.32) - postcss-normalize-positions: 5.1.0(postcss@8.4.32) - postcss-normalize-repeat-style: 5.1.0(postcss@8.4.32) - postcss-normalize-string: 5.1.0(postcss@8.4.32) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.32) - postcss-normalize-unicode: 5.1.0(postcss@8.4.32) - postcss-normalize-url: 5.1.0(postcss@8.4.32) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.32) - postcss-ordered-values: 5.1.1(postcss@8.4.32) - postcss-reduce-initial: 5.1.0(postcss@8.4.32) - postcss-reduce-transforms: 5.1.0(postcss@8.4.32) - postcss-svgo: 5.1.0(postcss@8.4.32) - postcss-unique-selectors: 5.1.1(postcss@8.4.32) - dev: true - - /cssnano-utils@3.1.0(postcss@8.4.32): + css-declaration-sorter: 6.2.2(postcss@8.4.39) + cssnano-utils: 3.1.0(postcss@8.4.39) + postcss: 8.4.39 + postcss-calc: 8.2.4(postcss@8.4.39) + postcss-colormin: 5.3.0(postcss@8.4.39) + postcss-convert-values: 5.1.0(postcss@8.4.39) + postcss-discard-comments: 5.1.1(postcss@8.4.39) + postcss-discard-duplicates: 5.1.0(postcss@8.4.39) + postcss-discard-empty: 5.1.1(postcss@8.4.39) + postcss-discard-overridden: 5.1.0(postcss@8.4.39) + postcss-merge-longhand: 5.1.4(postcss@8.4.39) + postcss-merge-rules: 5.1.1(postcss@8.4.39) + postcss-minify-font-values: 5.1.0(postcss@8.4.39) + postcss-minify-gradients: 5.1.1(postcss@8.4.39) + postcss-minify-params: 5.1.2(postcss@8.4.39) + postcss-minify-selectors: 5.2.0(postcss@8.4.39) + postcss-normalize-charset: 5.1.0(postcss@8.4.39) + postcss-normalize-display-values: 5.1.0(postcss@8.4.39) + postcss-normalize-positions: 5.1.0(postcss@8.4.39) + postcss-normalize-repeat-style: 5.1.0(postcss@8.4.39) + postcss-normalize-string: 5.1.0(postcss@8.4.39) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.39) + postcss-normalize-unicode: 5.1.0(postcss@8.4.39) + postcss-normalize-url: 5.1.0(postcss@8.4.39) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.39) + postcss-ordered-values: 5.1.1(postcss@8.4.39) + postcss-reduce-initial: 5.1.0(postcss@8.4.39) + postcss-reduce-transforms: 5.1.0(postcss@8.4.39) + postcss-svgo: 5.1.0(postcss@8.4.39) + postcss-unique-selectors: 5.1.1(postcss@8.4.39) + dev: true + + /cssnano-utils@3.1.0(postcss@8.4.39): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 dev: true - /cssnano@5.1.7(postcss@8.4.32): + /cssnano@5.1.7(postcss@8.4.39): resolution: {integrity: sha512-pVsUV6LcTXif7lvKKW9ZrmX+rGRzxkEdJuVJcp5ftUjWITgwam5LMZOgaTvUrWPkcORBey6he7JKb4XAJvrpKg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.7(postcss@8.4.32) + cssnano-preset-default: 5.2.7(postcss@8.4.39) lilconfig: 2.0.5 - postcss: 8.4.32 + postcss: 8.4.39 yaml: 1.10.2 dev: true @@ -10148,16 +10427,43 @@ packages: whatwg-url: 11.0.0 dev: true - /dataloader@1.4.0: - resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 dev: true - /datauri@3.0.0: - resolution: {integrity: sha512-NeDFuUPV1YCpCn8MUIcDk1QnuyenUHs7f4Q5P0n9FFA0neKFrfEH9esR+YMW95BplbYfdmjbs0Pl/ZGAaM2QHQ==} - engines: {node: '>= 8'} + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} dependencies: - image-size: 0.8.3 - mimer: 1.1.0 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + dev: true + + /datauri@3.0.0: + resolution: {integrity: sha512-NeDFuUPV1YCpCn8MUIcDk1QnuyenUHs7f4Q5P0n9FFA0neKFrfEH9esR+YMW95BplbYfdmjbs0Pl/ZGAaM2QHQ==} + engines: {node: '>= 8'} + dependencies: + image-size: 0.8.3 + mimer: 1.1.0 dev: false /date-fns@2.30.0: @@ -10844,6 +11150,10 @@ packages: engines: {node: '>=0.12'} dev: true + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + /envinfo@7.11.0: resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==} engines: {node: '>=4'} @@ -10917,6 +11227,58 @@ packages: which-typed-array: 1.1.9 dev: true + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.2 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + /es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -10943,10 +11305,37 @@ packages: stop-iteration-iterator: 1.0.0 dev: true + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: true + /es-module-lexer@0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} dev: true + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true + /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -10956,12 +11345,27 @@ packages: has-tostringtag: 1.0.0 dev: true + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + dev: true + /es-shim-unscopables@1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.3 dev: true + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.1 + dev: true + /es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -11089,7 +11493,7 @@ packages: eslint: 8.10.0 eslint-import-resolver-node: 0.3.7 eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.10.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.56.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.10.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@7.15.0)(eslint@8.10.0) eslint-plugin-jsx-a11y: 6.5.1(eslint@8.10.0) eslint-plugin-react: 7.31.10(eslint@8.10.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.10.0) @@ -11099,13 +11503,13 @@ packages: - supports-color dev: true - /eslint-config-prettier@8.5.0(eslint@8.10.0): - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.10.0 + eslint: 8.57.0 dev: true /eslint-import-resolver-node@0.3.7: @@ -11118,6 +11522,16 @@ packages: - supports-color dev: true + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.27.5)(eslint@8.10.0): resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} engines: {node: '>=4'} @@ -11127,7 +11541,7 @@ packages: dependencies: debug: 4.3.4 eslint: 8.10.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.56.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.10.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@7.15.0)(eslint@8.10.0) glob: 7.2.0 is-glob: 4.0.3 resolve: 1.22.8 @@ -11136,7 +11550,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.56.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.10.0): + /eslint-module-utils@2.7.4(@typescript-eslint/parser@7.15.0)(eslint-import-resolver-node@0.3.7)(eslint@8.10.0): resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -11157,38 +11571,66 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.56.0(eslint@8.10.0)(typescript@4.9.3) + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@4.9.3) debug: 3.2.7 eslint: 8.10.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.10.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es@3.0.1(eslint@8.10.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@4.9.3) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-es@3.0.1(eslint@8.57.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.10.0 + eslint: 8.57.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.10.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.10.0 - ignore: 5.2.0 + eslint: 8.57.0 + ignore: 5.3.1 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.56.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.10.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@7.15.0)(eslint@8.10.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -11198,7 +11640,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.56.0(eslint@8.10.0)(typescript@4.9.3) + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@4.9.3) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -11206,7 +11648,7 @@ packages: doctrine: 2.1.0 eslint: 8.10.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.56.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.10.0) + eslint-module-utils: 2.7.4(@typescript-eslint/parser@7.15.0)(eslint-import-resolver-node@0.3.7)(eslint@8.10.0) has: 1.0.3 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -11221,21 +11663,56 @@ packages: - supports-color dev: true - /eslint-plugin-jest-formatting@3.1.0(eslint@8.10.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@4.9.3) + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.1 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest-formatting@3.1.0(eslint@8.57.0): resolution: {integrity: sha512-XyysraZ1JSgGbLSDxjj5HzKKh0glgWf+7CkqxbTqb7zEhW7X2WHo5SBQ8cGhnszKN+2Lj3/oevBlHNbHezoc/A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=0.8.0' dependencies: - eslint: 8.10.0 + eslint: 8.57.0 dev: true - /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.56.0)(eslint@8.10.0)(jest@29.7.0)(typescript@4.9.3): - resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /eslint-plugin-jest@28.6.0(@typescript-eslint/eslint-plugin@7.15.0)(eslint@8.57.0)(jest@29.7.0)(typescript@4.9.3): + resolution: {integrity: sha512-YG28E1/MIKwnz+e2H7VwYPzHUYU4aMa19w0yGcwXnnmJH6EfgHahTJ2un3IyraUxNfnz/KUhJAFXNNwWPo12tg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 jest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': @@ -11243,9 +11720,9 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.56.0(@typescript-eslint/parser@5.56.0)(eslint@8.10.0)(typescript@4.9.3) - '@typescript-eslint/experimental-utils': 5.56.0(eslint@8.10.0)(typescript@4.9.3) - eslint: 8.10.0 + '@typescript-eslint/eslint-plugin': 7.15.0(@typescript-eslint/parser@7.15.0)(eslint@8.57.0)(typescript@4.9.3) + '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@4.9.3) + eslint: 8.57.0 jest: 29.7.0(@types/node@20.12.5)(ts-node@10.7.0) transitivePeerDependencies: - supports-color @@ -11273,45 +11750,74 @@ packages: minimatch: 3.1.2 dev: true - /eslint-plugin-node@11.1.0(eslint@8.10.0): + /eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0): + resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + aria-query: 5.1.3 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.9.1 + axobject-query: 3.1.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.19 + eslint: 8.57.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 + dev: true + + /eslint-plugin-node@11.1.0(eslint@8.57.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.10.0 - eslint-plugin-es: 3.0.1(eslint@8.10.0) + eslint: 8.57.0 + eslint-plugin-es: 3.0.1(eslint@8.57.0) eslint-utils: 2.1.0 - ignore: 5.2.0 + ignore: 5.3.1 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.5.0)(eslint@8.10.0)(prettier@2.8.8): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.3.2): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true dependencies: - eslint: 8.10.0 - eslint-config-prettier: 8.5.0(eslint@8.10.0) - prettier: 2.8.8 + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + prettier: 3.3.2 prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 dev: true - /eslint-plugin-promise@6.0.0(eslint@8.10.0): - resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} + /eslint-plugin-promise@6.4.0(eslint@8.57.0): + resolution: {integrity: sha512-/KWWRaD3fGkVCZsdR0RU53PSthFmoHVhZl+y9+6DqeDLSikLdlUVpVEAmI6iCRR5QyOjBYBqHZV/bdv4DJ4Gtw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 dependencies: - eslint: 8.10.0 + eslint: 8.57.0 dev: true /eslint-plugin-react-hooks@4.6.0(eslint@8.10.0): @@ -11323,6 +11829,15 @@ packages: eslint: 8.10.0 dev: true + /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.57.0 + dev: true + /eslint-plugin-react@7.31.10(eslint@8.10.0): resolution: {integrity: sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==} engines: {node: '>=4'} @@ -11346,24 +11861,51 @@ packages: string.prototype.matchall: 4.0.7 dev: true - /eslint-plugin-sort-class-members@1.14.1(eslint@8.10.0): - resolution: {integrity: sha512-/Q/cm3h4N9DBNYvJMQMhluucSmr3Yydr9U0BgGcXUQe/rgWdXKSymZ5Ewcf4vmAG0bbTmAYmekuMnYYrqlu9Rg==} + /eslint-plugin-react@7.34.3(eslint@8.57.0): + resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.19 + eslint: 8.57.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.2.2 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + dev: true + + /eslint-plugin-sort-class-members@1.20.0(eslint@8.57.0): + resolution: {integrity: sha512-xNaik4GQ/pRwd1soIVI28HEXZbrWoLR5krau2+E8YcHj7N09UviPg5mYhf/rELG29bIFJdXDOFJazN90+luMOw==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=0.8.0' dependencies: - eslint: 8.10.0 + eslint: 8.57.0 dev: true - /eslint-plugin-storybook@0.8.0(eslint@8.10.0)(typescript@4.9.3): + /eslint-plugin-storybook@0.8.0(eslint@8.57.0)(typescript@4.9.3): resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} engines: {node: '>= 18'} peerDependencies: eslint: '>=6' dependencies: '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.10.0)(typescript@4.9.3) - eslint: 8.10.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@4.9.3) + eslint: 8.57.0 requireindex: 1.2.0 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -11400,6 +11942,14 @@ packages: estraverse: 5.3.0 dev: true + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + /eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} engines: {node: '>=6'} @@ -11432,6 +11982,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /eslint@8.10.0: resolution: {integrity: sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -11476,6 +12031,53 @@ packages: - supports-color dev: true + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.3.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /espree@9.3.1: resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -11485,6 +12087,15 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 + dev: true + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -11497,6 +12108,13 @@ packages: estraverse: 5.3.0 dev: true + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -11842,6 +12460,16 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + /fast-json-parse@1.0.3: resolution: {integrity: sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==} dev: false @@ -11956,6 +12584,13 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 + dev: true + + /file-entry-cache@9.0.0: + resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} + engines: {node: '>=18'} + dependencies: + flat-cache: 5.0.0 /file-loader@6.2.0(webpack@4.46.0): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} @@ -12012,6 +12647,12 @@ packages: dependencies: to-regex-range: 5.0.1 + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + /filter-obj@1.1.0: resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} engines: {node: '>=0.10.0'} @@ -12154,9 +12795,21 @@ packages: dependencies: flatted: 3.2.5 rimraf: 3.0.2 + dev: true + + /flat-cache@5.0.0: + resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} + engines: {node: '>=18'} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 /flatted@3.2.5: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} + dev: true + + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} /flow-parser@0.183.0: resolution: {integrity: sha512-2e/aIZIM7iJpHCBxpqdXetYYoO3YQEJzA7M8v5bhWhXCu+lIfkeSfOWycWW0rhlnJyjMftbmwn6B2eenKeGlag==} @@ -12409,6 +13062,16 @@ packages: functions-have-names: 1.2.3 dev: true + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree@1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true @@ -12535,6 +13198,15 @@ packages: get-intrinsic: 1.2.0 dev: true + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -12743,6 +13415,13 @@ packages: type-fest: 0.20.2 dev: true + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -12779,7 +13458,7 @@ packages: dependencies: dir-glob: 3.0.1 fast-glob: 3.2.12 - ignore: 5.2.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 dev: true @@ -12837,6 +13516,10 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + /gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} @@ -12922,6 +13605,11 @@ packages: engines: {node: '>= 0.4'} dev: true + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -13002,6 +13690,13 @@ packages: dependencies: function-bind: 1.1.2 + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /hast-util-from-parse5@6.0.1: resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} dependencies: @@ -13204,6 +13899,11 @@ packages: /html-tags@3.2.0: resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} engines: {node: '>=8'} + dev: true + + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} /html-webpack-plugin@5.5.0(webpack@5.76.0): resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} @@ -13463,6 +14163,10 @@ packages: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + /image-size@0.8.3: resolution: {integrity: sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==} engines: {node: '>=6.9.0'} @@ -13498,10 +14202,6 @@ packages: engines: {node: '>=4'} dev: false - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -13666,6 +14366,15 @@ packages: side-channel: 1.0.4 dev: true + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.1 + side-channel: 1.0.6 + dev: true + /interpret@2.2.0: resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} engines: {node: '>= 0.10'} @@ -13752,6 +14461,14 @@ packages: is-typed-array: 1.1.10 dev: true + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -13759,6 +14476,13 @@ packages: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} dev: false + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -13846,6 +14570,13 @@ packages: dependencies: kind-of: 6.0.3 + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: true + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -13906,6 +14637,12 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.7 + dev: true + /is-finite@1.1.0: resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} engines: {node: '>=0.10.0'} @@ -14019,6 +14756,11 @@ packages: engines: {node: '>= 0.4'} dev: true + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + /is-npm@1.0.0: resolution: {integrity: sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg==} engines: {node: '>=0.10.0'} @@ -14148,6 +14890,13 @@ packages: call-bind: 1.0.2 dev: true + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + /is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -14197,6 +14946,13 @@ packages: gopd: 1.0.1 has-tostringtag: 1.0.0 + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.15 + dev: true + /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true @@ -14390,6 +15146,16 @@ packages: textextensions: 2.6.0 dev: false + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + dev: true + /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -14850,7 +15616,7 @@ packages: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 '@jest/types': 28.1.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -14940,11 +15706,11 @@ packages: jest-resolve: 29.7.0 dev: true - /jest-preset-stylelint@5.0.4(jest@29.7.0): - resolution: {integrity: sha512-y9j3kATHB/FIxfKsNZEnK/3GkeVnmyXz2GgtFO5fogMOlZrNf0mvF674kmTaebguvRGn7Gxmd7kqMihwIIgN3A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /jest-preset-stylelint@7.0.1(jest@29.7.0): + resolution: {integrity: sha512-umVx7qx/O2pTMdZvG8HcMmExo/7rXpYsNK/22GKQ6ulLBxfgVSINLtkav77ZH505Uy6g0tDoEbWuPoWe5vJuMQ==} + engines: {node: '>=18.12.0'} peerDependencies: - jest: ^25.3.0 || ^26.0.1 || ^27.0.1 || ^28.0.2 + jest: ^29.0.2 dependencies: jest: 29.7.0(@types/node@20.12.5)(ts-node@10.7.0) dev: true @@ -15517,7 +16283,6 @@ packages: /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -15579,6 +16344,16 @@ packages: object.assign: 4.1.4 dev: true + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.1 + object.assign: 4.1.4 + object.values: 1.1.6 + dev: true + /junit-report-builder@3.2.1: resolution: {integrity: sha512-IMCp5XyDQ4YESDE4Za7im3buM0/7cMnRfe17k2X8B05FnUl9vqnaliX6cgOEmPIeWKfJrEe/gANRq/XgqttCqQ==} engines: {node: '>=8'} @@ -15604,6 +16379,11 @@ packages: json-buffer: 3.0.1 dev: true + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + /kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -15644,8 +16424,8 @@ packages: engines: {node: '>= 8'} dev: true - /known-css-properties@0.26.0: - resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} + /known-css-properties@0.31.0: + resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} /language-subtag-registry@0.3.21: resolution: {integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==} @@ -15657,6 +16437,13 @@ packages: language-subtag-registry: 0.3.21 dev: true + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + dependencies: + language-subtag-registry: 0.3.21 + dev: true + /last-call-webpack-plugin@3.0.0: resolution: {integrity: sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==} dependencies: @@ -16356,6 +17143,9 @@ packages: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} dev: true + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + /mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: true @@ -16422,6 +17212,10 @@ packages: yargs-parser: 20.2.9 dev: true + /meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + /meow@3.7.0: resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} engines: {node: '>=0.10.0'} @@ -16471,6 +17265,7 @@ packages: trim-newlines: 3.0.1 type-fest: 0.18.1 yargs-parser: 20.2.9 + dev: false /merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} @@ -16868,6 +17663,13 @@ packages: braces: 3.0.2 picomatch: 2.3.1 + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + /miller-rabin@4.0.1: resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} hasBin: true @@ -16979,6 +17781,13 @@ packages: dependencies: brace-expansion: 2.0.1 + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -17211,10 +18020,6 @@ packages: /napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -17597,6 +18402,11 @@ packages: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + dev: true + /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} @@ -17623,6 +18433,16 @@ packages: has-symbols: 1.0.3 object-keys: 1.1.1 + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + /object.defaults@1.1.0: resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} engines: {node: '>=0.10.0'} @@ -17642,6 +18462,15 @@ packages: es-abstract: 1.21.2 dev: true + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /object.fromentries@2.0.5: resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} engines: {node: '>= 0.4'} @@ -17651,6 +18480,16 @@ packages: es-abstract: 1.21.2 dev: true + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + /object.getownpropertydescriptors@2.1.3: resolution: {integrity: sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==} engines: {node: '>= 0.8'} @@ -17660,6 +18499,15 @@ packages: es-abstract: 1.21.2 dev: true + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + dev: true + /object.hasown@1.1.1: resolution: {integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==} dependencies: @@ -17667,6 +18515,15 @@ packages: es-abstract: 1.21.2 dev: true + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + /object.map@1.0.1: resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} engines: {node: '>=0.10.0'} @@ -17690,6 +18547,15 @@ packages: es-abstract: 1.21.2 dev: true + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /objectorarray@1.0.5: resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==} dev: false @@ -17769,9 +18635,9 @@ packages: peerDependencies: webpack: ^4.0.0 dependencies: - cssnano: 5.1.7(postcss@8.4.32) + cssnano: 5.1.7(postcss@8.4.39) last-call-webpack-plugin: 3.0.0 - postcss: 8.4.32 + postcss: 8.4.39 webpack: 4.46.0 dev: true @@ -17784,7 +18650,19 @@ packages: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.4 + word-wrap: 1.2.4 + dev: true + + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 dev: true /ora@1.4.0: @@ -18107,7 +18985,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -18365,6 +19243,9 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -18601,7 +19482,17 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@5.3.0(postcss@8.4.32): + /postcss-calc@8.2.4(postcss@8.4.39): + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.39 + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin@5.3.0(postcss@8.4.39): resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -18610,17 +19501,17 @@ packages: browserslist: 4.22.2 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@5.1.0(postcss@8.4.32): + /postcss-convert-values@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true @@ -18637,13 +19528,13 @@ packages: postcss: 8.4.32 dev: true - /postcss-discard-comments@5.1.1(postcss@8.4.32): + /postcss-discard-comments@5.1.1(postcss@8.4.39): resolution: {integrity: sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 dev: true /postcss-discard-comments@6.0.1(postcss@8.4.32): @@ -18655,31 +19546,31 @@ packages: postcss: 8.4.32 dev: true - /postcss-discard-duplicates@5.1.0(postcss@8.4.32): + /postcss-discard-duplicates@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 dev: true - /postcss-discard-empty@5.1.1(postcss@8.4.32): + /postcss-discard-empty@5.1.1(postcss@8.4.39): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 dev: true - /postcss-discard-overridden@5.1.0(postcss@8.4.32): + /postcss-discard-overridden@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 dev: true /postcss-flexbugs-fixes@5.0.2(postcss@8.4.32): @@ -18731,18 +19622,18 @@ packages: /postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - /postcss-merge-longhand@5.1.4(postcss@8.4.32): + /postcss-merge-longhand@5.1.4(postcss@8.4.39): resolution: {integrity: sha512-hbqRRqYfmXoGpzYKeW0/NCZhvNyQIlQeWVSao5iKWdyx7skLvCfQFGIUsP9NUs3dSbPac2IC4Go85/zG+7MlmA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 - stylehacks: 5.1.0(postcss@8.4.32) + stylehacks: 5.1.0(postcss@8.4.39) dev: true - /postcss-merge-rules@5.1.1(postcss@8.4.32): + /postcss-merge-rules@5.1.1(postcss@8.4.39): resolution: {integrity: sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -18750,52 +19641,52 @@ packages: dependencies: browserslist: 4.22.2 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 3.1.0(postcss@8.4.39) + postcss: 8.4.39 postcss-selector-parser: 6.0.15 dev: true - /postcss-minify-font-values@5.1.0(postcss@8.4.32): + /postcss-minify-font-values@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@5.1.1(postcss@8.4.32): + /postcss-minify-gradients@5.1.1(postcss@8.4.39): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 3.1.0(postcss@8.4.39) + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@5.1.2(postcss@8.4.32): + /postcss-minify-params@5.1.2(postcss@8.4.39): resolution: {integrity: sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.22.2 - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 3.1.0(postcss@8.4.39) + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors@5.2.0(postcss@8.4.32): + /postcss-minify-selectors@5.2.0(postcss@8.4.39): resolution: {integrity: sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-selector-parser: 6.0.15 dev: true @@ -18880,105 +19771,105 @@ packages: postcss-selector-parser: 6.0.15 dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.32): + /postcss-normalize-charset@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 dev: true - /postcss-normalize-display-values@5.1.0(postcss@8.4.32): + /postcss-normalize-display-values@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@5.1.0(postcss@8.4.32): + /postcss-normalize-positions@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@5.1.0(postcss@8.4.32): + /postcss-normalize-repeat-style@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@5.1.0(postcss@8.4.32): + /postcss-normalize-string@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.32): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@5.1.0(postcss@8.4.32): + /postcss-normalize-unicode@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.22.2 - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@5.1.0(postcss@8.4.32): + /postcss-normalize-url@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@5.1.1(postcss@8.4.32): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.39): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@5.1.1(postcss@8.4.32): + /postcss-ordered-values@5.1.1(postcss@8.4.39): resolution: {integrity: sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.32) - postcss: 8.4.32 + cssnano-utils: 3.1.0(postcss@8.4.39) + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true @@ -18990,7 +19881,7 @@ packages: postcss: 8.4.32 dev: true - /postcss-reduce-initial@5.1.0(postcss@8.4.32): + /postcss-reduce-initial@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -18998,29 +19889,29 @@ packages: dependencies: browserslist: 4.22.2 caniuse-api: 3.0.0 - postcss: 8.4.32 + postcss: 8.4.39 dev: true - /postcss-reduce-transforms@5.1.0(postcss@8.4.32): + /postcss-reduce-transforms@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true /postcss-resolve-nested-selector@0.1.1: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} - /postcss-safe-parser@6.0.0(postcss@8.4.32): - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} + /postcss-safe-parser@7.0.0(postcss@8.4.39): + resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} + engines: {node: '>=18.0'} peerDependencies: - postcss: ^8.3.3 + postcss: ^8.4.31 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 /postcss-scss@4.0.9(postcss@8.4.32): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} @@ -19029,6 +19920,15 @@ packages: postcss: ^8.4.29 dependencies: postcss: 8.4.32 + dev: false + + /postcss-scss@4.0.9(postcss@8.4.39): + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + dependencies: + postcss: 8.4.39 /postcss-selector-parser@6.0.15: resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} @@ -19036,6 +19936,14 @@ packages: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + dev: true + + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 /postcss-simple-vars@7.0.1(postcss@8.4.32): resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==} @@ -19046,32 +19954,32 @@ packages: postcss: 8.4.32 dev: true - /postcss-sorting@7.0.1(postcss@8.4.32): - resolution: {integrity: sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==} + /postcss-sorting@8.0.2(postcss@8.4.39): + resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} peerDependencies: - postcss: ^8.3.9 + postcss: ^8.4.20 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 dev: true - /postcss-svgo@5.1.0(postcss@8.4.32): + /postcss-svgo@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-unique-selectors@5.1.1(postcss@8.4.32): + /postcss-unique-selectors@5.1.1(postcss@8.4.39): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.32 + postcss: 8.4.39 postcss-selector-parser: 6.0.15 dev: true @@ -19092,8 +20000,8 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 + picocolors: 1.0.1 + source-map-js: 1.2.0 dev: false /postcss@8.4.32: @@ -19104,6 +20012,14 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + /postinstall-postinstall@2.1.0: resolution: {integrity: sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==} requiresBuild: true @@ -19166,8 +20082,8 @@ packages: hasBin: true dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + /prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} engines: {node: '>=14'} hasBin: true dev: true @@ -19866,6 +20782,19 @@ packages: engines: {node: '>=6'} dev: true + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + /refractor@3.6.0: resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} dependencies: @@ -20211,6 +21140,15 @@ packages: path-parse: 1.0.7 dev: true + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + /responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} dependencies: @@ -20268,6 +21206,7 @@ packages: hasBin: true dependencies: glob: 7.2.0 + dev: true /ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} @@ -20355,6 +21294,16 @@ packages: mri: 1.2.0 dev: false + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -20369,6 +21318,15 @@ packages: is-regex: 1.1.4 dev: true + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + /safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: @@ -20547,6 +21505,12 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + dev: true + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -20777,13 +21741,22 @@ packages: object-inspect: 1.12.3 dev: true + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true /simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} @@ -20947,6 +21920,10 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + /source-map-resolve@0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated @@ -21291,13 +22268,38 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true /string.prototype.codepointat@0.2.1: resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} dev: true + /string.prototype.includes@2.0.0: + resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.21.2 + dev: true + + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + dev: true + /string.prototype.matchall@4.0.7: resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} dependencies: @@ -21329,6 +22331,16 @@ packages: es-abstract: 1.21.2 dev: true + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimend@1.0.6: resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: @@ -21337,6 +22349,14 @@ packages: es-abstract: 1.21.2 dev: true + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimstart@1.0.6: resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: @@ -21345,6 +22365,15 @@ packages: es-abstract: 1.21.2 dev: true + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -21390,6 +22419,12 @@ packages: ansi-regex: 6.0.1 dev: true + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + /strip-bom-string@1.0.0: resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} engines: {node: '>=0.10.0'} @@ -21476,9 +22511,6 @@ packages: webpack: 5.76.0 dev: true - /style-search@0.1.0: - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} - /style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} dependencies: @@ -21516,105 +22548,100 @@ packages: react: 18.2.0 dev: false - /stylehacks@5.1.0(postcss@8.4.32): + /stylehacks@5.1.0(postcss@8.4.39): resolution: {integrity: sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.22.2 - postcss: 8.4.32 + postcss: 8.4.39 postcss-selector-parser: 6.0.15 dev: true - /stylelint-config-prettier@9.0.3(stylelint@14.15.0): - resolution: {integrity: sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==} - engines: {node: '>= 12'} - hasBin: true - peerDependencies: - stylelint: '>=11.0.0' - dependencies: - stylelint: 14.15.0 - dev: true - - /stylelint-order@5.0.0(stylelint@14.15.0): - resolution: {integrity: sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==} + /stylelint-order@6.0.4(stylelint@16.6.1): + resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} peerDependencies: - stylelint: ^14.0.0 + stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 dependencies: - postcss: 8.4.32 - postcss-sorting: 7.0.1(postcss@8.4.32) - stylelint: 14.15.0 + postcss: 8.4.39 + postcss-sorting: 8.0.2(postcss@8.4.39) + stylelint: 16.6.1(patch_hash=wls6x7gbpq4g6z7ydobqcmwpgu)(typescript@4.9.3) dev: true - /stylelint-prettier@2.0.0(prettier@2.8.8)(stylelint@14.15.0): - resolution: {integrity: sha512-jvT3G+9lopkeB0ARmDPszyfaOnvnIF+30QCjZxyt7E6fynI1T9mOKgYDNb9bXX17M7PXMZaX3j/26wqakjp1tw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /stylelint-prettier@5.0.0(prettier@3.3.2)(stylelint@16.6.1): + resolution: {integrity: sha512-RHfSlRJIsaVg5Br94gZVdWlz/rBTyQzZflNE6dXvSxt/GthWMY3gEHsWZEBaVGg7GM+XrtVSp4RznFlB7i0oyw==} + engines: {node: '>=18.12.0'} peerDependencies: - prettier: '>=2.0.0' - stylelint: '>=14.0.0' + prettier: '>=3.0.0' + stylelint: '>=16.0.0' dependencies: - prettier: 2.8.8 + prettier: 3.3.2 prettier-linter-helpers: 1.0.0 - stylelint: 14.15.0 + stylelint: 16.6.1(patch_hash=wls6x7gbpq4g6z7ydobqcmwpgu)(typescript@4.9.3) dev: true - /stylelint-scss@4.7.0(stylelint@14.15.0): - resolution: {integrity: sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==} + /stylelint-scss@6.3.2(stylelint@16.6.1): + resolution: {integrity: sha512-pNk9mXOVKkQtd+SROPC9io8ISSgX+tOVPhFdBE+LaKQnJMLdWPbGKAGYv4Wmf/RrnOjkutunNTN9kKMhkdE5qA==} + engines: {node: '>=18.12.0'} peerDependencies: - stylelint: ^14.5.1 || ^15.0.0 + stylelint: ^16.0.2 dependencies: + known-css-properties: 0.31.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 - stylelint: 14.15.0 + stylelint: 16.6.1(patch_hash=wls6x7gbpq4g6z7ydobqcmwpgu)(typescript@4.9.3) - /stylelint@14.15.0: - resolution: {integrity: sha512-JOgDAo5QRsqiOZPZO+B9rKJvBm64S0xasbuRPAbPs6/vQDgDCnZLIiw6XcAS6GQKk9k1sBWR6rmH3Mfj8OknKg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /stylelint@16.6.1(patch_hash=wls6x7gbpq4g6z7ydobqcmwpgu)(typescript@4.9.3): + resolution: {integrity: sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==} + engines: {node: '>=18.12.0'} hasBin: true dependencies: - '@csstools/selector-specificity': 2.0.2(postcss-selector-parser@6.0.15)(postcss@8.4.32) + '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.3) + '@csstools/css-tokenizer': 2.3.3 + '@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0)(@csstools/css-tokenizer@2.3.3) + '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.0) + '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 7.1.0 - css-functions-list: 3.1.0 + cosmiconfig: 9.0.0(typescript@4.9.3) + css-functions-list: 3.2.2 + css-tree: 2.3.1 debug: 4.3.4 - fast-glob: 3.2.12 + fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 - file-entry-cache: 6.0.1 + file-entry-cache: 9.0.0 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 - html-tags: 3.2.0 - ignore: 5.2.0 - import-lazy: 4.0.0 + html-tags: 3.3.1 + ignore: 5.3.1 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.26.0 + known-css-properties: 0.31.0 mathml-tag-names: 2.1.3 - meow: 9.0.0 - micromatch: 4.0.5 + meow: 13.2.0 + micromatch: 4.0.7 normalize-path: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.32 - postcss-media-query-parser: 0.2.3 + picocolors: 1.0.1 + postcss: 8.4.39 postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 6.0.0(postcss@8.4.32) - postcss-selector-parser: 6.0.15 + postcss-safe-parser: 7.0.0(postcss@8.4.39) + postcss-selector-parser: 6.1.0 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 + strip-ansi: 7.1.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 + table: 6.8.2 + write-file-atomic: 5.0.1 transitivePeerDependencies: - supports-color + - typescript + patched: true /stylis@4.1.2: resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} @@ -21659,6 +22686,14 @@ packages: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 + dev: true + + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} @@ -21696,6 +22731,14 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.3 + dev: true + /table-layout@1.0.2: resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} engines: {node: '>=8.0.0'} @@ -21706,8 +22749,8 @@ packages: wordwrapjs: 4.0.1 dev: true - /table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + /table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} engines: {node: '>=10.0.0'} dependencies: ajv: 8.12.0 @@ -22137,6 +23180,15 @@ packages: /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + /ts-api-utils@1.3.0(typescript@4.9.3): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 4.9.3 + dev: true + /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -22198,6 +23250,15 @@ packages: strip-bom: 3.0.0 dev: true + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + /tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -22213,6 +23274,10 @@ packages: /tslib@2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + dev: true + /tsutils@3.21.0(typescript@4.9.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -22336,6 +23401,7 @@ packages: /type-fest@0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} + dev: false /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} @@ -22373,6 +23439,38 @@ packages: mime-types: 2.1.35 dev: true + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: @@ -22381,6 +23479,18 @@ packages: is-typed-array: 1.1.10 dev: true + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + /typed-rest-client@1.8.6: resolution: {integrity: sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA==} dependencies: @@ -22402,7 +23512,6 @@ packages: resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /typical@4.0.0: resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} @@ -22689,7 +23798,7 @@ packages: dependencies: browserslist: 4.22.2 escalade: 3.1.1 - picocolors: 1.0.0 + picocolors: 1.0.1 /update-check@1.5.4: resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} @@ -22861,6 +23970,7 @@ packages: /v8-compile-cache@2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true /v8-to-istanbul@9.2.0: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} @@ -23471,6 +24581,24 @@ packages: is-symbol: 1.0.4 dev: true + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.5 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: true + /which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} @@ -23552,6 +24680,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true @@ -23594,7 +24727,7 @@ packages: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true /wrappy@1.0.2: @@ -23622,6 +24755,14 @@ packages: dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 + dev: true + + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 /ws@7.5.7: resolution: {integrity: sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==} @@ -23726,6 +24867,7 @@ packages: /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + dev: true /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} diff --git a/polaris-migrator/package.json b/polaris-migrator/package.json index cb886dfce76..d93a0e21a9a 100644 --- a/polaris-migrator/package.json +++ b/polaris-migrator/package.json @@ -31,7 +31,7 @@ "dev": "rollup -c -w", "start": "./bin/migrator-cli.js", "lint": "TIMING=1 eslint --cache .", - "test": "jest", + "test": "NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" jest", "clean": "rm -rf .turbo node_modules dist *.tsbuildinfo", "generate": "plop" }, @@ -46,7 +46,7 @@ "postcss": "^8.4.14", "postcss-scss": "^4.0.4", "postcss-value-parser": "^4.2.0", - "stylelint": "^14.15.0" + "stylelint": "^16.6.1" }, "devDependencies": { "@types/is-git-clean": "^1.1.0", @@ -58,7 +58,7 @@ "@shopify/polaris": "^13.6.1", "plop": "^3.1.1", "plop-dir": "^0.0.5", - "prettier": "^2.7.1", + "prettier": "^3.3.2", "type-fest": "^2.19.0" } } diff --git a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/styles-insert-stylelint-disable.input.scss b/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/styles-insert-stylelint-disable.input.scss deleted file mode 100644 index 4d705026d5c..00000000000 --- a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/styles-insert-stylelint-disable.input.scss +++ /dev/null @@ -1,71 +0,0 @@ -@import 'styles/common'; - -$no-extra-newlines-above-this: 1rem; - -.BaseCase { - padding: 1rem; -} - -.NoInsert { - padding: var(--p-space-4); -} - -.ExistingDisableComment { - // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - padding: 1rem; -} - -.Nested { - .Keeps { - .Spacing { - padding: 1rem; - } - } -} - -.CombineComment { - /* stylelint-disable-next-line my-original-rule -- original comment */ - padding: 1rem; - /* stylelint-disable-next-line my-original-rule */ - margin: 1rem; - /* stylelint-disable-next-line my-original-rule -- original comment */ - margin-top: var(--p-space-1); -} - -.MultiLineAtRule { - @media screen and (min-width: 1rem), - (min-width: 1rem) and #{1rem} { - grid-column: 1rem; - } -} - -.MultiLineDecl { - margin-top: calc( - (1rem - 1rem + 1rem - 1rem + 1rem - 1rem + 1rem - 1rem + 1rem - 1rem) * -0.5 - ); -} - -.AnotherMultiLine { - $vertical-padding: calc( - (1rem - 1rem + 1rem - 1rem + 1rem - 1rem + 1rem - 1rem + 1rem - 1rem) * -0.5 - ); -} - -.AtRuleMultilineNoBlock { - @include safe-area-for( - left, - calc(1rem - 1rem + 1rem - 1rem + 1rem - 1rem), - left - ); -} - -.DescriptionlessDisable { - @media print { - // stylelint-disable-next-line declaration-no-important - padding: var(--p-space-4) !important; - } -} - -a:unknown { - padding: var(--p-space-4); -} diff --git a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/styles-insert-stylelint-disable.output.scss b/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/styles-insert-stylelint-disable.output.scss deleted file mode 100644 index f49efd4cf8f..00000000000 --- a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/styles-insert-stylelint-disable.output.scss +++ /dev/null @@ -1,84 +0,0 @@ -@import 'styles/common'; - -// stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY -$no-extra-newlines-above-this: 1rem; - -.BaseCase { - // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - padding: 1rem; -} - -.NoInsert { - padding: var(--p-space-4); -} - -.ExistingDisableComment { - // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - padding: 1rem; -} - -.Nested { - .Keeps { - .Spacing { - // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - padding: 1rem; - } - } -} - -.CombineComment { - // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY, original comment - padding: 1rem; - // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - margin: 1rem; - /* stylelint-disable-next-line my-original-rule -- original comment */ - margin-top: var(--p-space-1); -} - -.MultiLineAtRule { - // stylelint-disable -- generated by polaris-migrator DO NOT COPY - @media screen and (min-width: 1rem), - (min-width: 1rem) and #{1rem} { - // stylelint-enable - // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - grid-column: 1rem; - } -} - -.MultiLineDecl { - // stylelint-disable -- generated by polaris-migrator DO NOT COPY - margin-top: calc( - (1rem - 1rem + 1rem - 1rem + 1rem - 1rem + 1rem - 1rem + 1rem - 1rem) * -0.5 - ); - // stylelint-enable -} - -.AnotherMultiLine { - // stylelint-disable -- generated by polaris-migrator DO NOT COPY - $vertical-padding: calc( - (1rem - 1rem + 1rem - 1rem + 1rem - 1rem + 1rem - 1rem + 1rem - 1rem) * -0.5 - ); - // stylelint-enable -} - -.AtRuleMultilineNoBlock { - // stylelint-disable -- generated by polaris-migrator DO NOT COPY - @include safe-area-for( - left, - calc(1rem - 1rem + 1rem - 1rem + 1rem - 1rem), - left - ); - // stylelint-enable -} - -.DescriptionlessDisable { - @media print { - // stylelint-disable-next-line declaration-no-important -- generated by polaris-migrator DO NOT COPY - padding: var(--p-space-4) !important; - } -} - -// stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY -a:unknown { - padding: var(--p-space-4); -} diff --git a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/test-config.js b/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/test-config.js deleted file mode 100644 index 294af391a1d..00000000000 --- a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/test-config.js +++ /dev/null @@ -1,19 +0,0 @@ -const path = require('path'); - -module.exports = { - customSyntax: 'postcss-scss', - reportDescriptionlessDisables: true, - plugins: [ - path.join( - __dirname, - '../../../../../stylelint-polaris/plugins/at-rule-disallowed-list', - ), - ], - rules: { - 'unit-disallowed-list': ['rem'], - 'selector-pseudo-class-no-unknown': true, - 'polaris/at-rule-disallowed-list': { - include: [/([\w-]+\.)?safe-area-for($|\()/], - }, - }, -}; diff --git a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/transform.test.ts b/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/transform.test.ts deleted file mode 100644 index dcc61a1cc33..00000000000 --- a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/tests/transform.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import path from 'path'; - -import {check} from '../../../utilities/check'; - -const transform = 'styles-insert-stylelint-disable'; -const fixtures = ['styles-insert-stylelint-disable']; - -for (const fixture of fixtures) { - check(__dirname, { - fixture, - transform, - extension: 'scss', - options: { - config: path.join(__dirname, './test-config'), - }, - }); -} diff --git a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/transform.ts b/polaris-migrator/src/migrations/styles-insert-stylelint-disable/transform.ts deleted file mode 100644 index d797baf7482..00000000000 --- a/polaris-migrator/src/migrations/styles-insert-stylelint-disable/transform.ts +++ /dev/null @@ -1,146 +0,0 @@ -import os from 'os'; - -import type {API, FileInfo, Options} from 'jscodeshift'; -import type {Node, Comment, Plugin, Root} from 'postcss'; -import postcss from 'postcss'; -import type {StylelintPostcssResult} from 'stylelint'; -import stylelint from 'stylelint'; - -const crossPlatformNewlineRegExp = /\r\n?|\n/; -const polarisContextMsg = '-- generated by polaris-migrator DO NOT COPY'; - -const plugin = (): Plugin => { - return { - postcssPlugin: 'styles-insert-stylelint-disable', - Once(root, {result}) { - result.messages.forEach(({node}) => { - // If a polaris ignore comment exists above the node already, - // do nothing - if (node.prev()?.text?.includes(polarisContextMsg)) { - return; - } - - const isMultiline = - crossPlatformNewlineRegExp.test(node.value) || - crossPlatformNewlineRegExp.test(node.text) || - crossPlatformNewlineRegExp.test(node.params); - - const commentText = `${ - isMultiline ? 'stylelint-disable' : 'stylelint-disable-next-line' - } ${polarisContextMsg}`; - - const comment = createDisableComment(commentText, node.prev()); - - node.before(comment); - - if (isMultiline) { - (node.type === 'atrule' && node?.nodes?.length) || - node.type === 'rule' - ? node.prepend(createCommentNode('stylelint-enable')) - : node.after(createCommentNode('stylelint-enable')); - } - - deleteExtraNewlinesBeforeNode(node); - }); - - fillDescriptionlessDisables(result, root); - }, - }; -}; - -export default async function transformer( - file: FileInfo, - _: API, - options: Options, -) { - return postcss([ - stylelint({ - config: { - extends: [options.config ?? '@shopify/stylelint-polaris'], - }, - }) as Plugin, - plugin(), - ]) - .process(file.source, { - from: file.path, - syntax: require('postcss-scss'), - }) - .then((result) => { - return result.css; - }); -} - -/** - * Create a postcss comment node in the style: - * `// ${text}` - */ -function createCommentNode(text: string): Comment { - return new postcss.Comment({ - text, - raws: { - left: ' ', - right: '', - inline: true, - }, - }); -} - -/** - * Create a new disable comment with the given text. - * If the prevNode and the text are both disable-next-line - * comments, they are combined into a single comment with their - * description texts seperated by a comma. - */ -function createDisableComment(text: string, prevNode: Comment): Comment { - if ( - prevNode?.type !== 'comment' || - !prevNode.text.includes('stylelint-disable-next-line') || - !text.includes('stylelint-disable-next-line') - ) { - return createCommentNode(text); - } - - const prevDescription = prevNode.text?.split('--')?.[1]?.trim(); - const commentText = prevDescription?.length - ? [text, prevDescription].join(', ') - : text; - - prevNode.remove(); - - return createCommentNode(commentText); -} - -/** - * Reduces the number of newline characters in a node's before - * raws to just one. This is helpful to ensure that there is - * only one newline between a disable-next-line comment and - * the warning node. - */ -function deleteExtraNewlinesBeforeNode(node: Node) { - node.raws.before = `${os.EOL}${node.raws.before.replace( - new RegExp(crossPlatformNewlineRegExp, 'g'), - '', - )}`; -} - -/** - * If report-descriptionless-disables is enabled on stylelint, - * add a generated description to disables that don't have one. - */ -function fillDescriptionlessDisables(result: any, root: Root) { - const stylelintResult = result?.stylelint as StylelintPostcssResult; - - if (stylelintResult?.config?.reportDescriptionlessDisables) { - root.walkComments((comment) => { - if ( - comment.text.includes('stylelint-disable') && - !comment.text.includes('--') - ) { - comment.before( - createCommentNode([comment.text, polarisContextMsg].join(' ')), - ); - comment.remove(); - } - }); - } -} diff --git a/polaris-migrator/src/utilities/check.ts b/polaris-migrator/src/utilities/check.ts index 32f1e0ccda4..d45aaae5977 100644 --- a/polaris-migrator/src/utilities/check.ts +++ b/polaris-migrator/src/utilities/check.ts @@ -58,14 +58,14 @@ export function check( // Assumes transform is one level up from tests directory const module = await import(path.join(dirName, '..', 'transform')); const output = await applyTransform( - {...module}, + {...module.default}, {source, path: inputPath}, options, ); // Format output and expected with prettier for white spaces and line breaks consistency - expect(prettier.format(output, {parser})).toBe( - prettier.format(expected, {parser}), + expect(await prettier.format(output, {parser})).toBe( + await prettier.format(expected, {parser}), ); }); }); diff --git a/polaris-react/postcss-mixins/button-base.css b/polaris-react/postcss-mixins/button-base.css index 2429b871035..0b13f15850f 100644 --- a/polaris-react/postcss-mixins/button-base.css +++ b/polaris-react/postcss-mixins/button-base.css @@ -31,6 +31,7 @@ &:focus-visible { box-shadow: var(--p-shadow-200); + @mixin no-focus-ring; outline: var(--p-border-width-050) solid var(--p-color-border-focus); outline-offset: var(--p-space-025); diff --git a/polaris-react/src/components/ActionList/ActionList.module.css b/polaris-react/src/components/ActionList/ActionList.module.css index b32dfdf0d62..922b9bfefdd 100644 --- a/polaris-react/src/components/ActionList/ActionList.module.css +++ b/polaris-react/src/components/ActionList/ActionList.module.css @@ -86,7 +86,6 @@ background-color: var(--p-color-bg-surface-critical-hover); } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &:active, &.active { background-color: var(--p-color-bg-surface-critical-active); @@ -102,7 +101,6 @@ background-color: unset; } - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .Prefix svg, .Suffix svg { fill: var(--p-color-icon-disabled); diff --git a/polaris-react/src/components/ActionMenu/components/RollupActions/RollupActions.module.css b/polaris-react/src/components/ActionMenu/components/RollupActions/RollupActions.module.css index 0122e904aaf..1680f9f2825 100644 --- a/polaris-react/src/components/ActionMenu/components/RollupActions/RollupActions.module.css +++ b/polaris-react/src/components/ActionMenu/components/RollupActions/RollupActions.module.css @@ -8,12 +8,10 @@ box-shadow: none; margin: 0; - /* stylelint-disable-next-line selector-max-specificity -- apply active styles */ &:active { background: var(--p-color-bg-fill-tertiary-active); } - /* stylelint-disable-next-line selector-max-specificity -- apply focus styles */ &:focus:not(:active) { /* stylelint-disable-next-line polaris/border/polaris/at-rule-disallowed-list -- button overrides */ @mixin no-focus-ring; @@ -22,7 +20,6 @@ background: var(--p-color-bg-fill-tertiary-active); } - /* stylelint-disable-next-line selector-max-specificity -- apply hover styles */ &:hover { background: var(--p-color-bg-fill-tertiary-hover); } diff --git a/polaris-react/src/components/ActionMenu/components/SecondaryAction/SecondaryAction.module.css b/polaris-react/src/components/ActionMenu/components/SecondaryAction/SecondaryAction.module.css index f7ca82e69fe..647e76aa593 100644 --- a/polaris-react/src/components/ActionMenu/components/SecondaryAction/SecondaryAction.module.css +++ b/polaris-react/src/components/ActionMenu/components/SecondaryAction/SecondaryAction.module.css @@ -50,17 +50,15 @@ button { color: var(--p-color-text-critical) !important; - /* stylelint-disable-next-line selector-max-combinators, selector-max-type -- override svg fill */ + /* stylelint-disable-next-line selector-max-type -- override svg fill */ svg { fill: var(--p-color-text-critical); } - /* stylelint-disable-next-line selector-max-specificity -- apply hover styles */ &:is(:hover, :focus) { background-color: var(--p-color-bg-fill-tertiary-hover) !important; } - /* stylelint-disable-next-line selector-max-specificity -- apply focus/active styles */ &:active { background-color: var(--p-color-bg-fill-tertiary-active) !important; } diff --git a/polaris-react/src/components/Autocomplete/components/MappedAction/MappedAction.module.css b/polaris-react/src/components/Autocomplete/components/MappedAction/MappedAction.module.css index f1349e1787c..9c596dd2271 100644 --- a/polaris-react/src/components/Autocomplete/components/MappedAction/MappedAction.module.css +++ b/polaris-react/src/components/Autocomplete/components/MappedAction/MappedAction.module.css @@ -12,7 +12,6 @@ [data-focused] { .Action { - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ svg { fill: var(--p-color-icon); } @@ -84,7 +83,6 @@ background-color: var(--p-color-bg-surface-critical-hover); } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &:active, &.selected { background-color: var(--p-color-bg-surface-critical-active); @@ -95,7 +93,6 @@ background-image: none; color: var(--p-color-text-disabled); - /* stylelint-disable-next-line selector-max-class, selector-max-specificity, selector-max-combinators -- generated by polaris-migrator DO NOT COPY */ .Prefix svg, .Suffix svg { fill: var(--p-color-icon-disabled); diff --git a/polaris-react/src/components/Box/Box.tsx b/polaris-react/src/components/Box/Box.tsx index 3c14adf8c9c..ee8f965bd34 100644 --- a/polaris-react/src/components/Box/Box.tsx +++ b/polaris-react/src/components/Box/Box.tsx @@ -208,20 +208,20 @@ export const Box = forwardRef( const borderStyleValue = borderStyle ? borderStyle : borderColor || - borderWidth || - borderBlockStartWidth || - borderBlockEndWidth || - borderInlineStartWidth || - borderInlineEndWidth - ? 'solid' - : undefined; + borderWidth || + borderBlockStartWidth || + borderBlockEndWidth || + borderInlineStartWidth || + borderInlineEndWidth + ? 'solid' + : undefined; // eslint-disable-next-line no-nested-ternary const outlineStyleValue = outlineStyle ? outlineStyle : outlineColor || outlineWidth - ? 'solid' - : undefined; + ? 'solid' + : undefined; const style = { '--pc-box-color': color ? `var(--p-color-${color})` : undefined, diff --git a/polaris-react/src/components/Button/Button.module.css b/polaris-react/src/components/Button/Button.module.css index 6bad52a3504..161275d1c4d 100644 --- a/polaris-react/src/components/Button/Button.module.css +++ b/polaris-react/src/components/Button/Button.module.css @@ -41,8 +41,8 @@ } /* https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity#increasing_specificity_by_duplicating_selector - Remove the duplicate selectors once `Icon` supports no fill so there won't be competing specificity */ -/* stylelint-disable selector-max-specificity -- Duplicate selectors to bump specificity to be greater than Icon's svg fill (0, 1, 1) */ + Remove the duplicate selectors once `Icon` supports no fill so there won't be competing specificity. + Duplicate selectors to bump specificity to be greater than Icon's svg fill (0, 1, 1) */ .Button.Button svg { fill: var(--pc-button-icon-fill); } @@ -68,7 +68,6 @@ .pressed.pressed:focus-visible svg { fill: var(--pc-button-icon-fill_pressed); } -/* stylelint-enable selector-max-specificity */ .Button:hover { background: var(--pc-button-bg_hover); @@ -363,7 +362,6 @@ } /* BUTTON GROUP */ -/* stylelint-disable -- selector-max-combinators */ [data-buttongroup-variant='segmented'] > *:not(:first-child) .Button:is(.variantPrimary) { @@ -395,5 +393,3 @@ [data-buttongroup-connected-top='true'] > *:last-child .Button { border-top-right-radius: var(--p-border-radius-0); } - -/* stylelint-enable -- selector-max-combinators */ diff --git a/polaris-react/src/components/Checkbox/Checkbox.module.css b/polaris-react/src/components/Checkbox/Checkbox.module.css index 1f2ca74d86a..81579e83ed2 100644 --- a/polaris-react/src/components/Checkbox/Checkbox.module.css +++ b/polaris-react/src/components/Checkbox/Checkbox.module.css @@ -6,7 +6,8 @@ .ChoiceLabel .Backdrop { border-width: 0; box-shadow: inset 0 0 0 var(--p-border-width-0165) var(--p-color-input-border); - transition: border-color var(--p-motion-duration-100) var(--p-motion-ease-out), + transition: + border-color var(--p-motion-duration-100) var(--p-motion-ease-out), border-width var(--p-motion-duration-100) var(--p-motion-ease-out), box-shadow var(--p-motion-duration-100) var(--p-motion-ease-out); @@ -28,7 +29,7 @@ box-shadow: inset 0 0 0 var(--p-space-050) var(--p-color-bg-fill-brand); } -/* stylelint-disable selector-max-specificity, selector-max-class, selector-max-combinators, max-nesting-depth -- Much easier to read the rules when written like this */ +/* stylelint-disable selector-max-specificity, max-nesting-depth -- Much easier to read the rules when written like this */ .Input { position: absolute; z-index: var(--p-z-index-1); @@ -60,7 +61,8 @@ } ~ .Icon { - transition: opacity var(--p-motion-duration-150) var(--p-motion-ease-out), + transition: + opacity var(--p-motion-duration-150) var(--p-motion-ease-out), transform var(--p-motion-duration-150) var(--p-motion-ease-out); opacity: 1; @@ -135,7 +137,7 @@ } } } - /* stylelint-enable selector-max-specificity, selector-max-class, selector-max-combinators, max-nesting-depth */ + /* stylelint-enable selector-max-specificity, max-nesting-depth */ } .Backdrop { @@ -158,7 +160,8 @@ transform-origin: 50% 50%; pointer-events: none; opacity: 0; - transition: opacity var(--p-motion-duration-100) var(--p-motion-ease-out), + transition: + opacity var(--p-motion-duration-100) var(--p-motion-ease-out), transform var(--p-motion-duration-100) var(--p-motion-ease-out); top: calc(-1 * var(--p-space-050)); @@ -190,7 +193,7 @@ } } -/* stylelint-disable selector-max-specificity, selector-max-class, selector-max-combinators, selector-max-compound-selectors -- generated by polaris-migrator DO NOT COPY */ +/* stylelint-disable selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .error { .Icon svg { color: var(--p-color-text-critical-on-bg-fill); @@ -238,14 +241,14 @@ } } } -/* stylelint-enable selector-max-specificity, selector-max-class, selector-max-combinators */ +/* stylelint-enable selector-max-specificity */ -/* stylelint-disable-next-line selector-max-combinators, selector-max-type -- override */ +/* stylelint-disable-next-line selector-max-type -- override */ .animated svg > path { stroke-dasharray: 2; stroke-dashoffset: 2; - /* stylelint-disable-next-line selector-max-combinators, selector-max-type, selector-no-qualifying-type -- override */ + /* stylelint-disable-next-line selector-max-type, selector-no-qualifying-type -- override */ &.checked { animation-name: pathAnimation; animation-duration: var(--p-motion-duration-150); diff --git a/polaris-react/src/components/Choice/Choice.module.css b/polaris-react/src/components/Choice/Choice.module.css index feaf003ee98..0c49a286f7d 100644 --- a/polaris-react/src/components/Choice/Choice.module.css +++ b/polaris-react/src/components/Choice/Choice.module.css @@ -9,6 +9,7 @@ */ /* stylelint-disable-next-line length-zero-no-unit -- see above */ --pc-choice-space-0: 0rem; + @mixin responsive-props choice, bleed-block-start, --pc-choice-bleed-block-start; @mixin responsive-props choice, bleed-block-end, --pc-choice-bleed-block-end; diff --git a/polaris-react/src/components/Choice/tests/Choice.test.tsx b/polaris-react/src/components/Choice/tests/Choice.test.tsx index dec46a182ff..9a1a15aad9e 100644 --- a/polaris-react/src/components/Choice/tests/Choice.test.tsx +++ b/polaris-react/src/components/Choice/tests/Choice.test.tsx @@ -21,7 +21,7 @@ describe('', () => { expect(element).toContainReactComponent('label', { htmlFor: 'MyChoice', }); - expect(element.find('label'))!.toContainReactText('Label'); + expect(element.find('label')).toContainReactText('Label'); }); it('renders error markup when provided with a value', () => { diff --git a/polaris-react/src/components/Combobox/tests/Combobox.test.tsx b/polaris-react/src/components/Combobox/tests/Combobox.test.tsx index 7b43e55154a..2b43f13a861 100644 --- a/polaris-react/src/components/Combobox/tests/Combobox.test.tsx +++ b/polaris-react/src/components/Combobox/tests/Combobox.test.tsx @@ -119,14 +119,11 @@ describe('', () => { /> } > - { - // eslint-disable-next-line jest/no-if - inputValue.length > 0 ? ( - - - - ) : null - } + {inputValue.length > 0 ? ( + + + + ) : null} ); } diff --git a/polaris-react/src/components/DataTable/DataTable.module.css b/polaris-react/src/components/DataTable/DataTable.module.css index fd8b1d1a959..cbcd5b5b72f 100644 --- a/polaris-react/src/components/DataTable/DataTable.module.css +++ b/polaris-react/src/components/DataTable/DataTable.module.css @@ -65,7 +65,7 @@ border-spacing: 0; } -/* stylelint-disable selector-max-class, selector-max-combinators, selector-max-specificity, selector-max-compound-selectors -- generated by polaris-migrator DO NOT COPY */ +/* stylelint-disable selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .TableRow + .TableRow { .Cell { border-top: var(--p-border-width-025) solid var(--p-color-border-secondary); diff --git a/polaris-react/src/components/DatePicker/DatePicker.module.css b/polaris-react/src/components/DatePicker/DatePicker.module.css index 4843591ad43..65971d3c77a 100644 --- a/polaris-react/src/components/DatePicker/DatePicker.module.css +++ b/polaris-react/src/components/DatePicker/DatePicker.module.css @@ -186,12 +186,10 @@ .Week { margin-bottom: var(--p-space-050); - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ > .Day-inRange:first-child:not(.Day-firstInRange):not(.Day-lastInRange) { border-radius: var(--p-border-radius-100) 0 0 var(--p-border-radius-100); } - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ > .Day-inRange:last-child:not(.Day-firstInRange):not(.Day-lastInRange) { border-radius: 0 var(--p-border-radius-100) var(--p-border-radius-100) 0; } @@ -199,7 +197,6 @@ .Day-inRange, .Day-inRange:not(:hover) + .Day { - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &::after { /* stylelint-disable -- generated by polaris-migrator DO NOT COPY */ border-radius: 0 var(--pc-date-picker-range-end-border-radius) diff --git a/polaris-react/src/components/DatePicker/components/Weekday/tests/Weekday.test.tsx b/polaris-react/src/components/DatePicker/components/Weekday/tests/Weekday.test.tsx index e5eff4d3639..d53d0018bc8 100644 --- a/polaris-react/src/components/DatePicker/components/Weekday/tests/Weekday.test.tsx +++ b/polaris-react/src/components/DatePicker/components/Weekday/tests/Weekday.test.tsx @@ -15,7 +15,7 @@ describe('', () => { , ); expect(weekday).toContainReactText('Su'); - expect(weekday.find('th'))!.toHaveReactProps({ + expect(weekday.find('th')).toHaveReactProps({ 'aria-label': 'Sunday', }); }); diff --git a/polaris-react/src/components/DatePicker/tests/DatePicker.test.tsx b/polaris-react/src/components/DatePicker/tests/DatePicker.test.tsx index 0405ffcd878..7670bf2e691 100644 --- a/polaris-react/src/components/DatePicker/tests/DatePicker.test.tsx +++ b/polaris-react/src/components/DatePicker/tests/DatePicker.test.tsx @@ -154,7 +154,7 @@ describe('', () => { , ); - expect(datePicker.find('div'))!.toHaveReactProps({ + expect(datePicker.find('div')).toHaveReactProps({ id, }); }); diff --git a/polaris-react/src/components/DescriptionList/DescriptionList.module.css b/polaris-react/src/components/DescriptionList/DescriptionList.module.css index deea116e94d..72d68e0c777 100644 --- a/polaris-react/src/components/DescriptionList/DescriptionList.module.css +++ b/polaris-react/src/components/DescriptionList/DescriptionList.module.css @@ -26,7 +26,6 @@ padding: var(--p-space-200) var(--p-space-200) var(--p-space-200) 0; } - /* stylelint-disable-next-line selector-max-class, selector-max-combinators -- generated by polaris-migrator DO NOT COPY */ .Description + & + .Description { border-top: var(--p-border-width-025) solid var(--p-color-border-secondary); @@ -54,7 +53,6 @@ padding: var(--p-space-200) 0; } - /* stylelint-disable-next-line selector-max-class, selector-max-combinators -- generated by polaris-migrator DO NOT COPY */ + .Term + .Description { border-top: var(--p-border-width-025) solid var(--p-color-border-secondary); diff --git a/polaris-react/src/components/DropZone/DropZone.module.css b/polaris-react/src/components/DropZone/DropZone.module.css index 37c246eb0a1..ab13b717949 100755 --- a/polaris-react/src/components/DropZone/DropZone.module.css +++ b/polaris-react/src/components/DropZone/DropZone.module.css @@ -62,7 +62,6 @@ cursor: pointer; background-color: var(--p-color-input-bg-surface-hover); - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &::after { border-color: var(--p-color-input-border-hover); } diff --git a/polaris-react/src/components/DropZone/tests/DropZone.test.tsx b/polaris-react/src/components/DropZone/tests/DropZone.test.tsx index 6a25e998107..3cc0b2a7d11 100755 --- a/polaris-react/src/components/DropZone/tests/DropZone.test.tsx +++ b/polaris-react/src/components/DropZone/tests/DropZone.test.tsx @@ -207,7 +207,7 @@ describe('', () => { it('renders a disabled input when the disabled prop is true', () => { const dropZone = mountWithApp(); - expect(dropZone.find('input', {type: 'file'})!).toHaveReactProps({ + expect(dropZone.find('input', {type: 'file'})).toHaveReactProps({ disabled: true, }); }); diff --git a/polaris-react/src/components/ExceptionList/ExceptionList.module.css b/polaris-react/src/components/ExceptionList/ExceptionList.module.css index 13543c66a24..5008523936b 100644 --- a/polaris-react/src/components/ExceptionList/ExceptionList.module.css +++ b/polaris-react/src/components/ExceptionList/ExceptionList.module.css @@ -29,12 +29,10 @@ fill: var(--p-color-icon-secondary); } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ .statusWarning & svg { fill: var(--p-color-text-caution); } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ .statusCritical & svg { fill: var(--p-color-text-critical); } diff --git a/polaris-react/src/components/Filters/Filters.module.css b/polaris-react/src/components/Filters/Filters.module.css index 5b149b96482..a1b5607435e 100644 --- a/polaris-react/src/components/Filters/Filters.module.css +++ b/polaris-react/src/components/Filters/Filters.module.css @@ -191,7 +191,6 @@ .AddFilter { padding: var(--p-space-300) var(--p-space-200); - /* stylelint-disable-next-line selector-max-combinators -- required to hide the text of the button */ span { display: none; } diff --git a/polaris-react/src/components/Filters/components/FilterPill/FilterPill.module.css b/polaris-react/src/components/Filters/components/FilterPill/FilterPill.module.css index 745010abd2f..83bbf89998d 100644 --- a/polaris-react/src/components/Filters/components/FilterPill/FilterPill.module.css +++ b/polaris-react/src/components/Filters/components/FilterPill/FilterPill.module.css @@ -7,7 +7,7 @@ /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @mixin focus-ring base, var(--p-border-width-025); - /* stylelint-disable-next-line selector-max-specificity -- specificity is required to override focus-ring mixin */ + &.focusedFilterButton:focus-within:not(:active) { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @mixin focus-ring base, 0, focused; @@ -84,6 +84,7 @@ .ActiveFilterButton .ToggleButton { padding-right: var(--p-space-050); + @media (--p-breakpoints-md-up) { padding-right: 0; } diff --git a/polaris-react/src/components/Filters/components/FiltersBar/FiltersBar.tsx b/polaris-react/src/components/Filters/components/FiltersBar/FiltersBar.tsx index 3a5ca335e02..1577d8783d1 100644 --- a/polaris-react/src/components/Filters/components/FiltersBar/FiltersBar.tsx +++ b/polaris-react/src/components/Filters/components/FiltersBar/FiltersBar.tsx @@ -101,10 +101,9 @@ export function FiltersBar({ const pinnedFilters = localPinnedFilters .map((key) => filters.find((filter) => filter.key === key)) - .reduce( - (acc, filter) => (filter ? [...acc, filter] : acc), - [], - ); + .reduce< + FilterInterface[] + >((acc, filter) => (filter ? [...acc, filter] : acc), []); const onFilterClick = ({key, onAction}: FilterInterface) => diff --git a/polaris-react/src/components/Frame/Frame.module.css b/polaris-react/src/components/Frame/Frame.module.css index be01114ae31..f247daaebdf 100644 --- a/polaris-react/src/components/Frame/Frame.module.css +++ b/polaris-react/src/components/Frame/Frame.module.css @@ -221,6 +221,7 @@ border-inline-end: var(--p-border-width-025) solid var(--p-color-border); min-width: 0; + @media (--p-breakpoints-sm-up) { /* stylelint-disable -- polaris/conventions/polaris/custom-property-allowed-list -- Polaris component custom properties */ max-width: calc(100vw - var(--pc-app-provider-scrollbar-width)); @@ -246,6 +247,7 @@ .hasTopBar & { /* stylelint-disable-next-line -- polaris custom global property */ padding-top: var(--pg-top-bar-height); + @media print { padding-top: 0; } @@ -274,6 +276,7 @@ /* stylelint-disable-next-line -- polaris custom global property */ margin-top: var(--pg-top-bar-height); padding-top: 0; + @media print { margin-top: 0; } @@ -426,7 +429,7 @@ color: var(--p-color-text); &:focus { - border-color: none; + border-color: transparent; box-shadow: none; } } diff --git a/polaris-react/src/components/Frame/components/ToastManager/ToastManager.module.css b/polaris-react/src/components/Frame/components/ToastManager/ToastManager.module.css index be4a63eef77..6d7bce7dc3e 100644 --- a/polaris-react/src/components/Frame/components/ToastManager/ToastManager.module.css +++ b/polaris-react/src/components/Frame/components/ToastManager/ToastManager.module.css @@ -29,7 +29,8 @@ position: absolute; display: inline-flex; opacity: 0; - transition: transform var(--p-motion-duration-400) var(--p-motion-ease-out), + transition: + transform var(--p-motion-duration-400) var(--p-motion-ease-out), opacity var(--p-motion-duration-400) var(--p-motion-ease-out); /* stylelint-disable-next-line -- required for stacking animation */ transform: translateY(var(--pc-toast-manager-translate-y-out)); diff --git a/polaris-react/src/components/Frame/components/ToastManager/ToastManager.tsx b/polaris-react/src/components/Frame/components/ToastManager/ToastManager.tsx index 40a4fcd861f..0face360a23 100644 --- a/polaris-react/src/components/Frame/components/ToastManager/ToastManager.tsx +++ b/polaris-react/src/components/Frame/components/ToastManager/ToastManager.tsx @@ -99,9 +99,12 @@ export const ToastManager = memo(function ToastManager({ setShouldExpand(false); } if (shouldExpand) { - fullyExpandedTimeout.current = setTimeout(() => { - isFullyExpanded.current = true; - }, toastMessages.length * TOAST_TRANSITION_DELAY + 400); + fullyExpandedTimeout.current = setTimeout( + () => { + isFullyExpanded.current = true; + }, + toastMessages.length * TOAST_TRANSITION_DELAY + 400, + ); } else if (fullyExpandedTimeout.current) { clearTimeout(fullyExpandedTimeout.current); isFullyExpanded.current = false; diff --git a/polaris-react/src/components/IndexTable/IndexTable.module.css b/polaris-react/src/components/IndexTable/IndexTable.module.css index 882e82b5506..ef91c1a3372 100644 --- a/polaris-react/src/components/IndexTable/IndexTable.module.css +++ b/polaris-react/src/components/IndexTable/IndexTable.module.css @@ -50,7 +50,8 @@ box-shadow: var(--p-shadow-300); opacity: 0; transform: translateY(-100%); - transition: opacity var(--p-motion-duration-100) var(--p-motion-ease-in), + transition: + opacity var(--p-motion-duration-100) var(--p-motion-ease-in), transform var(--p-motion-duration-100) var(--p-motion-ease-in), visibility var(--p-motion-duration-0) linear var(--p-motion-duration-100); visibility: hidden; @@ -59,7 +60,8 @@ visibility: visible; opacity: 1; transform: translateY(0); - transition: opacity var(--p-motion-duration-100) var(--p-motion-ease-out), + transition: + opacity var(--p-motion-duration-100) var(--p-motion-ease-out), transform var(--p-motion-duration-100) var(--p-motion-ease-out); } @@ -87,7 +89,6 @@ .Table-scrolling, .StickyTable-scrolling { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators -- generated by polaris-migrator DO NOT COPY */ .TableCell-first, .TableCell-first + .TableCell, .TableHeading-first, @@ -110,7 +111,6 @@ &.Table-sticky, &.StickyTable { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .TableCell-first + .TableCell, .TableHeading-second { @media (--p-breakpoints-sm-up) { @@ -118,9 +118,7 @@ } } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &.Table-unselectable { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .TableHeading-second, .TableCell:first-child { filter: drop-shadow(1px 0 0 var(--p-color-border-secondary)); @@ -129,7 +127,6 @@ } &.Table-unselectable { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .TableHeading-second, .TableCell:first-child { visibility: visible; @@ -151,7 +148,6 @@ } &.toneSuccess { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &, .TableCell-first, .TableCell-first + .TableCell, @@ -160,12 +156,9 @@ } } - /* stylelint-disable-next-line selector-max-class -- adds success tone for nested rows */ &.TableRow-child.toneSuccess { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds success tone for nested rows */ &, .TableCell-first { - /* stylelint-disable-next-line -- adds success tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-success); } @@ -173,7 +166,6 @@ } &.toneWarning { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- adds warning tone for suspended products */ &, .TableCell-first, .TableCell-first + .TableCell, @@ -182,12 +174,9 @@ } } - /* stylelint-disable-next-line selector-max-class -- adds warning tone for nested rows */ &.TableRow-child.toneWarning { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds warning tone for nested rows */ &, .TableCell-first { - /* stylelint-disable-next-line -- adds warning tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-warning); } @@ -195,7 +184,6 @@ } &.toneCritical { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- adds crtical tone for suspended products */ &, .TableCell-first, .TableCell-first + .TableCell, @@ -204,12 +192,9 @@ } } - /* stylelint-disable-next-line selector-max-class -- adds critical tone for nested rows */ &.TableRow-child.toneCritical { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds critical tone for nested rows */ &, .TableCell-first { - /* stylelint-disable-next-line -- adds critical tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-critical); } @@ -217,7 +202,6 @@ } &.toneSubdued { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &, .TableCell-first, .TableCell-first + .TableCell, @@ -227,12 +211,9 @@ } } - /* stylelint-disable-next-line selector-max-class -- adds secondary tone for nested rows */ &.TableRow-child.toneSubdued { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds secondary tone for nested rows */ &, .TableCell-first { - /* stylelint-disable-next-line -- adds secondary tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-secondary); } @@ -241,7 +222,7 @@ &.TableRow-subheader { cursor: default; - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + &, .TableCell:first-child, .TableCell-first, @@ -323,7 +304,7 @@ &.TableRow-selected { border-color: var(--p-color-border); - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + &, .TableHeading-first, .TableHeading-second, @@ -333,9 +314,7 @@ background-color: var(--p-color-bg-surface-selected); } - /* stylelint-disable-next-line selector-max-class -- adds selected tone for nested rows */ &.TableRow-child { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds selected tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds selected tone for nested rows */ @@ -345,9 +324,7 @@ } } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &.toneSuccess { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &, .TableCell:first-child, .TableCell-first, @@ -357,9 +334,7 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds success active tone for nested rows */ &.TableRow-child.toneSuccess { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds success active tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds success active tone for nested rows */ @@ -369,9 +344,7 @@ } } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &.toneWarning { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- added crtical tone for suspended products */ &, .TableCell:first-child, .TableCell-first, @@ -381,9 +354,7 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds warning active tone for nested rows */ &.TableRow-child.toneWarning { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds warning active tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds warning active tone for nested rows */ @@ -393,9 +364,7 @@ } } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &.toneCritical { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- added crtical tone for suspended products */ &, .TableCell:first-child, .TableCell-first, @@ -405,9 +374,7 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds critical active tone for nested rows */ &.TableRow-child.toneCritical { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds critical active tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds critical active tone for nested rows */ @@ -417,9 +384,7 @@ } } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &.toneSubdued { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &, .TableCell:first-child, .TableCell-first, @@ -429,9 +394,7 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds secondary active tone for nested rows */ &.TableRow-child.toneSubdued { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds secondary active tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds secondary active tone for nested rows */ @@ -441,9 +404,7 @@ } } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &.TableRow-subheader { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &, .TableCell:first-child, .TableCell-first, @@ -456,7 +417,6 @@ /* NOTE: `-hovered` must come after `-selected` so elements don't appear to lose their interactivity when selected. */ &.TableRow-hovered:not(.TableRow-disabled) { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &, .TableCell-first, .TableCell-first + .TableCell, @@ -464,9 +424,7 @@ background-color: var(--p-color-bg-surface-hover); } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds hover tone for nested rows */ &.TableRow-child { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds hover tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds hover tone for nested rows */ @@ -476,22 +434,22 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &.toneSuccess { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-success-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds success tone for nested rows */ &.TableRow-child.toneSuccess { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds success tone for nested rows */ + /* stylelint-disable selector-max-specificity -- adds success tone for nested rows */ &, .TableCell-first { + /* stylelint-enable selector-max-specificity */ /* stylelint-disable-next-line -- adds success tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-success-hover); @@ -499,22 +457,22 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &.toneCritical { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-critical-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds critical tone for nested rows */ &.TableRow-child.toneCritical { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds critical tone for nested rows */ + /* stylelint-disable selector-max-specificity -- adds critical tone for nested rows */ &, .TableCell-first { + /* stylelint-enable selector-max-specificity */ /* stylelint-disable-next-line -- adds critical tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-critical-hover); @@ -522,22 +480,22 @@ } } - /* stylelint-disable-next-line -- tone table override */ &.toneWarning { - /* stylelint-disable-next-line -- tone table override */ + /* stylelint-disable selector-max-specificity -- tone table override */ &, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-warning-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds warning tone for nested rows */ &.TableRow-child.toneWarning { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds warning tone for nested rows */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell-first { + /* stylelint-enable selector-max-specificity */ /* stylelint-disable-next-line -- adds warning tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-warning-hover); @@ -545,22 +503,22 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &.toneSubdued { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-secondary-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds secondary tone for nested rows */ &.TableRow-child.toneSubdued { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds secondary tone for nested rows */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell-first { + /* stylelint-enable selector-max-specificity */ /* stylelint-disable-next-line -- adds secondary tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-secondary-hover); @@ -568,36 +526,32 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- subheader bg color override */ &.TableRow-subheader { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-secondary); } } } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &.TableRow-hovered.TableRow-selected { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { background-color: var(--p-color-bg-surface-brand-hover); - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- background color for selected nested rows */ + /* stylelint-disable-next-line selector-max-specificity -- background color for selected nested rows */ &::before { background-color: var(--p-color-bg-surface-brand-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds hover tone for nested rows */ &.TableRow-child { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds hover tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds hover tone for nested rows */ @@ -607,23 +561,23 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &.toneSuccess { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + /* stylelint-disable selector-max-class, selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-class, selector-max-specificity */ background-color: var(--p-color-bg-surface-success-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds success hover tone for nested rows */ &.TableRow-child.toneSuccess { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- adds success hover tone for nested rows */ + /* stylelint-disable selector-max-class, selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell-first { + /* stylelint-enable selector-max-class, selector-max-specificity */ /* stylelint-disable-next-line -- adds success hover tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-success-hover); @@ -631,50 +585,50 @@ } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &.toneWarning { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- added crtical tone for suspended products */ + /* stylelint-disable selector-max-class, selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-class, selector-max-specificity */ background-color: var(--p-color-bg-surface-warning-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &.toneCritical { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- added crtical tone for suspended products */ + /* stylelint-disable selector-max-class, selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-class, selector-max-specificity */ background-color: var(--p-color-bg-surface-critical-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &.toneSubdued { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + /* stylelint-disable selector-max-class, selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-class, selector-max-specificity */ background-color: var(--p-color-bg-surface-secondary-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &.TableRow-subheader { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + /* stylelint-disable selector-max-class, selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-class, selector-max-specificity */ background-color: var(--p-color-bg-surface-secondary); } } @@ -687,11 +641,10 @@ } /* Extra specificity is needed to address edge cases where the zebra striping is combined with other options */ -/* stylelint-disable selector-max-specificity, selector-max-class, selector-max-combinators -- extra specificity needed for when combining props */ +/* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ .ZebraStriping { .Table-scrolling .TableRow:nth-child(2n + 1), .TableRow:nth-child(2n + 1) { - /* stylelint-disable-next-line selector-max-compound-selectors -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, @@ -703,7 +656,6 @@ .Table-scrolling .TableRow:nth-child(2n), .TableRow:nth-child(2n) { - /* stylelint-disable-next-line selector-max-compound-selectors -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, @@ -714,10 +666,8 @@ } .TableRow-child:nth-child(2n) { - /* stylelint-disable-next-line -- adds secondary tone for nested rows */ &, .TableCell-first { - /* stylelint-disable-next-line -- adds secondary tone for nested rows */ &::before { background-color: var(--p-color-bg-surface-secondary); } @@ -728,7 +678,6 @@ .TableRow-hovered:not(.TableRow-disabled):nth-child(2n + 1), .Table-scrolling .TableRow-hovered:not(.TableRow-disabled):nth-child(2n), .TableRow-hovered:not(.TableRow-disabled):nth-child(2n) { - /* stylelint-disable-next-line selector-max-compound-selectors -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, @@ -742,7 +691,6 @@ .TableRow-selected:nth-child(2n + 1), .Table-scrolling .TableRow-selected:nth-child(2n), .TableRow-selected:nth-child(2n) { - /* stylelint-disable-next-line selector-max-compound-selectors -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, @@ -754,7 +702,6 @@ .TableRow-child.TableRow-selected:nth-child(2n), .TableRow-child.TableRow-selected:nth-child(2n + 1) { - /* stylelint-disable-next-line -- adds selected tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds selected tone for nested rows */ @@ -768,19 +715,19 @@ .TableRow-hovered.TableRow-selected:nth-child(2n + 1), .Table-scrolling .TableRow-hovered.TableRow-selected:nth-child(2n), .TableRow-hovered.TableRow-selected:nth-child(2n) { - /* stylelint-disable-next-line selector-max-compound-selectors -- extra specificity needed for when combining props */ + /* stylelint-disable selector-max-class -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-class */ background-color: var(--p-color-bg-surface-brand-hover); } } .TableRow-hovered.TableRow-selected:nth-child(2n), .TableRow-hovered.TableRow-selected:nth-child(2n + 1) { - /* stylelint-disable-next-line -- adds hover tone for nested rows */ &, .TableCell-first { /* stylelint-disable-next-line -- adds hover tone for nested rows */ @@ -790,7 +737,7 @@ } } } -/* stylelint-enable selector-max-specificity, selector-max-class, selector-max-combinators */ +/* stylelint-enable selector-max-specificity */ .TableHeading { /* stylelint-disable -- Polaris component custom properties */ @@ -898,7 +845,8 @@ &:hover, &:focus { - transition-delay: none; + /* stylelint-disable-next-line polaris/motion/declaration-property-unit-disallowed-list -- Shhhh */ + transition-delay: 0s; transform: translateX(var(--p-space-100)); } } @@ -1018,7 +966,6 @@ &:first-child { padding-left: var(--p-space-300); - /* stylelint-disable-next-line selector-max-specificity -- This is a valid selector */ .Table:not(.Table-unselectable) & { /* stylelint-disable-next-line -- specificity overrides */ padding-right: var(--pc-index-table-checkbox-offset-right); @@ -1055,7 +1002,6 @@ .Table-sticky, .StickyTable { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class -- generated by polaris-migrator DO NOT COPY */ .TableCell-first + .TableCell { @media (--p-breakpoints-sm-up) { position: sticky; @@ -1073,7 +1019,7 @@ z-index: var(--pc-index-table-sticky-cell); } } - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ + &.TableHeading-unselectable { position: sticky; left: 0; @@ -1102,7 +1048,6 @@ ); /* stylelint-enable -- Polaris component custom properties */ &.Table-sticky { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- makes first column sticky when table is unselectable */ .TableCell:first-child { left: 0; background-color: var(--p-color-bg-surface); @@ -1111,9 +1056,7 @@ position: sticky; } - /* stylelint-disable-next-line selector-max-class -- makes first column background secondary for subheader row type */ .TableRow-subheader { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- makes first column background secondary for subheader row type */ .TableCell:first-child { background-color: var(--p-color-bg-surface-secondary); } @@ -1138,7 +1081,6 @@ /* stylelint-enable -- Polaris component custom properties */ .TableRow-hovered:not(.TableRow-disabled) { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity, selector-max-compound-selectors -- generated by polaris-migrator DO NOT COPY */ &, .TableCell:first-child, .TableCell-first, @@ -1147,90 +1089,86 @@ background-color: var(--p-color-bg-surface-hover); } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- fixed hover state for nonselected indexTable */ &.toneSuccess { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity, selector-max-compound-selectors -- fixed hover state for nonselected indexTable */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-success-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- fixed hover state for nonselected indexTable */ &.toneWarning { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity, selector-max-compound-selectors -- fixed hover state for nonselected indexTable */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-warning-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- fixed hover state for nonselected indexTable */ &.toneCritical { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity, selector-max-compound-selectors -- fixed hover state for nonselected indexTable */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-critical-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- fixed hover state for nonselected indexTable */ &.toneSubdued { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity, selector-max-compound-selectors -- fixed hover state for nonselected indexTable */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-secondary-hover); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- fixed hover state for nonselected indexTable */ &.TableRow-subheader { - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity, selector-max-compound-selectors -- fixed hover state for nonselected indexTable */ + /* stylelint-disable selector-max-specificity -- extra specificity needed for when combining props */ &, .TableCell:first-child, .TableCell-first, .TableCell-first + .TableCell, .TableCell:last-child { + /* stylelint-enable selector-max-specificity */ background-color: var(--p-color-bg-surface-secondary); } } } .toneSuccess { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .TableCell:first-child { background-color: var(--p-color-bg-surface-success); } } .toneWarning { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .TableCell:first-child { background-color: var(--p-color-bg-surface-warning); } } .toneCritical { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- added crtical tone for suspended products */ .TableCell:first-child { background-color: var(--p-color-bg-surface-critical); } } .toneSubdued { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .TableCell:first-child { background-color: var(--p-color-bg-surface-secondary); color: var(--p-color-text-secondary); @@ -1395,7 +1333,8 @@ var(--p-space-300); line-height: var(--p-font-line-height-500); background-color: var(--p-color-bg-surface); - transition: opacity var(--p-motion-duration-100) var(--p-motion-ease), + transition: + opacity var(--p-motion-duration-100) var(--p-motion-ease), visibility var(--p-motion-duration-100) var(--p-motion-ease); &.BulkActionsWrapperVisible { @@ -1409,6 +1348,7 @@ --pc-pagination-index: 30; /* stylelint-disable-next-line -- sets the z-index created above */ z-index: var(--pc-pagination-index); + @media (--p-breakpoints-md-up) { position: sticky; bottom: 0; diff --git a/polaris-react/src/components/Labelled/Labelled.module.css b/polaris-react/src/components/Labelled/Labelled.module.css index 2bd8e59f992..1fe8db653c3 100644 --- a/polaris-react/src/components/Labelled/Labelled.module.css +++ b/polaris-react/src/components/Labelled/Labelled.module.css @@ -7,7 +7,6 @@ color: var(--p-color-text-disabled); } -/* stylelint-disable-next-line -- color override since Text component doesn't support this color token */ .disabled > .HelpText > span { color: var(--p-color-text-disabled); } diff --git a/polaris-react/src/components/LegacyFilters/components/ConnectedFilterControl/ConnectedFilterControl.module.css b/polaris-react/src/components/LegacyFilters/components/ConnectedFilterControl/ConnectedFilterControl.module.css index cfa15803aa1..5077a655274 100644 --- a/polaris-react/src/components/LegacyFilters/components/ConnectedFilterControl/ConnectedFilterControl.module.css +++ b/polaris-react/src/components/LegacyFilters/components/ConnectedFilterControl/ConnectedFilterControl.module.css @@ -1,7 +1,3 @@ -/* stylelint-disable selector-max-class -- generated by polaris-migrator DO NOT COPY */ -/* stylelint-disable selector-max-combinators -- generated by polaris-migrator DO NOT COPY */ -/* stylelint-disable selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ -/* stylelint-disable selector-max-compound-selectors -- generated by polaris-migrator DO NOT COPY */ /* stylelint-disable selector-max-type -- generated by polaris-migrator DO NOT COPY */ .ConnectedFilterControl { /* stylelint-disable -- polaris/conventions/polaris/custom-property-allowed-list */ diff --git a/polaris-react/src/components/LegacyTabs/LegacyTabs.module.css b/polaris-react/src/components/LegacyTabs/LegacyTabs.module.css index a76c4532d8a..0246c8f5e9d 100644 --- a/polaris-react/src/components/LegacyTabs/LegacyTabs.module.css +++ b/polaris-react/src/components/LegacyTabs/LegacyTabs.module.css @@ -55,7 +55,6 @@ color: var(--p-color-text-brand); background-color: transparent; - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &::before { background-color: var(--p-color-bg-fill-tertiary-hover); } @@ -66,7 +65,6 @@ .Title { background-color: transparent; - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &::before { background: var(--p-color-bg-fill-tertiary-active); } @@ -79,7 +77,6 @@ } &:not(:active) { - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ .Title { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @mixin focus-ring base, 0, focused; @@ -97,7 +94,7 @@ &:focus .Title { outline: var(--p-border-width-050) solid transparent; - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ + &::before { background: var(--p-color-bg-fill-brand); } @@ -223,7 +220,6 @@ @mixin focus-ring base, 0, focused; } - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &:hover .Title::before { background-color: var(--p-color-border-hover); } diff --git a/polaris-react/src/components/LegacyTabs/tests/LegacyTabs.test.tsx b/polaris-react/src/components/LegacyTabs/tests/LegacyTabs.test.tsx index 51c206a751c..75f17bc1a7a 100644 --- a/polaris-react/src/components/LegacyTabs/tests/LegacyTabs.test.tsx +++ b/polaris-react/src/components/LegacyTabs/tests/LegacyTabs.test.tsx @@ -99,7 +99,7 @@ describe('', () => { const wrapper = mountWithApp(); tabs.forEach((tab) => { - expect(wrapper.find('ul')!).toContainReactComponent(Tab, { + expect(wrapper.find('ul')).toContainReactComponent(Tab, { id: tab.id, }); }); @@ -118,7 +118,7 @@ describe('', () => { ); panelIDedTabs.forEach((tab) => { - expect(wrapper.find('ul')!).toContainReactComponent(Tab, { + expect(wrapper.find('ul')).toContainReactComponent(Tab, { panelID: tab.panelID, }); }); diff --git a/polaris-react/src/components/MediaQueryProvider/tests/MediaQueryProvider.test.tsx b/polaris-react/src/components/MediaQueryProvider/tests/MediaQueryProvider.test.tsx index f1a86e6647a..42b7357f908 100644 --- a/polaris-react/src/components/MediaQueryProvider/tests/MediaQueryProvider.test.tsx +++ b/polaris-react/src/components/MediaQueryProvider/tests/MediaQueryProvider.test.tsx @@ -20,7 +20,6 @@ describe('MediaQueryProvider', () => { it('passes isNavigationCollapsed to MediaQueryContext.Provider', () => { function Component() { const mediaQuery = useMediaQuery(); - // eslint-disable-next-line jest/no-if return mediaQuery !== undefined ?
: null; } @@ -35,7 +34,6 @@ describe('MediaQueryProvider', () => { it('sets isNavigationCollapsed when resize occurs', () => { function Component() { const {isNavigationCollapsed} = useMediaQuery(); - // eslint-disable-next-line jest/no-if return isNavigationCollapsed ?
content
: null; } const mediaQueryProvider = mountWithApp( diff --git a/polaris-react/src/components/Modal/components/Dialog/Dialog.module.css b/polaris-react/src/components/Modal/components/Dialog/Dialog.module.css index 187e2aa55cc..28c9ab2d2fc 100644 --- a/polaris-react/src/components/Modal/components/Dialog/Dialog.module.css +++ b/polaris-react/src/components/Modal/components/Dialog/Dialog.module.css @@ -82,6 +82,7 @@ &.sizeFullScreen { height: 100%; + @media (--p-breakpoints-md-up) { height: unset; } @@ -92,7 +93,8 @@ will-change: transform, opacity; opacity: 1; transform: translateY(0); - transition: transform var(--p-motion-ease) var(--p-motion-duration-200), + transition: + transform var(--p-motion-ease) var(--p-motion-duration-200), opacity var(--p-motion-ease) var(--p-motion-duration-200); &.entering, diff --git a/polaris-react/src/components/Navigation/Navigation.module.css b/polaris-react/src/components/Navigation/Navigation.module.css index bd939e2e7df..9b3be9c6a4d 100644 --- a/polaris-react/src/components/Navigation/Navigation.module.css +++ b/polaris-react/src/components/Navigation/Navigation.module.css @@ -202,14 +202,13 @@ } .Icon-resized { - /* stylelint-disable-next-line selector-max-combinators -- DO NOT COPY polaris-migrator */ svg, img { margin: var(--p-space-050); height: var(--p-space-400); width: var(--p-space-400); } - /* stylelint-disable-next-line selector-max-combinators -- DO NOT COPY polaris-migrator */ + img { border-radius: var(--p-border-radius-100); } @@ -276,7 +275,7 @@ &.ItemInnerWrapper-display-actions-on-hover { @media (--p-breakpoints-md-up) { &:is(:hover, :focus-visible) { - /* stylelint-disable max-nesting-depth, selector-max-class, selector-max-specificity -- set background */ + /* stylelint-disable max-nesting-depth -- set background */ .SecondaryActions { background: var(--secondary-actions-on-hover-background-color); @@ -332,7 +331,7 @@ &.ItemInnerWrapper-display-actions-on-hover { @media (--p-breakpoints-md-up) { - /* stylelint-disable max-nesting-depth, selector-max-class, selector-max-specificity -- set background */ + /* stylelint-disable max-nesting-depth -- set background */ .SecondaryActions { background: var(--p-color-nav-bg-surface-selected); @@ -379,7 +378,7 @@ &.ItemInnerWrapper-display-actions-on-hover { @media (--p-breakpoints-md-up) { - /* stylelint-disable max-nesting-depth, selector-max-class, selector-max-specificity -- set background */ + /* stylelint-disable max-nesting-depth -- set background */ .SecondaryActions { background: var(--secondary-actions-on-hover-background-color); @@ -525,12 +524,10 @@ .Item:hover &, .Item:focus-visible & { - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ svg { fill: var(--p-color-icon); } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ img { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ filter: var(--pc-navigation-filter-icon); @@ -544,12 +541,10 @@ .Item-child-active &, .Item-child-active:hover &, .Item-selected:focus-visible & { - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ svg { fill: var(--p-color-icon-brand); } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ img { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ filter: var(--pc-navigation-filter-icon-action-primary); @@ -604,7 +599,6 @@ } .Text-truncated { - /* stylelint-disable-next-line value-no-vendor-prefix -- generated by polaris-migrator DO NOT COPY */ display: -webkit-box; overflow: hidden; -webkit-line-clamp: 1; @@ -802,7 +796,6 @@ @mixin focus-ring base, 0, focused; } - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &:active, &:active:hover { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @@ -831,7 +824,6 @@ color: var(--p-color-text-brand); } - /* stylelint-disable-next-line selector-max-specificity -- set active styles */ &:active, &:active:hover { /* stylelint-disable-next-line -- remove focus ring */ @@ -994,20 +986,17 @@ padding-inline: var(--p-space-150); } - /* stylelint-disable-next-line selector-max-specificity -- set focus styles */ &:focus-visible:not(:active) { /* stylelint-disable-next-line polaris/border/polaris/at-rule-disallowed-list -- remove focus ring mixin */ @mixin no-focus-ring; outline: var(--p-border-width-050) solid var(--p-color-border-focus); } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ svg { fill: var(--p-color-icon); } @media (--p-breakpoints-md-up) { - /* stylelint-disable selector-max-combinators -- generated by polaris-migrator DO NOT COPY */ svg, img { height: var(--p-space-400); @@ -1023,7 +1012,6 @@ &:focus { background: var(--p-color-bg-fill-transparent-hover); - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ svg { fill: var(--p-color-icon-hover); } @@ -1042,7 +1030,6 @@ } } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ &:hover svg { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ fill: var(--p-filter-icon); @@ -1053,19 +1040,16 @@ @mixin focus-ring base, 0, focused; } - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &:focus:hover svg { fill: var(--p-color-icon-hover); } - /* stylelint-disable-next-line selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &:active, &:active:hover { background: var(--p-color-bg-surface-active); /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @mixin no-focus-ring; - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ svg { fill: var(--p-color-icon-active); } diff --git a/polaris-react/src/components/OptionList/OptionList.tsx b/polaris-react/src/components/OptionList/OptionList.tsx index 733d6b01058..116a8fd23d7 100644 --- a/polaris-react/src/components/OptionList/OptionList.tsx +++ b/polaris-react/src/components/OptionList/OptionList.tsx @@ -175,8 +175,8 @@ export function OptionList({ ? '100' : '0' : title - ? '050' - : '0'; + ? '050' + : '0'; return ( * { display: inline; } diff --git a/polaris-react/src/components/PolarisTestProvider/tests/PolarisTestProvider.test.tsx b/polaris-react/src/components/PolarisTestProvider/tests/PolarisTestProvider.test.tsx index e63cfe3cb21..80f282e9315 100644 --- a/polaris-react/src/components/PolarisTestProvider/tests/PolarisTestProvider.test.tsx +++ b/polaris-react/src/components/PolarisTestProvider/tests/PolarisTestProvider.test.tsx @@ -41,7 +41,6 @@ describe('PolarisTestProvider', () => { it('allows isNavigationCollapsed to be overwritten', () => { function Component() { const {isNavigationCollapsed} = useMediaQuery(); - // eslint-disable-next-line jest/no-if return isNavigationCollapsed ? : null; } diff --git a/polaris-react/src/components/Popover/Popover.module.css b/polaris-react/src/components/Popover/Popover.module.css index 8fd9ae74b29..ab5eb354b93 100644 --- a/polaris-react/src/components/Popover/Popover.module.css +++ b/polaris-react/src/components/Popover/Popover.module.css @@ -8,13 +8,15 @@ margin: var(--pc-popover-visible-portion-of-arrow) var(--p-space-200) var(--p-space-400); will-change: left, top; + @mixin shadow-bevel var(--p-shadow-300), var(--p-border-radius-300), null, '', 2; } .PopoverOverlay { opacity: 0; - transition: opacity var(--p-motion-duration-100) var(--p-motion-ease), + transition: + opacity var(--p-motion-duration-100) var(--p-motion-ease), transform var(--p-motion-duration-100) var(--p-motion-ease); /* stylelint-disable-next-line -- Polaris component custom properties */ transform: translateY(var(--pc-popover-vertical-motion-offset)); diff --git a/polaris-react/src/components/Popover/components/PopoverOverlay/PopoverOverlay.tsx b/polaris-react/src/components/Popover/components/PopoverOverlay/PopoverOverlay.tsx index 88971157e7f..992b802a6f9 100644 --- a/polaris-react/src/components/Popover/components/PopoverOverlay/PopoverOverlay.tsx +++ b/polaris-react/src/components/Popover/components/PopoverOverlay/PopoverOverlay.tsx @@ -104,11 +104,14 @@ export class PopoverOverlay extends PureComponent { this.focusContent(); this.changeTransitionStatus(TransitionStatus.Entering, () => { this.clearTransitionTimeout(); - this.enteringTimer = window.setTimeout(() => { - this.setState({transitionStatus: TransitionStatus.Entered}); - // Important: This will not update when the active theme changes. - // Update this to `useTheme` once converted to a function component. - }, parseInt(themeDefault.motion['motion-duration-100'], 10)); + this.enteringTimer = window.setTimeout( + () => { + this.setState({transitionStatus: TransitionStatus.Entered}); + // Important: This will not update when the active theme changes. + // Update this to `useTheme` once converted to a function component. + }, + parseInt(themeDefault.motion['motion-duration-100'], 10), + ); }); } diff --git a/polaris-react/src/components/RadioButton/RadioButton.module.css b/polaris-react/src/components/RadioButton/RadioButton.module.css index a1250f8856e..7768a6e1a5c 100644 --- a/polaris-react/src/components/RadioButton/RadioButton.module.css +++ b/polaris-react/src/components/RadioButton/RadioButton.module.css @@ -3,7 +3,7 @@ margin: var(--p-space-025); } -/* stylelint-disable selector-max-specificity, selector-max-class, selector-max-combinators -- code is much more readable this way */ +/* stylelint-disable selector-max-specificity -- code is much more readable this way */ .Input { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @mixin visually-hidden; @@ -28,8 +28,8 @@ &::before { background-color: var(--p-color-text-brand-on-bg-fill); - transition: opacity var(--p-motion-duration-150) - var(--p-motion-ease-out), + transition: + opacity var(--p-motion-duration-150) var(--p-motion-ease-out), transform var(--p-motion-duration-150) var(--p-motion-ease-out); opacity: 1; transform: translate(-50%, -50%) scale(1); @@ -93,7 +93,7 @@ } } } -/* stylelint-enable selector-max-specificity, selector-max-class, selector-max-combinators */ +/* stylelint-enable selector-max-specificity */ .Backdrop { /* stylelint-disable-next-line -- Polaris component custom properties */ @@ -130,7 +130,8 @@ width: var(--pc-icon-size-small); background-color: var(--p-color-bg-fill-brand); border-radius: var(--p-border-radius-full); - transition: opacity var(--p-motion-duration-100) var(--p-motion-ease-out), + transition: + opacity var(--p-motion-duration-100) var(--p-motion-ease-out), transform var(--p-motion-duration-100) var(--p-motion-ease-out); @media (forced-colors: active) { diff --git a/polaris-react/src/components/RangeSlider/components/DualThumb/DualThumb.module.css b/polaris-react/src/components/RangeSlider/components/DualThumb/DualThumb.module.css index df5b557cf11..5d31160c996 100644 --- a/polaris-react/src/components/RangeSlider/components/DualThumb/DualThumb.module.css +++ b/polaris-react/src/components/RangeSlider/components/DualThumb/DualThumb.module.css @@ -166,7 +166,6 @@ transition-duration: var(--p-motion-duration-150); transition-timing-function: var(--p-motion-ease); - /* stylelint-disable selector-max-specificity, selector-max-combinators, selector-max-class -- generated by polaris-migrator DO NOT COPY */ .Thumbs:hover + .Output &, .Thumbs:active + .Output &, .Thumbs:focus + .Output & { @@ -180,7 +179,6 @@ ); } } - /* stylelint-enable selector-max-specificity, selector-max-combinators, selector-max-class -- generated by polaris-migrator DO NOT COPY */ > :first-child { display: block; diff --git a/polaris-react/src/components/RangeSlider/components/SingleThumb/SingleThumb.module.css b/polaris-react/src/components/RangeSlider/components/SingleThumb/SingleThumb.module.css index aa5c21ab92c..b5cb12624c5 100644 --- a/polaris-react/src/components/RangeSlider/components/SingleThumb/SingleThumb.module.css +++ b/polaris-react/src/components/RangeSlider/components/SingleThumb/SingleThumb.module.css @@ -250,7 +250,6 @@ transition-timing-function: var(--p-motion-ease); outline: var(--p-border-width-025) solid transparent; - /* stylelint-disable selector-max-specificity, selector-max-combinators, selector-max-class -- generated by polaris-migrator DO NOT COPY */ .Input:hover + .Output &, .Input:active + .Output &, .Input:focus + .Output & { @@ -264,7 +263,6 @@ ); } } - /* stylelint-enable selector-max-specificity, selector-max-combinators, selector-max-class */ > :first-child { display: block; diff --git a/polaris-react/src/components/ResourceItem/ResourceItem.module.css b/polaris-react/src/components/ResourceItem/ResourceItem.module.css index 68d67fd87a1..8c80564ac1b 100644 --- a/polaris-react/src/components/ResourceItem/ResourceItem.module.css +++ b/polaris-react/src/components/ResourceItem/ResourceItem.module.css @@ -17,7 +17,6 @@ background-color: var(--p-color-bg-surface-secondary-hover); .Actions { - /* stylelint-disable-next-line selector-max-combinators -- show actions on hover */ > * { /* stylelint-disable-next-line -- Polaris component custom properties */ clip: var(--pc-resource-item-action-unhide-clip); @@ -51,7 +50,6 @@ height: 100%; } -/* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ .focusedInner, .focusedInner.focused, .focusedInner.focused.selected { @@ -99,7 +97,6 @@ } .focused & { - /* stylelint-disable-next-line selector-max-combinators -- show actions on focus */ > * { /* stylelint-disable-next-line -- Polaris component custom properties */ clip: var(--pc-resource-item-action-unhide-clip); @@ -161,7 +158,6 @@ } } - /* stylelint-disable-next-line selector-max-class -- set border radius for selectable items */ &.selectable { border-radius: var(--p-border-radius-0); diff --git a/polaris-react/src/components/ResourceList/ResourceList.module.css b/polaris-react/src/components/ResourceList/ResourceList.module.css index 4a68711ceaa..e11886f4b9b 100644 --- a/polaris-react/src/components/ResourceList/ResourceList.module.css +++ b/polaris-react/src/components/ResourceList/ResourceList.module.css @@ -1,7 +1,6 @@ .FiltersWrapper { padding: var(--p-space-300); - /* stylelint-disable-next-line selector-max-combinators, selector-max-specificity -- needed to add the dividing line only when the first child is the list */ + .ResourceListWrapper > :first-child:is(.ResourceList) { /* stylelint-disable-next-line -- polaris component custom properties */ border-top: var(--pc-resource-list-separator-border); @@ -16,7 +15,6 @@ border-top-left-radius: var(--p-border-radius-200); border-top-right-radius: var(--p-border-radius-200); - /* stylelint-disable-next-line selector-max-class, selector-max-combinators -- Ssshhhhh */ + .ResourceList, /* Bulk actions get injected into the DOM between the wrapper and resource*/ /* list dynamically when an item is checked, so we have to handle that case*/ @@ -43,7 +41,6 @@ background-color: rgba(255, 255, 255, 0.5); } -/* stylelint-disable-next-line selector-max-class, selector-max-combinators -- Needed to correctly position the header */ .FiltersWrapper + .ResourceListWrapper > .HeaderOuterWrapper { margin-top: calc(-1 * var(--p-space-400)); } @@ -113,7 +110,6 @@ flex: 0 1 auto; margin-left: var(--p-space-400); - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ .HeaderWrapper-hasAlternateTool.HeaderWrapper-hasSelect &, .HeaderWrapper-hasSort.HeaderWrapper-hasSelect & { padding-right: 0; @@ -142,7 +138,6 @@ } @media (--p-breakpoints-sm-up) { - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ .HeaderWrapper-hasSelect &, .HeaderWrapper-hasAlternateTool.HeaderWrapper-hasSelect &, .HeaderWrapper-hasSort.HeaderWrapper-hasSelect & { @@ -194,7 +189,8 @@ visibility: hidden; opacity: 0; - transition: opacity var(--p-motion-duration-100) var(--p-motion-ease), + transition: + opacity var(--p-motion-duration-100) var(--p-motion-ease), visibility var(--p-motion-duration-100) var(--p-motion-ease); &.BulkActionsWrapperVisible { @@ -206,6 +202,7 @@ .PaginationWrapper { /* stylelint-disable-next-line -- sets the z-index created above */ z-index: var(--pc-pagination-index); + @media (--p-breakpoints-md-up) { position: sticky; bottom: 0; diff --git a/polaris-react/src/components/Select/Select.module.css b/polaris-react/src/components/Select/Select.module.css index e7aa0cb9296..a8be16700cc 100644 --- a/polaris-react/src/components/Select/Select.module.css +++ b/polaris-react/src/components/Select/Select.module.css @@ -12,7 +12,6 @@ } &:not(.disabled):not(.error) { - /* stylelint-disable-next-line -- overrides */ &:hover .Backdrop { border-color: var(--p-color-input-border-hover); background-color: var(--p-color-input-bg-surface-hover); @@ -36,7 +35,6 @@ color: inherit; } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ .Icon svg { fill: var(--p-color-icon-disabled); } @@ -78,7 +76,7 @@ } @media (--p-breakpoints-md-down) { - /* stylelint-disable-next-line selector-max-combinators, selector-max-type -- generated by polaris-migrator DO NOT COPY */ + /* stylelint-disable-next-line selector-max-type -- generated by polaris-migrator DO NOT COPY */ div > span { font-size: var(--p-font-size-400); line-height: var(--p-font-line-height-500); @@ -154,7 +152,6 @@ border-color: var(--p-color-border-critical-secondary); background-color: var(--p-color-bg-surface-critical); - /* stylelint-disable-next-line selector-max-class -- generated by polaris-migrator DO NOT COPY */ &.hover, &:hover { border-color: var(--p-color-border-critical); @@ -163,7 +160,6 @@ /* Need to override the higher specificity of the sibling selector so that errors still have red borders. */ - /* stylelint-disable-next-line selector-max-combinators, selector-max-specificity, selector-max-class -- generated by polaris-migrator DO NOT COPY */ .Input:focus-visible ~ .Backdrop { border-color: var(--p-color-border-critical-secondary); border-width: var(--p-border-width-025); @@ -195,12 +191,11 @@ background-color: var(--p-color-bg-surface-magic); } - /* stylelint-disable-next-line selector-max-combinators -- set Icon fill */ .Icon svg { fill: var(--p-color-icon-magic); } - /* stylelint-disable selector-max-specificity, selector-max-class, selector-max-combinators, selector-max-compound-selectors, max-nesting-depth -- apply hover and active styles */ + /* stylelint-disable selector-max-specificity, max-nesting-depth -- apply hover and active styles */ &:not(.disabled):not(.error) { &:not(:focus-within) { &:hover .Backdrop { @@ -219,7 +214,7 @@ } } } - /* stylelint-enable selector-max-specificity, selector-max-class, selector-max-combinators */ + /* stylelint-enable selector-max-specificity */ } @media (-ms-high-contrast: active) { @@ -271,7 +266,6 @@ .Icon { opacity: 1; - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ svg { fill: grayText; } diff --git a/polaris-react/src/components/Select/tests/Select.test.tsx b/polaris-react/src/components/Select/tests/Select.test.tsx index 34ca9140903..afd2d2267d9 100644 --- a/polaris-react/src/components/Select/tests/Select.test.tsx +++ b/polaris-react/src/components/Select/tests/Select.test.tsx @@ -299,7 +299,7 @@ describe('', () => { expect(select).toContainReactComponent('select', {'aria-invalid': true}); expect(typeof errorID).toBe('string'); - expect(fieldGroup.find('div', {id: errorID})!).toContainReactText( + expect(fieldGroup.find('div', {id: errorID})).toContainReactText( 'Some error', ); }); diff --git a/polaris-react/src/components/ShadowBevel/ShadowBevel.module.css b/polaris-react/src/components/ShadowBevel/ShadowBevel.module.css index cba19028be0..95aedb393ed 100644 --- a/polaris-react/src/components/ShadowBevel/ShadowBevel.module.css +++ b/polaris-react/src/components/ShadowBevel/ShadowBevel.module.css @@ -4,12 +4,10 @@ z-index: 0; @mixin scope-custom-property shadow-bevel, z-index; - @mixin responsive-props shadow-bevel, box-shadow, --pc-shadow-bevel-box-shadow; @mixin responsive-props shadow-bevel, border-radius, --pc-shadow-bevel-border-radius; @mixin responsive-props shadow-bevel, content, --pc-shadow-bevel-content; - @mixin shadow-bevel var(--pc-shadow-bevel-box-shadow), var(--pc-shadow-bevel-border-radius), null, var(--pc-shadow-bevel-content), var(--pc-shadow-bevel-z-index); diff --git a/polaris-react/src/components/Tabs/Tabs.module.css b/polaris-react/src/components/Tabs/Tabs.module.css index 92478f243d9..6dc5040b399 100644 --- a/polaris-react/src/components/Tabs/Tabs.module.css +++ b/polaris-react/src/components/Tabs/Tabs.module.css @@ -104,7 +104,6 @@ @mixin focus-ring wide, 0, focused; } - /* stylelint-disable-next-line selector-max-specificity -- specificity required to override focus ring */ &:not([aria-disabled='true']):focus-visible:not(:active) { /* stylelint-disable-next-line -- no way to set focus ring without mixin currently */ @mixin focus-ring base, 0, focused; diff --git a/polaris-react/src/components/Tabs/tests/Tabs.test.tsx b/polaris-react/src/components/Tabs/tests/Tabs.test.tsx index dff833fedee..5a7846d4dcb 100644 --- a/polaris-react/src/components/Tabs/tests/Tabs.test.tsx +++ b/polaris-react/src/components/Tabs/tests/Tabs.test.tsx @@ -136,7 +136,7 @@ describe('Tabs', () => { const wrapper = mountWithApp(); tabs.forEach((tab) => { - expect(wrapper.find('ul')!).toContainReactComponent(Tab, { + expect(wrapper.find('ul')).toContainReactComponent(Tab, { id: tab.id, }); }); @@ -155,7 +155,7 @@ describe('Tabs', () => { ); panelIDedTabs.forEach((tab) => { - expect(wrapper.find('ul')!).toContainReactComponent(Tab, { + expect(wrapper.find('ul')).toContainReactComponent(Tab, { panelID: tab.panelID, }); }); diff --git a/polaris-react/src/components/Tag/Tag.module.css b/polaris-react/src/components/Tag/Tag.module.css index d214e8a1ce0..79eaa5066d1 100644 --- a/polaris-react/src/components/Tag/Tag.module.css +++ b/polaris-react/src/components/Tag/Tag.module.css @@ -33,7 +33,6 @@ /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @mixin focus-ring wide; - /* stylelint-disable-next-line selector-max-specificity -- use focus-ring mixin */ &:focus-visible:not(:active) { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @mixin focus-ring base, 0, focused; @@ -160,7 +159,6 @@ .linkable.removable:hover { background: var(--p-color-bg-fill-tertiary-hover); - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- override Button background color */ .Button { background: var(--p-color-bg-fill-tertiary-active); } @@ -176,7 +174,6 @@ } } -/* stylelint-disable-next-line selector-max-class, selector-max-specificity -- override code above */ .sizeLarge .Link.segmented::after { margin-right: 0; } @@ -224,9 +221,8 @@ transparent 100% ); } -/* stylelint-disable-next-line selector-max-class -- match tag hover color */ + .sizeLarge.removable.linkable { - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- match tag hover color */ .Button { background-color: var(--p-color-bg-fill-tertiary-hover); /* stylelint-disable-next-line -- reveal on touch devices */ @@ -234,7 +230,7 @@ background-color: var(--p-color-bg-fill-tertiary); } } - /* stylelint-disable-next-line selector-max-class, selector-max-specificity -- match tag hover color */ + &:hover .overlay { background: linear-gradient( to left, diff --git a/polaris-react/src/components/TextField/TextField.module.css b/polaris-react/src/components/TextField/TextField.module.css index 99ed23ed5a9..c956f5215ab 100644 --- a/polaris-react/src/components/TextField/TextField.module.css +++ b/polaris-react/src/components/TextField/TextField.module.css @@ -23,7 +23,7 @@ opacity: 1; } - /* stylelint-disable-next-line -- needed to remove extra margin between loading indicator and clear button when visible */ + /* needed to remove extra margin between loading indicator and clear button when visible */ .Loading:has(+ .ClearButton) { margin-right: 0; } @@ -71,7 +71,6 @@ .Input:focus-visible { outline: none; - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- outline based on child focus requires complex specificity */ ~ .Backdrop { border-color: var(--p-color-input-border-active); border-width: var(--p-border-width-025); @@ -85,33 +84,28 @@ } .error { - /* stylelint-disable-next-line -- set Backdrop styles */ .Input:hover ~ .Backdrop, .Input:focus-visible ~ .Backdrop { border-color: var(--p-color-border-critical-secondary); background-color: var(--p-color-bg-surface-critical); } - /* stylelint-disable-next-line -- set Backdrop styles */ .Input:active ~ .Backdrop, .Input:focus-visible ~ .Backdrop { border-width: var(--p-border-width-025); } - /* stylelint-disable-next-line selector-max-class, selector-max-combinators -- generated by polaris-migrator DO NOT COPY */ > .Input ~ .Backdrop, > .InputAndSuffixWrapper ~ .Backdrop { background-color: var(--p-color-bg-surface-critical); border-color: var(--p-color-border-critical-secondary); - /* stylelint-disable-next-line selector-max-class, selector-max-combinators, selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &::after { border-color: var(--p-color-border-focus); } } } -/* stylelint-disable -- specificity bump for readOnly styles to override */ .readOnly.readOnly { > .Input { color: var(--p-color-text-secondary); @@ -129,9 +123,8 @@ } } } -/* stylelint-enable */ -/* stylelint-disable selector-max-specificity, selector-max-class, selector-max-combinators -- specificity bump for magic styles to override */ +/* stylelint-disable selector-max-specificity -- specificity bump for magic styles to override */ .toneMagic { .Prefix, .Suffix { @@ -234,7 +227,6 @@ } .Prefix + .InputAndSuffixWrapper { - /* stylelint-disable-next-line selector-max-combinators, selector-max-class, selector-max-specificity -- necessary to remove padding when autosizing and with prefix */ .AutoSizeWrapper::after, input, textarea { @@ -338,14 +330,12 @@ } } -/* stylelint-disable -- override focus ring offset by increasing specificity */ .slim.borderless.slim.borderless { .Input, .Backdrop { outline-offset: 0; } } -/* stylelint-enable */ .Input-hasClearButton { /* Hide webkit search input clear button */ @@ -474,8 +464,8 @@ /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ z-index: var(--pc-text-field-contents); margin: 0 var(--p-space-300) 0 var(--p-space-100); - transition: visibility var(--p-motion-duration-200) - var(--p-motion-ease-in-out), + transition: + visibility var(--p-motion-duration-200) var(--p-motion-ease-in-out), opacity var(--p-motion-duration-200) var(--p-motion-ease-in-out); &:focus-visible:enabled { diff --git a/polaris-react/src/components/TextField/components/Resizer/tests/Resizer.test.tsx b/polaris-react/src/components/TextField/components/Resizer/tests/Resizer.test.tsx index 0296c8b8d94..eced7278e1e 100644 --- a/polaris-react/src/components/TextField/components/Resizer/tests/Resizer.test.tsx +++ b/polaris-react/src/components/TextField/components/Resizer/tests/Resizer.test.tsx @@ -68,7 +68,7 @@ describe('', () => { ); const expectedEncodedContents = '<div>&
Contents</div>
'; - expect(resizer)!.toContainReactHtml(expectedEncodedContents); + expect(resizer).toContainReactHtml(expectedEncodedContents); }); it('ignores carriage returns when rendering content', () => { @@ -78,7 +78,7 @@ describe('', () => { ); const expectedEncodedContents = '<div>&
Contents</div>
'; - expect(resizer)!.toContainReactHtml(expectedEncodedContents); + expect(resizer).toContainReactHtml(expectedEncodedContents); }); }); @@ -88,14 +88,14 @@ describe('', () => { const resizer = mountWithApp( , ); - expect(resizer.find('div'))!.toContainReactHtml('


'); + expect(resizer.find('div')).toContainReactHtml('


'); }); it('renders nothing when minimumLines is undefined', () => { const resizer = mountWithApp( , ); - expect(resizer.find('div'))!.not.toContainReactHtml('


'); + expect(resizer.find('div')).not.toContainReactHtml('


'); }); }); diff --git a/polaris-react/src/components/TextField/tests/TextField.test.tsx b/polaris-react/src/components/TextField/tests/TextField.test.tsx index bee9827362a..6b033c982ab 100644 --- a/polaris-react/src/components/TextField/tests/TextField.test.tsx +++ b/polaris-react/src/components/TextField/tests/TextField.test.tsx @@ -624,7 +624,7 @@ describe('', () => { .find('div', {className: styles.TextField})! .trigger('onClick', {target: button}); - expect(textField.find(Connected)!).not.toContainReactComponent('div', { + expect(textField.find(Connected)).not.toContainReactComponent('div', { className: expect.stringContaining(styles.focus), }); }); @@ -650,13 +650,13 @@ describe('', () => { textField.find('label', { id: `${labels[0]}`, }), - )!.toContainReactText('TextField'); + ).toContainReactText('TextField'); expect( textField.find('div', { id: `${labels[1]}`, }), - )!.toContainReactText('kg'); + ).toContainReactText('kg'); }); it('does not set focus `onClick` for the if the `target` is the `suffix`', () => { @@ -676,7 +676,7 @@ describe('', () => { .find('div', {className: styles.TextField})! .trigger('onClick', {target: button}); - expect(textField.find(Connected)!).not.toContainReactComponent('div', { + expect(textField.find(Connected)).not.toContainReactComponent('div', { className: expect.stringContaining(styles.focus), }); }); @@ -704,13 +704,13 @@ describe('', () => { textField.find('label', { id: `${labels[0]}`, }), - )!.toContainReactText('TextField'); + ).toContainReactText('TextField'); expect( textField.find('div', { id: `${labels[1]}`, }), - )!.toContainReactText('Antique'); + ).toContainReactText('Antique'); }); it('sets focus on the input when focused', () => { diff --git a/polaris-react/src/components/Thumbnail/Thumbnail.module.css b/polaris-react/src/components/Thumbnail/Thumbnail.module.css index a3d45cc6092..4459f354d59 100644 --- a/polaris-react/src/components/Thumbnail/Thumbnail.module.css +++ b/polaris-react/src/components/Thumbnail/Thumbnail.module.css @@ -76,7 +76,6 @@ max-height: 100%; color: var(--p-color-icon-secondary); - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ svg { fill: currentColor; } diff --git a/polaris-react/src/components/Tooltip/components/TooltipOverlay/TooltipOverlay.module.css b/polaris-react/src/components/Tooltip/components/TooltipOverlay/TooltipOverlay.module.css index 315021b5791..75fc48c39c4 100644 --- a/polaris-react/src/components/Tooltip/components/TooltipOverlay/TooltipOverlay.module.css +++ b/polaris-react/src/components/Tooltip/components/TooltipOverlay/TooltipOverlay.module.css @@ -49,7 +49,6 @@ } /* TailDown */ - /* stylelint-disable-next-line -- TailDown styles */ .Tail { top: unset; bottom: calc(-1 * var(--p-space-200)); diff --git a/polaris-react/src/components/TopBar/TopBar.module.css b/polaris-react/src/components/TopBar/TopBar.module.css index 3590c1805c1..b4eca8a0e17 100644 --- a/polaris-react/src/components/TopBar/TopBar.module.css +++ b/polaris-react/src/components/TopBar/TopBar.module.css @@ -38,6 +38,7 @@ .LogoDisplayControl { display: none; + @media (--p-breakpoints-md-up) { display: flex; } @@ -76,6 +77,7 @@ .ContextControl { display: none; + @media (--p-breakpoints-md-up) { /* stylelint-disable-next-line -- polaris custom global property */ width: var(--pg-layout-width-nav-base); @@ -118,6 +120,7 @@ width: calc(100% + var(--p-space-500)); height: calc(100% + var(--p-space-500)); } + @media (--p-breakpoints-md-up) { display: none; } @@ -127,14 +130,12 @@ @mixin focus-ring base, 6px; } - /* stylelint-disable selector-max-specificity -- generated by polaris-migrator DO NOT COPY */ &:focus-visible:not(:active) { .IconWrapper { /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ @mixin focus-ring base, 0, focused; } } - /* stylelint-enable selector-max-specificity */ } .LeftContent { diff --git a/polaris-react/src/components/TopBar/components/SearchField/SearchField.module.css b/polaris-react/src/components/TopBar/components/SearchField/SearchField.module.css index bba5dc9e342..982118af490 100644 --- a/polaris-react/src/components/TopBar/components/SearchField/SearchField.module.css +++ b/polaris-react/src/components/TopBar/components/SearchField/SearchField.module.css @@ -41,20 +41,17 @@ border: var(--p-border-width-025) solid var(--pc-top-bar-border); } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ ~ .Icon svg { fill: var(--p-color-icon-secondary); } } .Input:focus-visible:not(:active) { - /* stylelint-disable-next-line selector-max-specificity -- set Backdrop outline styles */ ~ .Backdrop { outline: var(--p-border-width-050) solid var(--p-color-border-focus); outline-offset: var(--p-space-050); } - /* stylelint-disable-next-line selector-max-combinators, selector-max-specificity -- set Icon fill */ ~ .Icon svg { fill: var(--p-color-icon-secondary); } @@ -66,7 +63,6 @@ border: var(--p-border-width-025) solid var(--pc-top-bar-border); } - /* stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY */ .Icon svg { fill: var(--p-color-icon-inverse); } @@ -87,7 +83,8 @@ outline: none; color: var(--p-color-text-inverse-secondary); will-change: fill, color; - transition: fill var(--p-motion-duration-200) var(--p-motion-ease), + transition: + fill var(--p-motion-duration-200) var(--p-motion-ease), color var(--p-motion-duration-200) var(--p-motion-ease); &:hover { diff --git a/polaris-react/src/utilities/tests/use-is-after-initial-mount.test.tsx b/polaris-react/src/utilities/tests/use-is-after-initial-mount.test.tsx index 2b5db15c8ed..7df9a2b3433 100644 --- a/polaris-react/src/utilities/tests/use-is-after-initial-mount.test.tsx +++ b/polaris-react/src/utilities/tests/use-is-after-initial-mount.test.tsx @@ -8,7 +8,6 @@ describe('useIsAfterInitialMount', () => { let isAfterInitialMountValue: boolean | undefined; function Component() { const isAfterInitialMount = useIsAfterInitialMount(); - // eslint-disable-next-line jest/no-if if (isAfterInitialMountValue === undefined) isAfterInitialMountValue = !isAfterInitialMount; return null; diff --git a/polaris-react/src/utilities/use-event-listener.ts b/polaris-react/src/utilities/use-event-listener.ts index b8ea5e10c99..40c05c05101 100644 --- a/polaris-react/src/utilities/use-event-listener.ts +++ b/polaris-react/src/utilities/use-event-listener.ts @@ -15,18 +15,18 @@ type UseEventListenerTarget = /** * Extracts the target element from a React `RefObject` or returns the input element. */ -type ExtractTargetElement = Target extends RefObject - ? Element - : Target; +type ExtractTargetElement = + Target extends RefObject ? Element : Target; /** * Extracts a (lib.dom.ts) EventMap for a given target element. */ -type ExtractEventMap = ExtractTargetElement extends Window - ? WindowEventMap - : ExtractTargetElement extends Document - ? DocumentEventMap - : HTMLElementEventMap; +type ExtractEventMap = + ExtractTargetElement extends Window + ? WindowEventMap + : ExtractTargetElement extends Document + ? DocumentEventMap + : HTMLElementEventMap; /** * Extracts all event names for a given target element. diff --git a/polaris.shopify.com/playroom/FrameComponent.tsx b/polaris.shopify.com/playroom/FrameComponent.tsx index 8a72b56c194..5b50027eec2 100644 --- a/polaris.shopify.com/playroom/FrameComponent.tsx +++ b/polaris.shopify.com/playroom/FrameComponent.tsx @@ -62,16 +62,16 @@ export default function FrameComponent({ // Tell parent frame of the initial size on first render useEffect(() => { - if (!wrapperRef.current) { + if (!wrapperRef.current || !content) { return; } var {height} = wrapperRef.current.getBoundingClientRect(); updateGrowFrameHeight(`${Math.ceil(height)}px`); - }, []); + }, [content]); // Watch for changes in size (screen resizing, interacting, etc); useEffect(() => { - if (!wrapperRef.current) { + if (!wrapperRef.current || !content) { return; } const observer = new ResizeObserver((entries) => { @@ -82,7 +82,7 @@ export default function FrameComponent({ return () => { observer.disconnect(); }; - }, []); + }, [content]); useEffect(() => { const urlFeatures = new URLSearchParams(window.location.search).get( diff --git a/polaris.shopify.com/src/components/PatternsExample/PatternsExample.tsx b/polaris.shopify.com/src/components/PatternsExample/PatternsExample.tsx index 1f945593f46..b964180c97b 100644 --- a/polaris.shopify.com/src/components/PatternsExample/PatternsExample.tsx +++ b/polaris.shopify.com/src/components/PatternsExample/PatternsExample.tsx @@ -1,6 +1,7 @@ import {Fragment, useRef, useEffect, useState, useCallback} from 'react'; import {format} from 'prettier/standalone'; -import babel from 'prettier/parser-babel'; +import babel from 'prettier/plugins/babel'; +import estree from 'prettier/plugins/estree'; import endent from 'endent'; import {createUrl} from 'playroom'; import {Stack} from '../Stack'; @@ -14,6 +15,62 @@ import {viewTransition} from '../../utils/various'; import {MaximizeIcon, MinimizeIcon} from '@shopify/polaris-icons'; import Icon from '../Icon'; +function usePromise( + getPromise: () => Promise, + deps?: Array, +): [boolean, T | undefined] { + const [{loading, value}, setValue] = useState<{loading: boolean; value?: T}>({ + loading: true, + }); + useEffect(() => { + let cancelled = false; + getPromise().then((value) => { + // Don't try to call setValue after the component has unmounted + if (!cancelled) { + setValue({loading: false, value}); + } + }); + return () => { + cancelled = true; + }; + }, [getPromise, ...(deps ?? [])]); + return [loading, value]; +} + +const formatCodeSnippet = async (code: string) => { + let prettifiedCode; + + try { + // Casting because the typescript function(str: string) overload is missing + prettifiedCode = await format( + endent(code as unknown as TemplateStringsArray), + { + parser: 'babel', + plugins: [estree, babel], + }, + ); + } catch (error) { + if (process.env.NODE_ENV === 'production') { + console.error(error); + // proceed gracefully + prettifiedCode = code; + } else { + throw error; + } + } + + // We trim and call a custom replace here + // Because prettier appends a semi-colon at the end of the detected JSX phrase for some reason. + // TODO: Validate whether or not we can solve this at a config level. (i.e. disable the rule) + + return prettifiedCode.trim().replace(/[;$]/g, (match, offset, string) => { + if (offset === string.length - 1 || string.lastIndexOf(match) === offset) { + return ''; + } + return match; + }); +}; + const getISOStringYear = () => new Date().toISOString().split('T')[0]; const PlayroomButton = ({code, title}: {code: string; title?: string}) => { @@ -160,57 +217,36 @@ const PatternsExample = ({ } }, [dialogActive, handleMinimize]); - const formatCodeSnippet = (code: string) => { - let prettifiedCode; - - try { - // Casting because the typescript function(str: string) overload is missing - prettifiedCode = format(endent(code as unknown as TemplateStringsArray), { - parser: 'babel', - plugins: [babel], - }); - } catch (error) { - if (process.env.NODE_ENV === 'production') { - console.error(error); - // proceed gracefully - prettifiedCode = code; - } else { - throw error; - } - } - - // We trim and call a custom replace here - // Because prettier appends a semi-colon at the end of the detected JSX phrase for some reason. - // TODO: Validate whether or not we can solve this at a config level. (i.e. disable the rule) - - return prettifiedCode.trim().replace(/[;$]/g, (match, offset, string) => { - if ( - offset === string.length - 1 || - string.lastIndexOf(match) === offset - ) { - return ''; - } - return match; - }); - }; - - const formattedCode = formatCodeSnippet(example.code); - - const sandboxCode = example.sandboxContext - ? formatCodeSnippet( - example.sandboxContext - .replace(/\\\#/g, '') - .replace(/____CODE____;?/, formattedCode), - ) - : formattedCode; - - const previewCode = example.previewContext - ? formatCodeSnippet( - example.previewContext - .replace(/\\\#/g, '') - .replace(/____CODE____;?/, formattedCode), - ) - : formattedCode; + const getFormattedCode = useCallback(async () => { + const formattedCode = await formatCodeSnippet(example.code); + const [sandboxCode, previewCode] = await Promise.all([ + example.sandboxContext + ? formatCodeSnippet( + example.sandboxContext + .replace(/\\\#/g, '') + .replace(/____CODE____;?/, formattedCode), + ) + : formattedCode, + + example.previewContext + ? formatCodeSnippet( + example.previewContext + .replace(/\\\#/g, '') + .replace(/____CODE____;?/, formattedCode), + ) + : formattedCode, + ]); + return [formattedCode, sandboxCode, previewCode]; + }, [example.code, example.sandboxContext, example.previewContext]); + + const [ + formattingCode, + [formattedCode = '', sandboxCode = '', previewCode = ''] = [], + ] = usePromise(getFormattedCode); + + if (formattingCode) { + return null; + } const previewUrl = `/playroom/preview/index.html${createUrl({ code: previewCode, diff --git a/stylelint-polaris/package.json b/stylelint-polaris/package.json index 17c3851a7e8..f4e4cd100bc 100644 --- a/stylelint-polaris/package.json +++ b/stylelint-polaris/package.json @@ -31,18 +31,18 @@ "exports": "./index.js", "scripts": { "lint": "TIMING=1 eslint --cache .", - "test": "jest", + "test": "NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" jest", "clean": "rm -rf .turbo node_modules dist" }, "dependencies": { - "stylelint-scss": "^4.4.0", + "stylelint-scss": "^6.3.2", "postcss-scss": "^4.0.9", "postcss-value-parser": "^4.2.0", "postcss-media-query-parser": "^0.2.3", "@shopify/polaris-tokens": "^9.2.0" }, "peerDependencies": { - "stylelint": "^14.15.0 || ^15.0.0" + "stylelint": "^16.0.0" }, "jest": { "preset": "jest-preset-stylelint" diff --git a/stylelint-polaris/plugins/coverage/index.js b/stylelint-polaris/plugins/coverage/index.js index 135721e46fd..34a28889711 100644 --- a/stylelint-polaris/plugins/coverage/index.js +++ b/stylelint-polaris/plugins/coverage/index.js @@ -71,7 +71,7 @@ module.exports = stylelint.createPlugin( } } - return (root, result) => { + return async (root, result) => { const validOptions = stylelint.utils.validateOptions( result, coverageRuleName, @@ -93,7 +93,7 @@ module.exports = stylelint.createPlugin( severity = result.stylelint.config?.defaultSeverity, } = rule; - stylelint.utils.checkAgainstRule( + await stylelint.utils.checkAgainstRule( { ruleName: stylelintRuleName, ruleSettings, diff --git a/stylelint-polaris/plugins/declaration-property-value-disallowed-list/index.js b/stylelint-polaris/plugins/declaration-property-value-disallowed-list/index.js index cfc2e0f8cbd..ca1ff205f6f 100644 --- a/stylelint-polaris/plugins/declaration-property-value-disallowed-list/index.js +++ b/stylelint-polaris/plugins/declaration-property-value-disallowed-list/index.js @@ -22,7 +22,7 @@ const {rule} = stylelint.createPlugin( ruleName, /** @param {PrimaryOptions} primary */ (primary) => { - return (root, result) => { + return async (root, result) => { const validOptions = stylelint.utils.validateOptions(result, ruleName, { actual: primary, possible: [validateObjectWithArrayProps(isString, isRegExp)], @@ -30,7 +30,7 @@ const {rule} = stylelint.createPlugin( if (!validOptions) return; - stylelint.utils.checkAgainstRule( + await stylelint.utils.checkAgainstRule( { ruleName: 'declaration-property-value-disallowed-list', ruleSettings: primary, diff --git a/stylelint-polaris/plugins/media-query-allowed-list/index.js b/stylelint-polaris/plugins/media-query-allowed-list/index.js index d604db575c1..7faa27fd274 100644 --- a/stylelint-polaris/plugins/media-query-allowed-list/index.js +++ b/stylelint-polaris/plugins/media-query-allowed-list/index.js @@ -34,7 +34,7 @@ const {rule} = stylelint.createPlugin( ruleName, /** @param {PrimaryOptions} primary */ (primary) => { - return (root, result) => { + return async (root, result) => { const validOptions = stylelint.utils.validateOptions( result, ruleName, @@ -79,7 +79,7 @@ const {rule} = stylelint.createPlugin( // Pass `primary.allowedMediaFeatureNames` to the // built-in `media-feature-name-allowed-list` rule - stylelint.utils.checkAgainstRule( + await stylelint.utils.checkAgainstRule( { ruleName: 'media-feature-name-allowed-list', ruleSettings: allowedMediaFeatureNames,