@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.
Files changed (449) hide show
  1. package/dist/_pkgs/affine-block-attachment/attachment-block.js +7 -2
  2. package/dist/_pkgs/affine-block-attachment/components/rename-model.js +3 -2
  3. package/dist/_pkgs/affine-block-attachment/configs/slash-menu.js +7 -0
  4. package/dist/_pkgs/affine-block-attachment/configs/toolbar.js +11 -3
  5. package/dist/_pkgs/affine-block-attachment/configs/tooltips.js +4 -4
  6. package/dist/_pkgs/affine-block-attachment/translations.d.ts +49 -0
  7. package/dist/_pkgs/affine-block-attachment/translations.js +98 -0
  8. package/dist/_pkgs/affine-block-attachment/utils.js +9 -6
  9. package/dist/_pkgs/affine-block-bookmark/components/bookmark-card.js +13 -6
  10. package/dist/_pkgs/affine-block-bookmark/configs/slash-menu.js +6 -1
  11. package/dist/_pkgs/affine-block-bookmark/configs/toolbar.js +9 -1
  12. package/dist/_pkgs/affine-block-bookmark/configs/tooltips.js +2 -2
  13. package/dist/_pkgs/affine-block-bookmark/translations.d.ts +26 -0
  14. package/dist/_pkgs/affine-block-bookmark/translations.js +55 -0
  15. package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +4 -0
  16. package/dist/_pkgs/affine-block-callout/configs/tooltips.js +2 -2
  17. package/dist/_pkgs/affine-block-callout/emoji-margin.js +19 -11
  18. package/dist/_pkgs/affine-block-callout/translations.d.ts +16 -0
  19. package/dist/_pkgs/affine-block-callout/translations.js +24 -0
  20. package/dist/_pkgs/affine-block-code/code-block.js +6 -3
  21. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +4 -2
  22. package/dist/_pkgs/affine-block-code/code-toolbar/components/lang-button.js +3 -2
  23. package/dist/_pkgs/affine-block-code/code-toolbar/components/preview-button.js +4 -3
  24. package/dist/_pkgs/affine-block-code/code-toolbar/config.js +116 -72
  25. package/dist/_pkgs/affine-block-code/translations.d.ts +30 -0
  26. package/dist/_pkgs/affine-block-code/translations.js +84 -0
  27. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +2 -2
  28. package/dist/_pkgs/affine-block-embed/common/render-linked-doc.js +7 -6
  29. package/dist/_pkgs/affine-block-embed/configs/toolbar.js +11 -2
  30. package/dist/_pkgs/affine-block-embed/embed-html-block/components/fullscreen-toolbar.js +4 -3
  31. package/dist/_pkgs/affine-block-embed/embed-html-block/configs/toolbar.js +5 -1
  32. package/dist/_pkgs/affine-block-embed/embed-html-block/configs/tooltips.js +14 -14
  33. package/dist/_pkgs/affine-block-embed/embed-html-block/embed-html-block.js +7 -1
  34. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-error-card.js +11 -4
  35. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-idle-card.d.ts +2 -0
  36. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-idle-card.js +13 -3
  37. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-edit-popup.js +4 -2
  38. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-input-base.js +8 -5
  39. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-input-popup.js +21 -5
  40. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-loading-card.js +4 -1
  41. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/slash-menu/slash-menu.js +4 -0
  42. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.d.ts +2 -0
  43. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +6 -1
  44. package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.js +3 -1
  45. package/dist/_pkgs/affine-block-embed/translations.d.ts +46 -0
  46. package/dist/_pkgs/affine-block-embed/translations.js +114 -0
  47. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/slash-menu.js +7 -0
  48. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +29 -12
  49. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/tooltips.js +4 -4
  50. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +10 -4
  51. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/components/embed-synced-doc-card.js +8 -4
  52. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +28 -13
  53. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-edgeless-synced-doc-block.js +3 -2
  54. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +3 -2
  55. package/dist/_pkgs/affine-block-embed-doc/translations.d.ts +40 -0
  56. package/dist/_pkgs/affine-block-embed-doc/translations.js +85 -0
  57. package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-dense-menu.js +29 -22
  58. package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-menu.js +5 -1
  59. package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-tool-button.js +2 -1
  60. package/dist/_pkgs/affine-block-frame/edgeless-toolbar/presentation-toolbar.js +12 -9
  61. package/dist/_pkgs/affine-block-frame/frame-manager.js +8 -2
  62. package/dist/_pkgs/affine-block-frame/frame-tool.js +7 -2
  63. package/dist/_pkgs/affine-block-frame/frame-toolbar.js +12 -6
  64. package/dist/_pkgs/affine-block-frame/index.d.ts +1 -0
  65. package/dist/_pkgs/affine-block-frame/index.js +1 -0
  66. package/dist/_pkgs/affine-block-frame/present/frame-order-button.js +5 -1
  67. package/dist/_pkgs/affine-block-frame/present/navigator-setting-button.js +16 -6
  68. package/dist/_pkgs/affine-block-frame/present/present-button.js +3 -1
  69. package/dist/_pkgs/affine-block-frame/translations.d.ts +64 -0
  70. package/dist/_pkgs/affine-block-frame/translations.js +131 -0
  71. package/dist/_pkgs/affine-block-image/components/page-image-block.js +5 -2
  72. package/dist/_pkgs/affine-block-image/configs/slash-menu.js +4 -0
  73. package/dist/_pkgs/affine-block-image/configs/toolbar.js +7 -1
  74. package/dist/_pkgs/affine-block-image/configs/tooltips.js +1 -1
  75. package/dist/_pkgs/affine-block-image/image-block.js +3 -2
  76. package/dist/_pkgs/affine-block-image/image-edgeless-block.js +6 -3
  77. package/dist/_pkgs/affine-block-image/preview-image/page.js +5 -1
  78. package/dist/_pkgs/affine-block-image/translations.d.ts +35 -0
  79. package/dist/_pkgs/affine-block-image/translations.js +68 -0
  80. package/dist/_pkgs/affine-block-image/utils.js +9 -8
  81. package/dist/_pkgs/affine-block-latex/configs/slash-menu.d.ts +8 -0
  82. package/dist/_pkgs/affine-block-latex/configs/slash-menu.js +19 -3
  83. package/dist/_pkgs/affine-block-latex/latex-block.js +6 -2
  84. package/dist/_pkgs/affine-block-latex/translations.d.ts +35 -0
  85. package/dist/_pkgs/affine-block-latex/translations.js +60 -0
  86. package/dist/_pkgs/affine-block-note/components/edgeless-note-border-dropdown-menu.d.ts +9 -0
  87. package/dist/_pkgs/affine-block-note/components/edgeless-note-border-dropdown-menu.js +23 -6
  88. package/dist/_pkgs/affine-block-note/components/edgeless-note-display-mode-dropdown-menu.d.ts +4 -1
  89. package/dist/_pkgs/affine-block-note/components/edgeless-note-display-mode-dropdown-menu.js +26 -6
  90. package/dist/_pkgs/affine-block-note/components/edgeless-note-shadow-menu.d.ts +3 -0
  91. package/dist/_pkgs/affine-block-note/components/edgeless-note-shadow-menu.js +21 -10
  92. package/dist/_pkgs/affine-block-note/components/edgeless-note-style-panel.js +22 -8
  93. package/dist/_pkgs/affine-block-note/configs/slash-menu.js +13 -0
  94. package/dist/_pkgs/affine-block-note/configs/toolbar.js +26 -19
  95. package/dist/_pkgs/affine-block-note/configs/tooltips.d.ts +16 -0
  96. package/dist/_pkgs/affine-block-note/configs/tooltips.js +150 -90
  97. package/dist/_pkgs/affine-block-note/move-block.js +8 -2
  98. package/dist/_pkgs/affine-block-note/translations.d.ts +91 -0
  99. package/dist/_pkgs/affine-block-note/translations.js +253 -0
  100. package/dist/_pkgs/affine-block-paragraph/paragraph-block.js +7 -2
  101. package/dist/_pkgs/affine-block-paragraph/styles.js +30 -83
  102. package/dist/_pkgs/affine-block-paragraph/translations.d.ts +31 -0
  103. package/dist/_pkgs/affine-block-paragraph/translations.js +44 -0
  104. package/dist/_pkgs/affine-block-paragraph/turbo/paragraph-layout-handler.js +1 -0
  105. package/dist/_pkgs/affine-block-paragraph/turbo/paragraph-painter.worker.d.ts +2 -0
  106. package/dist/_pkgs/affine-block-paragraph/turbo/paragraph-painter.worker.js +6 -1
  107. package/dist/_pkgs/affine-block-paragraph/view.js +6 -1
  108. package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +3 -1
  109. package/dist/_pkgs/affine-block-root/configs/toolbar.js +6 -3
  110. package/dist/_pkgs/affine-block-root/edgeless/clipboard/utils.js +1 -1
  111. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/alignment.js +26 -4
  112. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/misc.d.ts +14 -0
  113. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/misc.js +10 -3
  114. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.d.ts +8 -0
  115. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +9 -0
  116. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +15 -6
  117. package/dist/_pkgs/affine-block-root/edgeless/utils/consts.d.ts +0 -1
  118. package/dist/_pkgs/affine-block-root/edgeless/utils/consts.js +0 -1
  119. package/dist/_pkgs/affine-block-root/translations.d.ts +61 -0
  120. package/dist/_pkgs/affine-block-root/translations.js +172 -0
  121. package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +3 -1
  122. package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +1 -0
  123. package/dist/_pkgs/affine-block-surface/extensions/index.js +1 -0
  124. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +31 -12
  125. package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +40 -8
  126. package/dist/_pkgs/affine-block-surface/extensions/interchange.js +27 -0
  127. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +2 -2
  128. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +5 -2
  129. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +3 -2
  130. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.d.ts +48 -0
  131. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.js +120 -0
  132. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +36 -23
  133. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +5 -5
  134. package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +4 -1
  135. package/dist/_pkgs/affine-block-surface/framework-background/def.js +6 -2
  136. package/dist/_pkgs/affine-block-surface-ref/components/placeholder.d.ts +2 -1
  137. package/dist/_pkgs/affine-block-surface-ref/components/placeholder.js +21 -6
  138. package/dist/_pkgs/affine-block-surface-ref/configs/slash-menu.js +24 -7
  139. package/dist/_pkgs/affine-block-surface-ref/configs/tooltips.js +2 -2
  140. package/dist/_pkgs/affine-block-surface-ref/index.d.ts +1 -0
  141. package/dist/_pkgs/affine-block-surface-ref/index.js +1 -0
  142. package/dist/_pkgs/affine-block-surface-ref/surface-ref-block-edgeless.js +1 -0
  143. package/dist/_pkgs/affine-block-surface-ref/surface-ref-block.js +1 -0
  144. package/dist/_pkgs/affine-block-surface-ref/translations.d.ts +83 -0
  145. package/dist/_pkgs/affine-block-surface-ref/translations.js +175 -0
  146. package/dist/_pkgs/affine-block-surface-ref/utils.d.ts +8 -1
  147. package/dist/_pkgs/affine-block-surface-ref/utils.js +12 -4
  148. package/dist/_pkgs/affine-components/caption/block-caption.js +3 -1
  149. package/dist/_pkgs/affine-components/card-style-dropdown-menu/dropdown-menu.js +4 -3
  150. package/dist/_pkgs/affine-components/citation/citation.d.ts +2 -0
  151. package/dist/_pkgs/affine-components/citation/citation.js +19 -3
  152. package/dist/_pkgs/affine-components/color-picker/button.d.ts +6 -0
  153. package/dist/_pkgs/affine-components/color-picker/button.js +15 -1
  154. package/dist/_pkgs/affine-components/color-picker/color-panel.d.ts +8 -0
  155. package/dist/_pkgs/affine-components/color-picker/color-panel.js +17 -2
  156. package/dist/_pkgs/affine-components/color-picker/color-picker.d.ts +4 -0
  157. package/dist/_pkgs/affine-components/color-picker/color-picker.js +27 -3
  158. package/dist/_pkgs/affine-components/color-picker/types.d.ts +21 -0
  159. package/dist/_pkgs/affine-components/color-picker/utils.d.ts +28 -2
  160. package/dist/_pkgs/affine-components/color-picker/utils.js +32 -0
  161. package/dist/_pkgs/affine-components/context-menu/menu-renderer.d.ts +3 -0
  162. package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +34 -7
  163. package/dist/_pkgs/affine-components/edgeless-line-styles-panel/line-styles-panel.d.ts +2 -0
  164. package/dist/_pkgs/affine-components/edgeless-line-styles-panel/line-styles-panel.js +21 -2
  165. package/dist/_pkgs/affine-components/edgeless-line-width-panel/line-width-panel.d.ts +2 -0
  166. package/dist/_pkgs/affine-components/edgeless-line-width-panel/line-width-panel.js +18 -2
  167. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.d.ts +2 -0
  168. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +34 -5
  169. package/dist/_pkgs/affine-components/embed-card-modal/embed-card-create-modal.js +5 -4
  170. package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +11 -9
  171. package/dist/_pkgs/affine-components/filterable-list/index.d.ts +2 -0
  172. package/dist/_pkgs/affine-components/filterable-list/index.js +17 -2
  173. package/dist/_pkgs/affine-components/highlight-dropdown-menu/dropdown-menu.d.ts +3 -0
  174. package/dist/_pkgs/affine-components/highlight-dropdown-menu/dropdown-menu.js +40 -7
  175. package/dist/_pkgs/affine-components/icon-button/index.d.ts +1 -1
  176. package/dist/_pkgs/affine-components/icon-button/index.js +1 -1
  177. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +6 -0
  178. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +42 -7
  179. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +4 -0
  180. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +35 -5
  181. package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +2 -0
  182. package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +22 -5
  183. package/dist/_pkgs/affine-components/linked-doc-title/doc-title.d.ts +2 -0
  184. package/dist/_pkgs/affine-components/linked-doc-title/doc-title.js +16 -3
  185. package/dist/_pkgs/affine-components/notification/linked-doc.js +5 -4
  186. package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.js +7 -4
  187. package/dist/_pkgs/affine-components/resource/resource.d.ts +16 -1
  188. package/dist/_pkgs/affine-components/resource/resource.js +19 -4
  189. package/dist/_pkgs/affine-components/resource/status.d.ts +2 -0
  190. package/dist/_pkgs/affine-components/resource/status.js +27 -12
  191. package/dist/_pkgs/affine-components/size-dropdown-menu/dropdown-menu.d.ts +4 -1
  192. package/dist/_pkgs/affine-components/size-dropdown-menu/dropdown-menu.js +23 -4
  193. package/dist/_pkgs/affine-components/toast/toast.d.ts +1 -1
  194. package/dist/_pkgs/affine-components/toast/toast.js +1 -1
  195. package/dist/_pkgs/affine-components/toggle-button/toggle-button.d.ts +3 -0
  196. package/dist/_pkgs/affine-components/toggle-button/toggle-button.js +18 -3
  197. package/dist/_pkgs/affine-components/toolbar/icon-button.d.ts +2 -0
  198. package/dist/_pkgs/affine-components/toolbar/icon-button.js +18 -2
  199. package/dist/_pkgs/affine-components/toolbar/tooltip.d.ts +3 -3
  200. package/dist/_pkgs/affine-components/toolbar/tooltip.js +3 -3
  201. package/dist/_pkgs/affine-components/translations.d.ts +141 -0
  202. package/dist/_pkgs/affine-components/translations.js +478 -0
  203. package/dist/_pkgs/affine-fragment-adapter-panel/adapter-panel.d.ts +3 -0
  204. package/dist/_pkgs/affine-fragment-adapter-panel/adapter-panel.js +12 -1
  205. package/dist/_pkgs/affine-fragment-adapter-panel/body/adapter-panel-body.js +4 -3
  206. package/dist/_pkgs/affine-fragment-adapter-panel/config.d.ts +13 -0
  207. package/dist/_pkgs/affine-fragment-adapter-panel/config.js +18 -4
  208. package/dist/_pkgs/affine-fragment-adapter-panel/header/adapter-menu.js +2 -2
  209. package/dist/_pkgs/affine-fragment-adapter-panel/header/adapter-panel-header.js +2 -2
  210. package/dist/_pkgs/affine-fragment-adapter-panel/translations.d.ts +24 -0
  211. package/dist/_pkgs/affine-fragment-adapter-panel/translations.js +37 -0
  212. package/dist/_pkgs/affine-fragment-doc-title/doc-title.d.ts +1 -0
  213. package/dist/_pkgs/affine-fragment-doc-title/doc-title.js +9 -1
  214. package/dist/_pkgs/affine-fragment-doc-title/translations.d.ts +13 -0
  215. package/dist/_pkgs/affine-fragment-doc-title/translations.js +17 -0
  216. package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +3 -2
  217. package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +10 -4
  218. package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +18 -6
  219. package/dist/_pkgs/affine-fragment-frame-panel/translations.d.ts +16 -0
  220. package/dist/_pkgs/affine-fragment-frame-panel/translations.js +44 -0
  221. package/dist/_pkgs/affine-fragment-outline/body/outline-notice.js +10 -4
  222. package/dist/_pkgs/affine-fragment-outline/body/outline-panel-body.js +6 -3
  223. package/dist/_pkgs/affine-fragment-outline/card/outline-card.js +13 -6
  224. package/dist/_pkgs/affine-fragment-outline/card/outline-preview.d.ts +1 -0
  225. package/dist/_pkgs/affine-fragment-outline/card/outline-preview.js +16 -9
  226. package/dist/_pkgs/affine-fragment-outline/config.d.ts +1 -20
  227. package/dist/_pkgs/affine-fragment-outline/config.js +8 -23
  228. package/dist/_pkgs/affine-fragment-outline/header/outline-panel-header.js +10 -3
  229. package/dist/_pkgs/affine-fragment-outline/header/outline-setting-menu.js +9 -2
  230. package/dist/_pkgs/affine-fragment-outline/outline-viewer.js +6 -3
  231. package/dist/_pkgs/affine-fragment-outline/translations.d.ts +54 -0
  232. package/dist/_pkgs/affine-fragment-outline/translations.js +110 -0
  233. package/dist/_pkgs/affine-gfx-brush/toolbar/components/eraser/eraser-tool-button.js +3 -2
  234. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/consts.d.ts +3 -0
  235. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/consts.js +3 -0
  236. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-menu.js +5 -4
  237. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +3 -2
  238. package/dist/_pkgs/affine-gfx-brush/toolbar/configs/brush.js +4 -2
  239. package/dist/_pkgs/affine-gfx-brush/toolbar/configs/highlighter.js +4 -2
  240. package/dist/_pkgs/affine-gfx-brush/translations.d.ts +17 -0
  241. package/dist/_pkgs/affine-gfx-brush/translations.js +30 -0
  242. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +8 -1
  243. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +7 -1
  244. package/dist/_pkgs/affine-gfx-connector/text/edgeless-connector-label-editor.js +3 -2
  245. package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +4 -1
  246. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +24 -10
  247. package/dist/_pkgs/affine-gfx-connector/toolbar/connector-dense-menu.js +7 -5
  248. package/dist/_pkgs/affine-gfx-connector/toolbar/connector-menu.js +8 -6
  249. package/dist/_pkgs/affine-gfx-connector/toolbar/connector-tool-button.js +4 -3
  250. package/dist/_pkgs/affine-gfx-connector/translations.d.ts +32 -0
  251. package/dist/_pkgs/affine-gfx-connector/translations.js +79 -0
  252. package/dist/_pkgs/affine-gfx-group/command/group-api.js +6 -1
  253. package/dist/_pkgs/affine-gfx-group/index.d.ts +1 -0
  254. package/dist/_pkgs/affine-gfx-group/index.js +1 -0
  255. package/dist/_pkgs/affine-gfx-group/toolbar/config.d.ts +6 -2
  256. package/dist/_pkgs/affine-gfx-group/toolbar/config.js +9 -4
  257. package/dist/_pkgs/affine-gfx-group/translations.d.ts +24 -0
  258. package/dist/_pkgs/affine-gfx-group/translations.js +33 -0
  259. package/dist/_pkgs/affine-gfx-link/toolbar/undo-dense-menu.js +2 -1
  260. package/dist/_pkgs/affine-gfx-link/toolbar/undo-tool-button.js +2 -1
  261. package/dist/_pkgs/affine-gfx-mindmap/index.d.ts +1 -0
  262. package/dist/_pkgs/affine-gfx-mindmap/index.js +1 -0
  263. package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +628 -577
  264. package/dist/_pkgs/affine-gfx-mindmap/toolbar/basket-elements.js +7 -3
  265. package/dist/_pkgs/affine-gfx-mindmap/toolbar/config.js +9 -1
  266. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-importing-placeholder.d.ts +4 -0
  267. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-importing-placeholder.js +70 -7
  268. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +8 -5
  269. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +4 -2
  270. package/dist/_pkgs/affine-gfx-mindmap/toolbar/senior-tool.js +7 -2
  271. package/dist/_pkgs/affine-gfx-mindmap/toolbar/utils/import-mindmap.d.ts +2 -1
  272. package/dist/_pkgs/affine-gfx-mindmap/toolbar/utils/import-mindmap.js +16 -8
  273. package/dist/_pkgs/affine-gfx-mindmap/translations.d.ts +84 -0
  274. package/dist/_pkgs/affine-gfx-mindmap/translations.js +171 -0
  275. package/dist/_pkgs/affine-gfx-note/components/note-display-mode-panel.d.ts +8 -0
  276. package/dist/_pkgs/affine-gfx-note/components/note-display-mode-panel.js +24 -9
  277. package/dist/_pkgs/affine-gfx-note/components/note-shadow-panel.d.ts +9 -0
  278. package/dist/_pkgs/affine-gfx-note/components/note-shadow-panel.js +28 -8
  279. package/dist/_pkgs/affine-gfx-note/toolbar/note-menu-config.d.ts +2 -1
  280. package/dist/_pkgs/affine-gfx-note/toolbar/note-menu-config.js +42 -73
  281. package/dist/_pkgs/affine-gfx-note/toolbar/note-menu.js +21 -17
  282. package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +3 -2
  283. package/dist/_pkgs/affine-gfx-note/toolbar/note-tool-button.js +3 -1
  284. package/dist/_pkgs/affine-gfx-note/toolbar/senior-tool.js +3 -1
  285. package/dist/_pkgs/affine-gfx-note/translations.d.ts +27 -0
  286. package/dist/_pkgs/affine-gfx-note/translations.js +59 -0
  287. package/dist/_pkgs/affine-gfx-pointer/quick-tool/default-tool-button.js +10 -2
  288. package/dist/_pkgs/affine-gfx-pointer/translations.d.ts +9 -0
  289. package/dist/_pkgs/affine-gfx-pointer/translations.js +17 -0
  290. package/dist/_pkgs/affine-gfx-shape/components/shape-panel.d.ts +4 -0
  291. package/dist/_pkgs/affine-gfx-shape/components/shape-panel.js +17 -3
  292. package/dist/_pkgs/affine-gfx-shape/components/shape-style-panel.d.ts +4 -0
  293. package/dist/_pkgs/affine-gfx-shape/components/shape-style-panel.js +23 -5
  294. package/dist/_pkgs/affine-gfx-shape/draggable/shape-menu.d.ts +0 -1
  295. package/dist/_pkgs/affine-gfx-shape/draggable/shape-menu.js +6 -46
  296. package/dist/_pkgs/affine-gfx-shape/draggable/shape-tool-button.js +3 -1
  297. package/dist/_pkgs/affine-gfx-shape/toolbar/config.d.ts +2 -0
  298. package/dist/_pkgs/affine-gfx-shape/toolbar/config.js +29 -8
  299. package/dist/_pkgs/affine-gfx-shape/toolbar/senior-tool.js +2 -0
  300. package/dist/_pkgs/affine-gfx-shape/toolbar/shape-menu-config.d.ts +3 -0
  301. package/dist/_pkgs/affine-gfx-shape/toolbar/shape-menu-config.js +7 -0
  302. package/dist/_pkgs/affine-gfx-shape/translations.d.ts +37 -0
  303. package/dist/_pkgs/affine-gfx-shape/translations.js +93 -0
  304. package/dist/_pkgs/affine-gfx-template/builtin/other.js +101 -56
  305. package/dist/_pkgs/affine-gfx-template/contribute.js +8 -1
  306. package/dist/_pkgs/affine-gfx-template/index.d.ts +2 -0
  307. package/dist/_pkgs/affine-gfx-template/index.js +2 -0
  308. package/dist/_pkgs/affine-gfx-template/snapshot-from-action.d.ts +6 -1
  309. package/dist/_pkgs/affine-gfx-template/snapshot-from-action.js +15 -5
  310. package/dist/_pkgs/affine-gfx-template/toolbar/builtin-templates.d.ts +1 -0
  311. package/dist/_pkgs/affine-gfx-template/toolbar/builtin-templates.js +12 -0
  312. package/dist/_pkgs/affine-gfx-template/toolbar/resolve-name.d.ts +25 -0
  313. package/dist/_pkgs/affine-gfx-template/toolbar/resolve-name.js +36 -0
  314. package/dist/_pkgs/affine-gfx-template/toolbar/senior-tool.js +3 -1
  315. package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.d.ts +1 -0
  316. package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +30 -8
  317. package/dist/_pkgs/affine-gfx-template/toolbar/template-type.d.ts +41 -0
  318. package/dist/_pkgs/affine-gfx-template/translations.d.ts +71 -0
  319. package/dist/_pkgs/affine-gfx-template/translations.js +209 -0
  320. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +3 -2
  321. package/dist/_pkgs/affine-gfx-text/toolbar/actions.d.ts +1 -1
  322. package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +22 -9
  323. package/dist/_pkgs/affine-gfx-text/toolbar/text-menu.js +1 -0
  324. package/dist/_pkgs/affine-gfx-text/translations.d.ts +31 -0
  325. package/dist/_pkgs/affine-gfx-text/translations.js +64 -0
  326. package/dist/_pkgs/affine-inline-footnote/footnote-node/footnote-popup.js +8 -2
  327. package/dist/_pkgs/affine-inline-latex/latex-node/latex-editor-menu.js +5 -2
  328. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +7 -2
  329. package/dist/_pkgs/affine-inline-latex/translations.d.ts +13 -0
  330. package/dist/_pkgs/affine-inline-latex/translations.js +16 -0
  331. package/dist/_pkgs/affine-inline-link/link-node/configs/toolbar.d.ts +3 -3
  332. package/dist/_pkgs/affine-inline-link/link-node/configs/toolbar.js +6 -5
  333. package/dist/_pkgs/affine-inline-link/link-node/link-popup/link-popup.js +11 -5
  334. package/dist/_pkgs/affine-inline-link/translations.d.ts +23 -0
  335. package/dist/_pkgs/affine-inline-link/translations.js +44 -0
  336. package/dist/_pkgs/affine-inline-mention/affine-mention.js +11 -5
  337. package/dist/_pkgs/affine-inline-mention/translations.d.ts +16 -0
  338. package/dist/_pkgs/affine-inline-mention/translations.js +29 -0
  339. package/dist/_pkgs/affine-inline-preset/command/config.d.ts +3 -0
  340. package/dist/_pkgs/affine-inline-preset/command/config.js +8 -0
  341. package/dist/_pkgs/affine-inline-preset/markdown.d.ts +3 -0
  342. package/dist/_pkgs/affine-inline-preset/markdown.js +19 -0
  343. package/dist/_pkgs/affine-inline-preset/translations.d.ts +25 -0
  344. package/dist/_pkgs/affine-inline-preset/translations.js +28 -0
  345. package/dist/_pkgs/affine-inline-reference/reference-node/configs/toolbar.js +2 -2
  346. package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +3 -3
  347. package/dist/_pkgs/affine-inline-reference/reference-node/reference-popup/reference-popup.js +8 -6
  348. package/dist/_pkgs/affine-inline-reference/translations.d.ts +8 -0
  349. package/dist/_pkgs/affine-inline-reference/translations.js +13 -0
  350. package/dist/_pkgs/affine-rich-text/conversion.d.ts +13 -0
  351. package/dist/_pkgs/affine-rich-text/conversion.js +27 -0
  352. package/dist/_pkgs/affine-shared/adapters/clipboard/clipboard.js +1 -1
  353. package/dist/_pkgs/affine-shared/adapters/clipboard/utils.d.ts +2 -1
  354. package/dist/_pkgs/affine-shared/adapters/clipboard/utils.js +6 -3
  355. package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -2
  356. package/dist/_pkgs/affine-shared/adapters/mix-text.js +5 -2
  357. package/dist/_pkgs/affine-shared/adapters/plain-text/plain-text.js +5 -2
  358. package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
  359. package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
  360. package/dist/_pkgs/affine-shared/adapters/utils/wording.d.ts +9 -0
  361. package/dist/_pkgs/affine-shared/adapters/utils/wording.js +12 -0
  362. package/dist/_pkgs/affine-shared/consts/heading.d.ts +29 -0
  363. package/dist/_pkgs/affine-shared/consts/heading.js +70 -0
  364. package/dist/_pkgs/affine-shared/consts/index.d.ts +2 -0
  365. package/dist/_pkgs/affine-shared/consts/index.js +2 -0
  366. package/dist/_pkgs/affine-shared/consts/notation.d.ts +67 -0
  367. package/dist/_pkgs/affine-shared/consts/notation.js +65 -0
  368. package/dist/_pkgs/affine-shared/services/comment-service/utils.js +2 -0
  369. package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +6 -3
  370. package/dist/_pkgs/affine-shared/services/notification-service.js +18 -1
  371. package/dist/_pkgs/affine-shared/services/open-doc-config.d.ts +0 -1
  372. package/dist/_pkgs/affine-shared/services/open-doc-config.js +0 -2
  373. package/dist/_pkgs/affine-shared/services/translation-service/chrome.d.ts +362 -0
  374. package/dist/_pkgs/affine-shared/services/translation-service/chrome.js +955 -3
  375. package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +40 -2
  376. package/dist/_pkgs/affine-shared/services/translation-service/index.js +44 -3
  377. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +83 -2
  378. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +92 -0
  379. package/dist/_pkgs/affine-widget-drag-handle/components/edgeless-preview/preview.d.ts +4 -0
  380. package/dist/_pkgs/affine-widget-drag-handle/components/edgeless-preview/preview.js +21 -8
  381. package/dist/_pkgs/affine-widget-drag-handle/helpers/preview-helper.js +1 -0
  382. package/dist/_pkgs/affine-widget-drag-handle/translations.d.ts +14 -0
  383. package/dist/_pkgs/affine-widget-drag-handle/translations.js +35 -0
  384. package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +4 -3
  385. package/dist/_pkgs/affine-widget-edgeless-auto-connect/translations.d.ts +6 -0
  386. package/dist/_pkgs/affine-widget-edgeless-auto-connect/translations.js +14 -0
  387. package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +8 -5
  388. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +3 -2
  389. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +3 -1
  390. package/dist/_pkgs/affine-widget-edgeless-selected-rect/translations.d.ts +17 -0
  391. package/dist/_pkgs/affine-widget-edgeless-selected-rect/translations.js +30 -0
  392. package/dist/_pkgs/affine-widget-edgeless-toolbar/button/tool-icon-button.d.ts +4 -0
  393. package/dist/_pkgs/affine-widget-edgeless-toolbar/button/tool-icon-button.js +18 -2
  394. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +2 -2
  395. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/consts.d.ts +2 -0
  396. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/consts.js +3 -0
  397. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/types.d.ts +18 -1
  398. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.d.ts +8 -3
  399. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.js +38 -18
  400. package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +2 -1
  401. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-weight-and-style-panel.d.ts +8 -0
  402. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-weight-and-style-panel.js +31 -8
  403. package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.d.ts +15 -0
  404. package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.js +20 -0
  405. package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/translations.d.ts +7 -0
  406. package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/translations.js +23 -0
  407. package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/zoom-bar-toggle-button.js +3 -1
  408. package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/zoom-toolbar.js +5 -3
  409. package/dist/_pkgs/affine-widget-linked-doc/config.js +15 -10
  410. package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.d.ts +12 -1
  411. package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +27 -18
  412. package/dist/_pkgs/affine-widget-linked-doc/import-doc/index.d.ts +4 -1
  413. package/dist/_pkgs/affine-widget-linked-doc/import-doc/index.js +2 -2
  414. package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +4 -1
  415. package/dist/_pkgs/affine-widget-linked-doc/mobile-linked-doc-menu.js +6 -2
  416. package/dist/_pkgs/affine-widget-linked-doc/transformers/html.js +3 -2
  417. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +3 -2
  418. package/dist/_pkgs/affine-widget-linked-doc/translations.d.ts +53 -0
  419. package/dist/_pkgs/affine-widget-linked-doc/translations.js +104 -0
  420. package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +4 -1
  421. package/dist/_pkgs/affine-widget-remote-selection/translations.d.ts +12 -0
  422. package/dist/_pkgs/affine-widget-remote-selection/translations.js +12 -0
  423. package/dist/_pkgs/affine-widget-slash-menu/config.js +15 -0
  424. package/dist/_pkgs/affine-widget-slash-menu/index.d.ts +1 -0
  425. package/dist/_pkgs/affine-widget-slash-menu/index.js +1 -0
  426. package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +30 -15
  427. package/dist/_pkgs/affine-widget-slash-menu/tooltips/copy.js +1 -1
  428. package/dist/_pkgs/affine-widget-slash-menu/tooltips/delete.js +2 -2
  429. package/dist/_pkgs/affine-widget-slash-menu/tooltips/index.js +9 -0
  430. package/dist/_pkgs/affine-widget-slash-menu/tooltips/move-down.js +2 -2
  431. package/dist/_pkgs/affine-widget-slash-menu/tooltips/move-up.js +2 -2
  432. package/dist/_pkgs/affine-widget-slash-menu/tooltips/now.js +3 -3
  433. package/dist/_pkgs/affine-widget-slash-menu/tooltips/today.js +2 -2
  434. package/dist/_pkgs/affine-widget-slash-menu/tooltips/tomorrow.js +3 -3
  435. package/dist/_pkgs/affine-widget-slash-menu/tooltips/yesterday.js +3 -3
  436. package/dist/_pkgs/affine-widget-slash-menu/translations.d.ts +91 -0
  437. package/dist/_pkgs/affine-widget-slash-menu/translations.js +175 -0
  438. package/dist/_pkgs/affine-widget-slash-menu/types.d.ts +18 -0
  439. package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +20 -1
  440. package/dist/_pkgs/affine-widget-slash-menu/utils.js +37 -0
  441. package/dist/_pkgs/affine-widget-toolbar/translations.d.ts +9 -0
  442. package/dist/_pkgs/affine-widget-toolbar/translations.js +13 -0
  443. package/dist/_pkgs/affine-widget-toolbar/utils.js +2 -1
  444. package/dist/_pkgs/std/extension/translation-manifest.d.ts +7 -0
  445. package/dist/_pkgs/std/translations.d.ts +24 -0
  446. package/dist/_pkgs/std/translations.js +28 -0
  447. package/dist/_pkgs/std/view/element/block-component.js +24 -7
  448. package/dist/translations.js +144 -5
  449. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { ShapeStyle, ShapeType, StrokeStyle, TextAlign, } from '../../affine-model/index.js';
2
2
  import DOMPurify from 'dompurify';
3
+ import { SVG_SKETCH_CURRENT_COLOR, SVG_SKETCH_CURVE, SVG_SKETCH_EMPTY, SVG_SKETCH_EMPTY_BOX, SVG_SKETCH_EMPTY_TEXT, SVG_SKETCH_FLAT_POLYGON, SVG_SKETCH_FONT_UNIT, SVG_SKETCH_HIDDEN_DISPLAY, SVG_SKETCH_HIDDEN_VISIBILITY, SVG_SKETCH_LONE_POINT, SVG_SKETCH_OPACITY, SVG_SKETCH_PAINT_SERVER, SVG_SKETCH_PERCENT_RADIUS, SVG_SKETCH_REMOVED, SVG_SKETCH_REMOVED_ATTRIBUTE, SVG_SKETCH_SKIPPED, SVG_SKETCH_SWITCH, SVG_SKETCH_TRANSFORM, } from './svg-sketch-translations.js';
3
4
  /**
4
5
  * **SVG → a canvas sketch.** The platform's VISUAL-tier importer, shared by
5
6
  * every framework that declares it (`docs/adr/0012`, P2).
@@ -169,13 +170,25 @@ class Notebook {
169
170
  this.seen = new Set();
170
171
  this.notes = [];
171
172
  }
172
- once(key, message, element) {
173
- if (this.seen.has(key))
173
+ /**
174
+ * @param dedupKey De-duplication identity — a note fires once per distinct
175
+ * value (`font-unit:px`, `font-unit:pt`…), independent of the i18n key
176
+ * below, which stays the same across all of them.
177
+ * @param message The English sentence, already filled in with the file's
178
+ * own words — shown as is with no host catalogue registered.
179
+ * @param wording The key/fallback pair for this sentence's SHAPE
180
+ * (`svg-sketch-translations.ts`), and the params that fill its
181
+ * `{{name}}` holes when it has any.
182
+ */
183
+ once(dedupKey, message, wording, params, element) {
184
+ if (this.seen.has(dedupKey))
174
185
  return;
175
- this.seen.add(key);
186
+ this.seen.add(dedupKey);
176
187
  this.notes.push({
177
188
  kind: 'warning',
178
189
  message,
190
+ messageKey: wording[0],
191
+ ...(params ? { messageParams: params } : {}),
179
192
  ...(element ? { element } : {}),
180
193
  });
181
194
  }
@@ -226,7 +239,7 @@ function fontSizeOf(raw, inherited, notes) {
226
239
  return (value * 4) / 3;
227
240
  if (unit === 'em')
228
241
  return value * inherited;
229
- notes.once(`font-unit:${unit}`, `Font sizes in \`${unit}\` cannot be resolved without a page to measure against; those labels use the inherited size.`);
242
+ notes.once(`font-unit:${unit}`, `Font sizes in \`${unit}\` cannot be resolved without a page to measure against; those labels use the inherited size.`, SVG_SKETCH_FONT_UNIT, { unit });
230
243
  return undefined;
231
244
  }
232
245
  /**
@@ -279,13 +292,13 @@ function isHidden(element, notes) {
279
292
  const style = styleMap(element);
280
293
  const display = style.get('display') ?? element.getAttribute('display');
281
294
  if (display?.trim() === 'none') {
282
- notes.once('hidden:display', 'Parts of the file marked `display:none` were not imported — they draw nothing where the file came from either.');
295
+ notes.once('hidden:display', 'Parts of the file marked `display:none` were not imported — they draw nothing where the file came from either.', SVG_SKETCH_HIDDEN_DISPLAY);
283
296
  return true;
284
297
  }
285
298
  const visibility = style.get('visibility') ?? element.getAttribute('visibility');
286
299
  const hidden = visibility?.trim();
287
300
  if (hidden === 'hidden' || hidden === 'collapse') {
288
- notes.once('hidden:visibility', 'Parts of the file marked `visibility:hidden` were not imported — they draw nothing where the file came from either.');
301
+ notes.once('hidden:visibility', 'Parts of the file marked `visibility:hidden` were not imported — they draw nothing where the file came from either.', SVG_SKETCH_HIDDEN_VISIBILITY);
289
302
  return true;
290
303
  }
291
304
  return false;
@@ -306,7 +319,7 @@ function noteOpacity(element, notes) {
306
319
  continue;
307
320
  const value = Number.parseFloat(raw);
308
321
  if (Number.isFinite(value) && value < 1) {
309
- notes.once('opacity', 'Transparency is not carried: partly transparent shapes arrive at full strength.');
322
+ notes.once('opacity', 'Transparency is not carried: partly transparent shapes arrive at full strength.', SVG_SKETCH_OPACITY);
310
323
  return;
311
324
  }
312
325
  }
@@ -340,11 +353,11 @@ function colorOf(raw, fallback, notes) {
340
353
  if (!value || value === 'none' || value === 'transparent')
341
354
  return undefined;
342
355
  if (value.startsWith('url(')) {
343
- notes.once('paint-server', 'Gradients and patterns are not read; the shapes that used one are a flat neutral.');
356
+ notes.once('paint-server', 'Gradients and patterns are not read; the shapes that used one are a flat neutral.', SVG_SKETCH_PAINT_SERVER);
344
357
  return fallback;
345
358
  }
346
359
  if (value === 'currentColor') {
347
- notes.once('current-color', '`currentColor` has no page to inherit from here; the shapes that used it are a flat neutral.');
360
+ notes.once('current-color', '`currentColor` has no page to inherit from here; the shapes that used it are a flat neutral.', SVG_SKETCH_CURRENT_COLOR);
348
361
  return fallback;
349
362
  }
350
363
  return value;
@@ -412,7 +425,7 @@ function translated(element, frame, notes) {
412
425
  ty += values[1] ?? 0;
413
426
  continue;
414
427
  }
415
- notes.once(`transform:${kind}`, `\`${kind}\` transforms are ignored (best effort): what carried one is placed as if it did not.`);
428
+ notes.once(`transform:${kind}`, `\`${kind}\` transforms are ignored (best effort): what carried one is placed as if it did not.`, SVG_SKETCH_TRANSFORM, { kind });
416
429
  }
417
430
  // A translate is expressed in the PARENT's user units, so it is scaled by the
418
431
  // frame it was written in and never by the one it creates.
@@ -463,7 +476,7 @@ function samplePath(d, notes) {
463
476
  if (current.length >= 2)
464
477
  subpaths.push(current);
465
478
  else if (current.length === 1) {
466
- notes.once('lone-point', 'A path that never moved anywhere draws nothing and was skipped.');
479
+ notes.once('lone-point', 'A path that never moved anywhere draws nothing and was skipped.', SVG_SKETCH_LONE_POINT);
467
480
  }
468
481
  current = [];
469
482
  };
@@ -480,7 +493,7 @@ function samplePath(d, notes) {
480
493
  continue;
481
494
  }
482
495
  if (CURVE_COMMANDS.has(kind)) {
483
- notes.once('curve', 'Curves are approximated by their endpoints (best effort), so a curved path arrives as straight segments.');
496
+ notes.once('curve', 'Curves are approximated by their endpoints (best effort), so a curved path arrives as straight segments.', SVG_SKETCH_CURVE);
484
497
  }
485
498
  // One command letter may carry SEVERAL argument groups (`L 1 2 3 4`), and
486
499
  // a repeated `M` group is an implicit lineto — the spec's own rule, and the
@@ -532,7 +545,7 @@ function readRect(element, frame, paint, sketch) {
532
545
  const w = num(element, 'width');
533
546
  const h = num(element, 'height');
534
547
  if (w <= 0 || h <= 0) {
535
- sketch.notes.once('empty-box', EMPTY_BOX_NOTE);
548
+ sketch.notes.once('empty-box', EMPTY_BOX_NOTE, SVG_SKETCH_EMPTY_BOX);
536
549
  return;
537
550
  }
538
551
  // `rx` is an absolute corner radius in user units, and the shape model reads
@@ -545,7 +558,7 @@ function readRect(element, frame, paint, sketch) {
545
558
  const rawRadius = element.getAttribute('rx') ?? element.getAttribute('ry');
546
559
  let radius = 0;
547
560
  if (rawRadius?.includes('%')) {
548
- sketch.notes.once('percent-radius', 'Corner radii given as a percentage were not read; those corners arrive square.');
561
+ sketch.notes.once('percent-radius', 'Corner radii given as a percentage were not read; those corners arrive square.', SVG_SKETCH_PERCENT_RADIUS);
549
562
  }
550
563
  else {
551
564
  const scaled = len(frame, num(element, 'rx', num(element, 'ry')));
@@ -564,7 +577,7 @@ function readEllipse(element, frame, paint, sketch) {
564
577
  const rx = circle ? r : num(element, 'rx');
565
578
  const ry = circle ? r : num(element, 'ry');
566
579
  if (rx <= 0 || ry <= 0) {
567
- sketch.notes.once('empty-box', EMPTY_BOX_NOTE);
580
+ sketch.notes.once('empty-box', EMPTY_BOX_NOTE, SVG_SKETCH_EMPTY_BOX);
568
581
  return;
569
582
  }
570
583
  const cx = num(element, 'cx');
@@ -600,10 +613,10 @@ function readPolygon(element, frame, paint, sketch) {
600
613
  const h = Math.max(...ys) - minY;
601
614
  if (points.length < 3 || w <= 0 || h <= 0) {
602
615
  if (points.length === 0 || w < 0 || h < 0) {
603
- sketch.notes.once('empty-box', EMPTY_BOX_NOTE);
616
+ sketch.notes.once('empty-box', EMPTY_BOX_NOTE, SVG_SKETCH_EMPTY_BOX);
604
617
  return;
605
618
  }
606
- sketch.notes.once('flat-polygon', 'A polygon with fewer than three corners, or flat on one axis, arrives as its bounding rectangle.');
619
+ sketch.notes.once('flat-polygon', 'A polygon with fewer than three corners, or flat on one axis, arrives as its bounding rectangle.', SVG_SKETCH_FLAT_POLYGON);
607
620
  sketch.elements.push({
608
621
  ...shapeProps(paint, frame, sketch),
609
622
  shapeType: ShapeType.Rect,
@@ -710,7 +723,7 @@ function readText(element, frame, paint, sketch) {
710
723
  }
711
724
  }
712
725
  if (lines.length === 0) {
713
- sketch.notes.once('empty-text', 'Empty text elements were skipped.');
726
+ sketch.notes.once('empty-text', 'Empty text elements were skipped.', SVG_SKETCH_EMPTY_TEXT);
714
727
  return;
715
728
  }
716
729
  const fontSize = len(frame, paint.fontSize ?? DEFAULT_FONT_SIZE);
@@ -780,7 +793,7 @@ function visit(element, frame, inherited, sketch) {
780
793
  // of a label on top of itself.
781
794
  const [first, ...rest] = childElements(element).filter(child => !NON_RENDERING.has(nameOf(child)));
782
795
  if (rest.length > 0) {
783
- sketch.notes.once('switch', 'A `<switch>` offers alternative renderings; the first was imported and the others were not.');
796
+ sketch.notes.once('switch', 'A `<switch>` offers alternative renderings; the first was imported and the others were not.', SVG_SKETCH_SWITCH);
784
797
  }
785
798
  if (first)
786
799
  visit(first, here, paint, sketch);
@@ -834,7 +847,7 @@ function emit(element, name, frame, paint, sketch) {
834
847
  // and whatever SVG grows next. A drawing built out of symbol instances
835
848
  // arrives nearly empty, and this is the line that tells its author why
836
849
  // instead of leaving them to guess.
837
- sketch.notes.once(`skipped:${name}`, `\`<${name}>\` is not recognised and was skipped.`, name);
850
+ sketch.notes.once(`skipped:${name}`, `\`<${name}>\` is not recognised and was skipped.`, SVG_SKETCH_SKIPPED, { name }, name);
838
851
  }
839
852
  }
840
853
  /* ── The capability's function ────────────────────────────────────────── */
@@ -896,14 +909,14 @@ function parseSvgRoot(source, notes) {
896
909
  // plumbing.
897
910
  if (PARSER_SCAFFOLDING.has(name.toLowerCase()))
898
911
  continue;
899
- notes.once(`removed:${name.toLowerCase()}`, `\`<${name}>\` was removed while sanitizing the file — it is one of the constructs an SVG can carry code in — so nothing it drew was imported.`, name);
912
+ notes.once(`removed:${name.toLowerCase()}`, `\`<${name}>\` was removed while sanitizing the file — it is one of the constructs an SVG can carry code in — so nothing it drew was imported.`, SVG_SKETCH_REMOVED, { name }, name);
900
913
  }
901
914
  else if (removed.attribute) {
902
915
  // Worded for what this actually is, which is broader than "unsafe": the
903
916
  // sanitizer's allow-list drops an event handler AND a `requiredFeatures`,
904
917
  // and calling the second one dangerous would be this reader accusing a
905
918
  // perfectly ordinary file of something.
906
- notes.once('removed-attribute', 'Attributes outside the safe SVG drawing vocabulary — event handlers, script URLs, and anything else the sanitizer does not know — were removed before the file was read.');
919
+ notes.once('removed-attribute', 'Attributes outside the safe SVG drawing vocabulary — event handlers, script URLs, and anything else the sanitizer does not know — were removed before the file was read.', SVG_SKETCH_REMOVED_ATTRIBUTE);
907
920
  }
908
921
  }
909
922
  // No cast: `RETURN_DOM: true` in the literal selects DOMPurify's typed
@@ -937,7 +950,7 @@ export function parseSvgSketch(source, context = {}) {
937
950
  // every shape under it inherits — and it establishes the outermost viewport.
938
951
  walk(root, viewportFrame(root, IDENTITY), paintOf(root, INITIAL_PAINT, sketch.notes), sketch);
939
952
  if (sketch.elements.length === 0) {
940
- sketch.notes.once('empty', 'No shape or text was recognised in this SVG, so nothing was drawn.');
953
+ sketch.notes.once('empty', 'No shape or text was recognised in this SVG, so nothing was drawn.', SVG_SKETCH_EMPTY);
941
954
  }
942
955
  return {
943
956
  elements: sketch.elements,
@@ -1,5 +1,5 @@
1
1
  import { EditorChevronDown } from '../../affine-components/toolbar/index.js';
2
- import { getUniverseRegistry, translateKey, } from '../../affine-shared/services/index.js';
2
+ import { getUniverseRegistry, translateKey, translateTagLabel, } from '../../affine-shared/services/index.js';
3
3
  import { getRegisteredCommands, runCommand } from '../../std/index.js';
4
4
  import { elementTagValues, GfxGroupLikeElementModel, GfxPrimitiveElementModel, } from '../../std/gfx/index.js';
5
5
  import { html, nothing } from 'lit';
@@ -190,10 +190,10 @@ function runTagSet(ctx, target, tag, values) {
190
190
  /** One titled block of the dropdown — one tag. */
191
191
  function renderSection(ctx, target, def) {
192
192
  const selected = elementTagValues(target.element, def.id);
193
- const label = def.label || def.id;
193
+ const label = translateTagLabel(ctx.std, def) || def.id;
194
194
  const options = offeredValues(def, selected).map(value => {
195
195
  const on = selected.includes(value.id);
196
- const valueLabel = value.label || value.id;
196
+ const valueLabel = translateTagLabel(ctx.std, value) || value.id;
197
197
  // `data-toggle` beside `data-option`: the row draws like a native option,
198
198
  // but clicking the value in FORCE is how it is un-picked (`toggleValue`),
199
199
  // whatever the tag's cardinality. Without it the selected row inherits
@@ -240,14 +240,14 @@ function triggerLabel(ctx, target) {
240
240
  const selected = elementTagValues(target.element, def.id);
241
241
  return offeredValues(def, selected)
242
242
  .filter(value => selected.includes(value.id))
243
- .map(value => value.label || value.id);
243
+ .map(value => translateTagLabel(ctx.std, value) || value.id);
244
244
  });
245
245
  return chosen.length
246
246
  ? chosen.join(', ')
247
247
  : // One applicable tag names itself ("Nature"); several fall back to the
248
248
  // neutral word, since no single tag name is the truth about the element.
249
249
  target.tags.length === 1
250
- ? target.tags[0].label || target.tags[0].id
250
+ ? translateTagLabel(ctx.std, target.tags[0]) || target.tags[0].id
251
251
  : translateKey(ctx.std, 'com.labre.tags.toolbar.label', 'Qualify');
252
252
  }
253
253
  /**
@@ -494,7 +494,10 @@ export interface FrameworkBackgroundDef {
494
494
  transitionBandWidth?: Ratio;
495
495
  chrome?: BackgroundChromeDef;
496
496
  }
497
- /** The default card: a plain white rectangle, no border, no radius. */
497
+ /**
498
+ * The default card: a plain rectangle in the shared notation scale's card
499
+ * fill, no border, no radius.
500
+ */
498
501
  export declare const DEFAULT_BACKGROUND_SURFACE: BackgroundSurfaceDef;
499
502
  /** The plot rectangle of a background of size `w × h`, in element-local units. */
500
503
  export declare function backgroundPlot(def: FrameworkBackgroundDef, w: number, h: number): {
@@ -1,6 +1,10 @@
1
- /** The default card: a plain white rectangle, no border, no radius. */
1
+ import { NOTATION_NEUTRALS } from '../../affine-shared/consts/index.js';
2
+ /**
3
+ * The default card: a plain rectangle in the shared notation scale's card
4
+ * fill, no border, no radius.
5
+ */
2
6
  export const DEFAULT_BACKGROUND_SURFACE = {
3
- fill: '#ffffff',
7
+ fill: NOTATION_NEUTRALS.cardFill,
4
8
  };
5
9
  /** The plot rectangle of a background of size `w × h`, in element-local units. */
6
10
  export function backgroundPlot(def, w, h) {
@@ -1,5 +1,5 @@
1
1
  import { ColorScheme } from '../../affine-model/index.js';
2
- import { ShadowlessElement } from '../../std/index.js';
2
+ import { type BlockStdScope, ShadowlessElement } from '../../std/index.js';
3
3
  import { type GfxModel } from '../../std/gfx/index.js';
4
4
  import { nothing } from 'lit';
5
5
  declare const SurfaceRefPlaceHolder_base: typeof ShadowlessElement & import("../../global/utils/types.js").Constructor<import("../../global/lit/with-disposable.js").DisposableClass>;
@@ -9,6 +9,7 @@ export declare class SurfaceRefPlaceHolder extends SurfaceRefPlaceHolder_base {
9
9
  accessor refFlavour: string;
10
10
  accessor inEdgeless: boolean;
11
11
  accessor theme: ColorScheme;
12
+ accessor std: BlockStdScope;
12
13
  render(): import("lit-html").TemplateResult<1> | typeof nothing;
13
14
  }
14
15
  declare global {
@@ -33,6 +33,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
33
  return useValue ? value : void 0;
34
34
  };
35
35
  import { ColorScheme } from '../../affine-model/index.js';
36
+ import { translateKey } from '../../affine-shared/services/index.js';
36
37
  import { unsafeCSSVarV2 } from '../../affine-shared/theme/index.js';
37
38
  import { SignalWatcher, WithDisposable } from '../../global/lit/index.js';
38
39
  import { DeleteIcon } from '@blocksuite/icons/lit';
@@ -42,6 +43,7 @@ import { css, html, nothing } from 'lit';
42
43
  import { property } from 'lit/decorators.js';
43
44
  import { classMap } from 'lit/directives/class-map.js';
44
45
  import { DarkDeletedSmallBanner, LightDeletedSmallBanner } from '../icons.js';
46
+ import { SURFACE_REF_PLACEHOLDER_NOT_AVAILABLE, SURFACE_REF_TYPE_SENTENCE_WORDINGS, } from '../translations.js';
45
47
  import { getReferenceModelTitle, TYPE_ICON_MAP } from '../utils.js';
46
48
  let SurfaceRefPlaceHolder = (() => {
47
49
  let _classSuper = SignalWatcher(WithDisposable(ShadowlessElement));
@@ -57,6 +59,9 @@ let SurfaceRefPlaceHolder = (() => {
57
59
  let _theme_decorators;
58
60
  let _theme_initializers = [];
59
61
  let _theme_extraInitializers = [];
62
+ let _std_decorators;
63
+ let _std_initializers = [];
64
+ let _std_extraInitializers = [];
60
65
  return class SurfaceRefPlaceHolder extends _classSuper {
61
66
  static {
62
67
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
@@ -64,10 +69,12 @@ let SurfaceRefPlaceHolder = (() => {
64
69
  _refFlavour_decorators = [property({ attribute: false })];
65
70
  _inEdgeless_decorators = [property({ attribute: false })];
66
71
  _theme_decorators = [property({ attribute: false })];
72
+ _std_decorators = [property({ attribute: false })];
67
73
  __esDecorate(this, null, _referenceModel_decorators, { kind: "accessor", name: "referenceModel", static: false, private: false, access: { has: obj => "referenceModel" in obj, get: obj => obj.referenceModel, set: (obj, value) => { obj.referenceModel = value; } }, metadata: _metadata }, _referenceModel_initializers, _referenceModel_extraInitializers);
68
74
  __esDecorate(this, null, _refFlavour_decorators, { kind: "accessor", name: "refFlavour", static: false, private: false, access: { has: obj => "refFlavour" in obj, get: obj => obj.refFlavour, set: (obj, value) => { obj.refFlavour = value; } }, metadata: _metadata }, _refFlavour_initializers, _refFlavour_extraInitializers);
69
75
  __esDecorate(this, null, _inEdgeless_decorators, { kind: "accessor", name: "inEdgeless", static: false, private: false, access: { has: obj => "inEdgeless" in obj, get: obj => obj.inEdgeless, set: (obj, value) => { obj.inEdgeless = value; } }, metadata: _metadata }, _inEdgeless_initializers, _inEdgeless_extraInitializers);
70
76
  __esDecorate(this, null, _theme_decorators, { kind: "accessor", name: "theme", static: false, private: false, access: { has: obj => "theme" in obj, get: obj => obj.theme, set: (obj, value) => { obj.theme = value; } }, metadata: _metadata }, _theme_initializers, _theme_extraInitializers);
77
+ __esDecorate(this, null, _std_decorators, { kind: "accessor", name: "std", static: false, private: false, access: { has: obj => "std" in obj, get: obj => obj.std, set: (obj, value) => { obj.std = value; } }, metadata: _metadata }, _std_initializers, _std_extraInitializers);
71
78
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
72
79
  }
73
80
  static { this.styles = css `
@@ -129,15 +136,21 @@ let SurfaceRefPlaceHolder = (() => {
129
136
  #theme_accessor_storage = (__runInitializers(this, _inEdgeless_extraInitializers), __runInitializers(this, _theme_initializers, ColorScheme.Light));
130
137
  get theme() { return this.#theme_accessor_storage; }
131
138
  set theme(value) { this.#theme_accessor_storage = value; }
139
+ #std_accessor_storage = (__runInitializers(this, _theme_extraInitializers), __runInitializers(this, _std_initializers, void 0));
140
+ get std() { return this.#std_accessor_storage; }
141
+ set std(value) { this.#std_accessor_storage = value; }
132
142
  render() {
133
- const { referenceModel, refFlavour, inEdgeless } = this;
143
+ const { referenceModel, refFlavour, inEdgeless, std } = this;
134
144
  // When surface ref is in page mode and reference exists, don't render placeholder
135
145
  if (referenceModel && !inEdgeless)
136
146
  return nothing;
137
147
  const modelNotFound = !referenceModel;
138
148
  const matchedType = TYPE_ICON_MAP[refFlavour] ?? TYPE_ICON_MAP['edgeless'];
149
+ const matchedTypeName = translateKey(std, ...matchedType.wording);
150
+ const sentences = SURFACE_REF_TYPE_SENTENCE_WORDINGS[refFlavour] ??
151
+ SURFACE_REF_TYPE_SENTENCE_WORDINGS['edgeless'];
139
152
  const title = (referenceModel && getReferenceModelTitle(referenceModel)) ??
140
- matchedType.name;
153
+ matchedTypeName;
141
154
  const notFoundBackground = this.theme === ColorScheme.Light
142
155
  ? LightDeletedSmallBanner
143
156
  : DarkDeletedSmallBanner;
@@ -157,15 +170,17 @@ let SurfaceRefPlaceHolder = (() => {
157
170
  ${modelNotFound ? DeleteIcon() : matchedType.icon}
158
171
  <span class="surface-ref-title">
159
172
  ${modelNotFound
160
- ? `This ${matchedType.name} not available`
173
+ ? translateKey(std, ...SURFACE_REF_PLACEHOLDER_NOT_AVAILABLE, {
174
+ type: matchedTypeName,
175
+ })
161
176
  : `${title}`}
162
177
  </span>
163
178
  </div>
164
179
  <div class="surface-ref-placeholder-body">
165
180
  <span class="surface-ref-text">
166
181
  ${modelNotFound
167
- ? `The ${matchedType.name.toLowerCase()} is deleted or not in this doc.`
168
- : `The ${matchedType.name.toLowerCase()} is inserted but cannot display in edgeless mode. Switch to page mode to view the block.`}
182
+ ? translateKey(std, ...sentences.deleted)
183
+ : translateKey(std, ...sentences.cannotDisplay)}
169
184
  </span>
170
185
  </div>
171
186
  </div>
@@ -173,7 +188,7 @@ let SurfaceRefPlaceHolder = (() => {
173
188
  }
174
189
  constructor() {
175
190
  super(...arguments);
176
- __runInitializers(this, _theme_extraInitializers);
191
+ __runInitializers(this, _std_extraInitializers);
177
192
  }
178
193
  };
179
194
  })();
@@ -1,12 +1,14 @@
1
1
  import { EdgelessFrameManagerIdentifier } from '../../affine-block-frame/index.js';
2
2
  import { EdgelessCRUDExtension } from '../../affine-block-surface/index.js';
3
3
  import { MindmapStyle, SurfaceRefBlockSchema } from '../../affine-model/index.js';
4
+ import { TOOLBAR_FRAME, translateKey } from '../../affine-shared/services/index.js';
4
5
  import { SlashMenuConfigExtension, } from '../../affine-widget-slash-menu/index.js';
5
6
  import { Bound } from '../../global/gfx/index.js';
6
7
  import { FrameIcon, GroupingIcon, MindmapIcon } from '@blocksuite/icons/lit';
7
8
  import { BlockSelection } from '../../std/index.js';
8
9
  import { GfxControllerIdentifier } from '../../std/gfx/index.js';
9
10
  import { insertSurfaceRefBlockCommand } from '../commands.js';
11
+ import { SURFACE_REF_SEED_MINDMAP_NODE, SURFACE_REF_SEED_MINDMAP_ROOT, SURFACE_REF_SLASH_FRAME_DESCRIPTION, SURFACE_REF_SLASH_FRAME_ITEM_NAME, SURFACE_REF_SLASH_GROUP_ITEM_NAME, SURFACE_REF_SLASH_MINDMAP_DESCRIPTION, SURFACE_REF_SLASH_MINDMAP_NAME, SURFACE_REF_SLASH_TOOLTIP_EDGELESS, } from '../translations.js';
10
12
  import { EdgelessTooltip, FrameTooltip, MindMapTooltip } from './tooltips.js';
11
13
  const surfaceRefSlashMenuConfig = {
12
14
  items: ({ std, model }) => {
@@ -42,11 +44,14 @@ const surfaceRefSlashMenuConfig = {
42
44
  let index = 0;
43
45
  const insertBlankFrameItem = {
44
46
  name: 'Frame',
47
+ nameWording: TOOLBAR_FRAME,
45
48
  description: 'Insert a blank frame',
49
+ descriptionWording: SURFACE_REF_SLASH_FRAME_DESCRIPTION,
46
50
  icon: FrameIcon(),
47
51
  tooltip: {
48
52
  figure: FrameTooltip,
49
53
  caption: 'Frame',
54
+ captionWording: TOOLBAR_FRAME,
50
55
  },
51
56
  group: `5_Edgeless Element@${index++}`,
52
57
  action: () => {
@@ -57,11 +62,14 @@ const surfaceRefSlashMenuConfig = {
57
62
  };
58
63
  const insertMindMapItem = {
59
64
  name: 'Mind Map',
65
+ nameWording: SURFACE_REF_SLASH_MINDMAP_NAME,
60
66
  description: 'Insert a mind map',
67
+ descriptionWording: SURFACE_REF_SLASH_MINDMAP_DESCRIPTION,
61
68
  icon: MindmapIcon(),
62
69
  tooltip: {
63
70
  figure: MindMapTooltip,
64
- caption: 'Edgeless',
71
+ caption: 'Canvas',
72
+ captionWording: SURFACE_REF_SLASH_TOOLTIP_EDGELESS,
65
73
  },
66
74
  group: `5_Edgeless Element@${index++}`,
67
75
  action: () => {
@@ -74,9 +82,12 @@ const surfaceRefSlashMenuConfig = {
74
82
  const centerVertical = y + h / 2;
75
83
  const rootX = x;
76
84
  const rootY = centerVertical - rootH / 2;
85
+ // Translated HERE and once: the captions are document content the
86
+ // moment they land (ADR 0016), so the host's catalogue is asked at
87
+ // placement and never again.
77
88
  const root = {
78
89
  children: [],
79
- text: 'Mind Map',
90
+ text: translateKey(std, ...SURFACE_REF_SEED_MINDMAP_ROOT),
80
91
  xywh: `[${rootX},${rootY},${rootW},${rootH}]`,
81
92
  };
82
93
  for (let i = 0; i < 3; i++) {
@@ -84,7 +95,7 @@ const surfaceRefSlashMenuConfig = {
84
95
  const nodeY = centerVertical - nodeH / 2 + (i - 1) * 50;
85
96
  root.children.push({
86
97
  children: [],
87
- text: 'Text',
98
+ text: translateKey(std, ...SURFACE_REF_SEED_MINDMAP_NODE),
88
99
  xywh: `[${nodeX},${nodeY},${nodeW},${nodeH}]`,
89
100
  });
90
101
  }
@@ -98,12 +109,15 @@ const surfaceRefSlashMenuConfig = {
98
109
  },
99
110
  };
100
111
  const frameItems = frameMgr.frames.map(frameModel => ({
101
- name: 'Frame: ' + frameModel.props.title,
112
+ name: translateKey(std, ...SURFACE_REF_SLASH_FRAME_ITEM_NAME, {
113
+ title: frameModel.props.title.toString(),
114
+ }),
102
115
  icon: FrameIcon(),
103
116
  group: `5_Edgeless Element@${index++}`,
104
117
  tooltip: {
105
118
  figure: EdgelessTooltip,
106
- caption: 'Edgeless',
119
+ caption: 'Canvas',
120
+ captionWording: SURFACE_REF_SLASH_TOOLTIP_EDGELESS,
107
121
  },
108
122
  action: () => {
109
123
  insertSurfaceRefAndSelect(frameModel.id);
@@ -111,12 +125,15 @@ const surfaceRefSlashMenuConfig = {
111
125
  }));
112
126
  const groupElements = crud.getElementsByType('group');
113
127
  const groupItems = groupElements.map(group => ({
114
- name: 'Group: ' + group.title.toString(),
128
+ name: translateKey(std, ...SURFACE_REF_SLASH_GROUP_ITEM_NAME, {
129
+ title: group.title.toString(),
130
+ }),
115
131
  icon: GroupingIcon(),
116
132
  group: `5_Edgeless Element@${index++}`,
117
133
  tooltip: {
118
134
  figure: EdgelessTooltip,
119
- caption: 'Edgeless',
135
+ caption: 'Canvas',
136
+ captionWording: SURFACE_REF_SLASH_TOOLTIP_EDGELESS,
120
137
  },
121
138
  action: () => {
122
139
  insertSurfaceRefAndSelect(group.id);
@@ -30,7 +30,7 @@ export const EdgelessTooltip = html `<svg width="170" height="106" viewBox="0 0
30
30
  export const FrameTooltip = html `<svg width="170" height="89" viewBox="0 0 170 89" fill="none" xmlns="http://www.w3.org/2000/svg">
31
31
  <g clip-path="url(#clip0_5269_147682)">
32
32
  <rect width="170" height="89" fill="white"/>
33
- <text fill="#8E8D91" xml:space="preserve" style="white-space: pre" font-family="Inter" font-size="10" letter-spacing="0px"><tspan x="8" y="16.6364">Create a blank frame in Edgeless</tspan></text>
33
+ <text fill="#8E8D91" xml:space="preserve" style="white-space: pre" font-family="Inter" font-size="10" letter-spacing="0px"><tspan x="8" y="16.6364">Create a blank frame in Canvas</tspan></text>
34
34
  <rect x="16" y="45" width="164" height="59" rx="3" stroke="black" stroke-opacity="0.52" stroke-width="2"/>
35
35
  <rect x="15" y="27" width="32" height="13" rx="3" fill="black" fill-opacity="0.95"/>
36
36
  <text fill="white" xml:space="preserve" style="white-space: pre" font-family="Inter" font-size="8" font-weight="500" letter-spacing="0px"><tspan x="19" y="35.8182">Frame</tspan></text>
@@ -46,7 +46,7 @@ export const FrameTooltip = html `<svg width="170" height="89" viewBox="0 0 170
46
46
  export const MindMapTooltip = html `<svg width="170" height="106" viewBox="0 0 170 106" fill="none" xmlns="http://www.w3.org/2000/svg">
47
47
  <g clip-path="url(#clip0_5150_67028)">
48
48
  <rect width="170" height="106" fill="white"/>
49
- <text fill="#8E8D91" xml:space="preserve" style="white-space: pre" font-family="Inter" font-size="10" letter-spacing="0px"><tspan x="8" y="16.6364">Create a mind map in Edgeless</tspan></text>
49
+ <text fill="#8E8D91" xml:space="preserve" style="white-space: pre" font-family="Inter" font-size="10" letter-spacing="0px"><tspan x="8" y="16.6364">Create a mind map in Canvas</tspan></text>
50
50
  <g filter="url(#filter0_d_5150_67028)">
51
51
  <rect x="21" y="53" width="59" height="19" rx="5" stroke="#29A3FA" stroke-width="2"/>
52
52
  <text fill="black" xml:space="preserve" style="white-space: pre" font-family="Poppins" font-size="8" font-weight="500" letter-spacing="0px"><tspan x="30.5" y="65.076">Mind Map</tspan></text>
@@ -1,3 +1,4 @@
1
1
  export * from './commands.js';
2
2
  export * from './surface-ref-block.js';
3
3
  export * from './surface-ref-block-edgeless.js';
4
+ export * from './translations.js';
@@ -1,3 +1,4 @@
1
1
  export * from './commands.js';
2
2
  export * from './surface-ref-block.js';
3
3
  export * from './surface-ref-block-edgeless.js';
4
+ export * from './translations.js';
@@ -105,6 +105,7 @@ let EdgelessSurfaceRefBlockComponent = (() => {
105
105
  .referenceModel=${this._referenceModel}
106
106
  .refFlavour=${this.model.props.refFlavour$.value}
107
107
  .inEdgeless=${true}
108
+ .std=${this.std}
108
109
  ></surface-ref-placeholder>
109
110
  </div>`;
110
111
  }
@@ -396,6 +396,7 @@ let SurfaceRefBlockComponent = (() => {
396
396
  .referenceModel=${_referencedModel}
397
397
  .refFlavour=${model.props.refFlavour$.value}
398
398
  .theme=${theme}
399
+ .std=${this.std}
399
400
  ></surface-ref-placeholder>`
400
401
  : this._renderRefContent();
401
402
  return html `
@@ -0,0 +1,83 @@
1
+ import { type ChromeWording } from '../affine-shared/services/index.js';
2
+ /**
3
+ * The "/ Mind Map" slash-menu entry's seeds: the root and child node captions
4
+ * a freshly inserted mindmap is written with (`configs/slash-menu.ts`).
5
+ * Resolved at PLACEMENT and never again — a node renamed by its author keeps
6
+ * its name, and a mindmap inserted before these keys existed keeps the plain
7
+ * text it was given.
8
+ */
9
+ export declare const SURFACE_REF_SEED_MINDMAP_ROOT: ChromeWording;
10
+ export declare const SURFACE_REF_SEED_MINDMAP_NODE: ChromeWording;
11
+ /**
12
+ * This package's contribution to the translation-key manifest, listed in
13
+ * `PACKAGE_SEED_WORDINGS` under source `seed`
14
+ * (`packages/affine/all/src/translations.ts`).
15
+ */
16
+ export declare const SURFACE_REF_WORDINGS: readonly ChromeWording[];
17
+ /**
18
+ * The "Mind Map" slash-menu item's own name — the item shown in the menu,
19
+ * NOT the root node's seed text (`SURFACE_REF_SEED_MINDMAP_ROOT`), which
20
+ * happens to read the same but is a different concern (see the module doc
21
+ * above).
22
+ */
23
+ export declare const SURFACE_REF_SLASH_MINDMAP_NAME: ChromeWording;
24
+ export declare const SURFACE_REF_SLASH_MINDMAP_DESCRIPTION: ChromeWording;
25
+ export declare const SURFACE_REF_SLASH_FRAME_DESCRIPTION: ChromeWording;
26
+ /** The tooltip caption shared by the mindmap, frame and group list items. */
27
+ export declare const SURFACE_REF_SLASH_TOOLTIP_EDGELESS: ChromeWording;
28
+ /**
29
+ * The "Frame: {{title}}" / "Group: {{title}}" list items — a placed frame's
30
+ * or group's own entry in the slash menu, named after its live title. Was a
31
+ * string CONCATENATION (`'Frame: ' + frameModel.props.title`) the literal
32
+ * guard could only half-detect (see `literals.unit.spec.ts`'s ponytail
33
+ * note); resolving it through the seam removes the literal outright.
34
+ */
35
+ export declare const SURFACE_REF_SLASH_FRAME_ITEM_NAME: ChromeWording;
36
+ export declare const SURFACE_REF_SLASH_GROUP_ITEM_NAME: ChromeWording;
37
+ /**
38
+ * The reference kinds' own display names. `frame` reuses the shared
39
+ * `TOOLBAR_FRAME` chrome wording (the frame primitive's name, also used by
40
+ * the `frame` package's own tool and dense-menu entry) rather than a second
41
+ * key for the same word.
42
+ */
43
+ export declare const SURFACE_REF_TYPE_GROUP: ChromeWording;
44
+ export declare const SURFACE_REF_TYPE_MINDMAP: ChromeWording;
45
+ export declare const SURFACE_REF_TYPE_EDGELESS: ChromeWording;
46
+ /** The title shown when the referenced element is missing entirely. */
47
+ export declare const SURFACE_REF_PLACEHOLDER_NOT_AVAILABLE: ChromeWording;
48
+ /**
49
+ * The body sentence for each kind, once found to be deleted — one full
50
+ * sentence per kind rather than one interpolated onto a lowercased name: the
51
+ * lower-casing is a purely English inflection the fallback needs to
52
+ * reproduce exactly, and a translated host may not have a stable "lowercase"
53
+ * of a translated noun at all (mirrors `BOARD_LEGEND_NOTATION` /
54
+ * `BOARD_LEGEND_COMPONENTS` in `chrome.ts`: a full sentence per case rather
55
+ * than a shared template).
56
+ */
57
+ export declare const SURFACE_REF_PLACEHOLDER_DELETED_FRAME: ChromeWording;
58
+ export declare const SURFACE_REF_PLACEHOLDER_DELETED_GROUP: ChromeWording;
59
+ export declare const SURFACE_REF_PLACEHOLDER_DELETED_MINDMAP: ChromeWording;
60
+ export declare const SURFACE_REF_PLACEHOLDER_DELETED_EDGELESS: ChromeWording;
61
+ export declare const SURFACE_REF_PLACEHOLDER_CANNOT_DISPLAY_FRAME: ChromeWording;
62
+ export declare const SURFACE_REF_PLACEHOLDER_CANNOT_DISPLAY_GROUP: ChromeWording;
63
+ export declare const SURFACE_REF_PLACEHOLDER_CANNOT_DISPLAY_MINDMAP: ChromeWording;
64
+ export declare const SURFACE_REF_PLACEHOLDER_CANNOT_DISPLAY_EDGELESS: ChromeWording;
65
+ /**
66
+ * Per-kind table joining the two placeholder sentences above to the
67
+ * `refFlavour` / `TYPE_ICON_MAP` key they answer for
68
+ * (`components/placeholder.ts`). The kind's NAME itself is
69
+ * `TYPE_ICON_MAP[key].wording` (`utils.ts`) — not repeated here.
70
+ */
71
+ export declare const SURFACE_REF_TYPE_SENTENCE_WORDINGS: Readonly<Record<string, {
72
+ deleted: ChromeWording;
73
+ cannotDisplay: ChromeWording;
74
+ }>>;
75
+ /**
76
+ * This package's CHROME contribution to the translation-key manifest,
77
+ * listed in `PACKAGE_WORDINGS` under source `chrome`
78
+ * (`packages/affine/all/src/translations.ts`) — separate from
79
+ * {@link SURFACE_REF_WORDINGS} above, which stays under `PACKAGE_SEED_WORDINGS`
80
+ * (source `seed`). `TOOLBAR_FRAME` travels with
81
+ * `@labre/affine-shared/services` instead, so it is not restated here.
82
+ */
83
+ export declare const SURFACE_REF_CHROME_WORDINGS: readonly ChromeWording[];