@formicoidea/labre-core 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_pkgs/affine-block-attachment/attachment-block.js +1 -1
- package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
- package/dist/_pkgs/affine-block-callout/callout-block.js +26 -4
- package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
- package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
- package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
- package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
- package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
- package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
- package/dist/_pkgs/affine-block-code/code-block-inline.js +1 -1
- package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
- package/dist/_pkgs/affine-block-code/code-block.js +44 -6
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/config.js +54 -5
- package/dist/_pkgs/affine-block-code/code-toolbar/index.js +1 -1
- package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/effects.js +2 -0
- package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
- package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-code/index.js +1 -0
- package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
- package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
- package/dist/_pkgs/affine-block-code/styles.js +31 -0
- package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
- package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
- package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
- package/dist/_pkgs/affine-block-database/data-source.js +1 -2
- package/dist/_pkgs/affine-block-database/database-block.js +13 -0
- package/dist/_pkgs/affine-block-database/external-data-source.js +1 -1
- package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
- package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
- package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
- package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
- package/dist/_pkgs/affine-block-database/views/index.js +1 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +11 -1
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
- package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-service.js +1 -1
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +2 -2
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/utils.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +23 -4
- package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
- package/dist/_pkgs/affine-block-frame/frame-manager.js +34 -2
- package/dist/_pkgs/affine-block-frame/frame-tool.js +1 -1
- package/dist/_pkgs/affine-block-image/components/page-image-block.js +1 -1
- package/dist/_pkgs/affine-block-image/image-edgeless-block.js +1 -1
- package/dist/_pkgs/affine-block-latex/styles.js +6 -1
- package/dist/_pkgs/affine-block-list/utils/forward-delete.js +1 -1
- package/dist/_pkgs/affine-block-note/commands/select-block.js +1 -1
- package/dist/_pkgs/affine-block-note/commands/select-blocks-between.js +1 -1
- package/dist/_pkgs/affine-block-note/move-block.js +1 -1
- package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
- package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
- package/dist/_pkgs/affine-block-paragraph/utils/forward-delete.js +2 -2
- package/dist/_pkgs/affine-block-paragraph/utils/merge-with-prev.js +1 -1
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
- package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +10 -3
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +27 -2
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
- package/dist/_pkgs/affine-block-root/edgeless/utils/clipboard-utils.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
- package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
- package/dist/_pkgs/affine-block-root/index.js +4 -1
- package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
- package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
- package/dist/_pkgs/affine-block-root/view.js +13 -4
- package/dist/_pkgs/affine-block-surface/adapters/markdown/element-adapter/type.js +1 -1
- package/dist/_pkgs/affine-block-surface/adapters/plain-text/element-adapter/type.js +1 -1
- package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
- package/dist/_pkgs/affine-block-surface/effects.js +6 -0
- package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
- package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
- package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/audit.js +489 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +37 -5
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +327 -0
- package/dist/_pkgs/affine-block-surface/extensions/element-renderer.js +1 -1
- package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +1 -1
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +17 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +172 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +393 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +306 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange.js +64 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +248 -0
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +248 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +588 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +958 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +2129 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.js +4620 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +330 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +1004 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +610 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.js +206 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +99 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.js +193 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +399 -0
- package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-surface/index.js +1 -0
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
- package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
- package/dist/_pkgs/affine-block-surface/renderer/overlay.js +1 -1
- package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
- package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
- package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/view.js +57 -2
- package/dist/_pkgs/affine-block-surface-ref/portal/note.js +2 -2
- package/dist/_pkgs/affine-block-table/commands.js +1 -1
- package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
- package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
- package/dist/_pkgs/affine-block-table/table-block.js +8 -2
- package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
- package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
- package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
- package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
- package/dist/_pkgs/affine-block-table/utils.js +12 -0
- package/dist/_pkgs/affine-block-table/view.js +2 -0
- package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
- package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
- package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
- package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
- package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
- package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
- package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
- package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +1 -1
- package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +1 -1
- package/dist/_pkgs/affine-components/filterable-list/styles.js +1 -1
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
- package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
- package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
- package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
- package/dist/_pkgs/affine-components/icons/text.js +426 -426
- package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
- package/dist/_pkgs/affine-components/peek/peekable.js +1 -1
- package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
- package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -0
- package/dist/_pkgs/affine-components/toolbar/index.js +1 -0
- package/dist/_pkgs/affine-components/toolbar/menu-button.js +2 -1
- package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +55 -0
- package/dist/_pkgs/affine-components/toolbar/picker-menu.js +47 -0
- package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
- package/dist/_pkgs/affine-foundation/view.js +11 -2
- package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +2 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +2 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +1 -1
- package/dist/_pkgs/affine-fragment-outline/mobile-outline-panel.js +1 -1
- package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
- package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +1 -1
- package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
- package/dist/_pkgs/affine-gfx-connector/connector-manager.js +39 -16
- package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +26 -1
- package/dist/_pkgs/affine-gfx-connector/connector-tool.js +12 -3
- package/dist/_pkgs/affine-gfx-connector/connector-watcher.js +1 -4
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +282 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +185 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
- package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
- package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
- package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +1 -1
- package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +68 -2
- package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
- package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
- package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
- package/dist/_pkgs/affine-gfx-mindmap/adapter/markdown/index.js +1 -1
- package/dist/_pkgs/affine-gfx-mindmap/adapter/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +583 -4
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +23 -23
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +5 -1
- package/dist/_pkgs/affine-gfx-mindmap/view/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-note/overlay/overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +1 -1
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
- package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
- package/dist/_pkgs/affine-gfx-shape/consts.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/draggable/shape-draggable.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/polygon.js +17 -9
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/utils.js +8 -3
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
- package/dist/_pkgs/affine-gfx-shape/element-view.js +19 -12
- package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
- package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-vertex-editing-overlay.js +12 -7
- package/dist/_pkgs/affine-gfx-shape/overlay/shape-overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +4 -2
- package/dist/_pkgs/affine-gfx-shape/shape-tool.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -15
- package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
- package/dist/_pkgs/affine-gfx-template/builtin/other.js +66 -17
- package/dist/_pkgs/affine-gfx-template/toolbar/overlay-scrollbar.js +1 -1
- package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +1 -1
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
- package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
- package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +1 -1
- package/dist/_pkgs/affine-inline-latex/command.js +46 -26
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
- package/dist/_pkgs/affine-inline-link/command.js +1 -1
- package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
- package/dist/_pkgs/affine-inline-preset/command/format-block.js +1 -1
- package/dist/_pkgs/affine-inline-preset/command/format-native.js +2 -2
- package/dist/_pkgs/affine-inline-preset/command/format-text.js +1 -1
- package/dist/_pkgs/affine-inline-preset/inline-spec.js +1 -1
- package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +1 -1
- package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
- package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
- package/dist/_pkgs/affine-model/elements/bpmn/node.d.ts +40 -7
- package/dist/_pkgs/affine-model/elements/bpmn/node.js +4 -2
- package/dist/_pkgs/affine-model/elements/bpmn/pool.d.ts +74 -17
- package/dist/_pkgs/affine-model/elements/bpmn/pool.js +55 -26
- package/dist/_pkgs/affine-model/elements/c4/board.d.ts +88 -0
- package/dist/_pkgs/affine-model/elements/c4/board.js +128 -0
- package/dist/_pkgs/affine-model/elements/c4/boundary.d.ts +63 -0
- package/dist/_pkgs/affine-model/elements/c4/boundary.js +134 -0
- package/dist/_pkgs/affine-model/elements/c4/index.d.ts +3 -0
- package/dist/_pkgs/affine-model/elements/c4/index.js +3 -0
- package/dist/_pkgs/affine-model/elements/c4/node.d.ts +97 -0
- package/dist/_pkgs/affine-model/elements/c4/node.js +130 -0
- package/dist/_pkgs/affine-model/elements/connector/connector.js +25 -1
- package/dist/_pkgs/affine-model/elements/context-map/context-map.d.ts +27 -0
- package/dist/_pkgs/affine-model/elements/context-map/context-map.js +94 -0
- package/dist/_pkgs/affine-model/elements/context-map/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/context-map/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +34 -17
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +28 -26
- package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
- package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
- package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +36 -0
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +103 -0
- package/dist/_pkgs/affine-model/elements/event-storming/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/event-storming/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/index.d.ts +14 -1
- package/dist/_pkgs/affine-model/elements/index.js +4 -0
- package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
- package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
- package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
- package/dist/_pkgs/affine-model/elements/shape/api/polygon.js +2 -8
- package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
- package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
- package/dist/_pkgs/affine-shared/adapters/html/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +161 -3
- package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
- package/dist/_pkgs/affine-shared/adapters/notion-html/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/notion-html/delta-converter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/plain-text/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/plain-text/delta-converter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.js +283 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
- package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
- package/dist/_pkgs/affine-shared/commands/model-crud/draft-selected-models.js +1 -1
- package/dist/_pkgs/affine-shared/commands/selection/focus-block-end.js +1 -1
- package/dist/_pkgs/affine-shared/commands/selection/focus-block-start.js +1 -1
- package/dist/_pkgs/affine-shared/consts/index.d.ts +10 -0
- package/dist/_pkgs/affine-shared/consts/index.js +10 -0
- package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.d.ts +55 -0
- package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.js +35 -0
- package/dist/_pkgs/affine-shared/services/audit-service.d.ts +311 -0
- package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
- package/dist/_pkgs/affine-shared/services/command-usage-service.d.ts +31 -0
- package/dist/_pkgs/affine-shared/services/command-usage-service.js +109 -0
- package/dist/_pkgs/affine-shared/services/comment-service/block-comment-manager.js +1 -1
- package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +1 -1
- package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
- package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.js +1 -1
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
- package/dist/_pkgs/affine-shared/services/index.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/index.js +7 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +312 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +255 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
- package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
- package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/registry.d.ts +44 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/registry.js +161 -3
- package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
- package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +256 -0
- package/dist/_pkgs/affine-shared/test-utils/affine-template.js +1 -1
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
- package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
- package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
- package/dist/_pkgs/affine-shared/utils/edgeless.js +1 -1
- package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +34 -0
- package/dist/_pkgs/affine-shared/utils/file/filesys.js +48 -7
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
- package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
- package/dist/_pkgs/affine-shared/utils/zod-schema.js +25 -1
- package/dist/_pkgs/affine-widget-drag-handle/utils.js +1 -1
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
- package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +1 -1
- package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +1 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.d.ts +14 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.js +40 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +158 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +572 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.d.ts +46 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.js +66 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.d.ts +13 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.js +50 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +15 -5
- package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.d.ts +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.js +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/extension/index.d.ts +7 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +5 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +5 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +57 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +140 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +9 -0
- package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
- package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
- package/dist/_pkgs/affine-widget-keyboard-toolbar/keyboard-tool-panel.js +1 -1
- package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +1 -1
- package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
- package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
- package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
- package/dist/_pkgs/affine-widget-page-dragging-area/index.js +1 -1
- package/dist/_pkgs/affine-widget-remote-selection/doc/doc-remote-selection.js +1 -1
- package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
- package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
- package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
- package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.js +40 -8
- package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
- package/dist/_pkgs/affine-widget-toolbar/utils.js +744 -58
- package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
- package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
- package/dist/_pkgs/data-view/core/data-view.js +25 -3
- package/dist/_pkgs/data-view/core/detail/field.js +2 -2
- package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
- package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
- package/dist/_pkgs/data-view/core/effect.js +2 -0
- package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
- package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
- package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
- package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
- package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
- package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
- package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
- package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
- package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +64 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +849 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
- package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
- package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
- package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/index.js +3 -0
- package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +89 -4
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/group.js +86 -5
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
- package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
- package/dist/_pkgs/global/gfx/curve.js +4 -3
- package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
- package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
- package/dist/_pkgs/std/clipboard/utils.js +10 -0
- package/dist/_pkgs/std/event/dispatcher.js +27 -1
- package/dist/_pkgs/std/event/keymap.js +16 -6
- package/dist/_pkgs/std/extension/command-registry.d.ts +475 -0
- package/dist/_pkgs/std/extension/command-registry.js +431 -0
- package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
- package/dist/_pkgs/std/extension/index.d.ts +2 -0
- package/dist/_pkgs/std/extension/index.js +2 -0
- package/dist/_pkgs/std/extension/shortcut.js +2 -1
- package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
- package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
- package/dist/_pkgs/std/gfx/grid.js +1 -1
- package/dist/_pkgs/std/gfx/index.d.ts +7 -3
- package/dist/_pkgs/std/gfx/index.js +6 -2
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
- package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
- package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
- package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
- package/dist/_pkgs/std/gfx/layer.js +1 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
- package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +442 -0
- package/dist/_pkgs/std/gfx/model/surface/element-model.js +510 -25
- package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
- package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
- package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
- package/dist/_pkgs/std/gfx/model/surface/role.js +117 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.js +305 -17
- package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
- package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
- package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
- package/dist/_pkgs/std/gfx/perf.js +30 -0
- package/dist/_pkgs/std/gfx/selection.js +1 -1
- package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
- package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
- package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
- package/dist/_pkgs/std/gfx/viewport.js +20 -2
- package/dist/_pkgs/std/inline/extensions/inline-manager.js +1 -1
- package/dist/_pkgs/std/inline/extensions/markdown-matcher.js +1 -1
- package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
- package/dist/_pkgs/std/inline/services/event.js +96 -21
- package/dist/_pkgs/std/utils/layer.js +2 -6
- package/dist/_pkgs/std/utils/tree.d.ts +14 -0
- package/dist/_pkgs/std/utils/tree.js +59 -8
- package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
- package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
- package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
- package/dist/_pkgs/store/model/store/crud.js +10 -4
- package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
- package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
- package/dist/commands.d.ts +58 -0
- package/dist/commands.js +66 -0
- package/dist/extensions/command-telemetry.d.ts +21 -0
- package/dist/extensions/command-telemetry.js +89 -0
- package/dist/extensions/command-usage.d.ts +23 -0
- package/dist/extensions/command-usage.js +37 -0
- package/dist/extensions/store.d.ts +9 -4
- package/dist/extensions/store.js +27 -24
- package/dist/extensions/view.d.ts +9 -4
- package/dist/extensions/view.js +35 -8
- package/dist/flags.d.ts +98 -21
- package/dist/flags.js +103 -22
- package/dist/frameworks.d.ts +45 -0
- package/dist/frameworks.js +186 -0
- package/dist/schemas.d.ts +8 -5
- package/dist/schemas.js +28 -32
- package/dist/shortcuts.d.ts +16 -16
- package/dist/shortcuts.js +8 -36
- package/dist/translations.d.ts +56 -0
- package/dist/translations.js +200 -0
- package/package.json +16 -4
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
- package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
- package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
- package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
- package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FrameworkId } from '../../../std/index.js';
|
|
1
2
|
import type { TelemetryEvent } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Per-block lifecycle taxonomy. Every block flavour reports the same five
|
|
@@ -33,11 +34,264 @@ export type BlockLifecycleEvents = {
|
|
|
33
34
|
* manipulated ('background:classic', 'node:market', 'connector:link'…).
|
|
34
35
|
*/
|
|
35
36
|
export interface FrameworkElementEvent extends TelemetryEvent {
|
|
36
|
-
framework: 'wardley' | 'edgy' | 'cynefin' | 'bpmn' | 'event-storming' | 'core-domain' | 'context-map';
|
|
37
|
+
framework: 'wardley' | 'edgy' | 'cynefin' | 'bpmn' | 'c4' | 'event-storming' | 'core-domain' | 'context-map';
|
|
37
38
|
element: string;
|
|
38
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* A rung of the promotion ladder was crossed (MF1 / ADR 0007 § 7):
|
|
42
|
+
* shape → role → component (a pivot record) → materialities. Promotion is
|
|
43
|
+
* never a conversion — no element is created, destroyed or swapped, and no
|
|
44
|
+
* geometry moves.
|
|
45
|
+
*
|
|
46
|
+
* **A new event name, deliberately.** An earlier draft reused
|
|
47
|
+
* `FrameworkElementAdded` under a "no new event names" rule; that was a
|
|
48
|
+
* taxonomy break. ADR 0003 § 2 defines the creation event as UI intent emitted
|
|
49
|
+
* at INSERTION sites, and a promotion inserts nothing — so drawing a shape and
|
|
50
|
+
* then binding it would emit `FrameworkElementAdded` twice and permanently
|
|
51
|
+
* inflate "elements added per framework". A new event is cheaper than a
|
|
52
|
+
* corrupted funnel.
|
|
53
|
+
*
|
|
54
|
+
* Ids only, never board content: which rung was crossed, in which direction,
|
|
55
|
+
* under which role.
|
|
56
|
+
*/
|
|
57
|
+
export interface FrameworkPromotionEvent extends TelemetryEvent {
|
|
58
|
+
page?: 'whiteboard editor';
|
|
59
|
+
/**
|
|
60
|
+
* Owning framework, when the element has one — derived from the namespace of
|
|
61
|
+
* its `role` (`wardley:component` → `wardley`).
|
|
62
|
+
*
|
|
63
|
+
* OPTIONAL, which is a deviation from ADR 0007 § 7's `framework: FrameworkId`.
|
|
64
|
+
* That ADR's own § 6 states no rung requires the previous one: an element may
|
|
65
|
+
* carry a `pivotDocId` with no `role` at all, and a plain rectangle bound to
|
|
66
|
+
* a record belongs to no framework. Requiring the field would force the
|
|
67
|
+
* library to invent an identity it does not have — the one thing the
|
|
68
|
+
* `FrameworkId` unification exists to stop. Absent rather than `'unknown'`,
|
|
69
|
+
* per the repo convention.
|
|
70
|
+
*/
|
|
71
|
+
framework?: FrameworkId;
|
|
72
|
+
/** Which rung was crossed. */
|
|
73
|
+
rung: 'role' | 'pivot' | 'tag';
|
|
74
|
+
/** Forward (`shape`→`role`) or the reverse gesture. */
|
|
75
|
+
direction: 'promote' | 'demote';
|
|
76
|
+
/** Role id at the time of the gesture, when there is one. */
|
|
77
|
+
role?: string;
|
|
78
|
+
/** How many elements the single gesture wrote to. */
|
|
79
|
+
elementCount: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The persisted direction of a TYPED EDGE was reversed (`docs/adr/0010` M3):
|
|
83
|
+
* `source` and `target` swapped, in one undo step, by the only supported
|
|
84
|
+
* inversion.
|
|
85
|
+
*
|
|
86
|
+
* Worth its own event for the same reason an exception is worth one: this is
|
|
87
|
+
* the correction gesture of a decision the user could not previously see, so
|
|
88
|
+
* how often it is used is the measurement of whether the DRAWING gesture (M1)
|
|
89
|
+
* announces itself well enough. A framework whose links are reversed constantly
|
|
90
|
+
* is a framework whose hint is wrong.
|
|
91
|
+
*
|
|
92
|
+
* Ids only — the role and the framework its namespace names — never board
|
|
93
|
+
* content, and never the two element ids.
|
|
94
|
+
*/
|
|
95
|
+
export interface EdgeDirectionEvent extends TelemetryEvent {
|
|
96
|
+
page?: 'whiteboard editor';
|
|
97
|
+
/** Role id of the inverted edges, when they all carry the same one. */
|
|
98
|
+
role?: string;
|
|
99
|
+
/** Its namespace, when that names a framework: `wardley:dependency` → `wardley`. */
|
|
100
|
+
framework?: string;
|
|
101
|
+
/** How many edges the single gesture reversed. */
|
|
102
|
+
elementCount: number;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* A framework element became a NEARBY kind of itself — a task said more
|
|
106
|
+
* precisely as a user task, a start event as a timer start — from its own
|
|
107
|
+
* contextual toolbar, in one atomic write.
|
|
108
|
+
*
|
|
109
|
+
* **A new event name, for the reason {@link FrameworkPromotionEvent} gives.**
|
|
110
|
+
* ADR 0003 § 2 defines the creation event as UI intent emitted at INSERTION
|
|
111
|
+
* sites, and a morph inserts nothing: no element is created, destroyed or
|
|
112
|
+
* swapped, no id changes, no geometry moves and no connector is re-pointed.
|
|
113
|
+
* Reusing `FrameworkElementAdded` would count a drawn-then-refined artefact
|
|
114
|
+
* twice and inflate "elements added per framework" permanently.
|
|
115
|
+
*
|
|
116
|
+
* Worth measuring on its own, too. The set of reachable kinds is DATA a
|
|
117
|
+
* framework declares by hand, and the only evidence that a declared family is
|
|
118
|
+
* the right family is how often it is actually crossed — a pair nobody ever
|
|
119
|
+
* morphs between did not need to be offered, and a morph users reach for
|
|
120
|
+
* constantly says the palette led them to the wrong artefact first.
|
|
121
|
+
*
|
|
122
|
+
* Ids only: the two roles, and their framework. Never a kind's board content,
|
|
123
|
+
* never the element ids, never the label anybody typed.
|
|
124
|
+
*/
|
|
125
|
+
export interface FrameworkElementMorphedEvent extends TelemetryEvent {
|
|
126
|
+
page?: 'whiteboard editor';
|
|
127
|
+
/**
|
|
128
|
+
* Owning framework — the declaration's own wire key, matching what
|
|
129
|
+
* `reportCommandTelemetry` sends for that framework's commands.
|
|
130
|
+
*
|
|
131
|
+
* OPTIONAL for the same reason it is on {@link FrameworkPromotionEvent}: the
|
|
132
|
+
* capability is generic, and an element type may one day declare a morph
|
|
133
|
+
* without belonging to a framework the union names. Absent rather than
|
|
134
|
+
* `'unknown'`, per the repo convention.
|
|
135
|
+
*/
|
|
136
|
+
framework?: FrameworkId;
|
|
137
|
+
/** Role id the selection carried, when they all carried the same one. */
|
|
138
|
+
fromRole?: string;
|
|
139
|
+
/** Role id it now carries. */
|
|
140
|
+
toRole?: string;
|
|
141
|
+
/** How many elements the single gesture actually rewrote. */
|
|
142
|
+
elementCount: number;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* A framework VIEW was told which level it draws — a C4 board set to Context,
|
|
146
|
+
* Container or Component, or put back to a free sketch.
|
|
147
|
+
*
|
|
148
|
+
* **A new event name, for the reason {@link FrameworkPromotionEvent} gives.**
|
|
149
|
+
* Nothing is inserted, nothing is morphed and no level of requirement changes:
|
|
150
|
+
* the author is stating what the sheet IS, which is a fact none of the existing
|
|
151
|
+
* events describes. Reusing one of them would corrupt the funnel it belongs to.
|
|
152
|
+
*
|
|
153
|
+
* Worth measuring on its own, and for the same reason a profile change is: this
|
|
154
|
+
* is an OPTIONAL declaration nothing forces, so how often it is made is the only
|
|
155
|
+
* evidence that asking for it was worth the toolbar entry — and a level users
|
|
156
|
+
* set and then clear is a rule pack that argued with a drawing they meant.
|
|
157
|
+
*
|
|
158
|
+
* Ids only: the framework and the level's own closed vocabulary. Never the
|
|
159
|
+
* board's title, never what is drawn on it.
|
|
160
|
+
*/
|
|
161
|
+
export interface FrameworkViewLevelEvent extends TelemetryEvent {
|
|
162
|
+
page?: 'whiteboard editor';
|
|
163
|
+
/** Owning framework of the view, e.g. `c4`. */
|
|
164
|
+
framework: FrameworkId;
|
|
165
|
+
/**
|
|
166
|
+
* The level now in force, from the framework's own closed vocabulary —
|
|
167
|
+
* `'none'` when the view has been put back to declaring nothing, which is a
|
|
168
|
+
* value the dashboard needs as much as the others.
|
|
169
|
+
*/
|
|
170
|
+
level: string;
|
|
171
|
+
/** The one it replaces, when the view declared one. */
|
|
172
|
+
previousLevel?: string;
|
|
173
|
+
}
|
|
39
174
|
export type FrameworkDiagramEvents = {
|
|
40
175
|
FrameworkElementAdded: FrameworkElementEvent;
|
|
41
176
|
FrameworkToolPicked: FrameworkElementEvent;
|
|
42
177
|
FrameworkLegendCreated: FrameworkElementEvent;
|
|
178
|
+
FrameworkElementPromoted: FrameworkPromotionEvent;
|
|
179
|
+
FrameworkElementMorphed: FrameworkElementMorphedEvent;
|
|
180
|
+
FrameworkViewLevelSet: FrameworkViewLevelEvent;
|
|
181
|
+
EdgeDirectionInverted: EdgeDirectionEvent;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* A user arbitration on a validation rule (PF8): "no rule is a wall", so every
|
|
185
|
+
* rule can be waived — and every waiver is worth knowing about. A rule that
|
|
186
|
+
* gets waived constantly is a rule that is wrong, and this is the only place
|
|
187
|
+
* that says so.
|
|
188
|
+
*
|
|
189
|
+
* `ruleId` is the framework-namespaced rule id (`wardley.change-arrow-against-evolution`)
|
|
190
|
+
* and never carries user content — the event describes which RULE was arbitrated
|
|
191
|
+
* on, never what the board contains.
|
|
192
|
+
*/
|
|
193
|
+
export interface ValidationExceptionEvent extends TelemetryEvent {
|
|
194
|
+
page?: 'whiteboard editor';
|
|
195
|
+
/** Namespaced rule id, e.g. `wardley.change-arrow-against-evolution`. */
|
|
196
|
+
ruleId: string;
|
|
197
|
+
/** Owning framework of the rule, when it is registered. */
|
|
198
|
+
framework?: string;
|
|
199
|
+
/** `element` = this one element; `map` = every element the map frames. */
|
|
200
|
+
scope: 'element' | 'map';
|
|
201
|
+
/** How many elements the single gesture wrote to. */
|
|
202
|
+
elementCount: number;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* A change of the level of requirement a framework instance is checked against
|
|
206
|
+
* (PF9). Worth knowing about for the same reason an exception is: a profile
|
|
207
|
+
* nobody ever leaves is a default that is right, and one everybody escapes on
|
|
208
|
+
* the first day is a default that is wrong.
|
|
209
|
+
*
|
|
210
|
+
* Ids only — the framework's own namespaced profile ids — never user content.
|
|
211
|
+
*/
|
|
212
|
+
export interface ValidationProfileEvent extends TelemetryEvent {
|
|
213
|
+
page?: 'whiteboard editor';
|
|
214
|
+
/** Owning framework of the profile, e.g. `wardley`. */
|
|
215
|
+
framework: string;
|
|
216
|
+
/** Namespaced profile id now in force, e.g. `wardley.strict`. */
|
|
217
|
+
profileId: string;
|
|
218
|
+
/** The one it replaces, when it is known. */
|
|
219
|
+
previousProfileId?: string;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* A map-quality NUDGE ticked or unticked (PF7.10). Worth knowing about for the
|
|
223
|
+
* same reason an exception is, and for one more: a nudge everybody ticks
|
|
224
|
+
* immediately is a reminder nobody needed, and one nobody ever ticks is an
|
|
225
|
+
* expectation the tool has failed to make actionable. Neither is visible any
|
|
226
|
+
* other way, because nothing here is ever computed.
|
|
227
|
+
*
|
|
228
|
+
* Ids only — the framework's own namespaced nudge ids — never board content.
|
|
229
|
+
*/
|
|
230
|
+
export interface MapQualityNudgeEvent extends TelemetryEvent {
|
|
231
|
+
page?: 'whiteboard editor';
|
|
232
|
+
/** Owning framework of the nudge, e.g. `wardley`. */
|
|
233
|
+
framework: string;
|
|
234
|
+
/** Namespaced nudge id, e.g. `wardley.q1-title`. */
|
|
235
|
+
nudgeId: string;
|
|
236
|
+
/** `true` = ticked ("I have taken care of this"), `false` = taken back. */
|
|
237
|
+
checked: boolean;
|
|
238
|
+
}
|
|
239
|
+
export type ValidationEvents = {
|
|
240
|
+
ValidationExceptionGranted: ValidationExceptionEvent;
|
|
241
|
+
ValidationExceptionRevoked: ValidationExceptionEvent;
|
|
242
|
+
ValidationProfileChanged: ValidationProfileEvent;
|
|
243
|
+
MapQualityNudgeToggled: MapQualityNudgeEvent;
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* An AI audit run (PF14.1) — level 3, executed app-side by the Labre Assistant
|
|
247
|
+
* through the `AuditProvider` seam.
|
|
248
|
+
*
|
|
249
|
+
* Three events rather than one, because the three questions are different: how
|
|
250
|
+
* often is an audit asked for (started), does it ever finish (completed), and
|
|
251
|
+
* how often does it not (interrupted). A single event with a status field would
|
|
252
|
+
* answer the first and lose the other two the moment a run never resolves.
|
|
253
|
+
*
|
|
254
|
+
* Ids and counts only — criterion ids and how many findings came back. The
|
|
255
|
+
* board's content, the criteria's prompts and the findings' wording never leave
|
|
256
|
+
* the editor through this bus.
|
|
257
|
+
*/
|
|
258
|
+
export interface MapAuditEvent extends TelemetryEvent {
|
|
259
|
+
page?: 'whiteboard editor';
|
|
260
|
+
/** Owning framework of the criteria, when the run carries only one. */
|
|
261
|
+
framework?: string;
|
|
262
|
+
/** How many criteria the run was given. */
|
|
263
|
+
criterionCount: number;
|
|
264
|
+
/** How many framework frames the facts described. */
|
|
265
|
+
frameCount: number;
|
|
266
|
+
}
|
|
267
|
+
export interface MapAuditCompletedEvent extends MapAuditEvent {
|
|
268
|
+
/** How many findings came back, after the library's normalisation. */
|
|
269
|
+
findingCount: number;
|
|
270
|
+
/** Wall-clock duration of the run, in milliseconds. */
|
|
271
|
+
durationMs: number;
|
|
272
|
+
}
|
|
273
|
+
export interface MapAuditInterruptedEvent extends MapAuditEvent {
|
|
274
|
+
/**
|
|
275
|
+
* Why it did not complete.
|
|
276
|
+
*
|
|
277
|
+
* `unavailable` is a first-class member and not an error: no assistant is
|
|
278
|
+
* wired in this assembly, or the one that is declared itself unable to answer
|
|
279
|
+
* (feature flag, quota, no model configured). Knowing how often a user
|
|
280
|
+
* reaches for an audit that cannot run is precisely the number that decides
|
|
281
|
+
* whether the affordance should be there at all.
|
|
282
|
+
*
|
|
283
|
+
* `superseded` means a newer run for the same editor started while this one
|
|
284
|
+
* was in flight, so its answer was dropped rather than published. It is
|
|
285
|
+
* reported here rather than as a completion because a `findingCount` for
|
|
286
|
+
* findings nobody will see is a metric that lies — and a rising `superseded`
|
|
287
|
+
* count is itself the signal that audits are slow enough that users ask
|
|
288
|
+
* twice.
|
|
289
|
+
*/
|
|
290
|
+
reason: 'aborted' | 'error' | 'unavailable' | 'superseded';
|
|
291
|
+
durationMs: number;
|
|
292
|
+
}
|
|
293
|
+
export type AuditEvents = {
|
|
294
|
+
MapAuditStarted: MapAuditEvent;
|
|
295
|
+
MapAuditCompleted: MapAuditCompletedEvent;
|
|
296
|
+
MapAuditInterrupted: MapAuditInterruptedEvent;
|
|
43
297
|
};
|
|
@@ -2,12 +2,12 @@ import type { ExtensionType } from '../../../store/index.js';
|
|
|
2
2
|
import type { CitationEvents } from './citation.js';
|
|
3
3
|
import type { CodeBlockEvents } from './code-block.js';
|
|
4
4
|
import type { OutDatabaseAllEvents } from './database.js';
|
|
5
|
-
import type { BlockLifecycleEvents, FrameworkDiagramEvents } from './lifecycle.js';
|
|
5
|
+
import type { AuditEvents, BlockLifecycleEvents, FrameworkDiagramEvents, ValidationEvents } from './lifecycle.js';
|
|
6
6
|
import type { LinkToolbarEvents } from './link.js';
|
|
7
7
|
import type { NoteEvents } from './note.js';
|
|
8
8
|
import type { SlashMenuEvents } from './slash-menu.js';
|
|
9
9
|
import type { AttachmentReloadedEvent, AttachmentReloadedEventInToolbar, AttachmentUpgradedEvent, AttachmentUploadedEvent, BlockCreationEvent, DocCreatedEvent, EdgelessToolPickedEvent, ElementCreationEvent, ElementLockEvent, ElementUpdatedEvent, LatexEvent, LinkedDocCreatedEvent, LinkEvent, MindMapCollapseEvent, TelemetryEvent } from './types.js';
|
|
10
|
-
export type TelemetryEventMap = OutDatabaseAllEvents & LinkToolbarEvents & SlashMenuEvents & CodeBlockEvents & NoteEvents & CitationEvents & BlockLifecycleEvents & FrameworkDiagramEvents & {
|
|
10
|
+
export type TelemetryEventMap = OutDatabaseAllEvents & LinkToolbarEvents & SlashMenuEvents & CodeBlockEvents & NoteEvents & CitationEvents & BlockLifecycleEvents & FrameworkDiagramEvents & ValidationEvents & AuditEvents & {
|
|
11
11
|
DocCreated: DocCreatedEvent;
|
|
12
12
|
Link: TelemetryEvent;
|
|
13
13
|
LinkedDocCreated: LinkedDocCreatedEvent;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Re-exported, unchanged, from `@labre/std`: `CommandInvocation.source` is
|
|
3
|
+
* typed on it and the command registry sits below this layer (ADR 0008).
|
|
4
|
+
*/
|
|
5
|
+
import type { ElementCreationSource } from '../../../std/index.js';
|
|
6
|
+
export type { ElementCreationSource };
|
|
2
7
|
export interface TelemetryEvent {
|
|
3
8
|
page?: string;
|
|
4
9
|
segment?: string;
|
|
@@ -12,6 +12,16 @@ type ActionBase = {
|
|
|
12
12
|
when?: ((cx: ToolbarContext) => boolean) | boolean;
|
|
13
13
|
active?: ((cx: ToolbarContext) => boolean) | boolean;
|
|
14
14
|
placement?: ActionPlacement;
|
|
15
|
+
/**
|
|
16
|
+
* How hard this entry holds its place when the row runs out of room —
|
|
17
|
+
* **higher stays on the row longer**. Defaults to `0`, and among equals the
|
|
18
|
+
* entry rendered LAST gives way first, so an action that says nothing keeps
|
|
19
|
+
* the order the toolbar already has (see `layout.ts`).
|
|
20
|
+
*
|
|
21
|
+
* Declaring it is how an entry escapes that default: a rare, wordy entry that
|
|
22
|
+
* happens to sort early asks to give way sooner with a negative number.
|
|
23
|
+
*/
|
|
24
|
+
priority?: number;
|
|
15
25
|
};
|
|
16
26
|
export type ToolbarAction = ActionBase & {
|
|
17
27
|
label?: string;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Priority collapse** — how a contextual toolbar stays on ONE line.
|
|
3
|
+
*
|
|
4
|
+
* The PO's arbitration of 02/08/2026 killed the previous answer, which was to
|
|
5
|
+
* let the toolbar wrap onto a second row: the "⋮" button ended up alone on a
|
|
6
|
+
* line of its own, and a toolbar whose height changes with the selection is a
|
|
7
|
+
* toolbar that moves under the cursor. The replacement is the one every desktop
|
|
8
|
+
* toolbar has used for thirty years — when the row runs out of room, the least
|
|
9
|
+
* important entries give way, in that order, into the overflow menu that is
|
|
10
|
+
* already there.
|
|
11
|
+
*
|
|
12
|
+
* ## Why the algorithm lives here and not in the widget
|
|
13
|
+
*
|
|
14
|
+
* Nothing below touches the DOM. It takes the entries' DECLARED priority and a
|
|
15
|
+
* handful of measured widths and answers "which entries give way, and how" —
|
|
16
|
+
* which makes it a pure function the unit suite can pin down entirely, and
|
|
17
|
+
* leaves the widget with only the two things that genuinely need a browser:
|
|
18
|
+
* measuring, and re-rendering.
|
|
19
|
+
*
|
|
20
|
+
* It also keeps the rule where the rule belongs. `priority` is a field of
|
|
21
|
+
* {@link ToolbarAction}, so an entry decides its own fate from its own config
|
|
22
|
+
* file; the widget never learns that a framework exists.
|
|
23
|
+
*
|
|
24
|
+
* ## The two ways an entry gives way, in order
|
|
25
|
+
*
|
|
26
|
+
* 1. **Icon only.** An entry that renders an icon AND a label drops its label
|
|
27
|
+
* first, keeping the label as its tooltip. A wordy entry costs three times
|
|
28
|
+
* an icon, and losing the word to a hover is a far smaller loss than losing
|
|
29
|
+
* the entry to a menu.
|
|
30
|
+
* 2. **Into the "⋮" menu.** Only then does the entry leave the row, keeping its
|
|
31
|
+
* full label and its behaviour as an entry of the menu.
|
|
32
|
+
*
|
|
33
|
+
* Every entry that CAN shrink shrinks before any entry moves — a row of icons
|
|
34
|
+
* is still a row of things you can click, and a menu is not.
|
|
35
|
+
*
|
|
36
|
+
* ## When a plan is worth remaking
|
|
37
|
+
*
|
|
38
|
+
* The arithmetic above answers "what should the row look like at this width".
|
|
39
|
+
* It does NOT answer "is this width worth answering for", and the PO's second
|
|
40
|
+
* pass of 02/08/2026 is about that second question: during a zoom the room the
|
|
41
|
+
* row has moves sixty times a second, and a row that replans on every one of
|
|
42
|
+
* those frames visibly hesitates between several compositions — and, since its
|
|
43
|
+
* width is what the positioner anchors, between several places.
|
|
44
|
+
*
|
|
45
|
+
* Two answers are refused, both of them pure and both of them here:
|
|
46
|
+
* {@link toolbarRoomChanged} refuses a change too small to mean anything, and
|
|
47
|
+
* {@link TOOLBAR_SETTLE_DELAY} is how long the room must hold still before the
|
|
48
|
+
* widget bothers to ask at all.
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* How much the room must move before the row is worth re-composing, in pixels.
|
|
52
|
+
*
|
|
53
|
+
* A few pixels, deliberately: less than the narrowest thing the row could give
|
|
54
|
+
* up, so no real degradation is ever delayed by it, and more than the noise the
|
|
55
|
+
* measurements carry — a fractional zoom, a rounded rect, a scrollbar coming
|
|
56
|
+
* and going. Two measurements that differ by a hair are the same measurement,
|
|
57
|
+
* and treating them as two is how a composition ends up alternating forever.
|
|
58
|
+
*/
|
|
59
|
+
export declare const TOOLBAR_ROOM_HYSTERESIS = 4;
|
|
60
|
+
/**
|
|
61
|
+
* How long the room must hold still before the row is replanned, in ms.
|
|
62
|
+
*
|
|
63
|
+
* Long enough to bridge the frames of a gesture — a zoom, a pan, a window being
|
|
64
|
+
* dragged — so the row keeps ONE composition for the whole of it, and short
|
|
65
|
+
* enough that letting go feels like the row simply followed.
|
|
66
|
+
*/
|
|
67
|
+
export declare const TOOLBAR_SETTLE_DELAY = 150;
|
|
68
|
+
/**
|
|
69
|
+
* Whether the room the row has really changed since the plan on screen.
|
|
70
|
+
*
|
|
71
|
+
* `Infinity` is a value like any other here: a row nothing has positioned yet
|
|
72
|
+
* has all the room in the world, and going from that to a finite cap (or back)
|
|
73
|
+
* is always a change, however large the numbers are.
|
|
74
|
+
*/
|
|
75
|
+
export declare function toolbarRoomChanged(planned: number, measured: number, threshold?: number): boolean;
|
|
76
|
+
/** One entry of the row, as the planner sees it. */
|
|
77
|
+
export interface ToolbarLayoutItem {
|
|
78
|
+
id: string;
|
|
79
|
+
/**
|
|
80
|
+
* Higher stays on the row longer. `0` unless the entry says otherwise; among
|
|
81
|
+
* equals the one rendered LAST gives way first, so leaving every entry alone
|
|
82
|
+
* reproduces the order the toolbar already has.
|
|
83
|
+
*/
|
|
84
|
+
priority: number;
|
|
85
|
+
/** Renders an icon and a label today, so it has a label to drop. */
|
|
86
|
+
shrinkable: boolean;
|
|
87
|
+
/** The widget knows how to re-render it as an entry of the "⋮" menu. */
|
|
88
|
+
collapsible: boolean;
|
|
89
|
+
}
|
|
90
|
+
/** One degradation, applied to one entry. */
|
|
91
|
+
export type ToolbarLayoutStep = {
|
|
92
|
+
kind: 'shrink';
|
|
93
|
+
id: string;
|
|
94
|
+
} | {
|
|
95
|
+
kind: 'collapse';
|
|
96
|
+
id: string;
|
|
97
|
+
};
|
|
98
|
+
/** What the row currently measures, in CSS pixels. */
|
|
99
|
+
export interface ToolbarMetrics {
|
|
100
|
+
/** Width the entries occupy when nothing has given way yet. */
|
|
101
|
+
content: number;
|
|
102
|
+
/** Width they may occupy. `Infinity` when nothing constrains the row. */
|
|
103
|
+
available: number;
|
|
104
|
+
/** Width freed by dropping an entry's label, by action id. */
|
|
105
|
+
label: Readonly<Record<string, number>>;
|
|
106
|
+
/** Width freed by moving an entry into the menu, by action id. */
|
|
107
|
+
entry: Readonly<Record<string, number>>;
|
|
108
|
+
/** What the "⋮" button costs on a row that has none yet. */
|
|
109
|
+
menuCost: number;
|
|
110
|
+
/** Whether the row already carries a "⋮" button. */
|
|
111
|
+
hasMenu: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Every degradation available for this row, in the order they must be spent.
|
|
115
|
+
*
|
|
116
|
+
* All the shrinks first, then all the collapses; within each phase, the least
|
|
117
|
+
* important entry first. An entry that can do both appears twice — which is
|
|
118
|
+
* exactly the arbitration's "icon only BEFORE it is a candidate for the ⋮".
|
|
119
|
+
*/
|
|
120
|
+
export declare function toolbarDegradationSteps(items: readonly ToolbarLayoutItem[]): ToolbarLayoutStep[];
|
|
121
|
+
/**
|
|
122
|
+
* The shortest prefix of `steps` that brings the row back within `available`.
|
|
123
|
+
*
|
|
124
|
+
* Spends steps one at a time, cheapest loss first, and stops the moment the row
|
|
125
|
+
* fits — a toolbar that collapses more than it must is a toolbar that hides
|
|
126
|
+
* things for nothing. A step that would free nothing is skipped rather than
|
|
127
|
+
* spent: dropping a label of zero width, or opening a "⋮" that costs more than
|
|
128
|
+
* the entry it swallows, is a change with no benefit.
|
|
129
|
+
*
|
|
130
|
+
* Returns `[]` when the row already fits, and may return fewer steps than are
|
|
131
|
+
* needed when the row cannot fit at all — the caller renders what it can and
|
|
132
|
+
* the row stays one line, which is the whole point.
|
|
133
|
+
*/
|
|
134
|
+
export declare function planToolbarLayout(steps: readonly ToolbarLayoutStep[], metrics: ToolbarMetrics): ToolbarLayoutStep[];
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Priority collapse** — how a contextual toolbar stays on ONE line.
|
|
3
|
+
*
|
|
4
|
+
* The PO's arbitration of 02/08/2026 killed the previous answer, which was to
|
|
5
|
+
* let the toolbar wrap onto a second row: the "⋮" button ended up alone on a
|
|
6
|
+
* line of its own, and a toolbar whose height changes with the selection is a
|
|
7
|
+
* toolbar that moves under the cursor. The replacement is the one every desktop
|
|
8
|
+
* toolbar has used for thirty years — when the row runs out of room, the least
|
|
9
|
+
* important entries give way, in that order, into the overflow menu that is
|
|
10
|
+
* already there.
|
|
11
|
+
*
|
|
12
|
+
* ## Why the algorithm lives here and not in the widget
|
|
13
|
+
*
|
|
14
|
+
* Nothing below touches the DOM. It takes the entries' DECLARED priority and a
|
|
15
|
+
* handful of measured widths and answers "which entries give way, and how" —
|
|
16
|
+
* which makes it a pure function the unit suite can pin down entirely, and
|
|
17
|
+
* leaves the widget with only the two things that genuinely need a browser:
|
|
18
|
+
* measuring, and re-rendering.
|
|
19
|
+
*
|
|
20
|
+
* It also keeps the rule where the rule belongs. `priority` is a field of
|
|
21
|
+
* {@link ToolbarAction}, so an entry decides its own fate from its own config
|
|
22
|
+
* file; the widget never learns that a framework exists.
|
|
23
|
+
*
|
|
24
|
+
* ## The two ways an entry gives way, in order
|
|
25
|
+
*
|
|
26
|
+
* 1. **Icon only.** An entry that renders an icon AND a label drops its label
|
|
27
|
+
* first, keeping the label as its tooltip. A wordy entry costs three times
|
|
28
|
+
* an icon, and losing the word to a hover is a far smaller loss than losing
|
|
29
|
+
* the entry to a menu.
|
|
30
|
+
* 2. **Into the "⋮" menu.** Only then does the entry leave the row, keeping its
|
|
31
|
+
* full label and its behaviour as an entry of the menu.
|
|
32
|
+
*
|
|
33
|
+
* Every entry that CAN shrink shrinks before any entry moves — a row of icons
|
|
34
|
+
* is still a row of things you can click, and a menu is not.
|
|
35
|
+
*
|
|
36
|
+
* ## When a plan is worth remaking
|
|
37
|
+
*
|
|
38
|
+
* The arithmetic above answers "what should the row look like at this width".
|
|
39
|
+
* It does NOT answer "is this width worth answering for", and the PO's second
|
|
40
|
+
* pass of 02/08/2026 is about that second question: during a zoom the room the
|
|
41
|
+
* row has moves sixty times a second, and a row that replans on every one of
|
|
42
|
+
* those frames visibly hesitates between several compositions — and, since its
|
|
43
|
+
* width is what the positioner anchors, between several places.
|
|
44
|
+
*
|
|
45
|
+
* Two answers are refused, both of them pure and both of them here:
|
|
46
|
+
* {@link toolbarRoomChanged} refuses a change too small to mean anything, and
|
|
47
|
+
* {@link TOOLBAR_SETTLE_DELAY} is how long the room must hold still before the
|
|
48
|
+
* widget bothers to ask at all.
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* How much the room must move before the row is worth re-composing, in pixels.
|
|
52
|
+
*
|
|
53
|
+
* A few pixels, deliberately: less than the narrowest thing the row could give
|
|
54
|
+
* up, so no real degradation is ever delayed by it, and more than the noise the
|
|
55
|
+
* measurements carry — a fractional zoom, a rounded rect, a scrollbar coming
|
|
56
|
+
* and going. Two measurements that differ by a hair are the same measurement,
|
|
57
|
+
* and treating them as two is how a composition ends up alternating forever.
|
|
58
|
+
*/
|
|
59
|
+
export const TOOLBAR_ROOM_HYSTERESIS = 4;
|
|
60
|
+
/**
|
|
61
|
+
* How long the room must hold still before the row is replanned, in ms.
|
|
62
|
+
*
|
|
63
|
+
* Long enough to bridge the frames of a gesture — a zoom, a pan, a window being
|
|
64
|
+
* dragged — so the row keeps ONE composition for the whole of it, and short
|
|
65
|
+
* enough that letting go feels like the row simply followed.
|
|
66
|
+
*/
|
|
67
|
+
export const TOOLBAR_SETTLE_DELAY = 150;
|
|
68
|
+
/**
|
|
69
|
+
* Whether the room the row has really changed since the plan on screen.
|
|
70
|
+
*
|
|
71
|
+
* `Infinity` is a value like any other here: a row nothing has positioned yet
|
|
72
|
+
* has all the room in the world, and going from that to a finite cap (or back)
|
|
73
|
+
* is always a change, however large the numbers are.
|
|
74
|
+
*/
|
|
75
|
+
export function toolbarRoomChanged(planned, measured, threshold = TOOLBAR_ROOM_HYSTERESIS) {
|
|
76
|
+
if (planned === measured)
|
|
77
|
+
return false;
|
|
78
|
+
if (!Number.isFinite(planned) || !Number.isFinite(measured))
|
|
79
|
+
return true;
|
|
80
|
+
return Math.abs(measured - planned) > threshold;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Every degradation available for this row, in the order they must be spent.
|
|
84
|
+
*
|
|
85
|
+
* All the shrinks first, then all the collapses; within each phase, the least
|
|
86
|
+
* important entry first. An entry that can do both appears twice — which is
|
|
87
|
+
* exactly the arbitration's "icon only BEFORE it is a candidate for the ⋮".
|
|
88
|
+
*/
|
|
89
|
+
export function toolbarDegradationSteps(items) {
|
|
90
|
+
const order = items
|
|
91
|
+
.map((item, index) => ({ item, index }))
|
|
92
|
+
// Least important first: by declared priority, then — for the entries that
|
|
93
|
+
// declared nothing, which is most of them — by reverse rendered order.
|
|
94
|
+
.sort((a, b) => a.item.priority - b.item.priority || b.index - a.index);
|
|
95
|
+
return [
|
|
96
|
+
...order
|
|
97
|
+
.filter(({ item }) => item.shrinkable)
|
|
98
|
+
.map(({ item }) => ({ kind: 'shrink', id: item.id })),
|
|
99
|
+
...order
|
|
100
|
+
.filter(({ item }) => item.collapsible)
|
|
101
|
+
.map(({ item }) => ({
|
|
102
|
+
kind: 'collapse',
|
|
103
|
+
id: item.id,
|
|
104
|
+
})),
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The shortest prefix of `steps` that brings the row back within `available`.
|
|
109
|
+
*
|
|
110
|
+
* Spends steps one at a time, cheapest loss first, and stops the moment the row
|
|
111
|
+
* fits — a toolbar that collapses more than it must is a toolbar that hides
|
|
112
|
+
* things for nothing. A step that would free nothing is skipped rather than
|
|
113
|
+
* spent: dropping a label of zero width, or opening a "⋮" that costs more than
|
|
114
|
+
* the entry it swallows, is a change with no benefit.
|
|
115
|
+
*
|
|
116
|
+
* Returns `[]` when the row already fits, and may return fewer steps than are
|
|
117
|
+
* needed when the row cannot fit at all — the caller renders what it can and
|
|
118
|
+
* the row stays one line, which is the whole point.
|
|
119
|
+
*/
|
|
120
|
+
export function planToolbarLayout(steps, metrics) {
|
|
121
|
+
const { available } = metrics;
|
|
122
|
+
let width = metrics.content;
|
|
123
|
+
if (width <= available)
|
|
124
|
+
return [];
|
|
125
|
+
let hasMenu = metrics.hasMenu;
|
|
126
|
+
const applied = [];
|
|
127
|
+
for (const step of steps) {
|
|
128
|
+
if (width <= available)
|
|
129
|
+
break;
|
|
130
|
+
if (step.kind === 'shrink') {
|
|
131
|
+
const saved = metrics.label[step.id] ?? 0;
|
|
132
|
+
if (saved <= 0)
|
|
133
|
+
continue;
|
|
134
|
+
width -= saved;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const saved = (metrics.entry[step.id] ?? 0) - (hasMenu ? 0 : metrics.menuCost);
|
|
138
|
+
if (saved <= 0)
|
|
139
|
+
continue;
|
|
140
|
+
width -= saved;
|
|
141
|
+
hasMenu = true;
|
|
142
|
+
}
|
|
143
|
+
applied.push(step);
|
|
144
|
+
}
|
|
145
|
+
return applied;
|
|
146
|
+
}
|