@formicoidea/labre-core 0.40.0 → 0.42.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/LICENSE +384 -0
- package/dist/_pkgs/affine-block-attachment/attachment-block.js +7 -2
- package/dist/_pkgs/affine-block-attachment/components/rename-model.js +3 -2
- package/dist/_pkgs/affine-block-attachment/configs/slash-menu.js +7 -0
- package/dist/_pkgs/affine-block-attachment/configs/toolbar.js +11 -3
- package/dist/_pkgs/affine-block-attachment/configs/tooltips.js +4 -4
- package/dist/_pkgs/affine-block-attachment/translations.d.ts +49 -0
- package/dist/_pkgs/affine-block-attachment/translations.js +98 -0
- package/dist/_pkgs/affine-block-attachment/utils.js +9 -6
- package/dist/_pkgs/affine-block-bookmark/bookmark-block.js +2 -2
- package/dist/_pkgs/affine-block-bookmark/components/bookmark-card.js +13 -6
- package/dist/_pkgs/affine-block-bookmark/configs/slash-menu.js +6 -1
- package/dist/_pkgs/affine-block-bookmark/configs/toolbar.js +9 -1
- package/dist/_pkgs/affine-block-bookmark/configs/tooltips.js +2 -2
- package/dist/_pkgs/affine-block-bookmark/translations.d.ts +26 -0
- package/dist/_pkgs/affine-block-bookmark/translations.js +55 -0
- package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +4 -0
- package/dist/_pkgs/affine-block-callout/configs/tooltips.js +2 -2
- package/dist/_pkgs/affine-block-callout/translations.d.ts +16 -0
- package/dist/_pkgs/affine-block-callout/translations.js +24 -0
- package/dist/_pkgs/affine-block-code/code-block.js +6 -3
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +4 -2
- package/dist/_pkgs/affine-block-code/code-toolbar/components/lang-button.js +3 -2
- package/dist/_pkgs/affine-block-code/code-toolbar/components/preview-button.js +4 -3
- package/dist/_pkgs/affine-block-code/code-toolbar/config.js +116 -72
- package/dist/_pkgs/affine-block-code/translations.d.ts +30 -0
- package/dist/_pkgs/affine-block-code/translations.js +84 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +9 -3
- package/dist/_pkgs/affine-block-embed/common/render-linked-doc.js +7 -6
- package/dist/_pkgs/affine-block-embed/configs/toolbar.js +11 -2
- package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-block.js +2 -1
- package/dist/_pkgs/affine-block-embed/embed-github-block/embed-github-block.js +2 -1
- package/dist/_pkgs/affine-block-embed/embed-html-block/components/fullscreen-toolbar.js +4 -3
- package/dist/_pkgs/affine-block-embed/embed-html-block/configs/toolbar.js +5 -1
- package/dist/_pkgs/affine-block-embed/embed-html-block/configs/tooltips.js +14 -14
- package/dist/_pkgs/affine-block-embed/embed-html-block/embed-html-block.js +7 -1
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-error-card.js +11 -4
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-idle-card.d.ts +2 -0
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-idle-card.js +13 -3
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-edit-popup.js +4 -2
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-input-base.js +8 -5
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-input-popup.js +21 -5
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-loading-card.js +4 -1
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/slash-menu/slash-menu.js +4 -0
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.d.ts +2 -0
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +6 -1
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/consts.d.ts +2 -0
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/consts.js +5 -0
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.d.ts +1 -0
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.js +33 -9
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/utils.d.ts +8 -0
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/utils.js +19 -0
- package/dist/_pkgs/affine-block-embed/embed-loom-block/embed-loom-block.js +2 -1
- package/dist/_pkgs/affine-block-embed/embed-youtube-block/embed-youtube-block.js +2 -1
- package/dist/_pkgs/affine-block-embed/translations.d.ts +46 -0
- package/dist/_pkgs/affine-block-embed/translations.js +114 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/slash-menu.js +7 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +29 -12
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/tooltips.js +4 -4
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +10 -4
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/components/embed-synced-doc-card.js +8 -4
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +28 -13
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-edgeless-synced-doc-block.js +3 -2
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +3 -2
- package/dist/_pkgs/affine-block-embed-doc/translations.d.ts +40 -0
- package/dist/_pkgs/affine-block-embed-doc/translations.js +85 -0
- package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-dense-menu.js +29 -22
- package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-menu.js +5 -1
- package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-tool-button.js +2 -1
- package/dist/_pkgs/affine-block-frame/edgeless-toolbar/presentation-toolbar.js +12 -9
- package/dist/_pkgs/affine-block-frame/frame-manager.js +8 -2
- package/dist/_pkgs/affine-block-frame/frame-tool.js +7 -2
- package/dist/_pkgs/affine-block-frame/frame-toolbar.js +18 -7
- package/dist/_pkgs/affine-block-frame/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-frame/index.js +1 -0
- package/dist/_pkgs/affine-block-frame/present/frame-order-button.js +5 -1
- package/dist/_pkgs/affine-block-frame/present/navigator-setting-button.js +16 -6
- package/dist/_pkgs/affine-block-frame/present/present-button.js +3 -1
- package/dist/_pkgs/affine-block-frame/translations.d.ts +64 -0
- package/dist/_pkgs/affine-block-frame/translations.js +131 -0
- package/dist/_pkgs/affine-block-image/components/page-image-block.js +5 -2
- package/dist/_pkgs/affine-block-image/configs/slash-menu.js +4 -0
- package/dist/_pkgs/affine-block-image/configs/toolbar.js +7 -1
- package/dist/_pkgs/affine-block-image/configs/tooltips.js +1 -1
- package/dist/_pkgs/affine-block-image/image-block.js +3 -2
- package/dist/_pkgs/affine-block-image/image-edgeless-block.js +6 -3
- package/dist/_pkgs/affine-block-image/preview-image/page.js +5 -1
- package/dist/_pkgs/affine-block-image/translations.d.ts +35 -0
- package/dist/_pkgs/affine-block-image/translations.js +68 -0
- package/dist/_pkgs/affine-block-image/utils.js +9 -8
- package/dist/_pkgs/affine-block-latex/configs/slash-menu.d.ts +8 -0
- package/dist/_pkgs/affine-block-latex/configs/slash-menu.js +19 -3
- package/dist/_pkgs/affine-block-latex/latex-block.js +6 -2
- package/dist/_pkgs/affine-block-latex/translations.d.ts +35 -0
- package/dist/_pkgs/affine-block-latex/translations.js +60 -0
- package/dist/_pkgs/affine-block-list/list-keymap.js +7 -0
- package/dist/_pkgs/affine-block-note/components/edgeless-note-border-dropdown-menu.d.ts +9 -0
- package/dist/_pkgs/affine-block-note/components/edgeless-note-border-dropdown-menu.js +23 -6
- package/dist/_pkgs/affine-block-note/components/edgeless-note-display-mode-dropdown-menu.d.ts +4 -1
- package/dist/_pkgs/affine-block-note/components/edgeless-note-display-mode-dropdown-menu.js +26 -6
- package/dist/_pkgs/affine-block-note/components/edgeless-note-shadow-menu.d.ts +3 -0
- package/dist/_pkgs/affine-block-note/components/edgeless-note-shadow-menu.js +21 -10
- package/dist/_pkgs/affine-block-note/components/edgeless-note-style-panel.js +22 -8
- package/dist/_pkgs/affine-block-note/configs/slash-menu.js +13 -0
- package/dist/_pkgs/affine-block-note/configs/toolbar.js +26 -19
- package/dist/_pkgs/affine-block-note/configs/tooltips.js +57 -30
- package/dist/_pkgs/affine-block-note/move-block.js +8 -2
- package/dist/_pkgs/affine-block-note/note-keymap.js +7 -1
- package/dist/_pkgs/affine-block-note/translations.d.ts +91 -0
- package/dist/_pkgs/affine-block-note/translations.js +253 -0
- package/dist/_pkgs/affine-block-paragraph/paragraph-block.js +7 -2
- package/dist/_pkgs/affine-block-paragraph/paragraph-keymap.js +7 -1
- package/dist/_pkgs/affine-block-paragraph/translations.d.ts +31 -0
- package/dist/_pkgs/affine-block-paragraph/translations.js +44 -0
- package/dist/_pkgs/affine-block-paragraph/view.js +6 -1
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +1 -8
- package/dist/_pkgs/affine-block-root/commands/tag-commands.js +1 -8
- package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +3 -1
- package/dist/_pkgs/affine-block-root/configs/toolbar.js +6 -3
- package/dist/_pkgs/affine-block-root/edgeless/clipboard/utils.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/alignment.js +26 -4
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/misc.d.ts +14 -0
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/misc.js +10 -3
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.d.ts +8 -0
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +9 -0
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.d.ts +9 -0
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +66 -6
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.d.ts +22 -0
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +46 -0
- package/dist/_pkgs/affine-block-root/edgeless/utils/consts.d.ts +0 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/consts.js +0 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/pinch-zoom.d.ts +21 -0
- package/dist/_pkgs/affine-block-root/edgeless/utils/pinch-zoom.js +24 -0
- package/dist/_pkgs/affine-block-root/edgeless/utils/query.js +8 -0
- package/dist/_pkgs/affine-block-root/keyboard/keymap.js +1 -16
- package/dist/_pkgs/affine-block-root/translations.d.ts +61 -0
- package/dist/_pkgs/affine-block-root/translations.js +172 -0
- package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
- package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
- package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +3 -1
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/command.d.ts +23 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/command.js +89 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/index.d.ts +7 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/index.js +5 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/render.d.ts +41 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/render.js +70 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/svg-context.d.ts +49 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/svg-context.js +257 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/tagged-path.d.ts +16 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/tagged-path.js +24 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/toolbar.d.ts +24 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-svg/toolbar.js +66 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +5 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +5 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +66 -4
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +272 -23
- package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +58 -8
- package/dist/_pkgs/affine-block-surface/extensions/interchange.js +27 -0
- package/dist/_pkgs/affine-block-surface/extensions/legend-toolbar.d.ts +81 -0
- package/dist/_pkgs/affine-block-surface/extensions/legend-toolbar.js +81 -0
- package/dist/_pkgs/affine-block-surface/extensions/legend.d.ts +136 -0
- package/dist/_pkgs/affine-block-surface/extensions/legend.js +439 -0
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +2 -2
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +5 -2
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +17 -3
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +38 -15
- package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +61 -1
- package/dist/_pkgs/affine-block-surface/extensions/reading.js +85 -39
- package/dist/_pkgs/affine-block-surface/extensions/record-action.d.ts +66 -0
- package/dist/_pkgs/affine-block-surface/extensions/record-action.js +145 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.d.ts +48 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.js +120 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +36 -23
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +5 -5
- package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +253 -28
- package/dist/_pkgs/affine-block-surface/extensions/validation.js +489 -41
- package/dist/_pkgs/affine-block-surface/framework-background/background-view.d.ts +115 -0
- package/dist/_pkgs/affine-block-surface/framework-background/background-view.js +185 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.js +1 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +16 -1
- package/dist/_pkgs/affine-block-surface/framework-background/labels.js +31 -21
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +29 -5
- package/dist/_pkgs/affine-block-surface/framework-background/stacking.d.ts +6 -4
- package/dist/_pkgs/affine-block-surface/framework-background/stacking.js +56 -8
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +12 -0
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +15 -0
- package/dist/_pkgs/affine-block-surface/view.js +8 -1
- package/dist/_pkgs/affine-block-surface-ref/components/placeholder.d.ts +2 -1
- package/dist/_pkgs/affine-block-surface-ref/components/placeholder.js +21 -6
- package/dist/_pkgs/affine-block-surface-ref/configs/slash-menu.js +24 -7
- package/dist/_pkgs/affine-block-surface-ref/configs/tooltips.js +2 -2
- package/dist/_pkgs/affine-block-surface-ref/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-surface-ref/index.js +1 -0
- package/dist/_pkgs/affine-block-surface-ref/surface-ref-block-edgeless.js +1 -0
- package/dist/_pkgs/affine-block-surface-ref/surface-ref-block.js +1 -0
- package/dist/_pkgs/affine-block-surface-ref/translations.d.ts +83 -0
- package/dist/_pkgs/affine-block-surface-ref/translations.js +175 -0
- package/dist/_pkgs/affine-block-surface-ref/utils.d.ts +8 -1
- package/dist/_pkgs/affine-block-surface-ref/utils.js +12 -4
- package/dist/_pkgs/affine-components/caption/block-caption.js +3 -1
- package/dist/_pkgs/affine-components/card-style-dropdown-menu/dropdown-menu.js +4 -3
- package/dist/_pkgs/affine-components/citation/citation.d.ts +2 -0
- package/dist/_pkgs/affine-components/citation/citation.js +19 -3
- package/dist/_pkgs/affine-components/color-picker/button.d.ts +62 -1
- package/dist/_pkgs/affine-components/color-picker/button.js +182 -23
- package/dist/_pkgs/affine-components/color-picker/color-panel.d.ts +8 -0
- package/dist/_pkgs/affine-components/color-picker/color-panel.js +17 -2
- package/dist/_pkgs/affine-components/color-picker/color-picker.d.ts +4 -0
- package/dist/_pkgs/affine-components/color-picker/color-picker.js +27 -3
- package/dist/_pkgs/affine-components/color-picker/framework-palette.d.ts +106 -0
- package/dist/_pkgs/affine-components/color-picker/framework-palette.js +177 -0
- package/dist/_pkgs/affine-components/color-picker/index.d.ts +2 -0
- package/dist/_pkgs/affine-components/color-picker/index.js +2 -0
- package/dist/_pkgs/affine-components/color-picker/palette-carousel.d.ts +85 -0
- package/dist/_pkgs/affine-components/color-picker/palette-carousel.js +440 -0
- package/dist/_pkgs/affine-components/color-picker/types.d.ts +21 -0
- package/dist/_pkgs/affine-components/color-picker/utils.d.ts +28 -2
- package/dist/_pkgs/affine-components/color-picker/utils.js +32 -0
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.d.ts +3 -0
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +34 -7
- package/dist/_pkgs/affine-components/edgeless-line-styles-panel/line-styles-panel.d.ts +2 -0
- package/dist/_pkgs/affine-components/edgeless-line-styles-panel/line-styles-panel.js +21 -2
- package/dist/_pkgs/affine-components/edgeless-line-width-panel/line-width-panel.d.ts +2 -0
- package/dist/_pkgs/affine-components/edgeless-line-width-panel/line-width-panel.js +18 -2
- package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.d.ts +33 -1
- package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +211 -56
- package/dist/_pkgs/affine-components/embed-card-modal/embed-card-create-modal.js +5 -4
- package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +11 -9
- package/dist/_pkgs/affine-components/filterable-list/index.d.ts +2 -0
- package/dist/_pkgs/affine-components/filterable-list/index.js +17 -2
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/dropdown-menu.d.ts +3 -0
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/dropdown-menu.js +40 -7
- package/dist/_pkgs/affine-components/icon-button/index.d.ts +1 -1
- package/dist/_pkgs/affine-components/icon-button/index.js +1 -1
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +6 -0
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +42 -7
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +4 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +35 -5
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +2 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +22 -5
- package/dist/_pkgs/affine-components/linked-doc-title/doc-title.d.ts +2 -0
- package/dist/_pkgs/affine-components/linked-doc-title/doc-title.js +16 -3
- package/dist/_pkgs/affine-components/notification/linked-doc.js +5 -4
- package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.js +7 -4
- package/dist/_pkgs/affine-components/resource/resource.d.ts +16 -1
- package/dist/_pkgs/affine-components/resource/resource.js +48 -20
- package/dist/_pkgs/affine-components/resource/status.d.ts +2 -0
- package/dist/_pkgs/affine-components/resource/status.js +27 -12
- package/dist/_pkgs/affine-components/size-dropdown-menu/dropdown-menu.d.ts +4 -1
- package/dist/_pkgs/affine-components/size-dropdown-menu/dropdown-menu.js +23 -4
- package/dist/_pkgs/affine-components/toast/toast.d.ts +1 -1
- package/dist/_pkgs/affine-components/toast/toast.js +1 -1
- package/dist/_pkgs/affine-components/toggle-button/toggle-button.d.ts +3 -0
- package/dist/_pkgs/affine-components/toggle-button/toggle-button.js +18 -3
- package/dist/_pkgs/affine-components/toolbar/icon-button.d.ts +2 -0
- package/dist/_pkgs/affine-components/toolbar/icon-button.js +18 -2
- package/dist/_pkgs/affine-components/toolbar/tooltip.d.ts +3 -3
- package/dist/_pkgs/affine-components/toolbar/tooltip.js +3 -3
- package/dist/_pkgs/affine-components/translations.d.ts +149 -0
- package/dist/_pkgs/affine-components/translations.js +495 -0
- package/dist/_pkgs/affine-foundation/view.js +2 -1
- package/dist/_pkgs/affine-fragment-adapter-panel/adapter-panel.d.ts +3 -0
- package/dist/_pkgs/affine-fragment-adapter-panel/adapter-panel.js +12 -1
- package/dist/_pkgs/affine-fragment-adapter-panel/body/adapter-panel-body.js +4 -3
- package/dist/_pkgs/affine-fragment-adapter-panel/config.d.ts +13 -0
- package/dist/_pkgs/affine-fragment-adapter-panel/config.js +18 -4
- package/dist/_pkgs/affine-fragment-adapter-panel/header/adapter-menu.js +2 -2
- package/dist/_pkgs/affine-fragment-adapter-panel/header/adapter-panel-header.js +2 -2
- package/dist/_pkgs/affine-fragment-adapter-panel/translations.d.ts +24 -0
- package/dist/_pkgs/affine-fragment-adapter-panel/translations.js +37 -0
- package/dist/_pkgs/affine-fragment-doc-title/doc-title.d.ts +1 -0
- package/dist/_pkgs/affine-fragment-doc-title/doc-title.js +9 -1
- package/dist/_pkgs/affine-fragment-doc-title/translations.d.ts +13 -0
- package/dist/_pkgs/affine-fragment-doc-title/translations.js +17 -0
- package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +3 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +10 -4
- package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +18 -6
- package/dist/_pkgs/affine-fragment-frame-panel/translations.d.ts +16 -0
- package/dist/_pkgs/affine-fragment-frame-panel/translations.js +44 -0
- package/dist/_pkgs/affine-fragment-outline/body/outline-notice.js +10 -4
- package/dist/_pkgs/affine-fragment-outline/body/outline-panel-body.js +6 -3
- package/dist/_pkgs/affine-fragment-outline/card/outline-card.js +13 -6
- package/dist/_pkgs/affine-fragment-outline/card/outline-preview.d.ts +1 -0
- package/dist/_pkgs/affine-fragment-outline/card/outline-preview.js +16 -9
- package/dist/_pkgs/affine-fragment-outline/config.d.ts +1 -20
- package/dist/_pkgs/affine-fragment-outline/config.js +8 -23
- package/dist/_pkgs/affine-fragment-outline/header/outline-panel-header.js +10 -3
- package/dist/_pkgs/affine-fragment-outline/header/outline-setting-menu.js +9 -2
- package/dist/_pkgs/affine-fragment-outline/outline-viewer.js +6 -3
- package/dist/_pkgs/affine-fragment-outline/translations.d.ts +54 -0
- package/dist/_pkgs/affine-fragment-outline/translations.js +110 -0
- package/dist/_pkgs/affine-gfx-brush/element-renderer.js +2 -2
- package/dist/_pkgs/affine-gfx-brush/toolbar/components/eraser/eraser-tool-button.js +3 -2
- package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/consts.d.ts +3 -0
- package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/consts.js +3 -0
- package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-menu.js +5 -4
- package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +3 -2
- package/dist/_pkgs/affine-gfx-brush/toolbar/configs/brush.js +10 -3
- package/dist/_pkgs/affine-gfx-brush/toolbar/configs/highlighter.js +10 -3
- package/dist/_pkgs/affine-gfx-brush/translations.d.ts +17 -0
- package/dist/_pkgs/affine-gfx-brush/translations.js +30 -0
- package/dist/_pkgs/affine-gfx-connector/connector-manager.d.ts +9 -1
- package/dist/_pkgs/affine-gfx-connector/connector-manager.js +61 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +8 -1
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +7 -1
- package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.d.ts +7 -1
- package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +87 -17
- package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +78 -17
- package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.d.ts +24 -2
- package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +31 -8
- package/dist/_pkgs/affine-gfx-connector/text/edgeless-connector-label-editor.d.ts +124 -3
- package/dist/_pkgs/affine-gfx-connector/text/edgeless-connector-label-editor.js +219 -56
- package/dist/_pkgs/affine-gfx-connector/text/text.d.ts +13 -4
- package/dist/_pkgs/affine-gfx-connector/text/text.js +13 -44
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +60 -1
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +95 -13
- package/dist/_pkgs/affine-gfx-connector/toolbar/connector-dense-menu.js +7 -5
- package/dist/_pkgs/affine-gfx-connector/toolbar/connector-menu.js +8 -6
- package/dist/_pkgs/affine-gfx-connector/toolbar/connector-tool-button.js +4 -3
- package/dist/_pkgs/affine-gfx-connector/toolbar/hollow-endpoint-icons.d.ts +8 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/hollow-endpoint-icons.js +118 -0
- package/dist/_pkgs/affine-gfx-connector/translations.d.ts +32 -0
- package/dist/_pkgs/affine-gfx-connector/translations.js +79 -0
- package/dist/_pkgs/affine-gfx-connector/view/view.d.ts +37 -1
- package/dist/_pkgs/affine-gfx-connector/view/view.js +97 -8
- package/dist/_pkgs/affine-gfx-group/command/group-api.js +6 -1
- package/dist/_pkgs/affine-gfx-group/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-group/index.js +1 -0
- package/dist/_pkgs/affine-gfx-group/store.js +0 -2
- package/dist/_pkgs/affine-gfx-group/toolbar/config.d.ts +6 -2
- package/dist/_pkgs/affine-gfx-group/toolbar/config.js +9 -4
- package/dist/_pkgs/affine-gfx-group/translations.d.ts +23 -0
- package/dist/_pkgs/affine-gfx-group/translations.js +29 -0
- package/dist/_pkgs/affine-gfx-link/toolbar/undo-dense-menu.js +2 -1
- package/dist/_pkgs/affine-gfx-link/toolbar/undo-tool-button.js +2 -1
- package/dist/_pkgs/affine-gfx-mindmap/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-mindmap/index.js +1 -0
- package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +628 -577
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/basket-elements.js +7 -3
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/config.js +9 -1
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-importing-placeholder.d.ts +4 -0
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-importing-placeholder.js +70 -7
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +8 -5
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +4 -2
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/senior-tool.js +7 -2
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/utils/import-mindmap.d.ts +2 -1
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/utils/import-mindmap.js +16 -8
- package/dist/_pkgs/affine-gfx-mindmap/translations.d.ts +84 -0
- package/dist/_pkgs/affine-gfx-mindmap/translations.js +171 -0
- package/dist/_pkgs/affine-gfx-note/components/note-display-mode-panel.d.ts +8 -0
- package/dist/_pkgs/affine-gfx-note/components/note-display-mode-panel.js +24 -9
- package/dist/_pkgs/affine-gfx-note/components/note-shadow-panel.d.ts +9 -0
- package/dist/_pkgs/affine-gfx-note/components/note-shadow-panel.js +28 -8
- package/dist/_pkgs/affine-gfx-note/toolbar/note-menu-config.d.ts +2 -1
- package/dist/_pkgs/affine-gfx-note/toolbar/note-menu-config.js +42 -73
- package/dist/_pkgs/affine-gfx-note/toolbar/note-menu.js +21 -17
- package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +3 -2
- package/dist/_pkgs/affine-gfx-note/toolbar/note-tool-button.js +3 -1
- package/dist/_pkgs/affine-gfx-note/toolbar/senior-tool.js +3 -1
- package/dist/_pkgs/affine-gfx-note/translations.d.ts +27 -0
- package/dist/_pkgs/affine-gfx-note/translations.js +59 -0
- package/dist/_pkgs/affine-gfx-pointer/quick-tool/default-tool-button.js +10 -2
- package/dist/_pkgs/affine-gfx-pointer/translations.d.ts +9 -0
- package/dist/_pkgs/affine-gfx-pointer/translations.js +17 -0
- package/dist/_pkgs/affine-gfx-shape/components/shape-panel.d.ts +4 -0
- package/dist/_pkgs/affine-gfx-shape/components/shape-panel.js +17 -3
- package/dist/_pkgs/affine-gfx-shape/components/shape-style-panel.d.ts +4 -0
- package/dist/_pkgs/affine-gfx-shape/components/shape-style-panel.js +23 -5
- package/dist/_pkgs/affine-gfx-shape/draggable/shape-menu.d.ts +0 -1
- package/dist/_pkgs/affine-gfx-shape/draggable/shape-menu.js +6 -46
- package/dist/_pkgs/affine-gfx-shape/draggable/shape-tool-button.js +3 -1
- package/dist/_pkgs/affine-gfx-shape/element-renderer/highlighter.js +2 -2
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.d.ts +6 -0
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +30 -1
- package/dist/_pkgs/affine-gfx-shape/polygon-tool.d.ts +20 -1
- package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +9 -1
- package/dist/_pkgs/affine-gfx-shape/toolbar/config.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-shape/toolbar/config.js +35 -9
- package/dist/_pkgs/affine-gfx-shape/toolbar/palette-color-action.js +11 -1
- package/dist/_pkgs/affine-gfx-shape/toolbar/senior-tool.js +2 -0
- package/dist/_pkgs/affine-gfx-shape/toolbar/shape-menu-config.d.ts +3 -0
- package/dist/_pkgs/affine-gfx-shape/toolbar/shape-menu-config.js +7 -0
- package/dist/_pkgs/affine-gfx-shape/translations.d.ts +37 -0
- package/dist/_pkgs/affine-gfx-shape/translations.js +93 -0
- package/dist/_pkgs/affine-gfx-template/builtin/other.js +70 -42
- package/dist/_pkgs/affine-gfx-template/contribute.js +8 -1
- package/dist/_pkgs/affine-gfx-template/index.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-template/index.js +2 -0
- package/dist/_pkgs/affine-gfx-template/snapshot-from-action.d.ts +6 -1
- package/dist/_pkgs/affine-gfx-template/snapshot-from-action.js +43 -120
- package/dist/_pkgs/affine-gfx-template/toolbar/builtin-templates.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/builtin-templates.js +12 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/resolve-name.d.ts +25 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/resolve-name.js +36 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/senior-tool.js +3 -1
- package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +30 -8
- package/dist/_pkgs/affine-gfx-template/toolbar/template-type.d.ts +41 -0
- package/dist/_pkgs/affine-gfx-template/translations.d.ts +71 -0
- package/dist/_pkgs/affine-gfx-template/translations.js +209 -0
- package/dist/_pkgs/affine-gfx-text/dblclick-add-edgeless-text.d.ts +13 -1
- package/dist/_pkgs/affine-gfx-text/dblclick-add-edgeless-text.js +19 -4
- package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.d.ts +41 -0
- package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +60 -4
- package/dist/_pkgs/affine-gfx-text/toolbar/actions.d.ts +9 -2
- package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +33 -10
- package/dist/_pkgs/affine-gfx-text/toolbar/text-menu.js +1 -0
- package/dist/_pkgs/affine-gfx-text/translations.d.ts +32 -0
- package/dist/_pkgs/affine-gfx-text/translations.js +65 -0
- package/dist/_pkgs/affine-inline-footnote/footnote-node/footnote-popup.js +8 -2
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-editor-menu.js +5 -2
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +7 -2
- package/dist/_pkgs/affine-inline-latex/translations.d.ts +13 -0
- package/dist/_pkgs/affine-inline-latex/translations.js +16 -0
- package/dist/_pkgs/affine-inline-link/link-node/configs/toolbar.d.ts +3 -3
- package/dist/_pkgs/affine-inline-link/link-node/configs/toolbar.js +6 -5
- package/dist/_pkgs/affine-inline-link/link-node/link-popup/link-popup.js +11 -5
- package/dist/_pkgs/affine-inline-link/translations.d.ts +23 -0
- package/dist/_pkgs/affine-inline-link/translations.js +44 -0
- package/dist/_pkgs/affine-inline-mention/affine-mention.js +11 -5
- package/dist/_pkgs/affine-inline-mention/translations.d.ts +16 -0
- package/dist/_pkgs/affine-inline-mention/translations.js +29 -0
- package/dist/_pkgs/affine-inline-preset/command/config.d.ts +3 -0
- package/dist/_pkgs/affine-inline-preset/command/config.js +8 -0
- package/dist/_pkgs/affine-inline-preset/markdown.js +5 -1
- package/dist/_pkgs/affine-inline-preset/translations.d.ts +25 -0
- package/dist/_pkgs/affine-inline-preset/translations.js +28 -0
- package/dist/_pkgs/affine-inline-reference/reference-node/configs/toolbar.js +2 -2
- package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +3 -3
- package/dist/_pkgs/affine-inline-reference/reference-node/reference-popup/reference-popup.js +8 -6
- package/dist/_pkgs/affine-inline-reference/translations.d.ts +8 -0
- package/dist/_pkgs/affine-inline-reference/translations.js +13 -0
- package/dist/_pkgs/affine-model/consts/connector.d.ts +28 -2
- package/dist/_pkgs/affine-model/consts/connector.js +26 -0
- package/dist/_pkgs/affine-model/elements/bpmn/pool.js +1 -1
- package/dist/_pkgs/affine-model/elements/brush/brush.js +1 -1
- package/dist/_pkgs/affine-model/elements/c4/board.js +1 -1
- package/dist/_pkgs/affine-model/elements/c4/boundary.js +1 -1
- package/dist/_pkgs/affine-model/elements/connector/connector.d.ts +135 -0
- package/dist/_pkgs/affine-model/elements/connector/connector.js +246 -5
- package/dist/_pkgs/affine-model/elements/connector/end-label.d.ts +83 -0
- package/dist/_pkgs/affine-model/elements/connector/end-label.js +119 -0
- package/dist/_pkgs/affine-model/elements/connector/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/connector/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/context-map/context-map.js +1 -1
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +28 -0
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +129 -2
- package/dist/_pkgs/affine-model/elements/cynefin/cynefin.d.ts +8 -0
- package/dist/_pkgs/affine-model/elements/cynefin/cynefin.js +45 -2
- package/dist/_pkgs/affine-model/elements/edgy/board.js +1 -1
- package/dist/_pkgs/affine-model/elements/edgy/facets.js +1 -1
- package/dist/_pkgs/affine-model/elements/estuarine/estuarine.d.ts +6 -0
- package/dist/_pkgs/affine-model/elements/estuarine/estuarine.js +36 -2
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +18 -7
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +23 -8
- package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +16 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.js +18 -0
- package/dist/_pkgs/affine-model/elements/highlighter/highlighter.js +1 -1
- package/dist/_pkgs/affine-model/elements/index.d.ts +8 -0
- package/dist/_pkgs/affine-model/elements/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/shape/shape.js +1 -1
- package/dist/_pkgs/affine-model/elements/text/text.js +1 -1
- package/dist/_pkgs/affine-model/elements/uml/band.d.ts +39 -0
- package/dist/_pkgs/affine-model/elements/uml/band.js +31 -0
- package/dist/_pkgs/affine-model/elements/uml/diagram.d.ts +158 -0
- package/dist/_pkgs/affine-model/elements/uml/diagram.js +229 -0
- package/dist/_pkgs/affine-model/elements/uml/fragment.d.ts +161 -0
- package/dist/_pkgs/affine-model/elements/uml/fragment.js +205 -0
- package/dist/_pkgs/affine-model/elements/uml/index.d.ts +8 -0
- package/dist/_pkgs/affine-model/elements/uml/index.js +8 -0
- package/dist/_pkgs/affine-model/elements/uml/lifeline.d.ts +77 -0
- package/dist/_pkgs/affine-model/elements/uml/lifeline.js +89 -0
- package/dist/_pkgs/affine-model/elements/uml/node.d.ts +142 -0
- package/dist/_pkgs/affine-model/elements/uml/node.js +190 -0
- package/dist/_pkgs/affine-model/elements/uml/partition.d.ts +106 -0
- package/dist/_pkgs/affine-model/elements/uml/partition.js +172 -0
- package/dist/_pkgs/affine-model/elements/uml/region.d.ts +75 -0
- package/dist/_pkgs/affine-model/elements/uml/region.js +150 -0
- package/dist/_pkgs/affine-model/elements/uml/subject.d.ts +37 -0
- package/dist/_pkgs/affine-model/elements/uml/subject.js +108 -0
- package/dist/_pkgs/affine-model/elements/wardley/wardley.js +1 -1
- package/dist/_pkgs/affine-rich-text/conversion.d.ts +13 -0
- package/dist/_pkgs/affine-rich-text/conversion.js +27 -0
- package/dist/_pkgs/affine-shared/adapters/clipboard/clipboard.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/clipboard/utils.d.ts +2 -1
- package/dist/_pkgs/affine-shared/adapters/clipboard/utils.js +6 -3
- package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -2
- package/dist/_pkgs/affine-shared/adapters/mix-text.js +5 -2
- package/dist/_pkgs/affine-shared/adapters/plain-text/plain-text.js +5 -2
- 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/adapters/utils/wording.d.ts +9 -0
- package/dist/_pkgs/affine-shared/adapters/utils/wording.js +12 -0
- package/dist/_pkgs/affine-shared/services/comment-service/utils.js +2 -0
- package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +6 -3
- package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.d.ts +1 -0
- package/dist/_pkgs/affine-shared/services/font-loader/config.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/font-loader/config.js +43 -0
- package/dist/_pkgs/affine-shared/services/notification-service.js +18 -1
- package/dist/_pkgs/affine-shared/services/open-doc-config.d.ts +0 -1
- package/dist/_pkgs/affine-shared/services/open-doc-config.js +0 -2
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +1 -9
- package/dist/_pkgs/affine-shared/services/telemetry-service/document-damage-watcher.d.ts +53 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/document-damage-watcher.js +95 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/index.js +1 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +26 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
- package/dist/_pkgs/affine-shared/services/toolbar-service/command-action.d.ts +34 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/command-action.js +63 -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/translation-service/chrome.d.ts +432 -0
- package/dist/_pkgs/affine-shared/services/translation-service/chrome.js +1045 -3
- package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +40 -2
- package/dist/_pkgs/affine-shared/services/translation-service/index.js +44 -3
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +83 -2
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +92 -0
- package/dist/_pkgs/affine-shared/styles/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/styles/index.js +1 -0
- package/dist/_pkgs/affine-shared/styles/motion.d.ts +14 -0
- package/dist/_pkgs/affine-shared/styles/motion.js +38 -0
- package/dist/_pkgs/affine-shared/utils/event.d.ts +10 -0
- package/dist/_pkgs/affine-shared/utils/event.js +20 -0
- package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +16 -0
- package/dist/_pkgs/affine-shared/utils/file/filesys.js +25 -0
- package/dist/_pkgs/affine-shared/utils/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/utils/index.js +1 -0
- package/dist/_pkgs/affine-shared/utils/link-preview-refresh.d.ts +12 -0
- package/dist/_pkgs/affine-shared/utils/link-preview-refresh.js +13 -0
- package/dist/_pkgs/affine-widget-drag-handle/components/edgeless-preview/preview.d.ts +4 -0
- package/dist/_pkgs/affine-widget-drag-handle/components/edgeless-preview/preview.js +21 -8
- package/dist/_pkgs/affine-widget-drag-handle/helpers/preview-helper.js +1 -0
- package/dist/_pkgs/affine-widget-drag-handle/translations.d.ts +14 -0
- package/dist/_pkgs/affine-widget-drag-handle/translations.js +35 -0
- package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +4 -3
- package/dist/_pkgs/affine-widget-edgeless-auto-connect/translations.d.ts +6 -0
- package/dist/_pkgs/affine-widget-edgeless-auto-connect/translations.js +14 -0
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +8 -5
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +3 -2
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +3 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/translations.d.ts +17 -0
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/translations.js +30 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/button/tool-icon-button.d.ts +4 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/button/tool-icon-button.js +18 -2
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +12 -4
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +29 -6
- package/dist/_pkgs/affine-widget-edgeless-toolbar/config/consts.d.ts +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/config/consts.js +3 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/config/types.d.ts +18 -1
- package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.d.ts +8 -3
- package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.js +38 -18
- package/dist/_pkgs/affine-widget-edgeless-toolbar/create-popper.js +13 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +2 -1
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +80 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +270 -81
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/senior-menu-selection.d.ts +15 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/senior-menu-selection.js +15 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-weight-and-style-panel.d.ts +8 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-weight-and-style-panel.js +38 -8
- package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-ghost-overlay.d.ts +42 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-ghost-overlay.js +100 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-placement-tool.d.ts +100 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-placement-tool.js +274 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/index.d.ts +3 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/index.js +3 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/translate-created.d.ts +25 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/translate-created.js +67 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.d.ts +15 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.js +20 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +5 -0
- package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/translations.d.ts +7 -0
- package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/translations.js +23 -0
- package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/zoom-bar-toggle-button.js +3 -1
- package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/zoom-toolbar.js +5 -3
- package/dist/_pkgs/affine-widget-linked-doc/config.js +15 -10
- package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.d.ts +12 -1
- package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +27 -18
- package/dist/_pkgs/affine-widget-linked-doc/import-doc/index.d.ts +4 -1
- package/dist/_pkgs/affine-widget-linked-doc/import-doc/index.js +2 -2
- package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +4 -1
- package/dist/_pkgs/affine-widget-linked-doc/mobile-linked-doc-menu.js +6 -2
- package/dist/_pkgs/affine-widget-linked-doc/transformers/html.js +3 -2
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +3 -2
- package/dist/_pkgs/affine-widget-linked-doc/translations.d.ts +53 -0
- package/dist/_pkgs/affine-widget-linked-doc/translations.js +104 -0
- package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +4 -1
- package/dist/_pkgs/affine-widget-remote-selection/translations.d.ts +12 -0
- package/dist/_pkgs/affine-widget-remote-selection/translations.js +12 -0
- package/dist/_pkgs/affine-widget-slash-menu/config.js +15 -0
- package/dist/_pkgs/affine-widget-slash-menu/index.d.ts +1 -0
- package/dist/_pkgs/affine-widget-slash-menu/index.js +1 -0
- package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +30 -15
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/copy.js +1 -1
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/delete.js +2 -2
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/index.js +9 -0
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/move-down.js +2 -2
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/move-up.js +2 -2
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/now.js +3 -3
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/today.js +2 -2
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/tomorrow.js +3 -3
- package/dist/_pkgs/affine-widget-slash-menu/tooltips/yesterday.js +3 -3
- package/dist/_pkgs/affine-widget-slash-menu/translations.d.ts +91 -0
- package/dist/_pkgs/affine-widget-slash-menu/translations.js +175 -0
- package/dist/_pkgs/affine-widget-slash-menu/types.d.ts +18 -0
- package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +20 -1
- package/dist/_pkgs/affine-widget-slash-menu/utils.js +37 -0
- package/dist/_pkgs/affine-widget-toolbar/translations.d.ts +9 -0
- package/dist/_pkgs/affine-widget-toolbar/translations.js +13 -0
- package/dist/_pkgs/affine-widget-toolbar/utils.js +2 -1
- package/dist/_pkgs/global/gfx/xywh.js +7 -0
- package/dist/_pkgs/std/extension/command-registry.d.ts +158 -1
- package/dist/_pkgs/std/extension/command-registry.js +22 -0
- package/dist/_pkgs/std/extension/translation-manifest.d.ts +7 -0
- package/dist/_pkgs/std/gfx/index.d.ts +1 -1
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.d.ts +12 -0
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +20 -1
- package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +10 -0
- package/dist/_pkgs/std/gfx/interactivity/manager.js +12 -0
- package/dist/_pkgs/std/gfx/model/surface/element-model.js +12 -7
- package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +56 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.js +84 -3
- package/dist/_pkgs/std/gfx/view/view.d.ts +11 -2
- package/dist/_pkgs/std/gfx/view/view.js +16 -2
- package/dist/_pkgs/std/translations.d.ts +24 -0
- package/dist/_pkgs/std/translations.js +28 -0
- package/dist/_pkgs/std/view/element/block-component.js +24 -7
- package/dist/commands.d.ts +6 -0
- package/dist/commands.js +8 -1
- package/dist/frameworks.d.ts +9 -0
- package/dist/frameworks.js +19 -0
- package/dist/translations.js +160 -5
- package/package.json +9 -4
- package/dist/_pkgs/affine-gfx-group/group-watcher.d.ts +0 -1
- package/dist/_pkgs/affine-gfx-group/group-watcher.js +0 -20
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { isTouchPadPinchEvent } from '../../../affine-shared/utils/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The class `createSimplePortal` stamps on every portal root it appends to
|
|
4
|
+
* `document.body` — the only thing a popup rendered OUTSIDE the editor host
|
|
5
|
+
* still has in common with the editor that opened it.
|
|
6
|
+
*/
|
|
7
|
+
export const PORTAL_CLASS = 'blocksuite-portal';
|
|
8
|
+
/**
|
|
9
|
+
* The whole decision, readable from the event and the host alone so it can be
|
|
10
|
+
* tested without a live editor.
|
|
11
|
+
*/
|
|
12
|
+
export function pinchZoomAction(event, host) {
|
|
13
|
+
// A plain wheel still belongs to whatever is under the pointer: an
|
|
14
|
+
// overflowing toolbar, a bubble, a panel. Only the zoom gesture is claimed.
|
|
15
|
+
if (!isTouchPadPinchEvent(event))
|
|
16
|
+
return 'ignore';
|
|
17
|
+
const path = event.composedPath();
|
|
18
|
+
if (path.includes(host))
|
|
19
|
+
return 'zoom';
|
|
20
|
+
if (path.some(node => node instanceof Element && node.classList.contains(PORTAL_CLASS))) {
|
|
21
|
+
return 'swallow';
|
|
22
|
+
}
|
|
23
|
+
return 'ignore';
|
|
24
|
+
}
|
|
@@ -43,6 +43,14 @@ export function getCursorMode(edgelessTool) {
|
|
|
43
43
|
return drawingCursor;
|
|
44
44
|
case 'eraser':
|
|
45
45
|
case 'shape':
|
|
46
|
+
// The polygon tool is armed long before it draws anything — the first
|
|
47
|
+
// click only places a corner — so the cursor is the only thing that says
|
|
48
|
+
// the next click lands on the canvas rather than selecting.
|
|
49
|
+
case 'polygon':
|
|
50
|
+
// An armed framework artefact: the ghost says WHAT lands, the crosshair
|
|
51
|
+
// says WHERE — and it is all there is for an artefact with nothing drawable
|
|
52
|
+
// to preview (a lone connector).
|
|
53
|
+
case 'artefact-placement':
|
|
46
54
|
case 'connector':
|
|
47
55
|
case 'frame':
|
|
48
56
|
case 'affine:note':
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
+
import { isNativeFocusableTarget } from '../../affine-shared/utils/index.js';
|
|
1
2
|
import { KeymapExtension } from '../../std/index.js';
|
|
2
|
-
const NATIVE_FOCUSABLE_SELECTOR = 'button, a[href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
|
|
3
|
-
/**
|
|
4
|
-
* The editor host swallows Tab and Shift-Tab so that indentation stays under
|
|
5
|
-
* the control of the block-scoped handlers. That would however trap the focus
|
|
6
|
-
* on the native controls the editor renders (the collapse button of headings
|
|
7
|
-
* and lists, for instance), which then could neither be reached nor left with
|
|
8
|
-
* the keyboard. When the event originates from such a control — and not from
|
|
9
|
-
* editable text — the native tabbing behaviour is let through.
|
|
10
|
-
*/
|
|
11
|
-
const isNativeFocusableTarget = (target) => {
|
|
12
|
-
if (!(target instanceof Element))
|
|
13
|
-
return false;
|
|
14
|
-
if (target instanceof HTMLElement && target.isContentEditable)
|
|
15
|
-
return false;
|
|
16
|
-
return !!target.closest(NATIVE_FOCUSABLE_SELECTOR);
|
|
17
|
-
};
|
|
18
3
|
export const fallbackKeymap = KeymapExtension(() => {
|
|
19
4
|
return {
|
|
20
5
|
Tab: ctx => {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type ChromeWording } from '../affine-shared/services/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* This package's own wordings, joined into `PACKAGE_WORDINGS` /
|
|
4
|
+
* `PACKAGE_SEED_WORDINGS` in `@labre/affine/translations` — see that file and
|
|
5
|
+
* `packages/affine/shared/src/services/translation-service/README.md`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ROOT_TOOLBAR_CONVERSIONS_ARIA: ChromeWording;
|
|
8
|
+
export declare const ROOT_TOOLBAR_TURN_INTO: ChromeWording;
|
|
9
|
+
export declare const ROOT_TOOLBAR_CREATE_TABLE: ChromeWording;
|
|
10
|
+
/**
|
|
11
|
+
* An alias (L7 dedupe): the same Title Case word as
|
|
12
|
+
* {@link TOOLBAR_CREATE_LINKED_DOC_TITLE}, distinct from the shared
|
|
13
|
+
* sentence-case `TOOLBAR_CREATE_LINKED_DOC` chrome wording
|
|
14
|
+
* (`com.labre.toolbar.create-linked-doc`, "Create linked doc").
|
|
15
|
+
*/
|
|
16
|
+
export declare const ROOT_TOOLBAR_CREATE_LINKED_DOC: ChromeWording;
|
|
17
|
+
export declare const ROOT_ALIGNMENT_MENU_ARIA: ChromeWording;
|
|
18
|
+
export declare const ROOT_ALIGN_LEFT: ChromeWording;
|
|
19
|
+
export declare const ROOT_ALIGN_HORIZONTALLY: ChromeWording;
|
|
20
|
+
export declare const ROOT_ALIGN_RIGHT: ChromeWording;
|
|
21
|
+
export declare const ROOT_DISTRIBUTE_HORIZONTALLY: ChromeWording;
|
|
22
|
+
export declare const ROOT_ALIGN_TOP: ChromeWording;
|
|
23
|
+
export declare const ROOT_ALIGN_VERTICALLY: ChromeWording;
|
|
24
|
+
export declare const ROOT_ALIGN_BOTTOM: ChromeWording;
|
|
25
|
+
export declare const ROOT_DISTRIBUTE_VERTICALLY: ChromeWording;
|
|
26
|
+
export declare const ROOT_AUTO_ARRANGE: ChromeWording;
|
|
27
|
+
export declare const ROOT_RESIZE_AND_ALIGN: ChromeWording;
|
|
28
|
+
export declare const ROOT_TOOLBAR_RELEASE_FROM_GROUP: ChromeWording;
|
|
29
|
+
export declare const ROOT_TOOLBAR_FRAME: ChromeWording;
|
|
30
|
+
export declare const ROOT_TOOLBAR_GROUP: ChromeWording;
|
|
31
|
+
export declare const ROOT_TOOLBAR_ALIGN_OBJECTS: ChromeWording;
|
|
32
|
+
export declare const ROOT_TOOLBAR_CLICK_TO_UNLOCK: ChromeWording;
|
|
33
|
+
export declare const ROOT_TOOLBAR_FRAME_SECTION: ChromeWording;
|
|
34
|
+
export declare const ROOT_TOOLBAR_GROUP_SECTION: ChromeWording;
|
|
35
|
+
export declare const ROOT_TOOLBAR_BRING_FORWARD: ChromeWording;
|
|
36
|
+
export declare const ROOT_TOOLBAR_SEND_BACKWARD: ChromeWording;
|
|
37
|
+
export declare const ROOT_TOOLBAR_RELOAD: ChromeWording;
|
|
38
|
+
export declare const ROOT_TOOLBAR_TURN_INTO_LINKED_DOC: ChromeWording;
|
|
39
|
+
export declare const ROOT_TOOLBAR_EDIT_LINK: ChromeWording;
|
|
40
|
+
export declare const ROOT_TOOLBAR_REMOVE_LINK: ChromeWording;
|
|
41
|
+
export declare const ROOT_TOAST_ZOOM_TO_SELECTION: ChromeWording;
|
|
42
|
+
/**
|
|
43
|
+
* The Tab/Enter mindmap shortcuts' seed for a freshly added node — the same
|
|
44
|
+
* word `MindmapElementModel.addNode`'s own default falls back to (that
|
|
45
|
+
* default is model/red-zone, left untouched: the creation site now passes
|
|
46
|
+
* this text explicitly instead of relying on it). Declared here rather than
|
|
47
|
+
* in `@labre/affine-gfx-mindmap` because that package's own translations
|
|
48
|
+
* table does not carry this key yet (see that lot's own translations.ts,
|
|
49
|
+
* owned by a different lot — imported, never edited, per this lot's brief).
|
|
50
|
+
*/
|
|
51
|
+
export declare const ROOT_MINDMAP_SEED_NEW_NODE: ChromeWording;
|
|
52
|
+
/**
|
|
53
|
+
* This package's own CHROME wordings — L7 dedupe aliased
|
|
54
|
+
* `ROOT_TOOLBAR_CREATE_LINKED_DOC`, `ROOT_TOOLBAR_FRAME`, `ROOT_TOOLBAR_RELOAD`
|
|
55
|
+
* and `ROOT_TOOLBAR_REMOVE_LINK` to `chrome.ts` wordings — not listed again
|
|
56
|
+
* here, same rule the note/slash-menu packages' own chrome aliases already
|
|
57
|
+
* follow.
|
|
58
|
+
*/
|
|
59
|
+
export declare const ROOT_CHROME_WORDINGS: readonly ChromeWording[];
|
|
60
|
+
/** This package's own seed, joined into `PACKAGE_SEED_WORDINGS`. */
|
|
61
|
+
export declare const ROOT_SEED_WORDINGS: readonly ChromeWording[];
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { TOOL_NAME_FRAME, TOOLBAR_CREATE_LINKED_DOC_TITLE, TOOLBAR_RELOAD, TOOLBAR_REMOVE_LINK, } from '../affine-shared/services/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* This package's own wordings, joined into `PACKAGE_WORDINGS` /
|
|
4
|
+
* `PACKAGE_SEED_WORDINGS` in `@labre/affine/translations` — see that file and
|
|
5
|
+
* `packages/affine/shared/src/services/translation-service/README.md`.
|
|
6
|
+
*/
|
|
7
|
+
/* ── The block contextual toolbar (`configs/toolbar.ts`) ──────────────── */
|
|
8
|
+
export const ROOT_TOOLBAR_CONVERSIONS_ARIA = [
|
|
9
|
+
'com.labre.root.toolbar.conversions',
|
|
10
|
+
'Conversions',
|
|
11
|
+
];
|
|
12
|
+
export const ROOT_TOOLBAR_TURN_INTO = [
|
|
13
|
+
'com.labre.root.toolbar.turn-into',
|
|
14
|
+
'Turn into',
|
|
15
|
+
];
|
|
16
|
+
export const ROOT_TOOLBAR_CREATE_TABLE = [
|
|
17
|
+
'com.labre.root.toolbar.create-table',
|
|
18
|
+
'Create Table',
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* An alias (L7 dedupe): the same Title Case word as
|
|
22
|
+
* {@link TOOLBAR_CREATE_LINKED_DOC_TITLE}, distinct from the shared
|
|
23
|
+
* sentence-case `TOOLBAR_CREATE_LINKED_DOC` chrome wording
|
|
24
|
+
* (`com.labre.toolbar.create-linked-doc`, "Create linked doc").
|
|
25
|
+
*/
|
|
26
|
+
export const ROOT_TOOLBAR_CREATE_LINKED_DOC = TOOLBAR_CREATE_LINKED_DOC_TITLE;
|
|
27
|
+
/* ── The edgeless alignment menu (`edgeless/configs/toolbar/alignment.ts`) ── */
|
|
28
|
+
export const ROOT_ALIGNMENT_MENU_ARIA = [
|
|
29
|
+
'com.labre.root.toolbar.alignment-menu',
|
|
30
|
+
'alignment-menu',
|
|
31
|
+
];
|
|
32
|
+
export const ROOT_ALIGN_LEFT = [
|
|
33
|
+
'com.labre.root.toolbar.align-left',
|
|
34
|
+
'Align left',
|
|
35
|
+
];
|
|
36
|
+
export const ROOT_ALIGN_HORIZONTALLY = [
|
|
37
|
+
'com.labre.root.toolbar.align-horizontally',
|
|
38
|
+
'Align horizontally',
|
|
39
|
+
];
|
|
40
|
+
export const ROOT_ALIGN_RIGHT = [
|
|
41
|
+
'com.labre.root.toolbar.align-right',
|
|
42
|
+
'Align right',
|
|
43
|
+
];
|
|
44
|
+
export const ROOT_DISTRIBUTE_HORIZONTALLY = [
|
|
45
|
+
'com.labre.root.toolbar.distribute-horizontally',
|
|
46
|
+
'Distribute horizontally',
|
|
47
|
+
];
|
|
48
|
+
export const ROOT_ALIGN_TOP = [
|
|
49
|
+
'com.labre.root.toolbar.align-top',
|
|
50
|
+
'Align top',
|
|
51
|
+
];
|
|
52
|
+
export const ROOT_ALIGN_VERTICALLY = [
|
|
53
|
+
'com.labre.root.toolbar.align-vertically',
|
|
54
|
+
'Align vertically',
|
|
55
|
+
];
|
|
56
|
+
export const ROOT_ALIGN_BOTTOM = [
|
|
57
|
+
'com.labre.root.toolbar.align-bottom',
|
|
58
|
+
'Align bottom',
|
|
59
|
+
];
|
|
60
|
+
export const ROOT_DISTRIBUTE_VERTICALLY = [
|
|
61
|
+
'com.labre.root.toolbar.distribute-vertically',
|
|
62
|
+
'Distribute vertically',
|
|
63
|
+
];
|
|
64
|
+
export const ROOT_AUTO_ARRANGE = [
|
|
65
|
+
'com.labre.root.toolbar.auto-arrange',
|
|
66
|
+
'Auto arrange',
|
|
67
|
+
];
|
|
68
|
+
export const ROOT_RESIZE_AND_ALIGN = [
|
|
69
|
+
'com.labre.root.toolbar.resize-and-align',
|
|
70
|
+
'Resize & Align',
|
|
71
|
+
];
|
|
72
|
+
/* ── The edgeless misc contextual toolbar (`edgeless/configs/toolbar/misc.ts`) ── */
|
|
73
|
+
export const ROOT_TOOLBAR_RELEASE_FROM_GROUP = [
|
|
74
|
+
'com.labre.root.toolbar.release-from-group',
|
|
75
|
+
'Release from group',
|
|
76
|
+
];
|
|
77
|
+
export const ROOT_TOOLBAR_FRAME = TOOL_NAME_FRAME;
|
|
78
|
+
export const ROOT_TOOLBAR_GROUP = [
|
|
79
|
+
'com.labre.root.toolbar.group',
|
|
80
|
+
'Group',
|
|
81
|
+
];
|
|
82
|
+
export const ROOT_TOOLBAR_ALIGN_OBJECTS = [
|
|
83
|
+
'com.labre.root.toolbar.align-objects',
|
|
84
|
+
'Align objects',
|
|
85
|
+
];
|
|
86
|
+
export const ROOT_TOOLBAR_CLICK_TO_UNLOCK = [
|
|
87
|
+
'com.labre.root.toolbar.click-to-unlock',
|
|
88
|
+
'Click to unlock',
|
|
89
|
+
];
|
|
90
|
+
/* ── The edgeless "More" sub-menu (`edgeless/configs/toolbar/more.ts`) ─── */
|
|
91
|
+
export const ROOT_TOOLBAR_FRAME_SECTION = [
|
|
92
|
+
'com.labre.root.toolbar.frame-section',
|
|
93
|
+
'Frame section',
|
|
94
|
+
];
|
|
95
|
+
export const ROOT_TOOLBAR_GROUP_SECTION = [
|
|
96
|
+
'com.labre.root.toolbar.group-section',
|
|
97
|
+
'Group section',
|
|
98
|
+
];
|
|
99
|
+
export const ROOT_TOOLBAR_BRING_FORWARD = [
|
|
100
|
+
'com.labre.root.toolbar.bring-forward',
|
|
101
|
+
'Bring Forward',
|
|
102
|
+
];
|
|
103
|
+
export const ROOT_TOOLBAR_SEND_BACKWARD = [
|
|
104
|
+
'com.labre.root.toolbar.send-backward',
|
|
105
|
+
'Send Backward',
|
|
106
|
+
];
|
|
107
|
+
export const ROOT_TOOLBAR_RELOAD = TOOLBAR_RELOAD;
|
|
108
|
+
export const ROOT_TOOLBAR_TURN_INTO_LINKED_DOC = [
|
|
109
|
+
'com.labre.root.toolbar.turn-into-linked-doc',
|
|
110
|
+
'Turn into linked doc',
|
|
111
|
+
];
|
|
112
|
+
export const ROOT_TOOLBAR_EDIT_LINK = [
|
|
113
|
+
'com.labre.root.toolbar.edit-link',
|
|
114
|
+
'Edit link',
|
|
115
|
+
];
|
|
116
|
+
export const ROOT_TOOLBAR_REMOVE_LINK = TOOLBAR_REMOVE_LINK;
|
|
117
|
+
/* ── The edgeless keyboard shortcuts (`edgeless/edgeless-keyboard.ts`) ─── */
|
|
118
|
+
export const ROOT_TOAST_ZOOM_TO_SELECTION = [
|
|
119
|
+
'com.labre.root.toast.zoom-to-selection',
|
|
120
|
+
'Zoom to selection',
|
|
121
|
+
];
|
|
122
|
+
/**
|
|
123
|
+
* The Tab/Enter mindmap shortcuts' seed for a freshly added node — the same
|
|
124
|
+
* word `MindmapElementModel.addNode`'s own default falls back to (that
|
|
125
|
+
* default is model/red-zone, left untouched: the creation site now passes
|
|
126
|
+
* this text explicitly instead of relying on it). Declared here rather than
|
|
127
|
+
* in `@labre/affine-gfx-mindmap` because that package's own translations
|
|
128
|
+
* table does not carry this key yet (see that lot's own translations.ts,
|
|
129
|
+
* owned by a different lot — imported, never edited, per this lot's brief).
|
|
130
|
+
*/
|
|
131
|
+
export const ROOT_MINDMAP_SEED_NEW_NODE = [
|
|
132
|
+
'com.labre.mindmap.seed.new-node',
|
|
133
|
+
'New node',
|
|
134
|
+
];
|
|
135
|
+
/**
|
|
136
|
+
* This package's own CHROME wordings — L7 dedupe aliased
|
|
137
|
+
* `ROOT_TOOLBAR_CREATE_LINKED_DOC`, `ROOT_TOOLBAR_FRAME`, `ROOT_TOOLBAR_RELOAD`
|
|
138
|
+
* and `ROOT_TOOLBAR_REMOVE_LINK` to `chrome.ts` wordings — not listed again
|
|
139
|
+
* here, same rule the note/slash-menu packages' own chrome aliases already
|
|
140
|
+
* follow.
|
|
141
|
+
*/
|
|
142
|
+
export const ROOT_CHROME_WORDINGS = [
|
|
143
|
+
ROOT_TOOLBAR_CONVERSIONS_ARIA,
|
|
144
|
+
ROOT_TOOLBAR_TURN_INTO,
|
|
145
|
+
ROOT_TOOLBAR_CREATE_TABLE,
|
|
146
|
+
ROOT_ALIGNMENT_MENU_ARIA,
|
|
147
|
+
ROOT_ALIGN_LEFT,
|
|
148
|
+
ROOT_ALIGN_HORIZONTALLY,
|
|
149
|
+
ROOT_ALIGN_RIGHT,
|
|
150
|
+
ROOT_DISTRIBUTE_HORIZONTALLY,
|
|
151
|
+
ROOT_ALIGN_TOP,
|
|
152
|
+
ROOT_ALIGN_VERTICALLY,
|
|
153
|
+
ROOT_ALIGN_BOTTOM,
|
|
154
|
+
ROOT_DISTRIBUTE_VERTICALLY,
|
|
155
|
+
ROOT_AUTO_ARRANGE,
|
|
156
|
+
ROOT_RESIZE_AND_ALIGN,
|
|
157
|
+
ROOT_TOOLBAR_RELEASE_FROM_GROUP,
|
|
158
|
+
ROOT_TOOLBAR_GROUP,
|
|
159
|
+
ROOT_TOOLBAR_ALIGN_OBJECTS,
|
|
160
|
+
ROOT_TOOLBAR_CLICK_TO_UNLOCK,
|
|
161
|
+
ROOT_TOOLBAR_FRAME_SECTION,
|
|
162
|
+
ROOT_TOOLBAR_GROUP_SECTION,
|
|
163
|
+
ROOT_TOOLBAR_BRING_FORWARD,
|
|
164
|
+
ROOT_TOOLBAR_SEND_BACKWARD,
|
|
165
|
+
ROOT_TOOLBAR_TURN_INTO_LINKED_DOC,
|
|
166
|
+
ROOT_TOOLBAR_EDIT_LINK,
|
|
167
|
+
ROOT_TOAST_ZOOM_TO_SELECTION,
|
|
168
|
+
];
|
|
169
|
+
/** This package's own seed, joined into `PACKAGE_SEED_WORDINGS`. */
|
|
170
|
+
export const ROOT_SEED_WORDINGS = [
|
|
171
|
+
ROOT_MINDMAP_SEED_NEW_NODE,
|
|
172
|
+
];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, TextElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel } from '../../affine-model/index.js';
|
|
1
|
+
import { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, TextElementModel, UmlDiagramElementModel, UmlFragmentElementModel, UmlNodeElementModel, UmlPartitionElementModel, UmlRegionElementModel, UmlSubjectElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel } from '../../affine-model/index.js';
|
|
2
2
|
import { SurfaceElementModel } from './base.js';
|
|
3
3
|
export declare const elementsCtorMap: {
|
|
4
4
|
group: typeof GroupElementModel;
|
|
@@ -23,8 +23,14 @@ export declare const elementsCtorMap: {
|
|
|
23
23
|
c4Node: typeof C4NodeElementModel;
|
|
24
24
|
c4Board: typeof C4BoardElementModel;
|
|
25
25
|
c4Boundary: typeof C4BoundaryElementModel;
|
|
26
|
+
umlNode: typeof UmlNodeElementModel;
|
|
27
|
+
umlDiagram: typeof UmlDiagramElementModel;
|
|
28
|
+
umlSubject: typeof UmlSubjectElementModel;
|
|
29
|
+
umlPartition: typeof UmlPartitionElementModel;
|
|
30
|
+
umlRegion: typeof UmlRegionElementModel;
|
|
31
|
+
umlFragment: typeof UmlFragmentElementModel;
|
|
26
32
|
};
|
|
27
|
-
export { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, SurfaceElementModel, TextElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, };
|
|
33
|
+
export { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, SurfaceElementModel, TextElementModel, UmlDiagramElementModel, UmlFragmentElementModel, UmlNodeElementModel, UmlPartitionElementModel, UmlRegionElementModel, UmlSubjectElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, };
|
|
28
34
|
export declare enum CanvasElementType {
|
|
29
35
|
BRUSH = "brush",
|
|
30
36
|
CONNECTOR = "connector",
|
|
@@ -47,7 +53,13 @@ export declare enum CanvasElementType {
|
|
|
47
53
|
BPMNPOOL = "bpmnPool",
|
|
48
54
|
C4NODE = "c4Node",
|
|
49
55
|
C4BOARD = "c4Board",
|
|
50
|
-
C4BOUNDARY = "c4Boundary"
|
|
56
|
+
C4BOUNDARY = "c4Boundary",
|
|
57
|
+
UMLNODE = "umlNode",
|
|
58
|
+
UMLDIAGRAM = "umlDiagram",
|
|
59
|
+
UMLSUBJECT = "umlSubject",
|
|
60
|
+
UMLPARTITION = "umlPartition",
|
|
61
|
+
UMLREGION = "umlRegion",
|
|
62
|
+
UMLFRAGMENT = "umlFragment"
|
|
51
63
|
}
|
|
52
64
|
export type ElementModelMap = {
|
|
53
65
|
['shape']: ShapeElementModel;
|
|
@@ -72,5 +84,11 @@ export type ElementModelMap = {
|
|
|
72
84
|
['c4Node']: C4NodeElementModel;
|
|
73
85
|
['c4Board']: C4BoardElementModel;
|
|
74
86
|
['c4Boundary']: C4BoundaryElementModel;
|
|
87
|
+
['umlNode']: UmlNodeElementModel;
|
|
88
|
+
['umlDiagram']: UmlDiagramElementModel;
|
|
89
|
+
['umlSubject']: UmlSubjectElementModel;
|
|
90
|
+
['umlPartition']: UmlPartitionElementModel;
|
|
91
|
+
['umlRegion']: UmlRegionElementModel;
|
|
92
|
+
['umlFragment']: UmlFragmentElementModel;
|
|
75
93
|
};
|
|
76
94
|
export declare function isCanvasElementType(type: string): type is CanvasElementType;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, TextElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, } from '../../affine-model/index.js';
|
|
1
|
+
import { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, TextElementModel, UmlDiagramElementModel, UmlFragmentElementModel, UmlNodeElementModel, UmlPartitionElementModel, UmlRegionElementModel, UmlSubjectElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, } from '../../affine-model/index.js';
|
|
2
2
|
import { SurfaceElementModel } from './base.js';
|
|
3
3
|
export const elementsCtorMap = {
|
|
4
4
|
group: GroupElementModel,
|
|
@@ -23,8 +23,14 @@ export const elementsCtorMap = {
|
|
|
23
23
|
c4Node: C4NodeElementModel,
|
|
24
24
|
c4Board: C4BoardElementModel,
|
|
25
25
|
c4Boundary: C4BoundaryElementModel,
|
|
26
|
+
umlNode: UmlNodeElementModel,
|
|
27
|
+
umlDiagram: UmlDiagramElementModel,
|
|
28
|
+
umlSubject: UmlSubjectElementModel,
|
|
29
|
+
umlPartition: UmlPartitionElementModel,
|
|
30
|
+
umlRegion: UmlRegionElementModel,
|
|
31
|
+
umlFragment: UmlFragmentElementModel,
|
|
26
32
|
};
|
|
27
|
-
export { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, SurfaceElementModel, TextElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, };
|
|
33
|
+
export { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, SurfaceElementModel, TextElementModel, UmlDiagramElementModel, UmlFragmentElementModel, UmlNodeElementModel, UmlPartitionElementModel, UmlRegionElementModel, UmlSubjectElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, };
|
|
28
34
|
export var CanvasElementType;
|
|
29
35
|
(function (CanvasElementType) {
|
|
30
36
|
CanvasElementType["BRUSH"] = "brush";
|
|
@@ -49,6 +55,12 @@ export var CanvasElementType;
|
|
|
49
55
|
CanvasElementType["C4NODE"] = "c4Node";
|
|
50
56
|
CanvasElementType["C4BOARD"] = "c4Board";
|
|
51
57
|
CanvasElementType["C4BOUNDARY"] = "c4Boundary";
|
|
58
|
+
CanvasElementType["UMLNODE"] = "umlNode";
|
|
59
|
+
CanvasElementType["UMLDIAGRAM"] = "umlDiagram";
|
|
60
|
+
CanvasElementType["UMLSUBJECT"] = "umlSubject";
|
|
61
|
+
CanvasElementType["UMLPARTITION"] = "umlPartition";
|
|
62
|
+
CanvasElementType["UMLREGION"] = "umlRegion";
|
|
63
|
+
CanvasElementType["UMLFRAGMENT"] = "umlFragment";
|
|
52
64
|
})(CanvasElementType || (CanvasElementType = {}));
|
|
53
65
|
export function isCanvasElementType(type) {
|
|
54
66
|
return type.toLocaleUpperCase() in CanvasElementType;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ImageBlockModel } from '../../../affine-model/index.js';
|
|
2
2
|
import { FetchUtils, ImageProxyService } from '../../../affine-shared/adapters/index.js';
|
|
3
3
|
import { CANVAS_EXPORT_IGNORE_TAGS } from '../../../affine-shared/consts/index.js';
|
|
4
|
+
import { CHROME_UNTITLED, translateKey } from '../../../affine-shared/services/index.js';
|
|
4
5
|
import { isInsidePageEditor, matchModels } from '../../../affine-shared/utils/index.js';
|
|
5
6
|
import { BlockSuiteError, ErrorCode } from '../../../global/exceptions/index.js';
|
|
6
7
|
import { deserializeXYWH } from '../../../global/gfx/index.js';
|
|
@@ -388,7 +389,8 @@ export class ExportManager {
|
|
|
388
389
|
if (!canvasImage) {
|
|
389
390
|
return;
|
|
390
391
|
}
|
|
391
|
-
|
|
392
|
+
const title = this.doc.root.props.title.toString();
|
|
393
|
+
FileExporter.exportPng(title.trim() || translateKey(this.std, ...CHROME_UNTITLED), canvasImage.toDataURL('image/png'));
|
|
392
394
|
}
|
|
393
395
|
}
|
|
394
396
|
export const ExportManagerExtension = {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
|
|
2
|
+
import type { AnyCommandDescriptor, BlockStdScope } from '../../../std/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* The framework boards in the current canvas selection.
|
|
5
|
+
*
|
|
6
|
+
* `FrameworkBackgroundElementModel` is the whole test, and that is the point of
|
|
7
|
+
* this command: eleven board kinds today — a Wardley map, a BPMN pool, a C4
|
|
8
|
+
* board and its boundaries, the three DDD boards, Cynefin, Estuarine, the two
|
|
9
|
+
* EDGY ones — and whatever a framework adds next, because a board IS the class
|
|
10
|
+
* and nothing about SVG is per framework (ADR 0025).
|
|
11
|
+
*/
|
|
12
|
+
export declare function selectedBoards(std: BlockStdScope): FrameworkBackgroundElementModel[];
|
|
13
|
+
/**
|
|
14
|
+
* Render the selected board and hand it to the browser.
|
|
15
|
+
*
|
|
16
|
+
* ponytail: ONE board per click, the first of the selection. Browsers throttle
|
|
17
|
+
* (and Safari silently drops) programmatic downloads fired in a burst, so a
|
|
18
|
+
* selection of three boards would yield one file, two files or three depending
|
|
19
|
+
* on the browser — a result nobody can read off the gesture. One board, one
|
|
20
|
+
* file, every time.
|
|
21
|
+
*/
|
|
22
|
+
export declare function exportBoardSvg(std: BlockStdScope): void;
|
|
23
|
+
export declare const exportSvgCommands: AnyCommandDescriptor[];
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
|
|
2
|
+
import { downloadBlob, safeFilename } from '../../../affine-shared/utils/index.js';
|
|
3
|
+
import { GfxControllerIdentifier } from '../../../std/gfx/index.js';
|
|
4
|
+
import { renderBoardSvg } from './render.js';
|
|
5
|
+
/** What the file is, told to the browser. */
|
|
6
|
+
const SVG_MIME = 'image/svg+xml';
|
|
7
|
+
/** The name a board with no document title falls back to. */
|
|
8
|
+
const SVG_FILENAME_FALLBACK = 'board';
|
|
9
|
+
/**
|
|
10
|
+
* The framework boards in the current canvas selection.
|
|
11
|
+
*
|
|
12
|
+
* `FrameworkBackgroundElementModel` is the whole test, and that is the point of
|
|
13
|
+
* this command: eleven board kinds today — a Wardley map, a BPMN pool, a C4
|
|
14
|
+
* board and its boundaries, the three DDD boards, Cynefin, Estuarine, the two
|
|
15
|
+
* EDGY ones — and whatever a framework adds next, because a board IS the class
|
|
16
|
+
* and nothing about SVG is per framework (ADR 0025).
|
|
17
|
+
*/
|
|
18
|
+
export function selectedBoards(std) {
|
|
19
|
+
return std
|
|
20
|
+
.get(GfxControllerIdentifier)
|
|
21
|
+
.selection.selectedElements.filter((element) => element instanceof FrameworkBackgroundElementModel);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Render the selected board and hand it to the browser.
|
|
25
|
+
*
|
|
26
|
+
* ponytail: ONE board per click, the first of the selection. Browsers throttle
|
|
27
|
+
* (and Safari silently drops) programmatic downloads fired in a burst, so a
|
|
28
|
+
* selection of three boards would yield one file, two files or three depending
|
|
29
|
+
* on the browser — a result nobody can read off the gesture. One board, one
|
|
30
|
+
* file, every time.
|
|
31
|
+
*/
|
|
32
|
+
export function exportBoardSvg(std) {
|
|
33
|
+
const [board] = selectedBoards(std);
|
|
34
|
+
if (!board)
|
|
35
|
+
return;
|
|
36
|
+
const { svg } = renderBoardSvg(std, board);
|
|
37
|
+
const title = std.store.workspace.meta.getDocMeta(std.store.id)?.title;
|
|
38
|
+
downloadBlob(
|
|
39
|
+
// The charset is the browser's business, not the format's: `image/svg+xml`
|
|
40
|
+
// is what the file IS, and this is how a blob is told to carry it.
|
|
41
|
+
new Blob([svg], { type: `${SVG_MIME};charset=utf-8` }), `${safeFilename(title, SVG_FILENAME_FALLBACK)}.svg`);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* "Export SVG", in the command registry (ADR 0025).
|
|
45
|
+
*
|
|
46
|
+
* `owner: 'core'` and not a framework's, for the reason `map.audit` and
|
|
47
|
+
* `validation.mapQuality` are core: the command belongs to no framework —
|
|
48
|
+
* it renders whatever board is selected with the renderer that already paints
|
|
49
|
+
* it — and a framework owner would have forced the id prefix `wardley.` and
|
|
50
|
+
* then a second, identical command for every framework that follows. `'core'`
|
|
51
|
+
* owners are exempt from the id-prefix rule (ADR 0008).
|
|
52
|
+
*
|
|
53
|
+
* It READS, so there is no read-only guard: taking a picture of a board you
|
|
54
|
+
* cannot edit is precisely what a reader does.
|
|
55
|
+
*
|
|
56
|
+
* No `telemetry` field: `CommandTelemetry.framework` is typed on `FrameworkId`,
|
|
57
|
+
* and this command cannot name one — the surface package knows a board by its
|
|
58
|
+
* MODEL CLASS, and nothing in it maps `bpmnPool` back to `bpmn` without
|
|
59
|
+
* importing the framework packages the layering forbids. Usage is still
|
|
60
|
+
* measured, because `runCommand` records it outside the telemetry condition.
|
|
61
|
+
*/
|
|
62
|
+
const exportSvg = {
|
|
63
|
+
id: 'export.svg',
|
|
64
|
+
owner: 'core',
|
|
65
|
+
kind: 'action',
|
|
66
|
+
labelKey: 'com.labre.command.export.svg',
|
|
67
|
+
labelFallback: 'Export SVG',
|
|
68
|
+
descriptionKey: 'com.labre.command.export.svg.description',
|
|
69
|
+
descriptionFallback: 'Download the selected board and everything drawn on it as an SVG file.',
|
|
70
|
+
// The category the framework exports already file under: this is the same
|
|
71
|
+
// shelf as `wardley.exportOwm`, `bpmn.exportXml` and `c4.exportMermaid`, and
|
|
72
|
+
// a host catalogue groups them together.
|
|
73
|
+
category: 'interchange',
|
|
74
|
+
// Deliberately NOT `'senior-menu'`: those slots are for artefacts you DRAW,
|
|
75
|
+
// and "Export SVG" answers no question asked of a row of shapes — the same
|
|
76
|
+
// arbitration `bpmn.exportXml` is filed under (ADR 0014, R4).
|
|
77
|
+
surfaces: ['catalogue', 'contextual-toolbar', 'palette', 'agent'],
|
|
78
|
+
scope: 'edgeless',
|
|
79
|
+
// Keyless by intent. Still bindable from Settings › Shortcuts, which is what
|
|
80
|
+
// `toShortcutDescriptor` being total buys.
|
|
81
|
+
defaultKeys: { mac: [], other: [] },
|
|
82
|
+
// The serializable precondition a host catalogue can show; `when` narrows it
|
|
83
|
+
// to "…and that selection contains a board", which no member of the closed
|
|
84
|
+
// union can express.
|
|
85
|
+
availability: 'selection:framework',
|
|
86
|
+
when: std => selectedBoards(std).length > 0,
|
|
87
|
+
run: std => exportBoardSvg(std),
|
|
88
|
+
};
|
|
89
|
+
export const exportSvgCommands = [exportSvg];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { exportBoardSvg, exportSvgCommands, selectedBoards, } from './command.js';
|
|
2
|
+
export type { BoardSvgExport } from './render.js';
|
|
3
|
+
export { exportBoundOf, renderBoardSvg, selectBoardElements, } from './render.js';
|
|
4
|
+
export { taggedPath2D } from './tagged-path.js';
|
|
5
|
+
export type { SvgContext } from './svg-context.js';
|
|
6
|
+
export { createSvgContext, runWithRecordingPath2D } from './svg-context.js';
|
|
7
|
+
export { exportSvgToolbarConfig, exportSvgToolbarExtension, } from './toolbar.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { exportBoardSvg, exportSvgCommands, selectedBoards, } from './command.js';
|
|
2
|
+
export { exportBoundOf, renderBoardSvg, selectBoardElements, } from './render.js';
|
|
3
|
+
export { taggedPath2D } from './tagged-path.js';
|
|
4
|
+
export { createSvgContext, runWithRecordingPath2D } from './svg-context.js';
|
|
5
|
+
export { exportSvgToolbarConfig, exportSvgToolbarExtension, } from './toolbar.js';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
|
|
2
|
+
import { Bound } from '../../../global/gfx/index.js';
|
|
3
|
+
import type { BlockStdScope } from '../../../std/index.js';
|
|
4
|
+
import { type GfxPrimitiveElementModel } from '../../../std/gfx/index.js';
|
|
5
|
+
export interface BoardSvgExport {
|
|
6
|
+
/** A standalone SVG document. */
|
|
7
|
+
svg: string;
|
|
8
|
+
/** The world-space rectangle the document covers. */
|
|
9
|
+
bound: Bound;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The canvas elements that make up `board`'s picture, in paint order.
|
|
13
|
+
*
|
|
14
|
+
* `candidates` comes from a bound query, so it also holds whatever a NEIGHBOUR
|
|
15
|
+
* board happens to overlap with. Another framework background is kept only
|
|
16
|
+
* when its frame lies ENTIRELY inside the exported one (edges may touch): that
|
|
17
|
+
* is a nested frame — a UML subject, partition, region or fragment inside its
|
|
18
|
+
* diagram frame, a C4 boundary inside a C4 board — and it is part of the
|
|
19
|
+
* picture. One that merely overlaps is a neighbour and is dropped: without
|
|
20
|
+
* that, a map sitting next to this one would paint its whole frame into this
|
|
21
|
+
* file. So is one that ENCLOSES the board, the diagram frame around an
|
|
22
|
+
* exported partition. Non-background elements are kept whoever owns them — an
|
|
23
|
+
* element inside the exported frame belongs to the picture.
|
|
24
|
+
*
|
|
25
|
+
* Containment is read on the stored `xywh`, the same rectangle
|
|
26
|
+
* {@link exportBoundOf} starts from; a background at exactly the board's own
|
|
27
|
+
* rectangle therefore counts as nested.
|
|
28
|
+
*/
|
|
29
|
+
export declare function selectBoardElements<T extends GfxPrimitiveElementModel>(board: FrameworkBackgroundElementModel, candidates: readonly T[]): (FrameworkBackgroundElementModel | T)[];
|
|
30
|
+
/**
|
|
31
|
+
* The board's frame, widened to the union of what is painted on it: a Wardley
|
|
32
|
+
* label overhanging the right edge, or a connector ending just outside, is part
|
|
33
|
+
* of the picture and must not be cut off.
|
|
34
|
+
*/
|
|
35
|
+
export declare function exportBoundOf(board: FrameworkBackgroundElementModel, elements: readonly GfxPrimitiveElementModel[]): Bound;
|
|
36
|
+
/**
|
|
37
|
+
* The selected board and everything painted within its frame, as an SVG
|
|
38
|
+
* document — a true vector export, produced by replaying the very element
|
|
39
|
+
* renderers the canvas uses into an SVG-emitting 2D context.
|
|
40
|
+
*/
|
|
41
|
+
export declare function renderBoardSvg(std: BlockStdScope, board: FrameworkBackgroundElementModel): BoardSvgExport;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
|
|
2
|
+
import { Bound } from '../../../global/gfx/index.js';
|
|
3
|
+
import { GfxControllerIdentifier, } from '../../../std/gfx/index.js';
|
|
4
|
+
import { CanvasRenderer } from '../../renderer/canvas-renderer.js';
|
|
5
|
+
import { RoughCanvas } from '../../utils/rough/canvas.js';
|
|
6
|
+
import { createSvgContext, runWithRecordingPath2D } from './svg-context.js';
|
|
7
|
+
/**
|
|
8
|
+
* The canvas elements that make up `board`'s picture, in paint order.
|
|
9
|
+
*
|
|
10
|
+
* `candidates` comes from a bound query, so it also holds whatever a NEIGHBOUR
|
|
11
|
+
* board happens to overlap with. Another framework background is kept only
|
|
12
|
+
* when its frame lies ENTIRELY inside the exported one (edges may touch): that
|
|
13
|
+
* is a nested frame — a UML subject, partition, region or fragment inside its
|
|
14
|
+
* diagram frame, a C4 boundary inside a C4 board — and it is part of the
|
|
15
|
+
* picture. One that merely overlaps is a neighbour and is dropped: without
|
|
16
|
+
* that, a map sitting next to this one would paint its whole frame into this
|
|
17
|
+
* file. So is one that ENCLOSES the board, the diagram frame around an
|
|
18
|
+
* exported partition. Non-background elements are kept whoever owns them — an
|
|
19
|
+
* element inside the exported frame belongs to the picture.
|
|
20
|
+
*
|
|
21
|
+
* Containment is read on the stored `xywh`, the same rectangle
|
|
22
|
+
* {@link exportBoundOf} starts from; a background at exactly the board's own
|
|
23
|
+
* rectangle therefore counts as nested.
|
|
24
|
+
*/
|
|
25
|
+
export function selectBoardElements(board, candidates) {
|
|
26
|
+
const frame = Bound.deserialize(board.xywh);
|
|
27
|
+
const kept = candidates.filter(element => element === board ||
|
|
28
|
+
!(element instanceof FrameworkBackgroundElementModel) ||
|
|
29
|
+
frame.contains(Bound.deserialize(element.xywh)));
|
|
30
|
+
// A background paints under everything, so a board missing from the query
|
|
31
|
+
// (an empty bound, a stub) goes in front of the list, not at the end.
|
|
32
|
+
return kept.some(element => element === board)
|
|
33
|
+
? kept
|
|
34
|
+
: [board, ...kept];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The board's frame, widened to the union of what is painted on it: a Wardley
|
|
38
|
+
* label overhanging the right edge, or a connector ending just outside, is part
|
|
39
|
+
* of the picture and must not be cut off.
|
|
40
|
+
*/
|
|
41
|
+
export function exportBoundOf(board, elements) {
|
|
42
|
+
let bound = Bound.deserialize(board.xywh);
|
|
43
|
+
for (const element of elements) {
|
|
44
|
+
bound = bound.unite(Bound.deserialize(element.xywh));
|
|
45
|
+
}
|
|
46
|
+
return bound;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The selected board and everything painted within its frame, as an SVG
|
|
50
|
+
* document — a true vector export, produced by replaying the very element
|
|
51
|
+
* renderers the canvas uses into an SVG-emitting 2D context.
|
|
52
|
+
*/
|
|
53
|
+
export function renderBoardSvg(std, board) {
|
|
54
|
+
const gfx = std.get(GfxControllerIdentifier);
|
|
55
|
+
const renderer = gfx.surfaceComponent?.renderer;
|
|
56
|
+
if (!(renderer instanceof CanvasRenderer)) {
|
|
57
|
+
throw new Error('SVG export needs the surface to be painted by a CanvasRenderer.');
|
|
58
|
+
}
|
|
59
|
+
// Already sorted by `layer.compare`, which is the canvas' own z-order.
|
|
60
|
+
const candidates = gfx.getElementsByBound(Bound.deserialize(board.xywh), {
|
|
61
|
+
type: 'canvas',
|
|
62
|
+
});
|
|
63
|
+
const elements = selectBoardElements(board, candidates);
|
|
64
|
+
const bound = exportBoundOf(board, elements);
|
|
65
|
+
return runWithRecordingPath2D(() => {
|
|
66
|
+
const { ctx, canvas, serialize } = createSvgContext(bound.w, bound.h);
|
|
67
|
+
renderer.renderBoundTo(ctx, new RoughCanvas(canvas), bound, elements);
|
|
68
|
+
return { svg: serialize(), bound };
|
|
69
|
+
});
|
|
70
|
+
}
|