diff --git a/.github/workflows/publish-dist.yml b/.github/workflows/publish-dist.yml index 8ac8886cf..6f2e0f05d 100644 --- a/.github/workflows/publish-dist.yml +++ b/.github/workflows/publish-dist.yml @@ -155,10 +155,10 @@ jobs: - name: Sanity check docker image run: | echo "Check ipfs-hash" - docker run --rm --entrypoint /bin/sh ghcr.io/vegaprotocol/frontend/${{ matrix.app }}:local -c 'cat /ipfs-hash' - docker run --rm --entrypoint /bin/sh ghcr.io/vegaprotocol/frontend/${{ matrix.app }}:local -c 'cat /ipfs-hash' > ${{ matrix.app }}-ipfs-hash + docker run --rm ghcr.io/vegaprotocol/frontend/${{ matrix.app }}:local /bin/sh -c 'cat /ipfs-hash' + docker run --rm ghcr.io/vegaprotocol/frontend/${{ matrix.app }}:local /bin/sh -c 'cat /ipfs-hash' > ${{ matrix.app }}-ipfs-hash echo "List html directory" - docker run --rm --entrypoint /bin/sh ghcr.io/vegaprotocol/frontend/${{ matrix.app }}:local -c 'apk add --update tree; tree /usr/share/nginx/html' + docker run --rm ghcr.io/vegaprotocol/frontend/${{ matrix.app }}:local /bin/sh -c 'apk add --update tree; tree /usr/share/nginx/html' - name: Publish dist as docker image (ghcr) uses: docker/build-push-action@v3 @@ -329,7 +329,9 @@ jobs: fi # create commit - commit_msg="Automated hash update from ${{ github.ref }}" - git commit -m "$commit_msg" - git push -u origin "main" + if ! git diff --cached --exit-code; then + commit_msg="Automated hash update from ${{ github.ref }}" + git commit -m "$commit_msg" + git push -u origin "main" + fi ) diff --git a/README.md b/README.md index 3ad469c9a..57c165cd6 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ On top of that there are two possible scenarios for running docker image - using to run ipfs on port 3000: ```bash -docker run -p 3000:80 [TAG] ipfs +docker run -p 3000:80 [TAG] /run-ipfs.sh ``` to run nginx on port 3000: diff --git a/apps/trading/.env b/apps/trading/.env index fc93d40cb..7f273cac4 100644 --- a/apps/trading/.env +++ b/apps/trading/.env @@ -24,3 +24,6 @@ NX_STOP_ORDERS=true NX_ICEBERG_ORDERS=true # NX_PRODUCT_PERPETUALS NX_METAMASK_SNAPS=true + +NX_TENDERMINT_URL=https://tm.be.testnet.vega.xyz +NX_TENDERMINT_WEBSOCKET_URL=wss://be.testnet.vega.xyz/websocket diff --git a/apps/trading/client-pages/deposit/index.ts b/apps/trading/client-pages/deposit/index.ts index aa1922157..5cc938c9d 100644 --- a/apps/trading/client-pages/deposit/index.ts +++ b/apps/trading/client-pages/deposit/index.ts @@ -1,3 +1 @@ -import { Deposit } from './deposit'; - -export default Deposit; +export { Deposit } from './deposit'; diff --git a/apps/trading/client-pages/transfer/index.ts b/apps/trading/client-pages/transfer/index.ts new file mode 100644 index 000000000..46ea59654 --- /dev/null +++ b/apps/trading/client-pages/transfer/index.ts @@ -0,0 +1 @@ +export { Transfer } from './transfer'; diff --git a/apps/trading/client-pages/transfer/transfer.spec.tsx b/apps/trading/client-pages/transfer/transfer.spec.tsx new file mode 100644 index 000000000..b756b448e --- /dev/null +++ b/apps/trading/client-pages/transfer/transfer.spec.tsx @@ -0,0 +1,38 @@ +import { render, screen } from '@testing-library/react'; +import { MemoryRouter } from 'react-router-dom'; +import { Transfer } from './transfer'; + +jest.mock('@vegaprotocol/accounts', () => ({ + TransferContainer: ({ assetId }: { assetId?: string }) => ( +
{assetId}
+ ), +})); + +jest.mock('../../components/welcome-dialog/get-started.ts', () => ({ + GetStarted: () =>
GetStarted
, +})); + +const renderJsx = (route = '/transfer') => { + render( + + + + ); +}; + +describe('Transfer page', () => { + it('properly rendered', () => { + renderJsx(); + expect( + screen.getByRole('heading', { level: 1, name: 'Transfer' }) + ).toBeInTheDocument(); + expect(screen.getByTestId('assetId')).toBeEmptyDOMElement(); + }); + + it('assetId should be passed down', () => { + const assetId = 'foo'; + const route = '/transfer?assetId=' + assetId; + renderJsx(route); + expect(screen.getByTestId('assetId')).toHaveTextContent(assetId); + }); +}); diff --git a/apps/trading/client-pages/transfer/transfer.tsx b/apps/trading/client-pages/transfer/transfer.tsx new file mode 100644 index 000000000..073513fef --- /dev/null +++ b/apps/trading/client-pages/transfer/transfer.tsx @@ -0,0 +1,23 @@ +import { useSearchParams } from 'react-router-dom'; +import { t } from '@vegaprotocol/i18n'; +import { TransferContainer } from '@vegaprotocol/accounts'; +import { GetStarted } from '../../components/welcome-dialog'; + +export const Transfer = () => { + const [searchParams] = useSearchParams(); + const assetId = searchParams.get('assetId') || undefined; + + return ( +
+
+

+ {t('Transfer')} +

+
+ + +
+
+
+ ); +}; diff --git a/apps/trading/client-pages/withdraw/index.ts b/apps/trading/client-pages/withdraw/index.ts new file mode 100644 index 000000000..2da1a51ea --- /dev/null +++ b/apps/trading/client-pages/withdraw/index.ts @@ -0,0 +1 @@ +export { Withdraw } from './withdraw'; diff --git a/apps/trading/client-pages/withdraw/withdraw.spec.tsx b/apps/trading/client-pages/withdraw/withdraw.spec.tsx new file mode 100644 index 000000000..d102e0a1c --- /dev/null +++ b/apps/trading/client-pages/withdraw/withdraw.spec.tsx @@ -0,0 +1,41 @@ +import { render, screen } from '@testing-library/react'; +import { MemoryRouter } from 'react-router-dom'; +import { Withdraw } from './withdraw'; + +jest.mock('../../components/withdraw-container', () => ({ + WithdrawContainer: ({ assetId }: { assetId?: string }) => ( +
{assetId}
+ ), +})); + +jest.mock('../../components/welcome-dialog/get-started.ts', () => ({ + GetStarted: () =>
GetStarted
, +})); + +const renderJsx = (route = '/withdraw') => { + render( + + + + ); +}; + +describe('Withdraw page', () => { + it('should be properly rendered', () => { + renderJsx(); + expect( + screen.getByRole('heading', { level: 1, name: 'Withdraw' }) + ).toBeInTheDocument(); + expect(screen.getByTestId('assetId')).toBeEmptyDOMElement(); + }); + + it('assetId should be passed down', () => { + const assetId = 'foo'; + const route = '/withdraw?assetId=' + assetId; + renderJsx(route); + expect( + screen.getByRole('heading', { level: 1, name: 'Withdraw' }) + ).toBeInTheDocument(); + expect(screen.getByTestId('assetId')).toHaveTextContent(assetId); + }); +}); diff --git a/apps/trading/client-pages/withdraw/withdraw.tsx b/apps/trading/client-pages/withdraw/withdraw.tsx new file mode 100644 index 000000000..f513077f7 --- /dev/null +++ b/apps/trading/client-pages/withdraw/withdraw.tsx @@ -0,0 +1,22 @@ +import { useSearchParams } from 'react-router-dom'; +import { t } from '@vegaprotocol/i18n'; +import { GetStarted } from '../../components/welcome-dialog'; +import { WithdrawContainer } from '../../components/withdraw-container'; + +export const Withdraw = () => { + const [searchParams] = useSearchParams(); + const assetId = searchParams.get('assetId') || undefined; + return ( +
+
+

+ {t('Withdraw')} +

+
+ + +
+
+
+ ); +}; diff --git a/apps/trading/pages/client-router.tsx b/apps/trading/pages/client-router.tsx index fae9c7665..7932db72a 100644 --- a/apps/trading/pages/client-router.tsx +++ b/apps/trading/pages/client-router.tsx @@ -6,6 +6,9 @@ import { t } from '@vegaprotocol/i18n'; import { Loader, Splash } from '@vegaprotocol/ui-toolkit'; import trimEnd from 'lodash/trimEnd'; import { LayoutWithSidebar } from '../components/layouts'; +import { Deposit } from '../client-pages/deposit'; +import { Withdraw } from '../client-pages/withdraw'; +import { Transfer } from '../client-pages/transfer'; const LazyHome = dynamic(() => import('../client-pages/home'), { ssr: false, @@ -31,10 +34,6 @@ const LazyDisclaimer = dynamic(() => import('../client-pages/disclaimer'), { ssr: false, }); -const LazyDeposit = dynamic(() => import('../client-pages/deposit'), { - ssr: false, -}); - export enum Routes { HOME = '/', MARKET = '/markets/:marketId', @@ -43,6 +42,8 @@ export enum Routes { LIQUIDITY = '/liquidity/:marketId', DISCLAIMER = '/disclaimer', DEPOSIT = '/deposit', + WITHDRAW = '/withdraw', + TRANSFER = '/transfer', } type ConsoleLinks = { [r in Routes]: (...args: string[]) => string }; @@ -57,6 +58,8 @@ export const Links: ConsoleLinks = { trimEnd(Routes.LIQUIDITY.replace(':marketId', marketId)), [Routes.DISCLAIMER]: () => Routes.DISCLAIMER, [Routes.DEPOSIT]: () => Routes.DEPOSIT, + [Routes.WITHDRAW]: () => Routes.WITHDRAW, + [Routes.TRANSFER]: () => Routes.TRANSFER, }; export const routerConfig: RouteObject[] = [ @@ -108,7 +111,9 @@ export const routerConfig: RouteObject[] = [ path: Routes.DISCLAIMER, element: , }, - { path: Routes.DEPOSIT, element: }, + { path: Routes.DEPOSIT, element: }, + { path: Routes.WITHDRAW, element: }, + { path: Routes.TRANSFER, element: }, { path: '*', element: ( @@ -124,7 +129,7 @@ export const ClientRouter = () => { return ( +
} diff --git a/docker/node-inside-docker.Dockerfile b/docker/node-inside-docker.Dockerfile index 93b5fa4b2..b47523103 100644 --- a/docker/node-inside-docker.Dockerfile +++ b/docker/node-inside-docker.Dockerfile @@ -20,8 +20,7 @@ RUN sh docker/docker-build.sh FROM --platform=amd64 nginx:1.23-alpine@sha256:6318314189b40e73145a48060bff4783a116c34cc7241532d0d94198fb2c9629 # configuration of system EXPOSE 80 -COPY docker/entrypoint.sh /entrypoint.sh -ENTRYPOINT [ "/entrypoint.sh" ] +COPY docker/run-ipfs.sh /run-ipfs.sh # Copy dist COPY docker/nginx.conf /etc/nginx/conf.d/default.conf RUN rm -rf /usr/share/nginx/html/* diff --git a/docker/node-outside-docker.Dockerfile b/docker/node-outside-docker.Dockerfile index d5aacba93..a125a180c 100644 --- a/docker/node-outside-docker.Dockerfile +++ b/docker/node-outside-docker.Dockerfile @@ -1,7 +1,6 @@ FROM --platform=amd64 nginx:1.23-alpine@sha256:6318314189b40e73145a48060bff4783a116c34cc7241532d0d94198fb2c9629 EXPOSE 80 -COPY docker/entrypoint.sh /entrypoint.sh -ENTRYPOINT [ "/entrypoint.sh" ] +COPY docker/run-ipfs.sh /run-ipfs.sh COPY docker/nginx.conf /etc/nginx/conf.d/default.conf RUN rm -rf /usr/share/nginx/html/* COPY ./dist-result/ /usr/share/nginx/html/ diff --git a/docker/run-ipfs.sh b/docker/run-ipfs.sh new file mode 100755 index 000000000..4cf684617 --- /dev/null +++ b/docker/run-ipfs.sh @@ -0,0 +1,4 @@ +#!/bin/sh +ipfs config profile apply server +ipfs config --json Addresses.Gateway '"/ip4/127.0.0.1/tcp/80"' +ipfs daemon diff --git a/libs/accounts/src/lib/transfer-container.tsx b/libs/accounts/src/lib/transfer-container.tsx index df41a6f21..b8dca4110 100644 --- a/libs/accounts/src/lib/transfer-container.tsx +++ b/libs/accounts/src/lib/transfer-container.tsx @@ -49,7 +49,7 @@ export const TransferContainer = ({ assetId }: { assetId?: string }) => { return ( <> -

+

{t('Transfer funds to another Vega key')} {pubKey && ( <> diff --git a/libs/accounts/src/lib/transfer-form.tsx b/libs/accounts/src/lib/transfer-form.tsx index f0adcba94..1f112e828 100644 --- a/libs/accounts/src/lib/transfer-form.tsx +++ b/libs/accounts/src/lib/transfer-form.tsx @@ -21,7 +21,7 @@ import type { Transfer } from '@vegaprotocol/wallet'; import { normalizeTransfer } from '@vegaprotocol/wallet'; import BigNumber from 'bignumber.js'; import type { ReactNode } from 'react'; -import { useCallback, useMemo, useState } from 'react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { Controller, useForm } from 'react-hook-form'; import { AssetOption, Balance } from '@vegaprotocol/assets'; @@ -124,6 +124,13 @@ export const TransferForm = ({ return maxAmount; }, [asset]); + // reset for placeholder workaround https://github.com/radix-ui/primitives/issues/1569 + useEffect(() => { + if (!pubKey) { + setValue('asset', ''); + } + }, [setValue, pubKey]); + return (

1001-DEPO-010) ...so that my Vega key can use these assets on Vega + +### Deposit page + +- Visiting the page with a query param `?assetId=XYZ` should load the page with that asset selected if that asset exists (1001-DEPO-011) diff --git a/specs/1002-WITH-withdraw.md b/specs/1002-WITH-withdraw.md index 5b05c5d2a..8a13b7075 100644 --- a/specs/1002-WITH-withdraw.md +++ b/specs/1002-WITH-withdraw.md @@ -115,3 +115,7 @@ When looking to submit the Ethereum transaction to release funds from the Vega b - **should** see status of incomplete withdrawals (so I can confirm the withdraw I attempted to complete is incomplete) ... so the funds I withdrew from Vega are credited to my Ethereum key + +### Withdraw page + +- Visiting the page with a query param `?assetId=XYZ` should load the page with that asset selected if that asset exists (1002-WITH-024) diff --git a/specs/1003-TRAN-transfer.md b/specs/1003-TRAN-transfer.md index b9a2b6280..4e8b1eee5 100644 --- a/specs/1003-TRAN-transfer.md +++ b/specs/1003-TRAN-transfer.md @@ -57,3 +57,7 @@ - **Must** i cannot select include transfer fee unless amount is entered (1003-TRAN-022) - **Must** With all fields entered correctly, clicking "confirm transfer" button will start transaction(1003-TRAN-023) + +### Transfer page + +- Visiting the page with a query param `?assetId=XYZ` should load the page with that asset selected if that asset exists (1003-TRAN-024) diff --git a/yarn.lock b/yarn.lock index 9c0a29346..c16018fa1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3511,6 +3511,13 @@ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.0.4.tgz#03066eaea8e9b2a2cd3f5aaa60f1e0f580ebe88e" integrity sha512-FPFLbg2b06MIw1dqk2SOEMAMX3xlrreGjcui5OTxfBDtaKTmh0kioOVjT8gcfl58juawL/yF+S+gnq8aUYQx/Q== +"@floating-ui/core@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.4.1.tgz#0d633f4b76052668afb932492ac452f7ebe97f17" + integrity sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ== + dependencies: + "@floating-ui/utils" "^0.1.1" + "@floating-ui/dom@^0.5.3": version "0.5.4" resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-0.5.4.tgz#4eae73f78bcd4bd553ae2ade30e6f1f9c73fe3f1" @@ -3525,6 +3532,14 @@ dependencies: "@floating-ui/core" "^1.0.4" +"@floating-ui/dom@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.2.tgz#6812e89d1d4d4ea32f10d15c3b81feb7f9836d89" + integrity sha512-6ArmenS6qJEWmwzczWyhvrXRdI/rI78poBcW0h/456+onlabit+2G+QxHx5xTOX60NBJQXjsCLFbW2CmsXpUog== + dependencies: + "@floating-ui/core" "^1.4.1" + "@floating-ui/utils" "^0.1.1" + "@floating-ui/react-dom@0.7.2": version "0.7.2" resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-0.7.2.tgz#0bf4ceccb777a140fc535c87eb5d6241c8e89864" @@ -3540,6 +3555,18 @@ dependencies: "@floating-ui/dom" "^1.0.5" +"@floating-ui/react-dom@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.2.tgz#fab244d64db08e6bed7be4b5fcce65315ef44d20" + integrity sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ== + dependencies: + "@floating-ui/dom" "^1.5.1" + +"@floating-ui/utils@^0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.2.tgz#b7e9309ccce5a0a40ac482cb894f120dba2b357f" + integrity sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ== + "@graphql-codegen/add@^3.2.1": version "3.2.1" resolved "https://registry.yarnpkg.com/@graphql-codegen/add/-/add-3.2.1.tgz#f1109f36f194f88a6abcc51703abee43ebbb50a2" @@ -5520,6 +5547,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/number@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.0.1.tgz#644161a3557f46ed38a042acf4a770e826021674" + integrity sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.0.0.tgz#e1d8ef30b10ea10e69c76e896f608d9276352253" @@ -5527,6 +5561,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/primitive@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.0.1.tgz#e46f9958b35d10e9f6dc71c497305c22e3e55dbd" + integrity sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-accordion@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-accordion/-/react-accordion-1.1.0.tgz#8db063b9eaeb32ca90ffec74e190dab104b56522" @@ -5551,6 +5592,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-primitive" "1.0.1" +"@radix-ui/react-arrow@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz#c24f7968996ed934d57fe6cde5d6ec7266e1d25d" + integrity sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-checkbox@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-checkbox/-/react-checkbox-1.0.1.tgz#80cb38b1fd2cbe73f3ad0f4db8aebead0ab0617a" @@ -5592,6 +5641,17 @@ "@radix-ui/react-primitive" "1.0.1" "@radix-ui/react-slot" "1.0.1" +"@radix-ui/react-collection@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.0.3.tgz#9595a66e09026187524a36c6e7e9c7d286469159" + integrity sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-slot" "1.0.2" + "@radix-ui/react-compose-refs@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz#37595b1f16ec7f228d698590e78eeed18ff218ae" @@ -5599,6 +5659,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/react-compose-refs@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz#7ed868b66946aa6030e580b1ffca386dd4d21989" + integrity sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-context@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.0.0.tgz#f38e30c5859a9fb5e9aa9a9da452ee3ed9e0aee0" @@ -5606,6 +5673,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/react-context@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.0.1.tgz#fe46e67c96b240de59187dcb7a1a50ce3e2ec00c" + integrity sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-dialog@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.0.2.tgz#2d7a0bfed478afc40ed6fc78d0f53242af55284e" @@ -5634,6 +5708,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/react-direction@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.0.1.tgz#9cb61bf2ccf568f3421422d182637b7f47596c9b" + integrity sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-dismissable-layer@1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.2.tgz#f04d1061bddf00b1ca304148516b9ddc62e45fb2" @@ -5646,6 +5727,18 @@ "@radix-ui/react-use-callback-ref" "1.0.0" "@radix-ui/react-use-escape-keydown" "1.0.2" +"@radix-ui/react-dismissable-layer@1.0.5-rc.8": + version "1.0.5-rc.8" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5-rc.8.tgz#63f53c1849faab4f2ca8f1494a8707e9fffef867" + integrity sha512-yPCup/NE9a0d9bsbsqSOLrmMy7xKjU/OAwLyys6taLpLvoRdr0V2GkUoP4P0KjK5Dt6DWN7PvpMSwhnA1Rwz6Q== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-escape-keydown" "1.0.3" + "@radix-ui/react-dropdown-menu@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.2.tgz#758ca7733dc79b3a6523d2d5a8d33970ec7ece1b" @@ -5667,6 +5760,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/react-focus-guards@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz#1ea7e32092216b946397866199d892f71f7f98ad" + integrity sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-focus-scope@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.1.tgz#faea8c25f537c5a5c38c50914b63722db0e7f951" @@ -5677,6 +5777,16 @@ "@radix-ui/react-primitive" "1.0.1" "@radix-ui/react-use-callback-ref" "1.0.0" +"@radix-ui/react-focus-scope@1.0.4-rc.6": + version "1.0.4-rc.6" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4-rc.6.tgz#b8c41dc03c4e4583135f1cdfbeb96c980979f61a" + integrity sha512-VvIlc0PY7+aYMKOhi0wTXWVhUqZ9SMxmtPW34PA2yq8BaoAVnHceM4JpdSZEhkgALCxRf+G/kf0FKOL5i6bNDA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-icons@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-icons/-/react-icons-1.1.1.tgz#38d2aa548035dd3b799c169bd17177b1cec3152b" @@ -5690,6 +5800,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-use-layout-effect" "1.0.0" +"@radix-ui/react-id@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.0.1.tgz#73cdc181f650e4df24f0b6a5b7aa426b912c88c0" + integrity sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-menu@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.0.2.tgz#54d4e040407962af95ff3c66612749661a504de7" @@ -5775,6 +5893,23 @@ "@radix-ui/react-use-size" "1.0.0" "@radix-ui/rect" "1.0.0" +"@radix-ui/react-popper@1.1.3-rc.5": + version "1.1.3-rc.5" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.1.3-rc.5.tgz#ef3344d9ad7f010358ab9cf7c20b4d670b0cb71a" + integrity sha512-XS5pEn2JiK4y0mvgmxQdJXVEOJz3g5OjFkIpLSWPJJOX1L26V/byka7CmUok14zNazcagY8u1gj3MFSy88EyEA== + dependencies: + "@babel/runtime" "^7.13.10" + "@floating-ui/react-dom" "^2.0.0" + "@radix-ui/react-arrow" "1.0.3" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-use-rect" "1.0.1" + "@radix-ui/react-use-size" "1.0.1" + "@radix-ui/rect" "1.0.1" + "@radix-ui/react-portal@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.0.1.tgz#169c5a50719c2bb0079cf4c91a27aa6d37e5dd33" @@ -5783,6 +5918,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-primitive" "1.0.1" +"@radix-ui/react-portal@1.0.4-rc.7": + version "1.0.4-rc.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.0.4-rc.7.tgz#d242999c03021b5a1123c041523665526be2a60a" + integrity sha512-DWx8yECkaMIrLFJ3XYLxhQ4D/AbGHfFvWYJdjb9jTkyWIFLzCSb28QLpVv5jAoBxKz8FJL1T98u3/tCRNE+MwA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-presence@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.0.0.tgz#814fe46df11f9a468808a6010e3f3ca7e0b2e84a" @@ -5808,6 +5951,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-slot" "1.0.1" +"@radix-ui/react-primitive@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz#d49ea0f3f0b2fe3ab1cb5667eb03e8b843b914d0" + integrity sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-slot" "1.0.2" + "@radix-ui/react-radio-group@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-radio-group/-/react-radio-group-1.1.1.tgz#564549b3e0a5905367dfe9adfe7b0e245cbdb640" @@ -5841,31 +5992,31 @@ "@radix-ui/react-use-callback-ref" "1.0.0" "@radix-ui/react-use-controllable-state" "1.0.0" -"@radix-ui/react-select@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-1.2.0.tgz#9cafa10f7dcc8917e0bfb48d2a651da7b9e476cf" - integrity sha512-MmXKsIBrG9GKxt8JKIn75LEPiX/zejBmj/Z36Hxtm9cdmCFzTo78QJ0Q3buLGzr0c3lzXdfgeKntmgCzaGxgkw== +"@radix-ui/react-select@2.0.0-rc.10": + version "2.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-2.0.0-rc.10.tgz#d7a2fb9fa2f27885d56f9472ec3c5c832c3d2873" + integrity sha512-ZxFvukEoV1y5wmreAoK3Nknnns0FTs/4ZFSuYwkKklPdzEAxPkAlPoQwq4yjXQ8/gYYVreda6GebGT9xNekIqA== dependencies: "@babel/runtime" "^7.13.10" - "@radix-ui/number" "1.0.0" - "@radix-ui/primitive" "1.0.0" - "@radix-ui/react-collection" "1.0.1" - "@radix-ui/react-compose-refs" "1.0.0" - "@radix-ui/react-context" "1.0.0" - "@radix-ui/react-direction" "1.0.0" - "@radix-ui/react-dismissable-layer" "1.0.2" - "@radix-ui/react-focus-guards" "1.0.0" - "@radix-ui/react-focus-scope" "1.0.1" - "@radix-ui/react-id" "1.0.0" - "@radix-ui/react-popper" "1.1.0" - "@radix-ui/react-portal" "1.0.1" - "@radix-ui/react-primitive" "1.0.1" - "@radix-ui/react-slot" "1.0.1" - "@radix-ui/react-use-callback-ref" "1.0.0" - "@radix-ui/react-use-controllable-state" "1.0.0" - "@radix-ui/react-use-layout-effect" "1.0.0" - "@radix-ui/react-use-previous" "1.0.0" - "@radix-ui/react-visually-hidden" "1.0.1" + "@radix-ui/number" "1.0.1" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-collection" "1.0.3" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-direction" "1.0.1" + "@radix-ui/react-dismissable-layer" "1.0.5-rc.8" + "@radix-ui/react-focus-guards" "1.0.1" + "@radix-ui/react-focus-scope" "1.0.4-rc.6" + "@radix-ui/react-id" "1.0.1" + "@radix-ui/react-popper" "1.1.3-rc.5" + "@radix-ui/react-portal" "1.0.4-rc.7" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-slot" "1.0.2" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-controllable-state" "1.0.1" + "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-use-previous" "1.0.1" + "@radix-ui/react-visually-hidden" "1.0.3" aria-hidden "^1.1.1" react-remove-scroll "2.5.5" @@ -5903,6 +6054,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-compose-refs" "1.0.0" +"@radix-ui/react-slot@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz#a9ff4423eade67f501ffb32ec22064bc9d3099ab" + integrity sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-switch@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-switch/-/react-switch-1.0.2.tgz#e3d1b9fe18b6b1173aadc8b8e6efdc96a28a70f8" @@ -5958,6 +6117,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/react-use-callback-ref@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz#f4bb1f27f2023c984e6534317ebc411fc181107a" + integrity sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-controllable-state@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz#a64deaafbbc52d5d407afaa22d493d687c538b7f" @@ -5966,6 +6132,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-use-callback-ref" "1.0.0" +"@radix-ui/react-use-controllable-state@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz#ecd2ced34e6330caf89a82854aa2f77e07440286" + integrity sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-escape-keydown@1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.2.tgz#09ab6455ab240b4f0a61faf06d4e5132c4d639f6" @@ -5974,6 +6148,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-use-callback-ref" "1.0.0" +"@radix-ui/react-use-escape-keydown@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz#217b840c250541609c66f67ed7bab2b733620755" + integrity sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-layout-effect@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz#2fc19e97223a81de64cd3ba1dc42ceffd82374dc" @@ -5981,6 +6163,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/react-use-layout-effect@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz#be8c7bc809b0c8934acf6657b577daf948a75399" + integrity sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-previous@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.0.0.tgz#e48a69c3a7d8078a967084038df66d0d181c56ac" @@ -5988,6 +6177,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/react-use-previous@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz#b595c087b07317a4f143696c6a01de43b0d0ec66" + integrity sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-rect@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.0.0.tgz#b040cc88a4906b78696cd3a32b075ed5b1423b3e" @@ -5996,6 +6192,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/rect" "1.0.0" +"@radix-ui/react-use-rect@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz#fde50b3bb9fd08f4a1cd204572e5943c244fcec2" + integrity sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/rect" "1.0.1" + "@radix-ui/react-use-size@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.0.0.tgz#a0b455ac826749419f6354dc733e2ca465054771" @@ -6004,6 +6208,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-use-layout-effect" "1.0.0" +"@radix-ui/react-use-size@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz#1c5f5fea940a7d7ade77694bb98116fb49f870b2" + integrity sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-visually-hidden@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.1.tgz#9a4ac4fc97ae8d72a10e727f16b3121b5f0aa469" @@ -6012,6 +6224,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-primitive" "1.0.1" +"@radix-ui/react-visually-hidden@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz#51aed9dd0fe5abcad7dee2a234ad36106a6984ac" + integrity sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/rect@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.0.0.tgz#0dc8e6a829ea2828d53cbc94b81793ba6383bf3c" @@ -6019,6 +6239,13 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/rect@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.0.1.tgz#bf8e7d947671996da2e30f4904ece343bc4a883f" + integrity sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@remix-run/router@1.6.2": version "1.6.2" resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.6.2.tgz#bbe75f8c59e0b7077584920ce2cc76f8f354934d"