From 29acc9255921e5b6248bd4cf0fdb8308e02bbde2 Mon Sep 17 00:00:00 2001 From: James Gatz Date: Fri, 31 Mar 2023 12:53:22 +0200 Subject: [PATCH] Improve import UX (#5869) * add import routes and modal * fix paths * fix paths * save * remove import.ts * ui * save * fix tests * fix tests * fix tests * remove outdated test * update import tests * lint and ts fixes * add section title and fix some style issues * close modals on import success * error handling for empty content * fix api spec imports * Simplify importResources function Co-authored-by: Filipe Freire * cleanup * settings import button styles * remove comment * update tests * comment for app-command imports * fix test lint error * update comments * comment out app/import for now --------- Co-authored-by: Filipe Freire --- .../cookie-editor-interactions.test.ts | 8 +- .../debug-sidebar-interactions.test.ts | 14 +- .../prerelease/design-interactions.test.ts | 7 +- .../environment-editor-interactions.test.ts | 8 +- .../prerelease/grpc-interactions.test.ts | 8 +- .../preferences-interactions.test.ts | 8 +- .../tests/smoke/app.test.ts | 16 +- .../tests/smoke/graphql.test.ts | 17 +- .../tests/smoke/grpc.test.ts | 9 +- .../tests/smoke/oauth.test.ts | 8 +- .../tests/smoke/websocket.test.ts | 8 +- packages/insomnia/package-lock.json | 3577 ++++++++--------- packages/insomnia/package.json | 4 +- .../common/__tests__/import-helpers.test.ts | 31 - .../src/common/__tests__/import.test.ts | 125 +- packages/insomnia/src/common/import.ts | 631 ++- .../plugins/context/__tests__/data.test.ts | 32 +- packages/insomnia/src/plugins/context/data.ts | 43 +- .../ui/components/base/dropdown/popover.tsx | 6 +- .../src/ui/components/modals/import-modal.tsx | 936 +++++ .../panes/project-empty-state-pane.tsx | 80 +- .../ui/components/settings/import-export.tsx | 208 +- .../insomnia/src/ui/containers/app-hooks.tsx | 2 - .../src/ui/hooks/use-app-commands.tsx | 34 +- .../hooks/use-drag-and-drop-import-file.tsx | 60 - packages/insomnia/src/ui/import.ts | 192 - packages/insomnia/src/ui/index.tsx | 13 + packages/insomnia/src/ui/routes/actions.tsx | 17 +- packages/insomnia/src/ui/routes/import.tsx | 103 + packages/insomnia/src/ui/routes/project.tsx | 208 +- packages/insomnia/src/ui/routes/root.tsx | 4 +- 31 files changed, 3411 insertions(+), 3006 deletions(-) delete mode 100644 packages/insomnia/src/common/__tests__/import-helpers.test.ts create mode 100644 packages/insomnia/src/ui/components/modals/import-modal.tsx delete mode 100644 packages/insomnia/src/ui/hooks/use-drag-and-drop-import-file.tsx delete mode 100644 packages/insomnia/src/ui/import.ts create mode 100644 packages/insomnia/src/ui/routes/import.tsx diff --git a/packages/insomnia-smoke-test/tests/prerelease/cookie-editor-interactions.test.ts b/packages/insomnia-smoke-test/tests/prerelease/cookie-editor-interactions.test.ts index 33c6f38031..048d64268e 100644 --- a/packages/insomnia-smoke-test/tests/prerelease/cookie-editor-interactions.test.ts +++ b/packages/insomnia-smoke-test/tests/prerelease/cookie-editor-interactions.test.ts @@ -8,8 +8,12 @@ test.describe('Cookie editor', async () => { await page.getByRole('button', { name: 'Create' }).click(); const text = await loadFixture('simple.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=Collectionsimplejust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); }); test('create and send a cookie', async ({ page }) => { diff --git a/packages/insomnia-smoke-test/tests/prerelease/debug-sidebar-interactions.test.ts b/packages/insomnia-smoke-test/tests/prerelease/debug-sidebar-interactions.test.ts index 4133860c01..40c3fe0a8e 100644 --- a/packages/insomnia-smoke-test/tests/prerelease/debug-sidebar-interactions.test.ts +++ b/packages/insomnia-smoke-test/tests/prerelease/debug-sidebar-interactions.test.ts @@ -10,8 +10,12 @@ test.describe('Debug-Sidebar', async () => { await page.getByRole('button', { name: 'Create' }).click(); const text = await loadFixture('simple.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=Collectionsimplejust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); }); test.describe('Interact with sidebar', async () => { @@ -59,9 +63,9 @@ test.describe('Debug-Sidebar', async () => { }); test('Open properties of the collection', async ({ page }) => { - await page.getByRole('button', { name: 'simple' }).click(); - await page.getByRole('menuitem', { name: 'Collection Settings' }).click(); - await expect(page.locator('.app')).toContainText('Collection Settings wrk'); + await page.getByRole('button', { name: 'Untitled' }).click(); + await page.getByRole('menuitem', { name: 'Document Settings' }).click(); + await page.getByText('Document Settings').click(); }); test('Filter by request name', async ({ page }) => { diff --git a/packages/insomnia-smoke-test/tests/prerelease/design-interactions.test.ts b/packages/insomnia-smoke-test/tests/prerelease/design-interactions.test.ts index 179a1c1406..4a390e6946 100644 --- a/packages/insomnia-smoke-test/tests/prerelease/design-interactions.test.ts +++ b/packages/insomnia-smoke-test/tests/prerelease/design-interactions.test.ts @@ -17,9 +17,10 @@ test.describe('Design interactions', async () => { await page.getByRole('button', { name: 'Create' }).click(); const text = await loadFixture('openapi3.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('div[role="dialog"] >> text=Design Document'); - await page.click('text=DocumentSmoke Test API server 1.0.0v1.0.0OpenAPI 3.0.0just now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); // Renders the spec code const codeEditor = page.locator('.pane-one'); diff --git a/packages/insomnia-smoke-test/tests/prerelease/environment-editor-interactions.test.ts b/packages/insomnia-smoke-test/tests/prerelease/environment-editor-interactions.test.ts index 26ca74ec6b..b1db34da0c 100644 --- a/packages/insomnia-smoke-test/tests/prerelease/environment-editor-interactions.test.ts +++ b/packages/insomnia-smoke-test/tests/prerelease/environment-editor-interactions.test.ts @@ -8,8 +8,12 @@ test.describe('Environment Editor', async () => { await page.getByRole('button', { name: 'Create' }).click(); const text = await loadFixture('environments.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=Collectionenvironmentsjust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); }); test('create a new environment', async ({ page }) => { diff --git a/packages/insomnia-smoke-test/tests/prerelease/grpc-interactions.test.ts b/packages/insomnia-smoke-test/tests/prerelease/grpc-interactions.test.ts index 564f4b2306..aed4de0a72 100644 --- a/packages/insomnia-smoke-test/tests/prerelease/grpc-interactions.test.ts +++ b/packages/insomnia-smoke-test/tests/prerelease/grpc-interactions.test.ts @@ -17,8 +17,12 @@ test.describe('gRPC interactions', () => { const text = await loadFixture('grpc.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=CollectionPreRelease gRPCjust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); statusTag = page.locator('[data-testid="response-status-tag"]:visible'); responseBody = page.locator('[data-testid="response-pane"] >> [data-testid="CodeEditor"]:visible', { has: page.locator('.CodeMirror-activeline'), diff --git a/packages/insomnia-smoke-test/tests/prerelease/preferences-interactions.test.ts b/packages/insomnia-smoke-test/tests/prerelease/preferences-interactions.test.ts index 755bb3d405..28745cdd79 100644 --- a/packages/insomnia-smoke-test/tests/prerelease/preferences-interactions.test.ts +++ b/packages/insomnia-smoke-test/tests/prerelease/preferences-interactions.test.ts @@ -21,8 +21,12 @@ test('Check filter responses by environment preference', async ({ app, page }) = await page.getByRole('button', { name: 'Create' }).click(); const text = await loadFixture('simple.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=Collectionsimplejust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); // Send a request await page.getByRole('button', { name: 'example http' }).click(); diff --git a/packages/insomnia-smoke-test/tests/smoke/app.test.ts b/packages/insomnia-smoke-test/tests/smoke/app.test.ts index 402f3cb2de..496a19a4ee 100644 --- a/packages/insomnia-smoke-test/tests/smoke/app.test.ts +++ b/packages/insomnia-smoke-test/tests/smoke/app.test.ts @@ -16,8 +16,12 @@ test('can send requests', async ({ app, page }) => { const text = await loadFixture('smoke-test-collection.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=CollectionSmoke testsjust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); await page.getByRole('button', { name: 'send JSON request' }).click(); await page.click('text=http://127.0.0.1:4010/pets/1Send >> button'); @@ -68,8 +72,12 @@ test('can cancel requests', async ({ app, page }) => { const text = await loadFixture('smoke-test-collection.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=CollectionSmoke testsjust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); await page.getByRole('button', { name: 'delayed request' }).click(); await page.click('text=http://127.0.0.1:4010/delay/seconds/20Send >> button'); diff --git a/packages/insomnia-smoke-test/tests/smoke/graphql.test.ts b/packages/insomnia-smoke-test/tests/smoke/graphql.test.ts index 9abf1857af..74190d4057 100644 --- a/packages/insomnia-smoke-test/tests/smoke/graphql.test.ts +++ b/packages/insomnia-smoke-test/tests/smoke/graphql.test.ts @@ -15,9 +15,12 @@ test('can render schema and send GraphQL requests', async ({ app, page }) => { await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); // Import from clipboard - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - // Open the new collection workspace - await page.click('text=CollectionSmoke GraphQLjust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); // Open the graphql request await page.getByRole('button', { name: 'GraphQL request' }).click(); // Assert the schema is fetched after switching to GraphQL request @@ -52,8 +55,12 @@ test('can send GraphQL requests after editing and prettifying query', async ({ a const text = await loadFixture('graphql.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=CollectionSmoke GraphQLjust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); await page.getByRole('button', { name: 'GraphQL request' }).click(); // Edit and prettify query diff --git a/packages/insomnia-smoke-test/tests/smoke/grpc.test.ts b/packages/insomnia-smoke-test/tests/smoke/grpc.test.ts index 8bc2cc3672..0b6d117b84 100644 --- a/packages/insomnia-smoke-test/tests/smoke/grpc.test.ts +++ b/packages/insomnia-smoke-test/tests/smoke/grpc.test.ts @@ -16,8 +16,13 @@ test('can send gRPC requests with reflection', async ({ app, page }) => { const text = await loadFixture('grpc.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=CollectionPreRelease gRPCjust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); + await page.getByRole('button', { name: 'Route Guide Example' }).click(); await page.getByRole('button', { name: 'UnaryWithOutProtoFile' }).click(); diff --git a/packages/insomnia-smoke-test/tests/smoke/oauth.test.ts b/packages/insomnia-smoke-test/tests/smoke/oauth.test.ts index 5bf7b89612..7354786737 100644 --- a/packages/insomnia-smoke-test/tests/smoke/oauth.test.ts +++ b/packages/insomnia-smoke-test/tests/smoke/oauth.test.ts @@ -23,8 +23,12 @@ test('can make oauth2 requests', async ({ app, page }) => { const text = await loadFixture('oauth.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.locator('text=CollectionOauth Testingjust now').click(); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); // Authorization code await projectView.getByRole('button', { name: 'Authorization Code' }).click(); diff --git a/packages/insomnia-smoke-test/tests/smoke/websocket.test.ts b/packages/insomnia-smoke-test/tests/smoke/websocket.test.ts index 2085237a0a..88c70d3d4e 100644 --- a/packages/insomnia-smoke-test/tests/smoke/websocket.test.ts +++ b/packages/insomnia-smoke-test/tests/smoke/websocket.test.ts @@ -16,8 +16,12 @@ test('can make websocket connection', async ({ app, page }) => { const text = await loadFixture('websockets.yaml'); await app.evaluate(async ({ clipboard }, text) => clipboard.writeText(text), text); - await page.getByRole('menuitem', { name: 'Clipboard' }).click(); - await page.click('text=CollectionWebSocketsjust now'); + await page.getByRole('menuitem', { name: 'Import' }).click(); + await page.getByText('Clipboard').click(); + await page.getByRole('button', { name: 'Scan' }).click(); + await page.getByRole('button', { name: 'Import' }).click(); + + await page.getByRole('link', { name: 'Debug' }).click(); await page.getByRole('button', { name: 'localhost:4010' }).click(); await expect(page.locator('.app')).toContainText('ws://localhost:4010'); diff --git a/packages/insomnia/package-lock.json b/packages/insomnia/package-lock.json index 637ee64f55..e409c72a7f 100644 --- a/packages/insomnia/package-lock.json +++ b/packages/insomnia/package-lock.json @@ -134,13 +134,13 @@ "objectpath": "^2.0.0", "openapi-types": "^7.0.1", "react": "^18.2.0", - "react-aria": "^3.19.0", + "react-aria": "^3.23.1", "react-dnd": "^7.4.5", "react-dnd-html5-backend": "^7.4.4", "react-dom": "^18.2.0", "react-redux": "^7.2.6", "react-router-dom": "^6.4.2", - "react-stately": "^3.17.0", + "react-stately": "^3.21.0", "react-use": "^17.4.0", "redux": "^4.1.2", "redux-mock-store": "^1.5.4", @@ -1934,82 +1934,82 @@ } }, "node_modules/@formatjs/ecma402-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.12.0.tgz", - "integrity": "sha512-0/wm9b7brUD40kx7KSE0S532T8EfH06Zc41rGlinoNyYXnuusR6ull2x63iFJgVXgwahm42hAW7dcYdZ+llZzA==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz", + "integrity": "sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg==", "dev": true, "dependencies": { - "@formatjs/intl-localematcher": "0.2.31", - "tslib": "2.4.0" + "@formatjs/intl-localematcher": "0.2.32", + "tslib": "^2.4.0" } }, "node_modules/@formatjs/ecma402-abstract/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "node_modules/@formatjs/fast-memoize": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.6.tgz", - "integrity": "sha512-9CWZ3+wCkClKHX+i5j+NyoBVqGf0pIskTo6Xl6ihGokYM2yqSSS68JIgeo+99UIHc+7vi9L3/SDSz/dWI9SNlA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.0.1.tgz", + "integrity": "sha512-M2GgV+qJn5WJQAYewz7q2Cdl6fobQa69S1AzSM2y0P68ZDbK5cWrJIcPCO395Of1ksftGZoOt4LYCO/j9BKBSA==", "dev": true, "dependencies": { - "tslib": "2.4.0" + "tslib": "^2.4.0" } }, "node_modules/@formatjs/fast-memoize/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.8.tgz", - "integrity": "sha512-T1R/UtPSCdznwjlfIJDl9XnjZdcFap+rPJrKC9uATr/sUdziVad3SfRQFf50JOuHptbk6knz+VdiYdApek4Sag==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.3.0.tgz", + "integrity": "sha512-xqtlqYAbfJDF4b6e4O828LBNOWXrFcuYadqAbYORlDRwhyJ2bH+xpUBPldZbzRGUN2mxlZ4Ykhm7jvERtmI8NQ==", "dev": true, "dependencies": { - "@formatjs/ecma402-abstract": "1.12.0", - "@formatjs/icu-skeleton-parser": "1.3.13", - "tslib": "2.4.0" + "@formatjs/ecma402-abstract": "1.14.3", + "@formatjs/icu-skeleton-parser": "1.3.18", + "tslib": "^2.4.0" } }, "node_modules/@formatjs/icu-messageformat-parser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.13.tgz", - "integrity": "sha512-qb1kxnA4ep76rV+d9JICvZBThBpK5X+nh1dLmmIReX72QyglicsaOmKEcdcbp7/giCWfhVs6CXPVA2JJ5/ZvAw==", + "version": "1.3.18", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz", + "integrity": "sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg==", "dev": true, "dependencies": { - "@formatjs/ecma402-abstract": "1.12.0", - "tslib": "2.4.0" + "@formatjs/ecma402-abstract": "1.14.3", + "tslib": "^2.4.0" } }, "node_modules/@formatjs/icu-skeleton-parser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.2.31", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.31.tgz", - "integrity": "sha512-9QTjdSBpQ7wHShZgsNzNig5qT3rCPvmZogS/wXZzKotns5skbXgs0I7J8cuN0PPqXyynvNVuN+iOKhNS2eb+ZA==", + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz", + "integrity": "sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ==", "dev": true, "dependencies": { - "tslib": "2.4.0" + "tslib": "^2.4.0" } }, "node_modules/@formatjs/intl-localematcher/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "node_modules/@gar/promisify": { @@ -2459,40 +2459,40 @@ "dev": true }, "node_modules/@internationalized/date": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.0.1.tgz", - "integrity": "sha512-E/3lASs4mAeJ2Z2ye6ab7eUD0bPUfTeNVTAv6IS+ne9UtMu9Uepb9A1U2Ae0hDr6WAlBuvUtrakaxEdYB9TV6Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.1.0.tgz", + "integrity": "sha512-wjeur7K4AecT+YwoBmBXQ/+n5lP69tuZc34hw09s44EozZK7FZHSyfPvRp5/xEb2D6abLboskDY4jG+Nt0TNUQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "node_modules/@internationalized/message": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.0.9.tgz", - "integrity": "sha512-yHQggKWUuSvj1GznVtie4tcYq+xMrkd/lTKCFHp6gG18KbIliDw+UI7sL9+yJPGuWiR083xuLyyhzqiPbNOEww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.0.tgz", + "integrity": "sha512-Oo5m70FcBdADf7G8NkUffVSfuCdeAYVfsvNjZDi9ELpjvkc4YNJVTHt/NyTI9K7FgAVoELxiP9YmN0sJ+HNHYQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", + "@swc/helpers": "^0.4.14", "intl-messageformat": "^10.1.0" } }, "node_modules/@internationalized/number": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.1.1.tgz", - "integrity": "sha512-dBxCQKIxvsZvW2IBt3KsqrCfaw2nV6o6a8xsloJn/hjW0ayeyhKuiiMtTwW3/WGNPP7ZRyDbtuiUEjMwif1ENQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.2.0.tgz", + "integrity": "sha512-GUXkhXSX1Ee2RURnzl+47uvbOxnlMnvP9Er+QePTjDjOPWuunmLKlEkYkEcLiiJp7y4l9QxGDLOlVr8m69LS5w==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "node_modules/@internationalized/string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.0.0.tgz", - "integrity": "sha512-NUSr4u+mNu5BysXFeVWZW4kvjXylPkU/YYqaWzdNuz1eABfehFiZTEYhWAAMzI3U8DTxfqF9PM3zyhk5gcfz6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.1.0.tgz", + "integrity": "sha512-TJQKiyUb+wyAfKF59UNeZ/kELMnkxyecnyPCnBI1ma4NaXReJW+7Cc2mObXAqraIBJUVv7rgI46RLKrLgi35ng==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "node_modules/@istanbuljs/load-nyc-config": { @@ -3957,57 +3957,57 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@react-aria/breadcrumbs": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.3.1.tgz", - "integrity": "sha512-WlM2U/H7tFoaE4VO6pmbiiVI53E/BU2EX717hozTGDe8qCvcLTX6XSW2o2XtAGyMfAQkYOeTo7LAKss4yfcx4g==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.0.tgz", + "integrity": "sha512-WiNMlk8COR+4zpJ8mFgTgWQqCxoFE6OMJ16anJzR8IgP1xMzUmIQ7l0s0Dv4D5qE+xVlgNF0ccDdw1x6A+WzPw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/link": "^3.3.3", - "@react-aria/utils": "^3.13.3", - "@react-types/breadcrumbs": "^3.4.3", - "@react-types/shared": "^3.14.1" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/link": "^3.4.0", + "@react-aria/utils": "^3.15.0", + "@react-types/breadcrumbs": "^3.5.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/button": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.6.1.tgz", - "integrity": "sha512-g10dk0eIQ71F1QefUymbff0yceQFHEKzOwK7J5QAFB5w/FUSmCTsMkBrrra4AogRxYHIAr5adPic5F2g7VzQFw==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.7.0.tgz", + "integrity": "sha512-4DSGXrAWflzT4cQe/x0KdrPzz7hv9vZgqYJuNXQkpmeIMs1EmUKuby2xC+W9GHuZ+8dMxjTWKy3XdwX2tCM42A==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/toggle": "^3.4.1", - "@react-types/button": "^3.6.1", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/toggle": "^3.5.0", + "@react-types/button": "^3.7.1", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/calendar": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.0.3.tgz", - "integrity": "sha512-/hCOB1LPFZvUFTLkx/rF49KZRcWZlHO5He1yVINuJ77bbn4YS82ZBINPblnP5bBMjJHhnRf4EmVQuEZq2IHTLw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.1.0.tgz", + "integrity": "sha512-XWtoGMBTYpj5De2yfboAv60SMXa/T2BjPd0uSkiaPXAC0vPjdB0VPhGbSi6LKCYIiTAMs98mMP0P4WYhWyW4jA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/utils": "^3.14.0", - "@react-stately/calendar": "^3.0.3", - "@react-types/button": "^3.6.2", - "@react-types/calendar": "^3.0.3", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/calendar": "^3.1.0", + "@react-types/button": "^3.7.1", + "@react-types/calendar": "^3.1.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4015,46 +4015,46 @@ } }, "node_modules/@react-aria/checkbox": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.5.1.tgz", - "integrity": "sha512-a3ONNbjV4nkLRV7G+hQysHwkvKTtB1++A4ceL8psbvbslii62F6qYzmgp/AK5D086cQJGxiqkEPLi049xfGuDA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.8.0.tgz", + "integrity": "sha512-VjezmSfDx1/A+Yz5naZ9xCxkasmtsO7uK+Ur+Z6bKmHwvoazRK5cATdRG4mj++0JUBYn6bvBGBEXFZHTkkGahw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/label": "^3.4.1", - "@react-aria/toggle": "^3.3.3", - "@react-aria/utils": "^3.13.3", - "@react-stately/checkbox": "^3.2.1", - "@react-stately/toggle": "^3.4.1", - "@react-types/checkbox": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-aria/label": "^3.5.0", + "@react-aria/toggle": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/checkbox": "^3.4.0", + "@react-stately/toggle": "^3.5.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/combobox": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.4.2.tgz", - "integrity": "sha512-LFB0L2WLR7hc5J2c36jdgekHigLv4PwZfNRlh+B4VX474pS9Zt33F0FIrCKsYZA8xXzvM+lXr4POjwsoBhmnJw==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.5.1.tgz", + "integrity": "sha512-HyBX98TvQe8IscJlRz6TxgvMlYcwy9iTA/GWjy3bMNjUfxPaRZh5r69aG8JlTRvVDLE13cUSh0mKsTSjo8evvQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/listbox": "^3.7.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/menu": "^3.6.2", - "@react-aria/overlays": "^3.11.0", - "@react-aria/selection": "^3.11.0", - "@react-aria/textfield": "^3.7.2", - "@react-aria/utils": "^3.14.0", - "@react-stately/collections": "^3.4.4", - "@react-stately/combobox": "^3.2.2", - "@react-stately/layout": "^3.8.0", - "@react-types/button": "^3.6.2", - "@react-types/combobox": "^3.5.4", - "@react-types/shared": "^3.15.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/listbox": "^3.8.1", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/menu": "^3.8.1", + "@react-aria/overlays": "^3.13.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/textfield": "^3.9.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/combobox": "^3.4.0", + "@react-stately/layout": "^3.11.0", + "@react-types/button": "^3.7.1", + "@react-types/combobox": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4062,27 +4062,27 @@ } }, "node_modules/@react-aria/datepicker": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.1.2.tgz", - "integrity": "sha512-jzO3yTSbOlLVBo1Omw3xNXBg0HfpmObI1w5qzlfkQt7rK2nzToKnA5/XNsjiEODDwv7l03nOj+100a6trdLOTw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.3.0.tgz", + "integrity": "sha512-76/5a2Dfe/SCcW0j4hqeSTnlh6SSW/AYPKPr5fNaiGnLFJ3oLsc9SAuUgTsOBglR/J3N/hqtH+UO2U8X1QC6Ng==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@internationalized/number": "^3.1.1", - "@internationalized/string": "^3.0.0", - "@react-aria/focus": "^3.9.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/label": "^3.4.2", - "@react-aria/spinbutton": "^3.1.4", - "@react-aria/utils": "^3.14.0", - "@react-stately/datepicker": "^3.1.0", - "@react-types/button": "^3.6.2", - "@react-types/calendar": "^3.0.3", - "@react-types/datepicker": "^3.1.2", - "@react-types/dialog": "^3.4.4", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@internationalized/number": "^3.2.0", + "@internationalized/string": "^3.1.0", + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/spinbutton": "^3.3.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/datepicker": "^3.3.0", + "@react-types/button": "^3.7.1", + "@react-types/calendar": "^3.1.0", + "@react-types/datepicker": "^3.2.0", + "@react-types/dialog": "^3.5.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4090,40 +4090,40 @@ } }, "node_modules/@react-aria/dialog": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.3.1.tgz", - "integrity": "sha512-Sz7XdzX3rRhmfIp1rYS5D90T1tqiDsAkONsbPBRqUJx7NrjKiHhx3wvG4shiK66cPhAZwBk7wuQmMugDeIDFSA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.0.tgz", + "integrity": "sha512-QcGwrNSn7hya6tcs0CTuYEMYBPk6YT1vaO6xMTfsSyRhJNCRvvtx/NJ3Bg26M7WvzbuC2aKaSDBw2c14ZeXr5g==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/overlays": "^3.4.1", - "@react-types/dialog": "^3.4.3", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/overlays": "^3.13.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/overlays": "^3.5.0", + "@react-types/dialog": "^3.5.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/dnd": { - "version": "3.0.0-alpha.12", - "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.0.0-alpha.12.tgz", - "integrity": "sha512-smOvMPx+W5KUm7UTi03yb0dr9RK++JorF5HjslsuwDX0S3cccqO5QqFqKpb2CuuOYTbZxcyBGIGeuJHP4s0VIA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.1.0.tgz", + "integrity": "sha512-SSkz9i7EcsoTrafDPpzlx+laYNfsUrCM7xX6yu68l9zO96kdoemZuv9OqbDBw2D1peqHT7kMoLreTLWsubb5bg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@internationalized/string": "^3.0.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/overlays": "^3.10.1", - "@react-aria/utils": "^3.13.3", - "@react-aria/visually-hidden": "^3.4.1", - "@react-stately/dnd": "3.0.0-alpha.10", - "@react-stately/selection": "^3.10.3", - "@react-types/button": "^3.6.1", - "@react-types/shared": "^3.14.1" + "@internationalized/string": "^3.1.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/overlays": "^3.13.0", + "@react-aria/utils": "^3.15.0", + "@react-aria/visually-hidden": "^3.7.0", + "@react-stately/dnd": "^3.1.0", + "@react-types/button": "^3.7.1", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4131,15 +4131,15 @@ } }, "node_modules/@react-aria/focus": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.9.0.tgz", - "integrity": "sha512-DwesjEjWjFfwAwzv9qeqkyKZNPAYmPa3UrygxzmXeKEg2JpaACGZPxRcmT2EFJFEDbX8daQDEeRGyLO49o5agg==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.11.0.tgz", + "integrity": "sha512-yPuWs9bAR9CMfIwyOPm2oXLPF19gNkUqW+ozSPhWbLMTEa8Ma09eHW1br4xbN+4ONOm/dCJsIkxTNPUkiLdQoA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/interactions": "^3.12.0", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14", "clsx": "^1.1.1" }, "peerDependencies": { @@ -4147,24 +4147,24 @@ } }, "node_modules/@react-aria/grid": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.5.0.tgz", - "integrity": "sha512-Kz92WIu8Ef55JeO0TUv58jKF5qRH0a8iuYwBeonfaRlHPFUd0jymcU7PJnm80RRpsG17FMshTGewo5ko3khDfA==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.6.1.tgz", + "integrity": "sha512-8u5oSqHrMNg4GVoOE21CEDcoAbTVpDUNg1mpJqM/ww2LrPZdEMQlU0Ro7Uq+zNg2tzVcdAtgPkh7EEErESIb4Q==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/grid": "^3.4.0", - "@react-stately/selection": "^3.11.0", - "@react-stately/virtualizer": "^3.3.1", - "@react-types/checkbox": "^3.4.0", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/grid": "^3.5.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/virtualizer": "^3.5.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4172,140 +4172,139 @@ } }, "node_modules/@react-aria/gridlist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.0.0.tgz", - "integrity": "sha512-fObfBWK6SOf6Rhd1pm7glluAHK9+r04KSWWjwmknLkrUe09QXg4Lf5cuMil/FLlnBYEGt/qthBhahV5YyckRJA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.2.1.tgz", + "integrity": "sha512-EQxtKs2c3+kzy6q4nbJoYF7sP33yTsP9NitneRLHNWuT9rdTqKCDps+e0VyXa9ynZkW9Dm5mek0n36mS8NW1zw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/grid": "^3.4.1", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/selection": "^3.10.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/list": "^3.5.3", - "@react-types/checkbox": "^3.3.3", - "@react-types/list": "^3.0.0", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/grid": "^3.6.1", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/list": "^3.7.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/i18n": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.6.1.tgz", - "integrity": "sha512-kAetWsj9HOqwaqLhmFU2udhZ+4QGGYkQOgGBJYdrB7GfLZQ1GPBlZjv3QFdkX4oSf/k9cFqgftxvVQQDYZLOew==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.7.0.tgz", + "integrity": "sha512-PZCWmhO9mJvelwiYlsXLY6W4L2o+oza3xnDx0cZDVqp/Hf+OwMAPHWtZsFRTKdjk4TaOPB/ISc9HknWn6UpY4w==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@internationalized/message": "^3.0.9", - "@internationalized/number": "^3.1.1", - "@internationalized/string": "^3.0.0", - "@react-aria/ssr": "^3.3.0", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@internationalized/message": "^3.1.0", + "@internationalized/number": "^3.2.0", + "@internationalized/string": "^3.1.0", + "@react-aria/ssr": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/interactions": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.12.0.tgz", - "integrity": "sha512-KcKurjPZwme9ggvGQjbjqZtZtuyXipTBVMHUah9a3+Dz7vXxhRg5vFaEdM79oQnNsrGFW5xS6SKBehl/JG6BMw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.14.0.tgz", + "integrity": "sha512-e1Tkr0UTuYFpV21PJrXy7jEY542Vl+C2Fo70oukZ1fN+wtfQkzodsTIzyepXb7kVMGmC34wDisMJUrksVkfY2w==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0" + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/label": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.4.2.tgz", - "integrity": "sha512-ctygLrA4yY31440UMZdw21Iz4ogXupLJB5xpTU1KFXcvybSu+H3gvVCOJu1jFwR12bTKnkVogTWT6wwVYH2nFw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.5.0.tgz", + "integrity": "sha512-sNiPYiFg06s1zGuifEUeUqRiYje0lfHem+GIUh0Y5ZxfpqIyxEmyV9Aw+C7TTjjo8BAG4NZ4bR7iF9ujf9QvKQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/utils": "^3.14.0", - "@react-types/label": "^3.7.0", - "@react-types/shared": "^3.15.0" + "@react-aria/utils": "^3.15.0", + "@react-types/label": "^3.7.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/link": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.3.3.tgz", - "integrity": "sha512-IF+Tjn7ordKBFemed32S4ipStq89Ayvk46nYy7qTKs5Tf2uttoaeGrpjI7IbtgSgt+VtOHW2JCoDxM+bu0LH3A==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.4.0.tgz", + "integrity": "sha512-d/h4y7SFO+KweMX5IRU99L1jz9AAwp6mNStkBjYGxCD29QYTVWClpZHjRlO1s6a9e2QTpk/LzsvjiytowzfHyA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/utils": "^3.13.3", - "@react-types/link": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-types/link": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/listbox": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.7.0.tgz", - "integrity": "sha512-XUWg+ll9LmzJB3WzAklwJY5A/YuRTWd5UM/WSL34aV1O6P/IdLW697Xvr6fpHWMPtkIUeNB6teAAT2M98iWx5Q==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.8.1.tgz", + "integrity": "sha512-kTIQWms6nS//GWr63gSVcNgZv7uf5RULLTKH3DIpmaftS3Kf4Sds6rspWGYQ9PAeS1EqcuHozsXXlKBo1upYgg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/interactions": "^3.12.0", - "@react-aria/label": "^3.4.2", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/collections": "^3.4.4", - "@react-stately/list": "^3.5.4", - "@react-types/listbox": "^3.3.4", - "@react-types/shared": "^3.15.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/list": "^3.7.0", + "@react-types/listbox": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/live-announcer": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.1.1.tgz", - "integrity": "sha512-e7b+dRh1SUTla42vzjdbhGYkeLD7E6wIYjYaHW9zZ37rBkSqLHUhTigh3eT3k5NxFlDD/uRxTYuwaFnWQgR+4g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.2.0.tgz", + "integrity": "sha512-uSqDDy+9CbmNTZh0Roi4dvWKWcbuMTYKh3RnUw3XBPw0aYxSkcFQeWGfxFoOwXCDcXez02cFJtAxpR2bShkrsw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "node_modules/@react-aria/menu": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.6.2.tgz", - "integrity": "sha512-uBZHGuFAtOdoocBVZzoBpZQFJmkt5axlEUKjBgh2BuR5JX8aZiSxyKnfgAeb3aDEi9PZpOp6RWxHzOMBRg4TsA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.8.1.tgz", + "integrity": "sha512-p8DF/muxbTr/SOZh3FDFPcWUcnXvpwMKyR+xKXQQPbCV/LAiSjVtwxbNVvubqvzR0Qk6/XV4/HUY2r+4tnT8tQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/overlays": "^3.11.0", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/collections": "^3.4.4", - "@react-stately/menu": "^3.4.2", - "@react-stately/tree": "^3.3.4", - "@react-types/button": "^3.6.2", - "@react-types/menu": "^3.7.2", - "@react-types/shared": "^3.15.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/overlays": "^3.13.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/menu": "^3.5.0", + "@react-stately/tree": "^3.5.0", + "@react-types/button": "^3.7.1", + "@react-types/menu": "^3.8.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4313,38 +4312,38 @@ } }, "node_modules/@react-aria/meter": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.3.1.tgz", - "integrity": "sha512-rSDyLEZamki/bxlk+POEsiMxxAUk/ysXaauvZLP4q3YdwKCs3VoNZpATWwkZNqSSwXGfpRMyLSIjQQkl/hPgyw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.0.tgz", + "integrity": "sha512-2CqpTwkZ1Vnblqd+z+mP+3ZhQRg3oNkz7GxN9nRLTDrpxVLY+WtSeIGDK7x8EwmYrVo4q4wHl3DGa2VOLNNgVA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/progress": "^3.3.1", - "@react-types/meter": "^3.2.3", - "@react-types/shared": "^3.14.1" + "@react-aria/progress": "^3.4.0", + "@react-types/meter": "^3.3.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/numberfield": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.3.2.tgz", - "integrity": "sha512-TYDFtREKXsfw46aeZmddsXrznUJuyN1ru6+zL6rJ1XZ6v6srWJx6KigoJhyuji4ZKMn5/dMoJ10YIem5hJ6zRg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.4.0.tgz", + "integrity": "sha512-gZMZAjE+tcwtdDW5X5rlot7ihir1OCCEyzbIDFztte2h+I57b45ET9P4AmgrmqfOnyscPXI3kJn9eILNYHdZVw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/spinbutton": "^3.1.4", - "@react-aria/textfield": "^3.7.2", - "@react-aria/utils": "^3.14.0", - "@react-stately/numberfield": "^3.2.2", - "@react-types/button": "^3.6.2", - "@react-types/numberfield": "^3.3.4", - "@react-types/shared": "^3.15.0", - "@react-types/textfield": "^3.6.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/spinbutton": "^3.3.0", + "@react-aria/textfield": "^3.9.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/numberfield": "^3.4.0", + "@react-types/button": "^3.7.1", + "@react-types/numberfield": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@react-types/textfield": "^3.7.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4352,22 +4351,22 @@ } }, "node_modules/@react-aria/overlays": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.11.0.tgz", - "integrity": "sha512-NqLqxSiEW9AuUPcEHCIp2lHH1moNxlkP0CkuUMkT2/T5MCPm/Iq+uD53VSR+NyeCWU/aGH3ykj2kq9NSITJkOA==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.13.0.tgz", + "integrity": "sha512-hRZyhAYzrlCcEWQ2k2jP24b0wc5/355Xl5w5FZHRmPeU1U4XlFwKX/eFlBs/li9Sprm1bTDXrCY480Kl6UsKDA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/ssr": "^3.3.0", - "@react-aria/utils": "^3.14.0", - "@react-aria/visually-hidden": "^3.5.0", - "@react-stately/overlays": "^3.4.2", - "@react-types/button": "^3.6.2", - "@react-types/overlays": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/ssr": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-aria/visually-hidden": "^3.7.0", + "@react-stately/overlays": "^3.5.0", + "@react-types/button": "^3.7.1", + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4375,81 +4374,81 @@ } }, "node_modules/@react-aria/progress": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.3.1.tgz", - "integrity": "sha512-TCBPWog2kVVyLc4F82iaqUYfrkJwZUFgZYeIOI7LNUksYmg0uDV1xCDt9EfOMBmOgPu4XdA73hEPqTz61X/8Jg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.0.tgz", + "integrity": "sha512-G8Wew/EjgzoBM6OOAtVinA0hEng/DXWZF7luCoMPuqSKOakFzzazHBMpmjcXku0GGoTGzLsqqOK1M5o3kDn4FA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.0", - "@react-aria/label": "^3.4.1", - "@react-aria/utils": "^3.13.3", - "@react-types/progress": "^3.2.3", - "@react-types/shared": "^3.14.1" + "@react-aria/i18n": "^3.7.0", + "@react-aria/label": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-types/progress": "^3.3.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/radio": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.3.1.tgz", - "integrity": "sha512-pjVuRCXjJYpcRIhemmea7A4GlrimQPY5241rOEVfmaFMQm0Ldyl2Lv/tCnpul3uWBSxPXjLLbwop4j/k9UnUBQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.5.0.tgz", + "integrity": "sha512-d/Hxdu+jUdi3wmyaWYRLTyN16vZxr2MOdkmw8tojTOIMLQj7zTaCFc0D4LR4KZEn3E0F5buGCUHL6o4CTqBeBA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/label": "^3.4.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/radio": "^3.5.1", - "@react-types/radio": "^3.2.3", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/radio": "^3.7.0", + "@react-types/radio": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/searchfield": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.4.1.tgz", - "integrity": "sha512-qwc6uFc06ET5U7UotMP2wFVi6AcNY2Zhf9VPm6TYkxlvXZ2Idrex2fYXyevs99rTbwYUAH1loP68eeEMp7uILA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.5.0.tgz", + "integrity": "sha512-eAsOiTBUeD8OiRyXUbU6fWzkEO5ERAODZJtv4yGcMdTjtKJW4jxeRwc6GXMKF3hDvdz7Y9NV6YfMCICSiVSFYg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/textfield": "^3.7.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/searchfield": "^3.3.1", - "@react-types/button": "^3.6.1", - "@react-types/searchfield": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/textfield": "^3.9.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/searchfield": "^3.4.0", + "@react-types/button": "^3.7.1", + "@react-types/searchfield": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/select": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.8.2.tgz", - "integrity": "sha512-a2lUvB9k54sfoiqyTcl+rq9GKqwcF8RMapaYxaE0VQmUVUl/hk31mTMo5y3giDCpMlrVO0jxve3nZe9YyUOOvg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.9.1.tgz", + "integrity": "sha512-SL+OZHhNLXAyX4FPP2uYj1+igB7t+pxoccO4qfrewbwPG8ext3bYx/gRQKc5A+chCY1ERIG9EQQo1vU/bZRQVA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/label": "^3.4.2", - "@react-aria/listbox": "^3.7.0", - "@react-aria/menu": "^3.6.2", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-aria/visually-hidden": "^3.5.0", - "@react-stately/select": "^3.3.2", - "@react-types/button": "^3.6.2", - "@react-types/select": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/listbox": "^3.8.1", + "@react-aria/menu": "^3.8.1", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-aria/visually-hidden": "^3.7.0", + "@react-stately/select": "^3.4.0", + "@react-types/button": "^3.7.1", + "@react-types/select": "^3.7.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4457,72 +4456,72 @@ } }, "node_modules/@react-aria/selection": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.11.0.tgz", - "integrity": "sha512-2Qcv0PxXqOrYYT1oL+TOaB+lE/jhIPzVEPHVmf8HYzEMP5WBYP8Q+R9no5s8x++b1W0DsbUVwmk9szY48O9Bmw==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.13.1.tgz", + "integrity": "sha512-YI5mFkk3JI3Ec01SzyBFGrdPInkoW5B0AavwLkN5QtehBUgdw9A1gPKADW4tiLfKUOl0rkqstP13n+v/GcBoTg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/collections": "^3.4.4", - "@react-stately/selection": "^3.11.0", - "@react-types/shared": "^3.15.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/selection": "^3.12.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/separator": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.2.3.tgz", - "integrity": "sha512-TWfyU46pEr1z7u3SHFHBd4UXr34fc+NlyRypJ/oBbsW1p4Bs2QxGEtwiqMlwRtoej6lgwPVsqy9ZB+ZdWZRpOw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.0.tgz", + "integrity": "sha512-AR3Pbik83dygOvmfBiCTRAHz+B13yyGz8nKyw521toT69RMtJTi8ha8qB6Iw1QP3YZWRv+Fn6WWrfGIvR+f2XQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/utils": "^3.13.3", - "@react-types/shared": "^3.14.1" + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/slider": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.2.1.tgz", - "integrity": "sha512-zRSOAyK6BfKliUGv+II8XEWjn/wT8ols47SeMLZvBzuWEfI74xpHMnB1jQs23Jt3PaVTZ+VziAjScBgayLeXxA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.3.0.tgz", + "integrity": "sha512-UgR2XEI3vrJAQU1RVC+1uHVr/vFcVh+Cjt/kaFUO7fdj8usqa4JOnIuX+QKCysiVLJc7IEXw4RCJBJYBSUYK6A==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/label": "^3.4.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/radio": "^3.5.1", - "@react-stately/slider": "^3.2.1", - "@react-types/radio": "^3.2.3", - "@react-types/shared": "^3.14.1", - "@react-types/slider": "^3.2.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/radio": "^3.7.0", + "@react-stately/slider": "^3.3.0", + "@react-types/radio": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@react-types/slider": "^3.4.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/spinbutton": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.1.4.tgz", - "integrity": "sha512-dVtjpeHaE+l8pJWn5lmMquyzOJi2y+yyinPGb2bpx++e692ZgeZGDckif5qE4A9nlvIOIB4afbWMs0UC1fiX0w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.3.0.tgz", + "integrity": "sha512-FXTFNz2RFClqGxQzMIHYdsjkm6fcWRObqelY+lXP5udk7Q8T9aQn+28QhqVpbOFXotLE2PltElbziJeuhkVgNA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/utils": "^3.14.0", - "@react-types/button": "^3.6.2", - "@react-types/shared": "^3.15.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/utils": "^3.15.0", + "@react-types/button": "^3.7.1", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4530,52 +4529,52 @@ } }, "node_modules/@react-aria/ssr": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.3.0.tgz", - "integrity": "sha512-yNqUDuOVZIUGP81R87BJVi/ZUZp/nYOBXbPsRe7oltJOfErQZD+UezMpw4vM2KRz18cURffvmC8tJ6JTeyDtaQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.5.0.tgz", + "integrity": "sha512-h0MJdSWOd1qObLnJ8mprU31wI8tmKFJMuwT22MpWq6psisOOZaga6Ml4u6Ee6M6duWWISjXvqO4Sb/J0PBA+nQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/switch": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.2.3.tgz", - "integrity": "sha512-+VMntitxI4j+ry51csibUJ5vKXVS6UcrB0anU7T2dZ/C19yXPQHOkRz7f+tEFaYrmAVnEaVT1TeGfEXEAt/NOg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.4.0.tgz", + "integrity": "sha512-FWbjqNcY+fAjRNXVQTvOx93udhaySgXLsMNLRAVUcFm45FqTaxAhHhNGtRnVhDvzHTJY/Y+kpcGzCcW2rXzPxg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/toggle": "^3.3.3", - "@react-stately/toggle": "^3.4.1", - "@react-types/switch": "^3.2.3" + "@react-aria/toggle": "^3.5.0", + "@react-stately/toggle": "^3.5.0", + "@react-types/switch": "^3.3.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/table": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.5.0.tgz", - "integrity": "sha512-oYcsIEYbbjAzojRWUsAdtfxPzlEKBmk6o4svDHnGqC9HSj8/yExn8b8RB0veDP7E+5IdO62pUwUy48jBwWu2uw==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.8.1.tgz", + "integrity": "sha512-21cewiqA7Wmco6baAZKHEIXTmmtwAAPkmdXnua+Ysc+18ry3Sd1GaIvFkDRSwqIH43xWtXJhlHkWhJcKxle+Xg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/grid": "^3.5.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/table": "^3.5.0", - "@react-stately/virtualizer": "^3.3.1", - "@react-types/checkbox": "^3.4.0", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0", - "@react-types/table": "^3.3.2" + "@react-aria/focus": "^3.11.0", + "@react-aria/grid": "^3.6.1", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/table": "^3.8.0", + "@react-stately/virtualizer": "^3.5.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@react-types/table": "^3.5.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -4583,90 +4582,90 @@ } }, "node_modules/@react-aria/tabs": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.3.1.tgz", - "integrity": "sha512-olKBDlh21+0TZHhO2r2wETdbkcW+9MEuiEz/pLi6PGb3b1BR/WjF8s/iCG/aLyvVed8rLmxP6ONuaXqIF8thRQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.4.1.tgz", + "integrity": "sha512-0dS26zcmNq1ERKy3kHOD465UegOBCZEHsM3+jxrMBONyG76tACyNNRyMOm0sk5h3XLravBJR/uySRhAtvBEi0w==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/selection": "^3.10.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/list": "^3.5.3", - "@react-stately/tabs": "^3.2.1", - "@react-types/shared": "^3.14.1", - "@react-types/tabs": "^3.1.3" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/list": "^3.7.0", + "@react-stately/tabs": "^3.3.0", + "@react-types/shared": "^3.17.0", + "@react-types/tabs": "^3.2.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/textfield": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.7.2.tgz", - "integrity": "sha512-GSzjSEMdLMcQmjxOKmTaphbfMan91J/VhYGkFYEYAwcSoVMjBsIl8VUOjZQ3+7LowQ0mOS4gE7ADigRj1w2f/Q==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.9.0.tgz", + "integrity": "sha512-plX+/RDidTpz4kfQni2mnH10g9iARC5P7oi4XBXqwrVCIqpTUNoyGLUH952wObYOI9k7lG2QG0+b+3GyrV159g==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/label": "^3.4.2", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0", - "@react-types/textfield": "^3.6.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/label": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@react-types/textfield": "^3.7.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/toggle": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.3.3.tgz", - "integrity": "sha512-r38b04Encch0l2ibb0Dh8w4xbRHzdvOKfSEJeWIc7wEcjBbZ8SA3Kf1CmccHIIiG8lZ3o7Qt8tEX0UmHAC6FCQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.5.0.tgz", + "integrity": "sha512-K49OmHBmYW8pk0rXJU1TNRzR+PxLVvfL/ni6ifV5gcxoxV6DmFsNFj+5B/U3AMnCEQeyKQeiY6z9X7EBVX6j9Q==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/toggle": "^3.4.1", - "@react-types/checkbox": "^3.3.3", - "@react-types/shared": "^3.14.1", - "@react-types/switch": "^3.2.3" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/toggle": "^3.5.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@react-types/switch": "^3.3.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/tooltip": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.3.1.tgz", - "integrity": "sha512-TQgv1+GzWB7D+4H21v1Wf5f3rmumgUjfR/0I7QjfV/Zb7bp3S/6BjKenk77cuY5mBnUUh8Z7YP3GzRsNq5GsGA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.4.0.tgz", + "integrity": "sha512-b1E9m6WIPNV0TNRn9VNBnDn1FFt/pwKGtIGDDablLArEmSkkz0HJjwlUqC4+vL0U2dCaQA4TxWl9GDQE7Wzl8w==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/tooltip": "^3.2.1", - "@react-types/shared": "^3.14.1", - "@react-types/tooltip": "^3.2.3" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/tooltip": "^3.3.0", + "@react-types/shared": "^3.17.0", + "@react-types/tooltip": "^3.3.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-aria/utils": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.14.0.tgz", - "integrity": "sha512-DHgmwNBNEhnb6DEYYAfbt99wprBqJJOBBeIpQ2g3+pxwlw4BZ+v4Qr+rDD0ZibWV0mYzt8zOhZ9StpId7iTF0Q==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.15.0.tgz", + "integrity": "sha512-aJZBG++iz1UwTW5gXFaHicKju4p0MPhAyBTcf2awHYWeTUUslDjJcEnNg7kjBYZBOrOSlA2rAt7/7C5CCURQPg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/ssr": "^3.3.0", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.15.0", + "@react-aria/ssr": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14", "clsx": "^1.1.1" }, "peerDependencies": { @@ -4674,70 +4673,15 @@ } }, "node_modules/@react-aria/visually-hidden": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.5.0.tgz", - "integrity": "sha512-tF/kCZCGv1yebwgH21cKbhjSV5CmB5/SAHOUM5YkO5V/lIFjaPtywcamIPI8F0JSfrwGF/Z9EqvqBxvIYGRlCA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.7.0.tgz", + "integrity": "sha512-v/0ujJ67H6LjwY8J7mIGPVB1K8suBArLV+w8UGdX/wFXRL7H4r2fiqlrwAElWSmNbhDQl5BDm/Zh/ub9jB9yzA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/interactions": "^3.12.0", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0", - "clsx": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/dnd": { - "version": "3.0.0-alpha.6", - "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.0.0-alpha.6.tgz", - "integrity": "sha512-UdO679JOh8bMh1XgKUrwqSuWOXmo5kd0QAiPIvhade6I/DK+MIRTafml+a1DyvwURpbwto//U21hpW10ilVQEg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/dnd": "3.0.0-alpha.12", - "@react-stately/dnd": "3.0.0-alpha.10", - "@react-types/shared": "^3.14.1" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/provider": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.5.2.tgz", - "integrity": "sha512-NkprgxJKgkwcRY7cSTnA9Cm52s1H1gcos5n6NHyXqLIrkJOeRLnENxfAQ1cVL7GCrXNO1SoLkJPbEUcsPa+pHQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/overlays": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-spectrum/utils": "^3.7.4", - "@react-types/provider": "^3.5.4", - "@react-types/shared": "^3.15.0", - "clsx": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/utils": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.7.4.tgz", - "integrity": "sha512-WedahiKZXm0t6xgckpZAQtjv0shpDjWCbw6tZnvpVHik6OOv33kKeMf8cdxdkZNh7/ueS/E6YLBSyZH20ICb9w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/ssr": "^3.3.0", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14", "clsx": "^1.1.1" }, "peerDependencies": { @@ -4745,734 +4689,710 @@ } }, "node_modules/@react-stately/calendar": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.0.3.tgz", - "integrity": "sha512-tpkKXaLbIiwma6TlL1/YapwLUS3ZQt/qN/9k/NRP4vNUSmSanRuOdR+B0xfbnfM2G1sp8VbdQloae9ZJ7ACo2A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.1.0.tgz", + "integrity": "sha512-PZXXHyrLoYEUAUL8oFoxHNc7mKrQXLxnYQkY9v3a6SxgST3J4tYoqIXrie0uqpm1LI+1JfKb2lyRGlVPRTBuNQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@react-stately/utils": "^3.5.1", - "@react-types/calendar": "^3.0.3", - "@react-types/datepicker": "^3.1.2", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@react-stately/utils": "^3.6.0", + "@react-types/calendar": "^3.1.0", + "@react-types/datepicker": "^3.2.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/checkbox": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.2.1.tgz", - "integrity": "sha512-n/CpIatJa9fSF4q92JvNLdHmzJcWCxFC57UDilJv7WRdsM9FMFs6Cj66R38cRUp34SlhPFi/z+pIC14MFQBJeg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.4.0.tgz", + "integrity": "sha512-zqwHMmlzza1exS6Bbqj4Mom3ygtG8pLguHweZ9OO7BFQLwBmzJsrFNqDcj7xh8iEWxXKQfZ2YOuhkaGvu4GRjA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/toggle": "^3.4.1", - "@react-stately/utils": "^3.5.1", - "@react-types/checkbox": "^3.3.3" + "@react-stately/toggle": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/collections": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.4.4.tgz", - "integrity": "sha512-gryUYCe6uzqE0ea5frTwOxOPpx/6Z42PRk7KetOh3ddN3Ts0j8XQP08jP1IB/7BC1QidrkHWvDCqGHxRiEjiIg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.6.0.tgz", + "integrity": "sha512-znkaqCPo7F1yyzEKDAB5MpX1Vw5UHcUQhDNrys5YOqAkX6/G/AChnBz0B63UxS3fjyqgnuJylRRmUp9nTqO21w==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/combobox": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.2.2.tgz", - "integrity": "sha512-kUMxgXskrtwdeEExZkJ9CjF4EJANetj+7970cOevCpy6ePCdrvdgO6+0cMrVvSgZeMaMDZXDIbbF7fqA6w0uXQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.4.0.tgz", + "integrity": "sha512-QVKNosNqSS7PnjrNVrGat9KKlCcv7e3nTehQuIu18ZE2JVH7Jdf/73zkSMurrnQfbPVeiHkGK1deWqrzoNzYQQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/list": "^3.5.4", - "@react-stately/menu": "^3.4.2", - "@react-stately/select": "^3.3.2", - "@react-stately/utils": "^3.5.1", - "@react-types/combobox": "^3.5.4", - "@react-types/shared": "^3.15.0" + "@react-stately/list": "^3.7.0", + "@react-stately/menu": "^3.5.0", + "@react-stately/select": "^3.4.0", + "@react-stately/utils": "^3.6.0", + "@react-types/combobox": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/data": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.6.1.tgz", - "integrity": "sha512-+e+f8WNu7NpHVmSOBnwHNAG67aCWWRWf96zSJ2O1QBK04v/a9aMbP8m7c1Y15CWy5PLvUEJoaXaanwthTGev+w==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.9.0.tgz", + "integrity": "sha512-67zP/QkVInsU9wtKVj1b0MwaogDCC15eEe9/ULRf6xmaw0m6VOfm/Rz4Y9OvR8cQd5o+ImuAeRYEorRJ59yK5w==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-types/shared": "^3.14.1" + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/datepicker": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.1.0.tgz", - "integrity": "sha512-v4tTHw65kOFu1jnj9JWqTLvf8pSABP6K94+bAtg60028AuwPCvJ9MGMU8LDGYGmPBcl1F0qFVo/x5pwKCv3jZQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.3.0.tgz", + "integrity": "sha512-HH/WPAMXwULyBKHICxTLGDk3cPGf9Yhf8sX2DES935aupd+6YqzQrh97buOedKsF5WKZfzMMtUVqy8uepo6S6g==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@internationalized/string": "^3.0.0", - "@react-stately/overlays": "^3.4.2", - "@react-stately/utils": "^3.5.1", - "@react-types/datepicker": "^3.1.2", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@internationalized/string": "^3.1.0", + "@react-stately/overlays": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/datepicker": "^3.2.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/dnd": { - "version": "3.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.0.0-alpha.10.tgz", - "integrity": "sha512-1yRsxVoCvZom0pMDuAAexS0kpMGbG/auWTHxChzvo9OBAWbz7VeOLIWogdAs8Jy17R08L+6NV82+KSD6zDK47A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.1.0.tgz", + "integrity": "sha512-PctHJqRm37vdKs91vB18lfdas4CypStbgj6ENApUXSDLd8XrVgthH4sYrX1BX/RbZyCr7u+TG7qVKGcRfsvbTw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/selection": "^3.10.3", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.14.1" + "@react-stately/selection": "^3.12.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/grid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.4.0.tgz", - "integrity": "sha512-Y7UrmLUAv4wW70Mb9lueawd3KEnYgAS7yNSTJn/TTZpA+6Elx3DDdjXH5pG/JiG1ot740ixOkP8feEpr8qk4bg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.5.0.tgz", + "integrity": "sha512-kCmO2KyHoIJWiCqUXJTD0I/4q/6h3pXGdyD4tWmqWdysxf+x09K/Mx/JwwFqee5LICZgt8MtBrfV+ijLZ8mQAg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/selection": "^3.11.0", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0" + "@react-stately/selection": "^3.12.0", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/layout": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.8.0.tgz", - "integrity": "sha512-0cUlkjY42YaGa0u8Z8CgNx8PIsm06zr0cr3HESCfHmvuOOR2q707PcqAd6kKuF/4NjHU4MVfuGp5z9Sm/lnjlA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.11.0.tgz", + "integrity": "sha512-QNupEFgIv5hqYEbLxDQfHgBkfk6t1VTTxWftBZMXXJEVCC1GH8vUJ35BJGO7hQNhPoTp3xc3X7yEcBlXy1ZmlA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/virtualizer": "^3.3.1", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0", - "@react-types/table": "^3.3.2" + "@react-stately/table": "^3.8.0", + "@react-stately/virtualizer": "^3.5.0", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@react-types/table": "^3.5.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/list": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.5.4.tgz", - "integrity": "sha512-AB0r2RevKVAP2AOQM1JRuCVjS2UUxMJFshA53t8pV+OSVWeyirYccsMR49mWwU60ZnxYqBWVMN+Pl7NTPTnT8w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.7.0.tgz", + "integrity": "sha512-/BxCqXFjX9P+OJWjIYmUWaOGJ2hlZHUdymVwZPkIWdO9K7069LWckdYFXRqLFMwIGLUcXVfw4jR0BIQqWlR4eA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/selection": "^3.11.0", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.15.0" + "@react-stately/collections": "^3.6.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/menu": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.4.2.tgz", - "integrity": "sha512-vFC8EloVEcqf6sgiP6ABIkC41ytjoJiGtj7Ws5OS7PvZNyxxDgJr4V0O3Pxd1T0AjlHCloBbojnvoTRwZiSr/A==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.5.0.tgz", + "integrity": "sha512-JL6TcT+SbYdlxNLOS84SXp6njDNZuXfkt05o4rS51evmjM2+hlYaB9+yUMqrCb/J2nW7vVAg51TDAhLgmGTYKg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/overlays": "^3.4.2", - "@react-stately/utils": "^3.5.1", - "@react-types/menu": "^3.7.2", - "@react-types/shared": "^3.15.0" + "@react-stately/overlays": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/menu": "^3.8.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/numberfield": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.2.2.tgz", - "integrity": "sha512-5Q71I8li7nvxVS2z7BORFp/z4YY3dphjdLkXExDsJbbEXhXtCQWm2zZuctwKxnscFm/CRRbxaclOt2BAAoLcjw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.4.0.tgz", + "integrity": "sha512-R+LjwRpspttiO0tZ8KikXu184D3HZJG37jVcp/yM1jyMURmQHWfjjR6PHuD66PSV5PtM2KQlBj6PGvDLg1UwlQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@internationalized/number": "^3.1.1", - "@react-stately/utils": "^3.5.1", - "@react-types/numberfield": "^3.3.4", - "@react-types/shared": "^3.15.0" + "@internationalized/number": "^3.2.0", + "@react-stately/utils": "^3.6.0", + "@react-types/numberfield": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/overlays": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.4.2.tgz", - "integrity": "sha512-UTCnn0aT+JL4ZhYPQYUWHwhmuR2T3vKTFUEZeZN9sTuDCctg08VfGoASJx8qofqkLwYJXeb8D5PMhhTDPiUQPw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.5.0.tgz", + "integrity": "sha512-r+U/G0Y4tCfI5wyBeIu+hmcZVRN8ChoK2zM1srPH9nDKsijQard2goX+9YmKng2LJ01Re/P6F8S8jYbpfEdLfQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/utils": "^3.5.1", - "@react-types/overlays": "^3.6.4" + "@react-stately/utils": "^3.6.0", + "@react-types/overlays": "^3.7.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/radio": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.5.1.tgz", - "integrity": "sha512-0x84/JTUshB5ZIhv4KPNaRBHztegGfHZ/dheCN/cNYiDPFmUPkce4mOYgL3byUgVabbDYqohTHkpvoA54UOgew==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.7.0.tgz", + "integrity": "sha512-TKyR6RfX1qZRPAxVWIKMTt2s3J+IlxFZHykiEl85gHBmABSWW4JO4RjkgcmbaAGLAhu1pJU8ktJOyi+MyndpHA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/utils": "^3.5.1", - "@react-types/radio": "^3.2.3" + "@react-stately/utils": "^3.6.0", + "@react-types/radio": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/searchfield": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.3.1.tgz", - "integrity": "sha512-DHIZ+IPrPQrvY/1aR3YXP6KoP+DA8d/6k/VYLtyxL75qiCAmhkVBDzWzEl/hMkBXSr2bJS2euAv6VJyR57bfKg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.4.0.tgz", + "integrity": "sha512-aaQLczPUIJwTGlllALT49RSvWY55oqmJWhLL7j3hnL1cNV0WmkmoSdAo7drDaux5vkgkurxuwMEZ8ymFYeZ+Nw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/utils": "^3.5.1", - "@react-types/searchfield": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-stately/utils": "^3.6.0", + "@react-types/searchfield": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/select": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.3.2.tgz", - "integrity": "sha512-/C9fW7HT+V9XnmSTiZZqH5cn+ifY9vdXvIKDbUyna98lFHtDgn7i/UvD5edunOGY0qqSMIO3kJ6/BiNg+gpn6Q==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.4.0.tgz", + "integrity": "sha512-thSqD3apMCSgZgKtqHKGVIQRyvG8l0supIuzJicBwq6xg+J8X5muPCZgchCSNmU6im/l81XXE8LGuHGgMilORA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/list": "^3.5.4", - "@react-stately/menu": "^3.4.2", - "@react-stately/selection": "^3.11.0", - "@react-stately/utils": "^3.5.1", - "@react-types/select": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-stately/collections": "^3.6.0", + "@react-stately/list": "^3.7.0", + "@react-stately/menu": "^3.5.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/utils": "^3.6.0", + "@react-types/select": "^3.7.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/selection": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.11.0.tgz", - "integrity": "sha512-cBgDzH+AY+bMEROJbcZFdhbMk0vgiwyqBB8ZKLtCL7EOHs2xeynTAohRM+/t27U/tF91o4qHPFo67Tkxrd16Bg==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.12.0.tgz", + "integrity": "sha512-qgUaPwqtAl7YaZxxGdb55ZaVuMB1rG+Vr+9fgG8dPtDYCNaPeIlg7ndC4ylzDhCWIx8D5qZotcrqCA4+93TwdA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.15.0" + "@react-stately/collections": "^3.6.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/slider": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.2.1.tgz", - "integrity": "sha512-LJ6ESPmDnu1H/Y750DWLLqJl3Q2RkOUp4d55YuQ/iwtSoEYxxIHflOxsbUKaTP/Ttmj9eMIXSTeW7hkWidsxQw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.3.0.tgz", + "integrity": "sha512-17aGJYHBRY3g4ZeiIgCNOvYl3HBARvSJhUKoNxZMRa2pqREW+WmBRRAXv5KTymW/KfcGb0RCq1ytYsderEgZAQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.14.1", - "@react-types/slider": "^3.2.1" + "@react-aria/i18n": "^3.7.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@react-types/slider": "^3.4.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/table": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.5.0.tgz", - "integrity": "sha512-C0HFfKMCOomqPtRCPs85AtoJGPnGu9mzFfwksFxAssdIatw3t66h5SJS0vSSql7Ku9h70scmvJR+nIOckx0IeA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.8.0.tgz", + "integrity": "sha512-WmOcW9+4zm6MQZxYEC77u5HMxTcvcotkFptohHd0YtHXx+z5iwClCVKKFG2mc5lE+K4iQE41Q56nVKLjAu+TsA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/grid": "^3.4.0", - "@react-stately/selection": "^3.11.0", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0", - "@react-types/table": "^3.3.2" + "@react-stately/collections": "^3.6.0", + "@react-stately/grid": "^3.5.0", + "@react-stately/selection": "^3.12.0", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@react-types/table": "^3.5.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/tabs": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.2.1.tgz", - "integrity": "sha512-3Z5MrJrx7Ozkp5kjhYgDs8p0kNmLocsHgq1IWgBRTRdTyQB01ixEuhR1g6A+BHFLojyDB6EKBX8TrbZPsnHRdQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.3.0.tgz", + "integrity": "sha512-Kf47+aXGf4NvnREMDqH+uuTa0QsYCxOp0poywR8lRPmYsL7V8yrTS2wXQnDL7cq8PXbL5v+ew0xmrV+BiUlNRg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/list": "^3.5.3", - "@react-stately/utils": "^3.5.1", - "@react-types/tabs": "^3.1.3" + "@react-stately/list": "^3.7.0", + "@react-stately/utils": "^3.6.0", + "@react-types/tabs": "^3.2.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/toggle": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.4.1.tgz", - "integrity": "sha512-Dlg7M9W52n0K+Op/H5ywdSCORW70ry6syPSahh+RXQKKdky9bckqmrpO24A92dL7Rci2H4fTsBgZGVla9b/wNQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.5.0.tgz", + "integrity": "sha512-vKwLLkFsiIve4pXIQC/dqLAz7Z+qtzJ8+D00EXXO1Nf8YHcyIMDkTmi3NTM8Qtvmt4xX2hbJFiPDF6WvF6mBIg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/utils": "^3.5.1", - "@react-types/checkbox": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-stately/utils": "^3.6.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/tooltip": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.2.1.tgz", - "integrity": "sha512-RUzCOfFqJvC8BrMQiWTLfLEjOYjdG3DQtMp6nKt23sxDeuTr1PlVsnTCzRGTuuYN8msfFB5dzp7Z0jxKcU95Xg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.3.0.tgz", + "integrity": "sha512-cYg4zKUc0y71L5OO5DyaCoh248A7wvXAU6VGMhppPGx+iPoWJMLBBdEJjf8Oa12NGxNv9SC5lTcv6js2k4+WwQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/overlays": "^3.4.1", - "@react-stately/utils": "^3.5.1", - "@react-types/tooltip": "^3.2.3" + "@react-stately/overlays": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/tooltip": "^3.3.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/tree": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.3.4.tgz", - "integrity": "sha512-CBgXvwa9qYBsJuxrAiVgGnm48eSxLe/6OjPMwH1pWf4s383Mx73MbbN4fS0oWDeXBVgdqz5/Xg/p8nvPIvl3WQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.5.0.tgz", + "integrity": "sha512-5+MzMQUFq3+lbGkZC0SlcIDrYmPvxBKuC8xL5W6SuFekbrrxrS6IJexRe4QulaaAliDpX2/9DVZTt38eVfyf0A==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/selection": "^3.11.0", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.15.0" + "@react-stately/collections": "^3.6.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/utils": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.5.1.tgz", - "integrity": "sha512-INeQ5Er2Jm+db8Py4upKBtgfzp3UYgwXYmbU/XJn49Xw27ktuimH9e37qP3bgHaReb5L3g8IrGs38tJUpnGPHA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.6.0.tgz", + "integrity": "sha512-rptF7iUWDrquaYvBAS4QQhOBQyLBncDeHF03WnHXAxnuPJXNcr9cXJtjJPGCs036ZB8Q2hc9BGG5wNyMkF5v+Q==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-stately/virtualizer": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.3.1.tgz", - "integrity": "sha512-1bjvrLLto3TewJRfe4bCrRKYUAdE6lPB9fn3kQhpxbWb4KW1Xl7ar/waL7JDzpwxTBbwzbxCS6nL03YxSt5tIw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.5.0.tgz", + "integrity": "sha512-Jjk7V2T9uJ2+1EaVY+v1SJYeKb9dvZKayP35bcUq8/y9+I41kNE+qmgnkr5/SVzkExu4YeZTFxtuOm4l8UX5jg==", "dev": true, "dependencies": { - "@babel/runtime": "^7.6.2", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0" + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/breadcrumbs": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.4.3.tgz", - "integrity": "sha512-ovm6nUxh5RyZ11Z3+6Fgibw/v+PPx1YAqoJxzkeliCHSN8XbrBJYguPJ0TUBH1YfIdiW1T2HetCoFI8kN8KN/Q==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.5.0.tgz", + "integrity": "sha512-Nd95NnLhrSw8Eaf2nsgAz23BT/ww6m2d2GS/gT7NxkCcqWK8Dpv8+e+JSbO7CUkHJApm76FtRz16JCdltj4CeQ==", "dev": true, "dependencies": { - "@react-types/link": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-types/link": "^3.4.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/button": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.6.2.tgz", - "integrity": "sha512-qgrYT6yiGVuZSPbzeDT6kTREQVxzJ9p5chV+JX7G5Rpjl2vyUDkEhZ5V/AHLKguBALgFaWJvjtwejHQ7FtycTw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.7.1.tgz", + "integrity": "sha512-c+8xjmqWSjI5/mEHVLbVSp0eh/z2UU8Ga+wqjbEUZUjm8uopYj1PaCAwZ7YgcAebyQrL/21GyjK6tFHKzuUdJQ==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/calendar": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.0.3.tgz", - "integrity": "sha512-W1tj21G2X8w6ZQQISLjTpVBon4D4oyZXjfrGOS5dwiWt7v7oIstalHYK6RD/Uw5feZEatfzNg6gE5/0UbGw2RA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.1.0.tgz", + "integrity": "sha512-6VKBxG27cLKti8Ik+T2N1y6FqJSgIXuQPMehOA1ASqPQLtnRBEoSgLjuN5qj7RTWgmdTvQmofqVznVFoUe5ozQ==", "dev": true, "dependencies": { - "@internationalized/date": "^3.0.1", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/checkbox": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.4.0.tgz", - "integrity": "sha512-ZDqbtAYWWSGPjL4ydinaWHrD65Qft9yEGA6BCKQTxdJCgxiXxgGkA3pI7Sxwk+OulR+O0CYJ1JROExM9cSJyyQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.4.2.tgz", + "integrity": "sha512-/NWFCEQLvVgo25afPt2jv4syxYvZeY/D/n2Y92IGtoNV4akdz4AuQ65+1X+JOhQc/ZbAblWw5fFWUZoQs3CLZg==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/combobox": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.5.4.tgz", - "integrity": "sha512-boVrxvARZBuhZSmhcaShty/JXaJRKNm3fx0zKcqyfB8iFpszltMfv2w23cRzc8BVA5bA6RRTsiKf8hEjkqFnxg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.6.0.tgz", + "integrity": "sha512-tfZtZ12Kf2bKt3EcFKWcUxrLNc61Y1CGynsOQ/KvHTFwlLTTtKnt/wWuf4kxdqlTK7dDqJzWRGWKlWx6eKlx3w==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/datepicker": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.1.2.tgz", - "integrity": "sha512-LcWVA1Dgp/T8bq/Yav1CuP0z7/7vEAAdR1soZr0hMl7yV7691jw2pgCZMVi7j5DMjhtxiqzo9ZCfuu/TiC9jzQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.2.0.tgz", + "integrity": "sha512-wcxLI6aW+r6nO2bsypxMIaWJHG5YYAD7WtJmhR5n5GK5juUCu/hzKBhdwxE1qtD3kMvIKTDJkMXLVNGmJP0mFw==", "dev": true, "dependencies": { - "@internationalized/date": "^3.0.1", - "@react-types/overlays": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/dialog": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.4.4.tgz", - "integrity": "sha512-mBaoQn+2nd14j0WSTfqGMb8dfG6Nak4+S9HqbJeP6UjKfwnmF8aXQ/Z3EYPNcwwDB+fNYStPagxRdBeqJ1GK4g==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.0.tgz", + "integrity": "sha512-QsHqAK8zE4QSCQTJcRm/e6vweSE8S62o4GGvm+e+crMro/doA4it1Y4udE94Yy3WyDQEMFxyfd2P1Q6bI9JuyQ==", "dev": true, "dependencies": { - "@react-types/overlays": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/grid": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.1.4.tgz", - "integrity": "sha512-i9f2VEnlex5BFV/AdSUGg71xoukn2i/XT2VLxUXUagy23gFxKJk9Xr3BT9bw+pRRLPwm/Ib+h9ELUdgi8lUAKA==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.1.6.tgz", + "integrity": "sha512-j6dO5KgkuIbIhEZYSxd86ZomohCyv3VNQhY2qBHlRoxZs0976komauEOjOpMOu0PxwsFGUgUFqlKOtc34f1SHQ==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/label": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.7.0.tgz", - "integrity": "sha512-33iQQ3aC34+yKECvSHJ8DDWwd32rm2TZhABX513DYwuCupIxs+BrgHvcfp2YLmz2Fh5UTMSfJXDA74Tbd0XwLg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.7.2.tgz", + "integrity": "sha512-UlsIvxQjBMl9WwJw1bYoJMwiPvYwRsSLl2yoeeGfGr6IaYn5T/2kzBhDLwe5cpKrmi4Mehn1rbReFLGITOy8+g==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/link": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.3.3.tgz", - "integrity": "sha512-s1inMEaSd2n2GPuULevdVmHkgXXN4ybJXeNPpjN1POlan35k3GgWRPz7F4vc0m/Zy1ZAH5sf37hhQRcbS05+nA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.4.0.tgz", + "integrity": "sha512-eImWLzxwzSmjOLa0Ow3HJaguyDCz98191v2pb7nT/zPzGDnhHhDjxB023hrXVUoCbsWrCb5QLp91Ts+VjiCyTA==", "dev": true, "dependencies": { - "@react-aria/interactions": "^3.11.0", - "@react-types/shared": "^3.14.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-types/list/-/list-3.0.0.tgz", - "integrity": "sha512-NZkgDYJFIJC2pPFg7vG5hp6FqthnfrLa9jwdfNCsMzgtWRrKB0WqhY9+36CVuYdHB4XfJ5nvwT5zdBBlU+Fh3Q==", - "dev": true, - "dependencies": { - "@react-spectrum/dnd": "3.0.0-alpha.6", - "@react-types/shared": "^3.14.1" + "@react-aria/interactions": "^3.14.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/listbox": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.3.4.tgz", - "integrity": "sha512-/wKUxIj/F7JekEFpsxQS4Za3OqwKop3orD67tmJh9xD8Abcj+YjGVNrjQuBvbq1hzTPgefNrb42Y4aqnqZojIg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.0.tgz", + "integrity": "sha512-OvHaX4EBRHxKrfFItdJXjY7dYomzejqJ87P5fTL1l1TbDX8gvEP014S3cI+VLQq+EsXeTZ8E/sx0tFUo7ilchA==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/menu": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.7.2.tgz", - "integrity": "sha512-BXMWrT3VCP6NTf0y7v1YYqRJNXkUKLzGXI+n7Qv9+aiZZfd3NNMyk20byHczhFoT2yuCcU5xhyOXzkxSo6ew3A==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.8.0.tgz", + "integrity": "sha512-1nwGUwKNHJf60vOsg7p48NPQIzMsSprxw8VXfStr8eE5uU4vvKfVNQNUgvpkRmHmel8BrYdh1WnERXJJ3yKUgQ==", "dev": true, "dependencies": { - "@react-types/overlays": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/meter": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.2.3.tgz", - "integrity": "sha512-GuCi9H2ptceaK77E9hVn1SHEmUwQ9BxKpWPZEFpljeL6vO8E976DuIcGMyNnedwLkODeJVkiRhGfTG2UV4J8tg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.0.tgz", + "integrity": "sha512-/IAHquSb+tC/YjcXdcYinFTb7puakkQWzNwS4lkhisIoZ0K0Ym/3fat/nzjgG9s2+sqQrW6f3Ndp9GCfSzvHLg==", "dev": true, "dependencies": { - "@react-types/progress": "^3.2.3", - "@react-types/shared": "^3.14.1" + "@react-types/progress": "^3.3.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/numberfield": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.3.4.tgz", - "integrity": "sha512-j8yeC7tR7YohKy65RLcH+Ckbjw8timkIjmZD2m/ABec84qhVDyLGzECFq16YNFBHE70vn5r45yVqCW2DtQKkYg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.4.0.tgz", + "integrity": "sha512-3kKkCFJ9cqCHuoz2BWy3DZLg6SQzqjzbO3DvNTrORd2k7bsI0Ydlfsz1rkCU53GStqovgopX4jo6EZLeRfv05Q==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/overlays": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.6.4.tgz", - "integrity": "sha512-REC4IyDUHS5WhwxMxcvTo+LdrvlSYpJKjyYkPFtJoDBpM3gmXfakTY3KW6K5eZkFv3TnmXjDF9Q2yboEk2u6WQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.7.0.tgz", + "integrity": "sha512-LstucncZ8dM+xJYEijI1V6jGH20w5XO/T60r7JTrgQElMC86phPeoWkMTN4c2lsRikybolDbvXL6XsF76YO56A==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/progress": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.2.3.tgz", - "integrity": "sha512-j5vmngxcdm603/Fi0lz0L/SwpS4TRpYjtTRKPI/sXouSpodfYJgFQfd3FHxGTqTwpxOWKAMA1tKP90/DLT9HTg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.3.0.tgz", + "integrity": "sha512-k4xivWiEYogsROLyNqVDVjl33rm+X9RKNbKQXg5pqjGikaC8T9hmIwE4tJr26XkMIIvQS6duEBCcuQN/U1+dGQ==", "dev": true, "dependencies": { - "@react-types/shared": "^3.14.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/provider": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.5.4.tgz", - "integrity": "sha512-mVnJw/rnD9sahMN474RE55FTv6E7h0vsn9QTZM6Bxe1Nf6zA3OokLGS4m+tEVQxoHnvMPSBg26yBPWo+jQWHMQ==", - "dev": true, - "peer": true, - "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/radio": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.2.3.tgz", - "integrity": "sha512-TiW0PJPQuVKcni8UWI84hc8dYGDsuSkKT/Dgj1r82csYGz/92RnyQDF12CCg9+MpqWZweK30uYQzbtrxa74qBg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.4.0.tgz", + "integrity": "sha512-klgEU+987xVUCRqBoxXJiPJvy0upfo76dFnK5eF7U7BzcxhuiFeLDUcqUHtK92Cy5QOiDAF2ML0vUYGIabKMPA==", "dev": true, "dependencies": { - "@react-types/shared": "^3.14.1" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/searchfield": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.3.3.tgz", - "integrity": "sha512-LZuYs2nZKvA77YhvRz96QF0c2RHqoXtE2DWuVPEHxPMQHgIDUpE/NBja7VO5//Ft5xgW8oHIDyXHUggilR23Tw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.4.0.tgz", + "integrity": "sha512-rYupNbyBAjycx6SXCALjINj/nOx7lIq9f4Dk1xo1dd8X6yYU0EF4WlahNua7UV8JC5oYlxN40G7yi4lAS+CdWQ==", "dev": true, "dependencies": { - "@react-types/shared": "^3.14.1", - "@react-types/textfield": "^3.5.3" + "@react-types/shared": "^3.17.0", + "@react-types/textfield": "^3.7.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/select": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.6.4.tgz", - "integrity": "sha512-lbiv7XUEdByluILjEAYVZic2uq4pU0BzW+qZ+sBCYn7v8q2hxXP7T0C6OamzfgXokQHhJ6247JDk7kugqXKL4Q==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.7.0.tgz", + "integrity": "sha512-BaynMuW0dQ9ModFzW291+3n1D9bwKSFh03g3+1PvhRcBg1EXq1vFyfFBj4uuBymI0T7oCbnjGh19xo0vKIYRrA==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/shared": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.15.0.tgz", - "integrity": "sha512-hwuE4BmgswqP+HRDSLMj7DcnYOCCK+ZRuKnc9AVhXS4LBrwRSkdUkNvXhgvqF5tav7IqTpG9pBYMR9wedehuhA==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.17.0.tgz", + "integrity": "sha512-1SNZ/RhVrrQ1e6yE0bPV7d5Sfp+Uv0dfUEhwF9MAu2v5msu7AMewnsiojKNA0QA6Ing1gpDLjHCxtayQfuxqcg==", "dev": true, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/slider": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.2.1.tgz", - "integrity": "sha512-adqWZLE2IEzqBGnGHKYQwJ2IY4xlwFcPt3KWCsfp1c1WyG/d7xxQus8rL4eWLqoiMgguTxbYm9F2TF77itw8JA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.4.0.tgz", + "integrity": "sha512-Kj+B6njpm4ltiu3gCBOPRnbzllV21IVr0bCQdNnWcf5DX8aN4VdI8EFkTz0DSwMm2WPCwZop0MDWDoRwXJK1ng==", "dev": true, "dependencies": { - "@react-types/shared": "^3.14.1" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/switch": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.2.3.tgz", - "integrity": "sha512-EKs8FZfRM1zCD5kgLNi8wQKiPMayABZiAhfzkBgHRwlip1joI4F5oXTyonY8hgHrxLP5GUXFL+rNkYOo6LX1uQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.3.0.tgz", + "integrity": "sha512-6h+s//PwWf7/WJQOZKT6k1vdOQCcvPmMZW333AqyxtZX8WV8Q0illgcLMYo5qxT3IWsjYNuPIqMCY+tRbSeA2Q==", "dev": true, "dependencies": { - "@react-types/checkbox": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/table": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.3.2.tgz", - "integrity": "sha512-BIYehWSfvPRkneKKKB7YEWD4wZAVVLBf2N0M2jjsVdshK9ZpjQPgOMI6YKjiWGC/ZLZFrAysKRploaIw4Cb+TQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.5.0.tgz", + "integrity": "sha512-/Mvn1MQbdnk7i6ivam8kdIh2PKF9GD3A7KC8v1E4JNAgsbOzOkt5JC4PMc1EtAK2eppMEKTN+B84oHKMl1F8Hg==", "dev": true, "dependencies": { - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0" + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/tabs": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.1.3.tgz", - "integrity": "sha512-RfHVSsbQiiIaJxf1qBdTt+mWj1GGC7AK/sXAQGhf3p3bi8fXBcXv2hZyPQF8uWZfb8sANtEXP8V3Xdg5SlWFGA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.2.0.tgz", + "integrity": "sha512-rOQm+JDYcGV+HE/EQ23vr6J3tqvXjFiDA107rU7n4B4mNjJ46k5gOhPdGTosv6wr1+Tp7XD5XMaFfqk+O0/ZZw==", "dev": true, "dependencies": { - "@react-types/shared": "^3.14.1" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/textfield": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.6.0.tgz", - "integrity": "sha512-fEa/lTqpWBn7ZE0cDsc700OhTBAxiy8ifm8AQcLYfZuRX4zqRoMpkXMWN0XMjYfoZzNrS0LJJ6pLBHTwrlXWWA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.7.0.tgz", + "integrity": "sha512-4Rqld8VZG324hecw6bqGY2gta1gm5sDhO48nyChfdmjVlFHXLDKazAcrgP76uSmUI6tffUPj3eYxQyTp5uLhyQ==", "dev": true, "dependencies": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, "node_modules/@react-types/tooltip": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.2.3.tgz", - "integrity": "sha512-Q74S6crirrEu5sEZ0hvr8HjaafqE8BNlvYjD6yD42ArDM0XatkQ+AAtlVkwd+DD9lZMrMhZ35JBBuPPpzUgwQA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.3.0.tgz", + "integrity": "sha512-TMaKkjYbysZbMnY8zjI2Djh8QMHvB8LoN9EjOZX++3ZsO74CeCeOoGARh6+4c0Bu5rg4BXhNyi+y1JL3jtUEBg==", "dev": true, "dependencies": { - "@react-types/overlays": "^3.6.3", - "@react-types/shared": "^3.14.1" + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" @@ -6307,6 +6227,21 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, + "node_modules/@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@swc/helpers/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -9027,9 +8962,9 @@ } }, "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "dev": true, "engines": { "node": ">=6" @@ -12694,21 +12629,21 @@ } }, "node_modules/intl-messageformat": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.1.5.tgz", - "integrity": "sha512-bDQz81oQ6TkQp1pSnlBK36ahGL5/tLb0+3hSiG/1/SnVbz5NWPQTqaPx2cT7nmGujDrPn9pQ0ik8RWE8v1lzEw==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.3.3.tgz", + "integrity": "sha512-un/f07/g2e/3Q8e1ghDKET+el22Bi49M7O/rHxd597R+oLpPOMykSv5s51cABVfu3FZW+fea4hrzf2MHu1W4hw==", "dev": true, "dependencies": { - "@formatjs/ecma402-abstract": "1.12.0", - "@formatjs/fast-memoize": "1.2.6", - "@formatjs/icu-messageformat-parser": "2.1.8", - "tslib": "2.4.0" + "@formatjs/ecma402-abstract": "1.14.3", + "@formatjs/fast-memoize": "2.0.1", + "@formatjs/icu-messageformat-parser": "2.3.0", + "tslib": "^2.4.0" } }, "node_modules/intl-messageformat/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "node_modules/invariant": { @@ -18631,43 +18566,45 @@ } }, "node_modules/react-aria": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.19.0.tgz", - "integrity": "sha512-QyjuLXwHlnrEW8kciSKkjkUN92PJjvOuqpLr6kMjiQicIwSO+EnIL2pqq9+CmYzVc27z7opAAcvW9/AkXvlqPA==", + "version": "3.23.1", + "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.23.1.tgz", + "integrity": "sha512-fptvkglL/HiX/llx2QCCt4WUJzuj6SLoyUJzF50kOLnX+sz5QhWQ+6dCEN/d3TWCRaXudC1nREUu8MgoV+lg7g==", "dev": true, "dependencies": { - "@react-aria/breadcrumbs": "^3.3.1", - "@react-aria/button": "^3.6.1", - "@react-aria/calendar": "^3.0.2", - "@react-aria/checkbox": "^3.5.1", - "@react-aria/combobox": "^3.4.1", - "@react-aria/datepicker": "^3.1.1", - "@react-aria/dialog": "^3.3.1", - "@react-aria/focus": "^3.8.0", - "@react-aria/gridlist": "^3.0.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/label": "^3.4.1", - "@react-aria/link": "^3.3.3", - "@react-aria/listbox": "^3.6.1", - "@react-aria/menu": "^3.6.1", - "@react-aria/meter": "^3.3.1", - "@react-aria/numberfield": "^3.3.1", - "@react-aria/overlays": "^3.10.1", - "@react-aria/progress": "^3.3.1", - "@react-aria/radio": "^3.3.1", - "@react-aria/searchfield": "^3.4.1", - "@react-aria/select": "^3.8.1", - "@react-aria/separator": "^3.2.3", - "@react-aria/slider": "^3.2.1", - "@react-aria/ssr": "^3.3.0", - "@react-aria/switch": "^3.2.3", - "@react-aria/table": "^3.4.1", - "@react-aria/tabs": "^3.3.1", - "@react-aria/textfield": "^3.7.1", - "@react-aria/tooltip": "^3.3.1", - "@react-aria/utils": "^3.13.3", - "@react-aria/visually-hidden": "^3.4.1" + "@react-aria/breadcrumbs": "^3.5.0", + "@react-aria/button": "^3.7.0", + "@react-aria/calendar": "^3.1.0", + "@react-aria/checkbox": "^3.8.0", + "@react-aria/combobox": "^3.5.1", + "@react-aria/datepicker": "^3.3.0", + "@react-aria/dialog": "^3.5.0", + "@react-aria/dnd": "^3.1.0", + "@react-aria/focus": "^3.11.0", + "@react-aria/gridlist": "^3.2.1", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/link": "^3.4.0", + "@react-aria/listbox": "^3.8.1", + "@react-aria/menu": "^3.8.1", + "@react-aria/meter": "^3.4.0", + "@react-aria/numberfield": "^3.4.0", + "@react-aria/overlays": "^3.13.0", + "@react-aria/progress": "^3.4.0", + "@react-aria/radio": "^3.5.0", + "@react-aria/searchfield": "^3.5.0", + "@react-aria/select": "^3.9.1", + "@react-aria/selection": "^3.13.1", + "@react-aria/separator": "^3.3.0", + "@react-aria/slider": "^3.3.0", + "@react-aria/ssr": "^3.5.0", + "@react-aria/switch": "^3.4.0", + "@react-aria/table": "^3.8.1", + "@react-aria/tabs": "^3.4.1", + "@react-aria/textfield": "^3.9.0", + "@react-aria/tooltip": "^3.4.0", + "@react-aria/utils": "^3.15.0", + "@react-aria/visually-hidden": "^3.7.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", @@ -18792,32 +18729,33 @@ } }, "node_modules/react-stately": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.17.0.tgz", - "integrity": "sha512-wAclTwKXt2BoK1OLajxkW+Zl0gQer3qL/eDaNd98xvK4IYlEBxcCVXzvvzkMcOzPai2iqPFAk0w6PzMjlhUy1g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.21.0.tgz", + "integrity": "sha512-nnGkuRAoq9auj5SYRwxM6eVYvkS9WhxH9iKuzlqE1Gverp3JDFMFgKSaG/DFWG/m1TPlGvwYUwdVjyhINsFUqA==", "dev": true, "dependencies": { - "@react-stately/calendar": "^3.0.2", - "@react-stately/checkbox": "^3.2.1", - "@react-stately/collections": "^3.4.3", - "@react-stately/combobox": "^3.2.1", - "@react-stately/data": "^3.6.1", - "@react-stately/datepicker": "^3.0.2", - "@react-stately/list": "^3.5.3", - "@react-stately/menu": "^3.4.1", - "@react-stately/numberfield": "^3.2.1", - "@react-stately/overlays": "^3.4.1", - "@react-stately/radio": "^3.5.1", - "@react-stately/searchfield": "^3.3.1", - "@react-stately/select": "^3.3.1", - "@react-stately/selection": "^3.10.3", - "@react-stately/slider": "^3.2.1", - "@react-stately/table": "^3.4.0", - "@react-stately/tabs": "^3.2.1", - "@react-stately/toggle": "^3.4.1", - "@react-stately/tooltip": "^3.2.1", - "@react-stately/tree": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-stately/calendar": "^3.1.0", + "@react-stately/checkbox": "^3.4.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/combobox": "^3.4.0", + "@react-stately/data": "^3.9.0", + "@react-stately/datepicker": "^3.3.0", + "@react-stately/dnd": "^3.1.0", + "@react-stately/list": "^3.7.0", + "@react-stately/menu": "^3.5.0", + "@react-stately/numberfield": "^3.4.0", + "@react-stately/overlays": "^3.5.0", + "@react-stately/radio": "^3.7.0", + "@react-stately/searchfield": "^3.4.0", + "@react-stately/select": "^3.4.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/slider": "^3.3.0", + "@react-stately/table": "^3.8.0", + "@react-stately/tabs": "^3.3.0", + "@react-stately/toggle": "^3.5.0", + "@react-stately/tooltip": "^3.3.0", + "@react-stately/tree": "^3.5.0", + "@react-types/shared": "^3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" @@ -22900,90 +22838,90 @@ "optional": true }, "@formatjs/ecma402-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.12.0.tgz", - "integrity": "sha512-0/wm9b7brUD40kx7KSE0S532T8EfH06Zc41rGlinoNyYXnuusR6ull2x63iFJgVXgwahm42hAW7dcYdZ+llZzA==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz", + "integrity": "sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg==", "dev": true, "requires": { - "@formatjs/intl-localematcher": "0.2.31", - "tslib": "2.4.0" + "@formatjs/intl-localematcher": "0.2.32", + "tslib": "^2.4.0" }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true } } }, "@formatjs/fast-memoize": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.6.tgz", - "integrity": "sha512-9CWZ3+wCkClKHX+i5j+NyoBVqGf0pIskTo6Xl6ihGokYM2yqSSS68JIgeo+99UIHc+7vi9L3/SDSz/dWI9SNlA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.0.1.tgz", + "integrity": "sha512-M2GgV+qJn5WJQAYewz7q2Cdl6fobQa69S1AzSM2y0P68ZDbK5cWrJIcPCO395Of1ksftGZoOt4LYCO/j9BKBSA==", "dev": true, "requires": { - "tslib": "2.4.0" + "tslib": "^2.4.0" }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true } } }, "@formatjs/icu-messageformat-parser": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.8.tgz", - "integrity": "sha512-T1R/UtPSCdznwjlfIJDl9XnjZdcFap+rPJrKC9uATr/sUdziVad3SfRQFf50JOuHptbk6knz+VdiYdApek4Sag==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.3.0.tgz", + "integrity": "sha512-xqtlqYAbfJDF4b6e4O828LBNOWXrFcuYadqAbYORlDRwhyJ2bH+xpUBPldZbzRGUN2mxlZ4Ykhm7jvERtmI8NQ==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.12.0", - "@formatjs/icu-skeleton-parser": "1.3.13", - "tslib": "2.4.0" + "@formatjs/ecma402-abstract": "1.14.3", + "@formatjs/icu-skeleton-parser": "1.3.18", + "tslib": "^2.4.0" }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true } } }, "@formatjs/icu-skeleton-parser": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.13.tgz", - "integrity": "sha512-qb1kxnA4ep76rV+d9JICvZBThBpK5X+nh1dLmmIReX72QyglicsaOmKEcdcbp7/giCWfhVs6CXPVA2JJ5/ZvAw==", + "version": "1.3.18", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz", + "integrity": "sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.12.0", - "tslib": "2.4.0" + "@formatjs/ecma402-abstract": "1.14.3", + "tslib": "^2.4.0" }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true } } }, "@formatjs/intl-localematcher": { - "version": "0.2.31", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.31.tgz", - "integrity": "sha512-9QTjdSBpQ7wHShZgsNzNig5qT3rCPvmZogS/wXZzKotns5skbXgs0I7J8cuN0PPqXyynvNVuN+iOKhNS2eb+ZA==", + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz", + "integrity": "sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ==", "dev": true, "requires": { - "tslib": "2.4.0" + "tslib": "^2.4.0" }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true } } @@ -23404,40 +23342,40 @@ "dev": true }, "@internationalized/date": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.0.1.tgz", - "integrity": "sha512-E/3lASs4mAeJ2Z2ye6ab7eUD0bPUfTeNVTAv6IS+ne9UtMu9Uepb9A1U2Ae0hDr6WAlBuvUtrakaxEdYB9TV6Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.1.0.tgz", + "integrity": "sha512-wjeur7K4AecT+YwoBmBXQ/+n5lP69tuZc34hw09s44EozZK7FZHSyfPvRp5/xEb2D6abLboskDY4jG+Nt0TNUQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "@internationalized/message": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.0.9.tgz", - "integrity": "sha512-yHQggKWUuSvj1GznVtie4tcYq+xMrkd/lTKCFHp6gG18KbIliDw+UI7sL9+yJPGuWiR083xuLyyhzqiPbNOEww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.0.tgz", + "integrity": "sha512-Oo5m70FcBdADf7G8NkUffVSfuCdeAYVfsvNjZDi9ELpjvkc4YNJVTHt/NyTI9K7FgAVoELxiP9YmN0sJ+HNHYQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", + "@swc/helpers": "^0.4.14", "intl-messageformat": "^10.1.0" } }, "@internationalized/number": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.1.1.tgz", - "integrity": "sha512-dBxCQKIxvsZvW2IBt3KsqrCfaw2nV6o6a8xsloJn/hjW0ayeyhKuiiMtTwW3/WGNPP7ZRyDbtuiUEjMwif1ENQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.2.0.tgz", + "integrity": "sha512-GUXkhXSX1Ee2RURnzl+47uvbOxnlMnvP9Er+QePTjDjOPWuunmLKlEkYkEcLiiJp7y4l9QxGDLOlVr8m69LS5w==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "@internationalized/string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.0.0.tgz", - "integrity": "sha512-NUSr4u+mNu5BysXFeVWZW4kvjXylPkU/YYqaWzdNuz1eABfehFiZTEYhWAAMzI3U8DTxfqF9PM3zyhk5gcfz6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.1.0.tgz", + "integrity": "sha512-TJQKiyUb+wyAfKF59UNeZ/kELMnkxyecnyPCnBI1ma4NaXReJW+7Cc2mObXAqraIBJUVv7rgI46RLKrLgi35ng==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "@istanbuljs/load-nyc-config": { @@ -24571,1234 +24509,1171 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "@react-aria/breadcrumbs": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.3.1.tgz", - "integrity": "sha512-WlM2U/H7tFoaE4VO6pmbiiVI53E/BU2EX717hozTGDe8qCvcLTX6XSW2o2XtAGyMfAQkYOeTo7LAKss4yfcx4g==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.0.tgz", + "integrity": "sha512-WiNMlk8COR+4zpJ8mFgTgWQqCxoFE6OMJ16anJzR8IgP1xMzUmIQ7l0s0Dv4D5qE+xVlgNF0ccDdw1x6A+WzPw==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/link": "^3.3.3", - "@react-aria/utils": "^3.13.3", - "@react-types/breadcrumbs": "^3.4.3", - "@react-types/shared": "^3.14.1" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/link": "^3.4.0", + "@react-aria/utils": "^3.15.0", + "@react-types/breadcrumbs": "^3.5.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/button": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.6.1.tgz", - "integrity": "sha512-g10dk0eIQ71F1QefUymbff0yceQFHEKzOwK7J5QAFB5w/FUSmCTsMkBrrra4AogRxYHIAr5adPic5F2g7VzQFw==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.7.0.tgz", + "integrity": "sha512-4DSGXrAWflzT4cQe/x0KdrPzz7hv9vZgqYJuNXQkpmeIMs1EmUKuby2xC+W9GHuZ+8dMxjTWKy3XdwX2tCM42A==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/toggle": "^3.4.1", - "@react-types/button": "^3.6.1", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/toggle": "^3.5.0", + "@react-types/button": "^3.7.1", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/calendar": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.0.3.tgz", - "integrity": "sha512-/hCOB1LPFZvUFTLkx/rF49KZRcWZlHO5He1yVINuJ77bbn4YS82ZBINPblnP5bBMjJHhnRf4EmVQuEZq2IHTLw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.1.0.tgz", + "integrity": "sha512-XWtoGMBTYpj5De2yfboAv60SMXa/T2BjPd0uSkiaPXAC0vPjdB0VPhGbSi6LKCYIiTAMs98mMP0P4WYhWyW4jA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/utils": "^3.14.0", - "@react-stately/calendar": "^3.0.3", - "@react-types/button": "^3.6.2", - "@react-types/calendar": "^3.0.3", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/calendar": "^3.1.0", + "@react-types/button": "^3.7.1", + "@react-types/calendar": "^3.1.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/checkbox": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.5.1.tgz", - "integrity": "sha512-a3ONNbjV4nkLRV7G+hQysHwkvKTtB1++A4ceL8psbvbslii62F6qYzmgp/AK5D086cQJGxiqkEPLi049xfGuDA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.8.0.tgz", + "integrity": "sha512-VjezmSfDx1/A+Yz5naZ9xCxkasmtsO7uK+Ur+Z6bKmHwvoazRK5cATdRG4mj++0JUBYn6bvBGBEXFZHTkkGahw==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/label": "^3.4.1", - "@react-aria/toggle": "^3.3.3", - "@react-aria/utils": "^3.13.3", - "@react-stately/checkbox": "^3.2.1", - "@react-stately/toggle": "^3.4.1", - "@react-types/checkbox": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-aria/label": "^3.5.0", + "@react-aria/toggle": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/checkbox": "^3.4.0", + "@react-stately/toggle": "^3.5.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/combobox": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.4.2.tgz", - "integrity": "sha512-LFB0L2WLR7hc5J2c36jdgekHigLv4PwZfNRlh+B4VX474pS9Zt33F0FIrCKsYZA8xXzvM+lXr4POjwsoBhmnJw==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.5.1.tgz", + "integrity": "sha512-HyBX98TvQe8IscJlRz6TxgvMlYcwy9iTA/GWjy3bMNjUfxPaRZh5r69aG8JlTRvVDLE13cUSh0mKsTSjo8evvQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/listbox": "^3.7.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/menu": "^3.6.2", - "@react-aria/overlays": "^3.11.0", - "@react-aria/selection": "^3.11.0", - "@react-aria/textfield": "^3.7.2", - "@react-aria/utils": "^3.14.0", - "@react-stately/collections": "^3.4.4", - "@react-stately/combobox": "^3.2.2", - "@react-stately/layout": "^3.8.0", - "@react-types/button": "^3.6.2", - "@react-types/combobox": "^3.5.4", - "@react-types/shared": "^3.15.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/listbox": "^3.8.1", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/menu": "^3.8.1", + "@react-aria/overlays": "^3.13.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/textfield": "^3.9.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/combobox": "^3.4.0", + "@react-stately/layout": "^3.11.0", + "@react-types/button": "^3.7.1", + "@react-types/combobox": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/datepicker": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.1.2.tgz", - "integrity": "sha512-jzO3yTSbOlLVBo1Omw3xNXBg0HfpmObI1w5qzlfkQt7rK2nzToKnA5/XNsjiEODDwv7l03nOj+100a6trdLOTw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.3.0.tgz", + "integrity": "sha512-76/5a2Dfe/SCcW0j4hqeSTnlh6SSW/AYPKPr5fNaiGnLFJ3oLsc9SAuUgTsOBglR/J3N/hqtH+UO2U8X1QC6Ng==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@internationalized/number": "^3.1.1", - "@internationalized/string": "^3.0.0", - "@react-aria/focus": "^3.9.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/label": "^3.4.2", - "@react-aria/spinbutton": "^3.1.4", - "@react-aria/utils": "^3.14.0", - "@react-stately/datepicker": "^3.1.0", - "@react-types/button": "^3.6.2", - "@react-types/calendar": "^3.0.3", - "@react-types/datepicker": "^3.1.2", - "@react-types/dialog": "^3.4.4", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@internationalized/number": "^3.2.0", + "@internationalized/string": "^3.1.0", + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/spinbutton": "^3.3.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/datepicker": "^3.3.0", + "@react-types/button": "^3.7.1", + "@react-types/calendar": "^3.1.0", + "@react-types/datepicker": "^3.2.0", + "@react-types/dialog": "^3.5.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/dialog": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.3.1.tgz", - "integrity": "sha512-Sz7XdzX3rRhmfIp1rYS5D90T1tqiDsAkONsbPBRqUJx7NrjKiHhx3wvG4shiK66cPhAZwBk7wuQmMugDeIDFSA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.0.tgz", + "integrity": "sha512-QcGwrNSn7hya6tcs0CTuYEMYBPk6YT1vaO6xMTfsSyRhJNCRvvtx/NJ3Bg26M7WvzbuC2aKaSDBw2c14ZeXr5g==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/overlays": "^3.4.1", - "@react-types/dialog": "^3.4.3", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/overlays": "^3.13.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/overlays": "^3.5.0", + "@react-types/dialog": "^3.5.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/dnd": { - "version": "3.0.0-alpha.12", - "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.0.0-alpha.12.tgz", - "integrity": "sha512-smOvMPx+W5KUm7UTi03yb0dr9RK++JorF5HjslsuwDX0S3cccqO5QqFqKpb2CuuOYTbZxcyBGIGeuJHP4s0VIA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.1.0.tgz", + "integrity": "sha512-SSkz9i7EcsoTrafDPpzlx+laYNfsUrCM7xX6yu68l9zO96kdoemZuv9OqbDBw2D1peqHT7kMoLreTLWsubb5bg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@internationalized/string": "^3.0.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/overlays": "^3.10.1", - "@react-aria/utils": "^3.13.3", - "@react-aria/visually-hidden": "^3.4.1", - "@react-stately/dnd": "3.0.0-alpha.10", - "@react-stately/selection": "^3.10.3", - "@react-types/button": "^3.6.1", - "@react-types/shared": "^3.14.1" + "@internationalized/string": "^3.1.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/overlays": "^3.13.0", + "@react-aria/utils": "^3.15.0", + "@react-aria/visually-hidden": "^3.7.0", + "@react-stately/dnd": "^3.1.0", + "@react-types/button": "^3.7.1", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/focus": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.9.0.tgz", - "integrity": "sha512-DwesjEjWjFfwAwzv9qeqkyKZNPAYmPa3UrygxzmXeKEg2JpaACGZPxRcmT2EFJFEDbX8daQDEeRGyLO49o5agg==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.11.0.tgz", + "integrity": "sha512-yPuWs9bAR9CMfIwyOPm2oXLPF19gNkUqW+ozSPhWbLMTEa8Ma09eHW1br4xbN+4ONOm/dCJsIkxTNPUkiLdQoA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/interactions": "^3.12.0", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14", "clsx": "^1.1.1" } }, "@react-aria/grid": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.5.0.tgz", - "integrity": "sha512-Kz92WIu8Ef55JeO0TUv58jKF5qRH0a8iuYwBeonfaRlHPFUd0jymcU7PJnm80RRpsG17FMshTGewo5ko3khDfA==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.6.1.tgz", + "integrity": "sha512-8u5oSqHrMNg4GVoOE21CEDcoAbTVpDUNg1mpJqM/ww2LrPZdEMQlU0Ro7Uq+zNg2tzVcdAtgPkh7EEErESIb4Q==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/grid": "^3.4.0", - "@react-stately/selection": "^3.11.0", - "@react-stately/virtualizer": "^3.3.1", - "@react-types/checkbox": "^3.4.0", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/grid": "^3.5.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/virtualizer": "^3.5.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/gridlist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.0.0.tgz", - "integrity": "sha512-fObfBWK6SOf6Rhd1pm7glluAHK9+r04KSWWjwmknLkrUe09QXg4Lf5cuMil/FLlnBYEGt/qthBhahV5YyckRJA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.2.1.tgz", + "integrity": "sha512-EQxtKs2c3+kzy6q4nbJoYF7sP33yTsP9NitneRLHNWuT9rdTqKCDps+e0VyXa9ynZkW9Dm5mek0n36mS8NW1zw==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/grid": "^3.4.1", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/selection": "^3.10.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/list": "^3.5.3", - "@react-types/checkbox": "^3.3.3", - "@react-types/list": "^3.0.0", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/grid": "^3.6.1", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/list": "^3.7.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/i18n": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.6.1.tgz", - "integrity": "sha512-kAetWsj9HOqwaqLhmFU2udhZ+4QGGYkQOgGBJYdrB7GfLZQ1GPBlZjv3QFdkX4oSf/k9cFqgftxvVQQDYZLOew==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.7.0.tgz", + "integrity": "sha512-PZCWmhO9mJvelwiYlsXLY6W4L2o+oza3xnDx0cZDVqp/Hf+OwMAPHWtZsFRTKdjk4TaOPB/ISc9HknWn6UpY4w==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@internationalized/message": "^3.0.9", - "@internationalized/number": "^3.1.1", - "@internationalized/string": "^3.0.0", - "@react-aria/ssr": "^3.3.0", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@internationalized/message": "^3.1.0", + "@internationalized/number": "^3.2.0", + "@internationalized/string": "^3.1.0", + "@react-aria/ssr": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/interactions": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.12.0.tgz", - "integrity": "sha512-KcKurjPZwme9ggvGQjbjqZtZtuyXipTBVMHUah9a3+Dz7vXxhRg5vFaEdM79oQnNsrGFW5xS6SKBehl/JG6BMw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.14.0.tgz", + "integrity": "sha512-e1Tkr0UTuYFpV21PJrXy7jEY542Vl+C2Fo70oukZ1fN+wtfQkzodsTIzyepXb7kVMGmC34wDisMJUrksVkfY2w==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0" + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/label": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.4.2.tgz", - "integrity": "sha512-ctygLrA4yY31440UMZdw21Iz4ogXupLJB5xpTU1KFXcvybSu+H3gvVCOJu1jFwR12bTKnkVogTWT6wwVYH2nFw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.5.0.tgz", + "integrity": "sha512-sNiPYiFg06s1zGuifEUeUqRiYje0lfHem+GIUh0Y5ZxfpqIyxEmyV9Aw+C7TTjjo8BAG4NZ4bR7iF9ujf9QvKQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/utils": "^3.14.0", - "@react-types/label": "^3.7.0", - "@react-types/shared": "^3.15.0" + "@react-aria/utils": "^3.15.0", + "@react-types/label": "^3.7.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/link": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.3.3.tgz", - "integrity": "sha512-IF+Tjn7ordKBFemed32S4ipStq89Ayvk46nYy7qTKs5Tf2uttoaeGrpjI7IbtgSgt+VtOHW2JCoDxM+bu0LH3A==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.4.0.tgz", + "integrity": "sha512-d/h4y7SFO+KweMX5IRU99L1jz9AAwp6mNStkBjYGxCD29QYTVWClpZHjRlO1s6a9e2QTpk/LzsvjiytowzfHyA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/utils": "^3.13.3", - "@react-types/link": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-types/link": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/listbox": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.7.0.tgz", - "integrity": "sha512-XUWg+ll9LmzJB3WzAklwJY5A/YuRTWd5UM/WSL34aV1O6P/IdLW697Xvr6fpHWMPtkIUeNB6teAAT2M98iWx5Q==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.8.1.tgz", + "integrity": "sha512-kTIQWms6nS//GWr63gSVcNgZv7uf5RULLTKH3DIpmaftS3Kf4Sds6rspWGYQ9PAeS1EqcuHozsXXlKBo1upYgg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/interactions": "^3.12.0", - "@react-aria/label": "^3.4.2", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/collections": "^3.4.4", - "@react-stately/list": "^3.5.4", - "@react-types/listbox": "^3.3.4", - "@react-types/shared": "^3.15.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/list": "^3.7.0", + "@react-types/listbox": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/live-announcer": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.1.1.tgz", - "integrity": "sha512-e7b+dRh1SUTla42vzjdbhGYkeLD7E6wIYjYaHW9zZ37rBkSqLHUhTigh3eT3k5NxFlDD/uRxTYuwaFnWQgR+4g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.2.0.tgz", + "integrity": "sha512-uSqDDy+9CbmNTZh0Roi4dvWKWcbuMTYKh3RnUw3XBPw0aYxSkcFQeWGfxFoOwXCDcXez02cFJtAxpR2bShkrsw==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "@react-aria/menu": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.6.2.tgz", - "integrity": "sha512-uBZHGuFAtOdoocBVZzoBpZQFJmkt5axlEUKjBgh2BuR5JX8aZiSxyKnfgAeb3aDEi9PZpOp6RWxHzOMBRg4TsA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.8.1.tgz", + "integrity": "sha512-p8DF/muxbTr/SOZh3FDFPcWUcnXvpwMKyR+xKXQQPbCV/LAiSjVtwxbNVvubqvzR0Qk6/XV4/HUY2r+4tnT8tQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/overlays": "^3.11.0", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/collections": "^3.4.4", - "@react-stately/menu": "^3.4.2", - "@react-stately/tree": "^3.3.4", - "@react-types/button": "^3.6.2", - "@react-types/menu": "^3.7.2", - "@react-types/shared": "^3.15.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/overlays": "^3.13.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/menu": "^3.5.0", + "@react-stately/tree": "^3.5.0", + "@react-types/button": "^3.7.1", + "@react-types/menu": "^3.8.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/meter": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.3.1.tgz", - "integrity": "sha512-rSDyLEZamki/bxlk+POEsiMxxAUk/ysXaauvZLP4q3YdwKCs3VoNZpATWwkZNqSSwXGfpRMyLSIjQQkl/hPgyw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.0.tgz", + "integrity": "sha512-2CqpTwkZ1Vnblqd+z+mP+3ZhQRg3oNkz7GxN9nRLTDrpxVLY+WtSeIGDK7x8EwmYrVo4q4wHl3DGa2VOLNNgVA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/progress": "^3.3.1", - "@react-types/meter": "^3.2.3", - "@react-types/shared": "^3.14.1" + "@react-aria/progress": "^3.4.0", + "@react-types/meter": "^3.3.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/numberfield": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.3.2.tgz", - "integrity": "sha512-TYDFtREKXsfw46aeZmddsXrznUJuyN1ru6+zL6rJ1XZ6v6srWJx6KigoJhyuji4ZKMn5/dMoJ10YIem5hJ6zRg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.4.0.tgz", + "integrity": "sha512-gZMZAjE+tcwtdDW5X5rlot7ihir1OCCEyzbIDFztte2h+I57b45ET9P4AmgrmqfOnyscPXI3kJn9eILNYHdZVw==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/spinbutton": "^3.1.4", - "@react-aria/textfield": "^3.7.2", - "@react-aria/utils": "^3.14.0", - "@react-stately/numberfield": "^3.2.2", - "@react-types/button": "^3.6.2", - "@react-types/numberfield": "^3.3.4", - "@react-types/shared": "^3.15.0", - "@react-types/textfield": "^3.6.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/spinbutton": "^3.3.0", + "@react-aria/textfield": "^3.9.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/numberfield": "^3.4.0", + "@react-types/button": "^3.7.1", + "@react-types/numberfield": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@react-types/textfield": "^3.7.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/overlays": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.11.0.tgz", - "integrity": "sha512-NqLqxSiEW9AuUPcEHCIp2lHH1moNxlkP0CkuUMkT2/T5MCPm/Iq+uD53VSR+NyeCWU/aGH3ykj2kq9NSITJkOA==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.13.0.tgz", + "integrity": "sha512-hRZyhAYzrlCcEWQ2k2jP24b0wc5/355Xl5w5FZHRmPeU1U4XlFwKX/eFlBs/li9Sprm1bTDXrCY480Kl6UsKDA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/ssr": "^3.3.0", - "@react-aria/utils": "^3.14.0", - "@react-aria/visually-hidden": "^3.5.0", - "@react-stately/overlays": "^3.4.2", - "@react-types/button": "^3.6.2", - "@react-types/overlays": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/ssr": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-aria/visually-hidden": "^3.7.0", + "@react-stately/overlays": "^3.5.0", + "@react-types/button": "^3.7.1", + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/progress": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.3.1.tgz", - "integrity": "sha512-TCBPWog2kVVyLc4F82iaqUYfrkJwZUFgZYeIOI7LNUksYmg0uDV1xCDt9EfOMBmOgPu4XdA73hEPqTz61X/8Jg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.0.tgz", + "integrity": "sha512-G8Wew/EjgzoBM6OOAtVinA0hEng/DXWZF7luCoMPuqSKOakFzzazHBMpmjcXku0GGoTGzLsqqOK1M5o3kDn4FA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.0", - "@react-aria/label": "^3.4.1", - "@react-aria/utils": "^3.13.3", - "@react-types/progress": "^3.2.3", - "@react-types/shared": "^3.14.1" + "@react-aria/i18n": "^3.7.0", + "@react-aria/label": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-types/progress": "^3.3.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/radio": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.3.1.tgz", - "integrity": "sha512-pjVuRCXjJYpcRIhemmea7A4GlrimQPY5241rOEVfmaFMQm0Ldyl2Lv/tCnpul3uWBSxPXjLLbwop4j/k9UnUBQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.5.0.tgz", + "integrity": "sha512-d/Hxdu+jUdi3wmyaWYRLTyN16vZxr2MOdkmw8tojTOIMLQj7zTaCFc0D4LR4KZEn3E0F5buGCUHL6o4CTqBeBA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/label": "^3.4.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/radio": "^3.5.1", - "@react-types/radio": "^3.2.3", - "@react-types/shared": "^3.14.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/radio": "^3.7.0", + "@react-types/radio": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/searchfield": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.4.1.tgz", - "integrity": "sha512-qwc6uFc06ET5U7UotMP2wFVi6AcNY2Zhf9VPm6TYkxlvXZ2Idrex2fYXyevs99rTbwYUAH1loP68eeEMp7uILA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.5.0.tgz", + "integrity": "sha512-eAsOiTBUeD8OiRyXUbU6fWzkEO5ERAODZJtv4yGcMdTjtKJW4jxeRwc6GXMKF3hDvdz7Y9NV6YfMCICSiVSFYg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/textfield": "^3.7.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/searchfield": "^3.3.1", - "@react-types/button": "^3.6.1", - "@react-types/searchfield": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/textfield": "^3.9.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/searchfield": "^3.4.0", + "@react-types/button": "^3.7.1", + "@react-types/searchfield": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/select": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.8.2.tgz", - "integrity": "sha512-a2lUvB9k54sfoiqyTcl+rq9GKqwcF8RMapaYxaE0VQmUVUl/hk31mTMo5y3giDCpMlrVO0jxve3nZe9YyUOOvg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.9.1.tgz", + "integrity": "sha512-SL+OZHhNLXAyX4FPP2uYj1+igB7t+pxoccO4qfrewbwPG8ext3bYx/gRQKc5A+chCY1ERIG9EQQo1vU/bZRQVA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/label": "^3.4.2", - "@react-aria/listbox": "^3.7.0", - "@react-aria/menu": "^3.6.2", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-aria/visually-hidden": "^3.5.0", - "@react-stately/select": "^3.3.2", - "@react-types/button": "^3.6.2", - "@react-types/select": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/listbox": "^3.8.1", + "@react-aria/menu": "^3.8.1", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-aria/visually-hidden": "^3.7.0", + "@react-stately/select": "^3.4.0", + "@react-types/button": "^3.7.1", + "@react-types/select": "^3.7.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/selection": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.11.0.tgz", - "integrity": "sha512-2Qcv0PxXqOrYYT1oL+TOaB+lE/jhIPzVEPHVmf8HYzEMP5WBYP8Q+R9no5s8x++b1W0DsbUVwmk9szY48O9Bmw==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.13.1.tgz", + "integrity": "sha512-YI5mFkk3JI3Ec01SzyBFGrdPInkoW5B0AavwLkN5QtehBUgdw9A1gPKADW4tiLfKUOl0rkqstP13n+v/GcBoTg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/collections": "^3.4.4", - "@react-stately/selection": "^3.11.0", - "@react-types/shared": "^3.15.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/selection": "^3.12.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/separator": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.2.3.tgz", - "integrity": "sha512-TWfyU46pEr1z7u3SHFHBd4UXr34fc+NlyRypJ/oBbsW1p4Bs2QxGEtwiqMlwRtoej6lgwPVsqy9ZB+ZdWZRpOw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.0.tgz", + "integrity": "sha512-AR3Pbik83dygOvmfBiCTRAHz+B13yyGz8nKyw521toT69RMtJTi8ha8qB6Iw1QP3YZWRv+Fn6WWrfGIvR+f2XQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/utils": "^3.13.3", - "@react-types/shared": "^3.14.1" + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/slider": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.2.1.tgz", - "integrity": "sha512-zRSOAyK6BfKliUGv+II8XEWjn/wT8ols47SeMLZvBzuWEfI74xpHMnB1jQs23Jt3PaVTZ+VziAjScBgayLeXxA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.3.0.tgz", + "integrity": "sha512-UgR2XEI3vrJAQU1RVC+1uHVr/vFcVh+Cjt/kaFUO7fdj8usqa4JOnIuX+QKCysiVLJc7IEXw4RCJBJYBSUYK6A==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/label": "^3.4.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/radio": "^3.5.1", - "@react-stately/slider": "^3.2.1", - "@react-types/radio": "^3.2.3", - "@react-types/shared": "^3.14.1", - "@react-types/slider": "^3.2.1" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/radio": "^3.7.0", + "@react-stately/slider": "^3.3.0", + "@react-types/radio": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@react-types/slider": "^3.4.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/spinbutton": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.1.4.tgz", - "integrity": "sha512-dVtjpeHaE+l8pJWn5lmMquyzOJi2y+yyinPGb2bpx++e692ZgeZGDckif5qE4A9nlvIOIB4afbWMs0UC1fiX0w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.3.0.tgz", + "integrity": "sha512-FXTFNz2RFClqGxQzMIHYdsjkm6fcWRObqelY+lXP5udk7Q8T9aQn+28QhqVpbOFXotLE2PltElbziJeuhkVgNA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/utils": "^3.14.0", - "@react-types/button": "^3.6.2", - "@react-types/shared": "^3.15.0" + "@react-aria/i18n": "^3.7.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/utils": "^3.15.0", + "@react-types/button": "^3.7.1", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/ssr": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.3.0.tgz", - "integrity": "sha512-yNqUDuOVZIUGP81R87BJVi/ZUZp/nYOBXbPsRe7oltJOfErQZD+UezMpw4vM2KRz18cURffvmC8tJ6JTeyDtaQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.5.0.tgz", + "integrity": "sha512-h0MJdSWOd1qObLnJ8mprU31wI8tmKFJMuwT22MpWq6psisOOZaga6Ml4u6Ee6M6duWWISjXvqO4Sb/J0PBA+nQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "@react-aria/switch": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.2.3.tgz", - "integrity": "sha512-+VMntitxI4j+ry51csibUJ5vKXVS6UcrB0anU7T2dZ/C19yXPQHOkRz7f+tEFaYrmAVnEaVT1TeGfEXEAt/NOg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.4.0.tgz", + "integrity": "sha512-FWbjqNcY+fAjRNXVQTvOx93udhaySgXLsMNLRAVUcFm45FqTaxAhHhNGtRnVhDvzHTJY/Y+kpcGzCcW2rXzPxg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/toggle": "^3.3.3", - "@react-stately/toggle": "^3.4.1", - "@react-types/switch": "^3.2.3" + "@react-aria/toggle": "^3.5.0", + "@react-stately/toggle": "^3.5.0", + "@react-types/switch": "^3.3.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/table": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.5.0.tgz", - "integrity": "sha512-oYcsIEYbbjAzojRWUsAdtfxPzlEKBmk6o4svDHnGqC9HSj8/yExn8b8RB0veDP7E+5IdO62pUwUy48jBwWu2uw==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.8.1.tgz", + "integrity": "sha512-21cewiqA7Wmco6baAZKHEIXTmmtwAAPkmdXnua+Ysc+18ry3Sd1GaIvFkDRSwqIH43xWtXJhlHkWhJcKxle+Xg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/grid": "^3.5.0", - "@react-aria/i18n": "^3.6.1", - "@react-aria/interactions": "^3.12.0", - "@react-aria/live-announcer": "^3.1.1", - "@react-aria/selection": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-stately/table": "^3.5.0", - "@react-stately/virtualizer": "^3.3.1", - "@react-types/checkbox": "^3.4.0", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0", - "@react-types/table": "^3.3.2" + "@react-aria/focus": "^3.11.0", + "@react-aria/grid": "^3.6.1", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/live-announcer": "^3.2.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/table": "^3.8.0", + "@react-stately/virtualizer": "^3.5.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@react-types/table": "^3.5.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/tabs": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.3.1.tgz", - "integrity": "sha512-olKBDlh21+0TZHhO2r2wETdbkcW+9MEuiEz/pLi6PGb3b1BR/WjF8s/iCG/aLyvVed8rLmxP6ONuaXqIF8thRQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.4.1.tgz", + "integrity": "sha512-0dS26zcmNq1ERKy3kHOD465UegOBCZEHsM3+jxrMBONyG76tACyNNRyMOm0sk5h3XLravBJR/uySRhAtvBEi0w==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/selection": "^3.10.1", - "@react-aria/utils": "^3.13.3", - "@react-stately/list": "^3.5.3", - "@react-stately/tabs": "^3.2.1", - "@react-types/shared": "^3.14.1", - "@react-types/tabs": "^3.1.3" + "@react-aria/focus": "^3.11.0", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/selection": "^3.13.1", + "@react-aria/utils": "^3.15.0", + "@react-stately/list": "^3.7.0", + "@react-stately/tabs": "^3.3.0", + "@react-types/shared": "^3.17.0", + "@react-types/tabs": "^3.2.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/textfield": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.7.2.tgz", - "integrity": "sha512-GSzjSEMdLMcQmjxOKmTaphbfMan91J/VhYGkFYEYAwcSoVMjBsIl8VUOjZQ3+7LowQ0mOS4gE7ADigRj1w2f/Q==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.9.0.tgz", + "integrity": "sha512-plX+/RDidTpz4kfQni2mnH10g9iARC5P7oi4XBXqwrVCIqpTUNoyGLUH952wObYOI9k7lG2QG0+b+3GyrV159g==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.9.0", - "@react-aria/label": "^3.4.2", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0", - "@react-types/textfield": "^3.6.0" + "@react-aria/focus": "^3.11.0", + "@react-aria/label": "^3.5.0", + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@react-types/textfield": "^3.7.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/toggle": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.3.3.tgz", - "integrity": "sha512-r38b04Encch0l2ibb0Dh8w4xbRHzdvOKfSEJeWIc7wEcjBbZ8SA3Kf1CmccHIIiG8lZ3o7Qt8tEX0UmHAC6FCQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.5.0.tgz", + "integrity": "sha512-K49OmHBmYW8pk0rXJU1TNRzR+PxLVvfL/ni6ifV5gcxoxV6DmFsNFj+5B/U3AMnCEQeyKQeiY6z9X7EBVX6j9Q==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/toggle": "^3.4.1", - "@react-types/checkbox": "^3.3.3", - "@react-types/shared": "^3.14.1", - "@react-types/switch": "^3.2.3" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/toggle": "^3.5.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@react-types/switch": "^3.3.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/tooltip": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.3.1.tgz", - "integrity": "sha512-TQgv1+GzWB7D+4H21v1Wf5f3rmumgUjfR/0I7QjfV/Zb7bp3S/6BjKenk77cuY5mBnUUh8Z7YP3GzRsNq5GsGA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.4.0.tgz", + "integrity": "sha512-b1E9m6WIPNV0TNRn9VNBnDn1FFt/pwKGtIGDDablLArEmSkkz0HJjwlUqC4+vL0U2dCaQA4TxWl9GDQE7Wzl8w==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/focus": "^3.8.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/tooltip": "^3.2.1", - "@react-types/shared": "^3.14.1", - "@react-types/tooltip": "^3.2.3" + "@react-aria/focus": "^3.11.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/tooltip": "^3.3.0", + "@react-types/shared": "^3.17.0", + "@react-types/tooltip": "^3.3.0", + "@swc/helpers": "^0.4.14" } }, "@react-aria/utils": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.14.0.tgz", - "integrity": "sha512-DHgmwNBNEhnb6DEYYAfbt99wprBqJJOBBeIpQ2g3+pxwlw4BZ+v4Qr+rDD0ZibWV0mYzt8zOhZ9StpId7iTF0Q==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.15.0.tgz", + "integrity": "sha512-aJZBG++iz1UwTW5gXFaHicKju4p0MPhAyBTcf2awHYWeTUUslDjJcEnNg7kjBYZBOrOSlA2rAt7/7C5CCURQPg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/ssr": "^3.3.0", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.15.0", + "@react-aria/ssr": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14", "clsx": "^1.1.1" } }, "@react-aria/visually-hidden": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.5.0.tgz", - "integrity": "sha512-tF/kCZCGv1yebwgH21cKbhjSV5CmB5/SAHOUM5YkO5V/lIFjaPtywcamIPI8F0JSfrwGF/Z9EqvqBxvIYGRlCA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.7.0.tgz", + "integrity": "sha512-v/0ujJ67H6LjwY8J7mIGPVB1K8suBArLV+w8UGdX/wFXRL7H4r2fiqlrwAElWSmNbhDQl5BDm/Zh/ub9jB9yzA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/interactions": "^3.12.0", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0", - "clsx": "^1.1.1" - } - }, - "@react-spectrum/dnd": { - "version": "3.0.0-alpha.6", - "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.0.0-alpha.6.tgz", - "integrity": "sha512-UdO679JOh8bMh1XgKUrwqSuWOXmo5kd0QAiPIvhade6I/DK+MIRTafml+a1DyvwURpbwto//U21hpW10ilVQEg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/dnd": "3.0.0-alpha.12", - "@react-stately/dnd": "3.0.0-alpha.10", - "@react-types/shared": "^3.14.1" - } - }, - "@react-spectrum/provider": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.5.2.tgz", - "integrity": "sha512-NkprgxJKgkwcRY7cSTnA9Cm52s1H1gcos5n6NHyXqLIrkJOeRLnENxfAQ1cVL7GCrXNO1SoLkJPbEUcsPa+pHQ==", - "dev": true, - "peer": true, - "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/overlays": "^3.11.0", - "@react-aria/utils": "^3.14.0", - "@react-spectrum/utils": "^3.7.4", - "@react-types/provider": "^3.5.4", - "@react-types/shared": "^3.15.0", - "clsx": "^1.1.1" - } - }, - "@react-spectrum/utils": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.7.4.tgz", - "integrity": "sha512-WedahiKZXm0t6xgckpZAQtjv0shpDjWCbw6tZnvpVHik6OOv33kKeMf8cdxdkZNh7/ueS/E6YLBSyZH20ICb9w==", - "dev": true, - "peer": true, - "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.1", - "@react-aria/ssr": "^3.3.0", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14", "clsx": "^1.1.1" } }, "@react-stately/calendar": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.0.3.tgz", - "integrity": "sha512-tpkKXaLbIiwma6TlL1/YapwLUS3ZQt/qN/9k/NRP4vNUSmSanRuOdR+B0xfbnfM2G1sp8VbdQloae9ZJ7ACo2A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.1.0.tgz", + "integrity": "sha512-PZXXHyrLoYEUAUL8oFoxHNc7mKrQXLxnYQkY9v3a6SxgST3J4tYoqIXrie0uqpm1LI+1JfKb2lyRGlVPRTBuNQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@react-stately/utils": "^3.5.1", - "@react-types/calendar": "^3.0.3", - "@react-types/datepicker": "^3.1.2", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@react-stately/utils": "^3.6.0", + "@react-types/calendar": "^3.1.0", + "@react-types/datepicker": "^3.2.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/checkbox": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.2.1.tgz", - "integrity": "sha512-n/CpIatJa9fSF4q92JvNLdHmzJcWCxFC57UDilJv7WRdsM9FMFs6Cj66R38cRUp34SlhPFi/z+pIC14MFQBJeg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.4.0.tgz", + "integrity": "sha512-zqwHMmlzza1exS6Bbqj4Mom3ygtG8pLguHweZ9OO7BFQLwBmzJsrFNqDcj7xh8iEWxXKQfZ2YOuhkaGvu4GRjA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/toggle": "^3.4.1", - "@react-stately/utils": "^3.5.1", - "@react-types/checkbox": "^3.3.3" + "@react-stately/toggle": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/collections": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.4.4.tgz", - "integrity": "sha512-gryUYCe6uzqE0ea5frTwOxOPpx/6Z42PRk7KetOh3ddN3Ts0j8XQP08jP1IB/7BC1QidrkHWvDCqGHxRiEjiIg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.6.0.tgz", + "integrity": "sha512-znkaqCPo7F1yyzEKDAB5MpX1Vw5UHcUQhDNrys5YOqAkX6/G/AChnBz0B63UxS3fjyqgnuJylRRmUp9nTqO21w==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/combobox": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.2.2.tgz", - "integrity": "sha512-kUMxgXskrtwdeEExZkJ9CjF4EJANetj+7970cOevCpy6ePCdrvdgO6+0cMrVvSgZeMaMDZXDIbbF7fqA6w0uXQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.4.0.tgz", + "integrity": "sha512-QVKNosNqSS7PnjrNVrGat9KKlCcv7e3nTehQuIu18ZE2JVH7Jdf/73zkSMurrnQfbPVeiHkGK1deWqrzoNzYQQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/list": "^3.5.4", - "@react-stately/menu": "^3.4.2", - "@react-stately/select": "^3.3.2", - "@react-stately/utils": "^3.5.1", - "@react-types/combobox": "^3.5.4", - "@react-types/shared": "^3.15.0" + "@react-stately/list": "^3.7.0", + "@react-stately/menu": "^3.5.0", + "@react-stately/select": "^3.4.0", + "@react-stately/utils": "^3.6.0", + "@react-types/combobox": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/data": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.6.1.tgz", - "integrity": "sha512-+e+f8WNu7NpHVmSOBnwHNAG67aCWWRWf96zSJ2O1QBK04v/a9aMbP8m7c1Y15CWy5PLvUEJoaXaanwthTGev+w==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.9.0.tgz", + "integrity": "sha512-67zP/QkVInsU9wtKVj1b0MwaogDCC15eEe9/ULRf6xmaw0m6VOfm/Rz4Y9OvR8cQd5o+ImuAeRYEorRJ59yK5w==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-types/shared": "^3.14.1" + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/datepicker": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.1.0.tgz", - "integrity": "sha512-v4tTHw65kOFu1jnj9JWqTLvf8pSABP6K94+bAtg60028AuwPCvJ9MGMU8LDGYGmPBcl1F0qFVo/x5pwKCv3jZQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.3.0.tgz", + "integrity": "sha512-HH/WPAMXwULyBKHICxTLGDk3cPGf9Yhf8sX2DES935aupd+6YqzQrh97buOedKsF5WKZfzMMtUVqy8uepo6S6g==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@internationalized/date": "^3.0.1", - "@internationalized/string": "^3.0.0", - "@react-stately/overlays": "^3.4.2", - "@react-stately/utils": "^3.5.1", - "@react-types/datepicker": "^3.1.2", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@internationalized/string": "^3.1.0", + "@react-stately/overlays": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/datepicker": "^3.2.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/dnd": { - "version": "3.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.0.0-alpha.10.tgz", - "integrity": "sha512-1yRsxVoCvZom0pMDuAAexS0kpMGbG/auWTHxChzvo9OBAWbz7VeOLIWogdAs8Jy17R08L+6NV82+KSD6zDK47A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.1.0.tgz", + "integrity": "sha512-PctHJqRm37vdKs91vB18lfdas4CypStbgj6ENApUXSDLd8XrVgthH4sYrX1BX/RbZyCr7u+TG7qVKGcRfsvbTw==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/selection": "^3.10.3", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.14.1" + "@react-stately/selection": "^3.12.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/grid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.4.0.tgz", - "integrity": "sha512-Y7UrmLUAv4wW70Mb9lueawd3KEnYgAS7yNSTJn/TTZpA+6Elx3DDdjXH5pG/JiG1ot740ixOkP8feEpr8qk4bg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.5.0.tgz", + "integrity": "sha512-kCmO2KyHoIJWiCqUXJTD0I/4q/6h3pXGdyD4tWmqWdysxf+x09K/Mx/JwwFqee5LICZgt8MtBrfV+ijLZ8mQAg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/selection": "^3.11.0", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0" + "@react-stately/selection": "^3.12.0", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/layout": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.8.0.tgz", - "integrity": "sha512-0cUlkjY42YaGa0u8Z8CgNx8PIsm06zr0cr3HESCfHmvuOOR2q707PcqAd6kKuF/4NjHU4MVfuGp5z9Sm/lnjlA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.11.0.tgz", + "integrity": "sha512-QNupEFgIv5hqYEbLxDQfHgBkfk6t1VTTxWftBZMXXJEVCC1GH8vUJ35BJGO7hQNhPoTp3xc3X7yEcBlXy1ZmlA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/virtualizer": "^3.3.1", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0", - "@react-types/table": "^3.3.2" + "@react-stately/table": "^3.8.0", + "@react-stately/virtualizer": "^3.5.0", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@react-types/table": "^3.5.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/list": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.5.4.tgz", - "integrity": "sha512-AB0r2RevKVAP2AOQM1JRuCVjS2UUxMJFshA53t8pV+OSVWeyirYccsMR49mWwU60ZnxYqBWVMN+Pl7NTPTnT8w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.7.0.tgz", + "integrity": "sha512-/BxCqXFjX9P+OJWjIYmUWaOGJ2hlZHUdymVwZPkIWdO9K7069LWckdYFXRqLFMwIGLUcXVfw4jR0BIQqWlR4eA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/selection": "^3.11.0", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.15.0" + "@react-stately/collections": "^3.6.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/menu": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.4.2.tgz", - "integrity": "sha512-vFC8EloVEcqf6sgiP6ABIkC41ytjoJiGtj7Ws5OS7PvZNyxxDgJr4V0O3Pxd1T0AjlHCloBbojnvoTRwZiSr/A==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.5.0.tgz", + "integrity": "sha512-JL6TcT+SbYdlxNLOS84SXp6njDNZuXfkt05o4rS51evmjM2+hlYaB9+yUMqrCb/J2nW7vVAg51TDAhLgmGTYKg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/overlays": "^3.4.2", - "@react-stately/utils": "^3.5.1", - "@react-types/menu": "^3.7.2", - "@react-types/shared": "^3.15.0" + "@react-stately/overlays": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/menu": "^3.8.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/numberfield": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.2.2.tgz", - "integrity": "sha512-5Q71I8li7nvxVS2z7BORFp/z4YY3dphjdLkXExDsJbbEXhXtCQWm2zZuctwKxnscFm/CRRbxaclOt2BAAoLcjw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.4.0.tgz", + "integrity": "sha512-R+LjwRpspttiO0tZ8KikXu184D3HZJG37jVcp/yM1jyMURmQHWfjjR6PHuD66PSV5PtM2KQlBj6PGvDLg1UwlQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@internationalized/number": "^3.1.1", - "@react-stately/utils": "^3.5.1", - "@react-types/numberfield": "^3.3.4", - "@react-types/shared": "^3.15.0" + "@internationalized/number": "^3.2.0", + "@react-stately/utils": "^3.6.0", + "@react-types/numberfield": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/overlays": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.4.2.tgz", - "integrity": "sha512-UTCnn0aT+JL4ZhYPQYUWHwhmuR2T3vKTFUEZeZN9sTuDCctg08VfGoASJx8qofqkLwYJXeb8D5PMhhTDPiUQPw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.5.0.tgz", + "integrity": "sha512-r+U/G0Y4tCfI5wyBeIu+hmcZVRN8ChoK2zM1srPH9nDKsijQard2goX+9YmKng2LJ01Re/P6F8S8jYbpfEdLfQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/utils": "^3.5.1", - "@react-types/overlays": "^3.6.4" + "@react-stately/utils": "^3.6.0", + "@react-types/overlays": "^3.7.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/radio": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.5.1.tgz", - "integrity": "sha512-0x84/JTUshB5ZIhv4KPNaRBHztegGfHZ/dheCN/cNYiDPFmUPkce4mOYgL3byUgVabbDYqohTHkpvoA54UOgew==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.7.0.tgz", + "integrity": "sha512-TKyR6RfX1qZRPAxVWIKMTt2s3J+IlxFZHykiEl85gHBmABSWW4JO4RjkgcmbaAGLAhu1pJU8ktJOyi+MyndpHA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/utils": "^3.5.1", - "@react-types/radio": "^3.2.3" + "@react-stately/utils": "^3.6.0", + "@react-types/radio": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/searchfield": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.3.1.tgz", - "integrity": "sha512-DHIZ+IPrPQrvY/1aR3YXP6KoP+DA8d/6k/VYLtyxL75qiCAmhkVBDzWzEl/hMkBXSr2bJS2euAv6VJyR57bfKg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.4.0.tgz", + "integrity": "sha512-aaQLczPUIJwTGlllALT49RSvWY55oqmJWhLL7j3hnL1cNV0WmkmoSdAo7drDaux5vkgkurxuwMEZ8ymFYeZ+Nw==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/utils": "^3.5.1", - "@react-types/searchfield": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-stately/utils": "^3.6.0", + "@react-types/searchfield": "^3.4.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/select": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.3.2.tgz", - "integrity": "sha512-/C9fW7HT+V9XnmSTiZZqH5cn+ifY9vdXvIKDbUyna98lFHtDgn7i/UvD5edunOGY0qqSMIO3kJ6/BiNg+gpn6Q==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.4.0.tgz", + "integrity": "sha512-thSqD3apMCSgZgKtqHKGVIQRyvG8l0supIuzJicBwq6xg+J8X5muPCZgchCSNmU6im/l81XXE8LGuHGgMilORA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/list": "^3.5.4", - "@react-stately/menu": "^3.4.2", - "@react-stately/selection": "^3.11.0", - "@react-stately/utils": "^3.5.1", - "@react-types/select": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-stately/collections": "^3.6.0", + "@react-stately/list": "^3.7.0", + "@react-stately/menu": "^3.5.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/utils": "^3.6.0", + "@react-types/select": "^3.7.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/selection": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.11.0.tgz", - "integrity": "sha512-cBgDzH+AY+bMEROJbcZFdhbMk0vgiwyqBB8ZKLtCL7EOHs2xeynTAohRM+/t27U/tF91o4qHPFo67Tkxrd16Bg==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.12.0.tgz", + "integrity": "sha512-qgUaPwqtAl7YaZxxGdb55ZaVuMB1rG+Vr+9fgG8dPtDYCNaPeIlg7ndC4ylzDhCWIx8D5qZotcrqCA4+93TwdA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.15.0" + "@react-stately/collections": "^3.6.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/slider": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.2.1.tgz", - "integrity": "sha512-LJ6ESPmDnu1H/Y750DWLLqJl3Q2RkOUp4d55YuQ/iwtSoEYxxIHflOxsbUKaTP/Ttmj9eMIXSTeW7hkWidsxQw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.3.0.tgz", + "integrity": "sha512-17aGJYHBRY3g4ZeiIgCNOvYl3HBARvSJhUKoNxZMRa2pqREW+WmBRRAXv5KTymW/KfcGb0RCq1ytYsderEgZAQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/i18n": "^3.6.0", - "@react-aria/utils": "^3.13.3", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.14.1", - "@react-types/slider": "^3.2.1" + "@react-aria/i18n": "^3.7.0", + "@react-aria/utils": "^3.15.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@react-types/slider": "^3.4.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/table": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.5.0.tgz", - "integrity": "sha512-C0HFfKMCOomqPtRCPs85AtoJGPnGu9mzFfwksFxAssdIatw3t66h5SJS0vSSql7Ku9h70scmvJR+nIOckx0IeA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.8.0.tgz", + "integrity": "sha512-WmOcW9+4zm6MQZxYEC77u5HMxTcvcotkFptohHd0YtHXx+z5iwClCVKKFG2mc5lE+K4iQE41Q56nVKLjAu+TsA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/grid": "^3.4.0", - "@react-stately/selection": "^3.11.0", - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0", - "@react-types/table": "^3.3.2" + "@react-stately/collections": "^3.6.0", + "@react-stately/grid": "^3.5.0", + "@react-stately/selection": "^3.12.0", + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0", + "@react-types/table": "^3.5.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/tabs": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.2.1.tgz", - "integrity": "sha512-3Z5MrJrx7Ozkp5kjhYgDs8p0kNmLocsHgq1IWgBRTRdTyQB01ixEuhR1g6A+BHFLojyDB6EKBX8TrbZPsnHRdQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.3.0.tgz", + "integrity": "sha512-Kf47+aXGf4NvnREMDqH+uuTa0QsYCxOp0poywR8lRPmYsL7V8yrTS2wXQnDL7cq8PXbL5v+ew0xmrV+BiUlNRg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/list": "^3.5.3", - "@react-stately/utils": "^3.5.1", - "@react-types/tabs": "^3.1.3" + "@react-stately/list": "^3.7.0", + "@react-stately/utils": "^3.6.0", + "@react-types/tabs": "^3.2.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/toggle": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.4.1.tgz", - "integrity": "sha512-Dlg7M9W52n0K+Op/H5ywdSCORW70ry6syPSahh+RXQKKdky9bckqmrpO24A92dL7Rci2H4fTsBgZGVla9b/wNQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.5.0.tgz", + "integrity": "sha512-vKwLLkFsiIve4pXIQC/dqLAz7Z+qtzJ8+D00EXXO1Nf8YHcyIMDkTmi3NTM8Qtvmt4xX2hbJFiPDF6WvF6mBIg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/utils": "^3.5.1", - "@react-types/checkbox": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-stately/utils": "^3.6.0", + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/tooltip": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.2.1.tgz", - "integrity": "sha512-RUzCOfFqJvC8BrMQiWTLfLEjOYjdG3DQtMp6nKt23sxDeuTr1PlVsnTCzRGTuuYN8msfFB5dzp7Z0jxKcU95Xg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.3.0.tgz", + "integrity": "sha512-cYg4zKUc0y71L5OO5DyaCoh248A7wvXAU6VGMhppPGx+iPoWJMLBBdEJjf8Oa12NGxNv9SC5lTcv6js2k4+WwQ==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/overlays": "^3.4.1", - "@react-stately/utils": "^3.5.1", - "@react-types/tooltip": "^3.2.3" + "@react-stately/overlays": "^3.5.0", + "@react-stately/utils": "^3.6.0", + "@react-types/tooltip": "^3.3.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/tree": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.3.4.tgz", - "integrity": "sha512-CBgXvwa9qYBsJuxrAiVgGnm48eSxLe/6OjPMwH1pWf4s383Mx73MbbN4fS0oWDeXBVgdqz5/Xg/p8nvPIvl3WQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.5.0.tgz", + "integrity": "sha512-5+MzMQUFq3+lbGkZC0SlcIDrYmPvxBKuC8xL5W6SuFekbrrxrS6IJexRe4QulaaAliDpX2/9DVZTt38eVfyf0A==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-stately/collections": "^3.4.4", - "@react-stately/selection": "^3.11.0", - "@react-stately/utils": "^3.5.1", - "@react-types/shared": "^3.15.0" + "@react-stately/collections": "^3.6.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/utils": "^3.6.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-stately/utils": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.5.1.tgz", - "integrity": "sha512-INeQ5Er2Jm+db8Py4upKBtgfzp3UYgwXYmbU/XJn49Xw27ktuimH9e37qP3bgHaReb5L3g8IrGs38tJUpnGPHA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.6.0.tgz", + "integrity": "sha512-rptF7iUWDrquaYvBAS4QQhOBQyLBncDeHF03WnHXAxnuPJXNcr9cXJtjJPGCs036ZB8Q2hc9BGG5wNyMkF5v+Q==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2" + "@swc/helpers": "^0.4.14" } }, "@react-stately/virtualizer": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.3.1.tgz", - "integrity": "sha512-1bjvrLLto3TewJRfe4bCrRKYUAdE6lPB9fn3kQhpxbWb4KW1Xl7ar/waL7JDzpwxTBbwzbxCS6nL03YxSt5tIw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.5.0.tgz", + "integrity": "sha512-Jjk7V2T9uJ2+1EaVY+v1SJYeKb9dvZKayP35bcUq8/y9+I41kNE+qmgnkr5/SVzkExu4YeZTFxtuOm4l8UX5jg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.2", - "@react-aria/utils": "^3.14.0", - "@react-types/shared": "^3.15.0" + "@react-aria/utils": "^3.15.0", + "@react-types/shared": "^3.17.0", + "@swc/helpers": "^0.4.14" } }, "@react-types/breadcrumbs": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.4.3.tgz", - "integrity": "sha512-ovm6nUxh5RyZ11Z3+6Fgibw/v+PPx1YAqoJxzkeliCHSN8XbrBJYguPJ0TUBH1YfIdiW1T2HetCoFI8kN8KN/Q==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.5.0.tgz", + "integrity": "sha512-Nd95NnLhrSw8Eaf2nsgAz23BT/ww6m2d2GS/gT7NxkCcqWK8Dpv8+e+JSbO7CUkHJApm76FtRz16JCdltj4CeQ==", "dev": true, "requires": { - "@react-types/link": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-types/link": "^3.4.0", + "@react-types/shared": "^3.17.0" } }, "@react-types/button": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.6.2.tgz", - "integrity": "sha512-qgrYT6yiGVuZSPbzeDT6kTREQVxzJ9p5chV+JX7G5Rpjl2vyUDkEhZ5V/AHLKguBALgFaWJvjtwejHQ7FtycTw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.7.1.tgz", + "integrity": "sha512-c+8xjmqWSjI5/mEHVLbVSp0eh/z2UU8Ga+wqjbEUZUjm8uopYj1PaCAwZ7YgcAebyQrL/21GyjK6tFHKzuUdJQ==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/calendar": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.0.3.tgz", - "integrity": "sha512-W1tj21G2X8w6ZQQISLjTpVBon4D4oyZXjfrGOS5dwiWt7v7oIstalHYK6RD/Uw5feZEatfzNg6gE5/0UbGw2RA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.1.0.tgz", + "integrity": "sha512-6VKBxG27cLKti8Ik+T2N1y6FqJSgIXuQPMehOA1ASqPQLtnRBEoSgLjuN5qj7RTWgmdTvQmofqVznVFoUe5ozQ==", "dev": true, "requires": { - "@internationalized/date": "^3.0.1", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@react-types/shared": "^3.17.0" } }, "@react-types/checkbox": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.4.0.tgz", - "integrity": "sha512-ZDqbtAYWWSGPjL4ydinaWHrD65Qft9yEGA6BCKQTxdJCgxiXxgGkA3pI7Sxwk+OulR+O0CYJ1JROExM9cSJyyQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.4.2.tgz", + "integrity": "sha512-/NWFCEQLvVgo25afPt2jv4syxYvZeY/D/n2Y92IGtoNV4akdz4AuQ65+1X+JOhQc/ZbAblWw5fFWUZoQs3CLZg==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/combobox": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.5.4.tgz", - "integrity": "sha512-boVrxvARZBuhZSmhcaShty/JXaJRKNm3fx0zKcqyfB8iFpszltMfv2w23cRzc8BVA5bA6RRTsiKf8hEjkqFnxg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.6.0.tgz", + "integrity": "sha512-tfZtZ12Kf2bKt3EcFKWcUxrLNc61Y1CGynsOQ/KvHTFwlLTTtKnt/wWuf4kxdqlTK7dDqJzWRGWKlWx6eKlx3w==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/datepicker": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.1.2.tgz", - "integrity": "sha512-LcWVA1Dgp/T8bq/Yav1CuP0z7/7vEAAdR1soZr0hMl7yV7691jw2pgCZMVi7j5DMjhtxiqzo9ZCfuu/TiC9jzQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.2.0.tgz", + "integrity": "sha512-wcxLI6aW+r6nO2bsypxMIaWJHG5YYAD7WtJmhR5n5GK5juUCu/hzKBhdwxE1qtD3kMvIKTDJkMXLVNGmJP0mFw==", "dev": true, "requires": { - "@internationalized/date": "^3.0.1", - "@react-types/overlays": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@internationalized/date": "^3.1.0", + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0" } }, "@react-types/dialog": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.4.4.tgz", - "integrity": "sha512-mBaoQn+2nd14j0WSTfqGMb8dfG6Nak4+S9HqbJeP6UjKfwnmF8aXQ/Z3EYPNcwwDB+fNYStPagxRdBeqJ1GK4g==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.0.tgz", + "integrity": "sha512-QsHqAK8zE4QSCQTJcRm/e6vweSE8S62o4GGvm+e+crMro/doA4it1Y4udE94Yy3WyDQEMFxyfd2P1Q6bI9JuyQ==", "dev": true, "requires": { - "@react-types/overlays": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0" } }, "@react-types/grid": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.1.4.tgz", - "integrity": "sha512-i9f2VEnlex5BFV/AdSUGg71xoukn2i/XT2VLxUXUagy23gFxKJk9Xr3BT9bw+pRRLPwm/Ib+h9ELUdgi8lUAKA==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.1.6.tgz", + "integrity": "sha512-j6dO5KgkuIbIhEZYSxd86ZomohCyv3VNQhY2qBHlRoxZs0976komauEOjOpMOu0PxwsFGUgUFqlKOtc34f1SHQ==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/label": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.7.0.tgz", - "integrity": "sha512-33iQQ3aC34+yKECvSHJ8DDWwd32rm2TZhABX513DYwuCupIxs+BrgHvcfp2YLmz2Fh5UTMSfJXDA74Tbd0XwLg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.7.2.tgz", + "integrity": "sha512-UlsIvxQjBMl9WwJw1bYoJMwiPvYwRsSLl2yoeeGfGr6IaYn5T/2kzBhDLwe5cpKrmi4Mehn1rbReFLGITOy8+g==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/link": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.3.3.tgz", - "integrity": "sha512-s1inMEaSd2n2GPuULevdVmHkgXXN4ybJXeNPpjN1POlan35k3GgWRPz7F4vc0m/Zy1ZAH5sf37hhQRcbS05+nA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.4.0.tgz", + "integrity": "sha512-eImWLzxwzSmjOLa0Ow3HJaguyDCz98191v2pb7nT/zPzGDnhHhDjxB023hrXVUoCbsWrCb5QLp91Ts+VjiCyTA==", "dev": true, "requires": { - "@react-aria/interactions": "^3.11.0", - "@react-types/shared": "^3.14.1" - } - }, - "@react-types/list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-types/list/-/list-3.0.0.tgz", - "integrity": "sha512-NZkgDYJFIJC2pPFg7vG5hp6FqthnfrLa9jwdfNCsMzgtWRrKB0WqhY9+36CVuYdHB4XfJ5nvwT5zdBBlU+Fh3Q==", - "dev": true, - "requires": { - "@react-spectrum/dnd": "3.0.0-alpha.6", - "@react-types/shared": "^3.14.1" + "@react-aria/interactions": "^3.14.0", + "@react-types/shared": "^3.17.0" } }, "@react-types/listbox": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.3.4.tgz", - "integrity": "sha512-/wKUxIj/F7JekEFpsxQS4Za3OqwKop3orD67tmJh9xD8Abcj+YjGVNrjQuBvbq1hzTPgefNrb42Y4aqnqZojIg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.0.tgz", + "integrity": "sha512-OvHaX4EBRHxKrfFItdJXjY7dYomzejqJ87P5fTL1l1TbDX8gvEP014S3cI+VLQq+EsXeTZ8E/sx0tFUo7ilchA==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/menu": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.7.2.tgz", - "integrity": "sha512-BXMWrT3VCP6NTf0y7v1YYqRJNXkUKLzGXI+n7Qv9+aiZZfd3NNMyk20byHczhFoT2yuCcU5xhyOXzkxSo6ew3A==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.8.0.tgz", + "integrity": "sha512-1nwGUwKNHJf60vOsg7p48NPQIzMsSprxw8VXfStr8eE5uU4vvKfVNQNUgvpkRmHmel8BrYdh1WnERXJJ3yKUgQ==", "dev": true, "requires": { - "@react-types/overlays": "^3.6.4", - "@react-types/shared": "^3.15.0" + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0" } }, "@react-types/meter": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.2.3.tgz", - "integrity": "sha512-GuCi9H2ptceaK77E9hVn1SHEmUwQ9BxKpWPZEFpljeL6vO8E976DuIcGMyNnedwLkODeJVkiRhGfTG2UV4J8tg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.0.tgz", + "integrity": "sha512-/IAHquSb+tC/YjcXdcYinFTb7puakkQWzNwS4lkhisIoZ0K0Ym/3fat/nzjgG9s2+sqQrW6f3Ndp9GCfSzvHLg==", "dev": true, "requires": { - "@react-types/progress": "^3.2.3", - "@react-types/shared": "^3.14.1" + "@react-types/progress": "^3.3.0", + "@react-types/shared": "^3.17.0" } }, "@react-types/numberfield": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.3.4.tgz", - "integrity": "sha512-j8yeC7tR7YohKy65RLcH+Ckbjw8timkIjmZD2m/ABec84qhVDyLGzECFq16YNFBHE70vn5r45yVqCW2DtQKkYg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.4.0.tgz", + "integrity": "sha512-3kKkCFJ9cqCHuoz2BWy3DZLg6SQzqjzbO3DvNTrORd2k7bsI0Ydlfsz1rkCU53GStqovgopX4jo6EZLeRfv05Q==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/overlays": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.6.4.tgz", - "integrity": "sha512-REC4IyDUHS5WhwxMxcvTo+LdrvlSYpJKjyYkPFtJoDBpM3gmXfakTY3KW6K5eZkFv3TnmXjDF9Q2yboEk2u6WQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.7.0.tgz", + "integrity": "sha512-LstucncZ8dM+xJYEijI1V6jGH20w5XO/T60r7JTrgQElMC86phPeoWkMTN4c2lsRikybolDbvXL6XsF76YO56A==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/progress": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.2.3.tgz", - "integrity": "sha512-j5vmngxcdm603/Fi0lz0L/SwpS4TRpYjtTRKPI/sXouSpodfYJgFQfd3FHxGTqTwpxOWKAMA1tKP90/DLT9HTg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.3.0.tgz", + "integrity": "sha512-k4xivWiEYogsROLyNqVDVjl33rm+X9RKNbKQXg5pqjGikaC8T9hmIwE4tJr26XkMIIvQS6duEBCcuQN/U1+dGQ==", "dev": true, "requires": { - "@react-types/shared": "^3.14.1" - } - }, - "@react-types/provider": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.5.4.tgz", - "integrity": "sha512-mVnJw/rnD9sahMN474RE55FTv6E7h0vsn9QTZM6Bxe1Nf6zA3OokLGS4m+tEVQxoHnvMPSBg26yBPWo+jQWHMQ==", - "dev": true, - "peer": true, - "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/radio": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.2.3.tgz", - "integrity": "sha512-TiW0PJPQuVKcni8UWI84hc8dYGDsuSkKT/Dgj1r82csYGz/92RnyQDF12CCg9+MpqWZweK30uYQzbtrxa74qBg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.4.0.tgz", + "integrity": "sha512-klgEU+987xVUCRqBoxXJiPJvy0upfo76dFnK5eF7U7BzcxhuiFeLDUcqUHtK92Cy5QOiDAF2ML0vUYGIabKMPA==", "dev": true, "requires": { - "@react-types/shared": "^3.14.1" + "@react-types/shared": "^3.17.0" } }, "@react-types/searchfield": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.3.3.tgz", - "integrity": "sha512-LZuYs2nZKvA77YhvRz96QF0c2RHqoXtE2DWuVPEHxPMQHgIDUpE/NBja7VO5//Ft5xgW8oHIDyXHUggilR23Tw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.4.0.tgz", + "integrity": "sha512-rYupNbyBAjycx6SXCALjINj/nOx7lIq9f4Dk1xo1dd8X6yYU0EF4WlahNua7UV8JC5oYlxN40G7yi4lAS+CdWQ==", "dev": true, "requires": { - "@react-types/shared": "^3.14.1", - "@react-types/textfield": "^3.5.3" + "@react-types/shared": "^3.17.0", + "@react-types/textfield": "^3.7.0" } }, "@react-types/select": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.6.4.tgz", - "integrity": "sha512-lbiv7XUEdByluILjEAYVZic2uq4pU0BzW+qZ+sBCYn7v8q2hxXP7T0C6OamzfgXokQHhJ6247JDk7kugqXKL4Q==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.7.0.tgz", + "integrity": "sha512-BaynMuW0dQ9ModFzW291+3n1D9bwKSFh03g3+1PvhRcBg1EXq1vFyfFBj4uuBymI0T7oCbnjGh19xo0vKIYRrA==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/shared": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.15.0.tgz", - "integrity": "sha512-hwuE4BmgswqP+HRDSLMj7DcnYOCCK+ZRuKnc9AVhXS4LBrwRSkdUkNvXhgvqF5tav7IqTpG9pBYMR9wedehuhA==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.17.0.tgz", + "integrity": "sha512-1SNZ/RhVrrQ1e6yE0bPV7d5Sfp+Uv0dfUEhwF9MAu2v5msu7AMewnsiojKNA0QA6Ing1gpDLjHCxtayQfuxqcg==", "dev": true, "requires": {} }, "@react-types/slider": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.2.1.tgz", - "integrity": "sha512-adqWZLE2IEzqBGnGHKYQwJ2IY4xlwFcPt3KWCsfp1c1WyG/d7xxQus8rL4eWLqoiMgguTxbYm9F2TF77itw8JA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.4.0.tgz", + "integrity": "sha512-Kj+B6njpm4ltiu3gCBOPRnbzllV21IVr0bCQdNnWcf5DX8aN4VdI8EFkTz0DSwMm2WPCwZop0MDWDoRwXJK1ng==", "dev": true, "requires": { - "@react-types/shared": "^3.14.1" + "@react-types/shared": "^3.17.0" } }, "@react-types/switch": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.2.3.tgz", - "integrity": "sha512-EKs8FZfRM1zCD5kgLNi8wQKiPMayABZiAhfzkBgHRwlip1joI4F5oXTyonY8hgHrxLP5GUXFL+rNkYOo6LX1uQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.3.0.tgz", + "integrity": "sha512-6h+s//PwWf7/WJQOZKT6k1vdOQCcvPmMZW333AqyxtZX8WV8Q0illgcLMYo5qxT3IWsjYNuPIqMCY+tRbSeA2Q==", "dev": true, "requires": { - "@react-types/checkbox": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-types/checkbox": "^3.4.2", + "@react-types/shared": "^3.17.0" } }, "@react-types/table": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.3.2.tgz", - "integrity": "sha512-BIYehWSfvPRkneKKKB7YEWD4wZAVVLBf2N0M2jjsVdshK9ZpjQPgOMI6YKjiWGC/ZLZFrAysKRploaIw4Cb+TQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.5.0.tgz", + "integrity": "sha512-/Mvn1MQbdnk7i6ivam8kdIh2PKF9GD3A7KC8v1E4JNAgsbOzOkt5JC4PMc1EtAK2eppMEKTN+B84oHKMl1F8Hg==", "dev": true, "requires": { - "@react-types/grid": "^3.1.4", - "@react-types/shared": "^3.15.0" + "@react-types/grid": "^3.1.6", + "@react-types/shared": "^3.17.0" } }, "@react-types/tabs": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.1.3.tgz", - "integrity": "sha512-RfHVSsbQiiIaJxf1qBdTt+mWj1GGC7AK/sXAQGhf3p3bi8fXBcXv2hZyPQF8uWZfb8sANtEXP8V3Xdg5SlWFGA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.2.0.tgz", + "integrity": "sha512-rOQm+JDYcGV+HE/EQ23vr6J3tqvXjFiDA107rU7n4B4mNjJ46k5gOhPdGTosv6wr1+Tp7XD5XMaFfqk+O0/ZZw==", "dev": true, "requires": { - "@react-types/shared": "^3.14.1" + "@react-types/shared": "^3.17.0" } }, "@react-types/textfield": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.6.0.tgz", - "integrity": "sha512-fEa/lTqpWBn7ZE0cDsc700OhTBAxiy8ifm8AQcLYfZuRX4zqRoMpkXMWN0XMjYfoZzNrS0LJJ6pLBHTwrlXWWA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.7.0.tgz", + "integrity": "sha512-4Rqld8VZG324hecw6bqGY2gta1gm5sDhO48nyChfdmjVlFHXLDKazAcrgP76uSmUI6tffUPj3eYxQyTp5uLhyQ==", "dev": true, "requires": { - "@react-types/shared": "^3.15.0" + "@react-types/shared": "^3.17.0" } }, "@react-types/tooltip": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.2.3.tgz", - "integrity": "sha512-Q74S6crirrEu5sEZ0hvr8HjaafqE8BNlvYjD6yD42ArDM0XatkQ+AAtlVkwd+DD9lZMrMhZ35JBBuPPpzUgwQA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.3.0.tgz", + "integrity": "sha512-TMaKkjYbysZbMnY8zjI2Djh8QMHvB8LoN9EjOZX++3ZsO74CeCeOoGARh6+4c0Bu5rg4BXhNyi+y1JL3jtUEBg==", "dev": true, "requires": { - "@react-types/overlays": "^3.6.3", - "@react-types/shared": "^3.14.1" + "@react-types/overlays": "^3.7.0", + "@react-types/shared": "^3.17.0" } }, "@remix-run/router": { @@ -26488,6 +26363,23 @@ "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.48.tgz", "integrity": "sha512-sV+51I7WYnLJnKPn2EMWgS4EUfoP4iWEbrWwbXsj0MZCB/xOK8j6+C9fntIdOM50kpx45ZLC3s6kwKivWuqvyg==" }, + "@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + } + } + }, "@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -28693,9 +28585,9 @@ } }, "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "dev": true }, "co": { @@ -31484,21 +31376,21 @@ } }, "intl-messageformat": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.1.5.tgz", - "integrity": "sha512-bDQz81oQ6TkQp1pSnlBK36ahGL5/tLb0+3hSiG/1/SnVbz5NWPQTqaPx2cT7nmGujDrPn9pQ0ik8RWE8v1lzEw==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.3.3.tgz", + "integrity": "sha512-un/f07/g2e/3Q8e1ghDKET+el22Bi49M7O/rHxd597R+oLpPOMykSv5s51cABVfu3FZW+fea4hrzf2MHu1W4hw==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.12.0", - "@formatjs/fast-memoize": "1.2.6", - "@formatjs/icu-messageformat-parser": "2.1.8", - "tslib": "2.4.0" + "@formatjs/ecma402-abstract": "1.14.3", + "@formatjs/fast-memoize": "2.0.1", + "@formatjs/icu-messageformat-parser": "2.3.0", + "tslib": "^2.4.0" }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true } } @@ -36019,43 +35911,45 @@ } }, "react-aria": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.19.0.tgz", - "integrity": "sha512-QyjuLXwHlnrEW8kciSKkjkUN92PJjvOuqpLr6kMjiQicIwSO+EnIL2pqq9+CmYzVc27z7opAAcvW9/AkXvlqPA==", + "version": "3.23.1", + "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.23.1.tgz", + "integrity": "sha512-fptvkglL/HiX/llx2QCCt4WUJzuj6SLoyUJzF50kOLnX+sz5QhWQ+6dCEN/d3TWCRaXudC1nREUu8MgoV+lg7g==", "dev": true, "requires": { - "@react-aria/breadcrumbs": "^3.3.1", - "@react-aria/button": "^3.6.1", - "@react-aria/calendar": "^3.0.2", - "@react-aria/checkbox": "^3.5.1", - "@react-aria/combobox": "^3.4.1", - "@react-aria/datepicker": "^3.1.1", - "@react-aria/dialog": "^3.3.1", - "@react-aria/focus": "^3.8.0", - "@react-aria/gridlist": "^3.0.0", - "@react-aria/i18n": "^3.6.0", - "@react-aria/interactions": "^3.11.0", - "@react-aria/label": "^3.4.1", - "@react-aria/link": "^3.3.3", - "@react-aria/listbox": "^3.6.1", - "@react-aria/menu": "^3.6.1", - "@react-aria/meter": "^3.3.1", - "@react-aria/numberfield": "^3.3.1", - "@react-aria/overlays": "^3.10.1", - "@react-aria/progress": "^3.3.1", - "@react-aria/radio": "^3.3.1", - "@react-aria/searchfield": "^3.4.1", - "@react-aria/select": "^3.8.1", - "@react-aria/separator": "^3.2.3", - "@react-aria/slider": "^3.2.1", - "@react-aria/ssr": "^3.3.0", - "@react-aria/switch": "^3.2.3", - "@react-aria/table": "^3.4.1", - "@react-aria/tabs": "^3.3.1", - "@react-aria/textfield": "^3.7.1", - "@react-aria/tooltip": "^3.3.1", - "@react-aria/utils": "^3.13.3", - "@react-aria/visually-hidden": "^3.4.1" + "@react-aria/breadcrumbs": "^3.5.0", + "@react-aria/button": "^3.7.0", + "@react-aria/calendar": "^3.1.0", + "@react-aria/checkbox": "^3.8.0", + "@react-aria/combobox": "^3.5.1", + "@react-aria/datepicker": "^3.3.0", + "@react-aria/dialog": "^3.5.0", + "@react-aria/dnd": "^3.1.0", + "@react-aria/focus": "^3.11.0", + "@react-aria/gridlist": "^3.2.1", + "@react-aria/i18n": "^3.7.0", + "@react-aria/interactions": "^3.14.0", + "@react-aria/label": "^3.5.0", + "@react-aria/link": "^3.4.0", + "@react-aria/listbox": "^3.8.1", + "@react-aria/menu": "^3.8.1", + "@react-aria/meter": "^3.4.0", + "@react-aria/numberfield": "^3.4.0", + "@react-aria/overlays": "^3.13.0", + "@react-aria/progress": "^3.4.0", + "@react-aria/radio": "^3.5.0", + "@react-aria/searchfield": "^3.5.0", + "@react-aria/select": "^3.9.1", + "@react-aria/selection": "^3.13.1", + "@react-aria/separator": "^3.3.0", + "@react-aria/slider": "^3.3.0", + "@react-aria/ssr": "^3.5.0", + "@react-aria/switch": "^3.4.0", + "@react-aria/table": "^3.8.1", + "@react-aria/tabs": "^3.4.1", + "@react-aria/textfield": "^3.9.0", + "@react-aria/tooltip": "^3.4.0", + "@react-aria/utils": "^3.15.0", + "@react-aria/visually-hidden": "^3.7.0" } }, "react-dnd": { @@ -36144,32 +36038,33 @@ } }, "react-stately": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.17.0.tgz", - "integrity": "sha512-wAclTwKXt2BoK1OLajxkW+Zl0gQer3qL/eDaNd98xvK4IYlEBxcCVXzvvzkMcOzPai2iqPFAk0w6PzMjlhUy1g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.21.0.tgz", + "integrity": "sha512-nnGkuRAoq9auj5SYRwxM6eVYvkS9WhxH9iKuzlqE1Gverp3JDFMFgKSaG/DFWG/m1TPlGvwYUwdVjyhINsFUqA==", "dev": true, "requires": { - "@react-stately/calendar": "^3.0.2", - "@react-stately/checkbox": "^3.2.1", - "@react-stately/collections": "^3.4.3", - "@react-stately/combobox": "^3.2.1", - "@react-stately/data": "^3.6.1", - "@react-stately/datepicker": "^3.0.2", - "@react-stately/list": "^3.5.3", - "@react-stately/menu": "^3.4.1", - "@react-stately/numberfield": "^3.2.1", - "@react-stately/overlays": "^3.4.1", - "@react-stately/radio": "^3.5.1", - "@react-stately/searchfield": "^3.3.1", - "@react-stately/select": "^3.3.1", - "@react-stately/selection": "^3.10.3", - "@react-stately/slider": "^3.2.1", - "@react-stately/table": "^3.4.0", - "@react-stately/tabs": "^3.2.1", - "@react-stately/toggle": "^3.4.1", - "@react-stately/tooltip": "^3.2.1", - "@react-stately/tree": "^3.3.3", - "@react-types/shared": "^3.14.1" + "@react-stately/calendar": "^3.1.0", + "@react-stately/checkbox": "^3.4.0", + "@react-stately/collections": "^3.6.0", + "@react-stately/combobox": "^3.4.0", + "@react-stately/data": "^3.9.0", + "@react-stately/datepicker": "^3.3.0", + "@react-stately/dnd": "^3.1.0", + "@react-stately/list": "^3.7.0", + "@react-stately/menu": "^3.5.0", + "@react-stately/numberfield": "^3.4.0", + "@react-stately/overlays": "^3.5.0", + "@react-stately/radio": "^3.7.0", + "@react-stately/searchfield": "^3.4.0", + "@react-stately/select": "^3.4.0", + "@react-stately/selection": "^3.12.0", + "@react-stately/slider": "^3.3.0", + "@react-stately/table": "^3.8.0", + "@react-stately/tabs": "^3.3.0", + "@react-stately/toggle": "^3.5.0", + "@react-stately/tooltip": "^3.3.0", + "@react-stately/tree": "^3.5.0", + "@react-types/shared": "^3.17.0" } }, "react-universal-interface": { diff --git a/packages/insomnia/package.json b/packages/insomnia/package.json index 3db1bff4f0..71670337a0 100644 --- a/packages/insomnia/package.json +++ b/packages/insomnia/package.json @@ -186,13 +186,13 @@ "objectpath": "^2.0.0", "openapi-types": "^7.0.1", "react": "^18.2.0", - "react-aria": "^3.19.0", + "react-aria": "^3.23.1", "react-dnd": "^7.4.5", "react-dnd-html5-backend": "^7.4.4", "react-dom": "^18.2.0", "react-redux": "^7.2.6", "react-router-dom": "^6.4.2", - "react-stately": "^3.17.0", + "react-stately": "^3.21.0", "react-use": "^17.4.0", "redux": "^4.1.2", "redux-mock-store": "^1.5.4", diff --git a/packages/insomnia/src/common/__tests__/import-helpers.test.ts b/packages/insomnia/src/common/__tests__/import-helpers.test.ts deleted file mode 100644 index 70ee8e5030..0000000000 --- a/packages/insomnia/src/common/__tests__/import-helpers.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { describe, expect, it, jest } from '@jest/globals'; - -import * as modals from '../../ui/components/modals'; -import { askToImportIntoWorkspace, ForceToWorkspace } from '../import'; - -jest.mock('../../ui/components/modals'); - -describe('askToImportIntoWorkspace', () => { - it('should return null if no active workspace', () => { - const func = askToImportIntoWorkspace({ workspaceId: undefined, forceToWorkspace: ForceToWorkspace.new }); - expect(func()).toBeNull(); - }); - - it('should return null if forcing to a new workspace', () => { - const func = askToImportIntoWorkspace({ workspaceId: 'id', forceToWorkspace: ForceToWorkspace.new }); - expect(func()).toBeNull(); - }); - - it('should return id if forcing to a current workspace', () => { - const currentWorkspaceId = 'currentId'; - const func = askToImportIntoWorkspace({ workspaceId: currentWorkspaceId, forceToWorkspace: ForceToWorkspace.current }); - expect(func()).toBe(currentWorkspaceId); - }); - - it('should prompt the user if not forcing', () => { - const currentWorkspaceId = 'current'; - const func = askToImportIntoWorkspace({ workspaceId: currentWorkspaceId }); - func(); - expect(modals.showModal).toHaveBeenCalledTimes(1); - }); -}); diff --git a/packages/insomnia/src/common/__tests__/import.test.ts b/packages/insomnia/src/common/__tests__/import.test.ts index ed171adcf6..aef575c14e 100644 --- a/packages/insomnia/src/common/__tests__/import.test.ts +++ b/packages/insomnia/src/common/__tests__/import.test.ts @@ -3,7 +3,7 @@ import fs from 'fs'; import path from 'path'; import { globalBeforeEach } from '../../__jest__/before-each'; -import { apiSpec, request, requestGroup, workspace } from '../../models'; +import { request, requestGroup, workspace } from '../../models'; import { DEFAULT_PROJECT_ID } from '../../models/project'; import * as importUtil from '../import'; @@ -37,18 +37,18 @@ describe('importRaw()', () => { it('should import a curl request to a new workspace', async () => { const fixturePath = path.join(__dirname, '..', '__fixtures__', 'curl', 'complex-input.sh'); - const rawFixture = fs.readFileSync(fixturePath, 'utf8').toString(); + const content = fs.readFileSync(fixturePath, 'utf8').toString(); - const importConfig: importUtil.ImportRawConfig = { - getWorkspaceId: () => null, - getProjectId: async () => DEFAULT_PROJECT_ID, - getWorkspaceScope: () => 'design', - }; + const scanResult = await importUtil.scanResources({ + content, + }); - const { source, error } = await importUtil.importRaw( - rawFixture, - importConfig - ); + expect(scanResult.type.id).toBe('curl'); + expect(scanResult.errors.length).toBe(0); + + await importUtil.importResources({ + projectId: DEFAULT_PROJECT_ID, + }); const workspacesCount = await workspace.count(); const projectWorkspaces = await workspace.findByParentId( @@ -57,9 +57,6 @@ describe('importRaw()', () => { const curlRequests = await request.findByParentId(projectWorkspaces[0]._id); - expect(source).toBe('curl'); - expect(error).toBe(null); - expect(workspacesCount).toBe(1); expect(curlRequests[0]).toMatchObject({ @@ -71,30 +68,27 @@ describe('importRaw()', () => { it('should import a curl request to an existing workspace', async () => { const fixturePath = path.join(__dirname, '..', '__fixtures__', 'curl', 'complex-input.sh'); - const rawFixture = fs.readFileSync(fixturePath, 'utf8').toString(); + const content = fs.readFileSync(fixturePath, 'utf8').toString(); const existingWorkspace = await workspace.create(); - const importConfig: importUtil.ImportRawConfig = { - getWorkspaceId: () => existingWorkspace._id, - getProjectId: async () => DEFAULT_PROJECT_ID, - getWorkspaceScope: () => 'design', - }; + const scanResult = await importUtil.scanResources({ + content, + }); - const { source, error } = await importUtil.importRaw( - rawFixture, - importConfig - ); + expect(scanResult.type?.id).toBe('curl'); + expect(scanResult.errors.length).toBe(0); + + await importUtil.importResources({ + workspaceId: existingWorkspace._id, + projectId: existingWorkspace.parentId, + }); const workspacesCount = await workspace.count(); + expect(workspacesCount).toBe(1); const curlRequests = await request.findByParentId(existingWorkspace._id); - expect(source).toBe('curl'); - expect(error).toBe(null); - - expect(workspacesCount).toBe(1); - expect(curlRequests[0]).toMatchObject({ body: { 'text': '{\"email_id\": \"tem_123\"}', @@ -104,18 +98,18 @@ describe('importRaw()', () => { it('should import a postman collection to a new workspace', async () => { const fixturePath = path.join(__dirname, '..', '__fixtures__', 'postman', 'aws-signature-auth-v2_0-input.json'); - const rawFixture = fs.readFileSync(fixturePath, 'utf8').toString(); + const content = fs.readFileSync(fixturePath, 'utf8').toString(); - const importConfig: importUtil.ImportRawConfig = { - getWorkspaceId: () => null, - getProjectId: async () => DEFAULT_PROJECT_ID, - getWorkspaceScope: () => 'design', - }; + const scanResult = await importUtil.scanResources({ + content, + }); - const { source, error } = await importUtil.importRaw( - rawFixture, - importConfig - ); + expect(scanResult.type.id).toBe('postman'); + expect(scanResult.errors.length).toBe(0); + + await importUtil.importResources({ + projectId: DEFAULT_PROJECT_ID, + }); const workspacesCount = await workspace.count(); const projectWorkspaces = await workspace.findByParentId( @@ -125,9 +119,6 @@ describe('importRaw()', () => { const requestGroups = await requestGroup.findByParentId(projectWorkspaces[0]._id); const requests = await request.findByParentId(requestGroups[0]._id); - expect(source).toBe('postman'); - expect(error).toBe(null); - expect(workspacesCount).toBe(1); expect(requests[0]).toMatchObject({ @@ -137,29 +128,27 @@ describe('importRaw()', () => { it('should import a postman collection to an existing workspace', async () => { const fixturePath = path.join(__dirname, '..', '__fixtures__', 'postman', 'aws-signature-auth-v2_0-input.json'); - const rawFixture = fs.readFileSync(fixturePath, 'utf8').toString(); + const content = fs.readFileSync(fixturePath, 'utf8').toString(); const existingWorkspace = await workspace.create(); - const importConfig: importUtil.ImportRawConfig = { - getWorkspaceId: () => existingWorkspace._id, - getProjectId: async () => DEFAULT_PROJECT_ID, - getWorkspaceScope: () => 'design', - }; + const scanResult = await importUtil.scanResources({ + content, + }); - const { source, error } = await importUtil.importRaw( - rawFixture, - importConfig - ); + expect(scanResult.type?.id).toBe('postman'); + expect(scanResult.errors.length).toBe(0); + + await importUtil.importResources({ + workspaceId: existingWorkspace._id, + projectId: existingWorkspace.parentId, + }); const workspacesCount = await workspace.count(); const requestGroups = await requestGroup.findByParentId(existingWorkspace._id); const requests = await request.findByParentId(requestGroups[0]._id); - expect(source).toBe('postman'); - expect(error).toBe(null); - expect(workspacesCount).toBe(1); expect(requests[0]).toMatchObject({ @@ -169,23 +158,21 @@ describe('importRaw()', () => { it('should import an openapi collection to an existing workspace with scope design', async () => { const fixturePath = path.join(__dirname, '..', '__fixtures__', 'openapi', 'endpoint-security-input.yaml'); - const rawFixture = fs.readFileSync(fixturePath, 'utf8').toString(); + const content = fs.readFileSync(fixturePath, 'utf8').toString(); const existingWorkspace = await workspace.create({ scope: 'design' }); - const importConfig: importUtil.ImportRawConfig = { - getWorkspaceId: () => existingWorkspace._id, - getProjectId: async () => DEFAULT_PROJECT_ID, - getWorkspaceScope: () => 'design', - }; + const scanResult = await importUtil.scanResources({ + content, + }); - const { source, error } = await importUtil.importRaw( - rawFixture, - importConfig - ); + expect(scanResult.type?.id).toBe('openapi3'); + expect(scanResult.errors.length).toBe(0); - expect(source).toBe('openapi3'); - expect(error).toBe(null); + await importUtil.importResources({ + workspaceId: existingWorkspace._id, + projectId: existingWorkspace.parentId, + }); const workspacesCount = await workspace.count(); @@ -193,10 +180,6 @@ describe('importRaw()', () => { const requests = await request.findByParentId(existingWorkspace._id); expect(requests.length).toBe(12); - - const createdApiSpec = await apiSpec.getByParentId(existingWorkspace._id); - - expect(createdApiSpec?.contents).toContain('openapi: \'3.0.2\''); }); }); diff --git a/packages/insomnia/src/common/import.ts b/packages/insomnia/src/common/import.ts index 3d31c4d19d..de0d11787d 100644 --- a/packages/insomnia/src/common/import.ts +++ b/packages/insomnia/src/common/import.ts @@ -1,54 +1,43 @@ -import fs from 'fs'; +import { readFile } from 'fs/promises'; -import type { ApiSpec } from '../models/api-spec'; -import type { BaseModel } from '../models/index'; +import { ApiSpec, isApiSpec } from '../models/api-spec'; +import { CookieJar, isCookieJar } from '../models/cookie-jar'; +import { BaseEnvironment, isEnvironment } from '../models/environment'; +import { GrpcRequest, isGrpcRequest } from '../models/grpc-request'; +import { BaseModel, getModel } from '../models/index'; import * as models from '../models/index'; -import { Project } from '../models/project'; -import { isRequest } from '../models/request'; -import { isWorkspace, Workspace, WorkspaceScope, WorkspaceScopeKeys } from '../models/workspace'; -import { SegmentEvent, trackSegmentEvent } from '../ui/analytics'; -import { AlertModal } from '../ui/components/modals/alert-modal'; -import { AskModal } from '../ui/components/modals/ask-modal'; -import { showError, showModal } from '../ui/components/modals/index'; -import { showSelectModal } from '../ui/components/modals/select-modal'; -import { convert, ConvertResultType } from '../utils/importers/convert'; +import { isRequest, Request } from '../models/request'; +import { isUnitTest, UnitTest } from '../models/unit-test'; +import { isUnitTestSuite, UnitTestSuite } from '../models/unit-test-suite'; import { - BASE_ENVIRONMENT_ID_KEY, - CONTENT_TYPE_GRAPHQL, - EXPORT_TYPE_WORKSPACE, - WORKSPACE_ID_KEY, -} from './constants'; + isWebSocketRequest, + WebSocketRequest, +} from '../models/websocket-request'; +import { isWorkspace, Workspace } from '../models/workspace'; +// import { SegmentEvent, trackSegmentEvent } from '../ui/analytics'; +import { convert, ConvertResultType } from '../utils/importers/convert'; +import { invariant } from '../utils/invariant'; import { database as db } from './database'; -import { diffPatchObj, fnOrString, generateId } from './misc'; -import { strings } from './strings'; +import { generateId } from './misc'; -export interface ImportResult { - source: string; - error: Error | null; - summary: Record; +export interface ExportedModel extends BaseModel { + _type: string; } interface ConvertResult { type: ConvertResultType; data: { - resources: Record[]; + resources: ExportedModel[]; }; } -export interface ImportRawConfig { - getWorkspaceId: ImportToWorkspacePrompt; - getProjectId?: () => Promise; - getWorkspaceScope?: SetWorkspaceScopePrompt; - enableDiffBasedPatching?: boolean; - enableDiffDeep?: boolean; - bypassDiffProps?: { - url: boolean; - }; -} +export const isApiSpecImport = ({ id }: Pick) => + id === 'openapi3' || id === 'swagger2'; -export async function importUri(uri: string, importConfig: ImportRawConfig) { - let rawText; - // If GH preview, force raw +export const isInsomniaV4Import = ({ id }: Pick) => + id === 'insomnia-4'; + +export async function fetchImportContentFromURI({ uri }: { uri: string }) { const url = new URL(uri); if (url.origin === 'https://github.com') { @@ -58,406 +47,242 @@ export async function importUri(uri: string, importConfig: ImportRawConfig) { } if (uri.match(/^(http|https):\/\//)) { - const response = await window.fetch(uri); - rawText = await response.text(); + const response = await fetch(uri); + const content = await response.text(); + + return content; } else if (uri.match(/^(file):\/\//)) { const path = uri.replace(/^(file):\/\//, ''); - rawText = fs.readFileSync(path, 'utf8'); + const content = await readFile(path, 'utf8'); + + return content; } else { // Treat everything else as raw text - rawText = decodeURIComponent(uri); + const content = decodeURIComponent(uri); + + return content; } - - const result = await importRaw(rawText, importConfig); - const { summary, error } = result; - - if (error) { - showError({ - title: 'Failed to import', - error, - message: 'Import failed', - }); - return result; - } - - const statements = Object.keys(summary) - .map(type => { - const count = summary[type].length; - const name = models.getModelName(type, count); - return count === 0 ? null : `${count} ${name}`; - }) - .filter(s => s !== null); - let message; - - if (statements.length === 0) { - message = 'Nothing was found to import.'; - } else { - message = `You imported ${statements.join(', ')}!`; - } - - showModal(AlertModal, { - title: 'Import Succeeded', - message, - }); - return result; } -// If we come across an ID of this form, we will replace it with a new one -const REPLACE_ID_REGEX = /__\w+_\d+__/g; +export interface ScanResult { + requests?: (Request | WebSocketRequest | GrpcRequest)[]; + workspace?: Workspace; + environments?: BaseEnvironment[]; + apiSpec?: ApiSpec; + cookieJar?: CookieJar; + unitTests?: UnitTest[]; + unitTestSuites?: UnitTestSuite[]; + type?: ConvertResultType; + errors: string[]; +} -export async function importRaw( - rawContent: string, - { - getWorkspaceId, - getWorkspaceScope, - getProjectId, - enableDiffBasedPatching, - enableDiffDeep, - bypassDiffProps, - }: ImportRawConfig, -) { - let results: ConvertResult; +let ResourceCache: { + content: string; + resources: BaseModel[]; + type: ConvertResultType; +} | null = null; + +export async function scanResources({ + content, +}: { + content: string; +}): Promise { + let results: ConvertResult | null = null; try { - results = (await convert(rawContent)) as unknown as ConvertResult; - } catch (err) { - const importResult: ImportResult = { - source: 'not found', - error: err, - summary: {}, + results = (await convert(content)) as unknown as ConvertResult; + } catch (err: unknown) { + if (err instanceof Error) { + return { + errors: [err.message], + }; + } + } + + if (!results) { + return { + errors: ['No resources found to import.'], }; - return importResult; } - const { data, type: resultsType } = results; - // Generate all the ids we may need - const generatedIds: Record any)> = {}; + const { type, data } = results; - for (const r of data.resources) { - for (const key of r._id.match(REPLACE_ID_REGEX) || []) { - generatedIds[key] = generateId(models.MODELS_BY_EXPORT_TYPE[r._type].prefix); - } - } - - // Contains the ID of the workspace to be used with the import - generatedIds[WORKSPACE_ID_KEY] = async () => { - const workspaceId = await getWorkspaceId(); - // First try getting the workspace to overwrite - const workspace = await models.workspace.getById(workspaceId || 'n/a'); - // Update this fn so it doesn't run again - const idToUse = workspace?._id || generateId(models.workspace.prefix); - generatedIds[WORKSPACE_ID_KEY] = idToUse; - return idToUse; - }; - - // Contains the ID of the base environment to be used with the import - generatedIds[BASE_ENVIRONMENT_ID_KEY] = async () => { - const parentId = await fnOrString(generatedIds[WORKSPACE_ID_KEY]); - const baseEnvironment = await models.environment.getOrCreateForParentId(parentId); - // Update this fn so it doesn't run again - generatedIds[BASE_ENVIRONMENT_ID_KEY] = baseEnvironment._id; - return baseEnvironment._id; - }; - - // NOTE: Although the order of the imported resources is not guaranteed, - // all current importers will produce resources in this order: - // Workspace > Environment > RequestGroup > Request - // Import everything backwards so they get inserted in the correct order - data.resources.reverse(); - const importedDocs: Record = {}; - - for (const model of models.all()) { - importedDocs[model.type] = []; - } - - // Add a workspace to the resources if it doesn't exist - // NOTE: The workspace should be the last item of the resources - if (!data.resources.some(resource => resource._type === EXPORT_TYPE_WORKSPACE)) { - data.resources.push({ - _id: WORKSPACE_ID_KEY, - _type: EXPORT_TYPE_WORKSPACE, + const resources = data.resources + .filter(r => r._type) + .map(r => { + const { _type, ...model } = r; + return { ...model, type: models.MODELS_BY_EXPORT_TYPE[_type].type }; }); - } - for (const resource of data.resources) { - // Buffer DB changes - // NOTE: Doing it inside here so it's more "scalable" - await db.bufferChanges(100); + ResourceCache = { + resources, + type, + content, + }; - // Replace null parentIds with current workspace - if (!resource.parentId && resource._type !== EXPORT_TYPE_WORKSPACE) { - resource.parentId = WORKSPACE_ID_KEY; - } + const requests = resources.filter(isRequest); + const websocketRequests = resources.filter(isWebSocketRequest); + const grpcRequests = resources.filter(isGrpcRequest); + const environments = resources.filter(isEnvironment); + const unitTests = resources.filter(isUnitTest); + const unitTestSuites = resources.filter(isUnitTestSuite); + const apiSpec = resources.find(isApiSpec); + const workspace = resources.find(isWorkspace); + const cookieJar = resources.find(isCookieJar); - // Replace ID placeholders (eg. __WORKSPACE_ID__) with generated values - for (const key of Object.keys(generatedIds)) { - const { parentId, _id } = resource; + return { + type, + unitTests, + unitTestSuites, + requests: [...requests, ...websocketRequests, ...grpcRequests], + workspace, + environments, + apiSpec, + cookieJar, + errors: [], + }; +} - if (parentId?.includes(key)) { - resource.parentId = parentId.replace(key, await fnOrString(generatedIds[key])); - } +export async function importResources({ + workspaceId, + projectId, + workspaceName, +}: { + workspaceId?: string; + workspaceName?: string; + projectId: string; +}) { + invariant(ResourceCache, 'No resources to import'); + const bufferId = await db.bufferChanges(); - if (_id && _id.includes(key)) { - resource._id = _id.replace(key, await fnOrString(generatedIds[key])); + const resources = ResourceCache.resources; + const workspace = resources.find(isWorkspace); + + const ResourceIdMap = new Map(); + // If we're importing into an existing workspace + if (workspaceId && workspaceId !== 'create-new-workspace-id') { + const existingWorkspace = await models.workspace.getById(workspaceId); + + invariant( + existingWorkspace, + `Could not find workspace with id ${workspaceId}` + ); + + // If we're importing into a new workspace + // Map new IDs + ResourceIdMap.set(workspaceId, existingWorkspace._id); + ResourceIdMap.set('__WORKSPACE_ID__', existingWorkspace._id); + workspace && ResourceIdMap.set(workspace._id, existingWorkspace._id); + + const filteredResources = resources.filter( + resource => + !isWorkspace(resource) && + !isApiSpec(resource) && + !isCookieJar(resource) && + !isEnvironment(resource) + ); + + for (const resource of filteredResources) { + const model = getModel(resource.type); + if (model) { + ResourceIdMap.set(resource._id, generateId(model.prefix)); + } else { + console.log( + '[Import Scan] Could not find model for type', + resource.type + ); } } - const model = models.MODELS_BY_EXPORT_TYPE[resource._type]; + for (const resource of filteredResources) { + const model = getModel(resource.type); - if (!model) { - console.warn('Unknown doc type for import', resource._type); - continue; - } - - // Hack to switch to GraphQL based on finding `graphql` in the URL path - // TODO: Support this in a better way - if ( - isRequest(model) && - resource.body && - typeof resource.body.text === 'string' && - typeof resource.url === 'string' && - resource.body.text.includes('"query"') && - resource.url.includes('graphql') - ) { - resource.body.mimeType = CONTENT_TYPE_GRAPHQL; - } - - // Try adding Content-Type JSON if no Content-Type exists - if ( - isRequest(model) && - resource.body && - typeof resource.body.text === 'string' && - Array.isArray(resource.headers) && - !resource.headers.find(h => h.name.toLowerCase() === 'content-type') - ) { - try { - JSON.parse(resource.body.text); - resource.headers.push({ - name: 'Content-Type', - value: 'application/json', - }); - } catch (err) { - // Not JSON - } - } - - const existingDoc = await db.get(model.type, resource._id); - let newDoc: BaseModel; - - if (existingDoc) { - let updateDoc = resource; - - // Do differential patching when enabled - if (enableDiffBasedPatching) { - updateDoc = diffPatchObj(resource, existingDoc, enableDiffDeep); - } - - // Bypass differential update for urls when enabled - if (bypassDiffProps?.url && updateDoc.url) { - updateDoc.url = resource.url; - } - - // If workspace preserve the scope and parentId of the existing workspace while importing - if (isWorkspace(model)) { - (updateDoc as Workspace).scope = (existingDoc as Workspace).scope; - (updateDoc as Workspace).parentId = (existingDoc as Workspace).parentId; - } - - newDoc = await db.docUpdate(existingDoc, updateDoc); - } else { - // If workspace, check and set the scope and parentId while importing a new workspace - if (isWorkspace(model)) { - // Set the workspace scope if creating a new workspace during import - // IF is creating a new workspace - // AND imported resource has no preset scope property OR scope is null - // AND we have a function to get scope - if ((!resource.hasOwnProperty('scope') || resource.scope === null) && getWorkspaceScope) { - const workspaceName = resource.name; - let specName; - - // If is from insomnia v4 and the spec has contents, add to the name when prompting - if (isInsomniaV4Import(resultsType)) { - const spec: ApiSpec | null = await models.apiSpec.getByParentId(resource._id); - - if (spec && spec.contents.trim()) { - specName = spec.fileName; - } - } - - const nameToPrompt = specName ? `${specName} / ${workspaceName}` : workspaceName; - resource.scope = await getWorkspaceScope(nameToPrompt); - } - // If the workspace doesn't have a name, update the default name based on it's scope - if (!resource.name) { - const name = - (resource as Workspace).scope === 'collection' - ? `My ${strings.collection.singular}` - : `My ${strings.document.singular}`; - - resource.name = name; - } - - if (getProjectId) { - // Set the workspace parent if creating a new workspace during import - resource.parentId = await getProjectId(); - } - } - - newDoc = await db.docCreate(model.type, resource); - - // Mark as not seen if we created a new workspace from sync - if (isWorkspace(newDoc)) { - const workspaceMeta = await models.workspaceMeta.getOrCreateByParentId(newDoc._id); - await models.workspaceMeta.update(workspaceMeta, { - hasSeen: false, + if (model) { + await db.docCreate(model.type, { + ...resource, + _id: ResourceIdMap.get(resource._id), + parentId: ResourceIdMap.get(resource.parentId), }); } } - importedDocs[newDoc.type].push(newDoc); - } + await db.flushChanges(bufferId); - // Store spec under workspace if it's OpenAPI - for (const workspace of importedDocs[models.workspace.type]) { - if (isApiSpecImport(resultsType)) { - const spec = await models.apiSpec.updateOrCreateForParentId(workspace._id, { - contents: rawContent, + return { + resources, + workspace: existingWorkspace, + }; + } else { + const scope = + isApiSpecImport(ResourceCache?.type) || + Boolean(resources.find(r => r.type === 'ApiSpec')) + ? 'design' + : 'collection'; + const newWorkspace = await models.workspace.create({ + name: workspaceName || workspace?.name, + scope, + parentId: projectId, + }); + + const apiSpec = resources.find(isApiSpec); + + if (apiSpec) { + await models.apiSpec.updateOrCreateForParentId(newWorkspace._id, { + ...apiSpec, + fileName: workspaceName || workspace?.name, + }); + } + + if ( + isApiSpecImport(ResourceCache?.type) && + newWorkspace.scope === 'design' + ) { + await models.apiSpec.updateOrCreateForParentId(newWorkspace._id, { + fileName: workspaceName || workspace?.name, + contents: ResourceCache.content, contentType: 'yaml', }); - importedDocs[spec.type].push(spec); } - // Set active environment when none is currently selected and one exists - const meta = await models.workspaceMeta.getOrCreateByParentId(workspace._id); - const envs = importedDocs[models.environment.type]; + // If we're importing into a new workspace + // Map new IDs + ResourceIdMap.set(workspaceId, newWorkspace._id); + ResourceIdMap.set('__WORKSPACE_ID__', newWorkspace._id); + workspace && ResourceIdMap.set(workspace._id, newWorkspace._id); - if (!meta.activeEnvironmentId && envs.length > 0) { - meta.activeEnvironmentId = envs[0]._id; - await models.workspaceMeta.update(meta); + const resourcesWithoutWorkspaceAndApiSpec = resources.filter( + resource => !isWorkspace(resource) && !isApiSpec(resource) + ); + + for (const resource of resourcesWithoutWorkspaceAndApiSpec) { + const model = getModel(resource.type); + if (model) { + ResourceIdMap.set(resource._id, generateId(model.prefix)); + } else { + console.log( + '[Import Scan] Could not find model for type', + resource.type + ); + } } + + for (const resource of resourcesWithoutWorkspaceAndApiSpec) { + const model = getModel(resource.type); + + if (model) { + await db.docCreate(model.type, { + ...resource, + _id: ResourceIdMap.get(resource._id), + parentId: ResourceIdMap.get(resource.parentId), + }); + } + } + + await db.flushChanges(bufferId); + + return { + resources, + workspace: newWorkspace, + }; } - - await db.flushChanges(); - trackSegmentEvent(SegmentEvent.dataImport, { type: resultsType.id }); - const importRequest: ImportResult = { - source: resultsType && typeof resultsType.id === 'string' ? resultsType.id : 'unknown', - summary: importedDocs, - error: null, - }; - return importRequest; -} - -export const isApiSpecImport = ({ id }: Pick) => ( - id === 'openapi3' || id === 'swagger2' -); - -export const isInsomniaV4Import = ({ id }: Pick) => ( - id === 'insomnia-4' -); - -export enum ForceToWorkspace { - new = 'new', - current = 'current', - existing = 'existing' -} - -export type SelectExistingWorkspacePrompt = Promise; - -// Returning null instead of a string will create a new workspace -export type ImportToWorkspacePrompt = () => null | string | Promise; -export function askToImportIntoWorkspace({ workspaceId, forceToWorkspace, activeProjectWorkspaces }: { workspaceId?: string; forceToWorkspace?: ForceToWorkspace; activeProjectWorkspaces?: Workspace[] }): ImportToWorkspacePrompt { - return function() { - switch (forceToWorkspace) { - case ForceToWorkspace.new: { - return null; - } - - case ForceToWorkspace.current: { - if (!workspaceId) { - return null; - } - - return workspaceId; - } - - case ForceToWorkspace.existing: { - // Return null if there are no available workspaces to chose from. - if (activeProjectWorkspaces?.length) { - return null; - } - } - - default: { - if (!workspaceId) { - return null; - } - - return new Promise(resolve => { - showModal(AskModal, { - title: 'Import', - message: 'Do you want to import into the current workspace or a new one?', - yesText: 'Current', - noText: 'New Workspace', - onDone: async (yes: boolean) => { - resolve(yes ? workspaceId : null); - }, - }); - }); - } - } - }; -} - -export type SetWorkspaceScopePrompt = (name?: string) => WorkspaceScope | Promise; -export function askToSetWorkspaceScope(scope?: WorkspaceScope): SetWorkspaceScopePrompt { - return name => { - switch (scope) { - case WorkspaceScopeKeys.collection: - case WorkspaceScopeKeys.design: - return scope; - - default: - return new Promise(resolve => { - const message = name - ? `How would you like to import "${name}"?` - : 'Do you want to import as a Request Collection or a Design Document?'; - - showModal(AskModal, { - title: 'Import As', - message, - noText: 'Request Collection', - yesText: 'Design Document', - onDone: async (yes: boolean) => { - resolve(yes ? WorkspaceScopeKeys.design : WorkspaceScopeKeys.collection); - }, - }); - }); - } - }; -} - -export type SetProjectIdPrompt = () => Promise; -export function askToImportIntoProject({ projects, activeProject }: { projects?: Project[]; activeProject?: Project }): SetProjectIdPrompt { - return function() { - return new Promise(resolve => { - // If only one project exists, return that - if (projects?.length === 1) { - return resolve(projects[0]._id); - } - - const options = projects?.map(project => ({ name: project.name, value: project._id })) || []; - const defaultValue = activeProject?._id || null; - - showSelectModal({ - title: 'Import', - message: `Select a ${strings.project.singular.toLowerCase()} to import into`, - options, - value: defaultValue, - onDone: selectedProjectId => { - // @ts-expect-error onDone can send null as an argument; why/how? - resolve(selectedProjectId); - }, - }); - }); - }; } diff --git a/packages/insomnia/src/plugins/context/__tests__/data.test.ts b/packages/insomnia/src/plugins/context/__tests__/data.test.ts index 7d3b5d653f..cdee400bb2 100644 --- a/packages/insomnia/src/plugins/context/__tests__/data.test.ts +++ b/packages/insomnia/src/plugins/context/__tests__/data.test.ts @@ -45,12 +45,9 @@ describe('app.import.*', () => { const filename = path.resolve(__dirname, '../__fixtures__/basic-import.json'); await data.import.uri(`file://${filename}`); const allWorkspaces = await db.all(models.workspace.type); - expect(allWorkspaces).toEqual([ + expect(allWorkspaces).toMatchObject([ workspace, { - _id: 'wrk_imported_1', - created: 888, - modified: 999, description: '', name: 'New', parentId: project._id, @@ -58,21 +55,23 @@ describe('app.import.*', () => { scope: WorkspaceScopeKeys.collection, }, ]); - expect(await db.all(models.request.type)).toEqual([ + + const importedWorkspace = allWorkspaces.find(w => w.name === 'New'); + + expect(importedWorkspace).toBeDefined(); + + expect(await db.all(models.request.type)).toMatchObject([ { - _id: 'req_imported_1', isPrivate: false, authentication: {}, body: {}, - created: 111, description: '', headers: [], metaSortKey: 0, method: 'GET', - modified: 222, name: 'Test', parameters: [], - parentId: 'wrk_imported_1', + parentId: importedWorkspace._id, settingDisableRenderRequestBody: false, settingEncodeUrl: true, settingSendCookies: true, @@ -93,12 +92,9 @@ describe('app.import.*', () => { const filename = path.resolve(__dirname, '../__fixtures__/basic-import.json'); await data.import.raw(fs.readFileSync(filename, 'utf8')); const allWorkspaces = await db.all(models.workspace.type); - expect(allWorkspaces).toEqual([ + expect(allWorkspaces).toMatchObject([ workspace, { - _id: 'wrk_imported_1', - created: 888, - modified: 999, description: '', name: 'New', parentId: project._id, @@ -106,21 +102,21 @@ describe('app.import.*', () => { scope: WorkspaceScopeKeys.collection, }, ]); - expect(await db.all(models.request.type)).toEqual([ + + const importedWorkspace = allWorkspaces.find(w => w.name === 'New'); + expect(importedWorkspace).toBeDefined(); + expect(await db.all(models.request.type)).toMatchObject([ { - _id: 'req_imported_1', isPrivate: false, authentication: {}, body: {}, - created: 111, description: '', headers: [], metaSortKey: 0, method: 'GET', - modified: 222, name: 'Test', parameters: [], - parentId: 'wrk_imported_1', + parentId: importedWorkspace._id, settingDisableRenderRequestBody: false, settingEncodeUrl: true, settingSendCookies: true, diff --git a/packages/insomnia/src/plugins/context/data.ts b/packages/insomnia/src/plugins/context/data.ts index 9da6198bdc..950cbb6065 100644 --- a/packages/insomnia/src/plugins/context/data.ts +++ b/packages/insomnia/src/plugins/context/data.ts @@ -1,8 +1,6 @@ import { exportWorkspacesData, exportWorkspacesHAR } from '../../common/export'; -import type { ImportRawConfig } from '../../common/import'; -import { importRaw, importUri } from '../../common/import'; +import { fetchImportContentFromURI, importResources, scanResources } from '../../common/import'; import * as models from '../../models'; -import { DEFAULT_PROJECT_ID } from '../../models/project'; import type { Workspace, WorkspaceScope } from '../../models/workspace'; interface PluginImportOptions { @@ -18,14 +16,6 @@ interface InsomniaExport { type HarExport = Omit; -const buildImportRawConfig = (options: PluginImportOptions, activeProjectId: string): ImportRawConfig => ({ - getWorkspaceId: () => Promise.resolve(options.workspaceId || null), - getWorkspaceScope: options.scope && (() => ( - Promise.resolve(options.scope as WorkspaceScope)) - ), - getProjectId: () => Promise.resolve(activeProjectId), -}); - const getWorkspaces = (activeProjectId?: string) => { if (activeProjectId) { return models.workspace.findByParentId(activeProjectId); @@ -42,10 +32,35 @@ export const init = (activeProjectId?: string) => ({ data: { import: { uri: async (uri: string, options: PluginImportOptions = {}) => { - await importUri(uri, buildImportRawConfig(options, activeProjectId || DEFAULT_PROJECT_ID)); + if (!activeProjectId) { + return; + } + + const content = await fetchImportContentFromURI({ + uri, + }); + + await scanResources({ + content, + }); + + await importResources({ + projectId: activeProjectId, + workspaceId: options.workspaceId, + }); }, - raw: async (text: string, options: PluginImportOptions = {}) => { - await importRaw(text, buildImportRawConfig(options, activeProjectId || DEFAULT_PROJECT_ID)); + raw: async (content: string, options: PluginImportOptions = {}) => { + if (!activeProjectId) { + return; + } + await scanResources({ + content, + }); + + await importResources({ + projectId: activeProjectId, + workspaceId: options.workspaceId, + }); }, }, export: { diff --git a/packages/insomnia/src/ui/components/base/dropdown/popover.tsx b/packages/insomnia/src/ui/components/base/dropdown/popover.tsx index d57a8554b7..2d94843953 100644 --- a/packages/insomnia/src/ui/components/base/dropdown/popover.tsx +++ b/packages/insomnia/src/ui/components/base/dropdown/popover.tsx @@ -1,10 +1,8 @@ -import { AriaPopoverProps, DismissButton, Overlay, usePopover } from '@react-aria/overlays'; -import { StyleProps } from '@react-types/shared'; import React, { FC, ReactNode, useRef } from 'react'; -import { useOverlayTrigger } from 'react-aria'; +import { AriaPopoverProps, DismissButton, Overlay, useOverlayTrigger, usePopover } from 'react-aria'; import { OverlayTriggerState } from 'react-stately'; -interface Props extends Omit, StyleProps { +interface Props extends Omit { children: ReactNode; state: OverlayTriggerState; } diff --git a/packages/insomnia/src/ui/components/modals/import-modal.tsx b/packages/insomnia/src/ui/components/modals/import-modal.tsx new file mode 100644 index 0000000000..bd3664b034 --- /dev/null +++ b/packages/insomnia/src/ui/components/modals/import-modal.tsx @@ -0,0 +1,936 @@ +import React, { + FC, + Fragment, + ReactNode, + useEffect, + useId, + useRef, + useState, + useTransition, +} from 'react'; +import { OverlayContainer, useDrop } from 'react-aria'; +import { useFetcher } from 'react-router-dom'; +import styled from 'styled-components'; + +import { strings } from '../../../common/strings'; +import { isDefaultProject, isLocalProject } from '../../../models/project'; +import { Workspace } from '../../../models/workspace'; +import { + ImportResourcesActionResult, + ScanForResourcesActionResult, +} from '../../routes/import'; +import { ProjectLoaderData } from '../../routes/project'; +import { Modal, ModalHandle, ModalProps } from '../base/modal'; +import { ModalHeader } from '../base/modal-header'; +import { Button } from '../themed-button'; +import { hideAllModals } from '.'; + +const Pill = styled.div({ + display: 'flex', + alignItems: 'center', + gap: 'var(--padding-xs)', + padding: 'var(--padding-sm)', + borderRadius: 'var(--radius-md)', + fontSize: 'var(--font-size-xs)', +}); + +const RadioGroup = styled.div({ + display: 'flex', + padding: 'var(--padding-xs)', + border: '1px solid var(--hl-md)', + borderRadius: 'var(--radius-md)', + backgroundColor: 'var(--hl-xs)', + 'input[type="radio"]:checked ~ label': { + backgroundColor: 'var(--color-bg)', + boxShadow: '0 0 5px 1px var(--hl-xs)', + }, +}); + +const RadioLabel = styled.label({ + padding: 'var(--padding-sm)', + borderRadius: 'var(--radius-md)', + display: 'flex', + alignItems: 'center', + gap: 'var(--padding-sm)', +}); + +const RadioInput = styled.input({ + position: 'absolute', + width: '1px', + height: '1px', + padding: '0', + margin: '-1px', + overflow: 'hidden', + clip: 'rect(0,0,0,0)', + whiteSpace: 'nowrap', + borderWidth: '0', +}); + +const Radio: FC<{ + name: string; + value: string; + children: ReactNode; + checked?: boolean; + defaultChecked?: boolean; + onChange?: React.ChangeEventHandler; +}> = ({ name, value, onChange, children, checked, defaultChecked }) => { + const id = useId(); + return ( +
+ + {children} +
+ ); +}; + +const Fieldset = styled.fieldset({ + display: 'flex', + flexDirection: 'column', + gap: 'var(--padding-md)', + legend: { + marginBottom: 'var(--padding-xs)', + }, +}); + +const FileInput = styled.input({ + display: 'none', +}); + +const FileInputLabel = styled.label({ + padding: 'var(--padding-sm)', + borderRadius: 'var(--radius-md)', + display: 'flex', + alignItems: 'center', + gap: 'var(--padding-sm)', + border: '1px solid var(--hl-md)', + backgroundColor: 'var(--hl-xs)', + flexWrap: 'wrap', +}); + +const FileView = styled.div({ + backgroundColor: 'var(--color-bg)', + borderRadius: 'var(--radius-md)', + textOverflow: 'ellipsis', + overflow: 'hidden', + whiteSpace: 'nowrap', + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + padding: 'var(--padding-md)', + gap: 'var(--padding-sm)', + width: '100%', +}); + +const FileField: FC = () => { + const id = useId(); + const dropRef = useRef(null); + const [selectedFile, setSelectedFile] = useState(); + const { isDropTarget, dropProps } = useDrop({ + ref: dropRef, + onDrop: async event => { + const file = + event.items[0].kind === 'file' + ? await event.items[0].getFile() + : undefined; + + if (file) { + setSelectedFile(file); + } + }, + }); + return ( +
+ setSelectedFile(e.currentTarget.files?.[0])} + accept={[ + '', + 'sh', + 'txt', + 'json', + 'har', + 'curl', + 'bash', + 'shell', + 'yaml', + 'yml', + 'wsdl', + ].join(',')} + id={id} + type="file" + /> + + {!selectedFile && ( +
+
+ +
+
+ Drag and Drop or{' '} + + Choose a File + {' '} + to import +
+
+ )} + {selectedFile && ( + + +
+ +
+ {selectedFile.name} +
+ +
+ )} +
+
+ ); +}; + +const InsomniaIcon = (props: React.SVGProps) => { + return ( + + + + + + + + + + + + ); +}; + +const PostmanIcon = (props: React.SVGProps) => { + return ( + + + + + + + ); +}; + +const SwaggerIcon = (props: React.SVGProps) => { + return ( + + + + + + ); +}; + +const OpenAPIIcon = (props: React.SVGProps) => { + return ( + + + + ); +}; + +const CurlIcon = (props: React.SVGProps) => { + return ( + + + + + + + + + + + + + + + + + + + + + + ); +}; + +interface ImportModalProps extends ModalProps { + organizationId: string; + defaultProjectId: string; + defaultWorkspaceId?: string; + from: 'file' | 'uri' | 'clipboard'; +} + +export const ImportModal: FC = ({ + defaultProjectId, + defaultWorkspaceId, + organizationId, + from, + ...modalProps +}) => { + const modalRef = useRef(null); + const scanResourcesFetcher = useFetcher(); + const importFetcher = useFetcher(); + + useEffect(() => { + modalRef.current?.show(); + }, []); + + useEffect(() => { + if (importFetcher.state === 'loading') { + hideAllModals(); + } + }, [importFetcher.state]); + + return ( + + + Import to Insomnia + {scanResourcesFetcher.data && scanResourcesFetcher.data.errors.length === 0 ? ( + { + importFetcher.submit(e.currentTarget, { + method: 'post', + action: '/import/resources', + }); + }} + /> + ) : ( + { + e.preventDefault(); + scanResourcesFetcher.submit(e.currentTarget, { + method: 'post', + action: '/import/scan', + }); + }} + /> + )} + + + ); +}; + +const ScanResourcesForm = ({ + onSubmit, + from, + errors, +}: { + onSubmit?: (e: React.FormEvent) => void; + from?: 'file' | 'uri' | 'clipboard'; + errors?: string[]; +}) => { + const id = useId(); + const [importFrom, setImportFrom] = useState(from || 'uri'); + + return ( + +
+
+ + setImportFrom('file')} + name="importFrom" + value="file" + checked={importFrom === 'file'} + > + + File + + setImportFrom('uri')} + name="importFrom" + value="uri" + checked={importFrom === 'uri'} + > + + Url + + setImportFrom('clipboard')} + name="importFrom" + value="clipboard" + checked={importFrom === 'clipboard'} + > + + Clipboard + + +
+ {importFrom === 'file' && } + {importFrom === 'uri' && ( +
+ +
+ )} + +
+ {errors && errors.length > 0 && ( +
+

+ Error while scanning for resources to import: + {errors[0]} +

+
+ )} +
+
+
+
+ Supported Formats +
+
+ + + Insomnia + + + + Postman + + + + Swagger + + + + OpenAPI + + + + cURL + + + + HAR + + + + WSDL + +
+
+ +
+
+ ); +}; + +const ImportTypeTitle = styled.div({ + display: 'flex', + alignItems: 'center', + gap: 'var(--padding-sm)', +}); + +const ImportResourcesForm = ({ + scanResult, + defaultProjectId, + defaultWorkspaceId, + organizationId, + onSubmit, + errors, +}: { + scanResult: ScanForResourcesActionResult; + organizationId: string; + defaultProjectId?: string; + defaultWorkspaceId?: string; + errors?: string[]; + onSubmit?: (e: React.FormEvent) => void; +}) => { + const [isPending, startTransition] = useTransition(); + const projectFetcher = useFetcher(); + + const [selectedWorkspaceId, setSelectedWorkspaceId] = useState( + defaultWorkspaceId || 'create-new-workspace-id' + ); + + const isCreatingNewWorkspace = + selectedWorkspaceId === 'create-new-workspace-id'; + + useEffect(() => { + if (projectFetcher.state === 'idle' && !projectFetcher.data) { + projectFetcher.load( + `/organization/${organizationId}/project/${defaultProjectId}` + ); + } + }, [defaultProjectId, organizationId, selectedWorkspaceId, projectFetcher]); + + const workspaces: Partial[] = [ + ...(projectFetcher?.data?.workspaces || []), + { + _id: 'create-new-workspace-id', + name: '+ Create New File', + }, + ]; + + const projects = projectFetcher?.data?.projects || []; + + const id = useId(); + + return ( + +
+
{ + e.preventDefault(); + startTransition(() => { + onSubmit?.(e); + }); + }} + method="post" + action="/import/resources" + id={id} + > +
+ Import to: +
+
+
+ +
+
+ +
+ {isCreatingNewWorkspace && ( + +
+ +
+
+ )} +
+ +
+ + + + + + + + {scanResult.requests && scanResult.requests?.length > 0 && ( + + + + )} + {isCreatingNewWorkspace && scanResult.apiSpec && ( + + + + )} + {isCreatingNewWorkspace && + scanResult.environments && + scanResult.environments.length > 0 && ( + + + + )} + {scanResult.unitTestSuites && + scanResult.unitTestSuites?.length > 0 && ( + + + + )} + +
+ + {scanResult.type?.id.includes('insomnia') && ( + + + Insomnia + + )} + {scanResult.type?.id.includes('postman') && ( + + + Postman + + )} + {scanResult.type?.id.includes('swagger') && ( + + + Swagger + + )} + {scanResult.type?.id.includes('openapi') && ( + + + OpenAPI + + )} + {scanResult.type?.id.includes('wsdl') && ( + + + WSDL + + )} + {scanResult.type?.id.includes('har') && ( + + + HAR + + )} + {scanResult.type?.id.includes('curl') && ( + + + cURL + + )}{' '} + resources to be imported: + +
+ {scanResult.requests.length}{' '} + {scanResult.requests.length === 1 ? 'Request' : 'Requests'} +
+
+ OpenAPI Spec:{' '} + {scanResult.apiSpec.name || scanResult.apiSpec.fileName} +
+
+ {scanResult.environments.length}{' '} + {scanResult.environments.length === 1 + ? 'Environment' + : 'Environments'} + {scanResult.cookieJar ? ' and a Cookie Jar' : ''} +
+ {scanResult.unitTestSuites.length}{' '} + {scanResult.unitTestSuites.length === 1 + ? 'Test Suite' + : 'Test Suites'} + {scanResult.unitTests?.length} + {' with'} + {scanResult.unitTests?.length === 1 ? 'Test' : 'Tests'} +
+
+ +
+ {errors && errors.length > 0 && ( +
+

+ Error while importing to Insomnia: + {errors[0]} +

+
+ )} +
+ +
+ +
+
+ ); +}; diff --git a/packages/insomnia/src/ui/components/panes/project-empty-state-pane.tsx b/packages/insomnia/src/ui/components/panes/project-empty-state-pane.tsx index 01cecb3f79..5d8bcfb582 100644 --- a/packages/insomnia/src/ui/components/panes/project-empty-state-pane.tsx +++ b/packages/insomnia/src/ui/components/panes/project-empty-state-pane.tsx @@ -1,7 +1,6 @@ import React, { FC } from 'react'; import styled from 'styled-components'; -import { Dropdown, DropdownButton, DropdownItem, ItemContent } from '../base/dropdown'; import { Button } from '../themed-button'; const Wrapper = styled.div({ @@ -48,67 +47,56 @@ const Title = styled.div({ interface Props { createRequestCollection: () => void; createDesignDocument: () => void; - importFromFile: () => void; - importFromURL: () => void; - importFromClipboard: () => void; - importFromGit: () => void; + importFrom: () => void; + cloneFromGit: () => void; } -export const EmptyStatePane: FC = ({ createRequestCollection, createDesignDocument, importFromFile, importFromURL, importFromClipboard, importFromGit }) => { +export const EmptyStatePane: FC = ({ createRequestCollection, createDesignDocument, importFrom, cloneFromGit }) => { return ( This is an empty project, to get started create your first resource:
-
+
or - - Import From - - } - > - - - - - - - - - - - - - +
+ + +
); diff --git a/packages/insomnia/src/ui/components/settings/import-export.tsx b/packages/insomnia/src/ui/components/settings/import-export.tsx index 490da7b24f..a0521c8deb 100644 --- a/packages/insomnia/src/ui/components/settings/import-export.tsx +++ b/packages/insomnia/src/ui/components/settings/import-export.tsx @@ -1,22 +1,21 @@ -import React, { FC, useCallback } from 'react'; +import React, { FC, Fragment, useCallback, useState } from 'react'; import { useSelector } from 'react-redux'; -import { useRevalidator } from 'react-router-dom'; +import { useParams } from 'react-router-dom'; import { getProductName } from '../../../common/constants'; import { docsImportExport } from '../../../common/documentation'; import { exportAllToFile } from '../../../common/export'; import { getWorkspaceLabel } from '../../../common/get-workspace-label'; -import { ForceToWorkspace } from '../../../common/import'; import { strings } from '../../../common/strings'; import { isRequestGroup } from '../../../models/request-group'; import { importers } from '../../../utils/importers/importers'; -import { importClipBoard, importFile, importUri } from '../../import'; -import { selectActiveProject, selectActiveProjectName, selectActiveWorkspace, selectActiveWorkspaceName, selectProjects, selectWorkspaceRequestsAndRequestGroups, selectWorkspacesForActiveProject, selectWorkspacesWithResolvedNameForActiveProject } from '../../redux/selectors'; +import { selectActiveProjectName, selectActiveWorkspace, selectActiveWorkspaceName, selectWorkspaceRequestsAndRequestGroups, selectWorkspacesForActiveProject } from '../../redux/selectors'; import { Dropdown, DropdownButton, DropdownItem, DropdownSection, ItemContent } from '../base/dropdown'; import { Link } from '../base/link'; import { AlertModal } from '../modals/alert-modal'; import { ExportRequestsModal } from '../modals/export-requests-modal'; -import { showModal, showPrompt } from '../modals/index'; +import { ImportModal } from '../modals/import-modal'; +import { showModal } from '../modals/index'; import { Button } from '../themed-button'; interface Props { @@ -24,37 +23,17 @@ interface Props { } export const ImportExport: FC = ({ hideSettingsModal }) => { + const { + organizationId, + projectId, + workspaceId, + } = useParams() as { organizationId: string; projectId: string; workspaceId: string }; const projectName = useSelector(selectActiveProjectName) ?? getProductName(); const activeWorkspace = useSelector(selectActiveWorkspace); - const activeProjectWorkspaces = useSelector(selectWorkspacesWithResolvedNameForActiveProject); - const activeProject = useSelector(selectActiveProject); - const projects = useSelector(selectProjects); - const forceToWorkspace = activeWorkspace?._id ? ForceToWorkspace.current : ForceToWorkspace.existing; + const activeWorkspaceName = useSelector(selectActiveWorkspaceName); const workspacesForActiveProject = useSelector(selectWorkspacesForActiveProject); const workspaceRequestsAndRequestGroups = useSelector(selectWorkspaceRequestsAndRequestGroups); - const { revalidate } = useRevalidator(); - const handleImportUri = useCallback(() => { - const lastUsedImportUri = window.localStorage.getItem('insomnia.lastUsedImportUri'); - const defaultValue = lastUsedImportUri ? { defaultValue: lastUsedImportUri } : {}; - - showPrompt({ - title: 'Import Data from URL', - submitName: 'Fetch and Import', - label: 'URL', - placeholder: 'https://website.com/insomnia-import.json', - onComplete: (uri: string) => { - window.localStorage.setItem('insomnia.lastUsedImportUri', uri); - importUri(uri, { - activeProjectWorkspaces, - activeProject, - projects, - workspaceId: activeWorkspace?._id, - forceToWorkspace, onComplete: revalidate }); - hideSettingsModal(); - }, - ...defaultValue, - }); - }, [activeProjectWorkspaces, activeProject, projects, activeWorkspace?._id, forceToWorkspace, revalidate, hideSettingsModal]); + const [isImportModalOpen, setIsImportModalOpen] = useState(false); const showExportRequestsModal = useCallback(() => { if (!workspaceRequestsAndRequestGroups.filter(r => !isRequestGroup(r)).length) { @@ -73,109 +52,74 @@ export const ImportExport: FC = ({ hideSettingsModal }) => { hideSettingsModal(); }, [hideSettingsModal, projectName, workspacesForActiveProject]); - const handleImportFile = useCallback(() => { - importFile({ - activeProjectWorkspaces, - activeProject, - projects, - workspaceId: activeWorkspace?._id, - forceToWorkspace, onComplete: revalidate }); - hideSettingsModal(); - }, [activeProjectWorkspaces, activeProject, projects, activeWorkspace?._id, forceToWorkspace, revalidate, hideSettingsModal]); - - const handleImportClipBoard = useCallback(() => { - importClipBoard({ - activeProjectWorkspaces, - activeProject, - projects, - workspaceId: activeWorkspace?._id, - forceToWorkspace, onComplete: revalidate }); - hideSettingsModal(); - }, [activeProjectWorkspaces, activeProject, projects, activeWorkspace?._id, forceToWorkspace, revalidate, hideSettingsModal]); - - const activeWorkspaceName = useSelector(selectActiveWorkspaceName); - return ( -
-
- Import format will be automatically detected. Supported formats include: {importers.map(importer => importer.name).join(', ')} -
-

- Your format isn't supported? Add Your Own. -

-
- {activeWorkspace ? - ( - Export Data - - } - > - +
+
+ Import format will be automatically detected. Supported formats include: {importers.map(importer => importer.name).join(', ')} +
+

+ Your format isn't supported? Add Your Own. +

+
+ {activeWorkspace ? + ( + Export Data + + } > - - - - - - - - ) : () - } -    - - Import Data - + + + + + + + + + ) : () } - > - - - - - - - - - - - -    - - Create Run Button - + +    + + Create Run Button + +
+

* Tip: You can also paste Curl commands into the URL bar

-

* Tip: You can also paste Curl commands into the URL bar

-
+ {isImportModalOpen && ( + setIsImportModalOpen(false)} + from={'file'} + organizationId={organizationId} + defaultProjectId={projectId} + defaultWorkspaceId={workspaceId} + /> + )} + ); }; diff --git a/packages/insomnia/src/ui/containers/app-hooks.tsx b/packages/insomnia/src/ui/containers/app-hooks.tsx index 249950ca0c..5c69221b1b 100644 --- a/packages/insomnia/src/ui/containers/app-hooks.tsx +++ b/packages/insomnia/src/ui/containers/app-hooks.tsx @@ -2,7 +2,6 @@ import { ipcRenderer } from 'electron'; import { FC, useEffect } from 'react'; import { useAppCommands } from '../hooks/use-app-commands'; -import { useDragAndDropImportFile } from '../hooks/use-drag-and-drop-import-file'; import { useGlobalKeyboardShortcuts } from '../hooks/use-global-keyboard-shortcuts'; import { useSettingsSideEffects } from '../hooks/use-settings-side-effects'; import { useSyncMigration } from '../hooks/use-sync-migration'; @@ -12,7 +11,6 @@ export const AppHooks: FC = () => { useSyncMigration(); useSettingsSideEffects(); useGlobalKeyboardShortcuts(); - useDragAndDropImportFile(); useThemeChange(); useAppCommands(); // Give it a bit before letting the backend know it's ready diff --git a/packages/insomnia/src/ui/hooks/use-app-commands.tsx b/packages/insomnia/src/ui/hooks/use-app-commands.tsx index bb0e75a99d..e311441d7c 100644 --- a/packages/insomnia/src/ui/hooks/use-app-commands.tsx +++ b/packages/insomnia/src/ui/hooks/use-app-commands.tsx @@ -4,7 +4,6 @@ import React from 'react'; import { useSelector } from 'react-redux'; import { isDevelopment } from '../../common/constants'; -import { askToImportIntoProject, askToImportIntoWorkspace, askToSetWorkspaceScope, importUri } from '../../common/import'; import * as models from '../../models'; import { reloadPlugins } from '../../plugins'; import { createPlugin } from '../../plugins/create'; @@ -53,26 +52,19 @@ export const useAppCommands = () => { }); break; - case 'insomnia://app/import': - showModal(AlertModal, { - title: 'Confirm Data Import', - message: ( - - Do you really want to import {params.name && (<>{params.name} from)} {params.uri}? - - ), - addCancel: true, - onConfirm: async () => { - const activeWorkspaceId = activeWorkspace?._id; - importUri(params.uri, { - getWorkspaceScope: askToSetWorkspaceScope(), - getWorkspaceId: askToImportIntoWorkspace({ workspaceId: params.workspaceId || activeWorkspaceId, activeProjectWorkspaces }), - // Currently, just return the active project instead of prompting for which project to import into - getProjectId: askToImportIntoProject({ projects, activeProject }), - }); - }, - }); - break; + // case 'insomnia://app/import': + // @TODO @gatzjames - FixME - Move this to a separate hook in the root of the app that opens the import modal + // showModal(AlertModal, { + // title: 'Confirm Data Import', + // message: ( + // + // Do you really want to import {params.name && (<>{params.name} from)} {params.uri}? + // + // ), + // addCancel: true, + // onConfirm: async () => {}, + // }); + // break; case 'insomnia://plugins/install': showModal(AskModal, { diff --git a/packages/insomnia/src/ui/hooks/use-drag-and-drop-import-file.tsx b/packages/insomnia/src/ui/hooks/use-drag-and-drop-import-file.tsx deleted file mode 100644 index 31f9f24674..0000000000 --- a/packages/insomnia/src/ui/hooks/use-drag-and-drop-import-file.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import React, { useEffect } from 'react'; -import { useSelector } from 'react-redux'; - -import { showModal } from '../components/modals'; -import { AlertModal } from '../components/modals/alert-modal'; -import { importUri } from '../import'; -import { selectActiveProject, selectActiveWorkspace, selectProjects, selectWorkspacesWithResolvedNameForActiveProject } from '../redux/selectors'; - -export const useDragAndDropImportFile = () => { - const activeWorkspace = useSelector(selectActiveWorkspace); - const activeProjectWorkspaces = useSelector(selectWorkspacesWithResolvedNameForActiveProject); - const activeProject = useSelector(selectActiveProject); - const projects = useSelector(selectProjects); - - // Global Drag and Drop for importing files - useEffect(() => { - // NOTE: This is required for "drop" event to trigger. - document.addEventListener( - 'dragover', - event => { - event.preventDefault(); - }, - false, - ); - document.addEventListener( - 'drop', - async event => { - event.preventDefault(); - if (!activeWorkspace) { - return; - } - const files = event.dataTransfer?.files || []; - if (files.length === 0) { - console.log('[drag] Ignored drop event because no files present'); - return; - } - const file = files[0]; - if (!file?.path) { - return; - } - await showModal(AlertModal, { - title: 'Confirm Data Import', - message: ( - - Import {file.path}? - - ), - addCancel: true, - }); - importUri(`file://${file.path}`, { - activeProjectWorkspaces, - activeProject, - projects, - workspaceId: activeWorkspace?._id, - }); - }, - false, - ); - }); -}; diff --git a/packages/insomnia/src/ui/import.ts b/packages/insomnia/src/ui/import.ts deleted file mode 100644 index 041b03d55a..0000000000 --- a/packages/insomnia/src/ui/import.ts +++ /dev/null @@ -1,192 +0,0 @@ -import electron, { OpenDialogOptions } from 'electron'; - -import { - askToImportIntoProject, - askToImportIntoWorkspace, - askToSetWorkspaceScope, - ForceToWorkspace, - importRaw, - importUri as _importUri, -} from '../common/import'; -import * as models from '../models'; -import { DEFAULT_PROJECT_ID, Project } from '../models/project'; -import { Workspace, WorkspaceScope } from '../models/workspace'; -import { showError, showModal } from './components/modals'; -import { AlertModal } from './components/modals/alert-modal'; - -export interface ImportOptions { - workspaceId?: string; - forceToProject?: 'active' | 'prompt'; - forceToWorkspace?: ForceToWorkspace; - forceToScope?: WorkspaceScope; - onComplete?: () => void; - activeProject?: Project; - activeProjectWorkspaces?: Workspace[]; - projects?: Project[]; -} - -export const importFile = async ( - { - forceToScope, - forceToWorkspace, - workspaceId, - forceToProject, - activeProject, - activeProjectWorkspaces, - projects, - onComplete, - }: ImportOptions = {}, -) => { - const openDialogOptions: OpenDialogOptions = { - title: 'Import Insomnia Data', - buttonLabel: 'Import', - properties: ['openFile'], - filters: [ - // @ts-expect-error https://github.com/electron/electron/pull/29322 - { - extensions: [ - '', - 'sh', - 'txt', - 'json', - 'har', - 'curl', - 'bash', - 'shell', - 'yaml', - 'yml', - 'wsdl', - ], - }, - ], - }; - const { canceled, filePaths } = await window.dialog.showOpenDialog(openDialogOptions); - - if (canceled) { - // It was cancelled, so let's bail out - return; - } - // Let's import all the files! - for (const filePath of filePaths) { - try { - const uri = `file://${filePath}`; - const config = { - getWorkspaceScope: askToSetWorkspaceScope(forceToScope), - getWorkspaceId: askToImportIntoWorkspace({ workspaceId, forceToWorkspace, activeProjectWorkspaces }), - // Currently, just return the active project instead of prompting for which project to import into - getProjectId: forceToProject === 'prompt' ? askToImportIntoProject({ projects, activeProject }) : () => Promise.resolve(activeProject?._id || DEFAULT_PROJECT_ID), - }; - const { error, summary } = await _importUri(uri, config); - if (!error) { - models.stats.incrementRequestStats({ createdRequests: summary[models.request.type].length + summary[models.grpcRequest.type].length }); - } - if (error) { - showError({ - title: 'Import Failed', - message: 'The file does not contain a valid specification.', - error, - }); - } - } catch (err) { - showModal(AlertModal, { - title: 'Import Failed', - message: err + '', - }); - } - } - - onComplete?.(); -}; - -export const importClipBoard = async ({ - forceToScope, - forceToWorkspace, - workspaceId, - forceToProject, - activeProject, - activeProjectWorkspaces, - projects, - onComplete, -}: ImportOptions = {}, -) => { - const schema = electron.clipboard.readText(); - - if (!schema) { - showModal(AlertModal, { - title: 'Import Failed', - message: 'Your clipboard appears to be empty.', - }); - return; - - } - - // Let's import all the paths! - try { - const config = { - getWorkspaceScope: askToSetWorkspaceScope(forceToScope), - getWorkspaceId: askToImportIntoWorkspace({ workspaceId, forceToWorkspace, activeProjectWorkspaces }), - // Currently, just return the active project instead of prompting for which project to import into - getProjectId: forceToProject === 'prompt' ? askToImportIntoProject({ projects, activeProject }) : () => Promise.resolve(activeProject?._id || DEFAULT_PROJECT_ID), - }; - const { error, summary } = await importRaw(schema, config); - if (!error) { - models.stats.incrementRequestStats({ createdRequests: summary[models.request.type].length + summary[models.grpcRequest.type].length }); - } - if (error) { - showError({ - title: 'Import Failed', - message: 'Your clipboard does not contain a valid specification.', - error, - }); - } - } catch (err) { - showModal(AlertModal, { - title: 'Import Failed', - message: 'Your clipboard does not contain a valid specification.', - }); - } - - onComplete?.(); -}; - -export const importUri = async ( - uri: string, - { - forceToScope, - forceToWorkspace, - workspaceId, - forceToProject, - activeProject, - activeProjectWorkspaces, - projects, - onComplete, - }: ImportOptions = {}, -) => { - - try { - const config = { - getWorkspaceScope: askToSetWorkspaceScope(forceToScope), - getWorkspaceId: askToImportIntoWorkspace({ workspaceId, forceToWorkspace, activeProjectWorkspaces }), - // Currently, just return the active project instead of prompting for which project to import into - getProjectId: forceToProject === 'prompt' ? askToImportIntoProject({ projects, activeProject }) : () => Promise.resolve(activeProject?._id || DEFAULT_PROJECT_ID), - }; - const { error, summary } = await _importUri(uri, config); - if (!error) { - models.stats.incrementRequestStats({ createdRequests: summary[models.request.type].length + summary[models.grpcRequest.type].length }); - } - if (error) { - showError({ - title: 'Import Failed', - message: 'The URI does not contain a valid specification.', - error, - }); - } - } catch (err) { - showModal(AlertModal, { - title: 'Import Failed', - message: err + '', - }); - } - - onComplete?.(); -}; diff --git a/packages/insomnia/src/ui/index.tsx b/packages/insomnia/src/ui/index.tsx index adebfe4cba..af8c36ec30 100644 --- a/packages/insomnia/src/ui/index.tsx +++ b/packages/insomnia/src/ui/index.tsx @@ -69,6 +69,19 @@ const router = createMemoryRouter( element: , errorElement: , children: [ + { + path: 'import', + children: [ + { + path: 'scan', + action: async (...args) => (await import('./routes/import')).scanForResourcesAction(...args), + }, + { + path: 'resources', + action: async (...args) => (await import('./routes/import')).importResourcesAction(...args), + }, + ], + }, { path: 'organization', children: [ diff --git a/packages/insomnia/src/ui/routes/actions.tsx b/packages/insomnia/src/ui/routes/actions.tsx index 1383dd40f1..3b2130f771 100644 --- a/packages/insomnia/src/ui/routes/actions.tsx +++ b/packages/insomnia/src/ui/routes/actions.tsx @@ -6,7 +6,7 @@ import { ActionFunction, redirect } from 'react-router-dom'; import * as session from '../../account/session'; import { ACTIVITY_DEBUG, ACTIVITY_SPEC } from '../../common/constants'; import { database } from '../../common/database'; -import { importRaw } from '../../common/import'; +import { importResources, scanResources } from '../../common/import'; import * as models from '../../models'; import * as workspaceOperations from '../../models/helpers/workspace-operations'; import { DEFAULT_ORGANIZATION_ID } from '../../models/organization'; @@ -466,6 +466,7 @@ export const generateCollectionFromApiSpecAction: ActionFunction = async ({ }) => { const { organizationId, projectId, workspaceId } = params; + invariant(typeof projectId === 'string', 'Project ID is required'); invariant(typeof workspaceId === 'string', 'Workspace ID is required'); const apiSpec = await models.apiSpec.getByParentId(workspaceId); @@ -491,13 +492,13 @@ export const generateCollectionFromApiSpecAction: ActionFunction = async ({ throw new Error('Error Generating Configuration'); } - await importRaw(apiSpec.contents, { - getWorkspaceId: () => Promise.resolve(workspaceId), - enableDiffBasedPatching: true, - enableDiffDeep: true, - bypassDiffProps: { - url: true, - }, + await scanResources({ + content: apiSpec.contents, + }); + + await importResources({ + projectId, + workspaceId, }); return redirect(`/organization/${organizationId}/project/${projectId}/workspace/${workspaceId}/${ACTIVITY_DEBUG}`); diff --git a/packages/insomnia/src/ui/routes/import.tsx b/packages/insomnia/src/ui/routes/import.tsx new file mode 100644 index 0000000000..27724daab3 --- /dev/null +++ b/packages/insomnia/src/ui/routes/import.tsx @@ -0,0 +1,103 @@ +// Import +import { clipboard } from 'electron'; +import { ActionFunction, redirect } from 'react-router-dom'; + +import { ACTIVITY_DEBUG, ACTIVITY_SPEC } from '../../common/constants'; +import { fetchImportContentFromURI, importResources, scanResources, ScanResult } from '../../common/import'; +import * as models from '../../models'; +import { WorkspaceScope } from '../../models/workspace'; +import { invariant } from '../../utils/invariant'; + +function guard(condition: any, value: any): asserts value is T { + if (!condition) { + throw new Error('Guard failed'); + } + + return value; +} + +export interface ScanForResourcesActionResult extends ScanResult {} + +export const scanForResourcesAction: ActionFunction = async ({ request }): Promise => { + const formData = await request.formData(); + + const source = formData.get('importFrom'); + invariant(typeof source === 'string', 'Source is required.'); + guard<'file' | 'uri' | 'clipboard'>(source, ['file', 'uri', 'clipboard'].includes(source)); + + let content = ''; + if (source === 'uri') { + const uri = formData.get('uri'); + if (typeof uri !== 'string' || uri === '') { + return { + errors: ['URI is required'], + }; + } + + content = await fetchImportContentFromURI({ + uri, + }); + } else if (source === 'file') { + const filePath = formData.get('filePath'); + if (typeof filePath !== 'string' || filePath === '') { + return { + errors: ['File is required'], + }; + } + const uri = `file://${filePath}`; + + content = await fetchImportContentFromURI({ + uri, + }); + } else { + content = clipboard.readText(); + } + + if (!content) { + return { + errors: ['No content to import'], + }; + } + + const result = await scanResources({ content }); + + return result; +}; + +export interface ImportResourcesActionResult { + errors?: string[]; +} + +export const importResourcesAction: ActionFunction = async ({ request }): Promise => { + const formData = await request.formData(); + + const organizationId = formData.get('organizationId'); + const projectId = formData.get('projectId'); + const workspaceId = formData.get('workspaceId'); + const scope = formData.get('scope') || 'design'; + const name = formData.get('name'); + + const workspaceName = typeof name === 'string' ? name : 'Untitled'; + + invariant(typeof organizationId === 'string', 'OrganizationId is required.'); + invariant(typeof projectId === 'string', 'ProjectId is required.'); + invariant(typeof workspaceId === 'string', 'WorkspaceId is required.'); + invariant(typeof scope === 'string', 'Scope is required.'); + + guard(scope === 'design' || scope === 'collection', scope); + + const project = await models.project.getById(projectId); + invariant(project, 'Project not found.'); + + const result = await importResources({ + projectId: project._id, + workspaceId, + workspaceName, + }); + + return redirect(`/organization/${organizationId}/project/${projectId}/workspace/${result.workspace._id}/${ + result.workspace.scope === 'design' + ? ACTIVITY_SPEC + : ACTIVITY_DEBUG + }`); +}; diff --git a/packages/insomnia/src/ui/routes/project.tsx b/packages/insomnia/src/ui/routes/project.tsx index e42bde6249..e078022b54 100644 --- a/packages/insomnia/src/ui/routes/project.tsx +++ b/packages/insomnia/src/ui/routes/project.tsx @@ -1,4 +1,4 @@ -import React, { FC, Fragment, useCallback, useRef, useState } from 'react'; +import React, { FC, Fragment, useRef, useState } from 'react'; import { AriaButtonProps, AriaGridListItemOptions, @@ -16,17 +16,11 @@ import { useLoaderData, useNavigate, useParams, - useRevalidator, useRouteLoaderData, useSearchParams, useSubmit, } from 'react-router-dom'; -import { - Item, - ListProps, - ListState, - useListState, -} from 'react-stately'; +import { Item, ListProps, ListState, useListState } from 'react-stately'; import styled from 'styled-components'; import { parseApiSpec, ParsedApiSpec } from '../../common/api-specs'; @@ -36,7 +30,6 @@ import { DashboardSortOrder, } from '../../common/constants'; import { clickLink } from '../../common/electron-helpers'; -import { ForceToWorkspace } from '../../common/import'; import { fuzzyMatchAll, isNotNullOrUndefined } from '../../common/misc'; import { descendingNumberSort, sortMethodMap } from '../../common/sorting'; import { strings } from '../../common/strings'; @@ -68,11 +61,11 @@ import { RemoteWorkspacesDropdown } from '../components/dropdowns/remote-workspa import { ErrorBoundary } from '../components/error-boundary'; import { showAlert, showPrompt } from '../components/modals'; import { GitRepositoryCloneModal } from '../components/modals/git-repository-settings-modal/git-repo-clone-modal'; +import { ImportModal } from '../components/modals/import-modal'; import { EmptyStatePane } from '../components/panes/project-empty-state-pane'; import { SidebarLayout } from '../components/sidebar-layout'; import { Button } from '../components/themed-button/button'; import { WorkspaceCard } from '../components/workspace-card'; -import { importClipBoard, importFile, importUri } from '../import'; import { RootLoaderData } from './root'; const StyledDropdownButton = styled(DropdownButton).attrs({ @@ -308,21 +301,23 @@ const OrganizationProjectsSidebar: FC<{ Projects ({projects.length}) - {shouldShowSearch && } + {shouldShowSearch && ( + + )}
- - {hasWorkspaces && workspaces.map(workspace => ( - - navigate( - `/organization/${organizationId}/project/${ - activeProject._id - }/workspace/${workspace.workspace._id}/${ - workspace.workspace.scope === 'design' - ? ACTIVITY_SPEC - : ACTIVITY_DEBUG - }` - ) - } - filter={filter} - /> - ))} + {hasWorkspaces && + workspaces.map(workspace => ( + + navigate( + `/organization/${organizationId}/project/${ + activeProject._id + }/workspace/${workspace.workspace._id}/${ + workspace.workspace.scope === 'design' + ? ACTIVITY_SPEC + : ACTIVITY_DEBUG + }` + ) + } + filter={filter} + /> + ))} {filter && !hasWorkspaces && (

@@ -1092,10 +1040,8 @@ const ProjectRoute: FC = () => { setIsImportModalOpen('file')} + cloneFromGit={importFromGit} /> )} @@ -1106,6 +1052,14 @@ const ProjectRoute: FC = () => { onHide={() => setIsGitRepositoryCloneModalOpen(false)} /> )} + {isImportModalOpen && ( + setIsImportModalOpen(false)} + from={isImportModalOpen} + organizationId={organizationId} + defaultProjectId={activeProject._id} + /> + )} ); diff --git a/packages/insomnia/src/ui/routes/root.tsx b/packages/insomnia/src/ui/routes/root.tsx index 9366268471..cf3797bebf 100644 --- a/packages/insomnia/src/ui/routes/root.tsx +++ b/packages/insomnia/src/ui/routes/root.tsx @@ -67,9 +67,7 @@ const Layout = styled.div({ const Root = () => { const { revalidate } = useRevalidator(); const workspaceData = useRouteLoaderData(':workspaceId') as WorkspaceLoaderData | null; - console.log({ - workspaceData, - }); + useEffect(() => { onLoginLogout(() => { revalidate();