@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
@@ -2,11 +2,14 @@ import { ColorScheme } from '../../affine-model/index.js';
2
2
  import { FeatureFlagService } from '../../affine-shared/services/index.js';
3
3
  import { requestConnectedFrame } from '../../affine-shared/utils/index.js';
4
4
  import { DisposableGroup } from '../../global/disposable/index.js';
5
- import { getBoundWithRotation, intersects } from '../../global/gfx/index.js';
5
+ import { Bound, getBoundWithRotation, intersects, } from '../../global/gfx/index.js';
6
+ import { GfxControllerIdentifier } from '../../std/gfx/index.js';
7
+ import { effect } from '@preact/signals-core';
6
8
  import last from 'lodash-es/last.js';
7
9
  import { Subject } from 'rxjs';
8
10
  import { ElementRendererIdentifier } from '../extensions/element-renderer.js';
9
11
  import { RoughCanvas } from '../utils/rough/canvas.js';
12
+ const STACKING_CANVAS_PADDING = 32;
10
13
  export class CanvasRenderer {
11
14
  get stackingCanvas() {
12
15
  return this._stackingCanvas;
@@ -16,8 +19,40 @@ export class CanvasRenderer {
16
19
  this._overlays = new Set();
17
20
  this._refreshRafId = null;
18
21
  this._stackingCanvas = [];
22
+ this._stackingCanvasPool = [];
23
+ this._stackingCanvasState = new WeakMap();
24
+ this._dirtyStackingCanvasIndexes = new Set();
25
+ this._mainCanvasDirty = true;
26
+ this._needsFullRender = true;
27
+ this._debugMetrics = {
28
+ refreshCount: 0,
29
+ coalescedRefreshCount: 0,
30
+ renderCount: 0,
31
+ totalRenderDurationMs: 0,
32
+ lastRenderDurationMs: 0,
33
+ maxRenderDurationMs: 0,
34
+ lastRenderMetrics: {
35
+ renderByBoundCallCount: 0,
36
+ visibleElementCount: 0,
37
+ renderedElementCount: 0,
38
+ placeholderElementCount: 0,
39
+ overlayCount: 0,
40
+ },
41
+ dirtyLayerRenderCount: 0,
42
+ fallbackElementCount: 0,
43
+ };
19
44
  this.stackingCanvasUpdated = new Subject();
20
45
  this.usePlaceholder = false;
46
+ this._lastDebugSnapshot = {
47
+ canvasMemoryBytes: 0,
48
+ canvasMemorySnapshots: [],
49
+ canvasPixelCount: 0,
50
+ canvasLayerCount: 0,
51
+ pooledStackingCanvasCount: 0,
52
+ stackingCanvasCount: 0,
53
+ totalLayerCount: 0,
54
+ visibleStackingCanvasCount: 0,
55
+ };
21
56
  const canvas = document.createElement('canvas');
22
57
  this.canvas = canvas;
23
58
  this.ctx = this.canvas.getContext('2d');
@@ -26,6 +61,7 @@ export class CanvasRenderer {
26
61
  this.layerManager = options.layerManager;
27
62
  this.grid = options.gridManager;
28
63
  this.provider = options.provider ?? {};
64
+ this._gfx = this.std.get(GfxControllerIdentifier);
29
65
  this._turboEnabled = () => {
30
66
  const featureFlagService = options.std.get(FeatureFlagService);
31
67
  return featureFlagService.getFlag('enable_turbo_renderer');
@@ -45,7 +81,7 @@ export class CanvasRenderer {
45
81
  * It is not recommended to set width and height to 100%.
46
82
  */
47
83
  _canvasSizeUpdater(dpr = window.devicePixelRatio) {
48
- const { width, height } = this.viewport;
84
+ const { width, height, viewScale } = this.viewport;
49
85
  const actualWidth = Math.ceil(width * dpr);
50
86
  const actualHeight = Math.ceil(height * dpr);
51
87
  return {
@@ -55,18 +91,155 @@ export class CanvasRenderer {
55
91
  update(canvas) {
56
92
  canvas.style.width = `${width}px`;
57
93
  canvas.style.height = `${height}px`;
94
+ // The viewport size is read from `getBoundingClientRect()`, so it
95
+ // already carries the scale an outer container applies to the whole
96
+ // editor. Undo that scale here, otherwise the container would scale
97
+ // the canvas a second time and it would no longer fit its block.
98
+ canvas.style.transform = `scale(${1 / viewScale})`;
99
+ canvas.style.transformOrigin = `top left`;
58
100
  canvas.width = actualWidth;
59
101
  canvas.height = actualHeight;
60
102
  },
61
103
  };
62
104
  }
105
+ _applyStackingCanvasLayout(canvas, bound, dpr = window.devicePixelRatio) {
106
+ const state = this._stackingCanvasState.get(canvas) ??
107
+ {
108
+ bound: null,
109
+ layerId: canvas.dataset.layerId ?? null,
110
+ };
111
+ if (!bound || bound.w <= 0 || bound.h <= 0) {
112
+ canvas.style.display = 'none';
113
+ canvas.style.left = '0px';
114
+ canvas.style.top = '0px';
115
+ canvas.style.width = '0px';
116
+ canvas.style.height = '0px';
117
+ canvas.style.transform = '';
118
+ canvas.width = 0;
119
+ canvas.height = 0;
120
+ state.bound = null;
121
+ state.layerId = canvas.dataset.layerId ?? null;
122
+ this._stackingCanvasState.set(canvas, state);
123
+ return;
124
+ }
125
+ const { viewportBounds, zoom, viewScale } = this.viewport;
126
+ const width = bound.w * zoom;
127
+ const height = bound.h * zoom;
128
+ const left = (bound.x - viewportBounds.x) * zoom;
129
+ const top = (bound.y - viewportBounds.y) * zoom;
130
+ const actualWidth = Math.max(1, Math.ceil(width * dpr));
131
+ const actualHeight = Math.max(1, Math.ceil(height * dpr));
132
+ const transform = `translate(${left}px, ${top}px) scale(${1 / viewScale})`;
133
+ if (canvas.style.display !== 'block') {
134
+ canvas.style.display = 'block';
135
+ }
136
+ if (canvas.style.left !== '0px') {
137
+ canvas.style.left = '0px';
138
+ }
139
+ if (canvas.style.top !== '0px') {
140
+ canvas.style.top = '0px';
141
+ }
142
+ if (canvas.style.width !== `${width}px`) {
143
+ canvas.style.width = `${width}px`;
144
+ }
145
+ if (canvas.style.height !== `${height}px`) {
146
+ canvas.style.height = `${height}px`;
147
+ }
148
+ if (canvas.style.transform !== transform) {
149
+ canvas.style.transform = transform;
150
+ }
151
+ if (canvas.style.transformOrigin !== 'top left') {
152
+ canvas.style.transformOrigin = 'top left';
153
+ }
154
+ if (canvas.width !== actualWidth) {
155
+ canvas.width = actualWidth;
156
+ }
157
+ if (canvas.height !== actualHeight) {
158
+ canvas.height = actualHeight;
159
+ }
160
+ state.bound = bound;
161
+ state.layerId = canvas.dataset.layerId ?? null;
162
+ this._stackingCanvasState.set(canvas, state);
163
+ }
164
+ _clampBoundToViewport(bound, viewportBounds) {
165
+ const minX = Math.max(bound.x, viewportBounds.x);
166
+ const minY = Math.max(bound.y, viewportBounds.y);
167
+ const maxX = Math.min(bound.maxX, viewportBounds.maxX);
168
+ const maxY = Math.min(bound.maxY, viewportBounds.maxY);
169
+ if (maxX <= minX || maxY <= minY) {
170
+ return null;
171
+ }
172
+ return new Bound(minX, minY, maxX - minX, maxY - minY);
173
+ }
174
+ _createCanvasForLayer(onCreated) {
175
+ const reused = this._stackingCanvasPool.pop();
176
+ if (reused) {
177
+ return reused;
178
+ }
179
+ const created = document.createElement('canvas');
180
+ onCreated?.(created);
181
+ return created;
182
+ }
183
+ _findLayerIndexByElement(element) {
184
+ const canvasLayers = this.layerManager.getCanvasLayers();
185
+ const index = canvasLayers.findIndex(layer => layer.elements.some(layerElement => layerElement.id === element.id));
186
+ return index === -1 ? null : index;
187
+ }
188
+ _getLayerRenderBound(elements, viewportBounds) {
189
+ let layerBound = null;
190
+ for (const element of elements) {
191
+ const display = (element.display ?? true) && !element.hidden;
192
+ if (!display) {
193
+ continue;
194
+ }
195
+ const elementBound = Bound.from(getBoundWithRotation(element));
196
+ if (!intersects(elementBound, viewportBounds)) {
197
+ continue;
198
+ }
199
+ layerBound = layerBound ? layerBound.unite(elementBound) : elementBound;
200
+ }
201
+ if (!layerBound) {
202
+ return null;
203
+ }
204
+ return this._clampBoundToViewport(layerBound.expand(STACKING_CANVAS_PADDING), viewportBounds);
205
+ }
206
+ _getResolvedStackingCanvasBound(canvas, bound) {
207
+ if (!bound || !this._gfx.tool.dragging$.peek()) {
208
+ return bound;
209
+ }
210
+ const previousBound = this._stackingCanvasState.get(canvas)?.bound;
211
+ return previousBound ? previousBound.unite(bound) : bound;
212
+ }
213
+ _invalidate(target = { type: 'all' }) {
214
+ if (target.type === 'all') {
215
+ this._needsFullRender = true;
216
+ this._mainCanvasDirty = true;
217
+ this._dirtyStackingCanvasIndexes.clear();
218
+ return;
219
+ }
220
+ if (this._needsFullRender) {
221
+ return;
222
+ }
223
+ if (target.type === 'main') {
224
+ this._mainCanvasDirty = true;
225
+ return;
226
+ }
227
+ const elements = target.type === 'element' ? [target.element] : target.elements;
228
+ for (const element of elements) {
229
+ const layerIndex = this._findLayerIndexByElement(element);
230
+ if (layerIndex === null || layerIndex >= this._stackingCanvas.length) {
231
+ this._mainCanvasDirty = true;
232
+ continue;
233
+ }
234
+ this._dirtyStackingCanvasIndexes.add(layerIndex);
235
+ }
236
+ }
237
+ _resetPooledCanvas(canvas) {
238
+ canvas.dataset.layerId = '';
239
+ this._applyStackingCanvasLayout(canvas, null);
240
+ }
63
241
  _initStackingCanvas(onCreated) {
64
242
  const layer = this.layerManager;
65
- const updateStackingCanvasSize = (canvases) => {
66
- this._stackingCanvas = canvases;
67
- const sizeUpdater = this._canvasSizeUpdater();
68
- canvases.filter(sizeUpdater.filter).forEach(sizeUpdater.update);
69
- };
70
243
  const updateStackingCanvas = () => {
71
244
  /**
72
245
  * we already have a main canvas, so the last layer should be skipped
@@ -84,16 +257,12 @@ export class CanvasRenderer {
84
257
  const created = i < currentCanvases.length;
85
258
  const canvas = created
86
259
  ? currentCanvases[i]
87
- : document.createElement('canvas');
88
- if (!created) {
89
- onCreated?.(canvas);
90
- }
260
+ : this._createCanvasForLayer(onCreated);
91
261
  canvas.dataset.layerId = `[${layer.indexes[0]}--${layer.indexes[1]}]`;
92
262
  canvas.style.zIndex = layer.zIndex.toString();
93
263
  canvases.push(canvas);
94
264
  }
95
265
  this._stackingCanvas = canvases;
96
- updateStackingCanvasSize(canvases);
97
266
  if (currentCanvases.length !== canvases.length) {
98
267
  const diff = canvases.length - currentCanvases.length;
99
268
  const payload = {
@@ -106,10 +275,14 @@ export class CanvasRenderer {
106
275
  }
107
276
  else {
108
277
  payload.removed = currentCanvases.slice(diff);
278
+ payload.removed.forEach(canvas => {
279
+ this._resetPooledCanvas(canvas);
280
+ this._stackingCanvasPool.push(canvas);
281
+ });
109
282
  }
110
283
  this.stackingCanvasUpdated.next(payload);
111
284
  }
112
- this.refresh();
285
+ this.refresh({ type: 'all' });
113
286
  };
114
287
  this._disposables.add(this.layerManager.slots.layerUpdated.subscribe(() => {
115
288
  updateStackingCanvas();
@@ -119,7 +292,7 @@ export class CanvasRenderer {
119
292
  _initViewport() {
120
293
  let sizeUpdatedRafId = null;
121
294
  this._disposables.add(this.viewport.viewportUpdated.subscribe(() => {
122
- this.refresh();
295
+ this.refresh({ type: 'all' });
123
296
  }));
124
297
  this._disposables.add(this.viewport.sizeUpdated.subscribe(() => {
125
298
  if (sizeUpdatedRafId)
@@ -128,51 +301,127 @@ export class CanvasRenderer {
128
301
  sizeUpdatedRafId = null;
129
302
  this._resetSize();
130
303
  this._render();
131
- this.refresh();
132
304
  }, this._container);
133
305
  }));
134
306
  this._disposables.add(this.viewport.zooming$.subscribe(isZooming => {
135
307
  const shouldRenderPlaceholders = this._turboEnabled() && isZooming;
136
308
  if (this.usePlaceholder !== shouldRenderPlaceholders) {
137
309
  this.usePlaceholder = shouldRenderPlaceholders;
138
- this.refresh();
310
+ this.refresh({ type: 'all' });
311
+ }
312
+ }));
313
+ let wasDragging = false;
314
+ this._disposables.add(effect(() => {
315
+ const isDragging = this._gfx.tool.dragging$.value;
316
+ if (wasDragging && !isDragging) {
317
+ this.refresh({ type: 'all' });
139
318
  }
319
+ wasDragging = isDragging;
140
320
  }));
141
321
  this.usePlaceholder = false;
142
322
  }
323
+ _createRenderPassStats() {
324
+ return {
325
+ renderByBoundCallCount: 0,
326
+ visibleElementCount: 0,
327
+ renderedElementCount: 0,
328
+ placeholderElementCount: 0,
329
+ overlayCount: 0,
330
+ };
331
+ }
332
+ _getCanvasMemorySnapshots() {
333
+ return [this.canvas, ...this._stackingCanvas].map((canvas, index) => {
334
+ return {
335
+ kind: index === 0 ? 'main' : 'stacking',
336
+ width: canvas.width,
337
+ height: canvas.height,
338
+ bytes: canvas.width * canvas.height * 4,
339
+ zIndex: canvas.style.zIndex,
340
+ datasetLayerId: canvas.dataset.layerId ?? null,
341
+ };
342
+ });
343
+ }
143
344
  _render() {
345
+ const renderStart = performance.now();
144
346
  const { viewportBounds, zoom } = this.viewport;
145
347
  const { ctx } = this;
146
348
  const dpr = window.devicePixelRatio;
147
349
  const scale = zoom * dpr;
148
350
  const matrix = new DOMMatrix().scaleSelf(scale);
351
+ const renderStats = this._createRenderPassStats();
352
+ const fullRender = this._needsFullRender;
353
+ const stackingIndexesToRender = fullRender
354
+ ? this._stackingCanvas.map((_, idx) => idx)
355
+ : [...this._dirtyStackingCanvasIndexes];
149
356
  /**
150
357
  * if a layer does not have a corresponding canvas
151
358
  * its element will be add to this array and drawing on the
152
359
  * main canvas
153
360
  */
154
361
  let fallbackElement = [];
155
- this.layerManager.getCanvasLayers().forEach((layer, idx) => {
156
- if (!this._stackingCanvas[idx]) {
157
- fallbackElement = fallbackElement.concat(layer.elements);
158
- return;
159
- }
362
+ const allCanvasLayers = this.layerManager.getCanvasLayers();
363
+ const viewportBound = Bound.from(viewportBounds);
364
+ for (const idx of stackingIndexesToRender) {
365
+ const layer = allCanvasLayers[idx];
160
366
  const canvas = this._stackingCanvas[idx];
161
- const ctx = canvas.getContext('2d');
162
- const rc = new RoughCanvas(ctx.canvas);
163
- ctx.clearRect(0, 0, canvas.width, canvas.height);
367
+ if (!layer || !canvas) {
368
+ continue;
369
+ }
370
+ const layerRenderBound = this._getLayerRenderBound(layer.elements, viewportBound);
371
+ const resolvedLayerRenderBound = this._getResolvedStackingCanvasBound(canvas, layerRenderBound);
372
+ this._applyStackingCanvasLayout(canvas, resolvedLayerRenderBound);
373
+ if (!resolvedLayerRenderBound ||
374
+ canvas.width === 0 ||
375
+ canvas.height === 0) {
376
+ continue;
377
+ }
378
+ const layerCtx = canvas.getContext('2d');
379
+ const layerRc = new RoughCanvas(layerCtx.canvas);
380
+ layerCtx.clearRect(0, 0, canvas.width, canvas.height);
381
+ layerCtx.save();
382
+ layerCtx.setTransform(matrix);
383
+ this._renderByBound(layerCtx, matrix, layerRc, resolvedLayerRenderBound, layer.elements, false, renderStats);
384
+ }
385
+ if (fullRender || this._mainCanvasDirty) {
386
+ allCanvasLayers.forEach((layer, idx) => {
387
+ if (!this._stackingCanvas[idx]) {
388
+ fallbackElement = fallbackElement.concat(layer.elements);
389
+ }
390
+ });
391
+ ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
164
392
  ctx.save();
165
393
  ctx.setTransform(matrix);
166
- this._renderByBound(ctx, matrix, rc, viewportBounds, layer.elements);
167
- });
168
- ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
169
- ctx.save();
170
- ctx.setTransform(matrix);
171
- this._renderByBound(ctx, matrix, new RoughCanvas(ctx.canvas), viewportBounds, fallbackElement, true);
394
+ this._renderByBound(ctx, matrix, new RoughCanvas(ctx.canvas), viewportBounds, fallbackElement, true, renderStats);
395
+ }
396
+ const canvasMemorySnapshots = this._getCanvasMemorySnapshots();
397
+ const canvasMemoryBytes = canvasMemorySnapshots.reduce((sum, snapshot) => sum + snapshot.bytes, 0);
398
+ const layerTypes = this.layerManager.layers.map(layer => layer.type);
399
+ const renderDurationMs = performance.now() - renderStart;
400
+ this._debugMetrics.renderCount += 1;
401
+ this._debugMetrics.totalRenderDurationMs += renderDurationMs;
402
+ this._debugMetrics.lastRenderDurationMs = renderDurationMs;
403
+ this._debugMetrics.maxRenderDurationMs = Math.max(this._debugMetrics.maxRenderDurationMs, renderDurationMs);
404
+ this._debugMetrics.lastRenderMetrics = renderStats;
405
+ this._debugMetrics.fallbackElementCount = fallbackElement.length;
406
+ this._debugMetrics.dirtyLayerRenderCount = stackingIndexesToRender.length;
407
+ this._lastDebugSnapshot = {
408
+ canvasMemorySnapshots,
409
+ canvasMemoryBytes,
410
+ canvasPixelCount: canvasMemorySnapshots.reduce((sum, snapshot) => sum + snapshot.width * snapshot.height, 0),
411
+ stackingCanvasCount: this._stackingCanvas.length,
412
+ canvasLayerCount: layerTypes.filter(type => type === 'canvas').length,
413
+ totalLayerCount: layerTypes.length,
414
+ pooledStackingCanvasCount: this._stackingCanvasPool.length,
415
+ visibleStackingCanvasCount: this._stackingCanvas.filter(canvas => canvas.width > 0 && canvas.height > 0).length,
416
+ };
417
+ this._needsFullRender = false;
418
+ this._mainCanvasDirty = false;
419
+ this._dirtyStackingCanvasIndexes.clear();
172
420
  }
173
- _renderByBound(ctx, matrix, rc, bound, surfaceElements, overLay = false) {
421
+ _renderByBound(ctx, matrix, rc, bound, surfaceElements, overLay = false, renderStats) {
174
422
  if (!ctx)
175
423
  return;
424
+ renderStats && (renderStats.renderByBoundCallCount += 1);
176
425
  const elements = surfaceElements ??
177
426
  this.grid.search(bound, {
178
427
  filter: ['canvas', 'local'],
@@ -180,8 +429,10 @@ export class CanvasRenderer {
180
429
  for (const element of elements) {
181
430
  const display = (element.display ?? true) && !element.hidden;
182
431
  if (display && intersects(getBoundWithRotation(element), bound)) {
432
+ renderStats && (renderStats.visibleElementCount += 1);
183
433
  if (this.usePlaceholder &&
184
434
  !element.forceFullRender) {
435
+ renderStats && (renderStats.placeholderElementCount += 1);
185
436
  ctx.save();
186
437
  ctx.fillStyle = 'rgba(200, 200, 200, 0.5)';
187
438
  const drawX = element.x - bound.x;
@@ -190,6 +441,7 @@ export class CanvasRenderer {
190
441
  ctx.restore();
191
442
  }
192
443
  else {
444
+ renderStats && (renderStats.renderedElementCount += 1);
193
445
  ctx.save();
194
446
  const renderFn = this.std.getOptional(ElementRendererIdentifier(element.type));
195
447
  if (!renderFn)
@@ -203,6 +455,7 @@ export class CanvasRenderer {
203
455
  }
204
456
  }
205
457
  if (overLay) {
458
+ renderStats && (renderStats.overlayCount += this._overlays.size);
206
459
  for (const overlay of this._overlays) {
207
460
  ctx.save();
208
461
  ctx.translate(-bound.x, -bound.y);
@@ -215,26 +468,28 @@ export class CanvasRenderer {
215
468
  _resetSize() {
216
469
  const sizeUpdater = this._canvasSizeUpdater();
217
470
  sizeUpdater.update(this.canvas);
218
- this._stackingCanvas.forEach(sizeUpdater.update);
219
- this.refresh();
471
+ this._invalidate({ type: 'all' });
220
472
  }
221
473
  _watchSurface(surfaceModel) {
222
- this._disposables.add(surfaceModel.elementAdded.subscribe(() => this.refresh()));
223
- this._disposables.add(surfaceModel.elementRemoved.subscribe(() => this.refresh()));
224
- this._disposables.add(surfaceModel.localElementAdded.subscribe(() => this.refresh()));
225
- this._disposables.add(surfaceModel.localElementDeleted.subscribe(() => this.refresh()));
226
- this._disposables.add(surfaceModel.localElementUpdated.subscribe(() => this.refresh()));
474
+ this._disposables.add(surfaceModel.elementAdded.subscribe(() => this.refresh({ type: 'all' })));
475
+ this._disposables.add(surfaceModel.elementRemoved.subscribe(() => this.refresh({ type: 'all' })));
476
+ this._disposables.add(surfaceModel.localElementAdded.subscribe(() => this.refresh({ type: 'all' })));
477
+ this._disposables.add(surfaceModel.localElementDeleted.subscribe(() => this.refresh({ type: 'all' })));
478
+ this._disposables.add(surfaceModel.localElementUpdated.subscribe(({ model }) => {
479
+ this.refresh({ type: 'element', element: model });
480
+ }));
227
481
  this._disposables.add(surfaceModel.elementUpdated.subscribe(payload => {
228
482
  // ignore externalXYWH update cause it's updated by the renderer
229
483
  if (payload.props['externalXYWH'])
230
484
  return;
231
- this.refresh();
485
+ const element = surfaceModel.getElementById(payload.id);
486
+ this.refresh(element ? { type: 'element', element } : { type: 'all' });
232
487
  }));
233
488
  }
234
489
  addOverlay(overlay) {
235
490
  overlay.setRenderer(this);
236
491
  this._overlays.add(overlay);
237
- this.refresh();
492
+ this.refresh({ type: 'main' });
238
493
  }
239
494
  /**
240
495
  * Used to attach main canvas, main canvas will always exist
@@ -244,7 +499,7 @@ export class CanvasRenderer {
244
499
  this._container = container;
245
500
  container.append(this.canvas);
246
501
  this._resetSize();
247
- this.refresh();
502
+ this.refresh({ type: 'all' });
248
503
  }
249
504
  dispose() {
250
505
  this._overlays.forEach(overlay => overlay.dispose());
@@ -281,9 +536,43 @@ export class CanvasRenderer {
281
536
  getPropertyValue(property) {
282
537
  return this.provider.getPropertyValue?.(property) ?? '';
283
538
  }
284
- refresh() {
285
- if (this._refreshRafId !== null)
539
+ getDebugMetrics() {
540
+ return {
541
+ ...this._debugMetrics,
542
+ ...this._lastDebugSnapshot,
543
+ canvasMemoryMegabytes: this._lastDebugSnapshot.canvasMemoryBytes / 1024 / 1024,
544
+ };
545
+ }
546
+ resetDebugMetrics() {
547
+ this._debugMetrics = {
548
+ refreshCount: 0,
549
+ coalescedRefreshCount: 0,
550
+ renderCount: 0,
551
+ totalRenderDurationMs: 0,
552
+ lastRenderDurationMs: 0,
553
+ maxRenderDurationMs: 0,
554
+ lastRenderMetrics: this._createRenderPassStats(),
555
+ dirtyLayerRenderCount: 0,
556
+ fallbackElementCount: 0,
557
+ };
558
+ this._lastDebugSnapshot = {
559
+ canvasMemoryBytes: 0,
560
+ canvasMemorySnapshots: [],
561
+ canvasPixelCount: 0,
562
+ canvasLayerCount: 0,
563
+ pooledStackingCanvasCount: 0,
564
+ stackingCanvasCount: 0,
565
+ totalLayerCount: 0,
566
+ visibleStackingCanvasCount: 0,
567
+ };
568
+ }
569
+ refresh(target = { type: 'all' }) {
570
+ this._debugMetrics.refreshCount += 1;
571
+ this._invalidate(target);
572
+ if (this._refreshRafId !== null) {
573
+ this._debugMetrics.coalescedRefreshCount += 1;
286
574
  return;
575
+ }
287
576
  this._refreshRafId = requestConnectedFrame(() => {
288
577
  this._refreshRafId = null;
289
578
  this._render();
@@ -295,6 +584,6 @@ export class CanvasRenderer {
295
584
  }
296
585
  overlay.setRenderer(null);
297
586
  this._overlays.delete(overlay);
298
- this.refresh();
587
+ this.refresh({ type: 'main' });
299
588
  }
300
589
  }
@@ -242,7 +242,10 @@ export class DomRenderer {
242
242
  addedElements.push(domElement);
243
243
  }
244
244
  const geometricStyles = calculatePlaceholderRect(elementModel, viewportBounds, zoom);
245
- Object.assign(domElement.style, geometricStyles);
245
+ const zIndexStyle = {
246
+ 'z-index': this.layerManager.getZIndex(elementModel),
247
+ };
248
+ Object.assign(domElement.style, geometricStyles, zIndexStyle);
246
249
  Object.assign(domElement.style, PLACEHOLDER_RESET_STYLES);
247
250
  // Clear classes specific to shapes, if applicable
248
251
  if (elementModel.type === 'shape') {
@@ -264,7 +267,10 @@ export class DomRenderer {
264
267
  }
265
268
  const geometricStyles = calculateFullElementRect(elementModel, viewportBounds, zoom);
266
269
  const opacityStyle = getOpacity(elementModel);
267
- Object.assign(domElement.style, geometricStyles, opacityStyle);
270
+ const zIndexStyle = {
271
+ 'z-index': this.layerManager.getZIndex(elementModel),
272
+ };
273
+ Object.assign(domElement.style, geometricStyles, opacityStyle, zIndexStyle);
268
274
  this._renderElement(elementModel, domElement);
269
275
  }
270
276
  _render() {
@@ -273,22 +279,29 @@ export class DomRenderer {
273
279
  _watchSurface(surfaceModel) {
274
280
  this._disposables.add(surfaceModel.elementAdded.subscribe(payload => {
275
281
  this._markElementDirty(payload.id, UpdateType.ELEMENT_ADDED);
282
+ this._markViewportDirty();
276
283
  this.refresh();
277
284
  }));
278
285
  this._disposables.add(surfaceModel.elementRemoved.subscribe(payload => {
279
286
  this._markElementDirty(payload.id, UpdateType.ELEMENT_REMOVED);
287
+ this._markViewportDirty();
280
288
  this.refresh();
281
289
  }));
282
290
  this._disposables.add(surfaceModel.localElementAdded.subscribe(payload => {
283
291
  this._markElementDirty(payload.id, UpdateType.ELEMENT_ADDED);
292
+ this._markViewportDirty();
284
293
  this.refresh();
285
294
  }));
286
295
  this._disposables.add(surfaceModel.localElementDeleted.subscribe(payload => {
287
296
  this._markElementDirty(payload.id, UpdateType.ELEMENT_REMOVED);
297
+ this._markViewportDirty();
288
298
  this.refresh();
289
299
  }));
290
300
  this._disposables.add(surfaceModel.localElementUpdated.subscribe(payload => {
291
301
  this._markElementDirty(payload.model.id, UpdateType.ELEMENT_UPDATED);
302
+ if (payload.props['index'] || payload.props['groupId']) {
303
+ this._markViewportDirty();
304
+ }
292
305
  this.refresh();
293
306
  }));
294
307
  this._disposables.add(surfaceModel.elementUpdated.subscribe(payload => {
@@ -296,6 +309,9 @@ export class DomRenderer {
296
309
  if (payload.props['externalXYWH'])
297
310
  return;
298
311
  this._markElementDirty(payload.id, UpdateType.ELEMENT_UPDATED);
312
+ if (payload.props['index'] || payload.props['childIds']) {
313
+ this._markViewportDirty();
314
+ }
299
315
  this.refresh();
300
316
  }));
301
317
  }
@@ -1,6 +1,6 @@
1
1
  import { createIdentifier } from '../../global/di/index.js';
2
2
  import { BlockSuiteError, ErrorCode } from '../../global/exceptions/index.js';
3
- import { GfxControllerIdentifier, } from '../../std/gfx/index.js';
3
+ import { GfxControllerIdentifier } from '../../std/gfx/index.js';
4
4
  import { Extension } from '../../store/index.js';
5
5
  /**
6
6
  * An overlay is a layer covered on top of elements,
@@ -244,6 +244,14 @@ export class DefaultTool extends BaseTool {
244
244
  if (this.selection.editing || preventDefaultState || handledByView)
245
245
  return;
246
246
  this.movementDragging = true;
247
+ // NOTE: no readonly branch here on purpose. The refusal lives one level
248
+ // down, in `InteractivityManager.handleElementMove` / `handleElementResize`
249
+ // / `handleElementRotate` / `requestElementClone` — the layer that actually
250
+ // writes `xywh` through `@field()` accessors, i.e. raw `store.transact`
251
+ // outside `EdgelessCRUDExtension`. Short-circuiting the drag HERE was both
252
+ // redundant (the net alone stops the write) and harmful: it left the tool
253
+ // holding a half-initialized selecting state, so once readonly was lifted
254
+ // the board no longer selected or moved anything.
247
255
  // Determine the drag type based on the current state and event
248
256
  let dragType = this._determineDragType(e);
249
257
  const elements = this.selection.selectedElements;
@@ -17,9 +17,15 @@ export const getFontFaces = IS_FIREFOX
17
17
  return fonts;
18
18
  }
19
19
  : () => [...document.fonts.keys()];
20
- export const isSameFontFamily = IS_FIREFOX
21
- ? (fontFamily) => (fontFace) => fontFace.family === `"${fontFamily}"`
22
- : (fontFamily) => (fontFace) => fontFace.family === fontFamily;
20
+ /**
21
+ * Surface fonts are registered with quoted family names (see `wrapFontFamily`),
22
+ * while models store them unquoted (`blocksuite:surface:Inter`). Browsers do not
23
+ * agree on whether `FontFace.family` echoes those quotes back, so compare
24
+ * unquoted on both sides instead of branching on the engine — a mismatch makes
25
+ * `getFontFacesByFontFamily` return nothing and renders an empty font style menu.
26
+ */
27
+ const unquoteFontFamily = (fontFamily) => fontFamily.replace(/^\s*["']|["']\s*$/g, '');
28
+ export const isSameFontFamily = (fontFamily) => (fontFace) => unquoteFontFamily(fontFace.family) === unquoteFontFamily(fontFamily);
23
29
  export function getFontFacesByFontFamily(fontFamily) {
24
30
  return (getFontFaces()
25
31
  .filter(isSameFontFamily(fontFamily))
@@ -4,3 +4,20 @@ export declare class SurfaceViewExtension extends ViewExtensionProvider {
4
4
  effect(): void;
5
5
  setup(context: ViewExtensionContext): void;
6
6
  }
7
+ /**
8
+ * The AI audit seam — gated by the `ai-audit` capability switch (PF14.1).
9
+ *
10
+ * Its own extension, registered from `getInternalViewExtensions` only when the
11
+ * switch is on, because that is what makes the gate REAL: off, `map.audit` is
12
+ * never registered, so it is absent from the command registry, from both
13
+ * manifests and from the keymap at once — the same two-sided gating a framework
14
+ * flag gets, asserted by the same test.
15
+ *
16
+ * Nothing here is registered by {@link SurfaceViewExtension}: the audit is not
17
+ * part of a surface's job, and folding it in would make the switch a filter
18
+ * over something already wired instead of a decision not to wire it.
19
+ */
20
+ export declare class AuditViewExtension extends ViewExtensionProvider {
21
+ name: string;
22
+ setup(context: ViewExtensionContext): void;
23
+ }