@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
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { EdgelessCRUDIdentifier } from '../../../affine-block-surface/index.js';
|
|
2
|
-
import { packColor, } from '../../../affine-components/color-picker/index.js';
|
|
2
|
+
import { frameworkPaletteGroups, packColor, } from '../../../affine-components/color-picker/index.js';
|
|
3
3
|
import { BrushElementModel, DefaultTheme, LineWidth, resolveColor, } from '../../../affine-model/index.js';
|
|
4
|
-
import { ToolbarModuleExtension, } from '../../../affine-shared/services/index.js';
|
|
4
|
+
import { ToolbarModuleExtension, translateKey, } from '../../../affine-shared/services/index.js';
|
|
5
5
|
import { getMostCommonResolvedValue, getMostCommonValue, } from '../../../affine-shared/utils/index.js';
|
|
6
6
|
import { BlockFlavourIdentifier } from '../../../std/index.js';
|
|
7
7
|
import { html } from 'lit';
|
|
8
|
+
import { BRUSH_LABEL_COLOR } from '../../translations.js';
|
|
8
9
|
export const brushToolbarConfig = {
|
|
9
10
|
actions: [
|
|
10
11
|
{
|
|
@@ -71,15 +72,21 @@ export const brushToolbarConfig = {
|
|
|
71
72
|
break;
|
|
72
73
|
}
|
|
73
74
|
};
|
|
75
|
+
// A stroke drawn on a framework board opens on that framework's hues
|
|
76
|
+
// (`docs/adr/0027`); the editor palette stays page one.
|
|
77
|
+
const carousel = frameworkPaletteGroups(ctx.std, models, DefaultTheme.Palettes);
|
|
74
78
|
return html `
|
|
75
79
|
<edgeless-color-picker-button
|
|
76
80
|
class="color"
|
|
77
|
-
.label="${
|
|
81
|
+
.label="${translateKey(ctx.std, ...BRUSH_LABEL_COLOR)}"
|
|
78
82
|
.pick=${onPick}
|
|
79
83
|
.color=${color}
|
|
80
84
|
.theme=${theme}
|
|
81
85
|
.originalColor=${originalColor}
|
|
82
86
|
.enableCustomColor=${enableCustomColor}
|
|
87
|
+
.paletteGroups=${carousel.groups}
|
|
88
|
+
.activeGroupKey=${carousel.activeKey}
|
|
89
|
+
.std=${ctx.std}
|
|
83
90
|
>
|
|
84
91
|
</edgeless-color-picker-button>
|
|
85
92
|
`;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { EdgelessCRUDIdentifier } from '../../../affine-block-surface/index.js';
|
|
2
|
-
import { adjustColorAlpha, keepColor, packColor, } from '../../../affine-components/color-picker/index.js';
|
|
2
|
+
import { adjustColorAlpha, frameworkPaletteGroups, keepColor, packColor, } from '../../../affine-components/color-picker/index.js';
|
|
3
3
|
import { DEFAULT_HIGHLIGHTER_LINE_WIDTH, DefaultTheme, HIGHLIGHTER_LINE_WIDTHS, HighlighterElementModel, resolveColor, } from '../../../affine-model/index.js';
|
|
4
|
-
import { ToolbarModuleExtension, } from '../../../affine-shared/services/index.js';
|
|
4
|
+
import { ToolbarModuleExtension, translateKey, } from '../../../affine-shared/services/index.js';
|
|
5
5
|
import { getMostCommonResolvedValue, getMostCommonValue, } from '../../../affine-shared/utils/index.js';
|
|
6
6
|
import { BlockFlavourIdentifier } from '../../../std/index.js';
|
|
7
7
|
import { html } from 'lit';
|
|
8
|
+
import { BRUSH_LABEL_COLOR } from '../../translations.js';
|
|
8
9
|
const trackBaseProps = {
|
|
9
10
|
category: 'highlighter',
|
|
10
11
|
};
|
|
@@ -81,17 +82,23 @@ export const highlighterToolbarConfig = {
|
|
|
81
82
|
control: 'color picker',
|
|
82
83
|
});
|
|
83
84
|
};
|
|
85
|
+
// A highlight drawn over a framework board opens on that framework's
|
|
86
|
+
// hues (`docs/adr/0027`); the short stroke palette stays page one.
|
|
87
|
+
const carousel = frameworkPaletteGroups(ctx.std, models, DefaultTheme.StrokeColorShortPalettes);
|
|
84
88
|
return html `
|
|
85
89
|
<edgeless-color-picker-button
|
|
86
90
|
.colorPanelClass="${'one-way small'}"
|
|
87
|
-
.label="${
|
|
91
|
+
.label="${translateKey(ctx.std, ...BRUSH_LABEL_COLOR)}"
|
|
88
92
|
.pick=${onPick}
|
|
89
93
|
.color=${color}
|
|
90
94
|
.theme=${theme}
|
|
91
95
|
.originalColor=${originalColor}
|
|
92
96
|
.palettes=${DefaultTheme.StrokeColorShortPalettes}
|
|
97
|
+
.paletteGroups=${carousel.groups}
|
|
98
|
+
.activeGroupKey=${carousel.activeKey}
|
|
93
99
|
.shouldKeepColor=${true}
|
|
94
100
|
.enableCustomColor=${false}
|
|
101
|
+
.std=${ctx.std}
|
|
95
102
|
>
|
|
96
103
|
</edgeless-color-picker-button>
|
|
97
104
|
`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ChromeWording } from '../affine-shared/services/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* This package's own wordings, joined into `PACKAGE_WORDINGS` in
|
|
4
|
+
* `@labre/affine/translations` — see that file and
|
|
5
|
+
* `packages/affine/shared/src/services/translation-service/README.md`.
|
|
6
|
+
*
|
|
7
|
+
* `senior-tool.ts`'s own `name: 'Pen'` is NOT here: `SeniorTool.labelKey`
|
|
8
|
+
* exists only for a framework's own button — the core tools (note, shape,
|
|
9
|
+
* template, pen…) declare no framework descriptor and therefore no key, by
|
|
10
|
+
* design (`packages/affine/widgets/edgeless-toolbar/src/extension/index.ts`).
|
|
11
|
+
*/
|
|
12
|
+
export declare const BRUSH_TOOLTIP_ERASER: ChromeWording;
|
|
13
|
+
export declare const BRUSH_TOOLTIP_PEN: ChromeWording;
|
|
14
|
+
export declare const BRUSH_TOOLTIP_HIGHLIGHTER: ChromeWording;
|
|
15
|
+
/** An alias (L7 dedupe): the same word as {@link COLOR_LABEL}, one key. */
|
|
16
|
+
export declare const BRUSH_LABEL_COLOR: ChromeWording;
|
|
17
|
+
export declare const BRUSH_WORDINGS: readonly ChromeWording[];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { COLOR_LABEL } from '../affine-shared/services/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* This package's own wordings, joined into `PACKAGE_WORDINGS` in
|
|
4
|
+
* `@labre/affine/translations` — see that file and
|
|
5
|
+
* `packages/affine/shared/src/services/translation-service/README.md`.
|
|
6
|
+
*
|
|
7
|
+
* `senior-tool.ts`'s own `name: 'Pen'` is NOT here: `SeniorTool.labelKey`
|
|
8
|
+
* exists only for a framework's own button — the core tools (note, shape,
|
|
9
|
+
* template, pen…) declare no framework descriptor and therefore no key, by
|
|
10
|
+
* design (`packages/affine/widgets/edgeless-toolbar/src/extension/index.ts`).
|
|
11
|
+
*/
|
|
12
|
+
export const BRUSH_TOOLTIP_ERASER = [
|
|
13
|
+
'com.labre.brush.tooltip.eraser',
|
|
14
|
+
'Eraser',
|
|
15
|
+
];
|
|
16
|
+
export const BRUSH_TOOLTIP_PEN = [
|
|
17
|
+
'com.labre.brush.tooltip.pen',
|
|
18
|
+
'Pen',
|
|
19
|
+
];
|
|
20
|
+
export const BRUSH_TOOLTIP_HIGHLIGHTER = [
|
|
21
|
+
'com.labre.brush.tooltip.highlighter',
|
|
22
|
+
'Highlighter',
|
|
23
|
+
];
|
|
24
|
+
/** An alias (L7 dedupe): the same word as {@link COLOR_LABEL}, one key. */
|
|
25
|
+
export const BRUSH_LABEL_COLOR = COLOR_LABEL;
|
|
26
|
+
export const BRUSH_WORDINGS = [
|
|
27
|
+
BRUSH_TOOLTIP_ERASER,
|
|
28
|
+
BRUSH_TOOLTIP_PEN,
|
|
29
|
+
BRUSH_TOOLTIP_HIGHLIGHTER,
|
|
30
|
+
];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AStarRunner, Overlay } from '../affine-block-surface/index.js';
|
|
2
|
-
import { type BrushElementModel, type Connection, ConnectorElementModel, GroupElementModel, type LocalConnectorElementModel } from '../affine-model/index.js';
|
|
2
|
+
import { type BrushElementModel, type Connection, ConnectorElementModel, type ConnectorLabelEnd, GroupElementModel, type LocalConnectorElementModel } from '../affine-model/index.js';
|
|
3
3
|
import type { IBound, IVec } from '../global/gfx/index.js';
|
|
4
4
|
import { Bound, PointLocation } from '../global/gfx/index.js';
|
|
5
5
|
import type { BlockStdScope } from '../std/index.js';
|
|
@@ -26,6 +26,14 @@ export declare function isCenterAnchorEligible(ele: GfxModel): boolean;
|
|
|
26
26
|
*/
|
|
27
27
|
export declare function isCenterAnchorEnabled(std: BlockStdScope): boolean;
|
|
28
28
|
export declare function isConnectorWithLabel(model: GfxModel | GfxLocalElementModel): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The end-label twin of `isConnectorWithLabel`: a connector carrying a painted
|
|
31
|
+
* label beside its `source` / `target` endpoint.
|
|
32
|
+
*
|
|
33
|
+
* A `LocalConnectorElementModel` has no labels at all — it is the preview a
|
|
34
|
+
* drag paints — so the `instanceof` is the guard, exactly as above.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isConnectorWithEndLabel(model: GfxModel | GfxLocalElementModel, end: ConnectorLabelEnd): boolean;
|
|
29
37
|
export declare function calculateNearestLocation(point: IVec, bounds: IBound, locations?: IVec[], shortestDistance?: number): IVec;
|
|
30
38
|
export declare function isConnectorAndBindingsAllSelected(connector: ConnectorElementModel | LocalConnectorElementModel, selected: GfxModel[]): boolean;
|
|
31
39
|
export declare function getAnchors(ele: GfxModel, includeCenterAnchor?: boolean): {
|
|
@@ -160,6 +160,46 @@ function computePerimeterPointForCenterAnchor(connectable, centerPoint, otherPoi
|
|
|
160
160
|
export function isConnectorWithLabel(model) {
|
|
161
161
|
return model instanceof ConnectorElementModel && model.hasLabel();
|
|
162
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* The end-label twin of `isConnectorWithLabel`: a connector carrying a painted
|
|
165
|
+
* label beside its `source` / `target` endpoint.
|
|
166
|
+
*
|
|
167
|
+
* A `LocalConnectorElementModel` has no labels at all — it is the preview a
|
|
168
|
+
* drag paints — so the `instanceof` is the guard, exactly as above.
|
|
169
|
+
*/
|
|
170
|
+
export function isConnectorWithEndLabel(model, end) {
|
|
171
|
+
return model instanceof ConnectorElementModel && model.hasEndLabel(end);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Translates one end label's box by how far its endpoint moved, so the label
|
|
175
|
+
* keeps the position the author gave it RELATIVE to that end.
|
|
176
|
+
*
|
|
177
|
+
* `ConnectorPathGenerator.updatePath` is the only caller: the label follows the
|
|
178
|
+
* end on every re-route, and on nothing else.
|
|
179
|
+
*/
|
|
180
|
+
function followEndpoint(model, end, previousPath) {
|
|
181
|
+
const box = model.endLabelXYWH(end);
|
|
182
|
+
if (!box || !model.hasEndLabel(end))
|
|
183
|
+
return;
|
|
184
|
+
const nextPath = model.absolutePath;
|
|
185
|
+
if (nextPath.length === 0 || previousPath.length === 0)
|
|
186
|
+
return;
|
|
187
|
+
const endpointOf = (path) => end === 'source' ? path[0] : path[path.length - 1];
|
|
188
|
+
const from = endpointOf(previousPath);
|
|
189
|
+
const to = endpointOf(nextPath);
|
|
190
|
+
const dx = to[0] - from[0];
|
|
191
|
+
const dy = to[1] - from[1];
|
|
192
|
+
if (dx === 0 && dy === 0)
|
|
193
|
+
return;
|
|
194
|
+
const [x, y, w, h] = box;
|
|
195
|
+
const moved = [x + dx, y + dy, w, h];
|
|
196
|
+
if (end === 'source') {
|
|
197
|
+
model.sourceLabelXYWH = moved;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
model.targetLabelXYWH = moved;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
163
203
|
export function calculateNearestLocation(point, bounds, locations = ConnectorEndpointLocations, shortestDistance = Number.POSITIVE_INFINITY) {
|
|
164
204
|
const { x, y, w, h } = bounds;
|
|
165
205
|
return locations
|
|
@@ -1000,6 +1040,10 @@ export class ConnectorPathGenerator extends PathGenerator {
|
|
|
1000
1040
|
const relativePoints = points.map((p) => {
|
|
1001
1041
|
return p.setVec(Vec.sub(p, [bound.x, bound.y]));
|
|
1002
1042
|
});
|
|
1043
|
+
// Captured before the assignment below rebuilds it: the end labels are
|
|
1044
|
+
// re-anchored by how far THEIR endpoint travelled, which is only knowable
|
|
1045
|
+
// against the path this call replaces.
|
|
1046
|
+
const previousPath = connector.absolutePath;
|
|
1003
1047
|
connector.updatingPath = true;
|
|
1004
1048
|
// the property assignment order matters
|
|
1005
1049
|
connector.xywh = bound.serialize();
|
|
@@ -1015,6 +1059,23 @@ export class ConnectorPathGenerator extends PathGenerator {
|
|
|
1015
1059
|
model.labelXYWH = [cx - w / 2, cy - h / 2, w, h];
|
|
1016
1060
|
}
|
|
1017
1061
|
}
|
|
1062
|
+
// The end labels follow THEIR OWN endpoint, not the connector's centre.
|
|
1063
|
+
// Dragging one of the two nodes moves one end and leaves the other where
|
|
1064
|
+
// it was: re-deriving both boxes from the offset distance (what the centre
|
|
1065
|
+
// label does) would recentre them, and translating both by the element's
|
|
1066
|
+
// delta would slide the far one off its line. Translating each by its
|
|
1067
|
+
// endpoint's delta is the only rule under which a `0..*` typed beside an
|
|
1068
|
+
// end stays beside that end — and the only one that preserves a box the
|
|
1069
|
+
// author dragged somewhere else. Same persistence gate as above: these are
|
|
1070
|
+
// `@field()`s too, so a watching peer must not write them.
|
|
1071
|
+
if (connector instanceof ConnectorElementModel) {
|
|
1072
|
+
const mayPersist = (options?.persistLabelXYWH ?? true) &&
|
|
1073
|
+
!connector.surface?.store?.readonly;
|
|
1074
|
+
if (mayPersist) {
|
|
1075
|
+
followEndpoint(connector, 'source', previousPath);
|
|
1076
|
+
followEndpoint(connector, 'target', previousPath);
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1018
1079
|
connector.updatingPath = false;
|
|
1019
1080
|
}
|
|
1020
1081
|
_computeStartEndPoint(connector) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ConnectorElementModel } from '../../affine-model/index.js';
|
|
2
|
-
import type { AnyCommandDescriptor, BlockStdScope } from '../../std/index.js';
|
|
2
|
+
import type { AnyCommandDescriptor, BlockStdScope, CommandDescriptor } from '../../std/index.js';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { type TypedEdge } from './typed-edge.js';
|
|
5
5
|
/**
|
|
@@ -64,6 +64,13 @@ export declare function invertibleEdges(std: BlockStdScope, elementIds?: string[
|
|
|
64
64
|
export declare function invertEdge(model: ConnectorElementModel): void;
|
|
65
65
|
/** The registered id, so a toolbar entry can invoke it rather than copy it. */
|
|
66
66
|
export declare const INVERT_EDGE_DIRECTION = "edge.invert-direction";
|
|
67
|
+
/**
|
|
68
|
+
* Exported (not just registered through {@link edgeDirectionCommands}) so the
|
|
69
|
+
* contextual-toolbar entry can read its `labelKey` / `labelFallback` straight
|
|
70
|
+
* off the descriptor — see `toolbar/config.ts`'s `b.invert-direction` — rather
|
|
71
|
+
* than restating the wording as a second literal.
|
|
72
|
+
*/
|
|
73
|
+
export declare const invertEdgeDirection: CommandDescriptor<InvertEdgeDirectionParams>;
|
|
67
74
|
/**
|
|
68
75
|
* The registry's element type erases the parameter contract, and `run`
|
|
69
76
|
* re-validates with the zod schema rather than trusting the static type — what
|
|
@@ -105,7 +105,13 @@ export function invertEdge(model) {
|
|
|
105
105
|
}
|
|
106
106
|
/** The registered id, so a toolbar entry can invoke it rather than copy it. */
|
|
107
107
|
export const INVERT_EDGE_DIRECTION = 'edge.invert-direction';
|
|
108
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Exported (not just registered through {@link edgeDirectionCommands}) so the
|
|
110
|
+
* contextual-toolbar entry can read its `labelKey` / `labelFallback` straight
|
|
111
|
+
* off the descriptor — see `toolbar/config.ts`'s `b.invert-direction` — rather
|
|
112
|
+
* than restating the wording as a second literal.
|
|
113
|
+
*/
|
|
114
|
+
export const invertEdgeDirection = {
|
|
109
115
|
id: INVERT_EDGE_DIRECTION,
|
|
110
116
|
owner: 'core',
|
|
111
117
|
kind: 'action',
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { DomRenderer } from '../../../affine-block-surface/index.js';
|
|
2
|
-
import { type ConnectorElementModel } from '../../../affine-model/index.js';
|
|
2
|
+
import { type ConnectorElementModel, type PointStyle } from '../../../affine-model/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Exported for `src/__tests__/endpoint-style.unit.spec.ts`: the hollow heads are
|
|
5
|
+
* defined by the fact that `fill` and `stroke` differ, which is only observable
|
|
6
|
+
* on the marker node this builds.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createArrowMarker(id: string, style: PointStyle, color: string, strokeWidth: number, isStart?: boolean): SVGMarkerElement;
|
|
3
9
|
/**
|
|
4
10
|
* Renders a ConnectorElementModel to a given HTMLElement using DOM/SVG.
|
|
5
11
|
* This function is intended to be registered via the DomElementRendererExtension.
|
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
import { ConnectorMode, DefaultTheme, } from '../../../affine-model/index.js';
|
|
2
2
|
import { PointLocation, SVGPathBuilder } from '../../../global/gfx/index.js';
|
|
3
3
|
import { isConnectorWithLabel } from '../../connector-manager.js';
|
|
4
|
-
import { DEFAULT_ARROW_SIZE } from '../utils.js';
|
|
4
|
+
import { DEFAULT_ARROW_SIZE, HOLLOW_HEAD_FILL } from '../utils.js';
|
|
5
5
|
const SVG_NS = 'http://www.w3.org/2000/svg';
|
|
6
|
+
/**
|
|
7
|
+
* The outline width of a hollow head, in the marker's own `viewBox` units.
|
|
8
|
+
*
|
|
9
|
+
* Pinned rather than inherited. A marker declares `markerUnits="strokeWidth"`
|
|
10
|
+
* and a `0 0 20 20` viewBox mapped onto `markerWidth`, so one viewBox unit is
|
|
11
|
+
* already a fixed fraction of the connector's `strokeWidth` — the outline
|
|
12
|
+
* scales with the line without this attribute existing, and `1` is exactly the
|
|
13
|
+
* SVG default the solid heads get implicitly today. Nothing changes visually.
|
|
14
|
+
*
|
|
15
|
+
* It is set only on the hollow heads because they are the only ones where the
|
|
16
|
+
* value is observable: a solid head paints `fill` and `stroke` in the same
|
|
17
|
+
* colour, so its outline is invisible either way. On a hollow head the outline
|
|
18
|
+
* IS the head. Leaving it to a default that a future `stroke-width` on the
|
|
19
|
+
* `<svg>`, the `<defs>`, or the marker itself would override means the UML
|
|
20
|
+
* heads could silently thicken or vanish; the solid twins would not notice.
|
|
21
|
+
*/
|
|
22
|
+
const HOLLOW_HEAD_STROKE_WIDTH = 1;
|
|
23
|
+
const LABEL_SLOTS = ['center', 'source', 'target'];
|
|
6
24
|
/**
|
|
7
25
|
* The nodes a connector host already owns, kept across renders. Rebuilding the
|
|
8
26
|
* whole `<svg>` subtree on every frame allocated one element per connector per
|
|
@@ -46,7 +64,12 @@ function createConnectorPath(points, mode) {
|
|
|
46
64
|
}
|
|
47
65
|
return pathBuilder.build();
|
|
48
66
|
}
|
|
49
|
-
|
|
67
|
+
/**
|
|
68
|
+
* Exported for `src/__tests__/endpoint-style.unit.spec.ts`: the hollow heads are
|
|
69
|
+
* defined by the fact that `fill` and `stroke` differ, which is only observable
|
|
70
|
+
* on the marker node this builds.
|
|
71
|
+
*/
|
|
72
|
+
export function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
|
|
50
73
|
const marker = document.createElementNS(SVG_NS, 'marker');
|
|
51
74
|
const size = DEFAULT_ARROW_SIZE * (strokeWidth / 2);
|
|
52
75
|
marker.id = id;
|
|
@@ -57,6 +80,8 @@ function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
|
|
|
57
80
|
marker.setAttribute('markerHeight', String(size));
|
|
58
81
|
marker.setAttribute('orient', 'auto');
|
|
59
82
|
marker.setAttribute('markerUnits', 'strokeWidth');
|
|
83
|
+
// No `default`, as on the canvas side: an unknown persisted `PointStyle`
|
|
84
|
+
// yields an empty marker rather than a wrong head.
|
|
60
85
|
switch (style) {
|
|
61
86
|
case 'Arrow': {
|
|
62
87
|
const path = document.createElementNS(SVG_NS, 'path');
|
|
@@ -74,6 +99,15 @@ function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
|
|
|
74
99
|
marker.append(path);
|
|
75
100
|
break;
|
|
76
101
|
}
|
|
102
|
+
case 'TriangleHollow': {
|
|
103
|
+
const path = document.createElementNS(SVG_NS, 'path');
|
|
104
|
+
path.setAttribute('d', isStart ? 'M 20 7 L 12 10 L 20 13 Z' : 'M 0 7 L 8 10 L 0 13 Z');
|
|
105
|
+
path.setAttribute('fill', HOLLOW_HEAD_FILL);
|
|
106
|
+
path.setAttribute('stroke', color);
|
|
107
|
+
path.setAttribute('stroke-width', String(HOLLOW_HEAD_STROKE_WIDTH));
|
|
108
|
+
marker.append(path);
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
77
111
|
case 'Circle': {
|
|
78
112
|
const circle = document.createElementNS(SVG_NS, 'circle');
|
|
79
113
|
circle.setAttribute('cx', '10');
|
|
@@ -92,6 +126,15 @@ function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
|
|
|
92
126
|
marker.append(path);
|
|
93
127
|
break;
|
|
94
128
|
}
|
|
129
|
+
case 'DiamondHollow': {
|
|
130
|
+
const path = document.createElementNS(SVG_NS, 'path');
|
|
131
|
+
path.setAttribute('d', 'M 10 6 L 14 10 L 10 14 L 6 10 Z');
|
|
132
|
+
path.setAttribute('fill', HOLLOW_HEAD_FILL);
|
|
133
|
+
path.setAttribute('stroke', color);
|
|
134
|
+
path.setAttribute('stroke-width', String(HOLLOW_HEAD_STROKE_WIDTH));
|
|
135
|
+
marker.append(path);
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
95
138
|
}
|
|
96
139
|
return marker;
|
|
97
140
|
}
|
|
@@ -119,29 +162,53 @@ function getRetainedConnectorDom(element) {
|
|
|
119
162
|
svg,
|
|
120
163
|
defs,
|
|
121
164
|
path,
|
|
122
|
-
|
|
165
|
+
labels: {},
|
|
123
166
|
};
|
|
124
167
|
retainedConnectorDom.set(element, retained);
|
|
125
168
|
return retained;
|
|
126
169
|
}
|
|
127
|
-
function getOrCreateLabelElement(retained) {
|
|
128
|
-
|
|
129
|
-
|
|
170
|
+
function getOrCreateLabelElement(retained, slot) {
|
|
171
|
+
const existing = retained.labels[slot];
|
|
172
|
+
if (existing) {
|
|
173
|
+
return existing;
|
|
130
174
|
}
|
|
131
175
|
const label = document.createElement('div');
|
|
132
|
-
|
|
133
|
-
|
|
176
|
+
// Appended after the `<svg>` rather than inserted directly behind it, so the
|
|
177
|
+
// three captions land in slot order instead of in reverse creation order.
|
|
178
|
+
// Every one of them is absolutely positioned, so document order is a
|
|
179
|
+
// debugging convenience, not a layout decision.
|
|
180
|
+
(retained.svg.parentElement ?? retained.svg).append(label);
|
|
181
|
+
retained.labels[slot] = label;
|
|
134
182
|
return label;
|
|
135
183
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
184
|
+
/**
|
|
185
|
+
* The text and box one slot paints, or `null` when that caption is absent.
|
|
186
|
+
*
|
|
187
|
+
* The DOM twin of `paintedLabels` on the canvas side: same three slots, same
|
|
188
|
+
* `labelStyle` shared by all three, so the two renderers cannot disagree about
|
|
189
|
+
* what a connector is showing.
|
|
190
|
+
*/
|
|
191
|
+
function labelContent(model, slot) {
|
|
192
|
+
if (slot === 'center') {
|
|
193
|
+
return isConnectorWithLabel(model) && model.labelXYWH
|
|
194
|
+
? { text: model.text?.toString() ?? '', xywh: model.labelXYWH }
|
|
195
|
+
: null;
|
|
196
|
+
}
|
|
197
|
+
const xywh = model.endLabelXYWH(slot);
|
|
198
|
+
return model.hasEndLabel(slot) && xywh
|
|
199
|
+
? { text: model.endLabelText(slot)?.toString() ?? '', xywh }
|
|
200
|
+
: null;
|
|
201
|
+
}
|
|
202
|
+
function renderConnectorLabel(model, retained, renderer, zoom, slot) {
|
|
203
|
+
const content = labelContent(model, slot);
|
|
204
|
+
if (!content) {
|
|
205
|
+
retained.labels[slot]?.remove();
|
|
206
|
+
delete retained.labels[slot];
|
|
140
207
|
return;
|
|
141
208
|
}
|
|
142
|
-
const [lx, ly, lw, lh] =
|
|
209
|
+
const [lx, ly, lw, lh] = content.xywh;
|
|
143
210
|
const { labelStyle: { color, fontSize, fontWeight, fontStyle, fontFamily, textAlign, }, } = model;
|
|
144
|
-
const labelElement = getOrCreateLabelElement(retained);
|
|
211
|
+
const labelElement = getOrCreateLabelElement(retained, slot);
|
|
145
212
|
labelElement.style.position = 'absolute';
|
|
146
213
|
labelElement.style.left = `${lx * zoom}px`;
|
|
147
214
|
labelElement.style.top = `${ly * zoom}px`;
|
|
@@ -168,7 +235,7 @@ function renderConnectorLabel(model, retained, renderer, zoom) {
|
|
|
168
235
|
labelElement.style.whiteSpace = 'pre-wrap';
|
|
169
236
|
labelElement.style.wordWrap = 'break-word';
|
|
170
237
|
// Add text content
|
|
171
|
-
labelElement.textContent =
|
|
238
|
+
labelElement.textContent = content.text;
|
|
172
239
|
}
|
|
173
240
|
/**
|
|
174
241
|
* Renders a ConnectorElementModel to a given HTMLElement using DOM/SVG.
|
|
@@ -264,6 +331,9 @@ export const connectorDomRenderer = (model, element, renderer) => {
|
|
|
264
331
|
element.style.height = `${model.h * zoom}px`;
|
|
265
332
|
element.style.overflow = 'visible';
|
|
266
333
|
element.style.pointerEvents = 'none';
|
|
267
|
-
// Render
|
|
268
|
-
|
|
334
|
+
// Render each caption that is present — the centre name and the two end
|
|
335
|
+
// labels — and drop the node of any that is not.
|
|
336
|
+
for (const slot of LABEL_SLOTS) {
|
|
337
|
+
renderConnectorLabel(model, retained, renderer, zoom, slot);
|
|
338
|
+
}
|
|
269
339
|
};
|
|
@@ -1,10 +1,35 @@
|
|
|
1
1
|
import { ElementRendererExtension, } from '../../affine-block-surface/index.js';
|
|
2
2
|
import { getFontString, getLineHeight, getTextWidth, isRTL, wrapTextDeltas, } from '../../affine-gfx-text/index.js';
|
|
3
3
|
import { ConnectorMode, DefaultTheme, } from '../../affine-model/index.js';
|
|
4
|
-
import { getBezierParameters } from '../../global/gfx/index.js';
|
|
4
|
+
import { getBezierParameters, } from '../../global/gfx/index.js';
|
|
5
5
|
import { deltaInsertsToChunks } from '../../std/inline/index.js';
|
|
6
|
-
import { isConnectorWithLabel } from '../connector-manager.js';
|
|
7
|
-
import { DEFAULT_ARROW_SIZE, getArrowOptions, renderArrow, renderCircle, renderDiamond, renderTriangle, } from './utils.js';
|
|
6
|
+
import { isConnectorWithEndLabel, isConnectorWithLabel, } from '../connector-manager.js';
|
|
7
|
+
import { DEFAULT_ARROW_SIZE, getArrowOptions, HOLLOW_HEAD_FILL, renderArrow, renderCircle, renderDiamond, renderTriangle, } from './utils.js';
|
|
8
|
+
/** The captions this connector paints, in the order they are drawn. */
|
|
9
|
+
function paintedLabels(model) {
|
|
10
|
+
const labels = [];
|
|
11
|
+
if (isConnectorWithLabel(model)) {
|
|
12
|
+
const { text, labelXYWH, labelStyle, labelConstraints } = model;
|
|
13
|
+
labels.push({
|
|
14
|
+
text: text,
|
|
15
|
+
xywh: labelXYWH,
|
|
16
|
+
style: labelStyle,
|
|
17
|
+
constraints: labelConstraints,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
for (const end of ['source', 'target']) {
|
|
21
|
+
if (!isConnectorWithEndLabel(model, end))
|
|
22
|
+
continue;
|
|
23
|
+
const connectorModel = model;
|
|
24
|
+
labels.push({
|
|
25
|
+
text: connectorModel.endLabelText(end),
|
|
26
|
+
xywh: connectorModel.endLabelXYWH(end),
|
|
27
|
+
style: connectorModel.labelStyle,
|
|
28
|
+
constraints: connectorModel.labelConstraints,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return labels;
|
|
32
|
+
}
|
|
8
33
|
export const connector = (model, ctx, matrix, renderer, rc) => {
|
|
9
34
|
const { mode, path: points, strokeStyle, frontEndpointStyle, rearEndpointStyle, strokeWidth, } = model;
|
|
10
35
|
// points might not be build yet in some senarios
|
|
@@ -13,29 +38,39 @@ export const connector = (model, ctx, matrix, renderer, rc) => {
|
|
|
13
38
|
return;
|
|
14
39
|
}
|
|
15
40
|
ctx.setTransform(matrix);
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
41
|
+
const labels = paintedLabels(model);
|
|
42
|
+
// Each label's box, expressed relative to the element's own origin — the
|
|
43
|
+
// frame both the clip rects and the per-label transforms are written in.
|
|
44
|
+
let offsets = [];
|
|
45
|
+
if (labels.length) {
|
|
20
46
|
ctx.save();
|
|
21
|
-
const { deserializedXYWH
|
|
47
|
+
const { deserializedXYWH } = model;
|
|
22
48
|
const [x, y, w, h] = deserializedXYWH;
|
|
23
|
-
const [lx, ly, lw, lh] = labelXYWH;
|
|
24
49
|
const offset = DEFAULT_ARROW_SIZE * strokeWidth;
|
|
25
|
-
|
|
26
|
-
|
|
50
|
+
offsets = labels.map(label => [label.xywh[0] - x, label.xywh[1] - y]);
|
|
51
|
+
// One subtracted rect PER label: `evenodd` over the element rect and the
|
|
52
|
+
// caption rects leaves the stroke everywhere except under a caption, so a
|
|
53
|
+
// multiplicity beside an end punches the line exactly as the centre name
|
|
54
|
+
// always has.
|
|
27
55
|
const path = new Path2D();
|
|
28
56
|
path.rect(-offset / 2, -offset / 2, w + offset, h + offset);
|
|
29
|
-
|
|
57
|
+
labels.forEach((label, index) => {
|
|
58
|
+
const [dx, dy] = offsets[index];
|
|
59
|
+
const [, , lw, lh] = label.xywh;
|
|
60
|
+
path.rect(dx - 3 - 0.5, dy - 3 - 0.5, lw + 6 + 1, lh + 6 + 1);
|
|
61
|
+
});
|
|
30
62
|
ctx.clip(path, 'evenodd');
|
|
31
63
|
}
|
|
32
64
|
const strokeColor = renderer.getColorValue(model.stroke, DefaultTheme.connectorColor, true);
|
|
33
65
|
renderPoints(model, ctx, rc, points, strokeStyle === 'dash', mode === ConnectorMode.Curve, strokeColor);
|
|
34
66
|
renderEndpoint(model, points, ctx, rc, 'Front', frontEndpointStyle, strokeColor);
|
|
35
67
|
renderEndpoint(model, points, ctx, rc, 'Rear', rearEndpointStyle, strokeColor);
|
|
36
|
-
if (
|
|
68
|
+
if (labels.length) {
|
|
37
69
|
ctx.restore();
|
|
38
|
-
|
|
70
|
+
labels.forEach((label, index) => {
|
|
71
|
+
const [dx, dy] = offsets[index];
|
|
72
|
+
renderLabel(label, ctx, matrix.translate(dx, dy), renderer);
|
|
73
|
+
});
|
|
39
74
|
}
|
|
40
75
|
};
|
|
41
76
|
export const ConnectorElementRendererExtension = ElementRendererExtension('connector', connector);
|
|
@@ -93,6 +128,13 @@ function renderPoints(model, ctx, rc, points, dash, curve, stroke) {
|
|
|
93
128
|
}
|
|
94
129
|
function renderEndpoint(model, location, ctx, rc, end, style, stroke) {
|
|
95
130
|
const arrowOptions = getArrowOptions(end, model, stroke);
|
|
131
|
+
// No `default` on purpose: `PointStyle` is a persisted, append-only enum, so
|
|
132
|
+
// a build older than a member paints no head rather than throwing or drawing
|
|
133
|
+
// a wrong one. See the enum's docblock in `@labre/affine-model`.
|
|
134
|
+
//
|
|
135
|
+
// The hollow spread lives inside its own case: this runs once per endpoint
|
|
136
|
+
// per frame, and a solid head — or `None`, the default on the front of every
|
|
137
|
+
// connector — should not allocate an options object it never reads.
|
|
96
138
|
switch (style) {
|
|
97
139
|
case 'Arrow':
|
|
98
140
|
renderArrow(location, ctx, rc, arrowOptions);
|
|
@@ -100,23 +142,42 @@ function renderEndpoint(model, location, ctx, rc, end, style, stroke) {
|
|
|
100
142
|
case 'Triangle':
|
|
101
143
|
renderTriangle(location, ctx, rc, arrowOptions);
|
|
102
144
|
break;
|
|
145
|
+
case 'TriangleHollow':
|
|
146
|
+
renderTriangle(location, ctx, rc, {
|
|
147
|
+
...arrowOptions,
|
|
148
|
+
fillColor: HOLLOW_HEAD_FILL,
|
|
149
|
+
});
|
|
150
|
+
break;
|
|
103
151
|
case 'Circle':
|
|
104
152
|
renderCircle(location, ctx, rc, arrowOptions);
|
|
105
153
|
break;
|
|
106
154
|
case 'Diamond':
|
|
107
155
|
renderDiamond(location, ctx, rc, arrowOptions);
|
|
108
156
|
break;
|
|
157
|
+
case 'DiamondHollow':
|
|
158
|
+
renderDiamond(location, ctx, rc, {
|
|
159
|
+
...arrowOptions,
|
|
160
|
+
fillColor: HOLLOW_HEAD_FILL,
|
|
161
|
+
});
|
|
162
|
+
break;
|
|
109
163
|
}
|
|
110
164
|
}
|
|
111
|
-
|
|
112
|
-
|
|
165
|
+
/**
|
|
166
|
+
* Paints ONE caption at the origin of `matrix`.
|
|
167
|
+
*
|
|
168
|
+
* Takes a label rather than the connector: the centre name and the two end
|
|
169
|
+
* labels are the same drawing, and the only thing that told them apart was
|
|
170
|
+
* which pair of fields the function reached into.
|
|
171
|
+
*/
|
|
172
|
+
function renderLabel(label, ctx, matrix, renderer) {
|
|
173
|
+
const { text, xywh, style: { color, fontSize, fontWeight, fontStyle, fontFamily, textAlign }, constraints: { hasMaxWidth, maxWidth }, } = label;
|
|
113
174
|
const font = getFontString({
|
|
114
175
|
fontStyle,
|
|
115
176
|
fontWeight,
|
|
116
177
|
fontSize,
|
|
117
178
|
fontFamily,
|
|
118
179
|
});
|
|
119
|
-
const [, , w, h] =
|
|
180
|
+
const [, , w, h] = xywh;
|
|
120
181
|
const cx = w / 2;
|
|
121
182
|
const cy = h / 2;
|
|
122
183
|
ctx.setTransform(matrix);
|
|
@@ -3,6 +3,17 @@ import { type ConnectorElementModel, ConnectorMode, type LocalConnectorElementMo
|
|
|
3
3
|
import type { BezierCurveParameters, IVec, PointLocation } from '../../global/gfx/index.js';
|
|
4
4
|
type ConnectorEnd = 'Front' | 'Rear';
|
|
5
5
|
export declare const DEFAULT_ARROW_SIZE = 15;
|
|
6
|
+
/**
|
|
7
|
+
* The interior of a hollow endpoint head (`TriangleHollow`, `DiamondHollow`).
|
|
8
|
+
*
|
|
9
|
+
* The notation card fill (R33), NOT a theme-resolved token and NOT
|
|
10
|
+
* `transparent`: a UML hollow head reads as a white shape sitting on top of the
|
|
11
|
+
* line it terminates, exactly like the class box it points at — which is itself
|
|
12
|
+
* painted `NOTATION_NEUTRALS.cardFill` in every theme. `transparent` would let
|
|
13
|
+
* the connector's own line show through the head; a theme token would turn the
|
|
14
|
+
* head black-on-black next to a card-white box in a dark host.
|
|
15
|
+
*/
|
|
16
|
+
export declare const HOLLOW_HEAD_FILL: string;
|
|
6
17
|
export declare function getArrowPoints(points: PointLocation[], size: number | undefined, mode: ConnectorMode, bezierParameters: BezierCurveParameters, endPoint?: ConnectorEnd, radians?: number): {
|
|
7
18
|
points: (IVec | PointLocation)[];
|
|
8
19
|
};
|
|
@@ -12,7 +23,12 @@ export declare function getDiamondPoints(point: PointLocation, size?: number, en
|
|
|
12
23
|
points: (IVec | PointLocation)[];
|
|
13
24
|
};
|
|
14
25
|
export type ArrowOptions = ReturnType<typeof getArrowOptions>;
|
|
15
|
-
|
|
26
|
+
/**
|
|
27
|
+
* @param fillColor the interior of a closed head. Defaults to `strokeColor`, so
|
|
28
|
+
* a `Triangle` or a `Diamond` stays the solid head it has always been; the
|
|
29
|
+
* hollow UML heads pass `HOLLOW_HEAD_FILL` instead.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getArrowOptions(end: ConnectorEnd, model: ConnectorElementModel | LocalConnectorElementModel, strokeColor: string, fillColor?: string): {
|
|
16
32
|
end: ConnectorEnd;
|
|
17
33
|
seed: number;
|
|
18
34
|
mode: ConnectorMode;
|
|
@@ -32,7 +48,13 @@ export declare function getRcOptions(options: ArrowOptions): {
|
|
|
32
48
|
fill: string;
|
|
33
49
|
fillStyle: string;
|
|
34
50
|
};
|
|
35
|
-
|
|
51
|
+
/**
|
|
52
|
+
* @param color the outline colour.
|
|
53
|
+
* @param fillColor the interior colour. Defaults to `color` — the solid head.
|
|
54
|
+
* A hollow head passes the notation card fill, so the outline stays the
|
|
55
|
+
* connector's colour while the inside reads as empty.
|
|
56
|
+
*/
|
|
57
|
+
export declare function renderRoundedPolygon(ctx: CanvasRenderingContext2D, points: IVec[], color: string, strokeWidth: number, fill?: boolean, fillColor?: string): void;
|
|
36
58
|
export declare function renderArrow(points: PointLocation[], ctx: CanvasRenderingContext2D, rc: RoughCanvas, options: ArrowOptions): void;
|
|
37
59
|
export declare function renderTriangle(points: PointLocation[], ctx: CanvasRenderingContext2D, rc: RoughCanvas, options: ArrowOptions): void;
|
|
38
60
|
export declare function renderDiamond(points: PointLocation[], ctx: CanvasRenderingContext2D, rc: RoughCanvas, options: ArrowOptions): void;
|