diff --git a/jest.config.js b/jest.config.js index 56366021..637c3aff 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,9 +3,9 @@ module.exports = { moduleFileExtensions: ['js', 'json', 'ts', 'tsx'], rootDir: '.', transform: { - '^.+\\.tsx?$': 'ts-jest', + '\\.[jt]sx?$': ['ts-jest', {tsconfig: './tsconfig.test.json'}], }, - transformIgnorePatterns: ['node_modules/(?!(@gravity-ui)/)'], + transformIgnorePatterns: ['node_modules/(?!(@gravity-ui|tinygesture))'], coverageDirectory: './coverage', collectCoverageFrom: ['src/**/*.{ts,tsx}', '!**/__stories__/**/*', '!**/*/*.stories.{ts,tsx}'], testEnvironment: 'jsdom', diff --git a/package-lock.json b/package-lock.json index 31c6537c..42948173 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.9.2", "license": "MIT", "dependencies": { + "@gravity-ui/components": "^2.0.0", "@gravity-ui/i18n": "^1.0.0", "@gravity-ui/icons": "^2.1.0", "bem-cn-lite": "^4.0.0", @@ -19,11 +20,11 @@ "@babel/preset-typescript": "^7.18.6", "@commitlint/cli": "^17.0.0", "@commitlint/config-conventional": "^17.0.0", - "@gravity-ui/eslint-config": "^2.0.0", + "@gravity-ui/eslint-config": "^2.1.1", "@gravity-ui/prettier-config": "^1.0.1", "@gravity-ui/stylelint-config": "^2.0.0", "@gravity-ui/tsconfig": "^1.0.0", - "@gravity-ui/uikit": "^4.10.0", + "@gravity-ui/uikit": "^5.0.2", "@storybook/addon-essentials": "^7.0.27", "@storybook/preset-scss": "^1.0.3", "@storybook/react": "^7.0.27", @@ -2253,6 +2254,11 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@bem-react/classname": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@bem-react/classname/-/classname-1.6.0.tgz", + "integrity": "sha512-SFBwUHMcb7TFFK5ld88+JhecoEun3/kHZ6KvLDjj3w5hv/tfRV8mtGHA8N42uMctXLF4bPEcr96xwXXcRFuweg==" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -3437,10 +3443,28 @@ "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", "dev": true }, - "node_modules/@gravity-ui/eslint-config": { + "node_modules/@gravity-ui/components": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@gravity-ui/eslint-config/-/eslint-config-2.0.0.tgz", - "integrity": "sha512-kSzV4nwHnR7yDs40TLxFHg1RProMNUxT7ZFFgbmhN1WNe5RdjDWAj0y6apQJUt3V6dfUm+7gQQc5SwStmHHoMQ==", + "resolved": "https://registry.npmjs.org/@gravity-ui/components/-/components-2.0.0.tgz", + "integrity": "sha512-P0RJwQuyeytrypOpPMihd8/F2xi3+/UZJHeoa3PUt3WD2n6rLyiWOp1iS/T2jUYBWPJQqfayLYbqmQZZPemwMw==", + "dependencies": { + "@bem-react/classname": "^1.6.0", + "@gravity-ui/i18n": "^1.0.0", + "@gravity-ui/icons": "^2.3.0", + "lodash": "^4.17.21", + "resize-observer-polyfill": "^1.5.1", + "tinygesture": "^2.0.0" + }, + "peerDependencies": { + "@gravity-ui/uikit": "^5.0.0", + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@gravity-ui/eslint-config": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@gravity-ui/eslint-config/-/eslint-config-2.1.1.tgz", + "integrity": "sha512-TdVuXLTClhIbN5dFqkkWvjTFkl2CuWxpTDCrgl3/wzIfv62bSwKTrLHZuI1/GVuMKFTXCUhSQivS/RhvayfxGQ==", "dev": true, "dependencies": { "@babel/core": "7.16.0", @@ -3450,6 +3474,7 @@ "@typescript-eslint/parser": "5.40.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "2.26.0", + "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-prettier": "4.0.0", "eslint-plugin-react": "7.27.0", "eslint-plugin-react-hooks": "4.3.0", @@ -3460,14 +3485,14 @@ } }, "node_modules/@gravity-ui/i18n": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gravity-ui/i18n/-/i18n-1.0.0.tgz", - "integrity": "sha512-KNYNhQjA9XqLo0RVEwNRqdA7/Lx5LLrNDtqWCvOGzXTwKU0GFNlWJaoSvk7u97apag23nTxgmpk551FlRCfehA==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@gravity-ui/i18n/-/i18n-1.1.0.tgz", + "integrity": "sha512-Ck+LNE1S2GGaMKMijIYWogiM/tYk0wHPlqLrhZmzp6P5keIu8YnPDeIlwAzq4eYVSrtTudLmshFB9QmYAeLryQ==" }, "node_modules/@gravity-ui/icons": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@gravity-ui/icons/-/icons-2.1.0.tgz", - "integrity": "sha512-7M4eCAS01yVnrrXm8sxt8uNfgSvuQzI1OfzBUrLDviYp2qZa5oKA6z2ol8bIfyV1fmSk4oWzL4AizNUcts6XgQ==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@gravity-ui/icons/-/icons-2.4.0.tgz", + "integrity": "sha512-uyDoXTLbzFT/PmPCpR+qqB5hwRospg6xLnzJCY0vYgXqcr2h81xXglETVam0BBdJbM0JkSo2vqxAy3hJtAfFXQ==" }, "node_modules/@gravity-ui/prettier-config": { "version": "1.0.1", @@ -3518,46 +3543,37 @@ "dev": true }, "node_modules/@gravity-ui/uikit": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@gravity-ui/uikit/-/uikit-4.10.0.tgz", - "integrity": "sha512-eDK0ReXrDF/mWx4i64EO+qCNhzksDM6r8DJGqd4yOkJ9IWS2S53XpFfWWtiI6FGWCMcldI5ctdh3FBAf5sdgzQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@gravity-ui/uikit/-/uikit-5.0.2.tgz", + "integrity": "sha512-mEU02aa6sK9M83W+n8PJd2Kmo6nLJN69wvytwZ9+mQalv9ZpZhLvkhJGUFM67YUahepVMGqxteYPEBiXpVWtHg==", "dev": true, "dependencies": { - "@gravity-ui/i18n": "^1.0.0", - "@popperjs/core": "2.11.6", - "bem-cn-lite": "4.0.0", + "@gravity-ui/i18n": "^1.1.0", + "@gravity-ui/icons": "^2.2.0", + "@popperjs/core": "^2.11.8", + "bem-cn-lite": "^4.1.0", "blueimp-md5": "^2.19.0", - "focus-trap": "7.4.0", - "lodash": "4.17.21", - "react-copy-to-clipboard": "5.1.0", - "react-popper": "2.3.0", + "focus-trap": "^7.4.3", + "lodash": "^4.17.21", + "react-copy-to-clipboard": "^5.1.0", + "react-popper": "^2.3.0", "react-sortable-hoc": "2.0.0", "react-transition-group": "^4.4.5", - "react-virtualized-auto-sizer": "1.0.7", - "react-window": "1.8.8", - "resize-observer-polyfill": "1.5.1", - "tabbable": "6.1.1", - "tslib": "2.3.1", - "utility-types": "3.10.0" + "react-virtualized-auto-sizer": "^1.0.20", + "react-window": "^1.8.9", + "tabbable": "^6.1.2", + "tslib": "^2.5.3", + "utility-types": "^3.10.0" }, "peerDependencies": { "react": "^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@gravity-ui/uikit/node_modules/bem-cn-lite": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/bem-cn-lite/-/bem-cn-lite-4.0.0.tgz", - "integrity": "sha512-ylyWbX63PqhJvm9xGcLAoiKYi87T5g4r5g6sx0dZHcvCtgYvnOWvVTZOQp+uB2DF8ZXsejnPkySvzKnsQhuOAg==", - "dev": true, - "dependencies": { - "bem-cn": "^3.0.1" - } - }, "node_modules/@gravity-ui/uikit/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", "dev": true }, "node_modules/@humanwhocodes/config-array": { @@ -4500,9 +4516,9 @@ } }, "node_modules/@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "dev": true, "funding": { "type": "opencollective", @@ -8833,6 +8849,12 @@ "node": ">=4" } }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, "node_modules/ast-types/node_modules/tslib": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", @@ -8929,6 +8951,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/axe-core": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", + "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, "node_modules/babel-core": { "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", @@ -11109,6 +11149,12 @@ "type": "^1.0.1" } }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, "node_modules/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -12398,6 +12444,42 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/eslint-plugin-prettier": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", @@ -13939,12 +14021,12 @@ } }, "node_modules/focus-trap": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.0.tgz", - "integrity": "sha512-yI7FwUqU4TVb+7t6PaQ3spT/42r/KLEi8mtdGoQo2li/kFzmu9URmalTvw7xCCJtSOyhBxscvEAmvjeN9iHARg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz", + "integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==", "dev": true, "dependencies": { - "tabbable": "^6.1.1" + "tabbable": "^6.2.0" } }, "node_modules/for-each": { @@ -19411,6 +19493,21 @@ "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", "dev": true }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, "node_modules/last-run": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", @@ -22651,22 +22748,19 @@ } }, "node_modules/react-virtualized-auto-sizer": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.7.tgz", - "integrity": "sha512-Mxi6lwOmjwIjC1X4gABXMJcKHsOo0xWl3E3ugOgufB8GJU+MqrtY35aBuvCYv/razQ1Vbp7h1gWJjGjoNN5pmA==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.20.tgz", + "integrity": "sha512-OdIyHwj4S4wyhbKHOKM1wLSj/UDXm839Z3Cvfg2a9j+He6yDa6i5p0qQvEiCnyQlGO/HyfSnigQwuxvYalaAXA==", "dev": true, - "engines": { - "node": ">8.0.0" - }, "peerDependencies": { "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc", "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc" } }, "node_modules/react-window": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.8.tgz", - "integrity": "sha512-D4IiBeRtGXziZ1n0XklnFGu7h9gU684zepqyKzgPNzrsrk7xOCxni+TCckjg2Nr/DiaEEGVVmnhYSlT2rB47dQ==", + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.9.tgz", + "integrity": "sha512-+Eqx/fj1Aa5WnhRfj9dJg4VYATGwIUP2ItwItiJ6zboKWA6EX3lYDAXfGF2hyNqplEprhbtjbipiADEcwQ823Q==", "dev": true, "dependencies": { "@babel/runtime": "^7.0.0", @@ -23105,8 +23199,7 @@ "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", - "dev": true + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "node_modules/resolve": { "version": "1.22.1", @@ -24826,9 +24919,9 @@ "dev": true }, "node_modules/tabbable": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.1.1.tgz", - "integrity": "sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", "dev": true }, "node_modules/table": { @@ -25222,6 +25315,11 @@ "node": ">=0.10.0" } }, + "node_modules/tinygesture": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinygesture/-/tinygesture-2.0.0.tgz", + "integrity": "sha512-Xhpo6tCvUOyVq7BmJh/WDi+9qFh5AtuUqbKoMG5vpG+PT6JLPGE9D5hl9kZlj1ZqsgHuGb1OrNAXoHh8qIDpjA==" + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -28331,6 +28429,11 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@bem-react/classname": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@bem-react/classname/-/classname-1.6.0.tgz", + "integrity": "sha512-SFBwUHMcb7TFFK5ld88+JhecoEun3/kHZ6KvLDjj3w5hv/tfRV8mtGHA8N42uMctXLF4bPEcr96xwXXcRFuweg==" + }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -29106,10 +29209,23 @@ "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", "dev": true }, - "@gravity-ui/eslint-config": { + "@gravity-ui/components": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@gravity-ui/eslint-config/-/eslint-config-2.0.0.tgz", - "integrity": "sha512-kSzV4nwHnR7yDs40TLxFHg1RProMNUxT7ZFFgbmhN1WNe5RdjDWAj0y6apQJUt3V6dfUm+7gQQc5SwStmHHoMQ==", + "resolved": "https://registry.npmjs.org/@gravity-ui/components/-/components-2.0.0.tgz", + "integrity": "sha512-P0RJwQuyeytrypOpPMihd8/F2xi3+/UZJHeoa3PUt3WD2n6rLyiWOp1iS/T2jUYBWPJQqfayLYbqmQZZPemwMw==", + "requires": { + "@bem-react/classname": "^1.6.0", + "@gravity-ui/i18n": "^1.0.0", + "@gravity-ui/icons": "^2.3.0", + "lodash": "^4.17.21", + "resize-observer-polyfill": "^1.5.1", + "tinygesture": "^2.0.0" + } + }, + "@gravity-ui/eslint-config": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@gravity-ui/eslint-config/-/eslint-config-2.1.1.tgz", + "integrity": "sha512-TdVuXLTClhIbN5dFqkkWvjTFkl2CuWxpTDCrgl3/wzIfv62bSwKTrLHZuI1/GVuMKFTXCUhSQivS/RhvayfxGQ==", "dev": true, "requires": { "@babel/core": "7.16.0", @@ -29119,6 +29235,7 @@ "@typescript-eslint/parser": "5.40.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "2.26.0", + "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-prettier": "4.0.0", "eslint-plugin-react": "7.27.0", "eslint-plugin-react-hooks": "4.3.0", @@ -29126,14 +29243,14 @@ } }, "@gravity-ui/i18n": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gravity-ui/i18n/-/i18n-1.0.0.tgz", - "integrity": "sha512-KNYNhQjA9XqLo0RVEwNRqdA7/Lx5LLrNDtqWCvOGzXTwKU0GFNlWJaoSvk7u97apag23nTxgmpk551FlRCfehA==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@gravity-ui/i18n/-/i18n-1.1.0.tgz", + "integrity": "sha512-Ck+LNE1S2GGaMKMijIYWogiM/tYk0wHPlqLrhZmzp6P5keIu8YnPDeIlwAzq4eYVSrtTudLmshFB9QmYAeLryQ==" }, "@gravity-ui/icons": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@gravity-ui/icons/-/icons-2.1.0.tgz", - "integrity": "sha512-7M4eCAS01yVnrrXm8sxt8uNfgSvuQzI1OfzBUrLDviYp2qZa5oKA6z2ol8bIfyV1fmSk4oWzL4AizNUcts6XgQ==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@gravity-ui/icons/-/icons-2.4.0.tgz", + "integrity": "sha512-uyDoXTLbzFT/PmPCpR+qqB5hwRospg6xLnzJCY0vYgXqcr2h81xXglETVam0BBdJbM0JkSo2vqxAy3hJtAfFXQ==" }, "@gravity-ui/prettier-config": { "version": "1.0.1", @@ -29176,42 +29293,33 @@ "dev": true }, "@gravity-ui/uikit": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@gravity-ui/uikit/-/uikit-4.10.0.tgz", - "integrity": "sha512-eDK0ReXrDF/mWx4i64EO+qCNhzksDM6r8DJGqd4yOkJ9IWS2S53XpFfWWtiI6FGWCMcldI5ctdh3FBAf5sdgzQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@gravity-ui/uikit/-/uikit-5.0.2.tgz", + "integrity": "sha512-mEU02aa6sK9M83W+n8PJd2Kmo6nLJN69wvytwZ9+mQalv9ZpZhLvkhJGUFM67YUahepVMGqxteYPEBiXpVWtHg==", "dev": true, "requires": { - "@gravity-ui/i18n": "^1.0.0", - "@popperjs/core": "2.11.6", - "bem-cn-lite": "4.0.0", + "@gravity-ui/i18n": "^1.1.0", + "@gravity-ui/icons": "^2.2.0", + "@popperjs/core": "^2.11.8", + "bem-cn-lite": "^4.1.0", "blueimp-md5": "^2.19.0", - "focus-trap": "7.4.0", - "lodash": "4.17.21", - "react-copy-to-clipboard": "5.1.0", - "react-popper": "2.3.0", + "focus-trap": "^7.4.3", + "lodash": "^4.17.21", + "react-copy-to-clipboard": "^5.1.0", + "react-popper": "^2.3.0", "react-sortable-hoc": "2.0.0", "react-transition-group": "^4.4.5", - "react-virtualized-auto-sizer": "1.0.7", - "react-window": "1.8.8", - "resize-observer-polyfill": "1.5.1", - "tabbable": "6.1.1", - "tslib": "2.3.1", - "utility-types": "3.10.0" + "react-virtualized-auto-sizer": "^1.0.20", + "react-window": "^1.8.9", + "tabbable": "^6.1.2", + "tslib": "^2.5.3", + "utility-types": "^3.10.0" }, "dependencies": { - "bem-cn-lite": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/bem-cn-lite/-/bem-cn-lite-4.0.0.tgz", - "integrity": "sha512-ylyWbX63PqhJvm9xGcLAoiKYi87T5g4r5g6sx0dZHcvCtgYvnOWvVTZOQp+uB2DF8ZXsejnPkySvzKnsQhuOAg==", - "dev": true, - "requires": { - "bem-cn": "^3.0.1" - } - }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", "dev": true } } @@ -29904,9 +30012,9 @@ } }, "@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "dev": true }, "@sinclair/typebox": { @@ -33192,6 +33300,12 @@ } } }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -33255,6 +33369,21 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true }, + "axe-core": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", + "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", + "dev": true + }, + "axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dev": true, + "requires": { + "dequal": "^2.0.3" + } + }, "babel-core": { "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", @@ -34905,6 +35034,12 @@ "type": "^1.0.1" } }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, "dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -36179,6 +36314,38 @@ } } }, + "eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "dependencies": { + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + } + } + }, "eslint-plugin-prettier": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", @@ -37153,12 +37320,12 @@ } }, "focus-trap": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.0.tgz", - "integrity": "sha512-yI7FwUqU4TVb+7t6PaQ3spT/42r/KLEi8mtdGoQo2li/kFzmu9URmalTvw7xCCJtSOyhBxscvEAmvjeN9iHARg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz", + "integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==", "dev": true, "requires": { - "tabbable": "^6.1.1" + "tabbable": "^6.2.0" } }, "for-each": { @@ -41235,6 +41402,21 @@ "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", "dev": true }, + "language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, "last-run": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", @@ -43723,15 +43905,15 @@ } }, "react-virtualized-auto-sizer": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.7.tgz", - "integrity": "sha512-Mxi6lwOmjwIjC1X4gABXMJcKHsOo0xWl3E3ugOgufB8GJU+MqrtY35aBuvCYv/razQ1Vbp7h1gWJjGjoNN5pmA==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.20.tgz", + "integrity": "sha512-OdIyHwj4S4wyhbKHOKM1wLSj/UDXm839Z3Cvfg2a9j+He6yDa6i5p0qQvEiCnyQlGO/HyfSnigQwuxvYalaAXA==", "dev": true }, "react-window": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.8.tgz", - "integrity": "sha512-D4IiBeRtGXziZ1n0XklnFGu7h9gU684zepqyKzgPNzrsrk7xOCxni+TCckjg2Nr/DiaEEGVVmnhYSlT2rB47dQ==", + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.9.tgz", + "integrity": "sha512-+Eqx/fj1Aa5WnhRfj9dJg4VYATGwIUP2ItwItiJ6zboKWA6EX3lYDAXfGF2hyNqplEprhbtjbipiADEcwQ823Q==", "dev": true, "requires": { "@babel/runtime": "^7.0.0", @@ -44082,8 +44264,7 @@ "resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", - "dev": true + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "resolve": { "version": "1.22.1", @@ -45387,9 +45568,9 @@ "dev": true }, "tabbable": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.1.1.tgz", - "integrity": "sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", "dev": true }, "table": { @@ -45702,6 +45883,11 @@ "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", "dev": true }, + "tinygesture": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinygesture/-/tinygesture-2.0.0.tgz", + "integrity": "sha512-Xhpo6tCvUOyVq7BmJh/WDi+9qFh5AtuUqbKoMG5vpG+PT6JLPGE9D5hl9kZlj1ZqsgHuGb1OrNAXoHh8qIDpjA==" + }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", diff --git a/package.json b/package.json index 13d8e58b..2fa51955 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { + "@gravity-ui/components": "^2.0.0", "@gravity-ui/i18n": "^1.0.0", "@gravity-ui/icons": "^2.1.0", "bem-cn-lite": "^4.0.0", @@ -47,11 +48,11 @@ "@babel/preset-typescript": "^7.18.6", "@commitlint/cli": "^17.0.0", "@commitlint/config-conventional": "^17.0.0", - "@gravity-ui/eslint-config": "^2.0.0", + "@gravity-ui/eslint-config": "^2.1.1", "@gravity-ui/prettier-config": "^1.0.1", "@gravity-ui/stylelint-config": "^2.0.0", "@gravity-ui/tsconfig": "^1.0.0", - "@gravity-ui/uikit": "^4.10.0", + "@gravity-ui/uikit": "^5.0.2", "@storybook/addon-essentials": "^7.0.27", "@storybook/preset-scss": "^1.0.3", "@storybook/react": "^7.0.27", @@ -97,7 +98,7 @@ "typescript": "^4.9.5" }, "peerDependencies": { - "@gravity-ui/uikit": "^4.0.0", + "@gravity-ui/uikit": "^5.0.0", "final-form": "^4.20.2", "react": "^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0", diff --git a/src/lib/kit/components/Card/Card.tsx b/src/lib/kit/components/Card/Card.tsx index 895384a5..410b16ba 100644 --- a/src/lib/kit/components/Card/Card.tsx +++ b/src/lib/kit/components/Card/Card.tsx @@ -1,7 +1,8 @@ import React from 'react'; +import {HelpPopover} from '@gravity-ui/components'; import {ChevronDown} from '@gravity-ui/icons'; -import {Button, Card as CardBase, HelpPopover, Icon} from '@gravity-ui/uikit'; +import {Button, Card as CardBase, Icon} from '@gravity-ui/uikit'; import _ from 'lodash'; import {block} from '../../utils'; diff --git a/src/lib/kit/components/Inputs/MonacoInput/MonacoHeader.scss b/src/lib/kit/components/Inputs/MonacoInput/MonacoHeader.scss index 473fd7c0..72a06d8f 100644 --- a/src/lib/kit/components/Inputs/MonacoInput/MonacoHeader.scss +++ b/src/lib/kit/components/Inputs/MonacoInput/MonacoHeader.scss @@ -6,7 +6,7 @@ justify-content: space-between; padding: 15px; align-items: center; - background-color: var(--yc-color-private-black-50-solid); + background-color: var(--yc-color-base-float-hover); &_card { border-bottom: 1px solid var(--yc-color-line-generic); diff --git a/src/lib/kit/components/Inputs/TextArea/TextArea.tsx b/src/lib/kit/components/Inputs/TextArea/TextArea.tsx index 26a90d59..4749290a 100644 --- a/src/lib/kit/components/Inputs/TextArea/TextArea.tsx +++ b/src/lib/kit/components/Inputs/TextArea/TextArea.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import {TextInput as TextInputBase} from '@gravity-ui/uikit'; +import {TextArea as TextAreaBase} from '@gravity-ui/uikit'; import {StringInput} from '../../../../core'; @@ -8,7 +8,7 @@ export const TextArea: StringInput = ({name, input, spec}) => { const {value, onBlur, onChange, onFocus} = input; return ( - { minRows={8} hasClear disabled={spec.viewSpec.disabled} - multiline placeholder={spec.viewSpec.placeholder} qa={name} /> diff --git a/src/lib/kit/components/Layouts/Row/Row.tsx b/src/lib/kit/components/Layouts/Row/Row.tsx index 55fdc5af..1d70991c 100644 --- a/src/lib/kit/components/Layouts/Row/Row.tsx +++ b/src/lib/kit/components/Layouts/Row/Row.tsx @@ -1,7 +1,8 @@ import React from 'react'; +import {HelpPopover} from '@gravity-ui/components'; import {Xmark} from '@gravity-ui/icons'; -import {Button, HelpPopover, Icon} from '@gravity-ui/uikit'; +import {Button, Icon} from '@gravity-ui/uikit'; import { FieldValue, diff --git a/src/lib/kit/components/Layouts/Section/Section.tsx b/src/lib/kit/components/Layouts/Section/Section.tsx index fc8260c9..0d3fbfdb 100644 --- a/src/lib/kit/components/Layouts/Section/Section.tsx +++ b/src/lib/kit/components/Layouts/Section/Section.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import {HelpPopover} from '@gravity-ui/uikit'; +import {HelpPopover} from '@gravity-ui/components'; import {GroupIndent} from '../../'; import {ErrorWrapper} from '../../../'; diff --git a/src/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.tsx b/src/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.tsx index cfea0d07..393e9571 100644 --- a/src/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.tsx +++ b/src/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.tsx @@ -1,7 +1,8 @@ import React from 'react'; +import {HelpPopover} from '@gravity-ui/components'; import {ChevronDown} from '@gravity-ui/icons'; -import {Button, HelpPopover, Icon} from '@gravity-ui/uikit'; +import {Button, Icon} from '@gravity-ui/uikit'; import {block} from '../../utils'; diff --git a/tsconfig.test.json b/tsconfig.test.json new file mode 100644 index 00000000..daffccf9 --- /dev/null +++ b/tsconfig.test.json @@ -0,0 +1,8 @@ +{ + "extends": "@gravity-ui/tsconfig", + "compilerOptions": { + "resolveJsonModule": true, + "module": "commonjs", + "jsx": "react" + } +}