From a17aaa563031a1c9061266ccb7eecc7e76f89f67 Mon Sep 17 00:00:00 2001 From: Yue Wu Date: Tue, 19 Nov 2024 15:53:04 +0800 Subject: [PATCH] feat: support copy as png --- packages/common/env/package.json | 2 +- packages/common/infra/package.json | 2 +- packages/frontend/apps/android/package.json | 4 +- packages/frontend/apps/electron/package.json | 2 +- .../apps/electron/src/main/ui/handlers.ts | 21 +- packages/frontend/apps/ios/package.json | 4 +- packages/frontend/apps/mobile/package.json | 4 +- packages/frontend/component/package.json | 8 +- packages/frontend/core/package.json | 4 +- .../specs/custom/widgets/copy-as-image.ts | 228 +++++++++++ .../specs/custom/widgets/toolbar.ts | 10 +- .../i18n/src/i18n-completenesses.json | 10 +- packages/frontend/i18n/src/resources/en.json | 5 + tools/cli/package.json | 2 +- yarn.lock | 363 +++++++++--------- 15 files changed, 465 insertions(+), 204 deletions(-) create mode 100644 packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/copy-as-image.ts diff --git a/packages/common/env/package.json b/packages/common/env/package.json index c775b61ff6da5..7d411d1778eaa 100644 --- a/packages/common/env/package.json +++ b/packages/common/env/package.json @@ -3,7 +3,7 @@ "private": true, "type": "module", "devDependencies": { - "@blocksuite/affine": "0.18.0", + "@blocksuite/affine": "0.0.0-canary-20241127081342", "vitest": "2.1.4" }, "exports": { diff --git a/packages/common/infra/package.json b/packages/common/infra/package.json index 755cd6d7cf3c1..f3a3fb776e150 100644 --- a/packages/common/infra/package.json +++ b/packages/common/infra/package.json @@ -15,7 +15,7 @@ "@affine/debug": "workspace:*", "@affine/env": "workspace:*", "@affine/templates": "workspace:*", - "@blocksuite/affine": "0.18.0", + "@blocksuite/affine": "0.0.0-canary-20241127081342", "@datastructures-js/binary-search-tree": "^5.3.2", "eventemitter2": "^6.4.9", "foxact": "^0.2.33", diff --git a/packages/frontend/apps/android/package.json b/packages/frontend/apps/android/package.json index 9831aa32f1cdf..54f897cfb9480 100644 --- a/packages/frontend/apps/android/package.json +++ b/packages/frontend/apps/android/package.json @@ -13,8 +13,8 @@ "@affine/component": "workspace:*", "@affine/core": "workspace:*", "@affine/i18n": "workspace:*", - "@blocksuite/affine": "0.18.0", - "@blocksuite/icons": "^2.1.70", + "@blocksuite/affine": "0.0.0-canary-20241127081342", + "@blocksuite/icons": "2.1.71", "@capacitor/android": "^6.1.2", "@capacitor/core": "^6.1.2", "@sentry/react": "^8.0.0", diff --git a/packages/frontend/apps/electron/package.json b/packages/frontend/apps/electron/package.json index 49a014e8c8d61..f581f9d8cf42d 100644 --- a/packages/frontend/apps/electron/package.json +++ b/packages/frontend/apps/electron/package.json @@ -28,7 +28,7 @@ "@affine/core": "workspace:*", "@affine/i18n": "workspace:*", "@affine/native": "workspace:*", - "@blocksuite/affine": "0.18.0", + "@blocksuite/affine": "0.0.0-canary-20241127081342", "@electron-forge/cli": "^7.3.0", "@electron-forge/core": "^7.3.0", "@electron-forge/core-utils": "^7.3.0", diff --git a/packages/frontend/apps/electron/src/main/ui/handlers.ts b/packages/frontend/apps/electron/src/main/ui/handlers.ts index eab7085c2e19b..8ca0131d7fd66 100644 --- a/packages/frontend/apps/electron/src/main/ui/handlers.ts +++ b/packages/frontend/apps/electron/src/main/ui/handlers.ts @@ -1,4 +1,4 @@ -import { app, nativeTheme, shell } from 'electron'; +import { app, clipboard, nativeImage, nativeTheme, shell } from 'electron'; import { getLinkPreview } from 'link-preview-js'; import { isMacOS } from '../../shared/utils'; @@ -232,4 +232,23 @@ export const uiHandlers = { e.sender.session.setSpellCheckerLanguages([language, 'en-US']); } }, + captureArea: async (e, { x, y, width, height }: Electron.Rectangle) => { + const image = await e.sender.capturePage({ + x: Math.floor(x), + y: Math.floor(y), + width: Math.floor(width), + height: Math.floor(height), + }); + + if (image.isEmpty()) { + throw new Error('Image is empty or invalid'); + } + + const buffer = image.toPNG(); + if (!buffer || !buffer.length) { + throw new Error('Failed to generate PNG buffer from image'); + } + + clipboard.writeImage(nativeImage.createFromBuffer(buffer)); + }, } satisfies NamespaceHandlers; diff --git a/packages/frontend/apps/ios/package.json b/packages/frontend/apps/ios/package.json index 40fd1a0ff57f4..ea085b84bec9a 100644 --- a/packages/frontend/apps/ios/package.json +++ b/packages/frontend/apps/ios/package.json @@ -15,8 +15,8 @@ "@affine/component": "workspace:*", "@affine/core": "workspace:*", "@affine/i18n": "workspace:*", - "@blocksuite/affine": "0.18.0", - "@blocksuite/icons": "^2.1.70", + "@blocksuite/affine": "0.0.0-canary-20241127081342", + "@blocksuite/icons": "2.1.71", "@capacitor/app": "^6.0.1", "@capacitor/browser": "^6.0.3", "@capacitor/core": "^6.1.2", diff --git a/packages/frontend/apps/mobile/package.json b/packages/frontend/apps/mobile/package.json index 3e6ace32ef9af..e9ff10d34a1ea 100644 --- a/packages/frontend/apps/mobile/package.json +++ b/packages/frontend/apps/mobile/package.json @@ -13,8 +13,8 @@ "@affine/component": "workspace:*", "@affine/core": "workspace:*", "@affine/i18n": "workspace:*", - "@blocksuite/affine": "0.18.0", - "@blocksuite/icons": "^2.1.70", + "@blocksuite/affine": "0.0.0-canary-20241127081342", + "@blocksuite/icons": "2.1.71", "@sentry/react": "^8.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/packages/frontend/component/package.json b/packages/frontend/component/package.json index c97270291e78c..31d5ca93ead98 100644 --- a/packages/frontend/component/package.json +++ b/packages/frontend/component/package.json @@ -14,7 +14,7 @@ }, "peerDependencies": { "@blocksuite/affine": "*", - "@blocksuite/icons": "2.1.68" + "@blocksuite/icons": "2.1.71" }, "dependencies": { "@affine/cli": "workspace:*", @@ -24,7 +24,7 @@ "@affine/i18n": "workspace:*", "@atlaskit/pragmatic-drag-and-drop": "^1.2.1", "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3", - "@blocksuite/icons": "2.1.70", + "@blocksuite/icons": "2.1.71", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", "@radix-ui/react-avatar": "^1.0.4", @@ -63,8 +63,8 @@ "zod": "^3.22.4" }, "devDependencies": { - "@blocksuite/affine": "0.18.0", - "@blocksuite/icons": "2.1.70", + "@blocksuite/affine": "0.0.0-canary-20241127081342", + "@blocksuite/icons": "2.1.71", "@chromatic-com/storybook": "^3.0.0", "@storybook/addon-essentials": "^8.2.9", "@storybook/addon-interactions": "^8.2.9", diff --git a/packages/frontend/core/package.json b/packages/frontend/core/package.json index 91b0edb8bb387..589510cf2e780 100644 --- a/packages/frontend/core/package.json +++ b/packages/frontend/core/package.json @@ -16,8 +16,8 @@ "@affine/i18n": "workspace:*", "@affine/templates": "workspace:*", "@affine/track": "workspace:*", - "@blocksuite/affine": "0.18.0", - "@blocksuite/icons": "2.1.70", + "@blocksuite/affine": "0.0.0-canary-20241127081342", + "@blocksuite/icons": "2.1.71", "@capacitor/app": "^6.0.1", "@capacitor/browser": "^6.0.3", "@dnd-kit/core": "^6.1.0", diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/copy-as-image.ts b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/copy-as-image.ts new file mode 100644 index 0000000000000..603335ee6dbd0 --- /dev/null +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/copy-as-image.ts @@ -0,0 +1,228 @@ +import { notify } from '@affine/component'; +import { + isMindmapChild, + isMindMapRoot, +} from '@affine/core/blocksuite/presets/ai/utils/edgeless'; +import { EditorService } from '@affine/core/modules/editor'; +import { apis } from '@affine/electron-api'; +import { I18n } from '@affine/i18n'; +import type { BlockStdScope } from '@blocksuite/affine/block-std'; +import { + type GfxBlockElementModel, + type GfxModel, + GfxPrimitiveElementModel, + isGfxGroupCompatibleModel, +} from '@blocksuite/affine/block-std/gfx'; +import type { + EdgelessRootService, + MenuContext, +} from '@blocksuite/affine/blocks'; +import { Bound, getCommonBound } from '@blocksuite/affine/global/utils'; +import { CopyAsImgaeIcon } from '@blocksuite/icons/lit'; +import type { FrameworkProvider } from '@toeverything/infra'; + +const snapshotStyle = ` + edgeless-selected-rect, + edgeless-element-toolbar-widget, + affine-drag-handle-widget, + edgeless-toolbar-widget, + .copy-as-image-transparent { + opacity: 0; + } + .edgeless-background { + background-image: none; + } +`; + +function getSelectedRect() { + const selected = document + .querySelector('edgeless-selected-rect') + ?.shadowRoot?.querySelector('.affine-edgeless-selected-rect'); + if (!selected) { + throw new Error('Missing edgeless selected rect'); + } + return selected.getBoundingClientRect(); +} + +function expandBound(bound: Bound, margin: number) { + const x = bound.x - margin; + const y = bound.y - margin; + const w = bound.w + margin * 2; + const h = bound.h + margin * 2; + return new Bound(x, y, w, h); +} + +function isOverlap(target: Bound, source: Bound) { + const { x, y, w, h } = source; + const left = target.x; + const top = target.y; + const right = target.x + target.w; + const bottom = target.y + target.h; + + return x < right && y < bottom && x + w > left && y + h > top; +} + +function isInside(target: Bound, source: Bound) { + const { x, y, w, h } = source; + const left = target.x; + const top = target.y; + const right = target.x + target.w; + const bottom = target.y + target.h; + + return x >= left && y >= top && x + w <= right && y + h <= bottom; +} + +function hideEdgelessElements(elements: GfxModel[], std: BlockStdScope) { + elements.forEach(ele => { + if (ele instanceof GfxPrimitiveElementModel) { + (ele as any).lastOpacity = ele.opacity; + ele.opacity = 0; + } else { + const block = std.view.getBlock(ele.id); + if (!block) return; + block.classList.add('copy-as-image-transparent'); + } + }); +} + +function showEdgelessElements(elements: GfxModel[], std: BlockStdScope) { + elements.forEach(ele => { + if (ele instanceof GfxPrimitiveElementModel) { + ele.opacity = (ele as any).lastOpacity; + delete (ele as any).lastOpacity; + } else { + const block = std.view.getBlock(ele.id); + if (!block) return; + block.classList.remove('copy-as-image-transparent'); + } + }); +} + +function withDescendantElements(elements: GfxModel[]) { + const set = new Set(); + elements.forEach(element => { + if (set.has(element)) return; + set.add(element); + if (isGfxGroupCompatibleModel(element)) { + element.descendantElements.map(descendant => set.add(descendant)); + } + }); + return [...set]; +} + +const MARGIN = 20; + +export function createCopyAsPngMenuItem(framework: FrameworkProvider) { + return { + icon: CopyAsImgaeIcon({ width: '20', height: '20' }), + label: 'Copy as Image', + type: 'copy-as-image', + when: (ctx: MenuContext) => { + if (ctx.isEmpty()) return false; + const { editor } = framework.get(EditorService); + const mode = editor.mode$.value; + return mode === 'edgeless'; + }, + action: async (ctx: MenuContext) => { + if (!apis) { + notify.error({ + title: I18n.t('com.affine.copy.asImage.notAvailable.title'), + message: I18n.t('com.affine.copy.asImage.notAvailable.message'), + action: { + label: I18n.t('com.affine.copy.asImage.notAvailable.action'), + onClick: () => { + window.open('https://affine.pro/download'); + }, + }, + }); + return; + } + + const service = + ctx.host.std.getService('affine:page'); + if (!service) return; + + let selected = service.selection.selectedElements; + // select mindmap if root node selected + const maybeMindmap = selected[0]; + const mindmapId = maybeMindmap.group?.id; + if ( + selected.length === 1 && + mindmapId && + (isMindMapRoot(maybeMindmap) || isMindmapChild(maybeMindmap)) + ) { + service.gfx.selection.set({ elements: [mindmapId] }); + } + + // select bound + selected = service.selection.selectedElements; + const elements = withDescendantElements(selected); + const bounds = elements.map(element => Bound.deserialize(element.xywh)); + const bound = getCommonBound(bounds); + if (!bound) return; + const { zoom } = service.viewport; + const exBound = expandBound(bound, MARGIN * zoom); + + // hide unselected overlap elements + const overlapElements = service.gfx.gfxElements.filter(ele => { + const eleBound = Bound.deserialize(ele.xywh); + const exEleBound = expandBound(eleBound, MARGIN * zoom); + const isSelected = elements.includes(ele); + return !isSelected && isOverlap(exBound, exEleBound); + }); + hideEdgelessElements(overlapElements, ctx.host.std); + + // fit to screen + if ( + !isInside(service.viewport.viewportBounds, exBound) || + service.viewport.zoom < 1 + ) { + service.viewport.setViewportByBound(bound, [20, 20, 20, 20], false); + if (service.viewport.zoom > 1) { + service.viewport.setZoom(1); + } + } + + // add css style + const styleEle = document.createElement('style'); + styleEle.innerHTML = snapshotStyle; + document.head.append(styleEle); + + // capture image + setTimeout(() => { + if (!apis) return; + const domRect = getSelectedRect(); + const { zoom } = service.viewport; + const isFrameSelected = + selected.length === 1 && + (selected[0] as GfxBlockElementModel).flavour === 'affine:frame'; + const margin = isFrameSelected ? -2 : MARGIN * zoom; + + service.selection.clear(); + // eslint-disable-next-line @typescript-eslint/no-floating-promises + apis.ui + .captureArea({ + x: domRect.left - margin, + y: domRect.top - margin, + width: domRect.width + margin * 2, + height: domRect.height + margin * 2, + }) + .then(() => { + notify.success({ + title: I18n.t('com.affine.copy.asImage.success'), + }); + }) + .catch(e => { + notify.error({ + title: I18n.t('com.affine.copy.asImage.failed'), + message: String(e), + }); + }) + .finally(() => { + styleEle.remove(); + showEdgelessElements(overlapElements, ctx.host.std); + }); + }, 100); + }, + }; +} diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/toolbar.ts b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/toolbar.ts index c1e9da62ce965..610c98cb385db 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/toolbar.ts +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/toolbar.ts @@ -12,11 +12,13 @@ import type { GfxBlockElementModel, GfxPrimitiveElementModel, } from '@blocksuite/affine/block-std/gfx'; -import type { MenuContext } from '@blocksuite/affine/blocks'; +import { type MenuContext } from '@blocksuite/affine/blocks'; import type { MenuItemGroup } from '@blocksuite/affine-components/toolbar'; import { LinkIcon } from '@blocksuite/icons/lit'; import type { FrameworkProvider } from '@toeverything/infra'; +import { createCopyAsPngMenuItem } from './copy-as-image'; + export function createToolbarMoreMenuConfig(framework: FrameworkProvider) { return { configure: (groups: MenuItemGroup[]) => { @@ -41,6 +43,12 @@ export function createToolbarMoreMenuConfig(framework: FrameworkProvider) { 0, createCopyLinkToBlockMenuItem(framework) ); + + clipboardGroup.items.splice( + copyIndex + 1, + 0, + createCopyAsPngMenuItem(framework) + ); } return groups; diff --git a/packages/frontend/i18n/src/i18n-completenesses.json b/packages/frontend/i18n/src/i18n-completenesses.json index 47ed394c98389..28bb1fb5c13b7 100644 --- a/packages/frontend/i18n/src/i18n-completenesses.json +++ b/packages/frontend/i18n/src/i18n-completenesses.json @@ -5,20 +5,20 @@ "de": 28, "el-GR": 0, "en": 100, - "es-AR": 14, + "es-AR": 13, "es-CL": 15, "es": 13, - "fr": 67, + "fr": 66, "hi": 2, "it-IT": 1, "it": 1, - "ja": 100, + "ja": 99, "ko": 79, "pl": 0, - "pt-BR": 86, + "pt-BR": 85, "ru": 73, "sv-SE": 4, "ur": 3, "zh-Hans": 100, - "zh-Hant": 100 + "zh-Hant": 99 } \ No newline at end of file diff --git a/packages/frontend/i18n/src/resources/en.json b/packages/frontend/i18n/src/resources/en.json index 5a59d5051e3ce..ddd9159043a8f 100644 --- a/packages/frontend/i18n/src/resources/en.json +++ b/packages/frontend/i18n/src/resources/en.json @@ -397,6 +397,11 @@ "com.affine.collections.empty.message": "No collections", "com.affine.collections.empty.new-collection-button": "New collection", "com.affine.collections.header": "Collections", + "com.affine.copy.asImage.notAvailable.title": "Could’t copy image", + "com.affine.copy.asImage.notAvailable.message": "The 'Copy as image' feature is only available on our desktop app. Please download and install the client to access this feature.", + "com.affine.copy.asImage.notAvailable.action": "Download Client", + "com.affine.copy.asImage.success": "Image copied", + "com.affine.copy.asImage.failed": "Image copy failed", "com.affine.confirmModal.button.cancel": "Cancel", "com.affine.currentYear": "Current year", "com.affine.delete-tags.confirm.description": "Deleting <1>{{tag}} cannot be undone, please proceed with caution.", diff --git a/tools/cli/package.json b/tools/cli/package.json index f90b8710aaf2c..e2f4057b6b98f 100644 --- a/tools/cli/package.json +++ b/tools/cli/package.json @@ -6,7 +6,7 @@ "@affine/env": "workspace:*", "@affine/templates": "workspace:*", "@aws-sdk/client-s3": "^3.620.0", - "@blocksuite/affine": "0.18.0", + "@blocksuite/affine": "0.0.0-canary-20241127081342", "@clack/core": "^0.3.4", "@clack/prompts": "^0.7.0", "@magic-works/i18n-codegen": "^0.6.0", diff --git a/yarn.lock b/yarn.lock index 4add4fcb80f29..eb73eb086de9c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -213,8 +213,8 @@ __metadata: "@affine/component": "workspace:*" "@affine/core": "workspace:*" "@affine/i18n": "workspace:*" - "@blocksuite/affine": "npm:0.18.0" - "@blocksuite/icons": "npm:^2.1.70" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" + "@blocksuite/icons": "npm:2.1.71" "@capacitor/android": "npm:^6.1.2" "@capacitor/cli": "npm:^6.1.2" "@capacitor/core": "npm:^6.1.2" @@ -260,7 +260,7 @@ __metadata: "@affine/env": "workspace:*" "@affine/templates": "workspace:*" "@aws-sdk/client-s3": "npm:^3.620.0" - "@blocksuite/affine": "npm:0.18.0" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" "@clack/core": "npm:^0.3.4" "@clack/prompts": "npm:^0.7.0" "@magic-works/i18n-codegen": "npm:^0.6.0" @@ -317,8 +317,8 @@ __metadata: "@affine/i18n": "workspace:*" "@atlaskit/pragmatic-drag-and-drop": "npm:^1.2.1" "@atlaskit/pragmatic-drag-and-drop-hitbox": "npm:^1.0.3" - "@blocksuite/affine": "npm:0.18.0" - "@blocksuite/icons": "npm:2.1.70" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" + "@blocksuite/icons": "npm:2.1.71" "@chromatic-com/storybook": "npm:^3.0.0" "@emotion/react": "npm:^11.11.4" "@emotion/styled": "npm:^11.11.5" @@ -373,7 +373,7 @@ __metadata: zod: "npm:^3.22.4" peerDependencies: "@blocksuite/affine": "*" - "@blocksuite/icons": 2.1.68 + "@blocksuite/icons": 2.1.71 languageName: unknown linkType: soft @@ -400,8 +400,8 @@ __metadata: "@affine/i18n": "workspace:*" "@affine/templates": "workspace:*" "@affine/track": "workspace:*" - "@blocksuite/affine": "npm:0.18.0" - "@blocksuite/icons": "npm:2.1.70" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" + "@blocksuite/icons": "npm:2.1.71" "@capacitor/app": "npm:^6.0.1" "@capacitor/browser": "npm:^6.0.3" "@dnd-kit/core": "npm:^6.1.0" @@ -509,7 +509,7 @@ __metadata: "@affine/core": "workspace:*" "@affine/i18n": "workspace:*" "@affine/native": "workspace:*" - "@blocksuite/affine": "npm:0.18.0" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" "@electron-forge/cli": "npm:^7.3.0" "@electron-forge/core": "npm:^7.3.0" "@electron-forge/core-utils": "npm:^7.3.0" @@ -563,7 +563,7 @@ __metadata: version: 0.0.0-use.local resolution: "@affine/env@workspace:packages/common/env" dependencies: - "@blocksuite/affine": "npm:0.18.0" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" vitest: "npm:2.1.4" zod: "npm:^3.22.4" peerDependencies: @@ -612,8 +612,8 @@ __metadata: "@affine/component": "workspace:*" "@affine/core": "workspace:*" "@affine/i18n": "workspace:*" - "@blocksuite/affine": "npm:0.18.0" - "@blocksuite/icons": "npm:^2.1.70" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" + "@blocksuite/icons": "npm:2.1.71" "@capacitor/app": "npm:^6.0.1" "@capacitor/browser": "npm:^6.0.3" "@capacitor/cli": "npm:^6.1.2" @@ -638,8 +638,8 @@ __metadata: "@affine/component": "workspace:*" "@affine/core": "workspace:*" "@affine/i18n": "workspace:*" - "@blocksuite/affine": "npm:0.18.0" - "@blocksuite/icons": "npm:^2.1.70" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" + "@blocksuite/icons": "npm:2.1.71" "@sentry/react": "npm:^8.0.0" "@types/react": "npm:^18.2.75" "@types/react-dom": "npm:^18.2.24" @@ -2524,19 +2524,19 @@ __metadata: languageName: node linkType: hard -"@blocksuite/affine-block-embed@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine-block-embed@npm:0.18.0" - dependencies: - "@blocksuite/affine-block-surface": "npm:0.18.0" - "@blocksuite/affine-components": "npm:0.18.0" - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" +"@blocksuite/affine-block-embed@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine-block-embed@npm:0.0.0-canary-20241127081342" + dependencies: + "@blocksuite/affine-block-surface": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-components": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" "@blocksuite/icons": "npm:^2.1.70" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@floating-ui/dom": "npm:^1.6.10" "@lit/context": "npm:^1.1.2" "@preact/signals-core": "npm:^1.8.0" @@ -2544,21 +2544,21 @@ __metadata: lit: "npm:^3.2.0" minimatch: "npm:^10.0.1" zod: "npm:^3.23.8" - checksum: 10/b46c6f59c52f86a615498a73dbc183aab73cc8f1c771bf2b24bd5b1768765bacd07428c66d675be1f6629fc5026ae15bc75a35586724dc3241f57aac5c636990 + checksum: 10/b5c3437fb6b18fc322d96ec0ff8e164c39696f252ed99903a3fe7f57e4959b742e8f3d68c49b9c5ca6040d50ddae1306b28b6a6fea7ec17d5cdd088846d0a56f languageName: node linkType: hard -"@blocksuite/affine-block-list@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine-block-list@npm:0.18.0" - dependencies: - "@blocksuite/affine-components": "npm:0.18.0" - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" +"@blocksuite/affine-block-list@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine-block-list@npm:0.0.0-canary-20241127081342" + dependencies: + "@blocksuite/affine-components": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@floating-ui/dom": "npm:^1.6.10" "@lit/context": "npm:^1.1.2" "@preact/signals-core": "npm:^1.8.0" @@ -2566,21 +2566,21 @@ __metadata: lit: "npm:^3.2.0" minimatch: "npm:^10.0.1" zod: "npm:^3.23.8" - checksum: 10/bbcf28e6da235735c61857b49e5f360a4ee0046ab6b5ceae62abac7c073cf118256c49cdcafb5ac9a3acea31fde8d4e115f7dba9b5e58aa2745ff1cb6e27224c + checksum: 10/609f733afdfbb0f30d1d7a0067a7bc9c75bfe46a24922220c17945e1bd4091c59397f43fdd1d3b6081dcbc5a34436a96d99399f023ca9888ae24b7309493f2ba languageName: node linkType: hard -"@blocksuite/affine-block-paragraph@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine-block-paragraph@npm:0.18.0" - dependencies: - "@blocksuite/affine-components": "npm:0.18.0" - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" +"@blocksuite/affine-block-paragraph@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine-block-paragraph@npm:0.0.0-canary-20241127081342" + dependencies: + "@blocksuite/affine-components": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@floating-ui/dom": "npm:^1.6.10" "@lit/context": "npm:^1.1.2" "@preact/signals-core": "npm:^1.8.0" @@ -2588,21 +2588,21 @@ __metadata: lit: "npm:^3.2.0" minimatch: "npm:^10.0.1" zod: "npm:^3.23.8" - checksum: 10/b45d22337f26236b089d3180aedf3643a68e1c1afee850d08000705d5d6796a67692d95fb3b52310d8976cb82cb99cbe397717241bb27f44e69959bcc0bae1e8 + checksum: 10/e36b87d269f8a6fa18cf484a79ec8ae88b8020463643c4e9c522486029a5eb3ba3b9d04c079aad9de369580d326f0c68f239ebe90899b143cf27f1838b094f3c languageName: node linkType: hard -"@blocksuite/affine-block-surface@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine-block-surface@npm:0.18.0" - dependencies: - "@blocksuite/affine-components": "npm:0.18.0" - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" +"@blocksuite/affine-block-surface@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine-block-surface@npm:0.0.0-canary-20241127081342" + dependencies: + "@blocksuite/affine-components": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@lit/context": "npm:^1.1.2" "@preact/signals-core": "npm:^1.8.0" "@toeverything/theme": "npm:^1.0.19" @@ -2611,21 +2611,21 @@ __metadata: lodash.chunk: "npm:^4.2.0" nanoid: "npm:^5.0.7" zod: "npm:^3.23.8" - checksum: 10/ec7d41ae64b13ad8f7423bd7f96ab734c2cb479d35ec9fee465068cc14d9d98d5c44671cfe039138ec150267cf37368a8cfb9a6f64fe06e46401bee017dfe0e5 + checksum: 10/b5a03d5f2501f3a75d3872fb96dd8c93c07f50ef897e7314496b556dbc0f7f18c755d607636db066b05280bc771146392223bf5ddc11eaba5573d453fc5d3f2e languageName: node linkType: hard -"@blocksuite/affine-components@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine-components@npm:0.18.0" +"@blocksuite/affine-components@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine-components@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" "@blocksuite/icons": "npm:^2.1.70" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@floating-ui/dom": "npm:^1.6.10" "@lit/context": "npm:^1.1.2" "@lottiefiles/dotlottie-wc": "npm:^0.2.16" @@ -2638,33 +2638,33 @@ __metadata: lodash.clonedeep: "npm:^4.5.0" shiki: "npm:^1.12.0" zod: "npm:^3.23.8" - checksum: 10/adcd514573254ce163ce49d0c62269a5c43575f279b4b62b712c6ae30b0973f0fee4d7310ddbff58700529d59c20b0d257f72e1b7329ee4d009af680767c01ea + checksum: 10/82e12187b5aa557a78b371de6f261e8320bdcdd9e0a09220217efa711ee18c0f74adeba9e0175f37d413891dd6b2089ca6682975f33adce23add15e031d5c5a0 languageName: node linkType: hard -"@blocksuite/affine-model@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine-model@npm:0.18.0" +"@blocksuite/affine-model@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine-model@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" fractional-indexing: "npm:^3.2.0" zod: "npm:^3.23.8" - checksum: 10/6f607753b4609e9436e0740386308b2ec36c0dc114d9a2feb48155c1d23ecfff4d8452792f4b4ac8c77997f3b13d8984e6db5f8123ae6e16003a439f556e8431 + checksum: 10/d55e9d9c81e55b255dae792294b75d0a278e96479f1f54193b39a7d211c2ac19f3dc5a7598365f5223588c48ee7680e1054de594720bf7c84d8b2a83fb7ac48e languageName: node linkType: hard -"@blocksuite/affine-shared@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine-shared@npm:0.18.0" +"@blocksuite/affine-shared@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine-shared@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@floating-ui/dom": "npm:^1.6.10" "@lit/context": "npm:^1.1.2" "@preact/signals-core": "npm:^1.8.0" @@ -2674,46 +2674,46 @@ __metadata: lodash.mergewith: "npm:^4.6.2" minimatch: "npm:^10.0.1" zod: "npm:^3.23.8" - checksum: 10/8e89b78d6bad1a3e29b8dcca3de6cfbc7c069a7522df9a3027eca3ba4369694ae9c8002d6daabe6258b143937e89b90e8c7c0e4bbdd2cbed4a0f0972fb0667f3 + checksum: 10/a4e503d969c6b5b26523bf2ce8d0a42ee1bf6fc84c69a5a1e9a053995fe391170116e5dad12950b9ee25e20c6470cef9bd08329f3c95f458d4a2498904413eb8 languageName: node linkType: hard -"@blocksuite/affine-widget-scroll-anchoring@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine-widget-scroll-anchoring@npm:0.18.0" +"@blocksuite/affine-widget-scroll-anchoring@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine-widget-scroll-anchoring@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" "@preact/signals-core": "npm:^1.8.0" "@toeverything/theme": "npm:^1.0.19" lit: "npm:^3.2.0" - checksum: 10/b098d837eff42ba3633c28ed95ad0eedd5cb07dad16ed8c2cb416086f796973990f4d3111205e356f53357008f034732a59123df8f0a694e69e066c663849200 + checksum: 10/370b2956df7f1a05bbff39da049556ed2843ed9c7bdec96e2ca34c94a75e34996f07d6c7c3d60a9762521dec6eeded95c0cd68bd217fa4154169fb22c57c2a2c languageName: node linkType: hard -"@blocksuite/affine@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/affine@npm:0.18.0" +"@blocksuite/affine@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/affine@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/blocks": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/presets": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" - checksum: 10/bd6ef74ba998754abaf502e4e53e3e21041a165f9dad8a204269f19128da890329c3bddca48fa2f959791d23dd2ede53f4f1814542a97f7d3313c381b27c72f5 + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/blocks": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/presets": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" + checksum: 10/90ac27f43d93b04dcd42db5db5b9b184ed3752f8aa3fbbc023b3fe2f789f0874182769fe0407adf90d5160f6e5608dd898609654a09ed0e52044228768b6900e languageName: node linkType: hard -"@blocksuite/block-std@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/block-std@npm:0.18.0" +"@blocksuite/block-std@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/block-std@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@lit/context": "npm:^1.1.2" "@preact/signals-core": "npm:^1.8.0" "@types/hast": "npm:^3.0.4" @@ -2725,28 +2725,28 @@ __metadata: unified: "npm:^11.0.5" w3c-keyname: "npm:^2.2.8" zod: "npm:^3.23.8" - checksum: 10/a3eadd461bdd8417dda1489dd84298084e8a5e2f81fd1ed147985891867945bc828d6df65a7f7b92ddd2406434a995a8b5b659a7354654d86ae20b684ae42acb + checksum: 10/137dd705ef3a19db6a74f40d59c9339ba13882cb928654ebe8c656e9e5674a9e74972ba38ae58d3ca0f9975e65df022e90b85875dbfdf6b80188c91a8ed67aa3 languageName: node linkType: hard -"@blocksuite/blocks@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/blocks@npm:0.18.0" - dependencies: - "@blocksuite/affine-block-embed": "npm:0.18.0" - "@blocksuite/affine-block-list": "npm:0.18.0" - "@blocksuite/affine-block-paragraph": "npm:0.18.0" - "@blocksuite/affine-block-surface": "npm:0.18.0" - "@blocksuite/affine-components": "npm:0.18.0" - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/affine-widget-scroll-anchoring": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/data-view": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" +"@blocksuite/blocks@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/blocks@npm:0.0.0-canary-20241127081342" + dependencies: + "@blocksuite/affine-block-embed": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-block-list": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-block-paragraph": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-block-surface": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-components": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-widget-scroll-anchoring": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/data-view": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" "@blocksuite/icons": "npm:^2.1.70" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@floating-ui/dom": "npm:^1.6.10" "@lit/context": "npm:^1.1.2" "@preact/signals-core": "npm:^1.8.0" @@ -2762,6 +2762,7 @@ __metadata: html2canvas: "npm:^1.4.1" katex: "npm:^0.16.11" lit: "npm:^3.2.0" + lz-string: "npm:^1.5.0" mdast-util-gfm-autolink-literal: "npm:^2.0.1" mdast-util-gfm-strikethrough: "npm:^2.0.0" mdast-util-gfm-table: "npm:^2.0.0" @@ -2783,20 +2784,20 @@ __metadata: simple-xml-to-json: "npm:^1.2.2" unified: "npm:^11.0.5" zod: "npm:^3.23.8" - checksum: 10/42167bf16f754673c171829d25112bb489093f19c809b8b3860cfcf98d4dc40f1f1500d8c23bcae1366672de1088858b889b5bec18a24e8dc63e13916a7b56c2 + checksum: 10/14be62afb31ea99244700d1d0d4df486e6e4d577a8447a01b35a1aba6cf13db23ac5bb8910a2882504bd32578bba5f6b93de74468c495b8f5aeae7630552418c languageName: node linkType: hard -"@blocksuite/data-view@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/data-view@npm:0.18.0" +"@blocksuite/data-view@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/data-view@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/affine-components": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" + "@blocksuite/affine-components": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" "@blocksuite/icons": "npm:^2.1.70" - "@blocksuite/store": "npm:0.18.0" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@emotion/hash": "npm:^0.9.2" "@floating-ui/dom": "npm:^1.6.10" "@lit/context": "npm:^1.1.2" @@ -2805,25 +2806,25 @@ __metadata: date-fns: "npm:^4.0.0" lit: "npm:^3.2.0" zod: "npm:^3.23.8" - checksum: 10/63c1732df0b7275502bc77012808b8028507b072158845eea6d3da37a90d17e8c4f71bf702cdf6db88130b3955383709f3b986ba0455a0225b7b5c94a276f3a4 + checksum: 10/c672d634f155122d46e344766509a69b1bf37df0d1a42ffaafadd0bacf99d445ffeb72d2d1589eaaf72186328c5230e29eb531d61b7a40645831aeca94fc95e3 languageName: node linkType: hard -"@blocksuite/global@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/global@npm:0.18.0" +"@blocksuite/global@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/global@npm:0.0.0-canary-20241127081342" dependencies: "@preact/signals-core": "npm:^1.8.0" lib0: "npm:^0.2.97" lit: "npm:^3.2.0" zod: "npm:^3.23.8" - checksum: 10/7dfb0d8e65fd09c9b7ef7e29bc63ab253c3ed3f2258cab40fbd4dd086f907a1a57f5e76d96e154dee6c91ab7cc5e0a71c4e6a0380b01aa4e223c21d327b095f9 + checksum: 10/56e58ed7a057e0845dcf7d3f7117e85cb33e8de41fddf7c60d8bc841510385051e940647ecd069357883dd059562ae97f1d628ea7a705dc7fdc442bdd5569134 languageName: node linkType: hard -"@blocksuite/icons@npm:2.1.70, @blocksuite/icons@npm:^2.1.70": - version: 2.1.70 - resolution: "@blocksuite/icons@npm:2.1.70" +"@blocksuite/icons@npm:2.1.71, @blocksuite/icons@npm:^2.1.70": + version: 2.1.71 + resolution: "@blocksuite/icons@npm:2.1.71" peerDependencies: "@types/react": ^18.0.25 lit: ^3.1.1 @@ -2833,53 +2834,53 @@ __metadata: optional: true react: optional: true - checksum: 10/ce4f7109c82dba1a2d5e9384c63fe9b6f91540aae203f4a23fcf07c0578db937112c007000d63ecac5b950feb3a27c3022eb13a418afd42b8407bbf32a8fce12 + checksum: 10/1c2fedf3a49d0136c5477de19aa6f0adeb421bda5f77def2aadce9a9bc78d4771b230a55c7cf548e8ae36c0e4cc892f43a5f19e6b99f6f6e7be672c71cf9b5a3 languageName: node linkType: hard -"@blocksuite/inline@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/inline@npm:0.18.0" +"@blocksuite/inline@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/inline@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/global": "npm:0.18.0" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" "@preact/signals-core": "npm:^1.8.0" zod: "npm:^3.23.8" peerDependencies: lit: ^3.2.0 yjs: ^13.6.18 - checksum: 10/f6db02fb6c3bda59c3af1619f333b81faa069062b5705032dd74841e49a19bbfece803ea2ab483a2d9e0677a2894e7aaebb5ccc0baa9a6c1ff553fd5530002b4 + checksum: 10/362c51e0ec1e11c935edc8cba21e86733411463a54d24e98a760a8ceaa157242dbd0e46717dca6eab47667fb53bbd6a0815d2a7c89f47e24c9203272bef07535 languageName: node linkType: hard -"@blocksuite/presets@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/presets@npm:0.18.0" - dependencies: - "@blocksuite/affine-block-surface": "npm:0.18.0" - "@blocksuite/affine-model": "npm:0.18.0" - "@blocksuite/affine-shared": "npm:0.18.0" - "@blocksuite/block-std": "npm:0.18.0" - "@blocksuite/blocks": "npm:0.18.0" - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/store": "npm:0.18.0" +"@blocksuite/presets@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/presets@npm:0.0.0-canary-20241127081342" + dependencies: + "@blocksuite/affine-block-surface": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-model": "npm:0.0.0-canary-20241127081342" + "@blocksuite/affine-shared": "npm:0.0.0-canary-20241127081342" + "@blocksuite/block-std": "npm:0.0.0-canary-20241127081342" + "@blocksuite/blocks": "npm:0.0.0-canary-20241127081342" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/store": "npm:0.0.0-canary-20241127081342" "@floating-ui/dom": "npm:^1.6.10" "@lottiefiles/dotlottie-wc": "npm:^0.2.16" "@preact/signals-core": "npm:^1.8.0" "@toeverything/theme": "npm:^1.0.19" lit: "npm:^3.2.0" zod: "npm:^3.23.8" - checksum: 10/a000d5730a1bdc0bd14302eaaf829130930683c4042f1a4bd555796683fb06cb4b01a5b0e450cdd9875ba75a2611c63e10791a06a5165284f71e1949d6304c5d + checksum: 10/8d645674ea8c4e54952db2b96a5123150ef546fa36a91822801ff02c7033cdd9d5d43f4fe5ace2c176469c94c65667c43aaf447df85f7a9564bb0434af7dd9b4 languageName: node linkType: hard -"@blocksuite/store@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/store@npm:0.18.0" +"@blocksuite/store@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/store@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/global": "npm:0.18.0" - "@blocksuite/inline": "npm:0.18.0" - "@blocksuite/sync": "npm:0.18.0" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" + "@blocksuite/inline": "npm:0.0.0-canary-20241127081342" + "@blocksuite/sync": "npm:0.0.0-canary-20241127081342" "@preact/signals-core": "npm:^1.8.0" "@types/flexsearch": "npm:^0.7.6" "@types/lodash.ismatch": "npm:^4.4.9" @@ -2895,21 +2896,21 @@ __metadata: zod: "npm:^3.23.8" peerDependencies: yjs: ^13.6.18 - checksum: 10/f70fa3b4492bf8fdee5a8a3da19a437bfe1b4836b661265724b7269b2b6afbf8b22942a3e0793947a6f43e29854f3a90e848ac1e1e088b30987b560ca2100e5c + checksum: 10/d8573bc329884a470780c4ec35be52cec21a50273622a8e21321f590c4347615ca25df214b1bb7f36747b6e025e59efa004a9c27351a9667d04a1a77300b8ef9 languageName: node linkType: hard -"@blocksuite/sync@npm:0.18.0": - version: 0.18.0 - resolution: "@blocksuite/sync@npm:0.18.0" +"@blocksuite/sync@npm:0.0.0-canary-20241127081342": + version: 0.0.0-canary-20241127081342 + resolution: "@blocksuite/sync@npm:0.0.0-canary-20241127081342" dependencies: - "@blocksuite/global": "npm:0.18.0" + "@blocksuite/global": "npm:0.0.0-canary-20241127081342" idb: "npm:^8.0.0" idb-keyval: "npm:^6.2.1" y-protocols: "npm:^1.0.6" peerDependencies: yjs: ^13.6.15 - checksum: 10/ab11fb95b8a41a277bad32728cc07dff700362d52ed2b83f5fc33ff92a4c12ffb1a326eb4a340b0d55f00c1ee13930f2705c2aa6ae20635079c084826f0a9732 + checksum: 10/f655b7f05e42cd077a4bf66954a29719019696f1bd1d677236c68e9e4e55baf3d3947b37ea721296f88b166e0abb71bd2ee6cf13305f381968e72cc56edf8863 languageName: node linkType: hard @@ -13083,7 +13084,7 @@ __metadata: "@affine/debug": "workspace:*" "@affine/env": "workspace:*" "@affine/templates": "workspace:*" - "@blocksuite/affine": "npm:0.18.0" + "@blocksuite/affine": "npm:0.0.0-canary-20241127081342" "@datastructures-js/binary-search-tree": "npm:^5.3.2" "@testing-library/react": "npm:^16.0.0" eventemitter2: "npm:^6.4.9"