@formicoidea/labre-core 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_pkgs/affine-block-attachment/attachment-block.js +1 -1
- package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
- package/dist/_pkgs/affine-block-callout/callout-block.js +26 -4
- package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
- package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
- package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
- package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
- package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
- package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
- package/dist/_pkgs/affine-block-code/code-block-inline.js +1 -1
- package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
- package/dist/_pkgs/affine-block-code/code-block.js +44 -6
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/config.js +54 -5
- package/dist/_pkgs/affine-block-code/code-toolbar/index.js +1 -1
- package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/effects.js +2 -0
- package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
- package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-code/index.js +1 -0
- package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
- package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
- package/dist/_pkgs/affine-block-code/styles.js +31 -0
- package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
- package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
- package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
- package/dist/_pkgs/affine-block-database/data-source.js +1 -2
- package/dist/_pkgs/affine-block-database/database-block.js +13 -0
- package/dist/_pkgs/affine-block-database/external-data-source.js +1 -1
- package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
- package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
- package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
- package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
- package/dist/_pkgs/affine-block-database/views/index.js +1 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +11 -1
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
- package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-service.js +1 -1
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +2 -2
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/utils.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +23 -4
- package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
- package/dist/_pkgs/affine-block-frame/frame-manager.js +34 -2
- package/dist/_pkgs/affine-block-frame/frame-tool.js +1 -1
- package/dist/_pkgs/affine-block-image/components/page-image-block.js +1 -1
- package/dist/_pkgs/affine-block-image/image-edgeless-block.js +1 -1
- package/dist/_pkgs/affine-block-latex/styles.js +6 -1
- package/dist/_pkgs/affine-block-list/utils/forward-delete.js +1 -1
- package/dist/_pkgs/affine-block-note/commands/select-block.js +1 -1
- package/dist/_pkgs/affine-block-note/commands/select-blocks-between.js +1 -1
- package/dist/_pkgs/affine-block-note/move-block.js +1 -1
- package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
- package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
- package/dist/_pkgs/affine-block-paragraph/utils/forward-delete.js +2 -2
- package/dist/_pkgs/affine-block-paragraph/utils/merge-with-prev.js +1 -1
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
- package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +10 -3
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +27 -2
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
- package/dist/_pkgs/affine-block-root/edgeless/utils/clipboard-utils.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
- package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
- package/dist/_pkgs/affine-block-root/index.js +4 -1
- package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
- package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
- package/dist/_pkgs/affine-block-root/view.js +13 -4
- package/dist/_pkgs/affine-block-surface/adapters/markdown/element-adapter/type.js +1 -1
- package/dist/_pkgs/affine-block-surface/adapters/plain-text/element-adapter/type.js +1 -1
- package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
- package/dist/_pkgs/affine-block-surface/effects.js +6 -0
- package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
- package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
- package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/audit.js +489 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +37 -5
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +327 -0
- package/dist/_pkgs/affine-block-surface/extensions/element-renderer.js +1 -1
- package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +1 -1
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +17 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +172 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +393 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +306 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange.js +64 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +248 -0
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +248 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +588 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +958 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +2129 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.js +4620 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +330 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +1004 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +610 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.js +206 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +99 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.js +193 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +399 -0
- package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-surface/index.js +1 -0
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
- package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
- package/dist/_pkgs/affine-block-surface/renderer/overlay.js +1 -1
- package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
- package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
- package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/view.js +57 -2
- package/dist/_pkgs/affine-block-surface-ref/portal/note.js +2 -2
- package/dist/_pkgs/affine-block-table/commands.js +1 -1
- package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
- package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
- package/dist/_pkgs/affine-block-table/table-block.js +8 -2
- package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
- package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
- package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
- package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
- package/dist/_pkgs/affine-block-table/utils.js +12 -0
- package/dist/_pkgs/affine-block-table/view.js +2 -0
- package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
- package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
- package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
- package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
- package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
- package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
- package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
- package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +1 -1
- package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +1 -1
- package/dist/_pkgs/affine-components/filterable-list/styles.js +1 -1
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
- package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
- package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
- package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
- package/dist/_pkgs/affine-components/icons/text.js +426 -426
- package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
- package/dist/_pkgs/affine-components/peek/peekable.js +1 -1
- package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
- package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -0
- package/dist/_pkgs/affine-components/toolbar/index.js +1 -0
- package/dist/_pkgs/affine-components/toolbar/menu-button.js +2 -1
- package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +55 -0
- package/dist/_pkgs/affine-components/toolbar/picker-menu.js +47 -0
- package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
- package/dist/_pkgs/affine-foundation/view.js +11 -2
- package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +2 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +2 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +1 -1
- package/dist/_pkgs/affine-fragment-outline/mobile-outline-panel.js +1 -1
- package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
- package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +1 -1
- package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
- package/dist/_pkgs/affine-gfx-connector/connector-manager.js +39 -16
- package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +26 -1
- package/dist/_pkgs/affine-gfx-connector/connector-tool.js +12 -3
- package/dist/_pkgs/affine-gfx-connector/connector-watcher.js +1 -4
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +282 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +185 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
- package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
- package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
- package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +1 -1
- package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +68 -2
- package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
- package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
- package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
- package/dist/_pkgs/affine-gfx-mindmap/adapter/markdown/index.js +1 -1
- package/dist/_pkgs/affine-gfx-mindmap/adapter/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +583 -4
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +23 -23
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +5 -1
- package/dist/_pkgs/affine-gfx-mindmap/view/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-note/overlay/overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +1 -1
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
- package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
- package/dist/_pkgs/affine-gfx-shape/consts.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/draggable/shape-draggable.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/polygon.js +17 -9
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/utils.js +8 -3
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
- package/dist/_pkgs/affine-gfx-shape/element-view.js +19 -12
- package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
- package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-vertex-editing-overlay.js +12 -7
- package/dist/_pkgs/affine-gfx-shape/overlay/shape-overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +4 -2
- package/dist/_pkgs/affine-gfx-shape/shape-tool.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -15
- package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
- package/dist/_pkgs/affine-gfx-template/builtin/other.js +66 -17
- package/dist/_pkgs/affine-gfx-template/toolbar/overlay-scrollbar.js +1 -1
- package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +1 -1
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
- package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
- package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +1 -1
- package/dist/_pkgs/affine-inline-latex/command.js +46 -26
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
- package/dist/_pkgs/affine-inline-link/command.js +1 -1
- package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
- package/dist/_pkgs/affine-inline-preset/command/format-block.js +1 -1
- package/dist/_pkgs/affine-inline-preset/command/format-native.js +2 -2
- package/dist/_pkgs/affine-inline-preset/command/format-text.js +1 -1
- package/dist/_pkgs/affine-inline-preset/inline-spec.js +1 -1
- package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +1 -1
- package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
- package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
- package/dist/_pkgs/affine-model/elements/bpmn/node.d.ts +40 -7
- package/dist/_pkgs/affine-model/elements/bpmn/node.js +4 -2
- package/dist/_pkgs/affine-model/elements/bpmn/pool.d.ts +74 -17
- package/dist/_pkgs/affine-model/elements/bpmn/pool.js +55 -26
- package/dist/_pkgs/affine-model/elements/c4/board.d.ts +88 -0
- package/dist/_pkgs/affine-model/elements/c4/board.js +128 -0
- package/dist/_pkgs/affine-model/elements/c4/boundary.d.ts +63 -0
- package/dist/_pkgs/affine-model/elements/c4/boundary.js +134 -0
- package/dist/_pkgs/affine-model/elements/c4/index.d.ts +3 -0
- package/dist/_pkgs/affine-model/elements/c4/index.js +3 -0
- package/dist/_pkgs/affine-model/elements/c4/node.d.ts +97 -0
- package/dist/_pkgs/affine-model/elements/c4/node.js +130 -0
- package/dist/_pkgs/affine-model/elements/connector/connector.js +25 -1
- package/dist/_pkgs/affine-model/elements/context-map/context-map.d.ts +27 -0
- package/dist/_pkgs/affine-model/elements/context-map/context-map.js +94 -0
- package/dist/_pkgs/affine-model/elements/context-map/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/context-map/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +34 -17
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +28 -26
- package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
- package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
- package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +36 -0
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +103 -0
- package/dist/_pkgs/affine-model/elements/event-storming/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/event-storming/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/index.d.ts +14 -1
- package/dist/_pkgs/affine-model/elements/index.js +4 -0
- package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
- package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
- package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
- package/dist/_pkgs/affine-model/elements/shape/api/polygon.js +2 -8
- package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
- package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
- package/dist/_pkgs/affine-shared/adapters/html/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +161 -3
- package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
- package/dist/_pkgs/affine-shared/adapters/notion-html/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/notion-html/delta-converter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/plain-text/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/plain-text/delta-converter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.js +283 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
- package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
- package/dist/_pkgs/affine-shared/commands/model-crud/draft-selected-models.js +1 -1
- package/dist/_pkgs/affine-shared/commands/selection/focus-block-end.js +1 -1
- package/dist/_pkgs/affine-shared/commands/selection/focus-block-start.js +1 -1
- package/dist/_pkgs/affine-shared/consts/index.d.ts +10 -0
- package/dist/_pkgs/affine-shared/consts/index.js +10 -0
- package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.d.ts +55 -0
- package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.js +35 -0
- package/dist/_pkgs/affine-shared/services/audit-service.d.ts +311 -0
- package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
- package/dist/_pkgs/affine-shared/services/command-usage-service.d.ts +31 -0
- package/dist/_pkgs/affine-shared/services/command-usage-service.js +109 -0
- package/dist/_pkgs/affine-shared/services/comment-service/block-comment-manager.js +1 -1
- package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +1 -1
- package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
- package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.js +1 -1
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
- package/dist/_pkgs/affine-shared/services/index.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/index.js +7 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +312 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +255 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
- package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
- package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/registry.d.ts +44 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/registry.js +161 -3
- package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
- package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +256 -0
- package/dist/_pkgs/affine-shared/test-utils/affine-template.js +1 -1
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
- package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
- package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
- package/dist/_pkgs/affine-shared/utils/edgeless.js +1 -1
- package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +34 -0
- package/dist/_pkgs/affine-shared/utils/file/filesys.js +48 -7
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
- package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
- package/dist/_pkgs/affine-shared/utils/zod-schema.js +25 -1
- package/dist/_pkgs/affine-widget-drag-handle/utils.js +1 -1
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
- package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +1 -1
- package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +1 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.d.ts +14 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.js +40 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +158 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +572 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.d.ts +46 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.js +66 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.d.ts +13 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.js +50 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +15 -5
- package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.d.ts +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.js +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/extension/index.d.ts +7 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +5 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +5 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +57 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +140 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +9 -0
- package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
- package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
- package/dist/_pkgs/affine-widget-keyboard-toolbar/keyboard-tool-panel.js +1 -1
- package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +1 -1
- package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
- package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
- package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
- package/dist/_pkgs/affine-widget-page-dragging-area/index.js +1 -1
- package/dist/_pkgs/affine-widget-remote-selection/doc/doc-remote-selection.js +1 -1
- package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
- package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
- package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
- package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.js +40 -8
- package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
- package/dist/_pkgs/affine-widget-toolbar/utils.js +744 -58
- package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
- package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
- package/dist/_pkgs/data-view/core/data-view.js +25 -3
- package/dist/_pkgs/data-view/core/detail/field.js +2 -2
- package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
- package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
- package/dist/_pkgs/data-view/core/effect.js +2 -0
- package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
- package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
- package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
- package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
- package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
- package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
- package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
- package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
- package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +64 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +849 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
- package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
- package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
- package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/index.js +3 -0
- package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +89 -4
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/group.js +86 -5
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
- package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
- package/dist/_pkgs/global/gfx/curve.js +4 -3
- package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
- package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
- package/dist/_pkgs/std/clipboard/utils.js +10 -0
- package/dist/_pkgs/std/event/dispatcher.js +27 -1
- package/dist/_pkgs/std/event/keymap.js +16 -6
- package/dist/_pkgs/std/extension/command-registry.d.ts +475 -0
- package/dist/_pkgs/std/extension/command-registry.js +431 -0
- package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
- package/dist/_pkgs/std/extension/index.d.ts +2 -0
- package/dist/_pkgs/std/extension/index.js +2 -0
- package/dist/_pkgs/std/extension/shortcut.js +2 -1
- package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
- package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
- package/dist/_pkgs/std/gfx/grid.js +1 -1
- package/dist/_pkgs/std/gfx/index.d.ts +7 -3
- package/dist/_pkgs/std/gfx/index.js +6 -2
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
- package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
- package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
- package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
- package/dist/_pkgs/std/gfx/layer.js +1 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
- package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +442 -0
- package/dist/_pkgs/std/gfx/model/surface/element-model.js +510 -25
- package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
- package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
- package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
- package/dist/_pkgs/std/gfx/model/surface/role.js +117 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.js +305 -17
- package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
- package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
- package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
- package/dist/_pkgs/std/gfx/perf.js +30 -0
- package/dist/_pkgs/std/gfx/selection.js +1 -1
- package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
- package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
- package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
- package/dist/_pkgs/std/gfx/viewport.js +20 -2
- package/dist/_pkgs/std/inline/extensions/inline-manager.js +1 -1
- package/dist/_pkgs/std/inline/extensions/markdown-matcher.js +1 -1
- package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
- package/dist/_pkgs/std/inline/services/event.js +96 -21
- package/dist/_pkgs/std/utils/layer.js +2 -6
- package/dist/_pkgs/std/utils/tree.d.ts +14 -0
- package/dist/_pkgs/std/utils/tree.js +59 -8
- package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
- package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
- package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
- package/dist/_pkgs/store/model/store/crud.js +10 -4
- package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
- package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
- package/dist/commands.d.ts +58 -0
- package/dist/commands.js +66 -0
- package/dist/extensions/command-telemetry.d.ts +21 -0
- package/dist/extensions/command-telemetry.js +89 -0
- package/dist/extensions/command-usage.d.ts +23 -0
- package/dist/extensions/command-usage.js +37 -0
- package/dist/extensions/store.d.ts +9 -4
- package/dist/extensions/store.js +27 -24
- package/dist/extensions/view.d.ts +9 -4
- package/dist/extensions/view.js +35 -8
- package/dist/flags.d.ts +98 -21
- package/dist/flags.js +103 -22
- package/dist/frameworks.d.ts +45 -0
- package/dist/frameworks.js +186 -0
- package/dist/schemas.d.ts +8 -5
- package/dist/schemas.js +28 -32
- package/dist/shortcuts.d.ts +16 -16
- package/dist/shortcuts.js +8 -36
- package/dist/translations.d.ts +56 -0
- package/dist/translations.js +200 -0
- package/package.json +16 -4
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
- package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
- package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
- package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
- package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { type ServiceProvider } from '../../global/di/index.js';
|
|
2
|
+
import type { GfxPrimitiveElementModel } from '../../std/gfx/index.js';
|
|
3
|
+
import type { ExtensionType } from '../../store/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* The interchange registry (`docs/adr/0012`, P1).
|
|
6
|
+
*
|
|
7
|
+
* Reading a foreign file and writing one are DECLARED PLATFORM CAPABILITIES,
|
|
8
|
+
* registered the way rules and profiles already are — `createIdentifier` plus
|
|
9
|
+
* an `…Extension` helper — and not a function some toolbar happens to call.
|
|
10
|
+
* What that buys is a question the platform can answer about itself: "what can
|
|
11
|
+
* Labre read, what can it write, and for which framework" is a lookup, so the
|
|
12
|
+
* roadmap is a table of real rows rather than a wish.
|
|
13
|
+
*
|
|
14
|
+
* Three properties are load-bearing, and each one is a decision, not a detail.
|
|
15
|
+
*
|
|
16
|
+
* **The unit is the TRIPLE — framework × format × direction.** A direction is
|
|
17
|
+
* never implied by its opposite: BPMN writes `.bpmn` (#149) and cannot read one
|
|
18
|
+
* yet, and a registry that keyed on the format alone would have no way to say
|
|
19
|
+
* so. {@link interchangeCapabilityId} builds the key and
|
|
20
|
+
* {@link InterchangeExtension} refuses a capability whose `id` disagrees with
|
|
21
|
+
* its own three fields, because an id that lies is worse than no id.
|
|
22
|
+
*
|
|
23
|
+
* **The two `run` signatures are mirror images, and neither touches an
|
|
24
|
+
* editor.** An exporter takes element models and returns text; an importer
|
|
25
|
+
* takes text and returns SERIALIZED ELEMENT PROPS — never live models, because
|
|
26
|
+
* it has no surface to add them to and giving it one would cost the purity that
|
|
27
|
+
* lets both halves be unit-tested with plain objects and no DI. The caller does
|
|
28
|
+
* the writing: `surface.addElement` from an editor command, a document mutation
|
|
29
|
+
* from labre-mcp. See P3.
|
|
30
|
+
*
|
|
31
|
+
* **Registration is flag-gated tooling; what it wrote is content.** Call
|
|
32
|
+
* {@link InterchangeExtension} from the framework's FLAG-GATED view extension,
|
|
33
|
+
* beside `ValidationRuleExtension`, because offering to read a file is tooling.
|
|
34
|
+
* Turning a framework's flag off removes its import and export commands; it
|
|
35
|
+
* does not touch one element a past import created. See `docs/adr/0009`.
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* A format Labre can read or write, and what it PROMISES (ADR 0012, P2).
|
|
39
|
+
*
|
|
40
|
+
* The tier is the single most load-bearing field here, because it is what a
|
|
41
|
+
* user is entitled to expect:
|
|
42
|
+
*
|
|
43
|
+
* - **`semantic`** — the file carries a MODEL (`.bpmn` XML, mermaid, the OWM
|
|
44
|
+
* DSL). Import is a translation, the preservation contract is full (mapped /
|
|
45
|
+
* carried / quarantined), and a round-trip is promised.
|
|
46
|
+
* - **`visual`** — the file carries a RENDERING (SVG). Import is best-effort
|
|
47
|
+
* RECOGNITION, it writes no foreign-matter payload, and it promises exactly
|
|
48
|
+
* one thing: the picture arrives as editable elements. No round-trip is
|
|
49
|
+
* implied, and the import surface must say so before the file is read.
|
|
50
|
+
*/
|
|
51
|
+
export interface InterchangeFormat {
|
|
52
|
+
/**
|
|
53
|
+
* Stable id, and THE KEY under which foreign matter is carried on an
|
|
54
|
+
* element — `'bpmn'`, `'owm'`, `'mermaid'`, `'svg'`.
|
|
55
|
+
*/
|
|
56
|
+
id: string;
|
|
57
|
+
tier: 'semantic' | 'visual';
|
|
58
|
+
/**
|
|
59
|
+
* For the file picker and the download name — `['.bpmn']`. The FIRST is the
|
|
60
|
+
* one a download is given, and the type says there is one: a format nothing
|
|
61
|
+
* on a disk is ever called is not a format anybody can hand us.
|
|
62
|
+
*/
|
|
63
|
+
extensions: readonly [string, ...string[]];
|
|
64
|
+
mime?: string;
|
|
65
|
+
}
|
|
66
|
+
/** Which way round a capability goes. Never both: see the triple, above. */
|
|
67
|
+
export type InterchangeDirection = 'import' | 'export';
|
|
68
|
+
/**
|
|
69
|
+
* One element as it is handed to `surface.addElement` — the exact shape the
|
|
70
|
+
* store already takes, so an importer's output is written with no translation
|
|
71
|
+
* step in between and no live model in sight.
|
|
72
|
+
*/
|
|
73
|
+
export type SerializedElementProps = Record<string, unknown> & {
|
|
74
|
+
type: string;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* One thing an import did that the drawing does not show, named (ADR 0012).
|
|
78
|
+
*
|
|
79
|
+
* The counts below say how much; a note says WHICH, and the ADR asks for that
|
|
80
|
+
* in five places — D1's quarantined column is "listed in the report", D3
|
|
81
|
+
* "records the substitution" of an id it could not keep and the lane
|
|
82
|
+
* disagreement it resolved, D4 "names" a shape that arrived with no diagram and
|
|
83
|
+
* says so when it laid one out, D5 surfaces `mustUnderstand` "by name". The
|
|
84
|
+
* ADR's own rejection of a document-level side table is the argument for this
|
|
85
|
+
* type: a tool that says "I lost some things" and cannot say which, where, or
|
|
86
|
+
* how to get them back has told the user nothing they can act on.
|
|
87
|
+
*/
|
|
88
|
+
export interface InterchangeNote {
|
|
89
|
+
kind: InterchangeNoteKind;
|
|
90
|
+
/** The Labre element it landed on or rides on, when there is one. */
|
|
91
|
+
elementId?: string;
|
|
92
|
+
/** The source element's id, VERBATIM, when it had one (D3). */
|
|
93
|
+
sourceId?: string;
|
|
94
|
+
/** Its source element name — `boundaryEvent`, `bioc:fill` (D1, D5). */
|
|
95
|
+
element?: string;
|
|
96
|
+
/** One line, in the user's words: what happened and what it costs them. */
|
|
97
|
+
message: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The five things worth saying about one item, and no sixth.
|
|
101
|
+
*
|
|
102
|
+
* - `carried` — no artefact for it; kept verbatim on the nearest mapped
|
|
103
|
+
* element, invisible on the canvas, re-emitted in place (D1).
|
|
104
|
+
* - `quarantined` — kept in the document and deliberately NOT re-emitted,
|
|
105
|
+
* because re-emitting it would write a file that contradicts the drawing.
|
|
106
|
+
* The four cases are closed and named in D5.
|
|
107
|
+
* - `substituted-id` — the file's id could not be given back, so one was
|
|
108
|
+
* minted. D3's whole point: record what we were given, never reconstruct
|
|
109
|
+
* what we think we sent.
|
|
110
|
+
* - `invented-layout` — a position the source did not carry. D4 forbids
|
|
111
|
+
* claiming an invented position came from the file, so it is declared here.
|
|
112
|
+
* - `warning` — the reader proceeded but its reading may be wrong;
|
|
113
|
+
* `extension/@mustUnderstand="true"` is the named case (D5), a lane the DI
|
|
114
|
+
* and the `flowNodeRef` disagreed about is the other (D3).
|
|
115
|
+
*/
|
|
116
|
+
export type InterchangeNoteKind = 'carried' | 'quarantined' | 'substituted-id' | 'invented-layout' | 'warning';
|
|
117
|
+
/**
|
|
118
|
+
* What a semantic import did with every node of the file (ADR 0012, D1).
|
|
119
|
+
*
|
|
120
|
+
* Three states and not two, and the middle one is the whole point: **mapped**
|
|
121
|
+
* became a drawn artefact, **carried** had no artefact and was kept verbatim on
|
|
122
|
+
* the nearest mapped element, **quarantined** was kept in the document but will
|
|
123
|
+
* not be re-emitted, because re-emitting it would produce a file that
|
|
124
|
+
* contradicts itself. A semantic import classifies; it never silently discards.
|
|
125
|
+
*
|
|
126
|
+
* The counts are here because a UI wants a headline it can render without
|
|
127
|
+
* walking a list; {@link notes} is here because a headline is not a product
|
|
128
|
+
* surface. Neither derives from the other — an import may carry a hundred
|
|
129
|
+
* fragments and have three worth naming — so both are stated.
|
|
130
|
+
*/
|
|
131
|
+
export interface InterchangeReport {
|
|
132
|
+
/** Nodes that became a drawn, editable artefact. */
|
|
133
|
+
mapped: number;
|
|
134
|
+
/** Nodes kept verbatim on the nearest mapped element, invisible on canvas. */
|
|
135
|
+
carried: number;
|
|
136
|
+
/** Nodes kept but deliberately not re-emitted. */
|
|
137
|
+
quarantined: number;
|
|
138
|
+
/** Which ones, and why. Empty is a claim: nothing was worth naming. */
|
|
139
|
+
notes: readonly InterchangeNote[];
|
|
140
|
+
/**
|
|
141
|
+
* The format version actually read — `'2.0'`, a mermaid release (P2, as
|
|
142
|
+
* amended). Absent when the source declared none, which is itself a fact
|
|
143
|
+
* about the file rather than a gap in the reader.
|
|
144
|
+
*/
|
|
145
|
+
sourceVersion?: string;
|
|
146
|
+
}
|
|
147
|
+
/** What the caller tells an exporter about the document it is producing. */
|
|
148
|
+
export interface InterchangeExportContext {
|
|
149
|
+
/**
|
|
150
|
+
* Names the produced document and the file it is offered as — the board's own
|
|
151
|
+
* title. A capability writes a name, it does not go looking for one: the
|
|
152
|
+
* caller reads the title, this says what to do with it.
|
|
153
|
+
*
|
|
154
|
+
* Making it safe to write to disk is the CAPABILITY's job, not the caller's,
|
|
155
|
+
* because the answer is the format's — which characters, which cap, which
|
|
156
|
+
* extension. Pass the raw title. Note the consequence, which is inherited and
|
|
157
|
+
* not introduced here: the sanitized name is also what lands as the
|
|
158
|
+
* document's own name INSIDE the file, so a board titled `Order/to cash` is
|
|
159
|
+
* named `Order-to cash` in the XML as well as on the download.
|
|
160
|
+
*/
|
|
161
|
+
name?: string;
|
|
162
|
+
}
|
|
163
|
+
/** What the caller tells an importer about the source it is handing over. */
|
|
164
|
+
export interface InterchangeImportContext {
|
|
165
|
+
/**
|
|
166
|
+
* A name for what is read, used only when the source document names nothing
|
|
167
|
+
* itself. A file that carries its own name always wins: an import states what
|
|
168
|
+
* the file says, and never what the caller wished it said.
|
|
169
|
+
*/
|
|
170
|
+
name?: string;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* A whole document, as text, plus what a caller needs to hand it to a browser
|
|
174
|
+
* or an HTTP response without knowing which format it asked for.
|
|
175
|
+
*/
|
|
176
|
+
export interface InterchangeExportResult {
|
|
177
|
+
/** The document. */
|
|
178
|
+
text: string;
|
|
179
|
+
/** Suggested download name, extension included. */
|
|
180
|
+
filename: string;
|
|
181
|
+
/** `application/xml`, `text/plain`, … — the format's, not the caller's. */
|
|
182
|
+
mime: string;
|
|
183
|
+
/**
|
|
184
|
+
* What the WRITER could not say, one line each, in the user's words. Absent
|
|
185
|
+
* when the board came out whole, which is the usual case.
|
|
186
|
+
*
|
|
187
|
+
* Not a three-way classification — an exporter has nothing foreign to sort,
|
|
188
|
+
* which is why {@link InterchangeReport} is the importer's alone. But an
|
|
189
|
+
* export loses things too: a board can hold sentences the format has no way
|
|
190
|
+
* to write down, and the user who clicked Export is the one person entitled
|
|
191
|
+
* to be told. Warnings are never errors — the file is valid and the export
|
|
192
|
+
* succeeded.
|
|
193
|
+
*/
|
|
194
|
+
warnings?: readonly string[];
|
|
195
|
+
}
|
|
196
|
+
/** Element props for the caller to write, and what became of the source. */
|
|
197
|
+
export interface InterchangeImportResult {
|
|
198
|
+
elements: readonly SerializedElementProps[];
|
|
199
|
+
report: InterchangeReport;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* The whole board, in document order — never a selection.
|
|
203
|
+
*
|
|
204
|
+
* A framework document is one statement and half a statement is not a smaller
|
|
205
|
+
* one, so the capability is handed the surface's elements and picks out what it
|
|
206
|
+
* speaks about itself. Document order is the caller's, and it matters: it is
|
|
207
|
+
* the tie-break the audit and the validation rules already break on, so an
|
|
208
|
+
* export cannot disagree with a badge the user can see.
|
|
209
|
+
*/
|
|
210
|
+
export type InterchangeExporter = (elements: readonly GfxPrimitiveElementModel[], context: InterchangeExportContext) => InterchangeExportResult;
|
|
211
|
+
/**
|
|
212
|
+
* Text in, element props out. No surface, no `std`, no DI — see P3: this is
|
|
213
|
+
* what makes the same function callable from an editor command and from
|
|
214
|
+
* labre-mcp, and testable from neither.
|
|
215
|
+
*/
|
|
216
|
+
export type InterchangeImporter = (source: string, context: InterchangeImportContext) => InterchangeImportResult;
|
|
217
|
+
/** Everything a capability declares that does not depend on its direction. */
|
|
218
|
+
export interface InterchangeCapabilityBase {
|
|
219
|
+
/**
|
|
220
|
+
* `${framework}:${format.id}:${direction}` — unique, and the DI key. Build it
|
|
221
|
+
* with {@link interchangeCapabilityId} rather than by hand.
|
|
222
|
+
*/
|
|
223
|
+
id: string;
|
|
224
|
+
/** `'bpmn'`, `'wardley'`, `'c4'` — the framework that owns the vocabulary. */
|
|
225
|
+
framework: string;
|
|
226
|
+
format: InterchangeFormat;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* One direction of one format for one framework.
|
|
230
|
+
*
|
|
231
|
+
* A UNION discriminated on `direction`, so `run` is the function that direction
|
|
232
|
+
* means and nothing else. This is what makes the triple structural rather than
|
|
233
|
+
* a naming convention: `InterchangeExtension` can refuse an id that lies about
|
|
234
|
+
* its three fields, but only the type system can refuse an importer handed over
|
|
235
|
+
* as an export — no runtime check can tell two functions apart by looking. It
|
|
236
|
+
* also means a caller that has narrowed on `direction` calls `run` directly,
|
|
237
|
+
* with no cast, which is the difference between a registry and a bag.
|
|
238
|
+
*/
|
|
239
|
+
export type InterchangeCapability = (InterchangeCapabilityBase & {
|
|
240
|
+
direction: 'export';
|
|
241
|
+
/** The pure function. See P3 — this is the whole contract. */
|
|
242
|
+
run: InterchangeExporter;
|
|
243
|
+
}) | (InterchangeCapabilityBase & {
|
|
244
|
+
direction: 'import';
|
|
245
|
+
/** The pure function. See P3 — this is the whole contract. */
|
|
246
|
+
run: InterchangeImporter;
|
|
247
|
+
});
|
|
248
|
+
/** Narrowed by direction, for a caller that asked the registry for one. */
|
|
249
|
+
export type InterchangeExportCapability = Extract<InterchangeCapability, {
|
|
250
|
+
direction: 'export';
|
|
251
|
+
}>;
|
|
252
|
+
export type InterchangeImportCapability = Extract<InterchangeCapability, {
|
|
253
|
+
direction: 'import';
|
|
254
|
+
}>;
|
|
255
|
+
/** The one way to spell a capability's id. */
|
|
256
|
+
export declare function interchangeCapabilityId(framework: string, formatId: string, direction: InterchangeDirection): string;
|
|
257
|
+
/** A framework registers its interchange here; nothing else registers any. */
|
|
258
|
+
export declare const InterchangeIdentifier: import("../../global/di/types.js").ServiceIdentifier<InterchangeCapability> & (<U extends InterchangeCapability = InterchangeCapability>(variant: import("../../global/di/types.js").ServiceVariant) => import("../../global/di/types.js").ServiceIdentifier<U>);
|
|
259
|
+
/**
|
|
260
|
+
* Register a framework's interchange capabilities. Call it from the FLAG-GATED
|
|
261
|
+
* view extension — offering to read or write a file is tooling, so a disabled
|
|
262
|
+
* framework offers neither, and a board a past import wrote keeps every byte it
|
|
263
|
+
* was given (`docs/adr/0009`).
|
|
264
|
+
*
|
|
265
|
+
* ```ts
|
|
266
|
+
* context.register(InterchangeExtension([BPMN_XML_EXPORT]));
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* The id is checked against the triple it claims to be, its parts are checked
|
|
270
|
+
* for the separator that would let two different triples mint one key, and the
|
|
271
|
+
* DI container refuses a second capability under the same id. All three
|
|
272
|
+
* refusals are loud and all three are deliberate: a registry whose keys can lie
|
|
273
|
+
* or collide answers the question "what can Labre read" with something other
|
|
274
|
+
* than the truth, and that question is the only reason this registry exists.
|
|
275
|
+
*
|
|
276
|
+
* They fire at container setup — at boot, or in any test that mounts — never
|
|
277
|
+
* mid-session, and never on a capability built with
|
|
278
|
+
* {@link interchangeCapabilityId}.
|
|
279
|
+
*/
|
|
280
|
+
export declare function InterchangeExtension(capabilities: readonly InterchangeCapability[]): ExtensionType;
|
|
281
|
+
/** Narrows {@link interchangeCapabilities}. Every field is optional and ANDed. */
|
|
282
|
+
export interface InterchangeQuery {
|
|
283
|
+
framework?: string;
|
|
284
|
+
/** The format's id, not its extension. */
|
|
285
|
+
format?: string;
|
|
286
|
+
direction?: InterchangeDirection;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* The capabilities registered in this assembly, optionally narrowed.
|
|
290
|
+
*
|
|
291
|
+
* Read straight off the DI identifier, exactly as the audit reads the rules:
|
|
292
|
+
* registration is the gate, so a framework whose flag is off contributes
|
|
293
|
+
* nothing here for the same reason it contributes no rule. Sorted by id, so a
|
|
294
|
+
* menu built from this list is in the same order on every boot.
|
|
295
|
+
*
|
|
296
|
+
* Asking for a direction returns that direction's capabilities, typed: a caller
|
|
297
|
+
* that queried for exporters gets `run`s it can call, not a union it must
|
|
298
|
+
* narrow a second time by hand.
|
|
299
|
+
*/
|
|
300
|
+
export declare function interchangeCapabilities(provider: ServiceProvider, query: InterchangeQuery & {
|
|
301
|
+
direction: 'export';
|
|
302
|
+
}): InterchangeExportCapability[];
|
|
303
|
+
export declare function interchangeCapabilities(provider: ServiceProvider, query: InterchangeQuery & {
|
|
304
|
+
direction: 'import';
|
|
305
|
+
}): InterchangeImportCapability[];
|
|
306
|
+
export declare function interchangeCapabilities(provider: ServiceProvider, query?: InterchangeQuery): InterchangeCapability[];
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { createIdentifier } from '../../global/di/index.js';
|
|
2
|
+
/** The separator the triple is built from, and therefore reserved in its parts. */
|
|
3
|
+
const ID_SEPARATOR = ':';
|
|
4
|
+
/** The one way to spell a capability's id. */
|
|
5
|
+
export function interchangeCapabilityId(framework, formatId, direction) {
|
|
6
|
+
return `${framework}${ID_SEPARATOR}${formatId}${ID_SEPARATOR}${direction}`;
|
|
7
|
+
}
|
|
8
|
+
/** A framework registers its interchange here; nothing else registers any. */
|
|
9
|
+
export const InterchangeIdentifier = createIdentifier('Interchange');
|
|
10
|
+
/**
|
|
11
|
+
* Register a framework's interchange capabilities. Call it from the FLAG-GATED
|
|
12
|
+
* view extension — offering to read or write a file is tooling, so a disabled
|
|
13
|
+
* framework offers neither, and a board a past import wrote keeps every byte it
|
|
14
|
+
* was given (`docs/adr/0009`).
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* context.register(InterchangeExtension([BPMN_XML_EXPORT]));
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* The id is checked against the triple it claims to be, its parts are checked
|
|
21
|
+
* for the separator that would let two different triples mint one key, and the
|
|
22
|
+
* DI container refuses a second capability under the same id. All three
|
|
23
|
+
* refusals are loud and all three are deliberate: a registry whose keys can lie
|
|
24
|
+
* or collide answers the question "what can Labre read" with something other
|
|
25
|
+
* than the truth, and that question is the only reason this registry exists.
|
|
26
|
+
*
|
|
27
|
+
* They fire at container setup — at boot, or in any test that mounts — never
|
|
28
|
+
* mid-session, and never on a capability built with
|
|
29
|
+
* {@link interchangeCapabilityId}.
|
|
30
|
+
*/
|
|
31
|
+
export function InterchangeExtension(capabilities) {
|
|
32
|
+
return {
|
|
33
|
+
setup: di => {
|
|
34
|
+
for (const capability of capabilities) {
|
|
35
|
+
// Checked BEFORE the triple is minted from them: `('a', 'b:c')` and
|
|
36
|
+
// `('a:b', 'c')` mint the same key, and the id would agree with itself.
|
|
37
|
+
// Without this, that surfaces as an opaque DI collision instead of the
|
|
38
|
+
// sentence this function already knows how to write.
|
|
39
|
+
for (const [field, value] of [
|
|
40
|
+
['framework', capability.framework],
|
|
41
|
+
['format.id', capability.format.id],
|
|
42
|
+
]) {
|
|
43
|
+
if (value.includes(ID_SEPARATOR)) {
|
|
44
|
+
throw new Error(`Interchange ${field} "${value}" contains "${ID_SEPARATOR}", which separates the parts of a capability id.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const expected = interchangeCapabilityId(capability.framework, capability.format.id, capability.direction);
|
|
48
|
+
if (capability.id !== expected) {
|
|
49
|
+
throw new Error(`Interchange capability id "${capability.id}" is not its triple: expected "${expected}".`);
|
|
50
|
+
}
|
|
51
|
+
di.addImpl(InterchangeIdentifier(capability.id), () => capability);
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function interchangeCapabilities(provider, query = {}) {
|
|
57
|
+
return [...provider.getAll(InterchangeIdentifier).values()]
|
|
58
|
+
.filter(capability => (query.framework === undefined ||
|
|
59
|
+
capability.framework === query.framework) &&
|
|
60
|
+
(query.format === undefined || capability.format.id === query.format) &&
|
|
61
|
+
(query.direction === undefined ||
|
|
62
|
+
capability.direction === query.direction))
|
|
63
|
+
.sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
|
|
64
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { type AnyCommandDescriptor } from '../../std/index.js';
|
|
2
|
+
import { nothing } from 'lit';
|
|
3
|
+
import { EditorAnchoredPanel } from './editor-anchored-panel.js';
|
|
4
|
+
export declare const MAP_QUALITY_WIDGET = "affine-map-quality-widget";
|
|
5
|
+
/**
|
|
6
|
+
* The **Map quality** panel (PF7.11): the checklist of nudges a framework
|
|
7
|
+
* declares (PF7.10), on one root instance.
|
|
8
|
+
*
|
|
9
|
+
* ## One kind of statement, and only one (PO, 02/08/2026)
|
|
10
|
+
*
|
|
11
|
+
* The panel used to carry three: the checklist, a "Run check-up" button with the
|
|
12
|
+
* remarks and the families it had walked, and a count of the real-time warnings
|
|
13
|
+
* on the map. All three were true and the reader had to work out which was
|
|
14
|
+
* speaking — a check-up saying "Nothing to report" over a map wearing amber
|
|
15
|
+
* badges reads as a contradiction until you know it never looked at them. The
|
|
16
|
+
* PO's answer was not more wording: it was to take the other two away. What is
|
|
17
|
+
* left is the one thing the panel is FOR, the expectations the tool cannot judge
|
|
18
|
+
* and the user says they have taken care of.
|
|
19
|
+
*
|
|
20
|
+
* Nothing was removed from the engine. The on-demand moment (PF5.14) and the
|
|
21
|
+
* families that used it are still there, still tested; the canvas still carries
|
|
22
|
+
* the real-time findings, which is where they were always legible. Only this
|
|
23
|
+
* panel got shorter.
|
|
24
|
+
*
|
|
25
|
+
* ## Generic, not Wardley
|
|
26
|
+
*
|
|
27
|
+
* Nothing here names a framework, a role or a rule. The panel asks the ENGINE
|
|
28
|
+
* what this instance has ({@link ValidationManager.nudgesFor}) and renders the
|
|
29
|
+
* answer. A second framework declaring nudges gets the toolbar entry and this
|
|
30
|
+
* panel with no code written anywhere — which is the acceptance criterion of
|
|
31
|
+
* PF7.11 and the reason none of this lives in `gfx/wardley`.
|
|
32
|
+
*
|
|
33
|
+
* ## Why a widget and not a menu
|
|
34
|
+
*
|
|
35
|
+
* Because a dropdown closes on the first click, and this is a surface you WORK
|
|
36
|
+
* in: four boxes to tick, one at a time, while looking at the map. The entry in
|
|
37
|
+
* the Validation dropdown opens it and gets out of the way
|
|
38
|
+
* (`validation-toolbar.ts`); `ValidationManager.mapQualityFor$` is the seam
|
|
39
|
+
* between the two, because the entry lives in `editor-menu-button`'s shadow root
|
|
40
|
+
* and the panel lives on the root block — two trees with no DOM path between
|
|
41
|
+
* them.
|
|
42
|
+
*
|
|
43
|
+
* ## Where it sits
|
|
44
|
+
*
|
|
45
|
+
* **Anchored to the EDITOR, above the senior button bar and at its width** —
|
|
46
|
+
* the same place, the same layer and the same shared class as the reversed
|
|
47
|
+
* reading's panel (ADR 0011, PO decision of 02/08/2026). It shipped as a
|
|
48
|
+
* popover hanging off the map's top-right corner, at 320px, flipping sides and
|
|
49
|
+
* ends to stay on screen; every line of that arithmetic is gone, and with it
|
|
50
|
+
* the two faults the PO named — a floating box that loses the z-order contest
|
|
51
|
+
* with the toolbars, and a measure that lines up with nothing.
|
|
52
|
+
*
|
|
53
|
+
* Only the PRESENTATION moved. The entry in the background's contextual menu is
|
|
54
|
+
* still the trigger, the panel is still about one root instance and still says
|
|
55
|
+
* so in `data-element-id`, and nothing about what it renders changed.
|
|
56
|
+
*
|
|
57
|
+
* ## Read-only
|
|
58
|
+
*
|
|
59
|
+
* Ticking a nudge WRITES on the document, so every checkbox is disabled in a
|
|
60
|
+
* read-only store — and `setNudgeChecked` is behind the same guard, because a
|
|
61
|
+
* disabled input is a UI promise and not an enforcement. Opening the panel
|
|
62
|
+
* writes nothing, so a reviewer still reads the checklist.
|
|
63
|
+
*
|
|
64
|
+
* ## Ticking is assuming
|
|
65
|
+
*
|
|
66
|
+
* The panel never claims a nudge is satisfied. It records that somebody said so
|
|
67
|
+
* — the same contract as an exception (PF8), and the reason the checklist is
|
|
68
|
+
* introduced as "To be checked by you" rather than as "Checklist", which left
|
|
69
|
+
* the reader to guess whether the tool had already been through it.
|
|
70
|
+
*/
|
|
71
|
+
export declare class MapQualityWidget extends EditorAnchoredPanel {
|
|
72
|
+
static styles: import("lit").CSSResult[];
|
|
73
|
+
/** The instance whose panel is open, mirrored off the manager's signal. */
|
|
74
|
+
private accessor _openFor;
|
|
75
|
+
/**
|
|
76
|
+
* Bumped to force a re-render when the document changes underneath — a peer
|
|
77
|
+
* ticking a nudge, an undo, the instance moving. The checklist state lives in
|
|
78
|
+
* the Y.Map, not here: this widget renders it, it never caches it.
|
|
79
|
+
*/
|
|
80
|
+
private accessor _revision;
|
|
81
|
+
private _elementSubscriptions;
|
|
82
|
+
/** The instance whose panel has already been given the focus, if any. */
|
|
83
|
+
private _focused;
|
|
84
|
+
private get _validation();
|
|
85
|
+
protected get panelOpen(): boolean;
|
|
86
|
+
protected closePanel(): void;
|
|
87
|
+
/** The open instance, if it still exists and still has a panel to show. */
|
|
88
|
+
private get _element();
|
|
89
|
+
private readonly _close;
|
|
90
|
+
/**
|
|
91
|
+
* Follow the open instance, and only while one is open. On a board with no
|
|
92
|
+
* panel these subscriptions do not exist, so the busiest signals on the
|
|
93
|
+
* surface cost the widget nothing.
|
|
94
|
+
*
|
|
95
|
+
* `elementRemoved` as well as `elementUpdated`, and that is not symmetry for
|
|
96
|
+
* its own sake: DELETING the instance is the one change that must close the
|
|
97
|
+
* panel, and it is the one change `elementUpdated` never reports. Without it
|
|
98
|
+
* the panel floats over a map that is gone, with a checkbox that writes to a
|
|
99
|
+
* dead element.
|
|
100
|
+
*/
|
|
101
|
+
private _watchElements;
|
|
102
|
+
/**
|
|
103
|
+
* Idempotent wiring, called from both `firstUpdated` and a later
|
|
104
|
+
* `connectedCallback` — `WithDisposable` throws the group away on disconnect
|
|
105
|
+
* while lit runs `firstUpdated` exactly once.
|
|
106
|
+
*/
|
|
107
|
+
private _wire;
|
|
108
|
+
connectedCallback(): void;
|
|
109
|
+
firstUpdated(): void;
|
|
110
|
+
/**
|
|
111
|
+
* Move the focus into the panel when it opens, once.
|
|
112
|
+
*
|
|
113
|
+
* Without it the panel is unreachable from the keyboard and silent to a screen
|
|
114
|
+
* reader — which matters most on the path the toolbar does not cover: opened
|
|
115
|
+
* from the command palette, the focus is still in the host's own UI, so
|
|
116
|
+
* nothing is announced and the Escape handler (on the editor host, which is
|
|
117
|
+
* the right scope) never sees the key.
|
|
118
|
+
*
|
|
119
|
+
* The panel itself takes the focus, not the first checkbox: it carries the
|
|
120
|
+
* dialog's label, so a screen reader reads "Map quality" before it reads the
|
|
121
|
+
* first expectation. `preventScroll` because the host is a zero-sized box at
|
|
122
|
+
* the viewport origin and the browser would otherwise scroll the editor to
|
|
123
|
+
* "reveal" it.
|
|
124
|
+
*
|
|
125
|
+
* The dialog semantics themselves — `role`, `tabindex`, and the deliberate
|
|
126
|
+
* absence of `aria-modal` — come from {@link EditorAnchoredPanel}, which is
|
|
127
|
+
* also where the reasoning for that absence now lives.
|
|
128
|
+
*/
|
|
129
|
+
updated(): void;
|
|
130
|
+
/**
|
|
131
|
+
* Tick or untick, and report it.
|
|
132
|
+
*
|
|
133
|
+
* `captureSync` opens an undo checkpoint first, like every other write the
|
|
134
|
+
* validation surfaces make, so one click is one undo.
|
|
135
|
+
*
|
|
136
|
+
* The read-only test here is the CHEAP half — it keeps `captureSync` and the
|
|
137
|
+
* telemetry from firing for a write that will not happen. The one that
|
|
138
|
+
* actually protects the document is inside `setNudgeChecked`, at the seam,
|
|
139
|
+
* where every caller meets it (see the note there).
|
|
140
|
+
*/
|
|
141
|
+
private _toggleNudge;
|
|
142
|
+
private _renderNudges;
|
|
143
|
+
render(): import("lit-html").TemplateResult | typeof nothing;
|
|
144
|
+
}
|
|
145
|
+
export declare const mapQualityWidget: import("../../store/index.js").ExtensionType;
|
|
146
|
+
export declare const mapQualityCommands: AnyCommandDescriptor[];
|