@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,24 @@
1
+ import { isTouchPadPinchEvent } from '../../../affine-shared/utils/index.js';
2
+ /**
3
+ * The class `createSimplePortal` stamps on every portal root it appends to
4
+ * `document.body` — the only thing a popup rendered OUTSIDE the editor host
5
+ * still has in common with the editor that opened it.
6
+ */
7
+ export const PORTAL_CLASS = 'blocksuite-portal';
8
+ /**
9
+ * The whole decision, readable from the event and the host alone so it can be
10
+ * tested without a live editor.
11
+ */
12
+ export function pinchZoomAction(event, host) {
13
+ // A plain wheel still belongs to whatever is under the pointer: an
14
+ // overflowing toolbar, a bubble, a panel. Only the zoom gesture is claimed.
15
+ if (!isTouchPadPinchEvent(event))
16
+ return 'ignore';
17
+ const path = event.composedPath();
18
+ if (path.includes(host))
19
+ return 'zoom';
20
+ if (path.some(node => node instanceof Element && node.classList.contains(PORTAL_CLASS))) {
21
+ return 'swallow';
22
+ }
23
+ return 'ignore';
24
+ }
@@ -43,6 +43,14 @@ export function getCursorMode(edgelessTool) {
43
43
  return drawingCursor;
44
44
  case 'eraser':
45
45
  case 'shape':
46
+ // The polygon tool is armed long before it draws anything — the first
47
+ // click only places a corner — so the cursor is the only thing that says
48
+ // the next click lands on the canvas rather than selecting.
49
+ case 'polygon':
50
+ // An armed framework artefact: the ghost says WHAT lands, the crosshair
51
+ // says WHERE — and it is all there is for an artefact with nothing drawable
52
+ // to preview (a lone connector).
53
+ case 'artefact-placement':
46
54
  case 'connector':
47
55
  case 'frame':
48
56
  case 'affine:note':
@@ -1,20 +1,5 @@
1
+ import { isNativeFocusableTarget } from '../../affine-shared/utils/index.js';
1
2
  import { KeymapExtension } from '../../std/index.js';
2
- const NATIVE_FOCUSABLE_SELECTOR = 'button, a[href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
3
- /**
4
- * The editor host swallows Tab and Shift-Tab so that indentation stays under
5
- * the control of the block-scoped handlers. That would however trap the focus
6
- * on the native controls the editor renders (the collapse button of headings
7
- * and lists, for instance), which then could neither be reached nor left with
8
- * the keyboard. When the event originates from such a control — and not from
9
- * editable text — the native tabbing behaviour is let through.
10
- */
11
- const isNativeFocusableTarget = (target) => {
12
- if (!(target instanceof Element))
13
- return false;
14
- if (target instanceof HTMLElement && target.isContentEditable)
15
- return false;
16
- return !!target.closest(NATIVE_FOCUSABLE_SELECTOR);
17
- };
18
3
  export const fallbackKeymap = KeymapExtension(() => {
19
4
  return {
20
5
  Tab: ctx => {
@@ -0,0 +1,61 @@
1
+ import { type ChromeWording } from '../affine-shared/services/index.js';
2
+ /**
3
+ * This package's own wordings, joined into `PACKAGE_WORDINGS` /
4
+ * `PACKAGE_SEED_WORDINGS` in `@labre/affine/translations` — see that file and
5
+ * `packages/affine/shared/src/services/translation-service/README.md`.
6
+ */
7
+ export declare const ROOT_TOOLBAR_CONVERSIONS_ARIA: ChromeWording;
8
+ export declare const ROOT_TOOLBAR_TURN_INTO: ChromeWording;
9
+ export declare const ROOT_TOOLBAR_CREATE_TABLE: ChromeWording;
10
+ /**
11
+ * An alias (L7 dedupe): the same Title Case word as
12
+ * {@link TOOLBAR_CREATE_LINKED_DOC_TITLE}, distinct from the shared
13
+ * sentence-case `TOOLBAR_CREATE_LINKED_DOC` chrome wording
14
+ * (`com.labre.toolbar.create-linked-doc`, "Create linked doc").
15
+ */
16
+ export declare const ROOT_TOOLBAR_CREATE_LINKED_DOC: ChromeWording;
17
+ export declare const ROOT_ALIGNMENT_MENU_ARIA: ChromeWording;
18
+ export declare const ROOT_ALIGN_LEFT: ChromeWording;
19
+ export declare const ROOT_ALIGN_HORIZONTALLY: ChromeWording;
20
+ export declare const ROOT_ALIGN_RIGHT: ChromeWording;
21
+ export declare const ROOT_DISTRIBUTE_HORIZONTALLY: ChromeWording;
22
+ export declare const ROOT_ALIGN_TOP: ChromeWording;
23
+ export declare const ROOT_ALIGN_VERTICALLY: ChromeWording;
24
+ export declare const ROOT_ALIGN_BOTTOM: ChromeWording;
25
+ export declare const ROOT_DISTRIBUTE_VERTICALLY: ChromeWording;
26
+ export declare const ROOT_AUTO_ARRANGE: ChromeWording;
27
+ export declare const ROOT_RESIZE_AND_ALIGN: ChromeWording;
28
+ export declare const ROOT_TOOLBAR_RELEASE_FROM_GROUP: ChromeWording;
29
+ export declare const ROOT_TOOLBAR_FRAME: ChromeWording;
30
+ export declare const ROOT_TOOLBAR_GROUP: ChromeWording;
31
+ export declare const ROOT_TOOLBAR_ALIGN_OBJECTS: ChromeWording;
32
+ export declare const ROOT_TOOLBAR_CLICK_TO_UNLOCK: ChromeWording;
33
+ export declare const ROOT_TOOLBAR_FRAME_SECTION: ChromeWording;
34
+ export declare const ROOT_TOOLBAR_GROUP_SECTION: ChromeWording;
35
+ export declare const ROOT_TOOLBAR_BRING_FORWARD: ChromeWording;
36
+ export declare const ROOT_TOOLBAR_SEND_BACKWARD: ChromeWording;
37
+ export declare const ROOT_TOOLBAR_RELOAD: ChromeWording;
38
+ export declare const ROOT_TOOLBAR_TURN_INTO_LINKED_DOC: ChromeWording;
39
+ export declare const ROOT_TOOLBAR_EDIT_LINK: ChromeWording;
40
+ export declare const ROOT_TOOLBAR_REMOVE_LINK: ChromeWording;
41
+ export declare const ROOT_TOAST_ZOOM_TO_SELECTION: ChromeWording;
42
+ /**
43
+ * The Tab/Enter mindmap shortcuts' seed for a freshly added node — the same
44
+ * word `MindmapElementModel.addNode`'s own default falls back to (that
45
+ * default is model/red-zone, left untouched: the creation site now passes
46
+ * this text explicitly instead of relying on it). Declared here rather than
47
+ * in `@labre/affine-gfx-mindmap` because that package's own translations
48
+ * table does not carry this key yet (see that lot's own translations.ts,
49
+ * owned by a different lot — imported, never edited, per this lot's brief).
50
+ */
51
+ export declare const ROOT_MINDMAP_SEED_NEW_NODE: ChromeWording;
52
+ /**
53
+ * This package's own CHROME wordings — L7 dedupe aliased
54
+ * `ROOT_TOOLBAR_CREATE_LINKED_DOC`, `ROOT_TOOLBAR_FRAME`, `ROOT_TOOLBAR_RELOAD`
55
+ * and `ROOT_TOOLBAR_REMOVE_LINK` to `chrome.ts` wordings — not listed again
56
+ * here, same rule the note/slash-menu packages' own chrome aliases already
57
+ * follow.
58
+ */
59
+ export declare const ROOT_CHROME_WORDINGS: readonly ChromeWording[];
60
+ /** This package's own seed, joined into `PACKAGE_SEED_WORDINGS`. */
61
+ export declare const ROOT_SEED_WORDINGS: readonly ChromeWording[];
@@ -0,0 +1,172 @@
1
+ import { TOOL_NAME_FRAME, TOOLBAR_CREATE_LINKED_DOC_TITLE, TOOLBAR_RELOAD, TOOLBAR_REMOVE_LINK, } from '../affine-shared/services/index.js';
2
+ /**
3
+ * This package's own wordings, joined into `PACKAGE_WORDINGS` /
4
+ * `PACKAGE_SEED_WORDINGS` in `@labre/affine/translations` — see that file and
5
+ * `packages/affine/shared/src/services/translation-service/README.md`.
6
+ */
7
+ /* ── The block contextual toolbar (`configs/toolbar.ts`) ──────────────── */
8
+ export const ROOT_TOOLBAR_CONVERSIONS_ARIA = [
9
+ 'com.labre.root.toolbar.conversions',
10
+ 'Conversions',
11
+ ];
12
+ export const ROOT_TOOLBAR_TURN_INTO = [
13
+ 'com.labre.root.toolbar.turn-into',
14
+ 'Turn into',
15
+ ];
16
+ export const ROOT_TOOLBAR_CREATE_TABLE = [
17
+ 'com.labre.root.toolbar.create-table',
18
+ 'Create Table',
19
+ ];
20
+ /**
21
+ * An alias (L7 dedupe): the same Title Case word as
22
+ * {@link TOOLBAR_CREATE_LINKED_DOC_TITLE}, distinct from the shared
23
+ * sentence-case `TOOLBAR_CREATE_LINKED_DOC` chrome wording
24
+ * (`com.labre.toolbar.create-linked-doc`, "Create linked doc").
25
+ */
26
+ export const ROOT_TOOLBAR_CREATE_LINKED_DOC = TOOLBAR_CREATE_LINKED_DOC_TITLE;
27
+ /* ── The edgeless alignment menu (`edgeless/configs/toolbar/alignment.ts`) ── */
28
+ export const ROOT_ALIGNMENT_MENU_ARIA = [
29
+ 'com.labre.root.toolbar.alignment-menu',
30
+ 'alignment-menu',
31
+ ];
32
+ export const ROOT_ALIGN_LEFT = [
33
+ 'com.labre.root.toolbar.align-left',
34
+ 'Align left',
35
+ ];
36
+ export const ROOT_ALIGN_HORIZONTALLY = [
37
+ 'com.labre.root.toolbar.align-horizontally',
38
+ 'Align horizontally',
39
+ ];
40
+ export const ROOT_ALIGN_RIGHT = [
41
+ 'com.labre.root.toolbar.align-right',
42
+ 'Align right',
43
+ ];
44
+ export const ROOT_DISTRIBUTE_HORIZONTALLY = [
45
+ 'com.labre.root.toolbar.distribute-horizontally',
46
+ 'Distribute horizontally',
47
+ ];
48
+ export const ROOT_ALIGN_TOP = [
49
+ 'com.labre.root.toolbar.align-top',
50
+ 'Align top',
51
+ ];
52
+ export const ROOT_ALIGN_VERTICALLY = [
53
+ 'com.labre.root.toolbar.align-vertically',
54
+ 'Align vertically',
55
+ ];
56
+ export const ROOT_ALIGN_BOTTOM = [
57
+ 'com.labre.root.toolbar.align-bottom',
58
+ 'Align bottom',
59
+ ];
60
+ export const ROOT_DISTRIBUTE_VERTICALLY = [
61
+ 'com.labre.root.toolbar.distribute-vertically',
62
+ 'Distribute vertically',
63
+ ];
64
+ export const ROOT_AUTO_ARRANGE = [
65
+ 'com.labre.root.toolbar.auto-arrange',
66
+ 'Auto arrange',
67
+ ];
68
+ export const ROOT_RESIZE_AND_ALIGN = [
69
+ 'com.labre.root.toolbar.resize-and-align',
70
+ 'Resize & Align',
71
+ ];
72
+ /* ── The edgeless misc contextual toolbar (`edgeless/configs/toolbar/misc.ts`) ── */
73
+ export const ROOT_TOOLBAR_RELEASE_FROM_GROUP = [
74
+ 'com.labre.root.toolbar.release-from-group',
75
+ 'Release from group',
76
+ ];
77
+ export const ROOT_TOOLBAR_FRAME = TOOL_NAME_FRAME;
78
+ export const ROOT_TOOLBAR_GROUP = [
79
+ 'com.labre.root.toolbar.group',
80
+ 'Group',
81
+ ];
82
+ export const ROOT_TOOLBAR_ALIGN_OBJECTS = [
83
+ 'com.labre.root.toolbar.align-objects',
84
+ 'Align objects',
85
+ ];
86
+ export const ROOT_TOOLBAR_CLICK_TO_UNLOCK = [
87
+ 'com.labre.root.toolbar.click-to-unlock',
88
+ 'Click to unlock',
89
+ ];
90
+ /* ── The edgeless "More" sub-menu (`edgeless/configs/toolbar/more.ts`) ─── */
91
+ export const ROOT_TOOLBAR_FRAME_SECTION = [
92
+ 'com.labre.root.toolbar.frame-section',
93
+ 'Frame section',
94
+ ];
95
+ export const ROOT_TOOLBAR_GROUP_SECTION = [
96
+ 'com.labre.root.toolbar.group-section',
97
+ 'Group section',
98
+ ];
99
+ export const ROOT_TOOLBAR_BRING_FORWARD = [
100
+ 'com.labre.root.toolbar.bring-forward',
101
+ 'Bring Forward',
102
+ ];
103
+ export const ROOT_TOOLBAR_SEND_BACKWARD = [
104
+ 'com.labre.root.toolbar.send-backward',
105
+ 'Send Backward',
106
+ ];
107
+ export const ROOT_TOOLBAR_RELOAD = TOOLBAR_RELOAD;
108
+ export const ROOT_TOOLBAR_TURN_INTO_LINKED_DOC = [
109
+ 'com.labre.root.toolbar.turn-into-linked-doc',
110
+ 'Turn into linked doc',
111
+ ];
112
+ export const ROOT_TOOLBAR_EDIT_LINK = [
113
+ 'com.labre.root.toolbar.edit-link',
114
+ 'Edit link',
115
+ ];
116
+ export const ROOT_TOOLBAR_REMOVE_LINK = TOOLBAR_REMOVE_LINK;
117
+ /* ── The edgeless keyboard shortcuts (`edgeless/edgeless-keyboard.ts`) ─── */
118
+ export const ROOT_TOAST_ZOOM_TO_SELECTION = [
119
+ 'com.labre.root.toast.zoom-to-selection',
120
+ 'Zoom to selection',
121
+ ];
122
+ /**
123
+ * The Tab/Enter mindmap shortcuts' seed for a freshly added node — the same
124
+ * word `MindmapElementModel.addNode`'s own default falls back to (that
125
+ * default is model/red-zone, left untouched: the creation site now passes
126
+ * this text explicitly instead of relying on it). Declared here rather than
127
+ * in `@labre/affine-gfx-mindmap` because that package's own translations
128
+ * table does not carry this key yet (see that lot's own translations.ts,
129
+ * owned by a different lot — imported, never edited, per this lot's brief).
130
+ */
131
+ export const ROOT_MINDMAP_SEED_NEW_NODE = [
132
+ 'com.labre.mindmap.seed.new-node',
133
+ 'New node',
134
+ ];
135
+ /**
136
+ * This package's own CHROME wordings — L7 dedupe aliased
137
+ * `ROOT_TOOLBAR_CREATE_LINKED_DOC`, `ROOT_TOOLBAR_FRAME`, `ROOT_TOOLBAR_RELOAD`
138
+ * and `ROOT_TOOLBAR_REMOVE_LINK` to `chrome.ts` wordings — not listed again
139
+ * here, same rule the note/slash-menu packages' own chrome aliases already
140
+ * follow.
141
+ */
142
+ export const ROOT_CHROME_WORDINGS = [
143
+ ROOT_TOOLBAR_CONVERSIONS_ARIA,
144
+ ROOT_TOOLBAR_TURN_INTO,
145
+ ROOT_TOOLBAR_CREATE_TABLE,
146
+ ROOT_ALIGNMENT_MENU_ARIA,
147
+ ROOT_ALIGN_LEFT,
148
+ ROOT_ALIGN_HORIZONTALLY,
149
+ ROOT_ALIGN_RIGHT,
150
+ ROOT_DISTRIBUTE_HORIZONTALLY,
151
+ ROOT_ALIGN_TOP,
152
+ ROOT_ALIGN_VERTICALLY,
153
+ ROOT_ALIGN_BOTTOM,
154
+ ROOT_DISTRIBUTE_VERTICALLY,
155
+ ROOT_AUTO_ARRANGE,
156
+ ROOT_RESIZE_AND_ALIGN,
157
+ ROOT_TOOLBAR_RELEASE_FROM_GROUP,
158
+ ROOT_TOOLBAR_GROUP,
159
+ ROOT_TOOLBAR_ALIGN_OBJECTS,
160
+ ROOT_TOOLBAR_CLICK_TO_UNLOCK,
161
+ ROOT_TOOLBAR_FRAME_SECTION,
162
+ ROOT_TOOLBAR_GROUP_SECTION,
163
+ ROOT_TOOLBAR_BRING_FORWARD,
164
+ ROOT_TOOLBAR_SEND_BACKWARD,
165
+ ROOT_TOOLBAR_TURN_INTO_LINKED_DOC,
166
+ ROOT_TOOLBAR_EDIT_LINK,
167
+ ROOT_TOAST_ZOOM_TO_SELECTION,
168
+ ];
169
+ /** This package's own seed, joined into `PACKAGE_SEED_WORDINGS`. */
170
+ export const ROOT_SEED_WORDINGS = [
171
+ ROOT_MINDMAP_SEED_NEW_NODE,
172
+ ];
@@ -1,4 +1,4 @@
1
- import { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, TextElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel } from '../../affine-model/index.js';
1
+ import { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, TextElementModel, UmlDiagramElementModel, UmlFragmentElementModel, UmlNodeElementModel, UmlPartitionElementModel, UmlRegionElementModel, UmlSubjectElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel } from '../../affine-model/index.js';
2
2
  import { SurfaceElementModel } from './base.js';
3
3
  export declare const elementsCtorMap: {
4
4
  group: typeof GroupElementModel;
@@ -23,8 +23,14 @@ export declare const elementsCtorMap: {
23
23
  c4Node: typeof C4NodeElementModel;
24
24
  c4Board: typeof C4BoardElementModel;
25
25
  c4Boundary: typeof C4BoundaryElementModel;
26
+ umlNode: typeof UmlNodeElementModel;
27
+ umlDiagram: typeof UmlDiagramElementModel;
28
+ umlSubject: typeof UmlSubjectElementModel;
29
+ umlPartition: typeof UmlPartitionElementModel;
30
+ umlRegion: typeof UmlRegionElementModel;
31
+ umlFragment: typeof UmlFragmentElementModel;
26
32
  };
27
- export { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, SurfaceElementModel, TextElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, };
33
+ export { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, SurfaceElementModel, TextElementModel, UmlDiagramElementModel, UmlFragmentElementModel, UmlNodeElementModel, UmlPartitionElementModel, UmlRegionElementModel, UmlSubjectElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, };
28
34
  export declare enum CanvasElementType {
29
35
  BRUSH = "brush",
30
36
  CONNECTOR = "connector",
@@ -47,7 +53,13 @@ export declare enum CanvasElementType {
47
53
  BPMNPOOL = "bpmnPool",
48
54
  C4NODE = "c4Node",
49
55
  C4BOARD = "c4Board",
50
- C4BOUNDARY = "c4Boundary"
56
+ C4BOUNDARY = "c4Boundary",
57
+ UMLNODE = "umlNode",
58
+ UMLDIAGRAM = "umlDiagram",
59
+ UMLSUBJECT = "umlSubject",
60
+ UMLPARTITION = "umlPartition",
61
+ UMLREGION = "umlRegion",
62
+ UMLFRAGMENT = "umlFragment"
51
63
  }
52
64
  export type ElementModelMap = {
53
65
  ['shape']: ShapeElementModel;
@@ -72,5 +84,11 @@ export type ElementModelMap = {
72
84
  ['c4Node']: C4NodeElementModel;
73
85
  ['c4Board']: C4BoardElementModel;
74
86
  ['c4Boundary']: C4BoundaryElementModel;
87
+ ['umlNode']: UmlNodeElementModel;
88
+ ['umlDiagram']: UmlDiagramElementModel;
89
+ ['umlSubject']: UmlSubjectElementModel;
90
+ ['umlPartition']: UmlPartitionElementModel;
91
+ ['umlRegion']: UmlRegionElementModel;
92
+ ['umlFragment']: UmlFragmentElementModel;
75
93
  };
76
94
  export declare function isCanvasElementType(type: string): type is CanvasElementType;
@@ -1,4 +1,4 @@
1
- import { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, TextElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, } from '../../affine-model/index.js';
1
+ import { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, TextElementModel, UmlDiagramElementModel, UmlFragmentElementModel, UmlNodeElementModel, UmlPartitionElementModel, UmlRegionElementModel, UmlSubjectElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, } from '../../affine-model/index.js';
2
2
  import { SurfaceElementModel } from './base.js';
3
3
  export const elementsCtorMap = {
4
4
  group: GroupElementModel,
@@ -23,8 +23,14 @@ export const elementsCtorMap = {
23
23
  c4Node: C4NodeElementModel,
24
24
  c4Board: C4BoardElementModel,
25
25
  c4Boundary: C4BoundaryElementModel,
26
+ umlNode: UmlNodeElementModel,
27
+ umlDiagram: UmlDiagramElementModel,
28
+ umlSubject: UmlSubjectElementModel,
29
+ umlPartition: UmlPartitionElementModel,
30
+ umlRegion: UmlRegionElementModel,
31
+ umlFragment: UmlFragmentElementModel,
26
32
  };
27
- export { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, SurfaceElementModel, TextElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, };
33
+ export { BpmnNodeElementModel, BpmnPoolElementModel, BrushElementModel, C4BoardElementModel, C4BoundaryElementModel, C4NodeElementModel, ConnectorElementModel, ContextMapBoardElementModel, CoreDomainChartElementModel, CynefinElementModel, EdgyBoardElementModel, EdgyFacetsElementModel, EdgyNodeElementModel, EstuarineElementModel, EventStormingBoardElementModel, GroupElementModel, HighlighterElementModel, MindmapElementModel, ShapeElementModel, SurfaceElementModel, TextElementModel, UmlDiagramElementModel, UmlFragmentElementModel, UmlNodeElementModel, UmlPartitionElementModel, UmlRegionElementModel, UmlSubjectElementModel, WardleyBackgroundElementModel, WardleyNodeElementModel, };
28
34
  export var CanvasElementType;
29
35
  (function (CanvasElementType) {
30
36
  CanvasElementType["BRUSH"] = "brush";
@@ -49,6 +55,12 @@ export var CanvasElementType;
49
55
  CanvasElementType["C4NODE"] = "c4Node";
50
56
  CanvasElementType["C4BOARD"] = "c4Board";
51
57
  CanvasElementType["C4BOUNDARY"] = "c4Boundary";
58
+ CanvasElementType["UMLNODE"] = "umlNode";
59
+ CanvasElementType["UMLDIAGRAM"] = "umlDiagram";
60
+ CanvasElementType["UMLSUBJECT"] = "umlSubject";
61
+ CanvasElementType["UMLPARTITION"] = "umlPartition";
62
+ CanvasElementType["UMLREGION"] = "umlRegion";
63
+ CanvasElementType["UMLFRAGMENT"] = "umlFragment";
52
64
  })(CanvasElementType || (CanvasElementType = {}));
53
65
  export function isCanvasElementType(type) {
54
66
  return type.toLocaleUpperCase() in CanvasElementType;
@@ -1,6 +1,7 @@
1
1
  import { ImageBlockModel } from '../../../affine-model/index.js';
2
2
  import { FetchUtils, ImageProxyService } from '../../../affine-shared/adapters/index.js';
3
3
  import { CANVAS_EXPORT_IGNORE_TAGS } from '../../../affine-shared/consts/index.js';
4
+ import { CHROME_UNTITLED, translateKey } from '../../../affine-shared/services/index.js';
4
5
  import { isInsidePageEditor, matchModels } from '../../../affine-shared/utils/index.js';
5
6
  import { BlockSuiteError, ErrorCode } from '../../../global/exceptions/index.js';
6
7
  import { deserializeXYWH } from '../../../global/gfx/index.js';
@@ -388,7 +389,8 @@ export class ExportManager {
388
389
  if (!canvasImage) {
389
390
  return;
390
391
  }
391
- FileExporter.exportPng(this.doc.root.props.title.toString(), canvasImage.toDataURL('image/png'));
392
+ const title = this.doc.root.props.title.toString();
393
+ FileExporter.exportPng(title.trim() || translateKey(this.std, ...CHROME_UNTITLED), canvasImage.toDataURL('image/png'));
392
394
  }
393
395
  }
394
396
  export const ExportManagerExtension = {
@@ -0,0 +1,23 @@
1
+ import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
2
+ import type { AnyCommandDescriptor, BlockStdScope } from '../../../std/index.js';
3
+ /**
4
+ * The framework boards in the current canvas selection.
5
+ *
6
+ * `FrameworkBackgroundElementModel` is the whole test, and that is the point of
7
+ * this command: eleven board kinds today — a Wardley map, a BPMN pool, a C4
8
+ * board and its boundaries, the three DDD boards, Cynefin, Estuarine, the two
9
+ * EDGY ones — and whatever a framework adds next, because a board IS the class
10
+ * and nothing about SVG is per framework (ADR 0025).
11
+ */
12
+ export declare function selectedBoards(std: BlockStdScope): FrameworkBackgroundElementModel[];
13
+ /**
14
+ * Render the selected board and hand it to the browser.
15
+ *
16
+ * ponytail: ONE board per click, the first of the selection. Browsers throttle
17
+ * (and Safari silently drops) programmatic downloads fired in a burst, so a
18
+ * selection of three boards would yield one file, two files or three depending
19
+ * on the browser — a result nobody can read off the gesture. One board, one
20
+ * file, every time.
21
+ */
22
+ export declare function exportBoardSvg(std: BlockStdScope): void;
23
+ export declare const exportSvgCommands: AnyCommandDescriptor[];
@@ -0,0 +1,89 @@
1
+ import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
2
+ import { downloadBlob, safeFilename } from '../../../affine-shared/utils/index.js';
3
+ import { GfxControllerIdentifier } from '../../../std/gfx/index.js';
4
+ import { renderBoardSvg } from './render.js';
5
+ /** What the file is, told to the browser. */
6
+ const SVG_MIME = 'image/svg+xml';
7
+ /** The name a board with no document title falls back to. */
8
+ const SVG_FILENAME_FALLBACK = 'board';
9
+ /**
10
+ * The framework boards in the current canvas selection.
11
+ *
12
+ * `FrameworkBackgroundElementModel` is the whole test, and that is the point of
13
+ * this command: eleven board kinds today — a Wardley map, a BPMN pool, a C4
14
+ * board and its boundaries, the three DDD boards, Cynefin, Estuarine, the two
15
+ * EDGY ones — and whatever a framework adds next, because a board IS the class
16
+ * and nothing about SVG is per framework (ADR 0025).
17
+ */
18
+ export function selectedBoards(std) {
19
+ return std
20
+ .get(GfxControllerIdentifier)
21
+ .selection.selectedElements.filter((element) => element instanceof FrameworkBackgroundElementModel);
22
+ }
23
+ /**
24
+ * Render the selected board and hand it to the browser.
25
+ *
26
+ * ponytail: ONE board per click, the first of the selection. Browsers throttle
27
+ * (and Safari silently drops) programmatic downloads fired in a burst, so a
28
+ * selection of three boards would yield one file, two files or three depending
29
+ * on the browser — a result nobody can read off the gesture. One board, one
30
+ * file, every time.
31
+ */
32
+ export function exportBoardSvg(std) {
33
+ const [board] = selectedBoards(std);
34
+ if (!board)
35
+ return;
36
+ const { svg } = renderBoardSvg(std, board);
37
+ const title = std.store.workspace.meta.getDocMeta(std.store.id)?.title;
38
+ downloadBlob(
39
+ // The charset is the browser's business, not the format's: `image/svg+xml`
40
+ // is what the file IS, and this is how a blob is told to carry it.
41
+ new Blob([svg], { type: `${SVG_MIME};charset=utf-8` }), `${safeFilename(title, SVG_FILENAME_FALLBACK)}.svg`);
42
+ }
43
+ /**
44
+ * "Export SVG", in the command registry (ADR 0025).
45
+ *
46
+ * `owner: 'core'` and not a framework's, for the reason `map.audit` and
47
+ * `validation.mapQuality` are core: the command belongs to no framework —
48
+ * it renders whatever board is selected with the renderer that already paints
49
+ * it — and a framework owner would have forced the id prefix `wardley.` and
50
+ * then a second, identical command for every framework that follows. `'core'`
51
+ * owners are exempt from the id-prefix rule (ADR 0008).
52
+ *
53
+ * It READS, so there is no read-only guard: taking a picture of a board you
54
+ * cannot edit is precisely what a reader does.
55
+ *
56
+ * No `telemetry` field: `CommandTelemetry.framework` is typed on `FrameworkId`,
57
+ * and this command cannot name one — the surface package knows a board by its
58
+ * MODEL CLASS, and nothing in it maps `bpmnPool` back to `bpmn` without
59
+ * importing the framework packages the layering forbids. Usage is still
60
+ * measured, because `runCommand` records it outside the telemetry condition.
61
+ */
62
+ const exportSvg = {
63
+ id: 'export.svg',
64
+ owner: 'core',
65
+ kind: 'action',
66
+ labelKey: 'com.labre.command.export.svg',
67
+ labelFallback: 'Export SVG',
68
+ descriptionKey: 'com.labre.command.export.svg.description',
69
+ descriptionFallback: 'Download the selected board and everything drawn on it as an SVG file.',
70
+ // The category the framework exports already file under: this is the same
71
+ // shelf as `wardley.exportOwm`, `bpmn.exportXml` and `c4.exportMermaid`, and
72
+ // a host catalogue groups them together.
73
+ category: 'interchange',
74
+ // Deliberately NOT `'senior-menu'`: those slots are for artefacts you DRAW,
75
+ // and "Export SVG" answers no question asked of a row of shapes — the same
76
+ // arbitration `bpmn.exportXml` is filed under (ADR 0014, R4).
77
+ surfaces: ['catalogue', 'contextual-toolbar', 'palette', 'agent'],
78
+ scope: 'edgeless',
79
+ // Keyless by intent. Still bindable from Settings › Shortcuts, which is what
80
+ // `toShortcutDescriptor` being total buys.
81
+ defaultKeys: { mac: [], other: [] },
82
+ // The serializable precondition a host catalogue can show; `when` narrows it
83
+ // to "…and that selection contains a board", which no member of the closed
84
+ // union can express.
85
+ availability: 'selection:framework',
86
+ when: std => selectedBoards(std).length > 0,
87
+ run: std => exportBoardSvg(std),
88
+ };
89
+ export const exportSvgCommands = [exportSvg];
@@ -0,0 +1,7 @@
1
+ export { exportBoardSvg, exportSvgCommands, selectedBoards, } from './command.js';
2
+ export type { BoardSvgExport } from './render.js';
3
+ export { exportBoundOf, renderBoardSvg, selectBoardElements, } from './render.js';
4
+ export { taggedPath2D } from './tagged-path.js';
5
+ export type { SvgContext } from './svg-context.js';
6
+ export { createSvgContext, runWithRecordingPath2D } from './svg-context.js';
7
+ export { exportSvgToolbarConfig, exportSvgToolbarExtension, } from './toolbar.js';
@@ -0,0 +1,5 @@
1
+ export { exportBoardSvg, exportSvgCommands, selectedBoards, } from './command.js';
2
+ export { exportBoundOf, renderBoardSvg, selectBoardElements, } from './render.js';
3
+ export { taggedPath2D } from './tagged-path.js';
4
+ export { createSvgContext, runWithRecordingPath2D } from './svg-context.js';
5
+ export { exportSvgToolbarConfig, exportSvgToolbarExtension, } from './toolbar.js';
@@ -0,0 +1,41 @@
1
+ import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
2
+ import { Bound } from '../../../global/gfx/index.js';
3
+ import type { BlockStdScope } from '../../../std/index.js';
4
+ import { type GfxPrimitiveElementModel } from '../../../std/gfx/index.js';
5
+ export interface BoardSvgExport {
6
+ /** A standalone SVG document. */
7
+ svg: string;
8
+ /** The world-space rectangle the document covers. */
9
+ bound: Bound;
10
+ }
11
+ /**
12
+ * The canvas elements that make up `board`'s picture, in paint order.
13
+ *
14
+ * `candidates` comes from a bound query, so it also holds whatever a NEIGHBOUR
15
+ * board happens to overlap with. Another framework background is kept only
16
+ * when its frame lies ENTIRELY inside the exported one (edges may touch): that
17
+ * is a nested frame — a UML subject, partition, region or fragment inside its
18
+ * diagram frame, a C4 boundary inside a C4 board — and it is part of the
19
+ * picture. One that merely overlaps is a neighbour and is dropped: without
20
+ * that, a map sitting next to this one would paint its whole frame into this
21
+ * file. So is one that ENCLOSES the board, the diagram frame around an
22
+ * exported partition. Non-background elements are kept whoever owns them — an
23
+ * element inside the exported frame belongs to the picture.
24
+ *
25
+ * Containment is read on the stored `xywh`, the same rectangle
26
+ * {@link exportBoundOf} starts from; a background at exactly the board's own
27
+ * rectangle therefore counts as nested.
28
+ */
29
+ export declare function selectBoardElements<T extends GfxPrimitiveElementModel>(board: FrameworkBackgroundElementModel, candidates: readonly T[]): (FrameworkBackgroundElementModel | T)[];
30
+ /**
31
+ * The board's frame, widened to the union of what is painted on it: a Wardley
32
+ * label overhanging the right edge, or a connector ending just outside, is part
33
+ * of the picture and must not be cut off.
34
+ */
35
+ export declare function exportBoundOf(board: FrameworkBackgroundElementModel, elements: readonly GfxPrimitiveElementModel[]): Bound;
36
+ /**
37
+ * The selected board and everything painted within its frame, as an SVG
38
+ * document — a true vector export, produced by replaying the very element
39
+ * renderers the canvas uses into an SVG-emitting 2D context.
40
+ */
41
+ export declare function renderBoardSvg(std: BlockStdScope, board: FrameworkBackgroundElementModel): BoardSvgExport;
@@ -0,0 +1,70 @@
1
+ import { FrameworkBackgroundElementModel } from '../../../affine-model/index.js';
2
+ import { Bound } from '../../../global/gfx/index.js';
3
+ import { GfxControllerIdentifier, } from '../../../std/gfx/index.js';
4
+ import { CanvasRenderer } from '../../renderer/canvas-renderer.js';
5
+ import { RoughCanvas } from '../../utils/rough/canvas.js';
6
+ import { createSvgContext, runWithRecordingPath2D } from './svg-context.js';
7
+ /**
8
+ * The canvas elements that make up `board`'s picture, in paint order.
9
+ *
10
+ * `candidates` comes from a bound query, so it also holds whatever a NEIGHBOUR
11
+ * board happens to overlap with. Another framework background is kept only
12
+ * when its frame lies ENTIRELY inside the exported one (edges may touch): that
13
+ * is a nested frame — a UML subject, partition, region or fragment inside its
14
+ * diagram frame, a C4 boundary inside a C4 board — and it is part of the
15
+ * picture. One that merely overlaps is a neighbour and is dropped: without
16
+ * that, a map sitting next to this one would paint its whole frame into this
17
+ * file. So is one that ENCLOSES the board, the diagram frame around an
18
+ * exported partition. Non-background elements are kept whoever owns them — an
19
+ * element inside the exported frame belongs to the picture.
20
+ *
21
+ * Containment is read on the stored `xywh`, the same rectangle
22
+ * {@link exportBoundOf} starts from; a background at exactly the board's own
23
+ * rectangle therefore counts as nested.
24
+ */
25
+ export function selectBoardElements(board, candidates) {
26
+ const frame = Bound.deserialize(board.xywh);
27
+ const kept = candidates.filter(element => element === board ||
28
+ !(element instanceof FrameworkBackgroundElementModel) ||
29
+ frame.contains(Bound.deserialize(element.xywh)));
30
+ // A background paints under everything, so a board missing from the query
31
+ // (an empty bound, a stub) goes in front of the list, not at the end.
32
+ return kept.some(element => element === board)
33
+ ? kept
34
+ : [board, ...kept];
35
+ }
36
+ /**
37
+ * The board's frame, widened to the union of what is painted on it: a Wardley
38
+ * label overhanging the right edge, or a connector ending just outside, is part
39
+ * of the picture and must not be cut off.
40
+ */
41
+ export function exportBoundOf(board, elements) {
42
+ let bound = Bound.deserialize(board.xywh);
43
+ for (const element of elements) {
44
+ bound = bound.unite(Bound.deserialize(element.xywh));
45
+ }
46
+ return bound;
47
+ }
48
+ /**
49
+ * The selected board and everything painted within its frame, as an SVG
50
+ * document — a true vector export, produced by replaying the very element
51
+ * renderers the canvas uses into an SVG-emitting 2D context.
52
+ */
53
+ export function renderBoardSvg(std, board) {
54
+ const gfx = std.get(GfxControllerIdentifier);
55
+ const renderer = gfx.surfaceComponent?.renderer;
56
+ if (!(renderer instanceof CanvasRenderer)) {
57
+ throw new Error('SVG export needs the surface to be painted by a CanvasRenderer.');
58
+ }
59
+ // Already sorted by `layer.compare`, which is the canvas' own z-order.
60
+ const candidates = gfx.getElementsByBound(Bound.deserialize(board.xywh), {
61
+ type: 'canvas',
62
+ });
63
+ const elements = selectBoardElements(board, candidates);
64
+ const bound = exportBoundOf(board, elements);
65
+ return runWithRecordingPath2D(() => {
66
+ const { ctx, canvas, serialize } = createSvgContext(bound.w, bound.h);
67
+ renderer.renderBoundTo(ctx, new RoughCanvas(canvas), bound, elements);
68
+ return { svg: serialize(), bound };
69
+ });
70
+ }