diff --git a/.eslintrc.js b/.eslintrc.js
index 71d7ac22..1fc1bc4f 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -11,14 +11,7 @@ module.exports = {
},
},
{
- files: [
- './**/__stories__/**/*',
- './**/__stories__/**/*',
- './**/*.test.*',
- './**/*.test.*',
- '*.ts',
- '*.tsx',
- ],
+ files: ['./**/__stories__/**/*', './**/__stories__/**/*', './**/*.test.*', './**/*.test.*'],
rules: {
'require-jsdoc': 'off',
'jsdoc/require-jsdoc': 'off',
diff --git a/.storybook/index.stories.mdx b/.storybook/index.stories.mdx
index eee358ec..c97eb8dd 100644
--- a/.storybook/index.stories.mdx
+++ b/.storybook/index.stories.mdx
@@ -2,7 +2,7 @@ import { Meta } from '@storybook/addon-docs';
import Readme from '../readme.md';
),
},
+ backgrounds: {
+ default: 'white',
+ values: [
+ {
+ name: 'white',
+ value: '#fff',
+ },
+ {
+ name: 'custom:gray',
+ value: '#ccc',
+ },
+ ],
+ },
};
diff --git a/package-lock.json b/package-lock.json
index 411c20fe..aef894bc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,8 +9,6 @@
"version": "0.0.0",
"license": "Apache-2.0",
"dependencies": {
- "@sima-land/ui-nucleons": "^44.2.10",
- "@sima-land/ui-quarks": "^3.6.0",
"classnames": "^2.3.2",
"date-fns": "^2.29.3",
"lodash": "^4.17.21",
@@ -25,6 +23,7 @@
"@rushstack/eslint-patch": "^1.2.0",
"@sima-land/linters": "^2.2.0",
"@storybook/addon-actions": "^6.5.16",
+ "@storybook/addon-backgrounds": "^6.5.16",
"@storybook/addon-docs": "^6.5.16",
"@storybook/addon-storysource": "^6.5.16",
"@storybook/addon-viewport": "^6.5.16",
@@ -54,7 +53,6 @@
"jest": "^29.4.1",
"jest-environment-jsdom": "^29.4.1",
"lint-staged": "^13.1.0",
- "postcss": "^8.4.21",
"prettier": "^2.8.3",
"react": "^17.0.2",
"react-docgen-typescript": "^2.2.2",
@@ -71,6 +69,8 @@
"node": ">=16.15.1"
},
"peerDependencies": {
+ "@sima-land/ui-nucleons": "^45.0.0-alpha.0",
+ "@sima-land/ui-quarks": "^3.6.0",
"react": ">=17",
"react-dom": ">=17"
}
@@ -2158,6 +2158,49 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.1.tgz",
+ "integrity": "sha512-PL7g3dhA4dHgZfujkuD8Q+tfJJynEtnNQSPzmucCnxMvkxf4cLBJw/ZYqZUn4HCh33U3WHrAfv2R2tbi9UCSmw==",
+ "peer": true
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz",
+ "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==",
+ "peer": true,
+ "dependencies": {
+ "@floating-ui/core": "^1.1.0"
+ }
+ },
+ "node_modules/@floating-ui/react": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.17.0.tgz",
+ "integrity": "sha512-LYlTmiB1O2TmeNub1agGYJrO7Qkw1B0Q53aElN5dgZDO5v3yzYJmrGm/xmfD+0T03yEECzPKdwlSFCEPWKMLEQ==",
+ "peer": true,
+ "dependencies": {
+ "@floating-ui/react-dom": "^1.2.0",
+ "aria-hidden": "^1.1.3",
+ "tabbable": "^6.0.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.2.2.tgz",
+ "integrity": "sha512-DbmFBLwFrZhtXgCI2ra7wXYT8L2BN4/4AMQKyu05qzsVji51tXOfF36VE2gpMB6nhJGHa85PdEg75FB4+vnLFQ==",
+ "peer": true,
+ "dependencies": {
+ "@floating-ui/dom": "^1.1.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
"node_modules/@gar/promisify": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
@@ -3844,9 +3887,10 @@
}
},
"node_modules/@krutoo/input-mask": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/@krutoo/input-mask/-/input-mask-0.0.8.tgz",
- "integrity": "sha512-EleFytQTqwfiFPyW8Ca486nuFRiLE23G2vfod4fq4ac0SZVZlgu3Bi5ULZLTXFWfmqQs5TPsQVA+7TyWwrgmFw=="
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/@krutoo/input-mask/-/input-mask-0.0.9.tgz",
+ "integrity": "sha512-J30IxwnPkA45BpDrsEVQS+Ntc16aIvYPrHF/aEMliFiIavwduDpfQdrE4VubdI7iqfkFWjss9nZZ4c6hyJRW4A==",
+ "peer": true
},
"node_modules/@mdx-js/mdx": {
"version": "1.6.22",
@@ -4186,23 +4230,26 @@
}
},
"node_modules/@sima-land/ui-nucleons": {
- "version": "44.2.10",
- "resolved": "https://registry.npmjs.org/@sima-land/ui-nucleons/-/ui-nucleons-44.2.10.tgz",
- "integrity": "sha512-x3Y2kKOuG2ZxaY54P1N6z/EnqUyBHCjMMg4r/jKGW8m6z3Tm6lAe9pxP57VY19REJmUnYKDAdPYPFanS2tzwFw==",
+ "version": "45.0.0-alpha.0",
+ "resolved": "https://registry.npmjs.org/@sima-land/ui-nucleons/-/ui-nucleons-45.0.0-alpha.0.tgz",
+ "integrity": "sha512-RFMFJMzXmCvJyNVPO4LxwMjZu3MkpY8M6igWtoeSgQzkfyN0j74Z2dsELQzbML2LDLMrDTTwdCRMsWJr+LgVwQ==",
+ "peer": true,
"dependencies": {
- "@krutoo/input-mask": "^0.0.8",
- "@sima-land/ui-quarks": "^3.0.0",
+ "@floating-ui/react": "^0.17.0",
+ "@krutoo/input-mask": "^0.0.9",
+ "@sima-land/ui-quarks": "^3.6.0",
"body-scroll-lock": "3.1.5",
"classnames": "^2.3.1",
"date-fns": "^2.28.0",
- "intersection-observer": "^0.12.0",
+ "focus-trap": "^7.2.0",
"lodash": "^4.17.21",
- "overlayscrollbars": "^1.13.1",
- "overlayscrollbars-react": "^0.2.3",
- "react-transition-group": "^4.4.2"
+ "overlayscrollbars": "^1.13.3",
+ "overlayscrollbars-react": "^0.3.0",
+ "react-transition-group": "^4.4.2",
+ "redux": "^4.2.0"
},
"engines": {
- "node": ">=14.15.5"
+ "node": ">=16.15.1"
},
"peerDependencies": {
"react": ">=17",
@@ -4212,7 +4259,8 @@
"node_modules/@sima-land/ui-quarks": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@sima-land/ui-quarks/-/ui-quarks-3.6.0.tgz",
- "integrity": "sha512-i1P9AVNQ52fSugcCFGfwj7lNE/mVQZXmY4vyjlxkZco57Xy84MyvA1UtxRDImMgMIDnzbTV0JFMfum6YYd16QA=="
+ "integrity": "sha512-i1P9AVNQ52fSugcCFGfwj7lNE/mVQZXmY4vyjlxkZco57Xy84MyvA1UtxRDImMgMIDnzbTV0JFMfum6YYd16QA==",
+ "peer": true
},
"node_modules/@sinclair/typebox": {
"version": "0.25.21",
@@ -4281,6 +4329,43 @@
}
}
},
+ "node_modules/@storybook/addon-backgrounds": {
+ "version": "6.5.16",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.16.tgz",
+ "integrity": "sha512-t7qooZ892BruhilFmzYPbysFwpULt/q4zYXNSmKVbAYta8UVvitjcU4F18p8FpWd9WvhiTr0SDlyhNZuzvDfug==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/addons": "6.5.16",
+ "@storybook/api": "6.5.16",
+ "@storybook/client-logger": "6.5.16",
+ "@storybook/components": "6.5.16",
+ "@storybook/core-events": "6.5.16",
+ "@storybook/csf": "0.0.2--canary.4566f4d.1",
+ "@storybook/theming": "6.5.16",
+ "core-js": "^3.8.2",
+ "global": "^4.4.0",
+ "memoizerific": "^1.11.3",
+ "regenerator-runtime": "^0.13.7",
+ "ts-dedent": "^2.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@storybook/addon-docs": {
"version": "6.5.16",
"resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.5.16.tgz",
@@ -10452,7 +10537,7 @@
"version": "17.0.37",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz",
"integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==",
- "dev": true,
+ "devOptional": true,
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -10481,13 +10566,13 @@
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz",
"integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==",
- "dev": true
+ "devOptional": true
},
"node_modules/@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
- "dev": true
+ "devOptional": true
},
"node_modules/@types/semver": {
"version": "7.3.13",
@@ -11518,6 +11603,27 @@
"sprintf-js": "~1.0.2"
}
},
+ "node_modules/aria-hidden": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.2.tgz",
+ "integrity": "sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.9.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/aria-query": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
@@ -12634,7 +12740,8 @@
"node_modules/body-scroll-lock": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz",
- "integrity": "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg=="
+ "integrity": "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg==",
+ "peer": true
},
"node_modules/boolbase": {
"version": "1.0.0",
@@ -17238,6 +17345,15 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/focus-trap": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.2.0.tgz",
+ "integrity": "sha512-v4wY6HDDYvzkBy4735kW5BUEuw6Yz9ABqMYLuTNbzAFPcBOGiGHwwcNVMvUz4G0kgSYh13wa/7TG3XwTeT4O/A==",
+ "peer": true,
+ "dependencies": {
+ "tabbable": "^6.0.1"
+ }
+ },
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
@@ -18832,11 +18948,6 @@
"node": ">= 0.10"
}
},
- "node_modules/intersection-observer": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.0.tgz",
- "integrity": "sha512-2Vkz8z46Dv401zTWudDGwO7KiGHNDkMv417T5ItcNYfmvHR/1qCTVBO9vwH8zZmQ0WkA/1ARwpysR9bsnop4NQ=="
- },
"node_modules/ip": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
@@ -25077,17 +25188,19 @@
}
},
"node_modules/overlayscrollbars": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz",
- "integrity": "sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ=="
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.3.tgz",
+ "integrity": "sha512-1nB/B5kaakJuHXaLXLRK0bUIilWhUGT6q5g+l2s5vqYdLle/sd0kscBHkQC1kuuDg9p9WR4MTdySDOPbeL/86g==",
+ "peer": true
},
"node_modules/overlayscrollbars-react": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/overlayscrollbars-react/-/overlayscrollbars-react-0.2.3.tgz",
- "integrity": "sha512-eN/JsEtJvPulOXOZXIdo1H90eriUWcgj4TwSdOcchk2M4uY2/BpsHlZ2+0viZMLXTcNQNJz+/4m47NugSBg+0g==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/overlayscrollbars-react/-/overlayscrollbars-react-0.3.0.tgz",
+ "integrity": "sha512-dV74p9VL/aImqJpeYz0vmpScZYu6UiNTmRKfyI4CS0OYUpYCUiTd723adY38Grz2W57hoNCECWDzkOJRFDQeZg==",
+ "peer": true,
"peerDependencies": {
"overlayscrollbars": "^1.10.0",
- "react": "^16.4.0 || ^17.0.0"
+ "react": "^16.4.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/p-all": {
@@ -26709,6 +26822,15 @@
"node": ">=8"
}
},
+ "node_modules/redux": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
+ "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
"node_modules/refractor": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz",
@@ -29118,6 +29240,12 @@
"integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==",
"dev": true
},
+ "node_modules/tabbable": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.0.1.tgz",
+ "integrity": "sha512-SYJSIgeyXW7EuX1ytdneO5e8jip42oHWg9xl/o3oTYhmXusZVgiA+VlPvjIN+kHii9v90AmzTZEBcsEvuAY+TA==",
+ "peer": true
+ },
"node_modules/table": {
"version": "6.8.1",
"resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
@@ -32970,6 +33098,41 @@
}
}
},
+ "@floating-ui/core": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.1.tgz",
+ "integrity": "sha512-PL7g3dhA4dHgZfujkuD8Q+tfJJynEtnNQSPzmucCnxMvkxf4cLBJw/ZYqZUn4HCh33U3WHrAfv2R2tbi9UCSmw==",
+ "peer": true
+ },
+ "@floating-ui/dom": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz",
+ "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==",
+ "peer": true,
+ "requires": {
+ "@floating-ui/core": "^1.1.0"
+ }
+ },
+ "@floating-ui/react": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.17.0.tgz",
+ "integrity": "sha512-LYlTmiB1O2TmeNub1agGYJrO7Qkw1B0Q53aElN5dgZDO5v3yzYJmrGm/xmfD+0T03yEECzPKdwlSFCEPWKMLEQ==",
+ "peer": true,
+ "requires": {
+ "@floating-ui/react-dom": "^1.2.0",
+ "aria-hidden": "^1.1.3",
+ "tabbable": "^6.0.1"
+ }
+ },
+ "@floating-ui/react-dom": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.2.2.tgz",
+ "integrity": "sha512-DbmFBLwFrZhtXgCI2ra7wXYT8L2BN4/4AMQKyu05qzsVji51tXOfF36VE2gpMB6nhJGHa85PdEg75FB4+vnLFQ==",
+ "peer": true,
+ "requires": {
+ "@floating-ui/dom": "^1.1.1"
+ }
+ },
"@gar/promisify": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
@@ -34245,9 +34408,10 @@
}
},
"@krutoo/input-mask": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/@krutoo/input-mask/-/input-mask-0.0.8.tgz",
- "integrity": "sha512-EleFytQTqwfiFPyW8Ca486nuFRiLE23G2vfod4fq4ac0SZVZlgu3Bi5ULZLTXFWfmqQs5TPsQVA+7TyWwrgmFw=="
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/@krutoo/input-mask/-/input-mask-0.0.9.tgz",
+ "integrity": "sha512-J30IxwnPkA45BpDrsEVQS+Ntc16aIvYPrHF/aEMliFiIavwduDpfQdrE4VubdI7iqfkFWjss9nZZ4c6hyJRW4A==",
+ "peer": true
},
"@mdx-js/mdx": {
"version": "1.6.22",
@@ -34490,26 +34654,30 @@
}
},
"@sima-land/ui-nucleons": {
- "version": "44.2.10",
- "resolved": "https://registry.npmjs.org/@sima-land/ui-nucleons/-/ui-nucleons-44.2.10.tgz",
- "integrity": "sha512-x3Y2kKOuG2ZxaY54P1N6z/EnqUyBHCjMMg4r/jKGW8m6z3Tm6lAe9pxP57VY19REJmUnYKDAdPYPFanS2tzwFw==",
+ "version": "45.0.0-alpha.0",
+ "resolved": "https://registry.npmjs.org/@sima-land/ui-nucleons/-/ui-nucleons-45.0.0-alpha.0.tgz",
+ "integrity": "sha512-RFMFJMzXmCvJyNVPO4LxwMjZu3MkpY8M6igWtoeSgQzkfyN0j74Z2dsELQzbML2LDLMrDTTwdCRMsWJr+LgVwQ==",
+ "peer": true,
"requires": {
- "@krutoo/input-mask": "^0.0.8",
- "@sima-land/ui-quarks": "^3.0.0",
+ "@floating-ui/react": "^0.17.0",
+ "@krutoo/input-mask": "^0.0.9",
+ "@sima-land/ui-quarks": "^3.6.0",
"body-scroll-lock": "3.1.5",
"classnames": "^2.3.1",
"date-fns": "^2.28.0",
- "intersection-observer": "^0.12.0",
+ "focus-trap": "^7.2.0",
"lodash": "^4.17.21",
- "overlayscrollbars": "^1.13.1",
- "overlayscrollbars-react": "^0.2.3",
- "react-transition-group": "^4.4.2"
+ "overlayscrollbars": "^1.13.3",
+ "overlayscrollbars-react": "^0.3.0",
+ "react-transition-group": "^4.4.2",
+ "redux": "^4.2.0"
}
},
"@sima-land/ui-quarks": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@sima-land/ui-quarks/-/ui-quarks-3.6.0.tgz",
- "integrity": "sha512-i1P9AVNQ52fSugcCFGfwj7lNE/mVQZXmY4vyjlxkZco57Xy84MyvA1UtxRDImMgMIDnzbTV0JFMfum6YYd16QA=="
+ "integrity": "sha512-i1P9AVNQ52fSugcCFGfwj7lNE/mVQZXmY4vyjlxkZco57Xy84MyvA1UtxRDImMgMIDnzbTV0JFMfum6YYd16QA==",
+ "peer": true
},
"@sinclair/typebox": {
"version": "0.25.21",
@@ -34562,6 +34730,27 @@
"uuid-browser": "^3.1.0"
}
},
+ "@storybook/addon-backgrounds": {
+ "version": "6.5.16",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.16.tgz",
+ "integrity": "sha512-t7qooZ892BruhilFmzYPbysFwpULt/q4zYXNSmKVbAYta8UVvitjcU4F18p8FpWd9WvhiTr0SDlyhNZuzvDfug==",
+ "dev": true,
+ "requires": {
+ "@storybook/addons": "6.5.16",
+ "@storybook/api": "6.5.16",
+ "@storybook/client-logger": "6.5.16",
+ "@storybook/components": "6.5.16",
+ "@storybook/core-events": "6.5.16",
+ "@storybook/csf": "0.0.2--canary.4566f4d.1",
+ "@storybook/theming": "6.5.16",
+ "core-js": "^3.8.2",
+ "global": "^4.4.0",
+ "memoizerific": "^1.11.3",
+ "regenerator-runtime": "^0.13.7",
+ "ts-dedent": "^2.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
"@storybook/addon-docs": {
"version": "6.5.16",
"resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.5.16.tgz",
@@ -39334,7 +39523,7 @@
"version": "17.0.37",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz",
"integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==",
- "dev": true,
+ "devOptional": true,
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -39345,7 +39534,7 @@
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz",
"integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==",
- "dev": true
+ "devOptional": true
}
}
},
@@ -39371,7 +39560,7 @@
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
- "dev": true
+ "devOptional": true
},
"@types/semver": {
"version": "7.3.13",
@@ -40208,6 +40397,15 @@
"sprintf-js": "~1.0.2"
}
},
+ "aria-hidden": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.2.tgz",
+ "integrity": "sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==",
+ "peer": true,
+ "requires": {
+ "tslib": "^2.0.0"
+ }
+ },
"aria-query": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
@@ -41053,7 +41251,8 @@
"body-scroll-lock": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz",
- "integrity": "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg=="
+ "integrity": "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg==",
+ "peer": true
},
"boolbase": {
"version": "1.0.0",
@@ -44693,6 +44892,15 @@
}
}
},
+ "focus-trap": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.2.0.tgz",
+ "integrity": "sha512-v4wY6HDDYvzkBy4735kW5BUEuw6Yz9ABqMYLuTNbzAFPcBOGiGHwwcNVMvUz4G0kgSYh13wa/7TG3XwTeT4O/A==",
+ "peer": true,
+ "requires": {
+ "tabbable": "^6.0.1"
+ }
+ },
"for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
@@ -45909,11 +46117,6 @@
"integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
"dev": true
},
- "intersection-observer": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.0.tgz",
- "integrity": "sha512-2Vkz8z46Dv401zTWudDGwO7KiGHNDkMv417T5ItcNYfmvHR/1qCTVBO9vwH8zZmQ0WkA/1ARwpysR9bsnop4NQ=="
- },
"ip": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
@@ -50587,14 +50790,16 @@
"optional": true
},
"overlayscrollbars": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz",
- "integrity": "sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ=="
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.3.tgz",
+ "integrity": "sha512-1nB/B5kaakJuHXaLXLRK0bUIilWhUGT6q5g+l2s5vqYdLle/sd0kscBHkQC1kuuDg9p9WR4MTdySDOPbeL/86g==",
+ "peer": true
},
"overlayscrollbars-react": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/overlayscrollbars-react/-/overlayscrollbars-react-0.2.3.tgz",
- "integrity": "sha512-eN/JsEtJvPulOXOZXIdo1H90eriUWcgj4TwSdOcchk2M4uY2/BpsHlZ2+0viZMLXTcNQNJz+/4m47NugSBg+0g==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/overlayscrollbars-react/-/overlayscrollbars-react-0.3.0.tgz",
+ "integrity": "sha512-dV74p9VL/aImqJpeYz0vmpScZYu6UiNTmRKfyI4CS0OYUpYCUiTd723adY38Grz2W57hoNCECWDzkOJRFDQeZg==",
+ "peer": true,
"requires": {}
},
"p-all": {
@@ -51829,6 +52034,15 @@
"strip-indent": "^3.0.0"
}
},
+ "redux": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
+ "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
"refractor": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz",
@@ -53750,6 +53964,12 @@
"integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==",
"dev": true
},
+ "tabbable": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.0.1.tgz",
+ "integrity": "sha512-SYJSIgeyXW7EuX1ytdneO5e8jip42oHWg9xl/o3oTYhmXusZVgiA+VlPvjIN+kHii9v90AmzTZEBcsEvuAY+TA==",
+ "peer": true
+ },
"table": {
"version": "6.8.1",
"resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
diff --git a/package.json b/package.json
index c8819a69..6263a24f 100644
--- a/package.json
+++ b/package.json
@@ -25,8 +25,6 @@
"prettier:check": "prettier --check \"./src/**/*.{js,jsx,ts,tsx,css,scss}\" --loglevel error"
},
"dependencies": {
- "@sima-land/ui-nucleons": "^44.2.10",
- "@sima-land/ui-quarks": "^3.6.0",
"classnames": "^2.3.2",
"date-fns": "^2.29.3",
"lodash": "^4.17.21",
@@ -34,6 +32,8 @@
"react-transition-group": "^4.4.5"
},
"peerDependencies": {
+ "@sima-land/ui-nucleons": "^45.0.0-alpha.0",
+ "@sima-land/ui-quarks": "^3.6.0",
"react": ">=17",
"react-dom": ">=17"
},
@@ -45,6 +45,7 @@
"@rushstack/eslint-patch": "^1.2.0",
"@sima-land/linters": "^2.2.0",
"@storybook/addon-actions": "^6.5.16",
+ "@storybook/addon-backgrounds": "^6.5.16",
"@storybook/addon-docs": "^6.5.16",
"@storybook/addon-storysource": "^6.5.16",
"@storybook/addon-viewport": "^6.5.16",
@@ -74,7 +75,6 @@
"jest": "^29.4.1",
"jest-environment-jsdom": "^29.4.1",
"lint-staged": "^13.1.0",
- "postcss": "^8.4.21",
"prettier": "^2.8.3",
"react": "^17.0.2",
"react-docgen-typescript": "^2.2.2",
diff --git a/postcss.config.js b/postcss.config.js
deleted file mode 100644
index eb022cd6..00000000
--- a/postcss.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = {
- plugins: [
- require('autoprefixer'),
- ],
-};
diff --git a/readme.md b/readme.md
index 9572b4e9..ffe6bed9 100644
--- a/readme.md
+++ b/readme.md
@@ -4,7 +4,7 @@ React-компоненты, привязанные к контексту инт
## Начало работы
-### Подключение
+### Установка
Для подключения к проекту используйте
@@ -12,70 +12,65 @@ React-компоненты, привязанные к контексту инт
# npm
$ npm i -S @sima-land/moleculas
-# yarn
+# или yarn
$ yarn add @sima-land/moleculas
```
+### Настройка среды
+
+Компоненты библиотеки используют:
+
+- импорты изображений (jpg, png..) как URL/base64
+- импорты css/scss-файлов как css-модулей (каждый такой файл промаркирован в виде `*.module.scss`)
+- импорты svg-файлов как react-компонентов
+
+Поэтому, для использования библиотеки необходимо сконфигурировать среду (сборщик или тестовый фреймворк) таким образом чтобы данные импорты работали корректно.
+
+## Разработка
+
### Консольные команды, необходимые в процессе разработки
- `npm run test` - запуск unit-тестов
- `npm run lint` - запуск линтеров
- `npm run storybook` - запуск _storybook_
-## Соглашения
+### Общие соглашения
-1. В проекте используется линтер _ESLint_. Чтобы сделать `commit` и `push` в репозиторий, изменения должны пройти проверку линтером.
-1. Необходимо полное покрытие тестами всего функционала. Чтобы сделать `push` в репозиторий, все тесты должны пройти успешно.
-1. Коммиты должны быть оформлены по следующему шаблону:
+1. Сообщения коммитов должны быть оформлены по следующему шаблону:
```
- [№ задачи] [Название задачи]
+ [№ задачи]
- [Изменение №1]
- [Изменение №2]
+ - [Изменение №1]
+ - [Изменение №2]
...
- [Изменение №n]
+ - [Изменение №n]
```
Пример:
```
- #62 Подключить отладку серверного приложения, написать документацию по работе с проектом
+ #62
- Внесены изменения в README.md, добавлены инструкции по началу работы в проекте
- Добавлены конфигурационные файлы для Jest
- Настроена отладка приложения в режиме разработки, инструкции по настройке IDE добавлены в README.md
+ - Внесены изменения в README.md, добавлены инструкции по началу работы в проекте
+ - Добавлены конфигурационные файлы для Jest
+ - Настроена отладка приложения в режиме разработки, инструкции по настройке IDE добавлены в README.md
```
-## Отладка
-
-Для отладки иногда полезно подключить данную библиотеку к проекту напрямую, сделав `symlink` в файловой системе.
-
-1. Клонируем библиотеку. Заходим в папку этой библиотеки и делаем `npm run build && cd build && npm link`. Это нужно сделать 1 раз.
-2. Заходим в папку проекта к которому подключена библиотека и делаем `npm link "@sima-land/moleculas"`. Это
- приведет к тому, что код в node_modules будет заменен на ссылку в вашей FS.
-3. Для возврата в нормальный режим `npm unlink "@sima-land/moleculas" && npm install --force`
-
-Примечание: Если возникли ошибки с реактом/хуками, и одной из проблем в логе ошибки значится дублирование react'a,
-следует сделать линк реакта молекул с реактом проекта:
-
-1. Директория проекта куда добавлены молекулы `cd ./node_modules/react && yarn link`.
-2. Директория молекул `npm link "react"`.
-
-## Витрина компонентов
+### Витрина компонентов
В качестве витрины компонентов для отображения размещенных в библиотеке компонентов используется [storybook](https://storybook.js.org/)
Истории и документация компонентов позволяют увидеть варианты использования компонента с различными свойствами и примеры использования не вникая в код и логику компонента, что позволяет ускорить разработку при использовании библиотеки.
Поэтому, при создании историй/документации компонентов необходимо учитывать различные **варианты использования** и различные **комбинации входных параметров**.
-### Соглашения
+#### Соглашения по витрине компонентов
Истории компонентов должны соответствовать формату `*.stories.(ts|tsx)`.
Истории и вспомогательные файлы должны размещаться в директории `__stories__` в директории компонента.
-### Требования к историям/документации
+#### Требования к историям/документации
**История должна содержать:**
@@ -90,3 +85,18 @@ $ yarn add @sima-land/moleculas
- Блок кода с примером использования компонента;
- Если компонент принимает в параметрах функции-обработчики, то они должны быть объявлены как [action](https://storybook.js.org/docs/react/essentials/actions), для отображения выполнения обработчиков на вкладке _Actions_ в UI.
Для свойств-обработчиков, чьи имена начинаются с `on*` добавление [action](https://storybook.js.org/docs/react/essentials/actions) происходит автоматически, дополнительных действий с ними не требуется.
+
+### Отладка
+
+Для отладки иногда полезно подключить данную библиотеку к проекту напрямую, сделав `symlink` в файловой системе.
+
+1. Клонируем библиотеку. Заходим в папку этой библиотеки и делаем `npm run build && cd build && npm link`. Это нужно сделать 1 раз.
+2. Заходим в папку проекта к которому подключена библиотека и делаем `npm link "@sima-land/moleculas"`. Это
+ приведет к тому, что код в node_modules будет заменен на ссылку в вашей FS.
+3. Для возврата в нормальный режим `npm unlink "@sima-land/moleculas" && npm install --force`
+
+Примечание: Если возникли ошибки с реактом/хуками, и одной из проблем в логе ошибки значится дублирование react'a,
+следует сделать линк реакта молекул с реактом проекта:
+
+1. Директория проекта куда добавлены молекулы `cd ./node_modules/react && yarn link`.
+2. Директория молекул `npm link "react"`.
diff --git a/src/common/components/adult-block/__test__/__snapshots__/adult-block.test.tsx.snap b/src/common/components/adult-block/__test__/__snapshots__/adult-block.test.tsx.snap
deleted file mode 100644
index 62ba57b6..00000000
--- a/src/common/components/adult-block/__test__/__snapshots__/adult-block.test.tsx.snap
+++ /dev/null
@@ -1,79 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`