test: add test case for blocksuite editor (#1528)

This commit is contained in:
Himself65 2023-03-10 17:45:10 -06:00 committed by GitHub
parent 1c89841d6f
commit a795000363
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 495 additions and 488 deletions

View File

@ -7,6 +7,8 @@ const config = {
),
prefetchWorkspace: Boolean(process.env.PREFETCH_WORKSPACE ?? '1'),
exposeInternal: Boolean(process.env.EXPOSE_INTERNAL ?? '1'),
enableDebugPage: Boolean(process.env.ENABLE_DEBUG_PAGE ?? false),
enableDebugPage: Boolean(
process.env.ENABLE_DEBUG_PAGE ?? process.env.NODE_ENV === 'development'
),
};
export default config;

View File

@ -0,0 +1,71 @@
'use client';
import { EditorContainer } from '@blocksuite/editor';
import { assertEquals, assertExists, Generator, Page } from '@blocksuite/store';
import React, { useCallback, useEffect, useRef, useState } from 'react';
import { createEmptyBlockSuiteWorkspace } from '../../../utils';
import { BlockSuiteEditor } from '../../blocksuite/block-suite-editor';
const blockSuiteWorkspace = createEmptyBlockSuiteWorkspace(
'test',
_ => undefined,
Generator.AutoIncrement
);
blockSuiteWorkspace.createPage('page0');
const Editor: React.FC<{
onInit: (page: Page, editor: Readonly<EditorContainer>) => void;
testType: 'empty' | 'importMarkdown';
}> = ({ onInit, testType }) => {
const page = blockSuiteWorkspace.getPage('page0');
const [, rerender] = useState(false);
const onceRef = useRef(false);
if (!onceRef.current) {
if (testType === 'importMarkdown') {
if (page) {
page.workspace.meta.setPageMeta(page.id, {
init: true,
});
} else {
blockSuiteWorkspace.slots.pageAdded.on(id => {
const page = blockSuiteWorkspace.getPage(id);
assertExists(page);
assertEquals(id, 'page0');
page.workspace.meta.setPageMeta(page.id, {
init: true,
});
});
}
}
}
useEffect(() => {
const cb = () => rerender(v => !v);
const dispose = blockSuiteWorkspace.slots.pageAdded.on(cb);
return () => {
dispose.dispose();
};
}, []);
const onLoad = useCallback((page: Page, editor: EditorContainer) => {
// @ts-ignore
globalThis.page = page;
// @ts-ignore
globalThis.editor = editor;
}, []);
if (!page) {
return <>loading...</>;
}
return (
<BlockSuiteEditor
blockSuiteWorkspace={blockSuiteWorkspace}
page={page}
mode="page"
onInit={onInit}
onLoad={onLoad}
/>
);
};
export default Editor;

View File

@ -11,23 +11,11 @@ export type EditorProps = {
blockSuiteWorkspace: BlockSuiteWorkspace;
page: Page;
mode: 'page' | 'edgeless';
onInit?: (page: Page, editor: Readonly<EditorContainer>) => void;
onInit: (page: Page, editor: Readonly<EditorContainer>) => void;
onLoad?: (page: Page, editor: EditorContainer) => void;
style?: CSSProperties;
};
import markdown from '../../../templates/Welcome-to-AFFiNE.md';
const exampleTitle = markdown
.split('\n')
.splice(0, 1)
.join('')
.replaceAll('#', '')
.trim();
const exampleText = markdown.split('\n').slice(1).join('\n');
const kFirstPage = 'affine-first-page';
declare global {
// eslint-disable-next-line no-var
var currentBlockSuiteWorkspace: BlockSuiteWorkspace | undefined;
@ -60,31 +48,7 @@ export const BlockSuiteEditor = (props: EditorProps) => {
editor.page = page;
if (page.root === null) {
if (props.onInit) {
props.onInit(page, editor);
} else {
console.debug('Initializing page with default content');
// Add page block and surface block at root level
const isFirstPage = page.meta.init === true;
if (isFirstPage) {
page.workspace.setPageMeta(page.id, {
init: false,
});
}
const title = isFirstPage ? exampleTitle : undefined;
const pageBlockId = page.addBlockByFlavour('affine:page', {
title: new page.Text(title),
});
page.addBlockByFlavour('affine:surface', {}, null);
const frameId = page.addBlockByFlavour('affine:frame', {}, pageBlockId);
page.addBlockByFlavour('affine:paragraph', {}, frameId);
if (isFirstPage) {
editor.clipboard.importMarkdown(exampleText, frameId);
props.blockSuiteWorkspace.setPageMeta(page.id, { title });
localStorage.setItem(kFirstPage, 'true');
}
page.resetHistory();
}
props.onInit(page, editor);
}
if (config.exposeInternal) {
globalThis.currentBlockSuiteWorkspace = props.blockSuiteWorkspace;

View File

@ -15,7 +15,7 @@ export type PageDetailEditorProps = {
isPreview?: boolean;
blockSuiteWorkspace: BlockSuiteWorkspace;
pageId: string;
onInit?: (page: Page, editor: Readonly<EditorContainer>) => void;
onInit: (page: Page, editor: Readonly<EditorContainer>) => void;
onLoad?: (page: Page, editor: EditorContainer) => void;
header?: React.ReactNode;
};

View File

@ -0,0 +1,41 @@
import { NoSsr } from '@mui/material';
import dynamic from 'next/dynamic';
import { useRouter } from 'next/router';
import { StyledPage, StyledWrapper } from '../../layouts/styles';
import { NextPageWithLayout } from '../../shared';
import { initPage } from '../../utils/blocksuite';
const Editor = dynamic(
() => import('../../components/__debug__/client/Editor'),
{
ssr: false,
}
);
const InitPagePage: NextPageWithLayout = () => {
const router = useRouter();
if (!router.isReady) {
return <>loading...</>;
}
let testType: 'empty' | 'importMarkdown' = 'empty';
if (router.query.type === 'importMarkdown') {
testType = 'importMarkdown';
} else if (router.query.type === 'empty') {
testType = 'empty';
}
return (
<StyledPage>
<StyledWrapper>
<Editor onInit={initPage} testType={testType} />
<div id="toolWrapper" />
</StyledWrapper>
</StyledPage>
);
};
export default InitPagePage;
InitPagePage.getLayout = page => {
return <NoSsr>{page}</NoSsr>;
};

View File

@ -23,6 +23,7 @@ import { useBlockSuiteWorkspaceAvatarUrl } from '../../../hooks/use-blocksuite-w
import { useBlockSuiteWorkspaceName } from '../../../hooks/use-blocksuite-workspace-name';
import { WorkspaceLayout } from '../../../layouts';
import { NextPageWithLayout } from '../../../shared';
import { initPage } from '../../../utils/blocksuite';
export const NavContainer = styled('div')(({ theme }) => {
return {
@ -85,6 +86,7 @@ const PublicWorkspaceDetailPageInner: React.FC<{
const { page } = editor;
page.awarenessStore.setReadonly(page, true);
}}
onInit={initPage}
header={
<NavContainer>
<Breadcrumbs>

View File

@ -16,6 +16,7 @@ import {
} from '../../shared';
import { apis, clientAuth } from '../../shared/apis';
import { createEmptyBlockSuiteWorkspace } from '../../utils';
import { initPage } from '../../utils/blocksuite';
import { WorkspacePlugin } from '..';
import { QueryKey } from './fetcher';
@ -215,6 +216,7 @@ export const AffinePlugin: WorkspacePlugin<RemWorkspaceFlavour.AFFINE> = {
<PageDetailEditor
pageId={currentPageId}
blockSuiteWorkspace={currentWorkspace.blockSuiteWorkspace}
onInit={initPage}
/>
</>
);

View File

@ -17,6 +17,7 @@ import {
RemWorkspaceFlavour,
} from '../../shared';
import { createEmptyBlockSuiteWorkspace } from '../../utils';
import { initPage } from '../../utils/blocksuite';
import { WorkspacePlugin } from '..';
const getStorage = () => createJSONStorage(() => localStorage);
@ -117,6 +118,7 @@ export const LocalPlugin: WorkspacePlugin<RemWorkspaceFlavour.LOCAL> = {
<>
<PageDetailEditor
pageId={currentPageId}
onInit={initPage}
blockSuiteWorkspace={currentWorkspace.blockSuiteWorkspace}
/>
</>

View File

@ -0,0 +1,55 @@
import { DebugLogger } from '@affine/debug';
import { EditorContainer } from '@blocksuite/editor';
import { Page } from '@blocksuite/store';
import markdown from '../templates/Welcome-to-AFFiNE.md';
const demoTitle = markdown
.split('\n')
.splice(0, 1)
.join('')
.replaceAll('#', '')
.trim();
const demoText = markdown.split('\n').slice(1).join('\n');
const logger = new DebugLogger('init-page');
export function initPage(page: Page, editor: Readonly<EditorContainer>): void {
logger.debug('initEmptyPage', page.id);
// Add page block and surface block at root level
const isFirstPage = page.meta.init === true;
if (isFirstPage) {
page.workspace.setPageMeta(page.id, {
init: false,
});
_initPageWithDemoMarkdown(page, editor);
} else {
_initEmptyPage(page, editor);
}
page.resetHistory();
}
export function _initEmptyPage(page: Page, _: Readonly<EditorContainer>) {
const pageBlockId = page.addBlockByFlavour('affine:page', {
title: new page.Text(''),
});
page.addBlockByFlavour('affine:surface', {}, null);
const frameId = page.addBlockByFlavour('affine:frame', {}, pageBlockId);
page.addBlockByFlavour('affine:paragraph', {}, frameId);
}
export function _initPageWithDemoMarkdown(
page: Page,
editor: Readonly<EditorContainer>
): void {
logger.debug('initPageWithDefaultMarkdown', page.id);
const pageBlockId = page.addBlockByFlavour('affine:page', {
title: new page.Text(demoTitle),
});
page.addBlockByFlavour('affine:surface', {}, null);
const frameId = page.addBlockByFlavour('affine:frame', {}, pageBlockId);
page.addBlockByFlavour('affine:paragraph', {}, frameId);
editor.clipboard.importMarkdown(demoText, frameId);
page.workspace.setPageMeta(page.id, { demoTitle });
}

View File

@ -1,5 +1,5 @@
import { __unstableSchemas, builtInSchemas } from '@blocksuite/blocks/models';
import type { BlobOptionsGetter } from '@blocksuite/store';
import type { BlobOptionsGetter, Generator } from '@blocksuite/store';
import { BlockSuiteWorkspace } from '../shared';
@ -27,7 +27,8 @@ export function stringToColour(str: string) {
const hashMap = new Map<string, BlockSuiteWorkspace>();
export const createEmptyBlockSuiteWorkspace = (
id: string,
blobOptionsGetter?: BlobOptionsGetter
blobOptionsGetter?: BlobOptionsGetter,
idGenerator?: Generator
): BlockSuiteWorkspace => {
if (hashMap.has(id)) {
return hashMap.get(id) as BlockSuiteWorkspace;
@ -36,6 +37,7 @@ export const createEmptyBlockSuiteWorkspace = (
id,
isSSR: typeof window === 'undefined',
blobOptionsGetter,
idGenerator,
})
.register(builtInSchemas)
.register(__unstableSchemas);

View File

@ -65,7 +65,13 @@
"@tauri-apps/api@1.2.0": "patches/@tauri-apps__api@1.2.0.patch"
},
"overrides": {
"react-is": "^18.2.0"
"react-is": "^18.2.0",
"@storybook/addons": "^7.0.0-rc.1",
"@storybook/api": "^7.0.0-rc.1",
"@storybook/components": "^7.0.0-rc.1",
"@storybook/core-events": "^7.0.0-rc.1",
"@storybook/global": "^5.0.0",
"@storybook/theming": "^7.0.0-rc.1"
}
},
"packageManager": "pnpm@7.28.0"

View File

@ -29,16 +29,16 @@
"react-is": "^18.2.0"
},
"devDependencies": {
"@storybook/addon-actions": "7.0.0-beta.60",
"@storybook/addon-essentials": "7.0.0-beta.60",
"@storybook/addon-links": "7.0.0-beta.60",
"@storybook/builder-vite": "7.0.0-beta.60",
"@storybook/react": "7.0.0-beta.60",
"@storybook/react-vite": "7.0.0-beta.60",
"@storybook/addon-actions": "7.0.0-rc.1",
"@storybook/addon-essentials": "7.0.0-rc.1",
"@storybook/addon-links": "7.0.0-rc.1",
"@storybook/builder-vite": "7.0.0-rc.1",
"@storybook/react": "7.0.0-rc.1",
"@storybook/react-vite": "7.0.0-rc.1",
"@types/react": "^18.0.28",
"@types/react-dom": "18.0.11",
"@vitejs/plugin-react": "^3.1.0",
"storybook": "7.0.0-beta.60",
"storybook": "7.0.0-rc.1",
"storybook-dark-mode-v7": "3.0.0-alpha.0",
"typescript": "^4.9.5",
"vite": "^4.1.2",

View File

@ -1,5 +0,0 @@
import { Editor, EditorProps } from '@blocksuite/react/editor';
export type BlockSuiteEditorProps = EditorProps;
export const BlockSuiteEditor = (props: BlockSuiteEditorProps) => {
return <Editor {...props} />;
};

View File

@ -1,59 +0,0 @@
import { MigrationError } from '@blocksuite/global/error';
import React, { Component, ErrorInfo } from 'react';
export type BlockSuiteErrorBoundaryProps = React.PropsWithChildren;
type BlockSuiteError = MigrationError | Error;
interface BlockSuiteErrorBoundaryState {
error: BlockSuiteError | null;
}
export class BlockSuiteErrorBoundary extends Component<
BlockSuiteErrorBoundaryProps,
BlockSuiteErrorBoundaryState
> {
public state: BlockSuiteErrorBoundaryState = {
error: null,
};
public static getDerivedStateFromError(
error: BlockSuiteError
): BlockSuiteErrorBoundaryState {
return { error };
}
public componentDidCatch(error: BlockSuiteError, errorInfo: ErrorInfo) {
console.error('Uncaught error:', error, errorInfo);
}
public render() {
if (this.state.error) {
const isMigrationError = this.state.error instanceof MigrationError;
return (
<>
<h1>Sorry.. there was an error</h1>
{isMigrationError ? (
<>
<span> Migration error </span>
<span>
{' '}
Please open a ticket in{' '}
<a
target="_blank"
href="https://github.com/toeverything/blocksuite/issues"
rel="noreferrer"
>
BlockSuite Github Issue
</a>
</span>
</>
) : null}
</>
);
}
return this.props.children;
}
}

View File

@ -1,70 +0,0 @@
/* deepscan-disable USELESS_ARROW_FUNC_BIND */
import { builtInSchemas } from '@blocksuite/blocks/models';
import { Page, Workspace } from '@blocksuite/store';
import { Meta, Story } from '@storybook/react';
import { Suspense } from 'react';
import {
BlockSuiteEditor,
BlockSuiteEditorProps,
} from '../components/BlockSuiteEditor';
const workspace = new Workspace({
id: 'test',
providers: [],
isSSR: typeof window === 'undefined',
}).register(builtInSchemas);
export default {
title: 'BlockSuite/Editor',
component: BlockSuiteEditor,
} as Meta<BlockSuiteEditorProps>;
const Template: Story<BlockSuiteEditorProps> = args => (
<Suspense fallback="loading page">
<BlockSuiteEditor {...args} />
</Suspense>
);
const presetMarkdown = `This playground is designed to:
* 📝 Test basic editing experience.
* Serve as E2E test entry.
* 🔗 Demonstrate how BlockSuite reconciles real-time collaboration with [local-first](https://martin.kleppmann.com/papers/local-first.pdf) data ownership.
## Controlling Playground Data Source
You might initially enter this page with the \`?init\` URL param. This is the default (opt-in) setup that automatically loads this built-in article. Meanwhile, you'll connect to a random single-user room via a WebRTC provider by default. This is the "single-user mode" for local testing.
To test real-time collaboration, you can specify the room to join by adding the \`?room=foo\` config - Try opening this page with \`?room=foo\` in two different tabs and see what happens!
> Note that the second and subsequent users should not open the page with the \`?init\` param in this case. Also, due to the P2P nature of WebRTC, as long as there is at least one user connected to the room, the content inside the room will **always** exist.
If you are the only user in the room, your content will be lost after refresh. This is great for local debugging. But if you want local persistence, you can open this page with the \`?providers=indexeddb&room=foo\` config, then click the init button in the bottom-left corner to initialize this default content.
As a pro tip, you can combine multiple providers! For example, feel free to open this page with \`?providers=indexeddb,webrtc&room=hello\` params, and see if everything works as expected. Have fun!
For any feedback, please visit [BlockSuite issues](https://github.com/toeverything/blocksuite/issues) 📍`;
const pagePromise = new Promise<Page>(resolve => {
workspace.slots.pageAdded.once(pageId => {
const page = workspace.getPage(pageId) as Page;
pageOrPagePromise = page;
resolve(page);
});
workspace.createPage('0');
});
let pageOrPagePromise: Promise<Page> | Page = pagePromise;
export const Primary = Template.bind(undefined);
Primary.args = {
page: () => pageOrPagePromise,
onInit: async (page, editor) => {
const pageBlockId = page.addBlockByFlavour('affine:page', {
title: 'Welcome to BlockSuite playground',
});
page.addBlockByFlavour('affine:surface', {}, null);
const frameId = page.addBlockByFlavour('affine:frame', {}, pageBlockId);
await editor.clipboard.importMarkdown(presetMarkdown, frameId);
},
};
Primary.parameters = {
docs: {
source: {
code: 'Disabled for this story, see https://github.com/storybookjs/storybook/issues/11554',
},
},
};

View File

@ -1,29 +0,0 @@
/* deepscan-disable USELESS_ARROW_FUNC_BIND */
import { MigrationError } from '@blocksuite/global/error';
import { Meta, StoryFn } from '@storybook/react';
import {
BlockSuiteErrorBoundary,
BlockSuiteErrorBoundaryProps,
} from '../components/BlockSuiteErrorBoundary';
export default {
title: 'BlockSuite/ErrorBoundary',
component: BlockSuiteErrorBoundary,
} as Meta<BlockSuiteErrorBoundaryProps>;
const Template: StoryFn<BlockSuiteErrorBoundaryProps> = args => (
<BlockSuiteErrorBoundary {...args} />
);
export const ErrorComponent = () => {
throw new MigrationError('Something incorrect');
};
export const Primary = Template.bind(undefined);
Primary.args = {
children: [
<span key="1">There is no error</span>,
<ErrorComponent key="2" />,
],
};

View File

@ -2,6 +2,12 @@ lockfileVersion: 5.4
overrides:
react-is: ^18.2.0
'@storybook/addons': ^7.0.0-rc.1
'@storybook/api': ^7.0.0-rc.1
'@storybook/components': ^7.0.0-rc.1
'@storybook/core-events': ^7.0.0-rc.1
'@storybook/global': ^5.0.0
'@storybook/theming': ^7.0.0-rc.1
patchedDependencies:
'@tauri-apps/api@1.2.0':
@ -251,12 +257,12 @@ importers:
'@mui/base': 5.0.0-alpha.119
'@mui/icons-material': ^5.11.11
'@mui/material': ^5.11.11
'@storybook/addon-actions': 7.0.0-beta.60
'@storybook/addon-essentials': 7.0.0-beta.60
'@storybook/addon-links': 7.0.0-beta.60
'@storybook/builder-vite': 7.0.0-beta.60
'@storybook/react': 7.0.0-beta.60
'@storybook/react-vite': 7.0.0-beta.60
'@storybook/addon-actions': 7.0.0-rc.1
'@storybook/addon-essentials': 7.0.0-rc.1
'@storybook/addon-links': 7.0.0-rc.1
'@storybook/builder-vite': 7.0.0-rc.1
'@storybook/react': 7.0.0-rc.1
'@storybook/react-vite': 7.0.0-rc.1
'@types/react': ^18.0.28
'@types/react-dom': 18.0.11
'@vitejs/plugin-react': ^3.1.0
@ -264,7 +270,7 @@ importers:
react: ^18.2.0
react-dom: ^18.2.0
react-is: ^18.2.0
storybook: 7.0.0-beta.60
storybook: 7.0.0-rc.1
storybook-dark-mode-v7: 3.0.0-alpha.0
typescript: ^4.9.5
vite: ^4.1.2
@ -290,16 +296,16 @@ importers:
react-dom: 18.2.0_react@18.2.0
react-is: 18.2.0
devDependencies:
'@storybook/addon-actions': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-essentials': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-links': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/builder-vite': 7.0.0-beta.60_vwvfc4ezh6jlf6pa67auy3eulu
'@storybook/react': 7.0.0-beta.60_ygqkwb4gg3aean7xjfdauovyqq
'@storybook/react-vite': 7.0.0-beta.60_ndsstb2ob2rgr4m75wxvpqsrpi
'@storybook/addon-actions': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-essentials': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-links': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/builder-vite': 7.0.0-rc.1_vwvfc4ezh6jlf6pa67auy3eulu
'@storybook/react': 7.0.0-rc.1_ygqkwb4gg3aean7xjfdauovyqq
'@storybook/react-vite': 7.0.0-rc.1_ndsstb2ob2rgr4m75wxvpqsrpi
'@types/react': 18.0.28
'@types/react-dom': 18.0.11
'@vitejs/plugin-react': 3.1.0_vite@4.1.4
storybook: 7.0.0-beta.60
storybook: 7.0.0-rc.1
storybook-dark-mode-v7: 3.0.0-alpha.0_biqbaboplfbrettd7655fr4n2y
typescript: 4.9.5
vite: 4.1.4
@ -3888,8 +3894,8 @@ packages:
engines: {node: '>=14.16'}
dev: true
/@storybook/addon-actions/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-aSlcOeyx/DZKqZIhWEeEFzaG0eqAdZrOHzsbt9aOwvtxNEOAjY7P1SdD2mx9s6gZddpXMrU7QhKsHuDyijNPAw==}
/@storybook/addon-actions/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-vnKcbsbJVCOsr7YHmInvZSuAxU4iUP+4CPqZbYuZ7MUN3hKLry2e8y41zZU7VbuVbPhxJf4o0HBtlsENxmsIVw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -3899,14 +3905,14 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
dequal: 2.0.3
lodash: 4.17.21
polished: 4.2.2
@ -3919,8 +3925,8 @@ packages:
uuid-browser: 3.1.0
dev: true
/@storybook/addon-backgrounds/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-KX7qvz2Z2bHj8INVy8Xc+Y39E85DOAqOtAsdYD/SmMgJAVm9+IPFBl2VGY0hEPHJ8p3rSu1AoomSXABYHM5sug==}
/@storybook/addon-backgrounds/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-lXFpDzKuZwWhbbuCvWXcljpSOj1k4JlDgbwDJ29tqz3zpiagoHsvZDeHi7ef0HVDZngrhNWHT+9xisLq7mz1Ng==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -3930,22 +3936,22 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
memoizerific: 1.11.3
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
ts-dedent: 2.2.0
dev: true
/@storybook/addon-controls/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-XKTixqODaGoW6aqObx6zWT/A66yiHlPwTJrYdUT1ybsj5i0Iuk2z7kUug4akhScJpD3up3s0J11R10uqoa0eWg==}
/@storybook/addon-controls/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-SpHBN+Ig5e3CpYXksv2KP0GQq5XkVUzuIPJZvA+nEhlCxWlMKFTW0zelJHgJd5OPHKokph/24TVhTgPiHFH35A==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -3955,15 +3961,15 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/blocks': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-common': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/blocks': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-common': 7.0.0-rc.1
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/node-logger': 7.0.0-rc.1
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
lodash: 4.17.21
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
@ -3972,8 +3978,8 @@ packages:
- supports-color
dev: true
/@storybook/addon-docs/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-NBuAwb5Ql/tJTBNMCiK4QP7VKwYZEeshkQJl4jOD1wcSHx7sIgve32KR/7ZqH7X0b0sORJELDFHt0TWZE9VTHw==}
/@storybook/addon-docs/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-cSVTlvVw9CGaJOVbHoth7swP4B2MDt2zhEw9/tOyBZd2hzhdktm2sS65X2lT+Pxc6HdNM6utivO0xrbl6Toizg==}
peerDependencies:
'@storybook/mdx1-csf': '>=1.0.0-0'
react: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -3986,19 +3992,19 @@ packages:
'@babel/plugin-transform-react-jsx': 7.21.0_@babel+core@7.21.0
'@jest/transform': 29.4.3
'@mdx-js/react': 2.3.0_react@18.2.0
'@storybook/blocks': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/csf-plugin': 7.0.0-beta.60
'@storybook/csf-tools': 7.0.0-beta.60
'@storybook/blocks': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/csf-plugin': 7.0.0-rc.1
'@storybook/csf-tools': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/mdx2-csf': 1.0.0-next.5
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/postinstall': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/react-dom-shim': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/node-logger': 7.0.0-rc.1
'@storybook/postinstall': 7.0.0-rc.1
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/react-dom-shim': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
fs-extra: 11.1.0
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
@ -4009,25 +4015,25 @@ packages:
- supports-color
dev: true
/@storybook/addon-essentials/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-NZP9jKj9pw1BIaItADmAQbxWREJUzTZZkY1UKGUYNNKB5iRj2kwKoQ9n5RvcisWtPhhrNnrTiVokWjWnHP/SDQ==}
/@storybook/addon-essentials/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-bEkSBQxoAhOazi0Aj1sa574z+EeUiLefUfOmsh0h5HilMwOBji/5nkw5bBJJIX74o8PUiIOTrsV8gZHF2vIruw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@storybook/addon-actions': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-backgrounds': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-controls': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-docs': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-highlight': 7.0.0-beta.60
'@storybook/addon-measure': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-outline': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-toolbars': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-viewport': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-common': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/addon-actions': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-backgrounds': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-controls': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-docs': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-highlight': 7.0.0-rc.1
'@storybook/addon-measure': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-outline': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-toolbars': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-viewport': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-common': 7.0.0-rc.1
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/node-logger': 7.0.0-rc.1
'@storybook/preview-api': 7.0.0-rc.1
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
ts-dedent: 2.2.0
@ -4036,16 +4042,16 @@ packages:
- supports-color
dev: true
/@storybook/addon-highlight/7.0.0-beta.60:
resolution: {integrity: sha512-xnHpYVGvIPp2EB0hp/QGV8eSMScCKARbPDa6IfIdUfhzzhmLzSmbjFc7sRTCJ4T1aKWyitJ1sZALuRZkObnaqg==}
/@storybook/addon-highlight/7.0.0-rc.1:
resolution: {integrity: sha512-qQMntEFAikvS7RvRbeBFUIPN70sOi9f2byRFl6KMh7onrf+FfXWRPt38pk3Eq+t/kC55mu6m+8wHOiS63DM0BA==}
dependencies:
'@storybook/core-events': 7.0.0-beta.60
'@storybook/core-events': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-rc.1
dev: true
/@storybook/addon-links/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-WtnPBE/lrzuefu4uqV+fhkEzEsBfcZ8G3jTZNQH6J5bI1vpV1ARBAdPG0ddfajiX9MLGxmJKwcZawOeCJ8IRyw==}
/@storybook/addon-links/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-U/VEN/Vr3wKx3PtQA1DNXdeyRu41WPbqjub6NguGRVqeSTLYJoOT1HbXZS9Nl+/6E43hS/nfJARnwr3Q+FglZg==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4055,22 +4061,22 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/core-events': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/core-events': 7.0.0-rc.1
'@storybook/csf': 0.0.2-next.10
'@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/router': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/router': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
prop-types: 15.8.1
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
ts-dedent: 2.2.0
dev: true
/@storybook/addon-measure/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-t+Qb9Rsp6XNQg1A+BxFqy0ysdHbh4s9dA7guASG7lxMHYAwpPN8VWYoKx9H66cXPPkmvXLb5pD/9n5mGCcitZQ==}
/@storybook/addon-measure/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-CxIsNzVD3BVvHK32C57TuuHRD+ZENNlk9fn6zOnQx448NRHASxoHDPurqpxbT0YCBmlxBA9vIbViPhHPK10VFQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4080,19 +4086,19 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: true
/@storybook/addon-outline/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-kF8ieuLUQWWMQSMsg/VTo6sXVBFlVMTElrLINVPjhVm6Z9t7+mu5aXoerdR2Lrfh44Gi0ivo+1qaLgc7kuzUcQ==}
/@storybook/addon-outline/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-BGGci/VjklLXe4gqX6wIoA7I/aCaVZ0cvrBAS82+8yoLg48wDHwEXq37F5uLUa5EEs6gnBZKacGZC4+JmpjlWw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4102,20 +4108,20 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
ts-dedent: 2.2.0
dev: true
/@storybook/addon-toolbars/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-FQOxaScvXmBrkZFOCfkicfY+4/CihtozviUlsJy1XLyLWkgZ5ZtkCp8R0o30DeR+iKQqql41zDkiUYQvjpZwXQ==}
/@storybook/addon-toolbars/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-8qO/LJ67EbfmANVfktaqnYKw82UePiAODRgotca55+GTfo/Ctr0eBrG4QQWF+I4Nr1ZiQ94NBlL3YceGVsgUyg==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4125,17 +4131,17 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: true
/@storybook/addon-viewport/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-GhLk1fn4oq4+gGZsmMaSfAGLEf4HlifhVARWsa4EWqnM9UGFmwSe/vMF1OsERWYb6r5k2y+x25K+FMxYHXRdIg==}
/@storybook/addon-viewport/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-vlwFATYKFlqFlLpWJU1NGPsja/t35wY39yeBEmrhE2Sm4CT7isFG4PEWMu0LpVt4dL9/dl6diYVIqEdF9LRmHw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4145,34 +4151,34 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
memoizerific: 1.11.3
prop-types: 15.8.1
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: true
/@storybook/addons/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-QsKjyh0Yt1gc34dAWTHcqOhM9zt7jZCjmjBod7xiIApzswpb+nCNPFablkcVWH3G8vHcqNlp5yUUbERiFyv0uQ==}
/@storybook/addons/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-KKD0DwLXxW9eMKfd/wYBZC0jJ6w2lG7Kpj4wGrfbt9znwOn9csY8dU03LVYuBX1lhXEygFTksOeEReTVU7dyhQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: true
/@storybook/api/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-27pyW1asJhdVm3fn1Hn9xsAWcYflsEUt8nCXcCul/zw77dGFtT/IYrwOXO1KzE/+CM8uF7U9bfKthZetmS5NAw==}
/@storybook/api/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-uHu9kR2xd+VmVM3CgYbqUQ9L2hPGIeHBMiYgjTa3kIhmKaxsDkSEjVO+eZdi1ZCQy2P44iH+IeicZ4g/AaQ6og==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4182,29 +4188,29 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: true
/@storybook/blocks/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-0B1VGVhnJjXOr2B/sCq+es+QVj6xjApv3qrIXC56venZDVgESYclRD5yoAWbZWnRFdW8lavjTqv5oaSA/zr9OA==}
/@storybook/blocks/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-zlvtCvfpMJn1++0kqQDgpbQaEykpIc/9+DKY1CxUURnaYPY2H24Nu4mXgFPHbpMcQ/KIqvJslZ5tNu6WPS6w8Q==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@storybook/channels': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-beta.60
'@storybook/channels': 7.0.0-rc.1
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-rc.1
'@storybook/csf': 0.0.2-next.10
'@storybook/docs-tools': 7.0.0-beta.60
'@storybook/docs-tools': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/manager-api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
'@types/lodash': 4.14.191
color-convert: 2.0.1
dequal: 2.0.3
@ -4222,13 +4228,13 @@ packages:
- supports-color
dev: true
/@storybook/builder-manager/7.0.0-beta.60:
resolution: {integrity: sha512-Im+j2rloxPFYA9ZArweou5x6mTV8tBVao/K1vO3FmSZpsQczpv0Hm/O7qgfFqFs2gXywXPHkcuF006EpWW/60Q==}
/@storybook/builder-manager/7.0.0-rc.1:
resolution: {integrity: sha512-oPnIST6erzi97U6+296J8bh7SPU+8v9mWvSqabXZqRsPpQ7nLlJK8ceCNrjfMXtgH2kI4SbSC13ORJ8DACBUjw==}
dependencies:
'@fal-works/esbuild-plugin-global-externals': 2.1.2
'@storybook/core-common': 7.0.0-beta.60
'@storybook/manager': 7.0.0-beta.60
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/core-common': 7.0.0-rc.1
'@storybook/manager': 7.0.0-rc.1
'@storybook/node-logger': 7.0.0-rc.1
'@types/ejs': 3.1.2
'@types/find-cache-dir': 3.2.1
'@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15_esbuild@0.16.17
@ -4246,8 +4252,8 @@ packages:
- supports-color
dev: true
/@storybook/builder-vite/7.0.0-beta.60_vwvfc4ezh6jlf6pa67auy3eulu:
resolution: {integrity: sha512-gJ3guodZx0giQ+zkGwOVBrjUq6RPKWc/Exe7I4ovFtXdRcNG6b0z+cXyhXOr2bHCxjEV4qlSw8s7aqRk+6EH0g==}
/@storybook/builder-vite/7.0.0-rc.1_vwvfc4ezh6jlf6pa67auy3eulu:
resolution: {integrity: sha512-2VQXguqZaUeToo03lY6pm/okonslO+wJl/godN1TitmDk5UQ/kWOocV3yMPQ+h+F+fShpkxSwz3nMNIVDS8+BQ==}
peerDependencies:
'@preact/preset-vite': '*'
'@storybook/mdx1-csf': '>=1.0.0-next.1'
@ -4264,16 +4270,16 @@ packages:
vite-plugin-glimmerx:
optional: true
dependencies:
'@storybook/channel-postmessage': 7.0.0-beta.60
'@storybook/channel-websocket': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/core-common': 7.0.0-beta.60
'@storybook/csf-plugin': 7.0.0-beta.60
'@storybook/channel-postmessage': 7.0.0-rc.1
'@storybook/channel-websocket': 7.0.0-rc.1
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/core-common': 7.0.0-rc.1
'@storybook/csf-plugin': 7.0.0-rc.1
'@storybook/mdx2-csf': 1.0.0-next.5
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/preview': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/node-logger': 7.0.0-rc.1
'@storybook/preview': 7.0.0-rc.1
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
browser-assert: 1.2.1
es-module-lexer: 0.9.3
express: 4.18.2
@ -4289,44 +4295,44 @@ packages:
- supports-color
dev: true
/@storybook/channel-postmessage/7.0.0-beta.60:
resolution: {integrity: sha512-/a8LueG0XL6Yt6O6y9zryRb3UbiUkeY2TLXNCY9AHa3KrcZOusw42e00HxXCN13VSLQ2AcojkFZZgifOuUyspg==}
/@storybook/channel-postmessage/7.0.0-rc.1:
resolution: {integrity: sha512-lIj0oDecEOSy6ZSNXBgWs0hqnjKudrDxuRyR0gAC5w5lZ8sMaj6er9caqaii61S4HRAcT5312RpA0V1J746hZw==}
dependencies:
'@storybook/channels': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/core-events': 7.0.0-beta.60
'@storybook/channels': 7.0.0-rc.1
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/core-events': 7.0.0-rc.1
'@storybook/global': 5.0.0
qs: 6.11.0
telejson: 7.0.4
dev: true
/@storybook/channel-websocket/7.0.0-beta.60:
resolution: {integrity: sha512-QESDjsW5qOBXYjspOmSs+zrN7FSvLdz+3ZjJPdldzB4F7it3qXonI5Z6ReQ/+S8rCsJDFgGNci7UEAvQtYJG2A==}
/@storybook/channel-websocket/7.0.0-rc.1:
resolution: {integrity: sha512-oXUPNJWCC+IPzIlqi5aEhOH4IptP1YHF+JhwlOqznF+mlp7j3bLklu1ZaX98wq3BdxCdbwcxwvI7NUFGwFbx+w==}
dependencies:
'@storybook/channels': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/channels': 7.0.0-rc.1
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/global': 5.0.0
telejson: 7.0.4
dev: true
/@storybook/channels/7.0.0-beta.60:
resolution: {integrity: sha512-87PC1xvGHV2/XxxaxYP6nfmBfvlgzC5rQCr1fFhYcEJURrgscNLQXjS3C0wYIHdd568Wqb/ZKD7ToM8bzY0VcA==}
/@storybook/channels/7.0.0-rc.1:
resolution: {integrity: sha512-hBER6gliJxsrYEbWlXNljf0/1ybIlYCtaK0Vcgqdw/zmTLG6hEbBpVnxJh56T3mD0Beng8ro9D4EkcLZGQ1LlA==}
dev: true
/@storybook/cli/7.0.0-beta.60:
resolution: {integrity: sha512-1d/BEa+2GezFNI6xdut4XjDWe6IXffdHFHGCWi/VwThI1zk4V31GbrfEYYkbehLT4S09RSW35W8uqwIH3dTmww==}
/@storybook/cli/7.0.0-rc.1:
resolution: {integrity: sha512-XUIrDqMFDqtOz05laYWtWtDq2m3luFiEb0wJVbfiSBYVni0iQEzQCVzt+wiQYEwyuEkG4D84i19m5MgRAeq6yg==}
hasBin: true
dependencies:
'@babel/core': 7.21.0
'@babel/preset-env': 7.20.2_@babel+core@7.21.0
'@ndelangen/get-tarball': 3.0.7
'@storybook/codemod': 7.0.0-beta.60
'@storybook/core-common': 7.0.0-beta.60
'@storybook/core-server': 7.0.0-beta.60
'@storybook/csf-tools': 7.0.0-beta.60
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/telemetry': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/codemod': 7.0.0-rc.1
'@storybook/core-common': 7.0.0-rc.1
'@storybook/core-server': 7.0.0-rc.1
'@storybook/csf-tools': 7.0.0-rc.1
'@storybook/node-logger': 7.0.0-rc.1
'@storybook/telemetry': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
'@types/semver': 7.3.13
boxen: 5.1.2
chalk: 4.1.2
@ -4362,22 +4368,22 @@ packages:
- utf-8-validate
dev: true
/@storybook/client-logger/7.0.0-beta.60:
resolution: {integrity: sha512-L9aT6KnbIwZ9MuH77YpkIOtf2vTDeDvVe+8jUm59ov5L0XKZ6RTKdyKonAvp+CBuyp2XQS8+E3A/lnezACIzLQ==}
/@storybook/client-logger/7.0.0-rc.1:
resolution: {integrity: sha512-ltdDjd5wwq1xyFmA7Q7PT0Rx4Jrd0u8m0hnjnlou7qjKd7J+tqi8019oC4t5CSWRhl8lDg0QbI11LUM2SmkRMA==}
dependencies:
'@storybook/global': 5.0.0
dev: true
/@storybook/codemod/7.0.0-beta.60:
resolution: {integrity: sha512-LMsgyAnhWLh4lTqdKUY6kP1AJk3YQXNVsExC8XGDS2h3/GKoU4kBhV2C65/zy1BV066q9lLwDxM2ISy6VOYo+g==}
/@storybook/codemod/7.0.0-rc.1:
resolution: {integrity: sha512-JTE4voYG89p+rZsw8ZzHERxG6YfsLqKlHhB3MgPB6FQer1BPQWeC3yu67AmdLocM6hSmQXrFnmnfNBIVnrOm0g==}
dependencies:
'@babel/core': 7.21.0
'@babel/preset-env': 7.20.2_@babel+core@7.21.0
'@babel/types': 7.21.2
'@storybook/csf': 0.0.2-next.10
'@storybook/csf-tools': 7.0.0-beta.60
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/csf-tools': 7.0.0-rc.1
'@storybook/node-logger': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
cross-spawn: 7.0.3
globby: 11.1.0
jscodeshift: 0.14.0_@babel+preset-env@7.20.2
@ -4388,17 +4394,17 @@ packages:
- supports-color
dev: true
/@storybook/components/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-fr8GFB9S84DnPuNQXFPWDb6NI2IhzDeaW3lZr3w+Wx1U2xDRVOhQi/qV+/dgIrR/RLZnQuVRqYwxjS40y09rPw==}
/@storybook/components/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-Y2j7r2OsW0pcYHumzQKn24EYHCriOO7K4a/KQ0Ed+Lr4UlOs4S2FrJiKEg1F1a7xVWAFCMZRJKYMXxCc+xRiIw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/csf': 0.0.2-next.10
'@storybook/global': 5.0.0
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
memoizerific: 1.11.3
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
@ -4406,18 +4412,18 @@ packages:
util-deprecate: 1.0.2
dev: true
/@storybook/core-client/7.0.0-beta.60:
resolution: {integrity: sha512-c4C8g8c8gQ6J1qHR87jQLhj6SOFz+K/H5xheWW0jPbnJApdA8F7KQ6CR4LctdC8R/xi9oo6AtgVyXa6dwpH8Ow==}
/@storybook/core-client/7.0.0-rc.1:
resolution: {integrity: sha512-1m+s5Tw/DVcw6f8kWKkg8/y96neFzvuC6Xwc+J8UAe+gO0WswiyjOoDpQSipclgMAL2HkPdvUv3SlWQeizPmog==}
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/preview-api': 7.0.0-rc.1
dev: true
/@storybook/core-common/7.0.0-beta.60:
resolution: {integrity: sha512-zq1esbHbckwzzwcLUjT0Dvfp8cbpaEWFJDtFJ8cDcR/aYuC+TXDLQmrCN95RfZcZ2He8jPuUSoBaHp89q2QfDw==}
/@storybook/core-common/7.0.0-rc.1:
resolution: {integrity: sha512-nYgbUD2ziq6b29rh1FOu42/VtxWBl9lmfYsaqbuH94bHqvHTsOsv9AsWaZoFmMU4Sg0K4KpW9O6kbJoZgj4j2g==}
dependencies:
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/node-logger': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
'@types/node': 16.18.14
'@types/pretty-hrtime': 1.0.1
chalk: 4.1.2
@ -4440,27 +4446,27 @@ packages:
- supports-color
dev: true
/@storybook/core-events/7.0.0-beta.60:
resolution: {integrity: sha512-DjQAUH88oe7kRac/6fdhgD2xoJUn+przJcfJd1DFKJ+Hgpysmnjg9RTDpqhANWE+MPjengZpJxx4jfWzZDmadw==}
/@storybook/core-events/7.0.0-rc.1:
resolution: {integrity: sha512-kp5p7U8H4X+XnJwzm3S9UM1vOREZ/bziQ34882FevPq7HaAQ5JI7p9gQO50JdTbDoe8gtn8cgfzxSkqO6FlY1w==}
dev: true
/@storybook/core-server/7.0.0-beta.60:
resolution: {integrity: sha512-5Jm+EJOphls36sDsA0ftD/cya6Pz8/vLqpCH7ee3gGrWvGcT3necHsCMyfeTndGj9K2seatphdfBzNRqNXLScg==}
/@storybook/core-server/7.0.0-rc.1:
resolution: {integrity: sha512-2V+U8xouwTjTyrlvw8BRz0oY1pAlSTPBmesC7tGLPeSStG21dDPYy95a4jyTnOmfW2KqmIER4sFKNPID8/BwFA==}
dependencies:
'@aw-web-design/x-default-browser': 1.4.88
'@discoveryjs/json-ext': 0.5.7
'@storybook/builder-manager': 7.0.0-beta.60
'@storybook/core-common': 7.0.0-beta.60
'@storybook/core-events': 7.0.0-beta.60
'@storybook/builder-manager': 7.0.0-rc.1
'@storybook/core-common': 7.0.0-rc.1
'@storybook/core-events': 7.0.0-rc.1
'@storybook/csf': 0.0.2-next.10
'@storybook/csf-tools': 7.0.0-beta.60
'@storybook/csf-tools': 7.0.0-rc.1
'@storybook/docs-mdx': 0.0.1-next.6
'@storybook/global': 5.0.0
'@storybook/manager': 7.0.0-beta.60
'@storybook/node-logger': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/telemetry': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/manager': 7.0.0-rc.1
'@storybook/node-logger': 7.0.0-rc.1
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/telemetry': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
'@types/detect-port': 1.3.2
'@types/node': 16.18.14
'@types/node-fetch': 2.6.2
@ -4497,24 +4503,24 @@ packages:
- utf-8-validate
dev: true
/@storybook/csf-plugin/7.0.0-beta.60:
resolution: {integrity: sha512-OPx2x7Ax151U12qO0lz6mwaYJskd2yqszCHN2BQI5hf047YzwgpT1mIcfCN9EEydPG3vYkFr1qB64yEEGyNjhg==}
/@storybook/csf-plugin/7.0.0-rc.1:
resolution: {integrity: sha512-AqJr1KFz737T9YghcqPbJKhAvGgi0tgxbtvD/PpMAk2l9xdgHMdce+NGM9lsh20Xl3s6nt/gmBkjWVQtiu3pTQ==}
dependencies:
'@storybook/csf-tools': 7.0.0-beta.60
'@storybook/csf-tools': 7.0.0-rc.1
unplugin: 0.10.2
transitivePeerDependencies:
- supports-color
dev: true
/@storybook/csf-tools/7.0.0-beta.60:
resolution: {integrity: sha512-Uw7QtgXPB6QZOLN6PHDwLBHrV/aV1crVl1+rX/qI8SaoDLQfS1Igg1GsnlYT0AlNOSiS7IBByiiIBDo4Tk+WUg==}
/@storybook/csf-tools/7.0.0-rc.1:
resolution: {integrity: sha512-f76OVEwTZFTcstiy390mXRBTwh3dmJ26vpjXKsZivfN2R2atcNNbgrZAzpFbp2uIH9CB/Cv1dLpKNxS9d+zBag==}
dependencies:
'@babel/generator': 7.21.1
'@babel/parser': 7.21.2
'@babel/traverse': 7.21.2
'@babel/types': 7.21.2
'@storybook/csf': 0.0.2-next.10
'@storybook/types': 7.0.0-beta.60
'@storybook/types': 7.0.0-rc.1
fs-extra: 11.1.0
recast: 0.23.1
ts-dedent: 2.2.0
@ -4532,13 +4538,13 @@ packages:
resolution: {integrity: sha512-DjoSIXADmLJtdroXAjUotFiZlcZ2usWhqrS7aeOtZs0DVR0Ws5WQjnwtpDUXt8gryTSd+OZJ0cNsDcqg4JDEvQ==}
dev: true
/@storybook/docs-tools/7.0.0-beta.60:
resolution: {integrity: sha512-MSJbMTTw9PNbw1bjDz4ag8SnRlwTqS4m4LJh2PxXvkofHE1HDwh8FXLCHAI1FIDCJiQY5QpWhIfrj1jYYP9X5g==}
/@storybook/docs-tools/7.0.0-rc.1:
resolution: {integrity: sha512-lzxEYrdkL3TQZk7+1IpIlMicCOxF+2Vnn8vz9m9zQhkx/sqgGuHMzZdukaV6SPkXFqr8PljW+r+qPLLD+PHRwA==}
dependencies:
'@babel/core': 7.21.0
'@storybook/core-common': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/types': 7.0.0-beta.60
'@storybook/core-common': 7.0.0-rc.1
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/types': 7.0.0-rc.1
'@types/doctrine': 0.0.3
doctrine: 3.0.0
lodash: 4.17.21
@ -4550,20 +4556,20 @@ packages:
resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==}
dev: true
/@storybook/manager-api/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-389MDjVFNi1eQZXzorKPFbhJUfGCtaeXoFCwUy0EkpAeh6EknsGsbdSAxvTdBzkonaRPoCwWqPwVPDksOlxk9A==}
/@storybook/manager-api/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-1QB7H7BZeyD5hwqdYcKDm5nYTf3OyWjCL6Ggxbd4OdJHvS9h1Oz6B1cftz8YUqS8hSLGAzsffVMQBdknNj8MQw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@storybook/channels': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/core-events': 7.0.0-beta.60
'@storybook/channels': 7.0.0-rc.1
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/core-events': 7.0.0-rc.1
'@storybook/csf': 0.0.2-next.10
'@storybook/global': 5.0.0
'@storybook/router': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/router': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
dequal: 2.0.3
lodash: 4.17.21
memoizerific: 1.11.3
@ -4575,16 +4581,16 @@ packages:
ts-dedent: 2.2.0
dev: true
/@storybook/manager/7.0.0-beta.60:
resolution: {integrity: sha512-XcAAYnd9oHvkG4ieSiCbNJvqAYNh7zO1LYQ2cx2GdDL+Wr40SaUk6VG1/E8s/ETF4QgI6CvQbbg74VaaO2MbBA==}
/@storybook/manager/7.0.0-rc.1:
resolution: {integrity: sha512-8mchcpaDBZJKMoCfb2+IF6/waOQLR/7Xeish3ff8TAGTE9tD2s+S3s/z3lCiEXnBiYeW1ZEUlK3F2NTNdHfH2Q==}
dev: true
/@storybook/mdx2-csf/1.0.0-next.5:
resolution: {integrity: sha512-02w0sgGZaK1agT050yCVhJ+o4rLHANWvLKWjQjeAsYbjneLC5ITt+3GDB4jRiWwJboZ8dHW1fGSK1Vg5fA34aQ==}
dev: true
/@storybook/node-logger/7.0.0-beta.60:
resolution: {integrity: sha512-8Z9xE9Hy2Tls3ffQo4ldrFQaE/Gt1/26FK7xlxefO5HNWsLlkZsfbGrxlxIHwI8OfwV+YFHXeSm1F1vDv1pzTg==}
/@storybook/node-logger/7.0.0-rc.1:
resolution: {integrity: sha512-I9EnR4JT2ROKx7Aa2nSMoZxwi5kPg21GFCjt6Xo3SHFIzoSaeFNAV0tCZobE5aBOZuNEAwLbwKqvgd7gh19Iig==}
dependencies:
'@types/npmlog': 4.1.4
chalk: 4.1.2
@ -4592,20 +4598,20 @@ packages:
pretty-hrtime: 1.0.3
dev: true
/@storybook/postinstall/7.0.0-beta.60:
resolution: {integrity: sha512-wEcIWZfGsKFH+5x6croXhcoGMLGtG85GWwUbazFQjOpMJHLcZZa1Cqyjee32u6URy2z/ZRhrv6Cyu/h5zqoFzA==}
/@storybook/postinstall/7.0.0-rc.1:
resolution: {integrity: sha512-MdIgQw26uVMd5Z5DrbTsb3ObsRhISc7vpY32dF5bdW0acXZA61bjHp4FG/UlHEJ6sqiWXrA7PSUIGUUR9TOtcQ==}
dev: true
/@storybook/preview-api/7.0.0-beta.60:
resolution: {integrity: sha512-F9Mc9VaPor7RHKfl8yWCCnpjuEv8NMdEpI+DXkmfHBdxB5yjdbjqO8e8UIK+B6vpZ9dIjlaa/3vYOp1KjzMzKw==}
/@storybook/preview-api/7.0.0-rc.1:
resolution: {integrity: sha512-KrXMxCffKsXLsWb8ptXmLcbetZOPLbPpnKU43S1iHnvc5Jp89lrJBpztHZsUnuwGMJ1K5ajdZd+l/kGs75ru6Q==}
dependencies:
'@storybook/channel-postmessage': 7.0.0-beta.60
'@storybook/channels': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/core-events': 7.0.0-beta.60
'@storybook/channel-postmessage': 7.0.0-rc.1
'@storybook/channels': 7.0.0-rc.1
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/core-events': 7.0.0-rc.1
'@storybook/csf': 0.0.2-next.10
'@storybook/global': 5.0.0
'@storybook/types': 7.0.0-beta.60
'@storybook/types': 7.0.0-rc.1
'@types/qs': 6.9.7
dequal: 2.0.3
lodash: 4.17.21
@ -4617,12 +4623,12 @@ packages:
util-deprecate: 1.0.2
dev: true
/@storybook/preview/7.0.0-beta.60:
resolution: {integrity: sha512-FayhaR+MZnsiU5+6j8S7x/2Eg+8sNCcsVMTGnQd+t011VDeq3zyrXVf89kvGkgjF4H8fTvVeLzF62+B8OwB2MQ==}
/@storybook/preview/7.0.0-rc.1:
resolution: {integrity: sha512-y0ebNh8NAuIJGThmgu37POSEeJ547ocJ8HyCmjUMw6GQHsB00pXy5Kr0yM5NMZWqYwO0vrK6VG1pMxsrwyGVBQ==}
dev: true
/@storybook/react-dom-shim/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-LoE8w3VyRfAz5yTuEUIkDUNVHWD/hdi3oGhSpI/apTjckRpzYKBj2RZS4sCWkffqu33bjl5aIftWbfgkRtBsJQ==}
/@storybook/react-dom-shim/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-Vc778SXbtSdJQ0bF78ZUBk0aBj2lyStbAB94+cXq3eZrkp9F3gMEK8Cfgot1kVhz62/Zi/yYxBXaFwWrRlpriQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4631,8 +4637,8 @@ packages:
react-dom: 18.2.0_react@18.2.0
dev: true
/@storybook/react-vite/7.0.0-beta.60_ndsstb2ob2rgr4m75wxvpqsrpi:
resolution: {integrity: sha512-YwSRsYXoGt5/gOk3ypVT/Nuhk72PlYIOZQ9r2ti2zd2ptTTBrFqfQPjPA3XhMQZKCfvnU2NDqXtKJUNtg9g7Dw==}
/@storybook/react-vite/7.0.0-rc.1_ndsstb2ob2rgr4m75wxvpqsrpi:
resolution: {integrity: sha512-2BpQvp86hyIF36f/Xm7TcpNheFCK4VDR+cnuGYaJ/AN52u7jja4otP8UTL3furwhROM8kUIwUw/EjyZnshNZ8Q==}
engines: {node: '>=16'}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4641,8 +4647,8 @@ packages:
dependencies:
'@joshwooding/vite-plugin-react-docgen-typescript': 0.2.1_vwvfc4ezh6jlf6pa67auy3eulu
'@rollup/pluginutils': 4.2.1
'@storybook/builder-vite': 7.0.0-beta.60_vwvfc4ezh6jlf6pa67auy3eulu
'@storybook/react': 7.0.0-beta.60_ygqkwb4gg3aean7xjfdauovyqq
'@storybook/builder-vite': 7.0.0-rc.1_vwvfc4ezh6jlf6pa67auy3eulu
'@storybook/react': 7.0.0-rc.1_ygqkwb4gg3aean7xjfdauovyqq
'@vitejs/plugin-react': 3.1.0_vite@4.1.4
ast-types: 0.14.2
magic-string: 0.27.0
@ -4658,8 +4664,8 @@ packages:
- vite-plugin-glimmerx
dev: true
/@storybook/react/7.0.0-beta.60_ygqkwb4gg3aean7xjfdauovyqq:
resolution: {integrity: sha512-XCbD77Z3MFUhaqwKCEuJuHZjW6LsrUAuMm73hTsyGU+9HxQoN5+6qNwkPOY71FdLx+cBooKxQ9cg8NK5dxYiuw==}
/@storybook/react/7.0.0-rc.1_ygqkwb4gg3aean7xjfdauovyqq:
resolution: {integrity: sha512-4gP74wOpftw229Yu0TYcG4ED8gpQNYYlt3dsGh5pbHfgQVGjCaSt9PKEK86rH2j1AZEwKLrlIdfzLE4SZvBqOw==}
engines: {node: '>=16.0.0'}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -4669,13 +4675,13 @@ packages:
typescript:
optional: true
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/core-client': 7.0.0-beta.60
'@storybook/docs-tools': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/core-client': 7.0.0-rc.1
'@storybook/docs-tools': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/preview-api': 7.0.0-beta.60
'@storybook/react-dom-shim': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-beta.60
'@storybook/preview-api': 7.0.0-rc.1
'@storybook/react-dom-shim': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.0-rc.1
'@types/escodegen': 0.0.6
'@types/estree': 0.0.51
'@types/node': 16.18.14
@ -4697,24 +4703,24 @@ packages:
- supports-color
dev: true
/@storybook/router/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-auPVIz3Dnv69UGurkZ7Hgx0Y3aQ/ebIfOra9efYnrbgUC3Go8gDSnrjbe1kRnySUIDOwnRssqhUwTWDHwENqrA==}
/@storybook/router/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-9bBeBDwRVETJW945WiOP4rD4ahxfoMuX53wKz1dz5mXij2+t7+kAUYXYbvhCNSMQp2JOU3gKBzovQSqtd+pfJw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
memoizerific: 1.11.3
qs: 6.11.0
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: true
/@storybook/telemetry/7.0.0-beta.60:
resolution: {integrity: sha512-eeN0WRyLb5S6BiLSEp6DeuYLwV/ZePBBzyWG0k2UMUzSqqwwkksBq8zIwUUlt5bdp4W5TAauZ0ixxMf/9BLfIw==}
/@storybook/telemetry/7.0.0-rc.1:
resolution: {integrity: sha512-vhi6KHsmTpdplK1IIPkj/umeb6SWcrCMW4AwfISez2uv030Lqm2ngvu2zyDz/ej9uVAxSTzLV/56k0BgKPi8VQ==}
dependencies:
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/core-common': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/core-common': 7.0.0-rc.1
chalk: 4.1.2
detect-package-manager: 2.0.1
fetch-retry: 5.0.4
@ -4727,24 +4733,24 @@ packages:
- supports-color
dev: true
/@storybook/theming/7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-BBaHioOI+eO+D0tUGKkqM+5jd/4yWANy+NIlaIg0dxkF1094amn19ziwH0Bx43NIdkdlpFwFDMdcNvOamTpHbw==}
/@storybook/theming/7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-iWdguodu4HcdOxrG7Fnmqbrxiz/v3XCi7m/bjSd6H7/VMGPecvPe7YjtC0TvblntKglymT5wlhH2YQ5b0W6XwQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0
'@storybook/client-logger': 7.0.0-beta.60
'@storybook/client-logger': 7.0.0-rc.1
'@storybook/global': 5.0.0
memoizerific: 1.11.3
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: true
/@storybook/types/7.0.0-beta.60:
resolution: {integrity: sha512-zzJq1i0/I4Ll8voNZcxCz5dlDl9zd2RhNhqlkBaRAQZIwRnsnT4McYQOlal0THwXfoHo96UkjqJvOR/GpEjkxg==}
/@storybook/types/7.0.0-rc.1:
resolution: {integrity: sha512-wWFGKzXXD04j52iHTE7mxCz0zkJH0J/wh7pSsYAxUgyQaYHIIqLZUb9PLWVWf1v6RiSSa5k0HXhFWnfBOJeVIQ==}
dependencies:
'@storybook/channels': 7.0.0-beta.60
'@storybook/channels': 7.0.0-rc.1
'@types/babel__core': 7.20.0
'@types/express': 4.17.17
file-system-cache: 2.0.2
@ -5786,7 +5792,7 @@ packages:
engines: {node: '>=10'}
dependencies:
delegates: 1.0.0
readable-stream: 3.6.1
readable-stream: 3.6.2
dev: true
/arg/4.1.3:
@ -11120,7 +11126,6 @@ packages:
inherits: 2.0.4
string_decoder: 1.3.0
util-deprecate: 1.0.2
dev: false
/readable-web-to-node-stream/3.0.2:
resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==}
@ -11733,23 +11738,23 @@ packages:
react-dom:
optional: true
dependencies:
'@storybook/addons': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/api': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/components': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-beta.60
'@storybook/addons': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/api': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/components': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.0-rc.1
'@storybook/global': 5.0.0
'@storybook/theming': 7.0.0-beta.60_biqbaboplfbrettd7655fr4n2y
'@storybook/theming': 7.0.0-rc.1_biqbaboplfbrettd7655fr4n2y
fast-deep-equal: 3.1.3
memoizerific: 1.11.3
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: true
/storybook/7.0.0-beta.60:
resolution: {integrity: sha512-TSLlks3cPs3mFPldm/Vj5HrkpAPFou4WEwXfBJtZvh78Um+lRqIAXWKdSO+avbMK529lHvVjM/YaSoNhx1gVGA==}
/storybook/7.0.0-rc.1:
resolution: {integrity: sha512-U2OJ+dWXVgEE6UjF86v7WKU2F1lmz/ctC+d6WtHsVVQr0d9nmKIknqfNPv5srBr6wPUud/cKvVjJWiGSq22h4g==}
hasBin: true
dependencies:
'@storybook/cli': 7.0.0-beta.60
'@storybook/cli': 7.0.0-rc.1
transitivePeerDependencies:
- bufferutil
- encoding
@ -11999,7 +12004,7 @@ packages:
end-of-stream: 1.4.4
fs-constants: 1.0.0
inherits: 2.0.4
readable-stream: 3.6.1
readable-stream: 3.6.2
dev: true
/tar/6.1.13:

View File

@ -0,0 +1,17 @@
import { expect } from '@playwright/test';
import { test } from '../libs/playwright';
test.describe('Debug page broadcast', () => {
test('should broadcast a message to all debug pages', async ({ page }) => {
await page.goto(
'http://localhost:8080/_debug/init-page?type=importMarkdown'
);
await page.waitForSelector('rich-text');
const pageId = await page.evaluate(async () => {
// @ts-ignore
return globalThis.page.id;
});
expect(pageId).toBe('page0');
});
});

View File

@ -5,6 +5,7 @@ import { defineConfig } from 'vitest/config';
export default defineConfig({
plugins: [react()],
assetsInclude: ['**/*.md'],
resolve: {
alias: {
'next/router': 'next-router-mock',