@formicoidea/labre-core 0.31.0 → 0.33.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 (637) hide show
  1. package/dist/_pkgs/affine-block-attachment/attachment-block.js +1 -1
  2. package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
  3. package/dist/_pkgs/affine-block-callout/callout-block.js +26 -4
  4. package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
  5. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
  6. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
  7. package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
  8. package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
  9. package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
  10. package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
  11. package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
  12. package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
  13. package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
  14. package/dist/_pkgs/affine-block-code/code-block-inline.js +1 -1
  15. package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
  16. package/dist/_pkgs/affine-block-code/code-block.js +44 -6
  17. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
  18. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
  19. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
  20. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
  21. package/dist/_pkgs/affine-block-code/code-toolbar/config.js +54 -5
  22. package/dist/_pkgs/affine-block-code/code-toolbar/index.js +1 -1
  23. package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
  24. package/dist/_pkgs/affine-block-code/effects.js +2 -0
  25. package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
  26. package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
  27. package/dist/_pkgs/affine-block-code/index.js +1 -0
  28. package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
  29. package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
  30. package/dist/_pkgs/affine-block-code/styles.js +31 -0
  31. package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
  32. package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
  33. package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
  34. package/dist/_pkgs/affine-block-database/data-source.js +1 -2
  35. package/dist/_pkgs/affine-block-database/database-block.js +13 -0
  36. package/dist/_pkgs/affine-block-database/external-data-source.js +1 -1
  37. package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
  38. package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
  39. package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
  40. package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
  41. package/dist/_pkgs/affine-block-database/views/index.js +1 -0
  42. package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +11 -1
  43. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
  44. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
  45. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
  46. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
  47. package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-service.js +1 -1
  48. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +2 -2
  49. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
  50. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
  51. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +1 -1
  52. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
  53. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/utils.js +1 -1
  54. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +1 -1
  55. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
  56. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +23 -4
  57. package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
  58. package/dist/_pkgs/affine-block-frame/frame-manager.js +34 -2
  59. package/dist/_pkgs/affine-block-frame/frame-tool.js +1 -1
  60. package/dist/_pkgs/affine-block-image/components/page-image-block.js +1 -1
  61. package/dist/_pkgs/affine-block-image/image-edgeless-block.js +1 -1
  62. package/dist/_pkgs/affine-block-latex/styles.js +6 -1
  63. package/dist/_pkgs/affine-block-list/utils/forward-delete.js +1 -1
  64. package/dist/_pkgs/affine-block-note/commands/select-block.js +1 -1
  65. package/dist/_pkgs/affine-block-note/commands/select-blocks-between.js +1 -1
  66. package/dist/_pkgs/affine-block-note/move-block.js +1 -1
  67. package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
  68. package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
  69. package/dist/_pkgs/affine-block-paragraph/utils/forward-delete.js +2 -2
  70. package/dist/_pkgs/affine-block-paragraph/utils/merge-with-prev.js +1 -1
  71. package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
  72. package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
  73. package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
  74. package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
  75. package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
  76. package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
  77. package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
  78. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +10 -3
  79. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
  80. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +27 -2
  81. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
  82. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
  83. package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
  84. package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
  85. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
  86. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
  87. package/dist/_pkgs/affine-block-root/edgeless/utils/clipboard-utils.js +1 -1
  88. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
  89. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
  90. package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
  91. package/dist/_pkgs/affine-block-root/index.js +4 -1
  92. package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
  93. package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
  94. package/dist/_pkgs/affine-block-root/view.js +13 -4
  95. package/dist/_pkgs/affine-block-surface/adapters/markdown/element-adapter/type.js +1 -1
  96. package/dist/_pkgs/affine-block-surface/adapters/plain-text/element-adapter/type.js +1 -1
  97. package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
  98. package/dist/_pkgs/affine-block-surface/effects.js +6 -0
  99. package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
  100. package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
  101. package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
  102. package/dist/_pkgs/affine-block-surface/extensions/audit.js +489 -0
  103. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
  104. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +37 -5
  105. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
  106. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +327 -0
  107. package/dist/_pkgs/affine-block-surface/extensions/element-renderer.js +1 -1
  108. package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +1 -1
  109. package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +17 -0
  110. package/dist/_pkgs/affine-block-surface/extensions/index.js +17 -0
  111. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +172 -0
  112. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +393 -0
  113. package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +306 -0
  114. package/dist/_pkgs/affine-block-surface/extensions/interchange.js +64 -0
  115. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
  116. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
  117. package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
  118. package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
  119. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +248 -0
  120. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +248 -0
  121. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
  122. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
  123. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
  124. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +588 -0
  125. package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
  126. package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
  127. package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
  128. package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
  129. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.d.ts +107 -0
  130. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +958 -0
  131. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
  132. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
  133. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
  134. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
  135. package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +2129 -0
  136. package/dist/_pkgs/affine-block-surface/extensions/validation.js +4620 -0
  137. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +330 -0
  138. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +1004 -0
  139. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
  140. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
  141. package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +610 -0
  142. package/dist/_pkgs/affine-block-surface/framework-background/def.js +206 -0
  143. package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
  144. package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
  145. package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
  146. package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
  147. package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
  148. package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
  149. package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +99 -0
  150. package/dist/_pkgs/affine-block-surface/framework-background/labels.js +193 -0
  151. package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
  152. package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +399 -0
  153. package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
  154. package/dist/_pkgs/affine-block-surface/index.js +1 -0
  155. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
  156. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
  157. package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
  158. package/dist/_pkgs/affine-block-surface/renderer/overlay.js +1 -1
  159. package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
  160. package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
  161. package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
  162. package/dist/_pkgs/affine-block-surface/view.js +57 -2
  163. package/dist/_pkgs/affine-block-surface-ref/portal/note.js +2 -2
  164. package/dist/_pkgs/affine-block-table/commands.js +1 -1
  165. package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
  166. package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
  167. package/dist/_pkgs/affine-block-table/table-block.js +8 -2
  168. package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
  169. package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
  170. package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
  171. package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
  172. package/dist/_pkgs/affine-block-table/utils.js +12 -0
  173. package/dist/_pkgs/affine-block-table/view.js +2 -0
  174. package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
  175. package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
  176. package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
  177. package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
  178. package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
  179. package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
  180. package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
  181. package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
  182. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +1 -1
  183. package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +1 -1
  184. package/dist/_pkgs/affine-components/filterable-list/styles.js +1 -1
  185. package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
  186. package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
  187. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
  188. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
  189. package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
  190. package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
  191. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
  192. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
  193. package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
  194. package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
  195. package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
  196. package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
  197. package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
  198. package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
  199. package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
  200. package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
  201. package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
  202. package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
  203. package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
  204. package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
  205. package/dist/_pkgs/affine-components/icons/text.js +426 -426
  206. package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
  207. package/dist/_pkgs/affine-components/peek/peekable.js +1 -1
  208. package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
  209. package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -0
  210. package/dist/_pkgs/affine-components/toolbar/index.js +1 -0
  211. package/dist/_pkgs/affine-components/toolbar/menu-button.js +2 -1
  212. package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +55 -0
  213. package/dist/_pkgs/affine-components/toolbar/picker-menu.js +47 -0
  214. package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
  215. package/dist/_pkgs/affine-foundation/view.js +11 -2
  216. package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +2 -2
  217. package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +2 -2
  218. package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +1 -1
  219. package/dist/_pkgs/affine-fragment-outline/mobile-outline-panel.js +1 -1
  220. package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
  221. package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
  222. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
  223. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
  224. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
  225. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
  226. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
  227. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
  228. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
  229. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
  230. package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
  231. package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
  232. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +1 -1
  233. package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
  234. package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
  235. package/dist/_pkgs/affine-gfx-connector/connector-manager.js +39 -16
  236. package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +26 -1
  237. package/dist/_pkgs/affine-gfx-connector/connector-tool.js +12 -3
  238. package/dist/_pkgs/affine-gfx-connector/connector-watcher.js +1 -4
  239. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
  240. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +282 -0
  241. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
  242. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
  243. package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
  244. package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
  245. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
  246. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +185 -0
  247. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
  248. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
  249. package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
  250. package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
  251. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
  252. package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +1 -1
  253. package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +1 -1
  254. package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
  255. package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
  256. package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
  257. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +68 -2
  258. package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
  259. package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
  260. package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
  261. package/dist/_pkgs/affine-gfx-mindmap/adapter/markdown/index.js +1 -1
  262. package/dist/_pkgs/affine-gfx-mindmap/adapter/utils.js +1 -1
  263. package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +583 -4
  264. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +23 -23
  265. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +5 -1
  266. package/dist/_pkgs/affine-gfx-mindmap/view/utils.js +1 -1
  267. package/dist/_pkgs/affine-gfx-note/overlay/overlay.js +1 -1
  268. package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +1 -1
  269. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
  270. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
  271. package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
  272. package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
  273. package/dist/_pkgs/affine-gfx-shape/consts.js +1 -1
  274. package/dist/_pkgs/affine-gfx-shape/draggable/shape-draggable.js +1 -1
  275. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/polygon.js +17 -9
  276. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/utils.js +8 -3
  277. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
  278. package/dist/_pkgs/affine-gfx-shape/element-view.js +19 -12
  279. package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
  280. package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
  281. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +1 -1
  282. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-vertex-editing-overlay.js +12 -7
  283. package/dist/_pkgs/affine-gfx-shape/overlay/shape-overlay.js +1 -1
  284. package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +4 -2
  285. package/dist/_pkgs/affine-gfx-shape/shape-tool.js +1 -1
  286. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
  287. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -15
  288. package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
  289. package/dist/_pkgs/affine-gfx-template/builtin/other.js +66 -17
  290. package/dist/_pkgs/affine-gfx-template/toolbar/overlay-scrollbar.js +1 -1
  291. package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +1 -1
  292. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
  293. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
  294. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
  295. package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +1 -1
  296. package/dist/_pkgs/affine-inline-latex/command.js +46 -26
  297. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
  298. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
  299. package/dist/_pkgs/affine-inline-link/command.js +1 -1
  300. package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
  301. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
  302. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
  303. package/dist/_pkgs/affine-inline-preset/command/format-block.js +1 -1
  304. package/dist/_pkgs/affine-inline-preset/command/format-native.js +2 -2
  305. package/dist/_pkgs/affine-inline-preset/command/format-text.js +1 -1
  306. package/dist/_pkgs/affine-inline-preset/inline-spec.js +1 -1
  307. package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +1 -1
  308. package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
  309. package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
  310. package/dist/_pkgs/affine-model/elements/bpmn/node.d.ts +40 -7
  311. package/dist/_pkgs/affine-model/elements/bpmn/node.js +4 -2
  312. package/dist/_pkgs/affine-model/elements/bpmn/pool.d.ts +74 -17
  313. package/dist/_pkgs/affine-model/elements/bpmn/pool.js +55 -26
  314. package/dist/_pkgs/affine-model/elements/c4/board.d.ts +88 -0
  315. package/dist/_pkgs/affine-model/elements/c4/board.js +128 -0
  316. package/dist/_pkgs/affine-model/elements/c4/boundary.d.ts +63 -0
  317. package/dist/_pkgs/affine-model/elements/c4/boundary.js +134 -0
  318. package/dist/_pkgs/affine-model/elements/c4/index.d.ts +3 -0
  319. package/dist/_pkgs/affine-model/elements/c4/index.js +3 -0
  320. package/dist/_pkgs/affine-model/elements/c4/node.d.ts +97 -0
  321. package/dist/_pkgs/affine-model/elements/c4/node.js +130 -0
  322. package/dist/_pkgs/affine-model/elements/connector/connector.js +25 -1
  323. package/dist/_pkgs/affine-model/elements/context-map/context-map.d.ts +27 -0
  324. package/dist/_pkgs/affine-model/elements/context-map/context-map.js +94 -0
  325. package/dist/_pkgs/affine-model/elements/context-map/index.d.ts +1 -0
  326. package/dist/_pkgs/affine-model/elements/context-map/index.js +1 -0
  327. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +34 -17
  328. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +28 -26
  329. package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
  330. package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
  331. package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
  332. package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
  333. package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
  334. package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
  335. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +36 -0
  336. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +103 -0
  337. package/dist/_pkgs/affine-model/elements/event-storming/index.d.ts +1 -0
  338. package/dist/_pkgs/affine-model/elements/event-storming/index.js +1 -0
  339. package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
  340. package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
  341. package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
  342. package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
  343. package/dist/_pkgs/affine-model/elements/index.d.ts +14 -1
  344. package/dist/_pkgs/affine-model/elements/index.js +4 -0
  345. package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
  346. package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
  347. package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
  348. package/dist/_pkgs/affine-model/elements/shape/api/polygon.js +2 -8
  349. package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
  350. package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
  351. package/dist/_pkgs/affine-shared/adapters/html/block-adapter.js +1 -1
  352. package/dist/_pkgs/affine-shared/adapters/markdown/block-adapter.js +1 -1
  353. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
  354. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +161 -3
  355. package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
  356. package/dist/_pkgs/affine-shared/adapters/notion-html/block-adapter.js +1 -1
  357. package/dist/_pkgs/affine-shared/adapters/notion-html/delta-converter.js +1 -1
  358. package/dist/_pkgs/affine-shared/adapters/plain-text/block-adapter.js +1 -1
  359. package/dist/_pkgs/affine-shared/adapters/plain-text/delta-converter.js +1 -1
  360. package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
  361. package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
  362. package/dist/_pkgs/affine-shared/adapters/utils/color.js +283 -0
  363. package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
  364. package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
  365. package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
  366. package/dist/_pkgs/affine-shared/commands/model-crud/draft-selected-models.js +1 -1
  367. package/dist/_pkgs/affine-shared/commands/selection/focus-block-end.js +1 -1
  368. package/dist/_pkgs/affine-shared/commands/selection/focus-block-start.js +1 -1
  369. package/dist/_pkgs/affine-shared/consts/index.d.ts +10 -0
  370. package/dist/_pkgs/affine-shared/consts/index.js +10 -0
  371. package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.d.ts +55 -0
  372. package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.js +35 -0
  373. package/dist/_pkgs/affine-shared/services/audit-service.d.ts +311 -0
  374. package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
  375. package/dist/_pkgs/affine-shared/services/command-usage-service.d.ts +31 -0
  376. package/dist/_pkgs/affine-shared/services/command-usage-service.js +109 -0
  377. package/dist/_pkgs/affine-shared/services/comment-service/block-comment-manager.js +1 -1
  378. package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +1 -1
  379. package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
  380. package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
  381. package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.js +1 -1
  382. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
  383. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
  384. package/dist/_pkgs/affine-shared/services/index.d.ts +7 -0
  385. package/dist/_pkgs/affine-shared/services/index.js +7 -0
  386. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
  387. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +312 -0
  388. package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
  389. package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
  390. package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
  391. package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +255 -1
  392. package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
  393. package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
  394. package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
  395. package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
  396. package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
  397. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
  398. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
  399. package/dist/_pkgs/affine-shared/services/toolbar-service/registry.d.ts +44 -0
  400. package/dist/_pkgs/affine-shared/services/toolbar-service/registry.js +161 -3
  401. package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
  402. package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
  403. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
  404. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +256 -0
  405. package/dist/_pkgs/affine-shared/test-utils/affine-template.js +1 -1
  406. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
  407. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
  408. package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
  409. package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
  410. package/dist/_pkgs/affine-shared/utils/edgeless.js +1 -1
  411. package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +34 -0
  412. package/dist/_pkgs/affine-shared/utils/file/filesys.js +48 -7
  413. package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
  414. package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
  415. package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
  416. package/dist/_pkgs/affine-shared/utils/zod-schema.js +25 -1
  417. package/dist/_pkgs/affine-widget-drag-handle/utils.js +1 -1
  418. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
  419. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
  420. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
  421. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
  422. package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +1 -1
  423. package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +1 -1
  424. package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
  425. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
  426. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
  427. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
  428. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
  429. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
  430. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
  431. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.d.ts +14 -0
  432. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.js +40 -0
  433. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +158 -0
  434. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +572 -0
  435. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.d.ts +46 -0
  436. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.js +66 -0
  437. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.d.ts +13 -0
  438. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.js +50 -0
  439. package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.d.ts +6 -0
  440. package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +15 -5
  441. package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.d.ts +2 -0
  442. package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.js +2 -0
  443. package/dist/_pkgs/affine-widget-edgeless-toolbar/extension/index.d.ts +7 -0
  444. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +5 -0
  445. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +5 -0
  446. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +57 -0
  447. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +140 -0
  448. package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +9 -0
  449. package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
  450. package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
  451. package/dist/_pkgs/affine-widget-keyboard-toolbar/keyboard-tool-panel.js +1 -1
  452. package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +1 -1
  453. package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
  454. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
  455. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
  456. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
  457. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
  458. package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
  459. package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
  460. package/dist/_pkgs/affine-widget-page-dragging-area/index.js +1 -1
  461. package/dist/_pkgs/affine-widget-remote-selection/doc/doc-remote-selection.js +1 -1
  462. package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
  463. package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
  464. package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
  465. package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
  466. package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
  467. package/dist/_pkgs/affine-widget-toolbar/toolbar.js +40 -8
  468. package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
  469. package/dist/_pkgs/affine-widget-toolbar/utils.js +744 -58
  470. package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
  471. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
  472. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
  473. package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
  474. package/dist/_pkgs/data-view/core/data-view.js +25 -3
  475. package/dist/_pkgs/data-view/core/detail/field.js +2 -2
  476. package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
  477. package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
  478. package/dist/_pkgs/data-view/core/effect.js +2 -0
  479. package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
  480. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
  481. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
  482. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
  483. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
  484. package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
  485. package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
  486. package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
  487. package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
  488. package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
  489. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
  490. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
  491. package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
  492. package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
  493. package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
  494. package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
  495. package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
  496. package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
  497. package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
  498. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
  499. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
  500. package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
  501. package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
  502. package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
  503. package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
  504. package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
  505. package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
  506. package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
  507. package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
  508. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
  509. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +64 -0
  510. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
  511. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
  512. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
  513. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
  514. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
  515. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
  516. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
  517. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
  518. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
  519. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +849 -0
  520. package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
  521. package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
  522. package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
  523. package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
  524. package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
  525. package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
  526. package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
  527. package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
  528. package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
  529. package/dist/_pkgs/data-view/view-presets/index.js +3 -0
  530. package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
  531. package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
  532. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
  533. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
  534. package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
  535. package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
  536. package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +89 -4
  537. package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
  538. package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
  539. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
  540. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
  541. package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
  542. package/dist/_pkgs/data-view/view-presets/table/pc/group.js +86 -5
  543. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
  544. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
  545. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
  546. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
  547. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
  548. package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
  549. package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
  550. package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
  551. package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
  552. package/dist/_pkgs/global/gfx/curve.js +4 -3
  553. package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
  554. package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
  555. package/dist/_pkgs/std/clipboard/utils.js +10 -0
  556. package/dist/_pkgs/std/event/dispatcher.js +27 -1
  557. package/dist/_pkgs/std/event/keymap.js +16 -6
  558. package/dist/_pkgs/std/extension/command-registry.d.ts +475 -0
  559. package/dist/_pkgs/std/extension/command-registry.js +431 -0
  560. package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
  561. package/dist/_pkgs/std/extension/index.d.ts +2 -0
  562. package/dist/_pkgs/std/extension/index.js +2 -0
  563. package/dist/_pkgs/std/extension/shortcut.js +2 -1
  564. package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
  565. package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
  566. package/dist/_pkgs/std/gfx/grid.js +1 -1
  567. package/dist/_pkgs/std/gfx/index.d.ts +7 -3
  568. package/dist/_pkgs/std/gfx/index.js +6 -2
  569. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
  570. package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
  571. package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
  572. package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
  573. package/dist/_pkgs/std/gfx/layer.js +1 -2
  574. package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
  575. package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
  576. package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
  577. package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
  578. package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
  579. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
  580. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
  581. package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +442 -0
  582. package/dist/_pkgs/std/gfx/model/surface/element-model.js +510 -25
  583. package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
  584. package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
  585. package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
  586. package/dist/_pkgs/std/gfx/model/surface/role.js +117 -0
  587. package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
  588. package/dist/_pkgs/std/gfx/model/surface/surface-model.js +305 -17
  589. package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
  590. package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
  591. package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
  592. package/dist/_pkgs/std/gfx/perf.js +30 -0
  593. package/dist/_pkgs/std/gfx/selection.js +1 -1
  594. package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
  595. package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
  596. package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
  597. package/dist/_pkgs/std/gfx/viewport.js +20 -2
  598. package/dist/_pkgs/std/inline/extensions/inline-manager.js +1 -1
  599. package/dist/_pkgs/std/inline/extensions/markdown-matcher.js +1 -1
  600. package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
  601. package/dist/_pkgs/std/inline/services/event.js +96 -21
  602. package/dist/_pkgs/std/utils/layer.js +2 -6
  603. package/dist/_pkgs/std/utils/tree.d.ts +14 -0
  604. package/dist/_pkgs/std/utils/tree.js +59 -8
  605. package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
  606. package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
  607. package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
  608. package/dist/_pkgs/store/model/store/crud.js +10 -4
  609. package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
  610. package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
  611. package/dist/commands.d.ts +58 -0
  612. package/dist/commands.js +66 -0
  613. package/dist/extensions/command-telemetry.d.ts +21 -0
  614. package/dist/extensions/command-telemetry.js +89 -0
  615. package/dist/extensions/command-usage.d.ts +23 -0
  616. package/dist/extensions/command-usage.js +37 -0
  617. package/dist/extensions/store.d.ts +9 -4
  618. package/dist/extensions/store.js +27 -24
  619. package/dist/extensions/view.d.ts +9 -4
  620. package/dist/extensions/view.js +35 -8
  621. package/dist/flags.d.ts +98 -21
  622. package/dist/flags.js +103 -22
  623. package/dist/frameworks.d.ts +45 -0
  624. package/dist/frameworks.js +186 -0
  625. package/dist/schemas.d.ts +8 -5
  626. package/dist/schemas.js +28 -32
  627. package/dist/shortcuts.d.ts +16 -16
  628. package/dist/shortcuts.js +8 -36
  629. package/dist/translations.d.ts +56 -0
  630. package/dist/translations.js +200 -0
  631. package/package.json +16 -4
  632. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
  633. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
  634. package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
  635. package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
  636. package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
  637. package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
@@ -355,43 +355,43 @@ let EdgelessMindmapMenu = (() => {
355
355
  const showNext = dragOut && !cancelled;
356
356
  const isActive = this._style$.value === mindMap.style;
357
357
  return html `
358
- <div class="mindmap-item" data-is-active=${isActive}>
359
- ${isBeingDragged
358
+ <div class="mindmap-item" data-is-active=${isActive}>
359
+ ${isBeingDragged
360
360
  ? html `<button
361
- style="transform: translateY(${showNext ? 0 : 64}px)"
362
- class="next"
363
- >
364
- ${mindMap.icon}
365
- </button>`
361
+ style="transform: translateY(${showNext ? 0 : 64}px)"
362
+ class="next"
363
+ >
364
+ ${mindMap.icon}
365
+ </button>`
366
366
  : nothing}
367
- <button
368
- style="opacity: ${isBeingDragged ? 0 : 1}"
369
- @mousedown=${(e) => {
367
+ <button
368
+ style="opacity: ${isBeingDragged ? 0 : 1}"
369
+ @mousedown=${(e) => {
370
370
  this.draggableController.onMouseDown(e, {
371
371
  preview: mindMap.icon,
372
372
  data: mindMap,
373
373
  standardWidth: 350,
374
374
  });
375
375
  }}
376
- @touchstart=${(e) => {
376
+ @touchstart=${(e) => {
377
377
  this.draggableController.onTouchStart(e, {
378
378
  preview: mindMap.icon,
379
379
  data: mindMap,
380
380
  standardWidth: 350,
381
381
  });
382
382
  }}
383
- @click=${() => this.onActiveStyleChange?.(mindMap.style)}
384
- >
385
- ${mindMap.icon}
386
- </button>
387
- <affine-tooltip tip-position="top" .offset=${12}>
388
- <affine-tooltip-content-with-shortcut
389
- data-tip="${'Mind Map'}"
390
- data-shortcup="${'M'}"
391
- ></affine-tooltip-content-with-shortcut>
392
- </affine-tooltip>
393
- </div>
394
- `;
383
+ @click=${() => this.onActiveStyleChange?.(mindMap.style)}
384
+ >
385
+ ${mindMap.icon}
386
+ </button>
387
+ <affine-tooltip tip-position="top" .offset=${12}>
388
+ <affine-tooltip-content-with-shortcut
389
+ data-tip="${'Mind Map'}"
390
+ data-shortcup="${'M'}"
391
+ ></affine-tooltip-content-with-shortcut>
392
+ </affine-tooltip>
393
+ </div>
394
+ `;
395
395
  })}
396
396
  ${this.std.store
397
397
  .get(FeatureFlagService)
@@ -314,7 +314,11 @@ let EdgelessMindmapToolButton = (() => {
314
314
  return html `<edgeless-toolbar-button
315
315
  class="edgeless-mindmap-button"
316
316
  ?withHover=${true}
317
- .tooltip=${popper ? '' : this.variant === 'mindmap' ? 'Mind Map' : 'Others'}
317
+ .tooltip=${popper
318
+ ? ''
319
+ : this.variant === 'mindmap'
320
+ ? 'Mind Map'
321
+ : 'Others'}
318
322
  .tooltipOffset=${4}
319
323
  @click=${this._toggleMenu}
320
324
  style="width: 100%; height: 100%; display: inline-block"
@@ -1,7 +1,7 @@
1
1
  import { fitContent } from '../../affine-gfx-shape/index.js';
2
2
  import { applyNodeStyle, LayoutType, } from '../../affine-model/index.js';
3
3
  import { assertType } from '../../global/utils/index.js';
4
- import { generateKeyBetween, } from '../../std/gfx/index.js';
4
+ import { generateKeyBetween } from '../../std/gfx/index.js';
5
5
  import isEqual from 'lodash-es/isEqual.js';
6
6
  import last from 'lodash-es/last.js';
7
7
  import * as Y from 'yjs';
@@ -1,4 +1,4 @@
1
- import { getSurfaceComponent, ToolOverlay, } from '../../affine-block-surface/index.js';
1
+ import { getSurfaceComponent, ToolOverlay } from '../../affine-block-surface/index.js';
2
2
  import { DefaultTheme } from '../../affine-model/index.js';
3
3
  import { ThemeProvider } from '../../affine-shared/services/index.js';
4
4
  import { effect } from '@preact/signals-core';
@@ -33,7 +33,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
33
  return useValue ? value : void 0;
34
34
  };
35
35
  import { Heading1Icon, LinkIcon, TextIcon, } from '../../affine-components/icons/index.js';
36
- import { EditPropsStore, ThemeProvider, } from '../../affine-shared/services/index.js';
36
+ import { EditPropsStore, ThemeProvider } from '../../affine-shared/services/index.js';
37
37
  import { EdgelessToolbarToolMixin } from '../../affine-widget-edgeless-toolbar/index.js';
38
38
  import { SignalWatcher } from '../../global/lit/index.js';
39
39
  import { computed } from '@preact/signals-core';
@@ -7,10 +7,26 @@ export type PanToolOption = {
7
7
  export declare class PanTool extends BaseTool<PanToolOption> {
8
8
  static toolName: string;
9
9
  private _lastPoint;
10
+ /**
11
+ * Set while a finger drag has borrowed the pan tool; calling it gives the
12
+ * previous tool — and the selection it was holding — back.
13
+ */
14
+ private _fingerPanRestore;
10
15
  readonly panning$: Signal<boolean>;
11
16
  get allowDragWithRightButton(): boolean;
12
17
  dragEnd(_: PointerEventState): void;
13
18
  dragMove(e: PointerEventState): void;
14
19
  dragStart(e: PointerEventState): void;
15
20
  mounted(): void;
21
+ /**
22
+ * Activate the pan tool for the duration of a gesture.
23
+ *
24
+ * @returns a function restoring the previous tool and the selection it was
25
+ * holding, or `null` when the pan tool is already the user's own choice —
26
+ * there is then nothing to restore.
27
+ */
28
+ private _borrowPanTool;
29
+ private _releaseFingerPan;
30
+ /** Whether this drag is a bare finger sliding over empty canvas. */
31
+ private _shouldPanWithFinger;
16
32
  }
@@ -2,10 +2,19 @@ import { EdgelessLegacySlotIdentifier } from '../../affine-block-surface/index.j
2
2
  import { on } from '../../affine-shared/utils/index.js';
3
3
  import { BaseTool, MouseButton } from '../../std/gfx/index.js';
4
4
  import { Signal } from '@preact/signals-core';
5
+ /** The presentation tool, named here because it is not importable from gfx. */
6
+ const PRESENT_TOOL_NAME = 'frameNavigator';
7
+ /** The selection tool, named here because it is not importable from gfx. */
8
+ const DEFAULT_TOOL_NAME = 'default';
5
9
  export class PanTool extends BaseTool {
6
10
  constructor() {
7
11
  super(...arguments);
8
12
  this._lastPoint = null;
13
+ /**
14
+ * Set while a finger drag has borrowed the pan tool; calling it gives the
15
+ * previous tool — and the selection it was holding — back.
16
+ */
17
+ this._fingerPanRestore = null;
9
18
  this.panning$ = new Signal(false);
10
19
  }
11
20
  static { this.toolName = 'pan'; }
@@ -15,6 +24,7 @@ export class PanTool extends BaseTool {
15
24
  dragEnd(_) {
16
25
  this._lastPoint = null;
17
26
  this.panning$.value = false;
27
+ this._releaseFingerPan();
18
28
  }
19
29
  dragMove(e) {
20
30
  if (!this._lastPoint)
@@ -37,45 +47,105 @@ export class PanTool extends BaseTool {
37
47
  if (!shouldPanWithMiddle) {
38
48
  return;
39
49
  }
40
- evt.raw.preventDefault();
41
- const currentTool = this.controller.currentToolOption$.peek();
42
- const restoreToPrevious = () => {
43
- const { toolType, options: originalToolOptions } = currentTool;
44
- const selectionToRestore = this.gfx.selection.surfaceSelections;
45
- if (!toolType)
46
- return;
47
- let finalOptions = originalToolOptions;
48
- const PRESENT_TOOL_NAME = 'frameNavigator';
49
- if (toolType.toolName === PRESENT_TOOL_NAME) {
50
- // When restoring PresentTool (frameNavigator) after a temporary pan (e.g., via middle mouse button),
51
- // set 'restoredAfterPan' to true. This allows PresentTool to avoid an unwanted viewport reset
52
- // and maintain the panned position.
53
- const currentPresentOptions = originalToolOptions;
54
- finalOptions = {
55
- ...currentPresentOptions,
56
- restoredAfterPan: true,
57
- };
58
- }
59
- this.controller.setTool(toolType, finalOptions);
60
- this.gfx.selection.set(selectionToRestore);
61
- };
62
- // If in presentation mode, disable black background after middle mouse drag
63
- if (currentTool.toolType?.toolName === 'frameNavigator') {
64
- const slots = this.std.get(EdgelessLegacySlotIdentifier);
65
- slots.navigatorSettingUpdated.next({
66
- blackBackground: false,
67
- });
50
+ const restoreToPrevious = this._borrowPanTool();
51
+ // Already panning — the pan tool is the user's own choice, not a
52
+ // temporary borrow. There is nothing to switch to and nothing to
53
+ // restore, so stay out of the way and let the gesture through.
54
+ if (!restoreToPrevious) {
55
+ return;
68
56
  }
69
- this.controller.setTool(PanTool, {
70
- panning: true,
71
- });
57
+ evt.raw.preventDefault();
72
58
  const dispose = on(document, 'pointerup', evt => {
73
59
  if (evt.button === MouseButton.MIDDLE) {
74
60
  restoreToPrevious();
75
- dispose();
76
61
  }
62
+ // Whatever button ended the gesture, this listener has done its job:
63
+ // release it, or a right-click after a middle-click would leave it
64
+ // hanging on `document` and restore a stale tool later on.
65
+ dispose();
77
66
  });
78
67
  return false;
79
68
  });
69
+ // A finger dragging bare canvas slides the canvas, the way every touch
70
+ // surface behaves. Borrowing happens on `dragStart`, not on `pointerDown`:
71
+ // a tap must stay a tap, and the selection tool is still the one that has
72
+ // to answer it. The `dragStart` hook runs BEFORE the controller resolves
73
+ // which tool receives the event, so the pan tool below gets the whole
74
+ // gesture — moves and end alike.
75
+ this.addHook('dragStart', evt => {
76
+ if (!this._shouldPanWithFinger(evt))
77
+ return;
78
+ this._fingerPanRestore = this._borrowPanTool();
79
+ });
80
+ }
81
+ /**
82
+ * Activate the pan tool for the duration of a gesture.
83
+ *
84
+ * @returns a function restoring the previous tool and the selection it was
85
+ * holding, or `null` when the pan tool is already the user's own choice —
86
+ * there is then nothing to restore.
87
+ */
88
+ _borrowPanTool() {
89
+ const { toolType, options: originalToolOptions } = this.controller.currentToolOption$.peek();
90
+ if (toolType?.toolName === PanTool.toolName) {
91
+ return null;
92
+ }
93
+ // Snapshot the selection NOW. Activating the pan tool below goes through
94
+ // `ToolController.setTool`, which clears the selection, so reading it
95
+ // back at the end of the gesture would only ever restore an empty one.
96
+ const selectionToRestore = this.gfx.selection.surfaceSelections.slice();
97
+ const restoreToPrevious = () => {
98
+ if (!toolType)
99
+ return;
100
+ let finalOptions = originalToolOptions;
101
+ if (toolType.toolName === PRESENT_TOOL_NAME) {
102
+ // When restoring PresentTool (frameNavigator) after a temporary pan (e.g., via middle mouse button),
103
+ // set 'restoredAfterPan' to true. This allows PresentTool to avoid an unwanted viewport reset
104
+ // and maintain the panned position.
105
+ const currentPresentOptions = originalToolOptions;
106
+ finalOptions = {
107
+ ...currentPresentOptions,
108
+ restoredAfterPan: true,
109
+ };
110
+ }
111
+ this.controller.setTool(toolType, finalOptions);
112
+ // AFTER the switch, never before: `setTool` clears the selection.
113
+ this.gfx.selection.set(selectionToRestore);
114
+ };
115
+ // If in presentation mode, disable black background after middle mouse drag
116
+ if (toolType?.toolName === PRESENT_TOOL_NAME) {
117
+ const slots = this.std.get(EdgelessLegacySlotIdentifier);
118
+ slots.navigatorSettingUpdated.next({
119
+ blackBackground: false,
120
+ });
121
+ }
122
+ this.controller.setTool(PanTool, {
123
+ panning: true,
124
+ });
125
+ return restoreToPrevious;
126
+ }
127
+ _releaseFingerPan() {
128
+ const restore = this._fingerPanRestore;
129
+ this._fingerPanRestore = null;
130
+ restore?.();
131
+ }
132
+ /** Whether this drag is a bare finger sliding over empty canvas. */
133
+ _shouldPanWithFinger(e) {
134
+ // A second finger is a two-finger gesture — pan or pinch — and the
135
+ // edgeless root answers those itself. It never reaches here anyway: the
136
+ // drag controller ends the drag as soon as a non-primary pointer lands.
137
+ if (e.raw.pointerType !== 'touch' || !e.raw.isPrimary)
138
+ return false;
139
+ // Only the selection tool lends its gesture away. Every other tool —
140
+ // brush, shape, connector, the framework tools — draws on empty canvas,
141
+ // and a finger is precisely how it is meant to draw.
142
+ const { toolType } = this.controller.currentToolOption$.peek();
143
+ if (toolType?.toolName !== DEFAULT_TOOL_NAME)
144
+ return false;
145
+ // A finger landing on something moves that something; only bare canvas
146
+ // slides. This is what keeps dragging a Wardley or EDGY element by hand
147
+ // working.
148
+ const [modelX, modelY] = this.gfx.viewport.toModelCoord(e.x, e.y);
149
+ return !this.gfx.getElementByPoint(modelX, modelY);
80
150
  }
81
151
  }
@@ -0,0 +1,2 @@
1
+ import type { CommandDescriptor } from '../std/index.js';
2
+ export declare const shapeCommands: CommandDescriptor[];
@@ -0,0 +1,33 @@
1
+ import { ShapeElementModel, TextFitMode } from '../affine-model/index.js';
2
+ import { GfxControllerIdentifier } from '../std/gfx/index.js';
3
+ import { applyTextFitMode, nextTextFitMode } from './text-fit.js';
4
+ /**
5
+ * Shape commands (edgeless scope, always-on — shapes are core canvas), so
6
+ * `owner: 'core'` rather than a framework. Host-rebindable through
7
+ * `ShortcutOverrides` exactly as before (`docs/adr/0008`).
8
+ */
9
+ /** The selected shapes that carry text — the ones the gesture would cycle. */
10
+ const textShapes = (std) => std
11
+ .get(GfxControllerIdentifier)
12
+ .selection.selectedElements.filter((el) => el instanceof ShapeElementModel && !!el.text);
13
+ export const shapeCommands = [
14
+ {
15
+ id: 'shape.cycleTextFit',
16
+ owner: 'core',
17
+ kind: 'action',
18
+ labelKey: 'com.labre.keyboardShortcuts.shape.cycleTextFit',
19
+ labelFallback: 'Cycle text fit',
20
+ surfaces: ['palette', 'agent'],
21
+ scope: 'edgeless',
22
+ defaultKeys: { mac: ['Mod-Shift-f'], other: ['Mod-Shift-f'] },
23
+ availability: 'selection',
24
+ when: std => textShapes(std).length > 0,
25
+ run: std => {
26
+ const models = textShapes(std);
27
+ if (!models.length)
28
+ return;
29
+ const mode = models[0].textFitMode ?? TextFitMode.Grow;
30
+ applyTextFitMode(std, models, nextTextFitMode(mode));
31
+ },
32
+ },
33
+ ];
@@ -1,4 +1,4 @@
1
- import { DEFAULT_ROUGHNESS, LineWidth, StrokeStyle, } from '../affine-model/index.js';
1
+ import { DEFAULT_ROUGHNESS, LineWidth, StrokeStyle } from '../affine-model/index.js';
2
2
  export const SHAPE_OVERLAY_WIDTH = 100;
3
3
  export const SHAPE_OVERLAY_HEIGHT = 100;
4
4
  export const SHAPE_OVERLAY_OFFSET_X = 6;
@@ -33,7 +33,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
33
  return useValue ? value : void 0;
34
34
  };
35
35
  import { CanvasElementType, DefaultTool, EdgelessCRUDIdentifier, } from '../../affine-block-surface/index.js';
36
- import { getShapeRadius, getShapeType, ShapeType, } from '../../affine-model/index.js';
36
+ import { getShapeRadius, getShapeType, ShapeType } from '../../affine-model/index.js';
37
37
  import { EditPropsStore, TelemetryProvider, ThemeProvider, ViewportElementProvider, } from '../../affine-shared/services/index.js';
38
38
  import { EdgelessDraggableElementController, EdgelessToolbarToolMixin, } from '../../affine-widget-edgeless-toolbar/index.js';
39
39
  import { SignalWatcher } from '../../global/lit/index.js';
@@ -29,11 +29,11 @@ export function polygon(model, ctx, matrix, renderer, rc, colors) {
29
29
  else {
30
30
  // Convert normalized vertices to absolute coordinates for rough.js
31
31
  const absPoints = vertices.map(v => [v[0] * renderWidth, v[1] * renderHeight]);
32
- const smoothFlags = 'smoothFlags' in model && model.smoothFlags
33
- ? model.smoothFlags
34
- : null;
35
- const controlPoints = 'controlPoints' in model && model.controlPoints
36
- ? model.controlPoints
32
+ const smoothFlags = 'smoothFlags' in model && model.smoothFlags ? model.smoothFlags : null;
33
+ const controlPoints = 'controlPoints' in model &&
34
+ model.controlPoints
35
+ ? model
36
+ .controlPoints
37
37
  : null;
38
38
  const hasBezier = smoothFlags && smoothFlags.some(f => f);
39
39
  if (hasBezier) {
@@ -52,8 +52,12 @@ export function polygon(model, ctx, matrix, renderer, rc, colors) {
52
52
  let cp1x, cp1y;
53
53
  const customCurr = controlPoints?.[i];
54
54
  if (currSmooth) {
55
- cp1x = customCurr ? customCurr[2] * renderWidth : cx + (nx - cx) / 3;
56
- cp1y = customCurr ? customCurr[3] * renderHeight : cy + (ny - cy) / 3;
55
+ cp1x = customCurr
56
+ ? customCurr[2] * renderWidth
57
+ : cx + (nx - cx) / 3;
58
+ cp1y = customCurr
59
+ ? customCurr[3] * renderHeight
60
+ : cy + (ny - cy) / 3;
57
61
  }
58
62
  else {
59
63
  cp1x = cx;
@@ -62,8 +66,12 @@ export function polygon(model, ctx, matrix, renderer, rc, colors) {
62
66
  let cp2x, cp2y;
63
67
  const customNext = controlPoints?.[next];
64
68
  if (nextSmooth) {
65
- cp2x = customNext ? customNext[0] * renderWidth : nx + (cx - nx) / 3;
66
- cp2y = customNext ? customNext[1] * renderHeight : ny + (cy - ny) / 3;
69
+ cp2x = customNext
70
+ ? customNext[0] * renderWidth
71
+ : nx + (cx - nx) / 3;
72
+ cp2y = customNext
73
+ ? customNext[1] * renderHeight
74
+ : ny + (cy - ny) / 3;
67
75
  }
68
76
  else {
69
77
  cp2x = nx;
@@ -116,8 +116,10 @@ function drawPolygon(ctx, width, height, shapeModel) {
116
116
  const smoothFlags = 'smoothFlags' in shapeModel && shapeModel.smoothFlags
117
117
  ? shapeModel.smoothFlags
118
118
  : null;
119
- const controlPoints = 'controlPoints' in shapeModel && shapeModel.controlPoints
120
- ? shapeModel.controlPoints
119
+ const controlPoints = 'controlPoints' in shapeModel &&
120
+ shapeModel.controlPoints
121
+ ? shapeModel
122
+ .controlPoints
121
123
  : null;
122
124
  const count = vertices.length;
123
125
  if (count === 0)
@@ -131,7 +133,10 @@ function drawPolygon(ctx, width, height, shapeModel) {
131
133
  }
132
134
  }
133
135
  else {
134
- const abs = (v) => [v[0] * width, v[1] * height];
136
+ const abs = (v) => [
137
+ v[0] * width,
138
+ v[1] * height,
139
+ ];
135
140
  ctx.moveTo(vertices[0][0] * width, vertices[0][1] * height);
136
141
  for (let i = 0; i < count; i++) {
137
142
  const next = (i + 1) % count;
@@ -1,17 +1,52 @@
1
1
  import { DefaultTheme } from '../../../affine-model/index.js';
2
2
  import { SVGShapeBuilder } from '../../../global/gfx/index.js';
3
3
  import { manageClassNames, setStyles } from './utils.js';
4
+ const SVG_NS = 'http://www.w3.org/2000/svg';
5
+ /**
6
+ * The nodes a shape host already owns, kept across renders. Rebuilding the
7
+ * `<svg>` on every frame made each pan or zoom allocate a fresh element per
8
+ * shape on the board; the attributes are cheap to overwrite in place.
9
+ */
10
+ const retainedShapeDom = new WeakMap();
11
+ function getRetainedShapeDom(element) {
12
+ const existing = retainedShapeDom.get(element);
13
+ if (existing) {
14
+ return existing;
15
+ }
16
+ const retained = {
17
+ svg: null,
18
+ polygon: null,
19
+ };
20
+ retainedShapeDom.set(element, retained);
21
+ return retained;
22
+ }
23
+ function getOrCreateSvg(retained, element) {
24
+ if (retained.svg && retained.polygon) {
25
+ return {
26
+ svg: retained.svg,
27
+ polygon: retained.polygon,
28
+ };
29
+ }
30
+ const svg = document.createElementNS(SVG_NS, 'svg');
31
+ svg.setAttribute('width', '100%');
32
+ svg.setAttribute('height', '100%');
33
+ svg.setAttribute('preserveAspectRatio', 'none');
34
+ const polygon = document.createElementNS(SVG_NS, 'polygon');
35
+ svg.append(polygon);
36
+ retained.svg = svg;
37
+ retained.polygon = polygon;
38
+ element.prepend(svg);
39
+ return { svg, polygon };
40
+ }
41
+ function removeSvg(retained) {
42
+ retained.svg?.remove();
43
+ retained.svg = null;
44
+ retained.polygon = null;
45
+ }
4
46
  function applyShapeSpecificStyles(model, element, zoom) {
5
47
  // Reset properties that might be set by different shape types
6
48
  element.style.removeProperty('clip-path');
7
49
  element.style.removeProperty('border-radius');
8
- // Clear DOM for shapes that don't use SVG, or if type changes from SVG-based to non-SVG-based
9
- if (model.shapeType !== 'diamond' &&
10
- model.shapeType !== 'triangle' &&
11
- model.shapeType !== 'polygon') {
12
- while (element.firstChild)
13
- element.firstChild.remove();
14
- }
15
50
  switch (model.shapeType) {
16
51
  case 'rect': {
17
52
  const w = model.w * zoom;
@@ -91,6 +126,7 @@ export const shapeDomRenderer = (model, element, renderer) => {
91
126
  const { zoom } = renderer.viewport;
92
127
  const unscaledWidth = model.w;
93
128
  const unscaledHeight = model.h;
129
+ const retained = getRetainedShapeDom(element);
94
130
  const fillColor = renderer.getColorValue(model.fillColor, DefaultTheme.shapeFillColor, true);
95
131
  const strokeColor = renderer.getColorValue(model.strokeColor, DefaultTheme.shapeStrokeColor, true);
96
132
  element.style.width = `${unscaledWidth * zoom}px`;
@@ -104,6 +140,7 @@ export const shapeDomRenderer = (model, element, renderer) => {
104
140
  // For diamond and triangle, fill and border are handled by inline SVG
105
141
  element.style.border = 'none'; // Ensure no standard CSS border interferes
106
142
  element.style.backgroundColor = 'transparent'; // Host element is transparent
143
+ const { polygon, svg } = getOrCreateSvg(retained, element);
107
144
  const strokeW = model.strokeWidth;
108
145
  let svgPoints = '';
109
146
  if (model.shapeType === 'diamond') {
@@ -140,14 +177,7 @@ export const shapeDomRenderer = (model, element, renderer) => {
140
177
  : 'none';
141
178
  // Determine fill color
142
179
  const finalFillColor = model.filled ? fillColor : 'transparent';
143
- // Build SVG safely with DOM-API
144
- const SVG_NS = 'http://www.w3.org/2000/svg';
145
- const svg = document.createElementNS(SVG_NS, 'svg');
146
- svg.setAttribute('width', '100%');
147
- svg.setAttribute('height', '100%');
148
180
  svg.setAttribute('viewBox', `0 0 ${unscaledWidth} ${unscaledHeight}`);
149
- svg.setAttribute('preserveAspectRatio', 'none');
150
- const polygon = document.createElementNS(SVG_NS, 'polygon');
151
181
  polygon.setAttribute('points', svgPoints);
152
182
  polygon.setAttribute('fill', finalFillColor);
153
183
  polygon.setAttribute('stroke', finalStrokeColor);
@@ -155,18 +185,17 @@ export const shapeDomRenderer = (model, element, renderer) => {
155
185
  if (finalStrokeDasharray !== 'none') {
156
186
  polygon.setAttribute('stroke-dasharray', finalStrokeDasharray);
157
187
  }
158
- svg.append(polygon);
159
- // Replace existing children to avoid memory leaks
160
- element.replaceChildren(svg);
188
+ else {
189
+ polygon.removeAttribute('stroke-dasharray');
190
+ }
161
191
  }
162
192
  else {
163
193
  // Standard rendering for other shapes (e.g., rect, ellipse)
164
- // innerHTML was already cleared by applyShapeSpecificStyles if necessary
194
+ removeSvg(retained);
165
195
  element.style.backgroundColor = model.filled ? fillColor : 'transparent';
166
196
  applyBorderStyles(model, element, strokeColor, zoom); // Uses standard CSS border
167
197
  }
168
198
  applyTransformStyles(model, element);
169
- element.style.zIndex = renderer.layerManager.getZIndex(model).toString();
170
199
  manageClassNames(model, element);
171
200
  applyShadowStyles(model, element, renderer);
172
201
  };
@@ -146,8 +146,7 @@ export class ShapeElementView extends GfxElementModelView {
146
146
  return;
147
147
  }
148
148
  // 'B' key toggles Bezier smoothing on the hovered vertex
149
- if ((evt.key === 'b' || evt.key === 'B') &&
150
- this._vertexEditingOverlay) {
149
+ if ((evt.key === 'b' || evt.key === 'B') && this._vertexEditingOverlay) {
151
150
  const idx = this._vertexEditingOverlay.hoveredVertexIndex;
152
151
  if (idx >= 0) {
153
152
  evt.preventDefault();
@@ -192,7 +191,8 @@ export class ShapeElementView extends GfxElementModelView {
192
191
  const verts = this.model.vertices;
193
192
  if (verts && this._pendingVertexIndex < verts.length) {
194
193
  this._isDraggingVertex = true;
195
- this._vertexEditingOverlay.activeVertexIndex = this._pendingVertexIndex;
194
+ this._vertexEditingOverlay.activeVertexIndex =
195
+ this._pendingVertexIndex;
196
196
  this.model.stash('xywh');
197
197
  this.model.stash('vertices');
198
198
  this.model.stash('controlPoints');
@@ -214,8 +214,10 @@ export class ShapeElementView extends GfxElementModelView {
214
214
  // Bezier handle drag
215
215
  if (this._pendingBezierHandle) {
216
216
  this._isDraggingBezierHandle = true;
217
- this._vertexEditingOverlay.activeBezierHandleIndex = this._pendingBezierHandle.vertexIndex;
218
- this._vertexEditingOverlay.activeBezierHandleType = this._pendingBezierHandle.handleIndex;
217
+ this._vertexEditingOverlay.activeBezierHandleIndex =
218
+ this._pendingBezierHandle.vertexIndex;
219
+ this._vertexEditingOverlay.activeBezierHandleType =
220
+ this._pendingBezierHandle.handleIndex;
219
221
  this.model.stash('xywh');
220
222
  this.model.stash('vertices');
221
223
  this.model.stash('controlPoints');
@@ -237,7 +239,9 @@ export class ShapeElementView extends GfxElementModelView {
237
239
  const dx = curMX - this._pointerStartModelCoord[0];
238
240
  const dy = curMY - this._pointerStartModelCoord[1];
239
241
  // Bezier handle drag
240
- if (this._isDraggingBezierHandle && this._pendingBezierHandle && this._bezierDragStartModelCoord) {
242
+ if (this._isDraggingBezierHandle &&
243
+ this._pendingBezierHandle &&
244
+ this._bezierDragStartModelCoord) {
241
245
  this._vertexEditingOverlay.moveBezierHandle(this._pendingBezierHandle.vertexIndex, this._pendingBezierHandle.handleIndex, this._bezierDragStartModelCoord[0] + dx, this._bezierDragStartModelCoord[1] + dy);
242
246
  this._syncConnectorPaths();
243
247
  this._surfaceComponent?.refresh();
@@ -283,7 +287,11 @@ export class ShapeElementView extends GfxElementModelView {
283
287
  this._surfaceComponent?.refresh();
284
288
  }
285
289
  });
286
- this._dragHandlerDisposers = [dragstartDisposer, dragmoveDisposer, dragendDisposer];
290
+ this._dragHandlerDisposers = [
291
+ dragstartDisposer,
292
+ dragmoveDisposer,
293
+ dragendDisposer,
294
+ ];
287
295
  }
288
296
  /**
289
297
  * Exit polygon vertex editing mode: clear overlay editing state,
@@ -346,15 +354,14 @@ export class ShapeElementView extends GfxElementModelView {
346
354
  // Record which vertex (if any) the pointer pressed on. The registered
347
355
  // dragstart handler (added in _enterVertexEditingMode) reads
348
356
  // _pendingVertexIndex to decide whether to enter vertex-drag mode.
349
- this.on('pointerdown', (e) => {
357
+ this.on('pointerdown', e => {
350
358
  if (!this._vertexEditingOverlay?.isEditing) {
351
359
  // Outside editing mode no vertex drag is possible.
352
360
  this._pendingVertexIndex = -1;
353
361
  return;
354
362
  }
355
363
  const [mx, my] = this.gfx.viewport.toModelCoord(e.x, e.y);
356
- this._pendingVertexIndex =
357
- this._vertexEditingOverlay.hitTestVertex(mx, my);
364
+ this._pendingVertexIndex = this._vertexEditingOverlay.hitTestVertex(mx, my);
358
365
  // If no vertex hit, check bezier handle hit
359
366
  if (this._pendingVertexIndex < 0) {
360
367
  this._pendingBezierHandle =
@@ -365,7 +372,7 @@ export class ShapeElementView extends GfxElementModelView {
365
372
  }
366
373
  });
367
374
  // Listen for pointer move to update hover state on the overlay
368
- this.on('pointermove', (e) => {
375
+ this.on('pointermove', e => {
369
376
  if (!this._vertexEditingOverlay)
370
377
  return;
371
378
  const [mx, my] = this.gfx.viewport.toModelCoord(e.x, e.y);
@@ -393,7 +400,7 @@ export class ShapeElementView extends GfxElementModelView {
393
400
  }
394
401
  });
395
402
  // Click on edge midpoint to insert a new vertex (in editing mode)
396
- this.on('click', (e) => {
403
+ this.on('click', e => {
397
404
  if (!this._vertexEditingOverlay)
398
405
  return;
399
406
  if (!this._vertexEditingOverlay.isEditing)
@@ -6,7 +6,7 @@ export * from './element-view.js';
6
6
  export * from './overlay/index.js';
7
7
  export * from './polygon-tool.js';
8
8
  export * from './shape-tool.js';
9
- export * from './shortcuts.js';
9
+ export * from './commands.js';
10
10
  export * from './text/index.js';
11
11
  export * from './text-fit.js';
12
12
  export * from './toolbar/index.js';