@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
@@ -15,7 +15,7 @@ import { ListViewExtension } from '../_pkgs/affine-block-list/view.js';
15
15
  import { NoteViewExtension } from '../_pkgs/affine-block-note/view.js';
16
16
  import { ParagraphViewExtension } from '../_pkgs/affine-block-paragraph/view.js';
17
17
  import { RootViewExtension } from '../_pkgs/affine-block-root/view.js';
18
- import { SurfaceViewExtension } from '../_pkgs/affine-block-surface/view.js';
18
+ import { AuditViewExtension, SurfaceViewExtension, } from '../_pkgs/affine-block-surface/view.js';
19
19
  import { SurfaceRefViewExtension } from '../_pkgs/affine-block-surface-ref/view.js';
20
20
  import { TableViewExtension } from '../_pkgs/affine-block-table/view.js';
21
21
  import { FoundationViewExtension } from '../_pkgs/affine-foundation/view.js';
@@ -23,7 +23,7 @@ import { AdapterPanelViewExtension } from '../_pkgs/affine-fragment-adapter-pane
23
23
  import { DocTitleViewExtension } from '../_pkgs/affine-fragment-doc-title/view.js';
24
24
  import { FramePanelViewExtension } from '../_pkgs/affine-fragment-frame-panel/view.js';
25
25
  import { OutlineViewExtension } from '../_pkgs/affine-fragment-outline/view.js';
26
- import { BrushViewExtension } from '../_pkgs/affine-gfx-brush/view.js';
26
+ import { BrushRenderViewExtension, BrushViewExtension, } from '../_pkgs/affine-gfx-brush/view.js';
27
27
  import { ConnectorViewExtension } from '../_pkgs/affine-gfx-connector/view.js';
28
28
  import { GroupViewExtension } from '../_pkgs/affine-gfx-group/view.js';
29
29
  import { LinkViewExtension as GfxLinkViewExtension } from '../_pkgs/affine-gfx-link/view.js';
@@ -56,25 +56,36 @@ import { ScrollAnchoringViewExtension } from '../_pkgs/affine-widget-scroll-anch
56
56
  import { SlashMenuViewExtension } from '../_pkgs/affine-widget-slash-menu/view.js';
57
57
  import { ToolbarViewExtension } from '../_pkgs/affine-widget-toolbar/view.js';
58
58
  import { ViewportOverlayViewExtension } from '../_pkgs/affine-widget-viewport-overlay/view.js';
59
- import { isBlockEnabled, } from '../flags.js';
59
+ import { isBlockEnabled, isCapabilityEnabled, } from '../flags.js';
60
+ import { CommandTelemetryViewExtension } from './command-telemetry.js';
60
61
  /**
61
- * View extensions, honoring block flags.
62
- * Omitted flags default to enabled. See {@link BlockFlags}.
62
+ * View extensions.
63
+ *
64
+ * Rendering is registered UNCONDITIONALLY; a flag removes only the matching
65
+ * TOOLING extension (senior button, its submenus and its creation shortcuts),
66
+ * so a framework switched off disappears from the toolbar without any element
67
+ * already drawn disappearing from the canvas. Omitted flags default to
68
+ * enabled. See {@link BlockFlags} and `docs/adr/0009`.
63
69
  */
64
70
  export function getInternalViewExtensions(flags) {
65
71
  const on = (block) => isBlockEnabled(flags, block);
66
72
  return [
67
73
  FoundationViewExtension,
68
- // Gfx
74
+ // The single command-telemetry emitter. Unconditional: a disabled
75
+ // framework simply never invokes a command (docs/adr/0008).
76
+ CommandTelemetryViewExtension,
77
+ // Gfx — each framework contributes an always-on `…Render…` extension
78
+ // (element view + renderer + interaction + contextual toolbar) and a
79
+ // flag-gated tooling extension (senior button + creation shortcuts).
69
80
  PointerViewExtension,
70
81
  GfxNoteViewExtension,
82
+ BrushRenderViewExtension,
71
83
  ...(on('brush') ? [BrushViewExtension] : []),
72
84
  // Standalone text / add-file senior buttons, placed right after pen/eraser
73
85
  // (registration order = senior-row order for the default order group).
74
86
  ...(on('edgeless-text') ? [TextToolViewExtension] : []),
75
87
  ...(on('edgeless-media') ? [MediaToolViewExtension] : []),
76
88
  ShapeViewExtension,
77
- // Mindmap rendering is always on; the flags gate only the senior buttons.
78
89
  MindmapRenderViewExtension,
79
90
  ...(on('mindmap') ? [MindmapToolViewExtension] : []),
80
91
  ConnectorViewExtension,
@@ -82,7 +93,6 @@ export function getInternalViewExtensions(flags) {
82
93
  TextViewExtension,
83
94
  ...(on('template') ? [TemplateViewExtension] : []),
84
95
  ...(on('link') ? [GfxLinkViewExtension] : []),
85
- // Core Domain rendering is always on; the flag gates only the senior button.
86
96
  // Block
87
97
  ...(on('attachment') ? [AttachmentViewExtension] : []),
88
98
  ...(on('bookmark') ? [BookmarkViewExtension] : []),
@@ -103,6 +113,11 @@ export function getInternalViewExtensions(flags) {
103
113
  ...(on('surface-ref') ? [SurfaceRefViewExtension] : []),
104
114
  ...(on('table') ? [TableViewExtension] : []),
105
115
  SurfaceViewExtension,
116
+ // The AI audit seam (PF14.1). A CAPABILITY, not a block: `ai-audit` gates
117
+ // the `map.audit` command and nothing else, and nothing it touches is
118
+ // persisted, so switching it off cannot lose anything. See
119
+ // `OPTIONAL_CAPABILITIES` for why it is not an `OPTIONAL_BLOCKS` entry.
120
+ ...(isCapabilityEnabled(flags, 'ai-audit') ? [AuditViewExtension] : []),
106
121
  RootViewExtension,
107
122
  // Inline
108
123
  InlineCommentViewExtension,
package/dist/flags.d.ts CHANGED
@@ -1,30 +1,107 @@
1
1
  /**
2
- * Feature flags for block registration.
2
+ * Feature flags for editor TOOLING.
3
3
  *
4
- * Each key matches a block (or gfx module) that can be turned off at editor
5
- * assembly time, through `getAffineSchemas`, `getInternalStoreExtensions` and
6
- * `getInternalViewExtensions`. Blocks absent from this list form the
7
- * structural core of the editor (root, surface, note, paragraph, base gfx
8
- * tools, inline presets, widgets) and are always registered.
4
+ * ## Contract (reversed in PF4 — see `docs/adr/0009`)
9
5
  *
10
- * Flags default to enabled: `{ database: false }` disables the database
11
- * block, an empty object (or no flags at all) enables everything. This lets
12
- * an application ship a block "dark" (registered code, disabled flag), enable
13
- * it progressively and turn it off again without redeploying.
6
+ * A flag NEVER decides whether a document can be read. Block schemas
7
+ * (`getAffineSchemas`) and store extensions (`getInternalStoreExtensions`) are
8
+ * registered unconditionally, so **every document opens, round-trips and saves
9
+ * identically whatever the flags say**. Turning a flag off never deletes,
10
+ * strips or downgrades stored content, and never fails schema validation on
11
+ * load; turning it back on restores the tooling with the content untouched.
12
+ *
13
+ * What a flag gates is the **tooling** that lets a user CREATE and reach that
14
+ * content:
15
+ * - the senior toolbar button (edgeless) and its submenus,
16
+ * - the keyboard shortcuts it owns (see `getShortcutManifest`, which filters on
17
+ * {@link ShortcutDescriptor.owner}),
18
+ * - future side-panel / command-palette entries and validation rules.
19
+ *
20
+ * Business framework modules (wardley, edgy, bpmn, cynefin-estuarine, brush,
21
+ * mindmap, ddd-*) therefore ship their view layer as TWO extensions: an
22
+ * always-registered `…RenderViewExtension` (element view, renderer,
23
+ * interaction, contextual toolbar of an already-placed element) and a
24
+ * flag-gated `…ViewExtension` (senior button + creation shortcuts). Elements
25
+ * already drawn on a canvas keep painting, stay selectable and stay editable
26
+ * when their framework is switched off — only the way to add new ones goes
27
+ * away. The consequence is accepted: the bundle always carries every
28
+ * framework's renderer, so a framework can no longer ship fully "dark".
29
+ *
30
+ * Flags default to enabled: `{ mindmap: false }` hides the Mind Map tooling, an
31
+ * empty object (or no flags at all) enables everything.
32
+ *
33
+ * Note for hosts consuming the PUBLISHED bundles: `scripts/build-bundles.mjs`
34
+ * strips the four business-framework flags (`wardley`, `edgy`, `bpmn`,
35
+ * `cynefin-estuarine`) from `@formicoidea/labre-core`'s copy of this file —
36
+ * they exist only when the matching `@formicoidea/labre-framework-*` bundle is
37
+ * installed, and the host applies them through that bundle's descriptor. The
38
+ * examples here therefore use a flag that always ships with core.
14
39
  *
15
40
  * Caveats:
16
- * - Disabling a block does not migrate existing documents: a stored document
17
- * containing a disabled block will fail schema validation on load. Only
18
- * disable blocks that never reached users' documents, or re-enable the flag
19
- * to restore access.
20
- * - The `embed` store extension also registers the linked/synced doc schemas
21
- * for backward compatibility; to fully disable doc embeds, disable both
22
- * `embed` and `embed-doc`.
23
- * - `latex` controls both the latex block and inline latex.
24
- * - `frame` also controls the frame panel fragment.
41
+ * - The reversal covers **surface elements** (everything living in the surface
42
+ * `elements` map: brush, mindmap, wardley, edgy, cynefin, estuarine, bpmn,
43
+ * coreDomain). BLOCKS (database, code, image, latex, frame, edgeless-text, …)
44
+ * still have their whole view extension gated, because their renderer and
45
+ * their tooling live in the same extension. Their data is safe — schema and
46
+ * store side are unconditional, so the document loads, round-trips and
47
+ * re-renders untouched once the flag is back on — but a disabled block
48
+ * currently renders as nothing until its view extension is split the way the
49
+ * frameworks' were. See the "Consequences" section of `docs/adr/0009`.
50
+ * - `latex` covers both the latex block and inline latex.
51
+ * - `frame` also covers the frame panel fragment.
52
+ * - `ddd-templates` covers all four DDD Templates-panel categories, so the
53
+ * catalogue survives disabling individual DDD senior buttons.
25
54
  */
26
- export declare const OPTIONAL_BLOCKS: readonly ["attachment", "bookmark", "callout", "code", "data-view", "database", "divider", "edgeless-text", "embed", "embed-doc", "frame", "image", "latex", "list", "surface-ref", "table", "brush", "mindmap", "edgeless-text", "edgeless-media", "template", "link"];
55
+ export declare const OPTIONAL_BLOCKS: readonly ["attachment", "bookmark", "callout", "code", "data-view", "database", "divider", "edgeless-text", "embed", "embed-doc", "frame", "image", "latex", "list", "surface-ref", "table", "brush", "mindmap", "edgeless-media", "template", "link"];
27
56
  export type OptionalBlock = (typeof OPTIONAL_BLOCKS)[number];
28
- /** Map of optional block -> enabled. Missing keys default to enabled. */
57
+ /** Map of optional block -> tooling enabled. Missing keys default to enabled. */
29
58
  export type BlockFlags = Partial<Record<OptionalBlock, boolean>>;
59
+ /**
60
+ * Whether the tooling of `block` is enabled. Never consult this to decide
61
+ * whether content can be read or rendered — see the contract above.
62
+ */
30
63
  export declare function isBlockEnabled(flags: BlockFlags | undefined, block: OptionalBlock): boolean;
64
+ /**
65
+ * Editor CAPABILITIES — a second switch axis, deliberately not a member of
66
+ * {@link OPTIONAL_BLOCKS}.
67
+ *
68
+ * ## Why a separate list (PF14.1 decision)
69
+ *
70
+ * `OPTIONAL_BLOCKS` answers one question: "does this BLOCK or FRAMEWORK exist
71
+ * for this user". Every entry names a thing a document can contain, which is
72
+ * what makes the contract above meaningful — "the schema is registered
73
+ * unconditionally, so the content is safe" is a sentence about content.
74
+ *
75
+ * `ai-audit` names no block, no element and no schema. It is a capability of
76
+ * the editor: whether this build can ask an assistant for an opinion. Filing it
77
+ * under `OPTIONAL_BLOCKS` would have cost nothing at the keyboard and a lot
78
+ * afterwards — `FrameworkId` is asserted `satisfies readonly OptionalBlock[]`,
79
+ * `scripts/build-bundles.mjs` reads the list as the set of things a bundle can
80
+ * carry, and the flags README would have had to explain why one of its entries
81
+ * has no schema to protect. A list whose members do not answer the same
82
+ * question is a list that has to be filtered at every use.
83
+ *
84
+ * ## Same contract, in full
85
+ *
86
+ * Everything the flag contract promises holds here, and holds trivially:
87
+ * missing key = enabled; switching it off removes TOOLING only; and there is no
88
+ * data to lose, because the audit seam persists nothing at all — criteria are
89
+ * code, findings are session state in `ValidationManager.auditFindings$`, and
90
+ * neither ever reaches a `Y.Doc`. Off, the command is not registered: it
91
+ * disappears from the registry, both manifests and the keymap together. Back
92
+ * on, it is there again, with the document untouched in between.
93
+ *
94
+ * Hosts pass ONE object ({@link LabreFlags}): the two key spaces are disjoint,
95
+ * so nothing about the wiring changes.
96
+ */
97
+ export declare const OPTIONAL_CAPABILITIES: readonly ["ai-audit"];
98
+ export type OptionalCapability = (typeof OPTIONAL_CAPABILITIES)[number];
99
+ /** Map of capability -> enabled. Missing keys default to enabled. */
100
+ export type CapabilityFlags = Partial<Record<OptionalCapability, boolean>>;
101
+ /**
102
+ * The one object a host passes. Two disjoint key spaces, one bag — a host that
103
+ * only ever spoke `BlockFlags` keeps compiling and keeps behaving identically.
104
+ */
105
+ export type LabreFlags = BlockFlags & CapabilityFlags;
106
+ /** Whether `capability` is enabled. Same defaulting rule as a block flag. */
107
+ export declare function isCapabilityEnabled(flags: CapabilityFlags | undefined, capability: OptionalCapability): boolean;
package/dist/flags.js CHANGED
@@ -1,27 +1,56 @@
1
1
  /**
2
- * Feature flags for block registration.
2
+ * Feature flags for editor TOOLING.
3
3
  *
4
- * Each key matches a block (or gfx module) that can be turned off at editor
5
- * assembly time, through `getAffineSchemas`, `getInternalStoreExtensions` and
6
- * `getInternalViewExtensions`. Blocks absent from this list form the
7
- * structural core of the editor (root, surface, note, paragraph, base gfx
8
- * tools, inline presets, widgets) and are always registered.
4
+ * ## Contract (reversed in PF4 — see `docs/adr/0009`)
9
5
  *
10
- * Flags default to enabled: `{ database: false }` disables the database
11
- * block, an empty object (or no flags at all) enables everything. This lets
12
- * an application ship a block "dark" (registered code, disabled flag), enable
13
- * it progressively and turn it off again without redeploying.
6
+ * A flag NEVER decides whether a document can be read. Block schemas
7
+ * (`getAffineSchemas`) and store extensions (`getInternalStoreExtensions`) are
8
+ * registered unconditionally, so **every document opens, round-trips and saves
9
+ * identically whatever the flags say**. Turning a flag off never deletes,
10
+ * strips or downgrades stored content, and never fails schema validation on
11
+ * load; turning it back on restores the tooling with the content untouched.
12
+ *
13
+ * What a flag gates is the **tooling** that lets a user CREATE and reach that
14
+ * content:
15
+ * - the senior toolbar button (edgeless) and its submenus,
16
+ * - the keyboard shortcuts it owns (see `getShortcutManifest`, which filters on
17
+ * {@link ShortcutDescriptor.owner}),
18
+ * - future side-panel / command-palette entries and validation rules.
19
+ *
20
+ * Business framework modules (wardley, edgy, bpmn, cynefin-estuarine, brush,
21
+ * mindmap, ddd-*) therefore ship their view layer as TWO extensions: an
22
+ * always-registered `…RenderViewExtension` (element view, renderer,
23
+ * interaction, contextual toolbar of an already-placed element) and a
24
+ * flag-gated `…ViewExtension` (senior button + creation shortcuts). Elements
25
+ * already drawn on a canvas keep painting, stay selectable and stay editable
26
+ * when their framework is switched off — only the way to add new ones goes
27
+ * away. The consequence is accepted: the bundle always carries every
28
+ * framework's renderer, so a framework can no longer ship fully "dark".
29
+ *
30
+ * Flags default to enabled: `{ mindmap: false }` hides the Mind Map tooling, an
31
+ * empty object (or no flags at all) enables everything.
32
+ *
33
+ * Note for hosts consuming the PUBLISHED bundles: `scripts/build-bundles.mjs`
34
+ * strips the four business-framework flags (`wardley`, `edgy`, `bpmn`,
35
+ * `cynefin-estuarine`) from `@formicoidea/labre-core`'s copy of this file —
36
+ * they exist only when the matching `@formicoidea/labre-framework-*` bundle is
37
+ * installed, and the host applies them through that bundle's descriptor. The
38
+ * examples here therefore use a flag that always ships with core.
14
39
  *
15
40
  * Caveats:
16
- * - Disabling a block does not migrate existing documents: a stored document
17
- * containing a disabled block will fail schema validation on load. Only
18
- * disable blocks that never reached users' documents, or re-enable the flag
19
- * to restore access.
20
- * - The `embed` store extension also registers the linked/synced doc schemas
21
- * for backward compatibility; to fully disable doc embeds, disable both
22
- * `embed` and `embed-doc`.
23
- * - `latex` controls both the latex block and inline latex.
24
- * - `frame` also controls the frame panel fragment.
41
+ * - The reversal covers **surface elements** (everything living in the surface
42
+ * `elements` map: brush, mindmap, wardley, edgy, cynefin, estuarine, bpmn,
43
+ * coreDomain). BLOCKS (database, code, image, latex, frame, edgeless-text, …)
44
+ * still have their whole view extension gated, because their renderer and
45
+ * their tooling live in the same extension. Their data is safe — schema and
46
+ * store side are unconditional, so the document loads, round-trips and
47
+ * re-renders untouched once the flag is back on — but a disabled block
48
+ * currently renders as nothing until its view extension is split the way the
49
+ * frameworks' were. See the "Consequences" section of `docs/adr/0009`.
50
+ * - `latex` covers both the latex block and inline latex.
51
+ * - `frame` also covers the frame panel fragment.
52
+ * - `ddd-templates` covers all four DDD Templates-panel categories, so the
53
+ * catalogue survives disabling individual DDD senior buttons.
25
54
  */
26
55
  export const OPTIONAL_BLOCKS = [
27
56
  'attachment',
@@ -43,13 +72,65 @@ export const OPTIONAL_BLOCKS = [
43
72
  // gfx modules
44
73
  'brush',
45
74
  'mindmap',
46
- // Standalone text / add-file tools, promoted out of the former "Others"
47
- // senior submenu (each individually toggleable).
48
- 'edgeless-text',
75
+ // Media / template / link tools, promoted out of the former "Others"
76
+ // senior submenu (each individually toggleable). The edgeless-text tool is
77
+ // gated by the 'edgeless-text' block flag above.
49
78
  'edgeless-media',
50
79
  'template',
51
80
  'link',
52
81
  ];
82
+ /**
83
+ * Whether the tooling of `block` is enabled. Never consult this to decide
84
+ * whether content can be read or rendered — see the contract above.
85
+ */
53
86
  export function isBlockEnabled(flags, block) {
54
87
  return flags?.[block] !== false;
55
88
  }
89
+ /**
90
+ * Editor CAPABILITIES — a second switch axis, deliberately not a member of
91
+ * {@link OPTIONAL_BLOCKS}.
92
+ *
93
+ * ## Why a separate list (PF14.1 decision)
94
+ *
95
+ * `OPTIONAL_BLOCKS` answers one question: "does this BLOCK or FRAMEWORK exist
96
+ * for this user". Every entry names a thing a document can contain, which is
97
+ * what makes the contract above meaningful — "the schema is registered
98
+ * unconditionally, so the content is safe" is a sentence about content.
99
+ *
100
+ * `ai-audit` names no block, no element and no schema. It is a capability of
101
+ * the editor: whether this build can ask an assistant for an opinion. Filing it
102
+ * under `OPTIONAL_BLOCKS` would have cost nothing at the keyboard and a lot
103
+ * afterwards — `FrameworkId` is asserted `satisfies readonly OptionalBlock[]`,
104
+ * `scripts/build-bundles.mjs` reads the list as the set of things a bundle can
105
+ * carry, and the flags README would have had to explain why one of its entries
106
+ * has no schema to protect. A list whose members do not answer the same
107
+ * question is a list that has to be filtered at every use.
108
+ *
109
+ * ## Same contract, in full
110
+ *
111
+ * Everything the flag contract promises holds here, and holds trivially:
112
+ * missing key = enabled; switching it off removes TOOLING only; and there is no
113
+ * data to lose, because the audit seam persists nothing at all — criteria are
114
+ * code, findings are session state in `ValidationManager.auditFindings$`, and
115
+ * neither ever reaches a `Y.Doc`. Off, the command is not registered: it
116
+ * disappears from the registry, both manifests and the keymap together. Back
117
+ * on, it is there again, with the document untouched in between.
118
+ *
119
+ * Hosts pass ONE object ({@link LabreFlags}): the two key spaces are disjoint,
120
+ * so nothing about the wiring changes.
121
+ */
122
+ export const OPTIONAL_CAPABILITIES = [
123
+ /**
124
+ * The AI audit seam (PF14.1): the `map.audit` command on the `'agent'`
125
+ * surface. Independent of whether an `AuditProvider` is actually registered —
126
+ * this says whether the editor OFFERS the capability, the provider says
127
+ * whether anything can answer. Both are needed for an audit to run, and the
128
+ * degraded paths differ: switched off, the command does not exist; wired off,
129
+ * it exists and refuses cleanly.
130
+ */
131
+ 'ai-audit',
132
+ ];
133
+ /** Whether `capability` is enabled. Same defaulting rule as a block flag. */
134
+ export function isCapabilityEnabled(flags, capability) {
135
+ return flags?.[capability] !== false;
136
+ }
@@ -0,0 +1,45 @@
1
+ import type { FrameworkDescriptor, FrameworkId } from './_pkgs/std/index.js';
2
+ import type { OptionalBlock } from './flags.js';
3
+ /**
4
+ * THE per-framework identity — the thing that was spelled five times across
5
+ * the repo (flag key, senior-tool id, `ShortcutDescriptor.owner`, telemetry
6
+ * union member, `scripts/build-bundles.mjs`) and had already drifted.
7
+ *
8
+ * This module is DATA ONLY: plain object literals and type-only imports, no
9
+ * lit, no runtime dependency. That is what lets `scripts/build-bundles.mjs`
10
+ * read it (through a type-strip transform) instead of hand-maintaining its own
11
+ * `FRAMEWORKS` array. Keep it that way. See `docs/adr/0008` § Packaging.
12
+ *
13
+ * `telemetryKey` and `telemetrySegment` hold the HISTORICAL PostHog values.
14
+ * They are the reason the identity unification is code-side only and existing
15
+ * dashboards keep working untouched — never "tidy" them.
16
+ */
17
+ /**
18
+ * Every `FrameworkId` is a real tooling flag key — the ADR's
19
+ * `satisfies readonly OptionalBlock[]`, expressed at the type level so this
20
+ * module keeps NO runtime import (`FRAMEWORK_IDS` lives in `@labre/std`, where
21
+ * `CommandDescriptor.owner` needs it and `OptionalBlock` cannot reach).
22
+ */
23
+ type AssertFlagKey<_T extends OptionalBlock> = true;
24
+ export type FrameworkIdsAreFlags = AssertFlagKey<FrameworkId>;
25
+ export declare const FRAMEWORK_DESCRIPTORS: FrameworkDescriptor[];
26
+ /**
27
+ * Bundles that are NOT frameworks: no senior button, no commands, no identity
28
+ * to unify — just packaging. `ddd-aggregate` ships the four DDD Templates-panel
29
+ * categories, which is why its flag (`ddd-templates`) is not a `FrameworkId`.
30
+ * Kept separate on purpose: folding it into {@link FRAMEWORK_DESCRIPTORS} would
31
+ * mean inventing a framework identity for something that has none.
32
+ */
33
+ export declare const AUXILIARY_BUNDLES: {
34
+ bundle: string;
35
+ label: string;
36
+ info: string;
37
+ pkg: string;
38
+ dir: string;
39
+ extensions: {
40
+ flag: string;
41
+ viewExtension: string;
42
+ }[];
43
+ }[];
44
+ export declare const frameworkDescriptor: (id: FrameworkId) => FrameworkDescriptor | undefined;
45
+ export {};
@@ -0,0 +1,154 @@
1
+ export const FRAMEWORK_DESCRIPTORS = [
2
+ {
3
+ id: 'wardley',
4
+ labelKey: 'com.labre.framework.wardley',
5
+ iconKey: 'wardley.toolbar',
6
+ // The only allocated chord prefix: `w` was free against
7
+ // RESERVED_EDGELESS_KEYS. The other six frameworks ship no chord, so they
8
+ // allocate no letter — a prefix with no chord behind it is dead data, and
9
+ // the uniqueness test guards the day one of them earns its first.
10
+ chordPrefix: 'w',
11
+ telemetryKey: 'wardley',
12
+ telemetrySegment: 'wardley toolbox',
13
+ bundle: 'framework-wardley',
14
+ info: 'wardleyFramework',
15
+ pkg: '@labre/affine-gfx-wardley',
16
+ dir: 'affine/gfx/wardley',
17
+ extensions: [
18
+ // always-on: placed Wardley maps must paint even with the button off
19
+ { viewExtension: 'WardleyRenderViewExtension' },
20
+ { flag: 'wardley', viewExtension: 'WardleyViewExtension' },
21
+ ],
22
+ // The framework contributes command/shortcut-manifest entries: stripped
23
+ // from core's shortcuts.ts; the host composes with the bundle's export.
24
+ shortcuts: true,
25
+ },
26
+ {
27
+ id: 'edgy',
28
+ labelKey: 'com.labre.framework.edgy',
29
+ iconKey: 'edgy.toolbar',
30
+ telemetryKey: 'edgy',
31
+ telemetrySegment: 'edgy toolbox',
32
+ bundle: 'framework-edgy',
33
+ info: 'edgyFramework',
34
+ pkg: '@labre/affine-gfx-edgy',
35
+ dir: 'affine/gfx/edgy',
36
+ extensions: [
37
+ // always-on: placed EDGY boards must paint even with the button off
38
+ { viewExtension: 'EdgyRenderViewExtension' },
39
+ { flag: 'edgy', viewExtension: 'EdgyViewExtension' },
40
+ ],
41
+ shortcuts: true,
42
+ },
43
+ {
44
+ id: 'cynefin-estuarine',
45
+ labelKey: 'com.labre.framework.cynefin-estuarine',
46
+ iconKey: 'cynefin.toolbar',
47
+ // Historical PostHog value; the flag and the owner say
48
+ // `cynefin-estuarine`, the wire says `cynefin`.
49
+ telemetryKey: 'cynefin',
50
+ telemetrySegment: 'cynefin toolbox',
51
+ bundle: 'framework-cynefin',
52
+ info: 'cynefinFramework',
53
+ pkg: '@labre/affine-gfx-cynefin-estuarine',
54
+ dir: 'affine/gfx/cynefin-estuarine',
55
+ extensions: [
56
+ // always-on: placed Cynefin / Estuarine frames must paint even with the
57
+ // button off
58
+ { viewExtension: 'CynefinEstuarineRenderViewExtension' },
59
+ {
60
+ flag: 'cynefin-estuarine',
61
+ viewExtension: 'CynefinEstuarineViewExtension',
62
+ },
63
+ ],
64
+ shortcuts: true,
65
+ },
66
+ {
67
+ id: 'bpmn',
68
+ labelKey: 'com.labre.framework.bpmn',
69
+ iconKey: 'bpmn.toolbar',
70
+ telemetryKey: 'bpmn',
71
+ telemetrySegment: 'bpmn toolbox',
72
+ bundle: 'framework-bpmn',
73
+ info: 'bpmnFramework',
74
+ pkg: '@labre/affine-gfx-bpmn',
75
+ dir: 'affine/gfx/bpmn',
76
+ extensions: [
77
+ // always-on: placed BPMN pools must paint even with the button off
78
+ { viewExtension: 'BpmnRenderViewExtension' },
79
+ { flag: 'bpmn', viewExtension: 'BpmnViewExtension' },
80
+ ],
81
+ shortcuts: true,
82
+ },
83
+ {
84
+ id: 'ddd-event-storming',
85
+ labelKey: 'com.labre.framework.ddd-event-storming',
86
+ iconKey: 'ddd-event-storming.toolbar',
87
+ telemetryKey: 'event-storming',
88
+ telemetrySegment: 'ddd toolbox',
89
+ bundle: 'framework-ddd-event-storming',
90
+ info: 'dddEventStormingFramework',
91
+ pkg: '@labre/affine-gfx-ddd-event-storming',
92
+ dir: 'affine/gfx/ddd-event-storming',
93
+ extensions: [
94
+ {
95
+ flag: 'ddd-event-storming',
96
+ viewExtension: 'DddEventStormingViewExtension',
97
+ },
98
+ ],
99
+ shortcuts: true,
100
+ },
101
+ {
102
+ id: 'ddd-core-domain',
103
+ labelKey: 'com.labre.framework.ddd-core-domain',
104
+ iconKey: 'ddd-core-domain.toolbar',
105
+ telemetryKey: 'core-domain',
106
+ telemetrySegment: 'ddd toolbox',
107
+ bundle: 'framework-ddd-core-domain',
108
+ info: 'dddCoreDomainFramework',
109
+ pkg: '@labre/affine-gfx-ddd-core-domain',
110
+ dir: 'affine/gfx/ddd-core-domain',
111
+ extensions: [
112
+ // always-on: placed Core Domain charts must paint even with the button off
113
+ { viewExtension: 'DddCoreDomainRenderViewExtension' },
114
+ { flag: 'ddd-core-domain', viewExtension: 'DddCoreDomainViewExtension' },
115
+ ],
116
+ shortcuts: true,
117
+ },
118
+ {
119
+ id: 'ddd-context-map',
120
+ labelKey: 'com.labre.framework.ddd-context-map',
121
+ iconKey: 'ddd-context-map.toolbar',
122
+ telemetryKey: 'context-map',
123
+ telemetrySegment: 'ddd toolbox',
124
+ bundle: 'framework-ddd-context-map',
125
+ info: 'dddContextMapFramework',
126
+ pkg: '@labre/affine-gfx-ddd-context-map',
127
+ dir: 'affine/gfx/ddd-context-map',
128
+ extensions: [
129
+ { flag: 'ddd-context-map', viewExtension: 'DddContextMapViewExtension' },
130
+ ],
131
+ shortcuts: true,
132
+ },
133
+ ];
134
+ /**
135
+ * Bundles that are NOT frameworks: no senior button, no commands, no identity
136
+ * to unify — just packaging. `ddd-aggregate` ships the four DDD Templates-panel
137
+ * categories, which is why its flag (`ddd-templates`) is not a `FrameworkId`.
138
+ * Kept separate on purpose: folding it into {@link FRAMEWORK_DESCRIPTORS} would
139
+ * mean inventing a framework identity for something that has none.
140
+ */
141
+ export const AUXILIARY_BUNDLES = [
142
+ {
143
+ bundle: 'framework-ddd-aggregate',
144
+ label: 'ddd-aggregate',
145
+ info: 'dddAggregateFramework',
146
+ pkg: '@labre/affine-gfx-ddd-aggregate',
147
+ dir: 'affine/gfx/ddd-aggregate',
148
+ extensions: [
149
+ { flag: 'ddd-templates', viewExtension: 'DddTemplatesViewExtension' },
150
+ ],
151
+ },
152
+ ];
153
+ const BY_ID = new Map(FRAMEWORK_DESCRIPTORS.map(d => [d.id, d]));
154
+ export const frameworkDescriptor = (id) => BY_ID.get(id);
package/dist/schemas.d.ts CHANGED
@@ -1,13 +1,16 @@
1
1
  import type { BlockSchema } from './_pkgs/store/index.js';
2
2
  import type { z } from 'zod';
3
- import { type BlockFlags } from './flags.js';
3
+ import type { LabreFlags } from './flags.js';
4
4
  type AffineBlockSchema = z.infer<typeof BlockSchema>;
5
5
  /**
6
- * First party block models built for affine, honoring block flags.
7
- * Omitted flags default to enabled; core blocks (root, surface, note,
8
- * paragraph) are always included. See {@link BlockFlags}.
6
+ * First party block models built for affine.
7
+ *
8
+ * Schemas are registered UNCONDITIONALLY: a flag gates tooling, never the
9
+ * ability to read a document (see {@link LabreFlags} and `docs/adr/0009`). The
10
+ * `flags` parameter is kept for source compatibility with callers written
11
+ * against the previous contract, and is deliberately ignored.
9
12
  */
10
- export declare function getAffineSchemas(flags?: BlockFlags): AffineBlockSchema[];
13
+ export declare function getAffineSchemas(_flags?: LabreFlags): AffineBlockSchema[];
11
14
  /** Built-in first party block models built for affine */
12
15
  export declare const AffineSchemas: AffineBlockSchema[];
13
16
  export {};