@formicoidea/labre-core 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_pkgs/affine-block-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/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 +2 -2
- 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-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/embed-iframe-block.js +3 -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 +12 -6
- 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-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/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/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/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.js +15 -6
- 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/translations.d.ts +61 -0
- package/dist/_pkgs/affine-block-root/translations.js +172 -0
- package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +3 -1
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +1 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +31 -12
- package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +40 -8
- package/dist/_pkgs/affine-block-surface/extensions/interchange.js +27 -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.js +3 -2
- 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-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 +6 -0
- package/dist/_pkgs/affine-components/color-picker/button.js +15 -1
- 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/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 +2 -0
- package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +34 -5
- 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 +19 -4
- 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 +141 -0
- package/dist/_pkgs/affine-components/translations.js +478 -0
- 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/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 +4 -2
- package/dist/_pkgs/affine-gfx-brush/toolbar/configs/highlighter.js +4 -2
- 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/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/text/edgeless-connector-label-editor.js +3 -2
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +4 -1
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +24 -10
- 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/translations.d.ts +32 -0
- package/dist/_pkgs/affine-gfx-connector/translations.js +79 -0
- 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/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 +24 -0
- package/dist/_pkgs/affine-gfx-group/translations.js +33 -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/toolbar/config.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-shape/toolbar/config.js +29 -8
- 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 +15 -5
- 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/edgeless-text-editor.js +3 -2
- package/dist/_pkgs/affine-gfx-text/toolbar/actions.d.ts +1 -1
- package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +22 -9
- package/dist/_pkgs/affine-gfx-text/toolbar/text-menu.js +1 -0
- package/dist/_pkgs/affine-gfx-text/translations.d.ts +31 -0
- package/dist/_pkgs/affine-gfx-text/translations.js +64 -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/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-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/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/translation-service/chrome.d.ts +362 -0
- package/dist/_pkgs/affine-shared/services/translation-service/chrome.js +955 -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-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.js +2 -2
- 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/edgeless-toolbar.js +2 -1
- 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 +31 -8
- 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-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/std/extension/translation-manifest.d.ts +7 -0
- 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/translations.js +144 -5
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { EdgelessCRUDIdentifier } from '../../affine-block-surface/index.js';
|
|
|
2
2
|
import { packColor, } from '../../affine-components/color-picker/index.js';
|
|
3
3
|
import { createTextActions } from '../../affine-gfx-text/index.js';
|
|
4
4
|
import { DefaultTheme, FontFamily, getShapeName, getShapeRadius, getShapeType, isTransparent, LineWidth, MindmapElementModel, resolveColor, ShapeElementModel, ShapeStyle, ShapeType, StrokeStyle, TextFitMode, } from '../../affine-model/index.js';
|
|
5
|
-
import { ToolbarModuleExtension, } from '../../affine-shared/services/index.js';
|
|
5
|
+
import { STYLE_MENU_LABEL, ToolbarModuleExtension, translateKey, } from '../../affine-shared/services/index.js';
|
|
6
6
|
import { getMostCommonValue } from '../../affine-shared/utils/index.js';
|
|
7
7
|
import { getRootBlock, LINE_STYLE_LIST, renderMenu, } from '../../affine-widget-edgeless-toolbar/index.js';
|
|
8
8
|
import { Bound } from '../../global/gfx/index.js';
|
|
@@ -15,11 +15,18 @@ import { ShapeElementView } from '../element-view.js';
|
|
|
15
15
|
import { applyTextFitMode, nextTextFitMode } from '../text-fit.js';
|
|
16
16
|
import { mountShapeTextEditor } from '../text/edgeless-shape-text-editor.js';
|
|
17
17
|
import { ShapeComponentConfig } from './shape-menu-config.js';
|
|
18
|
-
|
|
18
|
+
import { SHAPE_ADD_TEXT_TOOLTIP, SHAPE_EDIT_VERTICES_TOOLTIP, SHAPE_SWITCH_TYPE_LABEL, SHAPE_TEXT_FIT_ARIA, SHAPE_TEXT_FIT_CONTAINED, SHAPE_TEXT_FIT_GROW, SHAPE_TEXT_FIT_OVERFLOW, SHAPE_TEXT_FIT_TOOLTIP, } from '../translations.js';
|
|
19
|
+
/** Icon + wording per text fit mode for the cycling toolbar button. */
|
|
19
20
|
const TEXT_FIT_UI = {
|
|
20
|
-
[TextFitMode.Grow]: { icon: AutoHeightIcon(),
|
|
21
|
-
[TextFitMode.Contained]: {
|
|
22
|
-
|
|
21
|
+
[TextFitMode.Grow]: { icon: AutoHeightIcon(), wording: SHAPE_TEXT_FIT_GROW },
|
|
22
|
+
[TextFitMode.Contained]: {
|
|
23
|
+
icon: AutoSizeIcon(),
|
|
24
|
+
wording: SHAPE_TEXT_FIT_CONTAINED,
|
|
25
|
+
},
|
|
26
|
+
[TextFitMode.Overflow]: {
|
|
27
|
+
icon: ScaleAltIcon(),
|
|
28
|
+
wording: SHAPE_TEXT_FIT_OVERFLOW,
|
|
29
|
+
},
|
|
23
30
|
};
|
|
24
31
|
export const shapeToolbarConfig = {
|
|
25
32
|
actions: [
|
|
@@ -52,8 +59,10 @@ export const shapeToolbarConfig = {
|
|
|
52
59
|
return renderMenu({
|
|
53
60
|
icon: ShapeIcon(),
|
|
54
61
|
label: 'Switch shape type',
|
|
62
|
+
labelWording: SHAPE_SWITCH_TYPE_LABEL,
|
|
55
63
|
items: ShapeComponentConfig.map(item => ({
|
|
56
64
|
key: item.tooltip,
|
|
65
|
+
keyWording: item.tooltipWording,
|
|
57
66
|
value: item.name,
|
|
58
67
|
icon: shapeStyle === ShapeStyle.General
|
|
59
68
|
? item.generalIcon
|
|
@@ -62,6 +71,7 @@ export const shapeToolbarConfig = {
|
|
|
62
71
|
})),
|
|
63
72
|
currentValue: shapeName,
|
|
64
73
|
onPick,
|
|
74
|
+
std: ctx.std,
|
|
65
75
|
});
|
|
66
76
|
},
|
|
67
77
|
},
|
|
@@ -85,9 +95,11 @@ export const shapeToolbarConfig = {
|
|
|
85
95
|
};
|
|
86
96
|
return renderMenu({
|
|
87
97
|
label: 'Style',
|
|
98
|
+
labelWording: STYLE_MENU_LABEL,
|
|
88
99
|
items: LINE_STYLE_LIST,
|
|
89
100
|
currentValue: shapeStyle === ShapeStyle.Scribbled,
|
|
90
101
|
onPick,
|
|
102
|
+
std: ctx.std,
|
|
91
103
|
});
|
|
92
104
|
},
|
|
93
105
|
},
|
|
@@ -203,6 +215,7 @@ export const shapeToolbarConfig = {
|
|
|
203
215
|
{
|
|
204
216
|
id: 'f.text',
|
|
205
217
|
tooltip: 'Add text',
|
|
218
|
+
tooltipWording: SHAPE_ADD_TEXT_TOOLTIP,
|
|
206
219
|
icon: AddTextIcon(),
|
|
207
220
|
when(ctx) {
|
|
208
221
|
const models = ctx.getSurfaceModelsByType(ShapeElementModel);
|
|
@@ -221,6 +234,7 @@ export const shapeToolbarConfig = {
|
|
|
221
234
|
{
|
|
222
235
|
id: 'f1.edit-vertices',
|
|
223
236
|
tooltip: 'Edit vertices',
|
|
237
|
+
tooltipWording: SHAPE_EDIT_VERTICES_TOOLTIP,
|
|
224
238
|
icon: EditIcon(),
|
|
225
239
|
when(ctx) {
|
|
226
240
|
const models = ctx.getSurfaceModelsByType(ShapeElementModel);
|
|
@@ -251,11 +265,18 @@ export const shapeToolbarConfig = {
|
|
|
251
265
|
return null;
|
|
252
266
|
const mode = getMostCommonValue(models, 'textFitMode') ?? TextFitMode.Grow;
|
|
253
267
|
const next = nextTextFitMode(mode);
|
|
254
|
-
const { icon,
|
|
268
|
+
const { icon, wording } = TEXT_FIT_UI[mode];
|
|
269
|
+
const label = translateKey(ctx.std, ...wording);
|
|
270
|
+
const nextLabel = translateKey(ctx.std, ...TEXT_FIT_UI[next].wording);
|
|
255
271
|
return html `
|
|
256
272
|
<editor-icon-button
|
|
257
|
-
aria-label="
|
|
258
|
-
|
|
273
|
+
aria-label="${translateKey(ctx.std, ...SHAPE_TEXT_FIT_ARIA, {
|
|
274
|
+
label,
|
|
275
|
+
})}"
|
|
276
|
+
.tooltip=${translateKey(ctx.std, ...SHAPE_TEXT_FIT_TOOLTIP, {
|
|
277
|
+
label,
|
|
278
|
+
nextLabel,
|
|
279
|
+
})}
|
|
259
280
|
@click=${() => applyTextFitMode(ctx.std, models, next)}
|
|
260
281
|
>
|
|
261
282
|
${icon}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { SeniorToolExtension } from '../../affine-widget-edgeless-toolbar/index.js';
|
|
2
2
|
import { html } from 'lit';
|
|
3
|
+
import { SHAPE_TOOL_NAME } from '../translations.js';
|
|
3
4
|
export const shapeSeniorTool = SeniorToolExtension('shape', ({ block, toolbarContainer }) => {
|
|
4
5
|
return {
|
|
5
6
|
name: 'Shape',
|
|
7
|
+
labelKey: SHAPE_TOOL_NAME[0],
|
|
6
8
|
content: html `<edgeless-shape-tool-button
|
|
7
9
|
.edgeless=${block}
|
|
8
10
|
.toolbarContainer=${toolbarContainer}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { ShapeToolOption } from '../index.js';
|
|
2
|
+
import type { ChromeWording } from '../../affine-shared/services/index.js';
|
|
2
3
|
import type { TemplateResult } from 'lit';
|
|
3
4
|
type Config = {
|
|
4
5
|
name: ShapeToolOption['shapeName'];
|
|
5
6
|
generalIcon: TemplateResult<1>;
|
|
6
7
|
scribbledIcon: TemplateResult<1>;
|
|
7
8
|
tooltip: string;
|
|
9
|
+
/** {@link tooltip}, for the translation seam. */
|
|
10
|
+
tooltipWording: ChromeWording;
|
|
8
11
|
disabled: boolean;
|
|
9
12
|
};
|
|
10
13
|
export declare const ShapeComponentConfig: Config[];
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ShapeType } from '../../affine-model/index.js';
|
|
2
2
|
import { DiamondIcon, EllipseIcon, RoundedRectangleIcon, SquareIcon, TriangleIcon, } from '@blocksuite/icons/lit';
|
|
3
3
|
import { GeneralPolygonIcon, ScribbledDiamondIcon, ScribbledEllipseIcon, ScribbledPolygonIcon, ScribbledRoundedRectangleIcon, ScribbledSquareIcon, ScribbledTriangleIcon, } from './icons.js';
|
|
4
|
+
import { SHAPE_NAME_DIAMOND, SHAPE_NAME_ELLIPSE, SHAPE_NAME_POLYGON, SHAPE_NAME_ROUNDED_RECT, SHAPE_NAME_SQUARE, SHAPE_NAME_TRIANGLE, } from '../translations.js';
|
|
4
5
|
export const ShapeComponentConfig = [
|
|
5
6
|
{
|
|
6
7
|
name: ShapeType.Rect,
|
|
7
8
|
generalIcon: SquareIcon(),
|
|
8
9
|
scribbledIcon: ScribbledSquareIcon,
|
|
9
10
|
tooltip: 'Square',
|
|
11
|
+
tooltipWording: SHAPE_NAME_SQUARE,
|
|
10
12
|
disabled: false,
|
|
11
13
|
},
|
|
12
14
|
{
|
|
@@ -14,6 +16,7 @@ export const ShapeComponentConfig = [
|
|
|
14
16
|
generalIcon: EllipseIcon(),
|
|
15
17
|
scribbledIcon: ScribbledEllipseIcon,
|
|
16
18
|
tooltip: 'Ellipse',
|
|
19
|
+
tooltipWording: SHAPE_NAME_ELLIPSE,
|
|
17
20
|
disabled: false,
|
|
18
21
|
},
|
|
19
22
|
{
|
|
@@ -21,6 +24,7 @@ export const ShapeComponentConfig = [
|
|
|
21
24
|
generalIcon: DiamondIcon(),
|
|
22
25
|
scribbledIcon: ScribbledDiamondIcon,
|
|
23
26
|
tooltip: 'Diamond',
|
|
27
|
+
tooltipWording: SHAPE_NAME_DIAMOND,
|
|
24
28
|
disabled: false,
|
|
25
29
|
},
|
|
26
30
|
{
|
|
@@ -28,6 +32,7 @@ export const ShapeComponentConfig = [
|
|
|
28
32
|
generalIcon: TriangleIcon(),
|
|
29
33
|
scribbledIcon: ScribbledTriangleIcon,
|
|
30
34
|
tooltip: 'Triangle',
|
|
35
|
+
tooltipWording: SHAPE_NAME_TRIANGLE,
|
|
31
36
|
disabled: false,
|
|
32
37
|
},
|
|
33
38
|
{
|
|
@@ -35,6 +40,7 @@ export const ShapeComponentConfig = [
|
|
|
35
40
|
generalIcon: GeneralPolygonIcon,
|
|
36
41
|
scribbledIcon: ScribbledPolygonIcon,
|
|
37
42
|
tooltip: 'Polygon',
|
|
43
|
+
tooltipWording: SHAPE_NAME_POLYGON,
|
|
38
44
|
disabled: false,
|
|
39
45
|
},
|
|
40
46
|
{
|
|
@@ -42,6 +48,7 @@ export const ShapeComponentConfig = [
|
|
|
42
48
|
generalIcon: RoundedRectangleIcon(),
|
|
43
49
|
scribbledIcon: ScribbledRoundedRectangleIcon,
|
|
44
50
|
tooltip: 'Rounded rectangle',
|
|
51
|
+
tooltipWording: SHAPE_NAME_ROUNDED_RECT,
|
|
45
52
|
disabled: false,
|
|
46
53
|
},
|
|
47
54
|
];
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type ChromeWording } from '../affine-shared/services/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The shape toolbar's own wordings. `STYLE_GENERAL` / `STYLE_SCRIBBLED` /
|
|
4
|
+
* `STYLE_MENU_LABEL` / `TOOL_NAME_SHAPE` are declared once in `chrome.ts`
|
|
5
|
+
* (shared with `widgets/edgeless-toolbar` and `gfx/mindmap`) and re-exported
|
|
6
|
+
* here under this package's own name, so a call site in this package can
|
|
7
|
+
* import everything it needs from one place.
|
|
8
|
+
*/
|
|
9
|
+
export declare const SHAPE_STYLE_GENERAL: ChromeWording;
|
|
10
|
+
export declare const SHAPE_STYLE_SCRIBBLED: ChromeWording;
|
|
11
|
+
export declare const SHAPE_STYLE_MENU_LABEL: ChromeWording;
|
|
12
|
+
export declare const SHAPE_TOOL_NAME: ChromeWording;
|
|
13
|
+
export declare const SHAPE_TEXT_FIT_GROW: ChromeWording;
|
|
14
|
+
export declare const SHAPE_TEXT_FIT_CONTAINED: ChromeWording;
|
|
15
|
+
export declare const SHAPE_TEXT_FIT_OVERFLOW: ChromeWording;
|
|
16
|
+
/**
|
|
17
|
+
* The cycling button's aria-label and tooltip — interpolated with the
|
|
18
|
+
* already-resolved mode label(s) rather than split into per-word keys (the
|
|
19
|
+
* brief's "don't split a sentence" rule).
|
|
20
|
+
*/
|
|
21
|
+
export declare const SHAPE_TEXT_FIT_ARIA: ChromeWording;
|
|
22
|
+
export declare const SHAPE_TEXT_FIT_TOOLTIP: ChromeWording;
|
|
23
|
+
export declare const SHAPE_SWITCH_TYPE_LABEL: ChromeWording;
|
|
24
|
+
export declare const SHAPE_ADD_TEXT_TOOLTIP: ChromeWording;
|
|
25
|
+
export declare const SHAPE_EDIT_VERTICES_TOOLTIP: ChromeWording;
|
|
26
|
+
export declare const SHAPE_NAME_SQUARE: ChromeWording;
|
|
27
|
+
export declare const SHAPE_NAME_ELLIPSE: ChromeWording;
|
|
28
|
+
export declare const SHAPE_NAME_DIAMOND: ChromeWording;
|
|
29
|
+
export declare const SHAPE_NAME_TRIANGLE: ChromeWording;
|
|
30
|
+
export declare const SHAPE_NAME_POLYGON: ChromeWording;
|
|
31
|
+
export declare const SHAPE_NAME_ROUNDED_RECT: ChromeWording;
|
|
32
|
+
/**
|
|
33
|
+
* Every wording this package DECLARES (not the re-exported chrome ones — they
|
|
34
|
+
* are `CHROME_WORDINGS` entries already, and listing them again here would
|
|
35
|
+
* offer a host the same key twice).
|
|
36
|
+
*/
|
|
37
|
+
export declare const SHAPE_WORDINGS: readonly ChromeWording[];
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { ADD_TEXT_TOOLTIP, STYLE_GENERAL, STYLE_MENU_LABEL, STYLE_SCRIBBLED, TOOL_NAME_SHAPE, } from '../affine-shared/services/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The shape toolbar's own wordings. `STYLE_GENERAL` / `STYLE_SCRIBBLED` /
|
|
4
|
+
* `STYLE_MENU_LABEL` / `TOOL_NAME_SHAPE` are declared once in `chrome.ts`
|
|
5
|
+
* (shared with `widgets/edgeless-toolbar` and `gfx/mindmap`) and re-exported
|
|
6
|
+
* here under this package's own name, so a call site in this package can
|
|
7
|
+
* import everything it needs from one place.
|
|
8
|
+
*/
|
|
9
|
+
export const SHAPE_STYLE_GENERAL = STYLE_GENERAL;
|
|
10
|
+
export const SHAPE_STYLE_SCRIBBLED = STYLE_SCRIBBLED;
|
|
11
|
+
export const SHAPE_STYLE_MENU_LABEL = STYLE_MENU_LABEL;
|
|
12
|
+
export const SHAPE_TOOL_NAME = TOOL_NAME_SHAPE;
|
|
13
|
+
/* ── Text-fit cycling button ───────────────────────────────────────────── */
|
|
14
|
+
export const SHAPE_TEXT_FIT_GROW = [
|
|
15
|
+
'com.labre.shape.text-fit.grow',
|
|
16
|
+
'Grow shape',
|
|
17
|
+
];
|
|
18
|
+
export const SHAPE_TEXT_FIT_CONTAINED = [
|
|
19
|
+
'com.labre.shape.text-fit.contained',
|
|
20
|
+
'Contained text',
|
|
21
|
+
];
|
|
22
|
+
export const SHAPE_TEXT_FIT_OVERFLOW = [
|
|
23
|
+
'com.labre.shape.text-fit.overflow',
|
|
24
|
+
'Overflow text',
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* The cycling button's aria-label and tooltip — interpolated with the
|
|
28
|
+
* already-resolved mode label(s) rather than split into per-word keys (the
|
|
29
|
+
* brief's "don't split a sentence" rule).
|
|
30
|
+
*/
|
|
31
|
+
export const SHAPE_TEXT_FIT_ARIA = [
|
|
32
|
+
'com.labre.shape.text-fit.aria',
|
|
33
|
+
'Text fit: {{label}}',
|
|
34
|
+
];
|
|
35
|
+
export const SHAPE_TEXT_FIT_TOOLTIP = [
|
|
36
|
+
'com.labre.shape.text-fit.tooltip',
|
|
37
|
+
'Text fit: {{label}} — click for {{nextLabel}}',
|
|
38
|
+
];
|
|
39
|
+
/* ── Toolbar actions ────────────────────────────────────────────────────── */
|
|
40
|
+
export const SHAPE_SWITCH_TYPE_LABEL = [
|
|
41
|
+
'com.labre.shape.toolbar.switch-type',
|
|
42
|
+
'Switch shape type',
|
|
43
|
+
];
|
|
44
|
+
export const SHAPE_ADD_TEXT_TOOLTIP = ADD_TEXT_TOOLTIP;
|
|
45
|
+
export const SHAPE_EDIT_VERTICES_TOOLTIP = [
|
|
46
|
+
'com.labre.shape.toolbar.edit-vertices',
|
|
47
|
+
'Edit vertices',
|
|
48
|
+
];
|
|
49
|
+
/* ── Shape names (switch-type menu, drag basket) ───────────────────────── */
|
|
50
|
+
export const SHAPE_NAME_SQUARE = [
|
|
51
|
+
'com.labre.shape.name.square',
|
|
52
|
+
'Square',
|
|
53
|
+
];
|
|
54
|
+
export const SHAPE_NAME_ELLIPSE = [
|
|
55
|
+
'com.labre.shape.name.ellipse',
|
|
56
|
+
'Ellipse',
|
|
57
|
+
];
|
|
58
|
+
export const SHAPE_NAME_DIAMOND = [
|
|
59
|
+
'com.labre.shape.name.diamond',
|
|
60
|
+
'Diamond',
|
|
61
|
+
];
|
|
62
|
+
export const SHAPE_NAME_TRIANGLE = [
|
|
63
|
+
'com.labre.shape.name.triangle',
|
|
64
|
+
'Triangle',
|
|
65
|
+
];
|
|
66
|
+
export const SHAPE_NAME_POLYGON = [
|
|
67
|
+
'com.labre.shape.name.polygon',
|
|
68
|
+
'Polygon',
|
|
69
|
+
];
|
|
70
|
+
export const SHAPE_NAME_ROUNDED_RECT = [
|
|
71
|
+
'com.labre.shape.name.rounded-rect',
|
|
72
|
+
'Rounded rectangle',
|
|
73
|
+
];
|
|
74
|
+
/**
|
|
75
|
+
* Every wording this package DECLARES (not the re-exported chrome ones — they
|
|
76
|
+
* are `CHROME_WORDINGS` entries already, and listing them again here would
|
|
77
|
+
* offer a host the same key twice).
|
|
78
|
+
*/
|
|
79
|
+
export const SHAPE_WORDINGS = [
|
|
80
|
+
SHAPE_TEXT_FIT_GROW,
|
|
81
|
+
SHAPE_TEXT_FIT_CONTAINED,
|
|
82
|
+
SHAPE_TEXT_FIT_OVERFLOW,
|
|
83
|
+
SHAPE_TEXT_FIT_ARIA,
|
|
84
|
+
SHAPE_TEXT_FIT_TOOLTIP,
|
|
85
|
+
SHAPE_SWITCH_TYPE_LABEL,
|
|
86
|
+
SHAPE_EDIT_VERTICES_TOOLTIP,
|
|
87
|
+
SHAPE_NAME_SQUARE,
|
|
88
|
+
SHAPE_NAME_ELLIPSE,
|
|
89
|
+
SHAPE_NAME_DIAMOND,
|
|
90
|
+
SHAPE_NAME_TRIANGLE,
|
|
91
|
+
SHAPE_NAME_POLYGON,
|
|
92
|
+
SHAPE_NAME_ROUNDED_RECT,
|
|
93
|
+
];
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ConnectorMode, FontFamily, FontWeight, PointStyle, ShapeStyle, StrokeStyle, TextAlign, } from '../../affine-model/index.js';
|
|
2
2
|
import { NOTATION_NEUTRALS } from '../../affine-shared/consts/index.js';
|
|
3
|
+
import { fillPlaceholders, translateKey, } from '../../affine-shared/services/index.js';
|
|
3
4
|
import { makeTemplateSnapshot, surfaceText, } from '../make-snapshot.js';
|
|
5
|
+
import { BMC_SEED_CHANNELS, BMC_SEED_COST_STRUCTURE, BMC_SEED_CUSTOMER_RELATIONSHIPS, BMC_SEED_CUSTOMER_SEGMENTS, BMC_SEED_DATE, BMC_SEED_DESIGNED_BY, BMC_SEED_DESIGNED_FOR, BMC_SEED_KEY_ACTIVITIES, BMC_SEED_KEY_PARTNERSHIPS, BMC_SEED_KEY_RESOURCES, BMC_SEED_REVENUE_STREAMS, BMC_SEED_TITLE, BMC_SEED_VALUE_PROPOSITIONS, BMC_SEED_VERSION, FISHBONE_SEED_CATEGORY, FISHBONE_SEED_EFFECT, FISHBONE_SEED_ITEM_1, FISHBONE_SEED_ITEM_2, GANTT_SEED_BUILD, GANTT_SEED_DESIGN, GANTT_SEED_DISCOVERY, GANTT_SEED_LAUNCH, GANTT_SEED_WEEK, KANBAN_SEED_CARD, KANBAN_SEED_DOING, KANBAN_SEED_DONE, KANBAN_SEED_TODO, SWOT_SEED_OPPORTUNITIES, SWOT_SEED_STRENGTHS, SWOT_SEED_THREATS, SWOT_SEED_WEAKNESSES, TEMPLATE_PANEL_CATEGORY_OTHER, } from '../translations.js';
|
|
4
6
|
/**
|
|
5
7
|
* The generic ("Other") diagrams: built ONLY from general BlockSuite shapes
|
|
6
8
|
* (`shape` rect/polygon, `text`, `connector`) per the composition principle —
|
|
@@ -63,21 +65,27 @@ function line(x1, y1, x2, y2, opts = {}) {
|
|
|
63
65
|
target: { position: [x2, y2] },
|
|
64
66
|
};
|
|
65
67
|
}
|
|
68
|
+
/** Resolve a wording through the host, or its English fallback with no host. */
|
|
69
|
+
function tr(std, wording, params) {
|
|
70
|
+
return std
|
|
71
|
+
? translateKey(std, ...wording, params)
|
|
72
|
+
: fillPlaceholders(wording[1], params);
|
|
73
|
+
}
|
|
66
74
|
// ── SWOT (window-mullion quadrant, black labels) ──────────────────────
|
|
67
|
-
function swot() {
|
|
75
|
+
function swot(std) {
|
|
68
76
|
const M = { fontSize: 22, weight: FontWeight.Medium };
|
|
69
77
|
return {
|
|
70
78
|
box: rect(0, 0, 520, 340),
|
|
71
79
|
v: line(260, 0, 260, 340),
|
|
72
80
|
h: line(0, 170, 520, 170),
|
|
73
|
-
s: label(24, 24, 220, 30,
|
|
74
|
-
w: label(284, 24, 220, 30,
|
|
75
|
-
o: label(24, 194, 220, 30,
|
|
76
|
-
t: label(284, 194, 220, 30,
|
|
81
|
+
s: label(24, 24, 220, 30, tr(std, SWOT_SEED_STRENGTHS), M),
|
|
82
|
+
w: label(284, 24, 220, 30, tr(std, SWOT_SEED_WEAKNESSES), M),
|
|
83
|
+
o: label(24, 194, 220, 30, tr(std, SWOT_SEED_OPPORTUNITIES), M),
|
|
84
|
+
t: label(284, 194, 220, 30, tr(std, SWOT_SEED_THREATS), M),
|
|
77
85
|
};
|
|
78
86
|
}
|
|
79
87
|
// ── Kanban (To do / Doing / Done) ─────────────────────────────────────
|
|
80
|
-
function kanban() {
|
|
88
|
+
function kanban(std) {
|
|
81
89
|
const colOpts = {
|
|
82
90
|
fill: NOTATION_NEUTRALS.cardFill,
|
|
83
91
|
stroke: MUTED,
|
|
@@ -89,21 +97,22 @@ function kanban() {
|
|
|
89
97
|
weight: FontWeight.Medium,
|
|
90
98
|
align: TextAlign.Center,
|
|
91
99
|
};
|
|
100
|
+
const cardText = tr(std, KANBAN_SEED_CARD);
|
|
92
101
|
const card = (x, y, fill, stroke) => rect(x, y, 188, 60, {
|
|
93
102
|
fill,
|
|
94
103
|
stroke,
|
|
95
104
|
sw: 1.5,
|
|
96
105
|
radius: 8,
|
|
97
|
-
text:
|
|
106
|
+
text: cardText,
|
|
98
107
|
fontSize: 14,
|
|
99
108
|
});
|
|
100
109
|
return {
|
|
101
110
|
c1: rect(0, 0, 220, 420, colOpts),
|
|
102
111
|
c2: rect(244, 0, 220, 420, colOpts),
|
|
103
112
|
c3: rect(488, 0, 220, 420, colOpts),
|
|
104
|
-
h1: label(0, 16, 220, 24,
|
|
105
|
-
h2: label(244, 16, 220, 24,
|
|
106
|
-
h3: label(488, 16, 220, 24,
|
|
113
|
+
h1: label(0, 16, 220, 24, tr(std, KANBAN_SEED_TODO), head),
|
|
114
|
+
h2: label(244, 16, 220, 24, tr(std, KANBAN_SEED_DOING), head),
|
|
115
|
+
h3: label(488, 16, 220, 24, tr(std, KANBAN_SEED_DONE), head),
|
|
107
116
|
a1: card(16, 56, '#fde6c8', '#e0a23a'),
|
|
108
117
|
a2: card(16, 128, '#fde6c8', '#e0a23a'),
|
|
109
118
|
b1: card(260, 56, '#d6e4fb', '#4574c4'),
|
|
@@ -112,7 +121,7 @@ function kanban() {
|
|
|
112
121
|
};
|
|
113
122
|
}
|
|
114
123
|
// ── Business Model Canvas (Strategyzer 9-block layout) ────────────────
|
|
115
|
-
function bmc() {
|
|
124
|
+
function bmc(std) {
|
|
116
125
|
const blk = { stroke: DARK, sw: 1.5 };
|
|
117
126
|
const t = (x, y, s) => label(x + 12, y + 12, 180, 22, s, {
|
|
118
127
|
fontSize: 14,
|
|
@@ -125,12 +134,12 @@ function bmc() {
|
|
|
125
134
|
color: NOTATION_NEUTRALS.label,
|
|
126
135
|
}),
|
|
127
136
|
});
|
|
128
|
-
const h1 = hdr(470,
|
|
129
|
-
const h2 = hdr(602,
|
|
130
|
-
const h3 = hdr(734,
|
|
131
|
-
const h4 = hdr(866,
|
|
137
|
+
const h1 = hdr(470, tr(std, BMC_SEED_DESIGNED_FOR));
|
|
138
|
+
const h2 = hdr(602, tr(std, BMC_SEED_DESIGNED_BY));
|
|
139
|
+
const h3 = hdr(734, tr(std, BMC_SEED_DATE));
|
|
140
|
+
const h4 = hdr(866, tr(std, BMC_SEED_VERSION));
|
|
132
141
|
return {
|
|
133
|
-
title: label(0, 8, 440, 32,
|
|
142
|
+
title: label(0, 8, 440, 32, tr(std, BMC_SEED_TITLE), {
|
|
134
143
|
fontSize: 24,
|
|
135
144
|
weight: FontWeight.Medium,
|
|
136
145
|
}),
|
|
@@ -151,20 +160,23 @@ function bmc() {
|
|
|
151
160
|
cs: rect(800, 56, 196, 300, blk),
|
|
152
161
|
cost: rect(0, 360, 496, 84, blk),
|
|
153
162
|
rev: rect(500, 360, 496, 84, blk),
|
|
154
|
-
tkp: t(0, 56,
|
|
155
|
-
tka: t(200, 56,
|
|
156
|
-
tkr: t(200, 206,
|
|
157
|
-
tvp: t(400, 56,
|
|
158
|
-
tcr: t(600, 56,
|
|
159
|
-
tch: t(600, 206,
|
|
160
|
-
tcs: t(800, 56,
|
|
161
|
-
tcost: t(0, 360,
|
|
162
|
-
trev: t(500, 360,
|
|
163
|
+
tkp: t(0, 56, tr(std, BMC_SEED_KEY_PARTNERSHIPS)),
|
|
164
|
+
tka: t(200, 56, tr(std, BMC_SEED_KEY_ACTIVITIES)),
|
|
165
|
+
tkr: t(200, 206, tr(std, BMC_SEED_KEY_RESOURCES)),
|
|
166
|
+
tvp: t(400, 56, tr(std, BMC_SEED_VALUE_PROPOSITIONS)),
|
|
167
|
+
tcr: t(600, 56, tr(std, BMC_SEED_CUSTOMER_RELATIONSHIPS)),
|
|
168
|
+
tch: t(600, 206, tr(std, BMC_SEED_CHANNELS)),
|
|
169
|
+
tcs: t(800, 56, tr(std, BMC_SEED_CUSTOMER_SEGMENTS)),
|
|
170
|
+
tcost: t(0, 360, tr(std, BMC_SEED_COST_STRUCTURE)),
|
|
171
|
+
trev: t(500, 360, tr(std, BMC_SEED_REVENUE_STREAMS)),
|
|
163
172
|
};
|
|
164
173
|
}
|
|
165
174
|
// ── Fishbone / Ishikawa (spine + arrowhead bones + CATEGORY/ITEM) ─────
|
|
166
|
-
function fishbone() {
|
|
167
|
-
const
|
|
175
|
+
function fishbone(std) {
|
|
176
|
+
const categoryText = tr(std, FISHBONE_SEED_CATEGORY);
|
|
177
|
+
const item1Text = tr(std, FISHBONE_SEED_ITEM_1);
|
|
178
|
+
const item2Text = tr(std, FISHBONE_SEED_ITEM_2);
|
|
179
|
+
const cat = (x, y) => rect(x, y, 150, 44, { text: categoryText, fontSize: 13 });
|
|
168
180
|
const item = (x, y, n) => rect(x, y, 130, 40, {
|
|
169
181
|
stroke: MUTED,
|
|
170
182
|
sw: 1.4,
|
|
@@ -175,7 +187,10 @@ function fishbone() {
|
|
|
175
187
|
});
|
|
176
188
|
const out = {
|
|
177
189
|
spine: line(80, 360, 1120, 360, { sw: 6 }),
|
|
178
|
-
head: rect(1124, 332, 130, 56, {
|
|
190
|
+
head: rect(1124, 332, 130, 56, {
|
|
191
|
+
text: tr(std, FISHBONE_SEED_EFFECT),
|
|
192
|
+
fontSize: 16,
|
|
193
|
+
}),
|
|
179
194
|
};
|
|
180
195
|
// two rib-groups (junctions at x = 360 and 760)
|
|
181
196
|
[360, 760].forEach((jx, g) => {
|
|
@@ -184,16 +199,21 @@ function fishbone() {
|
|
|
184
199
|
out[`lb${g}`] = line(ox + 200, 470, jx, 362, { sw: 3, arrow: true });
|
|
185
200
|
out[`uc${g}`] = cat(ox + 150, 224);
|
|
186
201
|
out[`lc${g}`] = cat(ox + 150, 452);
|
|
187
|
-
out[`ui1${g}`] = item(ox + 130, 286,
|
|
188
|
-
out[`ui2${g}`] = item(ox + 170, 326,
|
|
189
|
-
out[`li1${g}`] = item(ox + 130, 396,
|
|
190
|
-
out[`li2${g}`] = item(ox + 170, 356,
|
|
202
|
+
out[`ui1${g}`] = item(ox + 130, 286, item1Text);
|
|
203
|
+
out[`ui2${g}`] = item(ox + 170, 326, item2Text);
|
|
204
|
+
out[`li1${g}`] = item(ox + 130, 396, item1Text);
|
|
205
|
+
out[`li2${g}`] = item(ox + 170, 356, item2Text);
|
|
191
206
|
});
|
|
192
207
|
return out;
|
|
193
208
|
}
|
|
194
209
|
// ── Gantt chart ───────────────────────────────────────────────────────
|
|
195
|
-
function gantt() {
|
|
196
|
-
const rows = [
|
|
210
|
+
function gantt(std) {
|
|
211
|
+
const rows = [
|
|
212
|
+
tr(std, GANTT_SEED_DISCOVERY),
|
|
213
|
+
tr(std, GANTT_SEED_DESIGN),
|
|
214
|
+
tr(std, GANTT_SEED_BUILD),
|
|
215
|
+
tr(std, GANTT_SEED_LAUNCH),
|
|
216
|
+
];
|
|
197
217
|
const bars = [
|
|
198
218
|
[220, 280, '#4574c4'],
|
|
199
219
|
[340, 360, '#2f9e95'],
|
|
@@ -208,7 +228,7 @@ function gantt() {
|
|
|
208
228
|
stroke: NOTATION_NEUTRALS.cardBorder,
|
|
209
229
|
sw: 1,
|
|
210
230
|
});
|
|
211
|
-
out[`w${i}`] = label(x - 16, 12, 40, 20,
|
|
231
|
+
out[`w${i}`] = label(x - 16, 12, 40, 20, tr(std, GANTT_SEED_WEEK, { n: i + 1 }), {
|
|
212
232
|
fontSize: 12,
|
|
213
233
|
color: NOTATION_NEUTRALS.label,
|
|
214
234
|
align: TextAlign.Center,
|
|
@@ -235,21 +255,29 @@ const previews = {
|
|
|
235
255
|
fishbone: `<svg ${ATTRS} fill="none"><path d="M14 40 H112" stroke="${DARK}" stroke-width="3"/><rect x="112" y="33" width="20" height="14" stroke="${DARK}" stroke-width="1.4"/><path d="M40 18 L52 40 M40 62 L52 40 M84 18 L96 40 M84 62 L96 40" stroke="${DARK}" stroke-width="1.4"/></svg>`,
|
|
236
256
|
gantt: `<svg ${ATTRS} fill="none"><path d="M40 14 V70 M62 14 V70 M84 14 V70 M106 14 V70" stroke="${NOTATION_NEUTRALS.cardBorder}"/><rect x="40" y="22" width="34" height="8" rx="2" fill="#4574c4"/><rect x="52" y="36" width="44" height="8" rx="2" fill="#2f9e95"/><rect x="62" y="50" width="50" height="8" rx="2" fill="#d99a2b"/><rect x="84" y="64" width="28" height="8" rx="2" fill="#43a06b"/></svg>`,
|
|
237
257
|
};
|
|
238
|
-
|
|
258
|
+
/**
|
|
259
|
+
* A hand-composed template — what is left once the artefacts are derived. The
|
|
260
|
+
* seeds a template writes into the document go through the translation seam
|
|
261
|
+
* at placement (ADR 0016); `content` stays the English build, and `localize`
|
|
262
|
+
* rebuilds the same snapshot with translated seeds.
|
|
263
|
+
*/
|
|
264
|
+
function t(name, preview, build) {
|
|
239
265
|
return {
|
|
240
266
|
name,
|
|
241
267
|
type: 'template',
|
|
242
268
|
preview,
|
|
243
|
-
content: makeTemplateSnapshot(
|
|
269
|
+
content: makeTemplateSnapshot(build(), name),
|
|
270
|
+
localize: std => makeTemplateSnapshot(build(std), name),
|
|
244
271
|
};
|
|
245
272
|
}
|
|
246
273
|
export const otherTemplateCategory = {
|
|
247
274
|
name: 'Other',
|
|
275
|
+
nameKey: TEMPLATE_PANEL_CATEGORY_OTHER[0],
|
|
248
276
|
templates: [
|
|
249
|
-
t('SWOT', previews.swot, swot
|
|
250
|
-
t('Kanban board', previews.kanban, kanban
|
|
251
|
-
t('Business model canvas', previews.bmc, bmc
|
|
252
|
-
t('Fishbone (Ishikawa)', previews.fishbone, fishbone
|
|
253
|
-
t('Gantt chart', previews.gantt, gantt
|
|
277
|
+
t('SWOT', previews.swot, swot),
|
|
278
|
+
t('Kanban board', previews.kanban, kanban),
|
|
279
|
+
t('Business model canvas', previews.bmc, bmc),
|
|
280
|
+
t('Fishbone (Ishikawa)', previews.fishbone, fishbone),
|
|
281
|
+
t('Gantt chart', previews.gantt, gantt),
|
|
254
282
|
],
|
|
255
283
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createIdentifier } from '../global/di/index.js';
|
|
2
2
|
import { builtInTemplates } from './toolbar/builtin-templates.js';
|
|
3
|
+
import { resolveTemplateName } from './toolbar/resolve-name.js';
|
|
3
4
|
/**
|
|
4
5
|
* A framework registers its Templates-panel categories here; the panel reads
|
|
5
6
|
* them back from the std of the edgeless it opens on. One identifier per
|
|
@@ -55,6 +56,7 @@ export function templateManagerFor(std) {
|
|
|
55
56
|
...contributed.map(c => c.name),
|
|
56
57
|
]),
|
|
57
58
|
],
|
|
59
|
+
categoryLabel: name => byName(name)?.nameKey ?? builtInTemplates.categoryLabel(name),
|
|
58
60
|
// Both halves, so a host's `extend(...)` can still append to a framework's
|
|
59
61
|
// own category (the global half answers `[]` for a name it does not know).
|
|
60
62
|
list: async (name) => {
|
|
@@ -67,9 +69,14 @@ export function templateManagerFor(std) {
|
|
|
67
69
|
search: async (keyword, name) => {
|
|
68
70
|
const k = keyword.trim().toLocaleLowerCase();
|
|
69
71
|
const pool = name ? [byName(name)].filter(c => !!c) : contributed;
|
|
72
|
+
// Matches the ENGLISH name (`templateFromCommand`'s baked-in `name`,
|
|
73
|
+
// still what a catalogue-less playground shows) or the host's own
|
|
74
|
+
// translation of it (`resolveTemplateName`, through the command's
|
|
75
|
+
// `labelKey`) — a search box must not go blind on a translated tile.
|
|
70
76
|
const own = (await Promise.all(pool.map(loadCategory)))
|
|
71
77
|
.flat()
|
|
72
|
-
.filter(t => t.name?.toLocaleLowerCase().includes(k)
|
|
78
|
+
.filter(t => t.name?.toLocaleLowerCase().includes(k) ||
|
|
79
|
+
resolveTemplateName(std, t).toLocaleLowerCase().includes(k));
|
|
73
80
|
return [...(await builtInTemplates.search(keyword, name)), ...own];
|
|
74
81
|
},
|
|
75
82
|
};
|
|
@@ -3,6 +3,8 @@ export * from './make-snapshot.js';
|
|
|
3
3
|
export * from './services/template.js';
|
|
4
4
|
export * from './snapshot-from-action.js';
|
|
5
5
|
export * from './template-tool.js';
|
|
6
|
+
export * from './toolbar/resolve-name.js';
|
|
6
7
|
export * from './toolbar/senior-tool.js';
|
|
7
8
|
export * from './toolbar/template-panel.js';
|
|
8
9
|
export * from './toolbar/template-type.js';
|
|
10
|
+
export * from './translations.js';
|
|
@@ -3,6 +3,8 @@ export * from './make-snapshot.js';
|
|
|
3
3
|
export * from './services/template.js';
|
|
4
4
|
export * from './snapshot-from-action.js';
|
|
5
5
|
export * from './template-tool.js';
|
|
6
|
+
export * from './toolbar/resolve-name.js';
|
|
6
7
|
export * from './toolbar/senior-tool.js';
|
|
7
8
|
export * from './toolbar/template-panel.js';
|
|
8
9
|
export * from './toolbar/template-type.js';
|
|
10
|
+
export * from './translations.js';
|
|
@@ -10,8 +10,13 @@ import type { Template } from './toolbar/template-type.js';
|
|
|
10
10
|
* placement actions actually touch and throws on anything else, so an
|
|
11
11
|
* unsupported action fails loudly at build time instead of producing a
|
|
12
12
|
* half-empty template.
|
|
13
|
+
*
|
|
14
|
+
* `host` is the editor the template is being inserted into. Its
|
|
15
|
+
* `TranslationProvider`, and nothing else from it, is handed to the action, so
|
|
16
|
+
* the seeds the action writes come out in the host's language. Without a host,
|
|
17
|
+
* the action writes its English fallbacks.
|
|
13
18
|
*/
|
|
14
|
-
export declare function snapshotFromAction(run: (std: BlockStdScope) => void, name: string): ReturnType<typeof makeTemplateSnapshot>;
|
|
19
|
+
export declare function snapshotFromAction(run: (std: BlockStdScope) => void, name: string, host?: BlockStdScope): ReturnType<typeof makeTemplateSnapshot>;
|
|
15
20
|
/**
|
|
16
21
|
* Derive a template from the command a user would have run — the template IS
|
|
17
22
|
* the command, so the two can never say different things about what a
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EdgelessCRUDIdentifier } from '../affine-block-surface/index.js';
|
|
2
|
+
import { TranslationProvider } from '../affine-shared/services/index.js';
|
|
2
3
|
import { Bound } from '../global/gfx/index.js';
|
|
3
4
|
import { generateKeyBetween, GfxControllerIdentifier } from '../std/gfx/index.js';
|
|
4
5
|
import * as Y from 'yjs';
|
|
@@ -27,8 +28,13 @@ function materialize(text) {
|
|
|
27
28
|
* placement actions actually touch and throws on anything else, so an
|
|
28
29
|
* unsupported action fails loudly at build time instead of producing a
|
|
29
30
|
* half-empty template.
|
|
31
|
+
*
|
|
32
|
+
* `host` is the editor the template is being inserted into. Its
|
|
33
|
+
* `TranslationProvider`, and nothing else from it, is handed to the action, so
|
|
34
|
+
* the seeds the action writes come out in the host's language. Without a host,
|
|
35
|
+
* the action writes its English fallbacks.
|
|
30
36
|
*/
|
|
31
|
-
export function snapshotFromAction(run, name) {
|
|
37
|
+
export function snapshotFromAction(run, name, host) {
|
|
32
38
|
const elements = new Map();
|
|
33
39
|
let n = 0;
|
|
34
40
|
let lastIndex = null;
|
|
@@ -119,7 +125,9 @@ export function snapshotFromAction(run, name) {
|
|
|
119
125
|
return crud;
|
|
120
126
|
throw new Error(`snapshotFromAction: unsupported service "${identifier?.identifierName ?? String(identifier)}"`);
|
|
121
127
|
},
|
|
122
|
-
getOptional: () =>
|
|
128
|
+
getOptional: (identifier) => identifier === TranslationProvider
|
|
129
|
+
? host?.getOptional(TranslationProvider)
|
|
130
|
+
: undefined,
|
|
123
131
|
command: {
|
|
124
132
|
// Really run the command, so a group built by `createGroupCommand` is
|
|
125
133
|
// whatever that command says a group is — no second definition here.
|
|
@@ -193,13 +201,15 @@ function normalizeToOrigin(records) {
|
|
|
193
201
|
* framework's artefact looks like.
|
|
194
202
|
*/
|
|
195
203
|
export function templateFromCommand(command, preview, name = command.labelFallback ?? command.id) {
|
|
204
|
+
const run = (std) => {
|
|
205
|
+
void command.run(std, INVOCATION);
|
|
206
|
+
};
|
|
196
207
|
return {
|
|
197
208
|
name,
|
|
198
209
|
type: 'template',
|
|
199
210
|
preview,
|
|
200
211
|
commandId: command.id,
|
|
201
|
-
content: snapshotFromAction(
|
|
202
|
-
|
|
203
|
-
}, name),
|
|
212
|
+
content: snapshotFromAction(run, name),
|
|
213
|
+
localize: host => snapshotFromAction(run, name, host),
|
|
204
214
|
};
|
|
205
215
|
}
|
|
@@ -3,6 +3,7 @@ export declare const templates: TemplateCategory[];
|
|
|
3
3
|
export declare const builtInTemplates: {
|
|
4
4
|
list: (category: string) => Promise<Template[]>;
|
|
5
5
|
categories: () => Promise<string[]>;
|
|
6
|
+
categoryLabel: (name: string) => string | undefined;
|
|
6
7
|
search: (keyword: string, cateName?: string) => Promise<Template[]>;
|
|
7
8
|
extend(manager: TemplateManager): void;
|
|
8
9
|
};
|