From e3410d2f519b2697c083a2bdba171de0b6100e5f Mon Sep 17 00:00:00 2001 From: 0xAsimetriq <3154053+0xAsimetriq@users.noreply.github.com> Date: Wed, 26 Jul 2023 15:48:21 +0300 Subject: [PATCH] [v3] networks view (#1231) --- apps/gallery/package.json | 14 +- .../stories/components/wui-text.stories.ts | 16 +- .../composites/wui-card-select.stories.ts | 8 +- .../composites/wui-network-image.stories.ts | 9 +- apps/gallery/utils/PresetUtils.ts | 3 + apps/laboratory/package.json | 2 +- .../src/components/ConnectButton.tsx | 18 +- .../src/components/NetworksButton.tsx | 11 + apps/laboratory/src/pages/index.tsx | 22 +- package-lock.json | 963 +++++++++--------- package.json | 8 +- packages/core/index.ts | 11 +- .../src/controllers/ConnectorController.ts | 10 +- .../core/src/controllers/NetworkController.ts | 20 +- .../core/src/controllers/RouterController.ts | 3 +- packages/core/src/utils/TypeUtils.ts | 17 +- .../controllers/NetworkController.test.ts | 21 +- packages/scaffold-html/index.ts | 10 +- packages/scaffold-html/src/client.ts | 14 + .../src/modal/w3m-router/index.ts | 2 + .../src/partials/w3m-header/index.ts | 2 +- .../src/views/w3m-account-view/index.ts | 12 +- .../src/views/w3m-networks-view/index.ts | 64 ++ packages/ui/src/components/wui-text/index.ts | 6 +- packages/ui/src/components/wui-text/styles.ts | 1 + .../src/composites/wui-card-select/index.ts | 39 +- .../src/composites/wui-card-select/styles.ts | 14 + .../src/composites/wui-network-image/index.ts | 8 +- .../composites/wui-network-image/styles.ts | 2 +- packages/ui/src/utils/ThemeUtil.ts | 4 + packages/ui/src/utils/TypesUtil.ts | 2 + packages/wagmi/src/client.ts | 48 +- 32 files changed, 791 insertions(+), 593 deletions(-) create mode 100644 apps/laboratory/src/components/NetworksButton.tsx create mode 100644 packages/scaffold-html/src/views/w3m-networks-view/index.ts diff --git a/apps/gallery/package.json b/apps/gallery/package.json index a7dbae978d..0cd11fb0f9 100644 --- a/apps/gallery/package.json +++ b/apps/gallery/package.json @@ -10,15 +10,15 @@ "dependencies": { "@web3modal/ui": "3.0.0", "lit": "2.7.6", - "storybook": "7.1.0" + "storybook": "7.1.1" }, "devDependencies": { - "@storybook/addon-essentials": "7.1.0", - "@storybook/addon-links": "7.1.0", - "@storybook/blocks": "7.1.0", - "@storybook/theming": "7.1.0", - "@storybook/web-components": "7.1.0", - "@storybook/web-components-vite": "7.1.0", + "@storybook/addon-essentials": "7.1.1", + "@storybook/addon-links": "7.1.1", + "@storybook/blocks": "7.1.1", + "@storybook/theming": "7.1.1", + "@storybook/web-components": "7.1.1", + "@storybook/web-components-vite": "7.1.1", "file-system-cache": "2.4.2" } } diff --git a/apps/gallery/stories/components/wui-text.stories.ts b/apps/gallery/stories/components/wui-text.stories.ts index f947b69304..a4be962694 100644 --- a/apps/gallery/stories/components/wui-text.stories.ts +++ b/apps/gallery/stories/components/wui-text.stories.ts @@ -2,7 +2,8 @@ import type { Meta } from '@storybook/web-components' import '@web3modal/ui/src/components/wui-text' import type { WuiText } from '@web3modal/ui/src/components/wui-text' import { html } from 'lit' -import { colorOptions, textOptions } from '../../utils/PresetUtils' +import { ifDefined } from 'lit/directives/if-defined.js' +import { colorOptions, textAlignOptions, textOptions } from '../../utils/PresetUtils' type Component = Meta @@ -20,13 +21,18 @@ export default { color: { options: colorOptions, control: { type: 'select' } + }, + align: { + options: textAlignOptions, + control: { type: 'select' } } } } as Component export const Default: Component = { - render: args => - html`The fox jumped over the lazy dog` + render: args => html` + + The fox jumped over the lazy dog + + ` } diff --git a/apps/gallery/stories/composites/wui-card-select.stories.ts b/apps/gallery/stories/composites/wui-card-select.stories.ts index 0d8ff2208d..9dacd89aec 100644 --- a/apps/gallery/stories/composites/wui-card-select.stories.ts +++ b/apps/gallery/stories/composites/wui-card-select.stories.ts @@ -1,8 +1,8 @@ import type { Meta } from '@storybook/web-components' import '@web3modal/ui/src/composites/wui-card-select' -import '../../components/gallery-container' import type { WuiCardSelect } from '@web3modal/ui/src/composites/wui-card-select' import { html } from 'lit' +import '../../components/gallery-container' import { cardSelectOptions, walletImageSrc } from '../../utils/PresetUtils' type Component = Meta @@ -13,7 +13,8 @@ export default { imageSrc: walletImageSrc, name: 'Rainbow', disabled: false, - type: 'wallet' + type: 'wallet', + selected: false }, argTypes: { type: { @@ -28,9 +29,10 @@ export const Default: Component = { ` diff --git a/apps/gallery/stories/composites/wui-network-image.stories.ts b/apps/gallery/stories/composites/wui-network-image.stories.ts index c27c156b84..4c4703de0c 100644 --- a/apps/gallery/stories/composites/wui-network-image.stories.ts +++ b/apps/gallery/stories/composites/wui-network-image.stories.ts @@ -10,11 +10,16 @@ export default { title: 'Composites/wui-network-image', args: { imageSrc: networkImageSrc, - name: 'Ethereum' + name: 'Ethereum', + selected: false } } as Component export const Default: Component = { render: args => - html`` + html`` } diff --git a/apps/gallery/utils/PresetUtils.ts b/apps/gallery/utils/PresetUtils.ts index 43ef4c74d4..40a9443755 100644 --- a/apps/gallery/utils/PresetUtils.ts +++ b/apps/gallery/utils/PresetUtils.ts @@ -20,6 +20,7 @@ import type { PlacementType, SpacingType, TagType, + TextAlign, TextType, ThemeType, TransactionType @@ -52,6 +53,8 @@ export const textOptions: TextType[] = [ 'large-700' ] +export const textAlignOptions: TextAlign[] = ['center', 'left', 'right'] + export const flexDirectionOptions: FlexDirectionType[] = [ 'column-reverse', 'column', diff --git a/apps/laboratory/package.json b/apps/laboratory/package.json index 3016528ad2..dacc2b6648 100644 --- a/apps/laboratory/package.json +++ b/apps/laboratory/package.json @@ -12,7 +12,7 @@ "@emotion/react": "11.11.1", "@emotion/styled": "11.11.0", "next": "13.4.12", - "framer-motion": "10.13.0", + "framer-motion": "10.13.1", "wagmi": "1.3.9", "viem": "1.4.1" } diff --git a/apps/laboratory/src/components/ConnectButton.tsx b/apps/laboratory/src/components/ConnectButton.tsx index fdbf60c2d5..0eba5713f6 100644 --- a/apps/laboratory/src/components/ConnectButton.tsx +++ b/apps/laboratory/src/components/ConnectButton.tsx @@ -1,21 +1,17 @@ -import type { ButtonProps } from '@chakra-ui/react' -import { Button, VStack } from '@chakra-ui/react' +import { Button } from '@chakra-ui/react' import { useAccount, useDisconnect } from 'wagmi' +import { modal } from '../pages/index' -interface Props { - onConnect: ButtonProps['onClick'] -} - -export function ConnectButton({ onConnect }: Props) { +export function ConnectButton() { const { isConnected, address } = useAccount() const { disconnect } = useDisconnect() return isConnected ? ( - - + <> + - + ) : ( - + ) } diff --git a/apps/laboratory/src/components/NetworksButton.tsx b/apps/laboratory/src/components/NetworksButton.tsx new file mode 100644 index 0000000000..da4555f4db --- /dev/null +++ b/apps/laboratory/src/components/NetworksButton.tsx @@ -0,0 +1,11 @@ +import { Button } from '@chakra-ui/react' +import { useNetwork } from 'wagmi' +import { modal } from '../pages/index' + +export function NetworksButton() { + const { chain } = useNetwork() + + return ( + + ) +} diff --git a/apps/laboratory/src/pages/index.tsx b/apps/laboratory/src/pages/index.tsx index 2699a1cecf..39094eedf5 100644 --- a/apps/laboratory/src/pages/index.tsx +++ b/apps/laboratory/src/pages/index.tsx @@ -1,12 +1,14 @@ -import { Center } from '@chakra-ui/react' +import { Center, VStack } from '@chakra-ui/react' import { Web3Modal } from '@web3modal/wagmi' import { useEffect, useState } from 'react' -import { WagmiConfig, configureChains, createConfig, mainnet } from 'wagmi' +import { WagmiConfig, configureChains, createConfig } from 'wagmi' +import { arbitrum, avalanche, gnosis, mainnet, optimism, polygon } from 'wagmi/chains' import { CoinbaseWalletConnector } from 'wagmi/connectors/coinbaseWallet' import { InjectedConnector } from 'wagmi/connectors/injected' import { WalletConnectConnector } from 'wagmi/connectors/walletConnect' import { publicProvider } from 'wagmi/providers/public' import { ConnectButton } from '../components/ConnectButton' +import { NetworksButton } from '../components/NetworksButton' // 1. Get projectId const projectId = process.env.NEXT_PUBLIC_PROJECT_ID @@ -15,7 +17,10 @@ if (!projectId) { } // 2. Create wagmiConfig -const { chains, publicClient } = configureChains([mainnet], [publicProvider()]) +const { chains, publicClient } = configureChains( + [mainnet, arbitrum, avalanche, polygon, gnosis, optimism], + [publicProvider()] +) const wagmiConfig = createConfig({ autoConnect: true, connectors: [ @@ -27,16 +32,12 @@ const wagmiConfig = createConfig({ }) // 3. Create Web3Modal -const modal = new Web3Modal({ wagmiConfig, projectId }) +export const modal = new Web3Modal({ wagmiConfig, projectId, chains }) // 4. Create Home page export default function Home() { const [ready, setReady] = useState(false) - async function openModal() { - await modal.open() - } - useEffect(() => { setReady(true) }, []) @@ -44,7 +45,10 @@ export default function Home() { return ready ? (
- + + + +
) : null diff --git a/package-lock.json b/package-lock.json index 41538900b7..0b86f4a2bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,11 +16,11 @@ "apps/laboratory" ], "devDependencies": { - "@types/react": "18.2.15", + "@types/react": "18.2.16", "@types/react-dom": "18.2.7", - "@typescript-eslint/eslint-plugin": "6.1.0", - "@typescript-eslint/parser": "6.1.0", - "danger": "11.2.6", + "@typescript-eslint/eslint-plugin": "6.2.0", + "@typescript-eslint/parser": "6.2.0", + "danger": "11.2.7", "eslint": "8.45.0", "eslint-config-prettier": "8.8.0", "lerna": "7.1.4", @@ -37,15 +37,15 @@ "dependencies": { "@web3modal/ui": "3.0.0", "lit": "2.7.6", - "storybook": "7.1.0" + "storybook": "7.1.1" }, "devDependencies": { - "@storybook/addon-essentials": "7.1.0", - "@storybook/addon-links": "7.1.0", - "@storybook/blocks": "7.1.0", - "@storybook/theming": "7.1.0", - "@storybook/web-components": "7.1.0", - "@storybook/web-components-vite": "7.1.0", + "@storybook/addon-essentials": "7.1.1", + "@storybook/addon-links": "7.1.1", + "@storybook/blocks": "7.1.1", + "@storybook/theming": "7.1.1", + "@storybook/web-components": "7.1.1", + "@storybook/web-components-vite": "7.1.1", "file-system-cache": "2.4.2" } }, @@ -57,7 +57,7 @@ "@emotion/react": "11.11.1", "@emotion/styled": "11.11.0", "@web3modal/wagmi": "3.0.0", - "framer-motion": "10.13.0", + "framer-motion": "10.13.1", "next": "13.4.12", "viem": "1.4.1", "wagmi": "1.3.9" @@ -3390,9 +3390,9 @@ "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "node_modules/@esbuild/android-arm": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.16.tgz", - "integrity": "sha512-gCHjjQmA8L0soklKbLKA6pgsLk1byULuHe94lkZDzcO3/Ta+bbeewJioEn1Fr7kgy9NWNFy/C+MrBwC6I/WCug==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", + "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", "cpu": [ "arm" ], @@ -3405,9 +3405,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.16.tgz", - "integrity": "sha512-wsCqSPqLz+6Ov+OM4EthU43DyYVVyfn15S4j1bJzylDpc1r1jZFFfJQNfDuT8SlgwuqpmpJXK4uPlHGw6ve7eA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", + "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", "cpu": [ "arm64" ], @@ -3420,9 +3420,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.16.tgz", - "integrity": "sha512-ldsTXolyA3eTQ1//4DS+E15xl0H/3DTRJaRL0/0PgkqDsI0fV/FlOtD+h0u/AUJr+eOTlZv4aC9gvfppo3C4sw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", + "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", "cpu": [ "x64" ], @@ -3435,9 +3435,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.16.tgz", - "integrity": "sha512-aBxruWCII+OtluORR/KvisEw0ALuw/qDQWvkoosA+c/ngC/Kwk0lLaZ+B++LLS481/VdydB2u6tYpWxUfnLAIw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", + "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", "cpu": [ "arm64" ], @@ -3450,9 +3450,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.16.tgz", - "integrity": "sha512-6w4Dbue280+rp3LnkgmriS1icOUZDyPuZo/9VsuMUTns7SYEiOaJ7Ca1cbhu9KVObAWfmdjUl4gwy9TIgiO5eA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", + "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", "cpu": [ "x64" ], @@ -3465,9 +3465,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.16.tgz", - "integrity": "sha512-x35fCebhe9s979DGKbVAwXUOcTmCIE32AIqB9CB1GralMIvxdnMLAw5CnID17ipEw9/3MvDsusj/cspYt2ZLNQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", + "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", "cpu": [ "arm64" ], @@ -3480,9 +3480,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.16.tgz", - "integrity": "sha512-YM98f+PeNXF3GbxIJlUsj+McUWG1irguBHkszCIwfr3BXtXZsXo0vqybjUDFfu9a8Wr7uUD/YSmHib+EeGAFlg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", + "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", "cpu": [ "x64" ], @@ -3495,9 +3495,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.16.tgz", - "integrity": "sha512-b5ABb+5Ha2C9JkeZXV+b+OruR1tJ33ePmv9ZwMeETSEKlmu/WJ45XTTG+l6a2KDsQtJJ66qo/hbSGBtk0XVLHw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", + "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", "cpu": [ "arm" ], @@ -3510,9 +3510,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.16.tgz", - "integrity": "sha512-XIqhNUxJiuy+zsR77+H5Z2f7s4YRlriSJKtvx99nJuG5ATuJPjmZ9n0ANgnGlPCpXGSReFpgcJ7O3SMtzIFeiQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", + "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", "cpu": [ "arm64" ], @@ -3525,9 +3525,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.16.tgz", - "integrity": "sha512-no+pfEpwnRvIyH+txbBAWtjxPU9grslmTBfsmDndj7bnBmr55rOo/PfQmRfz7Qg9isswt1FP5hBbWb23fRWnow==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", + "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", "cpu": [ "ia32" ], @@ -3540,9 +3540,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.16.tgz", - "integrity": "sha512-Zbnczs9ZXjmo0oZSS0zbNlJbcwKXa/fcNhYQjahDs4Xg18UumpXG/lwM2lcSvHS3mTrRyCYZvJbmzYc4laRI1g==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", + "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", "cpu": [ "loong64" ], @@ -3555,9 +3555,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.16.tgz", - "integrity": "sha512-YMF7hih1HVR/hQVa/ot4UVffc5ZlrzEb3k2ip0nZr1w6fnYypll9td2qcoMLvd3o8j3y6EbJM3MyIcXIVzXvQQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", + "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", "cpu": [ "mips64el" ], @@ -3570,9 +3570,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.16.tgz", - "integrity": "sha512-Wkz++LZ29lDwUyTSEnzDaaP5OveOgTU69q9IyIw9WqLRxM4BjTBjz9un4G6TOvehWpf/J3gYVFN96TjGHrbcNQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", + "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", "cpu": [ "ppc64" ], @@ -3585,9 +3585,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.16.tgz", - "integrity": "sha512-LFMKZ30tk78/mUv1ygvIP+568bwf4oN6reG/uczXnz6SvFn4e2QUFpUpZY9iSJT6Qpgstrhef/nMykIXZtZWGQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", + "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", "cpu": [ "riscv64" ], @@ -3600,9 +3600,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.16.tgz", - "integrity": "sha512-3ZC0BgyYHYKfZo3AV2/66TD/I9tlSBaW7eWTEIkrQQKfJIifKMMttXl9FrAg+UT0SGYsCRLI35Gwdmm96vlOjg==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", + "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", "cpu": [ "s390x" ], @@ -3615,9 +3615,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.16.tgz", - "integrity": "sha512-xu86B3647DihHJHv/wx3NCz2Dg1gjQ8bbf9cVYZzWKY+gsvxYmn/lnVlqDRazObc3UMwoHpUhNYaZset4X8IPA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", + "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", "cpu": [ "x64" ], @@ -3630,9 +3630,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.16.tgz", - "integrity": "sha512-uVAgpimx9Ffw3xowtg/7qQPwHFx94yCje+DoBx+LNm2ePDpQXHrzE+Sb0Si2VBObYz+LcRps15cq+95YM7gkUw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", + "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", "cpu": [ "x64" ], @@ -3645,9 +3645,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.16.tgz", - "integrity": "sha512-6OjCQM9wf7z8/MBi6BOWaTL2AS/SZudsZtBziXMtNI8r/U41AxS9x7jn0ATOwVy08OotwkPqGRMkpPR2wcTJXA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", + "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", "cpu": [ "x64" ], @@ -3660,9 +3660,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.16.tgz", - "integrity": "sha512-ZoNkruFYJp9d1LbUYCh8awgQDvB9uOMZqlQ+gGEZR7v6C+N6u7vPr86c+Chih8niBR81Q/bHOSKGBK3brJyvkQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", + "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", "cpu": [ "x64" ], @@ -3675,9 +3675,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.16.tgz", - "integrity": "sha512-+j4anzQ9hrs+iqO+/wa8UE6TVkKua1pXUb0XWFOx0FiAj6R9INJ+WE//1/Xo6FG1vB5EpH3ko+XcgwiDXTxcdw==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", + "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", "cpu": [ "arm64" ], @@ -3690,9 +3690,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.16.tgz", - "integrity": "sha512-5PFPmq3sSKTp9cT9dzvI67WNfRZGvEVctcZa1KGjDDu4n3H8k59Inbk0du1fz0KrAbKKNpJbdFXQMDUz7BG4rQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", + "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", "cpu": [ "ia32" ], @@ -3705,9 +3705,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.16.tgz", - "integrity": "sha512-sCIVrrtcWN5Ua7jYXNG1xD199IalrbfV2+0k/2Zf2OyV2FtnQnMgdzgpRAbi4AWlKJj1jkX+M+fEGPQj6BQB4w==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", + "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", "cpu": [ "x64" ], @@ -3735,9 +3735,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.0.tgz", - "integrity": "sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -5691,19 +5691,19 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.1.0.tgz", - "integrity": "sha512-JQfcR1AjVWE/M4ayxfyCU/qSj5Jf5djKgvan0YaxTjtQr9tzIgTc93jeF+IPJMnv7ZoaeDW6BS/6n+zSDqJeTg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.1.1.tgz", + "integrity": "sha512-IDxBmNnVgLFfQ407MxOUJmqjz0hgiZB9syi4sfp7BKp5MIPUDT1m+z603kGrvx0bk0W0DPqkp/H8ySEGEx0x6g==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/theming": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/theming": "7.1.1", + "@storybook/types": "7.1.1", "dequal": "^2.0.2", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -5731,19 +5731,19 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.1.0.tgz", - "integrity": "sha512-6hSzERmm4z1j/CGSsjefa18qSgX/GnkIZ+2lA0Ju5M478UL60/m0C7fBkL5xDbNKMpuSPhO5oBSYevWbLrMX5g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.1.1.tgz", + "integrity": "sha512-6YAjF01R/qFxeZc1B5cSxseaGXJzikMPPExSZaKkD0eW3max5Kpk+qb7rOX95m3jP2WD/0zfX6lEQUCbmDcxlg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/theming": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/theming": "7.1.1", + "@storybook/types": "7.1.1", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" }, @@ -5765,20 +5765,20 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.1.0.tgz", - "integrity": "sha512-uw1ynZTFM+ABdd5Dj6iTT3r+fTIY1ljZ09jITszlPENNM9SphCX8lAT0w+8wRVQlbn0mVY0amm2/GtV1sgt+Nw==", - "dev": true, - "dependencies": { - "@storybook/blocks": "7.1.0", - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/core-common": "7.1.0", - "@storybook/manager-api": "7.1.0", - "@storybook/node-logger": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/theming": "7.1.0", - "@storybook/types": "7.1.0", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.1.1.tgz", + "integrity": "sha512-qi7fxUSovTLFWeejZLagMV+4SedL0DIhZrufuQCnEeO1gbTJJPaL/KLZnilFlI3SgspkzGehhGDR6SVkDuwnZg==", + "dev": true, + "dependencies": { + "@storybook/blocks": "7.1.1", + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/core-common": "7.1.1", + "@storybook/manager-api": "7.1.1", + "@storybook/node-logger": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/theming": "7.1.1", + "@storybook/types": "7.1.1", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -5800,26 +5800,26 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.1.0.tgz", - "integrity": "sha512-WH8oODVMr56Zxso6nnbikyph10jNKWyttuSxjksNClogaOPVAIWzglGa8TiGygzurzwZYkMsNWliUKsG4X32nw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.1.1.tgz", + "integrity": "sha512-KfsrqvR6RA0qyCwBpJjeivu/+F+n3jcMMKkBtI56E/pyQCx4+pMTJXJ2l5gJibNWYoR1CVlS9f5n5ZNGz8BzeQ==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.1.0", - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/csf-plugin": "7.1.0", - "@storybook/csf-tools": "7.1.0", + "@storybook/blocks": "7.1.1", + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/csf-plugin": "7.1.1", + "@storybook/csf-tools": "7.1.1", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.1.0", - "@storybook/postinstall": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/react-dom-shim": "7.1.0", - "@storybook/theming": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/node-logger": "7.1.1", + "@storybook/postinstall": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/react-dom-shim": "7.1.1", + "@storybook/theming": "7.1.1", + "@storybook/types": "7.1.1", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -5835,24 +5835,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.1.0.tgz", - "integrity": "sha512-KCNSQIPC5g1EJLqKQx0Ink91PytbL2YAv7DPXCkfmWyXKilK+u00cZeViqCt2EF9Q5LPzrTkw2wRvAv85UrHZQ==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "7.1.0", - "@storybook/addon-backgrounds": "7.1.0", - "@storybook/addon-controls": "7.1.0", - "@storybook/addon-docs": "7.1.0", - "@storybook/addon-highlight": "7.1.0", - "@storybook/addon-measure": "7.1.0", - "@storybook/addon-outline": "7.1.0", - "@storybook/addon-toolbars": "7.1.0", - "@storybook/addon-viewport": "7.1.0", - "@storybook/core-common": "7.1.0", - "@storybook/manager-api": "7.1.0", - "@storybook/node-logger": "7.1.0", - "@storybook/preview-api": "7.1.0", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.1.1.tgz", + "integrity": "sha512-eCty+Q7zBjkBbaJ0HaM/UaXxJ+77uKBtEc9g+hLZFqga50auPCfCcqjnqNnxkTmewkJomx3N91BJUJJzVPUlJA==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "7.1.1", + "@storybook/addon-backgrounds": "7.1.1", + "@storybook/addon-controls": "7.1.1", + "@storybook/addon-docs": "7.1.1", + "@storybook/addon-highlight": "7.1.1", + "@storybook/addon-measure": "7.1.1", + "@storybook/addon-outline": "7.1.1", + "@storybook/addon-toolbars": "7.1.1", + "@storybook/addon-viewport": "7.1.1", + "@storybook/core-common": "7.1.1", + "@storybook/manager-api": "7.1.1", + "@storybook/node-logger": "7.1.1", + "@storybook/preview-api": "7.1.1", "ts-dedent": "^2.0.0" }, "funding": { @@ -5865,14 +5865,14 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.1.0.tgz", - "integrity": "sha512-h7kSFq4AZt+Y8ULCi76En3B2T9LZTba1zq1Om7EhmUQMzhCOhwnWqd5syxAwbmfCv7brQRvFaC1RP4DY9YtRLA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.1.1.tgz", + "integrity": "sha512-iOLzcv4JK2R2EBcbeDLB5uuYaW96M9Vh+ZrkpKEJvHwrQzzvBo3kJ7bP/AArAEXtR5MN1al3x7mnvRofu3OIdQ==", "dev": true, "dependencies": { - "@storybook/core-events": "7.1.0", + "@storybook/core-events": "7.1.1", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.1.0" + "@storybook/preview-api": "7.1.1" }, "funding": { "type": "opencollective", @@ -5880,19 +5880,19 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.1.0.tgz", - "integrity": "sha512-1cEALwRfev7s/NDTJYwn6tg3JZv8zSwd12NMRWhc/PZdCMQf/X1TtOPqz/l3jqTkjANMQA+hxCNRNl4otPD1XQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.1.1.tgz", + "integrity": "sha512-cdc2OQj1LZkEd2dlaAc3Fp4TAHwLmnHKko/Aet3Dhm6TqH/C6UsSflZJbLXmV06x2f/Tm5UK0QQxPHBmOE7aXw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/client-logger": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/router": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/router": "7.1.1", + "@storybook/types": "7.1.1", "prop-types": "^15.7.2", "ts-dedent": "^2.0.0" }, @@ -5914,18 +5914,18 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.1.0.tgz", - "integrity": "sha512-GUqsjU/TyrTyt+U0XkEJ3esEzfwxq9VtQi+HpIwUSVxJJmkyPX+LQROLWL8g+07YeytniWpyWAcfsk1jDbV8eQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.1.1.tgz", + "integrity": "sha512-LKJ9vN0qdFVeqjPeF44R2issR0UMAuL2LzbZNxAfeNX9SxdV7qONBOt8OZNKkmm7mJ+jBZsR9Ok68PCOsXA7Xw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/types": "7.1.1", "tiny-invariant": "^1.3.1" }, "funding": { @@ -5946,18 +5946,18 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.1.0.tgz", - "integrity": "sha512-cOcyxcc80oGOm53xFInCQW1kJjX/jcrS3VQXoVUkIXf2NmwnOTp7MbkDqjCiiE0h/Za9QIqkbsTk/DrJvl905Q==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.1.1.tgz", + "integrity": "sha512-zdgOA46n61o/rqvnAn1OxAczl/C99D64e+6EoK8t+Xf9fvykPQCgfBUAPq19qEAaBG4RoPpTvGSJXH2nFqJZDw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/types": "7.1.1", "ts-dedent": "^2.0.0" }, "funding": { @@ -5978,16 +5978,16 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.1.0.tgz", - "integrity": "sha512-OUbmddPNWy8RN/PNdwpXJDkYKzaV9W1amRpEQM6esG8/yI/2P/v4gL6eLSeeH2V8+nL26kD7BZ0Gh9r+xORzJQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.1.1.tgz", + "integrity": "sha512-tHMv1a8hg0kmxwtKf31BZ2Z1ULnxRF/TEoDLJKVvTthhcWLQm0LmqVIG82/bnuWn4vlDrsdGT7sAN+TU7B8p0A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/theming": "7.1.0" + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/theming": "7.1.1" }, "funding": { "type": "opencollective", @@ -6007,18 +6007,18 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.1.0.tgz", - "integrity": "sha512-dvaD11qp2AG8xc9LubkYqp0yW+5ybaqTOn2uwK4qDDbwypkL+uE9K8G+8tQGIvfQPFye3ggpuqRzStZHr/JbsQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.1.1.tgz", + "integrity": "sha512-OAb3+NSQF0zAVdKhZwW0YOC/VMCXDncXp51ufxaz/LkF3qOGuqfmHTOfDDwjx3P6d3kX1aWV+vLVuoRS0JRK5g==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/theming": "7.1.0", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/theming": "7.1.1", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" }, @@ -6040,22 +6040,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.1.0.tgz", - "integrity": "sha512-DWK3+l+OycPx4QNPobTxWzQUy3Q+D2DNbzTUX1ndew6cuzfi87O7k1hmn//dZQoFzV0BZzx02kVljNQY56w/Bw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.1.1.tgz", + "integrity": "sha512-YIpIJi/+sByZhKrpKbVmXazUP1hj/QXybVOzwz2PT6tphfhrubGLBgu3RJIp6hwJ/lWf9RfghR7P8n+7aN6U9w==", "dev": true, "dependencies": { - "@storybook/channels": "7.1.0", - "@storybook/client-logger": "7.1.0", - "@storybook/components": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/channels": "7.1.1", + "@storybook/client-logger": "7.1.1", + "@storybook/components": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.1.0", + "@storybook/docs-tools": "7.1.1", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/theming": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/theming": "7.1.1", + "@storybook/types": "7.1.1", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -6097,14 +6097,14 @@ "dev": true }, "node_modules/@storybook/builder-manager": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.1.0.tgz", - "integrity": "sha512-7uwpy+zPF+MIWeG1w8hflwJm0eo4q4G3n/KDbB5OhaU+oApL3SrTFzmy3f2eOIQ3fbbGfZ+P48DjkeyAbRFCIg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.1.1.tgz", + "integrity": "sha512-vocO/JjrXPOnkFnwCV2NqKxbTfyYD2qV8PGH8EFNw2+I13GNbZ5CphEZMhI7HmKm0aIYPKdZKbN4KNWkwOxyAQ==", "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.1.0", - "@storybook/manager": "7.1.0", - "@storybook/node-logger": "7.1.0", + "@storybook/core-common": "7.1.1", + "@storybook/manager": "7.1.1", + "@storybook/node-logger": "7.1.1", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -6124,20 +6124,20 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.1.0.tgz", - "integrity": "sha512-4fYsapT5q6op63fBZ4mkZAzA8srObmQqUnydVW4M5v0UCoqKBdZtRMkibLJ2M9FoLJZxDnDO1HydaV7nPwN+zg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.1.1.tgz", + "integrity": "sha512-OIQv8V7r6fqBqAXQT9mqgu1aqP+wlFGDRACyS2iym5y5B3e6fhCOUS/31pBp3vmgNRK6LAfEI0FXI71aOp82MQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.1.0", - "@storybook/client-logger": "7.1.0", - "@storybook/core-common": "7.1.0", - "@storybook/csf-plugin": "7.1.0", + "@storybook/channels": "7.1.1", + "@storybook/client-logger": "7.1.1", + "@storybook/core-common": "7.1.1", + "@storybook/csf-plugin": "7.1.1", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.1.0", - "@storybook/preview": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/node-logger": "7.1.1", + "@storybook/preview": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/types": "7.1.1", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -6172,12 +6172,12 @@ } }, "node_modules/@storybook/channel-postmessage": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.1.0.tgz", - "integrity": "sha512-xiuaPvqeV3ewvBgVf8ZMWL5UeAMiIZuSuUVuWg1Vet6uIP4ZXj463oHcV4Uc9IdaXZQK0+8r2ZrGrRNr/sLxgA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.1.1.tgz", + "integrity": "sha512-Gmjh3feilXKLmZkQdjgkT8BRrfHnrBJJ8CY86MwD4wQlohObeFIXfhueRof4vJEGvIfJwooUrk9CkkXb5YbluQ==", "dependencies": { - "@storybook/channels": "7.1.0", - "@storybook/client-logger": "7.1.0" + "@storybook/channels": "7.1.1", + "@storybook/client-logger": "7.1.1" }, "funding": { "type": "opencollective", @@ -6185,13 +6185,13 @@ } }, "node_modules/@storybook/channels": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.1.0.tgz", - "integrity": "sha512-8uzjWdVG2IK18P8n6H+olAs+jnZr+HeYs1t2xiRy4NVSLhBffB71ut5F+pcWZfdDe3gyX8Tfvy68NloTNt9POg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.1.1.tgz", + "integrity": "sha512-uhkZFtLIeRnbBhyLlvQAZQmsRbftX/YMGQL+9WRzICrCkwl4xfZPAvMxEgCj1iJzNFcaX5ma9XzHb7q/i+wUCw==", "dependencies": { - "@storybook/channels": "7.1.0", - "@storybook/client-logger": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/channels": "7.1.1", + "@storybook/client-logger": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.0.3", @@ -6203,20 +6203,21 @@ } }, "node_modules/@storybook/cli": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.1.0.tgz", - "integrity": "sha512-HYHPQJ59fcHlW3tljuxtL/zN/+iJHWvS0XC9vIk/s+SzY4foy0T+OId8tmUgU0w93UznkoX6f/3y47rZ2d3ozQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.1.1.tgz", + "integrity": "sha512-xQU0GBIRQpwlvTnzOvDo05H5aH660DaZ9JlXd8ThPkEicoTvhkH0oQVEMYaWKChp5Ok7Wu8+kB7fzgUSOGzj+Q==", "dependencies": { - "@babel/core": "^7.22.0", - "@babel/preset-env": "^7.22.0", + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/types": "^7.22.5", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.1.0", - "@storybook/core-common": "7.1.0", - "@storybook/core-server": "7.1.0", - "@storybook/csf-tools": "7.1.0", - "@storybook/node-logger": "7.1.0", - "@storybook/telemetry": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/codemod": "7.1.1", + "@storybook/core-common": "7.1.1", + "@storybook/core-server": "7.1.1", + "@storybook/csf-tools": "7.1.1", + "@storybook/node-logger": "7.1.1", + "@storybook/telemetry": "7.1.1", + "@storybook/types": "7.1.1", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -6455,9 +6456,9 @@ } }, "node_modules/@storybook/client-logger": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.1.0.tgz", - "integrity": "sha512-br5GNTxNFmDZA4ESaCMn2VJ9ZW3ejbILEGoadOJjP2ZD40luSRNtTtWjeNiA+7762OvHMYVGwG0tnqk98f5nfg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.1.1.tgz", + "integrity": "sha512-R0bdVjzJ5CwLNAG3XMyMZ0e9XDteBkFkTTIZJ9m+WMh/+oa2PInCpXDxoYb180UI6abrqh1jEaAsrHMC1pTKnA==", "dependencies": { "@storybook/global": "^5.0.0" }, @@ -6467,17 +6468,17 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.1.0.tgz", - "integrity": "sha512-ZDoJo1hqHbqR1arPwmm5n2qxROfTiigYDBpQCAEjVehFgT1eF1qAjiEjG/MBD0cpgj2pJ1GZTEIs52DU8sm3OQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.1.1.tgz", + "integrity": "sha512-QB4MoeFXA4QsX0LuwjHoTVqsX7krRXmqfwSWIQMB8/qsAfyBp/jiG2xWmwa2agKwtlYvZzkvGdCjAOmK4SUSHQ==", "dependencies": { - "@babel/core": "^7.22.0", - "@babel/preset-env": "^7.22.0", - "@babel/types": "^7.22.0", + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/types": "^7.22.5", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.1.0", - "@storybook/node-logger": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/csf-tools": "7.1.1", + "@storybook/node-logger": "7.1.1", + "@storybook/types": "7.1.1", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -6506,16 +6507,16 @@ } }, "node_modules/@storybook/components": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.1.0.tgz", - "integrity": "sha512-o8Z5L7cxxNCUhbEA+vGwoVrZ0vWhuZJb/AUc+347RIlH1QZF4Cu6fmgA49pKBsrJWPbtOmlLCbN/9LshszH0Zw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.1.1.tgz", + "integrity": "sha512-RUSjDj2RDTZsdKfs48oY+3iaL/y3GHU07zuHm/V4kuEHqJscXUt3n5vIX/Z/GtezMrxc0aPDlCSyS/N/EU6bUQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", + "@storybook/client-logger": "7.1.1", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/theming": "7.1.1", + "@storybook/types": "7.1.1", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -6530,13 +6531,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.1.0.tgz", - "integrity": "sha512-lFgrez7OPr5Eol6/+dSHtPOgGg7WmE+qIMpMt9MHUhawjuX4UqWcs8unhjG+I30nBcC4J9Lxygf5yqZLm7Wt0A==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.1.1.tgz", + "integrity": "sha512-yFd617XKFS+Q5IFmItXR+DdMfpreHHcdy3f67dt8PLnnjNcGMpi7gEcp8t9yBAT+pIgnqSfE/FNUFTg0OEpRpw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/preview-api": "7.1.0" + "@storybook/client-logger": "7.1.1", + "@storybook/preview-api": "7.1.1" }, "funding": { "type": "opencollective", @@ -6544,12 +6545,12 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.1.0.tgz", - "integrity": "sha512-6jrL1RUA/Vgy+zXzeno12k6CKFIqRh3I5W7XgN2nNZJc98PRl2etDdhFL3LkBn8lWddDeKpnmlI4SWjb2HYtcA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.1.1.tgz", + "integrity": "sha512-DO7ZS6YDITykvqMHeOWSmnsPYk2w7gka9GtO2LPbEm0f6p5kG2nohBO5+nsI3PuXpKiHXOB7vKJjwfQqxvPj5A==", "dependencies": { - "@storybook/node-logger": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/node-logger": "7.1.1", + "@storybook/types": "7.1.1", "@types/find-cache-dir": "^3.2.1", "@types/node": "^16.0.0", "@types/node-fetch": "^2.6.4", @@ -6717,34 +6718,34 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.1.0.tgz", - "integrity": "sha512-b0kZ5ElPZj3NPqWhGsHHuLn0riA4wJXJ5mNBOe2scd8Cw52ELQr5rVHOMROhONOgpOaZBZ+QZd/MDvJDRyxTQw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.1.1.tgz", + "integrity": "sha512-P5iI4zvCJo85de/sghglEHFK/GGkWAQQKzRFrz9kbVBX5LNaosfD7IYHIz/6ZWNPzxWR+RBOKcrRUfcArL4Njg==", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, "node_modules/@storybook/core-server": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.1.0.tgz", - "integrity": "sha512-CELvm5RAAvBtXVnxLpF9n6VD4HXsf+f/5KKcojMVq5zh0WSeF4lOokPAXYqmflcToVP1SNWBKtQgVPaMI6y1Nw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.1.1.tgz", + "integrity": "sha512-IfrkdcYwVoP4bltBTx8Yr1e++UAfICV8IYCgW8VFW26Uvl22biCVWwliE35iTYpUmHJgn+U489hCnEdGpr2CWw==", "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.1.0", - "@storybook/channels": "7.1.0", - "@storybook/core-common": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/builder-manager": "7.1.1", + "@storybook/channels": "7.1.1", + "@storybook/core-common": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.1.0", + "@storybook/csf-tools": "7.1.1", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.1.0", - "@storybook/node-logger": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/telemetry": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/manager": "7.1.1", + "@storybook/node-logger": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/telemetry": "7.1.1", + "@storybook/types": "7.1.1", "@types/detect-port": "^1.3.0", "@types/node": "^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -6960,12 +6961,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.1.0.tgz", - "integrity": "sha512-CXr+Erj/rIrDzrVDrF9sSpvkptNaWNjJed/nP1bRV/tuEDDVaTY5CR+T8fPoTLd1qkNNE5RkmiPXhJlNk+4njA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.1.1.tgz", + "integrity": "sha512-bokV+HU6rV/wlWIvgAtn1PUot1W71pto/Wft5hCUATDCsXDz4B5aI9d/ZCJhu7G1R4cYtjsxVdBJSHe9dem7Lg==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.1.0", + "@storybook/csf-tools": "7.1.1", "unplugin": "^1.3.1" }, "funding": { @@ -6974,16 +6975,16 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.1.0.tgz", - "integrity": "sha512-KC2H3IU302juWxChevEbzvr7axBrf0SQI7DQg116KwxChmMvUrO1Z50pnT7i+s9rnYN461OYNj5A7gCoc6cOCQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.1.1.tgz", + "integrity": "sha512-IdDW+NsTIxqv7BjeFaTonvX0Ac5HzzNiKvGkhydXrpaz7kJX4g0T96xpR+RhbEtPfQ0AcpiHnW0kMPx9YLJRew==", "dependencies": { - "@babel/generator": "^7.22.0", - "@babel/parser": "^7.22.0", - "@babel/traverse": "^7.22.0", - "@babel/types": "^7.22.0", + "@babel/generator": "^7.22.9", + "@babel/parser": "^7.22.7", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", "@storybook/csf": "^0.1.0", - "@storybook/types": "7.1.0", + "@storybook/types": "7.1.1", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -7010,14 +7011,14 @@ "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==" }, "node_modules/@storybook/docs-tools": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.1.0.tgz", - "integrity": "sha512-tXZiN+6fJCZHXR3Sg+Qek066Ed8W8qvqmrdihgudkktCkxMT0kywb06p+u8YXEFxbYP0X7L+2mZpGZnLX+bWUw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.1.1.tgz", + "integrity": "sha512-noDgogRHum1FuqgXBdlv2+wOdkIJOJqSUSi0ZGiuP1OEOdA9YdbCfbWn/z734UEmhwraoQSXYb2tvrIEjfzYSw==", "dev": true, "dependencies": { - "@storybook/core-common": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/core-common": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/types": "7.1.1", "@types/doctrine": "^0.0.3", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -7033,28 +7034,28 @@ "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==" }, "node_modules/@storybook/manager": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.1.0.tgz", - "integrity": "sha512-YOuP7YICIcLVWC4QjpFK/AK5MXVzoAodneMmVFZ0+6qXxdaxHyz/hiu34s//lG/KAQZLz2m4z0GjwtJQafey+Q==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.1.1.tgz", + "integrity": "sha512-kRW9sPuJWsEi8Swcyt9rYwdfvA0rqKEuPBCCbrmmjyIwZR60IYg2KHXcF7q4qdkvts2xee5YTbgHcdfc0iIPSg==", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, "node_modules/@storybook/manager-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.1.0.tgz", - "integrity": "sha512-a4UtzWcN/a12Kr4Z5B0KO05t3w3BtXapLRUERxiwB769ab/XJ6MmIyFY7mybKty3RZhmBWaO/oSfgrOwCeP/Gw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.1.1.tgz", + "integrity": "sha512-gk429qAGMW33rAZwFXo7fDoeYGrnSbj4ddHXJYc0nzBcC6emlq5IS5GHgJthQ3Oe8CPbq8bwUkWW6I5E7OePWA==", "dev": true, "dependencies": { - "@storybook/channels": "7.1.0", - "@storybook/client-logger": "7.1.0", - "@storybook/core-events": "7.1.0", + "@storybook/channels": "7.1.1", + "@storybook/client-logger": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.1.0", - "@storybook/theming": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/router": "7.1.1", + "@storybook/theming": "7.1.1", + "@storybook/types": "7.1.1", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -7079,18 +7080,18 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.1.0.tgz", - "integrity": "sha512-Mw5kfcqfW1YI4pqW4+Y/SgnjitEMoqVZdTBQxxA9lS6YOlkQqwmtIFu7or4W/ZCFaPX9dwgd171o870vsA2DlA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.1.1.tgz", + "integrity": "sha512-gnAuNM+wNoOcGnUM6hLsYV0lwUgRI39Ep/Pp3VF1oXZAthEyrQRm7ImbeAdt93ObPc9DZgqTx9OI8QnErZuJiA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, "node_modules/@storybook/postinstall": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.1.0.tgz", - "integrity": "sha512-TsPCqe/2s1chhZoU2eOvjXFteZ00ALVKsTP03FMDOAVc1EkH3dIMAQE1j3ZCt0RnDW1lWfN+QMxgqrgQ/f3mMw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.1.1.tgz", + "integrity": "sha512-qpe6BiFLVs9YYFQVGgRT0dJxPOKBtGLIAsnVEpXKUPrltEWQpTxQEqqOSJlut+FLoWB5MTxrwiJ/7891h4a5pw==", "dev": true, "funding": { "type": "opencollective", @@ -7098,9 +7099,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.1.0.tgz", - "integrity": "sha512-Jw5VhtxL45aw4DBGwFmGoRcqUxSaWc/OexvF8LnCZct8MIL2FKdzMwjQZfqD0GN52KqRo7yMU5V43bZcXKqP6w==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.1.1.tgz", + "integrity": "sha512-F3ikRKzwmT9MlptYXxYOQmaSwmJckPag0k9lM0LvI0xYplLbyWJ5rfs2gLKl++wX+ag2A+1K4gId5Xaz4SKnxQ==", "dev": true, "funding": { "type": "opencollective", @@ -7108,17 +7109,17 @@ } }, "node_modules/@storybook/preview-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.1.0.tgz", - "integrity": "sha512-uLVCUCQKhZDWCfl7dW8+zhbqz0X41K0/nbyFpMtS7PxAveTFFOirAq0Pqtmb7JaeAYGGxkQqCYJJDdE9ZbAlYA==", - "dependencies": { - "@storybook/channel-postmessage": "7.1.0", - "@storybook/channels": "7.1.0", - "@storybook/client-logger": "7.1.0", - "@storybook/core-events": "7.1.0", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.1.1.tgz", + "integrity": "sha512-uI8TVuoFfg3EBdaKdRVUa17JfGdmK78JI3+byLZLkzl6nR+q846BWHgi8eJmU8MHmO5CFaqT2kts/e8T34JDgw==", + "dependencies": { + "@storybook/channel-postmessage": "7.1.1", + "@storybook/channels": "7.1.1", + "@storybook/client-logger": "7.1.1", + "@storybook/core-events": "7.1.1", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.1.0", + "@storybook/types": "7.1.1", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -7134,9 +7135,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.1.0.tgz", - "integrity": "sha512-KPHbvwVu8iA0G8FkCbxuRwDGJPquiONgtYJn6ChHyL/ZjC/9+sUaUWEThbsFEnqdRzXKLgwHqZjF1UieT+TW6Q==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.1.1.tgz", + "integrity": "sha512-yfc0tCtg+OEfvOKwCF0+E0ot8XGpubMTpbfChahhzEYyI9zz1rA7OCwRzERMnX/C7TYW3aLab9f5MzWIKQClmQ==", "dev": true, "funding": { "type": "opencollective", @@ -7148,12 +7149,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.1.0.tgz", - "integrity": "sha512-zZUFV84bIjhKADrV7ZzHPOBtxumeonUU1Nbq7X+k6AWsurpUAdlpQrM+H+37eWIeFONX8Rfc0EUTrx+WUAq1hA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.1.1.tgz", + "integrity": "sha512-GRYYWVsqAtDm7DHxnGXuaAmr3PQfj+tonYsP8/L3gC5sOdQNF3yaBmvv1pu+bqezwXVowq0ew+iVYECiaGoB3Q==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", + "@storybook/client-logger": "7.1.1", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -7167,13 +7168,13 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.1.0.tgz", - "integrity": "sha512-Vy4MvaBzD1pu+eRLHUswd3buFYzr5eUjgpFWwXF6vNGN9WHuceVr/430sFwWRzhrqKnbu4tY8CwekqKeE1uaSg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.1.1.tgz", + "integrity": "sha512-7bQBfphEHJA1kHyPVVvrRXRet57JhyRD4uxoWYfp4jkSt2wHzAAdGU8Iz7U+ozv4TG7AA1gb1Uh5BS4nCiijsw==", "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/core-common": "7.1.0", - "@storybook/csf-tools": "7.1.0", + "@storybook/client-logger": "7.1.1", + "@storybook/core-common": "7.1.1", + "@storybook/csf-tools": "7.1.1", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -7354,13 +7355,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.1.0.tgz", - "integrity": "sha512-bO56c7NFlK7sfjsCbV56VLU59HHvQTW/HVu8RxUuoY+0WutyGAq6uZCmtQnMMGORzxh0p/uU2dSBVYEfW8QoTQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.1.1.tgz", + "integrity": "sha512-8ri/BvfgUzBln9EYB8N/xgRaxZIFFTG0IEEekuV2H5uv4q9JW9p3E5zqghmM1OC/vspJJa8e4Eajb1YiTO0W6w==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.1.0", + "@storybook/client-logger": "7.1.1", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -7374,11 +7375,11 @@ } }, "node_modules/@storybook/types": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.1.0.tgz", - "integrity": "sha512-ify1+BypgEFefkKCqBfh9fTWnkZcEqeDvLlOxbEV82C2ozg0yPlDP9VLe1eN5XM5Biigs6ZQ6WuQysl0VlCaEw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.1.1.tgz", + "integrity": "sha512-0yxEHxYd/N0XfVCGrEq86QIMC4ljZBspHSDrjdLSCIYmmglMvwKboZBgHlLQmpcLP+of8m1E8Frbslpnt0giBg==", "dependencies": { - "@storybook/channels": "7.1.0", + "@storybook/channels": "7.1.1", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7398,18 +7399,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.1.0.tgz", - "integrity": "sha512-ZP/jA23TgNfbb/gIB+LDRubT2f30dTsKVrIjwEzFSYguEqMQkcjQmuTD6kxvkAQWKydne28mNKkjWYN2engO8w==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.1.1.tgz", + "integrity": "sha512-rSeZNvcZFpG3aNIsUgz5D11U4LwjP/gi1kV3nkO2cuAw6uY2vSExtze3SycJiCAPAKDlegUuHKc+HKgpECNgtQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.1.0", - "@storybook/core-client": "7.1.0", - "@storybook/docs-tools": "7.1.0", + "@storybook/client-logger": "7.1.1", + "@storybook/core-client": "7.1.1", + "@storybook/docs-tools": "7.1.1", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.1.0", - "@storybook/preview-api": "7.1.0", - "@storybook/types": "7.1.0", + "@storybook/manager-api": "7.1.1", + "@storybook/preview-api": "7.1.1", + "@storybook/types": "7.1.1", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -7425,15 +7426,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.1.0.tgz", - "integrity": "sha512-pbn/prvrXLT0cYb+QPgnpTVm5J+cr7rb15kAuglllJW4P1fJHS2uMC5a+CiVxMca9r9DcVy9xBmGLgu4meWvlA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.1.1.tgz", + "integrity": "sha512-FH2d7X6wxmiWsnClf6nNa+NVrkpTeWJo7w/ucgS8OEuli3/eaQDKlKeXgXclcdKz8MMxGIGahE8kaqxaI0odJg==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.1.0", - "@storybook/core-server": "7.1.0", - "@storybook/node-logger": "7.1.0", - "@storybook/web-components": "7.1.0", + "@storybook/builder-vite": "7.1.1", + "@storybook/core-server": "7.1.1", + "@storybook/node-logger": "7.1.1", + "@storybook/web-components": "7.1.1", "magic-string": "^0.30.0" }, "engines": { @@ -7711,9 +7712,9 @@ "integrity": "sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g==" }, "node_modules/@types/emscripten": { - "version": "1.39.6", - "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.6.tgz", - "integrity": "sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg==" + "version": "1.39.7", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.7.tgz", + "integrity": "sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA==" }, "node_modules/@types/express": { "version": "4.17.17", @@ -7802,9 +7803,9 @@ } }, "node_modules/@types/lodash": { - "version": "4.14.195", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz", - "integrity": "sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==" + "version": "4.14.196", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.196.tgz", + "integrity": "sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==" }, "node_modules/@types/lodash.mergewith": { "version": "4.6.7", @@ -7848,9 +7849,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "20.4.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.4.tgz", - "integrity": "sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==" + "version": "20.4.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", + "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==" }, "node_modules/@types/node-fetch": { "version": "2.6.4", @@ -7911,9 +7912,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "18.2.15", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.15.tgz", - "integrity": "sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==", + "version": "18.2.16", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.16.tgz", + "integrity": "sha512-LLFWr12ZhBJ4YVw7neWLe6Pk7Ey5R9OCydfuMsz1L8bZxzaawJj2p06Q8/EFEHDeTBQNFLF62X+CG7B2zIyu0Q==", "devOptional": true, "dependencies": { "@types/prop-types": "*", @@ -8004,16 +8005,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz", - "integrity": "sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.0.tgz", + "integrity": "sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/type-utils": "6.1.0", - "@typescript-eslint/utils": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/scope-manager": "6.2.0", + "@typescript-eslint/type-utils": "6.2.0", + "@typescript-eslint/utils": "6.2.0", + "@typescript-eslint/visitor-keys": "6.2.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -8040,15 +8041,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.1.0.tgz", - "integrity": "sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.2.0.tgz", + "integrity": "sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/typescript-estree": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/scope-manager": "6.2.0", + "@typescript-eslint/types": "6.2.0", + "@typescript-eslint/typescript-estree": "6.2.0", + "@typescript-eslint/visitor-keys": "6.2.0", "debug": "^4.3.4" }, "engines": { @@ -8068,13 +8069,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz", - "integrity": "sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.2.0.tgz", + "integrity": "sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0" + "@typescript-eslint/types": "6.2.0", + "@typescript-eslint/visitor-keys": "6.2.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -8085,13 +8086,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz", - "integrity": "sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.2.0.tgz", + "integrity": "sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.1.0", - "@typescript-eslint/utils": "6.1.0", + "@typescript-eslint/typescript-estree": "6.2.0", + "@typescript-eslint/utils": "6.2.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -8112,9 +8113,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.1.0.tgz", - "integrity": "sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.2.0.tgz", + "integrity": "sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -8125,13 +8126,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz", - "integrity": "sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.0.tgz", + "integrity": "sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/types": "6.2.0", + "@typescript-eslint/visitor-keys": "6.2.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8152,17 +8153,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.1.0.tgz", - "integrity": "sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.2.0.tgz", + "integrity": "sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/typescript-estree": "6.1.0", + "@typescript-eslint/scope-manager": "6.2.0", + "@typescript-eslint/types": "6.2.0", + "@typescript-eslint/typescript-estree": "6.2.0", "semver": "^7.5.4" }, "engines": { @@ -8177,12 +8178,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz", - "integrity": "sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.0.tgz", + "integrity": "sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.1.0", + "@typescript-eslint/types": "6.2.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -10785,9 +10786,9 @@ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/danger": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/danger/-/danger-11.2.6.tgz", - "integrity": "sha512-EEeuDmUcxPGJ166q7Zzz1WEiV+e0qbPopaX4sXxds8U5doGMdw/8oOUOVye7JiHIBuss3KvQWt4YHZeD3jSCfw==", + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/danger/-/danger-11.2.7.tgz", + "integrity": "sha512-Oqkrh6cqvJx+hVE/UHUFmkw/HqQ4as83lFvj37RDLfRQcJ4f4jnOtcci2heb5ik+NcR0GZwPJksAyfIhOc21ng==", "dev": true, "dependencies": { "@gitbeaker/node": "^21.3.0", @@ -11302,9 +11303,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.468", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.468.tgz", - "integrity": "sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag==" + "version": "1.4.471", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.471.tgz", + "integrity": "sha512-GpmGRC1vTl60w/k6YpQ18pSiqnmr0j3un//5TV1idPi6aheNfkT1Ye71tMEabWyNDO6sBMgAR+95Eb0eUUr1tA==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -11424,9 +11425,9 @@ } }, "node_modules/esbuild": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.16.tgz", - "integrity": "sha512-1xLsOXrDqwdHxyXb/x/SOyg59jpf/SH7YMvU5RNSU7z3TInaASNJWNFJ6iRvLvLETZMasF3d1DdZLg7sgRimRQ==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", + "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -11435,28 +11436,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.16", - "@esbuild/android-arm64": "0.18.16", - "@esbuild/android-x64": "0.18.16", - "@esbuild/darwin-arm64": "0.18.16", - "@esbuild/darwin-x64": "0.18.16", - "@esbuild/freebsd-arm64": "0.18.16", - "@esbuild/freebsd-x64": "0.18.16", - "@esbuild/linux-arm": "0.18.16", - "@esbuild/linux-arm64": "0.18.16", - "@esbuild/linux-ia32": "0.18.16", - "@esbuild/linux-loong64": "0.18.16", - "@esbuild/linux-mips64el": "0.18.16", - "@esbuild/linux-ppc64": "0.18.16", - "@esbuild/linux-riscv64": "0.18.16", - "@esbuild/linux-s390x": "0.18.16", - "@esbuild/linux-x64": "0.18.16", - "@esbuild/netbsd-x64": "0.18.16", - "@esbuild/openbsd-x64": "0.18.16", - "@esbuild/sunos-x64": "0.18.16", - "@esbuild/win32-arm64": "0.18.16", - "@esbuild/win32-ia32": "0.18.16", - "@esbuild/win32-x64": "0.18.16" + "@esbuild/android-arm": "0.18.17", + "@esbuild/android-arm64": "0.18.17", + "@esbuild/android-x64": "0.18.17", + "@esbuild/darwin-arm64": "0.18.17", + "@esbuild/darwin-x64": "0.18.17", + "@esbuild/freebsd-arm64": "0.18.17", + "@esbuild/freebsd-x64": "0.18.17", + "@esbuild/linux-arm": "0.18.17", + "@esbuild/linux-arm64": "0.18.17", + "@esbuild/linux-ia32": "0.18.17", + "@esbuild/linux-loong64": "0.18.17", + "@esbuild/linux-mips64el": "0.18.17", + "@esbuild/linux-ppc64": "0.18.17", + "@esbuild/linux-riscv64": "0.18.17", + "@esbuild/linux-s390x": "0.18.17", + "@esbuild/linux-x64": "0.18.17", + "@esbuild/netbsd-x64": "0.18.17", + "@esbuild/openbsd-x64": "0.18.17", + "@esbuild/sunos-x64": "0.18.17", + "@esbuild/win32-arm64": "0.18.17", + "@esbuild/win32-ia32": "0.18.17", + "@esbuild/win32-x64": "0.18.17" } }, "node_modules/esbuild-plugin-alias": { @@ -12379,9 +12380,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.213.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.213.0.tgz", - "integrity": "sha512-jPTKNk0lC/iVbaPzfSReo/I67x+PLYiXkFuxHyFYmlJReP3RAoGbmRSC6g8MCEtzw8Uv3clKFmOlEL/LEcoWlw==", + "version": "0.213.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.213.1.tgz", + "integrity": "sha512-l+vyZO6hrWG60DredryA8mq62fK9vxL6/RR13HA/aVLBNh9No/wEJsKI+CJqPRkF4CIRUfcJQBeaMXSKcncxUQ==", "engines": { "node": ">=0.4.0" } @@ -12473,9 +12474,9 @@ } }, "node_modules/framer-motion": { - "version": "10.13.0", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.13.0.tgz", - "integrity": "sha512-xKhw9VCizmwEHbopOfluaoVunGHSZyMztGbTvsgOYqCjaKu6qtlwWY1J+6GhL41NY1P157JgEikjDm67XCFnvQ==", + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.13.1.tgz", + "integrity": "sha512-uiKsaLEoySeln3eOPy8wUB3FkNtRRiVga5xJOkgs7C0sHVyvpJajXJFSoabt+emBojgnMQY0epnjl0ppoYPxkQ==", "dependencies": { "tslib": "^2.4.0" }, @@ -13948,9 +13949,9 @@ } }, "node_modules/jackspeak": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", - "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.2.tgz", + "integrity": "sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -20051,11 +20052,11 @@ "dev": true }, "node_modules/storybook": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.1.0.tgz", - "integrity": "sha512-3fnLTeHzK+6cbo3sfanAvVFpi4pauvEaODbHo8I8ui/RNxENQSYHxgCK6ULWets9Zay0cXxCwe3n3G/zeVoCNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.1.1.tgz", + "integrity": "sha512-5/FIgiD574uwwDGtyyMuqXSOw4kzpEiPbMy1jMWmc8lI2g6vynwbyWqqXmVqtKpJa1vVCM4+KjFqZCmyXFJiZQ==", "dependencies": { - "@storybook/cli": "7.1.0" + "@storybook/cli": "7.1.1" }, "bin": { "sb": "index.js", @@ -20684,9 +20685,9 @@ } }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" }, "node_modules/tuf-js": { "version": "1.1.7", @@ -21272,9 +21273,9 @@ } }, "node_modules/vite": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.6.tgz", - "integrity": "sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A==", + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.7.tgz", + "integrity": "sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==", "dev": true, "dependencies": { "esbuild": "^0.18.10", diff --git a/package.json b/package.json index 437f259600..cd79e7e4cc 100644 --- a/package.json +++ b/package.json @@ -29,9 +29,9 @@ "apps/laboratory" ], "devDependencies": { - "@typescript-eslint/eslint-plugin": "6.1.0", - "@typescript-eslint/parser": "6.1.0", - "@types/react": "18.2.15", + "@typescript-eslint/eslint-plugin": "6.2.0", + "@typescript-eslint/parser": "6.2.0", + "@types/react": "18.2.16", "@types/react-dom": "18.2.7", "eslint": "8.45.0", "eslint-config-prettier": "8.8.0", @@ -39,7 +39,7 @@ "prettier": "3.0.0", "typescript": "5.1.6", "vitest": "0.33.0", - "danger": "11.2.6", + "danger": "11.2.7", "react": "18.2.0", "react-dom": "18.2.0" } diff --git a/packages/core/index.ts b/packages/core/index.ts index ac4288a2c1..75910b30a4 100644 --- a/packages/core/index.ts +++ b/packages/core/index.ts @@ -24,11 +24,7 @@ export type { } from './src/controllers/ConnectionController' export { ConnectorController } from './src/controllers/ConnectorController' -export type { - Connector, - ConnectorControllerState, - ConnectorType -} from './src/controllers/ConnectorController' +export type { ConnectorControllerState } from './src/controllers/ConnectorController' export { SnackController } from './src/controllers/SnackController' export type { SnackControllerState } from './src/controllers/SnackController' @@ -42,7 +38,10 @@ export { CoreHelperUtil } from './src/utils/CoreHelperUtil' export { StorageUtil } from './src/utils/StorageUtil' export type { CaipAddress, - CaipChainId, + CaipNetwork, + CaipNetworkId, + Connector, + ConnectorType, ExplorerListing, Platform, ProjectId diff --git a/packages/core/src/controllers/ConnectorController.ts b/packages/core/src/controllers/ConnectorController.ts index 51e9570528..3e5f50a00a 100644 --- a/packages/core/src/controllers/ConnectorController.ts +++ b/packages/core/src/controllers/ConnectorController.ts @@ -1,16 +1,8 @@ import { subscribeKey as subKey } from 'valtio/utils' import { proxy } from 'valtio/vanilla' +import type { Connector } from '../utils/TypeUtils' // -- Types --------------------------------------------- // -export type ConnectorType = 'EXTERNAL' | 'WALLET_CONNECT' | 'INJECTED' - -export interface Connector { - id: string - type: ConnectorType - name?: string - imageSrc?: string -} - export interface ConnectorControllerState { connectors: Connector[] } diff --git a/packages/core/src/controllers/NetworkController.ts b/packages/core/src/controllers/NetworkController.ts index 9350617d15..4cd2c8b38e 100644 --- a/packages/core/src/controllers/NetworkController.ts +++ b/packages/core/src/controllers/NetworkController.ts @@ -1,5 +1,6 @@ +import { subscribeKey as subKey } from 'valtio/utils' import { proxy, ref } from 'valtio/vanilla' -import type { CaipChainId } from '../utils/TypeUtils' +import type { CaipNetwork } from '../utils/TypeUtils' // -- Types --------------------------------------------- // export interface NetworkControllerClient { @@ -8,11 +9,13 @@ export interface NetworkControllerClient { export interface NetworkControllerState { _client?: NetworkControllerClient - caipNetwork?: CaipChainId - requestedCaipNetworks?: CaipChainId[] - approvedCaipNetworks?: CaipChainId[] + caipNetwork?: CaipNetwork + requestedCaipNetworks?: CaipNetwork[] + approvedCaipNetworks?: CaipNetwork[] } +type StateKey = keyof NetworkControllerState + // -- State --------------------------------------------- // const state = proxy({}) @@ -20,6 +23,10 @@ const state = proxy({}) export const NetworkController = { state, + subscribeKey(key: K, callback: (value: NetworkControllerState[K]) => void) { + return subKey(state, key, callback) + }, + _getClient() { if (!state._client) { throw new Error('NetworkController client not set') @@ -47,5 +54,10 @@ export const NetworkController = { async switchActiveNetwork(network: NetworkControllerState['caipNetwork']) { await this._getClient().switchCaipNetwork(network) state.caipNetwork = network + }, + + resetNetwork() { + state.caipNetwork = undefined + state.approvedCaipNetworks = undefined } } diff --git a/packages/core/src/controllers/RouterController.ts b/packages/core/src/controllers/RouterController.ts index e4e87f08e9..f579f0eab5 100644 --- a/packages/core/src/controllers/RouterController.ts +++ b/packages/core/src/controllers/RouterController.ts @@ -1,7 +1,6 @@ import { subscribeKey as subKey } from 'valtio/utils' import { proxy } from 'valtio/vanilla' -import type { ExplorerListing } from '../utils/TypeUtils' -import type { Connector } from './ConnectorController' +import type { Connector, ExplorerListing } from '../utils/TypeUtils' // -- Types --------------------------------------------- // export interface RouterControllerState { diff --git a/packages/core/src/utils/TypeUtils.ts b/packages/core/src/utils/TypeUtils.ts index b32ba13f4e..055dce7688 100644 --- a/packages/core/src/utils/TypeUtils.ts +++ b/packages/core/src/utils/TypeUtils.ts @@ -1,6 +1,12 @@ export type CaipAddress = `${string}:${string}:${string}` -export type CaipChainId = `${string}:${string}` +export type CaipNetworkId = `${string}:${string}` + +export interface CaipNetwork { + id: CaipNetworkId + name?: string + imageSrc?: string +} export interface ExplorerListing { id: string @@ -55,3 +61,12 @@ export interface LinkingRecord { export type ProjectId = string export type Platform = 'mobile' | 'desktop' | 'injected' | 'web' | 'qrcode' | 'unsupported' + +export type ConnectorType = 'EXTERNAL' | 'WALLET_CONNECT' | 'INJECTED' + +export interface Connector { + id: string + type: ConnectorType + name?: string + imageSrc?: string +} diff --git a/packages/core/tests/controllers/NetworkController.test.ts b/packages/core/tests/controllers/NetworkController.test.ts index ce6ff44fd3..459d4bd9ca 100644 --- a/packages/core/tests/controllers/NetworkController.test.ts +++ b/packages/core/tests/controllers/NetworkController.test.ts @@ -1,11 +1,18 @@ import { describe, expect, it } from 'vitest' -import type { CaipChainId, NetworkControllerClient } from '../../index' +import type { CaipNetwork, NetworkControllerClient } from '../../index' import { NetworkController } from '../../index' // -- Setup -------------------------------------------------------------------- -const caipNetwork = 'eip155:1' -const requestedCaipNetworks = ['eip155:1', 'eip155:2', 'eip155:3'] as CaipChainId[] -const approvedCaipNetworks = ['eip155:1', 'eip155:2'] as CaipChainId[] +const caipNetwork = { id: 'eip155:1', name: 'Ethereum' } as const +const requestedCaipNetworks = [ + { id: 'eip155:1', name: 'Ethereum' }, + { id: 'eip155:42161', name: 'Arbitrum One' }, + { id: 'eip155:43114', name: 'Avalanche C-Chain' } +] as CaipNetwork[] +const approvedCaipNetworks = [ + { id: 'eip155:1', name: 'Ethereum' }, + { id: 'eip155:42161', name: 'Arbitrum One' } +] as CaipNetwork[] const client: NetworkControllerClient = { switchCaipNetwork: async _caipNetwork => Promise.resolve() @@ -44,4 +51,10 @@ describe('NetworkController', () => { NetworkController.setCaipNetwork(caipNetwork) expect(NetworkController.state.caipNetwork).toEqual(caipNetwork) }) + + it('should reset state correctly on resetNetwork()', () => { + NetworkController.resetNetwork() + expect(NetworkController.state.caipNetwork).toEqual(undefined) + expect(NetworkController.state.approvedCaipNetworks).toEqual(undefined) + }) }) diff --git a/packages/scaffold-html/index.ts b/packages/scaffold-html/index.ts index 547c102849..3fdf8b3af0 100644 --- a/packages/scaffold-html/index.ts +++ b/packages/scaffold-html/index.ts @@ -6,6 +6,7 @@ export * from './src/views/w3m-all-wallets-view' export * from './src/views/w3m-connect-view' export * from './src/views/w3m-connecting-external-view' export * from './src/views/w3m-connecting-wc-view' +export * from './src/views/w3m-networks-view' export * from './src/partials/w3m-all-wallets-list' export * from './src/partials/w3m-all-wallets-search' @@ -22,11 +23,4 @@ export * from './src/partials/w3m-snackbar' export { Web3ModalScaffoldHtml } from './src/client' -export type { - CaipAddress, - CaipChainId, - ConnectionControllerClient, - ConnectorType, - NetworkControllerClient, - ProjectId -} from '@web3modal/core' +export type * from '@web3modal/core' diff --git a/packages/scaffold-html/src/client.ts b/packages/scaffold-html/src/client.ts index cbe1e37c78..f2f1405d35 100644 --- a/packages/scaffold-html/src/client.ts +++ b/packages/scaffold-html/src/client.ts @@ -77,6 +77,20 @@ export class Web3ModalScaffoldHtml { NetworkController.setCaipNetwork(caipNetwork) } + protected setRequestedCaipNetworks: (typeof NetworkController)['setRequestedCaipNetworks'] = + requestedCaipNetworks => { + NetworkController.setRequestedCaipNetworks(requestedCaipNetworks) + } + + protected setApprovedCaipNetworks: (typeof NetworkController)['setApprovedCaipNetworks'] = + approvedCaipNetworks => { + NetworkController.setApprovedCaipNetworks(approvedCaipNetworks) + } + + protected resetNetwork: (typeof NetworkController)['resetNetwork'] = () => { + NetworkController.resetNetwork() + } + protected setConnectors: (typeof ConnectorController)['setConnectors'] = connectors => { ConnectorController.setConnectors(connectors) } diff --git a/packages/scaffold-html/src/modal/w3m-router/index.ts b/packages/scaffold-html/src/modal/w3m-router/index.ts index d33c7d9b26..7876253b12 100644 --- a/packages/scaffold-html/src/modal/w3m-router/index.ts +++ b/packages/scaffold-html/src/modal/w3m-router/index.ts @@ -58,6 +58,8 @@ export class W3mRouter extends LitElement { return html`` case 'AllWallets': return html`` + case 'Networks': + return html`` case 'Account': return html`` default: diff --git a/packages/scaffold-html/src/partials/w3m-header/index.ts b/packages/scaffold-html/src/partials/w3m-header/index.ts index 8f4da288b6..d0e7a6ccfe 100644 --- a/packages/scaffold-html/src/partials/w3m-header/index.ts +++ b/packages/scaffold-html/src/partials/w3m-header/index.ts @@ -26,7 +26,7 @@ export class W3mHeader extends LitElement { private unsubscribe: (() => void)[] = [] // -- State & Properties --------------------------------- // - @state() private heading = 'Connect Wallet' + @state() private heading = headings()[RouterController.state.view] @state() private showBack = false diff --git a/packages/scaffold-html/src/views/w3m-account-view/index.ts b/packages/scaffold-html/src/views/w3m-account-view/index.ts index 017a657573..bed510a82c 100644 --- a/packages/scaffold-html/src/views/w3m-account-view/index.ts +++ b/packages/scaffold-html/src/views/w3m-account-view/index.ts @@ -3,6 +3,7 @@ import { ConnectionController, CoreHelperUtil, ModalController, + RouterController, SnackController } from '@web3modal/core' import { LitElement, html } from 'lit' @@ -79,7 +80,12 @@ export class W3mAccountView extends LitElement { - + ${this.balance ?? '_._'} void)[] = [] + + private requestedNetworks = NetworkController.state.requestedCaipNetworks + + // -- State & Properties -------------------------------- // + @state() public caipNetwork = NetworkController.state.caipNetwork + + public constructor() { + super() + this.unsubscribe.push( + NetworkController.subscribeKey('caipNetwork', val => (this.caipNetwork = val)) + ) + } + + public disconnectedCallback() { + this.unsubscribe.forEach(unsubscribe => unsubscribe()) + } + + // -- Render -------------------------------------------- // + public render() { + return html` + + ${this.networksTemplate()} + + + + + + + Your connected wallet may not support some of the networks available for this dApp + + + ` + } + + // Private Methods ------------------------------------- // + private networksTemplate() { + return this.requestedNetworks?.map( + network => html` + null} + > + ` + ) + } +} + +declare global { + interface HTMLElementTagNameMap { + 'w3m-networks-view': W3mNetworksView + } +} diff --git a/packages/ui/src/components/wui-text/index.ts b/packages/ui/src/components/wui-text/index.ts index 6c9918b226..04d6fd92df 100644 --- a/packages/ui/src/components/wui-text/index.ts +++ b/packages/ui/src/components/wui-text/index.ts @@ -2,7 +2,7 @@ import { html, LitElement } from 'lit' import { customElement, property } from 'lit/decorators.js' import { classMap } from 'lit/directives/class-map.js' import { colorStyles, resetStyles } from '../../utils/ThemeUtil' -import type { ColorType, TextType } from '../../utils/TypesUtil' +import type { ColorType, TextAlign, TextType } from '../../utils/TypesUtil' import styles from './styles' @customElement('wui-text') @@ -14,6 +14,8 @@ export class WuiText extends LitElement { @property() public color: ColorType = 'fg-300' + @property() public align?: TextAlign = 'left' + // -- Render -------------------------------------------- // public render() { const classes = { @@ -21,6 +23,8 @@ export class WuiText extends LitElement { [`wui-color-${this.color}`]: true } + this.style.cssText = `--local-align: ${this.align}` + return html`` } } diff --git a/packages/ui/src/components/wui-text/styles.ts b/packages/ui/src/components/wui-text/styles.ts index 8d3bae4104..c29a9bf833 100644 --- a/packages/ui/src/components/wui-text/styles.ts +++ b/packages/ui/src/components/wui-text/styles.ts @@ -17,6 +17,7 @@ export default css` font-weight: var(--wui-font-weight-regular); overflow: inherit; text-overflow: inherit; + text-align: var(--local-align); } .wui-font-large-500, diff --git a/packages/ui/src/composites/wui-card-select/index.ts b/packages/ui/src/composites/wui-card-select/index.ts index f6039d1e98..7854907953 100644 --- a/packages/ui/src/composites/wui-card-select/index.ts +++ b/packages/ui/src/composites/wui-card-select/index.ts @@ -1,48 +1,57 @@ import { html, LitElement } from 'lit' import { customElement, property } from 'lit/decorators.js' +import { ifDefined } from 'lit/directives/if-defined.js' import '../../components/wui-text' import { elementStyles, resetStyles } from '../../utils/ThemeUtil' -import '../wui-wallet-image' +import type { CardSelectType } from '../../utils/TypesUtil' import '../wui-network-image' +import '../wui-wallet-image' import styles from './styles' -import type { CardSelectType } from '../../utils/TypesUtil' @customElement('wui-card-select') export class WuiCardSelect extends LitElement { public static styles = [resetStyles, elementStyles, styles] // -- State & Properties -------------------------------- // - @property() public imageSrc = '' @property() public name = 'unknown' @property() public type: CardSelectType = 'wallet' - @property({ type: Boolean }) public disabled = false + @property() public imageSrc?: string = undefined + + @property({ type: Boolean }) public disabled?: boolean = false + + @property({ type: Boolean }) public selected?: boolean = false // -- Render -------------------------------------------- // public render() { return html` - ` } private imageTemplate() { if (this.type === 'network') { - return html`` + return html` + + + ` } - return html`` + return html` + + + ` } } diff --git a/packages/ui/src/composites/wui-card-select/styles.ts b/packages/ui/src/composites/wui-card-select/styles.ts index c0cdb09a84..390679d98e 100644 --- a/packages/ui/src/composites/wui-card-select/styles.ts +++ b/packages/ui/src/composites/wui-card-select/styles.ts @@ -22,4 +22,18 @@ export default css` button:disabled > wui-text { color: var(--wui-color-fg-300); } + + [data-selected='true'] { + background-color: var(--wui-color-blue-020); + } + + @media (hover: hover) and (pointer: fine) { + [data-selected='true']:hover:enabled { + background-color: var(--wui-color-blue-015); + } + + [data-selected='true']:active:enabled { + background-color: var(--wui-color-blue-010); + } + } ` diff --git a/packages/ui/src/composites/wui-network-image/index.ts b/packages/ui/src/composites/wui-network-image/index.ts index 49d8d48560..b8df4435bb 100644 --- a/packages/ui/src/composites/wui-network-image/index.ts +++ b/packages/ui/src/composites/wui-network-image/index.ts @@ -1,10 +1,10 @@ import { html, LitElement } from 'lit' import { customElement, property } from 'lit/decorators.js' +import { networkSvg } from '../../assets/svg/network' import '../../components/wui-icon' import '../../components/wui-image' import { resetStyles } from '../../utils/ThemeUtil' import styles from './styles' -import { networkSvg } from '../../assets/svg/network' @customElement('wui-network-image') export class WuiNetworkImage extends LitElement { @@ -15,8 +15,14 @@ export class WuiNetworkImage extends LitElement { @property() public imageSrc?: string + @property({ type: Boolean }) public selected?: boolean = false + // -- Render -------------------------------------------- // public render() { + this.style.cssText = ` + --local-stroke: ${this.selected ? 'var(--wui-color-blue-100)' : 'var(--wui-overlay-010)'} + ` + return html`${this.templateVisual()} ${networkSvg}` } diff --git a/packages/ui/src/composites/wui-network-image/styles.ts b/packages/ui/src/composites/wui-network-image/styles.ts index 79429db5eb..be20feaf0e 100644 --- a/packages/ui/src/composites/wui-network-image/styles.ts +++ b/packages/ui/src/composites/wui-network-image/styles.ts @@ -25,7 +25,7 @@ export default css` } svg > path { - stroke: var(--wui-overlay-010); + stroke: var(--local-stroke); stroke-width: 2px; } diff --git a/packages/ui/src/utils/ThemeUtil.ts b/packages/ui/src/utils/ThemeUtil.ts index 8be2a50e67..7b3525b708 100644 --- a/packages/ui/src/utils/ThemeUtil.ts +++ b/packages/ui/src/utils/ThemeUtil.ts @@ -107,12 +107,15 @@ export const rootStyles = css` --wui-path-network: path( 'M20.041 1.061a7.915 7.915 0 0 1 7.918 0l16.082 9.29A7.922 7.922 0 0 1 48 17.21v18.578c0 2.83-1.51 5.445-3.959 6.86l-16.082 9.29a7.915 7.915 0 0 1-7.918 0l-16.082-9.29A7.922 7.922 0 0 1 0 35.79V17.211c0-2.83 1.51-5.445 3.959-6.86l16.082-9.29Z' ); + + --wui-overlay-blue: rgba(51, 150, 255, 0.2); } [data-wui-theme='dark'] { --wui-color-blue-100: #47a1ff; --wui-color-blue-090: #59aaff; --wui-color-blue-080: #6cb4ff; + --wui-color-blue-020: rgba(71, 161, 255, 0.2); --wui-color-blue-015: rgba(71, 161, 255, 0.15); --wui-color-blue-010: rgba(71, 161, 255, 0.1); --wui-color-blue-005: rgba(71, 161, 255, 0.05); @@ -169,6 +172,7 @@ export const rootStyles = css` --wui-color-blue-100: #3396ff; --wui-color-blue-090: #2d7dd2; --wui-color-blue-080: #2978cc; + --wui-color-blue-020: rgba(51, 150, 255, 0.2); --wui-color-blue-015: rgba(51, 150, 255, 0.15); --wui-color-blue-010: rgba(51, 150, 255, 0.1); --wui-color-blue-005: rgba(51, 150, 255, 0.05); diff --git a/packages/ui/src/utils/TypesUtil.ts b/packages/ui/src/utils/TypesUtil.ts index 1688b3bdcd..4ac82cb82d 100644 --- a/packages/ui/src/utils/TypesUtil.ts +++ b/packages/ui/src/utils/TypesUtil.ts @@ -23,6 +23,8 @@ export type TextType = | 'tiny-500' | 'tiny-600' +export type TextAlign = 'center' | 'left' | 'right' + export type SizeType = 'inherit' | 'lg' | 'md' | 'sm' | 'xs' | 'xxs' export type SpacingType = diff --git a/packages/wagmi/src/client.ts b/packages/wagmi/src/client.ts index b94cbb4dc8..5480135884 100644 --- a/packages/wagmi/src/client.ts +++ b/packages/wagmi/src/client.ts @@ -14,7 +14,8 @@ import { import { mainnet } from '@wagmi/core/chains' import type { CaipAddress, - CaipChainId, + CaipNetwork, + CaipNetworkId, ConnectionControllerClient, ConnectorType, NetworkControllerClient, @@ -43,12 +44,19 @@ export interface Web3ModalOptions { // eslint-disable-next-line @typescript-eslint/no-explicit-any wagmiConfig: Config projectId: ProjectId + chains?: Chain[] +} + +declare global { + interface Window { + ethereum?: Record + } } // -- Client -------------------------------------------------------------------- export class Web3Modal extends Web3ModalScaffoldHtml { public constructor(options: Web3ModalOptions) { - const { wagmiConfig, projectId } = options + const { wagmiConfig, projectId, chains } = options if (!wagmiConfig) { throw new Error('web3modal:constructor - wagmiConfig is undefined') @@ -63,8 +71,8 @@ export class Web3Modal extends Web3ModalScaffoldHtml { } const networkControllerClient: NetworkControllerClient = { - async switchCaipNetwork(caipChainId) { - const chainId = caipChainId?.split(':')[1] + async switchCaipNetwork(caipNetwork) { + const chainId = caipNetwork?.id.split(':')[1] const chainIdNumber = Number(chainId) await switchNetwork({ chainId: chainIdNumber }) } @@ -126,7 +134,9 @@ export class Web3Modal extends Web3ModalScaffoldHtml { projectId }) - this.syncConnectors(wagmiConfig) + this.syncRequestedNetworks(chains) + + this.syncConnectors(wagmiConfig.connectors) this.syncAccount() watchAccount(() => this.syncAccount()) @@ -136,6 +146,17 @@ export class Web3Modal extends Web3ModalScaffoldHtml { } // -- Private ----------------------------------------------------------------- + private syncRequestedNetworks(chains: Web3ModalOptions['chains']) { + const requestedCaipNetworks = chains?.map( + chain => + ({ + id: `${NAMESPACE}:${chain.id}`, + name: chain.name + }) as CaipNetwork + ) + this.setRequestedCaipNetworks(requestedCaipNetworks ?? []) + } + private async syncAccount() { const { address, isConnected } = getAccount() const { chain } = getNetwork() @@ -145,6 +166,7 @@ export class Web3Modal extends Web3ModalScaffoldHtml { const caipAddress: CaipAddress = `${NAMESPACE}:${chain.id}:${address}` this.setIsConnected(isConnected) this.setCaipAddress(caipAddress) + this.syncNetwork() await Promise.all([this.syncProfile(address), this.syncBalance(address, chain)]) } } @@ -154,8 +176,8 @@ export class Web3Modal extends Web3ModalScaffoldHtml { const { chain } = getNetwork() if (chain) { const chainId = String(chain.id) - const caipChainId: CaipChainId = `${NAMESPACE}:${chainId}` - this.setCaipNetwork(caipChainId) + const caipChainId: CaipNetworkId = `${NAMESPACE}:${chainId}` + this.setCaipNetwork({ id: caipChainId, name: chain.name }) if (isConnected && address) { const caipAddress: CaipAddress = `${NAMESPACE}:${chain.id}:${address}` this.setCaipAddress(caipAddress) @@ -180,8 +202,8 @@ export class Web3Modal extends Web3ModalScaffoldHtml { this.setBalance(balance.formatted) } - private syncConnectors(wagmiConfig: Web3ModalOptions['wagmiConfig']) { - const connectors = wagmiConfig?.connectors.map( + private syncConnectors(connectors: Web3ModalOptions['wagmiConfig']['connectors']) { + const w3mConnectors = connectors.map( connector => ({ id: connector.id, @@ -189,12 +211,6 @@ export class Web3Modal extends Web3ModalScaffoldHtml { type: TYPE_MAP[connector.id] ?? 'EXTERNAL' }) as const ) - this.setConnectors(connectors ?? []) - } -} - -declare global { - interface Window { - ethereum?: Record + this.setConnectors(w3mConnectors ?? []) } }