@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
|
@@ -33,7 +33,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
33
33
|
return useValue ? value : void 0;
|
|
34
34
|
};
|
|
35
35
|
import { EdgelessCRUDIdentifier } from '../../affine-block-surface/index.js';
|
|
36
|
-
import { getSelectedRect, isTopLevelBlock, requestThrottledConnectedFrame, } from '../../affine-shared/utils/index.js';
|
|
36
|
+
import { getSelectedRect, isTopLevelBlock, overlayScale, requestThrottledConnectedFrame, } from '../../affine-shared/utils/index.js';
|
|
37
37
|
import { MultiCursorDuotoneIcon } from '@blocksuite/icons/lit';
|
|
38
38
|
import { WidgetComponent } from '../../std/index.js';
|
|
39
39
|
import { GfxControllerIdentifier } from '../../std/gfx/index.js';
|
|
@@ -252,9 +252,11 @@ let EdgelessRemoteSelectionWidget = (() => {
|
|
|
252
252
|
this._remoteRects = remoteRects;
|
|
253
253
|
};
|
|
254
254
|
this._updateTransform = requestThrottledConnectedFrame(() => {
|
|
255
|
-
const { translateX, translateY,
|
|
256
|
-
|
|
257
|
-
|
|
255
|
+
const { translateX, translateY, viewScale } = this.gfx.viewport;
|
|
256
|
+
// Stated in the scaled space of the container, like every other overlay
|
|
257
|
+
// and like `GfxBlockComponent.getCSSTransform`.
|
|
258
|
+
this.style.setProperty('--v-zoom', `${overlayScale(this.gfx.viewport)}`);
|
|
259
|
+
this.style.setProperty('transform', `translate(${translateX / viewScale}px, ${translateY / viewScale}px) scale(var(--v-zoom))`);
|
|
258
260
|
}, this);
|
|
259
261
|
this.#_remoteCursors_accessor_storage = __runInitializers(this, __remoteCursors_initializers, new Map());
|
|
260
262
|
this.#_remoteRects_accessor_storage = (__runInitializers(this, __remoteCursors_extraInitializers), __runInitializers(this, __remoteRects_initializers, new Map()));
|
|
@@ -48,7 +48,7 @@ import groupBy from 'lodash-es/groupBy.js';
|
|
|
48
48
|
import throttle from 'lodash-es/throttle.js';
|
|
49
49
|
import { AFFINE_SLASH_MENU_MAX_HEIGHT, AFFINE_SLASH_MENU_TOOLTIP_TIMEOUT, AFFINE_SLASH_MENU_TRIGGER_KEY, } from './consts.js';
|
|
50
50
|
import { slashItemToolTipStyle, styles } from './styles.js';
|
|
51
|
-
import { isActionItem, isSubMenuItem, parseGroup, slashItemClassName, } from './utils.js';
|
|
51
|
+
import { isActionItem, isSubMenuItem, isTextInputKey, parseGroup, slashItemClassName, } from './utils.js';
|
|
52
52
|
let SlashMenu = (() => {
|
|
53
53
|
let _classSuper = WithDisposable(LitElement);
|
|
54
54
|
let __filteredItems_decorators;
|
|
@@ -217,9 +217,13 @@ let SlashMenu = (() => {
|
|
|
217
217
|
// The IME case of above
|
|
218
218
|
return;
|
|
219
219
|
}
|
|
220
|
-
if (key !== 'Backspace' &&
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
if (key !== 'Backspace' &&
|
|
221
|
+
this._queryState === 'no_result' &&
|
|
222
|
+
!isTextInputKey(event)) {
|
|
223
|
+
// The search found nothing and the user is not typing: whatever this
|
|
224
|
+
// key is, it is not narrowing the query, so the slash menu closes.
|
|
225
|
+
// Typing keeps it alive — the query state is refreshed asynchronously
|
|
226
|
+
// and would otherwise be judged stale.
|
|
223
227
|
this.abortController.abort();
|
|
224
228
|
return;
|
|
225
229
|
}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import type { SlashMenuActionItem, SlashMenuConfig, SlashMenuContext, SlashMenuItem, SlashMenuSubMenu } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a keydown is the user typing one more character into the query.
|
|
4
|
+
*
|
|
5
|
+
* The slash menu closes on the first key that follows an empty result, which is
|
|
6
|
+
* right for a command key and wrong for a letter: the query state is computed
|
|
7
|
+
* asynchronously, so a letter typed just after a deletion is judged against a
|
|
8
|
+
* STALE `no_result` and kills a menu that was about to find matches again.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isTextInputKey(event: KeyboardEvent): boolean;
|
|
2
11
|
export declare function isActionItem(item: SlashMenuItem): item is SlashMenuActionItem;
|
|
3
12
|
export declare function isSubMenuItem(item: SlashMenuItem): item is SlashMenuSubMenu;
|
|
4
13
|
export declare function slashItemClassName({ name }: SlashMenuItem): string;
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a keydown is the user typing one more character into the query.
|
|
3
|
+
*
|
|
4
|
+
* The slash menu closes on the first key that follows an empty result, which is
|
|
5
|
+
* right for a command key and wrong for a letter: the query state is computed
|
|
6
|
+
* asynchronously, so a letter typed just after a deletion is judged against a
|
|
7
|
+
* STALE `no_result` and kills a menu that was about to find matches again.
|
|
8
|
+
*/
|
|
9
|
+
export function isTextInputKey(event) {
|
|
10
|
+
// Keys combined with modifiers are not text input.
|
|
11
|
+
if (event.ctrlKey || event.metaKey || event.altKey)
|
|
12
|
+
return false;
|
|
13
|
+
// During IME composition, the query is updated by the input / composition
|
|
14
|
+
// hooks, never by the keydown.
|
|
15
|
+
if (event.isComposing)
|
|
16
|
+
return false;
|
|
17
|
+
// Only single-character keys are text input: `Enter`, `Tab`, `F2`… are not.
|
|
18
|
+
if (event.key.length !== 1)
|
|
19
|
+
return false;
|
|
20
|
+
// Space still closes the slash menu — unchanged behaviour.
|
|
21
|
+
if (event.key === ' ')
|
|
22
|
+
return false;
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
1
25
|
export function isActionItem(item) {
|
|
2
26
|
return 'action' in item;
|
|
3
27
|
}
|
|
@@ -3,6 +3,7 @@ import { ToolbarContext } from '../affine-shared/services/index.js';
|
|
|
3
3
|
import { type BlockComponent, WidgetComponent } from '../std/index.js';
|
|
4
4
|
import { type GfxController, type GfxModel } from '../std/gfx/index.js';
|
|
5
5
|
import type { ReferenceElement, SideObject } from '@floating-ui/dom';
|
|
6
|
+
import { ToolbarFitter } from './utils.js';
|
|
6
7
|
export declare const AFFINE_TOOLBAR_WIDGET = "affine-toolbar-widget";
|
|
7
8
|
export declare class AffineToolbarWidget extends WidgetComponent {
|
|
8
9
|
static styles: import("lit").CSSResult;
|
|
@@ -14,6 +15,11 @@ export declare class AffineToolbarWidget extends WidgetComponent {
|
|
|
14
15
|
setReferenceElementWithElements(gfx: GfxController, elements: GfxModel[]): void;
|
|
15
16
|
updateWithSurface(ctx: ToolbarContext, activated: boolean, elementIds: string[]): void;
|
|
16
17
|
toolbar: EditorToolbar;
|
|
18
|
+
/**
|
|
19
|
+
* Keeps the row on one line: it renders the toolbar, measures it and hands
|
|
20
|
+
* the least important entries to the "⋮" menu when the room runs out.
|
|
21
|
+
*/
|
|
22
|
+
fitter: ToolbarFitter;
|
|
17
23
|
get toolbarRegistry(): import("../affine-shared/services/index.js").ToolbarRegistryExtension;
|
|
18
24
|
connectedCallback(): void;
|
|
19
25
|
}
|
|
@@ -16,7 +16,7 @@ import { css, unsafeCSS } from 'lit';
|
|
|
16
16
|
import groupBy from 'lodash-es/groupBy.js';
|
|
17
17
|
import throttle from 'lodash-es/throttle.js';
|
|
18
18
|
import toPairs from 'lodash-es/toPairs.js';
|
|
19
|
-
import { autoUpdatePosition,
|
|
19
|
+
import { autoUpdatePosition, sideMap, ToolbarFitter } from './utils.js';
|
|
20
20
|
export const AFFINE_TOOLBAR_WIDGET = 'affine-toolbar-widget';
|
|
21
21
|
export class AffineToolbarWidget extends WidgetComponent {
|
|
22
22
|
constructor() {
|
|
@@ -24,6 +24,11 @@ export class AffineToolbarWidget extends WidgetComponent {
|
|
|
24
24
|
this.sideOptions$ = signal(null);
|
|
25
25
|
this.referenceElement$ = signal(null);
|
|
26
26
|
this.toolbar = new EditorToolbar();
|
|
27
|
+
/**
|
|
28
|
+
* Keeps the row on one line: it renders the toolbar, measures it and hands
|
|
29
|
+
* the least important entries to the "⋮" menu when the room runs out.
|
|
30
|
+
*/
|
|
31
|
+
this.fitter = new ToolbarFitter(this.toolbar);
|
|
27
32
|
}
|
|
28
33
|
static { this.styles = css `
|
|
29
34
|
editor-toolbar {
|
|
@@ -98,7 +103,19 @@ export class AffineToolbarWidget extends WidgetComponent {
|
|
|
98
103
|
this.referenceElement$.value = element ? () => element : null;
|
|
99
104
|
}
|
|
100
105
|
setReferenceElementWithBlocks(blocks) {
|
|
101
|
-
|
|
106
|
+
// A single position pass asks for the rects twice — once for the common
|
|
107
|
+
// bound, once for the inline middleware — and the pass runs on every
|
|
108
|
+
// scroll frame. One measure per frame is enough.
|
|
109
|
+
let cachedClientRects = null;
|
|
110
|
+
const getClientRects = () => {
|
|
111
|
+
if (!cachedClientRects) {
|
|
112
|
+
cachedClientRects = blocks.map(e => e.getBoundingClientRect());
|
|
113
|
+
requestAnimationFrame(() => {
|
|
114
|
+
cachedClientRects = null;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return cachedClientRects;
|
|
118
|
+
};
|
|
102
119
|
this.referenceElement$.value = blocks.length
|
|
103
120
|
? () => ({
|
|
104
121
|
getBoundingClientRect: () => {
|
|
@@ -113,10 +130,13 @@ export class AffineToolbarWidget extends WidgetComponent {
|
|
|
113
130
|
: null;
|
|
114
131
|
}
|
|
115
132
|
setReferenceElementWithElements(gfx, elements) {
|
|
133
|
+
// Measured once per selection change, not on every anchor read: floating-ui
|
|
134
|
+
// calls `getBoundingClientRect` on each frame of a pan or a zoom, and the
|
|
135
|
+
// surface bound of a group walks all of its children.
|
|
136
|
+
const surfaceBounds = getCommonBoundWithRotation(elements);
|
|
116
137
|
const getBoundingClientRect = () => {
|
|
117
|
-
const bounds = getCommonBoundWithRotation(elements);
|
|
118
138
|
const { x: offsetX, y: offsetY } = this.getBoundingClientRect();
|
|
119
|
-
const [x, y, w, h] = gfx.viewport.toViewBound(
|
|
139
|
+
const [x, y, w, h] = gfx.viewport.toViewBound(surfaceBounds).toXYWH();
|
|
120
140
|
const rect = new DOMRect(x + offsetX, y + offsetY, w, h);
|
|
121
141
|
return rect;
|
|
122
142
|
};
|
|
@@ -469,6 +489,7 @@ export class AffineToolbarWidget extends WidgetComponent {
|
|
|
469
489
|
const value = flags.value$.value;
|
|
470
490
|
// Hides toolbar
|
|
471
491
|
if (Flag.None === value || flags.check(Flag.Hiding, value)) {
|
|
492
|
+
this.fitter.reset();
|
|
472
493
|
if ('inline' in toolbar.dataset)
|
|
473
494
|
delete toolbar.dataset.inline;
|
|
474
495
|
if (toolbar.dataset.open)
|
|
@@ -486,8 +507,15 @@ export class AffineToolbarWidget extends WidgetComponent {
|
|
|
486
507
|
// 3. `Flag.Block`: blocks in note
|
|
487
508
|
// 4. `Flag.Hovering`: inline links in note/database/table
|
|
488
509
|
// 5. `Flag.Surface`: elements in edgeless
|
|
489
|
-
|
|
510
|
+
this.fitter.render(context, flavour);
|
|
490
511
|
}));
|
|
512
|
+
// The row never wraps, so it has to be told when its room changes. Two
|
|
513
|
+
// things can change it: the cap `size()` writes on every reposition, and
|
|
514
|
+
// anything that resizes the toolbar itself (a narrower editor, a zoom, a
|
|
515
|
+
// font that loaded late) — the observer catches what the cap misses.
|
|
516
|
+
const resizeObserver = new ResizeObserver(() => this.fitter.resize());
|
|
517
|
+
resizeObserver.observe(toolbar);
|
|
518
|
+
disposables.add(() => resizeObserver.disconnect());
|
|
491
519
|
let abortController = new AbortController();
|
|
492
520
|
disposables.add(effect(() => {
|
|
493
521
|
if (!abortController.signal.aborted) {
|
|
@@ -509,7 +537,7 @@ export class AffineToolbarWidget extends WidgetComponent {
|
|
|
509
537
|
abortController = new AbortController();
|
|
510
538
|
}
|
|
511
539
|
const signal = abortController.signal;
|
|
512
|
-
const cleanup = autoUpdatePosition(signal, toolbar, referenceElement, flavour, placement, sideOptions);
|
|
540
|
+
const cleanup = autoUpdatePosition(signal, toolbar, referenceElement, flavour, placement, sideOptions, undefined, () => this.fitter.resize());
|
|
513
541
|
signal.addEventListener('abort', cleanup, { once: true });
|
|
514
542
|
return () => {
|
|
515
543
|
if (signal.aborted)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type EditorToolbar } from '../affine-components/toolbar/index.js';
|
|
2
|
-
import { type ToolbarActions, type ToolbarContext, type ToolbarPlacement } from '../affine-shared/services/index.js';
|
|
2
|
+
import { type ToolbarActions, type ToolbarContext, type ToolbarLayoutStep, type ToolbarPlacement } from '../affine-shared/services/index.js';
|
|
3
3
|
import type { AutoUpdateOptions, ReferenceElement, SideObject } from '@floating-ui/dom';
|
|
4
4
|
export declare const sideMap: Map<string, {
|
|
5
5
|
top: number;
|
|
@@ -8,8 +8,67 @@ export declare const sideMap: Map<string, {
|
|
|
8
8
|
top: number;
|
|
9
9
|
bottom: number;
|
|
10
10
|
}>;
|
|
11
|
-
export declare function autoUpdatePosition(signal: AbortSignal, toolbar: EditorToolbar, referenceElement: ReferenceElement, flavour: string, placement: ToolbarPlacement, sideOptions: Partial<SideObject> | null, options?: AutoUpdateOptions
|
|
11
|
+
export declare function autoUpdatePosition(signal: AbortSignal, toolbar: EditorToolbar, referenceElement: ReferenceElement, flavour: string, placement: ToolbarPlacement, sideOptions: Partial<SideObject> | null, options?: AutoUpdateOptions,
|
|
12
|
+
/**
|
|
13
|
+
* Called whenever the room the row has just changed. This is the only place
|
|
14
|
+
* that knows it: `size` is what writes the cap, and it re-runs on every
|
|
15
|
+
* scroll, resize and flip.
|
|
16
|
+
*/
|
|
17
|
+
onAvailableWidth?: () => void): () => void;
|
|
12
18
|
export declare function combine(actions: ToolbarActions, context: ToolbarContext): any[];
|
|
19
|
+
/**
|
|
20
|
+
* How much of the row an entry has given up, decided by {@link ToolbarFitter}
|
|
21
|
+
* and re-applied by every render until the room changes again.
|
|
22
|
+
*/
|
|
23
|
+
export interface ToolbarLayout {
|
|
24
|
+
/** Entries rendered as their icon alone, with the label as tooltip. */
|
|
25
|
+
shrunk: Set<string>;
|
|
26
|
+
/** Entries rendered as entries of the "⋮" menu instead of the row. */
|
|
27
|
+
collapsed: Set<string>;
|
|
28
|
+
}
|
|
29
|
+
export declare function emptyToolbarLayout(): ToolbarLayout;
|
|
30
|
+
/**
|
|
31
|
+
* What the row is, in two values — the question the plan is asked by.
|
|
32
|
+
*
|
|
33
|
+
* The split is the whole of the second half of the PO's recette of 25/08/2026,
|
|
34
|
+
* and it is the difference between the two things a re-render can invalidate:
|
|
35
|
+
*
|
|
36
|
+
* - {@link entries} is WHICH ENTRIES the row has, with their words, their
|
|
37
|
+
* icons, their priorities and whether the widget can move them into the "⋮".
|
|
38
|
+
* It is what makes a PLAN applicable: a plan is a list of entry ids, and it
|
|
39
|
+
* describes this row only for as long as this list holds.
|
|
40
|
+
* - {@link state} is WHAT THOSE ENTRIES SAY. It changes nothing about which
|
|
41
|
+
* degradations exist, and everything about what they are worth: the same
|
|
42
|
+
* dropdown naming `Strict` instead of `Sketch` is ten pixels narrower, and a
|
|
43
|
+
* group that gained a member is a button wider. It is what makes a
|
|
44
|
+
* MEASUREMENT applicable.
|
|
45
|
+
*
|
|
46
|
+
* A row whose entries changed is a new row and is planned from scratch. A row
|
|
47
|
+
* whose state changed keeps the plan it is wearing — the eye sees nothing — and
|
|
48
|
+
* is only re-measured. A row where neither moved is free, which is what makes
|
|
49
|
+
* a gesture's re-renders cost nothing at all.
|
|
50
|
+
*/
|
|
51
|
+
export interface ToolbarRow {
|
|
52
|
+
entries: string;
|
|
53
|
+
state: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Where the row's plan comes from, asked for by {@link ToolbarRow}.
|
|
57
|
+
*
|
|
58
|
+
* Called once per render, AFTER the entries are resolved and BEFORE anything
|
|
59
|
+
* reaches the DOM — which is the whole point. The mode an entry reads in is a
|
|
60
|
+
* datum of its render, so the plan has to be in hand before the first
|
|
61
|
+
* character is written; a plan applied afterwards is a plan the eye has
|
|
62
|
+
* already seen the row without.
|
|
63
|
+
*/
|
|
64
|
+
export type ToolbarLayoutSource = (row: ToolbarRow) => ToolbarLayout;
|
|
65
|
+
/** What one render of the row tells the fitter about its own room to give. */
|
|
66
|
+
export interface ToolbarFit extends ToolbarRow {
|
|
67
|
+
/** Every degradation available, in the order they must be spent. */
|
|
68
|
+
steps: ToolbarLayoutStep[];
|
|
69
|
+
/** Whether the rendered row already carries a "⋮" button. */
|
|
70
|
+
hasMenu: boolean;
|
|
71
|
+
}
|
|
13
72
|
/**
|
|
14
73
|
* Renders toolbar
|
|
15
74
|
*
|
|
@@ -19,4 +78,88 @@ export declare function combine(actions: ToolbarActions, context: ToolbarContext
|
|
|
19
78
|
* 3. `affine:*`
|
|
20
79
|
* 4. `custom:affine:*`
|
|
21
80
|
*/
|
|
22
|
-
export declare function renderToolbar(toolbar: EditorToolbar, context: ToolbarContext, flavour: string):
|
|
81
|
+
export declare function renderToolbar(toolbar: EditorToolbar, context: ToolbarContext, flavour: string, source?: ToolbarLayoutSource): ToolbarFit | null;
|
|
82
|
+
/**
|
|
83
|
+
* Keeps the contextual toolbar on ONE line.
|
|
84
|
+
*
|
|
85
|
+
* Owns the two halves the pure planner cannot: MEASURING the row, and
|
|
86
|
+
* RE-RENDERING it once the planner has said which entries give way. The order
|
|
87
|
+
* they give way in is not decided here — it comes from what the entries
|
|
88
|
+
* declared (`priority`, `icon`, `label`), so this class never learns that a
|
|
89
|
+
* block or a framework exists.
|
|
90
|
+
*
|
|
91
|
+
* The row is measured ONCE per ROW, while it is still whole. Every later
|
|
92
|
+
* resize replans from those numbers instead of flashing the row back to its
|
|
93
|
+
* full width just to measure it again — which is also what makes the collapse
|
|
94
|
+
* reversible: widen the editor and the plan simply spends fewer steps.
|
|
95
|
+
*
|
|
96
|
+
* "Per row", not per render: the widget re-renders for reasons that have
|
|
97
|
+
* nothing to do with width, and a re-render is not a new row. Which row it is
|
|
98
|
+
* is answered by {@link ToolbarRow}, and a row that has not changed keeps the
|
|
99
|
+
* plan it is wearing — see {@link ToolbarFitter.render}.
|
|
100
|
+
*
|
|
101
|
+
* A row that changed only what it SAYS keeps it too, and is simply re-measured
|
|
102
|
+
* where it stands ({@link ToolbarFitter.#remeasure}). That is the generalisation
|
|
103
|
+
* the PO's recette of 25/08/2026 asked for: the components' row is made
|
|
104
|
+
* entirely of entries the widget draws itself, so the list of entries is a
|
|
105
|
+
* complete description of it and the first half of {@link ToolbarRow} was
|
|
106
|
+
* enough; a framework background's row is mostly OPAQUE — toggles grouped by
|
|
107
|
+
* the framework, a dropdown naming the level of requirement in force — and for
|
|
108
|
+
* that row the list says nothing about what it costs.
|
|
109
|
+
*
|
|
110
|
+
* And it replans only at the ACCALMIE. While the room is still moving — a zoom,
|
|
111
|
+
* a pan, a window being dragged — the plan on screen is frozen: see
|
|
112
|
+
* {@link ToolbarFitter.resize}.
|
|
113
|
+
*/
|
|
114
|
+
export declare class ToolbarFitter {
|
|
115
|
+
#private;
|
|
116
|
+
private readonly toolbar;
|
|
117
|
+
constructor(toolbar: EditorToolbar);
|
|
118
|
+
/**
|
|
119
|
+
* Renders the row, in the mode the plan on screen says.
|
|
120
|
+
*
|
|
121
|
+
* The widget re-renders for a great many reasons that have nothing to do
|
|
122
|
+
* with the row's width — an element updated anywhere on the canvas, a block
|
|
123
|
+
* updated, a selection re-emitted, something hovered — and any of them can
|
|
124
|
+
* land on any frame of a gesture. So this asks a question first: is the row
|
|
125
|
+
* about to be drawn the row already on screen?
|
|
126
|
+
*
|
|
127
|
+
* - **Yes** (same {@link ToolbarRow}, both halves): it is drawn wearing the
|
|
128
|
+
* plan it is already wearing, entry by entry, and nothing is measured.
|
|
129
|
+
* The DOM does not change, so there is nothing to see — which is the
|
|
130
|
+
* PO's recette of 25/08/2026. Before, every one of these re-renders threw
|
|
131
|
+
* the plan away, painted the whole row, and only then measured and
|
|
132
|
+
* degraded it again: one flash of "Read this component" per re-render,
|
|
133
|
+
* plus a full replan at whatever width the gesture happened to be at,
|
|
134
|
+
* straight through the freeze the accalmie was supposed to give.
|
|
135
|
+
* - **The same entries, saying something new** — a dropdown naming another
|
|
136
|
+
* profile, a group that gained a member: the PLAN still describes the row
|
|
137
|
+
* and stays on it, so again there is nothing to see. Only the widths it was
|
|
138
|
+
* made from are out of date, and {@link ToolbarFitter.#remeasure} reads
|
|
139
|
+
* them back off the row as it is drawn.
|
|
140
|
+
* - **No**: a different row. Then, and only then, it is rendered whole,
|
|
141
|
+
* measured, and spends what it must.
|
|
142
|
+
*/
|
|
143
|
+
render(context: ToolbarContext, flavour: string): void;
|
|
144
|
+
/** The toolbar is going away: stop measuring it. */
|
|
145
|
+
reset(): void;
|
|
146
|
+
/**
|
|
147
|
+
* The room the row has may have changed.
|
|
148
|
+
*
|
|
149
|
+
* Two answers are refused before anything is replanned, and the PO's second
|
|
150
|
+
* pass of 02/08/2026 is about both:
|
|
151
|
+
*
|
|
152
|
+
* 1. **A change too small to mean anything.** Two measurements a pixel apart
|
|
153
|
+
* are the same measurement, and a row that believes them alternates
|
|
154
|
+
* between two compositions for as long as they alternate.
|
|
155
|
+
* 2. **A change that is still happening.** A zoom moves the room on every
|
|
156
|
+
* frame; replanning on each of them re-composes the row under the cursor,
|
|
157
|
+
* and every new width moves the anchoring with it — which is the toolbar
|
|
158
|
+
* "hesitating between anchor points" the PO reported. The plan on screen
|
|
159
|
+
* is FROZEN for the whole gesture and spent once, when the viewport lands.
|
|
160
|
+
*
|
|
161
|
+
* The room is remembered as it goes by, so the plan that is finally made is
|
|
162
|
+
* the one for the width the gesture ended on, not the width it started from.
|
|
163
|
+
*/
|
|
164
|
+
resize(): void;
|
|
165
|
+
}
|