.dmg file type not supported.
.{ext} file type not supported.
}>
Download
diff --git a/packages/frontend/component/src/components/attachment-viewer/index.tsx b/packages/frontend/component/src/components/attachment-viewer/index.tsx
index 9c61e610fc39d..ba458ad840e40 100644
--- a/packages/frontend/component/src/components/attachment-viewer/index.tsx
+++ b/packages/frontend/component/src/components/attachment-viewer/index.tsx
@@ -1,25 +1,33 @@
-import { type ReactElement, useState } from 'react';
+import { humanFileSize } from '@blocksuite/affine-shared/utils';
+import type { AttachmentBlockModel } from '@blocksuite/blocks';
+import { type ReactElement, useMemo } from 'react';
import { Error } from './error';
import * as styles from './styles.css';
import { Titlebar } from './titlebar';
import { Viewer } from './viewer';
-export const AttachmentViewer = (): ReactElement => {
- const [isPDF] = useState(true);
+export type AttachmentViewerProps = {
+ model: AttachmentBlockModel;
+};
+
+export const AttachmentViewer = ({
+ model,
+}: AttachmentViewerProps): ReactElement => {
+ const attachment = useMemo(() => {
+ const pieces = model.name.split('.');
+ const ext = pieces.pop() || '';
+ const name = pieces.join('.');
+ const isPDF = ext === 'pdf';
+ const filesize = humanFileSize(model.size);
+
+ return { model, name, ext, filesize, isPDF };
+ }, [model]);
return (
-
- {isPDF ? : }
+
+ {attachment.isPDF ? : }
);
};
diff --git a/packages/frontend/component/src/components/attachment-viewer/styles.css.ts b/packages/frontend/component/src/components/attachment-viewer/styles.css.ts
index 1f5a3d5789342..a32a53d735094 100644
--- a/packages/frontend/component/src/components/attachment-viewer/styles.css.ts
+++ b/packages/frontend/component/src/components/attachment-viewer/styles.css.ts
@@ -6,6 +6,7 @@ export const viewerContainer = style({
display: 'flex',
flexDirection: 'column',
width: '100%',
+ height: '100%',
});
export const titlebar = style({
@@ -61,9 +62,6 @@ export const body = style({
backgroundSize: '20px 20px',
backgroundImage: `linear-gradient(${cssVarV2('button/grabber/default')} 1px, transparent 1px), linear-gradient(to right, ${cssVarV2('button/grabber/default')} 1px, transparent 1px)`,
},
- '&.scrollable': {
- overflowY: 'auto',
- },
},
});
diff --git a/packages/frontend/component/src/components/attachment-viewer/titlebar.tsx b/packages/frontend/component/src/components/attachment-viewer/titlebar.tsx
index a2a471ed1c14c..54eb1435bc95d 100644
--- a/packages/frontend/component/src/components/attachment-viewer/titlebar.tsx
+++ b/packages/frontend/component/src/components/attachment-viewer/titlebar.tsx
@@ -1,3 +1,4 @@
+import type { AttachmentBlockModel } from '@blocksuite/blocks';
import {
EditIcon,
LocalDataIcon,
@@ -12,16 +13,6 @@ import { IconButton } from '../../ui/button';
import { Menu, MenuItem } from '../../ui/menu';
import * as styles from './styles.css';
-export interface TitlebarProps {
- id: string;
- name: string;
- ext: string;
- size: number;
- unit: string;
- zoom: number;
- isPDF: boolean;
-}
-
const items = [
{
name: 'Rename',
@@ -42,13 +33,22 @@ export const MenuItems = () =>
));
+export interface TitlebarProps {
+ model: AttachmentBlockModel;
+ name: string;
+ ext: string;
+ filesize: string;
+ isPDF: boolean;
+ zoom?: number;
+}
+
export const Titlebar = ({
+ model: _,
name,
ext,
- size,
- unit,
- isPDF = false,
+ filesize,
zoom = 100,
+ isPDF = false,
}: TitlebarProps) => {
const [openMenu, setOpenMenu] = useState(false);
@@ -57,12 +57,9 @@ export const Titlebar = ({
-
- {size}
- {unit}
+ .{ext}
+
{filesize}
}>
}
diff --git a/packages/frontend/component/src/components/attachment-viewer/utils.ts b/packages/frontend/component/src/components/attachment-viewer/utils.ts
new file mode 100644
index 0000000000000..12a191432d2ad
--- /dev/null
+++ b/packages/frontend/component/src/components/attachment-viewer/utils.ts
@@ -0,0 +1,40 @@
+import { fileTypeFromBuffer } from 'file-type';
+
+async function _saveBufferToFile(url: string, filename: string) {
+ // given input url may not have correct mime type
+ const blob = await attachmentUrlToBlob(url);
+ if (!blob) {
+ return;
+ }
+
+ const blobUrl = URL.createObjectURL(blob);
+ const a = document.createElement('a');
+ a.href = blobUrl;
+ a.download = filename;
+ document.body.append(a);
+ a.click();
+ a.remove();
+ URL.revokeObjectURL(blobUrl);
+}
+
+async function attachmentUrlToBlob(url: string): Promise
{
+ const buffer = await fetch(url).then(response => {
+ return response.arrayBuffer();
+ });
+
+ if (!buffer) {
+ console.warn('Could not get blob');
+ return;
+ }
+ try {
+ const type = await fileTypeFromBuffer(buffer);
+ if (!type) {
+ return;
+ }
+ const blob = new Blob([buffer], { type: type.mime });
+ return blob;
+ } catch (error) {
+ console.error('Error converting attachment to blob', error);
+ }
+ return;
+}
diff --git a/packages/frontend/core/src/desktop/pages/workspace/attachment/index.tsx b/packages/frontend/core/src/desktop/pages/workspace/attachment/index.tsx
index 91ebbb2c15221..ad4af04cce71f 100644
--- a/packages/frontend/core/src/desktop/pages/workspace/attachment/index.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/attachment/index.tsx
@@ -1,22 +1,83 @@
import { AttachmentViewer } from '@affine/component/attachment-viewer';
-import type { ReactElement } from 'react';
+import { type AttachmentBlockModel,matchFlavours } from '@blocksuite/blocks';
+import {
+ type Doc,
+ DocsService,
+ FrameworkScope,
+ useService,
+} from '@toeverything/infra';
+import { type ReactElement, useEffect,useLayoutEffect, useState } from 'react';
+import { useParams } from 'react-router-dom';
import {
- // useIsActiveView,
ViewBody,
ViewHeader,
ViewIcon,
ViewTitle,
} from '../../../../modules/workbench';
+import { PageNotFound } from '../../404';
+
+const useLoadAttachment = (pageId?: string, attachmentId?: string) => {
+ const docsService = useService(DocsService);
+ const [doc, setDoc] = useState(null);
+ const [model, setModel] = useState(null);
+
+ useLayoutEffect(() => {
+ if (!pageId) return;
+
+ const { doc, release } = docsService.open(pageId);
+
+ if (!doc.blockSuiteDoc.ready) {
+ doc.blockSuiteDoc.load();
+ }
+
+ setDoc(doc);
+
+ return () => {
+ release();
+ };
+ }, [docsService, pageId]);
+
+ useEffect(() => {
+ if (!doc) return;
+ if (!attachmentId) return;
+
+ const disposable = doc.blockSuiteDoc.slots.blockUpdated
+ .filter(
+ v =>
+ v.type === 'add' &&
+ v.id === attachmentId &&
+ matchFlavours(v, ['affine:attachment'])
+ )
+ .once(block => {
+ setModel(block.model as AttachmentBlockModel);
+ });
+
+ return () => {
+ disposable.dispose();
+ };
+ }, [doc, attachmentId]);
+
+ return { doc, model };
+};
export const AttachmentPage = (): ReactElement => {
+ const params = useParams();
+ const { doc, model } = useLoadAttachment(params.pageId, params.attachmentId);
+
+ if (!doc || !model) {
+ return ;
+ }
+
return (
<>
-
-
+
+
-
+
+
+
>
);
diff --git a/packages/frontend/core/src/modules/peek-view/entities/peek-view.ts b/packages/frontend/core/src/modules/peek-view/entities/peek-view.ts
index 0f17db7d5b31b..7d7c6d0213b56 100644
--- a/packages/frontend/core/src/modules/peek-view/entities/peek-view.ts
+++ b/packages/frontend/core/src/modules/peek-view/entities/peek-view.ts
@@ -1,5 +1,6 @@
import type { BlockComponent, EditorHost } from '@blocksuite/affine/block-std';
import type {
+ AttachmentBlockModel,
DocMode,
EmbedLinkedDocModel,
EmbedSyncedDocModel,
@@ -44,6 +45,12 @@ export type ImagePeekViewInfo = {
blockIds: [string];
};
+export type AttachmentPeekViewInfo = {
+ type: 'attachment';
+ docId: string;
+ blockIds: [string];
+};
+
export type AIChatBlockPeekViewInfo = {
type: 'ai-chat-block';
docId: string;
@@ -61,6 +68,7 @@ export type ActivePeekView = {
info:
| DocPeekViewInfo
| ImagePeekViewInfo
+ | AttachmentPeekViewInfo
| CustomTemplatePeekViewInfo
| AIChatBlockPeekViewInfo;
};
@@ -83,6 +91,12 @@ const isImageBlockModel = (
return blockModel.flavour === 'affine:image';
};
+const isAttachmentBlockModel = (
+ blockModel: BlockModel
+): blockModel is AttachmentBlockModel => {
+ return blockModel.flavour === 'affine:attachment';
+};
+
const isSurfaceRefModel = (
blockModel: BlockModel
): blockModel is SurfaceRefBlockModel => {
@@ -147,6 +161,12 @@ function resolvePeekInfoFromPeekTarget(
xywh: refModel.xywh,
};
}
+ } else if (isAttachmentBlockModel(blockModel)) {
+ return {
+ type: 'attachment',
+ docId: blockModel.doc.id,
+ blockIds: [blockModel.id],
+ };
} else if (isImageBlockModel(blockModel)) {
return {
type: 'image',
diff --git a/packages/frontend/core/src/modules/peek-view/view/attachment-preview/index.tsx b/packages/frontend/core/src/modules/peek-view/view/attachment-preview/index.tsx
new file mode 100644
index 0000000000000..0cd279a941526
--- /dev/null
+++ b/packages/frontend/core/src/modules/peek-view/view/attachment-preview/index.tsx
@@ -0,0 +1,43 @@
+import { AttachmentViewer } from '@affine/component/attachment-viewer';
+import type { AttachmentBlockModel } from '@blocksuite/blocks';
+import { type PropsWithChildren, Suspense, useMemo } from 'react';
+import { ErrorBoundary,type FallbackProps } from 'react-error-boundary';
+
+import { useEditor } from '../utils';
+
+const ErrorLogger = (props: FallbackProps) => {
+ console.error('image preview modal error', props.error);
+ return null;
+};
+
+export const AttachmentPreviewErrorBoundary = (props: PropsWithChildren) => {
+ return (
+ {props.children}
+ );
+};
+
+export type AttachmentPreviewModalProps = {
+ docId: string;
+ blockId: string;
+};
+
+export const AttachmentPreviewPeekView = ({
+ docId,
+ blockId,
+}: AttachmentPreviewModalProps) => {
+ const { doc } = useEditor(docId);
+ const blocksuiteDoc = doc?.blockSuiteDoc;
+ const model = useMemo(() => {
+ const block = blocksuiteDoc?.getBlock(blockId);
+ if (block?.model) {
+ return block.model as AttachmentBlockModel;
+ }
+ return null;
+ }, [blockId, blocksuiteDoc]);
+
+ return (
+
+ {model ? : null}
+
+ );
+};
diff --git a/packages/frontend/core/src/modules/peek-view/view/peek-view-manager.tsx b/packages/frontend/core/src/modules/peek-view/view/peek-view-manager.tsx
index 5ee69feb7eaf4..b1f6a34d223d9 100644
--- a/packages/frontend/core/src/modules/peek-view/view/peek-view-manager.tsx
+++ b/packages/frontend/core/src/modules/peek-view/view/peek-view-manager.tsx
@@ -6,6 +6,7 @@ import { useEffect, useMemo } from 'react';
import type { ActivePeekView } from '../entities/peek-view';
import { PeekViewService } from '../services/peek-view';
+import { AttachmentPreviewPeekView } from './attachment-preview';
import { DocPeekPreview } from './doc-preview';
import { ImagePreviewPeekView } from './image-preview';
import {
@@ -33,6 +34,15 @@ function renderPeekView({ info }: ActivePeekView) {
);
}
+ if (info.type === 'attachment') {
+ return (
+
+ );
+ }
+
if (info.type === 'image') {
return (
@@ -59,6 +69,8 @@ const renderControls = ({ info }: ActivePeekView) => {
);
}
+ // TODO(@fundon): attachment's controls
+
if (info.type === 'image') {
return null; // image controls are rendered in the image preview
}
diff --git a/yarn.lock b/yarn.lock
index 0a9fb721ffc49..e1f1ff3ed0de0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -341,6 +341,7 @@ __metadata:
"@storybook/react": "npm:^8.2.9"
"@storybook/react-vite": "npm:^8.2.9"
"@testing-library/react": "npm:^16.0.0"
+ "@toeverything/pdf-viewer": "workspace:*"
"@toeverything/theme": "npm:^1.0.11"
"@types/react": "npm:^18.2.75"
"@types/react-dom": "npm:^18.2.24"
@@ -349,6 +350,7 @@ __metadata:
check-password-strength: "npm:^2.0.10"
clsx: "npm:^2.1.0"
dayjs: "npm:^1.11.10"
+ file-type: "npm:^19.1.0"
jotai: "npm:^2.8.0"
lit: "npm:^3.1.2"
lodash-es: "npm:^4.17.21"
@@ -2482,9 +2484,9 @@ __metadata:
languageName: node
linkType: hard
-"@blocksuite/affine-block-embed@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/block-embed::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine-block-embed@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/block-embed::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine-block-embed@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/block-embed::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine-block-embed@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/block-embed::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-block-surface": "workspace:*"
"@blocksuite/affine-components": "workspace:*"
@@ -2505,9 +2507,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/affine-block-list@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/block-list::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine-block-list@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/block-list::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine-block-list@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/block-list::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine-block-list@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/block-list::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-components": "workspace:*"
"@blocksuite/affine-model": "workspace:*"
@@ -2526,9 +2528,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/affine-block-paragraph@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/block-paragraph::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine-block-paragraph@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/block-paragraph::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine-block-paragraph@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/block-paragraph::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine-block-paragraph@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/block-paragraph::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-components": "workspace:*"
"@blocksuite/affine-model": "workspace:*"
@@ -2547,9 +2549,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/affine-block-surface@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/block-surface::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine-block-surface@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/block-surface::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine-block-surface@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/block-surface::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine-block-surface@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/block-surface::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-components": "workspace:*"
"@blocksuite/affine-model": "workspace:*"
@@ -2569,9 +2571,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/affine-components@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/components::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine-components@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/components::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine-components@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/components::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine-components@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/components::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-model": "workspace:*"
"@blocksuite/affine-shared": "workspace:*"
@@ -2593,9 +2595,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/affine-model@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/model::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine-model@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/model::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine-model@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/model::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine-model@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/model::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/block-std": "workspace:*"
"@blocksuite/global": "workspace:*"
@@ -2606,9 +2608,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/affine-shared@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/shared::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine-shared@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/shared::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine-shared@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/shared::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine-shared@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/shared::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-model": "workspace:*"
"@blocksuite/block-std": "workspace:*"
@@ -2627,9 +2629,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/affine-widget-scroll-anchoring@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/widget-scroll-anchoring::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine-widget-scroll-anchoring@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/widget-scroll-anchoring::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine-widget-scroll-anchoring@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/widget-scroll-anchoring::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine-widget-scroll-anchoring@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/widget-scroll-anchoring::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-model": "workspace:*"
"@blocksuite/affine-shared": "workspace:*"
@@ -2641,9 +2643,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/affine@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/all::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/affine@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/all::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/affine@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/all::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/affine@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/all::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/block-std": "workspace:*"
"@blocksuite/blocks": "workspace:*"
@@ -2654,9 +2656,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/block-std@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/block-std::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/block-std@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/block-std::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/block-std@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/block-std::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/block-std@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/block-std::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/global": "workspace:*"
"@blocksuite/inline": "workspace:*"
@@ -2675,9 +2677,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/blocks@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/blocks::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/blocks@portal:/Users/fundon/dev/toeverything/blocksuite/packages/blocks::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/blocks@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/blocks::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/blocks@portal:/Users/fundon/dev/toeverything/blocksuite/packages/blocks::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-block-embed": "workspace:*"
"@blocksuite/affine-block-list": "workspace:*"
@@ -2734,9 +2736,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/data-view@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/data-view::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/data-view@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/data-view::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/data-view@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/affine/data-view::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/data-view@portal:/Users/fundon/dev/toeverything/blocksuite/packages/affine/data-view::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-components": "workspace:*"
"@blocksuite/affine-shared": "workspace:*"
@@ -2755,9 +2757,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/global@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/global::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/global@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/global::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/global@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/global::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/global@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/global::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@preact/signals-core": "npm:^1.8.0"
lib0: "npm:^0.2.97"
@@ -2782,9 +2784,9 @@ __metadata:
languageName: node
linkType: hard
-"@blocksuite/inline@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/inline::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/inline@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/inline::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/inline@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/inline::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/inline@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/inline::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/global": "workspace:*"
"@preact/signals-core": "npm:^1.8.0"
@@ -2795,9 +2797,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/presets@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/presets::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/presets@portal:/Users/fundon/dev/toeverything/blocksuite/packages/presets::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/presets@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/presets::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/presets@portal:/Users/fundon/dev/toeverything/blocksuite/packages/presets::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/affine-block-surface": "workspace:*"
"@blocksuite/affine-model": "workspace:*"
@@ -2816,9 +2818,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/store@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/store::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/store@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/store::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/store@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/store::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/store@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/store::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/global": "workspace:*"
"@blocksuite/inline": "workspace:*"
@@ -2841,9 +2843,9 @@ __metadata:
languageName: node
linkType: soft
-"@blocksuite/sync@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/sync::locator=%40affine%2Fmonorepo%40workspace%3A.":
+"@blocksuite/sync@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/sync::locator=%40affine%2Fmonorepo%40workspace%3A.":
version: 0.0.0-use.local
- resolution: "@blocksuite/sync@portal:/C:/Users/xp/Documents/GitHub/blocksuite/packages/framework/sync::locator=%40affine%2Fmonorepo%40workspace%3A."
+ resolution: "@blocksuite/sync@portal:/Users/fundon/dev/toeverything/blocksuite/packages/framework/sync::locator=%40affine%2Fmonorepo%40workspace%3A."
dependencies:
"@blocksuite/global": "workspace:*"
idb: "npm:^8.0.0"
@@ -13106,6 +13108,27 @@ __metadata:
languageName: unknown
linkType: soft
+"@toeverything/pdf-viewer-types@portal:/Users/fundon/dev/toeverything/pdfium-builder/packages/types::locator=%40affine%2Fmonorepo%40workspace%3A.":
+ version: 0.0.0-use.local
+ resolution: "@toeverything/pdf-viewer-types@portal:/Users/fundon/dev/toeverything/pdfium-builder/packages/types::locator=%40affine%2Fmonorepo%40workspace%3A."
+ languageName: node
+ linkType: soft
+
+"@toeverything/pdf-viewer@portal:/Users/fundon/dev/toeverything/pdfium-builder/packages/pdf-viewer::locator=%40affine%2Fmonorepo%40workspace%3A.":
+ version: 0.0.0-use.local
+ resolution: "@toeverything/pdf-viewer@portal:/Users/fundon/dev/toeverything/pdfium-builder/packages/pdf-viewer::locator=%40affine%2Fmonorepo%40workspace%3A."
+ dependencies:
+ "@toeverything/pdf-viewer-types": "workspace:*"
+ "@toeverything/pdfium": "workspace:*"
+ languageName: node
+ linkType: soft
+
+"@toeverything/pdfium@portal:/Users/fundon/dev/toeverything/pdfium-builder/packages/pdfium::locator=%40affine%2Fmonorepo%40workspace%3A.":
+ version: 0.0.0-use.local
+ resolution: "@toeverything/pdfium@portal:/Users/fundon/dev/toeverything/pdfium-builder/packages/pdfium::locator=%40affine%2Fmonorepo%40workspace%3A."
+ languageName: node
+ linkType: soft
+
"@toeverything/theme@npm:^1.0.11, @toeverything/theme@npm:^1.0.8":
version: 1.0.11
resolution: "@toeverything/theme@npm:1.0.11"