@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
@@ -1,10 +1,11 @@
1
1
  import { EdgelessCRUDIdentifier } from '../../../affine-block-surface/index.js';
2
- import { packColor, } from '../../../affine-components/color-picker/index.js';
2
+ import { frameworkPaletteGroups, packColor, } from '../../../affine-components/color-picker/index.js';
3
3
  import { BrushElementModel, DefaultTheme, LineWidth, resolveColor, } from '../../../affine-model/index.js';
4
- import { ToolbarModuleExtension, } from '../../../affine-shared/services/index.js';
4
+ import { ToolbarModuleExtension, translateKey, } from '../../../affine-shared/services/index.js';
5
5
  import { getMostCommonResolvedValue, getMostCommonValue, } from '../../../affine-shared/utils/index.js';
6
6
  import { BlockFlavourIdentifier } from '../../../std/index.js';
7
7
  import { html } from 'lit';
8
+ import { BRUSH_LABEL_COLOR } from '../../translations.js';
8
9
  export const brushToolbarConfig = {
9
10
  actions: [
10
11
  {
@@ -71,15 +72,21 @@ export const brushToolbarConfig = {
71
72
  break;
72
73
  }
73
74
  };
75
+ // A stroke drawn on a framework board opens on that framework's hues
76
+ // (`docs/adr/0027`); the editor palette stays page one.
77
+ const carousel = frameworkPaletteGroups(ctx.std, models, DefaultTheme.Palettes);
74
78
  return html `
75
79
  <edgeless-color-picker-button
76
80
  class="color"
77
- .label="${'Color'}"
81
+ .label="${translateKey(ctx.std, ...BRUSH_LABEL_COLOR)}"
78
82
  .pick=${onPick}
79
83
  .color=${color}
80
84
  .theme=${theme}
81
85
  .originalColor=${originalColor}
82
86
  .enableCustomColor=${enableCustomColor}
87
+ .paletteGroups=${carousel.groups}
88
+ .activeGroupKey=${carousel.activeKey}
89
+ .std=${ctx.std}
83
90
  >
84
91
  </edgeless-color-picker-button>
85
92
  `;
@@ -1,10 +1,11 @@
1
1
  import { EdgelessCRUDIdentifier } from '../../../affine-block-surface/index.js';
2
- import { adjustColorAlpha, keepColor, packColor, } from '../../../affine-components/color-picker/index.js';
2
+ import { adjustColorAlpha, frameworkPaletteGroups, keepColor, packColor, } from '../../../affine-components/color-picker/index.js';
3
3
  import { DEFAULT_HIGHLIGHTER_LINE_WIDTH, DefaultTheme, HIGHLIGHTER_LINE_WIDTHS, HighlighterElementModel, resolveColor, } from '../../../affine-model/index.js';
4
- import { ToolbarModuleExtension, } from '../../../affine-shared/services/index.js';
4
+ import { ToolbarModuleExtension, translateKey, } from '../../../affine-shared/services/index.js';
5
5
  import { getMostCommonResolvedValue, getMostCommonValue, } from '../../../affine-shared/utils/index.js';
6
6
  import { BlockFlavourIdentifier } from '../../../std/index.js';
7
7
  import { html } from 'lit';
8
+ import { BRUSH_LABEL_COLOR } from '../../translations.js';
8
9
  const trackBaseProps = {
9
10
  category: 'highlighter',
10
11
  };
@@ -81,17 +82,23 @@ export const highlighterToolbarConfig = {
81
82
  control: 'color picker',
82
83
  });
83
84
  };
85
+ // A highlight drawn over a framework board opens on that framework's
86
+ // hues (`docs/adr/0027`); the short stroke palette stays page one.
87
+ const carousel = frameworkPaletteGroups(ctx.std, models, DefaultTheme.StrokeColorShortPalettes);
84
88
  return html `
85
89
  <edgeless-color-picker-button
86
90
  .colorPanelClass="${'one-way small'}"
87
- .label="${'Color'}"
91
+ .label="${translateKey(ctx.std, ...BRUSH_LABEL_COLOR)}"
88
92
  .pick=${onPick}
89
93
  .color=${color}
90
94
  .theme=${theme}
91
95
  .originalColor=${originalColor}
92
96
  .palettes=${DefaultTheme.StrokeColorShortPalettes}
97
+ .paletteGroups=${carousel.groups}
98
+ .activeGroupKey=${carousel.activeKey}
93
99
  .shouldKeepColor=${true}
94
100
  .enableCustomColor=${false}
101
+ .std=${ctx.std}
95
102
  >
96
103
  </edgeless-color-picker-button>
97
104
  `;
@@ -0,0 +1,17 @@
1
+ import { type ChromeWording } from '../affine-shared/services/index.js';
2
+ /**
3
+ * This package's own wordings, joined into `PACKAGE_WORDINGS` in
4
+ * `@labre/affine/translations` — see that file and
5
+ * `packages/affine/shared/src/services/translation-service/README.md`.
6
+ *
7
+ * `senior-tool.ts`'s own `name: 'Pen'` is NOT here: `SeniorTool.labelKey`
8
+ * exists only for a framework's own button — the core tools (note, shape,
9
+ * template, pen…) declare no framework descriptor and therefore no key, by
10
+ * design (`packages/affine/widgets/edgeless-toolbar/src/extension/index.ts`).
11
+ */
12
+ export declare const BRUSH_TOOLTIP_ERASER: ChromeWording;
13
+ export declare const BRUSH_TOOLTIP_PEN: ChromeWording;
14
+ export declare const BRUSH_TOOLTIP_HIGHLIGHTER: ChromeWording;
15
+ /** An alias (L7 dedupe): the same word as {@link COLOR_LABEL}, one key. */
16
+ export declare const BRUSH_LABEL_COLOR: ChromeWording;
17
+ export declare const BRUSH_WORDINGS: readonly ChromeWording[];
@@ -0,0 +1,30 @@
1
+ import { COLOR_LABEL } from '../affine-shared/services/index.js';
2
+ /**
3
+ * This package's own wordings, joined into `PACKAGE_WORDINGS` in
4
+ * `@labre/affine/translations` — see that file and
5
+ * `packages/affine/shared/src/services/translation-service/README.md`.
6
+ *
7
+ * `senior-tool.ts`'s own `name: 'Pen'` is NOT here: `SeniorTool.labelKey`
8
+ * exists only for a framework's own button — the core tools (note, shape,
9
+ * template, pen…) declare no framework descriptor and therefore no key, by
10
+ * design (`packages/affine/widgets/edgeless-toolbar/src/extension/index.ts`).
11
+ */
12
+ export const BRUSH_TOOLTIP_ERASER = [
13
+ 'com.labre.brush.tooltip.eraser',
14
+ 'Eraser',
15
+ ];
16
+ export const BRUSH_TOOLTIP_PEN = [
17
+ 'com.labre.brush.tooltip.pen',
18
+ 'Pen',
19
+ ];
20
+ export const BRUSH_TOOLTIP_HIGHLIGHTER = [
21
+ 'com.labre.brush.tooltip.highlighter',
22
+ 'Highlighter',
23
+ ];
24
+ /** An alias (L7 dedupe): the same word as {@link COLOR_LABEL}, one key. */
25
+ export const BRUSH_LABEL_COLOR = COLOR_LABEL;
26
+ export const BRUSH_WORDINGS = [
27
+ BRUSH_TOOLTIP_ERASER,
28
+ BRUSH_TOOLTIP_PEN,
29
+ BRUSH_TOOLTIP_HIGHLIGHTER,
30
+ ];
@@ -1,5 +1,5 @@
1
1
  import { AStarRunner, Overlay } from '../affine-block-surface/index.js';
2
- import { type BrushElementModel, type Connection, ConnectorElementModel, GroupElementModel, type LocalConnectorElementModel } from '../affine-model/index.js';
2
+ import { type BrushElementModel, type Connection, ConnectorElementModel, type ConnectorLabelEnd, GroupElementModel, type LocalConnectorElementModel } from '../affine-model/index.js';
3
3
  import type { IBound, IVec } from '../global/gfx/index.js';
4
4
  import { Bound, PointLocation } from '../global/gfx/index.js';
5
5
  import type { BlockStdScope } from '../std/index.js';
@@ -26,6 +26,14 @@ export declare function isCenterAnchorEligible(ele: GfxModel): boolean;
26
26
  */
27
27
  export declare function isCenterAnchorEnabled(std: BlockStdScope): boolean;
28
28
  export declare function isConnectorWithLabel(model: GfxModel | GfxLocalElementModel): boolean;
29
+ /**
30
+ * The end-label twin of `isConnectorWithLabel`: a connector carrying a painted
31
+ * label beside its `source` / `target` endpoint.
32
+ *
33
+ * A `LocalConnectorElementModel` has no labels at all — it is the preview a
34
+ * drag paints — so the `instanceof` is the guard, exactly as above.
35
+ */
36
+ export declare function isConnectorWithEndLabel(model: GfxModel | GfxLocalElementModel, end: ConnectorLabelEnd): boolean;
29
37
  export declare function calculateNearestLocation(point: IVec, bounds: IBound, locations?: IVec[], shortestDistance?: number): IVec;
30
38
  export declare function isConnectorAndBindingsAllSelected(connector: ConnectorElementModel | LocalConnectorElementModel, selected: GfxModel[]): boolean;
31
39
  export declare function getAnchors(ele: GfxModel, includeCenterAnchor?: boolean): {
@@ -160,6 +160,46 @@ function computePerimeterPointForCenterAnchor(connectable, centerPoint, otherPoi
160
160
  export function isConnectorWithLabel(model) {
161
161
  return model instanceof ConnectorElementModel && model.hasLabel();
162
162
  }
163
+ /**
164
+ * The end-label twin of `isConnectorWithLabel`: a connector carrying a painted
165
+ * label beside its `source` / `target` endpoint.
166
+ *
167
+ * A `LocalConnectorElementModel` has no labels at all — it is the preview a
168
+ * drag paints — so the `instanceof` is the guard, exactly as above.
169
+ */
170
+ export function isConnectorWithEndLabel(model, end) {
171
+ return model instanceof ConnectorElementModel && model.hasEndLabel(end);
172
+ }
173
+ /**
174
+ * Translates one end label's box by how far its endpoint moved, so the label
175
+ * keeps the position the author gave it RELATIVE to that end.
176
+ *
177
+ * `ConnectorPathGenerator.updatePath` is the only caller: the label follows the
178
+ * end on every re-route, and on nothing else.
179
+ */
180
+ function followEndpoint(model, end, previousPath) {
181
+ const box = model.endLabelXYWH(end);
182
+ if (!box || !model.hasEndLabel(end))
183
+ return;
184
+ const nextPath = model.absolutePath;
185
+ if (nextPath.length === 0 || previousPath.length === 0)
186
+ return;
187
+ const endpointOf = (path) => end === 'source' ? path[0] : path[path.length - 1];
188
+ const from = endpointOf(previousPath);
189
+ const to = endpointOf(nextPath);
190
+ const dx = to[0] - from[0];
191
+ const dy = to[1] - from[1];
192
+ if (dx === 0 && dy === 0)
193
+ return;
194
+ const [x, y, w, h] = box;
195
+ const moved = [x + dx, y + dy, w, h];
196
+ if (end === 'source') {
197
+ model.sourceLabelXYWH = moved;
198
+ }
199
+ else {
200
+ model.targetLabelXYWH = moved;
201
+ }
202
+ }
163
203
  export function calculateNearestLocation(point, bounds, locations = ConnectorEndpointLocations, shortestDistance = Number.POSITIVE_INFINITY) {
164
204
  const { x, y, w, h } = bounds;
165
205
  return locations
@@ -1000,6 +1040,10 @@ export class ConnectorPathGenerator extends PathGenerator {
1000
1040
  const relativePoints = points.map((p) => {
1001
1041
  return p.setVec(Vec.sub(p, [bound.x, bound.y]));
1002
1042
  });
1043
+ // Captured before the assignment below rebuilds it: the end labels are
1044
+ // re-anchored by how far THEIR endpoint travelled, which is only knowable
1045
+ // against the path this call replaces.
1046
+ const previousPath = connector.absolutePath;
1003
1047
  connector.updatingPath = true;
1004
1048
  // the property assignment order matters
1005
1049
  connector.xywh = bound.serialize();
@@ -1015,6 +1059,23 @@ export class ConnectorPathGenerator extends PathGenerator {
1015
1059
  model.labelXYWH = [cx - w / 2, cy - h / 2, w, h];
1016
1060
  }
1017
1061
  }
1062
+ // The end labels follow THEIR OWN endpoint, not the connector's centre.
1063
+ // Dragging one of the two nodes moves one end and leaves the other where
1064
+ // it was: re-deriving both boxes from the offset distance (what the centre
1065
+ // label does) would recentre them, and translating both by the element's
1066
+ // delta would slide the far one off its line. Translating each by its
1067
+ // endpoint's delta is the only rule under which a `0..*` typed beside an
1068
+ // end stays beside that end — and the only one that preserves a box the
1069
+ // author dragged somewhere else. Same persistence gate as above: these are
1070
+ // `@field()`s too, so a watching peer must not write them.
1071
+ if (connector instanceof ConnectorElementModel) {
1072
+ const mayPersist = (options?.persistLabelXYWH ?? true) &&
1073
+ !connector.surface?.store?.readonly;
1074
+ if (mayPersist) {
1075
+ followEndpoint(connector, 'source', previousPath);
1076
+ followEndpoint(connector, 'target', previousPath);
1077
+ }
1078
+ }
1018
1079
  connector.updatingPath = false;
1019
1080
  }
1020
1081
  _computeStartEndPoint(connector) {
@@ -1,5 +1,5 @@
1
1
  import type { ConnectorElementModel } from '../../affine-model/index.js';
2
- import type { AnyCommandDescriptor, BlockStdScope } from '../../std/index.js';
2
+ import type { AnyCommandDescriptor, BlockStdScope, CommandDescriptor } from '../../std/index.js';
3
3
  import { z } from 'zod';
4
4
  import { type TypedEdge } from './typed-edge.js';
5
5
  /**
@@ -64,6 +64,13 @@ export declare function invertibleEdges(std: BlockStdScope, elementIds?: string[
64
64
  export declare function invertEdge(model: ConnectorElementModel): void;
65
65
  /** The registered id, so a toolbar entry can invoke it rather than copy it. */
66
66
  export declare const INVERT_EDGE_DIRECTION = "edge.invert-direction";
67
+ /**
68
+ * Exported (not just registered through {@link edgeDirectionCommands}) so the
69
+ * contextual-toolbar entry can read its `labelKey` / `labelFallback` straight
70
+ * off the descriptor — see `toolbar/config.ts`'s `b.invert-direction` — rather
71
+ * than restating the wording as a second literal.
72
+ */
73
+ export declare const invertEdgeDirection: CommandDescriptor<InvertEdgeDirectionParams>;
67
74
  /**
68
75
  * The registry's element type erases the parameter contract, and `run`
69
76
  * re-validates with the zod schema rather than trusting the static type — what
@@ -105,7 +105,13 @@ export function invertEdge(model) {
105
105
  }
106
106
  /** The registered id, so a toolbar entry can invoke it rather than copy it. */
107
107
  export const INVERT_EDGE_DIRECTION = 'edge.invert-direction';
108
- const invertEdgeDirection = {
108
+ /**
109
+ * Exported (not just registered through {@link edgeDirectionCommands}) so the
110
+ * contextual-toolbar entry can read its `labelKey` / `labelFallback` straight
111
+ * off the descriptor — see `toolbar/config.ts`'s `b.invert-direction` — rather
112
+ * than restating the wording as a second literal.
113
+ */
114
+ export const invertEdgeDirection = {
109
115
  id: INVERT_EDGE_DIRECTION,
110
116
  owner: 'core',
111
117
  kind: 'action',
@@ -1,5 +1,11 @@
1
1
  import type { DomRenderer } from '../../../affine-block-surface/index.js';
2
- import { type ConnectorElementModel } from '../../../affine-model/index.js';
2
+ import { type ConnectorElementModel, type PointStyle } from '../../../affine-model/index.js';
3
+ /**
4
+ * Exported for `src/__tests__/endpoint-style.unit.spec.ts`: the hollow heads are
5
+ * defined by the fact that `fill` and `stroke` differ, which is only observable
6
+ * on the marker node this builds.
7
+ */
8
+ export declare function createArrowMarker(id: string, style: PointStyle, color: string, strokeWidth: number, isStart?: boolean): SVGMarkerElement;
3
9
  /**
4
10
  * Renders a ConnectorElementModel to a given HTMLElement using DOM/SVG.
5
11
  * This function is intended to be registered via the DomElementRendererExtension.
@@ -1,8 +1,26 @@
1
1
  import { ConnectorMode, DefaultTheme, } from '../../../affine-model/index.js';
2
2
  import { PointLocation, SVGPathBuilder } from '../../../global/gfx/index.js';
3
3
  import { isConnectorWithLabel } from '../../connector-manager.js';
4
- import { DEFAULT_ARROW_SIZE } from '../utils.js';
4
+ import { DEFAULT_ARROW_SIZE, HOLLOW_HEAD_FILL } from '../utils.js';
5
5
  const SVG_NS = 'http://www.w3.org/2000/svg';
6
+ /**
7
+ * The outline width of a hollow head, in the marker's own `viewBox` units.
8
+ *
9
+ * Pinned rather than inherited. A marker declares `markerUnits="strokeWidth"`
10
+ * and a `0 0 20 20` viewBox mapped onto `markerWidth`, so one viewBox unit is
11
+ * already a fixed fraction of the connector's `strokeWidth` — the outline
12
+ * scales with the line without this attribute existing, and `1` is exactly the
13
+ * SVG default the solid heads get implicitly today. Nothing changes visually.
14
+ *
15
+ * It is set only on the hollow heads because they are the only ones where the
16
+ * value is observable: a solid head paints `fill` and `stroke` in the same
17
+ * colour, so its outline is invisible either way. On a hollow head the outline
18
+ * IS the head. Leaving it to a default that a future `stroke-width` on the
19
+ * `<svg>`, the `<defs>`, or the marker itself would override means the UML
20
+ * heads could silently thicken or vanish; the solid twins would not notice.
21
+ */
22
+ const HOLLOW_HEAD_STROKE_WIDTH = 1;
23
+ const LABEL_SLOTS = ['center', 'source', 'target'];
6
24
  /**
7
25
  * The nodes a connector host already owns, kept across renders. Rebuilding the
8
26
  * whole `<svg>` subtree on every frame allocated one element per connector per
@@ -46,7 +64,12 @@ function createConnectorPath(points, mode) {
46
64
  }
47
65
  return pathBuilder.build();
48
66
  }
49
- function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
67
+ /**
68
+ * Exported for `src/__tests__/endpoint-style.unit.spec.ts`: the hollow heads are
69
+ * defined by the fact that `fill` and `stroke` differ, which is only observable
70
+ * on the marker node this builds.
71
+ */
72
+ export function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
50
73
  const marker = document.createElementNS(SVG_NS, 'marker');
51
74
  const size = DEFAULT_ARROW_SIZE * (strokeWidth / 2);
52
75
  marker.id = id;
@@ -57,6 +80,8 @@ function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
57
80
  marker.setAttribute('markerHeight', String(size));
58
81
  marker.setAttribute('orient', 'auto');
59
82
  marker.setAttribute('markerUnits', 'strokeWidth');
83
+ // No `default`, as on the canvas side: an unknown persisted `PointStyle`
84
+ // yields an empty marker rather than a wrong head.
60
85
  switch (style) {
61
86
  case 'Arrow': {
62
87
  const path = document.createElementNS(SVG_NS, 'path');
@@ -74,6 +99,15 @@ function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
74
99
  marker.append(path);
75
100
  break;
76
101
  }
102
+ case 'TriangleHollow': {
103
+ const path = document.createElementNS(SVG_NS, 'path');
104
+ path.setAttribute('d', isStart ? 'M 20 7 L 12 10 L 20 13 Z' : 'M 0 7 L 8 10 L 0 13 Z');
105
+ path.setAttribute('fill', HOLLOW_HEAD_FILL);
106
+ path.setAttribute('stroke', color);
107
+ path.setAttribute('stroke-width', String(HOLLOW_HEAD_STROKE_WIDTH));
108
+ marker.append(path);
109
+ break;
110
+ }
77
111
  case 'Circle': {
78
112
  const circle = document.createElementNS(SVG_NS, 'circle');
79
113
  circle.setAttribute('cx', '10');
@@ -92,6 +126,15 @@ function createArrowMarker(id, style, color, strokeWidth, isStart = false) {
92
126
  marker.append(path);
93
127
  break;
94
128
  }
129
+ case 'DiamondHollow': {
130
+ const path = document.createElementNS(SVG_NS, 'path');
131
+ path.setAttribute('d', 'M 10 6 L 14 10 L 10 14 L 6 10 Z');
132
+ path.setAttribute('fill', HOLLOW_HEAD_FILL);
133
+ path.setAttribute('stroke', color);
134
+ path.setAttribute('stroke-width', String(HOLLOW_HEAD_STROKE_WIDTH));
135
+ marker.append(path);
136
+ break;
137
+ }
95
138
  }
96
139
  return marker;
97
140
  }
@@ -119,29 +162,53 @@ function getRetainedConnectorDom(element) {
119
162
  svg,
120
163
  defs,
121
164
  path,
122
- label: null,
165
+ labels: {},
123
166
  };
124
167
  retainedConnectorDom.set(element, retained);
125
168
  return retained;
126
169
  }
127
- function getOrCreateLabelElement(retained) {
128
- if (retained.label) {
129
- return retained.label;
170
+ function getOrCreateLabelElement(retained, slot) {
171
+ const existing = retained.labels[slot];
172
+ if (existing) {
173
+ return existing;
130
174
  }
131
175
  const label = document.createElement('div');
132
- retained.svg.insertAdjacentElement('afterend', label);
133
- retained.label = label;
176
+ // Appended after the `<svg>` rather than inserted directly behind it, so the
177
+ // three captions land in slot order instead of in reverse creation order.
178
+ // Every one of them is absolutely positioned, so document order is a
179
+ // debugging convenience, not a layout decision.
180
+ (retained.svg.parentElement ?? retained.svg).append(label);
181
+ retained.labels[slot] = label;
134
182
  return label;
135
183
  }
136
- function renderConnectorLabel(model, retained, renderer, zoom) {
137
- if (!isConnectorWithLabel(model) || !model.labelXYWH) {
138
- retained.label?.remove();
139
- retained.label = null;
184
+ /**
185
+ * The text and box one slot paints, or `null` when that caption is absent.
186
+ *
187
+ * The DOM twin of `paintedLabels` on the canvas side: same three slots, same
188
+ * `labelStyle` shared by all three, so the two renderers cannot disagree about
189
+ * what a connector is showing.
190
+ */
191
+ function labelContent(model, slot) {
192
+ if (slot === 'center') {
193
+ return isConnectorWithLabel(model) && model.labelXYWH
194
+ ? { text: model.text?.toString() ?? '', xywh: model.labelXYWH }
195
+ : null;
196
+ }
197
+ const xywh = model.endLabelXYWH(slot);
198
+ return model.hasEndLabel(slot) && xywh
199
+ ? { text: model.endLabelText(slot)?.toString() ?? '', xywh }
200
+ : null;
201
+ }
202
+ function renderConnectorLabel(model, retained, renderer, zoom, slot) {
203
+ const content = labelContent(model, slot);
204
+ if (!content) {
205
+ retained.labels[slot]?.remove();
206
+ delete retained.labels[slot];
140
207
  return;
141
208
  }
142
- const [lx, ly, lw, lh] = model.labelXYWH;
209
+ const [lx, ly, lw, lh] = content.xywh;
143
210
  const { labelStyle: { color, fontSize, fontWeight, fontStyle, fontFamily, textAlign, }, } = model;
144
- const labelElement = getOrCreateLabelElement(retained);
211
+ const labelElement = getOrCreateLabelElement(retained, slot);
145
212
  labelElement.style.position = 'absolute';
146
213
  labelElement.style.left = `${lx * zoom}px`;
147
214
  labelElement.style.top = `${ly * zoom}px`;
@@ -168,7 +235,7 @@ function renderConnectorLabel(model, retained, renderer, zoom) {
168
235
  labelElement.style.whiteSpace = 'pre-wrap';
169
236
  labelElement.style.wordWrap = 'break-word';
170
237
  // Add text content
171
- labelElement.textContent = model.text ? model.text.toString() : '';
238
+ labelElement.textContent = content.text;
172
239
  }
173
240
  /**
174
241
  * Renders a ConnectorElementModel to a given HTMLElement using DOM/SVG.
@@ -264,6 +331,9 @@ export const connectorDomRenderer = (model, element, renderer) => {
264
331
  element.style.height = `${model.h * zoom}px`;
265
332
  element.style.overflow = 'visible';
266
333
  element.style.pointerEvents = 'none';
267
- // Render label if present
268
- renderConnectorLabel(model, retained, renderer, zoom);
334
+ // Render each caption that is present — the centre name and the two end
335
+ // labels — and drop the node of any that is not.
336
+ for (const slot of LABEL_SLOTS) {
337
+ renderConnectorLabel(model, retained, renderer, zoom, slot);
338
+ }
269
339
  };
@@ -1,10 +1,35 @@
1
1
  import { ElementRendererExtension, } from '../../affine-block-surface/index.js';
2
2
  import { getFontString, getLineHeight, getTextWidth, isRTL, wrapTextDeltas, } from '../../affine-gfx-text/index.js';
3
3
  import { ConnectorMode, DefaultTheme, } from '../../affine-model/index.js';
4
- import { getBezierParameters } from '../../global/gfx/index.js';
4
+ import { getBezierParameters, } from '../../global/gfx/index.js';
5
5
  import { deltaInsertsToChunks } from '../../std/inline/index.js';
6
- import { isConnectorWithLabel } from '../connector-manager.js';
7
- import { DEFAULT_ARROW_SIZE, getArrowOptions, renderArrow, renderCircle, renderDiamond, renderTriangle, } from './utils.js';
6
+ import { isConnectorWithEndLabel, isConnectorWithLabel, } from '../connector-manager.js';
7
+ import { DEFAULT_ARROW_SIZE, getArrowOptions, HOLLOW_HEAD_FILL, renderArrow, renderCircle, renderDiamond, renderTriangle, } from './utils.js';
8
+ /** The captions this connector paints, in the order they are drawn. */
9
+ function paintedLabels(model) {
10
+ const labels = [];
11
+ if (isConnectorWithLabel(model)) {
12
+ const { text, labelXYWH, labelStyle, labelConstraints } = model;
13
+ labels.push({
14
+ text: text,
15
+ xywh: labelXYWH,
16
+ style: labelStyle,
17
+ constraints: labelConstraints,
18
+ });
19
+ }
20
+ for (const end of ['source', 'target']) {
21
+ if (!isConnectorWithEndLabel(model, end))
22
+ continue;
23
+ const connectorModel = model;
24
+ labels.push({
25
+ text: connectorModel.endLabelText(end),
26
+ xywh: connectorModel.endLabelXYWH(end),
27
+ style: connectorModel.labelStyle,
28
+ constraints: connectorModel.labelConstraints,
29
+ });
30
+ }
31
+ return labels;
32
+ }
8
33
  export const connector = (model, ctx, matrix, renderer, rc) => {
9
34
  const { mode, path: points, strokeStyle, frontEndpointStyle, rearEndpointStyle, strokeWidth, } = model;
10
35
  // points might not be build yet in some senarios
@@ -13,29 +38,39 @@ export const connector = (model, ctx, matrix, renderer, rc) => {
13
38
  return;
14
39
  }
15
40
  ctx.setTransform(matrix);
16
- const hasLabel = isConnectorWithLabel(model);
17
- let dx = 0;
18
- let dy = 0;
19
- if (hasLabel) {
41
+ const labels = paintedLabels(model);
42
+ // Each label's box, expressed relative to the element's own origin — the
43
+ // frame both the clip rects and the per-label transforms are written in.
44
+ let offsets = [];
45
+ if (labels.length) {
20
46
  ctx.save();
21
- const { deserializedXYWH, labelXYWH } = model;
47
+ const { deserializedXYWH } = model;
22
48
  const [x, y, w, h] = deserializedXYWH;
23
- const [lx, ly, lw, lh] = labelXYWH;
24
49
  const offset = DEFAULT_ARROW_SIZE * strokeWidth;
25
- dx = lx - x;
26
- dy = ly - y;
50
+ offsets = labels.map(label => [label.xywh[0] - x, label.xywh[1] - y]);
51
+ // One subtracted rect PER label: `evenodd` over the element rect and the
52
+ // caption rects leaves the stroke everywhere except under a caption, so a
53
+ // multiplicity beside an end punches the line exactly as the centre name
54
+ // always has.
27
55
  const path = new Path2D();
28
56
  path.rect(-offset / 2, -offset / 2, w + offset, h + offset);
29
- path.rect(dx - 3 - 0.5, dy - 3 - 0.5, lw + 6 + 1, lh + 6 + 1);
57
+ labels.forEach((label, index) => {
58
+ const [dx, dy] = offsets[index];
59
+ const [, , lw, lh] = label.xywh;
60
+ path.rect(dx - 3 - 0.5, dy - 3 - 0.5, lw + 6 + 1, lh + 6 + 1);
61
+ });
30
62
  ctx.clip(path, 'evenodd');
31
63
  }
32
64
  const strokeColor = renderer.getColorValue(model.stroke, DefaultTheme.connectorColor, true);
33
65
  renderPoints(model, ctx, rc, points, strokeStyle === 'dash', mode === ConnectorMode.Curve, strokeColor);
34
66
  renderEndpoint(model, points, ctx, rc, 'Front', frontEndpointStyle, strokeColor);
35
67
  renderEndpoint(model, points, ctx, rc, 'Rear', rearEndpointStyle, strokeColor);
36
- if (hasLabel) {
68
+ if (labels.length) {
37
69
  ctx.restore();
38
- renderLabel(model, ctx, matrix.translate(dx, dy), renderer);
70
+ labels.forEach((label, index) => {
71
+ const [dx, dy] = offsets[index];
72
+ renderLabel(label, ctx, matrix.translate(dx, dy), renderer);
73
+ });
39
74
  }
40
75
  };
41
76
  export const ConnectorElementRendererExtension = ElementRendererExtension('connector', connector);
@@ -93,6 +128,13 @@ function renderPoints(model, ctx, rc, points, dash, curve, stroke) {
93
128
  }
94
129
  function renderEndpoint(model, location, ctx, rc, end, style, stroke) {
95
130
  const arrowOptions = getArrowOptions(end, model, stroke);
131
+ // No `default` on purpose: `PointStyle` is a persisted, append-only enum, so
132
+ // a build older than a member paints no head rather than throwing or drawing
133
+ // a wrong one. See the enum's docblock in `@labre/affine-model`.
134
+ //
135
+ // The hollow spread lives inside its own case: this runs once per endpoint
136
+ // per frame, and a solid head — or `None`, the default on the front of every
137
+ // connector — should not allocate an options object it never reads.
96
138
  switch (style) {
97
139
  case 'Arrow':
98
140
  renderArrow(location, ctx, rc, arrowOptions);
@@ -100,23 +142,42 @@ function renderEndpoint(model, location, ctx, rc, end, style, stroke) {
100
142
  case 'Triangle':
101
143
  renderTriangle(location, ctx, rc, arrowOptions);
102
144
  break;
145
+ case 'TriangleHollow':
146
+ renderTriangle(location, ctx, rc, {
147
+ ...arrowOptions,
148
+ fillColor: HOLLOW_HEAD_FILL,
149
+ });
150
+ break;
103
151
  case 'Circle':
104
152
  renderCircle(location, ctx, rc, arrowOptions);
105
153
  break;
106
154
  case 'Diamond':
107
155
  renderDiamond(location, ctx, rc, arrowOptions);
108
156
  break;
157
+ case 'DiamondHollow':
158
+ renderDiamond(location, ctx, rc, {
159
+ ...arrowOptions,
160
+ fillColor: HOLLOW_HEAD_FILL,
161
+ });
162
+ break;
109
163
  }
110
164
  }
111
- function renderLabel(model, ctx, matrix, renderer) {
112
- const { text, labelXYWH, labelStyle: { color, fontSize, fontWeight, fontStyle, fontFamily, textAlign, }, labelConstraints: { hasMaxWidth, maxWidth }, } = model;
165
+ /**
166
+ * Paints ONE caption at the origin of `matrix`.
167
+ *
168
+ * Takes a label rather than the connector: the centre name and the two end
169
+ * labels are the same drawing, and the only thing that told them apart was
170
+ * which pair of fields the function reached into.
171
+ */
172
+ function renderLabel(label, ctx, matrix, renderer) {
173
+ const { text, xywh, style: { color, fontSize, fontWeight, fontStyle, fontFamily, textAlign }, constraints: { hasMaxWidth, maxWidth }, } = label;
113
174
  const font = getFontString({
114
175
  fontStyle,
115
176
  fontWeight,
116
177
  fontSize,
117
178
  fontFamily,
118
179
  });
119
- const [, , w, h] = labelXYWH;
180
+ const [, , w, h] = xywh;
120
181
  const cx = w / 2;
121
182
  const cy = h / 2;
122
183
  ctx.setTransform(matrix);
@@ -3,6 +3,17 @@ import { type ConnectorElementModel, ConnectorMode, type LocalConnectorElementMo
3
3
  import type { BezierCurveParameters, IVec, PointLocation } from '../../global/gfx/index.js';
4
4
  type ConnectorEnd = 'Front' | 'Rear';
5
5
  export declare const DEFAULT_ARROW_SIZE = 15;
6
+ /**
7
+ * The interior of a hollow endpoint head (`TriangleHollow`, `DiamondHollow`).
8
+ *
9
+ * The notation card fill (R33), NOT a theme-resolved token and NOT
10
+ * `transparent`: a UML hollow head reads as a white shape sitting on top of the
11
+ * line it terminates, exactly like the class box it points at — which is itself
12
+ * painted `NOTATION_NEUTRALS.cardFill` in every theme. `transparent` would let
13
+ * the connector's own line show through the head; a theme token would turn the
14
+ * head black-on-black next to a card-white box in a dark host.
15
+ */
16
+ export declare const HOLLOW_HEAD_FILL: string;
6
17
  export declare function getArrowPoints(points: PointLocation[], size: number | undefined, mode: ConnectorMode, bezierParameters: BezierCurveParameters, endPoint?: ConnectorEnd, radians?: number): {
7
18
  points: (IVec | PointLocation)[];
8
19
  };
@@ -12,7 +23,12 @@ export declare function getDiamondPoints(point: PointLocation, size?: number, en
12
23
  points: (IVec | PointLocation)[];
13
24
  };
14
25
  export type ArrowOptions = ReturnType<typeof getArrowOptions>;
15
- export declare function getArrowOptions(end: ConnectorEnd, model: ConnectorElementModel | LocalConnectorElementModel, strokeColor: string): {
26
+ /**
27
+ * @param fillColor the interior of a closed head. Defaults to `strokeColor`, so
28
+ * a `Triangle` or a `Diamond` stays the solid head it has always been; the
29
+ * hollow UML heads pass `HOLLOW_HEAD_FILL` instead.
30
+ */
31
+ export declare function getArrowOptions(end: ConnectorEnd, model: ConnectorElementModel | LocalConnectorElementModel, strokeColor: string, fillColor?: string): {
16
32
  end: ConnectorEnd;
17
33
  seed: number;
18
34
  mode: ConnectorMode;
@@ -32,7 +48,13 @@ export declare function getRcOptions(options: ArrowOptions): {
32
48
  fill: string;
33
49
  fillStyle: string;
34
50
  };
35
- export declare function renderRoundedPolygon(ctx: CanvasRenderingContext2D, points: IVec[], color: string, strokeWidth: number, fill?: boolean): void;
51
+ /**
52
+ * @param color the outline colour.
53
+ * @param fillColor the interior colour. Defaults to `color` — the solid head.
54
+ * A hollow head passes the notation card fill, so the outline stays the
55
+ * connector's colour while the inside reads as empty.
56
+ */
57
+ export declare function renderRoundedPolygon(ctx: CanvasRenderingContext2D, points: IVec[], color: string, strokeWidth: number, fill?: boolean, fillColor?: string): void;
36
58
  export declare function renderArrow(points: PointLocation[], ctx: CanvasRenderingContext2D, rc: RoughCanvas, options: ArrowOptions): void;
37
59
  export declare function renderTriangle(points: PointLocation[], ctx: CanvasRenderingContext2D, rc: RoughCanvas, options: ArrowOptions): void;
38
60
  export declare function renderDiamond(points: PointLocation[], ctx: CanvasRenderingContext2D, rc: RoughCanvas, options: ArrowOptions): void;