@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
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The promotion rung "component → materialities": qualify a surface element
|
|
3
|
+
* with a namespaced type-3 tag (MF3, ADR 0007 §§ 4 and 6).
|
|
4
|
+
*
|
|
5
|
+
* Same shape as `pivot.bind`, and for the same reason: the library fixes the
|
|
6
|
+
* format of tag definitions but does not own them — the host seeds them — so
|
|
7
|
+
* WHICH tag and WHICH values are parameters, never a lib-side enumeration. That
|
|
8
|
+
* is also what makes the command usable by the agent surface with no UI at all.
|
|
9
|
+
*
|
|
10
|
+
* Promotion is never a conversion: the element's `type` never changes, nothing
|
|
11
|
+
* is created, destroyed or swapped, and `xywh` / `rotate` / `index` / `seed` and
|
|
12
|
+
* every style field are untouched. The gesture is reversible — an empty `values`
|
|
13
|
+
* removes the tag — and no rung requires the previous one: an element may carry
|
|
14
|
+
* tags with no `pivotDocId`, and a `pivotDocId` with no `role`.
|
|
15
|
+
*/
|
|
16
|
+
import { TelemetryProvider } from '../../affine-shared/services/index.js';
|
|
17
|
+
import { FRAMEWORK_IDS, } from '../../std/index.js';
|
|
18
|
+
import { GfxControllerIdentifier, GfxPrimitiveElementModel, setElementTag, } from '../../std/gfx/index.js';
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
/**
|
|
21
|
+
* `values: []` removes the tag. Both keys are REQUIRED on purpose: an optional
|
|
22
|
+
* `values` would make a forgotten argument silently destroy a qualification,
|
|
23
|
+
* which is exactly the failure mode an agent-invocable command must not have.
|
|
24
|
+
*/
|
|
25
|
+
export const setTagParams = z.object({
|
|
26
|
+
/** Namespaced tag def id, e.g. `'wardley:nature'`. */
|
|
27
|
+
tag: z.string().min(1),
|
|
28
|
+
/**
|
|
29
|
+
* The value ids selected for that tag, e.g. `['wardley:nature/data']`.
|
|
30
|
+
* `[]` clears it.
|
|
31
|
+
*
|
|
32
|
+
* NOT validated against the registered defs. A document may legitimately
|
|
33
|
+
* carry an id whose def was removed, renamed or never seeded in this
|
|
34
|
+
* deployment, and the persisted value must accept any string — narrowing it
|
|
35
|
+
* here would push that case toward a load-time failure. The picker offers
|
|
36
|
+
* only defined values; the command does not police them.
|
|
37
|
+
*/
|
|
38
|
+
values: z.array(z.string()),
|
|
39
|
+
/**
|
|
40
|
+
* Explicit targets, for a host or an agent acting on something other than the
|
|
41
|
+
* live selection. **Omitted** — the key absent — the command acts on the
|
|
42
|
+
* current canvas selection.
|
|
43
|
+
*
|
|
44
|
+
* An EMPTY array is not the same thing: it means "these zero elements", so
|
|
45
|
+
* the command does nothing and does not fall back to the selection.
|
|
46
|
+
*/
|
|
47
|
+
elementIds: z.array(z.string()).optional(),
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* The elements this gesture would write to. Surface elements only: canvas
|
|
51
|
+
* BLOCKS carry a versioned schema, so qualifying them would be a `version` bump
|
|
52
|
+
* in `packages/affine/model` and is out of scope (ADR 0005 § 6).
|
|
53
|
+
*/
|
|
54
|
+
function tagTargets(std, elementIds) {
|
|
55
|
+
const gfx = std.get(GfxControllerIdentifier);
|
|
56
|
+
const models = elementIds
|
|
57
|
+
? elementIds.map(id => gfx.surface?.getElementById(id))
|
|
58
|
+
: gfx.selection.selectedElements;
|
|
59
|
+
return models.filter((model) => model instanceof GfxPrimitiveElementModel);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Whether this document may be written to at all.
|
|
63
|
+
*
|
|
64
|
+
* Checked in `run` and not only in `when`, for the reason `pivot.bind`
|
|
65
|
+
* documents: `when` is consulted by the SURFACES, and `runCommand` consults
|
|
66
|
+
* neither it nor `availability` — the palette and the agent reach `run`
|
|
67
|
+
* directly. Without this guard, removing a tag succeeds in a read-only
|
|
68
|
+
* document, because both `Store.transact` and `clearField` carry no read-only
|
|
69
|
+
* guard of their own.
|
|
70
|
+
*/
|
|
71
|
+
const isQualifiable = (std) => !std.store.readonly;
|
|
72
|
+
/** `'wardley:component'` → `'wardley'`, when that names a real framework. */
|
|
73
|
+
function frameworkOfRole(role) {
|
|
74
|
+
const namespace = role?.split(':')[0];
|
|
75
|
+
return FRAMEWORK_IDS.includes(namespace ?? '')
|
|
76
|
+
? namespace
|
|
77
|
+
: undefined;
|
|
78
|
+
}
|
|
79
|
+
/** The single value shared by every target, or `undefined` if they disagree. */
|
|
80
|
+
function unanimous(values) {
|
|
81
|
+
const distinct = new Set(values);
|
|
82
|
+
return distinct.size === 1 ? values[0] : undefined;
|
|
83
|
+
}
|
|
84
|
+
const setTag = {
|
|
85
|
+
id: 'tag.set',
|
|
86
|
+
owner: 'core',
|
|
87
|
+
kind: 'action',
|
|
88
|
+
// Not filed under `com.labre.keyboardShortcuts.*`: like `pivot.bind`, this
|
|
89
|
+
// one is keyless by intent and lives in the palette, the element toolbar and
|
|
90
|
+
// the agent, so that namespace would mislead a translator.
|
|
91
|
+
labelKey: 'com.labre.command.tag.set',
|
|
92
|
+
labelFallback: 'Qualify',
|
|
93
|
+
descriptionKey: 'com.labre.command.tag.set.description',
|
|
94
|
+
surfaces: ['palette', 'agent'],
|
|
95
|
+
scope: 'edgeless',
|
|
96
|
+
defaultKeys: { mac: [], other: [] },
|
|
97
|
+
availability: 'selection',
|
|
98
|
+
// Narrows `'selection'`, never contradicts it: a read-only document, and a
|
|
99
|
+
// selection of nothing but canvas blocks, both have no qualifiable target.
|
|
100
|
+
// Read-only rides on `when` rather than on `availability` because that union
|
|
101
|
+
// is one value per command and does not compose — the same arbitration
|
|
102
|
+
// `pivot.bind` records.
|
|
103
|
+
when: std => isQualifiable(std) && tagTargets(std).length > 0,
|
|
104
|
+
params: setTagParams,
|
|
105
|
+
run: (std, invocation, params) => {
|
|
106
|
+
const parsed = setTagParams.safeParse(params);
|
|
107
|
+
if (!parsed.success) {
|
|
108
|
+
console.error('tag.set: invalid params', parsed.error.issues);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const { tag, values, elementIds } = parsed.data;
|
|
112
|
+
// The load-bearing half of the read-only gate: see `isQualifiable`.
|
|
113
|
+
if (!isQualifiable(std))
|
|
114
|
+
return;
|
|
115
|
+
const targets = tagTargets(std, elementIds);
|
|
116
|
+
if (!targets.length)
|
|
117
|
+
return;
|
|
118
|
+
// BEFORE the write, not after. `store.transact()` is not an undo boundary:
|
|
119
|
+
// the `Y.UndoManager` is built with no `captureTimeout`, so Yjs's 500 ms
|
|
120
|
+
// default merges consecutive transactions — and a qualification issued
|
|
121
|
+
// within 500 ms of a drag would be undone TOGETHER with the drag, making
|
|
122
|
+
// the promotion look like it moved geometry (ADR 0007 § 6, as amended).
|
|
123
|
+
// `stopCapturing()` opens a new stack item for what comes NEXT, so it has
|
|
124
|
+
// to precede the write.
|
|
125
|
+
//
|
|
126
|
+
// Issued before knowing whether anything will change: `setElementTag`
|
|
127
|
+
// answers that per element, and an undo boundary with no write after it is
|
|
128
|
+
// inert, whereas a boundary opened too late is the defect this rule exists
|
|
129
|
+
// to prevent.
|
|
130
|
+
std.store.captureSync();
|
|
131
|
+
const changed = targets.filter(element => setElementTag(element, tag, values));
|
|
132
|
+
// A gesture that changes nothing emits nothing.
|
|
133
|
+
if (!changed.length)
|
|
134
|
+
return;
|
|
135
|
+
// The ONE emission for this gesture, self-emitted rather than routed
|
|
136
|
+
// through `runCommand`'s bottleneck: that emitter maps `CommandKind` onto
|
|
137
|
+
// the three CREATION events from a STATIC `{ framework, element }` on the
|
|
138
|
+
// descriptor, and a promotion is neither a creation nor static — `rung`,
|
|
139
|
+
// `direction` and `role` are facts of the invocation (ADR 0007 § 7).
|
|
140
|
+
const role = unanimous(changed.map(element => element.role));
|
|
141
|
+
std.getOptional(TelemetryProvider)?.track('FrameworkElementPromoted', {
|
|
142
|
+
page: 'whiteboard editor',
|
|
143
|
+
framework: frameworkOfRole(role),
|
|
144
|
+
rung: 'tag',
|
|
145
|
+
direction: values.length ? 'promote' : 'demote',
|
|
146
|
+
role,
|
|
147
|
+
elementCount: changed.length,
|
|
148
|
+
control: invocation.source,
|
|
149
|
+
module: invocation.surface,
|
|
150
|
+
});
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* The registry's element type erases the parameter contract
|
|
155
|
+
* ({@link AnyCommandDescriptor}); `run` re-validates with {@link setTagParams}
|
|
156
|
+
* rather than trusting the static type, which is what an agent-invocable
|
|
157
|
+
* command has to do anyway.
|
|
158
|
+
*/
|
|
159
|
+
export const tagCommands = [setTag];
|
|
@@ -44,6 +44,7 @@ export declare const builtinToolbarConfig: {
|
|
|
44
44
|
readonly tooltip?: string | import("lit-html").TemplateResult;
|
|
45
45
|
readonly score?: number;
|
|
46
46
|
readonly when?: ((cx: import("../../affine-shared/services/index.js").ToolbarContext) => boolean) | boolean;
|
|
47
|
+
readonly priority?: number;
|
|
47
48
|
readonly showLabel?: boolean;
|
|
48
49
|
readonly run?: (cx: import("../../affine-shared/services/index.js").ToolbarContext) => void;
|
|
49
50
|
readonly id: "g.comment";
|
|
@@ -5,9 +5,9 @@ import { EdgelessFrameManagerIdentifier } from '../../../../affine-block-frame/i
|
|
|
5
5
|
import { ImageBlockComponent } from '../../../../affine-block-image/index.js';
|
|
6
6
|
import { EdgelessCRUDIdentifier, getSurfaceComponent, } from '../../../../affine-block-surface/index.js';
|
|
7
7
|
import { createGroupFromSelectedCommand } from '../../../../affine-gfx-group/index.js';
|
|
8
|
-
import { AttachmentBlockModel, BookmarkBlockModel, EmbedLinkedDocBlockSchema, EmbedLinkedDocModel, EmbedSyncedDocBlockSchema, EmbedSyncedDocModel, FrameBlockModel, ImageBlockModel, isExternalEmbedModel, NoteBlockModel, ParagraphBlockModel, } from '../../../../affine-model/index.js';
|
|
8
|
+
import { AttachmentBlockModel, BookmarkBlockModel, EmbedLinkedDocBlockSchema, EmbedLinkedDocModel, EmbedSyncedDocBlockSchema, EmbedSyncedDocModel, FrameBlockModel, ImageBlockModel, isExternalEmbedModel, MindmapElementModel, NoteBlockModel, ParagraphBlockModel, } from '../../../../affine-model/index.js';
|
|
9
9
|
import { QuickSearchProvider } from '../../../../affine-shared/services/index.js';
|
|
10
|
-
import { matchModels
|
|
10
|
+
import { matchModels } from '../../../../affine-shared/utils/index.js';
|
|
11
11
|
import { Bound, getCommonBoundWithRotation } from '../../../../global/gfx/index.js';
|
|
12
12
|
import { ArrowDownBigBottomIcon, ArrowDownBigIcon, ArrowUpBigIcon, ArrowUpBigTopIcon, CopyIcon, DeleteIcon, DuplicateIcon, FrameIcon, GroupIcon, LinkIcon, LinkedPageIcon, ResetIcon, UnlinkIcon, } from '@blocksuite/icons/lit';
|
|
13
13
|
import { GfxBlockElementModel, GfxPrimitiveElementModel, } from '../../../../std/gfx/index.js';
|
|
@@ -426,7 +426,14 @@ function linkElementViaQuickSearch(ctx, el) {
|
|
|
426
426
|
function reorderElements(ctx, models, type) {
|
|
427
427
|
if (!models.length)
|
|
428
428
|
return;
|
|
429
|
-
|
|
429
|
+
// A mindmap node has no index of its own: the whole mindmap moves as one, so
|
|
430
|
+
// reorder the container instead — and only once, however many of its nodes
|
|
431
|
+
// are in the selection.
|
|
432
|
+
const normalizedModels = Array.from(new Map(models.map(model => {
|
|
433
|
+
const reorderTarget = model.group instanceof MindmapElementModel ? model.group : model;
|
|
434
|
+
return [reorderTarget.id, reorderTarget];
|
|
435
|
+
})).values());
|
|
436
|
+
for (const model of normalizedModels) {
|
|
430
437
|
const index = ctx.gfx.layer.getReorderedIndex(model, type);
|
|
431
438
|
// block should be updated in transaction
|
|
432
439
|
if (model instanceof GfxBlockElementModel) {
|
|
@@ -68,7 +68,7 @@ export function createLinkedDocFromEdgelessElements(host, elements, docTitle) {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
else {
|
|
71
|
-
const props = getElementProps(model, ids);
|
|
71
|
+
const props = getElementProps(model, ids, sortedElements);
|
|
72
72
|
newId = surface.addElement(props);
|
|
73
73
|
}
|
|
74
74
|
ids.set(model.id, newId);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { insertLinkByQuickSearchCommand } from '../../affine-block-bookmark/index.js';
|
|
2
2
|
import { EdgelessTextBlockComponent } from '../../affine-block-edgeless-text/index.js';
|
|
3
|
-
import { FrameTool
|
|
3
|
+
import { FrameTool } from '../../affine-block-frame/index.js';
|
|
4
4
|
import { DefaultTool, EdgelessLegacySlotIdentifier, isNoteBlock, } from '../../affine-block-surface/index.js';
|
|
5
5
|
import { toast } from '../../affine-components/toast/index.js';
|
|
6
6
|
import { BrushTool, EraserTool, HighlighterTool, } from '../../affine-gfx-brush/index.js';
|
|
@@ -90,6 +90,11 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
|
|
|
90
90
|
f: () => {
|
|
91
91
|
if (this.rootComponent.service.locked)
|
|
92
92
|
return;
|
|
93
|
+
// `createFrameOnSelected` reaches `store.addBlock`, which throws on
|
|
94
|
+
// readonly; `_setEdgelessTool` below is guarded too, but the branch
|
|
95
|
+
// taken depends on the selection, so refuse the whole gesture here.
|
|
96
|
+
if (this.rootComponent.store.readonly)
|
|
97
|
+
return;
|
|
93
98
|
if (this.rootComponent.service.selection.selectedElements.length !==
|
|
94
99
|
0 &&
|
|
95
100
|
!this.rootComponent.service.selection.editing) {
|
|
@@ -307,6 +312,9 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
|
|
|
307
312
|
if (!isSingleMindMapNode(elements)) {
|
|
308
313
|
return;
|
|
309
314
|
}
|
|
315
|
+
// `mindmap.addNode` writes through a raw `transact`.
|
|
316
|
+
if (rootComponent.store.readonly)
|
|
317
|
+
return;
|
|
310
318
|
const mindmap = elements[0].group;
|
|
311
319
|
const currentNode = mindmap.getNode(elements[0].id);
|
|
312
320
|
const node = mindmap.getNode(elements[0].id);
|
|
@@ -329,6 +337,9 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
|
|
|
329
337
|
if (!isSingleMindMapNode(elements)) {
|
|
330
338
|
return;
|
|
331
339
|
}
|
|
340
|
+
// Same raw-`transact` path as Enter's `addNode`.
|
|
341
|
+
if (rootComponent.store.readonly)
|
|
342
|
+
return;
|
|
332
343
|
const mindmap = elements[0].group;
|
|
333
344
|
if (mindmap.isLocked())
|
|
334
345
|
return;
|
|
@@ -368,7 +379,9 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
|
|
|
368
379
|
!event.metaKey) {
|
|
369
380
|
const elements = selection.selectedElements;
|
|
370
381
|
const doc = this.rootComponent.store;
|
|
371
|
-
|
|
382
|
+
// Raw `transact` on a surface element: readonly-guarded here, since
|
|
383
|
+
// the store itself does not guard transactions.
|
|
384
|
+
if (isSingleMindMapNode(elements) && !doc.readonly) {
|
|
372
385
|
const target = gfx.getElementById(elements[0].id);
|
|
373
386
|
if (target.text) {
|
|
374
387
|
doc.transact(() => {
|
|
@@ -392,6 +405,10 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
|
|
|
392
405
|
}
|
|
393
406
|
_delete() {
|
|
394
407
|
const edgeless = this.rootComponent;
|
|
408
|
+
// Deletion bypasses the store's block CRUD for canvas elements
|
|
409
|
+
// (`surface.deleteElement` is a raw `transact`).
|
|
410
|
+
if (edgeless.store.readonly)
|
|
411
|
+
return;
|
|
395
412
|
if (edgeless.service.locked)
|
|
396
413
|
return;
|
|
397
414
|
if (edgeless.service.selection.editing) {
|
|
@@ -469,6 +486,10 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
|
|
|
469
486
|
}
|
|
470
487
|
return;
|
|
471
488
|
}
|
|
489
|
+
// After the mindmap branch: arrow-key NAVIGATION stays available on a
|
|
490
|
+
// readonly board, moving elements (raw field writes) does not.
|
|
491
|
+
if (edgeless.store.readonly)
|
|
492
|
+
return;
|
|
472
493
|
if (selectedElements.some(e => e.isLocked()))
|
|
473
494
|
return;
|
|
474
495
|
const movedElements = new Set([
|
|
@@ -505,6 +526,10 @@ export class EdgelessPageKeyboardManager extends PageKeyboardManager {
|
|
|
505
526
|
});
|
|
506
527
|
}
|
|
507
528
|
_setEdgelessTool(toolType, ...options) {
|
|
529
|
+
// No readonly guard here: `gfx.tool.setTool` below is the bottleneck and
|
|
530
|
+
// carries `READONLY_SAFE_TOOLS` for every entry point, including the ones
|
|
531
|
+
// that never come through this manager (`s` is bound by
|
|
532
|
+
// `shape-draggable.ts` straight onto the toolbar mixin).
|
|
508
533
|
const ignoreActiveState = typeof options === 'boolean'
|
|
509
534
|
? options[0]
|
|
510
535
|
: options[1] === undefined
|
|
@@ -286,7 +286,12 @@ let EdgelessRootBlockComponent = (() => {
|
|
|
286
286
|
}
|
|
287
287
|
// pan
|
|
288
288
|
else {
|
|
289
|
-
|
|
289
|
+
// Shift+wheel means "scroll sideways" on every platform. Windows
|
|
290
|
+
// never sends a horizontal delta for it, so the vertical one has to
|
|
291
|
+
// be reinterpreted; elsewhere the OS does it natively for trackpads
|
|
292
|
+
// and horizontal-capable mice, and `deltaX === 0` is what a plain
|
|
293
|
+
// mouse — with nothing but a vertical wheel — leaves us to work with.
|
|
294
|
+
const simulateHorizontalScroll = e.shiftKey && (IS_WINDOWS || e.deltaX === 0);
|
|
290
295
|
const dx = simulateHorizontalScroll
|
|
291
296
|
? e.deltaY / viewport.zoom
|
|
292
297
|
: e.deltaX / viewport.zoom;
|
|
@@ -305,7 +310,11 @@ let EdgelessRootBlockComponent = (() => {
|
|
|
305
310
|
const handler = keymap[key];
|
|
306
311
|
keymap[key] = ctx => {
|
|
307
312
|
const elements = selection.selectedElements;
|
|
308
|
-
|
|
313
|
+
// The mindmap branch overwrites the node's text through a raw
|
|
314
|
+
// `transact`, which has no readonly guard of its own.
|
|
315
|
+
if (isSingleMindMapNode(elements) &&
|
|
316
|
+
!selection.editing &&
|
|
317
|
+
!this.store.readonly) {
|
|
309
318
|
const target = gfx.getElementById(elements[0].id);
|
|
310
319
|
if (target.text) {
|
|
311
320
|
this.store.transact(() => {
|
|
@@ -104,6 +104,15 @@ export class EdgelessRootService extends BlockService {
|
|
|
104
104
|
this._initReadonlyListener();
|
|
105
105
|
}
|
|
106
106
|
removeElement(id) {
|
|
107
|
+
// Word-for-word duplicate of `EdgelessCRUDExtension.removeElement`, so it
|
|
108
|
+
// carries the same guard — see the comment there. Today it is only
|
|
109
|
+
// reachable through the element toolbar (already inert on readonly), but a
|
|
110
|
+
// guard-less parallel API is exactly the door the next caller walks
|
|
111
|
+
// through.
|
|
112
|
+
if (this.doc.readonly) {
|
|
113
|
+
console.error('cannot remove element in readonly mode');
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
107
116
|
id = typeof id === 'string' ? id : id.id;
|
|
108
117
|
const el = this.crud.getElementById(id);
|
|
109
118
|
if (isGfxGroupCompatibleModel(el)) {
|
|
@@ -121,6 +130,11 @@ export class EdgelessRootService extends BlockService {
|
|
|
121
130
|
}
|
|
122
131
|
}
|
|
123
132
|
reorderElement(element, direction) {
|
|
133
|
+
// `element.index = …` is a raw transaction on both branches below.
|
|
134
|
+
if (this.doc.readonly) {
|
|
135
|
+
console.error('cannot reorder element in readonly mode');
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
124
138
|
const index = this.layer.getReorderedIndex(element, direction);
|
|
125
139
|
// block should be updated in transaction
|
|
126
140
|
if (element instanceof GfxBlockElementModel) {
|
|
@@ -3,6 +3,7 @@ export * from './clipboard/clipboard.js';
|
|
|
3
3
|
export * from './clipboard/command.js';
|
|
4
4
|
export * from './edgeless-root-block.js';
|
|
5
5
|
export { EdgelessRootService } from './edgeless-root-service.js';
|
|
6
|
+
export { RESERVED_EDGELESS_KEYS, type ReservedEdgelessKey, } from './reserved-keys.js';
|
|
6
7
|
export * from './utils/clipboard-utils.js';
|
|
7
8
|
export { sortEdgelessElements } from './utils/clone-utils.js';
|
|
8
9
|
export { isCanvasElement } from './utils/query.js';
|
|
@@ -3,6 +3,7 @@ export * from './clipboard/clipboard.js';
|
|
|
3
3
|
export * from './clipboard/command.js';
|
|
4
4
|
export * from './edgeless-root-block.js';
|
|
5
5
|
export { EdgelessRootService } from './edgeless-root-service.js';
|
|
6
|
+
export { RESERVED_EDGELESS_KEYS, } from './reserved-keys.js';
|
|
6
7
|
export * from './utils/clipboard-utils.js';
|
|
7
8
|
export { sortEdgelessElements } from './utils/clone-utils.js';
|
|
8
9
|
export { isCanvasElement } from './utils/query.js';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single-keystroke edgeless bindings owned by imperative code — the raw
|
|
3
|
+
* `bindHotKey({...})` call in `edgeless-keyboard.ts`, which predates the
|
|
4
|
+
* shortcut manifest.
|
|
5
|
+
*
|
|
6
|
+
* Those bindings are not `ShortcutDescriptor`s, so `resolveKeymap` cannot see
|
|
7
|
+
* them and cannot report a conflict against them: an EDGY chord on `e` would
|
|
8
|
+
* silently shadow the eraser. Until they are folded into real descriptors
|
|
9
|
+
* (sequenced AFTER the PF3 switchover — several of them are stateful cycles,
|
|
10
|
+
* not commands, so expressing them changes their semantics), this list is what
|
|
11
|
+
* closes the hole. It is asserted against the real bindings by a mirror test
|
|
12
|
+
* and checked against every `FrameworkDescriptor.chordPrefix`.
|
|
13
|
+
*
|
|
14
|
+
* `Mod-`-prefixed bindings are deliberately absent: a framework chord prefix is
|
|
15
|
+
* a bare letter, so only the bare-letter bindings can collide with one.
|
|
16
|
+
*
|
|
17
|
+
* See `docs/adr/0008` § Reserving the prefix letter. When surface (e) becomes
|
|
18
|
+
* descriptors, this constant is deleted.
|
|
19
|
+
*/
|
|
20
|
+
export declare const RESERVED_EDGELESS_KEYS: readonly ["v", "t", "c", "h", "n", "p", "Shift-p", "e", "k", "f", "-", "@", "Shift-s"];
|
|
21
|
+
export type ReservedEdgelessKey = (typeof RESERVED_EDGELESS_KEYS)[number];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single-keystroke edgeless bindings owned by imperative code — the raw
|
|
3
|
+
* `bindHotKey({...})` call in `edgeless-keyboard.ts`, which predates the
|
|
4
|
+
* shortcut manifest.
|
|
5
|
+
*
|
|
6
|
+
* Those bindings are not `ShortcutDescriptor`s, so `resolveKeymap` cannot see
|
|
7
|
+
* them and cannot report a conflict against them: an EDGY chord on `e` would
|
|
8
|
+
* silently shadow the eraser. Until they are folded into real descriptors
|
|
9
|
+
* (sequenced AFTER the PF3 switchover — several of them are stateful cycles,
|
|
10
|
+
* not commands, so expressing them changes their semantics), this list is what
|
|
11
|
+
* closes the hole. It is asserted against the real bindings by a mirror test
|
|
12
|
+
* and checked against every `FrameworkDescriptor.chordPrefix`.
|
|
13
|
+
*
|
|
14
|
+
* `Mod-`-prefixed bindings are deliberately absent: a framework chord prefix is
|
|
15
|
+
* a bare letter, so only the bare-letter bindings can collide with one.
|
|
16
|
+
*
|
|
17
|
+
* See `docs/adr/0008` § Reserving the prefix letter. When surface (e) becomes
|
|
18
|
+
* descriptors, this constant is deleted.
|
|
19
|
+
*/
|
|
20
|
+
export const RESERVED_EDGELESS_KEYS = [
|
|
21
|
+
'v',
|
|
22
|
+
't',
|
|
23
|
+
'c',
|
|
24
|
+
'h',
|
|
25
|
+
'n',
|
|
26
|
+
'p',
|
|
27
|
+
'Shift-p',
|
|
28
|
+
'e',
|
|
29
|
+
'k',
|
|
30
|
+
'f',
|
|
31
|
+
'-',
|
|
32
|
+
'@',
|
|
33
|
+
'Shift-s',
|
|
34
|
+
];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isFrameBlock } from '../../../affine-block-frame/index.js';
|
|
2
|
-
import { getSurfaceComponent, isNoteBlock
|
|
2
|
+
import { getSurfaceComponent, isNoteBlock } from '../../../affine-block-surface/index.js';
|
|
3
3
|
import { getElementsWithoutGroup } from '../../../affine-shared/utils/index.js';
|
|
4
4
|
import { getCommonBoundWithRotation } from '../../../global/gfx/index.js';
|
|
5
5
|
import { GfxControllerIdentifier } from '../../../std/gfx/index.js';
|
|
@@ -52,4 +52,10 @@ export declare function mapFrameIds(props: FrameBlockProps, ids: Map<string, str
|
|
|
52
52
|
* @returns updated element props
|
|
53
53
|
*/
|
|
54
54
|
export declare function mapMindmapIds(props: SerializedMindmapElement, ids: Map<string, string>): SerializedMindmapElement;
|
|
55
|
-
|
|
55
|
+
/**
|
|
56
|
+
* @param element the element to serialize
|
|
57
|
+
* @param ids old element id to new element id map
|
|
58
|
+
* @param elements the set of elements being cloned, used to detect connector
|
|
59
|
+
* endpoints that are left behind
|
|
60
|
+
*/
|
|
61
|
+
export declare function getElementProps(element: GfxPrimitiveElementModel, ids: Map<string, string>, elements: GfxModel[]): SerializedElement;
|
|
@@ -162,9 +162,18 @@ export function mapMindmapIds(props, ids) {
|
|
|
162
162
|
}
|
|
163
163
|
return props;
|
|
164
164
|
}
|
|
165
|
-
|
|
165
|
+
/**
|
|
166
|
+
* @param element the element to serialize
|
|
167
|
+
* @param ids old element id to new element id map
|
|
168
|
+
* @param elements the set of elements being cloned, used to detect connector
|
|
169
|
+
* endpoints that are left behind
|
|
170
|
+
*/
|
|
171
|
+
export function getElementProps(element, ids, elements) {
|
|
166
172
|
if (element instanceof ConnectorElementModel) {
|
|
167
|
-
|
|
173
|
+
// An endpoint whose element is not part of the cloned set is turned into an
|
|
174
|
+
// absolute position instead of keeping an id that resolves to nothing in
|
|
175
|
+
// the target document.
|
|
176
|
+
const props = serializeConnector(element, elements);
|
|
168
177
|
return mapConnectorIds(props, ids);
|
|
169
178
|
}
|
|
170
179
|
if (element instanceof GroupElementModel) {
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export * from './adapters/index.js';
|
|
2
2
|
export * from './clipboard/index.js';
|
|
3
|
+
export * from './commands/pivot-commands.js';
|
|
4
|
+
export * from './commands/reading-commands.js';
|
|
5
|
+
export * from './commands/tag-commands.js';
|
|
3
6
|
export * from './edgeless/edgeless-root-spec.js';
|
|
4
7
|
export * from './edgeless/index.js';
|
|
5
|
-
export * from './keyboard/
|
|
8
|
+
export * from './keyboard/commands.js';
|
|
6
9
|
export * from './page/page-root-block.js';
|
|
7
10
|
export * from './preview/preview-root-block.js';
|
|
8
11
|
export * from './types.js';
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export * from './adapters/index.js';
|
|
2
2
|
export * from './clipboard/index.js';
|
|
3
|
+
export * from './commands/pivot-commands.js';
|
|
4
|
+
export * from './commands/reading-commands.js';
|
|
5
|
+
export * from './commands/tag-commands.js';
|
|
3
6
|
export * from './edgeless/edgeless-root-spec.js';
|
|
4
7
|
export * from './edgeless/index.js';
|
|
5
|
-
export * from './keyboard/
|
|
8
|
+
export * from './keyboard/commands.js';
|
|
6
9
|
export * from './page/page-root-block.js';
|
|
7
10
|
export * from './preview/preview-root-block.js';
|
|
8
11
|
export * from './types.js';
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { EdgelessCRUDIdentifier, getLastPropsKey, } from '../../affine-block-surface/index.js';
|
|
2
|
+
import { EditPropsStore } from '../../affine-shared/services/index.js';
|
|
3
|
+
import { pickStylePropsForKey } from '../../affine-shared/utils/index.js';
|
|
4
|
+
import { IS_WINDOWS } from '../../global/env/index.js';
|
|
5
|
+
import { GfxControllerIdentifier, GfxPrimitiveElementModel, } from '../../std/gfx/index.js';
|
|
6
|
+
import { duplicate } from '../edgeless/utils/clipboard-utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* Core (always-on) commands, expressed as {@link CommandDescriptor}s.
|
|
9
|
+
*
|
|
10
|
+
* They were already rebindable descriptors; PF3 promotes them to the single
|
|
11
|
+
* source so the keymap, Settings › Shortcuts and the palette read ONE list
|
|
12
|
+
* (`docs/adr/0008`). Ids, `labelKey`s and `defaultKeys` are carried over
|
|
13
|
+
* verbatim — persisted v0.29 override tables stay valid.
|
|
14
|
+
*
|
|
15
|
+
* They carry no `telemetry`: undo/redo/duplicate emitted nothing before, and
|
|
16
|
+
* the bottleneck only emits what a descriptor declares.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* The elements the "apply last style" gesture would actually repaint, with the
|
|
20
|
+
* schema-filtered props each would receive.
|
|
21
|
+
*
|
|
22
|
+
* Computed by the `when` predicate AND by `run`, on purpose: the projection to
|
|
23
|
+
* a shortcut only consumes the keystroke when `when` holds, and this gesture
|
|
24
|
+
* must fall through when it has nothing to apply — on Windows `Mod+Y` is also
|
|
25
|
+
* the `redo-windows` alias, which has to keep working.
|
|
26
|
+
*/
|
|
27
|
+
function lastStyleTargets(std) {
|
|
28
|
+
// Readonly: nothing to repaint, so `when` fails and the keystroke falls
|
|
29
|
+
// through (on Windows Mod+Y is also the redo alias, itself readonly-gated).
|
|
30
|
+
if (std.store.readonly)
|
|
31
|
+
return [];
|
|
32
|
+
const gfx = std.get(GfxControllerIdentifier);
|
|
33
|
+
const lastStyle = std.get(EditPropsStore).lastUsedStyle$.value;
|
|
34
|
+
if (!Object.keys(lastStyle).length)
|
|
35
|
+
return [];
|
|
36
|
+
return gfx.selection.selectedElements.flatMap(element => {
|
|
37
|
+
const isPrimitive = element instanceof GfxPrimitiveElementModel;
|
|
38
|
+
const key = getLastPropsKey(isPrimitive ? element.type : element.flavour, (isPrimitive ? element.serialize() : {}));
|
|
39
|
+
const props = key ? pickStylePropsForKey(key, lastStyle) : null;
|
|
40
|
+
return props ? [{ id: element.id, props }] : [];
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export const coreCommands = [
|
|
44
|
+
{
|
|
45
|
+
id: 'undo',
|
|
46
|
+
owner: 'core',
|
|
47
|
+
kind: 'action',
|
|
48
|
+
labelKey: 'com.affine.keyboardShortcuts.undo',
|
|
49
|
+
labelFallback: 'Undo',
|
|
50
|
+
surfaces: ['palette', 'agent'],
|
|
51
|
+
scope: 'global',
|
|
52
|
+
defaultKeys: { mac: ['Mod-z'], other: ['Mod-z'] },
|
|
53
|
+
availability: 'always',
|
|
54
|
+
run: std => {
|
|
55
|
+
if (std.store.canUndo)
|
|
56
|
+
std.store.undo();
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: 'redo',
|
|
61
|
+
owner: 'core',
|
|
62
|
+
kind: 'action',
|
|
63
|
+
labelKey: 'com.affine.keyboardShortcuts.redo',
|
|
64
|
+
labelFallback: 'Redo',
|
|
65
|
+
surfaces: ['palette', 'agent'],
|
|
66
|
+
scope: 'global',
|
|
67
|
+
defaultKeys: { mac: ['Shift-Mod-z'], other: ['Shift-Mod-z'] },
|
|
68
|
+
availability: 'always',
|
|
69
|
+
run: std => {
|
|
70
|
+
if (std.store.canRedo)
|
|
71
|
+
std.store.redo();
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
// Windows-only redo alias (Ctrl+Y); not bound on mac (empty combo).
|
|
76
|
+
id: 'redo-windows',
|
|
77
|
+
owner: 'core',
|
|
78
|
+
kind: 'action',
|
|
79
|
+
labelKey: 'com.affine.keyboardShortcuts.redo',
|
|
80
|
+
labelFallback: 'Redo',
|
|
81
|
+
// Not offered as a command: it is a platform alias of `redo`, not a second
|
|
82
|
+
// capability. It stays bindable in Settings › Shortcuts like every command.
|
|
83
|
+
surfaces: [],
|
|
84
|
+
scope: 'global',
|
|
85
|
+
defaultKeys: { mac: [], other: ['Control-y'] },
|
|
86
|
+
availability: 'always',
|
|
87
|
+
when: () => IS_WINDOWS,
|
|
88
|
+
run: std => {
|
|
89
|
+
if (std.store.canRedo)
|
|
90
|
+
std.store.redo();
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
// Duplicate the current edgeless selection. Mod+D is the browser
|
|
95
|
+
// "add bookmark" gesture, so the projection always preventDefaults when it
|
|
96
|
+
// acts. On mac Mod resolves to Cmd (Cmd+D = duplicate) which coexists with
|
|
97
|
+
// the imperative Ctrl+D = delete binding (see `edgeless-keyboard.ts`); on
|
|
98
|
+
// Windows/Linux Mod resolves to Ctrl (Ctrl+D = duplicate).
|
|
99
|
+
id: 'duplicate',
|
|
100
|
+
owner: 'core',
|
|
101
|
+
kind: 'action',
|
|
102
|
+
labelKey: 'com.affine.keyboardShortcuts.duplicate',
|
|
103
|
+
labelFallback: 'Duplicate',
|
|
104
|
+
surfaces: ['palette', 'agent'],
|
|
105
|
+
scope: 'edgeless',
|
|
106
|
+
defaultKeys: { mac: ['Mod-d'], other: ['Mod-d'] },
|
|
107
|
+
availability: 'selection',
|
|
108
|
+
run: std => {
|
|
109
|
+
const elements = std.get(GfxControllerIdentifier).selection
|
|
110
|
+
.selectedElements;
|
|
111
|
+
const rootId = std.store.root?.id;
|
|
112
|
+
const edgeless = rootId ? std.view.getBlock(rootId) : null;
|
|
113
|
+
if (!edgeless)
|
|
114
|
+
return;
|
|
115
|
+
duplicate(edgeless, elements).catch(console.error);
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
// Apply the last used style to the selected elements. "Last used" is the
|
|
120
|
+
// flat accumulation of every style prop the user recorded (every style
|
|
121
|
+
// edit and style pick records it), across element types: a fill picked on
|
|
122
|
+
// a rect repaints an ellipse, a font style set on a text restyles a
|
|
123
|
+
// shape. Each element only receives the props its own type supports —
|
|
124
|
+
// schema-filtered per prop, so geometry and content are never touched.
|
|
125
|
+
id: 'applyLastStyle',
|
|
126
|
+
owner: 'core',
|
|
127
|
+
kind: 'action',
|
|
128
|
+
labelKey: 'com.affine.keyboardShortcuts.applyLastStyle',
|
|
129
|
+
labelFallback: 'Apply last style',
|
|
130
|
+
surfaces: ['palette', 'agent'],
|
|
131
|
+
scope: 'edgeless',
|
|
132
|
+
defaultKeys: { mac: ['Mod-y'], other: ['Mod-y'] },
|
|
133
|
+
availability: 'selection',
|
|
134
|
+
when: std => lastStyleTargets(std).length > 0,
|
|
135
|
+
run: std => {
|
|
136
|
+
const targets = lastStyleTargets(std);
|
|
137
|
+
if (!targets.length)
|
|
138
|
+
return;
|
|
139
|
+
// One history frame: a single undo restores the previous styles.
|
|
140
|
+
std.store.captureSync();
|
|
141
|
+
const crud = std.get(EdgelessCRUDIdentifier);
|
|
142
|
+
for (const { id, props } of targets) {
|
|
143
|
+
crud.updateElement(id, props);
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
];
|