@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,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A 2D context that records an SVG document instead of pixels, shaped so the
|
|
3
|
+
* existing canvas renderers can paint into it unchanged.
|
|
4
|
+
*/
|
|
5
|
+
export interface SvgContext {
|
|
6
|
+
/** What the element renderers draw into. */
|
|
7
|
+
ctx: CanvasRenderingContext2D;
|
|
8
|
+
/** What `new RoughCanvas(...)` takes: `getContext('2d')` returns {@link ctx}. */
|
|
9
|
+
canvas: HTMLCanvasElement;
|
|
10
|
+
/** The finished document, with `viewBox`, `width`/`height` in px and `xmlns`. */
|
|
11
|
+
serialize(): string;
|
|
12
|
+
}
|
|
13
|
+
/** Marks a {@link RecordingPath2D} and carries what it recorded. */
|
|
14
|
+
declare const RECORDED_D: unique symbol;
|
|
15
|
+
interface RecordedPath {
|
|
16
|
+
[RECORDED_D]: string;
|
|
17
|
+
}
|
|
18
|
+
/** A `Path2D` that also remembers itself as an SVG `d`, in the caller's space. */
|
|
19
|
+
export type RecordingPath2D = Path2D & RecordedPath & {
|
|
20
|
+
readonly d: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Runs `render` with `globalThis.Path2D` swapped for the recording subclass, so
|
|
24
|
+
* the `new Path2D(d)` a renderer builds can be replayed into the SVG document.
|
|
25
|
+
*
|
|
26
|
+
* Swapping a global is safe here because the swap and the restore bracket a
|
|
27
|
+
* SYNCHRONOUS call on a single-threaded runtime: no other code can run — let
|
|
28
|
+
* alone observe `Path2D` — between the two, and the `finally` restores the
|
|
29
|
+
* original even when a renderer throws.
|
|
30
|
+
*/
|
|
31
|
+
export declare function runWithRecordingPath2D<T>(render: () => T): T;
|
|
32
|
+
/**
|
|
33
|
+
* The dash pattern svgcanvas holds, as the `number[]` Canvas2D's `getLineDash`
|
|
34
|
+
* returns.
|
|
35
|
+
*
|
|
36
|
+
* svgcanvas 2.6.0 implements `setLineDash` but not `getLineDash`, and a
|
|
37
|
+
* renderer that reads the pattern back (to put it back after a dashed stroke)
|
|
38
|
+
* would throw and abort the whole export. Its `setLineDash` stores the pattern
|
|
39
|
+
* in the `lineDash` style — a comma-joined string, `null` once cleared, the
|
|
40
|
+
* default `[]` before any call — and that style is saved and restored with the
|
|
41
|
+
* rest of the drawing state, so reading it is exact.
|
|
42
|
+
*/
|
|
43
|
+
export declare function readLineDash(lineDash: unknown): number[];
|
|
44
|
+
/**
|
|
45
|
+
* An SVG-emitting 2D context of `width` × `height` user units, ready to be
|
|
46
|
+
* handed to {@link CanvasRenderer.renderBoundTo}.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createSvgContext(width: number, height: number): SvgContext;
|
|
49
|
+
export {};
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { Context } from 'svgcanvas/dist/svgcanvas.esm.js';
|
|
2
|
+
const PATH_OPS = ['fill', 'stroke', 'clip'];
|
|
3
|
+
/** Marks a {@link RecordingPath2D} and carries what it recorded. */
|
|
4
|
+
const RECORDED_D = Symbol('labre.export-svg.recorded-d');
|
|
5
|
+
function isRecordingPath(value) {
|
|
6
|
+
return (typeof value?.[RECORDED_D] === 'string');
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The SVG `d` of a path argument, or `undefined` when it cannot be read.
|
|
10
|
+
*
|
|
11
|
+
* Duck-typed on a string `d` so it covers both paths this module recorded and
|
|
12
|
+
* the native ones `taggedPath2D` tagged — a renderer is free to memoise those,
|
|
13
|
+
* and a memo built during an ordinary canvas paint must still be readable here.
|
|
14
|
+
*/
|
|
15
|
+
function readablePathD(value) {
|
|
16
|
+
const d = value?.d;
|
|
17
|
+
return typeof d === 'string' ? d : undefined;
|
|
18
|
+
}
|
|
19
|
+
/** A path argument whose geometry is unreadable: a bare native `Path2D`. */
|
|
20
|
+
function isOpaquePath(value) {
|
|
21
|
+
return (typeof value === 'object' &&
|
|
22
|
+
value !== null &&
|
|
23
|
+
readablePathD(value) === undefined);
|
|
24
|
+
}
|
|
25
|
+
function isEvenOdd(value) {
|
|
26
|
+
return value === 'evenodd';
|
|
27
|
+
}
|
|
28
|
+
function unsupported(method) {
|
|
29
|
+
return new Error(`SVG export: Path2D.${method}() is not recorded. Add it to RecordingPath2D ` +
|
|
30
|
+
`in extensions/export-svg/svg-context.ts, or draw it on the context directly.`);
|
|
31
|
+
}
|
|
32
|
+
let recordingPath2D;
|
|
33
|
+
/**
|
|
34
|
+
* Built on first use rather than at import time: it extends the platform
|
|
35
|
+
* `Path2D`, which does not exist under Node, and merely importing this module
|
|
36
|
+
* must not throw there (same arrangement as `gfx/cynefin-estuarine`'s lazy
|
|
37
|
+
* curves).
|
|
38
|
+
*
|
|
39
|
+
* It EXTENDS `Path2D` on purpose. A renderer is free to memoise the paths it
|
|
40
|
+
* builds (`gfx/cynefin-estuarine` does), so an instance created while the shim
|
|
41
|
+
* is installed can outlive the export and be handed to a real canvas context
|
|
42
|
+
* later — which only works if it is a genuine `Path2D` as well.
|
|
43
|
+
*/
|
|
44
|
+
function getRecordingPath2D() {
|
|
45
|
+
var _a;
|
|
46
|
+
if (recordingPath2D)
|
|
47
|
+
return recordingPath2D;
|
|
48
|
+
const Base = globalThis.Path2D;
|
|
49
|
+
if (!Base) {
|
|
50
|
+
throw new Error('SVG export: Path2D is unavailable in this environment.');
|
|
51
|
+
}
|
|
52
|
+
class RecordingPath2DImpl extends Base {
|
|
53
|
+
static { _a = RECORDED_D; }
|
|
54
|
+
get d() {
|
|
55
|
+
return this[RECORDED_D];
|
|
56
|
+
}
|
|
57
|
+
constructor(source) {
|
|
58
|
+
super(source);
|
|
59
|
+
this[_a] = '';
|
|
60
|
+
if (typeof source === 'string') {
|
|
61
|
+
this[RECORDED_D] = source;
|
|
62
|
+
}
|
|
63
|
+
else if (isRecordingPath(source)) {
|
|
64
|
+
this[RECORDED_D] = source[RECORDED_D];
|
|
65
|
+
}
|
|
66
|
+
else if (source) {
|
|
67
|
+
throw unsupported('constructor(Path2D)');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
_push(command) {
|
|
71
|
+
this[RECORDED_D] += this[RECORDED_D] ? ` ${command}` : command;
|
|
72
|
+
}
|
|
73
|
+
addPath(path, transform) {
|
|
74
|
+
if (transform)
|
|
75
|
+
throw unsupported('addPath(path, transform)');
|
|
76
|
+
if (!isRecordingPath(path))
|
|
77
|
+
throw unsupported('addPath(Path2D)');
|
|
78
|
+
super.addPath(path);
|
|
79
|
+
this._push(path[RECORDED_D]);
|
|
80
|
+
}
|
|
81
|
+
arc() {
|
|
82
|
+
throw unsupported('arc');
|
|
83
|
+
}
|
|
84
|
+
arcTo() {
|
|
85
|
+
throw unsupported('arcTo');
|
|
86
|
+
}
|
|
87
|
+
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {
|
|
88
|
+
super.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
|
|
89
|
+
this._push(`C ${cp1x} ${cp1y} ${cp2x} ${cp2y} ${x} ${y}`);
|
|
90
|
+
}
|
|
91
|
+
closePath() {
|
|
92
|
+
super.closePath();
|
|
93
|
+
this._push('Z');
|
|
94
|
+
}
|
|
95
|
+
ellipse() {
|
|
96
|
+
throw unsupported('ellipse');
|
|
97
|
+
}
|
|
98
|
+
lineTo(x, y) {
|
|
99
|
+
super.lineTo(x, y);
|
|
100
|
+
this._push(`L ${x} ${y}`);
|
|
101
|
+
}
|
|
102
|
+
moveTo(x, y) {
|
|
103
|
+
super.moveTo(x, y);
|
|
104
|
+
this._push(`M ${x} ${y}`);
|
|
105
|
+
}
|
|
106
|
+
quadraticCurveTo(cpx, cpy, x, y) {
|
|
107
|
+
super.quadraticCurveTo(cpx, cpy, x, y);
|
|
108
|
+
this._push(`Q ${cpx} ${cpy} ${x} ${y}`);
|
|
109
|
+
}
|
|
110
|
+
rect(x, y, w, h) {
|
|
111
|
+
super.rect(x, y, w, h);
|
|
112
|
+
this._push(`M ${x} ${y} L ${x + w} ${y} L ${x + w} ${y + h} L ${x} ${y + h} Z`);
|
|
113
|
+
}
|
|
114
|
+
roundRect() {
|
|
115
|
+
throw unsupported('roundRect');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
recordingPath2D =
|
|
119
|
+
RecordingPath2DImpl;
|
|
120
|
+
return recordingPath2D;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Runs `render` with `globalThis.Path2D` swapped for the recording subclass, so
|
|
124
|
+
* the `new Path2D(d)` a renderer builds can be replayed into the SVG document.
|
|
125
|
+
*
|
|
126
|
+
* Swapping a global is safe here because the swap and the restore bracket a
|
|
127
|
+
* SYNCHRONOUS call on a single-threaded runtime: no other code can run — let
|
|
128
|
+
* alone observe `Path2D` — between the two, and the `finally` restores the
|
|
129
|
+
* original even when a renderer throws.
|
|
130
|
+
*/
|
|
131
|
+
export function runWithRecordingPath2D(render) {
|
|
132
|
+
const original = globalThis.Path2D;
|
|
133
|
+
globalThis.Path2D = getRecordingPath2D();
|
|
134
|
+
try {
|
|
135
|
+
return render();
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
globalThis.Path2D = original;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Teaches `fill`/`stroke`/`clip` the two things svgcanvas drops on the floor:
|
|
143
|
+
* the `Path2D` argument, and the fill rule.
|
|
144
|
+
*/
|
|
145
|
+
function installPathOps(ctx) {
|
|
146
|
+
for (const op of PATH_OPS) {
|
|
147
|
+
const original = ctx[op];
|
|
148
|
+
ctx[op] = (...args) => {
|
|
149
|
+
const d = args.map(readablePathD).find(value => value !== undefined);
|
|
150
|
+
const hasPath = d !== undefined;
|
|
151
|
+
const evenOdd = args.some(isEvenOdd);
|
|
152
|
+
if (hasPath) {
|
|
153
|
+
// svgcanvas ignores Path2D arguments and always paints its "current
|
|
154
|
+
// default path", so the path's `d` becomes exactly that.
|
|
155
|
+
ctx.beginPath();
|
|
156
|
+
ctx.__currentDefaultPath = d;
|
|
157
|
+
}
|
|
158
|
+
else if (args.some(isOpaquePath)) {
|
|
159
|
+
// An untagged native Path2D. Nothing can read its geometry back, so
|
|
160
|
+
// drop it loudly rather than let svgcanvas paint whatever path happened
|
|
161
|
+
// to be current. `taggedPath2D` is the fix at the call site.
|
|
162
|
+
ctx.beginPath();
|
|
163
|
+
ctx.__currentDefaultPath = '';
|
|
164
|
+
console.warn('SVG export: an untagged Path2D cannot be read back; that shape is ' +
|
|
165
|
+
'missing from the SVG. Build it with `taggedPath2D`.');
|
|
166
|
+
}
|
|
167
|
+
// `clip()` moves this node into a <clipPath>, so grab it beforehand.
|
|
168
|
+
const element = ctx.__currentElement;
|
|
169
|
+
const lineWidth = ctx.lineWidth;
|
|
170
|
+
original.call(ctx);
|
|
171
|
+
if (hasPath) {
|
|
172
|
+
// svgcanvas BAKES the current matrix into every coordinate it emits;
|
|
173
|
+
// an injected `d` never went through that, so the matrix rides along
|
|
174
|
+
// as a `transform` attribute instead…
|
|
175
|
+
ctx.__applyTransformation(element);
|
|
176
|
+
// …and the stroke width, which svgcanvas pre-multiplied by the matrix
|
|
177
|
+
// scale, goes back to its raw value or the transform scales it twice.
|
|
178
|
+
if (op === 'stroke') {
|
|
179
|
+
element.setAttribute('stroke-width', `${lineWidth}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (evenOdd) {
|
|
183
|
+
element.setAttribute(op === 'clip' ? 'clip-rule' : 'fill-rule', 'evenodd');
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* The dash pattern svgcanvas holds, as the `number[]` Canvas2D's `getLineDash`
|
|
190
|
+
* returns.
|
|
191
|
+
*
|
|
192
|
+
* svgcanvas 2.6.0 implements `setLineDash` but not `getLineDash`, and a
|
|
193
|
+
* renderer that reads the pattern back (to put it back after a dashed stroke)
|
|
194
|
+
* would throw and abort the whole export. Its `setLineDash` stores the pattern
|
|
195
|
+
* in the `lineDash` style — a comma-joined string, `null` once cleared, the
|
|
196
|
+
* default `[]` before any call — and that style is saved and restored with the
|
|
197
|
+
* rest of the drawing state, so reading it is exact.
|
|
198
|
+
*/
|
|
199
|
+
export function readLineDash(lineDash) {
|
|
200
|
+
if (Array.isArray(lineDash))
|
|
201
|
+
return lineDash.map(Number);
|
|
202
|
+
if (typeof lineDash !== 'string' || lineDash === '')
|
|
203
|
+
return [];
|
|
204
|
+
return lineDash.split(',').map(Number);
|
|
205
|
+
}
|
|
206
|
+
/** Adds `viewBox` / `xmlns` / px units to the root `<svg>` if they are missing. */
|
|
207
|
+
function finishSvg(svg, width, height) {
|
|
208
|
+
return (svg
|
|
209
|
+
// Models store fonts under the loader's own face name
|
|
210
|
+
// (`blocksuite:surface:Inter`); outside the editor only `Inter` exists.
|
|
211
|
+
.replace(/blocksuite:surface:/g, '')
|
|
212
|
+
// svgcanvas writes the (unset) text decoration out literally.
|
|
213
|
+
.replace(/ text-decoration="undefined"/g, '')
|
|
214
|
+
.replace(/<svg\b[^>]*>/, tag => {
|
|
215
|
+
let out = tag;
|
|
216
|
+
if (!/\sviewBox=/.test(out)) {
|
|
217
|
+
out = out.replace(/^<svg/, `<svg viewBox="0 0 ${width} ${height}"`);
|
|
218
|
+
}
|
|
219
|
+
if (!/\sxmlns=/.test(out)) {
|
|
220
|
+
out = out.replace(/^<svg/, `<svg xmlns="http://www.w3.org/2000/svg"`);
|
|
221
|
+
}
|
|
222
|
+
out = /\swidth=/.test(out)
|
|
223
|
+
? out.replace(/\swidth="[^"]*"/, ` width="${width}px"`)
|
|
224
|
+
: out.replace(/^<svg/, `<svg width="${width}px"`);
|
|
225
|
+
out = /\sheight=/.test(out)
|
|
226
|
+
? out.replace(/\sheight="[^"]*"/, ` height="${height}px"`)
|
|
227
|
+
: out.replace(/^<svg/, `<svg height="${height}px"`);
|
|
228
|
+
return out;
|
|
229
|
+
}));
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* An SVG-emitting 2D context of `width` × `height` user units, ready to be
|
|
233
|
+
* handed to {@link CanvasRenderer.renderBoundTo}.
|
|
234
|
+
*/
|
|
235
|
+
export function createSvgContext(width, height) {
|
|
236
|
+
const context = new Context({ width, height });
|
|
237
|
+
const ctx = context;
|
|
238
|
+
// `RoughCanvas` takes the CANVAS and calls `getContext('2d')` on it.
|
|
239
|
+
// svgcanvas already points `canvas` back at the context, so one method
|
|
240
|
+
// closes the loop.
|
|
241
|
+
context.getContext = () => ctx;
|
|
242
|
+
// Text renderers temporarily attach a detached canvas to <body> to measure
|
|
243
|
+
// RTL runs. This context is not a DOM node, so claim it is already attached.
|
|
244
|
+
context.isConnected = true;
|
|
245
|
+
// …and they set `dir` on the canvas before every text run; a no-op keeps
|
|
246
|
+
// that call from reaching an object that is not an element.
|
|
247
|
+
context.setAttribute = () => { };
|
|
248
|
+
// The one Canvas2D method a renderer calls that svgcanvas lacks — see
|
|
249
|
+
// `readLineDash`. Without it a single `getLineDash()` aborts the export.
|
|
250
|
+
context.getLineDash = () => readLineDash(context.lineDash);
|
|
251
|
+
installPathOps(context);
|
|
252
|
+
return {
|
|
253
|
+
ctx,
|
|
254
|
+
canvas: ctx.canvas,
|
|
255
|
+
serialize: () => finishSvg(context.getSerializedSvg(true), width, height),
|
|
256
|
+
};
|
|
257
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `Path2D` that carries the `d` it was built from.
|
|
3
|
+
*
|
|
4
|
+
* The SVG export replays the element renderers into an SVG-emitting context,
|
|
5
|
+
* and a native `Path2D` is a black box: nothing can read its geometry back, so
|
|
6
|
+
* a shape drawn through one would be missing from the export. The tag is what
|
|
7
|
+
* the export reads — see `svg-context.ts`.
|
|
8
|
+
*
|
|
9
|
+
* Use it anywhere a renderer builds a `Path2D` FROM A STRING. A path built by
|
|
10
|
+
* calling methods (`new Path2D()` then `rect(...)`) needs no tag: the export
|
|
11
|
+
* records those calls itself.
|
|
12
|
+
*
|
|
13
|
+
* It is a plain function, not a constant: `Path2D` does not exist under Node,
|
|
14
|
+
* so this must only ever run on a paint, never at module load.
|
|
15
|
+
*/
|
|
16
|
+
export declare function taggedPath2D(d: string): Path2D;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `Path2D` that carries the `d` it was built from.
|
|
3
|
+
*
|
|
4
|
+
* The SVG export replays the element renderers into an SVG-emitting context,
|
|
5
|
+
* and a native `Path2D` is a black box: nothing can read its geometry back, so
|
|
6
|
+
* a shape drawn through one would be missing from the export. The tag is what
|
|
7
|
+
* the export reads — see `svg-context.ts`.
|
|
8
|
+
*
|
|
9
|
+
* Use it anywhere a renderer builds a `Path2D` FROM A STRING. A path built by
|
|
10
|
+
* calling methods (`new Path2D()` then `rect(...)`) needs no tag: the export
|
|
11
|
+
* records those calls itself.
|
|
12
|
+
*
|
|
13
|
+
* It is a plain function, not a constant: `Path2D` does not exist under Node,
|
|
14
|
+
* so this must only ever run on a paint, never at module load.
|
|
15
|
+
*/
|
|
16
|
+
export function taggedPath2D(d) {
|
|
17
|
+
const path = new Path2D(d);
|
|
18
|
+
// While the export's recording `Path2D` is installed, the instance already
|
|
19
|
+
// exposes `d` through a getter; writing it again would throw.
|
|
20
|
+
if (typeof path.d !== 'string') {
|
|
21
|
+
Object.defineProperty(path, 'd', { value: d, enumerable: true });
|
|
22
|
+
}
|
|
23
|
+
return path;
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ToolbarContext } from '../../../affine-shared/services/index.js';
|
|
2
|
+
export declare const exportSvgToolbarConfig: {
|
|
3
|
+
readonly actions: [import("../../../affine-shared/services/index.js").ToolbarActionGenerator];
|
|
4
|
+
readonly when: (ctx: ToolbarContext) => boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* "Export SVG" in the "⋮" of EVERY framework board (ADR 0025).
|
|
8
|
+
*
|
|
9
|
+
* ## Where it is registered
|
|
10
|
+
*
|
|
11
|
+
* `custom:affine:surface:*` — the wildcard slot merged into the toolbar of every
|
|
12
|
+
* canvas element — with an OWNER suffix. The bare key is already taken by
|
|
13
|
+
* `validation-toolbar.ts` (and `affine:surface:*` by the root's built-in misc
|
|
14
|
+
* module), so a second module on either would be a
|
|
15
|
+
* `DuplicateServiceDefinitionError` at setup rather than a menu entry;
|
|
16
|
+
* {@link toolbarModuleKey} is what gives a second contributor a distinct DI
|
|
17
|
+
* variant while `modulesFor` still hands it to the row drawn for that flavour.
|
|
18
|
+
*
|
|
19
|
+
* One registration therefore covers all eleven board kinds and every one that
|
|
20
|
+
* follows, which is the whole claim of the ADR: the export is generic, so it is
|
|
21
|
+
* registered once, generically, and a new framework inherits it by extending
|
|
22
|
+
* `FrameworkBackgroundElementModel` and doing nothing else.
|
|
23
|
+
*/
|
|
24
|
+
export declare const exportSvgToolbarExtension: import("../../../store/index.js").ExtensionType;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
|
|
2
|
+
import { commandMoreAction, ToolbarModuleExtension, toolbarModuleKey, } from '../../../affine-shared/services/index.js';
|
|
3
|
+
import { BlockFlavourIdentifier } from '../../../std/index.js';
|
|
4
|
+
import { html } from 'lit';
|
|
5
|
+
/**
|
|
6
|
+
* A sheet with an arrow leaving it: the board, on its way out of the editor.
|
|
7
|
+
*
|
|
8
|
+
* Drawn inline like its neighbours in this package (`reading-toolbar.ts`,
|
|
9
|
+
* `tags-toolbar.ts`, `validation-toolbar.ts`): the surface block does not
|
|
10
|
+
* depend on `@blocksuite/icons`, and one glyph is not worth a new dependency.
|
|
11
|
+
*/
|
|
12
|
+
const ExportSvgIcon = html `<svg
|
|
13
|
+
width="20"
|
|
14
|
+
height="20"
|
|
15
|
+
viewBox="0 0 24 24"
|
|
16
|
+
fill="none"
|
|
17
|
+
stroke="currentColor"
|
|
18
|
+
stroke-width="2"
|
|
19
|
+
stroke-linecap="round"
|
|
20
|
+
stroke-linejoin="round"
|
|
21
|
+
>
|
|
22
|
+
<path d="M12 3v12" />
|
|
23
|
+
<path d="M8 11l4 4 4-4" />
|
|
24
|
+
<path d="M4 17v2a2 2 0 002 2h12a2 2 0 002-2v-2" />
|
|
25
|
+
</svg>`;
|
|
26
|
+
/** The keys the command declares; spelled once, read here and nowhere else. */
|
|
27
|
+
const EXPORT_SVG_COMMAND_ID = 'export.svg';
|
|
28
|
+
const EXPORT_SVG_LABEL_KEY = 'com.labre.command.export.svg';
|
|
29
|
+
const EXPORT_SVG_LABEL_FALLBACK = 'Export SVG';
|
|
30
|
+
export const exportSvgToolbarConfig = {
|
|
31
|
+
actions: [
|
|
32
|
+
commandMoreAction(
|
|
33
|
+
// `z.z-` and not `z.`: a framework's own export (`z.export-owm`,
|
|
34
|
+
// `z.export-xml`, `z.export-mermaid`) is the format that says what the
|
|
35
|
+
// board MEANS, and it reads first. The picture reads last, under
|
|
36
|
+
// everything, which is also where a reader looks for it.
|
|
37
|
+
'z.z-export-svg', EXPORT_SVG_COMMAND_ID, EXPORT_SVG_LABEL_KEY, EXPORT_SVG_LABEL_FALLBACK, ExportSvgIcon),
|
|
38
|
+
],
|
|
39
|
+
// The module says "a board is selected"; the command's own `when` says the
|
|
40
|
+
// same thing from the registry side, and the two are deliberately both there
|
|
41
|
+
// — the entry is drawn from the module and the behaviour is guarded by the
|
|
42
|
+
// command, whichever surface reaches it.
|
|
43
|
+
when: (ctx) => ctx.getSurfaceModelsByType(FrameworkBackgroundElementModel).length > 0,
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* "Export SVG" in the "⋮" of EVERY framework board (ADR 0025).
|
|
47
|
+
*
|
|
48
|
+
* ## Where it is registered
|
|
49
|
+
*
|
|
50
|
+
* `custom:affine:surface:*` — the wildcard slot merged into the toolbar of every
|
|
51
|
+
* canvas element — with an OWNER suffix. The bare key is already taken by
|
|
52
|
+
* `validation-toolbar.ts` (and `affine:surface:*` by the root's built-in misc
|
|
53
|
+
* module), so a second module on either would be a
|
|
54
|
+
* `DuplicateServiceDefinitionError` at setup rather than a menu entry;
|
|
55
|
+
* {@link toolbarModuleKey} is what gives a second contributor a distinct DI
|
|
56
|
+
* variant while `modulesFor` still hands it to the row drawn for that flavour.
|
|
57
|
+
*
|
|
58
|
+
* One registration therefore covers all eleven board kinds and every one that
|
|
59
|
+
* follows, which is the whole claim of the ADR: the export is generic, so it is
|
|
60
|
+
* registered once, generically, and a new framework inherits it by extending
|
|
61
|
+
* `FrameworkBackgroundElementModel` and doing nothing else.
|
|
62
|
+
*/
|
|
63
|
+
export const exportSvgToolbarExtension = ToolbarModuleExtension({
|
|
64
|
+
id: BlockFlavourIdentifier(toolbarModuleKey('custom:affine:surface:*', 'export-svg')),
|
|
65
|
+
config: exportSvgToolbarConfig,
|
|
66
|
+
});
|
|
@@ -6,9 +6,12 @@ export * from './edit-props-middleware-builder.js';
|
|
|
6
6
|
export * from './editor-anchored-panel.js';
|
|
7
7
|
export * from './element-renderer.js';
|
|
8
8
|
export * from './export-manager/index.js';
|
|
9
|
+
export * from './export-svg/index.js';
|
|
9
10
|
export * from './interchange.js';
|
|
10
11
|
export * from './interchange-import.js';
|
|
11
12
|
export * from './legacy-slot-extension.js';
|
|
13
|
+
export * from './legend.js';
|
|
14
|
+
export * from './legend-toolbar.js';
|
|
12
15
|
export * from './map-quality.js';
|
|
13
16
|
export * from './map-quality-widget.js';
|
|
14
17
|
export * from './morph-toolbar.js';
|
|
@@ -16,9 +19,11 @@ export * from './query.js';
|
|
|
16
19
|
export * from './reading.js';
|
|
17
20
|
export * from './reading-toolbar.js';
|
|
18
21
|
export * from './reading-widget.js';
|
|
22
|
+
export * from './record-action.js';
|
|
19
23
|
export * from './spotlight.js';
|
|
20
24
|
export * from './surface-middleware.js';
|
|
21
25
|
export * from './svg-sketch.js';
|
|
26
|
+
export * from './svg-sketch-translations.js';
|
|
22
27
|
export * from './tags-toolbar.js';
|
|
23
28
|
export * from './validation.js';
|
|
24
29
|
export * from './validation-toolbar.js';
|
|
@@ -6,9 +6,12 @@ export * from './edit-props-middleware-builder.js';
|
|
|
6
6
|
export * from './editor-anchored-panel.js';
|
|
7
7
|
export * from './element-renderer.js';
|
|
8
8
|
export * from './export-manager/index.js';
|
|
9
|
+
export * from './export-svg/index.js';
|
|
9
10
|
export * from './interchange.js';
|
|
10
11
|
export * from './interchange-import.js';
|
|
11
12
|
export * from './legacy-slot-extension.js';
|
|
13
|
+
export * from './legend.js';
|
|
14
|
+
export * from './legend-toolbar.js';
|
|
12
15
|
export * from './map-quality.js';
|
|
13
16
|
export * from './map-quality-widget.js';
|
|
14
17
|
export * from './morph-toolbar.js';
|
|
@@ -16,9 +19,11 @@ export * from './query.js';
|
|
|
16
19
|
export * from './reading.js';
|
|
17
20
|
export * from './reading-toolbar.js';
|
|
18
21
|
export * from './reading-widget.js';
|
|
22
|
+
export * from './record-action.js';
|
|
19
23
|
export * from './spotlight.js';
|
|
20
24
|
export * from './surface-middleware.js';
|
|
21
25
|
export * from './svg-sketch.js';
|
|
26
|
+
export * from './svg-sketch-translations.js';
|
|
22
27
|
export * from './tags-toolbar.js';
|
|
23
28
|
export * from './validation.js';
|
|
24
29
|
export * from './validation-toolbar.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ServiceProvider } from '../../global/di/index.js';
|
|
2
2
|
import type { BlockStdScope } from '../../std/index.js';
|
|
3
|
-
import { type InterchangeFormat, type InterchangeImportCapability, type InterchangeReport, type SerializedElementProps } from './interchange.js';
|
|
3
|
+
import { type InterchangeFormat, type InterchangeImportCapability, type InterchangeNote, type InterchangeReport, type SerializedElementProps } from './interchange.js';
|
|
4
4
|
/**
|
|
5
5
|
* **The public import API** — what an editor, a host application or a plugin
|
|
6
6
|
* calls to turn a foreign file into a board (`docs/adr/0012`).
|
|
@@ -50,11 +50,49 @@ import { type InterchangeFormat, type InterchangeImportCapability, type Intercha
|
|
|
50
50
|
* whole blob and `addElement` writes it with everything else, which is the
|
|
51
51
|
* whole-record LWW the field's own contract asks for (D2).
|
|
52
52
|
*
|
|
53
|
+
* ## The reader's OWN names, and why there is a second map
|
|
54
|
+
*
|
|
55
|
+
* A source id is the file's, and there are two things a reader has to point at
|
|
56
|
+
* that the file never named: an element it MINTED (a framework artefact is
|
|
57
|
+
* routinely several elements — a shape, its compartments, and the group that
|
|
58
|
+
* makes them one thing), and the group membership between them. So a reader may
|
|
59
|
+
* also hand each element a provisional `id` of its own. `surface.addElement`
|
|
60
|
+
* overwrites it with a nanoid and is documented to, which is precisely what
|
|
61
|
+
* makes it safe to use as a local name: it reaches no document, and it is read
|
|
62
|
+
* here and nowhere else.
|
|
63
|
+
*
|
|
64
|
+
* A GROUP's `children` are therefore rewritten BEFORE the group is created, out
|
|
65
|
+
* of the map built so far — which costs nothing and asks the reader for the one
|
|
66
|
+
* thing it can always give: emit an element before the group that holds it. A
|
|
67
|
+
* connector is the opposite case (a flow may be written before either of its
|
|
68
|
+
* ends) and keeps its second pass.
|
|
69
|
+
*
|
|
70
|
+
* Source ids win over provisional ones wherever both could answer, so a reader
|
|
71
|
+
* that mints no local name behaves exactly as it did before this was here.
|
|
72
|
+
*
|
|
73
|
+
* ## Beside what is already drawn
|
|
74
|
+
*
|
|
75
|
+
* A reader writes the coordinates its FILE gave it, so importing the same file
|
|
76
|
+
* twice put the second board exactly on top of the first. The offset is applied
|
|
77
|
+
* here, once, for every framework, because the only thing that knows what the
|
|
78
|
+
* canvas already holds is the function doing the writing — see
|
|
79
|
+
* {@link importOffset}, and note that an empty surface is left alone.
|
|
80
|
+
*
|
|
81
|
+
* ## A read-only document is answered, not thrown at
|
|
82
|
+
*
|
|
83
|
+
* This is a public API — a host (labre-mcp) writes through it with no command
|
|
84
|
+
* in front of it — so the guard belongs here too and not only at the callers:
|
|
85
|
+
* a readonly document answers the empty array, which is the same "nothing was
|
|
86
|
+
* minted" every other refusal of this function returns, rather than an
|
|
87
|
+
* exception a caller would have to know to catch.
|
|
88
|
+
*
|
|
53
89
|
* @param formatId the format whose payload key carries the source ids — the
|
|
54
90
|
* `id` of the capability's {@link InterchangeFormat}, and the ONLY thing this
|
|
55
91
|
* function ever knew about BPMN.
|
|
56
92
|
*/
|
|
57
|
-
export declare function materializeInterchangeImport(std: BlockStdScope, formatId: string, elements: readonly SerializedElementProps[]
|
|
93
|
+
export declare function materializeInterchangeImport(std: BlockStdScope, formatId: string, elements: readonly SerializedElementProps[], options?: {
|
|
94
|
+
onNote?: (note: InterchangeNote) => void;
|
|
95
|
+
}): string[];
|
|
58
96
|
/**
|
|
59
97
|
* Say what the import did — the summary, and the remarks.
|
|
60
98
|
*
|
|
@@ -109,7 +147,31 @@ export declare function reportInterchangeImport(std: BlockStdScope, format: Inte
|
|
|
109
147
|
* deliberately so: a dialog a document cannot honour should never open in the
|
|
110
148
|
* first place.
|
|
111
149
|
*/
|
|
112
|
-
export declare function runInterchangeImportFile(std: BlockStdScope, capability: InterchangeImportCapability): Promise<void>;
|
|
150
|
+
export declare function runInterchangeImportFile(std: BlockStdScope, capability: InterchangeImportCapability, options?: InterchangeImportOptions): Promise<void>;
|
|
151
|
+
/** What a caller can put between the file's bytes and the declared reader. */
|
|
152
|
+
export interface InterchangeImportOptions {
|
|
153
|
+
/**
|
|
154
|
+
* Turn the file's text into the text the reader takes — the seam for a
|
|
155
|
+
* format whose container is not the document.
|
|
156
|
+
*
|
|
157
|
+
* A reader is a PURE, synchronous function of text (`docs/adr/0012` P3), and
|
|
158
|
+
* that is not negotiable: it is what lets labre-mcp call the same function
|
|
159
|
+
* the command calls. Some containers put an asynchronous platform API between
|
|
160
|
+
* the bytes and the document all the same — a `.drawio` file holds its
|
|
161
|
+
* `<mxGraphModel>` as base64 of a raw deflate, and inflating it needs
|
|
162
|
+
* `DecompressionStream` (`gfx/uml/src/drawio-decode.ts`, `docs/adr/0019`);
|
|
163
|
+
* a zipped container would be the next one.
|
|
164
|
+
*
|
|
165
|
+
* So the unwrapping happens HERE, where a caller already has an editor and an
|
|
166
|
+
* `await`, and the reader keeps its purity. Anything this throws is shown as
|
|
167
|
+
* the import's failure notification, exactly as a reader's own refusal is —
|
|
168
|
+
* so the sentence it throws should name what is wrong with the file.
|
|
169
|
+
*
|
|
170
|
+
* Absent for every format whose file IS its document, which is all of them
|
|
171
|
+
* bar one.
|
|
172
|
+
*/
|
|
173
|
+
decode?: (text: string, file: File) => string | Promise<string>;
|
|
174
|
+
}
|
|
113
175
|
/**
|
|
114
176
|
* The import itself, over a file the caller ALREADY HAS: run the declared
|
|
115
177
|
* capability (`docs/adr/0012`), write what it returned, bring it into view, and
|
|
@@ -147,7 +209,7 @@ export declare function runInterchangeImportFile(std: BlockStdScope, capability:
|
|
|
147
209
|
* its refusals it was, so it is shown as it is rather than replaced with a
|
|
148
210
|
* wording of our own that knows less.
|
|
149
211
|
*/
|
|
150
|
-
export declare function importInterchangeFile(std: BlockStdScope, capability: InterchangeImportCapability, file: File): Promise<void>;
|
|
212
|
+
export declare function importInterchangeFile(std: BlockStdScope, capability: InterchangeImportCapability, file: File, options?: InterchangeImportOptions): Promise<void>;
|
|
151
213
|
/**
|
|
152
214
|
* Every registered importer, indexed by the extensions it declares.
|
|
153
215
|
*
|