@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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Overlay } from '../affine-block-surface/index.js';
|
|
2
|
+
import { FrameworkBackgroundElementModel } from '../affine-model/index.js';
|
|
2
3
|
import { EditPropsStore } from '../affine-shared/services/index.js';
|
|
3
4
|
import { DisposableGroup } from '../global/disposable/index.js';
|
|
4
5
|
import { BlockSuiteError, ErrorCode } from '../global/exceptions/index.js';
|
|
@@ -186,8 +187,12 @@ export class EdgelessFrameManager extends GfxExtension {
|
|
|
186
187
|
element.hasChild(frame)) {
|
|
187
188
|
return;
|
|
188
189
|
}
|
|
189
|
-
// Only add elements that aren't already grouped and have a valid
|
|
190
|
-
|
|
190
|
+
// Only add elements that aren't already grouped and have a valid
|
|
191
|
+
// frame, and never let the frame swallow a backdrop that encloses
|
|
192
|
+
// it (e.g. a Wardley map background the frame was drawn on top of).
|
|
193
|
+
if (!element.group &&
|
|
194
|
+
frame &&
|
|
195
|
+
!this._enclosesFrame(element, frame)) {
|
|
191
196
|
this._adoptNewlyCreatedElement(frame, element);
|
|
192
197
|
}
|
|
193
198
|
});
|
|
@@ -204,6 +209,12 @@ export class EdgelessFrameManager extends GfxExtension {
|
|
|
204
209
|
payload.model.containsBound(frame.elementBound)) {
|
|
205
210
|
return;
|
|
206
211
|
}
|
|
212
|
+
// A block that encloses the frame is a backdrop, not frame content —
|
|
213
|
+
// adopting it would bury the frame behind its own child (see
|
|
214
|
+
// `_enclosesFrame`).
|
|
215
|
+
if (this._enclosesFrame(payload.model, frame)) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
207
218
|
if (payload.isLocal) {
|
|
208
219
|
this._adoptNewlyCreatedElement(frame, payload.model);
|
|
209
220
|
}
|
|
@@ -216,6 +227,27 @@ export class EdgelessFrameManager extends GfxExtension {
|
|
|
216
227
|
}
|
|
217
228
|
}));
|
|
218
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Whether `element` fully encloses `frame`.
|
|
232
|
+
*
|
|
233
|
+
* A frame always renders behind everything it owns (`compare` short-circuits
|
|
234
|
+
* on the ancestor relationship, ignoring indexes) and "bring to front" only
|
|
235
|
+
* reorders top-level siblings — a grouped child is no longer one. So if a
|
|
236
|
+
* frame auto-adopted an element that encloses it (a Wardley map background
|
|
237
|
+
* the frame was drawn on top of, matched only because its center happened to
|
|
238
|
+
* fall inside the frame), the frame would be permanently buried behind its
|
|
239
|
+
* own child with no way to raise it. Such a backdrop must never become frame
|
|
240
|
+
* content. Mirrors the existing frame-inside-frame guard for canvas elements.
|
|
241
|
+
*/
|
|
242
|
+
_enclosesFrame(element, frame) {
|
|
243
|
+
// A framework background is never frame content, whatever its geometry:
|
|
244
|
+
// the geometric test below has a hole (a frame TALLER than the map
|
|
245
|
+
// satisfies center-in-frame adoption without being fully enclosed), and
|
|
246
|
+
// since PF2 the model says outright what the geometry only hinted at.
|
|
247
|
+
if (element instanceof FrameworkBackgroundElementModel)
|
|
248
|
+
return true;
|
|
249
|
+
return element.elementBound.contains(frame.elementBound);
|
|
250
|
+
}
|
|
219
251
|
/**
|
|
220
252
|
* Adopt an element that was just created inside the frame's bounds.
|
|
221
253
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefaultTool, OverlayIdentifier
|
|
1
|
+
import { DefaultTool, OverlayIdentifier } from '../affine-block-surface/index.js';
|
|
2
2
|
import { EditPropsStore, TelemetryProvider, } from '../affine-shared/services/index.js';
|
|
3
3
|
import { Bound, Vec } from '../global/gfx/index.js';
|
|
4
4
|
import { BaseTool, getTopElements } from '../std/gfx/index.js';
|
|
@@ -36,7 +36,7 @@ import { focusBlockEnd, focusBlockStart, getNextBlockCommand, getPrevBlockComman
|
|
|
36
36
|
import { ImageSelection } from '../../affine-shared/selection/index.js';
|
|
37
37
|
import { unsafeCSSVarV2 } from '../../affine-shared/theme/index.js';
|
|
38
38
|
import { SignalWatcher, WithDisposable } from '../../global/lit/index.js';
|
|
39
|
-
import { BlockSelection, ShadowlessElement, TextSelection
|
|
39
|
+
import { BlockSelection, ShadowlessElement, TextSelection } from '../../std/index.js';
|
|
40
40
|
import { computed } from '@preact/signals-core';
|
|
41
41
|
import { css, html } from 'lit';
|
|
42
42
|
import { property, query } from 'lit/decorators.js';
|
|
@@ -35,7 +35,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
35
35
|
import { LoadingIcon } from '../affine-components/icons/index.js';
|
|
36
36
|
import { Peekable } from '../affine-components/peek/index.js';
|
|
37
37
|
import { ResourceController } from '../affine-components/resource/index.js';
|
|
38
|
-
import { ImageBlockSchema
|
|
38
|
+
import { ImageBlockSchema } from '../affine-model/index.js';
|
|
39
39
|
import { cssVarV2, unsafeCSSVarV2 } from '../affine-shared/theme/index.js';
|
|
40
40
|
import { formatSize } from '../affine-shared/utils/index.js';
|
|
41
41
|
import { BrokenImageIcon, ImageIcon } from '@blocksuite/icons/lit';
|
|
@@ -8,7 +8,12 @@ export const latexBlockStyles = css `
|
|
|
8
8
|
height: 100%;
|
|
9
9
|
padding: 10px 24px;
|
|
10
10
|
flex-direction: column;
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The rendered formula must span the container so a wide equation can be
|
|
13
|
+
* scrolled through (overflow-x below); centring shrank it to its content
|
|
14
|
+
* and pushed the overflow out of reach.
|
|
15
|
+
*/
|
|
16
|
+
align-items: stretch;
|
|
12
17
|
justify-content: center;
|
|
13
18
|
border-radius: 4px;
|
|
14
19
|
overflow-x: auto;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ListBlockModel } from '../../affine-model/index.js';
|
|
2
|
-
import { getNextContentBlock, matchModels
|
|
2
|
+
import { getNextContentBlock, matchModels } from '../../affine-shared/utils/index.js';
|
|
3
3
|
import { TextSelection } from '../../std/index.js';
|
|
4
4
|
// When deleting at line end of a list block,
|
|
5
5
|
// check current block's children and siblings
|
|
@@ -30,6 +30,15 @@ export declare class EdgelessNoteBlockComponent extends EdgelessNoteBlockCompone
|
|
|
30
30
|
};
|
|
31
31
|
firstUpdated(): void;
|
|
32
32
|
updated(changedProperties: PropertyValues): void;
|
|
33
|
+
/**
|
|
34
|
+
* A note carries its own `scale` on top of the viewport zoom. That scale
|
|
35
|
+
* belongs to the host element's transform, not to an inner wrapper: the
|
|
36
|
+
* element is laid out from the *unscaled* bound (see `getRenderingRect`), so
|
|
37
|
+
* scaling only the content would leave the element's box — the thing hit
|
|
38
|
+
* tests, the selection rect and the toolbar anchor read — out of step with
|
|
39
|
+
* what is painted at any scale other than 100%.
|
|
40
|
+
*/
|
|
41
|
+
getCSSTransform(): string;
|
|
33
42
|
getRenderingRect(): {
|
|
34
43
|
x: number;
|
|
35
44
|
y: number;
|
|
@@ -246,6 +246,18 @@ let EdgelessNoteBlockComponent = (() => {
|
|
|
246
246
|
});
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* A note carries its own `scale` on top of the viewport zoom. That scale
|
|
251
|
+
* belongs to the host element's transform, not to an inner wrapper: the
|
|
252
|
+
* element is laid out from the *unscaled* bound (see `getRenderingRect`), so
|
|
253
|
+
* scaling only the content would leave the element's box — the thing hit
|
|
254
|
+
* tests, the selection rect and the toolbar anchor read — out of step with
|
|
255
|
+
* what is painted at any scale other than 100%.
|
|
256
|
+
*/
|
|
257
|
+
getCSSTransform() {
|
|
258
|
+
const extraScale = this.model.props.edgeless?.scale ?? 1;
|
|
259
|
+
return `${super.getCSSTransform()} scale(${extraScale})`;
|
|
260
|
+
}
|
|
249
261
|
getRenderingRect() {
|
|
250
262
|
const { xywh, edgeless } = this.model.props;
|
|
251
263
|
const { collapse, scale = 1 } = edgeless;
|
|
@@ -273,7 +285,6 @@ let EdgelessNoteBlockComponent = (() => {
|
|
|
273
285
|
const height = bound.h / scale;
|
|
274
286
|
const style = {
|
|
275
287
|
borderRadius: borderRadius + 'px',
|
|
276
|
-
transform: `scale(${scale})`,
|
|
277
288
|
};
|
|
278
289
|
const extra = this._editing ? ACTIVE_NOTE_EXTRA_PADDING : 0;
|
|
279
290
|
const isCollapsable = collapse != null &&
|
|
@@ -458,6 +469,17 @@ export const EdgelessNoteInteraction = GfxViewInteractionExtension(NoteBlockSche
|
|
|
458
469
|
if (!view.isConnected) {
|
|
459
470
|
return;
|
|
460
471
|
}
|
|
472
|
+
// A click landing on the note title belongs to the title:
|
|
473
|
+
// routing it through the children container below would
|
|
474
|
+
// clamp it into the first paragraph instead.
|
|
475
|
+
const titleRect = view
|
|
476
|
+
.querySelector('edgeless-page-block-title')
|
|
477
|
+
?.getBoundingClientRect();
|
|
478
|
+
if (titleRect &&
|
|
479
|
+
new Bound(titleRect.x, titleRect.y, titleRect.width, titleRect.height).isPointInBound([e.clientX, e.clientY])) {
|
|
480
|
+
handleNativeRangeAtPoint(e.clientX, e.clientY);
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
461
483
|
if (model.children.length === 0) {
|
|
462
484
|
const blockId = std.store.addBlock('affine:paragraph', { type: 'text' }, model.id);
|
|
463
485
|
if (blockId) {
|
|
@@ -482,6 +504,12 @@ export const EdgelessNoteInteraction = GfxViewInteractionExtension(NoteBlockSche
|
|
|
482
504
|
})
|
|
483
505
|
.catch(console.error);
|
|
484
506
|
}
|
|
507
|
+
else if (multiSelect && alreadySelected && editing) {
|
|
508
|
+
// Shift-clicking inside a note being edited extends the text
|
|
509
|
+
// range; the default multi-select would drop the editing state
|
|
510
|
+
// and take the range with it.
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
485
513
|
else {
|
|
486
514
|
context.default(context);
|
|
487
515
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AttachmentBlockModel, BookmarkBlockModel, CalloutBlockModel, CodeBlockModel, DatabaseBlockModel, DividerBlockModel, ImageBlockModel, ListBlockModel, ParagraphBlockModel, } from '../../affine-model/index.js';
|
|
2
2
|
import { EMBED_BLOCK_MODEL_LIST } from '../../affine-shared/consts/index.js';
|
|
3
|
-
import { getNextContentBlock, matchModels
|
|
4
|
-
import { BlockSelection, TextSelection
|
|
3
|
+
import { getNextContentBlock, matchModels } from '../../affine-shared/utils/index.js';
|
|
4
|
+
import { BlockSelection, TextSelection } from '../../std/index.js';
|
|
5
5
|
export function forwardDelete(std) {
|
|
6
6
|
const { store, host } = std;
|
|
7
7
|
const text = std.selection.find(TextSelection);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AttachmentBlockModel, BookmarkBlockModel, CalloutBlockModel, CodeBlockModel, DatabaseBlockModel, DividerBlockModel, EdgelessTextBlockModel, ImageBlockModel, ListBlockModel, NoteBlockModel, ParagraphBlockModel, } from '../../affine-model/index.js';
|
|
2
|
-
import { asyncSetInlineRange, focusTextModel
|
|
2
|
+
import { asyncSetInlineRange, focusTextModel } from '../../affine-rich-text/index.js';
|
|
3
3
|
import { EMBED_BLOCK_MODEL_LIST } from '../../affine-shared/consts/index.js';
|
|
4
4
|
import { focusTitle, getDocTitleInlineEditor, getPrevContentBlock, matchModels, } from '../../affine-shared/utils/index.js';
|
|
5
5
|
import { BlockSelection } from '../../std/index.js';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type AnyCommandDescriptor } from '../../std/index.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* `pivotDocId: null` unbinds. The key is REQUIRED on purpose: an optional one
|
|
5
|
+
* would make a forgotten argument silently destroy a binding, which is exactly
|
|
6
|
+
* the failure mode an agent-invocable command must not have.
|
|
7
|
+
*/
|
|
8
|
+
export declare const bindPivotParams: z.ZodObject<{
|
|
9
|
+
pivotDocId: z.ZodNullable<z.ZodString>;
|
|
10
|
+
/**
|
|
11
|
+
* Explicit targets, for a host or an agent acting on something other than the
|
|
12
|
+
* live selection. **Omitted** — the key absent — the command acts on the
|
|
13
|
+
* current canvas selection.
|
|
14
|
+
*
|
|
15
|
+
* An EMPTY array is not the same thing: it means "these zero elements", so
|
|
16
|
+
* the command does nothing and does not fall back to the selection. That is
|
|
17
|
+
* the safe reading — an agent that computed a target list and came up empty
|
|
18
|
+
* must not have the gesture redirected onto whatever the user happened to
|
|
19
|
+
* have selected — but it is silent, so callers filtering a list should check
|
|
20
|
+
* it before invoking.
|
|
21
|
+
*/
|
|
22
|
+
elementIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
pivotDocId: string | null;
|
|
25
|
+
elementIds?: string[] | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
pivotDocId: string | null;
|
|
28
|
+
elementIds?: string[] | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
export type BindPivotParams = z.infer<typeof bindPivotParams>;
|
|
31
|
+
/**
|
|
32
|
+
* The registry's element type erases the parameter contract
|
|
33
|
+
* ({@link AnyCommandDescriptor}) — this is the first command to have one, and
|
|
34
|
+
* `run` re-validates with {@link bindPivotParams} rather than trusting the
|
|
35
|
+
* static type, which is what an agent-invocable command has to do anyway.
|
|
36
|
+
*/
|
|
37
|
+
export declare const pivotCommands: AnyCommandDescriptor[];
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The promotion rung "role → component": bind a surface element to a host-owned
|
|
3
|
+
* **pivot record** (MF1, ADR 0005 § 3, ladder in ADR 0007 § 6).
|
|
4
|
+
*
|
|
5
|
+
* The library cannot choose a document — it does not know what a pivot record
|
|
6
|
+
* is. So the record id is a PARAMETER: the host's picker (labreapp, MF2) runs
|
|
7
|
+
* the selection UI and invokes the command with the answer. That is also what
|
|
8
|
+
* makes the command usable by the agent surface with no UI at all.
|
|
9
|
+
*/
|
|
10
|
+
import { TelemetryProvider } from '../../affine-shared/services/index.js';
|
|
11
|
+
import { FRAMEWORK_IDS, } from '../../std/index.js';
|
|
12
|
+
import { GfxControllerIdentifier, GfxPrimitiveElementModel, } from '../../std/gfx/index.js';
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
const PIVOT_DOC_ID = 'pivotDocId';
|
|
15
|
+
/**
|
|
16
|
+
* `pivotDocId: null` unbinds. The key is REQUIRED on purpose: an optional one
|
|
17
|
+
* would make a forgotten argument silently destroy a binding, which is exactly
|
|
18
|
+
* the failure mode an agent-invocable command must not have.
|
|
19
|
+
*/
|
|
20
|
+
export const bindPivotParams = z.object({
|
|
21
|
+
pivotDocId: z.string().min(1).nullable(),
|
|
22
|
+
/**
|
|
23
|
+
* Explicit targets, for a host or an agent acting on something other than the
|
|
24
|
+
* live selection. **Omitted** — the key absent — the command acts on the
|
|
25
|
+
* current canvas selection.
|
|
26
|
+
*
|
|
27
|
+
* An EMPTY array is not the same thing: it means "these zero elements", so
|
|
28
|
+
* the command does nothing and does not fall back to the selection. That is
|
|
29
|
+
* the safe reading — an agent that computed a target list and came up empty
|
|
30
|
+
* must not have the gesture redirected onto whatever the user happened to
|
|
31
|
+
* have selected — but it is silent, so callers filtering a list should check
|
|
32
|
+
* it before invoking.
|
|
33
|
+
*/
|
|
34
|
+
elementIds: z.array(z.string()).optional(),
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* The elements this gesture would write to. Surface elements only: canvas
|
|
38
|
+
* BLOCKS carry a versioned schema, so binding them would be a `version` bump in
|
|
39
|
+
* `packages/affine/model` and is out of scope (ADR 0005 § 6).
|
|
40
|
+
*/
|
|
41
|
+
function pivotTargets(std, elementIds) {
|
|
42
|
+
const gfx = std.get(GfxControllerIdentifier);
|
|
43
|
+
const models = elementIds
|
|
44
|
+
? elementIds.map(id => gfx.surface?.getElementById(id))
|
|
45
|
+
: gfx.selection.selectedElements;
|
|
46
|
+
return models.filter((model) => model instanceof GfxPrimitiveElementModel);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Whether this document may be written to at all.
|
|
50
|
+
*
|
|
51
|
+
* Checked in `run` and not only in `when`, because `when` is consulted by the
|
|
52
|
+
* SURFACES and `runCommand` consults neither it nor `availability` — the
|
|
53
|
+
* palette and the agent reach `run` directly. Without this guard, unbinding
|
|
54
|
+
* succeeds in a read-only document: `clearField` goes through `Store.transact`,
|
|
55
|
+
* which (unlike `addBlock` / `updateBlock` / `deleteBlock`) carries no
|
|
56
|
+
* read-only guard, so the key is deleted and the promotion event is emitted for
|
|
57
|
+
* a document the user cannot edit. Binding merely throws out of `runCommand`,
|
|
58
|
+
* which is bad in a different way.
|
|
59
|
+
*/
|
|
60
|
+
const isBindable = (std) => !std.store.readonly;
|
|
61
|
+
/** `'wardley:component'` → `'wardley'`, when that names a real framework. */
|
|
62
|
+
function frameworkOfRole(role) {
|
|
63
|
+
const namespace = role?.split(':')[0];
|
|
64
|
+
return FRAMEWORK_IDS.includes(namespace ?? '')
|
|
65
|
+
? namespace
|
|
66
|
+
: undefined;
|
|
67
|
+
}
|
|
68
|
+
/** The single value shared by every target, or `undefined` if they disagree. */
|
|
69
|
+
function unanimous(values) {
|
|
70
|
+
const distinct = new Set(values);
|
|
71
|
+
return distinct.size === 1 ? values[0] : undefined;
|
|
72
|
+
}
|
|
73
|
+
const bindPivot = {
|
|
74
|
+
id: 'pivot.bind',
|
|
75
|
+
owner: 'core',
|
|
76
|
+
kind: 'action',
|
|
77
|
+
// NOT `com.labre.keyboardShortcuts.*` like every labelKey before it: those
|
|
78
|
+
// all belong to commands that ship a default chord. This one is keyless by
|
|
79
|
+
// intent and lives in the palette and the agent, so filing it under
|
|
80
|
+
// "keyboard shortcuts" would mislead a translator.
|
|
81
|
+
labelKey: 'com.labre.command.pivot.bind',
|
|
82
|
+
labelFallback: 'Link to record',
|
|
83
|
+
descriptionKey: 'com.labre.command.pivot.bind.description',
|
|
84
|
+
surfaces: ['palette', 'agent'],
|
|
85
|
+
scope: 'edgeless',
|
|
86
|
+
// Keyless by intent — still bindable from Settings › Shortcuts, which is
|
|
87
|
+
// what `toShortcutDescriptor` being total buys.
|
|
88
|
+
defaultKeys: { mac: [], other: [] },
|
|
89
|
+
availability: 'selection',
|
|
90
|
+
// Narrows `'selection'`, never contradicts it: a read-only document, and a
|
|
91
|
+
// selection of nothing but canvas blocks, both have no bindable target.
|
|
92
|
+
//
|
|
93
|
+
// Read-only rides on `when` rather than on `availability` because the union
|
|
94
|
+
// does not COMPOSE: it is one value per command (`command-registry.ts`
|
|
95
|
+
// `isCommandAvailable`), so declaring `'editable'` would buy the read-only
|
|
96
|
+
// gate by dropping the selection gate a host panel needs far more often.
|
|
97
|
+
// `'selection'` stays the serializable answer — it is the precondition a
|
|
98
|
+
// catalogue must show — and the state precondition is enforced below.
|
|
99
|
+
// The missing composition is recorded as an amendment trigger in ADR 0008.
|
|
100
|
+
when: std => isBindable(std) && pivotTargets(std).length > 0,
|
|
101
|
+
params: bindPivotParams,
|
|
102
|
+
run: (std, invocation, params) => {
|
|
103
|
+
const parsed = bindPivotParams.safeParse(params);
|
|
104
|
+
if (!parsed.success) {
|
|
105
|
+
console.error('pivot.bind: invalid params', parsed.error.issues);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const { pivotDocId, elementIds } = parsed.data;
|
|
109
|
+
// The load-bearing half of the read-only gate: see `isBindable`.
|
|
110
|
+
if (!isBindable(std))
|
|
111
|
+
return;
|
|
112
|
+
const targets = pivotTargets(std, elementIds);
|
|
113
|
+
if (!targets.length)
|
|
114
|
+
return;
|
|
115
|
+
// A gesture that changes nothing emits nothing and costs no undo step.
|
|
116
|
+
const changing = targets.filter(el => el.pivotDocId !== (pivotDocId ?? undefined));
|
|
117
|
+
if (!changing.length)
|
|
118
|
+
return;
|
|
119
|
+
// BEFORE the write, not after. `store.transact()` is not an undo
|
|
120
|
+
// boundary: the `Y.UndoManager` is built with no `captureTimeout`, so
|
|
121
|
+
// Yjs's 500 ms default merges consecutive transactions — and a bind
|
|
122
|
+
// issued within 500 ms of a drag would be undone TOGETHER with the drag,
|
|
123
|
+
// making the promotion look like it moved geometry. `stopCapturing()`
|
|
124
|
+
// opens a new stack item for what comes NEXT, so it has to precede the
|
|
125
|
+
// write (`Store.captureSync` docstring; same order as `applyLastStyle`).
|
|
126
|
+
//
|
|
127
|
+
// The ADRs' snippets (0005 § 3, 0007 § 6) show it after the write; that
|
|
128
|
+
// contradicts their own stated rationale and is treated as an editorial
|
|
129
|
+
// slip — see the PR description.
|
|
130
|
+
std.store.captureSync();
|
|
131
|
+
for (const element of changing) {
|
|
132
|
+
if (pivotDocId === null) {
|
|
133
|
+
// Not `updateElement(id, { pivotDocId: undefined })`: the `@field()`
|
|
134
|
+
// setter is unconditional, so that would leave the key behind as a
|
|
135
|
+
// tombstone. `clearField` removes it, and accepts this field because
|
|
136
|
+
// it is a declared, non-structural `@field()`.
|
|
137
|
+
element.clearField(PIVOT_DOC_ID);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
element.surface.updateElement(element.id, { pivotDocId });
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// The ONE emission for this gesture. Not routed through `runCommand`'s
|
|
144
|
+
// bottleneck: that emitter maps `CommandKind` onto the three creation
|
|
145
|
+
// events from a STATIC `{ framework, element }` on the descriptor, and a
|
|
146
|
+
// promotion is neither a creation nor static — `rung`, `direction` and
|
|
147
|
+
// `role` are facts of the invocation. See ADR 0007 § 7.
|
|
148
|
+
const roles = changing.map(el => el.role);
|
|
149
|
+
const role = unanimous(roles);
|
|
150
|
+
std.getOptional(TelemetryProvider)?.track('FrameworkElementPromoted', {
|
|
151
|
+
page: 'whiteboard editor',
|
|
152
|
+
framework: frameworkOfRole(role),
|
|
153
|
+
rung: 'pivot',
|
|
154
|
+
direction: pivotDocId === null ? 'demote' : 'promote',
|
|
155
|
+
role,
|
|
156
|
+
elementCount: changing.length,
|
|
157
|
+
control: invocation.source,
|
|
158
|
+
module: invocation.surface,
|
|
159
|
+
});
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* The registry's element type erases the parameter contract
|
|
164
|
+
* ({@link AnyCommandDescriptor}) — this is the first command to have one, and
|
|
165
|
+
* `run` re-validates with {@link bindPivotParams} rather than trusting the
|
|
166
|
+
* static type, which is what an agent-invocable command has to do anyway.
|
|
167
|
+
*/
|
|
168
|
+
export const pivotCommands = [bindPivot];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type AnyCommandDescriptor } from '../../std/index.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* `elementId` omitted, the command reads the current canvas selection. Passing
|
|
5
|
+
* it explicitly is what lets the element's own toolbar name the element that
|
|
6
|
+
* CARRIES the role rather than the group the user clicked (the same reason
|
|
7
|
+
* `tags-toolbar.ts` passes `elementIds` to `tag.set`), and what makes the
|
|
8
|
+
* command usable by the agent with no selection at all.
|
|
9
|
+
*/
|
|
10
|
+
export declare const readElementParams: z.ZodObject<{
|
|
11
|
+
elementId: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
elementId?: string | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
elementId?: string | undefined;
|
|
16
|
+
}>;
|
|
17
|
+
export type ReadElementParams = z.infer<typeof readElementParams>;
|
|
18
|
+
/**
|
|
19
|
+
* The registry's element type erases the parameter contract; `run` re-validates
|
|
20
|
+
* with {@link readElementParams} rather than trusting the static type, which is
|
|
21
|
+
* what an agent-invocable command has to do anyway.
|
|
22
|
+
*/
|
|
23
|
+
export declare const readingCommands: AnyCommandDescriptor[];
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `element.read` — the CLICK that asks the tool what it reads of a component
|
|
3
|
+
* (MF3, "reversed reading").
|
|
4
|
+
*
|
|
5
|
+
* The PO's arbitration of 01/08/2026, verbatim: the reversed reading is
|
|
6
|
+
* triggered **on a click, never by automatic validation**, and **writes nothing
|
|
7
|
+
* without confirmation**. This command is the click. It opens a proposal and
|
|
8
|
+
* that is the whole of its effect — no tag, no binding, no property, nothing
|
|
9
|
+
* touched in the document, on any path, ever.
|
|
10
|
+
*
|
|
11
|
+
* Which is also why it is NOT read-only gated: reading a board one cannot edit
|
|
12
|
+
* is exactly as legitimate as reading one you can. The gate lives on the
|
|
13
|
+
* CONFIRMATIONS, which are `tag.set` and `pivot.bind` — two commands that
|
|
14
|
+
* already refuse a read-only store.
|
|
15
|
+
*/
|
|
16
|
+
import { ReadingManager } from '../../affine-block-surface/index.js';
|
|
17
|
+
import {} from '../../std/index.js';
|
|
18
|
+
import { GfxControllerIdentifier, GfxPrimitiveElementModel, } from '../../std/gfx/index.js';
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
/**
|
|
21
|
+
* `elementId` omitted, the command reads the current canvas selection. Passing
|
|
22
|
+
* it explicitly is what lets the element's own toolbar name the element that
|
|
23
|
+
* CARRIES the role rather than the group the user clicked (the same reason
|
|
24
|
+
* `tags-toolbar.ts` passes `elementIds` to `tag.set`), and what makes the
|
|
25
|
+
* command usable by the agent with no selection at all.
|
|
26
|
+
*/
|
|
27
|
+
export const readElementParams = z.object({
|
|
28
|
+
elementId: z.string().min(1).optional(),
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* The element this reading is about: the one named, or the single selected
|
|
32
|
+
* surface element.
|
|
33
|
+
*
|
|
34
|
+
* ONE element, never a multi-selection: a proposal is one fiche about one
|
|
35
|
+
* thing, and two components have two readings that no single panel could
|
|
36
|
+
* honestly show at once.
|
|
37
|
+
*/
|
|
38
|
+
function readTarget(std, elementId) {
|
|
39
|
+
const gfx = std.get(GfxControllerIdentifier);
|
|
40
|
+
if (elementId) {
|
|
41
|
+
const model = gfx.surface?.getElementById(elementId);
|
|
42
|
+
return model instanceof GfxPrimitiveElementModel ? model : null;
|
|
43
|
+
}
|
|
44
|
+
const selected = gfx.selection.selectedElements.filter((model) => model instanceof GfxPrimitiveElementModel);
|
|
45
|
+
return selected.length === 1 ? selected[0] : null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Whether anything registered can read this element.
|
|
49
|
+
*
|
|
50
|
+
* Asked through the manager rather than re-implemented here: the profiles are
|
|
51
|
+
* registered by a framework's FLAG-GATED view extension, so a board whose
|
|
52
|
+
* framework is off has no reading and the command stands down — in the palette,
|
|
53
|
+
* on the toolbar and for the agent alike, from one answer.
|
|
54
|
+
*/
|
|
55
|
+
function readable(std, elementId) {
|
|
56
|
+
const manager = std.getOptional(ReadingManager);
|
|
57
|
+
if (!manager)
|
|
58
|
+
return false;
|
|
59
|
+
const target = readTarget(std, elementId);
|
|
60
|
+
return target !== null && manager.profileOf(target.id) !== null;
|
|
61
|
+
}
|
|
62
|
+
const readElementCommand = {
|
|
63
|
+
id: 'element.read',
|
|
64
|
+
owner: 'core',
|
|
65
|
+
kind: 'action',
|
|
66
|
+
// Not under `com.labre.keyboardShortcuts.*`: keyless by intent, like
|
|
67
|
+
// `pivot.bind` and `tag.set`, and filing it there would mislead a translator.
|
|
68
|
+
labelKey: 'com.labre.command.element.read',
|
|
69
|
+
labelFallback: 'Read this component',
|
|
70
|
+
descriptionKey: 'com.labre.command.element.read.description',
|
|
71
|
+
// The three surfaces the reading is reachable from. `'contextual-toolbar'`
|
|
72
|
+
// is where it is actually used — one click on the component — and declaring
|
|
73
|
+
// it is what keeps the telemetry honest about where a gesture came from
|
|
74
|
+
// (ADR 0008: the invocation names the surface, and the surface must exist).
|
|
75
|
+
surfaces: ['palette', 'contextual-toolbar', 'agent'],
|
|
76
|
+
scope: 'edgeless',
|
|
77
|
+
defaultKeys: { mac: [], other: [] },
|
|
78
|
+
availability: 'selection',
|
|
79
|
+
// Narrows `'selection'`, never contradicts it. Note what is NOT here: a
|
|
80
|
+
// read-only guard. Reading writes nothing, so there is nothing to refuse.
|
|
81
|
+
when: std => readable(std),
|
|
82
|
+
params: readElementParams,
|
|
83
|
+
run: (std, _invocation, params) => {
|
|
84
|
+
const parsed = readElementParams.safeParse(params);
|
|
85
|
+
if (!parsed.success) {
|
|
86
|
+
console.error('element.read: invalid params', parsed.error.issues);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const manager = std.getOptional(ReadingManager);
|
|
90
|
+
if (!manager)
|
|
91
|
+
return;
|
|
92
|
+
const target = readTarget(std, parsed.data.elementId);
|
|
93
|
+
if (!target)
|
|
94
|
+
return;
|
|
95
|
+
// A neutral element, or one whose framework is flagged off, has no reading
|
|
96
|
+
// and must not open an empty panel.
|
|
97
|
+
if (!manager.profileOf(target.id))
|
|
98
|
+
return;
|
|
99
|
+
manager.open(target.id);
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* The registry's element type erases the parameter contract; `run` re-validates
|
|
104
|
+
* with {@link readElementParams} rather than trusting the static type, which is
|
|
105
|
+
* what an agent-invocable command has to do anyway.
|
|
106
|
+
*/
|
|
107
|
+
export const readingCommands = [readElementCommand];
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type AnyCommandDescriptor } from '../../std/index.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* `values: []` removes the tag. Both keys are REQUIRED on purpose: an optional
|
|
5
|
+
* `values` would make a forgotten argument silently destroy a qualification,
|
|
6
|
+
* which is exactly the failure mode an agent-invocable command must not have.
|
|
7
|
+
*/
|
|
8
|
+
export declare const setTagParams: z.ZodObject<{
|
|
9
|
+
/** Namespaced tag def id, e.g. `'wardley:nature'`. */
|
|
10
|
+
tag: z.ZodString;
|
|
11
|
+
/**
|
|
12
|
+
* The value ids selected for that tag, e.g. `['wardley:nature/data']`.
|
|
13
|
+
* `[]` clears it.
|
|
14
|
+
*
|
|
15
|
+
* NOT validated against the registered defs. A document may legitimately
|
|
16
|
+
* carry an id whose def was removed, renamed or never seeded in this
|
|
17
|
+
* deployment, and the persisted value must accept any string — narrowing it
|
|
18
|
+
* here would push that case toward a load-time failure. The picker offers
|
|
19
|
+
* only defined values; the command does not police them.
|
|
20
|
+
*/
|
|
21
|
+
values: z.ZodArray<z.ZodString, "many">;
|
|
22
|
+
/**
|
|
23
|
+
* Explicit targets, for a host or an agent acting on something other than the
|
|
24
|
+
* live selection. **Omitted** — the key absent — the command acts on the
|
|
25
|
+
* current canvas selection.
|
|
26
|
+
*
|
|
27
|
+
* An EMPTY array is not the same thing: it means "these zero elements", so
|
|
28
|
+
* the command does nothing and does not fall back to the selection.
|
|
29
|
+
*/
|
|
30
|
+
elementIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
values: string[];
|
|
33
|
+
tag: string;
|
|
34
|
+
elementIds?: string[] | undefined;
|
|
35
|
+
}, {
|
|
36
|
+
values: string[];
|
|
37
|
+
tag: string;
|
|
38
|
+
elementIds?: string[] | undefined;
|
|
39
|
+
}>;
|
|
40
|
+
export type SetTagParams = z.infer<typeof setTagParams>;
|
|
41
|
+
/**
|
|
42
|
+
* The registry's element type erases the parameter contract
|
|
43
|
+
* ({@link AnyCommandDescriptor}); `run` re-validates with {@link setTagParams}
|
|
44
|
+
* rather than trusting the static type, which is what an agent-invocable
|
|
45
|
+
* command has to do anyway.
|
|
46
|
+
*/
|
|
47
|
+
export declare const tagCommands: AnyCommandDescriptor[];
|