@formicoidea/labre-core 0.31.0 → 0.32.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-callout/callout-block.d.ts +6 -0
- package/dist/_pkgs/affine-block-callout/callout-block.js +25 -3
- 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.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 +52 -5
- 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/database-block.js +13 -0
- 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 +10 -0
- 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-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/embed-linked-doc-block.js +8 -4
- 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 +22 -3
- package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
- package/dist/_pkgs/affine-block-frame/frame-manager.js +32 -2
- package/dist/_pkgs/affine-block-latex/styles.js +6 -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-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 +9 -2
- 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 +26 -1
- 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/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/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 +5 -2
- package/dist/_pkgs/affine-block-surface/element-model/index.js +4 -2
- package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/audit.js +472 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +27 -0
- 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 +326 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +13 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +13 -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/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 +590 -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/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 +1340 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.js +3009 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +286 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +907 -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 +321 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.js +81 -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 +59 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.js +117 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +238 -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/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-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/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/portal/portal.d.ts +1 -1
- package/dist/_pkgs/affine-components/toolbar/menu-button.js +1 -0
- package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
- package/dist/_pkgs/affine-foundation/view.js +11 -2
- 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/view.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
- package/dist/_pkgs/affine-gfx-connector/connector-manager.js +32 -6
- package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +7 -0
- package/dist/_pkgs/affine-gfx-connector/connector-tool.js +2 -1
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +281 -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 +187 -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/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 +67 -1
- 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-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/element-renderer/shape-dom/index.js +48 -19
- 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/text/edgeless-shape-text-editor.d.ts +26 -0
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -13
- package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
- 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-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/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-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/connector/connector.js +24 -0
- 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/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 +3 -1
- package/dist/_pkgs/affine-model/elements/index.js +1 -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/wardley/wardley.d.ts +21 -29
- package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +160 -2
- package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -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 +280 -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/services/audit-service.d.ts +300 -0
- package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
- 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/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 +5 -0
- package/dist/_pkgs/affine-shared/services/index.js +5 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +311 -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 +182 -0
- 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/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 +254 -0
- 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/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 +27 -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-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/index.d.ts +1 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +1 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +38 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +99 -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-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-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 +34 -6
- package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
- package/dist/_pkgs/affine-widget-toolbar/utils.js +738 -56
- 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 +68 -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 +837 -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 +87 -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 +84 -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 +7 -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 +321 -0
- package/dist/_pkgs/std/extension/command-registry.js +233 -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/translation-manifest.d.ts +49 -0
- package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
- 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 +282 -0
- package/dist/_pkgs/std/gfx/model/surface/element-model.js +436 -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 +115 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.js +304 -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/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 +19 -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 +7 -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/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 +23 -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 +154 -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 +112 -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
|
@@ -17,6 +17,7 @@ export declare class OpenDocDropdownMenu extends OpenDocDropdownMenu_base {
|
|
|
17
17
|
when?: ((cx: ToolbarContext) => boolean) | boolean;
|
|
18
18
|
active?: ((cx: ToolbarContext) => boolean) | boolean;
|
|
19
19
|
placement?: import("../../affine-shared/services/index.js").ActionPlacement;
|
|
20
|
+
priority?: number;
|
|
20
21
|
} & {
|
|
21
22
|
label?: string;
|
|
22
23
|
showLabel?: boolean;
|
|
@@ -17,7 +17,7 @@ import { LitElement, type TemplateResult } from 'lit';
|
|
|
17
17
|
*/
|
|
18
18
|
export declare class Portal extends LitElement {
|
|
19
19
|
private _portalRoot;
|
|
20
|
-
createRenderRoot():
|
|
20
|
+
createRenderRoot(): HTMLDivElement | ShadowRoot;
|
|
21
21
|
disconnectedCallback(): void;
|
|
22
22
|
render(): TemplateResult | undefined;
|
|
23
23
|
accessor container: HTMLElement;
|
|
@@ -6,14 +6,13 @@ export class EditorToolbar extends WithDisposable(LitElement) {
|
|
|
6
6
|
static { this.styles = css `
|
|
7
7
|
${panelBaseStyle(':host')}
|
|
8
8
|
:host {
|
|
9
|
-
|
|
9
|
+
/* ONE line, always: the toolbar's height never depends on the selection,
|
|
10
|
+
so it never moves under the cursor. When the row runs out of room the
|
|
11
|
+
widget spends its entries — icon only first, then into the "⋮" menu —
|
|
12
|
+
rather than growing a second row (PO arbitration of 02/08/2026). */
|
|
13
|
+
height: 36px;
|
|
10
14
|
box-sizing: content-box;
|
|
11
|
-
|
|
12
|
-
width is capped to availableWidth by floating-ui's size middleware;
|
|
13
|
-
wrapping (not scrolling) keeps the "More" dropdown clickable — it is a
|
|
14
|
-
descendant of this toolbar, so an overflow container would clip it. */
|
|
15
|
-
flex-wrap: wrap;
|
|
16
|
-
row-gap: 4px;
|
|
15
|
+
flex-wrap: nowrap;
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
:host([data-without-bg]) {
|
|
@@ -24,9 +23,11 @@ export class EditorToolbar extends WithDisposable(LitElement) {
|
|
|
24
23
|
|
|
25
24
|
::slotted(*) {
|
|
26
25
|
display: flex;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
height: 100%;
|
|
27
|
+
/* Entries keep their natural width: squashing them into the row would
|
|
28
|
+
hide the overflow the widget has to measure, and a button squeezed to
|
|
29
|
+
half a word is worse than the same button in the "⋮" menu. */
|
|
30
|
+
flex-shrink: 0;
|
|
30
31
|
justify-content: center;
|
|
31
32
|
align-items: center;
|
|
32
33
|
gap: 8px;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FileDropExtension } from '../affine-components/drop-indicator/index.js';
|
|
2
2
|
import { PeekViewExtension, } from '../affine-components/peek/index.js';
|
|
3
3
|
import { ViewExtensionProvider, } from '../affine-ext-loader/index.js';
|
|
4
|
-
import { AutoClearSelectionService, BlockCommentManager, BlockLifecycleTelemetryWatcher, CitationService, DefaultOpenDocExtension, DNDAPIExtension, DocDisplayMetaService, DocModeService, EditPropsStore, EmbedOptionService, FileSizeLimitService, FontConfigExtension, fontConfigSchema, FontLoaderService, LinkPreviewCache, LinkPreviewCacheConfigSchema, LinkPreviewCacheExtension, LinkPreviewService, PageViewportServiceExtension, TelemetryExtension, ThemeService, ToolbarRegistryExtension, } from '../affine-shared/services/index.js';
|
|
4
|
+
import { AutoClearSelectionService, BlockCommentManager, BlockLifecycleTelemetryWatcher, CitationService, DefaultOpenDocExtension, DNDAPIExtension, DocDisplayMetaService, DocModeService, EditPropsStore, EmbedOptionService, FileSizeLimitService, FontConfigExtension, fontConfigSchema, FontLoaderService, LinkPreviewCache, LinkPreviewCacheConfigSchema, LinkPreviewCacheExtension, LinkPreviewService, PageViewportServiceExtension, PivotMaterialityPublisher, TelemetryExtension, ThemeService, ToolbarRegistryExtension, } from '../affine-shared/services/index.js';
|
|
5
5
|
import { InteractivityManager, ToolController } from '../std/gfx/index.js';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import { clipboardConfigs } from './clipboard.js';
|
|
@@ -47,7 +47,16 @@ export class FoundationViewExtension extends ViewExtensionProvider {
|
|
|
47
47
|
]);
|
|
48
48
|
context.register(clipboardConfigs);
|
|
49
49
|
if (this.isEdgeless(context.scope)) {
|
|
50
|
-
context.register([
|
|
50
|
+
context.register([
|
|
51
|
+
InteractivityManager,
|
|
52
|
+
ToolController,
|
|
53
|
+
// Inert without a host `PivotPropertiesProvider` that implements the
|
|
54
|
+
// write-back; see ADR 0006 § 4. NOT flag-gated: reflecting a bound
|
|
55
|
+
// element's qualification onto its record is a property of the
|
|
56
|
+
// document, not a piece of framework tooling, and it must keep working
|
|
57
|
+
// for a board whose framework flag is off.
|
|
58
|
+
PivotMaterialityPublisher,
|
|
59
|
+
]);
|
|
51
60
|
}
|
|
52
61
|
const fontConfig = options?.fontConfig;
|
|
53
62
|
if (fontConfig) {
|
|
@@ -3,5 +3,6 @@ export * from './brush-tool.js';
|
|
|
3
3
|
export * from './element-renderer.js';
|
|
4
4
|
export * from './eraser-tool.js';
|
|
5
5
|
export * from './highlighter-tool.js';
|
|
6
|
+
export * from './renderer/index.js';
|
|
6
7
|
export * from './toolbar/configs/index.js';
|
|
7
8
|
export * from './toolbar/senior-tool.js';
|
|
@@ -3,5 +3,6 @@ export * from './brush-tool.js';
|
|
|
3
3
|
export * from './element-renderer.js';
|
|
4
4
|
export * from './eraser-tool.js';
|
|
5
5
|
export * from './highlighter-tool.js';
|
|
6
|
+
export * from './renderer/index.js';
|
|
6
7
|
export * from './toolbar/configs/index.js';
|
|
7
8
|
export * from './toolbar/senior-tool.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BrushDomRendererExtension: import("../../../store/index.js").ExtensionType;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DomElementRendererExtension, } from '../../../affine-block-surface/index.js';
|
|
2
|
+
import { DefaultTheme } from '../../../affine-model/index.js';
|
|
3
|
+
import { renderBrushLikeDom } from './shared.js';
|
|
4
|
+
export const BrushDomRendererExtension = DomElementRendererExtension('brush', (model, domElement, renderer) => {
|
|
5
|
+
renderBrushLikeDom({
|
|
6
|
+
model,
|
|
7
|
+
domElement,
|
|
8
|
+
renderer,
|
|
9
|
+
color: renderer.getColorValue(model.color, DefaultTheme.black, true),
|
|
10
|
+
});
|
|
11
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const HighlighterDomRendererExtension: import("../../../store/index.js").ExtensionType;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DomElementRendererExtension, } from '../../../affine-block-surface/index.js';
|
|
2
|
+
import { DefaultTheme } from '../../../affine-model/index.js';
|
|
3
|
+
import { renderBrushLikeDom } from './shared.js';
|
|
4
|
+
export const HighlighterDomRendererExtension = DomElementRendererExtension('highlighter', (model, domElement, renderer) => {
|
|
5
|
+
renderBrushLikeDom({
|
|
6
|
+
model,
|
|
7
|
+
domElement,
|
|
8
|
+
renderer,
|
|
9
|
+
color: renderer.getColorValue(model.color, DefaultTheme.hightlighterColor, true),
|
|
10
|
+
});
|
|
11
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DomRenderer } from '../../../affine-block-surface/index.js';
|
|
2
|
+
import type { BrushElementModel, HighlighterElementModel } from '../../../affine-model/index.js';
|
|
3
|
+
type BrushLikeModel = BrushElementModel | HighlighterElementModel;
|
|
4
|
+
/**
|
|
5
|
+
* Paints a brush or highlighter stroke into its host element. The z-index is
|
|
6
|
+
* owned by `DomRenderer`, which reads it from the layer manager.
|
|
7
|
+
*/
|
|
8
|
+
export declare function renderBrushLikeDom({ color, domElement, model, renderer, }: {
|
|
9
|
+
color: string;
|
|
10
|
+
domElement: HTMLElement;
|
|
11
|
+
model: BrushLikeModel;
|
|
12
|
+
renderer: DomRenderer;
|
|
13
|
+
}): void;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const SVG_NS = 'http://www.w3.org/2000/svg';
|
|
2
|
+
/**
|
|
3
|
+
* The nodes a stroke host already owns, kept across renders. Rebuilding the
|
|
4
|
+
* `<svg>` on every frame allocated one element per stroke per pan or zoom;
|
|
5
|
+
* the attributes are cheap to overwrite in place.
|
|
6
|
+
*/
|
|
7
|
+
const retainedBrushDom = new WeakMap();
|
|
8
|
+
function clearBrushLikeDom(domElement) {
|
|
9
|
+
retainedBrushDom.delete(domElement);
|
|
10
|
+
domElement.replaceChildren();
|
|
11
|
+
}
|
|
12
|
+
function getRetainedBrushDom(domElement) {
|
|
13
|
+
const existing = retainedBrushDom.get(domElement);
|
|
14
|
+
if (existing) {
|
|
15
|
+
return existing;
|
|
16
|
+
}
|
|
17
|
+
const svg = document.createElementNS(SVG_NS, 'svg');
|
|
18
|
+
svg.style.position = 'absolute';
|
|
19
|
+
svg.style.left = '0';
|
|
20
|
+
svg.style.top = '0';
|
|
21
|
+
svg.style.overflow = 'visible';
|
|
22
|
+
svg.style.pointerEvents = 'none';
|
|
23
|
+
const path = document.createElementNS(SVG_NS, 'path');
|
|
24
|
+
path.setAttribute('stroke', 'none');
|
|
25
|
+
svg.append(path);
|
|
26
|
+
const retained = { svg, path };
|
|
27
|
+
retainedBrushDom.set(domElement, retained);
|
|
28
|
+
domElement.replaceChildren(svg);
|
|
29
|
+
return retained;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Paints a brush or highlighter stroke into its host element. The z-index is
|
|
33
|
+
* owned by `DomRenderer`, which reads it from the layer manager.
|
|
34
|
+
*/
|
|
35
|
+
export function renderBrushLikeDom({ color, domElement, model, renderer, }) {
|
|
36
|
+
const { zoom } = renderer.viewport;
|
|
37
|
+
const [, , w, h] = model.deserializedXYWH;
|
|
38
|
+
if (w <= 0 || h <= 0 || !model.commands) {
|
|
39
|
+
clearBrushLikeDom(domElement);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const { path, svg } = getRetainedBrushDom(domElement);
|
|
43
|
+
svg.style.width = `${w * zoom}px`;
|
|
44
|
+
svg.style.height = `${h * zoom}px`;
|
|
45
|
+
svg.style.transform = model.rotate === 0 ? '' : `rotate(${model.rotate}deg)`;
|
|
46
|
+
svg.style.transformOrigin = model.rotate === 0 ? '' : 'center';
|
|
47
|
+
svg.setAttribute('viewBox', `0 0 ${w} ${h}`);
|
|
48
|
+
path.setAttribute('d', model.commands);
|
|
49
|
+
path.setAttribute('fill', color);
|
|
50
|
+
domElement.style.width = `${w * zoom}px`;
|
|
51
|
+
domElement.style.height = `${h * zoom}px`;
|
|
52
|
+
domElement.style.overflow = 'visible';
|
|
53
|
+
domElement.style.pointerEvents = 'none';
|
|
54
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dom/index.js';
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { type ViewExtensionContext, ViewExtensionProvider } from '../affine-ext-loader/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Brush / highlighter rendering — ALWAYS registered, independent of any flag.
|
|
4
|
+
* Disabling `brush` hides only the pen senior button and the tools it opens
|
|
5
|
+
* (see {@link BrushViewExtension}); strokes already drawn must still paint,
|
|
6
|
+
* stay selectable and keep their contextual toolbar. See `docs/adr/0009`.
|
|
7
|
+
*/
|
|
8
|
+
export declare class BrushRenderViewExtension extends ViewExtensionProvider {
|
|
9
|
+
name: string;
|
|
10
|
+
setup(context: ViewExtensionContext): void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Pen creation tooling — flag-gated (`brush`): the senior toolbar button and
|
|
14
|
+
* the brush / highlighter / eraser tools it opens.
|
|
15
|
+
*/
|
|
2
16
|
export declare class BrushViewExtension extends ViewExtensionProvider {
|
|
3
17
|
name: string;
|
|
4
18
|
effect(): void;
|
|
@@ -4,8 +4,36 @@ import { effects } from './effects.js';
|
|
|
4
4
|
import { BrushElementRendererExtension } from './element-renderer.js';
|
|
5
5
|
import { EraserTool } from './eraser-tool.js';
|
|
6
6
|
import { HighlighterTool } from './highlighter-tool.js';
|
|
7
|
+
import { BrushDomRendererExtension, HighlighterDomRendererExtension, } from './renderer/index.js';
|
|
7
8
|
import { brushToolbarExtension, highlighterToolbarExtension, } from './toolbar/configs/index.js';
|
|
8
9
|
import { penSeniorTool } from './toolbar/senior-tool.js';
|
|
10
|
+
/**
|
|
11
|
+
* Brush / highlighter rendering — ALWAYS registered, independent of any flag.
|
|
12
|
+
* Disabling `brush` hides only the pen senior button and the tools it opens
|
|
13
|
+
* (see {@link BrushViewExtension}); strokes already drawn must still paint,
|
|
14
|
+
* stay selectable and keep their contextual toolbar. See `docs/adr/0009`.
|
|
15
|
+
*/
|
|
16
|
+
export class BrushRenderViewExtension extends ViewExtensionProvider {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.name = 'affine-brush-render-gfx';
|
|
20
|
+
}
|
|
21
|
+
setup(context) {
|
|
22
|
+
super.setup(context);
|
|
23
|
+
context.register(BrushElementRendererExtension);
|
|
24
|
+
// DOM variants of the same two strokes. The canvas renderer for the
|
|
25
|
+
// highlighter still ships with `@labre/affine-gfx-shape`; both providers
|
|
26
|
+
// are always-on, so the pair stays complete whatever the `brush` flag says.
|
|
27
|
+
context.register(BrushDomRendererExtension);
|
|
28
|
+
context.register(HighlighterDomRendererExtension);
|
|
29
|
+
context.register(brushToolbarExtension);
|
|
30
|
+
context.register(highlighterToolbarExtension);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Pen creation tooling — flag-gated (`brush`): the senior toolbar button and
|
|
35
|
+
* the brush / highlighter / eraser tools it opens.
|
|
36
|
+
*/
|
|
9
37
|
export class BrushViewExtension extends ViewExtensionProvider {
|
|
10
38
|
constructor() {
|
|
11
39
|
super(...arguments);
|
|
@@ -13,6 +41,7 @@ export class BrushViewExtension extends ViewExtensionProvider {
|
|
|
13
41
|
}
|
|
14
42
|
effect() {
|
|
15
43
|
super.effect();
|
|
44
|
+
// Defines the pen/eraser tool buttons and the pen menu — tooling only.
|
|
16
45
|
effects();
|
|
17
46
|
}
|
|
18
47
|
setup(context) {
|
|
@@ -20,9 +49,6 @@ export class BrushViewExtension extends ViewExtensionProvider {
|
|
|
20
49
|
context.register(BrushTool);
|
|
21
50
|
context.register(EraserTool);
|
|
22
51
|
context.register(HighlighterTool);
|
|
23
|
-
context.register(BrushElementRendererExtension);
|
|
24
|
-
context.register(brushToolbarExtension);
|
|
25
|
-
context.register(highlighterToolbarExtension);
|
|
26
52
|
context.register(penSeniorTool);
|
|
27
53
|
}
|
|
28
54
|
}
|
|
@@ -985,6 +985,17 @@ export class ConnectorPathGenerator extends PathGenerator {
|
|
|
985
985
|
getElementById: elementGetter ?? (() => null),
|
|
986
986
|
});
|
|
987
987
|
const points = path ?? instance._generateConnectorPath(connector) ?? [];
|
|
988
|
+
// Degraded state: no resolvable endpoints (an endpoint references a
|
|
989
|
+
// missing element and has no fallback position). Keep the last bound and
|
|
990
|
+
// paint nothing rather than derive a bbox from an empty point set.
|
|
991
|
+
if (points.length === 0) {
|
|
992
|
+
if (connector.path.length > 0) {
|
|
993
|
+
connector.updatingPath = true;
|
|
994
|
+
connector.path = [];
|
|
995
|
+
connector.updatingPath = false;
|
|
996
|
+
}
|
|
997
|
+
return;
|
|
998
|
+
}
|
|
988
999
|
const bound = connector.mode === ConnectorMode.Curve
|
|
989
1000
|
? getBezierCurveBoundingBox(getBezierParameters(points))
|
|
990
1001
|
: getBoundFromPoints(points);
|
|
@@ -1052,6 +1063,11 @@ export class ConnectorPathGenerator extends PathGenerator {
|
|
|
1052
1063
|
const start = this._getConnectorEndElement(connector, 'source');
|
|
1053
1064
|
const end = this._getConnectorEndElement(connector, 'target');
|
|
1054
1065
|
const [startPoint, endPoint] = this._computeStartEndPoint(connector);
|
|
1066
|
+
// _computeStartEndPoint returns [] when an endpoint cannot be resolved
|
|
1067
|
+
// (e.g. its element is gone and no position is stored) — bail out
|
|
1068
|
+
// instead of feeding undefined points to the orthogonal router.
|
|
1069
|
+
if (!startPoint || !endPoint)
|
|
1070
|
+
return [];
|
|
1055
1071
|
const startBound = start
|
|
1056
1072
|
? Bound.from(getBoundWithRotation(rBound(start)))
|
|
1057
1073
|
: null;
|
|
@@ -1076,9 +1092,12 @@ export class ConnectorPathGenerator extends PathGenerator {
|
|
|
1076
1092
|
let startPoint = null;
|
|
1077
1093
|
let endPoint = null;
|
|
1078
1094
|
if (source.id || target.id) {
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1095
|
+
const start = this._getConnectorEndElement(connector, 'source');
|
|
1096
|
+
const end = this._getConnectorEndElement(connector, 'target');
|
|
1097
|
+
// An endpoint id may reference an element that no longer exists.
|
|
1098
|
+
// Only take the anchor-to-anchor shortcut when both resolve; otherwise
|
|
1099
|
+
// degrade through _getConnectionPoint (stored position or empty path).
|
|
1100
|
+
if (start && end && !source.position && !target.position) {
|
|
1082
1101
|
const sb = Bound.deserialize(start.xywh);
|
|
1083
1102
|
const eb = Bound.deserialize(end.xywh);
|
|
1084
1103
|
startPoint = getNearestConnectableAnchor(start, eb.center);
|
|
@@ -1150,9 +1169,16 @@ export class ConnectorPathGenerator extends PathGenerator {
|
|
|
1150
1169
|
}
|
|
1151
1170
|
_generateStraightConnectorPath(connector) {
|
|
1152
1171
|
const { source, target } = connector;
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1172
|
+
const start = this._getConnectorEndElement(connector, 'source');
|
|
1173
|
+
const end = this._getConnectorEndElement(connector, 'target');
|
|
1174
|
+
// Same degraded state as in _generateCurveConnectorPath: an endpoint id
|
|
1175
|
+
// whose element is gone falls through to _getConnectionPoint.
|
|
1176
|
+
if (source.id &&
|
|
1177
|
+
!source.position &&
|
|
1178
|
+
target.id &&
|
|
1179
|
+
!target.position &&
|
|
1180
|
+
start &&
|
|
1181
|
+
end) {
|
|
1156
1182
|
const sb = Bound.deserialize(start.xywh);
|
|
1157
1183
|
const eb = Bound.deserialize(end.xywh);
|
|
1158
1184
|
const startPoint = getNearestConnectableAnchor(start, eb.center);
|
|
@@ -4,6 +4,13 @@ import type { PointerEventState } from '../std/index.js';
|
|
|
4
4
|
import { BaseTool, type GfxModel } from '../std/gfx/index.js';
|
|
5
5
|
export type ConnectorToolOptions = {
|
|
6
6
|
mode: ConnectorMode;
|
|
7
|
+
/**
|
|
8
|
+
* Semantic role (`<framework>:<role>`) stamped on the connectors drawn while
|
|
9
|
+
* this activation lasts — a framework toolbox activates the tool for a typed
|
|
10
|
+
* edge (e.g. `wardley:dependency`). Left out for the plain connector tool:
|
|
11
|
+
* the edge then stays neutral and no `role` key is written.
|
|
12
|
+
*/
|
|
13
|
+
role?: string;
|
|
7
14
|
};
|
|
8
15
|
export declare class ConnectorTool extends BaseTool<ConnectorToolOptions> {
|
|
9
16
|
static toolName: string;
|
|
@@ -37,7 +37,8 @@ export class ConnectorTool extends BaseTool {
|
|
|
37
37
|
const id = this.gfx.surface.addElement({
|
|
38
38
|
type: CanvasElementType.CONNECTOR,
|
|
39
39
|
mode: this.activatedOption.mode,
|
|
40
|
-
|
|
40
|
+
// `undefined` writes nothing: a neutral edge keeps no `role` key.
|
|
41
|
+
role: this.activatedOption.role,
|
|
41
42
|
source: this._source,
|
|
42
43
|
target: { position: this._startPoint },
|
|
43
44
|
});
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { ConnectorElementModel } from '../../affine-model/index.js';
|
|
2
|
+
import type { IVec } from '../../global/gfx/index.js';
|
|
3
|
+
import { InteractivityExtension } from '../../std/gfx/index.js';
|
|
4
|
+
import { type TypedEdge } from './typed-edge.js';
|
|
5
|
+
/**
|
|
6
|
+
* **M2 of `docs/adr/0010` — "show it".**
|
|
7
|
+
*
|
|
8
|
+
* A typed edge reveals its orientation on hover and on selection: ONE mark, the
|
|
9
|
+
* role's verb laid ALONG the link — `depends on` — in a box whose far end is a
|
|
10
|
+
* point aimed at the target. At rest the board keeps the canonical arrowless
|
|
11
|
+
* look, because on a Wardley map a permanent head already means something else
|
|
12
|
+
* (evolution movement), and two meanings on one glyph make both unreadable.
|
|
13
|
+
*
|
|
14
|
+
* ## The chevron is gone (PO acceptance of 02/08/2026, point 5)
|
|
15
|
+
*
|
|
16
|
+
* The first cut of M2 drew two marks: a canvas chevron at the target end, and
|
|
17
|
+
* a horizontal DOM tooltip holding the bare verb. Two things were wrong with
|
|
18
|
+
* it, and they had one cause between them.
|
|
19
|
+
*
|
|
20
|
+
* - The label was placed on `path[floor(length / 2)]`, the middle VERTEX. A
|
|
21
|
+
* straight link has exactly two points, so the "middle" vertex IS the target
|
|
22
|
+
* end — the tooltip landed on the tip of the link and covered the chevron it
|
|
23
|
+
* was meant to complement.
|
|
24
|
+
* - Even placed correctly, a horizontal box across a diagonal link reads as a
|
|
25
|
+
* sticker dropped on the map rather than as a statement about that link.
|
|
26
|
+
*
|
|
27
|
+
* The fix is one mark instead of two: the verb, rotated onto the line,
|
|
28
|
+
* ending in the point that used to be a separate chevron. So this file no
|
|
29
|
+
* longer owns a canvas overlay at all — {@link labelAnchorOf} says where the
|
|
30
|
+
* label goes and which way it turns, and the DOM widget draws it. Nothing can
|
|
31
|
+
* overlap something that no longer exists.
|
|
32
|
+
*
|
|
33
|
+
* ## Why a manager, and not the element renderer
|
|
34
|
+
*
|
|
35
|
+
* An `ElementRenderer` is `(model, ctx, matrix, renderer, rc)`: it knows the
|
|
36
|
+
* element and knows nothing about hover or selection, which are the two things
|
|
37
|
+
* this affordance is made of. So the state lives in an `InteractivityExtension`
|
|
38
|
+
* that owns two signals, and the widget reads them.
|
|
39
|
+
*
|
|
40
|
+
* Nothing here touches an element model: no CRDT write, no undo entry, not even
|
|
41
|
+
* a `@local()` field. The reveal is session state and leaves with the pointer.
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* The one colour the reveal is drawn in — the house primary, i.e. the colour of
|
|
45
|
+
* an affordance rather than of ink. Deliberately NOT the framework's palette:
|
|
46
|
+
* the label is the tool talking about the drawing, not part of the drawing.
|
|
47
|
+
*/
|
|
48
|
+
export declare const EDGE_DIRECTION_COLOR = "#1e96eb";
|
|
49
|
+
/**
|
|
50
|
+
* Where the label sits on a typed edge, and how it is turned.
|
|
51
|
+
*
|
|
52
|
+
* All of it in MODEL space: the widget projects `at` through the viewport and
|
|
53
|
+
* scales the box by the zoom, so the label is glued to its link the way a
|
|
54
|
+
* street name is glued to its street.
|
|
55
|
+
*/
|
|
56
|
+
export interface EdgeLabelAnchor {
|
|
57
|
+
/** The model point the label CENTRES on — the middle of the drawn path. */
|
|
58
|
+
at: IVec;
|
|
59
|
+
/**
|
|
60
|
+
* Rotation in radians, always within `[-π/2, π/2]`: the angle of the median
|
|
61
|
+
* segment, turned by 180° when that angle would stand the text on its head.
|
|
62
|
+
*/
|
|
63
|
+
angle: number;
|
|
64
|
+
/**
|
|
65
|
+
* Whether that 180° turn happened. It is the whole reason the caller needs
|
|
66
|
+
* this flag: the point of the box must face the TARGET, so on a link running
|
|
67
|
+
* right-to-left — where the turn put the box's right end at the SOURCE — the
|
|
68
|
+
* point moves to the box's left end. The words themselves never reverse; a
|
|
69
|
+
* mirrored `depends on` would be a smudge, not a rotation.
|
|
70
|
+
*/
|
|
71
|
+
flipped: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Where a typed edge's label goes and how it is turned — the whole geometry
|
|
75
|
+
* of M2 since the chevron was folded into the label.
|
|
76
|
+
*
|
|
77
|
+
* `null` for an edge with no direction to show: no routed path yet, or a path
|
|
78
|
+
* whose points all coincide. Silence, not a guess.
|
|
79
|
+
*/
|
|
80
|
+
export declare function labelAnchorOf(model: ConnectorElementModel): EdgeLabelAnchor | null;
|
|
81
|
+
/**
|
|
82
|
+
* Owns "which typed edges are revealing their direction", and the hint the
|
|
83
|
+
* armed tool shows (M1). Both are session state, both are signals, and both are
|
|
84
|
+
* read by the overlay and by the widget — so the two halves of the affordance
|
|
85
|
+
* can never disagree about what is on screen.
|
|
86
|
+
*
|
|
87
|
+
* No-op until some framework registers a role vocabulary: on a board of
|
|
88
|
+
* generalist connectors this subscribes to nothing at all.
|
|
89
|
+
*/
|
|
90
|
+
export declare class EdgeDirectionManager extends InteractivityExtension {
|
|
91
|
+
static key: string;
|
|
92
|
+
/** Ids of the typed edges revealing their direction: hover ∪ selection. */
|
|
93
|
+
readonly revealed$: import("@preact/signals-core").Signal<readonly string[]>;
|
|
94
|
+
/**
|
|
95
|
+
* The gesture hint of the armed tool, when that tool draws a typed edge —
|
|
96
|
+
* M1's half of the affordance. `null` for every other tool, which is every
|
|
97
|
+
* tool whose gesture decides no persisted orientation.
|
|
98
|
+
*/
|
|
99
|
+
readonly armedHint$: import("@preact/signals-core").Signal<{
|
|
100
|
+
key: string;
|
|
101
|
+
fallback?: string;
|
|
102
|
+
} | null>;
|
|
103
|
+
private _hovered;
|
|
104
|
+
private _subscriptions;
|
|
105
|
+
private _vocabularies;
|
|
106
|
+
private get _roles();
|
|
107
|
+
/**
|
|
108
|
+
* The revealed edges, resolved NOW rather than remembered.
|
|
109
|
+
*
|
|
110
|
+
* The same reasoning as the validation overlay's: the widget re-renders far
|
|
111
|
+
* more often than this state changes, and an edge can lose a binding or a
|
|
112
|
+
* role between two frames. A frozen snapshot would keep labelling a relation
|
|
113
|
+
* that no longer exists.
|
|
114
|
+
*/
|
|
115
|
+
revealedEdges(): TypedEdge[];
|
|
116
|
+
mounted(): void;
|
|
117
|
+
unmounted(): void;
|
|
118
|
+
private _hover;
|
|
119
|
+
private _setHovered;
|
|
120
|
+
private _syncArmed;
|
|
121
|
+
/** Recompute hover ∪ selection, and publish only when it actually changed. */
|
|
122
|
+
private _sync;
|
|
123
|
+
}
|