@formicoidea/labre-core 0.40.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (638) hide show
  1. package/LICENSE +384 -0
  2. package/dist/_pkgs/affine-block-attachment/attachment-block.js +7 -2
  3. package/dist/_pkgs/affine-block-attachment/components/rename-model.js +3 -2
  4. package/dist/_pkgs/affine-block-attachment/configs/slash-menu.js +7 -0
  5. package/dist/_pkgs/affine-block-attachment/configs/toolbar.js +11 -3
  6. package/dist/_pkgs/affine-block-attachment/configs/tooltips.js +4 -4
  7. package/dist/_pkgs/affine-block-attachment/translations.d.ts +49 -0
  8. package/dist/_pkgs/affine-block-attachment/translations.js +98 -0
  9. package/dist/_pkgs/affine-block-attachment/utils.js +9 -6
  10. package/dist/_pkgs/affine-block-bookmark/bookmark-block.js +2 -2
  11. package/dist/_pkgs/affine-block-bookmark/components/bookmark-card.js +13 -6
  12. package/dist/_pkgs/affine-block-bookmark/configs/slash-menu.js +6 -1
  13. package/dist/_pkgs/affine-block-bookmark/configs/toolbar.js +9 -1
  14. package/dist/_pkgs/affine-block-bookmark/configs/tooltips.js +2 -2
  15. package/dist/_pkgs/affine-block-bookmark/translations.d.ts +26 -0
  16. package/dist/_pkgs/affine-block-bookmark/translations.js +55 -0
  17. package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +4 -0
  18. package/dist/_pkgs/affine-block-callout/configs/tooltips.js +2 -2
  19. package/dist/_pkgs/affine-block-callout/translations.d.ts +16 -0
  20. package/dist/_pkgs/affine-block-callout/translations.js +24 -0
  21. package/dist/_pkgs/affine-block-code/code-block.js +6 -3
  22. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +4 -2
  23. package/dist/_pkgs/affine-block-code/code-toolbar/components/lang-button.js +3 -2
  24. package/dist/_pkgs/affine-block-code/code-toolbar/components/preview-button.js +4 -3
  25. package/dist/_pkgs/affine-block-code/code-toolbar/config.js +116 -72
  26. package/dist/_pkgs/affine-block-code/translations.d.ts +30 -0
  27. package/dist/_pkgs/affine-block-code/translations.js +84 -0
  28. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +9 -3
  29. package/dist/_pkgs/affine-block-embed/common/render-linked-doc.js +7 -6
  30. package/dist/_pkgs/affine-block-embed/configs/toolbar.js +11 -2
  31. package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-block.js +2 -1
  32. package/dist/_pkgs/affine-block-embed/embed-github-block/embed-github-block.js +2 -1
  33. package/dist/_pkgs/affine-block-embed/embed-html-block/components/fullscreen-toolbar.js +4 -3
  34. package/dist/_pkgs/affine-block-embed/embed-html-block/configs/toolbar.js +5 -1
  35. package/dist/_pkgs/affine-block-embed/embed-html-block/configs/tooltips.js +14 -14
  36. package/dist/_pkgs/affine-block-embed/embed-html-block/embed-html-block.js +7 -1
  37. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-error-card.js +11 -4
  38. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-idle-card.d.ts +2 -0
  39. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-idle-card.js +13 -3
  40. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-edit-popup.js +4 -2
  41. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-input-base.js +8 -5
  42. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-link-input-popup.js +21 -5
  43. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-loading-card.js +4 -1
  44. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/slash-menu/slash-menu.js +4 -0
  45. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.d.ts +2 -0
  46. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +6 -1
  47. package/dist/_pkgs/affine-block-embed/embed-iframe-block/consts.d.ts +2 -0
  48. package/dist/_pkgs/affine-block-embed/embed-iframe-block/consts.js +5 -0
  49. package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.d.ts +1 -0
  50. package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.js +33 -9
  51. package/dist/_pkgs/affine-block-embed/embed-iframe-block/utils.d.ts +8 -0
  52. package/dist/_pkgs/affine-block-embed/embed-iframe-block/utils.js +19 -0
  53. package/dist/_pkgs/affine-block-embed/embed-loom-block/embed-loom-block.js +2 -1
  54. package/dist/_pkgs/affine-block-embed/embed-youtube-block/embed-youtube-block.js +2 -1
  55. package/dist/_pkgs/affine-block-embed/translations.d.ts +46 -0
  56. package/dist/_pkgs/affine-block-embed/translations.js +114 -0
  57. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/slash-menu.js +7 -0
  58. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +29 -12
  59. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/tooltips.js +4 -4
  60. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +10 -4
  61. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/components/embed-synced-doc-card.js +8 -4
  62. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +28 -13
  63. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-edgeless-synced-doc-block.js +3 -2
  64. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +3 -2
  65. package/dist/_pkgs/affine-block-embed-doc/translations.d.ts +40 -0
  66. package/dist/_pkgs/affine-block-embed-doc/translations.js +85 -0
  67. package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-dense-menu.js +29 -22
  68. package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-menu.js +5 -1
  69. package/dist/_pkgs/affine-block-frame/edgeless-toolbar/frame-tool-button.js +2 -1
  70. package/dist/_pkgs/affine-block-frame/edgeless-toolbar/presentation-toolbar.js +12 -9
  71. package/dist/_pkgs/affine-block-frame/frame-manager.js +8 -2
  72. package/dist/_pkgs/affine-block-frame/frame-tool.js +7 -2
  73. package/dist/_pkgs/affine-block-frame/frame-toolbar.js +18 -7
  74. package/dist/_pkgs/affine-block-frame/index.d.ts +1 -0
  75. package/dist/_pkgs/affine-block-frame/index.js +1 -0
  76. package/dist/_pkgs/affine-block-frame/present/frame-order-button.js +5 -1
  77. package/dist/_pkgs/affine-block-frame/present/navigator-setting-button.js +16 -6
  78. package/dist/_pkgs/affine-block-frame/present/present-button.js +3 -1
  79. package/dist/_pkgs/affine-block-frame/translations.d.ts +64 -0
  80. package/dist/_pkgs/affine-block-frame/translations.js +131 -0
  81. package/dist/_pkgs/affine-block-image/components/page-image-block.js +5 -2
  82. package/dist/_pkgs/affine-block-image/configs/slash-menu.js +4 -0
  83. package/dist/_pkgs/affine-block-image/configs/toolbar.js +7 -1
  84. package/dist/_pkgs/affine-block-image/configs/tooltips.js +1 -1
  85. package/dist/_pkgs/affine-block-image/image-block.js +3 -2
  86. package/dist/_pkgs/affine-block-image/image-edgeless-block.js +6 -3
  87. package/dist/_pkgs/affine-block-image/preview-image/page.js +5 -1
  88. package/dist/_pkgs/affine-block-image/translations.d.ts +35 -0
  89. package/dist/_pkgs/affine-block-image/translations.js +68 -0
  90. package/dist/_pkgs/affine-block-image/utils.js +9 -8
  91. package/dist/_pkgs/affine-block-latex/configs/slash-menu.d.ts +8 -0
  92. package/dist/_pkgs/affine-block-latex/configs/slash-menu.js +19 -3
  93. package/dist/_pkgs/affine-block-latex/latex-block.js +6 -2
  94. package/dist/_pkgs/affine-block-latex/translations.d.ts +35 -0
  95. package/dist/_pkgs/affine-block-latex/translations.js +60 -0
  96. package/dist/_pkgs/affine-block-list/list-keymap.js +7 -0
  97. package/dist/_pkgs/affine-block-note/components/edgeless-note-border-dropdown-menu.d.ts +9 -0
  98. package/dist/_pkgs/affine-block-note/components/edgeless-note-border-dropdown-menu.js +23 -6
  99. package/dist/_pkgs/affine-block-note/components/edgeless-note-display-mode-dropdown-menu.d.ts +4 -1
  100. package/dist/_pkgs/affine-block-note/components/edgeless-note-display-mode-dropdown-menu.js +26 -6
  101. package/dist/_pkgs/affine-block-note/components/edgeless-note-shadow-menu.d.ts +3 -0
  102. package/dist/_pkgs/affine-block-note/components/edgeless-note-shadow-menu.js +21 -10
  103. package/dist/_pkgs/affine-block-note/components/edgeless-note-style-panel.js +22 -8
  104. package/dist/_pkgs/affine-block-note/configs/slash-menu.js +13 -0
  105. package/dist/_pkgs/affine-block-note/configs/toolbar.js +26 -19
  106. package/dist/_pkgs/affine-block-note/configs/tooltips.js +57 -30
  107. package/dist/_pkgs/affine-block-note/move-block.js +8 -2
  108. package/dist/_pkgs/affine-block-note/note-keymap.js +7 -1
  109. package/dist/_pkgs/affine-block-note/translations.d.ts +91 -0
  110. package/dist/_pkgs/affine-block-note/translations.js +253 -0
  111. package/dist/_pkgs/affine-block-paragraph/paragraph-block.js +7 -2
  112. package/dist/_pkgs/affine-block-paragraph/paragraph-keymap.js +7 -1
  113. package/dist/_pkgs/affine-block-paragraph/translations.d.ts +31 -0
  114. package/dist/_pkgs/affine-block-paragraph/translations.js +44 -0
  115. package/dist/_pkgs/affine-block-paragraph/view.js +6 -1
  116. package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +1 -8
  117. package/dist/_pkgs/affine-block-root/commands/tag-commands.js +1 -8
  118. package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +3 -1
  119. package/dist/_pkgs/affine-block-root/configs/toolbar.js +6 -3
  120. package/dist/_pkgs/affine-block-root/edgeless/clipboard/utils.js +1 -1
  121. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/alignment.js +26 -4
  122. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/misc.d.ts +14 -0
  123. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/misc.js +10 -3
  124. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.d.ts +8 -0
  125. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +9 -0
  126. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.d.ts +9 -0
  127. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +66 -6
  128. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.d.ts +22 -0
  129. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +46 -0
  130. package/dist/_pkgs/affine-block-root/edgeless/utils/consts.d.ts +0 -1
  131. package/dist/_pkgs/affine-block-root/edgeless/utils/consts.js +0 -1
  132. package/dist/_pkgs/affine-block-root/edgeless/utils/pinch-zoom.d.ts +21 -0
  133. package/dist/_pkgs/affine-block-root/edgeless/utils/pinch-zoom.js +24 -0
  134. package/dist/_pkgs/affine-block-root/edgeless/utils/query.js +8 -0
  135. package/dist/_pkgs/affine-block-root/keyboard/keymap.js +1 -16
  136. package/dist/_pkgs/affine-block-root/translations.d.ts +61 -0
  137. package/dist/_pkgs/affine-block-root/translations.js +172 -0
  138. package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
  139. package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
  140. package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +3 -1
  141. package/dist/_pkgs/affine-block-surface/extensions/export-svg/command.d.ts +23 -0
  142. package/dist/_pkgs/affine-block-surface/extensions/export-svg/command.js +89 -0
  143. package/dist/_pkgs/affine-block-surface/extensions/export-svg/index.d.ts +7 -0
  144. package/dist/_pkgs/affine-block-surface/extensions/export-svg/index.js +5 -0
  145. package/dist/_pkgs/affine-block-surface/extensions/export-svg/render.d.ts +41 -0
  146. package/dist/_pkgs/affine-block-surface/extensions/export-svg/render.js +70 -0
  147. package/dist/_pkgs/affine-block-surface/extensions/export-svg/svg-context.d.ts +49 -0
  148. package/dist/_pkgs/affine-block-surface/extensions/export-svg/svg-context.js +257 -0
  149. package/dist/_pkgs/affine-block-surface/extensions/export-svg/tagged-path.d.ts +16 -0
  150. package/dist/_pkgs/affine-block-surface/extensions/export-svg/tagged-path.js +24 -0
  151. package/dist/_pkgs/affine-block-surface/extensions/export-svg/toolbar.d.ts +24 -0
  152. package/dist/_pkgs/affine-block-surface/extensions/export-svg/toolbar.js +66 -0
  153. package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +5 -0
  154. package/dist/_pkgs/affine-block-surface/extensions/index.js +5 -0
  155. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +66 -4
  156. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +272 -23
  157. package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +58 -8
  158. package/dist/_pkgs/affine-block-surface/extensions/interchange.js +27 -0
  159. package/dist/_pkgs/affine-block-surface/extensions/legend-toolbar.d.ts +81 -0
  160. package/dist/_pkgs/affine-block-surface/extensions/legend-toolbar.js +81 -0
  161. package/dist/_pkgs/affine-block-surface/extensions/legend.d.ts +136 -0
  162. package/dist/_pkgs/affine-block-surface/extensions/legend.js +439 -0
  163. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +2 -2
  164. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +5 -2
  165. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +17 -3
  166. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +38 -15
  167. package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +61 -1
  168. package/dist/_pkgs/affine-block-surface/extensions/reading.js +85 -39
  169. package/dist/_pkgs/affine-block-surface/extensions/record-action.d.ts +66 -0
  170. package/dist/_pkgs/affine-block-surface/extensions/record-action.js +145 -0
  171. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.d.ts +48 -0
  172. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.js +120 -0
  173. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +36 -23
  174. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +5 -5
  175. package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +253 -28
  176. package/dist/_pkgs/affine-block-surface/extensions/validation.js +489 -41
  177. package/dist/_pkgs/affine-block-surface/framework-background/background-view.d.ts +115 -0
  178. package/dist/_pkgs/affine-block-surface/framework-background/background-view.js +185 -0
  179. package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +1 -0
  180. package/dist/_pkgs/affine-block-surface/framework-background/index.js +1 -0
  181. package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +16 -1
  182. package/dist/_pkgs/affine-block-surface/framework-background/labels.js +31 -21
  183. package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +29 -5
  184. package/dist/_pkgs/affine-block-surface/framework-background/stacking.d.ts +6 -4
  185. package/dist/_pkgs/affine-block-surface/framework-background/stacking.js +56 -8
  186. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +12 -0
  187. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +15 -0
  188. package/dist/_pkgs/affine-block-surface/view.js +8 -1
  189. package/dist/_pkgs/affine-block-surface-ref/components/placeholder.d.ts +2 -1
  190. package/dist/_pkgs/affine-block-surface-ref/components/placeholder.js +21 -6
  191. package/dist/_pkgs/affine-block-surface-ref/configs/slash-menu.js +24 -7
  192. package/dist/_pkgs/affine-block-surface-ref/configs/tooltips.js +2 -2
  193. package/dist/_pkgs/affine-block-surface-ref/index.d.ts +1 -0
  194. package/dist/_pkgs/affine-block-surface-ref/index.js +1 -0
  195. package/dist/_pkgs/affine-block-surface-ref/surface-ref-block-edgeless.js +1 -0
  196. package/dist/_pkgs/affine-block-surface-ref/surface-ref-block.js +1 -0
  197. package/dist/_pkgs/affine-block-surface-ref/translations.d.ts +83 -0
  198. package/dist/_pkgs/affine-block-surface-ref/translations.js +175 -0
  199. package/dist/_pkgs/affine-block-surface-ref/utils.d.ts +8 -1
  200. package/dist/_pkgs/affine-block-surface-ref/utils.js +12 -4
  201. package/dist/_pkgs/affine-components/caption/block-caption.js +3 -1
  202. package/dist/_pkgs/affine-components/card-style-dropdown-menu/dropdown-menu.js +4 -3
  203. package/dist/_pkgs/affine-components/citation/citation.d.ts +2 -0
  204. package/dist/_pkgs/affine-components/citation/citation.js +19 -3
  205. package/dist/_pkgs/affine-components/color-picker/button.d.ts +62 -1
  206. package/dist/_pkgs/affine-components/color-picker/button.js +182 -23
  207. package/dist/_pkgs/affine-components/color-picker/color-panel.d.ts +8 -0
  208. package/dist/_pkgs/affine-components/color-picker/color-panel.js +17 -2
  209. package/dist/_pkgs/affine-components/color-picker/color-picker.d.ts +4 -0
  210. package/dist/_pkgs/affine-components/color-picker/color-picker.js +27 -3
  211. package/dist/_pkgs/affine-components/color-picker/framework-palette.d.ts +106 -0
  212. package/dist/_pkgs/affine-components/color-picker/framework-palette.js +177 -0
  213. package/dist/_pkgs/affine-components/color-picker/index.d.ts +2 -0
  214. package/dist/_pkgs/affine-components/color-picker/index.js +2 -0
  215. package/dist/_pkgs/affine-components/color-picker/palette-carousel.d.ts +85 -0
  216. package/dist/_pkgs/affine-components/color-picker/palette-carousel.js +440 -0
  217. package/dist/_pkgs/affine-components/color-picker/types.d.ts +21 -0
  218. package/dist/_pkgs/affine-components/color-picker/utils.d.ts +28 -2
  219. package/dist/_pkgs/affine-components/color-picker/utils.js +32 -0
  220. package/dist/_pkgs/affine-components/context-menu/menu-renderer.d.ts +3 -0
  221. package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +34 -7
  222. package/dist/_pkgs/affine-components/edgeless-line-styles-panel/line-styles-panel.d.ts +2 -0
  223. package/dist/_pkgs/affine-components/edgeless-line-styles-panel/line-styles-panel.js +21 -2
  224. package/dist/_pkgs/affine-components/edgeless-line-width-panel/line-width-panel.d.ts +2 -0
  225. package/dist/_pkgs/affine-components/edgeless-line-width-panel/line-width-panel.js +18 -2
  226. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.d.ts +33 -1
  227. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +211 -56
  228. package/dist/_pkgs/affine-components/embed-card-modal/embed-card-create-modal.js +5 -4
  229. package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +11 -9
  230. package/dist/_pkgs/affine-components/filterable-list/index.d.ts +2 -0
  231. package/dist/_pkgs/affine-components/filterable-list/index.js +17 -2
  232. package/dist/_pkgs/affine-components/highlight-dropdown-menu/dropdown-menu.d.ts +3 -0
  233. package/dist/_pkgs/affine-components/highlight-dropdown-menu/dropdown-menu.js +40 -7
  234. package/dist/_pkgs/affine-components/icon-button/index.d.ts +1 -1
  235. package/dist/_pkgs/affine-components/icon-button/index.js +1 -1
  236. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +6 -0
  237. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +42 -7
  238. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +4 -0
  239. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +35 -5
  240. package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +2 -0
  241. package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +22 -5
  242. package/dist/_pkgs/affine-components/linked-doc-title/doc-title.d.ts +2 -0
  243. package/dist/_pkgs/affine-components/linked-doc-title/doc-title.js +16 -3
  244. package/dist/_pkgs/affine-components/notification/linked-doc.js +5 -4
  245. package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.js +7 -4
  246. package/dist/_pkgs/affine-components/resource/resource.d.ts +16 -1
  247. package/dist/_pkgs/affine-components/resource/resource.js +48 -20
  248. package/dist/_pkgs/affine-components/resource/status.d.ts +2 -0
  249. package/dist/_pkgs/affine-components/resource/status.js +27 -12
  250. package/dist/_pkgs/affine-components/size-dropdown-menu/dropdown-menu.d.ts +4 -1
  251. package/dist/_pkgs/affine-components/size-dropdown-menu/dropdown-menu.js +23 -4
  252. package/dist/_pkgs/affine-components/toast/toast.d.ts +1 -1
  253. package/dist/_pkgs/affine-components/toast/toast.js +1 -1
  254. package/dist/_pkgs/affine-components/toggle-button/toggle-button.d.ts +3 -0
  255. package/dist/_pkgs/affine-components/toggle-button/toggle-button.js +18 -3
  256. package/dist/_pkgs/affine-components/toolbar/icon-button.d.ts +2 -0
  257. package/dist/_pkgs/affine-components/toolbar/icon-button.js +18 -2
  258. package/dist/_pkgs/affine-components/toolbar/tooltip.d.ts +3 -3
  259. package/dist/_pkgs/affine-components/toolbar/tooltip.js +3 -3
  260. package/dist/_pkgs/affine-components/translations.d.ts +149 -0
  261. package/dist/_pkgs/affine-components/translations.js +495 -0
  262. package/dist/_pkgs/affine-foundation/view.js +2 -1
  263. package/dist/_pkgs/affine-fragment-adapter-panel/adapter-panel.d.ts +3 -0
  264. package/dist/_pkgs/affine-fragment-adapter-panel/adapter-panel.js +12 -1
  265. package/dist/_pkgs/affine-fragment-adapter-panel/body/adapter-panel-body.js +4 -3
  266. package/dist/_pkgs/affine-fragment-adapter-panel/config.d.ts +13 -0
  267. package/dist/_pkgs/affine-fragment-adapter-panel/config.js +18 -4
  268. package/dist/_pkgs/affine-fragment-adapter-panel/header/adapter-menu.js +2 -2
  269. package/dist/_pkgs/affine-fragment-adapter-panel/header/adapter-panel-header.js +2 -2
  270. package/dist/_pkgs/affine-fragment-adapter-panel/translations.d.ts +24 -0
  271. package/dist/_pkgs/affine-fragment-adapter-panel/translations.js +37 -0
  272. package/dist/_pkgs/affine-fragment-doc-title/doc-title.d.ts +1 -0
  273. package/dist/_pkgs/affine-fragment-doc-title/doc-title.js +9 -1
  274. package/dist/_pkgs/affine-fragment-doc-title/translations.d.ts +13 -0
  275. package/dist/_pkgs/affine-fragment-doc-title/translations.js +17 -0
  276. package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +3 -2
  277. package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +10 -4
  278. package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +18 -6
  279. package/dist/_pkgs/affine-fragment-frame-panel/translations.d.ts +16 -0
  280. package/dist/_pkgs/affine-fragment-frame-panel/translations.js +44 -0
  281. package/dist/_pkgs/affine-fragment-outline/body/outline-notice.js +10 -4
  282. package/dist/_pkgs/affine-fragment-outline/body/outline-panel-body.js +6 -3
  283. package/dist/_pkgs/affine-fragment-outline/card/outline-card.js +13 -6
  284. package/dist/_pkgs/affine-fragment-outline/card/outline-preview.d.ts +1 -0
  285. package/dist/_pkgs/affine-fragment-outline/card/outline-preview.js +16 -9
  286. package/dist/_pkgs/affine-fragment-outline/config.d.ts +1 -20
  287. package/dist/_pkgs/affine-fragment-outline/config.js +8 -23
  288. package/dist/_pkgs/affine-fragment-outline/header/outline-panel-header.js +10 -3
  289. package/dist/_pkgs/affine-fragment-outline/header/outline-setting-menu.js +9 -2
  290. package/dist/_pkgs/affine-fragment-outline/outline-viewer.js +6 -3
  291. package/dist/_pkgs/affine-fragment-outline/translations.d.ts +54 -0
  292. package/dist/_pkgs/affine-fragment-outline/translations.js +110 -0
  293. package/dist/_pkgs/affine-gfx-brush/element-renderer.js +2 -2
  294. package/dist/_pkgs/affine-gfx-brush/toolbar/components/eraser/eraser-tool-button.js +3 -2
  295. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/consts.d.ts +3 -0
  296. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/consts.js +3 -0
  297. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-menu.js +5 -4
  298. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +3 -2
  299. package/dist/_pkgs/affine-gfx-brush/toolbar/configs/brush.js +10 -3
  300. package/dist/_pkgs/affine-gfx-brush/toolbar/configs/highlighter.js +10 -3
  301. package/dist/_pkgs/affine-gfx-brush/translations.d.ts +17 -0
  302. package/dist/_pkgs/affine-gfx-brush/translations.js +30 -0
  303. package/dist/_pkgs/affine-gfx-connector/connector-manager.d.ts +9 -1
  304. package/dist/_pkgs/affine-gfx-connector/connector-manager.js +61 -0
  305. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +8 -1
  306. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +7 -1
  307. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.d.ts +7 -1
  308. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +87 -17
  309. package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +78 -17
  310. package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.d.ts +24 -2
  311. package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +31 -8
  312. package/dist/_pkgs/affine-gfx-connector/text/edgeless-connector-label-editor.d.ts +124 -3
  313. package/dist/_pkgs/affine-gfx-connector/text/edgeless-connector-label-editor.js +219 -56
  314. package/dist/_pkgs/affine-gfx-connector/text/text.d.ts +13 -4
  315. package/dist/_pkgs/affine-gfx-connector/text/text.js +13 -44
  316. package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +60 -1
  317. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +95 -13
  318. package/dist/_pkgs/affine-gfx-connector/toolbar/connector-dense-menu.js +7 -5
  319. package/dist/_pkgs/affine-gfx-connector/toolbar/connector-menu.js +8 -6
  320. package/dist/_pkgs/affine-gfx-connector/toolbar/connector-tool-button.js +4 -3
  321. package/dist/_pkgs/affine-gfx-connector/toolbar/hollow-endpoint-icons.d.ts +8 -0
  322. package/dist/_pkgs/affine-gfx-connector/toolbar/hollow-endpoint-icons.js +118 -0
  323. package/dist/_pkgs/affine-gfx-connector/translations.d.ts +32 -0
  324. package/dist/_pkgs/affine-gfx-connector/translations.js +79 -0
  325. package/dist/_pkgs/affine-gfx-connector/view/view.d.ts +37 -1
  326. package/dist/_pkgs/affine-gfx-connector/view/view.js +97 -8
  327. package/dist/_pkgs/affine-gfx-group/command/group-api.js +6 -1
  328. package/dist/_pkgs/affine-gfx-group/index.d.ts +1 -0
  329. package/dist/_pkgs/affine-gfx-group/index.js +1 -0
  330. package/dist/_pkgs/affine-gfx-group/store.js +0 -2
  331. package/dist/_pkgs/affine-gfx-group/toolbar/config.d.ts +6 -2
  332. package/dist/_pkgs/affine-gfx-group/toolbar/config.js +9 -4
  333. package/dist/_pkgs/affine-gfx-group/translations.d.ts +23 -0
  334. package/dist/_pkgs/affine-gfx-group/translations.js +29 -0
  335. package/dist/_pkgs/affine-gfx-link/toolbar/undo-dense-menu.js +2 -1
  336. package/dist/_pkgs/affine-gfx-link/toolbar/undo-tool-button.js +2 -1
  337. package/dist/_pkgs/affine-gfx-mindmap/index.d.ts +1 -0
  338. package/dist/_pkgs/affine-gfx-mindmap/index.js +1 -0
  339. package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +628 -577
  340. package/dist/_pkgs/affine-gfx-mindmap/toolbar/basket-elements.js +7 -3
  341. package/dist/_pkgs/affine-gfx-mindmap/toolbar/config.js +9 -1
  342. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-importing-placeholder.d.ts +4 -0
  343. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-importing-placeholder.js +70 -7
  344. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +8 -5
  345. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +4 -2
  346. package/dist/_pkgs/affine-gfx-mindmap/toolbar/senior-tool.js +7 -2
  347. package/dist/_pkgs/affine-gfx-mindmap/toolbar/utils/import-mindmap.d.ts +2 -1
  348. package/dist/_pkgs/affine-gfx-mindmap/toolbar/utils/import-mindmap.js +16 -8
  349. package/dist/_pkgs/affine-gfx-mindmap/translations.d.ts +84 -0
  350. package/dist/_pkgs/affine-gfx-mindmap/translations.js +171 -0
  351. package/dist/_pkgs/affine-gfx-note/components/note-display-mode-panel.d.ts +8 -0
  352. package/dist/_pkgs/affine-gfx-note/components/note-display-mode-panel.js +24 -9
  353. package/dist/_pkgs/affine-gfx-note/components/note-shadow-panel.d.ts +9 -0
  354. package/dist/_pkgs/affine-gfx-note/components/note-shadow-panel.js +28 -8
  355. package/dist/_pkgs/affine-gfx-note/toolbar/note-menu-config.d.ts +2 -1
  356. package/dist/_pkgs/affine-gfx-note/toolbar/note-menu-config.js +42 -73
  357. package/dist/_pkgs/affine-gfx-note/toolbar/note-menu.js +21 -17
  358. package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +3 -2
  359. package/dist/_pkgs/affine-gfx-note/toolbar/note-tool-button.js +3 -1
  360. package/dist/_pkgs/affine-gfx-note/toolbar/senior-tool.js +3 -1
  361. package/dist/_pkgs/affine-gfx-note/translations.d.ts +27 -0
  362. package/dist/_pkgs/affine-gfx-note/translations.js +59 -0
  363. package/dist/_pkgs/affine-gfx-pointer/quick-tool/default-tool-button.js +10 -2
  364. package/dist/_pkgs/affine-gfx-pointer/translations.d.ts +9 -0
  365. package/dist/_pkgs/affine-gfx-pointer/translations.js +17 -0
  366. package/dist/_pkgs/affine-gfx-shape/components/shape-panel.d.ts +4 -0
  367. package/dist/_pkgs/affine-gfx-shape/components/shape-panel.js +17 -3
  368. package/dist/_pkgs/affine-gfx-shape/components/shape-style-panel.d.ts +4 -0
  369. package/dist/_pkgs/affine-gfx-shape/components/shape-style-panel.js +23 -5
  370. package/dist/_pkgs/affine-gfx-shape/draggable/shape-menu.d.ts +0 -1
  371. package/dist/_pkgs/affine-gfx-shape/draggable/shape-menu.js +6 -46
  372. package/dist/_pkgs/affine-gfx-shape/draggable/shape-tool-button.js +3 -1
  373. package/dist/_pkgs/affine-gfx-shape/element-renderer/highlighter.js +2 -2
  374. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.d.ts +6 -0
  375. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +30 -1
  376. package/dist/_pkgs/affine-gfx-shape/polygon-tool.d.ts +20 -1
  377. package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +9 -1
  378. package/dist/_pkgs/affine-gfx-shape/toolbar/config.d.ts +2 -0
  379. package/dist/_pkgs/affine-gfx-shape/toolbar/config.js +35 -9
  380. package/dist/_pkgs/affine-gfx-shape/toolbar/palette-color-action.js +11 -1
  381. package/dist/_pkgs/affine-gfx-shape/toolbar/senior-tool.js +2 -0
  382. package/dist/_pkgs/affine-gfx-shape/toolbar/shape-menu-config.d.ts +3 -0
  383. package/dist/_pkgs/affine-gfx-shape/toolbar/shape-menu-config.js +7 -0
  384. package/dist/_pkgs/affine-gfx-shape/translations.d.ts +37 -0
  385. package/dist/_pkgs/affine-gfx-shape/translations.js +93 -0
  386. package/dist/_pkgs/affine-gfx-template/builtin/other.js +70 -42
  387. package/dist/_pkgs/affine-gfx-template/contribute.js +8 -1
  388. package/dist/_pkgs/affine-gfx-template/index.d.ts +2 -0
  389. package/dist/_pkgs/affine-gfx-template/index.js +2 -0
  390. package/dist/_pkgs/affine-gfx-template/snapshot-from-action.d.ts +6 -1
  391. package/dist/_pkgs/affine-gfx-template/snapshot-from-action.js +43 -120
  392. package/dist/_pkgs/affine-gfx-template/toolbar/builtin-templates.d.ts +1 -0
  393. package/dist/_pkgs/affine-gfx-template/toolbar/builtin-templates.js +12 -0
  394. package/dist/_pkgs/affine-gfx-template/toolbar/resolve-name.d.ts +25 -0
  395. package/dist/_pkgs/affine-gfx-template/toolbar/resolve-name.js +36 -0
  396. package/dist/_pkgs/affine-gfx-template/toolbar/senior-tool.js +3 -1
  397. package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.d.ts +1 -0
  398. package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +30 -8
  399. package/dist/_pkgs/affine-gfx-template/toolbar/template-type.d.ts +41 -0
  400. package/dist/_pkgs/affine-gfx-template/translations.d.ts +71 -0
  401. package/dist/_pkgs/affine-gfx-template/translations.js +209 -0
  402. package/dist/_pkgs/affine-gfx-text/dblclick-add-edgeless-text.d.ts +13 -1
  403. package/dist/_pkgs/affine-gfx-text/dblclick-add-edgeless-text.js +19 -4
  404. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.d.ts +41 -0
  405. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +60 -4
  406. package/dist/_pkgs/affine-gfx-text/toolbar/actions.d.ts +9 -2
  407. package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +33 -10
  408. package/dist/_pkgs/affine-gfx-text/toolbar/text-menu.js +1 -0
  409. package/dist/_pkgs/affine-gfx-text/translations.d.ts +32 -0
  410. package/dist/_pkgs/affine-gfx-text/translations.js +65 -0
  411. package/dist/_pkgs/affine-inline-footnote/footnote-node/footnote-popup.js +8 -2
  412. package/dist/_pkgs/affine-inline-latex/latex-node/latex-editor-menu.js +5 -2
  413. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +7 -2
  414. package/dist/_pkgs/affine-inline-latex/translations.d.ts +13 -0
  415. package/dist/_pkgs/affine-inline-latex/translations.js +16 -0
  416. package/dist/_pkgs/affine-inline-link/link-node/configs/toolbar.d.ts +3 -3
  417. package/dist/_pkgs/affine-inline-link/link-node/configs/toolbar.js +6 -5
  418. package/dist/_pkgs/affine-inline-link/link-node/link-popup/link-popup.js +11 -5
  419. package/dist/_pkgs/affine-inline-link/translations.d.ts +23 -0
  420. package/dist/_pkgs/affine-inline-link/translations.js +44 -0
  421. package/dist/_pkgs/affine-inline-mention/affine-mention.js +11 -5
  422. package/dist/_pkgs/affine-inline-mention/translations.d.ts +16 -0
  423. package/dist/_pkgs/affine-inline-mention/translations.js +29 -0
  424. package/dist/_pkgs/affine-inline-preset/command/config.d.ts +3 -0
  425. package/dist/_pkgs/affine-inline-preset/command/config.js +8 -0
  426. package/dist/_pkgs/affine-inline-preset/markdown.js +5 -1
  427. package/dist/_pkgs/affine-inline-preset/translations.d.ts +25 -0
  428. package/dist/_pkgs/affine-inline-preset/translations.js +28 -0
  429. package/dist/_pkgs/affine-inline-reference/reference-node/configs/toolbar.js +2 -2
  430. package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +3 -3
  431. package/dist/_pkgs/affine-inline-reference/reference-node/reference-popup/reference-popup.js +8 -6
  432. package/dist/_pkgs/affine-inline-reference/translations.d.ts +8 -0
  433. package/dist/_pkgs/affine-inline-reference/translations.js +13 -0
  434. package/dist/_pkgs/affine-model/consts/connector.d.ts +28 -2
  435. package/dist/_pkgs/affine-model/consts/connector.js +26 -0
  436. package/dist/_pkgs/affine-model/elements/bpmn/pool.js +1 -1
  437. package/dist/_pkgs/affine-model/elements/brush/brush.js +1 -1
  438. package/dist/_pkgs/affine-model/elements/c4/board.js +1 -1
  439. package/dist/_pkgs/affine-model/elements/c4/boundary.js +1 -1
  440. package/dist/_pkgs/affine-model/elements/connector/connector.d.ts +135 -0
  441. package/dist/_pkgs/affine-model/elements/connector/connector.js +246 -5
  442. package/dist/_pkgs/affine-model/elements/connector/end-label.d.ts +83 -0
  443. package/dist/_pkgs/affine-model/elements/connector/end-label.js +119 -0
  444. package/dist/_pkgs/affine-model/elements/connector/index.d.ts +1 -0
  445. package/dist/_pkgs/affine-model/elements/connector/index.js +1 -0
  446. package/dist/_pkgs/affine-model/elements/context-map/context-map.js +1 -1
  447. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +28 -0
  448. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +129 -2
  449. package/dist/_pkgs/affine-model/elements/cynefin/cynefin.d.ts +8 -0
  450. package/dist/_pkgs/affine-model/elements/cynefin/cynefin.js +45 -2
  451. package/dist/_pkgs/affine-model/elements/edgy/board.js +1 -1
  452. package/dist/_pkgs/affine-model/elements/edgy/facets.js +1 -1
  453. package/dist/_pkgs/affine-model/elements/estuarine/estuarine.d.ts +6 -0
  454. package/dist/_pkgs/affine-model/elements/estuarine/estuarine.js +36 -2
  455. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +18 -7
  456. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +23 -8
  457. package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +16 -0
  458. package/dist/_pkgs/affine-model/elements/framework-background/background.js +18 -0
  459. package/dist/_pkgs/affine-model/elements/highlighter/highlighter.js +1 -1
  460. package/dist/_pkgs/affine-model/elements/index.d.ts +8 -0
  461. package/dist/_pkgs/affine-model/elements/index.js +1 -0
  462. package/dist/_pkgs/affine-model/elements/shape/shape.js +1 -1
  463. package/dist/_pkgs/affine-model/elements/text/text.js +1 -1
  464. package/dist/_pkgs/affine-model/elements/uml/band.d.ts +39 -0
  465. package/dist/_pkgs/affine-model/elements/uml/band.js +31 -0
  466. package/dist/_pkgs/affine-model/elements/uml/diagram.d.ts +158 -0
  467. package/dist/_pkgs/affine-model/elements/uml/diagram.js +229 -0
  468. package/dist/_pkgs/affine-model/elements/uml/fragment.d.ts +161 -0
  469. package/dist/_pkgs/affine-model/elements/uml/fragment.js +205 -0
  470. package/dist/_pkgs/affine-model/elements/uml/index.d.ts +8 -0
  471. package/dist/_pkgs/affine-model/elements/uml/index.js +8 -0
  472. package/dist/_pkgs/affine-model/elements/uml/lifeline.d.ts +77 -0
  473. package/dist/_pkgs/affine-model/elements/uml/lifeline.js +89 -0
  474. package/dist/_pkgs/affine-model/elements/uml/node.d.ts +142 -0
  475. package/dist/_pkgs/affine-model/elements/uml/node.js +190 -0
  476. package/dist/_pkgs/affine-model/elements/uml/partition.d.ts +106 -0
  477. package/dist/_pkgs/affine-model/elements/uml/partition.js +172 -0
  478. package/dist/_pkgs/affine-model/elements/uml/region.d.ts +75 -0
  479. package/dist/_pkgs/affine-model/elements/uml/region.js +150 -0
  480. package/dist/_pkgs/affine-model/elements/uml/subject.d.ts +37 -0
  481. package/dist/_pkgs/affine-model/elements/uml/subject.js +108 -0
  482. package/dist/_pkgs/affine-model/elements/wardley/wardley.js +1 -1
  483. package/dist/_pkgs/affine-rich-text/conversion.d.ts +13 -0
  484. package/dist/_pkgs/affine-rich-text/conversion.js +27 -0
  485. package/dist/_pkgs/affine-shared/adapters/clipboard/clipboard.js +1 -1
  486. package/dist/_pkgs/affine-shared/adapters/clipboard/utils.d.ts +2 -1
  487. package/dist/_pkgs/affine-shared/adapters/clipboard/utils.js +6 -3
  488. package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -2
  489. package/dist/_pkgs/affine-shared/adapters/mix-text.js +5 -2
  490. package/dist/_pkgs/affine-shared/adapters/plain-text/plain-text.js +5 -2
  491. package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
  492. package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
  493. package/dist/_pkgs/affine-shared/adapters/utils/wording.d.ts +9 -0
  494. package/dist/_pkgs/affine-shared/adapters/utils/wording.js +12 -0
  495. package/dist/_pkgs/affine-shared/services/comment-service/utils.js +2 -0
  496. package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +6 -3
  497. package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.d.ts +1 -0
  498. package/dist/_pkgs/affine-shared/services/font-loader/config.d.ts +7 -0
  499. package/dist/_pkgs/affine-shared/services/font-loader/config.js +43 -0
  500. package/dist/_pkgs/affine-shared/services/notification-service.js +18 -1
  501. package/dist/_pkgs/affine-shared/services/open-doc-config.d.ts +0 -1
  502. package/dist/_pkgs/affine-shared/services/open-doc-config.js +0 -2
  503. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +1 -9
  504. package/dist/_pkgs/affine-shared/services/telemetry-service/document-damage-watcher.d.ts +53 -0
  505. package/dist/_pkgs/affine-shared/services/telemetry-service/document-damage-watcher.js +95 -0
  506. package/dist/_pkgs/affine-shared/services/telemetry-service/index.d.ts +1 -0
  507. package/dist/_pkgs/affine-shared/services/telemetry-service/index.js +1 -0
  508. package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +26 -1
  509. package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
  510. package/dist/_pkgs/affine-shared/services/toolbar-service/command-action.d.ts +34 -0
  511. package/dist/_pkgs/affine-shared/services/toolbar-service/command-action.js +63 -0
  512. package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
  513. package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
  514. package/dist/_pkgs/affine-shared/services/translation-service/chrome.d.ts +432 -0
  515. package/dist/_pkgs/affine-shared/services/translation-service/chrome.js +1045 -3
  516. package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +40 -2
  517. package/dist/_pkgs/affine-shared/services/translation-service/index.js +44 -3
  518. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +83 -2
  519. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +92 -0
  520. package/dist/_pkgs/affine-shared/styles/index.d.ts +1 -0
  521. package/dist/_pkgs/affine-shared/styles/index.js +1 -0
  522. package/dist/_pkgs/affine-shared/styles/motion.d.ts +14 -0
  523. package/dist/_pkgs/affine-shared/styles/motion.js +38 -0
  524. package/dist/_pkgs/affine-shared/utils/event.d.ts +10 -0
  525. package/dist/_pkgs/affine-shared/utils/event.js +20 -0
  526. package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +16 -0
  527. package/dist/_pkgs/affine-shared/utils/file/filesys.js +25 -0
  528. package/dist/_pkgs/affine-shared/utils/index.d.ts +1 -0
  529. package/dist/_pkgs/affine-shared/utils/index.js +1 -0
  530. package/dist/_pkgs/affine-shared/utils/link-preview-refresh.d.ts +12 -0
  531. package/dist/_pkgs/affine-shared/utils/link-preview-refresh.js +13 -0
  532. package/dist/_pkgs/affine-widget-drag-handle/components/edgeless-preview/preview.d.ts +4 -0
  533. package/dist/_pkgs/affine-widget-drag-handle/components/edgeless-preview/preview.js +21 -8
  534. package/dist/_pkgs/affine-widget-drag-handle/helpers/preview-helper.js +1 -0
  535. package/dist/_pkgs/affine-widget-drag-handle/translations.d.ts +14 -0
  536. package/dist/_pkgs/affine-widget-drag-handle/translations.js +35 -0
  537. package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +4 -3
  538. package/dist/_pkgs/affine-widget-edgeless-auto-connect/translations.d.ts +6 -0
  539. package/dist/_pkgs/affine-widget-edgeless-auto-connect/translations.js +14 -0
  540. package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +8 -5
  541. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +3 -2
  542. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +3 -1
  543. package/dist/_pkgs/affine-widget-edgeless-selected-rect/translations.d.ts +17 -0
  544. package/dist/_pkgs/affine-widget-edgeless-selected-rect/translations.js +30 -0
  545. package/dist/_pkgs/affine-widget-edgeless-toolbar/button/tool-icon-button.d.ts +4 -0
  546. package/dist/_pkgs/affine-widget-edgeless-toolbar/button/tool-icon-button.js +18 -2
  547. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +12 -4
  548. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +29 -6
  549. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/consts.d.ts +2 -0
  550. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/consts.js +3 -0
  551. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/types.d.ts +18 -1
  552. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.d.ts +8 -3
  553. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.js +38 -18
  554. package/dist/_pkgs/affine-widget-edgeless-toolbar/create-popper.js +13 -0
  555. package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +2 -1
  556. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +2 -0
  557. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +2 -0
  558. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +80 -0
  559. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +270 -81
  560. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/senior-menu-selection.d.ts +15 -0
  561. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/senior-menu-selection.js +15 -0
  562. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-weight-and-style-panel.d.ts +8 -0
  563. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-weight-and-style-panel.js +38 -8
  564. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-ghost-overlay.d.ts +42 -0
  565. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-ghost-overlay.js +100 -0
  566. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-placement-tool.d.ts +100 -0
  567. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-placement-tool.js +274 -0
  568. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/index.d.ts +3 -0
  569. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/index.js +3 -0
  570. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/translate-created.d.ts +25 -0
  571. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/translate-created.js +67 -0
  572. package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.d.ts +15 -0
  573. package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.js +20 -0
  574. package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +5 -0
  575. package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/translations.d.ts +7 -0
  576. package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/translations.js +23 -0
  577. package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/zoom-bar-toggle-button.js +3 -1
  578. package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/zoom-toolbar.js +5 -3
  579. package/dist/_pkgs/affine-widget-linked-doc/config.js +15 -10
  580. package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.d.ts +12 -1
  581. package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +27 -18
  582. package/dist/_pkgs/affine-widget-linked-doc/import-doc/index.d.ts +4 -1
  583. package/dist/_pkgs/affine-widget-linked-doc/import-doc/index.js +2 -2
  584. package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +4 -1
  585. package/dist/_pkgs/affine-widget-linked-doc/mobile-linked-doc-menu.js +6 -2
  586. package/dist/_pkgs/affine-widget-linked-doc/transformers/html.js +3 -2
  587. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +3 -2
  588. package/dist/_pkgs/affine-widget-linked-doc/translations.d.ts +53 -0
  589. package/dist/_pkgs/affine-widget-linked-doc/translations.js +104 -0
  590. package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +4 -1
  591. package/dist/_pkgs/affine-widget-remote-selection/translations.d.ts +12 -0
  592. package/dist/_pkgs/affine-widget-remote-selection/translations.js +12 -0
  593. package/dist/_pkgs/affine-widget-slash-menu/config.js +15 -0
  594. package/dist/_pkgs/affine-widget-slash-menu/index.d.ts +1 -0
  595. package/dist/_pkgs/affine-widget-slash-menu/index.js +1 -0
  596. package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +30 -15
  597. package/dist/_pkgs/affine-widget-slash-menu/tooltips/copy.js +1 -1
  598. package/dist/_pkgs/affine-widget-slash-menu/tooltips/delete.js +2 -2
  599. package/dist/_pkgs/affine-widget-slash-menu/tooltips/index.js +9 -0
  600. package/dist/_pkgs/affine-widget-slash-menu/tooltips/move-down.js +2 -2
  601. package/dist/_pkgs/affine-widget-slash-menu/tooltips/move-up.js +2 -2
  602. package/dist/_pkgs/affine-widget-slash-menu/tooltips/now.js +3 -3
  603. package/dist/_pkgs/affine-widget-slash-menu/tooltips/today.js +2 -2
  604. package/dist/_pkgs/affine-widget-slash-menu/tooltips/tomorrow.js +3 -3
  605. package/dist/_pkgs/affine-widget-slash-menu/tooltips/yesterday.js +3 -3
  606. package/dist/_pkgs/affine-widget-slash-menu/translations.d.ts +91 -0
  607. package/dist/_pkgs/affine-widget-slash-menu/translations.js +175 -0
  608. package/dist/_pkgs/affine-widget-slash-menu/types.d.ts +18 -0
  609. package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +20 -1
  610. package/dist/_pkgs/affine-widget-slash-menu/utils.js +37 -0
  611. package/dist/_pkgs/affine-widget-toolbar/translations.d.ts +9 -0
  612. package/dist/_pkgs/affine-widget-toolbar/translations.js +13 -0
  613. package/dist/_pkgs/affine-widget-toolbar/utils.js +2 -1
  614. package/dist/_pkgs/global/gfx/xywh.js +7 -0
  615. package/dist/_pkgs/std/extension/command-registry.d.ts +158 -1
  616. package/dist/_pkgs/std/extension/command-registry.js +22 -0
  617. package/dist/_pkgs/std/extension/translation-manifest.d.ts +7 -0
  618. package/dist/_pkgs/std/gfx/index.d.ts +1 -1
  619. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.d.ts +12 -0
  620. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +20 -1
  621. package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +10 -0
  622. package/dist/_pkgs/std/gfx/interactivity/manager.js +12 -0
  623. package/dist/_pkgs/std/gfx/model/surface/element-model.js +12 -7
  624. package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +56 -0
  625. package/dist/_pkgs/std/gfx/model/surface/surface-model.js +84 -3
  626. package/dist/_pkgs/std/gfx/view/view.d.ts +11 -2
  627. package/dist/_pkgs/std/gfx/view/view.js +16 -2
  628. package/dist/_pkgs/std/translations.d.ts +24 -0
  629. package/dist/_pkgs/std/translations.js +28 -0
  630. package/dist/_pkgs/std/view/element/block-component.js +24 -7
  631. package/dist/commands.d.ts +6 -0
  632. package/dist/commands.js +8 -1
  633. package/dist/frameworks.d.ts +9 -0
  634. package/dist/frameworks.js +19 -0
  635. package/dist/translations.js +160 -5
  636. package/package.json +9 -4
  637. package/dist/_pkgs/affine-gfx-group/group-watcher.d.ts +0 -1
  638. package/dist/_pkgs/affine-gfx-group/group-watcher.js +0 -20
@@ -0,0 +1,274 @@
1
+ import { DefaultTool, EXCLUDING_MOUSE_OUT_CLASS_LIST, recordAction, sortIndex, } from '../../affine-block-surface/index.js';
2
+ import { translateKey } from '../../affine-shared/services/index.js';
3
+ import { hasClassNameInList } from '../../affine-shared/utils/index.js';
4
+ import { Bound } from '../../global/gfx/index.js';
5
+ import { runCommand, } from '../../std/index.js';
6
+ import { BaseTool, GfxGroupLikeElementModel, } from '../../std/gfx/index.js';
7
+ import { seniorMenuSelection } from '../menu/senior-menu-selection.js';
8
+ import { ArtefactGhostOverlay } from './artefact-ghost-overlay.js';
9
+ import { collectCreated, translateCreated } from './translate-created.js';
10
+ /** The ghost of an artefact nobody could measure. */
11
+ const FALLBACK_FOOTPRINT = new Bound(-60, -30, 120, 60);
12
+ /**
13
+ * ONE tool for every framework's artefacts: pick one from a senior menu and it
14
+ * is not created, it is ARMED — a ghost follows the cursor and the click says
15
+ * where (PO decision, 2026-09-16).
16
+ *
17
+ * The shape tool has always worked this way, and a framework artefact is a
18
+ * shape the framework named. Before this, an artefact landed at the viewport
19
+ * centre whatever the author was looking at, and putting it where they meant it
20
+ * to go was a second gesture with a mouse held down.
21
+ *
22
+ * It is generic on purpose. Nothing here knows what a Wardley component or a
23
+ * BPMN gateway is: the armed {@link CommandDescriptor} carries its own label,
24
+ * its own creation body and its own telemetry, and the footprint is MEASURED by
25
+ * running that body against the recording fake (`recordAction`) rather than
26
+ * declared a second time. A ninth framework arms this tool by existing.
27
+ *
28
+ * What it deliberately does not do:
29
+ *
30
+ * - **Telemetry.** Arming and cycling emit nothing and record no usage, exactly
31
+ * as choosing a shape variant does. The one emission still happens where it
32
+ * always did — inside {@link runCommand}, at placement — so the numbers a
33
+ * framework already reports are unchanged, and a user who arms an artefact
34
+ * and changes their mind has not "used" it.
35
+ * - **Drag to size.** A framework artefact has a size its framework chose; the
36
+ * click places that size. Out of scope, deliberately.
37
+ */
38
+ export class ArtefactPlacementTool extends BaseTool {
39
+ constructor() {
40
+ super(...arguments);
41
+ this._ghost = null;
42
+ }
43
+ static { this.toolName = 'artefact-placement'; }
44
+ get _surfaceComponent() {
45
+ return this.gfx.surfaceComponent;
46
+ }
47
+ activate() {
48
+ this.createOverlay();
49
+ }
50
+ deactivate() {
51
+ this.clearOverlay();
52
+ }
53
+ clearOverlay() {
54
+ if (!this._ghost)
55
+ return;
56
+ this._ghost.dispose();
57
+ this._surfaceComponent?.renderer.removeOverlay(this._ghost);
58
+ this._ghost = null;
59
+ this._surfaceComponent?.renderer.refresh();
60
+ }
61
+ /**
62
+ * Record the armed command once, and hang its ghost off the cursor.
63
+ *
64
+ * Once per arming and per cycle, never per pointer move: the recording runs
65
+ * the command's whole creation body against a fake and the preview builds a
66
+ * model per element, which is cheap but not free — and neither can change
67
+ * between two mouse positions.
68
+ *
69
+ * An artefact made of connectors only gets no ghost at all: a connector is
70
+ * not previewed (PO decision, 2026-09-16), and the crosshair alone says the
71
+ * next click places something.
72
+ */
73
+ createOverlay() {
74
+ this.clearOverlay();
75
+ const { command } = this.activatedOption;
76
+ if (!command)
77
+ return;
78
+ const preview = previewOf(this.gfx, command);
79
+ if (!preview)
80
+ return;
81
+ this._ghost = new ArtefactGhostOverlay(this.gfx, preview.bound, translateKey(this.std, command.labelKey, command.labelFallback), preview.models);
82
+ this._surfaceComponent?.renderer.addOverlay(this._ghost);
83
+ }
84
+ /**
85
+ * Place the artefact under the cursor.
86
+ *
87
+ * The command is not asked WHERE to create — every one of them creates around
88
+ * the viewport centre, and teaching eight frameworks' worth of actions to take
89
+ * a point would be the per-framework code this tool exists to avoid. So the
90
+ * command runs as it always has, and what it created is moved by the offset
91
+ * between the centre it aimed at and the point the user clicked. That offset
92
+ * is read BEFORE the run, because a command may move the viewport.
93
+ */
94
+ click(e) {
95
+ const { command } = this.activatedOption;
96
+ this.clearOverlay();
97
+ if (!command)
98
+ return;
99
+ const { viewport } = this.gfx;
100
+ const [x, y] = viewport.toModelCoord(e.point.x, e.point.y);
101
+ const dx = x - viewport.centerX;
102
+ const dy = y - viewport.centerY;
103
+ this.doc.captureSync();
104
+ // THE bottleneck, not a shortcut past it: the placement is an invocation
105
+ // like any other, so `FrameworkElementAdded` and the usage measure are
106
+ // emitted exactly where they were before the tool existed.
107
+ const created = collectCreated(this.gfx, () => {
108
+ runCommand(this.std, command, {
109
+ surface: 'senior-menu',
110
+ source: 'toolbar:general',
111
+ });
112
+ });
113
+ const placed = translateCreated(this.gfx, created, dx, dy);
114
+ // `setTool` clears the selection, so the selection goes after it.
115
+ this.gfx.tool.setTool(DefaultTool);
116
+ if (placed.length) {
117
+ this.gfx.selection.set({ elements: placed, editing: false });
118
+ }
119
+ }
120
+ pointerMove(e) {
121
+ if (!this._ghost)
122
+ return;
123
+ if (this._ghost.globalAlpha === 0)
124
+ this._ghost.globalAlpha = 1;
125
+ const [x, y] = this.gfx.viewport.toModelCoord(e.x, e.y);
126
+ this._ghost.x = x;
127
+ this._ghost.y = y;
128
+ this._surfaceComponent?.refresh();
129
+ }
130
+ pointerOut(e) {
131
+ if (e.raw.relatedTarget &&
132
+ hasClassNameInList(e.raw.relatedTarget, EXCLUDING_MOUSE_OUT_CLASS_LIST))
133
+ return;
134
+ if (!this._ghost)
135
+ return;
136
+ this._ghost.globalAlpha = 0;
137
+ this._surfaceComponent?.refresh();
138
+ }
139
+ /** A framework artefact keeps the size its framework chose; a drag is a click. */
140
+ dragStart(_e) { }
141
+ dragMove(_e) { }
142
+ dragEnd(_e) { }
143
+ }
144
+ /**
145
+ * What the command would draw, recorded and BUILT by running it against
146
+ * nothing: its footprint, and a detached model per drawable element, in paint
147
+ * order. `null` when there is nothing to show but the crosshair.
148
+ *
149
+ * The recording's viewport centre is the origin, so every recorded box is
150
+ * already the offset around a real centre — and therefore around the cursor.
151
+ * The records go to `createDetachedElement` as they were handed to the CRUD,
152
+ * so a seed string becomes its `Y.Text` through the element's own `propsToY`,
153
+ * exactly as it will at insertion; the host's `TranslationProvider` makes the
154
+ * seeds come out in the author's language, as they will once placed.
155
+ *
156
+ * Skipped: connectors (never previewed) and group-likes, whose renderers draw
157
+ * selection chrome and look their children up in the document — the children
158
+ * are drawn on their own. A record the surface cannot build is skipped too.
159
+ *
160
+ * A command the fake cannot serve throws by design (it answers only the
161
+ * members creation actions touch); that is not an error worth a console line
162
+ * here, it just means the ghost falls back to a plain box rather than the tool
163
+ * refusing to arm. So does a recording in which nothing could be built.
164
+ */
165
+ function previewOf(gfx, command) {
166
+ let recorded;
167
+ try {
168
+ recorded = recordAction((std) => {
169
+ // An async body records nothing it does after its first `await`, and
170
+ // then fails on the fake: that late failure is the same "cannot
171
+ // preview", not an unhandled rejection in the console.
172
+ Promise.resolve(command.run(std, { surface: 'senior-menu', source: 'internal' })).catch(() => { });
173
+ }, { host: gfx.std });
174
+ }
175
+ catch {
176
+ return { bound: FALLBACK_FOOTPRINT, models: [] };
177
+ }
178
+ const { records } = recorded;
179
+ if (records.length > 0 && records.every(r => r['type'] === 'connector')) {
180
+ return null;
181
+ }
182
+ // Paint order as the surface derives it: a group's children sort under the
183
+ // group's own index, even though the group itself is not drawn.
184
+ const groupIndexMap = new Map();
185
+ for (const record of records) {
186
+ const children = record['children'];
187
+ if (record['type'] !== 'group' || typeof children !== 'object')
188
+ continue;
189
+ const group = { id: String(record['id']), index: String(record['index']) };
190
+ for (const childId of Object.keys(children ?? {})) {
191
+ groupIndexMap.set(childId, group);
192
+ }
193
+ }
194
+ const ordered = records
195
+ .map(record => ({
196
+ record,
197
+ id: String(record['id']),
198
+ index: String(record['index']),
199
+ }))
200
+ .sort((a, b) => sortIndex(a, b, groupIndexMap));
201
+ const { surface } = gfx;
202
+ const models = [];
203
+ for (const { record, id } of ordered) {
204
+ const type = String(record['type']);
205
+ const Ctor = surface?.getConstructor(type);
206
+ if (!surface ||
207
+ !Ctor ||
208
+ type === 'connector' ||
209
+ Ctor.prototype instanceof GfxGroupLikeElementModel) {
210
+ continue;
211
+ }
212
+ try {
213
+ models.push(surface.createDetachedElement({ ...record, type, id }));
214
+ }
215
+ catch {
216
+ // Unbuildable here means unpaintable here; the rest still draws.
217
+ }
218
+ }
219
+ return { bound: recorded.bound ?? FALLBACK_FOOTPRINT, models };
220
+ }
221
+ /** The armed artefact, or `null` when the editor is on any other tool. */
222
+ export function armedArtefact(gfx) {
223
+ const { toolType, options } = gfx.tool.currentToolOption$.value ?? {};
224
+ if (toolType?.toolName !== ArtefactPlacementTool.toolName)
225
+ return null;
226
+ const armed = options;
227
+ return armed?.command ? armed : null;
228
+ }
229
+ /** Arm `command`; the ghost appears with the next pointer move. */
230
+ export function armArtefact(gfx, owner, command) {
231
+ gfx.tool.setTool(ArtefactPlacementTool, { owner, command });
232
+ }
233
+ /**
234
+ * The artefacts of one owner, in the order its senior menu shows them.
235
+ *
236
+ * The MENU's row and not the whole catalogue: cycling is a keyboard walk along
237
+ * a row of buttons the user is looking at, and a Shift+S that stepped onto an
238
+ * artefact filed away in the sidepanel would move the ghost with nothing on
239
+ * screen to explain it. An owner past the fourteen-slot cap therefore cycles
240
+ * through its thirteen ranked artefacts; the rest stay one catalogue away.
241
+ *
242
+ * `kind` is what decides, not the owner: an entry of kind `'tool'` — a link
243
+ * tool, the evolution arrow, the Wardley area polygon — arms a gesture of its
244
+ * own and has no footprint to ghost, so it is never armed here and never
245
+ * stepped onto.
246
+ */
247
+ export function artefactCommandsFor(std, owner) {
248
+ return seniorMenuSelection(std, owner).commands.filter(command => command.kind === 'artefact');
249
+ }
250
+ /**
251
+ * Arm the artefact `dir` steps along the owner's row, wrapping at both ends.
252
+ * Returns false when nothing is armed, so a caller can fall through to whatever
253
+ * the keystroke means otherwise.
254
+ *
255
+ * An artefact armed from the catalogue is not in the row: a backwards step then
256
+ * enters on the row's last entry, a forwards one on its first — the same "enter
257
+ * from nothing" the open menu's highlight gives.
258
+ */
259
+ export function cycleArmedArtefact(gfx, dir) {
260
+ const armed = armedArtefact(gfx);
261
+ if (!armed)
262
+ return false;
263
+ const commands = artefactCommandsFor(gfx.std, armed.owner);
264
+ if (commands.length === 0)
265
+ return false;
266
+ const current = commands.findIndex(command => command.id === armed.command.id);
267
+ const next = current < 0
268
+ ? dir === 1
269
+ ? 0
270
+ : commands.length - 1
271
+ : (current + dir + commands.length) % commands.length;
272
+ armArtefact(gfx, armed.owner, commands[next]);
273
+ return true;
274
+ }
@@ -0,0 +1,3 @@
1
+ export * from './artefact-ghost-overlay.js';
2
+ export * from './artefact-placement-tool.js';
3
+ export * from './translate-created.js';
@@ -0,0 +1,3 @@
1
+ export * from './artefact-ghost-overlay.js';
2
+ export * from './artefact-placement-tool.js';
3
+ export * from './translate-created.js';
@@ -0,0 +1,25 @@
1
+ import type { GfxController } from '../../std/gfx/index.js';
2
+ /**
3
+ * Run `body` and report the ids of everything it put on the board — canvas
4
+ * elements and canvas blocks alike.
5
+ *
6
+ * Both subscriptions are synchronous: a Yjs observer fires when the transaction
7
+ * commits, inside the `addElement` / `addBlock` call, so an action that creates
8
+ * on the spot is fully accounted for by the time `body` returns. An action that
9
+ * creates from a promise is NOT, and its artefact is left where the command put
10
+ * it — which is today's behaviour for every command, so nothing regresses.
11
+ */
12
+ export declare function collectCreated(gfx: GfxController, body: () => void): string[];
13
+ /**
14
+ * Move a freshly created drawing by `(dx, dy)`, and report what is left to
15
+ * select.
16
+ *
17
+ * Only the TOP-LEVEL items move. An element the same run filed inside a group
18
+ * it also created is carried by that group, and moving it twice would tear the
19
+ * drawing apart. A group is moved through its children — `GfxGroupLikeElement`'s
20
+ * `xywh` setter is a deliberate no-op, its box being derived from what it holds
21
+ * — which is exactly what {@link updateXYWH} does, along with a connector's free
22
+ * endpoints (an anchored one simply follows what it is tied to) and a note's
23
+ * collapsed height. Hence no second opinion here.
24
+ */
25
+ export declare function translateCreated(gfx: GfxController, ids: string[], dx: number, dy: number): string[];
@@ -0,0 +1,67 @@
1
+ import { EdgelessCRUDIdentifier, updateXYWH, } from '../../affine-block-surface/index.js';
2
+ import { Bound } from '../../global/gfx/index.js';
3
+ /**
4
+ * Run `body` and report the ids of everything it put on the board — canvas
5
+ * elements and canvas blocks alike.
6
+ *
7
+ * Both subscriptions are synchronous: a Yjs observer fires when the transaction
8
+ * commits, inside the `addElement` / `addBlock` call, so an action that creates
9
+ * on the spot is fully accounted for by the time `body` returns. An action that
10
+ * creates from a promise is NOT, and its artefact is left where the command put
11
+ * it — which is today's behaviour for every command, so nothing regresses.
12
+ */
13
+ export function collectCreated(gfx, body) {
14
+ const ids = [];
15
+ const subscriptions = [
16
+ gfx.surface?.elementAdded.subscribe(({ id }) => {
17
+ ids.push(id);
18
+ }),
19
+ gfx.std.store.slots.blockUpdated.subscribe(payload => {
20
+ if (payload.type === 'add')
21
+ ids.push(payload.id);
22
+ }),
23
+ ];
24
+ try {
25
+ body();
26
+ }
27
+ finally {
28
+ subscriptions.forEach(subscription => subscription?.unsubscribe());
29
+ }
30
+ return ids;
31
+ }
32
+ /**
33
+ * Move a freshly created drawing by `(dx, dy)`, and report what is left to
34
+ * select.
35
+ *
36
+ * Only the TOP-LEVEL items move. An element the same run filed inside a group
37
+ * it also created is carried by that group, and moving it twice would tear the
38
+ * drawing apart. A group is moved through its children — `GfxGroupLikeElement`'s
39
+ * `xywh` setter is a deliberate no-op, its box being derived from what it holds
40
+ * — which is exactly what {@link updateXYWH} does, along with a connector's free
41
+ * endpoints (an anchored one simply follows what it is tied to) and a note's
42
+ * collapsed height. Hence no second opinion here.
43
+ */
44
+ export function translateCreated(gfx, ids, dx, dy) {
45
+ const created = new Set(ids);
46
+ const models = ids
47
+ .map(id => gfx.getElementById(id))
48
+ .filter((model) => !!model && 'xywh' in model);
49
+ const top = models.filter(model => !model.group || !created.has(model.group.id));
50
+ if (dx !== 0 || dy !== 0) {
51
+ const updateElement = gfx.std.get(EdgelessCRUDIdentifier).updateElement;
52
+ // Wrapped, not handed over: `Store.updateBlock` is a prototype method that
53
+ // reads `this.readonly` and `this._crud`. `updateXYWH` happens to re-bind it
54
+ // (`updateBlock.call(ele.store, …)`), so today nothing breaks — but an
55
+ // unbound method sitting in a variable is a landmine that reads correct, and
56
+ // the day that `.call` becomes a plain call the first canvas block placed
57
+ // would throw on `readonly` of undefined.
58
+ const updateBlock = (model, props) => gfx.std.store.updateBlock(model, props);
59
+ for (const model of top) {
60
+ const bound = Bound.deserialize(model.xywh);
61
+ bound.x += dx;
62
+ bound.y += dy;
63
+ updateXYWH(model, bound, updateElement, updateBlock);
64
+ }
65
+ }
66
+ return top.map(model => model.id);
67
+ }
@@ -0,0 +1,15 @@
1
+ import { type ChromeWording } from '../affine-shared/services/index.js';
2
+ /**
3
+ * The generic edgeless toolbar's own wordings — not a specific tool's, the
4
+ * toolbar chrome itself. `STYLE_GENERAL`/`STYLE_SCRIBBLED` (`config/consts.ts`'s
5
+ * `LINE_STYLE_LIST`) and `FONT_WEIGHT_*`/`FONT_STYLE_ITALIC`
6
+ * (`panel/font-weight-and-style-panel.ts`) are declared once in `chrome.ts`
7
+ * (shared with `gfx/shape` and `gfx/text`) and imported directly there rather
8
+ * than re-declared here. `EDGELESS_TOOLBAR_COMING_SOON` (L7 dedupe: the same
9
+ * word as `@labre/affine-components`'s own icon-button placeholder) aliases
10
+ * `ICON_BUTTON_COMING_SOON` for the same reason.
11
+ */
12
+ export declare const EDGELESS_TOOLBAR_COMING_SOON: ChromeWording;
13
+ export declare const EDGELESS_TOOLBAR_MORE_TOOLS: ChromeWording;
14
+ /** Every wording this package declares, in the order it renders them. */
15
+ export declare const EDGELESS_TOOLBAR_WORDINGS: readonly ChromeWording[];
@@ -0,0 +1,20 @@
1
+ import { ICON_BUTTON_COMING_SOON, } from '../affine-shared/services/index.js';
2
+ /**
3
+ * The generic edgeless toolbar's own wordings — not a specific tool's, the
4
+ * toolbar chrome itself. `STYLE_GENERAL`/`STYLE_SCRIBBLED` (`config/consts.ts`'s
5
+ * `LINE_STYLE_LIST`) and `FONT_WEIGHT_*`/`FONT_STYLE_ITALIC`
6
+ * (`panel/font-weight-and-style-panel.ts`) are declared once in `chrome.ts`
7
+ * (shared with `gfx/shape` and `gfx/text`) and imported directly there rather
8
+ * than re-declared here. `EDGELESS_TOOLBAR_COMING_SOON` (L7 dedupe: the same
9
+ * word as `@labre/affine-components`'s own icon-button placeholder) aliases
10
+ * `ICON_BUTTON_COMING_SOON` for the same reason.
11
+ */
12
+ export const EDGELESS_TOOLBAR_COMING_SOON = ICON_BUTTON_COMING_SOON;
13
+ export const EDGELESS_TOOLBAR_MORE_TOOLS = [
14
+ 'com.labre.edgeless-toolbar.more-tools',
15
+ 'More Tools',
16
+ ];
17
+ /** Every wording this package declares, in the order it renders them. */
18
+ export const EDGELESS_TOOLBAR_WORDINGS = [
19
+ EDGELESS_TOOLBAR_MORE_TOOLS,
20
+ ];
@@ -3,6 +3,7 @@ import { artefactCatalogueDefaultExtension } from './catalogue/artefact-catalogu
3
3
  import { edgelessArtefactCatalogueWidget } from './catalogue/artefact-catalogue-widget.js';
4
4
  import { edgelessToolbarWidget } from './edgeless-toolbar.js';
5
5
  import { effects } from './effects.js';
6
+ import { ArtefactPlacementTool } from './placement/artefact-placement-tool.js';
6
7
  export class EdgelessToolbarViewExtension extends ViewExtensionProvider {
7
8
  constructor() {
8
9
  super(...arguments);
@@ -23,6 +24,10 @@ export class EdgelessToolbarViewExtension extends ViewExtensionProvider {
23
24
  // sidebar overrides the seam and the widget then never opens.
24
25
  context.register(edgelessArtefactCatalogueWidget);
25
26
  context.register(artefactCatalogueDefaultExtension);
27
+ // Unconditionally too, and for the same reason: the tool is generic
28
+ // chrome driven by whatever commands are registered, so a framework whose
29
+ // flag is off simply never arms it. See `docs/adr/0009`.
30
+ context.register(ArtefactPlacementTool);
26
31
  }
27
32
  }
28
33
  }
@@ -0,0 +1,7 @@
1
+ import type { ChromeWording } from '../affine-shared/services/index.js';
2
+ export declare const ZOOM_TOGGLE_BAR_TOOLTIP: ChromeWording;
3
+ export declare const ZOOM_FIT_TO_SCREEN_TOOLTIP: ChromeWording;
4
+ export declare const ZOOM_OUT_TOOLTIP: ChromeWording;
5
+ export declare const ZOOM_IN_TOOLTIP: ChromeWording;
6
+ /** Every wording this package declares, in the order it renders them. */
7
+ export declare const ZOOM_TOOLBAR_WORDINGS: readonly ChromeWording[];
@@ -0,0 +1,23 @@
1
+ export const ZOOM_TOGGLE_BAR_TOOLTIP = [
2
+ 'com.labre.zoom-toolbar.toggle-bar',
3
+ 'Toggle Zoom Tool Bar',
4
+ ];
5
+ export const ZOOM_FIT_TO_SCREEN_TOOLTIP = [
6
+ 'com.labre.zoom-toolbar.fit-to-screen',
7
+ 'Fit to screen',
8
+ ];
9
+ export const ZOOM_OUT_TOOLTIP = [
10
+ 'com.labre.zoom-toolbar.zoom-out',
11
+ 'Zoom out',
12
+ ];
13
+ export const ZOOM_IN_TOOLTIP = [
14
+ 'com.labre.zoom-toolbar.zoom-in',
15
+ 'Zoom in',
16
+ ];
17
+ /** Every wording this package declares, in the order it renders them. */
18
+ export const ZOOM_TOOLBAR_WORDINGS = [
19
+ ZOOM_TOGGLE_BAR_TOOLTIP,
20
+ ZOOM_FIT_TO_SCREEN_TOOLTIP,
21
+ ZOOM_OUT_TOOLTIP,
22
+ ZOOM_IN_TOOLTIP,
23
+ ];
@@ -34,12 +34,14 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
34
34
  };
35
35
  import { EdgelessLegacySlotIdentifier } from '../affine-block-surface/index.js';
36
36
  import { createLitPortal } from '../affine-components/portal/index.js';
37
+ import { translateKey } from '../affine-shared/services/index.js';
37
38
  import { stopPropagation } from '../affine-shared/utils/index.js';
38
39
  import { WithDisposable } from '../global/lit/index.js';
39
40
  import { MoreHorizontalIcon } from '@blocksuite/icons/lit';
40
41
  import { offset } from '@floating-ui/dom';
41
42
  import { css, html, LitElement, nothing } from 'lit';
42
43
  import { property, query, state } from 'lit/decorators.js';
44
+ import { ZOOM_TOGGLE_BAR_TOOLTIP } from './translations.js';
43
45
  let ZoomBarToggleButton = (() => {
44
46
  let _classSuper = WithDisposable(LitElement);
45
47
  let __showPopper_decorators;
@@ -128,7 +130,7 @@ let ZoomBarToggleButton = (() => {
128
130
  return html `
129
131
  <div class="toggle-button" @pointerdown=${stopPropagation}>
130
132
  <edgeless-tool-icon-button
131
- .tooltip=${'Toggle Zoom Tool Bar'}
133
+ .tooltip=${translateKey(this.std, ...ZOOM_TOGGLE_BAR_TOOLTIP)}
132
134
  .tipPosition=${'right'}
133
135
  .active=${this._showPopper}
134
136
  .arrow=${false}
@@ -33,6 +33,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
33
  return useValue ? value : void 0;
34
34
  };
35
35
  import { EdgelessLegacySlotIdentifier } from '../affine-block-surface/index.js';
36
+ import { translateKey } from '../affine-shared/services/index.js';
36
37
  import { stopPropagation } from '../affine-shared/utils/index.js';
37
38
  import { WithDisposable } from '../global/lit/index.js';
38
39
  import { MinusIcon, PlusIcon, ViewBarIcon } from '@blocksuite/icons/lit';
@@ -42,6 +43,7 @@ import { baseTheme } from '@toeverything/theme';
42
43
  import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
43
44
  import { property } from 'lit/decorators.js';
44
45
  import clamp from 'lodash-es/clamp.js';
46
+ import { ZOOM_FIT_TO_SCREEN_TOOLTIP, ZOOM_IN_TOOLTIP, ZOOM_OUT_TOOLTIP, } from './translations.js';
45
47
  let EdgelessZoomToolbar = (() => {
46
48
  let _classSuper = WithDisposable(LitElement);
47
49
  let _layout_decorators;
@@ -182,7 +184,7 @@ let EdgelessZoomToolbar = (() => {
182
184
  @pointerdown=${stopPropagation}
183
185
  >
184
186
  <edgeless-tool-icon-button
185
- .tooltip=${'Fit to screen'}
187
+ .tooltip=${translateKey(this.std, ...ZOOM_FIT_TO_SCREEN_TOOLTIP)}
186
188
  .tipPosition=${this._isVerticalBar() ? 'right' : 'top-end'}
187
189
  .arrow=${!this._isVerticalBar()}
188
190
  @click=${() => this.gfx.fitToScreen()}
@@ -193,7 +195,7 @@ let EdgelessZoomToolbar = (() => {
193
195
  ${ViewBarIcon()}
194
196
  </edgeless-tool-icon-button>
195
197
  <edgeless-tool-icon-button
196
- .tooltip=${'Zoom out'}
198
+ .tooltip=${translateKey(this.std, ...ZOOM_OUT_TOOLTIP)}
197
199
  .tipPosition=${this._isVerticalBar() ? 'right' : 'top'}
198
200
  .arrow=${!this._isVerticalBar()}
199
201
  @click=${() => this.setZoomByStep(-ZOOM_STEP)}
@@ -211,7 +213,7 @@ let EdgelessZoomToolbar = (() => {
211
213
  ${formattedZoom}
212
214
  </button>
213
215
  <edgeless-tool-icon-button
214
- .tooltip=${'Zoom in'}
216
+ .tooltip=${translateKey(this.std, ...ZOOM_IN_TOOLTIP)}
215
217
  .tipPosition=${this._isVerticalBar() ? 'right' : 'top'}
216
218
  .arrow=${!this._isVerticalBar()}
217
219
  @click=${() => this.setZoomByStep(ZOOM_STEP)}
@@ -2,12 +2,12 @@ import { ImportIcon, LinkedDocIcon, LinkedEdgelessIcon, NewDocIcon, } from '../a
2
2
  import { toast } from '../affine-components/toast/index.js';
3
3
  import { StoreExtensionManagerIdentifier } from '../affine-ext-loader/index.js';
4
4
  import { insertLinkedNode } from '../affine-inline-reference/index.js';
5
- import { DocModeProvider, TelemetryProvider, } from '../affine-shared/services/index.js';
5
+ import { DocModeProvider, formatLocale, TelemetryProvider, translateKey, } from '../affine-shared/services/index.js';
6
6
  import { createDefaultDoc, isFuzzyMatch, } from '../affine-shared/utils/index.js';
7
7
  import { IS_MOBILE } from '../global/env/index.js';
8
8
  import { ConfigExtensionFactory, } from '../std/index.js';
9
9
  import { showImportModal } from './import-doc/index.js';
10
- const DEFAULT_DOC_NAME = 'Untitled';
10
+ import { LINKED_DOC_CREATE_DOC, LINKED_DOC_IMPORT, LINKED_DOC_IMPORT_SUCCESS_TOAST, LINKED_DOC_LINK_TO_DOC, LINKED_DOC_NEW_DOC, LINKED_DOC_UNTITLED, } from './translations.js';
11
11
  const DISPLAY_NAME_LENGTH = 8;
12
12
  export function createLinkedDocMenuGroup(query, abort, editorHost, inlineEditor) {
13
13
  const doc = editorHost.store;
@@ -17,10 +17,10 @@ export function createLinkedDocMenuGroup(query, abort, editorHost, inlineEditor)
17
17
  .filter(({ title }) => isFuzzyMatch(title, query));
18
18
  const MAX_DOCS = 6;
19
19
  return {
20
- name: 'Link to Doc',
20
+ name: translateKey(editorHost.std, ...LINKED_DOC_LINK_TO_DOC),
21
21
  items: filteredDocList.map(doc => ({
22
22
  key: doc.id,
23
- name: doc.title || DEFAULT_DOC_NAME,
23
+ name: doc.title || translateKey(editorHost.std, ...LINKED_DOC_UNTITLED),
24
24
  icon: editorHost.std.get(DocModeProvider).getPrimaryMode(doc.id) ===
25
25
  'edgeless'
26
26
  ? LinkedEdgelessIcon
@@ -42,18 +42,20 @@ export function createLinkedDocMenuGroup(query, abort, editorHost, inlineEditor)
42
42
  },
43
43
  })),
44
44
  maxDisplay: MAX_DOCS,
45
- overflowText: `${filteredDocList.length - MAX_DOCS} more docs`,
45
+ overflowText: `${new Intl.NumberFormat(formatLocale(editorHost.std)).format(filteredDocList.length - MAX_DOCS)} more docs`,
46
46
  };
47
47
  }
48
48
  export function createNewDocMenuGroup(query, abort, editorHost, inlineEditor) {
49
49
  const doc = editorHost.store;
50
- const docName = query || DEFAULT_DOC_NAME;
50
+ const docName = query || translateKey(editorHost.std, ...LINKED_DOC_UNTITLED);
51
51
  const displayDocName = docName.slice(0, DISPLAY_NAME_LENGTH) +
52
52
  (docName.length > DISPLAY_NAME_LENGTH ? '..' : '');
53
53
  const items = [
54
54
  {
55
55
  key: 'create',
56
- name: `Create "${displayDocName}" doc`,
56
+ name: translateKey(editorHost.std, ...LINKED_DOC_CREATE_DOC, {
57
+ name: displayDocName,
58
+ }),
57
59
  icon: NewDocIcon,
58
60
  action: () => {
59
61
  abort();
@@ -83,12 +85,14 @@ export function createNewDocMenuGroup(query, abort, editorHost, inlineEditor) {
83
85
  if (!IS_MOBILE) {
84
86
  items.push({
85
87
  key: 'import',
86
- name: 'Import',
88
+ name: translateKey(editorHost.std, ...LINKED_DOC_IMPORT),
87
89
  icon: ImportIcon,
88
90
  action: () => {
89
91
  abort();
90
92
  const onSuccess = (docIds, options) => {
91
- toast(editorHost, `Successfully imported ${options.importedCount} Doc${options.importedCount > 1 ? 's' : ''}.`);
93
+ toast(editorHost, translateKey(editorHost.std, ...LINKED_DOC_IMPORT_SUCCESS_TOAST, {
94
+ count: options.importedCount,
95
+ }));
92
96
  for (const docId of docIds) {
93
97
  insertLinkedNode({
94
98
  inlineEditor,
@@ -106,12 +110,13 @@ export function createNewDocMenuGroup(query, abort, editorHost, inlineEditor) {
106
110
  extensions: storeManager.get('store'),
107
111
  onSuccess,
108
112
  onFail,
113
+ std: editorHost.std,
109
114
  });
110
115
  },
111
116
  });
112
117
  }
113
118
  return {
114
- name: 'New Doc',
119
+ name: translateKey(editorHost.std, ...LINKED_DOC_NEW_DOC),
115
120
  items,
116
121
  };
117
122
  }
@@ -1,3 +1,4 @@
1
+ import type { BlockStdScope } from '../../std/index.js';
1
2
  import type { ExtensionType, Schema, Workspace } from '../../store/index.js';
2
3
  import { LitElement, type PropertyValues } from 'lit';
3
4
  export type OnSuccessHandler = (pageIds: string[], options: {
@@ -13,8 +14,18 @@ export declare class ImportDoc extends ImportDoc_base {
13
14
  private readonly onSuccess?;
14
15
  private readonly onFail?;
15
16
  private readonly abortController;
17
+ /** Set by the caller that has one (`config.ts`'s `showImportModal` call) —
18
+ * optional so this dialog still renders (in English) when created with
19
+ * none. */
20
+ private readonly std?;
16
21
  static styles: import("lit").CSSResult;
17
- constructor(collection: Workspace, schema: Schema, extensions: ExtensionType[], onSuccess?: OnSuccessHandler | undefined, onFail?: OnFailHandler | undefined, abortController?: AbortController);
22
+ constructor(collection: Workspace, schema: Schema, extensions: ExtensionType[], onSuccess?: OnSuccessHandler | undefined, onFail?: OnFailHandler | undefined, abortController?: AbortController,
23
+ /** Set by the caller that has one (`config.ts`'s `showImportModal` call) —
24
+ * optional so this dialog still renders (in English) when created with
25
+ * none. */
26
+ std?: BlockStdScope | undefined);
27
+ /** `translateKey(std, ...wording)` when `std` is available, else the literal. */
28
+ private _t;
18
29
  private _importHtml;
19
30
  private _importMarkDown;
20
31
  private _importNotion;