@formicoidea/labre-core 0.31.0 → 0.32.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 (483) hide show
  1. package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
  2. package/dist/_pkgs/affine-block-callout/callout-block.js +25 -3
  3. package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
  4. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
  5. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
  6. package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
  7. package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
  8. package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
  9. package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
  10. package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
  11. package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
  12. package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
  13. package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
  14. package/dist/_pkgs/affine-block-code/code-block.js +44 -6
  15. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
  16. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
  17. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
  18. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
  19. package/dist/_pkgs/affine-block-code/code-toolbar/config.js +52 -5
  20. package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
  21. package/dist/_pkgs/affine-block-code/effects.js +2 -0
  22. package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
  23. package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
  24. package/dist/_pkgs/affine-block-code/index.js +1 -0
  25. package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
  26. package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
  27. package/dist/_pkgs/affine-block-code/styles.js +31 -0
  28. package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
  29. package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
  30. package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
  31. package/dist/_pkgs/affine-block-database/database-block.js +13 -0
  32. package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
  33. package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
  34. package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
  35. package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
  36. package/dist/_pkgs/affine-block-database/views/index.js +1 -0
  37. package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +10 -0
  38. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
  39. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
  40. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
  41. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
  42. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
  43. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
  44. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
  45. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
  46. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +22 -3
  47. package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
  48. package/dist/_pkgs/affine-block-frame/frame-manager.js +32 -2
  49. package/dist/_pkgs/affine-block-latex/styles.js +6 -1
  50. package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
  51. package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
  52. package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
  53. package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
  54. package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
  55. package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
  56. package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
  57. package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
  58. package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
  59. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +9 -2
  60. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
  61. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +26 -1
  62. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
  63. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
  64. package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
  65. package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
  66. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
  67. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
  68. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
  69. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
  70. package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
  71. package/dist/_pkgs/affine-block-root/index.js +4 -1
  72. package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
  73. package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
  74. package/dist/_pkgs/affine-block-root/view.js +13 -4
  75. package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
  76. package/dist/_pkgs/affine-block-surface/effects.js +6 -0
  77. package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +5 -2
  78. package/dist/_pkgs/affine-block-surface/element-model/index.js +4 -2
  79. package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
  80. package/dist/_pkgs/affine-block-surface/extensions/audit.js +472 -0
  81. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
  82. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +27 -0
  83. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
  84. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +326 -0
  85. package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +13 -0
  86. package/dist/_pkgs/affine-block-surface/extensions/index.js +13 -0
  87. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
  88. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
  89. package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
  90. package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
  91. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
  92. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
  93. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
  94. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +590 -0
  95. package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
  96. package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
  97. package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
  98. package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
  99. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
  100. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
  101. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
  102. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
  103. package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +1340 -0
  104. package/dist/_pkgs/affine-block-surface/extensions/validation.js +3009 -0
  105. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +286 -0
  106. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +907 -0
  107. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
  108. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
  109. package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +321 -0
  110. package/dist/_pkgs/affine-block-surface/framework-background/def.js +81 -0
  111. package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
  112. package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
  113. package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
  114. package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
  115. package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
  116. package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
  117. package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +59 -0
  118. package/dist/_pkgs/affine-block-surface/framework-background/labels.js +117 -0
  119. package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
  120. package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +238 -0
  121. package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
  122. package/dist/_pkgs/affine-block-surface/index.js +1 -0
  123. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
  124. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
  125. package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
  126. package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
  127. package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
  128. package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
  129. package/dist/_pkgs/affine-block-surface/view.js +57 -2
  130. package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
  131. package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
  132. package/dist/_pkgs/affine-block-table/table-block.js +8 -2
  133. package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
  134. package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
  135. package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
  136. package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
  137. package/dist/_pkgs/affine-block-table/utils.js +12 -0
  138. package/dist/_pkgs/affine-block-table/view.js +2 -0
  139. package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
  140. package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
  141. package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
  142. package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
  143. package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
  144. package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
  145. package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
  146. package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
  147. package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
  148. package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
  149. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
  150. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
  151. package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
  152. package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
  153. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
  154. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
  155. package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
  156. package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
  157. package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
  158. package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
  159. package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
  160. package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
  161. package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
  162. package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
  163. package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
  164. package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
  165. package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
  166. package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
  167. package/dist/_pkgs/affine-components/icons/text.js +426 -426
  168. package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
  169. package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
  170. package/dist/_pkgs/affine-components/toolbar/menu-button.js +1 -0
  171. package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
  172. package/dist/_pkgs/affine-foundation/view.js +11 -2
  173. package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
  174. package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
  175. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
  176. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
  177. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
  178. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
  179. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
  180. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
  181. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
  182. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
  183. package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
  184. package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
  185. package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
  186. package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
  187. package/dist/_pkgs/affine-gfx-connector/connector-manager.js +32 -6
  188. package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +7 -0
  189. package/dist/_pkgs/affine-gfx-connector/connector-tool.js +2 -1
  190. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
  191. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +281 -0
  192. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
  193. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
  194. package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
  195. package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
  196. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
  197. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +187 -0
  198. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
  199. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
  200. package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
  201. package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
  202. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
  203. package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
  204. package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
  205. package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
  206. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +67 -1
  207. package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
  208. package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
  209. package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
  210. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
  211. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
  212. package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
  213. package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
  214. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
  215. package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
  216. package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
  217. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
  218. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -13
  219. package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
  220. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
  221. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
  222. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
  223. package/dist/_pkgs/affine-inline-latex/command.js +46 -26
  224. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
  225. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
  226. package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
  227. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
  228. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
  229. package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
  230. package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
  231. package/dist/_pkgs/affine-model/elements/connector/connector.js +24 -0
  232. package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
  233. package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
  234. package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
  235. package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
  236. package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
  237. package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
  238. package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
  239. package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
  240. package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
  241. package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
  242. package/dist/_pkgs/affine-model/elements/index.d.ts +3 -1
  243. package/dist/_pkgs/affine-model/elements/index.js +1 -0
  244. package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
  245. package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
  246. package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
  247. package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
  248. package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
  249. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
  250. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +160 -2
  251. package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
  252. package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
  253. package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
  254. package/dist/_pkgs/affine-shared/adapters/utils/color.js +280 -0
  255. package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
  256. package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
  257. package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
  258. package/dist/_pkgs/affine-shared/services/audit-service.d.ts +300 -0
  259. package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
  260. package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
  261. package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
  262. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
  263. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
  264. package/dist/_pkgs/affine-shared/services/index.d.ts +5 -0
  265. package/dist/_pkgs/affine-shared/services/index.js +5 -0
  266. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
  267. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +311 -0
  268. package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
  269. package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
  270. package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
  271. package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +182 -0
  272. package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
  273. package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
  274. package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
  275. package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
  276. package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
  277. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
  278. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
  279. package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
  280. package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
  281. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
  282. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +254 -0
  283. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
  284. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
  285. package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
  286. package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
  287. package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
  288. package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
  289. package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
  290. package/dist/_pkgs/affine-shared/utils/zod-schema.js +27 -1
  291. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
  292. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
  293. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
  294. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
  295. package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
  296. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
  297. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
  298. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
  299. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
  300. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
  301. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
  302. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +1 -0
  303. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +1 -0
  304. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +38 -0
  305. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +99 -0
  306. package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
  307. package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
  308. package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
  309. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
  310. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
  311. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
  312. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
  313. package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
  314. package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
  315. package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
  316. package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
  317. package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
  318. package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
  319. package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
  320. package/dist/_pkgs/affine-widget-toolbar/toolbar.js +34 -6
  321. package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
  322. package/dist/_pkgs/affine-widget-toolbar/utils.js +738 -56
  323. package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
  324. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
  325. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
  326. package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
  327. package/dist/_pkgs/data-view/core/data-view.js +25 -3
  328. package/dist/_pkgs/data-view/core/detail/field.js +2 -2
  329. package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
  330. package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
  331. package/dist/_pkgs/data-view/core/effect.js +2 -0
  332. package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
  333. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
  334. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
  335. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
  336. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
  337. package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
  338. package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
  339. package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
  340. package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
  341. package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
  342. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
  343. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
  344. package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
  345. package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
  346. package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
  347. package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
  348. package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
  349. package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
  350. package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
  351. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
  352. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
  353. package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
  354. package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
  355. package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
  356. package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
  357. package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
  358. package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
  359. package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
  360. package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
  361. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
  362. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +68 -0
  363. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
  364. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
  365. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
  366. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
  367. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
  368. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
  369. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
  370. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
  371. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
  372. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +837 -0
  373. package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
  374. package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
  375. package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
  376. package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
  377. package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
  378. package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
  379. package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
  380. package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
  381. package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
  382. package/dist/_pkgs/data-view/view-presets/index.js +3 -0
  383. package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
  384. package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
  385. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
  386. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
  387. package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
  388. package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
  389. package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +87 -4
  390. package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
  391. package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
  392. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
  393. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
  394. package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
  395. package/dist/_pkgs/data-view/view-presets/table/pc/group.js +84 -5
  396. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
  397. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
  398. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
  399. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
  400. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
  401. package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
  402. package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
  403. package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
  404. package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
  405. package/dist/_pkgs/global/gfx/curve.js +4 -3
  406. package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
  407. package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
  408. package/dist/_pkgs/std/clipboard/utils.js +7 -0
  409. package/dist/_pkgs/std/event/dispatcher.js +27 -1
  410. package/dist/_pkgs/std/event/keymap.js +16 -6
  411. package/dist/_pkgs/std/extension/command-registry.d.ts +321 -0
  412. package/dist/_pkgs/std/extension/command-registry.js +233 -0
  413. package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
  414. package/dist/_pkgs/std/extension/index.d.ts +2 -0
  415. package/dist/_pkgs/std/extension/index.js +2 -0
  416. package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
  417. package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
  418. package/dist/_pkgs/std/gfx/index.d.ts +7 -3
  419. package/dist/_pkgs/std/gfx/index.js +6 -2
  420. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
  421. package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
  422. package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
  423. package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
  424. package/dist/_pkgs/std/gfx/layer.js +1 -2
  425. package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
  426. package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
  427. package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
  428. package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
  429. package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
  430. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
  431. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
  432. package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +282 -0
  433. package/dist/_pkgs/std/gfx/model/surface/element-model.js +436 -25
  434. package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
  435. package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
  436. package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
  437. package/dist/_pkgs/std/gfx/model/surface/role.js +115 -0
  438. package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
  439. package/dist/_pkgs/std/gfx/model/surface/surface-model.js +304 -17
  440. package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
  441. package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
  442. package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
  443. package/dist/_pkgs/std/gfx/perf.js +30 -0
  444. package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
  445. package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
  446. package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
  447. package/dist/_pkgs/std/gfx/viewport.js +19 -1
  448. package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
  449. package/dist/_pkgs/std/inline/services/event.js +96 -21
  450. package/dist/_pkgs/std/utils/layer.js +2 -6
  451. package/dist/_pkgs/std/utils/tree.d.ts +14 -0
  452. package/dist/_pkgs/std/utils/tree.js +59 -8
  453. package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
  454. package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
  455. package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
  456. package/dist/_pkgs/store/model/store/crud.js +7 -4
  457. package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
  458. package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
  459. package/dist/commands.d.ts +58 -0
  460. package/dist/commands.js +66 -0
  461. package/dist/extensions/command-telemetry.d.ts +21 -0
  462. package/dist/extensions/command-telemetry.js +89 -0
  463. package/dist/extensions/store.d.ts +9 -4
  464. package/dist/extensions/store.js +27 -24
  465. package/dist/extensions/view.d.ts +9 -4
  466. package/dist/extensions/view.js +23 -8
  467. package/dist/flags.d.ts +98 -21
  468. package/dist/flags.js +103 -22
  469. package/dist/frameworks.d.ts +45 -0
  470. package/dist/frameworks.js +154 -0
  471. package/dist/schemas.d.ts +8 -5
  472. package/dist/schemas.js +28 -32
  473. package/dist/shortcuts.d.ts +16 -16
  474. package/dist/shortcuts.js +8 -36
  475. package/dist/translations.d.ts +56 -0
  476. package/dist/translations.js +112 -0
  477. package/package.json +16 -4
  478. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
  479. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
  480. package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
  481. package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
  482. package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
  483. package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
@@ -18,16 +18,67 @@ import { isGfxGroupCompatibleModel, } from '../gfx/model/base.js';
18
18
  * The result should be `[G1, G4, E6]`
19
19
  */
20
20
  export function getTopElements(elements) {
21
- const results = new Set(elements);
22
- elements = [...new Set(elements)];
23
- elements.forEach(e1 => {
24
- elements.forEach(e2 => {
25
- if (isGfxGroupCompatibleModel(e1) && e1.hasDescendant(e2)) {
26
- results.delete(e2);
21
+ const uniqueElements = [...new Set(elements)];
22
+ const selected = new Set(uniqueElements);
23
+ const topElements = [];
24
+ // Walk each element UP to the root instead of asking every pair whether one
25
+ // contains the other: the pairwise form walked the whole subtree of every
26
+ // group for every other element in the list, which is what made a large
27
+ // selection expensive.
28
+ for (const element of uniqueElements) {
29
+ let ancestor = element.group;
30
+ let hasSelectedAncestor = false;
31
+ while (ancestor) {
32
+ if (selected.has(ancestor)) {
33
+ hasSelectedAncestor = true;
34
+ break;
27
35
  }
28
- });
36
+ ancestor = ancestor.group;
37
+ }
38
+ if (!hasSelectedAncestor) {
39
+ topElements.push(element);
40
+ }
41
+ }
42
+ return topElements;
43
+ }
44
+ /**
45
+ * Add several children to a container in one go.
46
+ *
47
+ * A container that knows how to take a batch (`addChildren`) gets the whole
48
+ * list, so it can write them within a single transaction; anything else falls
49
+ * back to one `addChild` per element, which is exactly what the caller would
50
+ * have written by hand.
51
+ */
52
+ export function batchAddChildren(container, elements) {
53
+ const uniqueElements = [...new Set(elements)];
54
+ if (uniqueElements.length === 0)
55
+ return;
56
+ const batchContainer = container;
57
+ if (batchContainer.addChildren) {
58
+ batchContainer.addChildren(uniqueElements);
59
+ return;
60
+ }
61
+ uniqueElements.forEach(element => {
62
+ container.addChild(element);
63
+ });
64
+ }
65
+ /**
66
+ * Remove several children from a container in one go. See
67
+ * {@link batchAddChildren}.
68
+ */
69
+ export function batchRemoveChildren(container, elements) {
70
+ const uniqueElements = [...new Set(elements)];
71
+ if (uniqueElements.length === 0)
72
+ return;
73
+ const batchContainer = container;
74
+ if (batchContainer.removeChildren) {
75
+ batchContainer.removeChildren(uniqueElements);
76
+ return;
77
+ }
78
+ uniqueElements.forEach(element => {
79
+ // oxlint-disable-next-line unicorn/prefer-dom-node-remove
80
+ container.removeChild(element);
29
81
  });
30
- return [...results];
31
82
  }
32
83
  function traverse(element, preCallback, postCallBack) {
33
84
  // avoid infinite loop caused by circular reference
@@ -18,6 +18,12 @@ function updateTransform(element) {
18
18
  element.style.transformOrigin = '0 0';
19
19
  element.style.transform = element.getCSSTransform();
20
20
  }
21
+ function updateZIndex(element) {
22
+ const zIndex = element.toZIndex();
23
+ if (element.style.zIndex !== zIndex) {
24
+ element.style.zIndex = zIndex;
25
+ }
26
+ }
21
27
  function updateBlockVisibility(view) {
22
28
  if (view.transformState$.value === 'active') {
23
29
  view.style.visibility = 'visible';
@@ -40,11 +46,18 @@ function handleGfxConnection(instance) {
40
46
  instance.disposables.add(instance.store.slots.blockUpdated.subscribe(({ type, id }) => {
41
47
  if (id === instance.model.id && type === 'update') {
42
48
  updateTransform(instance);
49
+ updateZIndex(instance);
43
50
  }
44
51
  }));
52
+ // A reorder changes no property of this block, only the layer it sits in,
53
+ // so the stacking has to be read back from the layer manager.
54
+ instance.disposables.add(instance.gfx.layer.slots.layerUpdated.subscribe(() => {
55
+ updateZIndex(instance);
56
+ }));
45
57
  instance.disposables.add(effect(() => {
46
58
  updateBlockVisibility(instance);
47
59
  updateTransform(instance);
60
+ updateZIndex(instance);
48
61
  }));
49
62
  }
50
63
  export class GfxBlockComponent extends BlockComponent {
@@ -73,13 +86,17 @@ export class GfxBlockComponent extends BlockComponent {
73
86
  onBoxSelected(_) { }
74
87
  getCSSTransform() {
75
88
  const viewport = this.gfx.viewport;
76
- const { translateX, translateY, zoom } = viewport;
89
+ const { translateX, translateY, zoom, viewScale } = viewport;
77
90
  const bound = Bound.deserialize(this.model.xywh);
78
- const scaledX = bound.x * zoom;
79
- const scaledY = bound.y * zoom;
91
+ // An outer container may scale the whole editor (`viewScale`). The block
92
+ // is placed inside that container, so the placement has to be stated in
93
+ // the container's already scaled space, otherwise the container applies
94
+ // its scale a second time and the block drifts away from the canvas.
95
+ const scaledX = (bound.x * zoom) / viewScale;
96
+ const scaledY = (bound.y * zoom) / viewScale;
80
97
  const deltaX = scaledX - bound.x;
81
98
  const deltaY = scaledY - bound.y;
82
- return `translate(${translateX + deltaX}px, ${translateY + deltaY}px) scale(${zoom})`;
99
+ return `translate(${translateX / viewScale + deltaX}px, ${translateY / viewScale + deltaY}px) scale(${zoom / viewScale})`;
83
100
  }
84
101
  getRenderingRect() {
85
102
  const { xywh$ } = this.model;
@@ -159,16 +176,9 @@ export function toGfxBlockComponent(CustomBlock) {
159
176
  super.connectedCallback();
160
177
  handleGfxConnection(this);
161
178
  }
162
- // eslint-disable-next-line sonarjs/no-identical-functions
163
179
  getCSSTransform() {
164
- const viewport = this.gfx.viewport;
165
- const { translateX, translateY, zoom } = viewport;
166
- const bound = Bound.deserialize(this.model.xywh);
167
- const scaledX = bound.x * zoom;
168
- const scaledY = bound.y * zoom;
169
- const deltaX = scaledX - bound.x;
170
- const deltaY = scaledY - bound.y;
171
- return `translate(${translateX + deltaX}px, ${translateY + deltaY}px) scale(${zoom})`;
180
+ // A converted block is placed exactly like a native one.
181
+ return GfxBlockComponent.prototype.getCSSTransform.call(this);
172
182
  }
173
183
  // eslint-disable-next-line sonarjs/no-identical-functions
174
184
  getRenderingRect() {
@@ -16,6 +16,16 @@ export interface DocMeta {
16
16
  createDate: number;
17
17
  updatedDate?: number;
18
18
  favorite?: boolean;
19
+ /**
20
+ * Set by the host when the doc sits in its trash. The doc is still in the
21
+ * workspace — it loads and round-trips as usual — but references to it
22
+ * (linked-doc and synced-doc cards) render as deleted.
23
+ *
24
+ * Optional and absent from documents written before it existed: the meta map
25
+ * is stored key by key, so an older document simply reads `undefined` here
26
+ * and an older reader ignores the key.
27
+ */
28
+ trash?: boolean;
19
29
  }
20
30
  export interface WorkspaceMeta {
21
31
  get docMetas(): DocMeta[];
@@ -22,11 +22,12 @@ export class FlatSyncController {
22
22
  throw new BlockSuiteError(ErrorCode.ModelCRUDError, `schema for flavour: ${this.flavour} not found`);
23
23
  }
24
24
  const model = schema.model.toModel?.() ?? new BlockModel();
25
+ const defaultProps = schema.model.props?.(internalPrimitives);
25
26
  model.schema = schema;
26
27
  model.id = this.id;
27
28
  model.keys = Array.from(props);
28
29
  model.yBlock = this.yBlock;
29
- const reactive = new ReactiveFlatYMap(this.yBlock, model.deleted, this.onChange);
30
+ const reactive = new ReactiveFlatYMap(this.yBlock, model.deleted, this.onChange, defaultProps);
30
31
  this._reactive = reactive;
31
32
  const proxy = reactive.proxy;
32
33
  model._props = proxy;
@@ -35,17 +36,6 @@ export class FlatSyncController {
35
36
  if (this.doc) {
36
37
  model.store = this.doc;
37
38
  }
38
- const defaultProps = schema.model.props?.(internalPrimitives);
39
- if (defaultProps) {
40
- Object.entries(defaultProps).forEach(([key, value]) => {
41
- if (key in proxy) {
42
- return;
43
- }
44
- if (value === undefined)
45
- return;
46
- proxy[key] = value;
47
- });
48
- }
49
39
  return model;
50
40
  }
51
41
  _parseYBlock() {
@@ -190,10 +190,13 @@ export class DocCRUD {
190
190
  return findParent(root);
191
191
  }
192
192
  getPrev(id) {
193
- return this._getSiblings(id, (index, parent) => parent
194
- .get('sys:children')
195
- .toArray()
196
- .at(index - 1) ?? null);
193
+ return this._getSiblings(id, (index, parent) => {
194
+ // `at(-1)` would wrap around to the last child, so the first child has to
195
+ // be answered before indexing.
196
+ if (index === 0)
197
+ return null;
198
+ return parent.get('sys:children').toArray().at(index - 1) ?? null;
199
+ });
197
200
  }
198
201
  moveBlocks(blocksToMove, newParent, targetSibling = null, shouldInsertBeforeSibling = true) {
199
202
  if (blocksToMove.length > 1 &&
@@ -17,7 +17,7 @@ export declare class ReactiveFlatYMap extends BaseReactiveYData<UnRecord, YMap<u
17
17
  private _byPassYjs;
18
18
  private readonly _getProxy;
19
19
  private readonly _updateWithYjsSkip;
20
- constructor(_ySource: YMap<unknown>, _onDispose: Subject<void>, _onChange?: OnChange | undefined);
20
+ constructor(_ySource: YMap<unknown>, _onDispose: Subject<void>, _onChange?: OnChange | undefined, defaultProps?: Record<string, unknown>);
21
21
  pop: (prop: string) => void;
22
22
  stash: (prop: string) => void;
23
23
  }
@@ -8,7 +8,7 @@ import { initializeData } from './initialize.js';
8
8
  import { createProxy } from './proxy.js';
9
9
  import { getYEventHandler } from './y-event-handler.js';
10
10
  export class ReactiveFlatYMap extends BaseReactiveYData {
11
- constructor(_ySource, _onDispose, _onChange) {
11
+ constructor(_ySource, _onDispose, _onChange, defaultProps) {
12
12
  super();
13
13
  this._ySource = _ySource;
14
14
  this._onDispose = _onDispose;
@@ -87,7 +87,7 @@ export class ReactiveFlatYMap extends BaseReactiveYData {
87
87
  });
88
88
  this._source = source;
89
89
  const proxy = this._getProxy(source, source);
90
- Object.entries(source).forEach(([key, value]) => {
90
+ const initSignals = (key, value) => {
91
91
  const signalData = signal(value);
92
92
  source[`${key}$`] = signalData;
93
93
  const unsubscribe = signalData.subscribe(next => {
@@ -103,9 +103,31 @@ export class ReactiveFlatYMap extends BaseReactiveYData {
103
103
  subscription.unsubscribe();
104
104
  unsubscribe();
105
105
  });
106
+ };
107
+ Object.entries(source).forEach(([key, value]) => {
108
+ initSignals(key, value);
106
109
  });
110
+ // Props declared with an `undefined` default are never written to the Y.Map,
111
+ // so they have no counterpart in `source`. Give them a signal anyway, so
112
+ // consumers can read and write `prop$` before the prop ever gets a value.
113
+ if (defaultProps) {
114
+ Object.entries(defaultProps).forEach(([key, value]) => {
115
+ if (!(key in proxy) && value === undefined) {
116
+ initSignals(key, value);
117
+ }
118
+ });
119
+ }
107
120
  this._proxy = proxy;
108
121
  this._ySource.observe(this._observer);
109
122
  this._initialized = true;
123
+ // Defined defaults are applied after initialization, so that they are
124
+ // written through to the Y.Map exactly as before.
125
+ if (defaultProps) {
126
+ Object.entries(defaultProps).forEach(([key, value]) => {
127
+ if (key in proxy || value === undefined)
128
+ return;
129
+ proxy[key] = value;
130
+ });
131
+ }
110
132
  }
111
133
  }
@@ -0,0 +1,58 @@
1
+ import { type AnyCommandDescriptor, type CommandManifestEntry, type CommandSurface, type FrameworkId } from './_pkgs/std/index.js';
2
+ import { type LabreFlags } from './flags.js';
3
+ /**
4
+ * The command registry, enumerated WITHOUT an editor instance — the property
5
+ * that makes it usable by host-side panels (Settings › Shortcuts, the
6
+ * "more artefacts" sidepanel). See `docs/adr/0008`.
7
+ *
8
+ * Gating has two sides and both are honoured: registration (`CommandExtension`
9
+ * inside each framework's flag-gated view extension) decides what BINDS, and
10
+ * `isBlockEnabled` here decides what a host ENUMERATES. A unit test asserts the
11
+ * two agree — a framework toggled off must vanish from the manifest and bind
12
+ * nothing.
13
+ *
14
+ * Bundled distribution note: the framework groups below are STRIPPED from
15
+ * `@formicoidea/labre-core` by `scripts/build-bundles.mjs` (`shortcuts: true`
16
+ * on the framework's descriptor) — each framework bundle exports its own
17
+ * commands and the host appends them for the frameworks it enables.
18
+ */
19
+ interface FrameworkCommandGroup {
20
+ owner: FrameworkId;
21
+ commands: AnyCommandDescriptor[];
22
+ }
23
+ /**
24
+ * Pure aggregator (exported for testing): core commands plus the commands of
25
+ * every framework group whose flag is enabled.
26
+ */
27
+ export declare function buildCommandRegistry(core: AnyCommandDescriptor[], groups: FrameworkCommandGroup[], flags?: LabreFlags): AnyCommandDescriptor[];
28
+ /**
29
+ * Every command a given flag set exposes. Shapes are core canvas, so their
30
+ * commands are always-on like root's — and so are Map quality (PF7.11), which
31
+ * belongs to the SURFACE rather than to any framework (it appears for whichever
32
+ * framework declared a nudge or an on-demand rule, and its own `when` asks the
33
+ * engine that question), and `edge.invert-direction` (`docs/adr/0010` M3),
34
+ * which acts on whatever carries an edge ROLE — document content — so it must
35
+ * stay reachable on a board whose framework tooling is switched off; it is
36
+ * registered from the always-on connector view extension for the same reason.
37
+ *
38
+ * `auditCommands` is `'core'`-owned but NOT always-on: it rides the `ai-audit`
39
+ * capability switch, which is a second axis (see `OPTIONAL_CAPABILITIES`). The
40
+ * read side is filtered here, the registration side by `AuditViewExtension` in
41
+ * `getInternalViewExtensions` — the same two-sided gate a framework flag gets,
42
+ * and the same test asserts the two agree.
43
+ *
44
+ * The two sit side by side deliberately: Map quality is the DETERMINISTIC
45
+ * second moment (levels 1–2 of the validation taxonomy) and the audit is level
46
+ * 3, which is why one is unconditional and the other rides a switch. Neither
47
+ * depends on the other, and the engine depends on neither.
48
+ */
49
+ export declare function getCommands(flags?: LabreFlags): AnyCommandDescriptor[];
50
+ /**
51
+ * The serializable catalogue manifest — what crosses the host seam for the
52
+ * sidepanel, the palette and the agent. No functions, no templates: an
53
+ * `iconKey` resolved lib-side, and availability as a closed union.
54
+ */
55
+ export declare function getCommandManifest(flags?: LabreFlags): CommandManifestEntry[];
56
+ /** The manifest entries one surface offers, ordered. */
57
+ export declare function getCommandManifestForSurface(surface: CommandSurface, flags?: LabreFlags): CommandManifestEntry[];
58
+ export {};
@@ -0,0 +1,66 @@
1
+ import { coreCommands, pivotCommands, readingCommands, tagCommands, } from './_pkgs/affine-block-root/index.js';
2
+ import { auditCommands, mapQualityCommands, } from './_pkgs/affine-block-surface/index.js';
3
+ import { edgeDirectionCommands } from './_pkgs/affine-gfx-connector/index.js';
4
+ import { shapeCommands } from './_pkgs/affine-gfx-shape/index.js';
5
+ import { toCommandManifestEntry, } from './_pkgs/std/index.js';
6
+ import { isBlockEnabled, isCapabilityEnabled, } from './flags.js';
7
+ const FRAMEWORK_COMMAND_GROUPS = [];
8
+ /**
9
+ * Pure aggregator (exported for testing): core commands plus the commands of
10
+ * every framework group whose flag is enabled.
11
+ */
12
+ export function buildCommandRegistry(core, groups, flags) {
13
+ const all = [...core];
14
+ for (const { owner, commands } of groups) {
15
+ if (isBlockEnabled(flags, owner))
16
+ all.push(...commands);
17
+ }
18
+ return all;
19
+ }
20
+ /**
21
+ * Every command a given flag set exposes. Shapes are core canvas, so their
22
+ * commands are always-on like root's — and so are Map quality (PF7.11), which
23
+ * belongs to the SURFACE rather than to any framework (it appears for whichever
24
+ * framework declared a nudge or an on-demand rule, and its own `when` asks the
25
+ * engine that question), and `edge.invert-direction` (`docs/adr/0010` M3),
26
+ * which acts on whatever carries an edge ROLE — document content — so it must
27
+ * stay reachable on a board whose framework tooling is switched off; it is
28
+ * registered from the always-on connector view extension for the same reason.
29
+ *
30
+ * `auditCommands` is `'core'`-owned but NOT always-on: it rides the `ai-audit`
31
+ * capability switch, which is a second axis (see `OPTIONAL_CAPABILITIES`). The
32
+ * read side is filtered here, the registration side by `AuditViewExtension` in
33
+ * `getInternalViewExtensions` — the same two-sided gate a framework flag gets,
34
+ * and the same test asserts the two agree.
35
+ *
36
+ * The two sit side by side deliberately: Map quality is the DETERMINISTIC
37
+ * second moment (levels 1–2 of the validation taxonomy) and the audit is level
38
+ * 3, which is why one is unconditional and the other rides a switch. Neither
39
+ * depends on the other, and the engine depends on neither.
40
+ */
41
+ export function getCommands(flags) {
42
+ return buildCommandRegistry([
43
+ ...coreCommands,
44
+ ...pivotCommands,
45
+ ...tagCommands,
46
+ ...readingCommands,
47
+ ...shapeCommands,
48
+ ...mapQualityCommands,
49
+ ...edgeDirectionCommands,
50
+ ...(isCapabilityEnabled(flags, 'ai-audit') ? auditCommands : []),
51
+ ], FRAMEWORK_COMMAND_GROUPS, flags);
52
+ }
53
+ /**
54
+ * The serializable catalogue manifest — what crosses the host seam for the
55
+ * sidepanel, the palette and the agent. No functions, no templates: an
56
+ * `iconKey` resolved lib-side, and availability as a closed union.
57
+ */
58
+ export function getCommandManifest(flags) {
59
+ return getCommands(flags).map(toCommandManifestEntry);
60
+ }
61
+ /** The manifest entries one surface offers, ordered. */
62
+ export function getCommandManifestForSurface(surface, flags) {
63
+ return getCommandManifest(flags)
64
+ .filter(entry => entry.surfaces.includes(surface))
65
+ .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
66
+ }
@@ -0,0 +1,21 @@
1
+ import { type ViewExtensionContext, ViewExtensionProvider } from '../_pkgs/affine-ext-loader/index.js';
2
+ import { type CommandDescriptor, type CommandInvocation, type CommandTelemetryReporter } from '../_pkgs/std/index.js';
3
+ import type { ExtensionType } from '../_pkgs/store/index.js';
4
+ export declare function reportCommandTelemetry(track: (event: string, payload: Record<string, unknown>) => void, command: CommandDescriptor, invocation: CommandInvocation): void;
5
+ /**
6
+ * The production reporter. Exported so a test can register it on a stub `std`
7
+ * and drive the WHOLE path — `runCommand` → reporter → `TelemetryProvider` —
8
+ * rather than calling the mapping function directly, which would never notice
9
+ * a second emitter left behind in an action body.
10
+ */
11
+ export declare const commandTelemetryReporter: CommandTelemetryReporter;
12
+ export declare const CommandTelemetryExtension: ExtensionType;
13
+ /**
14
+ * Registered unconditionally by `getInternalViewExtensions`: the emitter is not
15
+ * a framework's business, and a framework toggled off simply never invokes a
16
+ * command.
17
+ */
18
+ export declare class CommandTelemetryViewExtension extends ViewExtensionProvider {
19
+ name: string;
20
+ setup(context: ViewExtensionContext): void;
21
+ }
@@ -0,0 +1,89 @@
1
+ import { ViewExtensionProvider, } from '../_pkgs/affine-ext-loader/index.js';
2
+ import { TelemetryProvider } from '../_pkgs/affine-shared/services/index.js';
3
+ import { CommandTelemetryIdentifier, } from '../_pkgs/std/index.js';
4
+ import { frameworkDescriptor } from '../frameworks.js';
5
+ /**
6
+ * The ONE place a framework command's telemetry is emitted.
7
+ *
8
+ * Before PF3 every surface re-implemented its own `track()` — which is how
9
+ * cynefin-estuarine ended up emitting nothing at all, and how the same artefact
10
+ * could be counted differently depending on which menu created it. The registry
11
+ * now calls this reporter from `runCommand`, and nowhere else.
12
+ *
13
+ * Wire values are HISTORICAL by construction: `framework` and `segment` come
14
+ * from `FrameworkDescriptor.telemetryKey` / `.telemetrySegment`, so unifying
15
+ * the code-side identity breaks no existing PostHog dashboard.
16
+ */
17
+ /** `CommandKind` → the ADR 0003 event it reports. */
18
+ const EVENT_BY_KIND = {
19
+ artefact: 'FrameworkElementAdded',
20
+ toggle: 'FrameworkElementAdded',
21
+ tool: 'FrameworkToolPicked',
22
+ legend: 'FrameworkLegendCreated',
23
+ action: 'FrameworkElementAdded',
24
+ };
25
+ /**
26
+ * `module`, per historical convention: the menu that created the element, or
27
+ * the literal `'keyboard shortcut'` Wardley already emitted.
28
+ */
29
+ function moduleOf(telemetryKey, invocation) {
30
+ if (invocation.surface === 'shortcut')
31
+ return 'keyboard shortcut';
32
+ if (invocation.surface === 'senior-menu')
33
+ return `${telemetryKey} menu`;
34
+ return `${telemetryKey} ${invocation.surface}`;
35
+ }
36
+ export function reportCommandTelemetry(track, command, invocation) {
37
+ const { telemetry } = command;
38
+ if (!telemetry)
39
+ return;
40
+ const framework = frameworkDescriptor(telemetry.framework);
41
+ if (!framework)
42
+ return;
43
+ track(EVENT_BY_KIND[command.kind], {
44
+ framework: framework.telemetryKey,
45
+ element: telemetry.element,
46
+ page: 'whiteboard editor',
47
+ segment: framework.telemetrySegment,
48
+ module: moduleOf(framework.telemetryKey, invocation),
49
+ // New dimension, no existing value changed: which of the five consumers
50
+ // invoked the command. This is the metric that will arbitrate the 14
51
+ // senior slots against the sidepanel against the palette.
52
+ control: invocation.source,
53
+ });
54
+ }
55
+ /**
56
+ * The production reporter. Exported so a test can register it on a stub `std`
57
+ * and drive the WHOLE path — `runCommand` → reporter → `TelemetryProvider` —
58
+ * rather than calling the mapping function directly, which would never notice
59
+ * a second emitter left behind in an action body.
60
+ */
61
+ export const commandTelemetryReporter = ({ std, command, invocation, }) => {
62
+ const telemetry = std.getOptional(TelemetryProvider);
63
+ if (!telemetry)
64
+ return;
65
+ reportCommandTelemetry((event, payload) => telemetry.track(event, payload), command, invocation);
66
+ };
67
+ export const CommandTelemetryExtension = {
68
+ // Factory form, not value form: the container calls a function argument as a
69
+ // factory, so registering the reporter directly would resolve it with the
70
+ // service provider instead of the report.
71
+ setup: di => {
72
+ di.addImpl(CommandTelemetryIdentifier, () => commandTelemetryReporter);
73
+ },
74
+ };
75
+ /**
76
+ * Registered unconditionally by `getInternalViewExtensions`: the emitter is not
77
+ * a framework's business, and a framework toggled off simply never invokes a
78
+ * command.
79
+ */
80
+ export class CommandTelemetryViewExtension extends ViewExtensionProvider {
81
+ constructor() {
82
+ super(...arguments);
83
+ this.name = 'affine-command-telemetry';
84
+ }
85
+ setup(context) {
86
+ super.setup(context);
87
+ context.register(CommandTelemetryExtension);
88
+ }
89
+ }
@@ -1,8 +1,13 @@
1
1
  import { AttachmentStoreExtension } from '../_pkgs/affine-block-attachment/store.js';
2
2
  import { NoteStoreExtension } from '../_pkgs/affine-block-note/store.js';
3
- import { type BlockFlags } from '../flags.js';
3
+ import type { LabreFlags } from '../flags.js';
4
4
  /**
5
- * Store extensions, honoring block flags.
6
- * Omitted flags default to enabled. See {@link BlockFlags}.
5
+ * Store extensions.
6
+ *
7
+ * Registered UNCONDITIONALLY: the store side (models, adapters, transformers)
8
+ * is what makes a document readable and round-trippable, and a flag must never
9
+ * gate that (see {@link LabreFlags} and `docs/adr/0009`). The `flags` parameter
10
+ * is kept for source compatibility with callers written against the previous
11
+ * contract, and is deliberately ignored.
7
12
  */
8
- export declare function getInternalStoreExtensions(flags?: BlockFlags): (typeof AttachmentStoreExtension | typeof NoteStoreExtension)[];
13
+ export declare function getInternalStoreExtensions(_flags?: LabreFlags): (typeof AttachmentStoreExtension | typeof NoteStoreExtension)[];
@@ -30,43 +30,46 @@ import { LatexStoreExtension as InlineLatexStoreExtension } from '../_pkgs/affin
30
30
  import { LinkStoreExtension } from '../_pkgs/affine-inline-link/store.js';
31
31
  import { InlinePresetStoreExtension } from '../_pkgs/affine-inline-preset/store.js';
32
32
  import { ReferenceStoreExtension } from '../_pkgs/affine-inline-reference/store.js';
33
- import { isBlockEnabled, } from '../flags.js';
34
33
  /**
35
- * Store extensions, honoring block flags.
36
- * Omitted flags default to enabled. See {@link BlockFlags}.
34
+ * Store extensions.
35
+ *
36
+ * Registered UNCONDITIONALLY: the store side (models, adapters, transformers)
37
+ * is what makes a document readable and round-trippable, and a flag must never
38
+ * gate that (see {@link LabreFlags} and `docs/adr/0009`). The `flags` parameter
39
+ * is kept for source compatibility with callers written against the previous
40
+ * contract, and is deliberately ignored.
37
41
  */
38
- export function getInternalStoreExtensions(flags) {
39
- const on = (block) => isBlockEnabled(flags, block);
42
+ export function getInternalStoreExtensions(_flags) {
40
43
  return [
41
44
  FoundationStoreExtension,
42
- ...(on('attachment') ? [AttachmentStoreExtension] : []),
43
- ...(on('bookmark') ? [BookmarkStoreExtension] : []),
44
- ...(on('callout') ? [CalloutStoreExtension] : []),
45
- ...(on('code') ? [CodeStoreExtension] : []),
46
- ...(on('data-view') ? [DataViewStoreExtension] : []),
47
- ...(on('database') ? [DatabaseStoreExtension] : []),
48
- ...(on('divider') ? [DividerStoreExtension] : []),
49
- ...(on('edgeless-text') ? [EdgelessTextStoreExtension] : []),
50
- ...(on('embed') ? [EmbedStoreExtension] : []),
51
- ...(on('embed-doc') ? [EmbedDocStoreExtension] : []),
52
- ...(on('frame') ? [FrameStoreExtension] : []),
53
- ...(on('image') ? [ImageStoreExtension] : []),
54
- ...(on('latex') ? [LatexStoreExtension] : []),
55
- ...(on('list') ? [ListStoreExtension] : []),
45
+ AttachmentStoreExtension,
46
+ BookmarkStoreExtension,
47
+ CalloutStoreExtension,
48
+ CodeStoreExtension,
49
+ DataViewStoreExtension,
50
+ DatabaseStoreExtension,
51
+ DividerStoreExtension,
52
+ EdgelessTextStoreExtension,
53
+ EmbedStoreExtension,
54
+ EmbedDocStoreExtension,
55
+ FrameStoreExtension,
56
+ ImageStoreExtension,
57
+ LatexStoreExtension,
58
+ ListStoreExtension,
56
59
  NoteStoreExtension,
57
60
  ParagraphStoreExtension,
58
- ...(on('surface-ref') ? [SurfaceRefStoreExtension] : []),
59
- ...(on('table') ? [TableStoreExtension] : []),
61
+ SurfaceRefStoreExtension,
62
+ TableStoreExtension,
60
63
  SurfaceStoreExtension,
61
64
  RootStoreExtension,
62
65
  FootnoteStoreExtension,
63
66
  LinkStoreExtension,
64
67
  ReferenceStoreExtension,
65
- ...(on('latex') ? [InlineLatexStoreExtension] : []),
68
+ InlineLatexStoreExtension,
66
69
  InlinePresetStoreExtension,
67
- ...(on('brush') ? [BrushStoreExtension] : []),
70
+ BrushStoreExtension,
68
71
  ShapeStoreExtension,
69
- ...(on('mindmap') ? [MindmapStoreExtension] : []),
72
+ MindmapStoreExtension,
70
73
  ConnectorStoreExtension,
71
74
  GroupStoreExtension,
72
75
  TextStoreExtension,
@@ -1,7 +1,12 @@
1
1
  import { AdapterPanelViewExtension } from '../_pkgs/affine-fragment-adapter-panel/view.js';
2
- import { type BlockFlags } from '../flags.js';
2
+ import { type LabreFlags } from '../flags.js';
3
3
  /**
4
- * View extensions, honoring block flags.
5
- * Omitted flags default to enabled. See {@link BlockFlags}.
4
+ * View extensions.
5
+ *
6
+ * Rendering is registered UNCONDITIONALLY; a flag removes only the matching
7
+ * TOOLING extension (senior button, its submenus and its creation shortcuts),
8
+ * so a framework switched off disappears from the toolbar without any element
9
+ * already drawn disappearing from the canvas. Omitted flags default to
10
+ * enabled. See {@link BlockFlags} and `docs/adr/0009`.
6
11
  */
7
- export declare function getInternalViewExtensions(flags?: BlockFlags): (typeof AdapterPanelViewExtension)[];
12
+ export declare function getInternalViewExtensions(flags?: LabreFlags): (typeof AdapterPanelViewExtension)[];