block-std',
+ items: [
+ {
+ text: 'Block Spec',
+ link: 'guide/block-spec',
+ // @ts-expect-error nested items are supported by VitePress at runtime
+ items: [
+ { text: 'Block Schema', link: 'guide/block-schema' },
+ { text: 'Block Service', link: 'guide/block-service' },
+ { text: 'Block View', link: 'guide/block-view' },
+ { text: 'Block Widgets', link: 'guide/block-widgets' },
+ ],
+ },
+ {
+ text: 'Selection',
+ link: 'guide/selection',
+ },
+ { text: 'Event', link: 'guide/event' },
+ { text: 'Command', link: 'guide/command' },
+ ],
+ },
+ {
+ text: 'store',
+ items: [
+ { text: 'Doc', link: 'guide/store#doc' },
+ { text: 'DocCollection', link: 'guide/store#doccollection' },
+ { text: 'Slot', link: 'guide/slot' },
+ { text: 'Adapter', link: 'guide/adapter' },
+ ],
+ },
+ {
+ text: 'inline',
+ link: 'guide/inline',
+ },
+ ],
+ },
+ {
+ text: 'Developing BlockSuite',
+ items: [
+ {
+ text: 'Building Packages',
+ link: '//github.com/toeverything/blocksuite/blob/master/BUILDING.md',
+ },
+ {
+ text: 'Running Tests',
+ link: '//github.com/toeverything/blocksuite/blob/master/BUILDING.md#testing',
+ },
+ ],
+ },
+];
+
+export const reference: DefaultTheme.NavItem[] = [
+ {
+ text: 'API Reference',
+ items: [
+ { text: '@blocksuite/store', link: 'api/@blocksuite/store/index' },
+ {
+ text: '@blocksuite/block-std',
+ link: 'api/@blocksuite/block-std/index',
+ },
+ { text: '@blocksuite/inline', link: 'api/@blocksuite/inline/index' },
+ ],
+ },
+];
+
+export const components: DefaultTheme.NavItem[] = [
+ {
+ text: 'Introduction',
+ items: [{ text: 'Overview', link: 'components/overview' }],
+ },
+ {
+ text: 'Editors',
+ items: [
+ { text: '📝 Page Editor', link: 'components/editors/page-editor' },
+ {
+ text: '🎨 Edgeless Editor',
+ // @ts-expect-error nested items are supported by VitePress at runtime
+ link: 'components/editors/edgeless-editor',
+ items: [
+ {
+ text: 'Data Structure',
+ link: 'components/editors/edgeless-data-structure',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ text: 'Blocks',
+ items: [
+ {
+ text: 'Regular Blocks',
+ items: [
+ { text: 'Root Block', link: 'components/blocks/root-block' },
+ { text: 'Note Block', link: 'components/blocks/note-block' },
+ {
+ text: 'Paragraph Block',
+ link: 'components/blocks/paragraph-block',
+ },
+ { text: 'List Block', link: 'components/blocks/list-block' },
+ { text: 'Code Block', link: 'components/blocks/code-block' },
+ { text: 'Image Block', link: 'components/blocks/image-block' },
+ {
+ text: 'Attachment Block',
+ link: 'components/blocks/attachment-block',
+ },
+ { text: 'Divider Block', link: 'components/blocks/divider-block' },
+ ],
+ },
+ {
+ text: 'Advanced Blocks',
+ items: [
+ { text: 'Surface Block', link: 'components/blocks/surface-block' },
+ {
+ text: 'Database Block',
+ link: 'components/blocks/database-block',
+ },
+ { text: 'Frame Block', link: 'components/blocks/frame-block' },
+ { text: 'Link Blocks', link: 'components/blocks/link-blocks' },
+ { text: 'Embed Blocks', link: 'components/blocks/embed-blocks' },
+ ],
+ },
+ ],
+ },
+ {
+ text: 'Widgets 🚧',
+ items: [
+ { text: 'Slash Menu', link: 'components/widgets/slash-menu' },
+ { text: 'Format Bar', link: 'components/widgets/format-bar' },
+ { text: 'Drag Handle', link: 'components/widgets/drag-handle' },
+ ],
+ },
+ {
+ text: 'Fragments 🚧',
+ items: [
+ { text: 'Doc Title', link: 'components/fragments/doc-title' },
+ { text: 'Outline Panel', link: 'components/fragments/outline-panel' },
+ { text: 'Frame Panel', link: 'components/fragments/frame-panel' },
+ { text: 'Copilot Panel', link: 'components/fragments/copilot-panel' },
+ {
+ text: 'Bi-Directional Link Panel',
+ link: 'components/fragments/bi-directional-link-panel',
+ },
+ ],
+ },
+];
diff --git a/blocksuite/docs-site/.vitepress/theme/components/Icon.vue b/blocksuite/docs-site/.vitepress/theme/components/Icon.vue
new file mode 100644
index 000000000..7daa37369
--- /dev/null
+++ b/blocksuite/docs-site/.vitepress/theme/components/Icon.vue
@@ -0,0 +1,26 @@
+
+
+
+