diff --git a/packages/graphiql-console/package.json b/packages/graphiql-console/package.json index 8bd24febb4b..6c3f1e7db30 100644 --- a/packages/graphiql-console/package.json +++ b/packages/graphiql-console/package.json @@ -12,8 +12,11 @@ "vitest": "vitest" }, "dependencies": { + "@graphiql/toolkit": "^0.11.3", "@shopify/polaris": "^12.27.0", "@shopify/polaris-icons": "^9.0.0", + "graphiql": "^3.0.0", + "graphql": "^16.10.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/packages/graphiql-console/src/components/GraphiQLEditor/GraphiQLEditor.test.tsx b/packages/graphiql-console/src/components/GraphiQLEditor/GraphiQLEditor.test.tsx new file mode 100644 index 00000000000..6c86f7409e6 --- /dev/null +++ b/packages/graphiql-console/src/components/GraphiQLEditor/GraphiQLEditor.test.tsx @@ -0,0 +1,252 @@ +import {GraphiQLEditor} from './GraphiQLEditor.tsx' +import React from 'react' +import {render} from '@testing-library/react' +import {describe, test, expect, vi, beforeEach} from 'vitest' +import type {GraphiQLConfig} from '@/types/config' + +// Mock GraphiQL component +const mockGraphiQL = vi.fn() +vi.mock('graphiql', () => ({ + GraphiQL: (props: any) => { + mockGraphiQL(props) + return
+ }, +})) + +// Mock createGraphiQLFetcher +const mockCreateFetcher = vi.fn() +vi.mock('@graphiql/toolkit', () => ({ + createGraphiQLFetcher: (options: any) => { + mockCreateFetcher(options) + return vi.fn() + }, +})) + +describe('', () => { + const baseConfig: GraphiQLConfig = { + baseUrl: 'http://localhost:3457', + apiVersion: '2024-10', + apiVersions: ['2024-01', '2024-04', '2024-07', '2024-10', 'unstable'], + appName: 'Test App', + appUrl: 'http://localhost:3000', + storeFqdn: 'test-store.myshopify.com', + } + + beforeEach(() => { + mockGraphiQL.mockClear() + mockCreateFetcher.mockClear() + }) + + test('renders GraphiQL component', () => { + render() + + expect(mockGraphiQL).toHaveBeenCalledTimes(1) + }) + + test('creates fetcher with correct URL including api_version', () => { + render() + + expect(mockCreateFetcher).toHaveBeenCalledWith( + expect.objectContaining({ + url: 'http://localhost:3457/graphiql/graphql.json?api_version=2024-07', + }), + ) + }) + + test('creates fetcher without Authorization header when key is not provided', () => { + render() + + expect(mockCreateFetcher).toHaveBeenCalledWith( + expect.objectContaining({ + headers: {}, + }), + ) + }) + + test('creates fetcher with Authorization header when key is provided', () => { + const configWithKey = {...baseConfig, key: 'test-api-key'} + render() + + expect(mockCreateFetcher).toHaveBeenCalledWith( + expect.objectContaining({ + headers: { + Authorization: 'Bearer test-api-key', + }, + }), + ) + }) + + test('passes ephemeral storage to GraphiQL', () => { + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + expect(graphiqlCall.storage).toBeDefined() + expect(typeof graphiqlCall.storage.getItem).toBe('function') + expect(typeof graphiqlCall.storage.setItem).toBe('function') + }) + + test('ephemeral storage returns null for tabs key', () => { + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + const storage = graphiqlCall.storage + + expect(storage.getItem('tabs')).toBeNull() + }) + + test('ephemeral storage does not persist tabs on setItem', () => { + // Mock localStorage + const originalSetItem = Storage.prototype.setItem + const setItemSpy = vi.spyOn(Storage.prototype, 'setItem') + + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + const storage = graphiqlCall.storage + + storage.setItem('tabs', '[]') + expect(setItemSpy).not.toHaveBeenCalledWith('tabs', expect.anything()) + + // Other keys should be persisted + storage.setItem('other-key', 'value') + expect(setItemSpy).toHaveBeenCalledWith('other-key', 'value') + + setItemSpy.mockRestore() + Storage.prototype.setItem = originalSetItem + }) + + test('constructs defaultTabs with WELCOME_MESSAGE when no queries provided', () => { + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + const defaultTabs = graphiqlCall.defaultTabs + + // Should have WELCOME_MESSAGE + DEFAULT_SHOP_QUERY + expect(defaultTabs).toHaveLength(2) + expect(defaultTabs[0].query).toContain('Welcome to GraphiQL') + expect(defaultTabs[1].query).toContain('query shopInfo') + }) + + test('includes initial query from config as third tab', () => { + const configWithQuery = { + ...baseConfig, + query: 'query test { shop { name } }', + variables: '{"var": "value"}', + } + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + const defaultTabs = graphiqlCall.defaultTabs + + // First tab is WELCOME_MESSAGE, second is DEFAULT_SHOP_QUERY, third is config query + expect(defaultTabs[2].query).toBe('query test { shop { name } }') + expect(defaultTabs[2].variables).toBe('{"var": "value"}') + }) + + test('always includes DEFAULT_SHOP_QUERY even if config has similar query', () => { + const configWithShopQuery = { + ...baseConfig, + query: 'query shopInfo { shop { id name } }', + } + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + const defaultTabs = graphiqlCall.defaultTabs + + // Should have: WELCOME_MESSAGE + DEFAULT_SHOP_QUERY + config query (no deduplication) + expect(defaultTabs).toHaveLength(3) + expect(defaultTabs[0].query).toContain('Welcome to GraphiQL') + expect(defaultTabs[1].query).toContain('query shopInfo') + expect(defaultTabs[2].query).toContain('query shopInfo') + }) + + test('includes defaultQueries from config', () => { + const configWithDefaultQueries = { + ...baseConfig, + defaultQueries: [ + {query: 'query products { products { edges { node { id } } } }'}, + {query: 'query orders { orders { edges { node { id } } } }', variables: '{"first": 10}'}, + ], + } + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + const defaultTabs = graphiqlCall.defaultTabs + + // Should have: WELCOME_MESSAGE + DEFAULT_SHOP_QUERY + 2 defaultQueries + expect(defaultTabs).toHaveLength(4) + expect(defaultTabs[2].query).toContain('query products') + expect(defaultTabs[3].query).toContain('query orders') + expect(defaultTabs[3].variables).toBe('{"first": 10}') + }) + + test('adds preface to defaultQueries when provided', () => { + const configWithPreface = { + ...baseConfig, + defaultQueries: [ + { + query: 'query test { shop { name } }', + preface: '# This is a test query', + }, + ], + } + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + const defaultTabs = graphiqlCall.defaultTabs + + expect(defaultTabs[2].query).toBe('# This is a test query\nquery test { shop { name } }') + }) + + test('WELCOME_MESSAGE is always the first tab', () => { + const configWithMultipleQueries = { + ...baseConfig, + query: 'query initial { shop { id } }', + defaultQueries: [ + {query: 'query products { products { edges { node { id } } } }'}, + {query: 'query orders { orders { edges { node { id } } } }'}, + ], + } + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + const defaultTabs = graphiqlCall.defaultTabs + + // First tab should always be WELCOME_MESSAGE + expect(defaultTabs[0].query).toContain('Welcome to GraphiQL') + }) + + test('passes correct props to GraphiQL', () => { + render() + + const graphiqlCall = mockGraphiQL.mock.calls[0][0] + + expect(graphiqlCall.fetcher).toBeDefined() + expect(graphiqlCall.defaultEditorToolsVisibility).toBe(true) + expect(graphiqlCall.isHeadersEditorEnabled).toBe(false) + expect(graphiqlCall.forcedTheme).toBe('light') + expect(graphiqlCall.defaultTabs).toBeDefined() + expect(graphiqlCall.storage).toBeDefined() + }) + + test('updates fetcher when apiVersion changes', () => { + const {rerender} = render() + + expect(mockCreateFetcher).toHaveBeenCalledWith( + expect.objectContaining({ + url: 'http://localhost:3457/graphiql/graphql.json?api_version=2024-10', + }), + ) + + // Clear mock and rerender with new version + mockCreateFetcher.mockClear() + rerender() + + // Note: Due to useMemo, the fetcher should recreate when apiVersion changes + expect(mockCreateFetcher).toHaveBeenCalledWith( + expect.objectContaining({ + url: 'http://localhost:3457/graphiql/graphql.json?api_version=2024-07', + }), + ) + }) +}) diff --git a/packages/graphiql-console/src/components/GraphiQLEditor/GraphiQLEditor.tsx b/packages/graphiql-console/src/components/GraphiQLEditor/GraphiQLEditor.tsx new file mode 100644 index 00000000000..f9001d0ee41 --- /dev/null +++ b/packages/graphiql-console/src/components/GraphiQLEditor/GraphiQLEditor.tsx @@ -0,0 +1,103 @@ +import React, {useMemo} from 'react' +import {GraphiQL} from 'graphiql' +import {createGraphiQLFetcher} from '@graphiql/toolkit' +import 'graphiql/style.css' +import type {GraphiQLConfig} from '@/types/config' +import {WELCOME_MESSAGE, DEFAULT_SHOP_QUERY} from '@/constants/defaultContent.ts' + +interface GraphiQLEditorProps { + config: GraphiQLConfig + apiVersion: string +} + +export function GraphiQLEditor({config, apiVersion}: GraphiQLEditorProps) { + // Create ephemeral storage to prevent localStorage tab caching + const ephemeralStorage: typeof localStorage = useMemo(() => { + return { + ...localStorage, + getItem(key) { + // Always use defaultTabs + if (key === 'tabs') return null + return localStorage.getItem(key) + }, + setItem(key, value) { + // Don't persist tabs + if (key === 'tabs') return + localStorage.setItem(key, value) + }, + removeItem(key) { + localStorage.removeItem(key) + }, + clear() { + localStorage.clear() + }, + key(index) { + return localStorage.key(index) + }, + get length() { + return localStorage.length + }, + } + }, []) + + // Create fetcher with current API version + const fetcher = useMemo(() => { + const url = `${config.baseUrl}/graphiql/graphql.json?api_version=${apiVersion}` + + return createGraphiQLFetcher({ + url, + headers: config.key + ? { + Authorization: `Bearer ${config.key}`, + } + : {}, + }) + }, [config.baseUrl, config.key, apiVersion]) + + // Prepare default tabs + const defaultTabs = useMemo(() => { + const tabs = [] + + // 1. Add WELCOME_MESSAGE tab FIRST (in focus) + tabs.push({ + query: WELCOME_MESSAGE, + }) + + // 2. Add DEFAULT_SHOP_QUERY tab SECOND (always) + tabs.push({ + query: DEFAULT_SHOP_QUERY, + variables: '{}', + }) + + // 3. Add initial query from config (if provided) + if (config.query) { + tabs.push({ + query: config.query, + variables: config.variables ?? '{}', + }) + } + + // 4. Add default queries from config + if (config.defaultQueries) { + config.defaultQueries.forEach(({query, variables, preface}) => { + tabs.push({ + query: preface ? `${preface}\n${query}` : query, + variables: variables ?? '{}', + }) + }) + } + + return tabs + }, [config.defaultQueries, config.query, config.variables]) + + return ( + + ) +} diff --git a/packages/graphiql-console/src/constants/defaultContent.ts b/packages/graphiql-console/src/constants/defaultContent.ts new file mode 100644 index 00000000000..dedcb70271b --- /dev/null +++ b/packages/graphiql-console/src/constants/defaultContent.ts @@ -0,0 +1,41 @@ +// Determine control key based on platform (browser-based detection) +const isMac = typeof navigator !== 'undefined' && /Mac|iPhone|iPad|iPod/.test(navigator.userAgent) +const controlKey = isMac ? '⌘' : 'Ctrl' + +export const WELCOME_MESSAGE = `# Welcome to GraphiQL for the Shopify Admin API! If you've used +# GraphiQL before, you can jump to the next tab. +# +# GraphiQL is an in-browser tool for writing, validating, and +# testing GraphQL queries. +# +# Type queries into this side of the screen, and you will see intelligent +# typeaheads aware of the current GraphQL type schema and live syntax and +# validation errors highlighted within the text. +# +# GraphQL queries typically start with a "{" character. Lines that start +# with a # are ignored. +# +# Keyboard shortcuts: +# +# Prettify query: Shift-${controlKey}-P (or press the prettify button) +# +# Merge fragments: Shift-${controlKey}-M (or press the merge button) +# +# Run Query: ${controlKey}-Enter (or press the play button) +# +# Auto Complete: ${controlKey}-Space (or just start typing) +# +` + +export const DEFAULT_SHOP_QUERY = `query shopInfo { + shop { + name + url + myshopifyDomain + plan { + displayName + partnerDevelopment + shopifyPlus + } + } +}` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 84407755ea2..bcc3dfe69bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -659,12 +659,21 @@ importers: packages/graphiql-console: dependencies: + '@graphiql/toolkit': + specifier: ^0.11.3 + version: 0.11.3(@types/node@24.7.0)(graphql-ws@6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0))(graphql@16.10.0) '@shopify/polaris': specifier: ^12.27.0 version: 12.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@shopify/polaris-icons': specifier: ^9.0.0 version: 9.3.1(react@18.3.1) + graphiql: + specifier: ^3.0.0 + version: 3.9.0(@codemirror/language@6.0.0)(@types/node@24.7.0)(@types/react-dom@18.2.0)(@types/react@17.0.2)(graphql-ws@6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + graphql: + specifier: ^16.10.0 + version: 16.10.0 react: specifier: ^18.2.0 version: 18.3.1 @@ -1919,6 +1928,15 @@ packages: '@changesets/write@0.4.0': resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + '@codemirror/language@6.0.0': + resolution: {integrity: sha512-rtjk5ifyMzOna1c7PBu7J1VCt0PvA5wy3o8eMVnxMKb7z8KA7JFecvD04dSn14vj/bBaAbqRsGed5OjtofEnLA==} + + '@codemirror/state@6.5.2': + resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} + + '@codemirror/view@6.38.6': + resolution: {integrity: sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==} + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -2016,6 +2034,12 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emotion/is-prop-valid@0.8.8': + resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + + '@emotion/memoize@0.7.4': + resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + '@envelop/core@5.2.3': resolution: {integrity: sha512-KfoGlYD/XXQSc3BkM1/k15+JQbkQ4ateHazeZoWl9P71FsLTDXSjGy6j7QqfhpIDSbxNISqhPMfZHYSbDFOofQ==} engines: {node: '>=18.0.0'} @@ -2213,9 +2237,40 @@ packages: '@fastify/busboy@3.1.1': resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==} + '@floating-ui/core@1.7.3': + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + + '@floating-ui/dom@1.7.4': + resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + + '@floating-ui/react-dom@2.1.6': + resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + '@gerrit0/mini-shiki@1.27.2': resolution: {integrity: sha512-GeWyHz8ao2gBiUW4OJnQDxXQnFgZQwwQk05t/CVVgNBN7/rK8XZ7xY6YhLVv9tH3VppWWmr9DCl3MwemB/i+Og==} + '@graphiql/react@0.29.0': + resolution: {integrity: sha512-4Zd57+DeK5t1KYiqy9hnuaQhR8fnZ1CkKUkmZqINpAe0OlpbszOE661zwNGuW5NjbXgepfI89ICnh1ZVinSJvg==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + + '@graphiql/toolkit@0.11.3': + resolution: {integrity: sha512-Glf0fK1cdHLNq52UWPzfSrYIJuNxy8h4451Pw1ZVpJ7dtU+tm7GVVC64UjEDQ/v2j3fnG4cX8jvR75IvfL6nzQ==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + graphql-ws: '>= 4.5.0' + peerDependenciesMeta: + graphql-ws: + optional: true + '@graphql-codegen/add@3.2.3': resolution: {integrity: sha512-sQOnWpMko4JLeykwyjFTxnhqjd/3NOG2OyMuvK76Wnnwh8DRrNf2VEs2kmSvLl7MndMlOj7Kh5U154dVcvhmKQ==} peerDependencies: @@ -2562,6 +2617,13 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@headlessui/react@1.7.19': + resolution: {integrity: sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==} + engines: {node: '>=10'} + peerDependencies: + react: ^16 || ^17 || ^18 + react-dom: ^16 || ^17 || ^18 + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -2799,6 +2861,15 @@ packages: '@kwsites/promise-deferred@1.1.1': resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@lezer/common@1.3.0': + resolution: {integrity: sha512-L9X8uHCYU310o99L3/MpJKYxPzXPOS7S0NmBaM7UO/x2Kb2WbmMLSkfvdr1KxRIFYOpbY0Jhn7CfLSUDzL8arQ==} + + '@lezer/highlight@1.2.3': + resolution: {integrity: sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==} + + '@lezer/lr@1.4.3': + resolution: {integrity: sha512-yenN5SqAxAPv/qMnpWW0AT7l+SxVrgG+u0tNsRQWqbrz66HIl8DnEbBObvy21J5K7+I1v7gsAnlE2VQ5yYVSeA==} + '@luckycatfactory/esbuild-graphql-loader@3.8.1': resolution: {integrity: sha512-ovONIUSW6NAlCpiPMaVw4PpdFoO3Kqi8TGQ2hTtjKTQTdPpSOdekPI1ZRnwciTeUn0yCAQk7M2xdrbIZeTh6pw==} peerDependencies: @@ -2812,16 +2883,41 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@marijn/find-cluster-break@1.0.2': + resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} + '@microsoft/tsdoc-config@0.17.1': resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} + '@motionone/animation@10.18.0': + resolution: {integrity: sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==} + + '@motionone/dom@10.12.0': + resolution: {integrity: sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==} + + '@motionone/easing@10.18.0': + resolution: {integrity: sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==} + + '@motionone/generators@10.18.0': + resolution: {integrity: sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==} + + '@motionone/types@10.17.1': + resolution: {integrity: sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==} + + '@motionone/utils@10.18.0': + resolution: {integrity: sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==} + '@mswjs/interceptors@0.38.7': resolution: {integrity: sha512-Jkb27iSn7JPdkqlTqKfhncFfnEZsIJVYxsFbUSWEkxdIPdsyngrhoDBk0/BGD2FQcRH99vlRrkHpNTyKqI+0/w==} engines: {node: '>=18'} + '@n1ru4l/push-pull-async-iterable-iterator@3.2.0': + resolution: {integrity: sha512-3fkKj25kEjsfObL6IlKPAlHYPq/oYwUkkQ03zsTTiDjD7vg/RxjdiLeCydqtxHZP0JgsXL3D/X5oAkMGzuUp/Q==} + engines: {node: '>=12'} + '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -3335,6 +3431,346 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.4': + resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.2.4': + resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-visually-hidden@1.2.4': + resolution: {integrity: sha512-kaeiyGCe844dkb9AVF+rb4yTyb1LiLN/e3es3nLiRyN4dC8AduBYPMnnNlDjX2VDOcvDEiPnRNMJeWCfsX0txg==} + peerDependencies: + '@types/react': 17.0.2 + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + '@remix-run/router@1.23.0': resolution: {integrity: sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==} engines: {node: '>=14.0.0'} @@ -3861,6 +4297,15 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} + '@tanstack/react-virtual@3.13.12': + resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tanstack/virtual-core@3.13.12': + resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} + '@teppeis/multimaps@3.0.0': resolution: {integrity: sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q==} engines: {node: '>=14'} @@ -3942,6 +4387,12 @@ packages: '@types/cli-progress@3.11.6': resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} + '@types/codemirror@0.0.90': + resolution: {integrity: sha512-8Z9+tSg27NPRGubbUPUCrt5DDG/OWzLph5BvcDykwR5D7RyZh5mhHG0uS1ePKV1YFCA+/cwc4Ey2AJAEFfV3IA==} + + '@types/codemirror@5.60.17': + resolution: {integrity: sha512-AZq2FIsUHVMlp7VSe2hTfl5w4pcUkoFkM3zVsRKsn1ca8CXRDYvnin04+HP2REkwsxemuHqvDofdlhUWNpbwfw==} + '@types/commondir@1.0.2': resolution: {integrity: sha512-ugIRUhO6vLS6Pi5Pz/0yuMYX7Q1rsEpXNrU7ef6rVdH+cb3hTDz8HL55C0QINDqMB4ZWsrE8lLWyYUbZKPhduQ==} @@ -4093,6 +4544,9 @@ packages: '@types/statuses@2.0.5': resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + '@types/tern@0.23.9': + resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==} + '@types/tinycolor2@1.4.6': resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} @@ -4545,6 +4999,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -4972,6 +5430,9 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -4997,6 +5458,16 @@ packages: resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + codemirror-graphql@2.2.4: + resolution: {integrity: sha512-VW4rpbAqgAIEWKXwE3nDFz2QEaY5Cme0CnKET43ZE3RSKAAeOaUcecR6wBf3LYfxWwOyyzeCzqxRoUj+HNAEQA==} + peerDependencies: + '@codemirror/language': 6.0.0 + codemirror: ^5.65.3 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + + codemirror@5.65.20: + resolution: {integrity: sha512-i5dLDDxwkFCbhjvL2pNjShsojoL3XHyDwsGv1jqETUoW+lzpBKKqNTUWgQwVAOa0tUm4BwekT455ujafi8payA==} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -5181,6 +5652,9 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + cross-fetch@3.2.0: resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} @@ -5252,6 +5726,9 @@ packages: resolution: {integrity: sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==} engines: {node: '>=12'} + debounce-promise@3.1.2: + resolution: {integrity: sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==} + debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -5400,6 +5877,9 @@ packages: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -6053,6 +6533,15 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} + framer-motion@6.5.1: + resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} + peerDependencies: + react: '>=16.8 || ^17.0.0 || ^18.0.0' + react-dom: '>=16.8 || ^17.0.0 || ^18.0.0' + + framesync@6.0.1: + resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==} + fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -6117,6 +6606,10 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -6147,6 +6640,10 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + get-value@3.0.1: + resolution: {integrity: sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==} + engines: {node: '>=6.0'} + git-diff@2.0.6: resolution: {integrity: sha512-/Iu4prUrydE3Pb3lCBMbcSNIf81tgGt0W1ZwknnyF62t3tHmtiJTRj0f+1ZIhp3+Rh0ktz1pJVoa7ZXUCskivA==} engines: {node: '>= 4.8.0'} @@ -6232,6 +6729,13 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphiql@3.9.0: + resolution: {integrity: sha512-rJYFlHdBbug9+YbFSwRVvgfPjCayC7wHecZkx/qB4XLuQPFQZw/yB9pmHFtOJV6RiNBBHro3u1GdocKa3YcGRA==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + graphql-codegen-typescript-operation-types@2.0.2: resolution: {integrity: sha512-qEqV3WloTfj7Tvl4B1WD9pn2ewYxoZS8mzdV9w0/wdIcR9XlFmjJygxEGM0Gll1cTEayKGWMK7qarbRQMn+mGg==} engines: {node: '>=16'} @@ -6248,6 +6752,12 @@ packages: cosmiconfig-toml-loader: optional: true + graphql-language-service@5.5.0: + resolution: {integrity: sha512-9EvWrLLkF6Y5e29/2cmFoAO6hBPPAZlCyjznmpR11iFtRydfkss+9m6x+htA8h7YznGam+TtJwS6JuwoWWgb2Q==} + hasBin: true + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + graphql-request@6.1.0: resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} peerDependencies: @@ -6342,6 +6852,9 @@ packages: headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} @@ -6685,9 +7198,17 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-primitive@3.0.1: + resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} + engines: {node: '>=0.10.0'} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -6791,6 +7312,10 @@ packages: resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} engines: {node: '>=0.10.0'} + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + isomorphic-ws@5.0.0: resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: @@ -7873,6 +8398,9 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} + popmotion@11.0.3: + resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -8029,6 +8557,11 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-compiler-runtime@19.1.0-rc.1: + resolution: {integrity: sha512-wCt6g+cRh8g32QT18/9blfQHywGjYu+4FlEc3CW1mx3pPxYzZZl1y+VtqxRgnKKBCFLIGUYxog4j4rs5YS86hw==} + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental + react-dom@17.0.2: resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: @@ -8071,6 +8604,26 @@ packages: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.1: + resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react-router-dom@6.30.1: resolution: {integrity: sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==} engines: {node: '>=14.0.0'} @@ -8084,6 +8637,16 @@ packages: peerDependencies: react: '>=16.8' + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react-toastify@9.1.3: resolution: {integrity: sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==} peerDependencies: @@ -8415,6 +8978,10 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} + set-value@4.1.0: + resolution: {integrity: sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==} + engines: {node: '>=11.0'} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -8707,6 +9274,12 @@ packages: stubborn-fs@1.2.5: resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + style-mod@4.1.3: + resolution: {integrity: sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==} + + style-value-types@5.0.0: + resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -9152,12 +9725,32 @@ packages: urlpattern-polyfill@10.1.0: resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + use-resize-observer@9.1.0: resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==} peerDependencies: react: 16.8.0 - 18 react-dom: 16.8.0 - 18 + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 17.0.2 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + util-arity@1.1.0: resolution: {integrity: sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==} @@ -9305,6 +9898,9 @@ packages: vscode-uri@3.1.0: resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -11253,6 +11849,26 @@ snapshots: human-id: 4.1.2 prettier: 2.8.8 + '@codemirror/language@6.0.0': + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.6 + '@lezer/common': 1.3.0 + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.3 + style-mod: 4.1.3 + + '@codemirror/state@6.5.2': + dependencies: + '@marijn/find-cluster-break': 1.0.2 + + '@codemirror/view@6.38.6': + dependencies: + '@codemirror/state': 6.5.2 + crelt: 1.0.6 + style-mod: 4.1.3 + w3c-keyname: 2.2.8 + '@colors/colors@1.5.0': optional: true @@ -11416,6 +12032,14 @@ snapshots: dependencies: tslib: 2.8.1 + '@emotion/is-prop-valid@0.8.8': + dependencies: + '@emotion/memoize': 0.7.4 + optional: true + + '@emotion/memoize@0.7.4': + optional: true + '@envelop/core@5.2.3': dependencies: '@envelop/instrumentation': 1.0.0 @@ -11544,12 +12168,68 @@ snapshots: '@fastify/busboy@3.1.1': {} + '@floating-ui/core@1.7.3': + dependencies: + '@floating-ui/utils': 0.2.10 + + '@floating-ui/dom@1.7.4': + dependencies: + '@floating-ui/core': 1.7.3 + '@floating-ui/utils': 0.2.10 + + '@floating-ui/react-dom@2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.7.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/utils@0.2.10': {} + '@gerrit0/mini-shiki@1.27.2': dependencies: '@shikijs/engine-oniguruma': 1.29.2 '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 + '@graphiql/react@0.29.0(@codemirror/language@6.0.0)(@types/node@24.7.0)(@types/react-dom@18.2.0)(@types/react@17.0.2)(graphql-ws@6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@graphiql/toolkit': 0.11.3(@types/node@24.7.0)(graphql-ws@6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0))(graphql@16.10.0) + '@headlessui/react': 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.4(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/codemirror': 5.60.17 + clsx: 1.2.1 + codemirror: 5.65.20 + codemirror-graphql: 2.2.4(@codemirror/language@6.0.0)(codemirror@5.65.20)(graphql@16.10.0) + copy-to-clipboard: 3.3.3 + framer-motion: 6.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + get-value: 3.0.1 + graphql: 16.10.0 + graphql-language-service: 5.5.0(graphql@16.10.0) + markdown-it: 14.1.0 + react: 18.3.1 + react-compiler-runtime: 19.1.0-rc.1(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + set-value: 4.1.0 + transitivePeerDependencies: + - '@codemirror/language' + - '@types/node' + - '@types/react' + - '@types/react-dom' + - graphql-ws + + '@graphiql/toolkit@0.11.3(@types/node@24.7.0)(graphql-ws@6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0))(graphql@16.10.0)': + dependencies: + '@n1ru4l/push-pull-async-iterable-iterator': 3.2.0 + graphql: 16.10.0 + meros: 1.3.0(@types/node@24.7.0) + optionalDependencies: + graphql-ws: 6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0) + transitivePeerDependencies: + - '@types/node' + '@graphql-codegen/add@3.2.3(graphql@16.10.0)': dependencies: '@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.10.0) @@ -12279,6 +12959,13 @@ snapshots: dependencies: graphql: 16.10.0 + '@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/react-virtual': 3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + client-only: 0.0.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -12560,6 +13247,16 @@ snapshots: '@kwsites/promise-deferred@1.1.1': {} + '@lezer/common@1.3.0': {} + + '@lezer/highlight@1.2.3': + dependencies: + '@lezer/common': 1.3.0 + + '@lezer/lr@1.4.3': + dependencies: + '@lezer/common': 1.3.0 + '@luckycatfactory/esbuild-graphql-loader@3.8.1(esbuild@0.25.12)(graphql-tag@2.12.6(graphql@16.10.0))(graphql@16.10.0)': dependencies: esbuild: 0.25.12 @@ -12582,6 +13279,8 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 + '@marijn/find-cluster-break@1.0.2': {} + '@microsoft/tsdoc-config@0.17.1': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -12591,6 +13290,41 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} + '@motionone/animation@10.18.0': + dependencies: + '@motionone/easing': 10.18.0 + '@motionone/types': 10.17.1 + '@motionone/utils': 10.18.0 + tslib: 2.8.1 + + '@motionone/dom@10.12.0': + dependencies: + '@motionone/animation': 10.18.0 + '@motionone/generators': 10.18.0 + '@motionone/types': 10.17.1 + '@motionone/utils': 10.18.0 + hey-listen: 1.0.8 + tslib: 2.8.1 + + '@motionone/easing@10.18.0': + dependencies: + '@motionone/utils': 10.18.0 + tslib: 2.8.1 + + '@motionone/generators@10.18.0': + dependencies: + '@motionone/types': 10.17.1 + '@motionone/utils': 10.18.0 + tslib: 2.8.1 + + '@motionone/types@10.17.1': {} + + '@motionone/utils@10.18.0': + dependencies: + '@motionone/types': 10.17.1 + hey-listen: 1.0.8 + tslib: 2.8.1 + '@mswjs/interceptors@0.38.7': dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -12600,6 +13334,8 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 + '@n1ru4l/push-pull-async-iterable-iterator@3.2.0': {} + '@napi-rs/wasm-runtime@0.2.12': dependencies: '@emnapi/core': 1.6.0 @@ -13156,87 +13892,403 @@ snapshots: '@parcel/watcher-linux-arm64-musl@2.5.1': optional: true - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + optional: true + + '@phenomnomnominal/tsquery@5.0.1(typescript@5.8.3)': + dependencies: + esquery: 1.6.0 + typescript: 5.8.3 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.2': {} + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 + + '@radix-ui/react-collection@1.1.7(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 + + '@radix-ui/react-compose-refs@1.1.2(@types/react@17.0.2)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 + + '@radix-ui/react-context@1.1.2(@types/react@17.0.2)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 + + '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.2)(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@17.0.2)(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 + + '@radix-ui/react-direction@1.1.1(@types/react@17.0.2)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 + + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 + + '@radix-ui/react-focus-guards@1.1.3(@types/react@17.0.2)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@parcel/watcher-win32-arm64@2.5.1': - optional: true + '@radix-ui/react-id@1.1.1(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@parcel/watcher-win32-ia32@2.5.1': - optional: true + '@radix-ui/react-menu@2.1.16(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.2)(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@17.0.2)(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@parcel/watcher-win32-x64@2.5.1': - optional: true + '@radix-ui/react-popper@1.2.8(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@parcel/watcher@2.5.1': + '@radix-ui/react-portal@1.1.9(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - optional: true + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@phenomnomnominal/tsquery@5.0.1(typescript@5.8.3)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - esquery: 1.6.0 - typescript: 5.8.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@pkgjs/parseargs@0.11.0': - optional: true + '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@pkgr/core@0.1.2': {} + '@radix-ui/react-primitive@2.1.4(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.2.4(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@pnpm/config.env-replace@1.1.0': {} + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@pnpm/network.ca-file@1.0.2': + '@radix-ui/react-slot@1.2.3(@types/react@17.0.2)(react@18.3.1)': dependencies: - graceful-fs: 4.2.10 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@pnpm/npm-conf@2.3.1': + '@radix-ui/react-slot@1.2.4(@types/react@17.0.2)(react@18.3.1)': dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@protobufjs/aspromise@1.1.2': {} + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@protobufjs/base64@1.1.2': {} + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@17.0.2)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@protobufjs/codegen@2.0.4': {} + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@17.0.2)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@protobufjs/eventemitter@1.1.0': {} + '@radix-ui/react-use-effect-event@0.0.2(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@protobufjs/fetch@1.1.0': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@17.0.2)(react@18.3.1)': dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@protobufjs/float@1.0.2': {} + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@17.0.2)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@protobufjs/inquire@1.1.0': {} + '@radix-ui/react-use-rect@1.1.1(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@protobufjs/path@1.1.2': {} + '@radix-ui/react-use-size@1.1.1(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@17.0.2)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 - '@protobufjs/pool@1.1.0': {} + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 - '@protobufjs/utf8@1.1.0': {} + '@radix-ui/react-visually-hidden@1.2.4(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.2.0)(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + '@types/react-dom': 18.2.0 + + '@radix-ui/rect@1.1.1': {} '@remix-run/router@1.23.0': {} @@ -14008,6 +15060,14 @@ snapshots: dependencies: defer-to-connect: 2.0.1 + '@tanstack/react-virtual@3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/virtual-core': 3.13.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@tanstack/virtual-core@3.13.12': {} + '@teppeis/multimaps@3.0.0': {} '@testing-library/dom@10.4.1': @@ -14108,6 +15168,14 @@ snapshots: dependencies: '@types/node': 18.19.70 + '@types/codemirror@0.0.90': + dependencies: + '@types/tern': 0.23.9 + + '@types/codemirror@5.60.17': + dependencies: + '@types/tern': 0.23.9 + '@types/commondir@1.0.2': {} '@types/connect@3.4.38': @@ -14269,6 +15337,10 @@ snapshots: '@types/statuses@2.0.5': {} + '@types/tern@0.23.9': + dependencies: + '@types/estree': 1.0.8 + '@types/tinycolor2@1.4.6': {} '@types/tmp@0.2.6': {} @@ -14883,6 +15955,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -15422,6 +16498,8 @@ snapshots: cli-width@4.1.0: {} + client-only@0.0.1: {} + cliui@6.0.0: dependencies: string-width: 4.2.3 @@ -15446,6 +16524,16 @@ snapshots: dependencies: convert-to-spaces: 2.0.1 + codemirror-graphql@2.2.4(@codemirror/language@6.0.0)(codemirror@5.65.20)(graphql@16.10.0): + dependencies: + '@codemirror/language': 6.0.0 + '@types/codemirror': 0.0.90 + codemirror: 5.65.20 + graphql: 16.10.0 + graphql-language-service: 5.5.0(graphql@16.10.0) + + codemirror@5.65.20: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -15627,6 +16715,8 @@ snapshots: create-require@1.1.1: {} + crelt@1.0.6: {} + cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 @@ -15705,6 +16795,8 @@ snapshots: dependencies: mimic-fn: 4.0.0 + debounce-promise@3.1.2: {} + debounce@1.2.1: optional: true @@ -15811,6 +16903,8 @@ snapshots: detect-newline@4.0.1: {} + detect-node-es@1.1.0: {} + detect-node@2.1.0: {} detect-port@1.6.1: @@ -16687,6 +17781,23 @@ snapshots: forwarded@0.2.0: {} + framer-motion@6.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@motionone/dom': 10.12.0 + framesync: 6.0.1 + hey-listen: 1.0.8 + popmotion: 11.0.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + style-value-types: 5.0.0 + tslib: 2.8.1 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + + framesync@6.0.1: + dependencies: + tslib: 2.8.1 + fresh@0.5.2: {} front-matter@4.0.2: @@ -16763,6 +17874,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-package-type@0.1.0: {} get-port-please@3.1.2: {} @@ -16789,6 +17902,10 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 + get-value@3.0.1: + dependencies: + isobject: 3.0.1 + git-diff@2.0.6: dependencies: chalk: 2.4.2 @@ -16918,6 +18035,20 @@ snapshots: graphemer@1.4.0: {} + graphiql@3.9.0(@codemirror/language@6.0.0)(@types/node@24.7.0)(@types/react-dom@18.2.0)(@types/react@17.0.2)(graphql-ws@6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@graphiql/react': 0.29.0(@codemirror/language@6.0.0)(@types/node@24.7.0)(@types/react-dom@18.2.0)(@types/react@17.0.2)(graphql-ws@6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + graphql: 16.10.0 + react: 18.3.1 + react-compiler-runtime: 19.1.0-rc.1(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@codemirror/language' + - '@types/node' + - '@types/react' + - '@types/react-dom' + - graphql-ws + graphql-codegen-typescript-operation-types@2.0.2(graphql@16.10.0): dependencies: '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) @@ -16973,6 +18104,13 @@ snapshots: - utf-8-validate optional: true + graphql-language-service@5.5.0(graphql@16.10.0): + dependencies: + debounce-promise: 3.1.2 + graphql: 16.10.0 + nullthrows: 1.1.1 + vscode-languageserver-types: 3.17.5 + graphql-request@6.1.0(graphql@16.10.0): dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) @@ -17066,6 +18204,8 @@ snapshots: headers-polyfill@4.0.3: {} + hey-listen@1.0.8: {} + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 @@ -17439,8 +18579,14 @@ snapshots: is-plain-obj@4.1.0: {} + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + is-potential-custom-element-name@1.0.1: {} + is-primitive@3.0.1: {} + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -17530,6 +18676,8 @@ snapshots: dependencies: isarray: 1.0.0 + isobject@3.0.1: {} + isomorphic-ws@5.0.0(ws@8.18.0): dependencies: ws: 8.18.0 @@ -17987,7 +19135,6 @@ snapshots: meros@1.3.0(@types/node@24.7.0): optionalDependencies: '@types/node': 24.7.0 - optional: true methods@1.1.2: {} @@ -18656,6 +19803,13 @@ snapshots: pluralize@8.0.0: {} + popmotion@11.0.3: + dependencies: + framesync: 6.0.1 + hey-listen: 1.0.8 + style-value-types: 5.0.0 + tslib: 2.8.1 + possible-typed-array-names@1.1.0: {} postcss@8.5.6: @@ -18823,6 +19977,10 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 + react-compiler-runtime@19.1.0-rc.1(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom@17.0.2(react@17.0.2): dependencies: loose-envify: 1.4.0 @@ -18874,6 +20032,25 @@ snapshots: react-refresh@0.17.0: {} + react-remove-scroll-bar@2.3.8(@types/react@17.0.2)(react@18.3.1): + dependencies: + react: 18.3.1 + react-style-singleton: 2.2.3(@types/react@17.0.2)(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 17.0.2 + + react-remove-scroll@2.7.1(@types/react@17.0.2)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@17.0.2)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@17.0.2)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@17.0.2)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@17.0.2)(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + react-router-dom@6.30.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2): dependencies: '@remix-run/router': 1.23.0 @@ -18886,6 +20063,14 @@ snapshots: '@remix-run/router': 1.23.0 react: 17.0.2 + react-style-singleton@2.2.3(@types/react@17.0.2)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 17.0.2 + react-toastify@9.1.3(react-dom@17.0.2(react@17.0.2))(react@17.0.2): dependencies: clsx: 1.2.1 @@ -19303,6 +20488,11 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 + set-value@4.1.0: + dependencies: + is-plain-object: 2.0.4 + is-primitive: 3.0.1 + setimmediate@1.0.5: {} setprototypeof@1.2.0: {} @@ -19634,6 +20824,13 @@ snapshots: stubborn-fs@1.2.5: {} + style-mod@4.1.3: {} + + style-value-types@5.0.0: + dependencies: + hey-listen: 1.0.8 + tslib: 2.8.1 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -20061,12 +21258,27 @@ snapshots: urlpattern-polyfill@10.1.0: {} + use-callback-ref@1.3.3(@types/react@17.0.2)(react@18.3.1): + dependencies: + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 17.0.2 + use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@juggle/resize-observer': 3.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + use-sidecar@1.1.3(@types/react@17.0.2)(react@18.3.1): + dependencies: + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 17.0.2 + util-arity@1.1.0: {} util-deprecate@1.0.2: {} @@ -20367,6 +21579,8 @@ snapshots: vscode-uri@3.1.0: {} + w3c-keyname@2.2.8: {} + w3c-xmlserializer@4.0.0: dependencies: xml-name-validator: 4.0.0