@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
|
@@ -11,6 +11,122 @@ export type BaseElementProps = {
|
|
|
11
11
|
index: string;
|
|
12
12
|
seed: number;
|
|
13
13
|
lockedBySelf?: boolean;
|
|
14
|
+
/** See {@link GfxPrimitiveElementModel.pivotDocId}. */
|
|
15
|
+
pivotDocId?: string;
|
|
16
|
+
/** See {@link GfxPrimitiveElementModel.role}. */
|
|
17
|
+
role?: string;
|
|
18
|
+
/** See {@link GfxPrimitiveElementModel.tags}. */
|
|
19
|
+
tags?: Y.Map<string[]>;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* One arbitration: "this element is excused from that rule".
|
|
23
|
+
*
|
|
24
|
+
* Document DATA, not session state — it records a decision the user made, so it
|
|
25
|
+
* outlives the tab, the framework flag and the client version that wrote it.
|
|
26
|
+
* Deliberately flat and rule-agnostic: the model stores it, the validation
|
|
27
|
+
* engine interprets it, and neither has to know what the other is up to.
|
|
28
|
+
*/
|
|
29
|
+
export type ValidationException = {
|
|
30
|
+
/** The rule being excused, e.g. `wardley.change-arrow-against-evolution`. */
|
|
31
|
+
ruleId: string;
|
|
32
|
+
/** Who granted it, when the host knows. Absent rather than empty. */
|
|
33
|
+
author?: string;
|
|
34
|
+
/** Epoch ms, taken at the moment of the gesture. */
|
|
35
|
+
at: number;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* A SCOPE: which part of the source document a carried fragment came off.
|
|
39
|
+
*
|
|
40
|
+
* One Labre element routinely stands for several source elements — a BPMN pool
|
|
41
|
+
* is a `participant` AND its `process`, plus a `laneSet`, every `lane`, the
|
|
42
|
+
* `BPMNShape` that draws it, and (for the first pool of a document) the
|
|
43
|
+
* `collaboration` and `definitions` themselves. Everything they carry lands in
|
|
44
|
+
* ONE payload, so an unscoped `Record<name, value>` has two defects, and the
|
|
45
|
+
* first one destroys data: two lanes carrying the same foreign attribute
|
|
46
|
+
* overwrite each other silently, and nothing records which element an attribute
|
|
47
|
+
* belonged to, so no exporter can ever put it back where it came from.
|
|
48
|
+
*
|
|
49
|
+
* A scope is therefore either of exactly two things, and they cannot collide:
|
|
50
|
+
*
|
|
51
|
+
* - **the source element's id, verbatim** — the normal case, and the one that
|
|
52
|
+
* lets an exporter put a fragment back on the element that had it;
|
|
53
|
+
* - **an `@`-prefixed ROLE key** for a source element with no id of its own, or
|
|
54
|
+
* one whose identity is its relation to this element rather than a name:
|
|
55
|
+
* `@self` (the element this payload is on), `@shape` (the diagram element
|
|
56
|
+
* that draws it), and whatever else the format needs. **`@` is not an XML
|
|
57
|
+
* NameStartChar**, so a role key can never be mistaken for an id, whatever a
|
|
58
|
+
* file calls its elements.
|
|
59
|
+
*
|
|
60
|
+
* The role vocabulary past `@self` and `@shape` belongs to each format's
|
|
61
|
+
* importer, which is the only thing that knows what parts a document has;
|
|
62
|
+
* `.bpmn`'s is documented in `gfx/bpmn/src/import.ts`. The base model stores
|
|
63
|
+
* strings and never learns what any of them mean.
|
|
64
|
+
*/
|
|
65
|
+
export type InterchangeScope = string;
|
|
66
|
+
/**
|
|
67
|
+
* Verbatim foreign matter one interchange import kept on one element, for one
|
|
68
|
+
* format (ADR 0012 § D2).
|
|
69
|
+
*
|
|
70
|
+
* Document DATA in the same sense {@link ValidationException} is: it records
|
|
71
|
+
* what a file actually said, so it outlives the tab, the framework flag and the
|
|
72
|
+
* client version that imported it. Deliberately format-agnostic — the base
|
|
73
|
+
* model stores fragments and attributes, and never learns what they mean.
|
|
74
|
+
*
|
|
75
|
+
* Every member is optional and absent rather than empty: an importer writes the
|
|
76
|
+
* ones it has, and a reader that finds none of them has an element that met an
|
|
77
|
+
* import and carried nothing.
|
|
78
|
+
*
|
|
79
|
+
* The three carrying members are keyed by {@link InterchangeScope}, so that
|
|
80
|
+
* what came off two different source elements stays apart. That shape is what
|
|
81
|
+
* makes the payload sufficient for re-emission, and it is the one thing here
|
|
82
|
+
* that could not be changed later: this value is persisted, so a document
|
|
83
|
+
* written under a shape that loses data cannot be repaired without the original
|
|
84
|
+
* file. One `Y.Map` entry all the same — the whole record is written once, as a
|
|
85
|
+
* blob, and never mutated.
|
|
86
|
+
*/
|
|
87
|
+
export type ForeignInterchange = {
|
|
88
|
+
/**
|
|
89
|
+
* The element's id in the SOURCE file, verbatim. The surface element keeps
|
|
90
|
+
* its own nanoid — surface identity is Labre's and never the file's — and an
|
|
91
|
+
* export prefers this id back when it is still usable, which is what makes
|
|
92
|
+
* the id map a fixed point after one cycle (ADR 0012 § D3).
|
|
93
|
+
*/
|
|
94
|
+
id?: string;
|
|
95
|
+
/**
|
|
96
|
+
* The source element's name, when the element itself was CARRIED rather than
|
|
97
|
+
* mapped, e.g. `bpmn:boundaryEvent`.
|
|
98
|
+
*/
|
|
99
|
+
element?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Attributes the importer does not model — foreign-namespaced and standard
|
|
102
|
+
* alike — by {@link InterchangeScope}, then by attribute name.
|
|
103
|
+
*
|
|
104
|
+
* `{ 'Lane_1': { 'camunda:owner': 'alice' }, 'Lane_2': { 'camunda:owner':
|
|
105
|
+
* 'bob' } }`: two lanes of one pool, two owners, and both still here.
|
|
106
|
+
*/
|
|
107
|
+
attrs?: Record<InterchangeScope, Record<string, string>>;
|
|
108
|
+
/**
|
|
109
|
+
* Child fragments, serialized — extension subtrees, unmodelled children, and
|
|
110
|
+
* whole carried elements — by the {@link InterchangeScope} of the element
|
|
111
|
+
* they were children OF. The scope is where an exporter has to put them back.
|
|
112
|
+
*/
|
|
113
|
+
children?: Record<InterchangeScope, string[]>;
|
|
114
|
+
/**
|
|
115
|
+
* Diagram-interchange fragments, by the {@link InterchangeScope} of what they
|
|
116
|
+
* draw: `@shape` for the parts of this element's own diagram element that the
|
|
117
|
+
* importer did not model, a source id for the diagram of something carried.
|
|
118
|
+
*/
|
|
119
|
+
di?: Record<InterchangeScope, string[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Fragments kept but deliberately NOT re-emitted, each with the reason
|
|
122
|
+
* (ADR 0012 § D5). Preserved so a reader can see what was dropped and why;
|
|
123
|
+
* never a place the exporter reads for output — which is why this one is a
|
|
124
|
+
* flat list and needs no scope: nothing has to know where to put it back.
|
|
125
|
+
*/
|
|
126
|
+
quarantined?: {
|
|
127
|
+
fragment: string;
|
|
128
|
+
reason: string;
|
|
129
|
+
}[];
|
|
14
130
|
};
|
|
15
131
|
export type SerializedElement = Record<string, unknown> & {
|
|
16
132
|
type: string;
|
|
@@ -90,6 +206,43 @@ export declare abstract class GfxPrimitiveElementModel<Props extends BaseElement
|
|
|
90
206
|
serialize(): SerializedElement;
|
|
91
207
|
stash(prop: keyof Props | string): void;
|
|
92
208
|
unlock(): void;
|
|
209
|
+
/**
|
|
210
|
+
* Remove an OPTIONAL `@field()` from the document entirely.
|
|
211
|
+
*
|
|
212
|
+
* The missing half of `@field()`. Its setter is unconditional — assigning
|
|
213
|
+
* `undefined` still calls `yMap.set(prop, undefined)` — so "clearing" an
|
|
214
|
+
* optional field through the accessor leaves the KEY behind. The getter reads
|
|
215
|
+
* `undefined` and nothing misbehaves, but the element is no longer
|
|
216
|
+
* byte-identical to one that never had the field: the phantom key syncs to
|
|
217
|
+
* every peer and ships in every snapshot. `init` is already careful to write
|
|
218
|
+
* nothing for an `undefined` default; this is how a field gets back to that
|
|
219
|
+
* state once it has been set.
|
|
220
|
+
*
|
|
221
|
+
* Emits a `delete` action rather than an `update`, so a consumer filtering on
|
|
222
|
+
* `props` will see an EMPTY payload and must inspect `oldValues` — the same
|
|
223
|
+
* shape an undo of the original write produces.
|
|
224
|
+
*
|
|
225
|
+
* ## What it refuses, and why that is load-bearing
|
|
226
|
+
*
|
|
227
|
+
* This is a direct write path into the element's Y.Map, on the class that
|
|
228
|
+
* carries the document format, exported by `@labre/std` and therefore
|
|
229
|
+
* callable by a host. `_assignElementProp` learned the same lesson in the
|
|
230
|
+
* unknown-props change (see `docs/spikes/us-1-8-unknown-props-preservation.md`,
|
|
231
|
+
* whose deny-list is explicitly security rather than hygiene); an unguarded
|
|
232
|
+
* delete re-opens the door from the other side. So:
|
|
233
|
+
*
|
|
234
|
+
* - a key the element class does not DECLARE as a `@field()` is refused. It
|
|
235
|
+
* is either an unknown key preserved verbatim for a newer client — deleting
|
|
236
|
+
* it is exactly the data loss that change exists to prevent — or not
|
|
237
|
+
* document data at all;
|
|
238
|
+
* - a STRUCTURAL field is refused even though it is declared
|
|
239
|
+
* ({@link UNCLEARABLE_ELEMENT_FIELDS}).
|
|
240
|
+
*
|
|
241
|
+
* Refusal is a no-op plus a `console.warn`, the same way an unencodable value
|
|
242
|
+
* is dropped rather than thrown: a misuse must not take the board down, and
|
|
243
|
+
* must not silently corrupt it either.
|
|
244
|
+
*/
|
|
245
|
+
clearField(prop: string): void;
|
|
93
246
|
accessor display: boolean;
|
|
94
247
|
/**
|
|
95
248
|
* In some cases, you need to draw something related to the element, but it does not belong to the element itself.
|
|
@@ -107,6 +260,257 @@ export declare abstract class GfxPrimitiveElementModel<Props extends BaseElement
|
|
|
107
260
|
*/
|
|
108
261
|
accessor externalLink: string | undefined;
|
|
109
262
|
accessor linkedDocId: string | undefined;
|
|
263
|
+
/**
|
|
264
|
+
* Identity binding to a host-owned **pivot record**: this element is an
|
|
265
|
+
* *occurrence* of the document `pivotDocId`. Many elements, across many
|
|
266
|
+
* boards, may carry the same `pivotDocId` — that is the point. A Wardley
|
|
267
|
+
* `component` drawn on three maps is the same component (MF1, ADR 0005).
|
|
268
|
+
*
|
|
269
|
+
* Opaque to the library: the framework never dereferences it, never fetches
|
|
270
|
+
* it, never renders it. Reading it is the host's job, through
|
|
271
|
+
* `PivotPropertiesProvider` (`@labre/affine-shared/services`, ADR 0006).
|
|
272
|
+
* No renderer, no hit-test, no layout and no exporter may read it; it
|
|
273
|
+
* participates in no `@derive`, `@convert` or `@watch` chain, so it cannot
|
|
274
|
+
* move, resize or restyle anything.
|
|
275
|
+
*
|
|
276
|
+
* Orthogonal to {@link linkedDocId} / {@link externalLink}, which are a
|
|
277
|
+
* *hyperlink* (navigation), not an identity. They differ on every axis that
|
|
278
|
+
* matters — cardinality (a hyperlink is one target per element and is
|
|
279
|
+
* exclusive with `externalLink`; a binding is many-elements-to-one-record),
|
|
280
|
+
* lifecycle (a hyperlink is picked from a search modal, a binding is created
|
|
281
|
+
* by promotion) and consumers (an arrow that navigates vs. a hover card and
|
|
282
|
+
* a rules engine). An element may legitimately carry both, and code reading
|
|
283
|
+
* one as a stand-in for the other is a bug.
|
|
284
|
+
*
|
|
285
|
+
* Declared on the BASE class for the same reason as {@link role}: an element
|
|
286
|
+
* re-created from props (paste, duplicate, alt-drag clone, template
|
|
287
|
+
* insertion) only reaches the Y.Map through keys that have a declared
|
|
288
|
+
* accessor, so a binding declared per subclass would be silently dropped on
|
|
289
|
+
* copy — and the loss would be invisible until the next reload.
|
|
290
|
+
*
|
|
291
|
+
* `undefined` = unbound, and no key is written for it, so an element that
|
|
292
|
+
* never binds stays byte-identical to one created before the field existed:
|
|
293
|
+
* optional field, no schema version bump, no migration. Clearing it goes
|
|
294
|
+
* through {@link clearField}, which removes the key rather than leaving a
|
|
295
|
+
* tombstone.
|
|
296
|
+
*
|
|
297
|
+
* A binding to a record that does not (yet) exist — or was deleted, or is
|
|
298
|
+
* invisible to this user — is a legal, persisted state: the library never
|
|
299
|
+
* validates it and never deletes host data. It resolves to `missing` at read
|
|
300
|
+
* time (ADR 0006).
|
|
301
|
+
*/
|
|
302
|
+
accessor pivotDocId: string | undefined;
|
|
303
|
+
/**
|
|
304
|
+
* Semantic role of the element, `<framework>:<role>` (see `./role.ts`).
|
|
305
|
+
* `undefined` = neutral: generalist elements carry no role, and no key is
|
|
306
|
+
* written for them at creation.
|
|
307
|
+
*
|
|
308
|
+
* Declared on the BASE class on purpose, even though only framework modules
|
|
309
|
+
* set it: an element re-created from props (paste, duplicate, template
|
|
310
|
+
* insertion) only reaches the Y.Map through keys that have a declared
|
|
311
|
+
* accessor, so a role declared per subclass would be silently dropped on
|
|
312
|
+
* copy. Flat string on purpose — element serialization is one level deep.
|
|
313
|
+
*/
|
|
314
|
+
accessor role: string | undefined;
|
|
315
|
+
/**
|
|
316
|
+
* Level 3 — **contextual qualification** (ADR 0007 § 4). Tag def id → the
|
|
317
|
+
* value ids selected for it, e.g. `{ 'wardley:nature': ['wardley:nature/data'] }`.
|
|
318
|
+
*
|
|
319
|
+
* Both halves of a key are namespaced by framework on purpose: two universes
|
|
320
|
+
* WILL collide on a word like `activity` — `edgy:activity` is already an EDGY
|
|
321
|
+
* base element while `activity` is one of Wardley's four natures — and
|
|
322
|
+
* namespacing is what makes that collision harmless rather than decorative.
|
|
323
|
+
*
|
|
324
|
+
* Absent and empty are equivalent (both mean "unqualified"), and the default
|
|
325
|
+
* is `undefined`, **never** `new Y.Map()`: `@field()`'s `init` writes nothing
|
|
326
|
+
* for an `undefined` default, so an element that is never qualified — every
|
|
327
|
+
* brush stroke, every connector — stays byte-identical to one created before
|
|
328
|
+
* the field existed. A non-`undefined` default on this base class would
|
|
329
|
+
* reinstate that cost on every element of every document. The qualification
|
|
330
|
+
* writer (`setElementTag`, `./tags.js`) creates the map on first use and
|
|
331
|
+
* removes the key again when the last tag goes.
|
|
332
|
+
*
|
|
333
|
+
* ## Why a NESTED `Y.Map` and not a plain object
|
|
334
|
+
*
|
|
335
|
+
* `@field()` writes straight into the element's `Y.Map` with no `native2Y` in
|
|
336
|
+
* the path, so a plain object here really would be ONE opaque value: two
|
|
337
|
+
* people qualifying the same element on two DIFFERENT tags would silently
|
|
338
|
+
* lose one of the two. A nested map merges per tag, which is what the shape
|
|
339
|
+
* has to do — there is no migration runner for surface elements, so it is
|
|
340
|
+
* chosen once. The `string[]` of a SINGLE tag stays last-write-wins, and that
|
|
341
|
+
* is correct: one tag's value set is one atomic choice.
|
|
342
|
+
*
|
|
343
|
+
* Exactly one level of Y-awareness, with plain arrays as values — shallower
|
|
344
|
+
* than `MindmapElementModel.children` (`Y.Map<NodeDetail>`), which already
|
|
345
|
+
* ships, and inside what `surface-transformer`'s `SURFACE_YMAP_UNIQ_IDENTIFIER`
|
|
346
|
+
* envelope round-trips generically.
|
|
347
|
+
*
|
|
348
|
+
* Declared on the BASE class for the same reason as {@link role} and
|
|
349
|
+
* {@link pivotDocId}: an element re-created from props (paste, duplicate,
|
|
350
|
+
* alt-drag clone, template insertion) only reaches the `Y.Map` through keys
|
|
351
|
+
* that have a declared accessor, and a qualification the user authored is
|
|
352
|
+
* exactly the kind of thing that must survive a copy. `SurfaceBlockModel`'s
|
|
353
|
+
* `_propsToY` rebuilds the map from the plain JSON `serialize()` produces, so
|
|
354
|
+
* a copy is a copy of the values and never a second reference to one map.
|
|
355
|
+
*
|
|
356
|
+
* Opaque to the framework: no renderer, no hit-test, no layout and no
|
|
357
|
+
* exporter reads it, and it participates in no `@derive` / `@convert` chain.
|
|
358
|
+
* Values whose def has vanished still load and are displayed as raw ids —
|
|
359
|
+
* defs are runtime configuration and are NEVER persisted.
|
|
360
|
+
*/
|
|
361
|
+
accessor tags: Y.Map<string[]> | undefined;
|
|
362
|
+
/**
|
|
363
|
+
* Validation rules this element is excused from (PF8, "no rule is a wall").
|
|
364
|
+
*
|
|
365
|
+
* Declared on the BASE class for the same reason as {@link role}: an element
|
|
366
|
+
* re-created from props (paste, duplicate, template insertion) only reaches
|
|
367
|
+
* the Y.Map through keys that have a declared accessor, so an exception
|
|
368
|
+
* declared per subclass would be silently dropped on copy — and an arbitration
|
|
369
|
+
* the user made explicitly is exactly the kind of thing that must survive a
|
|
370
|
+
* copy.
|
|
371
|
+
*
|
|
372
|
+
* `undefined` = no exception, and no key is written for it, so an element that
|
|
373
|
+
* never got one stays byte-identical to one created before the field existed:
|
|
374
|
+
* optional field, no schema version bump, no migration.
|
|
375
|
+
*
|
|
376
|
+
* Flat JSON on purpose — element serialization is one level deep, and a value
|
|
377
|
+
* a Yjs update can encode is the contract enforced by `_assignElementProp`.
|
|
378
|
+
* The engine that reads it lives in `@labre/affine-block-surface`; the base
|
|
379
|
+
* model only carries the data, and knows nothing about rules.
|
|
380
|
+
*/
|
|
381
|
+
accessor validationExceptions: ValidationException[] | undefined;
|
|
382
|
+
/**
|
|
383
|
+
* Id of the validation PROFILE this element's framework is checked against
|
|
384
|
+
* (PF9) — a set of enabled rules and their severities, declared as data by
|
|
385
|
+
* the framework.
|
|
386
|
+
*
|
|
387
|
+
* Carried by the framework's BACKGROUND element, i.e. the root instance, and
|
|
388
|
+
* not by the document: two maps on one canvas are two independent pieces of
|
|
389
|
+
* work, and a sketch has to be able to sit next to a deliverable without
|
|
390
|
+
* either of them dictating the other's requirements (PF9.1). The engine reads
|
|
391
|
+
* it off the background a finding was measured against, which it already
|
|
392
|
+
* names (`Violation.backgroundId`).
|
|
393
|
+
*
|
|
394
|
+
* Declared on the BASE class for the same reason as {@link role} and
|
|
395
|
+
* {@link validationExceptions}: an element re-created from props (paste,
|
|
396
|
+
* duplicate, template insertion) only reaches the Y.Map through keys that
|
|
397
|
+
* have a declared accessor, so a profile declared per subclass would be
|
|
398
|
+
* silently dropped on copy — and duplicating a strict map must give a strict
|
|
399
|
+
* map.
|
|
400
|
+
*
|
|
401
|
+
* `undefined` = "no explicit choice", which resolves to the framework's
|
|
402
|
+
* DEFAULT profile — the most permissive reasonable one, because the sketch
|
|
403
|
+
* wins. No key is written for it, so a document authored before this field
|
|
404
|
+
* existed stays byte-identical: optional field, no schema version bump, no
|
|
405
|
+
* migration. Choosing the default back again removes the key rather than
|
|
406
|
+
* writing it.
|
|
407
|
+
*
|
|
408
|
+
* Flat string on purpose — element serialization is one level deep. The
|
|
409
|
+
* engine that interprets it lives in `@labre/affine-block-surface`; the base
|
|
410
|
+
* model only carries the id, and knows nothing about profiles.
|
|
411
|
+
*/
|
|
412
|
+
accessor validationProfile: string | undefined;
|
|
413
|
+
/**
|
|
414
|
+
* The map-quality NUDGES the user has ticked off on this instance (PF7.10) —
|
|
415
|
+
* ids of declarative reminders their framework ships, never rules the engine
|
|
416
|
+
* evaluates.
|
|
417
|
+
*
|
|
418
|
+
* A nudge is an expectation the tool cannot judge ("the map has a title that
|
|
419
|
+
* frames the study"): the content can exist without being good, so nothing
|
|
420
|
+
* here is ever computed. Ticking one is the same gesture as granting an
|
|
421
|
+
* exception — the user says "I have taken care of this" and the tool records
|
|
422
|
+
* it rather than pretending to check it.
|
|
423
|
+
*
|
|
424
|
+
* Carried by the framework's BACKGROUND element, i.e. the root instance, for
|
|
425
|
+
* the same reason {@link validationProfile} is: two maps on one canvas are two
|
|
426
|
+
* independent pieces of work, and a checklist ticked on one says nothing about
|
|
427
|
+
* the other.
|
|
428
|
+
*
|
|
429
|
+
* Declared on the BASE class for the same reason as {@link role} and
|
|
430
|
+
* {@link validationExceptions}: an element re-created from props (paste,
|
|
431
|
+
* duplicate, template insertion) only reaches the Y.Map through keys that have
|
|
432
|
+
* a declared accessor, so a checklist declared per subclass would be silently
|
|
433
|
+
* dropped on copy.
|
|
434
|
+
*
|
|
435
|
+
* `undefined` = nothing ticked, and no key is written for it, so a document
|
|
436
|
+
* authored before this field existed stays byte-identical: optional field, no
|
|
437
|
+
* schema version bump, no migration. Unticking the last one goes through
|
|
438
|
+
* {@link clearField}, which removes the key rather than leaving a tombstone.
|
|
439
|
+
*
|
|
440
|
+
* Flat JSON — an array of strings — on purpose: element serialization is one
|
|
441
|
+
* level deep, and a value a Yjs update can encode is the contract enforced by
|
|
442
|
+
* `_assignElementProp`. The library that interprets the ids lives in
|
|
443
|
+
* `@labre/affine-block-surface`; the base model only carries them, and knows
|
|
444
|
+
* nothing about nudges. Ids of nudges no framework declares any more are kept,
|
|
445
|
+
* not pruned: the tooling comes and goes with a flag, the decision does not.
|
|
446
|
+
*/
|
|
447
|
+
accessor qualityChecklist: string[] | undefined;
|
|
448
|
+
/**
|
|
449
|
+
* Verbatim foreign matter from an interchange import, keyed by FORMAT id
|
|
450
|
+
* (`bpmn`, `owm`, …) — never by framework, because a `.bpmn` and an OWM file
|
|
451
|
+
* make different promises about the same element (ADR 0012 § D2).
|
|
452
|
+
*
|
|
453
|
+
* This field is dumb storage, and that is the whole design. ADR 0012 sorts
|
|
454
|
+
* every node of an imported file into three states — **mapped** (there is a
|
|
455
|
+
* Labre artefact, re-emitted from the drawing), **carried** (no artefact,
|
|
456
|
+
* kept verbatim here, re-emitted in place) and **quarantined** (kept, but
|
|
457
|
+
* re-emitting it would contradict the document, so it is not). That contract
|
|
458
|
+
* lives entirely in the importers and exporters; the base model neither
|
|
459
|
+
* classifies, validates, dereferences nor re-emits anything, and knows no
|
|
460
|
+
* format. No renderer, hit-test, layout or `@derive` / `@convert` chain reads
|
|
461
|
+
* it, so nothing here can move, resize or restyle an element.
|
|
462
|
+
*
|
|
463
|
+
* Declared on the BASE class for the same reason as {@link role} and
|
|
464
|
+
* {@link validationExceptions}, and for one more: a BPMN `sequenceFlow`
|
|
465
|
+
* carrying a `conditionExpression` is a plain **connector**, and
|
|
466
|
+
* `ConnectorElementModel` is shared plumbing that will never be a BPMN class.
|
|
467
|
+
* An element re-created from props (paste, duplicate, alt-drag clone,
|
|
468
|
+
* template insertion) only reaches the Y.Map through keys that have a
|
|
469
|
+
* declared accessor, so a payload declared per subclass would be silently
|
|
470
|
+
* dropped on copy — the exact loss `docs/spikes/us-1-8-unknown-props-preservation.md`
|
|
471
|
+
* exists to prevent. Declaring it, rather than leaning on that spike's
|
|
472
|
+
* verbatim fallback for undeclared keys, is what makes it a contract: a field
|
|
473
|
+
* nothing declares is a field nothing can test, strip or find.
|
|
474
|
+
*
|
|
475
|
+
* `undefined` = this element never met an import, and no key is written for
|
|
476
|
+
* it, so it stays byte-identical to one created before the field existed:
|
|
477
|
+
* optional field, no schema version bump, no migration. An import writes no
|
|
478
|
+
* key for a visual-tier capability, and none for an element that carried
|
|
479
|
+
* nothing. Clearing goes through {@link clearField}, which removes the key
|
|
480
|
+
* rather than leaving a tombstone.
|
|
481
|
+
*
|
|
482
|
+
* Flat JSON on purpose — a value a Yjs update can encode is the contract
|
|
483
|
+
* enforced by `_assignElementProp`, and the whole payload is ONE Y.Map entry,
|
|
484
|
+
* written once at import and never mutated afterwards. Two peers writing it
|
|
485
|
+
* concurrently therefore resolve last-write-wins on the whole blob, which is
|
|
486
|
+
* `lanes`' trade (ADR 0007): nobody edits this value, so the window is the
|
|
487
|
+
* import itself.
|
|
488
|
+
*
|
|
489
|
+
* ## Writing it, for the importer
|
|
490
|
+
*
|
|
491
|
+
* - **Write the whole blob in one assignment**, the way an import already
|
|
492
|
+
* produces it. Never read-modify-write it key by key: the Y.Map entry is the
|
|
493
|
+
* entire `Record`, so a partial update is still a last-write-wins overwrite
|
|
494
|
+
* of everything, and two of them racing lose a whole format's payload rather
|
|
495
|
+
* than merging.
|
|
496
|
+
* - **Key what you carry by its {@link InterchangeScope}.** One Labre element
|
|
497
|
+
* stands for several source elements, and an unscoped map lets what came off
|
|
498
|
+
* one overwrite what came off another — a silent loss, into a persisted
|
|
499
|
+
* value, of exactly the data this field exists to keep. The scope is also
|
|
500
|
+
* the only record of where a fragment has to be put back.
|
|
501
|
+
* - **Write no key at all** when there is nothing to carry — an element the
|
|
502
|
+
* import mapped cleanly, or any visual-tier capability, which by contract
|
|
503
|
+
* writes none (ADR 0012 P2). Absent and empty are NOT equivalent here:
|
|
504
|
+
* `{}` costs every element a Y.Map entry and makes P2's "writes no
|
|
505
|
+
* `interchange` key" untestable.
|
|
506
|
+
* - **Removing it is {@link clearField}**, never an assignment to `undefined`
|
|
507
|
+
* — the former deletes the key, the latter can leave a tombstone.
|
|
508
|
+
* - **Nothing caps the size of this value** (ADR 0012, open question 3). A
|
|
509
|
+
* pathological file would produce a document that is mostly foreign matter;
|
|
510
|
+
* a cap that dropped data would contradict D2, so the only honest cap is a
|
|
511
|
+
* refusal at import time. That is the importer's call, not the model's.
|
|
512
|
+
*/
|
|
513
|
+
accessor interchange: Record<string, ForeignInterchange> | undefined;
|
|
110
514
|
accessor lockedBySelf: boolean | undefined;
|
|
111
515
|
accessor opacity: number;
|
|
112
516
|
accessor responseExtension: [number, number];
|
|
@@ -115,6 +519,17 @@ export declare abstract class GfxPrimitiveElementModel<Props extends BaseElement
|
|
|
115
519
|
export declare abstract class GfxGroupLikeElementModel<Props extends BaseElementProps = BaseElementProps> extends GfxPrimitiveElementModel<Props> implements GfxGroupCompatibleInterface {
|
|
116
520
|
private _childIds;
|
|
117
521
|
private readonly _mutex;
|
|
522
|
+
/**
|
|
523
|
+
* Whether the cached `xywh` must be recomputed from the children.
|
|
524
|
+
*
|
|
525
|
+
* The bound of a group is the union of its children bounds, which used to be
|
|
526
|
+
* recomputed on **every** read of `xywh` — and `xywh` is read many times per
|
|
527
|
+
* frame (renderer, hit test, toolbar anchor, selection rect…). It is now
|
|
528
|
+
* computed once per mutation: the surface marks the group dirty (or
|
|
529
|
+
* refreshes it eagerly) whenever a child changes, see
|
|
530
|
+
* {@link invalidateXYWH} / {@link refreshXYWH}.
|
|
531
|
+
*/
|
|
532
|
+
private _xywhDirty;
|
|
118
533
|
abstract children: Y.Map<any>;
|
|
119
534
|
[gfxGroupCompatibleSymbol]: true;
|
|
120
535
|
get childElements(): GfxModel[];
|
|
@@ -126,7 +541,34 @@ export declare abstract class GfxGroupLikeElementModel<Props extends BaseElement
|
|
|
126
541
|
get descendantElements(): GfxModel[];
|
|
127
542
|
get xywh(): `[${number},${number},${number},${number}]`;
|
|
128
543
|
set xywh(_: `[${number},${number},${number},${number}]`);
|
|
544
|
+
/**
|
|
545
|
+
* Recompute the cached bound and notify the listeners when it moved.
|
|
546
|
+
*
|
|
547
|
+
* Always run it through {@link _mutex}: the notification re-enters the
|
|
548
|
+
* `xywh` getter (a parent group unites this bound again), and the mutex is
|
|
549
|
+
* what keeps that read from recomputing this very group a second time.
|
|
550
|
+
*/
|
|
551
|
+
private _recomputeXYWH;
|
|
552
|
+
/**
|
|
553
|
+
* Pure: it only reads the children. The cache is written by
|
|
554
|
+
* {@link _recomputeXYWH}, which is the single place allowed to store it.
|
|
555
|
+
*/
|
|
129
556
|
protected _getXYWH(): Bound;
|
|
557
|
+
/**
|
|
558
|
+
* Mark the cached bound as stale without recomputing it. The next read of
|
|
559
|
+
* `xywh` pays for the recomputation, and notifies the listeners if the
|
|
560
|
+
* bound actually moved.
|
|
561
|
+
*
|
|
562
|
+
* Use it for the changes that only *may* move the bound (a custom prop a
|
|
563
|
+
* subclass folds into its own `elementBound`); use {@link refreshXYWH} for
|
|
564
|
+
* the changes that are known to move it.
|
|
565
|
+
*/
|
|
566
|
+
invalidateXYWH(): void;
|
|
567
|
+
/**
|
|
568
|
+
* Recompute the cached bound right away, and notify the listeners when it
|
|
569
|
+
* moved. `local` is the origin of the mutation that moved it.
|
|
570
|
+
*/
|
|
571
|
+
refreshXYWH(local: boolean): void;
|
|
130
572
|
abstract addChild(element: GfxModel): void;
|
|
131
573
|
/**
|
|
132
574
|
* The actual field that stores the children of the group.
|