From 3e7b21dd8235e25e8db2a640738a3e9fa2f3a96f Mon Sep 17 00:00:00 2001 From: Charlie Brown Date: Mon, 29 Jan 2024 06:25:10 -0600 Subject: [PATCH] Migrate storybook to typescript (#2747) --- .storybook/{main.js => main.ts} | 33 +- package.json | 11 +- pnpm-lock.yaml | 1862 ++++++++++++----- stories/.eslintrc | 4 +- ...-bar.stories.js => canvas-bar.stories.tsx} | 109 +- ...ine.stories.js => canvas-line.stories.tsx} | 44 +- ....stories.js => canvas-scatter.stories.tsx} | 96 +- stories/{data.js => data.ts} | 30 +- stories/decorators.js | 25 - stories/decorators.tsx | 13 + ...ea.stories.js => victory-area.stories.tsx} | 108 +- ...is.stories.js => victory-axis.stories.tsx} | 101 +- ...bar.stories.js => victory-bar.stories.tsx} | 155 +- ...tories.js => victory-box-plot.stories.tsx} | 80 +- ...ies.js => victory-candlestick.stories.tsx} | 86 +- ...t.stories.js => victory-chart.stories.tsx} | 109 +- ...ories.js => victory-container.stories.tsx} | 34 +- ...tories.js => victory-errorbar.stories.tsx} | 79 +- ...gram-data.js => victory-histogram-data.ts} | 0 ...ories.js => victory-histogram.stories.tsx} | 130 +- ...l.stories.js => victory-label.stories.tsx} | 68 +- ....stories.js => victory-legend.stories.tsx} | 58 +- ...ne.stories.js => victory-line.stories.tsx} | 109 +- ...pie.stories.js => victory-pie.stories.tsx} | 89 +- ...ries.js => victory-polar-axis.stories.tsx} | 78 +- ...stories.js => victory-scatter.stories.tsx} | 114 +- ...stories.js => victory-tooltip.stories.tsx} | 120 +- 27 files changed, 2240 insertions(+), 1505 deletions(-) rename .storybook/{main.js => main.ts} (54%) rename stories/{canvas-bar.stories.js => canvas-bar.stories.tsx} (96%) rename stories/{canvas-line.stories.js => canvas-line.stories.tsx} (87%) rename stories/{canvas-scatter.stories.js => canvas-scatter.stories.tsx} (93%) rename stories/{data.js => data.ts} (73%) delete mode 100644 stories/decorators.js create mode 100644 stories/decorators.tsx rename stories/{victory-area.stories.js => victory-area.stories.tsx} (91%) rename stories/{victory-axis.stories.js => victory-axis.stories.tsx} (88%) rename stories/{victory-bar.stories.js => victory-bar.stories.tsx} (94%) rename stories/{victory-box-plot.stories.js => victory-box-plot.stories.tsx} (91%) rename stories/{victory-candlestick.stories.js => victory-candlestick.stories.tsx} (92%) rename stories/{victory-chart.stories.js => victory-chart.stories.tsx} (90%) rename stories/{victory-container.stories.js => victory-container.stories.tsx} (77%) rename stories/{victory-errorbar.stories.js => victory-errorbar.stories.tsx} (88%) rename stories/{victory-histogram-data.js => victory-histogram-data.ts} (100%) rename stories/{victory-histogram.stories.js => victory-histogram.stories.tsx} (89%) rename stories/{victory-label.stories.js => victory-label.stories.tsx} (96%) rename stories/{victory-legend.stories.js => victory-legend.stories.tsx} (75%) rename stories/{victory-line.stories.js => victory-line.stories.tsx} (91%) rename stories/{victory-pie.stories.js => victory-pie.stories.tsx} (93%) rename stories/{victory-polar-axis.stories.js => victory-polar-axis.stories.tsx} (89%) rename stories/{victory-scatter.stories.js => victory-scatter.stories.tsx} (92%) rename stories/{victory-tooltip.stories.js => victory-tooltip.stories.tsx} (91%) diff --git a/.storybook/main.js b/.storybook/main.ts similarity index 54% rename from .storybook/main.js rename to .storybook/main.ts index 79b30d2fb..c987898c9 100644 --- a/.storybook/main.js +++ b/.storybook/main.ts @@ -1,3 +1,5 @@ +import type { StorybookConfig } from "@storybook/react-webpack5"; + /* globals __dirname:false */ const path = require("path"); const glob = require("glob"); @@ -5,23 +7,24 @@ const ROOT = path.resolve(__dirname, ".."); const PKGS = path.resolve(ROOT, "packages"); const STORIES = path.resolve(ROOT, "stories"); -const wrapForPnp = (packageName) => path.dirname(require.resolve(path.join(packageName, 'package.json'))); +const wrapForPnp = (packageName) => + path.dirname(require.resolve(path.join(packageName, "package.json"))); -module.exports = { +const config: StorybookConfig = { webpackFinal: async (config) => { // Read all the victory packages and alias. - glob - .sync(path.join(PKGS, "victory*/package.json")) - .forEach((pkgPath) => { - const key = path.dirname(path.relative(PKGS, pkgPath)); + glob.sync(path.join(PKGS, "victory*/package.json")).forEach((pkgPath) => { + const key = path.dirname(path.relative(PKGS, pkgPath)); + if (config?.resolve?.alias) { config.resolve.alias[key] = path.resolve(path.dirname(pkgPath)); - }); + } + }); return config; }, addons: [ - "@storybook/addon-options/register", + "@storybook/addon-essentials", { name: "@storybook/addon-storysource", options: { @@ -49,4 +52,18 @@ module.exports = { }, }, }, + + typescript: { + // typescript compilation check is disabled until we upgrade the babel version + // which is required for the latest version of storybook to do typechecking + // https://github.com/FormidableLabs/victory/issues/2746 + check: false, + checkOptions: { + typescript: { + configFile: path.join(__dirname, "../tsconfig.base.json"), + }, + }, + }, }; + +export default config; diff --git a/package.json b/package.json index 3ad76b8d4..a35cd98e5 100644 --- a/package.json +++ b/package.json @@ -45,9 +45,8 @@ "@babel/preset-react": "7.18.6", "@babel/preset-typescript": "^7.17.12", "@changesets/cli": "^2.24.1", - "@storybook/addon-actions": "^7.6.7", - "@storybook/addon-options": "^5.3.21", - "@storybook/addon-storysource": "^7.6.7", + "@storybook/addon-storysource": "^7.6.10", + "@storybook/addon-essentials": "^7.6.10", "@storybook/react": "^7.6.7", "@storybook/react-webpack5": "^7.6.7", "@svitejs/changesets-changelog-github-compact": "^0.1.1", @@ -354,11 +353,10 @@ ] }, "lint:root": { - "command": "nps \"lint:base *.js .storybook scripts config demo stories test\"", + "command": "nps \"lint:base *.js scripts config demo stories test\"", "files": [ ".eslintrc.js", "*.js", - ".storybook", "scripts", "config", "demo", @@ -372,11 +370,10 @@ ] }, "lint:root:fix": { - "command": "pnpm run lint:root || nps \"lint:base --fix *.js .storybook scripts config demo stories test\"", + "command": "pnpm run lint:root || nps \"lint:base --fix *.js scripts config demo stories test\"", "files": [ ".eslintrc.js", "*.js", - ".storybook", "scripts", "config", "demo", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 75554fc1e..e80f40cf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,9 +27,8 @@ importers: '@babel/preset-react': 7.18.6 '@babel/preset-typescript': ^7.17.12 '@changesets/cli': ^2.24.1 - '@storybook/addon-actions': ^7.6.7 - '@storybook/addon-options': ^5.3.21 - '@storybook/addon-storysource': ^7.6.7 + '@storybook/addon-essentials': ^7.6.10 + '@storybook/addon-storysource': ^7.6.10 '@storybook/react': ^7.6.7 '@storybook/react-webpack5': ^7.6.7 '@svitejs/changesets-changelog-github-compact': ^0.1.1 @@ -122,8 +121,7 @@ importers: '@babel/preset-react': 7.18.6_@babel+core@7.18.9 '@babel/preset-typescript': 7.18.6_@babel+core@7.18.9 '@changesets/cli': 2.24.1 - '@storybook/addon-actions': 7.6.10 - '@storybook/addon-options': 5.3.21_biqbaboplfbrettd7655fr4n2y + '@storybook/addon-essentials': 7.6.10_v7vsrdtui4d36prbwvdnlb7tpq '@storybook/addon-storysource': 7.6.10 '@storybook/react': 7.6.10_xrxvbtylmve4l2tr3vmmqgfp7q '@storybook/react-webpack5': 7.6.10_656ojrr56y7odmdb43up5adzqi @@ -920,7 +918,7 @@ packages: resolution: {integrity: sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 dev: true @@ -963,7 +961,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 dev: true /@babel/helper-builder-binary-assignment-operator-visitor/7.22.15: @@ -1005,12 +1003,12 @@ packages: dependencies: '@babel/core': 7.18.9 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.6 - '@babel/helper-function-name': 7.18.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.18.6 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/helper-replace-supers': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-split-export-declaration': 7.22.6 transitivePeerDependencies: - supports-color dev: true @@ -1094,7 +1092,7 @@ packages: '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.9 '@babel/helper-module-imports': 7.18.6 '@babel/helper-plugin-utils': 7.18.9 - '@babel/traverse': 7.18.9 + '@babel/traverse': 7.23.7 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.1 @@ -1168,15 +1166,15 @@ packages: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 dev: true /@babel/helper-function-name/7.18.6: resolution: {integrity: sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.18.6 - '@babel/types': 7.18.9 + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 dev: true /@babel/helper-function-name/7.18.9: @@ -1199,7 +1197,7 @@ packages: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 dev: true /@babel/helper-hoist-variables/7.22.5: @@ -1213,14 +1211,14 @@ packages: resolution: {integrity: sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 dev: true /@babel/helper-member-expression-to-functions/7.18.9: resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 dev: true /@babel/helper-member-expression-to-functions/7.23.0: @@ -1234,7 +1232,7 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.23.6 dev: true /@babel/helper-module-imports/7.22.15: @@ -1311,9 +1309,9 @@ packages: dependencies: '@babel/core': 7.18.9 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.18.6 - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color dev: true @@ -1326,9 +1324,9 @@ packages: dependencies: '@babel/core': 7.18.9 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.18.9 - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color dev: true @@ -1349,11 +1347,11 @@ packages: resolution: {integrity: sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.18.6 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.18.9 - '@babel/types': 7.18.9 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color dev: true @@ -1401,7 +1399,7 @@ packages: resolution: {integrity: sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 dev: true /@babel/helper-skip-transparent-expression-wrappers/7.18.9: @@ -1461,10 +1459,10 @@ packages: resolution: {integrity: sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.18.9 - '@babel/template': 7.18.6 - '@babel/traverse': 7.18.9 - '@babel/types': 7.18.9 + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color dev: true @@ -1473,10 +1471,10 @@ packages: resolution: {integrity: sha512-cG2ru3TRAL6a60tfQflpEfs4ldiPwF6YW3zfJiRgmoFVIaC1vGnBBgatfec+ZUziPHkHSaXAuEck3Cdkf3eRpQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.18.9 - '@babel/template': 7.18.6 - '@babel/traverse': 7.18.9 - '@babel/types': 7.18.9 + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color dev: true @@ -1516,7 +1514,7 @@ packages: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.18.6 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 dev: true @@ -1535,7 +1533,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 dev: true /@babel/parser/7.18.9: @@ -2257,12 +2255,12 @@ packages: dependencies: '@babel/core': 7.18.9 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.18.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/helper-plugin-utils': 7.18.9 '@babel/helper-replace-supers': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -2503,7 +2501,7 @@ packages: dependencies: '@babel/core': 7.18.9 '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.9 - '@babel/helper-function-name': 7.18.9 + '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.18.9 dev: true @@ -3442,7 +3440,7 @@ packages: clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 - pirates: 4.0.5 + pirates: 4.0.6 source-map-support: 0.5.21 dev: true @@ -3499,8 +3497,8 @@ packages: '@babel/helper-function-name': 7.18.6 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.18.6 - '@babel/types': 7.18.7 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -3517,8 +3515,8 @@ packages: '@babel/helper-function-name': 7.18.6 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.18.6 - '@babel/types': 7.18.7 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 debug: 4.3.4_supports-color@5.5.0 globals: 11.12.0 transitivePeerDependencies: @@ -3821,101 +3819,16 @@ packages: '@types/hammerjs': 2.0.41 dev: true - /@emotion/cache/10.0.29: - resolution: {integrity: sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==} - dependencies: - '@emotion/sheet': 0.9.4 - '@emotion/stylis': 0.8.5 - '@emotion/utils': 0.11.3 - '@emotion/weak-memoize': 0.2.5 - dev: true - - /@emotion/core/10.3.1_react@16.14.0: - resolution: {integrity: sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==} - peerDependencies: - react: '>=16.3.0' - dependencies: - '@babel/runtime': 7.18.6 - '@emotion/cache': 10.0.29 - '@emotion/css': 10.0.27 - '@emotion/serialize': 0.11.16 - '@emotion/sheet': 0.9.4 - '@emotion/utils': 0.11.3 - react: 16.14.0 - dev: true - - /@emotion/css/10.0.27: - resolution: {integrity: sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==} - dependencies: - '@emotion/serialize': 0.11.16 - '@emotion/utils': 0.11.3 - babel-plugin-emotion: 10.2.2 - dev: true - - /@emotion/hash/0.8.0: - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - dev: true - - /@emotion/is-prop-valid/0.8.8: - resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} - dependencies: - '@emotion/memoize': 0.7.4 - dev: true - /@emotion/is-prop-valid/1.1.3: resolution: {integrity: sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==} dependencies: '@emotion/memoize': 0.7.5 dev: true - /@emotion/memoize/0.7.4: - resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} - dev: true - /@emotion/memoize/0.7.5: resolution: {integrity: sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==} dev: true - /@emotion/serialize/0.11.16: - resolution: {integrity: sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==} - dependencies: - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.4 - '@emotion/unitless': 0.7.5 - '@emotion/utils': 0.11.3 - csstype: 2.6.20 - dev: true - - /@emotion/sheet/0.9.4: - resolution: {integrity: sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==} - dev: true - - /@emotion/styled-base/10.3.0_qzeatvug73zaio2r3dlvejynye: - resolution: {integrity: sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==} - peerDependencies: - '@emotion/core': ^10.0.28 - react: '>=16.3.0' - dependencies: - '@babel/runtime': 7.18.6 - '@emotion/core': 10.3.1_react@16.14.0 - '@emotion/is-prop-valid': 0.8.8 - '@emotion/serialize': 0.11.16 - '@emotion/utils': 0.11.3 - react: 16.14.0 - dev: true - - /@emotion/styled/10.3.0_qzeatvug73zaio2r3dlvejynye: - resolution: {integrity: sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==} - peerDependencies: - '@emotion/core': ^10.0.27 - react: '>=16.3.0' - dependencies: - '@emotion/core': 10.3.1_react@16.14.0 - '@emotion/styled-base': 10.3.0_qzeatvug73zaio2r3dlvejynye - babel-plugin-emotion: 10.2.2 - react: 16.14.0 - dev: true - /@emotion/stylis/0.8.5: resolution: {integrity: sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==} dev: true @@ -3924,12 +3837,12 @@ packages: resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} dev: true - /@emotion/utils/0.11.3: - resolution: {integrity: sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==} - dev: true - - /@emotion/weak-memoize/0.2.5: - resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==} + /@emotion/use-insertion-effect-with-fallbacks/1.0.1_react@18.2.0: + resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 dev: true /@esbuild/android-arm/0.18.20: @@ -4161,6 +4074,34 @@ packages: resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} dev: true + /@floating-ui/core/1.6.0: + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + dependencies: + '@floating-ui/utils': 0.2.1 + dev: true + + /@floating-ui/dom/1.6.0: + resolution: {integrity: sha512-SZ0BEXzsaaS6THZfZJUcAobbZTD+MvfGM42bxgeg0Tnkp4/an/avqwAXiVLsFtIBZtfsx3Ymvwx0+KnnhdA/9g==} + dependencies: + '@floating-ui/core': 1.6.0 + '@floating-ui/utils': 0.2.1 + dev: true + + /@floating-ui/react-dom/2.0.7_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-B5GJxKUyPcGsvE1vua+Abvw0t6zVMyTbtG+Jk7BoI4hfc5Ahv50dstRIAn0nS0274kR9gnKwxIXyGA8EzBZJrA==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.6.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@floating-ui/utils/0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + dev: true + /@hapi/hoek/9.3.0: resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} dev: true @@ -4344,7 +4285,7 @@ packages: '@jest/test-result': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 - '@jridgewell/trace-mapping': 0.3.14 + '@jridgewell/trace-mapping': 0.3.22 '@types/node': 18.6.1 chalk: 4.1.2 collect-v8-coverage: 1.0.1 @@ -4375,11 +4316,18 @@ packages: '@sinclair/typebox': 0.24.21 dev: true + /@jest/schemas/29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + /@jest/source-map/28.1.2: resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.14 + '@jridgewell/trace-mapping': 0.3.22 callsites: 3.1.0 graceful-fs: 4.2.10 dev: true @@ -4427,6 +4375,29 @@ packages: - supports-color dev: true + /@jest/transform/29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.18.9 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.22 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.5 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/types/26.6.2: resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} engines: {node: '>= 10.14.2'} @@ -4461,6 +4432,18 @@ packages: chalk: 4.1.2 dev: true + /@jest/types/29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.6.1 + '@types/yargs': 17.0.10 + chalk: 4.1.2 + dev: true + /@jridgewell/gen-mapping/0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -4497,7 +4480,7 @@ packages: resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} dependencies: '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.14 + '@jridgewell/trace-mapping': 0.3.22 dev: true /@jridgewell/sourcemap-codec/1.4.14: @@ -4519,14 +4502,18 @@ packages: resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} dependencies: '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@jridgewell/trace-mapping/0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.0.8 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@juggle/resize-observer/3.4.0: + resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} dev: true /@leichtgewicht/ip-codec/2.0.4: @@ -4553,6 +4540,16 @@ packages: read-yaml-file: 1.1.0 dev: true + /@mdx-js/react/2.3.0_react@18.2.0: + resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} + peerDependencies: + react: '>=16' + dependencies: + '@types/mdx': 2.0.10 + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + /@ndelangen/get-tarball/3.0.9: resolution: {integrity: sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==} dependencies: @@ -4883,74 +4880,620 @@ packages: webpack-dev-server: 4.9.3_5v66e2inugklgvlh4huuavolfq dev: true - /@reach/router/1.3.4_yicqvriqha7ppr6zyvk5y4bjya: - resolution: {integrity: sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==} - peerDependencies: - react: 15.x || 16.x || 16.4.0-alpha.0911da3 - react-dom: 15.x || 16.x || 16.4.0-alpha.0911da3 + /@radix-ui/number/1.0.1: + resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} dependencies: - create-react-context: 0.3.0_4vyaxm4rsh2mpfdenvlqy7kmya - invariant: 2.2.4 - prop-types: 15.8.1 - react: 16.14.0 - react-dom: 18.2.0_react@18.2.0 - react-lifecycles-compat: 3.0.4 + '@babel/runtime': 7.18.6 dev: true - /@react-native-community/cli-debugger-ui/6.0.0: - resolution: {integrity: sha512-onf6vtvqSzOr6bNEWhPzgcJP2UQhA0VY6c8tXwNczIONC/ahnN93LPBB/uXDbn9d/kLMvE7oUJiqRadZWHk6aA==} + /@radix-ui/primitive/1.0.1: + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: - serve-static: 1.15.0 - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.18.6 dev: true - /@react-native-community/cli-hermes/6.3.0: - resolution: {integrity: sha512-Uhbm9bubyZLZ12vFCIfWbE/Qi3SBTbYIN/TC08EudTLhv/KbPomCQnmFsnJ7AXQFuOZJs73mBxoEAYSbRbwyVA==} + /@radix-ui/react-arrow/1.0.3_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: - '@react-native-community/cli-platform-android': 6.3.0 - '@react-native-community/cli-tools': 6.2.0 - chalk: 4.1.2 - hermes-profile-transformer: 0.0.6 - ip: 1.1.5 - transitivePeerDependencies: - - encoding + '@babel/runtime': 7.18.6 + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 dev: true - /@react-native-community/cli-platform-android/6.3.0: - resolution: {integrity: sha512-d5ufyYcvrZoHznYm5bjBXaiHIJv552t5gYtQpnUsxBhHSQ8QlaNmlLUyeSPRDfOw4ND9b0tPHqs4ufwx6vp/fQ==} + /@radix-ui/react-collection/1.0.3_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: - '@react-native-community/cli-tools': 6.2.0 - chalk: 4.1.2 - execa: 1.0.0 - fs-extra: 8.1.0 - glob: 7.2.3 - jetifier: 1.6.8 - lodash: 4.17.21 - logkitty: 0.7.1 - slash: 3.0.0 - xmldoc: 1.1.4 - transitivePeerDependencies: - - encoding + '@babel/runtime': 7.18.6 + '@radix-ui/react-compose-refs': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-context': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-slot': 1.0.2_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 dev: true - /@react-native-community/cli-platform-ios/6.2.0: - resolution: {integrity: sha512-k15MhExxLiLDDZOeuPgvTxbp0CsoLQQpk2Du0HjZDePqqWcKJylQqMZru1o8HuQHPcEr+b71HIs5V+lKyFYpfg==} + /@radix-ui/react-compose-refs/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@react-native-community/cli-tools': 6.2.0 - chalk: 4.1.2 - glob: 7.2.3 - js-yaml: 3.14.1 - lodash: 4.17.21 - ora: 3.4.0 - plist: 3.0.5 - xcode: 2.1.0 - transitivePeerDependencies: - - encoding + '@babel/runtime': 7.18.6 + '@types/react': 18.0.15 + react: 18.2.0 dev: true - /@react-native-community/cli-plugin-metro/6.4.0_@babel+core@7.18.9: - resolution: {integrity: sha512-lcrNODvHd3ZVhiEshXAjyBoqP44rjhkytkOSUpnZHAcmMLiguxDmvhWeWqbwu3XqSX/f0gVKmfj81t+opI1bSw==} + /@radix-ui/react-context/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-direction/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-dismissable-layer/1.0.4_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-use-callback-ref': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-escape-keydown': 1.0.3_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-focus-guards/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-focus-scope/1.0.3_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-compose-refs': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-use-callback-ref': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-id/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-use-layout-effect': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-popper/1.1.2_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@floating-ui/react-dom': 2.0.7_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-arrow': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-compose-refs': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-context': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-use-callback-ref': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-layout-effect': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-rect': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-size': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/rect': 1.0.1 + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-portal/1.0.3_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-primitive/1.0.3_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-slot': 1.0.2_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-roving-focus/1.0.4_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-compose-refs': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-context': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-direction': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-id': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-use-callback-ref': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-controllable-state': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-select/1.2.2_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-compose-refs': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-context': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-direction': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-dismissable-layer': 1.0.4_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-focus-guards': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-focus-scope': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-id': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-popper': 1.1.2_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-portal': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-slot': 1.0.2_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-callback-ref': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-controllable-state': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-layout-effect': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-use-previous': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-visually-hidden': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-remove-scroll: 2.5.5_3hx2ussxxho4jajbwrd6gq34qe + dev: true + + /@radix-ui/react-separator/1.0.3_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-slot/1.0.2_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-compose-refs': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-toggle-group/1.0.4_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-context': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-direction': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-roving-focus': 1.0.4_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-toggle': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-use-controllable-state': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-toggle/1.0.3_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-use-controllable-state': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-toolbar/1.0.4_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-context': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-direction': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-roving-focus': 1.0.4_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-separator': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-toggle-group': 1.0.4_v7vsrdtui4d36prbwvdnlb7tpq + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-use-callback-ref/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-controllable-state/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-use-callback-ref': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-escape-keydown/1.0.3_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-use-callback-ref': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-layout-effect/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-previous/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-rect/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/rect': 1.0.1 + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-size/1.0.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-use-layout-effect': 1.0.1_3hx2ussxxho4jajbwrd6gq34qe + '@types/react': 18.0.15 + react: 18.2.0 + dev: true + + /@radix-ui/react-visually-hidden/1.0.3_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.18.6 + '@radix-ui/react-primitive': 1.0.3_v7vsrdtui4d36prbwvdnlb7tpq + '@types/react': 18.0.15 + '@types/react-dom': 18.0.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/rect/1.0.1: + resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + dependencies: + '@babel/runtime': 7.18.6 + dev: true + + /@react-native-community/cli-debugger-ui/6.0.0: + resolution: {integrity: sha512-onf6vtvqSzOr6bNEWhPzgcJP2UQhA0VY6c8tXwNczIONC/ahnN93LPBB/uXDbn9d/kLMvE7oUJiqRadZWHk6aA==} + dependencies: + serve-static: 1.15.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@react-native-community/cli-hermes/6.3.0: + resolution: {integrity: sha512-Uhbm9bubyZLZ12vFCIfWbE/Qi3SBTbYIN/TC08EudTLhv/KbPomCQnmFsnJ7AXQFuOZJs73mBxoEAYSbRbwyVA==} + dependencies: + '@react-native-community/cli-platform-android': 6.3.0 + '@react-native-community/cli-tools': 6.2.0 + chalk: 4.1.2 + hermes-profile-transformer: 0.0.6 + ip: 1.1.5 + transitivePeerDependencies: + - encoding + dev: true + + /@react-native-community/cli-platform-android/6.3.0: + resolution: {integrity: sha512-d5ufyYcvrZoHznYm5bjBXaiHIJv552t5gYtQpnUsxBhHSQ8QlaNmlLUyeSPRDfOw4ND9b0tPHqs4ufwx6vp/fQ==} + dependencies: + '@react-native-community/cli-tools': 6.2.0 + chalk: 4.1.2 + execa: 1.0.0 + fs-extra: 8.1.0 + glob: 7.2.3 + jetifier: 1.6.8 + lodash: 4.17.21 + logkitty: 0.7.1 + slash: 3.0.0 + xmldoc: 1.1.4 + transitivePeerDependencies: + - encoding + dev: true + + /@react-native-community/cli-platform-ios/6.2.0: + resolution: {integrity: sha512-k15MhExxLiLDDZOeuPgvTxbp0CsoLQQpk2Du0HjZDePqqWcKJylQqMZru1o8HuQHPcEr+b71HIs5V+lKyFYpfg==} + dependencies: + '@react-native-community/cli-tools': 6.2.0 + chalk: 4.1.2 + glob: 7.2.3 + js-yaml: 3.14.1 + lodash: 4.17.21 + ora: 3.4.0 + plist: 3.0.5 + xcode: 2.1.0 + transitivePeerDependencies: + - encoding + dev: true + + /@react-native-community/cli-plugin-metro/6.4.0_@babel+core@7.18.9: + resolution: {integrity: sha512-lcrNODvHd3ZVhiEshXAjyBoqP44rjhkytkOSUpnZHAcmMLiguxDmvhWeWqbwu3XqSX/f0gVKmfj81t+opI1bSw==} dependencies: '@react-native-community/cli-server-api': 6.4.3 '@react-native-community/cli-tools': 6.2.0 @@ -5087,41 +5630,137 @@ packages: resolution: {integrity: sha512-II2SIjvxBVJmrGkkZYza/BqNjwx3PWROIA8CZ0/Hn7LV0Mv0CVpZxoyHGBVsQqfFLMv9DmArIeRHTwo76bE6oA==} dev: true + /@sinclair/typebox/0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + /@sinonjs/commons/1.8.3: resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} dependencies: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/9.1.2: - resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + /@sinonjs/fake-timers/9.1.2: + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + dependencies: + '@sinonjs/commons': 1.8.3 + dev: true + + /@storybook/addon-actions/7.6.10: + resolution: {integrity: sha512-pcKmf0H/caGzKDy8cz1adNSjv+KOBWLJ11RzGExrWm+Ad5ACifwlsQPykJ3TQ/21sTd9IXVrE9uuq4LldEnPbg==} + dependencies: + '@storybook/core-events': 7.6.10 + '@storybook/global': 5.0.0 + '@types/uuid': 9.0.7 + dequal: 2.0.3 + polished: 4.2.2 + uuid: 9.0.1 + dev: true + + /@storybook/addon-backgrounds/7.6.10: + resolution: {integrity: sha512-kGzsN1QkfyI8Cz7TErEx9OCB3PMzpCFGLd/iy7FreXwbMbeAQ3/9fYgKUsNOYgOhuTz7S09koZUWjS/WJuZGFA==} + dependencies: + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + ts-dedent: 2.2.0 + dev: true + + /@storybook/addon-controls/7.6.10_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-LjwCQRMWq1apLtFwDi6U8MI6ITUr+KhxJucZ60tfc58RgB2v8ayozyDAonFEONsx9YSR1dNIJ2Z/e2rWTBJeYA==} + dependencies: + '@storybook/blocks': 7.6.10_v7vsrdtui4d36prbwvdnlb7tpq + lodash: 4.17.21 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - react + - react-dom + - supports-color + dev: true + + /@storybook/addon-docs/7.6.10_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-GtyQ9bMx1AOOtl6ZS9vwK104HFRK+tqzxddRRxhXkpyeKu3olm9aMgXp35atE/3fJSqyyDm2vFtxxH8mzBA20A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@jest/transform': 29.7.0 + '@mdx-js/react': 2.3.0_react@18.2.0 + '@storybook/blocks': 7.6.10_v7vsrdtui4d36prbwvdnlb7tpq + '@storybook/client-logger': 7.6.10 + '@storybook/components': 7.6.10_v7vsrdtui4d36prbwvdnlb7tpq + '@storybook/csf-plugin': 7.6.10 + '@storybook/csf-tools': 7.6.10 + '@storybook/global': 5.0.0 + '@storybook/mdx2-csf': 1.1.0 + '@storybook/node-logger': 7.6.10 + '@storybook/postinstall': 7.6.10 + '@storybook/preview-api': 7.6.10 + '@storybook/react-dom-shim': 7.6.10_biqbaboplfbrettd7655fr4n2y + '@storybook/theming': 7.6.10_biqbaboplfbrettd7655fr4n2y + '@storybook/types': 7.6.10 + fs-extra: 11.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + remark-external-links: 8.0.0 + remark-slug: 6.1.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + dev: true + + /@storybook/addon-essentials/7.6.10_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-cjbuCCK/3dtUity0Uqi5LwbkgfxqCCE5x5mXZIk9lTMeDz5vB9q6M5nzncVDy8F8przF3NbDLLgxKlt8wjiICg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@storybook/addon-actions': 7.6.10 + '@storybook/addon-backgrounds': 7.6.10 + '@storybook/addon-controls': 7.6.10_v7vsrdtui4d36prbwvdnlb7tpq + '@storybook/addon-docs': 7.6.10_v7vsrdtui4d36prbwvdnlb7tpq + '@storybook/addon-highlight': 7.6.10 + '@storybook/addon-measure': 7.6.10 + '@storybook/addon-outline': 7.6.10 + '@storybook/addon-toolbars': 7.6.10 + '@storybook/addon-viewport': 7.6.10 + '@storybook/core-common': 7.6.10 + '@storybook/manager-api': 7.6.10_biqbaboplfbrettd7655fr4n2y + '@storybook/node-logger': 7.6.10 + '@storybook/preview-api': 7.6.10 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + dev: true + + /@storybook/addon-highlight/7.6.10: + resolution: {integrity: sha512-dIuS5QmoT1R+gFOcf6CoBa6D9UR5/wHCfPqPRH8dNNcCLtIGSHWQ4v964mS5OCq1Huj7CghmR15lOUk7SaYwUA==} dependencies: - '@sinonjs/commons': 1.8.3 + '@storybook/global': 5.0.0 dev: true - /@storybook/addon-actions/7.6.10: - resolution: {integrity: sha512-pcKmf0H/caGzKDy8cz1adNSjv+KOBWLJ11RzGExrWm+Ad5ACifwlsQPykJ3TQ/21sTd9IXVrE9uuq4LldEnPbg==} + /@storybook/addon-measure/7.6.10: + resolution: {integrity: sha512-OVfTI56+kc4hLWfZ/YPV3WKj/aA9e4iKXYxZyPdhfX4Z8TgZdD1wv9Z6e8DKS0H5kuybYrHKHaID5ki6t7qz3w==} dependencies: - '@storybook/core-events': 7.6.10 '@storybook/global': 5.0.0 - '@types/uuid': 9.0.7 - dequal: 2.0.3 - polished: 4.2.2 - uuid: 9.0.1 + tiny-invariant: 1.3.1 dev: true - /@storybook/addon-options/5.3.21_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-Q+xo6Irrb66NOQO9U4QWddAU6UEPNb+Mn5h9NHwJYV87mKl/3bqleApBhtOhSacWw5GjceiigzulXZTCs866Sw==} - peerDependencies: - react: '*' + /@storybook/addon-outline/7.6.10: + resolution: {integrity: sha512-RVJrEoPArhI6zAIMNl1Gz0zrj84BTfEWYYz0yDWOTVgvN411ugsoIk1hw0671MOneXJ2RcQ9MFIeV/v6AVDQYg==} dependencies: - '@storybook/addons': 5.3.21_react-dom@18.2.0 - core-js: 3.23.3 - react: 18.2.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - react-dom - - regenerator-runtime + '@storybook/global': 5.0.0 + ts-dedent: 2.2.0 dev: true /@storybook/addon-storysource/7.6.10: @@ -5132,48 +5771,52 @@ packages: tiny-invariant: 1.3.1 dev: true - /@storybook/addons/5.3.21_react-dom@18.2.0: - resolution: {integrity: sha512-Ji/21WADTLVbTbiKcZ64BcL0Es+h1Afxx3kNmGJqPSTUYroCwIFCT9mUzCqU6G+YyWaISAmTii5UJkTwMkChwA==} + /@storybook/addon-toolbars/7.6.10: + resolution: {integrity: sha512-PaXY/oj9yxF7/H0CNdQKcioincyCkfeHpISZriZbZqhyqsjn3vca7RFEmsB88Q+ou6rMeqyA9st+6e2cx/Ct6A==} + dev: true + + /@storybook/addon-viewport/7.6.10: + resolution: {integrity: sha512-+bA6juC/lH4vEhk+w0rXakaG8JgLG4MOYrIudk5vJKQaC6X58LIM9N4kzIS2KSExRhkExXBPrWsnMfCo7uxmKg==} dependencies: - '@storybook/api': 5.3.21_react-dom@18.2.0 - '@storybook/channels': 5.3.21 - '@storybook/client-logger': 5.3.21 - '@storybook/core-events': 5.3.21 - core-js: 3.23.3 - global: 4.4.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - react-dom - - regenerator-runtime + memoizerific: 1.11.3 dev: true - /@storybook/api/5.3.21_react-dom@18.2.0: - resolution: {integrity: sha512-K1o4an/Rx8daKRDooks6qzN6ZGyqizeacZZbair3F8CsSfTgrr2zCcf9pgKojLQa9koEmMHlcdb2KnS+GwPEgA==} + /@storybook/blocks/7.6.10_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-oSIukGC3yuF8pojABC/HLu5tv2axZvf60TaUs8eDg7+NiiKhzYSPoMQxs5uMrKngl+EJDB92ESgWT9vvsfvIPg==} peerDependencies: - regenerator-runtime: '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@reach/router': 1.3.4_yicqvriqha7ppr6zyvk5y4bjya - '@storybook/channels': 5.3.21 - '@storybook/client-logger': 5.3.21 - '@storybook/core-events': 5.3.21 - '@storybook/csf': 0.0.1 - '@storybook/router': 5.3.21_yicqvriqha7ppr6zyvk5y4bjya - '@storybook/theming': 5.3.21_yicqvriqha7ppr6zyvk5y4bjya - '@types/reach__router': 1.3.10 - core-js: 3.23.3 - fast-deep-equal: 2.0.1 - global: 4.4.0 + '@storybook/channels': 7.6.10 + '@storybook/client-logger': 7.6.10 + '@storybook/components': 7.6.10_v7vsrdtui4d36prbwvdnlb7tpq + '@storybook/core-events': 7.6.10 + '@storybook/csf': 0.1.2 + '@storybook/docs-tools': 7.6.10 + '@storybook/global': 5.0.0 + '@storybook/manager-api': 7.6.10_biqbaboplfbrettd7655fr4n2y + '@storybook/preview-api': 7.6.10 + '@storybook/theming': 7.6.10_biqbaboplfbrettd7655fr4n2y + '@storybook/types': 7.6.10 + '@types/lodash': 4.14.182 + color-convert: 2.0.1 + dequal: 2.0.3 lodash: 4.17.21 + markdown-to-jsx: 7.4.0_react@18.2.0 memoizerific: 1.11.3 - prop-types: 15.8.1 - react: 16.14.0 - semver: 6.3.0 - shallow-equal: 1.2.1 - store2: 2.13.2 - telejson: 3.3.0 + polished: 4.2.2 + react: 18.2.0 + react-colorful: 5.6.1_biqbaboplfbrettd7655fr4n2y + react-dom: 18.2.0_react@18.2.0 + telejson: 7.2.0 + tocbot: 4.25.0 + ts-dedent: 2.2.0 util-deprecate: 1.0.2 transitivePeerDependencies: - - react-dom + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color dev: true /@storybook/builder-manager/7.6.10: @@ -5257,12 +5900,6 @@ packages: - webpack-cli dev: true - /@storybook/channels/5.3.21: - resolution: {integrity: sha512-OXoFs9XtBVg/cCk6lYMrxkzaNlJRf54ABdorp7YAAj7S9tRL1JxOZHxmjNQwEoiRvssmem2rAWtEAxfuEANsAA==} - dependencies: - core-js: 3.23.3 - dev: true - /@storybook/channels/7.6.10: resolution: {integrity: sha512-ITCLhFuDBKgxetuKnWwYqMUWlU7zsfH3gEKZltTb+9/2OAWR7ez0iqU7H6bXP1ridm0DCKkt2UMWj2mmr9iQqg==} dependencies: @@ -5325,12 +5962,6 @@ packages: - utf-8-validate dev: true - /@storybook/client-logger/5.3.21: - resolution: {integrity: sha512-OzQkwpZ5SK9cXD9Mv6lxPGPot+hSZvnkEW12kpt1AHfJz4ET26YTDOI3oetPsjfRJo6qYLeQX8+wF7rklfXbzA==} - dependencies: - core-js: 3.23.3 - dev: true - /@storybook/client-logger/7.6.10: resolution: {integrity: sha512-U7bbpu21ntgePMz/mKM18qvCSWCUGCUlYru8mgVlXLCKqFqfTeP887+CsPEQf29aoE3cLgDrxqbRJ1wxX9kL9A==} dependencies: @@ -5358,6 +5989,29 @@ packages: - supports-color dev: true + /@storybook/components/7.6.10_v7vsrdtui4d36prbwvdnlb7tpq: + resolution: {integrity: sha512-H5hF8pxwtbt0LxV24KMMsPlbYG9Oiui3ObvAQkvGu6q62EYxRPeNSrq3GBI5XEbI33OJY9bT24cVaZx18dXqwQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@radix-ui/react-select': 1.2.2_v7vsrdtui4d36prbwvdnlb7tpq + '@radix-ui/react-toolbar': 1.0.4_v7vsrdtui4d36prbwvdnlb7tpq + '@storybook/client-logger': 7.6.10 + '@storybook/csf': 0.1.2 + '@storybook/global': 5.0.0 + '@storybook/theming': 7.6.10_biqbaboplfbrettd7655fr4n2y + '@storybook/types': 7.6.10 + memoizerific: 1.11.3 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + use-resize-observer: 9.1.0_biqbaboplfbrettd7655fr4n2y + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + dev: true + /@storybook/core-client/7.6.10: resolution: {integrity: sha512-DjnzSzSNDmZyxyg6TxugzWQwOsW+n/iWVv6sHNEvEd5STr0mjuJjIEELmv58LIr5Lsre5+LEddqHsyuLyt8ubg==} dependencies: @@ -5396,12 +6050,6 @@ packages: - supports-color dev: true - /@storybook/core-events/5.3.21: - resolution: {integrity: sha512-/Zsm1sKAh6pzQv8jQUmuhM7nuM01ZljIRKy8p2HjPNlMjDB5yaRkBfyeAUXUg+qXNI6aHVWa4jGdPEdwwY4oLA==} - dependencies: - core-js: 3.23.3 - dev: true - /@storybook/core-events/7.6.10: resolution: {integrity: sha512-yccDH67KoROrdZbRKwxgTswFMAco5nlCyxszCDASCLygGSV2Q2e+YuywrhchQl3U6joiWi3Ps1qWu56NeNafag==} dependencies: @@ -5472,6 +6120,15 @@ packages: - supports-color dev: true + /@storybook/csf-plugin/7.6.10: + resolution: {integrity: sha512-Sc+zZg/BnPH2X28tthNaQBnDiFfO0QmfjVoOx0fGYM9SvY3P5ehzWwp5hMRBim6a/twOTzePADtqYL+t6GMqqg==} + dependencies: + '@storybook/csf-tools': 7.6.10 + unplugin: 1.6.0 + transitivePeerDependencies: + - supports-color + dev: true + /@storybook/csf-tools/7.6.10: resolution: {integrity: sha512-TnDNAwIALcN6SA4l00Cb67G02XMOrYU38bIpFJk5VMDX2dvgPjUtJNBuLmEbybGcOt7nPyyFIHzKcY5FCVGoWA==} dependencies: @@ -5523,14 +6180,44 @@ packages: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} dev: true + /@storybook/manager-api/7.6.10_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-8eGVpRlpunuFScDtc7nxpPJf/4kJBAAZlNdlhmX09j8M3voX6GpcxabBamSEX5pXZqhwxQCshD4IbqBmjvadlw==} + dependencies: + '@storybook/channels': 7.6.10 + '@storybook/client-logger': 7.6.10 + '@storybook/core-events': 7.6.10 + '@storybook/csf': 0.1.2 + '@storybook/global': 5.0.0 + '@storybook/router': 7.6.10 + '@storybook/theming': 7.6.10_biqbaboplfbrettd7655fr4n2y + '@storybook/types': 7.6.10 + dequal: 2.0.3 + lodash: 4.17.21 + memoizerific: 1.11.3 + store2: 2.14.2 + telejson: 7.2.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - react + - react-dom + dev: true + /@storybook/manager/7.6.10: resolution: {integrity: sha512-Co3sLCbNYY6O4iH2ggmRDLCPWLj03JE5s/DOG8OVoXc6vBwTc/Qgiyrsxxp6BHQnPpM0mxL6aKAxE3UjsW/Nog==} dev: true + /@storybook/mdx2-csf/1.1.0: + resolution: {integrity: sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==} + dev: true + /@storybook/node-logger/7.6.10: resolution: {integrity: sha512-ZBuqrv4bjJzKXyfRGFkVIi+z6ekn6rOPoQao4KmsfLNQAUUsEdR8Baw/zMnnU417zw5dSEaZdpuwx75SCQAeOA==} dev: true + /@storybook/postinstall/7.6.10: + resolution: {integrity: sha512-SMdXtednPCy3+SRJ7oN1OPN1oVFhj3ih+ChOEX8/kZ5J3nfmV3wLPtsZvFGUCf0KWQEP1xL+1Urv48mzMKcV/w==} + dev: true + /@storybook/preset-react-webpack/7.6.10_656ojrr56y7odmdb43up5adzqi: resolution: {integrity: sha512-fUcr4dmXJdPIQdjkhA4bE8QF8Pavr4BSLxovtTRupbWxtRjZxJrH5hf+0HZycq1cp9umO/11Lsmw9Nx5Xg3Eww==} engines: {node: '>=16.0.0'} @@ -5712,23 +6399,12 @@ packages: - supports-color dev: true - /@storybook/router/5.3.21_yicqvriqha7ppr6zyvk5y4bjya: - resolution: {integrity: sha512-c29m5UikK5Q1lyd6FltOGFhIcpd6PIb855YS3OUNe3F6ZA1tfJ+aNKrCBc65d1c+fvCGG76dYYYv0RvwEmKXXg==} - peerDependencies: - react: '*' - react-dom: '*' + /@storybook/router/7.6.10: + resolution: {integrity: sha512-G/H4Jn2+y8PDe8Zbq4DVxF/TPn0/goSItdILts39JENucHiuGBCjKjSWGBe1rkwKi1tUbB3yhxJVrLagxFEPpQ==} dependencies: - '@reach/router': 1.3.4_yicqvriqha7ppr6zyvk5y4bjya - '@storybook/csf': 0.0.1 - '@types/reach__router': 1.3.10 - core-js: 3.23.3 - global: 4.4.0 - lodash: 4.17.21 + '@storybook/client-logger': 7.6.10 memoizerific: 1.11.3 qs: 6.11.0 - react: 16.14.0 - react-dom: 18.2.0_react@18.2.0 - util-deprecate: 1.0.2 dev: true /@storybook/source-loader/7.6.10: @@ -5757,33 +6433,25 @@ packages: - supports-color dev: true - /@storybook/theming/5.3.21_yicqvriqha7ppr6zyvk5y4bjya: - resolution: {integrity: sha512-FZbxjizqdO9lV5LUixPio/7+6UdPiswCzTJn8Hcot9uwwgfnrViRdN7xyjmSYRqv9nHP3OlYbtdeCAgZ4aPq8g==} + /@storybook/theming/7.6.10_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-f5tuy7yV3TOP3fIboSqpgLHy0wKayAw/M8HxX0jVET4Z4fWlFK0BiHJabQ+XEdAfQM97XhPFHB2IPbwsqhCEcQ==} peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@emotion/core': 10.3.1_react@16.14.0 - '@emotion/styled': 10.3.0_qzeatvug73zaio2r3dlvejynye - '@storybook/client-logger': 5.3.21 - core-js: 3.23.3 - deep-object-diff: 1.1.7 - emotion-theming: 10.3.0_qzeatvug73zaio2r3dlvejynye - global: 4.4.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1_react@18.2.0 + '@storybook/client-logger': 7.6.10 + '@storybook/global': 5.0.0 memoizerific: 1.11.3 - polished: 3.7.2 - prop-types: 15.8.1 - react: 16.14.0 + react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - resolve-from: 5.0.0 - ts-dedent: 1.2.0 dev: true /@storybook/types/7.6.10: resolution: {integrity: sha512-hcS2HloJblaMpCAj2axgGV+53kgSRYPT0a1PG1IHsZaYQILfHSMmBqM8XzXXYTsgf9250kz3dqFX1l0n3EqMlQ==} dependencies: '@storybook/channels': 7.6.10 - '@types/babel__core': 7.1.19 + '@types/babel__core': 7.20.5 '@types/express': 4.17.13 file-system-cache: 2.3.0 dev: true @@ -6032,11 +6700,11 @@ packages: /@types/babel__core/7.1.19: resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: - '@babel/parser': 7.18.9 - '@babel/types': 7.18.9 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.17.1 + '@types/babel__traverse': 7.20.5 dev: true /@types/babel__core/7.20.5: @@ -6052,20 +6720,14 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.18.9 + '@babel/types': 7.23.6 dev: true /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.18.9 - '@babel/types': 7.18.9 - dev: true - - /@types/babel__traverse/7.17.1: - resolution: {integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==} - dependencies: - '@babel/types': 7.18.9 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 dev: true /@types/babel__traverse/7.20.5: @@ -6248,10 +6910,6 @@ packages: ci-info: 3.3.2 dev: true - /@types/is-function/1.0.1: - resolution: {integrity: sha512-A79HEEiwXTFtfY+Bcbo58M2GRYzCr9itHWzbzHVFNEYCcoU/MMGwYYf721gBrnhpj1s6RGVVha/IgNFnR0Iw/Q==} - dev: true - /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true @@ -6307,6 +6965,10 @@ packages: resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} dev: true + /@types/mdx/2.0.10: + resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==} + dev: true + /@types/mime-types/2.1.4: resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} dev: true @@ -6366,12 +7028,6 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true - /@types/reach__router/1.3.10: - resolution: {integrity: sha512-iHAFGaVOrWi00/q7oBybggGsz5TOmwOW4M1H9sT7i9lly4qFC8XOgsdf6jUsoaOz2sknFHALEtZqCoDbokdJ2Q==} - dependencies: - '@types/react': 18.0.15 - dev: true - /@types/react-dom/18.0.6: resolution: {integrity: sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==} dependencies: @@ -6909,6 +7565,12 @@ packages: hasBin: true dev: true + /acorn/8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn/8.8.0: resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} @@ -7104,6 +7766,13 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true + /aria-hidden/1.2.3: + resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} + engines: {node: '>=10'} + dependencies: + tslib: 2.4.0 + dev: true + /aria-query/5.0.0: resolution: {integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==} engines: {node: '>=6.0'} @@ -7140,10 +7809,10 @@ packages: resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.1.4 es-abstract: 1.20.1 - get-intrinsic: 1.1.2 + get-intrinsic: 1.2.2 is-string: 1.0.7 dev: true @@ -7169,7 +7838,7 @@ packages: resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.1.4 es-abstract: 1.20.1 es-shim-unscopables: 1.0.0 @@ -7179,7 +7848,7 @@ packages: resolution: {integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.1.4 es-abstract: 1.20.1 es-shim-unscopables: 1.0.0 @@ -7197,7 +7866,7 @@ packages: /assert/2.1.0: resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 is-nan: 1.3.2 object-is: 1.1.5 object.assign: 4.1.5 @@ -7430,21 +8099,6 @@ packages: object.assign: 4.1.2 dev: true - /babel-plugin-emotion/10.2.2: - resolution: {integrity: sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==} - dependencies: - '@babel/helper-module-imports': 7.18.6 - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.4 - '@emotion/serialize': 0.11.16 - babel-plugin-macros: 2.8.0 - babel-plugin-syntax-jsx: 6.18.0 - convert-source-map: 1.8.0 - escape-string-regexp: 1.0.5 - find-root: 1.1.0 - source-map: 0.5.7 - dev: true - /babel-plugin-istanbul/6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} @@ -7462,10 +8116,10 @@ packages: resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@babel/template': 7.18.6 - '@babel/types': 7.18.9 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.17.1 + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.5 dev: true /babel-plugin-lodash/3.3.4: @@ -7478,14 +8132,6 @@ packages: require-package-name: 2.0.1 dev: true - /babel-plugin-macros/2.8.0: - resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} - dependencies: - '@babel/runtime': 7.18.6 - cosmiconfig: 6.0.0 - resolve: 1.22.1 - dev: true - /babel-plugin-module-resolver/4.1.0: resolution: {integrity: sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==} engines: {node: '>= 8.0.0'} @@ -8236,13 +8882,6 @@ packages: unset-value: 1.0.0 dev: true - /call-bind/1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.1.2 - dev: true - /call-bind/1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -8780,11 +9419,6 @@ packages: requiresBuild: true dev: true - /core-js/3.23.3: - resolution: {integrity: sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q==} - requiresBuild: true - dev: true - /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true @@ -8799,17 +9433,6 @@ packages: parse-json: 4.0.0 dev: true - /cosmiconfig/6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - /cosmiconfig/7.0.1: resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} engines: {node: '>=10'} @@ -8843,18 +9466,6 @@ packages: - supports-color dev: true - /create-react-context/0.3.0_4vyaxm4rsh2mpfdenvlqy7kmya: - resolution: {integrity: sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==} - peerDependencies: - prop-types: ^15.0.0 - react: ^0.14.0 || ^15.0.0 || ^16.0.0 - dependencies: - gud: 1.0.0 - prop-types: 15.8.1 - react: 16.14.0 - warning: 4.0.3 - dev: true - /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -9004,10 +9615,6 @@ packages: cssom: 0.3.8 dev: true - /csstype/2.6.20: - resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} - dev: true - /csstype/3.1.0: resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} dev: true @@ -9205,10 +9812,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deep-object-diff/1.1.7: - resolution: {integrity: sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg==} - dev: true - /deepmerge/3.3.0: resolution: {integrity: sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==} engines: {node: '>=0.10.0'} @@ -9246,7 +9849,7 @@ packages: dependencies: get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 dev: true /define-lazy-prop/2.0.0: @@ -9258,7 +9861,7 @@ packages: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} dependencies: - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 dev: true @@ -9267,7 +9870,7 @@ packages: engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.1 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 dev: true @@ -9364,6 +9967,10 @@ packages: engines: {node: '>=8'} dev: true + /detect-node-es/1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: true + /detect-node/2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true @@ -9581,19 +10188,6 @@ packages: engines: {node: '>= 4'} dev: true - /emotion-theming/10.3.0_qzeatvug73zaio2r3dlvejynye: - resolution: {integrity: sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==} - peerDependencies: - '@emotion/core': ^10.0.27 - react: '>=16.3.0' - dependencies: - '@babel/runtime': 7.18.6 - '@emotion/core': 10.3.1_react@16.14.0 - '@emotion/weak-memoize': 0.2.5 - hoist-non-react-statics: 3.3.2 - react: 16.14.0 - dev: true - /encodeurl/1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -9667,14 +10261,14 @@ packages: resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 es-to-primitive: 1.2.1 - function-bind: 1.1.1 + function-bind: 1.1.2 function.prototype.name: 1.1.5 - get-intrinsic: 1.1.2 + get-intrinsic: 1.2.2 get-symbol-description: 1.0.0 has: 1.0.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.3 is-callable: 1.2.4 @@ -9685,7 +10279,7 @@ packages: is-weakref: 1.0.2 object-inspect: 1.12.2 object-keys: 1.1.1 - object.assign: 4.1.2 + object.assign: 4.1.5 regexp.prototype.flags: 1.4.3 string.prototype.trimend: 1.0.5 string.prototype.trimstart: 1.0.5 @@ -10342,10 +10936,6 @@ packages: - supports-color dev: true - /fast-deep-equal/2.0.1: - resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} - dev: true - /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -10529,10 +11119,6 @@ packages: resolution: {integrity: sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==} dev: true - /find-root/1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - dev: true - /find-up/2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} @@ -10631,7 +11217,7 @@ packages: typescript: '>3.6.0' webpack: ^5.11.0 dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.23.5 chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 7.0.1 @@ -10777,8 +11363,8 @@ packages: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 + call-bind: 1.0.5 + define-properties: 1.2.1 es-abstract: 1.20.1 functions-have-names: 1.2.3 dev: true @@ -10801,14 +11387,6 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-intrinsic/1.1.2: - resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - dev: true - /get-intrinsic/1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: @@ -10818,6 +11396,11 @@ packages: hasown: 2.0.0 dev: true + /get-nonce/1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: true + /get-npm-tarball-url/2.1.0: resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} engines: {node: '>=12.17'} @@ -10854,8 +11437,8 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.2 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: true /get-value/2.0.6: @@ -10877,6 +11460,10 @@ packages: tar: 6.2.0 dev: true + /github-slugger/1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + dev: true + /glob-gitignore/1.0.14: resolution: {integrity: sha512-YuAEPqL58bOQDqDF2kMv009rIjSAtPs+WPzyGbwRWK+wD0UWQVRoP34Pz6yJ6ivco65C9tZnaIt0I3JCuQ8NZQ==} engines: {node: '>= 6'} @@ -11009,10 +11596,6 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /gud/1.0.0: - resolution: {integrity: sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==} - dev: true - /gunzip-maybe/1.4.2: resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} hasBin: true @@ -11068,12 +11651,6 @@ packages: engines: {node: '>=8'} dev: true - /has-property-descriptors/1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.1.2 - dev: true - /has-property-descriptors/1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: @@ -11450,7 +12027,7 @@ packages: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.1.2 + get-intrinsic: 1.2.2 has: 1.0.3 side-channel: 1.0.4 dev: true @@ -11488,6 +12065,11 @@ packages: engines: {node: '>= 10'} dev: true + /is-absolute-url/3.0.3: + resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} + engines: {node: '>=8'} + dev: true + /is-accessor-descriptor/0.1.6: resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} engines: {node: '>=0.10.0'} @@ -11522,7 +12104,7 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true @@ -11547,7 +12129,7 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true @@ -11670,10 +12252,6 @@ packages: engines: {node: '>=8'} dev: true - /is-function/1.0.2: - resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} - dev: true - /is-generator-fn/2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} @@ -11711,8 +12289,8 @@ packages: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 + call-bind: 1.0.5 + define-properties: 1.2.1 dev: true /is-negative-zero/2.0.2: @@ -11788,14 +12366,14 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true /is-shared-array-buffer/1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-stream/1.1.0: @@ -11849,7 +12427,7 @@ packages: /is-weakref/1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-whitespace-character/1.0.4: @@ -11897,11 +12475,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /isobject/4.0.0: - resolution: {integrity: sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==} - engines: {node: '>=0.10.0'} - dev: true - /istanbul-lib-coverage/3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} @@ -11912,7 +12485,7 @@ packages: engines: {node: '>=8'} dependencies: '@babel/core': 7.18.9 - '@babel/parser': 7.18.9 + '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -12182,6 +12755,25 @@ packages: fsevents: 2.3.2 dev: true + /jest-haste-map/29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.5 + '@types/node': 18.6.1 + anymatch: 3.1.2 + fb-watchman: 2.0.1 + graceful-fs: 4.2.10 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /jest-leak-detector/28.1.3: resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12204,7 +12796,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.18.6 + '@babel/code-frame': 7.23.5 '@jest/types': 28.1.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -12245,6 +12837,11 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: true + /jest-regex-util/29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /jest-resolve-dependencies/28.1.3: resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12342,14 +12939,14 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@babel/core': 7.18.9 - '@babel/generator': 7.18.9 + '@babel/generator': 7.23.6 '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.18.9 - '@babel/traverse': 7.18.9 - '@babel/types': 7.18.9 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 '@jest/expect-utils': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 - '@types/babel__traverse': 7.17.1 + '@types/babel__traverse': 7.20.5 '@types/prettier': 2.6.4 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.18.9 chalk: 4.1.2 @@ -12392,6 +12989,18 @@ packages: picomatch: 2.3.1 dev: true + /jest-util/29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.6.1 + chalk: 4.1.2 + ci-info: 3.3.2 + graceful-fs: 4.2.10 + picomatch: 2.3.1 + dev: true + /jest-validate/26.6.2: resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} engines: {node: '>= 10.14.2'} @@ -12457,6 +13066,16 @@ packages: supports-color: 8.1.1 dev: true + /jest-worker/29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 18.6.1 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + /jest/28.1.3_pq4lb27wczlmkje7q43vo4whau: resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -13106,12 +13725,27 @@ packages: resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} dev: true + /markdown-to-jsx/7.4.0_react@18.2.0: + resolution: {integrity: sha512-zilc+MIkVVXPyTb4iIUTIz9yyqfcWjszGXnwF9K/aiBWcHXFcmdEMTkG01/oQhwSCH7SY1BnG6+ev5BzWmbPrg==} + engines: {node: '>= 10'} + peerDependencies: + react: '>= 0.14.0' + dependencies: + react: 18.2.0 + dev: true + /mdast-util-compact/1.0.4: resolution: {integrity: sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==} dependencies: unist-util-visit: 1.4.1 dev: true + /mdast-util-definitions/4.0.0: + resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} + dependencies: + unist-util-visit: 2.0.3 + dev: true + /mdast-util-to-string/1.1.0: resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} dev: true @@ -13427,9 +14061,9 @@ packages: resolution: {integrity: sha512-KTvqplh0ut7oDKovvDG6yzXM02R6X+9b2oVG+qYq8Zd3aCGTi51ASx4ThCNkAHyEvCuJdYg9fxXTL+j+wvhB5w==} dependencies: '@babel/core': 7.18.9 - '@babel/generator': 7.18.9 - '@babel/template': 7.18.6 - '@babel/traverse': 7.18.9 + '@babel/generator': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color @@ -13439,9 +14073,9 @@ packages: resolution: {integrity: sha512-dO4PtYOMGB7Vzte8aIzX39xytODhmbJrBYPu+zYzlDjyefJZT7BkZ0LkPIThtyJi96xWcGqi9JBSo0CeRupAHw==} dependencies: '@babel/core': 7.18.9 - '@babel/generator': 7.18.9 - '@babel/parser': 7.18.9 - '@babel/types': 7.18.9 + '@babel/generator': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 babel-preset-fbjs: 3.4.0_@babel+core@7.18.9 metro: 0.66.2 metro-babel-transformer: 0.66.2 @@ -13462,13 +14096,13 @@ packages: resolution: {integrity: sha512-uNsISfcQ3iKKSHoN5Q+LAh0l3jeeg7ZcNZ/4BAHGsk02erA0OP+l2m+b5qYVoPptHz9Oc3KyG5oGJoTu41pWjg==} hasBin: true dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.23.5 '@babel/core': 7.18.9 - '@babel/generator': 7.18.9 - '@babel/parser': 7.18.9 - '@babel/template': 7.18.6 - '@babel/traverse': 7.18.9 - '@babel/types': 7.18.9 + '@babel/generator': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 absolute-path: 0.0.0 accepts: 1.3.8 async: 2.6.4 @@ -13925,8 +14559,8 @@ packages: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 + call-bind: 1.0.5 + define-properties: 1.2.1 dev: true /object-keys/1.1.1: @@ -13945,8 +14579,8 @@ packages: resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 + call-bind: 1.0.5 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -13965,7 +14599,7 @@ packages: resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.1.4 es-abstract: 1.20.1 dev: true @@ -13974,7 +14608,7 @@ packages: resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.1.4 es-abstract: 1.20.1 dev: true @@ -13997,7 +14631,7 @@ packages: resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.1.4 es-abstract: 1.20.1 dev: true @@ -14303,7 +14937,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -14479,13 +15113,6 @@ packages: xmlbuilder: 9.0.7 dev: true - /polished/3.7.2: - resolution: {integrity: sha512-pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ==} - engines: {node: '>=10'} - dependencies: - '@babel/runtime': 7.18.6 - dev: true - /polished/4.2.2: resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} engines: {node: '>=10'} @@ -14839,6 +15466,16 @@ packages: unpipe: 1.0.0 dev: true + /react-colorful/5.6.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + /react-deep-force-update/1.1.2: resolution: {integrity: sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA==} dev: true @@ -14866,8 +15503,8 @@ packages: engines: {node: '>=16.14.0'} dependencies: '@babel/core': 7.18.9 - '@babel/traverse': 7.18.9 - '@babel/types': 7.18.9 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 '@types/doctrine': 0.0.9 @@ -15044,6 +15681,41 @@ packages: engines: {node: '>=0.10.0'} dev: true + /react-remove-scroll-bar/2.3.4_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.15 + react: 18.2.0 + react-style-singleton: 2.2.1_3hx2ussxxho4jajbwrd6gq34qe + tslib: 2.4.0 + dev: true + + /react-remove-scroll/2.5.5_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.15 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4_3hx2ussxxho4jajbwrd6gq34qe + react-style-singleton: 2.2.1_3hx2ussxxho4jajbwrd6gq34qe + tslib: 2.4.0 + use-callback-ref: 1.3.1_3hx2ussxxho4jajbwrd6gq34qe + use-sidecar: 1.1.2_3hx2ussxxho4jajbwrd6gq34qe + dev: true + /react-shallow-renderer/16.15.0_react@18.2.0: resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} peerDependencies: @@ -15054,6 +15726,23 @@ packages: react-is: 18.2.0 dev: true + /react-style-singleton/2.2.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.15 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.4.0 + dev: true + /react-test-renderer/18.2.0_react@18.2.0: resolution: {integrity: sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==} peerDependencies: @@ -15072,15 +15761,6 @@ packages: react-proxy: 1.1.8 dev: true - /react/16.14.0: - resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - prop-types: 15.8.1 - dev: true - /react/18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -15238,8 +15918,8 @@ packages: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 + call-bind: 1.0.5 + define-properties: 1.2.1 functions-have-names: 1.2.3 dev: true @@ -15295,6 +15975,16 @@ packages: engines: {node: '>= 0.10'} dev: true + /remark-external-links/8.0.0: + resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==} + dependencies: + extend: 3.0.2 + is-absolute-url: 3.0.3 + mdast-util-definitions: 4.0.0 + space-separated-tokens: 1.1.5 + unist-util-visit: 2.0.3 + dev: true + /remark-parse/7.0.2: resolution: {integrity: sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==} dependencies: @@ -15315,6 +16005,14 @@ packages: xtend: 4.0.2 dev: true + /remark-slug/6.1.0: + resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} + dependencies: + github-slugger: 1.5.0 + mdast-util-to-string: 1.1.0 + unist-util-visit: 2.0.3 + dev: true + /remark-stringify/7.0.4: resolution: {integrity: sha512-qck+8NeA1D0utk1ttKcWAoHRrJxERYQzkHDyn+pF5Z4whX1ug98uCNPPSeFgLSaNERRxnD6oxIug6DzZQth6Pg==} dependencies: @@ -15761,10 +16459,6 @@ packages: kind-of: 6.0.3 dev: true - /shallow-equal/1.2.1: - resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==} - dev: true - /shallowequal/1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} dev: true @@ -15809,8 +16503,8 @@ packages: /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.2 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 object-inspect: 1.12.2 dev: true @@ -15965,6 +16659,10 @@ packages: engines: {node: '>= 8'} dev: true + /space-separated-tokens/1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + dev: true + /spawn-command-with-kill/1.0.2: resolution: {integrity: sha512-EPzhF/ZO19xzZ1RCyrNorAal5o5FoZoXqHeybQm4vyfMmNbOU5cvfKQsTuspcBVilL5QDmybYpwkj9/GgaEd8Q==} dependencies: @@ -16092,8 +16790,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /store2/2.13.2: - resolution: {integrity: sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg==} + /store2/2.14.2: + resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} dev: true /storybook/7.6.10: @@ -16167,10 +16865,10 @@ packages: /string.prototype.matchall/4.0.7: resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.1.4 es-abstract: 1.20.1 - get-intrinsic: 1.1.2 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 internal-slot: 1.0.3 regexp.prototype.flags: 1.4.3 @@ -16180,16 +16878,16 @@ packages: /string.prototype.trimend/1.0.5: resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 + call-bind: 1.0.5 + define-properties: 1.2.1 es-abstract: 1.20.1 dev: true /string.prototype.trimstart/1.0.5: resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 + call-bind: 1.0.5 + define-properties: 1.2.1 es-abstract: 1.20.1 dev: true @@ -16423,19 +17121,6 @@ packages: yallist: 4.0.0 dev: true - /telejson/3.3.0: - resolution: {integrity: sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w==} - dependencies: - '@types/is-function': 1.0.1 - global: 4.4.0 - is-function: 1.0.2 - is-regex: 1.1.4 - is-symbol: 1.0.4 - isobject: 4.0.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - dev: true - /telejson/7.2.0: resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} dependencies: @@ -16635,6 +17320,10 @@ packages: safe-regex: 1.1.0 dev: true + /tocbot/4.25.0: + resolution: {integrity: sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA==} + dev: true + /toidentifier/1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -16683,11 +17372,6 @@ packages: resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} dev: true - /ts-dedent/1.2.0: - resolution: {integrity: sha512-6zSJp23uQI+Txyz5LlXMXAHpUhY4Hi0oluXny0OgIR7g/Cromq4vDBnhtbBdyIV34g0pgwxUvnvg+jLJe4c1NA==} - engines: {node: '>=6.10'} - dev: true - /ts-dedent/2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -16925,7 +17609,7 @@ packages: /unbox-primitive/1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -16998,6 +17682,10 @@ packages: resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} dev: true + /unist-util-is/4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + dev: true + /unist-util-remove-position/1.1.4: resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==} dependencies: @@ -17016,12 +17704,27 @@ packages: unist-util-is: 3.0.0 dev: true + /unist-util-visit-parents/3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 4.1.0 + dev: true + /unist-util-visit/1.4.1: resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} dependencies: unist-util-visit-parents: 2.1.2 dev: true + /unist-util-visit/2.0.3: + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 + dev: true + /universal-github-app-jwt/1.1.1: resolution: {integrity: sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==} dependencies: @@ -17048,6 +17751,15 @@ packages: engines: {node: '>= 0.8'} dev: true + /unplugin/1.6.0: + resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} + dependencies: + acorn: 8.11.3 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + dev: true + /unset-value/1.0.0: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} @@ -17101,6 +17813,48 @@ packages: querystring: 0.2.0 dev: true + /use-callback-ref/1.3.1_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.15 + react: 18.2.0 + tslib: 2.4.0 + dev: true + + /use-resize-observer/9.1.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==} + peerDependencies: + react: 16.8.0 - 18 + react-dom: 16.8.0 - 18 + dependencies: + '@juggle/resize-observer': 3.4.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /use-sidecar/1.1.2_3hx2ussxxho4jajbwrd6gq34qe: + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.15 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.4.0 + dev: true + /use-subscription/1.8.0: resolution: {integrity: sha512-LISuG0/TmmoDoCRmV5XAqYkd3UCBNM0ML3gGBndze65WITcsExCD3DTvXXTLyNcOC0heFQZzluW88bN/oC1DQQ==} peerDependencies: @@ -17176,7 +17930,7 @@ packages: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.14 + '@jridgewell/trace-mapping': 0.3.22 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 dev: true @@ -17236,12 +17990,6 @@ packages: makeerror: 1.0.12 dev: true - /warning/4.0.3: - resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} - dependencies: - loose-envify: 1.4.0 - dev: true - /watchpack/2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} @@ -17413,6 +18161,10 @@ packages: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} dev: true + /webpack-virtual-modules/0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + dev: true + /webpack/5.74.0_jmvevvrkvprlsib7tsbgxwazju: resolution: {integrity: sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==} engines: {node: '>=10.13.0'} @@ -17677,6 +18429,14 @@ packages: signal-exit: 3.0.7 dev: true + /write-file-atomic/4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + /ws/1.1.5: resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==} peerDependencies: diff --git a/stories/.eslintrc b/stories/.eslintrc index 61fb27660..99466820b 100644 --- a/stories/.eslintrc +++ b/stories/.eslintrc @@ -1,6 +1,8 @@ { "extends": ["../.eslintrc.js"], "rules": { - "no-magic-numbers": 0 + "no-magic-numbers": 0, + "react/no-multi-comp": 0, + "react/prop-types": 0 } } diff --git a/stories/canvas-bar.stories.js b/stories/canvas-bar.stories.tsx similarity index 96% rename from stories/canvas-bar.stories.js rename to stories/canvas-bar.stories.tsx index ebbac28b5..bcd88f876 100644 --- a/stories/canvas-bar.stories.js +++ b/stories/canvas-bar.stories.tsx @@ -1,25 +1,31 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ import { fromJS } from "immutable"; import React from "react"; -import { VictoryBar } from "victory-bar"; -import { CanvasBar, CanvasGroup } from "victory-canvas"; -import { VictoryChart } from "victory-chart"; -import { VictoryLabel, VictoryTheme } from "victory-core"; -import { VictoryGroup } from "victory-group"; -import { VictoryPolarAxis } from "victory-polar-axis"; -import { VictoryStack } from "victory-stack"; -import { VictoryTooltip } from "victory-tooltip"; +import { Meta } from "@storybook/react"; + +import { VictoryBar } from "../packages/victory-bar"; +import { CanvasBar, CanvasGroup } from "../packages/victory-canvas"; +import { VictoryChart } from "../packages/victory-chart"; +import { + VictoryLabel, + VictoryLabelStyleObject, + VictoryTheme, +} from "../packages/victory-core"; +import { VictoryGroup } from "../packages/victory-group"; +import { VictoryPolarAxis } from "../packages/victory-polar-axis"; +import { VictoryStack } from "../packages/victory-stack"; +import { VictoryTooltip } from "../packages/victory-tooltip"; import { getData, getDataWithBaseline, getMixedData } from "./data"; +import { storyContainer } from "./decorators"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/Canvas Container/Bar", + component: VictoryBar, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -29,14 +35,9 @@ const defaultChartProps = { theme: VictoryTheme.material, }; -export default { - title: "Victory Canvas/Bar", - component: VictoryBar, -}; - export const DefaultRendering = () => { return ( -
+ <> } dataComponent={} @@ -47,13 +48,13 @@ export const DefaultRendering = () => { dataComponent={} style={parentStyle} /> -
+ ); }; export const Theme = () => { return ( -
+ <> } @@ -126,13 +127,13 @@ export const Theme = () => { /> -
+ ); }; export const Alignment = () => { return ( -
+ <> } @@ -213,13 +214,13 @@ export const Alignment = () => { alignment="end" /> -
+ ); }; export const BarRatio = () => { return ( -
+ <> } @@ -348,13 +349,13 @@ export const BarRatio = () => { barRatio={1.5} /> -
+ ); }; export const BarWidth = () => { return ( -
+ <> } @@ -387,13 +388,13 @@ export const BarWidth = () => { barWidth={({ datum }) => datum.x * 4} /> -
+ ); }; export const CornerRadius = () => { return ( -
+ <> } @@ -522,13 +523,13 @@ export const CornerRadius = () => { tickValues={[0, 45, 90, 135, 180, 225, 270, 315]} /> -
+ ); }; export const Data = () => { return ( -
+ <> } @@ -585,13 +586,13 @@ export const Data = () => { ])} /> -
+ ); }; export const Labels = () => { return ( -
+ <> } @@ -605,7 +606,7 @@ export const Labels = () => { groupComponent={} dataComponent={} data={getData(7)} - labels={["", "", "three", "four", 5, "six"]} + labels={["", "", "three", "four", "5", "six"]} /> @@ -635,13 +636,13 @@ export const Labels = () => { /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> } @@ -683,7 +684,7 @@ export const Tooltips = () => { groupComponent={} dataComponent={} data={getData(5)} - labels={["one", "two", 3, "wow, four tooltips", "five"]} + labels={["one", "two", "3", "wow, four tooltips", "five"]} labelComponent={} /> @@ -693,18 +694,22 @@ export const Tooltips = () => { dataComponent={} data={getData(5)} style={{ data: { width: 20 } }} - labels={["one", "two", 3, "wow, four tooltips", "five"]} + labels={["one", "two", "3", "wow, four tooltips", "five"]} labelComponent={} /> -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), +}; + export const Style = () => { return ( -
+ <> } @@ -726,9 +731,7 @@ export const Style = () => { groupComponent={} dataComponent={} style={{ - labels: { - fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), - }, + labels: labelStyle, data: { stroke: ({ datum }) => (datum.y > 75 ? "red" : "transparent"), strokeWidth: 3, @@ -744,13 +747,13 @@ export const Style = () => { ]} /> -
+ ); }; export const StackedBars = () => { return ( -
+ <> datum._y1.toPrecision(2)}> { /> -
+ ); }; export const GroupedBars = () => { return ( -
+ <> datum.x}> { -
+ ); }; export const PolarBars = () => { return ( -
+ <> } @@ -1363,6 +1366,6 @@ export const PolarBars = () => { -
+ ); }; diff --git a/stories/canvas-line.stories.js b/stories/canvas-line.stories.tsx similarity index 87% rename from stories/canvas-line.stories.js rename to stories/canvas-line.stories.tsx index e73d2b072..5c8f56162 100644 --- a/stories/canvas-line.stories.js +++ b/stories/canvas-line.stories.tsx @@ -1,20 +1,23 @@ -/* eslint-disable react/no-multi-comp */ import React from "react"; -import { CanvasGroup, CanvasCurve } from "victory-canvas"; -import { VictoryChart } from "victory-chart"; -import { VictoryTheme, VictoryLabel } from "victory-core"; -import { VictoryLine } from "victory-line"; -import { VictoryStack } from "victory-stack"; +import { Meta } from "@storybook/react"; + +import { CanvasGroup, CanvasCurve } from "../packages/victory-canvas"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryTheme, VictoryLabel } from "../packages/victory-core"; +import { VictoryLine } from "../packages/victory-line"; +import { VictoryStack } from "../packages/victory-stack"; import { getData, getMixedData } from "./data"; +import { storyContainer } from "./decorators"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/Canvas Container/VictoryLine", + component: VictoryLine, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -26,7 +29,7 @@ const defaultChartProps = { export const DefaultRendering = () => { return ( -
+ <> } groupComponent={} @@ -50,13 +53,13 @@ export const DefaultRendering = () => { groupComponent={} /> -
+ ); }; export const Theme = () => { return ( -
+ <> { /> -
+ ); }; @@ -154,7 +157,7 @@ export const Interpolation = () => { ); return ( -
+ <> {[ "basis", "cardinal", @@ -167,11 +170,6 @@ export const Interpolation = () => { "stepAfter", "stepBefore", ].map((interpolation) => makeInterpolationChart(interpolation))} -
+ ); }; - -export default { - title: "Victory Canvas/Line", - component: VictoryLine, -}; diff --git a/stories/canvas-scatter.stories.js b/stories/canvas-scatter.stories.tsx similarity index 93% rename from stories/canvas-scatter.stories.js rename to stories/canvas-scatter.stories.tsx index e16a16cad..048cd4c5b 100644 --- a/stories/canvas-scatter.stories.js +++ b/stories/canvas-scatter.stories.tsx @@ -1,17 +1,30 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ - +import { Meta } from "@storybook/react"; import { fromJS } from "immutable"; import React from "react"; -import { CanvasGroup, CanvasPoint } from "victory-canvas"; -import { VictoryChart } from "victory-chart"; -import { VictoryTheme } from "victory-core"; -import { VictoryScatter } from "victory-scatter"; -import { VictoryStack } from "victory-stack"; -import { VictoryTooltip } from "victory-tooltip"; + +import { CanvasGroup, CanvasPoint } from "../packages/victory-canvas"; +import { VictoryChart } from "../packages/victory-chart"; +import { + ScatterSymbolType, + VictoryLabelStyleObject, + VictoryTheme, +} from "../packages/victory-core"; +import { VictoryScatter } from "../packages/victory-scatter"; +import { VictoryStack } from "../packages/victory-stack"; +import { VictoryTooltip } from "../packages/victory-tooltip"; import { getData, getMixedData } from "./data"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/Canvas Container/Scatter", + component: VictoryScatter, + tags: ["autodocs"], + decorators: [storyContainer], +}; + +export default meta; -const SYMBOLS = [ +const SYMBOLS: ScatterSymbolType[] = [ "circle", "cross", "diamond", @@ -23,14 +36,6 @@ const SYMBOLS = [ "triangleUp", ]; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", -}; - const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -40,14 +45,9 @@ const defaultChartProps = { theme: VictoryTheme.material, }; -export default { - title: "Victory Canvas/Scatter", - component: VictoryScatter, -}; - export const DefaultRendering = () => { return ( -
+ <> } @@ -71,13 +71,13 @@ export const DefaultRendering = () => { dataComponent={} /> -
+ ); }; export const Theme = () => { return ( -
+ <> { /> -
+ ); }; export const Symbols = () => { return SYMBOLS.map((symbol) => ( -
+
} @@ -185,7 +185,7 @@ export const Symbols = () => { export const FunctionalSymbols = () => { return ( -
+ <> } @@ -230,13 +230,13 @@ export const FunctionalSymbols = () => { size={8} /> -
+ ); }; export const BubbleCharts = () => { return ( -
+ <> } @@ -308,13 +308,13 @@ export const BubbleCharts = () => { symbol="plus" /> -
+ ); }; export const DataAccessors = () => { return ( -
+ <> } @@ -409,13 +409,13 @@ export const DataAccessors = () => { y={(d) => Math.sin(2 * Math.PI * d.x)} /> -
+ ); }; export const Labels = () => { return ( -
+ <> } @@ -429,7 +429,7 @@ export const Labels = () => { groupComponent={} dataComponent={} data={getData(7)} - labels={["", "", "three", "four", 5, "six"]} + labels={["", "", "three", "four", "5", "six"]} /> @@ -445,13 +445,13 @@ export const Labels = () => { ]} /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> } @@ -484,17 +484,21 @@ export const Tooltips = () => { groupComponent={} dataComponent={} data={getData(5)} - labels={["one", "two", 3, "wow, four tooltips", "five"]} + labels={["one", "two", "3", "wow, four tooltips", "five"]} labelComponent={} /> -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), +}; + export const Styles = () => { return ( -
+ <> } @@ -512,9 +516,7 @@ export const Styles = () => { groupComponent={} dataComponent={} style={{ - labels: { - fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), - }, + labels: labelStyle, data: { fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), }, @@ -528,13 +530,13 @@ export const Styles = () => { ]} /> -
+ ); }; export const Stacked = () => { return ( -
+ <> datum.x}> { /> -
+ ); }; diff --git a/stories/data.js b/stories/data.ts similarity index 73% rename from stories/data.js rename to stories/data.ts index 0a8c9e829..0c5e749c7 100644 --- a/stories/data.js +++ b/stories/data.ts @@ -1,19 +1,7 @@ -/* eslint-disable no-magic-numbers*/ import { range } from "lodash"; import seedrandom from "seedrandom"; -// const polarData = [ -// { x: 45, y: 2 }, -// { x: 90, y: 3 }, -// { x: 135, y: 5 }, -// { x: 180, y: 4 }, -// { x: 225, y: 7 }, -// { x: 270, y: 2 }, -// { x: 315, y: 4 }, -// { x: 360, y: 7 } -// ]; - -const getTimeData = (num, seed = "getData") => { +const getTimeData = (num: number, seed = "getData") => { const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * 10; const current = 1523389495000; @@ -25,13 +13,13 @@ const getTimeData = (num, seed = "getData") => { }); }; -const getData = (num, seed = "getData", max = 10) => { +const getData = (num: number, seed = "getData", max = 10) => { const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * max; return range(num).map((v) => ({ x: v + 1, y: rand() })); }; -const getDataWithBaseline = (num, seed = "getData", max = 10) => { +const getDataWithBaseline = (num: number, seed = "getData", max = 10) => { const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * max; return range(num).map((v) => ({ x: v + 1, y: rand(), y0: rand() })); @@ -52,31 +40,31 @@ const getDescendingSmallData = () => { ]; }; -const getStringData = (num, seed = "getData") => { +const getStringData = (num: number, seed = "getData") => { const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * 10; return range(num).map((v) => ({ x: `#${v + 1}`, y: rand() })); }; -const getLogData = (num, seed = "getData") => { +const getLogData = (num: number, seed = "getData") => { const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * 100000; return range(num).map((v) => ({ x: v + 1, y: rand() })); }; -const getMixedData = (num, seed = "getMixedData") => { +const getMixedData = (num: number, seed = "getMixedData") => { const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * 10 - 5; return range(num).map((v) => ({ x: v + 1, y: rand() })); }; -const getFourQuadrantData = (num, seed = "getMixedData") => { +const getFourQuadrantData = (num: number, seed = "getMixedData") => { const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * 10 - 5; return range(num).map((v) => ({ x: v - Math.round(num / 2), y: rand() })); }; -const getArrayData = (num, samples = 10) => { +const getArrayData = (num: number, samples = 10) => { const seed = "getData"; const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * 10; @@ -88,7 +76,7 @@ const getArrayData = (num, samples = 10) => { }); }; -const getStackedData = (num, samples, useStrings) => { +const getStackedData = (num: number, samples, useStrings) => { return range(num).map(() => { return useStrings ? getStringData(samples) : getData(samples); }); diff --git a/stories/decorators.js b/stories/decorators.js deleted file mode 100644 index f2274f9bc..000000000 --- a/stories/decorators.js +++ /dev/null @@ -1,25 +0,0 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ -import React from "react"; -import { VictoryChart } from "victory-chart"; -import { VictoryPolarAxis } from "victory-polar-axis"; -import { VictoryTheme } from "victory-core"; - -const getChartDecorator = (props) => { - return (story) => { - return {story()}; - }; -}; - -const getPolarChartDecorator = (props) => { - return (story) => { - return ( - - {story()} - - - ); - }; -}; - -export { getChartDecorator, getPolarChartDecorator }; diff --git a/stories/decorators.tsx b/stories/decorators.tsx new file mode 100644 index 000000000..295dae388 --- /dev/null +++ b/stories/decorators.tsx @@ -0,0 +1,13 @@ +import React from "react"; + +const containerStyle: React.CSSProperties = { + display: "flex", + flexDirection: "row", + flexWrap: "wrap", + alignItems: "center", + justifyContent: "center", +}; + +export const storyContainer = (story) => ( +
{story()}
+); diff --git a/stories/victory-area.stories.js b/stories/victory-area.stories.tsx similarity index 91% rename from stories/victory-area.stories.js rename to stories/victory-area.stories.tsx index b433a5120..82804b0ec 100644 --- a/stories/victory-area.stories.js +++ b/stories/victory-area.stories.tsx @@ -1,11 +1,17 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ +import { Meta } from "@storybook/react"; import React from "react"; -import { VictoryStack } from "victory-stack"; -import { VictoryArea, Area } from "victory-area"; -import { VictoryTooltip } from "victory-tooltip"; -import { VictoryTheme, VictoryLabel } from "victory-core"; -import { VictoryChart } from "victory-chart"; +import { fromJS } from "immutable"; +import styled from "styled-components"; + +import { VictoryStack } from "../packages/victory-stack"; +import { VictoryArea, Area } from "../packages/victory-area"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { + VictoryTheme, + VictoryLabel, + VictoryLabelStyleObject, +} from "../packages/victory-core"; +import { VictoryChart } from "../packages/victory-chart"; import { getData, getMixedData, @@ -13,17 +19,17 @@ import { getLogData, getDataWithBaseline, } from "./data"; -import { fromJS } from "immutable"; -import styled from "styled-components"; +import { storyContainer } from "./decorators"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryArea", + component: VictoryArea, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -33,21 +39,17 @@ const defaultChartProps = { theme: VictoryTheme.material, }; -export default { - title: "VictoryArea", - component: VictoryArea, -}; export const DefaultRendering = () => { return ( -
+ <> -
+ ); }; export const Theme = () => { return ( -
+ <> @@ -72,7 +74,7 @@ export const Theme = () => { -
+ ); }; export const Interpolation = () => { @@ -89,7 +91,7 @@ export const Interpolation = () => { ); return ( -
+ <> {[ "basis", "cardinal", @@ -102,7 +104,7 @@ export const Interpolation = () => { "stepAfter", "stepBefore", ].map((interpolation) => makeInterpolationChart(interpolation))} -
+ ); }; export const PolarInterpolation = () => { @@ -119,17 +121,17 @@ export const PolarInterpolation = () => { ); return ( -
+ <> {["basis", "cardinal", "catmullRom", "linear"].map((interpolation) => makeInterpolationChart(interpolation), )} -
+ ); }; export const DataAccessors = () => { return ( -
+ <> { ])} /> -
+ ); }; export const PlottingFunctions = () => { return ( -
+ <> Math.sin(2 * Math.PI * d.x)} /> @@ -231,13 +233,13 @@ export const PlottingFunctions = () => { y0={(d) => Math.sin(Math.PI * d.x) - 0.5} /> -
+ ); }; export const Labels = () => { return ( -
+ <> { @@ -261,13 +263,13 @@ export const Labels = () => { ]} /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> { } /> -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), +}; + export const Styles = () => { return ( -
+ <> { (datum.x === "Dog" ? "red" : "black"), - }, + labels: labelStyle, }} labels={({ datum }) => datum.x} data={[ @@ -334,13 +338,13 @@ export const Styles = () => { ]} /> -
+ ); }; export const Stacked = () => { return ( -
+ <> datum.x}> @@ -390,12 +394,12 @@ export const Stacked = () => { -
+ ); }; export const TimeScale = () => { return ( -
+ <> { -
+ ); }; export const LogScale = () => { return ( -
+ <> { -
+ ); }; export const Polar = () => { return ( -
+ <> @@ -493,7 +497,7 @@ export const Polar = () => { -
+ ); }; @@ -503,12 +507,12 @@ const StyledArea = styled(Area)` export const DisableInlineStyles = () => { return ( -
+ <> } /> -
+ ); }; diff --git a/stories/victory-axis.stories.js b/stories/victory-axis.stories.tsx similarity index 88% rename from stories/victory-axis.stories.js rename to stories/victory-axis.stories.tsx index 184bc477e..3cce4946e 100644 --- a/stories/victory-axis.stories.js +++ b/stories/victory-axis.stories.tsx @@ -1,23 +1,25 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ +import { Meta } from "@storybook/react"; import React from "react"; -import { VictoryAxis } from "victory-axis"; -import { VictoryBar } from "victory-bar"; -import { VictoryBrushLine } from "victory-brush-line"; -import { VictoryScatter } from "victory-scatter"; -import { VictoryTheme } from "victory-core"; -import { VictoryChart } from "victory-chart"; import { range } from "lodash"; import seedrandom from "seedrandom"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +import { VictoryAxis } from "../packages/victory-axis"; +import { VictoryBar } from "../packages/victory-bar"; +import { VictoryBrushLine } from "../packages/victory-brush-line"; +import { VictoryScatter } from "../packages/victory-scatter"; +import { VictoryTheme } from "../packages/victory-core"; +import { VictoryChart } from "../packages/victory-chart"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryAxis", + component: VictoryAxis, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -45,25 +47,20 @@ const getRandomValues = (num, seed = "random") => { return result.sort((a, b) => a - b); }; -export default { - title: "VictoryAxis", - component: VictoryAxis, -}; - export const DefaultRendering = () => { return ( -
+ <> -
+ ); }; export const AxisValue = () => { return ( -
+ <> @@ -72,7 +69,7 @@ export const AxisValue = () => { - + { -
+ ); }; export const TickValues = () => { return ( -
+ <> @@ -138,13 +135,13 @@ export const TickValues = () => { orientation="right" /> -
+ ); }; export const TickFormat = () => { return ( -
+ <> { `#${t}`} /> -
+ ); }; export const WithDomain = () => { return ( -
+ <> { -
+ ); }; export const FixLabelOverlap = () => { return ( -
+ <> { scale="time" tickValues={getTimeValues(30)} /> -
+ ); }; export const Offsets = () => { return ( -
+ <> -
+ ); }; export const Orientation = () => { return ( -
+ <> { -
+ ); }; export const Style = () => { return ( -
+ <> { }} /> -
+ ); }; export const WithMultilineLabels = () => { return ( -
+ <> { orientation="top" /> -
+ ); }; export const BrushAxis = () => { return ( -
+ <> } /> -
+ ); }; export const BrushAxisWithDomain = () => { return ( -
+ <> } /> -
+ ); }; export const BrushAxisGridLine = () => { return ( -
+ <> } /> -
+ ); }; export const BrushAxisGridLineWithDomain = () => { return ( -
+ <> } /> -
+ ); }; export const BrushAxisGridLineStyles = () => { return ( -
+ <> { /> } /> -
+ ); }; export const BrushAxisGridLineWidth = () => { return ( -
+ <> { /> } /> -
+ ); }; diff --git a/stories/victory-bar.stories.js b/stories/victory-bar.stories.tsx similarity index 94% rename from stories/victory-bar.stories.js rename to stories/victory-bar.stories.tsx index 7baa52c7e..68bbf6c49 100644 --- a/stories/victory-bar.stories.js +++ b/stories/victory-bar.stories.tsx @@ -1,13 +1,19 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ +import { Meta } from "@storybook/react"; import React, { useRef, useEffect, useCallback } from "react"; -import { VictoryBar, Bar } from "victory-bar"; -import { VictoryChart } from "victory-chart"; -import { VictoryGroup } from "victory-group"; -import { VictoryStack } from "victory-stack"; -import { VictoryTooltip } from "victory-tooltip"; -import { VictoryTheme, VictoryLabel } from "victory-core"; -import { VictoryPolarAxis } from "victory-polar-axis"; +import { fromJS } from "immutable"; +import styled from "styled-components"; + +import { VictoryBar, Bar } from "../packages/victory-bar"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryGroup } from "../packages/victory-group"; +import { VictoryStack } from "../packages/victory-stack"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { + VictoryTheme, + VictoryLabel, + VictoryLabelStyleObject, +} from "../packages/victory-core"; +import { VictoryPolarAxis } from "../packages/victory-polar-axis"; import { getData, getStackedData, @@ -16,17 +22,17 @@ import { getLogData, getDataWithBaseline, } from "./data"; -import { fromJS } from "immutable"; -import styled from "styled-components"; +import { storyContainer } from "./decorators"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryBar", + component: VictoryBar, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -36,23 +42,18 @@ const defaultChartProps = { theme: VictoryTheme.material, }; -export default { - title: "VictoryBar", - component: VictoryBar, -}; - export const DefaultRendering = () => { return ( -
+ <> -
+ ); }; export const Theme = () => { return ( -
+ <> @@ -77,13 +78,13 @@ export const Theme = () => { -
+ ); }; export const Alignment = () => { return ( -
+ <> @@ -114,13 +115,13 @@ export const Alignment = () => { -
+ ); }; export const BarRatio = () => { return ( -
+ <> @@ -169,13 +170,13 @@ export const BarRatio = () => { -
+ ); }; export const BarWidth = () => { return ( -
+ <> @@ -188,13 +189,13 @@ export const BarWidth = () => { datum.x * 4} /> -
+ ); }; export const CornerRadius = () => { return ( -
+ <> @@ -283,13 +284,12 @@ export const CornerRadius = () => { tickValues={[0, 45, 90, 135, 180, 225, 270, 315]} /> -
+ ); }; export const GetPath = () => { const verticalPathFn = (props) => { - // eslint-disable-next-line react/prop-types const { x0, x1, y0, y1 } = props; return `M ${x0}, ${y0} L ${(x1 + x0) / 2}, ${y1} @@ -298,7 +298,6 @@ export const GetPath = () => { }; const horizontalPathFn = (props) => { - // eslint-disable-next-line react/prop-types const { x0, x1, y0, y1 } = props; return `M ${x0}, ${y1} L ${x1}, ${(y0 + y1) / 2} @@ -307,20 +306,20 @@ export const GetPath = () => { }; return ( -
+ <> -
+ ); }; export const Data = () => { return ( -
+ <> { ])} /> -
+ ); }; export const Labels = () => { return ( -
+ <> `x: ${datum.x}`} /> @@ -403,13 +402,13 @@ export const Labels = () => { /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> { } /> @@ -449,18 +448,22 @@ export const Tooltips = () => { } /> -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), +}; + export const Style = () => { return ( -
+ <> datum.y} @@ -478,9 +481,7 @@ export const Style = () => { (datum.x === "Dog" ? "red" : "black"), - }, + labels: labelStyle, data: { stroke: ({ datum }) => (datum.y > 75 ? "red" : "transparent"), strokeWidth: 3, @@ -496,13 +497,13 @@ export const Style = () => { ]} /> -
+ ); }; export const Scale = () => { return ( -
+ <> { -
+ ); }; export const StackedBars = () => { return ( -
+ <> datum._y1.toPrecision(2)}> @@ -653,13 +654,13 @@ export const StackedBars = () => { -
+ ); }; export const GroupedBars = () => { return ( -
+ <> datum.x}> @@ -802,13 +803,13 @@ export const GroupedBars = () => { -
+ ); }; export const PolarBars = () => { return ( -
+ <> @@ -891,13 +892,13 @@ export const PolarBars = () => { -
+ ); }; export const Sorting = () => { return ( -
+ <> { sortKey={"sort"} /> -
+ ); }; export const Regressions = () => { return ( -
+ <> @@ -987,13 +988,13 @@ export const Regressions = () => { -
+ ); }; export const Domain = () => { return ( -
+ <> { -
+ ); }; @@ -1018,30 +1019,22 @@ const StyledBar = styled(Bar)` export const DisableInlineStyles = () => { return ( -
+ <> } /> -
+ ); }; export const FocusWithRefs = () => { - const barsRef = useRef(null); - - const getMap = () => { - if (!barsRef.current) { - // Initialize the Map on first usage. - barsRef.current = new Map(); - } - return barsRef.current; - }; + const barsRef = useRef(new Map()); const focusOnBar = (id) => { - const map = getMap(); + const map = barsRef.current; const node = map.get(id); node.focus(); }; @@ -1054,14 +1047,14 @@ export const FocusWithRefs = () => { }, []); const setRef = useCallback((node) => { - const map = getMap(); + const map = barsRef.current; if (node) { map.set(node.attributes.index.value, node); } }, []); return ( -
+ <> { dataComponent={} /> -
+ ); }; diff --git a/stories/victory-box-plot.stories.js b/stories/victory-box-plot.stories.tsx similarity index 91% rename from stories/victory-box-plot.stories.js rename to stories/victory-box-plot.stories.tsx index 38f982603..405236cc9 100644 --- a/stories/victory-box-plot.stories.js +++ b/stories/victory-box-plot.stories.tsx @@ -1,14 +1,29 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ +import styled from "styled-components"; +import { Meta } from "@storybook/react"; import React from "react"; -import { VictoryBoxPlot } from "victory-box-plot"; -import { VictoryChart } from "victory-chart"; -import { VictoryTooltip } from "victory-tooltip"; -import { VictoryTheme, Box, Whisker, LineSegment } from "victory-core"; import { range } from "lodash"; import seedrandom from "seedrandom"; + +import { VictoryBoxPlot } from "../packages/victory-box-plot"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { + VictoryTheme, + Box, + Whisker, + LineSegment, +} from "../packages/victory-core"; import { getArrayData } from "./data"; -import styled from "styled-components"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryBoxPlot", + component: VictoryBoxPlot, + tags: ["autodocs"], + decorators: [storyContainer], +}; + +export default meta; const getRepeatData = (num, samples = 10) => { const seed = "getRepeatData"; @@ -20,7 +35,7 @@ const getRepeatData = (num, samples = 10) => { y: rand(), })); return memo.concat(sampleData); - }, []); + }, [] as any); }; const getData = (num, seed = "getData") => { @@ -36,14 +51,6 @@ const getData = (num, seed = "getData") => { }); }; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", -}; - const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -53,14 +60,9 @@ const defaultChartProps = { domainPadding: 25, }; -export default { - title: "VictoryBoxPlot", - component: VictoryBoxPlot, -}; - export const DefaultRendering = () => { return ( -
+ <> @@ -69,13 +71,13 @@ export const DefaultRendering = () => { -
+ ); }; export const BoxWidth = () => { return ( -
+ <> @@ -94,13 +96,13 @@ export const BoxWidth = () => { -
+ ); }; export const WhiskerWidth = () => { return ( -
+ <> @@ -113,13 +115,13 @@ export const WhiskerWidth = () => { -
+ ); }; export const Data = () => { return ( -
+ <> { -
+ ); }; export const Labels = () => { return ( -
+ <> @@ -222,13 +224,13 @@ export const Labels = () => { }} /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> { }} /> -
+ ); }; export const Style = () => { return ( -
+ <> { }} /> -
+ ); }; export const Domain = () => { return ( -
+ <> { -
+ ); }; @@ -341,7 +343,7 @@ const StyledLineSegment = styled(LineSegment)` export const DisableInlineStyles = () => { return ( -
+ <> @@ -355,6 +357,6 @@ export const DisableInlineStyles = () => { medianComponent={} /> -
+ ); }; diff --git a/stories/victory-candlestick.stories.js b/stories/victory-candlestick.stories.tsx similarity index 92% rename from stories/victory-candlestick.stories.js rename to stories/victory-candlestick.stories.tsx index 89ed488ba..a98b0c39b 100644 --- a/stories/victory-candlestick.stories.js +++ b/stories/victory-candlestick.stories.tsx @@ -1,15 +1,28 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ +import { Meta } from "@storybook/react"; import React from "react"; -import { VictoryCandlestick, Candle } from "victory-candlestick"; -import { VictoryChart } from "victory-chart"; -import { VictoryTooltip } from "victory-tooltip"; -import { VictoryTheme } from "victory-core"; import { range } from "lodash"; import seedrandom from "seedrandom"; import { fromJS } from "immutable"; import styled from "styled-components"; +import { VictoryCandlestick, Candle } from "../packages/victory-candlestick"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { + VictoryLabelStyleObject, + VictoryTheme, +} from "../packages/victory-core"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryCandlestick", + component: VictoryCandlestick, + tags: ["autodocs"], + decorators: [storyContainer], +}; + +export default meta; + const sampleData = [ { x: 1, open: 9, close: 30, high: 56, low: 7 }, { x: 2, open: 80, close: 40, high: 120, low: 10 }, @@ -45,14 +58,6 @@ const getData = (num, seed = "getData") => { }); }; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", -}; - const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -62,14 +67,9 @@ const defaultChartProps = { domainPadding: 25, }; -export default { - title: "VictoryCandlestick", - component: VictoryCandlestick, -}; - export const DefaultRendering = () => { return ( -
+ <> @@ -78,13 +78,13 @@ export const DefaultRendering = () => { -
+ ); }; export const CandleColors = () => { return ( -
+ <> { candleColors={{ positive: "#8BC34A", negative: "#C62828" }} /> -
+ ); }; export const WickStrokeWidth = () => { return ( -
+ <> @@ -119,13 +119,13 @@ export const WickStrokeWidth = () => { wickStrokeWidth={2} /> -
+ ); }; export const Data = () => { return ( -
+ <> { ])} /> -
+ ); }; export const Labels = () => { return ( -
+ <> { labelOrientation={{ low: "left", high: "right" }} /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> { labelOrientation={{ low: "left", high: "right" }} /> -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => (datum.x === 3 ? "red" : "black"), +}; + export const Style = () => { return ( -
+ <> { (datum.x === 3 ? "red" : "black"), - }, + labels: labelStyle, data: { stroke: ({ datum }) => datum.open > datum.close ? "red" : "black", @@ -310,13 +312,13 @@ export const Style = () => { data={getData(7)} /> -
+ ); }; export const Scale = () => { return ( -
+ <> { labels={({ datum }) => datum.x.getFullYear()} /> -
+ ); }; export const Domain = () => { return ( -
+ <> { ])} /> -
+ ); }; @@ -392,7 +394,7 @@ const StyledCandle = styled(Candle)` export const DisableInlineStyles = () => { return ( -
+ <> @@ -402,6 +404,6 @@ export const DisableInlineStyles = () => { dataComponent={} /> -
+ ); }; diff --git a/stories/victory-chart.stories.js b/stories/victory-chart.stories.tsx similarity index 90% rename from stories/victory-chart.stories.js rename to stories/victory-chart.stories.tsx index 931bb25eb..7a1871666 100644 --- a/stories/victory-chart.stories.js +++ b/stories/victory-chart.stories.tsx @@ -1,47 +1,44 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ import React from "react"; -import { VictoryChart } from "victory-chart"; -import { VictoryAxis } from "victory-axis"; -import { VictoryBar } from "victory-bar"; -import { VictoryBrushContainer } from "victory-brush-container"; -import { VictoryCursorContainer } from "victory-cursor-container"; -import { VictoryGroup } from "victory-group"; -import { VictoryScatter } from "victory-scatter"; -import { VictoryLine } from "victory-line"; -import { VictoryBoxPlot } from "victory-box-plot"; -import { VictoryPolarAxis } from "victory-polar-axis"; -import { VictoryStack } from "victory-stack"; -import { VictoryTheme } from "victory-core"; -import { VictoryZoomContainer } from "victory-zoom-container"; + +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryAxis } from "../packages/victory-axis"; +import { VictoryBar } from "../packages/victory-bar"; +import { VictoryBrushContainer } from "../packages/victory-brush-container"; +import { VictoryCursorContainer } from "../packages/victory-cursor-container"; +import { VictoryGroup } from "../packages/victory-group"; +import { VictoryScatter } from "../packages/victory-scatter"; +import { VictoryLine } from "../packages/victory-line"; +import { VictoryBoxPlot } from "../packages/victory-box-plot"; +import { VictoryPolarAxis } from "../packages/victory-polar-axis"; +import { VictoryStack } from "../packages/victory-stack"; +import { VictoryTheme } from "../packages/victory-core"; +import { VictoryZoomContainer } from "../packages/victory-zoom-container"; import { getData, getFourQuadrantData, getArrayData } from "./data"; +import { Meta } from "@storybook/react"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryChart", + component: VictoryChart, + tags: ["autodocs"], + decorators: [storyContainer], +}; + +export default meta; const dependentAxisTheme = { ...VictoryTheme.material, ...{ dependentAxis: { orientation: "right" } }, }; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", -}; - const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; -export default { - title: "VictoryChart", - component: VictoryChart, -}; - export const DefaultRendering = () => { return ( -
+ <> @@ -50,13 +47,13 @@ export const DefaultRendering = () => { -
+ ); }; export const Axes = () => { return ( -
+ <> @@ -72,13 +69,13 @@ export const Axes = () => { -
+ ); }; export const DomainPadding = () => { return ( -
+ <> @@ -110,13 +107,13 @@ export const DomainPadding = () => { > -
+ ); }; export const Domain = () => { return ( -
+ <> @@ -154,13 +151,13 @@ export const Domain = () => { > -
+ ); }; export const DomainFromData = () => { return ( -
+ <> { 5 + 3 * Math.sin(Math.PI * d.x)} /> -
+ ); }; export const Style = () => { return ( -
+ <> { -
+ ); }; export const Orientations = () => { return ( -
+ <> { ]} /> -
+ ); }; export const VictoryBrushContainerDefault = () => { return ( -
+ <> } /> -
+ ); }; export const VictoryBrushContainerWithDomain = () => { return ( -
+ <> } /> -
+ ); }; export const VictoryBrushContainerWithDomainHorizontal = () => { return ( -
+ <> { } /> -
+ ); }; export const VictoryBrushContainerWithBrushStyle = () => { return ( -
+ <> { /> } /> -
+ ); }; export const VictoryCursorContainerDefault = () => { return ( -
+ <> { /> } /> -
+ ); }; export const VictoryCursorContainerHorizontal = () => { return ( -
+ <> { /> } /> -
+ ); }; export const VictoryZoomContainerDefault = () => { return ( -
+ <> { ]} /> -
+ ); }; diff --git a/stories/victory-container.stories.js b/stories/victory-container.stories.tsx similarity index 77% rename from stories/victory-container.stories.js rename to stories/victory-container.stories.tsx index 1db9ca051..b38014710 100644 --- a/stories/victory-container.stories.js +++ b/stories/victory-container.stories.tsx @@ -1,18 +1,19 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ import React from "react"; -import { VictoryChart } from "victory-chart"; -import { VictoryLine } from "victory-line"; -import { VictoryLabel, VictoryContainer } from "victory-core"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryLine } from "../packages/victory-line"; +import { VictoryLabel, VictoryContainer } from "../packages/victory-core"; +import { Meta } from "@storybook/react"; +import { storyContainer } from "./decorators"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryContainer", + component: VictoryContainer, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const style = { parent: { border: "1px solid #ccc", margin: "1%", maxWidth: "45%" }, }; @@ -21,14 +22,9 @@ const responsiveStyle = { parent: { border: "1px solid #ccc", margin: "1%", maxWidth: "30%" }, }; -export default { - title: "VictoryContainer", - component: VictoryContainer, -}; - export const PreserveAspectRatio = () => { return ( -
+
@@ -72,7 +68,7 @@ export const PreserveAspectRatio = () => { export const Responsive = () => { return ( -
+ <> @@ -84,6 +80,6 @@ export const Responsive = () => { -
+ ); }; diff --git a/stories/victory-errorbar.stories.js b/stories/victory-errorbar.stories.tsx similarity index 88% rename from stories/victory-errorbar.stories.js rename to stories/victory-errorbar.stories.tsx index 3f92d73e0..4c40debde 100644 --- a/stories/victory-errorbar.stories.js +++ b/stories/victory-errorbar.stories.tsx @@ -1,16 +1,29 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ import React from "react"; -import { VictoryErrorBar, ErrorBar } from "victory-errorbar"; -import { VictoryChart } from "victory-chart"; -import { VictoryTooltip } from "victory-tooltip"; -import { VictoryTheme } from "victory-core"; import { range } from "lodash"; import seedrandom from "seedrandom"; import { fromJS } from "immutable"; import styled from "styled-components"; -const getData = (num, symmetric, seed = "getData") => { +import { VictoryErrorBar, ErrorBar } from "../packages/victory-errorbar"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { + VictoryLabelStyleObject, + VictoryTheme, +} from "../packages/victory-core"; +import { Meta } from "@storybook/react"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryErrorBar", + component: VictoryErrorBar, + tags: ["autodocs"], + decorators: [storyContainer], +}; + +export default meta; + +const getData = (num: number, symmetric = false, seed = "getData") => { const baseSeed = seedrandom(seed); const rand = () => baseSeed.quick() * 3; return range(num).map((v) => { @@ -23,26 +36,13 @@ const getData = (num, symmetric, seed = "getData") => { }); }; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", -}; - const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; -export default { - title: "VictoryErrorBar", - component: VictoryErrorBar, -}; - export const DefaultRendering = () => { return ( -
+ <> @@ -51,26 +51,26 @@ export const DefaultRendering = () => { -
+ ); }; export const BorderWidth = () => { return ( -
+ <> -
+ ); }; export const Data = () => { return ( -
+ <> { errorY={(d) => [d.error, d.error + 2]} /> -
+ ); }; export const Labels = () => { return ( -
+ <> { errorY={(d) => [d.error, d.error + 2]} /> -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => (datum.errorX > datum.errorY ? "red" : "black"), +}; + export const Style = () => { return ( -
+ <> { - datum.errorX > datum.errorY ? "red" : "black", - }, + labels: labelStyle, data: { stroke: ({ datum }) => datum.errorX > datum.errorY ? "red" : "black", }, }} labels={({ datum }) => datum.x} - data={getData(4, "symmetric")} + data={getData(4, true)} /> -
+ ); }; export const Domain = () => { return ( -
+ <> { ]} /> -
+ ); }; @@ -276,7 +277,7 @@ const StyledErrorBar = styled(ErrorBar)` export const DisableInlineStyles = () => { return ( -
+ <> @@ -286,6 +287,6 @@ export const DisableInlineStyles = () => { dataComponent={} /> -
+ ); }; diff --git a/stories/victory-histogram-data.js b/stories/victory-histogram-data.ts similarity index 100% rename from stories/victory-histogram-data.js rename to stories/victory-histogram-data.ts diff --git a/stories/victory-histogram.stories.js b/stories/victory-histogram.stories.tsx similarity index 89% rename from stories/victory-histogram.stories.js rename to stories/victory-histogram.stories.tsx index 0b3b6209b..640f2bae4 100644 --- a/stories/victory-histogram.stories.js +++ b/stories/victory-histogram.stories.tsx @@ -1,42 +1,42 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ +import { Meta } from "@storybook/react"; import React from "react"; -import { VictoryHistogram } from "victory-histogram"; -import { VictoryChart } from "victory-chart"; -import { VictoryLine } from "victory-line"; -import { VictoryScatter } from "victory-scatter"; -import { VictoryTooltip } from "victory-tooltip"; -import { VictoryStack } from "victory-stack"; -import { VictoryTheme } from "victory-core"; -import { getData } from "./data"; +import styled from "styled-components"; + +import { VictoryHistogram } from "../packages/victory-histogram"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryLine } from "../packages/victory-line"; +import { VictoryScatter } from "../packages/victory-scatter"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { VictoryStack } from "../packages/victory-stack"; +import { + VictoryLabelStyleObject, + VictoryTheme, +} from "../packages/victory-core"; import { data, timeData } from "./victory-histogram-data"; -import { Bar } from "victory-bar"; +import { Bar } from "../packages/victory-bar"; +import * as d3Array from "../packages/victory-vendor/d3-array"; +import * as d3Scale from "../packages/victory-vendor/d3-scale"; +import * as d3Time from "../packages/victory-vendor/d3-time"; -import * as d3Array from "victory-vendor/d3-array"; -import * as d3Scale from "victory-vendor/d3-scale"; -import * as d3Time from "victory-vendor/d3-time"; -import styled from "styled-components"; +import { getData } from "./data"; +import { storyContainer } from "./decorators"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryHistogram", + component: VictoryHistogram, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; -export default { - title: "VictoryHistogram", - component: VictoryHistogram, -}; - export const DefaultRendering = () => { return ( -
+ <> @@ -49,13 +49,13 @@ export const DefaultRendering = () => { -
+ ); }; export const BinSpacing = () => { return ( -
+ <> @@ -68,7 +68,7 @@ export const BinSpacing = () => { -
+ ); }; @@ -94,7 +94,7 @@ export const Data = () => { }); return ( -
+ <> @@ -120,13 +120,13 @@ export const Data = () => { x={({ value }) => value} /> -
+ ); }; export const EmptyData = () => { return ( -
+ <> @@ -155,7 +155,7 @@ export const EmptyData = () => { ]} /> -
+ ); }; @@ -166,7 +166,7 @@ export const DateBins = () => { .nice(); return ( -
+ <> { bins={niceTimeScale.ticks(d3Time.utcYear)} /> -
+ ); }; export const NumericBins = () => { return ( -
+ <> @@ -260,13 +260,18 @@ export const NumericBins = () => { -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => + datum.binnedData.some(({ x }) => x === 22) ? "palevioletred" : "black", +}; + export const Styles = () => { return ( -
+ <> { - datum.binnedData.some(({ x }) => x === 22) - ? "palevioletred" - : "black", - }, + labels: labelStyle, data: { stroke: ({ datum }) => (datum.y > 3 ? "red" : "transparent"), strokeWidth: 3, @@ -294,13 +294,13 @@ export const Styles = () => { labels={["one", "two", "three", "four", "five"]} /> -
+ ); }; export const CornerRadius = () => { return ( -
+ <> @@ -325,7 +325,7 @@ export const CornerRadius = () => { cornerRadius={{ topLeft: 15, bottomRight: 22 }} /> -
+ ); }; @@ -349,20 +349,20 @@ export const GetPath = () => { }; return ( -
+ <> -
+ ); }; export const Labels = () => { return ( -
+ <> { @@ -403,17 +403,17 @@ export const Labels = () => { } /> -
+ ); }; export const Scale = () => { return ( -
+ <> { > -
+ ); }; export const MixedCharts = () => { return ( -
+ <> { ]} /> -
+ ); }; @@ -499,7 +499,7 @@ export const Stacked = () => { ]; return ( -
+ <> {stackedData.map((d, index) => ( @@ -554,13 +554,13 @@ export const Stacked = () => { ))} -
+ ); }; export const Domain = () => { return ( -
+ <> { -
+ ); }; @@ -586,7 +586,7 @@ const StyledBar = styled(Bar)` export const DisableInlineStyles = () => { return ( -
+ <> @@ -596,6 +596,6 @@ export const DisableInlineStyles = () => { dataComponent={} /> -
+ ); }; diff --git a/stories/victory-label.stories.js b/stories/victory-label.stories.tsx similarity index 96% rename from stories/victory-label.stories.js rename to stories/victory-label.stories.tsx index 20c9752e4..2ef1f6e2b 100644 --- a/stories/victory-label.stories.js +++ b/stories/victory-label.stories.tsx @@ -1,24 +1,29 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ +import { Meta } from "@storybook/react"; import React from "react"; -import { VictoryScatter } from "victory-scatter"; -import { VictoryLabel } from "victory-core"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +import { + VictoryScatter, + VictoryScatterProps, +} from "../packages/victory-scatter"; +import { VictoryLabel } from "../packages/victory-core"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryLabel", + component: VictoryLabel, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const style = { parent: { border: "1px solid #ccc", margin: "1%", maxWidth: "25%" }, labels: { padding: 0, fontFamily: "arial" }, data: { fill: "gold" }, }; -const defaultScatterProps = { +const defaultScatterProps: VictoryScatterProps = { style, width: 300, height: 300, @@ -28,25 +33,20 @@ const defaultScatterProps = { size: 5, }; -export default { - title: "VictoryLabel", - component: VictoryLabel, -}; - export const DefaultRendering = () => { return ( -
+ <> } /> -
+ ); }; export const Positioning = () => { return ( -
+ <> } @@ -75,13 +75,13 @@ export const Positioning = () => { datum.x - 20} text="dy function" /> } /> -
+ ); }; export const Anchors = () => { return ( -
+ <> { /> } /> -
+ ); }; export const Styles = () => { return ( -
+ <> { /> } /> -
+ ); }; export const LineHeight = () => { return ( -
+ <> { /> } /> -
+ ); }; export const Angles = () => { return ( -
+ <> { /> } /> -
+ ); }; export const BackgroundStyles = () => { return ( -
+ <> { /> } /> -
+ ); }; export const Inline = () => { return ( -
+ <> { /> } /> -
+ ); }; export const BackgroundPadding = () => { return ( -
+ <> { /> } /> -
+ ); }; diff --git a/stories/victory-legend.stories.js b/stories/victory-legend.stories.tsx similarity index 75% rename from stories/victory-legend.stories.js rename to stories/victory-legend.stories.tsx index 98d6ded3a..87b54d278 100644 --- a/stories/victory-legend.stories.js +++ b/stories/victory-legend.stories.tsx @@ -1,48 +1,45 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ import React from "react"; -import { VictoryAxis } from "victory-axis"; -import { VictoryChart } from "victory-chart"; -import { VictoryLegend } from "victory-legend"; -import { range, isFunction } from "lodash"; +import { VictoryStyleInterface } from "../packages/victory-core"; +import { VictoryAxis } from "../packages/victory-axis"; +import { VictoryChart, VictoryChartProps } from "../packages/victory-chart"; +import { VictoryLegend } from "../packages/victory-legend"; +import { range } from "lodash"; +import { Meta } from "@storybook/react"; +import { storyContainer } from "./decorators"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryLegend", + component: VictoryLegend, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const style = { parent: { border: "1px solid #ccc", margin: "1%", maxWidth: "25%" }, data: { fill: "gold", width: 20 }, }; -const defaultChartProps = { +const defaultChartProps: VictoryChartProps = { style, width: 300, height: 300, domain: [0, 10], }; -export default { - title: "VictoryLegend", - component: VictoryLegend, -}; - -const legendStyle = { +const legendStyle: VictoryStyleInterface = { labels: { fontSize: 14, fontFamily: "Arial" }, border: { fill: "pink", opacity: 0.4 }, }; -const getData = (num, { getName, getSize, getSymbol, getFill } = {}) => { +const getData = (num) => { return range(num).map((v) => ({ - name: isFunction(getName) ? getName(v) : `Series ${v + 1}`, + name: `Series ${v + 1}`, symbol: { - size: isFunction(getSize) ? getSize(v) : 5, - type: isFunction(getSymbol) ? getSymbol(v) : "circle", - fill: isFunction(getFill) ? getFill(v) : undefined, + size: 5, + type: "circle", + fill: undefined, }, })); }; @@ -59,20 +56,20 @@ const Wrapper = ({ children }) => { export const DefaultRendering = () => { return ( -
+ <> -
+ ); }; export const LineHeight = () => { return ( -
+ <> { data={[{ name: "One" }, { name: "Two" }, { name: "Three" }]} /> -
+ ); }; export const Title = () => { return ( -
+ <> { data={getData(5)} title={`TITLE\nmultiline`} itemsPerRow={3} - style={legendStyle} titleOrientation="right" style={{ ...legendStyle, title: { padding: 20 } }} /> -
+ ); }; diff --git a/stories/victory-line.stories.js b/stories/victory-line.stories.tsx similarity index 91% rename from stories/victory-line.stories.js rename to stories/victory-line.stories.tsx index b8c6c542d..bc3b8a2e0 100644 --- a/stories/victory-line.stories.js +++ b/stories/victory-line.stories.tsx @@ -1,23 +1,29 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ -import React from "react"; -import { VictoryStack } from "victory-stack"; -import { VictoryLine, Curve } from "victory-line"; -import { VictoryChart } from "victory-chart"; -import { VictoryTooltip } from "victory-tooltip"; -import { VictoryTheme, VictoryLabel } from "victory-core"; -import { getData, getMixedData, getTimeData, getLogData } from "./data"; +import { Meta } from "@storybook/react"; import { fromJS } from "immutable"; import styled from "styled-components"; +import React from "react"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +import { VictoryStack } from "../packages/victory-stack"; +import { VictoryLine, Curve } from "../packages/victory-line"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { + VictoryTheme, + VictoryLabel, + VictoryLabelStyleObject, +} from "../packages/victory-core"; +import { getData, getMixedData, getTimeData, getLogData } from "./data"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryLine", + component: VictoryLine, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -27,14 +33,9 @@ const defaultChartProps = { theme: VictoryTheme.material, }; -export default { - title: "VictoryLine", - component: VictoryLine, -}; - export const DefaultRendering = () => { return ( -
+ <> @@ -43,13 +44,13 @@ export const DefaultRendering = () => { -
+ ); }; export const Theme = () => { return ( -
+ <> datum.x} /> @@ -74,7 +75,7 @@ export const Theme = () => { -
+ ); }; @@ -92,7 +93,7 @@ export const Interpolation = () => { ); return ( -
+ <> {[ "basis", "cardinal", @@ -105,7 +106,7 @@ export const Interpolation = () => { "stepAfter", "stepBefore", ].map((interpolation) => makeInterpolationChart(interpolation))} -
+ ); }; export const PolarInterpolation = () => { @@ -122,17 +123,17 @@ export const PolarInterpolation = () => { ); return ( -
+ <> {["basis", "cardinal", "catmullRom", "linear"].map((interpolation) => makeInterpolationChart(interpolation), )} -
+ ); }; export const DataAccessors = () => { return ( -
+ <> { ])} /> -
+ ); }; export const PlottingFunctions = () => { return ( -
+ <> Math.sin(2 * Math.PI * d.x)} /> @@ -234,13 +235,13 @@ export const PlottingFunctions = () => { y0={(d) => Math.sin(Math.PI * d.x) - 0.5} /> -
+ ); }; export const Labels = () => { return ( -
+ <> { @@ -264,13 +265,13 @@ export const Labels = () => { ]} /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> { } /> -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), +}; + export const Styles = () => { return ( -
+ <> { (datum.x === "Dog" ? "red" : "black"), - }, + labels: labelStyle, }} labels={({ datum }) => datum.x} data={[ @@ -332,13 +335,13 @@ export const Styles = () => { ]} /> -
+ ); }; export const Stacked = () => { return ( -
+ <> datum.x}> @@ -381,12 +384,12 @@ export const Stacked = () => { -
+ ); }; export const TimeScale = () => { return ( -
+ <> { -
+ ); }; export const LogScale = () => { return ( -
+ <> { -
+ ); }; export const Polar = () => { return ( -
+ <> @@ -484,7 +487,7 @@ export const Polar = () => { -
+ ); }; @@ -495,13 +498,13 @@ const StyledCurve = styled(Curve)` export const DisableInlineStyles = () => { return ( -
+ <> } /> -
+ ); }; diff --git a/stories/victory-pie.stories.js b/stories/victory-pie.stories.tsx similarity index 93% rename from stories/victory-pie.stories.js rename to stories/victory-pie.stories.tsx index c18251b1c..fc0ac49ea 100644 --- a/stories/victory-pie.stories.js +++ b/stories/victory-pie.stories.tsx @@ -1,42 +1,37 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ - import React from "react"; -import { VictoryPie, Slice } from "victory-pie"; -import { VictoryTooltip } from "victory-tooltip"; -import { LineSegment, VictoryTheme, Helpers } from "victory-core"; +import { VictoryPie, Slice } from "../packages/victory-pie"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { LineSegment, VictoryTheme, Helpers } from "../packages/victory-core"; import { fromJS } from "immutable"; import styled from "styled-components"; +import { Meta } from "@storybook/react"; +import { storyContainer } from "./decorators"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryPie", + component: VictoryPie, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; -export default { - title: "VictoryPie", - component: VictoryPie, -}; - export const DefaultRendering = () => { return ( -
+ <> -
+ ); }; export const Data = () => { return ( -
+ <> { { x: "Bird", y: 55 }, ])} /> -
+ ); }; export const Radius = () => { return ( -
+ <> { { x: "Bird", y: 25 }, ]} /> -
+ ); }; export const InnerRadius = () => { return ( -
+ <> { { x: 5, y: 3 }, ]} /> -
+ ); }; export const CornerRadius = () => { return ( -
+ <> { { x: 5, y: 3 }, ]} /> -
+ ); }; export const PadAngle = () => { return ( -
+ <> { { x: 5, y: 3 }, ]} /> -
+ ); }; export const Labels = () => { return ( -
+ <> { labels={({ index }) => `#${index}`} labelPosition={({ index }) => (index ? undefined : "startAngle")} /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> { labelPosition={({ index }) => (index ? undefined : "startAngle")} labelComponent={} /> -
+ ); }; export const LabelRadius = () => { return ( -
+ <> { { x: 5, y: 130 }, ]} /> -
+ ); }; export const Styles = () => { return ( -
+ <> { "#F6A57F", ]} /> -
+ ); }; export const StartAndEndAngles = () => { return ( -
+ <> { { x: "Bird", y: 55, innerRadius: 105, radius: 135 }, ]} /> -
+ ); }; export const Origin = () => { return ( -
+ <> { startAngle={-270} endAngle={-90} /> -
+ ); }; export const LabelPlacement = () => { return ( -
+ <> { { x: 8, y: 1, l: 315 }, ]} /> -
+ ); }; @@ -577,19 +572,19 @@ const StyledSlice = styled(Slice)` export const DisableInlineStyles = () => { return ( -
+ <> } /> -
+ ); }; export const LabelIndicator = () => { return ( -
+ <> { /> } /> -
+ ); }; diff --git a/stories/victory-polar-axis.stories.js b/stories/victory-polar-axis.stories.tsx similarity index 89% rename from stories/victory-polar-axis.stories.js rename to stories/victory-polar-axis.stories.tsx index 3a8c8ba72..da358af3e 100644 --- a/stories/victory-polar-axis.stories.js +++ b/stories/victory-polar-axis.stories.tsx @@ -1,32 +1,28 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ - +import { Meta } from "@storybook/react"; import React from "react"; import { range } from "lodash"; import seedrandom from "seedrandom"; -import { VictoryPolarAxis } from "victory-polar-axis"; -import { VictoryChart } from "victory-chart"; -import { VictoryTheme } from "victory-core"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +import { VictoryPolarAxis } from "../packages/victory-polar-axis"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryTheme } from "../packages/victory-core"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryPolarAxis", + component: VictoryPolarAxis, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; const defaultAxisProps = { style: parentStyle, theme: VictoryTheme.material }; -export default { - title: "VictoryPolarAxis", - component: VictoryPolarAxis, -}; - const getTimeValues = (num) => { const current = 1523389495000; return range(num).map((v) => { @@ -47,18 +43,18 @@ const getRandomValues = (num, seed = "random") => { export const DefaultRendering = () => { return ( -
+ <> -
+ ); }; export const TickValues = () => { return ( -
+ <> { axisAngle={45} tickValues={["one", "two", "three", "four", "five"]} /> -
+ ); }; export const TickFormat = () => { return ( -
+ <> { tickValues={getValues(5)} tickFormat={(t) => `#${t}`} /> -
+ ); }; export const Domain = () => { return ( -
+ <> { tickValues={["cat", "dog", "bird"]} domain={[-2, 2]} /> -
+ ); }; export const AxisAngle = () => { return ( -
+ <> { endAngle={180} tickFormat={["one", "two", "three", "four", "five"]} /> -
+ ); }; export const AxisValue = () => { return ( -
+ <> { tickValues={["one", "two", "three", "four", "five"]} /> -
+ ); }; export const StartAndEndAngle = () => { return ( -
+ <> @@ -240,13 +236,13 @@ export const StartAndEndAngle = () => { startAngle={45} endAngle={360 + 45} /> -
+ ); }; -export const innerRadius = () => { +export const InnerRadius = () => { return ( -
+ <> @@ -255,13 +251,13 @@ export const innerRadius = () => { -
+ ); }; -export const labelPlacement = () => { +export const LabelPlacement = () => { return ( -
+ <> { axisAngle={45} labelPlacement="vertical" /> -
+ ); }; export const Style = () => { return ( -
+ <> { tickLabels: { fontSize: 15, padding: 5 }, }} /> -
+ ); }; export const Scale = () => { return ( -
+ <> { tickValues={[1, 5, 10, 50, 500, 10000]} scale="log" /> -
+ ); }; diff --git a/stories/victory-scatter.stories.js b/stories/victory-scatter.stories.tsx similarity index 92% rename from stories/victory-scatter.stories.js rename to stories/victory-scatter.stories.tsx index 463f4e2c0..394d840d2 100644 --- a/stories/victory-scatter.stories.js +++ b/stories/victory-scatter.stories.tsx @@ -1,17 +1,30 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ - import React from "react"; -import { VictoryStack } from "victory-stack"; -import { VictoryScatter } from "victory-scatter"; -import { VictoryChart } from "victory-chart"; -import { VictoryTooltip } from "victory-tooltip"; -import { VictoryTheme, Point } from "victory-core"; +import { VictoryStack } from "../packages/victory-stack"; +import { VictoryScatter } from "../packages/victory-scatter"; +import { VictoryChart } from "../packages/victory-chart"; +import { VictoryTooltip } from "../packages/victory-tooltip"; +import { + VictoryTheme, + Point, + ScatterSymbolType, + VictoryLabelStyleObject, +} from "../packages/victory-core"; import { getData, getMixedData, getTimeData, getLogData } from "./data"; import { fromJS } from "immutable"; import styled from "styled-components"; +import { Meta } from "@storybook/react"; +import { storyContainer } from "./decorators"; + +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryScatter", + component: VictoryScatter, + tags: ["autodocs"], + decorators: [storyContainer], +}; -const SYMBOLS = [ +export default meta; + +const SYMBOLS: ScatterSymbolType[] = [ "circle", "cross", "diamond", @@ -23,14 +36,6 @@ const SYMBOLS = [ "triangleUp", ]; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", -}; - const parentStyle = { parent: { border: "1px solid #ccc", margin: "2%", maxWidth: "40%" }, }; @@ -40,14 +45,9 @@ const defaultChartProps = { theme: VictoryTheme.material, }; -export default { - title: "VictoryScatter", - component: VictoryScatter, -}; - export const DefaultRendering = () => { return ( -
+ <> @@ -56,13 +56,13 @@ export const DefaultRendering = () => { -
+ ); }; export const Theme = () => { return ( -
+ <> { -
+ ); }; export const Symbols = () => { return SYMBOLS.map((symbol) => ( -
+
{ export const FunctionalSymbols = () => { return ( -
+ <> { size={8} /> -
+ ); }; export const BubbleCharts = () => { return ( -
+ <> @@ -207,13 +207,13 @@ export const BubbleCharts = () => { -
+ ); }; export const DataAccessors = () => { return ( -
+ <> { Math.sin(2 * Math.PI * d.x)} /> -
+ ); }; export const Labels = () => { return ( -
+ <> { @@ -316,13 +316,13 @@ export const Labels = () => { ]} /> -
+ ); }; export const Tooltips = () => { return ( -
+ <> { } /> -
+ ); }; +const labelStyle: VictoryLabelStyleObject = { + fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), +}; + export const Styles = () => { return ( -
+ <> { (datum.x === "Dog" ? "red" : "black"), - }, + labels: labelStyle, data: { fill: ({ datum }) => (datum.x === "Dog" ? "red" : "black"), }, @@ -387,13 +389,13 @@ export const Styles = () => { ]} /> -
+ ); }; export const Stacked = () => { return ( -
+ <> datum.x}> @@ -436,12 +438,12 @@ export const Stacked = () => { -
+ ); }; export const TimeScale = () => { return ( -
+ <> { -
+ ); }; export const LogScale = () => { return ( -
+ <> { -
+ ); }; export const Polar = () => { return ( -
+ <> @@ -539,13 +541,13 @@ export const Polar = () => { -
+ ); }; export const Domain = () => { return ( -
+ <> { -
+ ); }; @@ -567,13 +569,13 @@ const StyledPoint = styled(Point)` export const DisableInlineStyles = () => { return ( -
+ <> } /> -
+ ); }; diff --git a/stories/victory-tooltip.stories.js b/stories/victory-tooltip.stories.tsx similarity index 91% rename from stories/victory-tooltip.stories.js rename to stories/victory-tooltip.stories.tsx index d977edb3f..63cac4658 100644 --- a/stories/victory-tooltip.stories.js +++ b/stories/victory-tooltip.stories.tsx @@ -1,20 +1,24 @@ -/* eslint-disable no-magic-numbers*/ -/* eslint-disable react/no-multi-comp*/ import React from "react"; -import { VictoryBar } from "victory-bar"; -import { VictoryTooltip, Flyout } from "victory-tooltip"; -import { VictoryLabel } from "victory-core"; +import { VictoryBar } from "../packages/victory-bar"; +import { VictoryTooltip, Flyout } from "../packages/victory-tooltip"; +import { VictoryLabel } from "../packages/victory-core"; import { getData, getMixedData } from "./data"; import styled from "styled-components"; +import { storyContainer } from "./decorators"; +import { Meta } from "@storybook/react"; -const containerStyle = { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - alignItems: "center", - justifyContent: "center", +const meta: Meta = { + title: "Victory Charts/SVG Container/VictoryTooltip", + component: VictoryTooltip, + parameters: { + chromatic: { viewports: [1200] }, + }, + tags: ["autodocs"], + decorators: [storyContainer], }; +export default meta; + const style = { parent: { border: "1px solid #ccc", margin: "1%", maxWidth: "25%" }, labels: { fontFamily: "arial" }, @@ -42,17 +46,9 @@ const polarBarProps = { size: 5, }; -export default { - title: "VictoryTooltip", - component: VictoryTooltip, - parameters: { - chromatic: { viewports: [1200] }, - }, -}; - export const DefaultRendering = () => { return ( -
+ <> } @@ -66,13 +62,13 @@ export const DefaultRendering = () => { {...polarBarProps} labelComponent={} /> -
+ ); }; export const CenterOffset = () => { return ( -
+ <> { labelComponent={ (index < 3 ? -10 : 10), x: 10 }} + centerOffset={{ y: ({ index }) => (index! < 3 ? -10 : 10), x: 10 }} text={`function\noffset`} /> } /> -
+ ); }; export const PointerOrientation = () => { return ( -
+ <> { active pointerOrientation={({ index }) => (index < 3 ? "bottom" : "top")} text={({ index }) => - index < 3 ? `orientation\nbottom` : `orientation\ntop` + index! < 3 ? `orientation\nbottom` : `orientation\ntop` } /> } @@ -270,13 +266,13 @@ export const PointerOrientation = () => { /> } /> -
+ ); }; export const ConstrainToVisibleArea = () => { return ( -
+ <> { /> } /> -
+ ); }; export const FlyoutHeight = () => { return ( -
+ <> { (text === "short" ? 20 : 50)} - text={({ index }) => (index > 2 ? "short" : "tall")} + text={({ index }) => (index! > 2 ? "short" : "tall")} /> } /> -
+ ); }; export const FlyoutWidth = () => { return ( -
+ <> { (text === "short" ? 35 : 100)} - text={({ index }) => (index > 2 ? "short" : "long")} + text={({ index }) => (index! > 2 ? "short" : "long")} /> } /> -
+ ); }; export const PointerWidth = () => { return ( -
+ <> (index === 0 ? -20 : null) }} + centerOffset={{ x: ({ index }) => (index === 0 ? -20 : 0) }} text={`pointerWidth\n20`} /> } @@ -478,7 +474,7 @@ export const PointerWidth = () => { (index === 0 ? 20 : null) }} + centerOffset={{ y: ({ index }) => (index === 0 ? 20 : 0) }} text={`pointerWidth\n20`} /> } @@ -489,7 +485,7 @@ export const PointerWidth = () => { (index === 0 ? 20 : null) }} + centerOffset={{ x: ({ index }) => (index === 0 ? 20 : 0) }} text={`pointerWidth\n20`} /> } @@ -499,7 +495,7 @@ export const PointerWidth = () => { labelComponent={ (index < 2 ? -20 : null) }} + centerOffset={{ x: ({ index }) => (index! < 2 ? -20 : 0) }} pointerWidth={({ text }) => (text === "skinny" ? 0 : 20)} text={({ datum }) => (datum.y < 0 ? "skinny" : "wide ")} /> @@ -511,7 +507,7 @@ export const PointerWidth = () => { labelComponent={ (index < 2 ? 20 : null) }} + centerOffset={{ y: ({ index }) => (index! < 2 ? 20 : 0) }} pointerWidth={({ text }) => (text === "skinny" ? 0 : 20)} text={({ datum }) => (datum.y < 0 ? "skinny" : "wide ")} /> @@ -523,26 +519,26 @@ export const PointerWidth = () => { (index === 0 || index === 4 ? 20 : null), + x: ({ index }) => (index === 0 || index === 4 ? 20 : 0), }} pointerWidth={({ text }) => (text === "skinny" ? 0 : 20)} - text={({ index }) => (index > 2 ? "skinny" : "wide ")} + text={({ index }) => (index! > 2 ? "skinny" : "wide ")} /> } /> -
+ ); }; export const PointerLength = () => { return ( -
+ <> (index === 0 ? -20 : null) }} + centerOffset={{ x: ({ index }) => (index === 0 ? -20 : 0) }} pointerLength={30} text={`pointerLength\n30`} /> @@ -555,7 +551,7 @@ export const PointerLength = () => { (index === 0 ? 20 : null) }} + centerOffset={{ y: ({ index }) => (index === 0 ? 20 : 0) }} text={`pointerLength\n30`} /> } @@ -566,7 +562,7 @@ export const PointerLength = () => { (index === 0 ? 20 : null) }} + centerOffset={{ x: ({ index }) => (index === 0 ? 20 : 0) }} text={`pointerLength\n30`} /> } @@ -576,7 +572,7 @@ export const PointerLength = () => { labelComponent={ (index < 2 ? 20 : null) }} + centerOffset={{ x: ({ index }) => (index! < 2 ? 20 : 0) }} pointerLength={({ text }) => (text === "short" ? 1 : 30)} text={({ datum }) => (datum.y < 0 ? "short" : "long ")} /> @@ -588,7 +584,7 @@ export const PointerLength = () => { labelComponent={ (index < 2 ? 20 : null) }} + centerOffset={{ y: ({ index }) => (index! < 2 ? 20 : 0) }} pointerLength={({ text }) => (text === "short" ? 1 : 30)} text={({ datum }) => (datum.y < 0 ? "short" : "long ")} /> @@ -600,20 +596,20 @@ export const PointerLength = () => { (index === 0 || index === 4 ? 20 : null), + x: ({ index }) => (index === 0 || index === 4 ? 20 : 0), }} pointerLength={({ text }) => (text === "short" ? 1 : 30)} - text={({ index }) => (index > 2 ? "short" : "long ")} + text={({ index }) => (index! > 2 ? "short" : "long ")} /> } /> -
+ ); }; export const CornerRadius = () => { return ( -
+ <> { (text === "square" ? 0 : 5)} - text={({ index }) => (index > 2 ? "square" : "rounded ")} + text={({ index }) => (index! > 2 ? "square" : "rounded ")} /> } /> -
+ ); }; export const FlyoutStyle = () => { return ( -
+ <> { /> } /> -
+ ); }; export const FlyoutPadding = () => { return ( -
+ <> { /> } /> -
+ ); }; @@ -778,7 +774,7 @@ const StyledLabel = styled(VictoryLabel)` export const DisableInlineStyles = () => { return ( -
+ <> } @@ -793,6 +789,6 @@ export const DisableInlineStyles = () => { /> } /> -
+ ); };