@formicoidea/labre-core 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_pkgs/affine-block-attachment/attachment-block.js +1 -1
- package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
- package/dist/_pkgs/affine-block-callout/callout-block.js +26 -4
- package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
- package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
- package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
- package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
- package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
- package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
- package/dist/_pkgs/affine-block-code/code-block-inline.js +1 -1
- package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
- package/dist/_pkgs/affine-block-code/code-block.js +44 -6
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/config.js +54 -5
- package/dist/_pkgs/affine-block-code/code-toolbar/index.js +1 -1
- package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/effects.js +2 -0
- package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
- package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-code/index.js +1 -0
- package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
- package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
- package/dist/_pkgs/affine-block-code/styles.js +31 -0
- package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
- package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
- package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
- package/dist/_pkgs/affine-block-database/data-source.js +1 -2
- package/dist/_pkgs/affine-block-database/database-block.js +13 -0
- package/dist/_pkgs/affine-block-database/external-data-source.js +1 -1
- package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
- package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
- package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
- package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
- package/dist/_pkgs/affine-block-database/views/index.js +1 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +11 -1
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
- package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-service.js +1 -1
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +2 -2
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/utils.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +23 -4
- package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
- package/dist/_pkgs/affine-block-frame/frame-manager.js +34 -2
- package/dist/_pkgs/affine-block-frame/frame-tool.js +1 -1
- package/dist/_pkgs/affine-block-image/components/page-image-block.js +1 -1
- package/dist/_pkgs/affine-block-image/image-edgeless-block.js +1 -1
- package/dist/_pkgs/affine-block-latex/styles.js +6 -1
- package/dist/_pkgs/affine-block-list/utils/forward-delete.js +1 -1
- package/dist/_pkgs/affine-block-note/commands/select-block.js +1 -1
- package/dist/_pkgs/affine-block-note/commands/select-blocks-between.js +1 -1
- package/dist/_pkgs/affine-block-note/move-block.js +1 -1
- package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
- package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
- package/dist/_pkgs/affine-block-paragraph/utils/forward-delete.js +2 -2
- package/dist/_pkgs/affine-block-paragraph/utils/merge-with-prev.js +1 -1
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
- package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +10 -3
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +27 -2
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
- package/dist/_pkgs/affine-block-root/edgeless/utils/clipboard-utils.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
- package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
- package/dist/_pkgs/affine-block-root/index.js +4 -1
- package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
- package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
- package/dist/_pkgs/affine-block-root/view.js +13 -4
- package/dist/_pkgs/affine-block-surface/adapters/markdown/element-adapter/type.js +1 -1
- package/dist/_pkgs/affine-block-surface/adapters/plain-text/element-adapter/type.js +1 -1
- package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
- package/dist/_pkgs/affine-block-surface/effects.js +6 -0
- package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
- package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
- package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/audit.js +489 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +37 -5
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +327 -0
- package/dist/_pkgs/affine-block-surface/extensions/element-renderer.js +1 -1
- package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +1 -1
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +17 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +172 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +393 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +306 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange.js +64 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +248 -0
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +248 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +588 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +958 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +2129 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.js +4620 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +330 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +1004 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +610 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.js +206 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +99 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.js +193 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +399 -0
- package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-surface/index.js +1 -0
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
- package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
- package/dist/_pkgs/affine-block-surface/renderer/overlay.js +1 -1
- package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
- package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
- package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/view.js +57 -2
- package/dist/_pkgs/affine-block-surface-ref/portal/note.js +2 -2
- package/dist/_pkgs/affine-block-table/commands.js +1 -1
- package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
- package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
- package/dist/_pkgs/affine-block-table/table-block.js +8 -2
- package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
- package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
- package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
- package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
- package/dist/_pkgs/affine-block-table/utils.js +12 -0
- package/dist/_pkgs/affine-block-table/view.js +2 -0
- package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
- package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
- package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
- package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
- package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
- package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
- package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
- package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +1 -1
- package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +1 -1
- package/dist/_pkgs/affine-components/filterable-list/styles.js +1 -1
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
- package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
- package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
- package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
- package/dist/_pkgs/affine-components/icons/text.js +426 -426
- package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
- package/dist/_pkgs/affine-components/peek/peekable.js +1 -1
- package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
- package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -0
- package/dist/_pkgs/affine-components/toolbar/index.js +1 -0
- package/dist/_pkgs/affine-components/toolbar/menu-button.js +2 -1
- package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +55 -0
- package/dist/_pkgs/affine-components/toolbar/picker-menu.js +47 -0
- package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
- package/dist/_pkgs/affine-foundation/view.js +11 -2
- package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +2 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +2 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +1 -1
- package/dist/_pkgs/affine-fragment-outline/mobile-outline-panel.js +1 -1
- package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
- package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +1 -1
- package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
- package/dist/_pkgs/affine-gfx-connector/connector-manager.js +39 -16
- package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +26 -1
- package/dist/_pkgs/affine-gfx-connector/connector-tool.js +12 -3
- package/dist/_pkgs/affine-gfx-connector/connector-watcher.js +1 -4
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +282 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +185 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
- package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
- package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
- package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +1 -1
- package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +68 -2
- package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
- package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
- package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
- package/dist/_pkgs/affine-gfx-mindmap/adapter/markdown/index.js +1 -1
- package/dist/_pkgs/affine-gfx-mindmap/adapter/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +583 -4
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +23 -23
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +5 -1
- package/dist/_pkgs/affine-gfx-mindmap/view/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-note/overlay/overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +1 -1
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
- package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
- package/dist/_pkgs/affine-gfx-shape/consts.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/draggable/shape-draggable.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/polygon.js +17 -9
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/utils.js +8 -3
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
- package/dist/_pkgs/affine-gfx-shape/element-view.js +19 -12
- package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
- package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-vertex-editing-overlay.js +12 -7
- package/dist/_pkgs/affine-gfx-shape/overlay/shape-overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +4 -2
- package/dist/_pkgs/affine-gfx-shape/shape-tool.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -15
- package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
- package/dist/_pkgs/affine-gfx-template/builtin/other.js +66 -17
- package/dist/_pkgs/affine-gfx-template/toolbar/overlay-scrollbar.js +1 -1
- package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +1 -1
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
- package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
- package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +1 -1
- package/dist/_pkgs/affine-inline-latex/command.js +46 -26
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
- package/dist/_pkgs/affine-inline-link/command.js +1 -1
- package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
- package/dist/_pkgs/affine-inline-preset/command/format-block.js +1 -1
- package/dist/_pkgs/affine-inline-preset/command/format-native.js +2 -2
- package/dist/_pkgs/affine-inline-preset/command/format-text.js +1 -1
- package/dist/_pkgs/affine-inline-preset/inline-spec.js +1 -1
- package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +1 -1
- package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
- package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
- package/dist/_pkgs/affine-model/elements/bpmn/node.d.ts +40 -7
- package/dist/_pkgs/affine-model/elements/bpmn/node.js +4 -2
- package/dist/_pkgs/affine-model/elements/bpmn/pool.d.ts +74 -17
- package/dist/_pkgs/affine-model/elements/bpmn/pool.js +55 -26
- package/dist/_pkgs/affine-model/elements/c4/board.d.ts +88 -0
- package/dist/_pkgs/affine-model/elements/c4/board.js +128 -0
- package/dist/_pkgs/affine-model/elements/c4/boundary.d.ts +63 -0
- package/dist/_pkgs/affine-model/elements/c4/boundary.js +134 -0
- package/dist/_pkgs/affine-model/elements/c4/index.d.ts +3 -0
- package/dist/_pkgs/affine-model/elements/c4/index.js +3 -0
- package/dist/_pkgs/affine-model/elements/c4/node.d.ts +97 -0
- package/dist/_pkgs/affine-model/elements/c4/node.js +130 -0
- package/dist/_pkgs/affine-model/elements/connector/connector.js +25 -1
- package/dist/_pkgs/affine-model/elements/context-map/context-map.d.ts +27 -0
- package/dist/_pkgs/affine-model/elements/context-map/context-map.js +94 -0
- package/dist/_pkgs/affine-model/elements/context-map/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/context-map/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +34 -17
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +28 -26
- package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
- package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
- package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +36 -0
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +103 -0
- package/dist/_pkgs/affine-model/elements/event-storming/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/event-storming/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/index.d.ts +14 -1
- package/dist/_pkgs/affine-model/elements/index.js +4 -0
- package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
- package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
- package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
- package/dist/_pkgs/affine-model/elements/shape/api/polygon.js +2 -8
- package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
- package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
- package/dist/_pkgs/affine-shared/adapters/html/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +161 -3
- package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
- package/dist/_pkgs/affine-shared/adapters/notion-html/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/notion-html/delta-converter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/plain-text/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/plain-text/delta-converter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.js +283 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
- package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
- package/dist/_pkgs/affine-shared/commands/model-crud/draft-selected-models.js +1 -1
- package/dist/_pkgs/affine-shared/commands/selection/focus-block-end.js +1 -1
- package/dist/_pkgs/affine-shared/commands/selection/focus-block-start.js +1 -1
- package/dist/_pkgs/affine-shared/consts/index.d.ts +10 -0
- package/dist/_pkgs/affine-shared/consts/index.js +10 -0
- package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.d.ts +55 -0
- package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.js +35 -0
- package/dist/_pkgs/affine-shared/services/audit-service.d.ts +311 -0
- package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
- package/dist/_pkgs/affine-shared/services/command-usage-service.d.ts +31 -0
- package/dist/_pkgs/affine-shared/services/command-usage-service.js +109 -0
- package/dist/_pkgs/affine-shared/services/comment-service/block-comment-manager.js +1 -1
- package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +1 -1
- package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
- package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.js +1 -1
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
- package/dist/_pkgs/affine-shared/services/index.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/index.js +7 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +312 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +255 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
- package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
- package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/registry.d.ts +44 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/registry.js +161 -3
- package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
- package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +256 -0
- package/dist/_pkgs/affine-shared/test-utils/affine-template.js +1 -1
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
- package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
- package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
- package/dist/_pkgs/affine-shared/utils/edgeless.js +1 -1
- package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +34 -0
- package/dist/_pkgs/affine-shared/utils/file/filesys.js +48 -7
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
- package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
- package/dist/_pkgs/affine-shared/utils/zod-schema.js +25 -1
- package/dist/_pkgs/affine-widget-drag-handle/utils.js +1 -1
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
- package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +1 -1
- package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +1 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.d.ts +14 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.js +40 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +158 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +572 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.d.ts +46 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.js +66 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.d.ts +13 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.js +50 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +15 -5
- package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.d.ts +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.js +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/extension/index.d.ts +7 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +5 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +5 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +57 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +140 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +9 -0
- package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
- package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
- package/dist/_pkgs/affine-widget-keyboard-toolbar/keyboard-tool-panel.js +1 -1
- package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +1 -1
- package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
- package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
- package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
- package/dist/_pkgs/affine-widget-page-dragging-area/index.js +1 -1
- package/dist/_pkgs/affine-widget-remote-selection/doc/doc-remote-selection.js +1 -1
- package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
- package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
- package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
- package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.js +40 -8
- package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
- package/dist/_pkgs/affine-widget-toolbar/utils.js +744 -58
- package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
- package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
- package/dist/_pkgs/data-view/core/data-view.js +25 -3
- package/dist/_pkgs/data-view/core/detail/field.js +2 -2
- package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
- package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
- package/dist/_pkgs/data-view/core/effect.js +2 -0
- package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
- package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
- package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
- package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
- package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
- package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
- package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
- package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
- package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +64 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +849 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
- package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
- package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
- package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/index.js +3 -0
- package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +89 -4
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/group.js +86 -5
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
- package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
- package/dist/_pkgs/global/gfx/curve.js +4 -3
- package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
- package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
- package/dist/_pkgs/std/clipboard/utils.js +10 -0
- package/dist/_pkgs/std/event/dispatcher.js +27 -1
- package/dist/_pkgs/std/event/keymap.js +16 -6
- package/dist/_pkgs/std/extension/command-registry.d.ts +475 -0
- package/dist/_pkgs/std/extension/command-registry.js +431 -0
- package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
- package/dist/_pkgs/std/extension/index.d.ts +2 -0
- package/dist/_pkgs/std/extension/index.js +2 -0
- package/dist/_pkgs/std/extension/shortcut.js +2 -1
- package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
- package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
- package/dist/_pkgs/std/gfx/grid.js +1 -1
- package/dist/_pkgs/std/gfx/index.d.ts +7 -3
- package/dist/_pkgs/std/gfx/index.js +6 -2
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
- package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
- package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
- package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
- package/dist/_pkgs/std/gfx/layer.js +1 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
- package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +442 -0
- package/dist/_pkgs/std/gfx/model/surface/element-model.js +510 -25
- package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
- package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
- package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
- package/dist/_pkgs/std/gfx/model/surface/role.js +117 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.js +305 -17
- package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
- package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
- package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
- package/dist/_pkgs/std/gfx/perf.js +30 -0
- package/dist/_pkgs/std/gfx/selection.js +1 -1
- package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
- package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
- package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
- package/dist/_pkgs/std/gfx/viewport.js +20 -2
- package/dist/_pkgs/std/inline/extensions/inline-manager.js +1 -1
- package/dist/_pkgs/std/inline/extensions/markdown-matcher.js +1 -1
- package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
- package/dist/_pkgs/std/inline/services/event.js +96 -21
- package/dist/_pkgs/std/utils/layer.js +2 -6
- package/dist/_pkgs/std/utils/tree.d.ts +14 -0
- package/dist/_pkgs/std/utils/tree.js +59 -8
- package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
- package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
- package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
- package/dist/_pkgs/store/model/store/crud.js +10 -4
- package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
- package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
- package/dist/commands.d.ts +58 -0
- package/dist/commands.js +66 -0
- package/dist/extensions/command-telemetry.d.ts +21 -0
- package/dist/extensions/command-telemetry.js +89 -0
- package/dist/extensions/command-usage.d.ts +23 -0
- package/dist/extensions/command-usage.js +37 -0
- package/dist/extensions/store.d.ts +9 -4
- package/dist/extensions/store.js +27 -24
- package/dist/extensions/view.d.ts +9 -4
- package/dist/extensions/view.js +35 -8
- package/dist/flags.d.ts +98 -21
- package/dist/flags.js +103 -22
- package/dist/frameworks.d.ts +45 -0
- package/dist/frameworks.js +186 -0
- package/dist/schemas.d.ts +8 -5
- package/dist/schemas.js +28 -32
- package/dist/shortcuts.d.ts +16 -16
- package/dist/shortcuts.js +8 -36
- package/dist/translations.d.ts +56 -0
- package/dist/translations.js +200 -0
- package/package.json +16 -4
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
- package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
- package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
- package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
- package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
|
@@ -2,11 +2,14 @@ import { ColorScheme } from '../../affine-model/index.js';
|
|
|
2
2
|
import { FeatureFlagService } from '../../affine-shared/services/index.js';
|
|
3
3
|
import { requestConnectedFrame } from '../../affine-shared/utils/index.js';
|
|
4
4
|
import { DisposableGroup } from '../../global/disposable/index.js';
|
|
5
|
-
import { getBoundWithRotation, intersects } from '../../global/gfx/index.js';
|
|
5
|
+
import { Bound, getBoundWithRotation, intersects, } from '../../global/gfx/index.js';
|
|
6
|
+
import { GfxControllerIdentifier } from '../../std/gfx/index.js';
|
|
7
|
+
import { effect } from '@preact/signals-core';
|
|
6
8
|
import last from 'lodash-es/last.js';
|
|
7
9
|
import { Subject } from 'rxjs';
|
|
8
10
|
import { ElementRendererIdentifier } from '../extensions/element-renderer.js';
|
|
9
11
|
import { RoughCanvas } from '../utils/rough/canvas.js';
|
|
12
|
+
const STACKING_CANVAS_PADDING = 32;
|
|
10
13
|
export class CanvasRenderer {
|
|
11
14
|
get stackingCanvas() {
|
|
12
15
|
return this._stackingCanvas;
|
|
@@ -16,8 +19,40 @@ export class CanvasRenderer {
|
|
|
16
19
|
this._overlays = new Set();
|
|
17
20
|
this._refreshRafId = null;
|
|
18
21
|
this._stackingCanvas = [];
|
|
22
|
+
this._stackingCanvasPool = [];
|
|
23
|
+
this._stackingCanvasState = new WeakMap();
|
|
24
|
+
this._dirtyStackingCanvasIndexes = new Set();
|
|
25
|
+
this._mainCanvasDirty = true;
|
|
26
|
+
this._needsFullRender = true;
|
|
27
|
+
this._debugMetrics = {
|
|
28
|
+
refreshCount: 0,
|
|
29
|
+
coalescedRefreshCount: 0,
|
|
30
|
+
renderCount: 0,
|
|
31
|
+
totalRenderDurationMs: 0,
|
|
32
|
+
lastRenderDurationMs: 0,
|
|
33
|
+
maxRenderDurationMs: 0,
|
|
34
|
+
lastRenderMetrics: {
|
|
35
|
+
renderByBoundCallCount: 0,
|
|
36
|
+
visibleElementCount: 0,
|
|
37
|
+
renderedElementCount: 0,
|
|
38
|
+
placeholderElementCount: 0,
|
|
39
|
+
overlayCount: 0,
|
|
40
|
+
},
|
|
41
|
+
dirtyLayerRenderCount: 0,
|
|
42
|
+
fallbackElementCount: 0,
|
|
43
|
+
};
|
|
19
44
|
this.stackingCanvasUpdated = new Subject();
|
|
20
45
|
this.usePlaceholder = false;
|
|
46
|
+
this._lastDebugSnapshot = {
|
|
47
|
+
canvasMemoryBytes: 0,
|
|
48
|
+
canvasMemorySnapshots: [],
|
|
49
|
+
canvasPixelCount: 0,
|
|
50
|
+
canvasLayerCount: 0,
|
|
51
|
+
pooledStackingCanvasCount: 0,
|
|
52
|
+
stackingCanvasCount: 0,
|
|
53
|
+
totalLayerCount: 0,
|
|
54
|
+
visibleStackingCanvasCount: 0,
|
|
55
|
+
};
|
|
21
56
|
const canvas = document.createElement('canvas');
|
|
22
57
|
this.canvas = canvas;
|
|
23
58
|
this.ctx = this.canvas.getContext('2d');
|
|
@@ -26,6 +61,7 @@ export class CanvasRenderer {
|
|
|
26
61
|
this.layerManager = options.layerManager;
|
|
27
62
|
this.grid = options.gridManager;
|
|
28
63
|
this.provider = options.provider ?? {};
|
|
64
|
+
this._gfx = this.std.get(GfxControllerIdentifier);
|
|
29
65
|
this._turboEnabled = () => {
|
|
30
66
|
const featureFlagService = options.std.get(FeatureFlagService);
|
|
31
67
|
return featureFlagService.getFlag('enable_turbo_renderer');
|
|
@@ -45,7 +81,7 @@ export class CanvasRenderer {
|
|
|
45
81
|
* It is not recommended to set width and height to 100%.
|
|
46
82
|
*/
|
|
47
83
|
_canvasSizeUpdater(dpr = window.devicePixelRatio) {
|
|
48
|
-
const { width, height } = this.viewport;
|
|
84
|
+
const { width, height, viewScale } = this.viewport;
|
|
49
85
|
const actualWidth = Math.ceil(width * dpr);
|
|
50
86
|
const actualHeight = Math.ceil(height * dpr);
|
|
51
87
|
return {
|
|
@@ -55,18 +91,155 @@ export class CanvasRenderer {
|
|
|
55
91
|
update(canvas) {
|
|
56
92
|
canvas.style.width = `${width}px`;
|
|
57
93
|
canvas.style.height = `${height}px`;
|
|
94
|
+
// The viewport size is read from `getBoundingClientRect()`, so it
|
|
95
|
+
// already carries the scale an outer container applies to the whole
|
|
96
|
+
// editor. Undo that scale here, otherwise the container would scale
|
|
97
|
+
// the canvas a second time and it would no longer fit its block.
|
|
98
|
+
canvas.style.transform = `scale(${1 / viewScale})`;
|
|
99
|
+
canvas.style.transformOrigin = `top left`;
|
|
58
100
|
canvas.width = actualWidth;
|
|
59
101
|
canvas.height = actualHeight;
|
|
60
102
|
},
|
|
61
103
|
};
|
|
62
104
|
}
|
|
105
|
+
_applyStackingCanvasLayout(canvas, bound, dpr = window.devicePixelRatio) {
|
|
106
|
+
const state = this._stackingCanvasState.get(canvas) ??
|
|
107
|
+
{
|
|
108
|
+
bound: null,
|
|
109
|
+
layerId: canvas.dataset.layerId ?? null,
|
|
110
|
+
};
|
|
111
|
+
if (!bound || bound.w <= 0 || bound.h <= 0) {
|
|
112
|
+
canvas.style.display = 'none';
|
|
113
|
+
canvas.style.left = '0px';
|
|
114
|
+
canvas.style.top = '0px';
|
|
115
|
+
canvas.style.width = '0px';
|
|
116
|
+
canvas.style.height = '0px';
|
|
117
|
+
canvas.style.transform = '';
|
|
118
|
+
canvas.width = 0;
|
|
119
|
+
canvas.height = 0;
|
|
120
|
+
state.bound = null;
|
|
121
|
+
state.layerId = canvas.dataset.layerId ?? null;
|
|
122
|
+
this._stackingCanvasState.set(canvas, state);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const { viewportBounds, zoom, viewScale } = this.viewport;
|
|
126
|
+
const width = bound.w * zoom;
|
|
127
|
+
const height = bound.h * zoom;
|
|
128
|
+
const left = (bound.x - viewportBounds.x) * zoom;
|
|
129
|
+
const top = (bound.y - viewportBounds.y) * zoom;
|
|
130
|
+
const actualWidth = Math.max(1, Math.ceil(width * dpr));
|
|
131
|
+
const actualHeight = Math.max(1, Math.ceil(height * dpr));
|
|
132
|
+
const transform = `translate(${left}px, ${top}px) scale(${1 / viewScale})`;
|
|
133
|
+
if (canvas.style.display !== 'block') {
|
|
134
|
+
canvas.style.display = 'block';
|
|
135
|
+
}
|
|
136
|
+
if (canvas.style.left !== '0px') {
|
|
137
|
+
canvas.style.left = '0px';
|
|
138
|
+
}
|
|
139
|
+
if (canvas.style.top !== '0px') {
|
|
140
|
+
canvas.style.top = '0px';
|
|
141
|
+
}
|
|
142
|
+
if (canvas.style.width !== `${width}px`) {
|
|
143
|
+
canvas.style.width = `${width}px`;
|
|
144
|
+
}
|
|
145
|
+
if (canvas.style.height !== `${height}px`) {
|
|
146
|
+
canvas.style.height = `${height}px`;
|
|
147
|
+
}
|
|
148
|
+
if (canvas.style.transform !== transform) {
|
|
149
|
+
canvas.style.transform = transform;
|
|
150
|
+
}
|
|
151
|
+
if (canvas.style.transformOrigin !== 'top left') {
|
|
152
|
+
canvas.style.transformOrigin = 'top left';
|
|
153
|
+
}
|
|
154
|
+
if (canvas.width !== actualWidth) {
|
|
155
|
+
canvas.width = actualWidth;
|
|
156
|
+
}
|
|
157
|
+
if (canvas.height !== actualHeight) {
|
|
158
|
+
canvas.height = actualHeight;
|
|
159
|
+
}
|
|
160
|
+
state.bound = bound;
|
|
161
|
+
state.layerId = canvas.dataset.layerId ?? null;
|
|
162
|
+
this._stackingCanvasState.set(canvas, state);
|
|
163
|
+
}
|
|
164
|
+
_clampBoundToViewport(bound, viewportBounds) {
|
|
165
|
+
const minX = Math.max(bound.x, viewportBounds.x);
|
|
166
|
+
const minY = Math.max(bound.y, viewportBounds.y);
|
|
167
|
+
const maxX = Math.min(bound.maxX, viewportBounds.maxX);
|
|
168
|
+
const maxY = Math.min(bound.maxY, viewportBounds.maxY);
|
|
169
|
+
if (maxX <= minX || maxY <= minY) {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
return new Bound(minX, minY, maxX - minX, maxY - minY);
|
|
173
|
+
}
|
|
174
|
+
_createCanvasForLayer(onCreated) {
|
|
175
|
+
const reused = this._stackingCanvasPool.pop();
|
|
176
|
+
if (reused) {
|
|
177
|
+
return reused;
|
|
178
|
+
}
|
|
179
|
+
const created = document.createElement('canvas');
|
|
180
|
+
onCreated?.(created);
|
|
181
|
+
return created;
|
|
182
|
+
}
|
|
183
|
+
_findLayerIndexByElement(element) {
|
|
184
|
+
const canvasLayers = this.layerManager.getCanvasLayers();
|
|
185
|
+
const index = canvasLayers.findIndex(layer => layer.elements.some(layerElement => layerElement.id === element.id));
|
|
186
|
+
return index === -1 ? null : index;
|
|
187
|
+
}
|
|
188
|
+
_getLayerRenderBound(elements, viewportBounds) {
|
|
189
|
+
let layerBound = null;
|
|
190
|
+
for (const element of elements) {
|
|
191
|
+
const display = (element.display ?? true) && !element.hidden;
|
|
192
|
+
if (!display) {
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
const elementBound = Bound.from(getBoundWithRotation(element));
|
|
196
|
+
if (!intersects(elementBound, viewportBounds)) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
layerBound = layerBound ? layerBound.unite(elementBound) : elementBound;
|
|
200
|
+
}
|
|
201
|
+
if (!layerBound) {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
return this._clampBoundToViewport(layerBound.expand(STACKING_CANVAS_PADDING), viewportBounds);
|
|
205
|
+
}
|
|
206
|
+
_getResolvedStackingCanvasBound(canvas, bound) {
|
|
207
|
+
if (!bound || !this._gfx.tool.dragging$.peek()) {
|
|
208
|
+
return bound;
|
|
209
|
+
}
|
|
210
|
+
const previousBound = this._stackingCanvasState.get(canvas)?.bound;
|
|
211
|
+
return previousBound ? previousBound.unite(bound) : bound;
|
|
212
|
+
}
|
|
213
|
+
_invalidate(target = { type: 'all' }) {
|
|
214
|
+
if (target.type === 'all') {
|
|
215
|
+
this._needsFullRender = true;
|
|
216
|
+
this._mainCanvasDirty = true;
|
|
217
|
+
this._dirtyStackingCanvasIndexes.clear();
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (this._needsFullRender) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
if (target.type === 'main') {
|
|
224
|
+
this._mainCanvasDirty = true;
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const elements = target.type === 'element' ? [target.element] : target.elements;
|
|
228
|
+
for (const element of elements) {
|
|
229
|
+
const layerIndex = this._findLayerIndexByElement(element);
|
|
230
|
+
if (layerIndex === null || layerIndex >= this._stackingCanvas.length) {
|
|
231
|
+
this._mainCanvasDirty = true;
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
this._dirtyStackingCanvasIndexes.add(layerIndex);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
_resetPooledCanvas(canvas) {
|
|
238
|
+
canvas.dataset.layerId = '';
|
|
239
|
+
this._applyStackingCanvasLayout(canvas, null);
|
|
240
|
+
}
|
|
63
241
|
_initStackingCanvas(onCreated) {
|
|
64
242
|
const layer = this.layerManager;
|
|
65
|
-
const updateStackingCanvasSize = (canvases) => {
|
|
66
|
-
this._stackingCanvas = canvases;
|
|
67
|
-
const sizeUpdater = this._canvasSizeUpdater();
|
|
68
|
-
canvases.filter(sizeUpdater.filter).forEach(sizeUpdater.update);
|
|
69
|
-
};
|
|
70
243
|
const updateStackingCanvas = () => {
|
|
71
244
|
/**
|
|
72
245
|
* we already have a main canvas, so the last layer should be skipped
|
|
@@ -84,16 +257,12 @@ export class CanvasRenderer {
|
|
|
84
257
|
const created = i < currentCanvases.length;
|
|
85
258
|
const canvas = created
|
|
86
259
|
? currentCanvases[i]
|
|
87
|
-
:
|
|
88
|
-
if (!created) {
|
|
89
|
-
onCreated?.(canvas);
|
|
90
|
-
}
|
|
260
|
+
: this._createCanvasForLayer(onCreated);
|
|
91
261
|
canvas.dataset.layerId = `[${layer.indexes[0]}--${layer.indexes[1]}]`;
|
|
92
262
|
canvas.style.zIndex = layer.zIndex.toString();
|
|
93
263
|
canvases.push(canvas);
|
|
94
264
|
}
|
|
95
265
|
this._stackingCanvas = canvases;
|
|
96
|
-
updateStackingCanvasSize(canvases);
|
|
97
266
|
if (currentCanvases.length !== canvases.length) {
|
|
98
267
|
const diff = canvases.length - currentCanvases.length;
|
|
99
268
|
const payload = {
|
|
@@ -106,10 +275,14 @@ export class CanvasRenderer {
|
|
|
106
275
|
}
|
|
107
276
|
else {
|
|
108
277
|
payload.removed = currentCanvases.slice(diff);
|
|
278
|
+
payload.removed.forEach(canvas => {
|
|
279
|
+
this._resetPooledCanvas(canvas);
|
|
280
|
+
this._stackingCanvasPool.push(canvas);
|
|
281
|
+
});
|
|
109
282
|
}
|
|
110
283
|
this.stackingCanvasUpdated.next(payload);
|
|
111
284
|
}
|
|
112
|
-
this.refresh();
|
|
285
|
+
this.refresh({ type: 'all' });
|
|
113
286
|
};
|
|
114
287
|
this._disposables.add(this.layerManager.slots.layerUpdated.subscribe(() => {
|
|
115
288
|
updateStackingCanvas();
|
|
@@ -119,7 +292,7 @@ export class CanvasRenderer {
|
|
|
119
292
|
_initViewport() {
|
|
120
293
|
let sizeUpdatedRafId = null;
|
|
121
294
|
this._disposables.add(this.viewport.viewportUpdated.subscribe(() => {
|
|
122
|
-
this.refresh();
|
|
295
|
+
this.refresh({ type: 'all' });
|
|
123
296
|
}));
|
|
124
297
|
this._disposables.add(this.viewport.sizeUpdated.subscribe(() => {
|
|
125
298
|
if (sizeUpdatedRafId)
|
|
@@ -128,51 +301,127 @@ export class CanvasRenderer {
|
|
|
128
301
|
sizeUpdatedRafId = null;
|
|
129
302
|
this._resetSize();
|
|
130
303
|
this._render();
|
|
131
|
-
this.refresh();
|
|
132
304
|
}, this._container);
|
|
133
305
|
}));
|
|
134
306
|
this._disposables.add(this.viewport.zooming$.subscribe(isZooming => {
|
|
135
307
|
const shouldRenderPlaceholders = this._turboEnabled() && isZooming;
|
|
136
308
|
if (this.usePlaceholder !== shouldRenderPlaceholders) {
|
|
137
309
|
this.usePlaceholder = shouldRenderPlaceholders;
|
|
138
|
-
this.refresh();
|
|
310
|
+
this.refresh({ type: 'all' });
|
|
311
|
+
}
|
|
312
|
+
}));
|
|
313
|
+
let wasDragging = false;
|
|
314
|
+
this._disposables.add(effect(() => {
|
|
315
|
+
const isDragging = this._gfx.tool.dragging$.value;
|
|
316
|
+
if (wasDragging && !isDragging) {
|
|
317
|
+
this.refresh({ type: 'all' });
|
|
139
318
|
}
|
|
319
|
+
wasDragging = isDragging;
|
|
140
320
|
}));
|
|
141
321
|
this.usePlaceholder = false;
|
|
142
322
|
}
|
|
323
|
+
_createRenderPassStats() {
|
|
324
|
+
return {
|
|
325
|
+
renderByBoundCallCount: 0,
|
|
326
|
+
visibleElementCount: 0,
|
|
327
|
+
renderedElementCount: 0,
|
|
328
|
+
placeholderElementCount: 0,
|
|
329
|
+
overlayCount: 0,
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
_getCanvasMemorySnapshots() {
|
|
333
|
+
return [this.canvas, ...this._stackingCanvas].map((canvas, index) => {
|
|
334
|
+
return {
|
|
335
|
+
kind: index === 0 ? 'main' : 'stacking',
|
|
336
|
+
width: canvas.width,
|
|
337
|
+
height: canvas.height,
|
|
338
|
+
bytes: canvas.width * canvas.height * 4,
|
|
339
|
+
zIndex: canvas.style.zIndex,
|
|
340
|
+
datasetLayerId: canvas.dataset.layerId ?? null,
|
|
341
|
+
};
|
|
342
|
+
});
|
|
343
|
+
}
|
|
143
344
|
_render() {
|
|
345
|
+
const renderStart = performance.now();
|
|
144
346
|
const { viewportBounds, zoom } = this.viewport;
|
|
145
347
|
const { ctx } = this;
|
|
146
348
|
const dpr = window.devicePixelRatio;
|
|
147
349
|
const scale = zoom * dpr;
|
|
148
350
|
const matrix = new DOMMatrix().scaleSelf(scale);
|
|
351
|
+
const renderStats = this._createRenderPassStats();
|
|
352
|
+
const fullRender = this._needsFullRender;
|
|
353
|
+
const stackingIndexesToRender = fullRender
|
|
354
|
+
? this._stackingCanvas.map((_, idx) => idx)
|
|
355
|
+
: [...this._dirtyStackingCanvasIndexes];
|
|
149
356
|
/**
|
|
150
357
|
* if a layer does not have a corresponding canvas
|
|
151
358
|
* its element will be add to this array and drawing on the
|
|
152
359
|
* main canvas
|
|
153
360
|
*/
|
|
154
361
|
let fallbackElement = [];
|
|
155
|
-
this.layerManager.getCanvasLayers()
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
362
|
+
const allCanvasLayers = this.layerManager.getCanvasLayers();
|
|
363
|
+
const viewportBound = Bound.from(viewportBounds);
|
|
364
|
+
for (const idx of stackingIndexesToRender) {
|
|
365
|
+
const layer = allCanvasLayers[idx];
|
|
160
366
|
const canvas = this._stackingCanvas[idx];
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
367
|
+
if (!layer || !canvas) {
|
|
368
|
+
continue;
|
|
369
|
+
}
|
|
370
|
+
const layerRenderBound = this._getLayerRenderBound(layer.elements, viewportBound);
|
|
371
|
+
const resolvedLayerRenderBound = this._getResolvedStackingCanvasBound(canvas, layerRenderBound);
|
|
372
|
+
this._applyStackingCanvasLayout(canvas, resolvedLayerRenderBound);
|
|
373
|
+
if (!resolvedLayerRenderBound ||
|
|
374
|
+
canvas.width === 0 ||
|
|
375
|
+
canvas.height === 0) {
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
const layerCtx = canvas.getContext('2d');
|
|
379
|
+
const layerRc = new RoughCanvas(layerCtx.canvas);
|
|
380
|
+
layerCtx.clearRect(0, 0, canvas.width, canvas.height);
|
|
381
|
+
layerCtx.save();
|
|
382
|
+
layerCtx.setTransform(matrix);
|
|
383
|
+
this._renderByBound(layerCtx, matrix, layerRc, resolvedLayerRenderBound, layer.elements, false, renderStats);
|
|
384
|
+
}
|
|
385
|
+
if (fullRender || this._mainCanvasDirty) {
|
|
386
|
+
allCanvasLayers.forEach((layer, idx) => {
|
|
387
|
+
if (!this._stackingCanvas[idx]) {
|
|
388
|
+
fallbackElement = fallbackElement.concat(layer.elements);
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
164
392
|
ctx.save();
|
|
165
393
|
ctx.setTransform(matrix);
|
|
166
|
-
this._renderByBound(ctx, matrix,
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
394
|
+
this._renderByBound(ctx, matrix, new RoughCanvas(ctx.canvas), viewportBounds, fallbackElement, true, renderStats);
|
|
395
|
+
}
|
|
396
|
+
const canvasMemorySnapshots = this._getCanvasMemorySnapshots();
|
|
397
|
+
const canvasMemoryBytes = canvasMemorySnapshots.reduce((sum, snapshot) => sum + snapshot.bytes, 0);
|
|
398
|
+
const layerTypes = this.layerManager.layers.map(layer => layer.type);
|
|
399
|
+
const renderDurationMs = performance.now() - renderStart;
|
|
400
|
+
this._debugMetrics.renderCount += 1;
|
|
401
|
+
this._debugMetrics.totalRenderDurationMs += renderDurationMs;
|
|
402
|
+
this._debugMetrics.lastRenderDurationMs = renderDurationMs;
|
|
403
|
+
this._debugMetrics.maxRenderDurationMs = Math.max(this._debugMetrics.maxRenderDurationMs, renderDurationMs);
|
|
404
|
+
this._debugMetrics.lastRenderMetrics = renderStats;
|
|
405
|
+
this._debugMetrics.fallbackElementCount = fallbackElement.length;
|
|
406
|
+
this._debugMetrics.dirtyLayerRenderCount = stackingIndexesToRender.length;
|
|
407
|
+
this._lastDebugSnapshot = {
|
|
408
|
+
canvasMemorySnapshots,
|
|
409
|
+
canvasMemoryBytes,
|
|
410
|
+
canvasPixelCount: canvasMemorySnapshots.reduce((sum, snapshot) => sum + snapshot.width * snapshot.height, 0),
|
|
411
|
+
stackingCanvasCount: this._stackingCanvas.length,
|
|
412
|
+
canvasLayerCount: layerTypes.filter(type => type === 'canvas').length,
|
|
413
|
+
totalLayerCount: layerTypes.length,
|
|
414
|
+
pooledStackingCanvasCount: this._stackingCanvasPool.length,
|
|
415
|
+
visibleStackingCanvasCount: this._stackingCanvas.filter(canvas => canvas.width > 0 && canvas.height > 0).length,
|
|
416
|
+
};
|
|
417
|
+
this._needsFullRender = false;
|
|
418
|
+
this._mainCanvasDirty = false;
|
|
419
|
+
this._dirtyStackingCanvasIndexes.clear();
|
|
172
420
|
}
|
|
173
|
-
_renderByBound(ctx, matrix, rc, bound, surfaceElements, overLay = false) {
|
|
421
|
+
_renderByBound(ctx, matrix, rc, bound, surfaceElements, overLay = false, renderStats) {
|
|
174
422
|
if (!ctx)
|
|
175
423
|
return;
|
|
424
|
+
renderStats && (renderStats.renderByBoundCallCount += 1);
|
|
176
425
|
const elements = surfaceElements ??
|
|
177
426
|
this.grid.search(bound, {
|
|
178
427
|
filter: ['canvas', 'local'],
|
|
@@ -180,8 +429,10 @@ export class CanvasRenderer {
|
|
|
180
429
|
for (const element of elements) {
|
|
181
430
|
const display = (element.display ?? true) && !element.hidden;
|
|
182
431
|
if (display && intersects(getBoundWithRotation(element), bound)) {
|
|
432
|
+
renderStats && (renderStats.visibleElementCount += 1);
|
|
183
433
|
if (this.usePlaceholder &&
|
|
184
434
|
!element.forceFullRender) {
|
|
435
|
+
renderStats && (renderStats.placeholderElementCount += 1);
|
|
185
436
|
ctx.save();
|
|
186
437
|
ctx.fillStyle = 'rgba(200, 200, 200, 0.5)';
|
|
187
438
|
const drawX = element.x - bound.x;
|
|
@@ -190,6 +441,7 @@ export class CanvasRenderer {
|
|
|
190
441
|
ctx.restore();
|
|
191
442
|
}
|
|
192
443
|
else {
|
|
444
|
+
renderStats && (renderStats.renderedElementCount += 1);
|
|
193
445
|
ctx.save();
|
|
194
446
|
const renderFn = this.std.getOptional(ElementRendererIdentifier(element.type));
|
|
195
447
|
if (!renderFn)
|
|
@@ -203,6 +455,7 @@ export class CanvasRenderer {
|
|
|
203
455
|
}
|
|
204
456
|
}
|
|
205
457
|
if (overLay) {
|
|
458
|
+
renderStats && (renderStats.overlayCount += this._overlays.size);
|
|
206
459
|
for (const overlay of this._overlays) {
|
|
207
460
|
ctx.save();
|
|
208
461
|
ctx.translate(-bound.x, -bound.y);
|
|
@@ -215,26 +468,28 @@ export class CanvasRenderer {
|
|
|
215
468
|
_resetSize() {
|
|
216
469
|
const sizeUpdater = this._canvasSizeUpdater();
|
|
217
470
|
sizeUpdater.update(this.canvas);
|
|
218
|
-
this.
|
|
219
|
-
this.refresh();
|
|
471
|
+
this._invalidate({ type: 'all' });
|
|
220
472
|
}
|
|
221
473
|
_watchSurface(surfaceModel) {
|
|
222
|
-
this._disposables.add(surfaceModel.elementAdded.subscribe(() => this.refresh()));
|
|
223
|
-
this._disposables.add(surfaceModel.elementRemoved.subscribe(() => this.refresh()));
|
|
224
|
-
this._disposables.add(surfaceModel.localElementAdded.subscribe(() => this.refresh()));
|
|
225
|
-
this._disposables.add(surfaceModel.localElementDeleted.subscribe(() => this.refresh()));
|
|
226
|
-
this._disposables.add(surfaceModel.localElementUpdated.subscribe(() =>
|
|
474
|
+
this._disposables.add(surfaceModel.elementAdded.subscribe(() => this.refresh({ type: 'all' })));
|
|
475
|
+
this._disposables.add(surfaceModel.elementRemoved.subscribe(() => this.refresh({ type: 'all' })));
|
|
476
|
+
this._disposables.add(surfaceModel.localElementAdded.subscribe(() => this.refresh({ type: 'all' })));
|
|
477
|
+
this._disposables.add(surfaceModel.localElementDeleted.subscribe(() => this.refresh({ type: 'all' })));
|
|
478
|
+
this._disposables.add(surfaceModel.localElementUpdated.subscribe(({ model }) => {
|
|
479
|
+
this.refresh({ type: 'element', element: model });
|
|
480
|
+
}));
|
|
227
481
|
this._disposables.add(surfaceModel.elementUpdated.subscribe(payload => {
|
|
228
482
|
// ignore externalXYWH update cause it's updated by the renderer
|
|
229
483
|
if (payload.props['externalXYWH'])
|
|
230
484
|
return;
|
|
231
|
-
|
|
485
|
+
const element = surfaceModel.getElementById(payload.id);
|
|
486
|
+
this.refresh(element ? { type: 'element', element } : { type: 'all' });
|
|
232
487
|
}));
|
|
233
488
|
}
|
|
234
489
|
addOverlay(overlay) {
|
|
235
490
|
overlay.setRenderer(this);
|
|
236
491
|
this._overlays.add(overlay);
|
|
237
|
-
this.refresh();
|
|
492
|
+
this.refresh({ type: 'main' });
|
|
238
493
|
}
|
|
239
494
|
/**
|
|
240
495
|
* Used to attach main canvas, main canvas will always exist
|
|
@@ -244,7 +499,7 @@ export class CanvasRenderer {
|
|
|
244
499
|
this._container = container;
|
|
245
500
|
container.append(this.canvas);
|
|
246
501
|
this._resetSize();
|
|
247
|
-
this.refresh();
|
|
502
|
+
this.refresh({ type: 'all' });
|
|
248
503
|
}
|
|
249
504
|
dispose() {
|
|
250
505
|
this._overlays.forEach(overlay => overlay.dispose());
|
|
@@ -281,9 +536,43 @@ export class CanvasRenderer {
|
|
|
281
536
|
getPropertyValue(property) {
|
|
282
537
|
return this.provider.getPropertyValue?.(property) ?? '';
|
|
283
538
|
}
|
|
284
|
-
|
|
285
|
-
|
|
539
|
+
getDebugMetrics() {
|
|
540
|
+
return {
|
|
541
|
+
...this._debugMetrics,
|
|
542
|
+
...this._lastDebugSnapshot,
|
|
543
|
+
canvasMemoryMegabytes: this._lastDebugSnapshot.canvasMemoryBytes / 1024 / 1024,
|
|
544
|
+
};
|
|
545
|
+
}
|
|
546
|
+
resetDebugMetrics() {
|
|
547
|
+
this._debugMetrics = {
|
|
548
|
+
refreshCount: 0,
|
|
549
|
+
coalescedRefreshCount: 0,
|
|
550
|
+
renderCount: 0,
|
|
551
|
+
totalRenderDurationMs: 0,
|
|
552
|
+
lastRenderDurationMs: 0,
|
|
553
|
+
maxRenderDurationMs: 0,
|
|
554
|
+
lastRenderMetrics: this._createRenderPassStats(),
|
|
555
|
+
dirtyLayerRenderCount: 0,
|
|
556
|
+
fallbackElementCount: 0,
|
|
557
|
+
};
|
|
558
|
+
this._lastDebugSnapshot = {
|
|
559
|
+
canvasMemoryBytes: 0,
|
|
560
|
+
canvasMemorySnapshots: [],
|
|
561
|
+
canvasPixelCount: 0,
|
|
562
|
+
canvasLayerCount: 0,
|
|
563
|
+
pooledStackingCanvasCount: 0,
|
|
564
|
+
stackingCanvasCount: 0,
|
|
565
|
+
totalLayerCount: 0,
|
|
566
|
+
visibleStackingCanvasCount: 0,
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
refresh(target = { type: 'all' }) {
|
|
570
|
+
this._debugMetrics.refreshCount += 1;
|
|
571
|
+
this._invalidate(target);
|
|
572
|
+
if (this._refreshRafId !== null) {
|
|
573
|
+
this._debugMetrics.coalescedRefreshCount += 1;
|
|
286
574
|
return;
|
|
575
|
+
}
|
|
287
576
|
this._refreshRafId = requestConnectedFrame(() => {
|
|
288
577
|
this._refreshRafId = null;
|
|
289
578
|
this._render();
|
|
@@ -295,6 +584,6 @@ export class CanvasRenderer {
|
|
|
295
584
|
}
|
|
296
585
|
overlay.setRenderer(null);
|
|
297
586
|
this._overlays.delete(overlay);
|
|
298
|
-
this.refresh();
|
|
587
|
+
this.refresh({ type: 'main' });
|
|
299
588
|
}
|
|
300
589
|
}
|
|
@@ -242,7 +242,10 @@ export class DomRenderer {
|
|
|
242
242
|
addedElements.push(domElement);
|
|
243
243
|
}
|
|
244
244
|
const geometricStyles = calculatePlaceholderRect(elementModel, viewportBounds, zoom);
|
|
245
|
-
|
|
245
|
+
const zIndexStyle = {
|
|
246
|
+
'z-index': this.layerManager.getZIndex(elementModel),
|
|
247
|
+
};
|
|
248
|
+
Object.assign(domElement.style, geometricStyles, zIndexStyle);
|
|
246
249
|
Object.assign(domElement.style, PLACEHOLDER_RESET_STYLES);
|
|
247
250
|
// Clear classes specific to shapes, if applicable
|
|
248
251
|
if (elementModel.type === 'shape') {
|
|
@@ -264,7 +267,10 @@ export class DomRenderer {
|
|
|
264
267
|
}
|
|
265
268
|
const geometricStyles = calculateFullElementRect(elementModel, viewportBounds, zoom);
|
|
266
269
|
const opacityStyle = getOpacity(elementModel);
|
|
267
|
-
|
|
270
|
+
const zIndexStyle = {
|
|
271
|
+
'z-index': this.layerManager.getZIndex(elementModel),
|
|
272
|
+
};
|
|
273
|
+
Object.assign(domElement.style, geometricStyles, opacityStyle, zIndexStyle);
|
|
268
274
|
this._renderElement(elementModel, domElement);
|
|
269
275
|
}
|
|
270
276
|
_render() {
|
|
@@ -273,22 +279,29 @@ export class DomRenderer {
|
|
|
273
279
|
_watchSurface(surfaceModel) {
|
|
274
280
|
this._disposables.add(surfaceModel.elementAdded.subscribe(payload => {
|
|
275
281
|
this._markElementDirty(payload.id, UpdateType.ELEMENT_ADDED);
|
|
282
|
+
this._markViewportDirty();
|
|
276
283
|
this.refresh();
|
|
277
284
|
}));
|
|
278
285
|
this._disposables.add(surfaceModel.elementRemoved.subscribe(payload => {
|
|
279
286
|
this._markElementDirty(payload.id, UpdateType.ELEMENT_REMOVED);
|
|
287
|
+
this._markViewportDirty();
|
|
280
288
|
this.refresh();
|
|
281
289
|
}));
|
|
282
290
|
this._disposables.add(surfaceModel.localElementAdded.subscribe(payload => {
|
|
283
291
|
this._markElementDirty(payload.id, UpdateType.ELEMENT_ADDED);
|
|
292
|
+
this._markViewportDirty();
|
|
284
293
|
this.refresh();
|
|
285
294
|
}));
|
|
286
295
|
this._disposables.add(surfaceModel.localElementDeleted.subscribe(payload => {
|
|
287
296
|
this._markElementDirty(payload.id, UpdateType.ELEMENT_REMOVED);
|
|
297
|
+
this._markViewportDirty();
|
|
288
298
|
this.refresh();
|
|
289
299
|
}));
|
|
290
300
|
this._disposables.add(surfaceModel.localElementUpdated.subscribe(payload => {
|
|
291
301
|
this._markElementDirty(payload.model.id, UpdateType.ELEMENT_UPDATED);
|
|
302
|
+
if (payload.props['index'] || payload.props['groupId']) {
|
|
303
|
+
this._markViewportDirty();
|
|
304
|
+
}
|
|
292
305
|
this.refresh();
|
|
293
306
|
}));
|
|
294
307
|
this._disposables.add(surfaceModel.elementUpdated.subscribe(payload => {
|
|
@@ -296,6 +309,9 @@ export class DomRenderer {
|
|
|
296
309
|
if (payload.props['externalXYWH'])
|
|
297
310
|
return;
|
|
298
311
|
this._markElementDirty(payload.id, UpdateType.ELEMENT_UPDATED);
|
|
312
|
+
if (payload.props['index'] || payload.props['childIds']) {
|
|
313
|
+
this._markViewportDirty();
|
|
314
|
+
}
|
|
299
315
|
this.refresh();
|
|
300
316
|
}));
|
|
301
317
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createIdentifier } from '../../global/di/index.js';
|
|
2
2
|
import { BlockSuiteError, ErrorCode } from '../../global/exceptions/index.js';
|
|
3
|
-
import { GfxControllerIdentifier
|
|
3
|
+
import { GfxControllerIdentifier } from '../../std/gfx/index.js';
|
|
4
4
|
import { Extension } from '../../store/index.js';
|
|
5
5
|
/**
|
|
6
6
|
* An overlay is a layer covered on top of elements,
|
|
@@ -244,6 +244,14 @@ export class DefaultTool extends BaseTool {
|
|
|
244
244
|
if (this.selection.editing || preventDefaultState || handledByView)
|
|
245
245
|
return;
|
|
246
246
|
this.movementDragging = true;
|
|
247
|
+
// NOTE: no readonly branch here on purpose. The refusal lives one level
|
|
248
|
+
// down, in `InteractivityManager.handleElementMove` / `handleElementResize`
|
|
249
|
+
// / `handleElementRotate` / `requestElementClone` — the layer that actually
|
|
250
|
+
// writes `xywh` through `@field()` accessors, i.e. raw `store.transact`
|
|
251
|
+
// outside `EdgelessCRUDExtension`. Short-circuiting the drag HERE was both
|
|
252
|
+
// redundant (the net alone stops the write) and harmful: it left the tool
|
|
253
|
+
// holding a half-initialized selecting state, so once readonly was lifted
|
|
254
|
+
// the board no longer selected or moved anything.
|
|
247
255
|
// Determine the drag type based on the current state and event
|
|
248
256
|
let dragType = this._determineDragType(e);
|
|
249
257
|
const elements = this.selection.selectedElements;
|
|
@@ -17,9 +17,15 @@ export const getFontFaces = IS_FIREFOX
|
|
|
17
17
|
return fonts;
|
|
18
18
|
}
|
|
19
19
|
: () => [...document.fonts.keys()];
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Surface fonts are registered with quoted family names (see `wrapFontFamily`),
|
|
22
|
+
* while models store them unquoted (`blocksuite:surface:Inter`). Browsers do not
|
|
23
|
+
* agree on whether `FontFace.family` echoes those quotes back, so compare
|
|
24
|
+
* unquoted on both sides instead of branching on the engine — a mismatch makes
|
|
25
|
+
* `getFontFacesByFontFamily` return nothing and renders an empty font style menu.
|
|
26
|
+
*/
|
|
27
|
+
const unquoteFontFamily = (fontFamily) => fontFamily.replace(/^\s*["']|["']\s*$/g, '');
|
|
28
|
+
export const isSameFontFamily = (fontFamily) => (fontFace) => unquoteFontFamily(fontFace.family) === unquoteFontFamily(fontFamily);
|
|
23
29
|
export function getFontFacesByFontFamily(fontFamily) {
|
|
24
30
|
return (getFontFaces()
|
|
25
31
|
.filter(isSameFontFamily(fontFamily))
|
|
@@ -4,3 +4,20 @@ export declare class SurfaceViewExtension extends ViewExtensionProvider {
|
|
|
4
4
|
effect(): void;
|
|
5
5
|
setup(context: ViewExtensionContext): void;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* The AI audit seam — gated by the `ai-audit` capability switch (PF14.1).
|
|
9
|
+
*
|
|
10
|
+
* Its own extension, registered from `getInternalViewExtensions` only when the
|
|
11
|
+
* switch is on, because that is what makes the gate REAL: off, `map.audit` is
|
|
12
|
+
* never registered, so it is absent from the command registry, from both
|
|
13
|
+
* manifests and from the keymap at once — the same two-sided gating a framework
|
|
14
|
+
* flag gets, asserted by the same test.
|
|
15
|
+
*
|
|
16
|
+
* Nothing here is registered by {@link SurfaceViewExtension}: the audit is not
|
|
17
|
+
* part of a surface's job, and folding it in would make the switch a filter
|
|
18
|
+
* over something already wired instead of a decision not to wire it.
|
|
19
|
+
*/
|
|
20
|
+
export declare class AuditViewExtension extends ViewExtensionProvider {
|
|
21
|
+
name: string;
|
|
22
|
+
setup(context: ViewExtensionContext): void;
|
|
23
|
+
}
|