@formicoidea/labre-core 0.39.3 → 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/emoji-margin.js +19 -11
- 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.d.ts +16 -0
- package/dist/_pkgs/affine-block-note/configs/tooltips.js +150 -90
- 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/styles.js +30 -83
- 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/turbo/paragraph-layout-handler.js +1 -0
- package/dist/_pkgs/affine-block-paragraph/turbo/paragraph-painter.worker.d.ts +2 -0
- package/dist/_pkgs/affine-block-paragraph/turbo/paragraph-painter.worker.js +6 -1
- 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/framework-background/def.d.ts +4 -1
- package/dist/_pkgs/affine-block-surface/framework-background/def.js +6 -2
- 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 +101 -56
- 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/markdown.d.ts +3 -0
- package/dist/_pkgs/affine-inline-preset/markdown.js +19 -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/consts/heading.d.ts +29 -0
- package/dist/_pkgs/affine-shared/consts/heading.js +70 -0
- package/dist/_pkgs/affine-shared/consts/index.d.ts +2 -0
- package/dist/_pkgs/affine-shared/consts/index.js +2 -0
- package/dist/_pkgs/affine-shared/consts/notation.d.ts +67 -0
- package/dist/_pkgs/affine-shared/consts/notation.js +65 -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,18 +1,26 @@
|
|
|
1
1
|
import { ConnectorMode, FontFamily, FontWeight, PointStyle, ShapeStyle, StrokeStyle, TextAlign, } from '../../affine-model/index.js';
|
|
2
|
+
import { NOTATION_NEUTRALS } from '../../affine-shared/consts/index.js';
|
|
3
|
+
import { fillPlaceholders, translateKey, } from '../../affine-shared/services/index.js';
|
|
2
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';
|
|
3
6
|
/**
|
|
4
7
|
* The generic ("Other") diagrams: built ONLY from general BlockSuite shapes
|
|
5
8
|
* (`shape` rect/polygon, `text`, `connector`) per the composition principle —
|
|
6
9
|
* they belong to no framework, so they ship from the template package itself.
|
|
7
10
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Their neutrals are the shared notation scale's, like every framework's:
|
|
13
|
+
* the ink, the divider grey, the label grey and the card white. Only
|
|
14
|
+
* the hues (kanban cards, gantt bars) are the diagrams' own.
|
|
15
|
+
*/
|
|
16
|
+
const DARK = NOTATION_NEUTRALS.ink;
|
|
17
|
+
const MUTED = NOTATION_NEUTRALS.divider;
|
|
10
18
|
function rect(x, y, w, h, opts = {}) {
|
|
11
19
|
const el = {
|
|
12
20
|
type: 'shape',
|
|
13
21
|
shapeType: opts.shapeType ?? 'rect',
|
|
14
22
|
filled: true,
|
|
15
|
-
fillColor: opts.fill ??
|
|
23
|
+
fillColor: opts.fill ?? NOTATION_NEUTRALS.cardFill,
|
|
16
24
|
strokeColor: opts.stroke ?? DARK,
|
|
17
25
|
strokeWidth: opts.sw ?? 2,
|
|
18
26
|
strokeStyle: opts.dash ? StrokeStyle.Dash : StrokeStyle.Solid,
|
|
@@ -36,7 +44,7 @@ function label(x, y, w, h, str, opts = {}) {
|
|
|
36
44
|
return {
|
|
37
45
|
type: 'text',
|
|
38
46
|
text: surfaceText(str),
|
|
39
|
-
color: opts.color ??
|
|
47
|
+
color: opts.color ?? DARK,
|
|
40
48
|
fontFamily: FontFamily.Inter,
|
|
41
49
|
fontSize: opts.fontSize ?? 16,
|
|
42
50
|
fontWeight: opts.weight ?? FontWeight.Regular,
|
|
@@ -57,42 +65,54 @@ function line(x1, y1, x2, y2, opts = {}) {
|
|
|
57
65
|
target: { position: [x2, y2] },
|
|
58
66
|
};
|
|
59
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
|
+
}
|
|
60
74
|
// ── SWOT (window-mullion quadrant, black labels) ──────────────────────
|
|
61
|
-
function swot() {
|
|
75
|
+
function swot(std) {
|
|
62
76
|
const M = { fontSize: 22, weight: FontWeight.Medium };
|
|
63
77
|
return {
|
|
64
78
|
box: rect(0, 0, 520, 340),
|
|
65
79
|
v: line(260, 0, 260, 340),
|
|
66
80
|
h: line(0, 170, 520, 170),
|
|
67
|
-
s: label(24, 24, 220, 30,
|
|
68
|
-
w: label(284, 24, 220, 30,
|
|
69
|
-
o: label(24, 194, 220, 30,
|
|
70
|
-
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),
|
|
71
85
|
};
|
|
72
86
|
}
|
|
73
87
|
// ── Kanban (To do / Doing / Done) ─────────────────────────────────────
|
|
74
|
-
function kanban() {
|
|
75
|
-
const colOpts = {
|
|
88
|
+
function kanban(std) {
|
|
89
|
+
const colOpts = {
|
|
90
|
+
fill: NOTATION_NEUTRALS.cardFill,
|
|
91
|
+
stroke: MUTED,
|
|
92
|
+
sw: 1.5,
|
|
93
|
+
radius: 10,
|
|
94
|
+
};
|
|
76
95
|
const head = {
|
|
77
96
|
fontSize: 18,
|
|
78
97
|
weight: FontWeight.Medium,
|
|
79
98
|
align: TextAlign.Center,
|
|
80
99
|
};
|
|
100
|
+
const cardText = tr(std, KANBAN_SEED_CARD);
|
|
81
101
|
const card = (x, y, fill, stroke) => rect(x, y, 188, 60, {
|
|
82
102
|
fill,
|
|
83
103
|
stroke,
|
|
84
104
|
sw: 1.5,
|
|
85
105
|
radius: 8,
|
|
86
|
-
text:
|
|
106
|
+
text: cardText,
|
|
87
107
|
fontSize: 14,
|
|
88
108
|
});
|
|
89
109
|
return {
|
|
90
110
|
c1: rect(0, 0, 220, 420, colOpts),
|
|
91
111
|
c2: rect(244, 0, 220, 420, colOpts),
|
|
92
112
|
c3: rect(488, 0, 220, 420, colOpts),
|
|
93
|
-
h1: label(0, 16, 220, 24,
|
|
94
|
-
h2: label(244, 16, 220, 24,
|
|
95
|
-
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),
|
|
96
116
|
a1: card(16, 56, '#fde6c8', '#e0a23a'),
|
|
97
117
|
a2: card(16, 128, '#fde6c8', '#e0a23a'),
|
|
98
118
|
b1: card(260, 56, '#d6e4fb', '#4574c4'),
|
|
@@ -101,7 +121,7 @@ function kanban() {
|
|
|
101
121
|
};
|
|
102
122
|
}
|
|
103
123
|
// ── Business Model Canvas (Strategyzer 9-block layout) ────────────────
|
|
104
|
-
function bmc() {
|
|
124
|
+
function bmc(std) {
|
|
105
125
|
const blk = { stroke: DARK, sw: 1.5 };
|
|
106
126
|
const t = (x, y, s) => label(x + 12, y + 12, 180, 22, s, {
|
|
107
127
|
fontSize: 14,
|
|
@@ -109,14 +129,17 @@ function bmc() {
|
|
|
109
129
|
});
|
|
110
130
|
const hdr = (x, s) => ({
|
|
111
131
|
box: rect(x, 8, 128, 34, { stroke: MUTED, sw: 1 }),
|
|
112
|
-
txt: label(x + 8, 16, 120, 18, s, {
|
|
132
|
+
txt: label(x + 8, 16, 120, 18, s, {
|
|
133
|
+
fontSize: 11,
|
|
134
|
+
color: NOTATION_NEUTRALS.label,
|
|
135
|
+
}),
|
|
113
136
|
});
|
|
114
|
-
const h1 = hdr(470,
|
|
115
|
-
const h2 = hdr(602,
|
|
116
|
-
const h3 = hdr(734,
|
|
117
|
-
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));
|
|
118
141
|
return {
|
|
119
|
-
title: label(0, 8, 440, 32,
|
|
142
|
+
title: label(0, 8, 440, 32, tr(std, BMC_SEED_TITLE), {
|
|
120
143
|
fontSize: 24,
|
|
121
144
|
weight: FontWeight.Medium,
|
|
122
145
|
}),
|
|
@@ -137,31 +160,37 @@ function bmc() {
|
|
|
137
160
|
cs: rect(800, 56, 196, 300, blk),
|
|
138
161
|
cost: rect(0, 360, 496, 84, blk),
|
|
139
162
|
rev: rect(500, 360, 496, 84, blk),
|
|
140
|
-
tkp: t(0, 56,
|
|
141
|
-
tka: t(200, 56,
|
|
142
|
-
tkr: t(200, 206,
|
|
143
|
-
tvp: t(400, 56,
|
|
144
|
-
tcr: t(600, 56,
|
|
145
|
-
tch: t(600, 206,
|
|
146
|
-
tcs: t(800, 56,
|
|
147
|
-
tcost: t(0, 360,
|
|
148
|
-
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)),
|
|
149
172
|
};
|
|
150
173
|
}
|
|
151
174
|
// ── Fishbone / Ishikawa (spine + arrowhead bones + CATEGORY/ITEM) ─────
|
|
152
|
-
function fishbone() {
|
|
153
|
-
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 });
|
|
154
180
|
const item = (x, y, n) => rect(x, y, 130, 40, {
|
|
155
181
|
stroke: MUTED,
|
|
156
182
|
sw: 1.4,
|
|
157
183
|
dash: true,
|
|
158
184
|
text: n,
|
|
159
|
-
textColor:
|
|
185
|
+
textColor: NOTATION_NEUTRALS.label,
|
|
160
186
|
fontSize: 13,
|
|
161
187
|
});
|
|
162
188
|
const out = {
|
|
163
189
|
spine: line(80, 360, 1120, 360, { sw: 6 }),
|
|
164
|
-
head: rect(1124, 332, 130, 56, {
|
|
190
|
+
head: rect(1124, 332, 130, 56, {
|
|
191
|
+
text: tr(std, FISHBONE_SEED_EFFECT),
|
|
192
|
+
fontSize: 16,
|
|
193
|
+
}),
|
|
165
194
|
};
|
|
166
195
|
// two rib-groups (junctions at x = 360 and 760)
|
|
167
196
|
[360, 760].forEach((jx, g) => {
|
|
@@ -170,16 +199,21 @@ function fishbone() {
|
|
|
170
199
|
out[`lb${g}`] = line(ox + 200, 470, jx, 362, { sw: 3, arrow: true });
|
|
171
200
|
out[`uc${g}`] = cat(ox + 150, 224);
|
|
172
201
|
out[`lc${g}`] = cat(ox + 150, 452);
|
|
173
|
-
out[`ui1${g}`] = item(ox + 130, 286,
|
|
174
|
-
out[`ui2${g}`] = item(ox + 170, 326,
|
|
175
|
-
out[`li1${g}`] = item(ox + 130, 396,
|
|
176
|
-
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);
|
|
177
206
|
});
|
|
178
207
|
return out;
|
|
179
208
|
}
|
|
180
209
|
// ── Gantt chart ───────────────────────────────────────────────────────
|
|
181
|
-
function gantt() {
|
|
182
|
-
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
|
+
];
|
|
183
217
|
const bars = [
|
|
184
218
|
[220, 280, '#4574c4'],
|
|
185
219
|
[340, 360, '#2f9e95'],
|
|
@@ -190,10 +224,13 @@ function gantt() {
|
|
|
190
224
|
// week gridlines + labels
|
|
191
225
|
for (let i = 0; i < 6; i++) {
|
|
192
226
|
const x = 220 + i * 130;
|
|
193
|
-
out[`g${i}`] = line(x, 40, x, 268, {
|
|
194
|
-
|
|
227
|
+
out[`g${i}`] = line(x, 40, x, 268, {
|
|
228
|
+
stroke: NOTATION_NEUTRALS.cardBorder,
|
|
229
|
+
sw: 1,
|
|
230
|
+
});
|
|
231
|
+
out[`w${i}`] = label(x - 16, 12, 40, 20, tr(std, GANTT_SEED_WEEK, { n: i + 1 }), {
|
|
195
232
|
fontSize: 12,
|
|
196
|
-
color:
|
|
233
|
+
color: NOTATION_NEUTRALS.label,
|
|
197
234
|
align: TextAlign.Center,
|
|
198
235
|
});
|
|
199
236
|
}
|
|
@@ -212,27 +249,35 @@ function gantt() {
|
|
|
212
249
|
}
|
|
213
250
|
const ATTRS = 'width="100%" height="100%" viewBox="0 0 135 80" xmlns="http://www.w3.org/2000/svg"';
|
|
214
251
|
const previews = {
|
|
215
|
-
swot: `<svg ${ATTRS} fill="none"><rect x="20" y="12" width="95" height="56" stroke="
|
|
216
|
-
kanban: `<svg ${ATTRS} fill="none"><rect x="10" y="12" width="35" height="56" rx="4" stroke="
|
|
217
|
-
bmc: `<svg ${ATTRS} fill="none"><g stroke="
|
|
218
|
-
fishbone: `<svg ${ATTRS} fill="none"><path d="M14 40 H112" stroke="
|
|
219
|
-
gantt: `<svg ${ATTRS} fill="none"><path d="M40 14 V70 M62 14 V70 M84 14 V70 M106 14 V70" stroke="
|
|
252
|
+
swot: `<svg ${ATTRS} fill="none"><rect x="20" y="12" width="95" height="56" stroke="${DARK}" stroke-width="2"/><path d="M67.5 12 V68 M20 40 H115" stroke="${DARK}" stroke-width="1.6"/></svg>`,
|
|
253
|
+
kanban: `<svg ${ATTRS} fill="none"><rect x="10" y="12" width="35" height="56" rx="4" stroke="${MUTED}"/><rect x="50" y="12" width="35" height="56" rx="4" stroke="${MUTED}"/><rect x="90" y="12" width="35" height="56" rx="4" stroke="${MUTED}"/><rect x="15" y="22" width="25" height="11" rx="2" fill="#fde6c8"/><rect x="55" y="22" width="25" height="11" rx="2" fill="#d6e4fb"/><rect x="95" y="22" width="25" height="11" rx="2" fill="#d5efd9"/></svg>`,
|
|
254
|
+
bmc: `<svg ${ATTRS} fill="none"><g stroke="${DARK}" stroke-width="1.2"><rect x="8" y="14" width="22" height="40"/><rect x="32" y="14" width="22" height="20"/><rect x="32" y="35" width="22" height="19"/><rect x="56" y="14" width="22" height="40"/><rect x="80" y="14" width="22" height="20"/><rect x="80" y="35" width="22" height="19"/><rect x="104" y="14" width="22" height="40"/><rect x="8" y="56" width="57" height="14"/><rect x="68" y="56" width="58" height="14"/></g></svg>`,
|
|
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>`,
|
|
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>`,
|
|
220
257
|
};
|
|
221
|
-
|
|
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) {
|
|
222
265
|
return {
|
|
223
266
|
name,
|
|
224
267
|
type: 'template',
|
|
225
268
|
preview,
|
|
226
|
-
content: makeTemplateSnapshot(
|
|
269
|
+
content: makeTemplateSnapshot(build(), name),
|
|
270
|
+
localize: std => makeTemplateSnapshot(build(std), name),
|
|
227
271
|
};
|
|
228
272
|
}
|
|
229
273
|
export const otherTemplateCategory = {
|
|
230
274
|
name: 'Other',
|
|
275
|
+
nameKey: TEMPLATE_PANEL_CATEGORY_OTHER[0],
|
|
231
276
|
templates: [
|
|
232
|
-
t('SWOT', previews.swot, swot
|
|
233
|
-
t('Kanban board', previews.kanban, kanban
|
|
234
|
-
t('Business model canvas', previews.bmc, bmc
|
|
235
|
-
t('Fishbone (Ishikawa)', previews.fishbone, fishbone
|
|
236
|
-
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),
|
|
237
282
|
],
|
|
238
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';
|