@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
@@ -158,8 +158,11 @@ export function applyMorph(ctx, spec, kind) {
158
158
  entry.target.clearField(field);
159
159
  // Inside the loop and inside the one checkpoint above: whatever the rest of
160
160
  // a composite owes this morph — C4's type line — is part of the same single
161
- // ctrl+z as the kind that made it necessary.
162
- spec.afterMorph?.(entry.selected, entry.kind, kind);
161
+ // ctrl+z as the kind that made it necessary. `ctx.std` is handed through so
162
+ // a rewrite can tell an untouched TRANSLATED placeholder from real content
163
+ // (`c4MorphedTypeLine`, `wardleyMorphedLabel`) — with no host it behaves
164
+ // exactly as it always has, English only.
165
+ spec.afterMorph?.(entry.selected, entry.kind, kind, ctx.std);
163
166
  }
164
167
  // The one DIRECT emission in this module, and the arbitrated exception is the
165
168
  // same one the C4 legend button makes: there is no command behind this
@@ -82,12 +82,26 @@ export declare class ReadingProposalWidget extends EditorAnchoredPanel {
82
82
  */
83
83
  private _renderNature;
84
84
  /**
85
- * The typed edges touching the subject, grouped by side and named with the
86
- * FRAMEWORK's own two words (`ReadingRelationDef.sides`).
85
+ * The typed edges touching the subject, grouped by TABLE and then by side,
86
+ * and named with the FRAMEWORK's own two words
87
+ * (`ReadingRelationDef.sides`).
88
+ *
89
+ * One line per (table, side) rather than per side, since a profile may
90
+ * declare several tables (`ReadingProfile.alsoRelations`): a UML use case
91
+ * associated with an actor and including another use case has two sentences
92
+ * to say and they are not the same sentence. A framework declaring one table
93
+ * — which is every framework but UML — renders exactly what it did before.
87
94
  *
88
95
  * The `data-testid` keeps the shape it shipped with — `reading-consumers`,
89
96
  * `reading-suppliers` — because it names the SIDE, which is generic, and not
90
- * the wording, which is now the framework's.
97
+ * the wording, which is the framework's. `data-relation-role` is what tells
98
+ * two lines of the same side apart.
99
+ *
100
+ * The FAR end's label rides with the name, in parentheses: a UML association
101
+ * writes its multiplicity there (ADR 0020) and "Associated with: OrderLine
102
+ * (1..*)" is the sentence an author drew. The subject's OWN end label is read
103
+ * too ({@link ReadingRelation.ownEndLabel}) and deliberately not printed —
104
+ * one line about the other end, not a transcription of the connector.
91
105
  */
92
106
  private _renderRelations;
93
107
  /**
@@ -32,7 +32,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
32
32
  }
33
33
  return useValue ? value : void 0;
34
34
  };
35
- import { buildOccurrencePatch, getUniverseRegistry, publishOccurrenceMaterialities, translateKey, } from '../../affine-shared/services/index.js';
35
+ import { buildOccurrencePatch, getUniverseRegistry, publishOccurrenceMaterialities, translateKey, translateTagLabel, } from '../../affine-shared/services/index.js';
36
36
  import { getRegisteredCommands, runCommand, WidgetViewExtension, } from '../../std/index.js';
37
37
  import { resolvePivotBinding } from '../../std/gfx/index.js';
38
38
  import { effect } from '@preact/signals-core';
@@ -40,7 +40,7 @@ import { css, html, nothing } from 'lit';
40
40
  import { state } from 'lit/decorators.js';
41
41
  import { literal, unsafeStatic } from 'lit/static-html.js';
42
42
  import { EditorAnchoredPanel, editorAnchoredPanelStyles, } from './editor-anchored-panel.js';
43
- import { PivotRecordPickerProvider, ReadingManager, readRecord, readValueFlows, } from './reading.js';
43
+ import { PivotRecordPickerProvider, ReadingManager, readingRelationDefs, readRecord, readValueFlows, } from './reading.js';
44
44
  export const READING_PROPOSAL_WIDGET = 'affine-reading-proposal-widget';
45
45
  /** The two commands the confirmations drive. Spelled once. */
46
46
  const TAG_SET_ID = 'tag.set';
@@ -330,7 +330,8 @@ let ReadingProposalWidget = (() => {
330
330
  const def = getUniverseRegistry(this.std).tag(tagId);
331
331
  if (!def || def.values === 'open')
332
332
  return valueId;
333
- return def.values.find(value => value.id === valueId)?.label || valueId;
333
+ const value = def.values.find(value => value.id === valueId);
334
+ return (value && translateTagLabel(this.std, value)) || valueId;
334
335
  }
335
336
  _field(testid, label, body) {
336
337
  return html `<div class="reading-field" data-testid=${testid}>
@@ -410,37 +411,59 @@ let ReadingProposalWidget = (() => {
410
411
  : nothing}`);
411
412
  }
412
413
  /**
413
- * The typed edges touching the subject, grouped by side and named with the
414
- * FRAMEWORK's own two words (`ReadingRelationDef.sides`).
414
+ * The typed edges touching the subject, grouped by TABLE and then by side,
415
+ * and named with the FRAMEWORK's own two words
416
+ * (`ReadingRelationDef.sides`).
417
+ *
418
+ * One line per (table, side) rather than per side, since a profile may
419
+ * declare several tables (`ReadingProfile.alsoRelations`): a UML use case
420
+ * associated with an actor and including another use case has two sentences
421
+ * to say and they are not the same sentence. A framework declaring one table
422
+ * — which is every framework but UML — renders exactly what it did before.
415
423
  *
416
424
  * The `data-testid` keeps the shape it shipped with — `reading-consumers`,
417
425
  * `reading-suppliers` — because it names the SIDE, which is generic, and not
418
- * the wording, which is now the framework's.
426
+ * the wording, which is the framework's. `data-relation-role` is what tells
427
+ * two lines of the same side apart.
428
+ *
429
+ * The FAR end's label rides with the name, in parentheses: a UML association
430
+ * writes its multiplicity there (ADR 0020) and "Associated with: OrderLine
431
+ * (1..*)" is the sentence an author drew. The subject's OWN end label is read
432
+ * too ({@link ReadingRelation.ownEndLabel}) and deliberately not printed —
433
+ * one line about the other end, not a transcription of the connector.
419
434
  */
420
435
  _renderRelations(reading, profile) {
421
- const sides = profile.relation?.sides;
422
- const line = (side) => {
423
- const relations = reading.relations.filter(r => r.side === side);
424
- const wording = sides?.[side];
436
+ const named = (relation) => {
437
+ const name = relation.otherName || relation.otherId;
438
+ return relation.otherEndLabel
439
+ ? `${name} (${relation.otherEndLabel})`
440
+ : name;
441
+ };
442
+ const line = (edgeRole, side) => {
443
+ const relations = reading.relations.filter(r => r.side === side && r.relationRole === edgeRole);
444
+ const wording = readingRelationDefs(profile).find(def => def.edgeRole === edgeRole)?.sides[side];
425
445
  // No wording means the framework declared no relation at all, in which
426
446
  // case there is nothing to list either. Silence rather than a heading
427
447
  // this library would have had to invent.
428
448
  if (!relations.length || !wording)
429
449
  return nothing;
430
- return html `<div class="reading-value" data-testid=${`reading-${side}s`}>
450
+ return html `<div
451
+ class="reading-value"
452
+ data-testid=${`reading-${side}s`}
453
+ data-relation-role=${edgeRole}
454
+ >
431
455
  ${translateKey(this.std, wording.labelKey, wording.labelFallback)}:
432
- ${relations
433
- .map(relation => relation.otherName || relation.otherId)
434
- .join(', ')}
456
+ ${relations.map(named).join(', ')}
435
457
  </div>`;
436
458
  };
459
+ const lines = readingRelationDefs(profile).flatMap(def => RELATION_SIDES.map(side => line(def.edgeRole, side)));
437
460
  const contradictions = reading.relations.filter(r => r.contradictsGeometry);
438
461
  return this._field('reading-relations', translateKey(this.std, 'com.labre.reading.field.relations', 'Parent-child relations'), html `${reading.relations.length === 0
439
462
  ? html `<div class="reading-empty">
440
463
  ${translateKey(this.std, 'com.labre.reading.relations.none', 'No typed link touches this component.')}
441
464
  </div>`
442
465
  : nothing}
443
- ${RELATION_SIDES.map(line)}
466
+ ${lines}
444
467
  ${contradictions.length
445
468
  ? html `<div class="reading-note" data-testid="reading-contradiction">
446
469
  ${translateKey(this.std, 'com.labre.reading.relations.contradiction', 'A link states the opposite of what the positions show')}:
@@ -155,8 +155,36 @@ export interface ReadingProfile {
155
155
  tagId: string;
156
156
  conventions: readonly ReadingNamingConvention[];
157
157
  };
158
- /** The typed edge whose two ends the relation reading walks. */
158
+ /**
159
+ * The typed edge whose two ends the relation reading walks — the one the
160
+ * artefact is read THROUGH, and the one the panel lists first.
161
+ */
159
162
  relation?: ReadingRelationDef;
163
+ /**
164
+ * The OTHER typed edges the same artefact is read through, read after
165
+ * {@link relation} and listed under their own wordings.
166
+ *
167
+ * Absent for every framework whose artefacts carry one kind of line: a
168
+ * Wardley component has a dependency, a BPMN task a sequence flow, and a
169
+ * second table there would be a heading with nothing under it.
170
+ *
171
+ * It exists because UML's artefacts carry a DOZEN kinds of line, and the
172
+ * panel answering with one of them reads as an answer rather than as a
173
+ * selection: the PO's recette of 2026-09-14 (O8) opened the reading on a use
174
+ * case whose only link was an `«include»` and was told "No typed link touches
175
+ * this component", which the drawing plainly contradicted. One relation per
176
+ * profile was a deliberate narrowing (`gfx/uml/src/reading.ts` argued it and
177
+ * named what it left unread); what the recette established is that a reader
178
+ * cannot tell a narrowing from a failure, because the panel says the same
179
+ * thing in both cases.
180
+ *
181
+ * Every table is INDEPENDENT: its own `edgeRole`, its own two wordings, its
182
+ * own `geometry` claim. `roleIsA` still applies to each, so a table declared
183
+ * on a parent role reaches its children and two tables must not overlap — an
184
+ * edge matching both would be listed twice. Order is the order the panel
185
+ * reads them in, so the first is the question the artefact answers first.
186
+ */
187
+ alsoRelations?: readonly ReadingRelationDef[];
160
188
  /** The frame the phase is read from. */
161
189
  frame?: {
162
190
  backgroundRole: RoleId;
@@ -181,14 +209,46 @@ export interface ReadingProfile {
181
209
  }
182
210
  /** Where the other end of a typed edge sits, relative to the subject. */
183
211
  export type ReadingRelationSide = 'consumer' | 'supplier';
212
+ /**
213
+ * Every relation table a profile declares, in reading order.
214
+ *
215
+ * One function so the engine and the panel cannot disagree about what a profile
216
+ * declares — the bug that shape of duplication always produces is a table read
217
+ * into {@link ElementReading.relations} and never drawn, or a heading drawn
218
+ * over nothing.
219
+ */
220
+ export declare function readingRelationDefs(profile: ReadingProfile): readonly ReadingRelationDef[];
184
221
  /** One typed edge touching the subject, read with the ADR 0010 convention. */
185
222
  export interface ReadingRelation {
186
223
  /** The edge element. */
187
224
  edgeId: string;
225
+ /**
226
+ * The `edgeRole` of the TABLE that matched — the role the profile DECLARED,
227
+ * never the edge's own, which may be a specialisation of it (a UML
228
+ * composition read through `uml:association`, §11.5.4).
229
+ *
230
+ * It is what lets the panel put each relation under the wording it was read
231
+ * with once a profile declares several tables. One reading, one table, and
232
+ * the tables never overlap: {@link readingRelationDefs} documents that as the
233
+ * declaring framework's obligation.
234
+ */
235
+ relationRole: RoleId;
188
236
  /** The element at the other end. */
189
237
  otherId: string;
190
238
  /** Its name, when it has one — for the panel, which must not print ids. */
191
239
  otherName: string;
240
+ /**
241
+ * What the connector writes at the SUBJECT's end, and at the other end —
242
+ * `undefined` when the author wrote nothing there, which is the ordinary
243
+ * case (ADR 0020).
244
+ *
245
+ * Two spellings of the same fact rather than `sourceLabel`/`targetLabel`,
246
+ * because the reading is written from the subject outwards and a panel
247
+ * saying "Associated with: OrderLine (1..*)" must not have to work out which
248
+ * end of the arrow it is standing on.
249
+ */
250
+ ownEndLabel?: string;
251
+ otherEndLabel?: string;
192
252
  /**
193
253
  * What the OTHER element is to the subject. ADR 0010 § 2 tier 2: on a
194
254
  * `wardley:dependency`, `source` is the consumer and `target` is what it
@@ -9,6 +9,21 @@ import { effect, signal } from '@preact/signals-core';
9
9
  // canvas in.
10
10
  import { backgroundPlot, } from '../framework-background/def.js';
11
11
  import { backgroundTransitionBands, containingFrame, } from '../framework-background/facts.js';
12
+ /**
13
+ * Every relation table a profile declares, in reading order.
14
+ *
15
+ * One function so the engine and the panel cannot disagree about what a profile
16
+ * declares — the bug that shape of duplication always produces is a table read
17
+ * into {@link ElementReading.relations} and never drawn, or a heading drawn
18
+ * over nothing.
19
+ */
20
+ export function readingRelationDefs(profile) {
21
+ const first = profile.relation;
22
+ const rest = profile.alsoRelations ?? [];
23
+ if (!first)
24
+ return rest;
25
+ return rest.length === 0 ? [first] : [first, ...rest];
26
+ }
12
27
  /** Deepest role chain reported by {@link ReadingNodeType.specialises}. */
13
28
  const MAX_ROLE_DEPTH = 32;
14
29
  /** Numeric slack on the two geometry comparisons. Model units. */
@@ -218,55 +233,86 @@ function endpointsOf(element) {
218
233
  return { source: source.id, target: target.id };
219
234
  }
220
235
  /**
221
- * Every typed edge touching the subject, read as a relation.
236
+ * What a connector writes at one of its two ends, when it writes anything.
237
+ *
238
+ * A UML multiplicity is the case this exists for (`0..*` on the far end of an
239
+ * association), and the shape is ADR 0020's: two optional `Y.Text` props on the
240
+ * connector, empty when the author never opened the editor. Read defensively —
241
+ * the reading is handed plain element models by unit tests as readily as live
242
+ * ones — and blank-trimmed, because a text the user emptied is not a label.
243
+ */
244
+ function endLabelOf(edge, end) {
245
+ const raw = edge[end === 'source' ? 'sourceLabel' : 'targetLabel'];
246
+ if (raw === undefined || raw === null)
247
+ return undefined;
248
+ const text = String(raw).trim();
249
+ return text.length > 0 ? text : undefined;
250
+ }
251
+ /**
252
+ * Every typed edge touching the subject, read as a relation — one pass per
253
+ * table the profile declares ({@link readingRelationDefs}).
254
+ *
255
+ * The tables are walked in DECLARATION order rather than the elements being
256
+ * walked once and each edge matched against every table, so the panel's
257
+ * sections come out in the order their framework wrote them and an artefact
258
+ * read through four kinds of line reads its first kind first. The cost is one
259
+ * pass over the surface per table, which is what it already was when a profile
260
+ * could only declare one.
222
261
  *
223
262
  * An edge with an unbound end is skipped, exactly as ADR 0010 requires of W4:
224
263
  * releasing the link tool over empty canvas produces one, and a stroke that
225
264
  * links nothing states nothing.
226
265
  */
227
266
  function readRelations(element, elements, profile) {
228
- const relation = profile.relation;
229
- if (!relation)
267
+ const defs = readingRelationDefs(profile);
268
+ if (defs.length === 0)
230
269
  return [];
231
270
  const byId = new Map(elements.map(el => [el.id, el]));
232
271
  const [, subjectY] = centreOf(element.elementBound);
233
272
  const relations = [];
234
- for (const edge of elements) {
235
- if (edge.role === undefined)
236
- continue;
237
- if (!roleIsA(edge.role, relation.edgeRole, profile.roles))
238
- continue;
239
- const ends = endpointsOf(edge);
240
- if (!ends)
241
- continue;
242
- const isSource = ends.source === element.id;
243
- const isTarget = ends.target === element.id;
244
- // A self-loop states nothing about an order and would report the subject as
245
- // its own supplier.
246
- if (isSource === isTarget)
247
- continue;
248
- const otherId = isSource ? ends.target : ends.source;
249
- const other = byId.get(otherId);
250
- if (!other)
251
- continue;
252
- const side = isSource ? 'supplier' : 'consumer';
253
- const [, otherY] = centreOf(other.elementBound);
254
- // `y` grows downwards, so "higher on the map" is a SMALLER y. A supplier is
255
- // expected below the subject, a consumer above it — but only on a board
256
- // whose framework CLAIMED that axis says something (`geometry`). Two BPMN
257
- // tasks side by side contradict nothing.
258
- const contradictsGeometry = relation.geometry !== 'vertical'
259
- ? false
260
- : side === 'supplier'
261
- ? otherY < subjectY - GEOMETRY_EPSILON
262
- : otherY > subjectY + GEOMETRY_EPSILON;
263
- relations.push({
264
- edgeId: edge.id,
265
- otherId,
266
- otherName: readName(other, profile),
267
- side,
268
- contradictsGeometry,
269
- });
273
+ for (const relation of defs) {
274
+ for (const edge of elements) {
275
+ if (edge.role === undefined)
276
+ continue;
277
+ if (!roleIsA(edge.role, relation.edgeRole, profile.roles))
278
+ continue;
279
+ const ends = endpointsOf(edge);
280
+ if (!ends)
281
+ continue;
282
+ const isSource = ends.source === element.id;
283
+ const isTarget = ends.target === element.id;
284
+ // A self-loop states nothing about an order and would report the subject
285
+ // as its own supplier.
286
+ if (isSource === isTarget)
287
+ continue;
288
+ const otherId = isSource ? ends.target : ends.source;
289
+ const other = byId.get(otherId);
290
+ if (!other)
291
+ continue;
292
+ const side = isSource ? 'supplier' : 'consumer';
293
+ const [, otherY] = centreOf(other.elementBound);
294
+ // `y` grows downwards, so "higher on the map" is a SMALLER y. A supplier
295
+ // is expected below the subject, a consumer above it — but only on a
296
+ // board whose framework CLAIMED that axis says something (`geometry`).
297
+ // Two BPMN tasks side by side contradict nothing.
298
+ const contradictsGeometry = relation.geometry !== 'vertical'
299
+ ? false
300
+ : side === 'supplier'
301
+ ? otherY < subjectY - GEOMETRY_EPSILON
302
+ : otherY > subjectY + GEOMETRY_EPSILON;
303
+ const ownEndLabel = endLabelOf(edge, isSource ? 'source' : 'target');
304
+ const otherEndLabel = endLabelOf(edge, isSource ? 'target' : 'source');
305
+ relations.push({
306
+ edgeId: edge.id,
307
+ relationRole: relation.edgeRole,
308
+ otherId,
309
+ otherName: readName(other, profile),
310
+ side,
311
+ contradictsGeometry,
312
+ ...(ownEndLabel !== undefined ? { ownEndLabel } : {}),
313
+ ...(otherEndLabel !== undefined ? { otherEndLabel } : {}),
314
+ });
315
+ }
270
316
  }
271
317
  return relations;
272
318
  }
@@ -0,0 +1,66 @@
1
+ import { Bound } from '../../global/gfx/index.js';
2
+ import type { BlockStdScope } from '../../std/index.js';
3
+ /** What {@link recordAction} saw a creation action ask the surface for. */
4
+ export interface RecordedAction {
5
+ /**
6
+ * One plain record per element the action added, in creation order, holding
7
+ * the props it passed. `id` is the recording's own (`el-0`, `el-1`, …), not
8
+ * an id any document will ever carry.
9
+ */
10
+ records: Record<string, unknown>[];
11
+ /**
12
+ * The union of the records' `xywh`, relative to the fake viewport's centre —
13
+ * which sits at the ORIGIN, so this is the footprint the same action would
14
+ * draw around whatever centre a real viewport has. `null` when no record
15
+ * carries a box at all.
16
+ */
17
+ bound: Bound | null;
18
+ /**
19
+ * The name of the tool the action armed, other than the default one it may
20
+ * return to after placing — `connector` for a command that lets the user
21
+ * DRAW a relation. Such a command creates nothing on its own and must be
22
+ * declared `kind: 'tool'`, or the placement tool wraps it and cancels the
23
+ * drawing it armed. `null` when nothing was armed.
24
+ */
25
+ armedTool: string | null;
26
+ /**
27
+ * The OPTIONS the action armed that tool with — where a typed edge's `role`
28
+ * lives, since a command that arms the connector tool creates nothing and
29
+ * therefore stamps nothing on any record. `null` when nothing was armed.
30
+ */
31
+ armedToolOptions: Record<string, unknown> | null;
32
+ }
33
+ /** Hook applied to a finished record before it is kept. See {@link recordAction}. */
34
+ export type RecordEncoder = (record: Record<string, unknown>) => void;
35
+ export interface RecordActionOptions {
36
+ /**
37
+ * The editor the recording is being run FOR. Its `TranslationProvider`, and
38
+ * nothing else from it, is handed to the action, so the seeds the action
39
+ * writes come out in the user's language. Without one, the action writes its
40
+ * English fallbacks.
41
+ */
42
+ host?: BlockStdScope;
43
+ /**
44
+ * Last chance to rewrite a record before it is kept — how a caller that needs
45
+ * a SNAPSHOT converts the `Y.Text` / `Y.Map` props into their serialized
46
+ * form. A caller that only measures the drawing passes nothing.
47
+ */
48
+ encode?: RecordEncoder;
49
+ }
50
+ /**
51
+ * Run a creation action against a recording fake, and hand back what it asked
52
+ * the surface for — so a framework's artefact can be measured, previewed or
53
+ * serialized without ever touching a document.
54
+ *
55
+ * The `std` handed to `run` answers the members placement actions actually
56
+ * touch and THROWS on anything else, so an unsupported action fails loudly
57
+ * instead of yielding a half-empty drawing. Callers that can carry on without a
58
+ * measure catch it; callers that cannot (a template derived at build time) let
59
+ * it through.
60
+ *
61
+ * Extracted from `snapshotFromAction` (`@labre/affine-gfx-template`), which is
62
+ * still its first caller: the placement tool needs the same recording and lives
63
+ * in the toolbar widget, which the template package depends ON — so the
64
+ * recording had to move down here, where both can reach it.
65
+ */
66
+ export declare function recordAction(run: (std: BlockStdScope) => void, { host, encode }?: RecordActionOptions): RecordedAction;
@@ -0,0 +1,145 @@
1
+ import { Bound } from '../../global/gfx/index.js';
2
+ import { TranslationProvider } from '../../affine-shared/services/index.js';
3
+ import { generateKeyBetween, GfxControllerIdentifier } from '../../std/gfx/index.js';
4
+ import { EdgelessCRUDIdentifier } from './crud-extension.js';
5
+ /**
6
+ * Run a creation action against a recording fake, and hand back what it asked
7
+ * the surface for — so a framework's artefact can be measured, previewed or
8
+ * serialized without ever touching a document.
9
+ *
10
+ * The `std` handed to `run` answers the members placement actions actually
11
+ * touch and THROWS on anything else, so an unsupported action fails loudly
12
+ * instead of yielding a half-empty drawing. Callers that can carry on without a
13
+ * measure catch it; callers that cannot (a template derived at build time) let
14
+ * it through.
15
+ *
16
+ * Extracted from `snapshotFromAction` (`@labre/affine-gfx-template`), which is
17
+ * still its first caller: the placement tool needs the same recording and lives
18
+ * in the toolbar widget, which the template package depends ON — so the
19
+ * recording had to move down here, where both can reach it.
20
+ */
21
+ export function recordAction(run, { host, encode } = {}) {
22
+ const elements = new Map();
23
+ let n = 0;
24
+ let lastIndex = null;
25
+ const nextIndex = () => (lastIndex = generateKeyBetween(lastIndex, null));
26
+ const addElement = (props) => {
27
+ const id = `el-${n++}`;
28
+ const record = {};
29
+ for (const [key, value] of Object.entries(props)) {
30
+ if (value !== undefined)
31
+ record[key] = value;
32
+ }
33
+ record['id'] = id;
34
+ encode?.(record);
35
+ if (record['index'] === undefined)
36
+ record['index'] = nextIndex();
37
+ // The model members an action reads back off `getElementById`, kept
38
+ // non-enumerable so they never leak into a snapshot built from the record.
39
+ Object.defineProperties(record, {
40
+ group: { value: null },
41
+ deserializedXYWH: {
42
+ get: () => typeof record['xywh'] === 'string'
43
+ ? Bound.deserialize(record['xywh'])
44
+ : null,
45
+ },
46
+ });
47
+ elements.set(id, record);
48
+ return id;
49
+ };
50
+ const records = () => [...elements.values()];
51
+ let armedTool = null;
52
+ let armedToolOptions = null;
53
+ const setTool = (tool, options) => {
54
+ const name = typeof tool === 'string' ? tool : tool?.toolName;
55
+ if (name && name !== 'default') {
56
+ armedTool = name;
57
+ armedToolOptions = options ?? null;
58
+ }
59
+ };
60
+ const surface = {
61
+ addElement,
62
+ getElementById: (id) => elements.get(id) ?? null,
63
+ getElementsByType: (type) => records().filter(el => el['type'] === type),
64
+ get elementModels() {
65
+ return records();
66
+ },
67
+ };
68
+ const gfx = {
69
+ surface,
70
+ // The centre at the ORIGIN is what makes `bound` a footprint rather than a
71
+ // position: an action that creates "at the viewport centre" records a box
72
+ // around (0, 0), which is exactly the offset to re-apply around a real one.
73
+ viewport: { centerX: 0, centerY: 0, zoom: 1, center: { x: 0, y: 0 } },
74
+ doc: { captureSync: () => { } },
75
+ selection: { set: () => { }, selectedElements: [] },
76
+ tool: { setTool },
77
+ layer: {
78
+ generateIndex: () => nextIndex(),
79
+ getReorderedIndex: (_model, direction) => {
80
+ const sorted = records()
81
+ .map(el => String(el['index']))
82
+ .sort();
83
+ return direction === 'back'
84
+ ? generateKeyBetween(null, sorted[0] ?? null)
85
+ : generateKeyBetween(sorted[sorted.length - 1] ?? null, null);
86
+ },
87
+ get canvasElements() {
88
+ return records();
89
+ },
90
+ },
91
+ std: null,
92
+ };
93
+ const crud = {
94
+ addElement: (type, props) => addElement({ ...props, type }),
95
+ };
96
+ const std = {
97
+ get: (identifier) => {
98
+ if (identifier === GfxControllerIdentifier)
99
+ return gfx;
100
+ if (identifier === EdgelessCRUDIdentifier)
101
+ return crud;
102
+ throw new Error(`recordAction: unsupported service "${identifier?.identifierName ?? String(identifier)}"`);
103
+ },
104
+ getOptional: (identifier) => identifier === TranslationProvider
105
+ ? host?.getOptional(TranslationProvider)
106
+ : undefined,
107
+ command: {
108
+ // Really run the command, so a group built by `createGroupCommand` is
109
+ // whatever that command says a group is — no second definition here.
110
+ exec: (cmd, payload) => {
111
+ let out;
112
+ cmd({ std: gfx.std, ...payload }, r => {
113
+ out = r;
114
+ });
115
+ return [{}, out ?? {}];
116
+ },
117
+ },
118
+ store: {
119
+ readonly: false,
120
+ captureSync: () => { },
121
+ id: 'doc:template',
122
+ workspace: { meta: { getDocMeta: () => undefined } },
123
+ },
124
+ };
125
+ gfx.std = std;
126
+ run(gfx.std);
127
+ return {
128
+ records: records(),
129
+ bound: uniteBounds(records()),
130
+ armedTool,
131
+ armedToolOptions,
132
+ };
133
+ }
134
+ /** The union of whatever boxes the records carry. */
135
+ function uniteBounds(records) {
136
+ let union = null;
137
+ for (const record of records) {
138
+ const xywh = record['xywh'];
139
+ if (typeof xywh !== 'string')
140
+ continue;
141
+ const bound = Bound.deserialize(xywh);
142
+ union = union ? union.unite(bound) : bound;
143
+ }
144
+ return union;
145
+ }
@@ -0,0 +1,48 @@
1
+ import type { ChromeWording } from '../../affine-shared/services/index.js';
2
+ /**
3
+ * The SVG importer's own remarks (`svg-sketch.ts`) — one key per SENTENCE
4
+ * SHAPE, not per exact string: a `{{name}}` hole is filled by
5
+ * `InterchangeNote.messageParams` at report time
6
+ * (`interchange-import.ts`'s `remarkLine`), never split into two keys or
7
+ * baked into the key itself.
8
+ *
9
+ * The reader that raises these is a pure function of text (`docs/adr/0012`,
10
+ * P3): it has no `std`, so each note carries its key and (where it has one)
11
+ * its params, and `reportInterchangeImport` resolves both when it draws the
12
+ * report — see `InterchangeNote.messageKey` / `.messageParams`.
13
+ *
14
+ * NOT included: the three `throw new Error(...)` refusals `parseSvgRoot`
15
+ * raises for a malformed or empty file. Those are caught by
16
+ * `importInterchangeFile`'s single, format-agnostic `catch` — shared by
17
+ * every interchange reader (BPMN, mermaid, OWM, this one) — which shows
18
+ * `error.message` verbatim BY DESIGN ("shown as it is rather than replaced
19
+ * with a wording of our own that knows less"). Keying them would mean
20
+ * teaching that shared catch to resolve a per-reader key, a mechanism this
21
+ * lot does not own the other readers to touch — flagged in this lot's report
22
+ * instead of invented here.
23
+ */
24
+ export declare const SVG_SKETCH_FONT_UNIT: ChromeWording;
25
+ export declare const SVG_SKETCH_HIDDEN_DISPLAY: ChromeWording;
26
+ export declare const SVG_SKETCH_HIDDEN_VISIBILITY: ChromeWording;
27
+ export declare const SVG_SKETCH_OPACITY: ChromeWording;
28
+ export declare const SVG_SKETCH_PAINT_SERVER: ChromeWording;
29
+ export declare const SVG_SKETCH_CURRENT_COLOR: ChromeWording;
30
+ export declare const SVG_SKETCH_TRANSFORM: ChromeWording;
31
+ export declare const SVG_SKETCH_LONE_POINT: ChromeWording;
32
+ export declare const SVG_SKETCH_CURVE: ChromeWording;
33
+ export declare const SVG_SKETCH_EMPTY_BOX: ChromeWording;
34
+ export declare const SVG_SKETCH_PERCENT_RADIUS: ChromeWording;
35
+ export declare const SVG_SKETCH_FLAT_POLYGON: ChromeWording;
36
+ export declare const SVG_SKETCH_EMPTY_TEXT: ChromeWording;
37
+ export declare const SVG_SKETCH_SWITCH: ChromeWording;
38
+ export declare const SVG_SKETCH_SKIPPED: ChromeWording;
39
+ export declare const SVG_SKETCH_REMOVED: ChromeWording;
40
+ export declare const SVG_SKETCH_REMOVED_ATTRIBUTE: ChromeWording;
41
+ export declare const SVG_SKETCH_EMPTY: ChromeWording;
42
+ /**
43
+ * Every wording declared above, in declaration order — joined into
44
+ * `PACKAGE_WORDINGS` (`packages/affine/all/src/translations.ts`) alongside
45
+ * `PROVENANCE_FALLBACK`/`SEVERITY_FALLBACK`/`EXEMPTION_FALLBACK`, this
46
+ * package's other manifest contributions.
47
+ */
48
+ export declare const SVG_SKETCH_WORDINGS: readonly ChromeWording[];